{"version":3,"sources":["webpack://cornerstoneTools/webpack/universalModuleDefinition","webpack://cornerstoneTools/webpack/bootstrap","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/createClass.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/defineProperty.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/inherits.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/typeof.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/regenerator/index.js","webpack://cornerstoneTools/../node_modules/ms/index.js","webpack://cornerstoneTools/../node_modules/process/browser.js","webpack://cornerstoneTools/../node_modules/regenerator-runtime/runtime-module.js","webpack://cornerstoneTools/../node_modules/regenerator-runtime/runtime.js","webpack://cornerstoneTools/./drawing/draw.js","webpack://cornerstoneTools/./drawing/drawArrow.js","webpack://cornerstoneTools/./drawing/drawCircle.js","webpack://cornerstoneTools/./drawing/drawEllipse.js","webpack://cornerstoneTools/./drawing/drawHandles.js","webpack://cornerstoneTools/./drawing/drawJoinedLines.js","webpack://cornerstoneTools/./drawing/drawLine.js","webpack://cornerstoneTools/./drawing/drawLines.js","webpack://cornerstoneTools/./drawing/drawLink.js","webpack://cornerstoneTools/./drawing/drawLinkedTextBox.js","webpack://cornerstoneTools/./drawing/drawRect.js","webpack://cornerstoneTools/./drawing/drawTextBox.js","webpack://cornerstoneTools/./drawing/fillBox.js","webpack://cornerstoneTools/./drawing/fillOutsideRect.js","webpack://cornerstoneTools/./drawing/fillTextLines.js","webpack://cornerstoneTools/./drawing/getNewContext.js","webpack://cornerstoneTools/./drawing/index.js","webpack://cornerstoneTools/./drawing/path.js","webpack://cornerstoneTools/./drawing/resetCanvasContextTransform.js","webpack://cornerstoneTools/./drawing/setShadow.js","webpack://cornerstoneTools/./drawing/transformCanvasContext.js","webpack://cornerstoneTools/./eventDispatchers/imageRenderedEventDispatcher.js","webpack://cornerstoneTools/./eventDispatchers/index.js","webpack://cornerstoneTools/./eventDispatchers/mouseEventHandlers/addNewMeasurement.js","webpack://cornerstoneTools/./eventDispatchers/mouseEventHandlers/index.js","webpack://cornerstoneTools/./eventDispatchers/mouseEventHandlers/mouseDown.js","webpack://cornerstoneTools/./eventDispatchers/mouseEventHandlers/mouseDownActivate.js","webpack://cornerstoneTools/./eventDispatchers/mouseEventHandlers/mouseDrag.js","webpack://cornerstoneTools/./eventDispatchers/mouseEventHandlers/mouseMove.js","webpack://cornerstoneTools/./eventDispatchers/mouseToolEventDispatcher.js","webpack://cornerstoneTools/./eventDispatchers/newImageEventDispatcher.js","webpack://cornerstoneTools/./eventDispatchers/shared/customCallbackHandler.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/addNewMeasurement.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/index.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/multiTouchDrag.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/shared/deactivateAllToolInstances.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/tap.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/touchStart.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/touchStartActive.js","webpack://cornerstoneTools/./eventDispatchers/touchToolEventDispatcher.js","webpack://cornerstoneTools/./eventListeners/index.js","webpack://cornerstoneTools/./eventListeners/internals/normalizeWheel.js","webpack://cornerstoneTools/./eventListeners/internals/renderSegmentation.js","webpack://cornerstoneTools/./eventListeners/internals/renderSegmentationFill.js","webpack://cornerstoneTools/./eventListeners/internals/renderSegmentationOutline.js","webpack://cornerstoneTools/./eventListeners/mouseEventListeners.js","webpack://cornerstoneTools/./eventListeners/onImageRenderedBrushEventHandler.js","webpack://cornerstoneTools/./eventListeners/preventGhostClick.js","webpack://cornerstoneTools/./eventListeners/touchEventListeners.js","webpack://cornerstoneTools/./eventListeners/wheelEventListener.js","webpack://cornerstoneTools/./eventListeners/windowResizeHandler.js","webpack://cornerstoneTools/./events.js","webpack://cornerstoneTools/./externalModules.js","webpack://cornerstoneTools/./importInternal.js","webpack://cornerstoneTools/./index.js","webpack://cornerstoneTools/./init.js","webpack://cornerstoneTools/./lib.js","webpack://cornerstoneTools/./manipulators/anyHandlesOutsideImage.js","webpack://cornerstoneTools/./manipulators/getHandleNearImagePoint.js","webpack://cornerstoneTools/./manipulators/handleActivator.js","webpack://cornerstoneTools/./manipulators/index.js","webpack://cornerstoneTools/./manipulators/moveAllHandles.js","webpack://cornerstoneTools/./manipulators/moveHandle.js","webpack://cornerstoneTools/./manipulators/moveNewHandle.js","webpack://cornerstoneTools/./mixins/activeOrDisabledBinaryTool.js","webpack://cornerstoneTools/./mixins/enabledOrDisabledBinaryTool.js","webpack://cornerstoneTools/./mixins/index.js","webpack://cornerstoneTools/./mixins/segmentation/circleSegmentationMixin.js","webpack://cornerstoneTools/./mixins/segmentation/freehandSegmentationMixin.js","webpack://cornerstoneTools/./mixins/segmentation/polylineSegmentationMixin.js","webpack://cornerstoneTools/./mixins/segmentation/rectangleSegmentationMixin.js","webpack://cornerstoneTools/./mixins/segmentation/renderBrushMixin.js","webpack://cornerstoneTools/./orientation/getOrientationString.js","webpack://cornerstoneTools/./orientation/index.js","webpack://cornerstoneTools/./orientation/invertOrientationString.js","webpack://cornerstoneTools/./requestPool/requestPoolManager.js","webpack://cornerstoneTools/./stackTools/fusionRenderer.js","webpack://cornerstoneTools/./stackTools/playClip.js","webpack://cornerstoneTools/./stackTools/stackPrefetch.js","webpack://cornerstoneTools/./stackTools/stackRenderers.js","webpack://cornerstoneTools/./stateManagement/frameOfReferenceStateManager.js","webpack://cornerstoneTools/./stateManagement/imageIdSpecificStateManager.js","webpack://cornerstoneTools/./stateManagement/loadHandlerManager.js","webpack://cornerstoneTools/./stateManagement/stackSpecificStateManager.js","webpack://cornerstoneTools/./stateManagement/textStyle.js","webpack://cornerstoneTools/./stateManagement/toolColors.js","webpack://cornerstoneTools/./stateManagement/toolCoordinates.js","webpack://cornerstoneTools/./stateManagement/toolState.js","webpack://cornerstoneTools/./stateManagement/toolStyle.js","webpack://cornerstoneTools/./store/addTool.js","webpack://cornerstoneTools/./store/filterToolsUsableWithMultiPartTools.js","webpack://cornerstoneTools/./store/getActiveToolsForElement.js","webpack://cornerstoneTools/./store/getInteractiveToolsForElement.js","webpack://cornerstoneTools/./store/getToolForElement.js","webpack://cornerstoneTools/./store/getToolsWithDataForElement.js","webpack://cornerstoneTools/./store/getToolsWithMoveableHandles.js","webpack://cornerstoneTools/./store/index.js","webpack://cornerstoneTools/./store/internals/addEnabledElement.js","webpack://cornerstoneTools/./store/internals/removeEnabledElement.js","webpack://cornerstoneTools/./store/isToolActiveForElement.js","webpack://cornerstoneTools/./store/modules/cursorModule.js","webpack://cornerstoneTools/./store/modules/globalConfigurationModule.js","webpack://cornerstoneTools/./store/modules/manipulatorStateModule.js","webpack://cornerstoneTools/./store/modules/segmentationModule/activeLabelmapIndex.js","webpack://cornerstoneTools/./store/modules/segmentationModule/activeSegmentIndex.js","webpack://cornerstoneTools/./store/modules/segmentationModule/addLabelmap2D.js","webpack://cornerstoneTools/./store/modules/segmentationModule/addLabelmap3D.js","webpack://cornerstoneTools/./store/modules/segmentationModule/arrayTypes.js","webpack://cornerstoneTools/./store/modules/segmentationModule/colorLUT.js","webpack://cornerstoneTools/./store/modules/segmentationModule/defaultConfiguration.js","webpack://cornerstoneTools/./store/modules/segmentationModule/deleteSegment.js","webpack://cornerstoneTools/./store/modules/segmentationModule/getBrushColor.js","webpack://cornerstoneTools/./store/modules/segmentationModule/getElement.js","webpack://cornerstoneTools/./store/modules/segmentationModule/getLabelmap2D.js","webpack://cornerstoneTools/./store/modules/segmentationModule/getLabelmapBuffers.js","webpack://cornerstoneTools/./store/modules/segmentationModule/getLabelmapStats.js","webpack://cornerstoneTools/./store/modules/segmentationModule/getLabelmaps3D.js","webpack://cornerstoneTools/./store/modules/segmentationModule/getSegmentOfActiveLabelmapAtEvent.js","webpack://cornerstoneTools/./store/modules/segmentationModule/getSegmentsOnPixeldata.js","webpack://cornerstoneTools/./store/modules/segmentationModule/history.js","webpack://cornerstoneTools/./store/modules/segmentationModule/index.js","webpack://cornerstoneTools/./store/modules/segmentationModule/metadata.js","webpack://cornerstoneTools/./store/modules/segmentationModule/segmentVisibility.js","webpack://cornerstoneTools/./store/modules/segmentationModule/setLabelmap3D.js","webpack://cornerstoneTools/./store/modules/segmentationModule/setRadius.js","webpack://cornerstoneTools/./store/modules/segmentationModule/state.js","webpack://cornerstoneTools/./store/removeTool.js","webpack://cornerstoneTools/./store/setToolCursor.js","webpack://cornerstoneTools/./store/setToolMode.js","webpack://cornerstoneTools/./store/setToolOptions.js","webpack://cornerstoneTools/./synchronization/Synchronizer.js","webpack://cornerstoneTools/./synchronization/panZoomSynchronizer.js","webpack://cornerstoneTools/./synchronization/stackImageIndexSynchronizer.js","webpack://cornerstoneTools/./synchronization/stackImagePositionOffsetSynchronizer.js","webpack://cornerstoneTools/./synchronization/stackImagePositionSynchronizer.js","webpack://cornerstoneTools/./synchronization/stackScrollSynchronizer.js","webpack://cornerstoneTools/./synchronization/updateImageSynchronizer.js","webpack://cornerstoneTools/./synchronization/wwwcSynchronizer.js","webpack://cornerstoneTools/./thirdParty/register.js","webpack://cornerstoneTools/./thirdParty/registerItem.js","webpack://cornerstoneTools/./thirdParty/registerMixin.js","webpack://cornerstoneTools/./thirdParty/registerModule.js","webpack://cornerstoneTools/./thirdParty/registerSome.js","webpack://cornerstoneTools/./toolOptions.js","webpack://cornerstoneTools/./tools/CrosshairsTool.js","webpack://cornerstoneTools/./tools/DoubleTapFitToWindowTool.js","webpack://cornerstoneTools/./tools/DragProbeTool.js","webpack://cornerstoneTools/./tools/EraserTool.js","webpack://cornerstoneTools/./tools/FreehandRoiSculptorTool.js","webpack://cornerstoneTools/./tools/MagnifyTool.js","webpack://cornerstoneTools/./tools/OrientationMarkersTool.js","webpack://cornerstoneTools/./tools/OverlayTool.js","webpack://cornerstoneTools/./tools/PanMultiTouchTool.js","webpack://cornerstoneTools/./tools/PanTool.js","webpack://cornerstoneTools/./tools/ReferenceLinesTool.js","webpack://cornerstoneTools/./tools/RotateTool.js","webpack://cornerstoneTools/./tools/RotateTouchTool.js","webpack://cornerstoneTools/./tools/ScaleOverlayTool.js","webpack://cornerstoneTools/./tools/StackScrollMouseWheelTool.js","webpack://cornerstoneTools/./tools/StackScrollMultiTouchTool.js","webpack://cornerstoneTools/./tools/StackScrollTool.js","webpack://cornerstoneTools/./tools/WwwcRegionTool.js","webpack://cornerstoneTools/./tools/WwwcTool.js","webpack://cornerstoneTools/./tools/ZoomMouseWheelTool.js","webpack://cornerstoneTools/./tools/ZoomTool.js","webpack://cornerstoneTools/./tools/ZoomTouchPinchTool.js","webpack://cornerstoneTools/./tools/annotation/AngleTool.js","webpack://cornerstoneTools/./tools/annotation/ArrowAnnotateTool.js","webpack://cornerstoneTools/./tools/annotation/BidirectionalTool.js","webpack://cornerstoneTools/./tools/annotation/CircleRoiTool.js","webpack://cornerstoneTools/./tools/annotation/CobbAngleTool.js","webpack://cornerstoneTools/./tools/annotation/EllipticalRoiTool.js","webpack://cornerstoneTools/./tools/annotation/FreehandRoiTool.js","webpack://cornerstoneTools/./tools/annotation/LengthTool.js","webpack://cornerstoneTools/./tools/annotation/ProbeTool.js","webpack://cornerstoneTools/./tools/annotation/RectangleRoiTool.js","webpack://cornerstoneTools/./tools/annotation/TextMarkerTool.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/addNewMeasurement.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/createNewMeasurement.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/handleSelectedCallback.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/handleSelectedMouseCallback.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/handleSelectedTouchCallback.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/invertHandles.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/mouseMoveCallback.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/getBaseData.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/moveHandle.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/moveLongLine/moveLongLine.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/moveLongLine/updatePerpendicularLine.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/movePerpendicularLine/getDirectionMultiplier.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/movePerpendicularLine/getHelperLine.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/movePerpendicularLine/getMovingPoint.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/movePerpendicularLine/isPerpendicularEndFixed.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/movePerpendicularLine/lineHasLength.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/movePerpendicularLine/movePerpendicularLine.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/movePerpendicularLine/updatePerpendicularLine.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/setHandlesPosition.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/touchMoveHandle.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/pointNearTool.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/renderToolData.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/utils/calculateLongestAndShortestDiameters.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/utils/getDistanceWithPixelSpacing.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/utils/getLineVector.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/utils/updatePerpendicularLineHandles.js","webpack://cornerstoneTools/./tools/annotation/index.js","webpack://cornerstoneTools/./tools/base/BaseAnnotationTool.js","webpack://cornerstoneTools/./tools/base/BaseBrushTool.js","webpack://cornerstoneTools/./tools/base/BaseTool.js","webpack://cornerstoneTools/./tools/base/index.js","webpack://cornerstoneTools/./tools/cursors/MouseCursor.js","webpack://cornerstoneTools/./tools/cursors/index.js","webpack://cornerstoneTools/./tools/index.js","webpack://cornerstoneTools/./tools/referenceLines/calculateReferenceLine.js","webpack://cornerstoneTools/./tools/referenceLines/renderActiveReferenceLine.js","webpack://cornerstoneTools/./tools/segmentation/BrushTool.js","webpack://cornerstoneTools/./tools/segmentation/CircleScissorsTool.js","webpack://cornerstoneTools/./tools/segmentation/CorrectionScissorsTool.js","webpack://cornerstoneTools/./tools/segmentation/FreehandScissorsTool.js","webpack://cornerstoneTools/./tools/segmentation/RectangleScissorsTool.js","webpack://cornerstoneTools/./tools/segmentation/SphericalBrushTool.js","webpack://cornerstoneTools/./tools/segmentation/index.js","webpack://cornerstoneTools/./tools/segmentation/strategies/correction.js","webpack://cornerstoneTools/./tools/segmentation/strategies/eraseCircle.js","webpack://cornerstoneTools/./tools/segmentation/strategies/eraseFreehand.js","webpack://cornerstoneTools/./tools/segmentation/strategies/eraseRectangle.js","webpack://cornerstoneTools/./tools/segmentation/strategies/fillCircle.js","webpack://cornerstoneTools/./tools/segmentation/strategies/fillFreehand.js","webpack://cornerstoneTools/./tools/segmentation/strategies/fillRectangle.js","webpack://cornerstoneTools/./tools/segmentation/strategies/index.js","webpack://cornerstoneTools/./util/SaveAs.js","webpack://cornerstoneTools/./util/angleBetweenPoints.js","webpack://cornerstoneTools/./util/calculateSUV.js","webpack://cornerstoneTools/./util/clip.js","webpack://cornerstoneTools/./util/convertToVector3.js","webpack://cornerstoneTools/./util/copyPoints.js","webpack://cornerstoneTools/./util/debounce.js","webpack://cornerstoneTools/./util/debugLib/common.js","webpack://cornerstoneTools/./util/debugLib/index.js","webpack://cornerstoneTools/./util/deepmerge.js","webpack://cornerstoneTools/./util/ellipse/calculateEllipseStatistics.js","webpack://cornerstoneTools/./util/ellipse/index.js","webpack://cornerstoneTools/./util/ellipse/pointInEllipse.js","webpack://cornerstoneTools/./util/findAndMoveHelpers.js","webpack://cornerstoneTools/./util/freehand/ClickedLineData.js","webpack://cornerstoneTools/./util/freehand/FreehandHandleData.js","webpack://cornerstoneTools/./util/freehand/FreehandLineFinder.js","webpack://cornerstoneTools/./util/freehand/addLine.js","webpack://cornerstoneTools/./util/freehand/calculateFreehandStatistics.js","webpack://cornerstoneTools/./util/freehand/freehandArea.js","webpack://cornerstoneTools/./util/freehand/freehandIntersect.js","webpack://cornerstoneTools/./util/freehand/index.js","webpack://cornerstoneTools/./util/freehand/insertOrDelete.js","webpack://cornerstoneTools/./util/freehand/pointInFreehand.js","webpack://cornerstoneTools/./util/getActiveTool.js","webpack://cornerstoneTools/./util/getCircleCoords.js","webpack://cornerstoneTools/./util/getDefault.js","webpack://cornerstoneTools/./util/getKeyPressData.js","webpack://cornerstoneTools/./util/getLuminance.js","webpack://cornerstoneTools/./util/getMaxSimultaneousRequests.js","webpack://cornerstoneTools/./util/getPixelSpacing.js","webpack://cornerstoneTools/./util/getRGBPixels.js","webpack://cornerstoneTools/./util/getROITextBoxCoords.js","webpack://cornerstoneTools/./util/isEmptyObject.js","webpack://cornerstoneTools/./util/isObject.js","webpack://cornerstoneTools/./util/isPointInImage.js","webpack://cornerstoneTools/./util/isPointInPolygon.js","webpack://cornerstoneTools/./util/lineSegDistance.js","webpack://cornerstoneTools/./util/logger.js","webpack://cornerstoneTools/./util/makeUnselectable.js","webpack://cornerstoneTools/./util/numbersWithCommas.js","webpack://cornerstoneTools/./util/pointInsideBoundingBox.js","webpack://cornerstoneTools/./util/pointProjector.js","webpack://cornerstoneTools/./util/roundToDecimal.js","webpack://cornerstoneTools/./util/scroll.js","webpack://cornerstoneTools/./util/scrollToIndex.js","webpack://cornerstoneTools/./util/segmentation/drawBrush.js","webpack://cornerstoneTools/./util/segmentation/eraseIfSegmentIndex.js","webpack://cornerstoneTools/./util/segmentation/eraseOutsideBoundingBox.js","webpack://cornerstoneTools/./util/segmentation/eraseShape.js","webpack://cornerstoneTools/./util/segmentation/fillOutsideBoundingBox.js","webpack://cornerstoneTools/./util/segmentation/fillShape.js","webpack://cornerstoneTools/./util/segmentation/floodFill.js","webpack://cornerstoneTools/./util/segmentation/getBoundingBoxAroundCircle.js","webpack://cornerstoneTools/./util/segmentation/getBoundingBoxAroundPolygon.js","webpack://cornerstoneTools/./util/segmentation/getCircle.js","webpack://cornerstoneTools/./util/segmentation/getDiffBetweenPixelData.js","webpack://cornerstoneTools/./util/segmentation/getPixelPathBetweenPixels.js","webpack://cornerstoneTools/./util/segmentation/index.js","webpack://cornerstoneTools/./util/segmentation/isSameSegment.js","webpack://cornerstoneTools/./util/segmentation/triggerLabelmapModifiedEvent.js","webpack://cornerstoneTools/./util/setContextToDisplayFontSize.js","webpack://cornerstoneTools/./util/throttle.js","webpack://cornerstoneTools/./util/triggerEvent.js","webpack://cornerstoneTools/./util/uuidv4.js","webpack://cornerstoneTools/./util/wait.js","webpack://cornerstoneTools/./util/zoom/changeViewportScale.js","webpack://cornerstoneTools/./util/zoom/correctShift.js","webpack://cornerstoneTools/./util/zoom/index.js","webpack://cornerstoneTools/./version.js"],"names":["context","fn","save","restore","start","end","color","lineWidth","lineDash","headLength","angle","Math","atan2","y","x","options","drawLine","undefined","fillStyle","points","cos","PI","sin","drawJoinedLines","element","center","radius","coordSystem","external","cornerstone","pixelToCanvas","path","arc","corner1","corner2","initialRotation","viewport","getViewport","width","clientWidth","height","clientHeight","scale","translation","rotation","centerPoint","abs","rotatePoint","w","h","xMin","min","yMin","ellipse","closePath","evtDetail","handles","defaultColor","toolColors","getToolColor","strokeStyle","handleKeys","Object","keys","i","handleKey","handle","drawnIndependently","drawHandlesIfActive","active","hideHandlesIfMoving","moving","toolStyle","getActiveWidth","getToolWidth","fill","pathOptions","handleCanvasCoords","handleRadius","state","length","map","p","moveTo","forEach","lineTo","lines","line","linkAnchorPoints","refPoint","boundingBox","cornerstoneMath","point","findClosestPoint","boundingBoxPoints","left","top","textBox","text","textBoxAnchorPoints","xOffset","yCenter","textCoords","centering","drawTextBox","hasMoved","drawLink","corner3","corner4","textBoxWidth","padding","font","textStyle","getFont","origFont","measureText","textLines","prototype","toString","call","fontSize","getFontSize","backgroundColor","getBackgroundColor","maxWidth","max","draw","debug","fillBox","fillTextLines","fillRect","rect","canvas","textBaseline","index","fillText","getContext","setTransform","shouldDrawLines","beginPath","setLineDash","stroke","shadow","shadowColor","getDefault","shadowBlur","shadowOffsetX","shadowOffsetY","hflip","vflip","translate","rotate","segmentationModule","getModule","onImageRendered","evt","eventData","detail","toolsToRender","tools","filter","tool","mode","stackToolState","getToolState","segmentationConfiguration","configuration","renderFill","renderOutline","onImageRenderedBrushEventHandler","renderToolData","enable","addEventListener","EVENTS","IMAGE_RENDERED","disable","removeEventListener","logger","getLogger","log","preventDefault","stopPropagation","measurementData","createNewMeasurement","addToolState","name","updateImage","handleMover","moveHandle","moveNewHandle","success","cancelled","eventType","MEASUREMENT_COMPLETED","toolName","toolType","triggerEvent","removeToolState","mouseClick","customCallbackHandler","bind","mouseDoubleClick","mouseUp","mouseWheel","isToolLocked","coords","currentPoints","activeAndPassiveTools","getInteractiveToolsForElement","getters","mouseTools","activeTools","Array","isArray","mouseButtonMask","includes","buttons","isMouseActive","isMultiPartToolActive","filterToolsUseableWithMultiPartTools","firstActiveToolWithCallback","find","preMouseDownCallback","consumedEvent","annotationTools","getToolsWithDataForElement","annotationToolsWithMoveableHandles","getToolsWithMoveableHandles","firstToolWithMoveableHandles","toolState","findHandleDataNearImagePoint","data","handleSelectedCallback","annotationToolsWithPointNearClick","isNearPoint","pointNearTool","some","firstToolNearPoint","firstAnnotationNearPoint","toolSelectedCallback","postMouseDownCallback","activeTool","getActiveTool","preMouseDownActivateCallback","addNewMeasurement","BaseAnnotationTool","getActiveToolsForElement","mouseDragCallback","mousePositionImage","image","imageNeedsUpdate","updateOnMouseMove","t","mouseMoveCallback","MOUSE_CLICK","MOUSE_DOWN","mouseDown","MOUSE_DOWN_ACTIVATE","mouseDownActivate","MOUSE_DOUBLE_CLICK","MOUSE_DRAG","mouseDrag","MOUSE_MOVE","mouseMove","MOUSE_UP","MOUSE_WHEEL","onNewImage","newImageCallback","NEW_IMAGE","handlerType","customFunction","supportedInteractionTypes","touchEventData","type","TAP","highlight","invalidated","deleteIfHandleOutsideImage","anyHandlesOutsideImage","doubleTap","touchDrag","touchEnd","touchPinch","touchPress","touchRotate","numPointers","multiTouchDragCallback","touchPointers","toolData","deactivateAllHandles","distanceFromHandle","touchTools","toolsWithMoveableHandles","getHandleNearImagePoint","moveableHandle","d","deactivateAllToolInstances","stopImmediatePropagation","toolsNearPoint","moveAllHandles","allActiveTools","touchStartActiveCallback","touchStartActive","startPoints","isTouchActive","preTouchStartCallback","annotationToolsWithPointNearTouch","postTouchStartCallback","tap","TOUCH_START","touchStart","passive","TOUCH_DRAG","TOUCH_END","TOUCH_START_ACTIVE","TOUCH_PRESS","DOUBLE_TAP","TOUCH_PINCH","TOUCH_ROTATE","MULTI_TOUCH_DRAG","multiTouchDrag","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","event","spinX","spinY","pixelX","pixelY","wheelDelta","wheelDeltaY","wheelDeltaX","deltaY","deltaX","deltaMode","renderSegmentation","labelmap3D","labelmapIndex","labelmap2D","isActiveLabelMap","shouldRenderFill","renderSegmentationFill","shouldRenderOutline","renderSegmentationOutline","fillAlpha","fillAlphaInactive","outlineAlpha","outlineAlphaInactive","labelmapCanvas","getLabelmapCanvas","cols","rows","segmentsHidden","pixelData","colorLutTable","colorLutTables","colorLUTIndex","canvasElement","document","createElement","ctx","getNewContext","imageData","ImageData","segmentIndex","putImageData","canvasContext","canvasTopLeft","canvasTopRight","canvasBottomRight","cornerstoneCanvasWidth","distance","cornerstoneCanvasHeight","previousImageSmoothingEnabled","imageSmoothingEnabled","previousGlobalAlpha","globalAlpha","transformCanvasContext","canvasViewportTranslation","getCanvasViewportTranslation","drawImage","resetCanvasContextTransform","widthScale","heightScale","rowPixelSpacing","columnPixelSpacing","outline","getOutline","outlineWidth","previousAlpha","drawLines","activeSegmentIndex","lineSegments","segmentsOnLabelmap","visible","_getPixelCoordinateFromPixelIndex","pixelIndex","floor","offset","getOutlineOffset","coord","pixels","_getPixelIndiciesAroundPixel","_addTopOutline","bottom","_addBottomOutline","_addLeftOutline","right","_addRightOutline","topLeft","_addTopLeftCorner","topRight","_addTopRightCorner","bottomLeft","_addBottomLeftCorner","bottomRight","_addBottomRightCorner","halfLineWidth","theta","cosTheta","sinTheta","unitVectorI","unitVectorJ","j","pixel","hasPixelToTop","hasPixelToBotoom","hasPixelToLeft","hasPixelToRight","lineSegmentsForSegment","push","isClickEvent","preventClickTimeout","clickDelay","getEventButtons","which","preventClickHandler","e","currentTarget","enabledElement","getEnabledElement","page","pageToPoint","pageToPixel","pageX","pageY","client","clientX","clientY","lastPoints","copyPoints","deltaPoints","setTimeout","eventPropagated","onMouseMove","subtract","ctrlKey","metaKey","shiftKey","onMouseUp","clearTimeout","labelmaps3D","activeLabelmapIndex","currentImageIdIndex","shouldRenderInactiveLabelmaps","renderInactiveLabelMaps","renderActiveLabelMap","labelmaps2D","antiGhostDelay","pointerType","mouse","touch","lastInteractionType","lastInteractionTime","handleTap","now","Date","handleTapMouse","handleTapTouch","attachEvents","eventList","interactionType","tapHandler","eventName","removeEvents","mouseEvents","touchEvents","touchStartDelay","pressTimeout","pageDistanceMoved","lastScale","lastRotation","preventNextPinch","isPress","lastDelta","pressDelay","pressMaxDistance","inputName","onTouch","srcEvent","scaleChange","delta","remainingPointers","pointers","touches","isTouchEvent","direction","MULTI_TOUCH_START","MULTI_TOUCH_START_ACTIVE","changedTouches","sqrt","TOUCH_DRAG_END","changedPointers","Hammer","hammerOptions","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","TouchInput","mc","Manager","panOptions","DIRECTION_ALL","threshold","pan","Pan","pinch","Pinch","Rotate","recognizeWith","Tap","taps","interval","posThreshold","add","on","preventGhostClick","getToolOptions","hammer","setToolOptions","off","touchInput","wheelEventHandler","startingCoords","normalizeWheel","mouseWheelData","imageX","imageY","window","resizeThrottler","resizeTimeout","forceEnabledElementResize","enabledElements","resize","KEY_DOWN","KEY_UP","KEY_PRESS","MEASUREMENT_ADDED","MEASUREMENT_MODIFIED","MEASUREMENT_REMOVED","TOOL_DEACTIVATED","CLIP_STOPPED","STACK_SCROLL","STACK_PREFETCH_IMAGE_LOADED","STACK_PREFETCH_DONE","LABELMAP_MODIFIED","cs","cm","module","uri","lib","cornerstoneTools","AngleTool","ArrowAnnotateTool","BidirectionalTool","CircleRoiTool","CobbAngleTool","EllipticalRoiTool","FreehandRoiTool","LengthTool","ProbeTool","RectangleRoiTool","TextMarkerTool","BrushTool","SphericalBrushTool","RectangleScissorsTool","FreehandScissorsTool","CircleScissorsTool","CorrectionScissorsTool","CrosshairsTool","DoubleTapFitToWindowTool","DragProbeTool","EraserTool","FreehandRoiSculptorTool","MagnifyTool","OverlayTool","OrientationMarkersTool","PanMultiTouchTool","PanTool","ReferenceLinesTool","RotateTool","RotateTouchTool","ScaleOverlayTool","StackScrollMouseWheelTool","StackScrollMultiTouchTool","StackScrollTool","WwwcRegionTool","WwwcTool","ZoomMouseWheelTool","ZoomTool","ZoomTouchPinchTool","init","stackPrefetch","stackRenderers","playClip","stopClip","store","getToolForElement","addTool","addToolForElement","removeTool","removeToolForElement","setToolOptionsForElement","isToolActiveForElement","setToolActive","setToolActiveForElement","setToolEnabled","setToolEnabledForElement","setToolDisabled","setToolDisabledForElement","setToolPassive","setToolPassiveForElement","clearToolState","setElementToolStateManager","getElementToolStateManager","toolCoordinates","stackSpecificStateManager","newStackSpecificToolStateManager","addStackStateManager","loadHandlerManager","newImageIdSpecificToolStateManager","globalImageIdSpecificToolStateManager","newFrameOfReferenceSpecificToolStateManager","globalFrameOfReferenceSpecificToolStateManager","orientation","SaveAs","enableLogger","disableLogger","importInternal","import","register","registerSome","wwwcSynchronizer","updateImageSynchronizer","Synchronizer","stackScrollSynchronizer","stackImagePositionSynchronizer","stackImagePositionOffsetSynchronizer","stackImageIndexSynchronizer","panZoomSynchronizer","requestPoolManager","version","defaultConfiguration","_addCornerstoneEventListeners","_initModules","globalConfigurationModule","configurationEntry","moduleName","assign","autoResizeViewports","windowResizeHandler","_removeCornerstoneEventListeners","elementEnabledEvent","ELEMENT_ENABLED","elementDisabledEvent","ELEMENT_DISABLED","events","addEnabledElement","removeEnabledElement","modules","key","onRegisterCallback","BaseTool","BaseBrushTool","MouseCursor","cursors","handleActivator","moveHandleNearImagePoint","moveAnnotation","mixins","activeOrDisabledBinaryTool","enabledOrDisabledBinaryTool","setShadow","drawCircle","drawEllipse","drawRect","fillOutsideRect","drawArrow","drawLinkedTextBox","drawHandles","getLuminance","getROITextBoxCoords","calculateSUV","setContextToDisplayFontSize","scrollToIndex","scroll","roundToDecimal","projectPatientPointToImagePlane","imagePointToPatientPoint","planePlaneIntersection","pointInsideBoundingBox","makeUnselectable","getRGBPixels","getDefaultSimultaneousRequests","getMaxSimultaneousRequests","getBrowserInfo","isMobileDevice","angleBetweenPoints","numbersWithCommas","lineSegDistance","convertToVector3","clip","clipToBox","debounce","deepmerge","getPixelSpacing","isEmptyObject","isObject","isPointInImage","isPointInPolygon","throttle","wait","waitForEnabledElementImageToLoad","getKeyPressData","ellipseUtils","freehandUtils","segmentationUtils","zoomUtils","renderData","imageRect","handleOutsideImage","allowedOutsideImage","insideRect","distanceThreshold","nearbyHandle","hasOwnProperty","_isHandleNearImagePoint","handleName","pointNearHandle","hasBoundingBox","handleCanvas","canvasPoint","activeHandle","_getActiveHandle","manipulatorStateModule","_dragEvents","_upOrEndEvents","annotation","doneMovingCallback","preventHandleOutsideImage","dragHandler","_dragHandler","upOrEndHandler","_upOrEndHandler","setters","addActiveManipulatorForElement","_cancelEventHandler","movesIndependently","updateCachedStats","modifiedEventData","_endHandler","removeActiveManipulatorForElement","warn","runAnimation","value","fingerDistance","aboveFinger","targetLocation","_animate","fingerOffset","distanceRemaining","linearDistEachFrame","requestAnimationFrame","_moveEvents","_moveEndEvents","moveHandler","_moveHandler","moveEndHandler","_moveEndHandler","_stopImmediatePropagation","passiveCallback","enabledCallback","activeCallback","circleSegmentationMixin","polylineSegmentationMixin","freehandSegmentationMixin","rectangleSegmentationMixin","renderBrushMixin","_resetHandles","brushColor","startCanvas","endCanvas","_startOutliningRegion","consumeEvent","_isEmptyObject","_applyStrategy","_setHandlesAndUpdate","previousPixeldata","slice","operationData","segmentationMixinType","applyActiveStrategy","operation","imageIdIndex","diff","getDiffBetweenPixelData","pushState","updateSegmentsOnLabelmap2D","mouseClickCallback","touchDragCallback","touchEndCallback","mouseUpCallback","initializeMixin","currentHandle","_addPoint","isNotTheFirstHandle","renderBrush","mousePosition","_drawing","_lastImageCoords","_mouseUpRender","columns","circleRadius","mouseCoordsCanvas","vector","vec3","orientationX","orientationY","orientationZ","z","Vector3","MIN","getOrientationString","invertOrientationString","orientationString","inverted","replace","toUpperCase","requestPool","interaction","thumbnail","prefetch","numRequests","maxNumRequests","awake","grabDelay","addRequest","imageId","preventCache","doneCallback","failCallback","addToBeginning","Error","requestDetails","imageLoadObject","imageCache","getImageLoadObject","promise","then","error","unshift","clearRequestStack","startAgain","startGrabbing","sendRequest","requestTypeToLoadPriority","priority","loader","loadImage","loadAndCacheImage","maxSimultaneousRequests","currentRequests","requestsToSend","getNextRequest","shift","getRequestPool","FusionRenderer","layerIds","findImageFn","imageStacks","Number","isInteger","baseImageObject","currentImageId","imageIds","overlayImageStacks","baseImage","baseLayerId","setLayerImage","addLayer","displayImage","imgObj","overlayLayerIndex","layerIndex","currentLayerId","setActiveLayer","getPlayClipTimeouts","speed","sample","delay","sum","limit","timeouts","isTimeVarying","stopClipWithData","playClipData","id","intervalId","usingFrameTimeVector","clearInterval","triggerStopEvent","eventDetail","framesPerSecond","playClipTimeouts","stackToolData","stackRenderer","stackRendererData","stackData","playClipToolData","lastFrameTimeStamp","frameRate","frameTimeVector","ignoreFrameTimeVector","reverse","loop","playClipAction","startLoadingHandler","endLoadingHandler","errorLoadingHandler","newImageIdIndex","imageCount","getStartLoadHandler","getEndLoadHandler","getErrorLoadingHandler","render","playClipTimeoutHandler","setInterval","requestType","maxImagesToPrefetch","Infinity","preserveExistingPool","resetPrefetchTimeout","resetPrefetchDelay","range","lowEnd","highEnd","round","arr","c","apply","nearestIndex","l","v","low","indexOf","high","stack","stackPrefetchData","indicesToRequest","enabled","removeFromList","splice","sort","a","b","indicesToRequestCopy","nearest","nextImageIdIndex","imageIndex","lowerIndex","higherIndex","imageIdsToPrefetch","currentIndex","shouldSkipLower","shouldSkipHigher","shouldLoadLower","shouldLoadHigher","imageToLoad","getPromiseRemovedHandler","onImageUpdated","target","stackPrefetchDataArray","indexOfCurrentImage","promiseRemovedHandler","IMAGE_CACHE_PROMISE_REMOVED","getConfiguration","setConfiguration","config","setMaxSimultaneousRequests","addFrameOfReferenceSpecificToolState","frameOfReference","frameOfReferenceToolState","getFrameOfReferenceSpecificToolState","removeFrameOfReferenceSpecificToolState","indexOfData","get","remove","saveImageIdToolState","restoreImageIdToolState","imageIdToolState","saveToolState","restoreToolState","savedToolState","addElementToolState","addImageIdToolState","getElementToolState","getImageIdToolState","clearElementToolState","clearImageIdToolState","clear","_DEFAULT_LOAD_HANDLER","defaultStartLoadHandler","defaultEndLoadHandler","defaultErrorLoadingHandler","_getUUIDFromElement","uuid","setStartLoadHandler","handler","setEndLoadHandler","setErrorLoadingHandler","removeHandlers","toolNames","oldStateManager","addStackSpecificToolState","getStackSpecificToolState","stackSpecificToolStateManager","stackStateManagers","otherTools","stackTools","concat","defaultFontSize","defaultFont","defaultBackgroundColor","setFont","setFontSize","setBackgroundColor","activeColor","fillColor","setFillColor","getFillColor","setToolColor","setActiveColor","getActiveColor","getColorIfActive","coordsData","setCoords","getCoords","toolStateManager","uuidv4","defaultWidth","activeWidth","setToolWidth","setActiveWidth","ApiTool","props","toolAlreadyAddedToElement","_addToolGlobally","globalToolSyncEnabled","toolAlreadyAddedGlobally","globalTools","activeBindings","isMultiPartTool","proximity","clickProximity","touchProximity","globalToolChangeHistory","activeMultiPartTool","svgCursorUrl","enabledElementByUID","enabledElementUID","segmentation","cursor","globalConfiguration","manipulatorState","elementEnabledEvt","imageRenderedEventDispatcher","newImageEventDispatcher","mouseEnabled","mouseEventListeners","wheelEventListener","mouseToolEventDispatcher","touchEnabled","touchEventListeners","touchToolEventDispatcher","_addEnabledElement","_initModulesOnElement","_addGlobalToolsToElement","_repeatGlobalToolHistory","enabledElementCallback","setToolModeFns","disabled","historyEvent","args","elementDisabledEvt","_removeAllToolsForElement","_removeEnabledElement","_removeLoadHandlers","_cleanModulesOnElement","foundElementIndex","findIndex","removeEnabledElementCallback","iconSize","viewBox","mousePoint","mousePointerGroupString","defaultOptions","newOptions","showSVGCursors","activeManipulators","cancelFn","enabledElementUUID","cancelActiveManipulatorsForElement","_cancelActiveManipulatorsForElementUUID","cancelActiveManipulators","_cornerstoneNewImageHandler","getActiveLabelmapIndex","elementOrEnabledElementUID","getElement","stackState","firstImageId","brushStackState","series","setActiveLabelmapIndex","numberOfFrames","size","addLabelmap3D","getActiveSegmentIndex","setActiveSegmentIndex","segmentsPerLabelmap","incrementActiveSegmentIndex","_changeActiveSegmentIndex","decrementActiveSegmentIndex","increaseOrDecrease","UINT_16_ARRAY","ARRAY_TYPES","FLOAT_32_ARRAY","addLabelmap2D","sliceLength","elementOffset","arrayType","Uint16Array","buffer","Float32Array","bytesPerVoxel","ArrayBuffer","metadata","undo","redo","setColorLUT","colorLUT","_checkColorLUTLength","_generateNewColorLUT","setColorLUTIndexForLabelmap3D","getColorForSegmentIndexColorLUT","labelmap3DOrColorLUTIndex","getColorLUT","setColorForSegmentIndexOfColorLUT","colorArray","numberOfColors","rgbArr","getRGBAfromHSLA","getNextHue","getNextL","goldenAngle","hueValue","maxL","minL","incL","hue","s","alpha","m","r","g","minRadius","maxRadius","storeHistory","deleteSegment","indexOfSegment","getBrushColor","drawing","_getElement","HTMLElement","storeGetters","getLabelmap2D","getLabelmap2DByImageIdIndex","getSegmentsOnPixelData","getLabelmapBuffers","getLabelmaps3D","labelmapBuffers","getActiveLabelmapBuffer","getLabelmapStats","Promise","resolve","_getImagePlanes","sufficientMetadata","imagePlanes","imagePromises","all","images","stats","_calculateLabelmapStats","metadataProvider","metaData","imagePlaneModule","voxelsPerFrame","_getVoxelsPerFrameForSegment","volumeWeightedMean","values","volume","voxelInMM3","volumeWeightedStDev","stdDevSum","pow","mean","stdDev","sliceThickness","_getSliceThickness","segmentationPixelData","imagePixelData","getPixelData","frameIndex","numberOfSlices","ipp","imagePositionPatient","ippAbove","distanceBetweenSlices","ippBelow","ipp1","ipp2","getLabelmap3D","getSegmentOfActiveLabelmapAtEvent","segmentSet","Set","iterator","done","next","operations","pop","applyState","replaceIndex","diffI","getMetadata","isSegmentVisible","labelmap2DByImageIdIndex","labelmapStats","segmentOfActiveLabelmapAtEvent","activeLabelmapBuffer","colorForSegmentIndexColorLUT","setMetadata","labelmap3DForElement","setLabelmap3DForElement","labelmap3DByFirstImageId","setLabelmap3DByFirstImageId","toggleSegmentVisibility","colorLUTIndexForLabelmap3D","colorForSegmentIndexOfColorLUT","setRadius","segmentsOnLabelmapArray","triggerLabelmapModifiedEvent","slicelengthInBytes","byteLength","segment","newRadius","toolIndex","_removeToolGlobally","setToolCursor","svgCursor","cursorBlob","getIconWithPointerSVG","URL","createObjectURL","style","resetToolCursor","_clearStateAndSetCursor","hideToolCursor","cursorSeting","revokeObjectURL","interactionTypes","_resolveInputConflicts","_setToolCursorIfPrimary","setToolModeForElement","hideDefaultCursor","_trackGlobalToolModeChange","setToolMode","changeEvent","_getNormalizedOptions","_mergeMouseButtonMask","mergeOptions","statusChangeEventData","inputResolver","_inputResolvers","activeToolsForElement","toolHasAnyActiveInteractionType","_resolveMouseInputConflicts","hasMouseButtonMask","activeToolWithMatchingMouseButtonMask","mask","_resolveTouchInputConflicts","activeTouchTool","activeMultiTouchToolWithOneTouchPointer","isMultiTouchActive","_resolveMultiTouchInputConflicts","activeMultiTouchTool","_resolveGenericInputConflicts","interactionTypeFlag","activeToolWithActiveInteractionType","arbitraryChangeHistoryLimit","globalTool","stringBindings","_determineStringBindings","binding","mouseButtonMasks","Mouse","MouseWheel","Touch","TouchPinch","TouchRotate","DoubleTap","MultiTouch","o","newMask","oldMask","reduce","acc","unique","array","self","that","sourceElements","targetElements","ignoreFiredEvents","initialData","eventHandler","setHandler","getHandler","getDistances","distances","sourceElement","sourceEnabledElement","sourceImageId","sourceImagePlane","sourceImagePosition","targetElement","targetEnabledElement","targetImageId","targetImagePlane","targetImagePosition","clone","sub","fireEvent","isDisabled","noElements","targetIndex","sourceIndex","positionDifference","onEvent","addSource","split","oneEvent","updateDisableHandlers","addTarget","removeSource","removeTarget","getSourceElements","getTargetElements","setViewport","disableHandler","clearToolOptionsByElement","elements","destroy","synchronizer","sourceViewport","targetViewport","sourceStackToolDataSource","sourceStackData","targetStackToolDataSource","targetStackData","stackToolDataSource","minDistance","MAX_VALUE","finalPosition","imagePlane","imagePosition","distanceToSquared","newImageId","voi","windowWidth","windowCenter","invert","item","overwrite","isValidInput","registerModule","registerMixin","registerItem","itemKey","alreadyRegistered","isItemNameRegistered","mixin","isMixinRegistered","newModule","isModuleNameRegistered","items","elementToolOptions","toolOptions","optionsObject","toolOptionObject","elementOptions","clearToolOptions","clearToolOptionsByToolType","clearToolOptionsByToolName","defaultProps","crosshairsCursor","mouseDownCallback","_chooseLocation","sourceImagePoint","patientPoint","syncContext","synchronizationContext","rowCosines","columnCosines","row","column","normal","cross","dot","fitToWindow","strategies","default","defaultStrategy","minimal","minimalStrategy","probeCursor","_movingEventCallback","_endMovingEventCallback","dragEventData","Boolean","fontHeight","storedPixels","str","getStoredPixels","sp","mo","slope","intercept","suv","parseFloat","toFixed","pageCoordY","toolCoords","seriesModule","modality","modalityPixelValueText","eraserCursor","_deleteAllNearbyTools","FreehandHandleData","referencedToolName","getDefaultFreehandRoiSculptorToolConfiguration","freehandRoiSculptorCursor","initialConfiguration","_active","activeMouseUpCallback","activeTouchEndCallback","activeMouseDragCallback","currentTool","dragColor","_toolSizeCanvas","mouseLocation","showCursorOnHover","_recentTouchEnd","_renderHoverCursor","_selectFreehandTool","_initialiseSculpting","_getMouseLocation","_sculpt","_activeEnd","_deselectAllTools","_invalidateToolData","mouseUpRender","_deactivateSculpt","preventPropagation","freehandRoiTool","radiusCanvas","distanceFromPointCanvas","limitRadiusOutsideRegion","unlimitedRadius","_limitCursorRadiusCanvas","hoverCursorFadeDistance","hoverCursorFadeAlpha","hoverColor","closestToolIndex","_getClosestFreehandToolOnElement","_configureToolSize","_activateFreehandTool","_activateSculpt","_sculptData","toolSize","_toolSizeImage","minSpacing","maxSpacing","pushedHandles","_pushHandles","first","_insertNewHandles","_consolidateHandles","distanceToHandle","_pushOneHandle","last","directionUnitVector","position","lastHandleIndex","constructor","_getPreviousHandleIndex","indiciesToInsertAfter","_findNewHandleIndicies","newIndexModifier","insertIndex","_insertHandleRadially","_checkSpacing","pointAfterLast","_getNextHandleIndex","pointBeforeFirst","nextHandleIndex","distanceToNextHandle","previousIndex","nextIndex","_getNextHandleIndexBeforeInsert","insertPosition","_getInsertPosition","handleData","addLine","closePairs","_findCloseHandlePairs","_mergeCloseHandles","pair","removedIndexModifier","_getCorrectedPair","_combineHandles","newClosePairs","handlePair","midPoint","handleAfterPairIndex","radiusImage","distanceFromPoint","_limitCursorRadiusImage","TOUCH_TAP","_limitCursorRadius","canvasCoords","areaModifier","canvasArea","area","freehand","pixelCoords","closest","distanceFromToolI","distanceToMidPoint","correctedPair","magnifySize","magnificationLevel","magnifyCursor","zoomCanvas","zoomElement","_createMagnificationCanvas","disabledCallback","_destroyMagnificationCanvas","_addMagnifyingGlass","_updateMagnifyingGlass","_removeMagnifyingGlass","touchDragEndCallback","_drawMagnificationTool","_removeZoomElement","_drawZoomedElement","querySelector","display","magnifyCanvas","canvasLocation","copyFrom","touchOffset","magnifyPosition","magnifierBox","getBoundingClientRect","origCanvas","zoomEnabledElement","classList","appendChild","removeChild","drawAllMarkers","forceImageUpdate","markers","getOrientationMarkers","getOrientationMarkerPositions","textWidths","drawTopLeftText","drawBottomRightText","oppositeRow","oppositeColumn","defaultConfig","overlayPlaneMetadata","overlays","viewportPixelSpacing","displayedArea","imageWidth","brhc","tlhc","imageHeight","overlay","layerCanvas","layerContext","globalCompositeOperation","overlayX","isNaN","isFinite","overlayY","_dragCallback","_getTranslation","_applyTranslation","panCursor","renderer","renderActiveReferenceLine","setToPixelCoordinateSystem","referenceEnabledElement","horizontal","horizontalStrategy","vertical","verticalStrategy","rotateCursor","dragCallback","initialPoints","centerPoints","angleInfo","minorTickLength","majorTickLength","colPixelSpacing","rowImagePixelSpacing","colImagePixelSpacing","canvasSize","verticalIntervalScale","horizontalIntervalScale","hscaleBounds","computeScaleBounds","vscaleBounds","imageAttributes","verticalMinorTick","horizontalMinorTick","verticalLine","horizontalLine","drawVerticalScalebarIntervals","drawHorizontalScalebarIntervals","horizontalReduction","verticalReduction","hReduction","vReduction","canvasBounds","startPoint","endPoint","allowSkipping","pixelsPerImage","_getPixelPerImage","_getDeltaY","imageIdIndexOffset","deltaPointsY","stackScrollSpeed","offsetHeight","stackScrollCursor","minWindowWidth","wwwcRegionCursor","_applyWWWCRegion","obj","pixelLuminanceData","minMaxMean","_calculateMinMaxMean","minPixelValue","maxPixelValue","voiLUT","pixelLuminance","globalMin","globalMax","numPixels","spv","basicLevelingStrategy","wwwcCursor","maxVOI","minVOI","imageDynamicRange","multiplier","minScale","maxScale","ticks","updatedViewport","changeViewportScale","correctShift","translateStrategy","zoomToCenter","zoomToCenterStrategy","preventZoomOutsideImage","zoomCursor","startX","startY","newCoords","translateSpeed","outwardsMinScaleToTranslate","minTranslation","desiredTranslation","distanceToDesired","pageStartX","pageStartY","imageStartX","imageStartY","angleCursor","drawHandlesOnHover","renderDashed","preventNewMeasurement","throttledUpdateCachedStats","middle","sideA","getSide","sideB","sideC","sideALength","sideBLength","sideCLength","acos","rAngle","handleStartCanvas","handleMiddleCanvas","lineOptions","handleOptions","textBoxText","textWidth","transform","internal","getTransform","transformPoint","suffix","String","fromCharCode","parseInt","handleEnd","handleStart","getTextCallback","changeTextCallback","arrowFirst","arrowAnnotateCursor","handleEndCanvas","textHeight","midpoint","_updateTextForNearbyAnnotation","_doneChangingTextCallback","updatedText","deleteTool","doneChangingTextCallback","prompt","emptyLocationCallback","changeMeasurementLocationCallback","getMeasurementLocationCallback","additionalData","bidirectionalCursor","_moveCallback","handleSelectedMouseCallback","handleSelectedTouchCallback","pixelSpacing","calculateLongestAndShortestDiameters","longestDiameter","shortestDiameter","circleRoiCursor","goodEventData","hasStartAndEndHandles","getDistance","distanceFromCenter","_calculateStats","cachedStats","newContext","hasPixelSpacing","circleOptions","defaultCoords","_findTextBoxAnchorPoints","textBoxContent","_createTextBoxContent","unit","_getUnit","showHounsfieldUnits","startHandle","endHandle","getCircleCoords","isColorImage","meanStdDevSUV","showMinMax","otherLines","hasStandardUptakeValues","meanString","stdDevString","SUVtext","meanSuvString","stdDevSuvString","targetStringLength","minString","maxString","_formatArea","circleCoordinates","getPixels","ellipseMeanStdDev","calculateEllipseStatistics","count","variance","cobbAngleCursor","hasIncomplete","complete","start2","end2","dx1","ceil","dy1","dx2","dy2","toMoveHandle","pendingMeasurement","getIncomplete","ev","onMeasureModified","ellipticalRoiCursor","validParameters","handleNearImagePoint","minorEllipse","majorEllipse","pointInMinorEllipse","pointInEllipse","pointInMajorEllipse","ellipseOptions","_getEllipseImageCoordinates","ellipseCoordinates","insertOrDelete","freehandArea","calculateFreehandStatistics","freehandIntersect","defaultFreehandConfiguration","freehandRoiCursor","_dragging","_modifying","_drawingMouseDownCallback","_drawingMouseMoveCallback","_drawingMouseDragCallback","_drawingMouseUpCallback","_drawingMouseDoubleClickCallback","_editMouseUpCallback","_editMouseDragCallback","_drawingTouchStartCallback","_drawingTouchDragCallback","_drawingDoubleTapClickCallback","_editTouchDragCallback","isPointNearTool","_pointNearHandle","distanceI","meanStdDev","bounds","polyBoundingBox","scaling","invalidHandlePlacement","invalidColor","alwaysShowHandles","activeHandleRadius","canComplete","completeHandleRadius","firstHandle","moSuffix","meanText","stdDevText","areaText","_startDrawing","nearby","_pointNearHandleAllTools","handleNearby","dragOrigin","_activateModify","_checkInvalidHandleLocation","_drawingDrag","_addPointPencilMode","lastHandlePlaced","_endDrawing","completeDrawing","handleIndex","modify","_getPrevHandleIndex","lastLineIndex","lastLine","_deactivateModify","_dropHandle","currentHandleData","previousHandleData","lastHandleID","_activateDraw","_activeDrawingToolReference","newHandleData","fireModifiedEvent","handleFurtherThanMinimumSpacing","_isDistanceLargerThanSpacing","every","_deactivateDraw","fireCompletedEvent","_checkHandlesPencilMode","_checkHandlesPolygonMode","mouseAtOriginHandle","_isDistanceSmallerThanCompleteSpacingCanvas","newHandle","_invalidHandlePencilMode","_isDistanceSmallerThanSpacing","p1","p2","p1Canvas","p2Canvas","_drawingInteractionType","completeHandleRadiusTouch","_compareDistanceToSpacing","comparison","spacing","_closeToolIfDrawing","lengthCursor","dx","dy","measuredValue","_sanitizeMeasuredValue","parsedValue","isNumber","hasEndHandle","probeCoords","rectangleRoiCursor","distanceToPoint","rectOptions","_getRectangleImageCoordinates","roiCoordinates","roiMeanStdDev","_calculateRectangleStats","rectangle","sumSquared","current","ascending","textMarkerCursor","touchPressCallback","_changeText","doubleClickCallback","increment","insideBoundingBox","checkPixelSpacing","timestamp","getTime","perpendicularStart","hasHandlesOutside","longestDiameterSize","shortestDiameterSize","isTooSmal","isTooFast","updatePerpendicularLineHandles","locked","getHandle","extraAttributes","mouseEventData","isCreating","perpendicularEnd","handleDoneMove","selected","handleParams","unselectAllHandles","invertHandles","getDoneMovingCallback","setHandlesMovingState","touchMoveHandle","swapAttribute","attribute","originalA","originalB","swapHandles","wx","wy","handleActivatorChanged","newActiveState","hover","nearTool","nearToolAndInactive","notNearToolAndActive","createLine","getBaseData","fixedPoint","lineSegment","longLine","perpendicularLine","intersection","intersectLine","distanceToFixed","getDistanceWithPixelSpacing","distanceFromTool","setHandlesPosition","currentImage","getImage","imageRenderedHandler","newImage","interactionEndCallback","moveLongLine","proposedPoint","baseData","newLineLength","distanceRatio","newIntersection","newLine","updatePerpendicularLine","mid","distancePS","distancePE","getLineVector","rowMultiplier","columnMultiplier","getDirectionMultiplier","isPerpendicularEndFixed","getHelperLine","highNumber","MAX_SAFE_INTEGER","getMovingPoint","lineHasLength","lineLength","movePerpendicularLine","helperLine","movingPoint","isMovingStart","movingKey","fixedKey","movedPoint","outOfBounds","result","d1","d2","touchEndEvents","pointNearPerpendicular","perpendicularLineOptions","strokeWidth","getTextBoxText","lengthText","widthText","labels","tempW","tempL","calcX","calcY","vectorX","vectorY","endX","endY","perpendicularLineLength","nearToolAndNotMarkedActive","notNearToolAndMarkedActive","alwaysEraseOnClick","_paint","_startPainting","_startListeningForMouseUp","shouldErase","_isCtrlDown","paintEventData","previousPixelData","newPixelData","_endPainting","_stopListeningForMouseUp","oldRadius","activeStrategy","_options","_configuration","_applyMixins","_cursors","defaultCursor","mixinsArray","strategy","changeCursor","cursorModule","iconGroupString","svgString","_generateIconSVGString","Blob","_generateIconWithPointerSVGString","svgOptions","svgSize","_injectColors","toolColor","segToolCursorBoundaries","minusRect","plusRect","scissorIcon","rectangleIcon","circleIcon","freehandEraseInsideCursor","freehandFillInsideCursor","freehandEraseOutsideCursor","freehandFillOutsideCursor","segRectangleEraseInsideCursor","segRectangleFillInsideCursor","segRectangleEraseOutsideCursor","segRectangleFillOutsideCursor","segCircleEraseInsideCursor","segCircleFillInsideCursor","segCircleEraseOutsideCursor","segCircleFillOutsideCursor","referenceImagePlane","referenceElement","targetImage","referenceImage","frameOfReferenceUID","targetNormal","referenceNormal","angleInRadians","angleTo","referenceLine","calculateReferenceLine","pointerArray","getCircle","drawBrushPixels","FILL_INSIDE","fillInsideCircle","FILL_OUTSIDE","fillOutsideCircle","ERASE_OUTSIDE","eraseOutsideCircle","ERASE_INSIDE","eraseInsideCircle","CORRECTION","correction","fillInsideFreehand","fillOutsideFreehand","eraseOutsideFreehand","eraseInsideFreehand","fillInsideRectangle","fillOutsideRectangle","eraseOutsideRectangle","eraseInsideRectangle","imagePlaneOfCurrentImage","imagesInRange","ippOfCurrentImage","_getImagesInRange","radiusOnImage","previousPixeldataForImagesInRange","labelmap2DForImageIdIndex","radiusInMM","_getRadiusOnImage","nodes","snapPointsToGrid","scissorOperation","checkIfSimpleScissorOperation","isScissorOperation","workingLabelMap","Uint8Array","splitLineIntoSeperateOperations","performOperation","lastNode","allInside","allOutside","node","additive","shouldFillOver","getPixelIndex","pixelCoord","getPixelCoordinateFromPixelIndex","getPixelPaths","pixelPath","leftPath","rightPath","firstPixelOnPath","xMax","yMax","expandBoundingBox","clipBoundingBox","getter","leftArea","rightArea","leftPixel","leftValue","fillFromPixel","rightPixel","rightValue","replaceValue","fillValue","border","floodFill","flooded","floodedI","getPixelPathBetweenPixels","getNodesPerpendicularToPathPixel","pathPixel","nextPathPixel","isLabel","operationIndex","eraseCircle","inside","getBoundingBoxAroundCircle","eraseInsideShape","eraseOutsideShape","eraseFreehand","vertices","getBoundingBoxAroundPolygon","eraseRectangle","eraseOutsideBoundingBox","fillCircle","fillInsideShape","fillOutsideShape","fillFreehand","fillRectangle","fillOutsideBoundingBox","filename","mimetype","msToBlob","blob","navigator","msSaveBlob","lnk","download","href","toDataURL","createEvent","initMouseEvent","dispatchEvent","p0","p12","p13","p23","storedPixelValue","skipRescale","patientStudyModule","modalityPixelValue","patientWeight","petSequenceModule","radiopharmaceuticalInfo","startTime","radiopharmaceuticalStartTime","totalDose","radionuclideTotalDose","halfLife","radionuclideHalfLife","seriesAcquisitionTime","seriesTime","acquisitionTimeInSeconds","fracToDec","fractionalSeconds","seconds","minutes","hours","injectionStartTimeInSeconds","durationInSeconds","correctedDose","exp","fractionalValue","val","box","arrayOrVector3","_copy","func","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","useRAF","TypeError","invokeFunc","time","thisArg","startTimer","pendingFunc","cancelTimer","cancelAnimationFrame","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","pending","debounced","isInvoking","setup","env","createDebug","coerce","humanize","require","instances","names","skips","formatters","selectColor","namespace","hash","charCodeAt","colors","prevTime","curr","ms","prev","match","format","formatter","formatArgs","logFn","useColors","extend","delimiter","newDebug","namespaces","len","RegExp","substr","instance","toNamespace","join","test","regexp","substring","message","load","storage","localstorage","debugLib","process","__nwjs","userAgent","toLowerCase","documentElement","WebkitAppearance","console","firebug","exception","table","$1","setupDebug","lastC","setItem","removeItem","getItem","DEBUG","localStorage","JSON","stringify","isMergeableObject","nonNullObject","emptyTarget","isEmpty","cloneIfNecessary","optionsArgument","defaultArrayMerge","source","destination","mergeObject","arrayMerge","location","xRadius","yRadius","normalized","inEllipse","ClickedLineData","handleIndexArray","FreehandLineFinder","_eventData","_toolName","findTool","closeLines","_getCloseLinesInTool","clickedLineData","_findCorrectLine","_toolData","_mousePoint","closestHandle","_nearestHandleToPointAllTools","closestHandleForToolI","_nearestHandleToPoint","handleDistanceFromMousePoint","getNextHandleIndex","_distanceOfPointfromLine","_pointProjectsToLineSegment","handle1","handle2","getCanvasPointsFromHandles","getLineAsVector","_getLineOriginToMouseAsVector","mProj","magnitude","pMouse","twiceAreaOfTriangle","rMagnitude","dataHandles","statisticsObj","getSum","squared","sumPointIfInFreehand","workingSum","pixelValue","pointInFreehand","freeHandArea","candidateHandle","lastHandleId","lastHandle","doesIntersectOtherLines","modifiedHandleId","modifiedHandle","neighborHandleId","neighborHandle","q1","ignoredHandleIds","q2","doesIntersect","orient","onSegment","dataHandle","q","orientationValue","deleteInfo","_deletePoint","freehandLineFinder","insertInfo","findLine","_insertPoint","deleteHandle","_getInsertionIndex","arrayContainsZero","inROI","rayFromPointCrosssesLine","isEnclosedY","yp","y1","y2","isLineRightOfPoint","lp1","lp2","lptemp","lPointY","lineSegmentAtPoint","sign","gradient","dydx","fx","handleI","handleJ","defaultValue","currentPointsImage","keyCode","luminance","spIndex","red","green","blue","configMaxSimultaneousRequests","IE","Firefox","Opera","Chrome","Safari","ua","M","tem","exec","appName","appVersion","newMaxSimultaneousRequests","infoString","info","browserName","browserVersion","browserData","pattern","storedPixelData","corners","_determineCorners","centerX","centerY","handlesLeftToRight","_compareX","handlesTopToBottom","_compareY","vs","xi","yi","xj","yj","intersect","BASE_SCOPE","baseLogger","devMode","scope","ignorePointerEvents","webkitUserSelect","webkitTouchCallout","mozUserSelect","msUserSelect","oUserSelect","khtmlUserSelect","userSelect","unselectable","oncontextmenu","pointerEvents","parts","imagePoint","multiplyScalar","getRectangleFromImagePlane","Line3","lineRectangleIntersection","intersections","side","targetRowCosines","targetColumnCosines","targetImagePositionPatient","referenceRowCosines","referenceColumnCosines","referenceImagePositionPatient","targetPlane","Plane","setFromNormalAndCoplanarPoint","referencePlane","originDirection","intersectPlane","origin","distanceTo","angleRadians","rotatedX","rotatedY","precision","nbImages","pendingEvent","scrollWithoutSkipping","newImageHandler","imagePromise","eraseIfSegmentIndex","eraseShape","pointInShape","insideOrOutside","isSameSegment","fillShape","seed","onFlood","onBoundary","equals","defaultEquals","diagonals","startNode","permutations","prunedPermutations","visits","currentArgs","flood","boundaries","job","getArgs","prevArgs","previousArgs","visited","markAsVisited","member","markAsFlooded","pushAdjacent","markAsBoundary","safely","perm","nextArgs","f","permute","countNonZeroes","perms","permutation","string","lpad","character","pad","xCoord","yCoord","x0","y0","circleArray","oneOverRoot2","DIRECTIONS","up","upRight","downRight","down","downLeft","upLeft","moveUpRight","moveUpLeft","moveDownRight","moveDownLeft","unitVector","unitVectorFromPtoP2","dotProducts","dotProduct2D","largestIndex","getIndexOfLargestInLengthThreeArray","fontScale","scaledFontSize","lineHeight","el","CustomEvent","cancelable","initCustomEvent","random","ex","scaleLimits","oldFactor","factor","viewportOrientation","cosA","sinA","newX","newY"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,GAAG;;QAEH;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA,MAAM;QACN;QACA;QACA,MAAM;QACN;QACA;QACA;QACA,OAAO;QACP;QACA;QACA;QACA;QACA;QACA;QACA,IAAI;QACJ;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;;QAEL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA,6BAA6B;QAC7B,6BAA6B;QAC7B;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA,qBAAqB,gBAAgB;QACrC;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,qBAAqB,gBAAgB;QACrC;QACA;QACA,KAAK;QACL;QACA;QACA,KAAK;QACL;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,KAAK;;QAEL;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,KAAK;;QAEL;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA,kBAAkB,8BAA8B;QAChD;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAI;QACJ;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,IAAI;QACJ;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA,OAAO;QACP;QACA;QACA;QACA;QACA,IAAI;QACJ;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,oBAAoB,2BAA2B;QAC/C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,OAAO;QACP;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA,mBAAmB,cAAc;QACjC;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,gBAAgB,KAAK;QACrB;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA;QACA;QACA,gBAAgB,YAAY;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA,cAAc,4BAA4B;QAC1C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA,IAAI;;QAEJ;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA,eAAe,4BAA4B;QAC3C;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA,eAAe,4BAA4B;QAC3C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,iBAAiB,uCAAuC;QACxD;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,iBAAiB,uCAAuC;QACxD;QACA;QACA;QACA;QACA;QACA;QACA;QACA,iBAAiB,sBAAsB;QACvC;QACA;QACA;QACA,QAAQ;QACR;QACA;QACA;QACA;QACA;QACA;QACA,UAAU;QACV;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA,cAAc,wCAAwC;QACtD;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,OAAO;QACP;QACA;QACA;QACA;QACA;QACA;QACA,SAAS;QACT;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA;QACA;QACA,QAAQ;QACR;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,IAAI;QACJ;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,eAAe;QACf;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,sCAAsC,uBAAuB;;;QAG7D;QACA;;;;;;;;;;;;ACxxBA;AACA;AACA;;AAEA,iC;;;;;;;;;;;ACJA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;;AAEA;AACA;AACA;;AAEA,oC;;;;;;;;;;;ACVA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wC;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA,mC;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;;;;;ACNA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8B;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA,iC;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;;;;;ACPA,qBAAqB,mBAAO,CAAC,kFAAkB;;AAE/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,2B;;;;;;;;;;;ACjBA;AACA;AACA;;AAEA,kC;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,+BAA+B;AAC5E;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA,uC;;;;;;;;;;;AC1BA;AACA;AACA;;AAEA,kC;;;;;;;;;;;ACJA;AACA;AACA;;AAEA,oC;;;;;;;;;;;ACJA,cAAc,mBAAO,CAAC,2EAAmB;;AAEzC,4BAA4B,mBAAO,CAAC,gGAAyB;;AAE7D;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4C;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iC;;;;;;;;;;;ACTA,qBAAqB,mBAAO,CAAC,kFAAkB;;AAE/C,2BAA2B,mBAAO,CAAC,8FAAwB;;AAE3D,sBAAsB,mBAAO,CAAC,oFAAmB;;AAEjD;AACA;AACA;;AAEA,gC;;;;;;;;;;;ACVA,wBAAwB,mBAAO,CAAC,wFAAqB;;AAErD,sBAAsB,mBAAO,CAAC,oFAAmB;;AAEjD,wBAAwB,mBAAO,CAAC,wFAAqB;;AAErD;AACA;AACA;;AAEA,oC;;;;;;;;;;;ACVA,wBAAwB,2EAA2E,oCAAoC,mBAAmB,GAAG,EAAE,OAAO,oCAAoC,8HAA8H,GAAG,EAAE,sBAAsB;;AAEnW;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yB;;;;;;;;;;;AChBA,iBAAiB,mBAAO,CAAC,kFAAqB;;;;;;;;;;;;ACA9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACjKA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;ACvLtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,iEAAW;;AAEpC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;AChtBA;AAAA;;;;;;;;;;;;AAYe,yEAASA,OAAT,EAAkBC,EAAlB,EAAsB;AACnCD,SAAO,CAACE,IAAR;AACAD,IAAE,CAACD,OAAD,CAAF;AACAA,SAAO,CAACG,OAAR;AACD,C;;;;;;;;;;;;AChBD;AAAA;AAAA;AAAA;AACA;AAEA;;;;;;;;;;;;;;;AAce,yEAASH,OAAT,EAAkBI,KAAlB,EAAyBC,GAAzB,EAA8BC,KAA9B,EAAqCC,SAArC,EAAgDC,QAAhD,EAA0D;AACvE;AACA,MAAMC,UAAU,GAAG,EAAnB;AAEA,MAAMC,KAAK,GAAGC,IAAI,CAACC,KAAL,CAAWP,GAAG,CAACQ,CAAJ,GAAQT,KAAK,CAACS,CAAzB,EAA4BR,GAAG,CAACS,CAAJ,GAAQV,KAAK,CAACU,CAA1C,CAAd,CAJuE,CAMvE;;AAC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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAKA;;;;;AAKA;;;;;;;AAOA;;;;;;;;AAQA;;;;;;AAMA;;;;;;AAMA;;;;;AAKA;;;;;AAKA;;;;;AAKA;;;;;AAKA;;;;;AAKA;;;;;AAKA;;;;;AAKA;;;;AAKA;AAaA;AAQA;CA2BA;;AACA;AACA;CAGA;;AACA;AACA;AAEA;AACA;AACA;AACA;AAIA;AAUA;AACA;AAQA;AACA;AACA;AACA;AACA;AAKA;AACA;AAIA;CAMA;;CAGA;;AACA;CAMA;;AACA;CAGA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;;AACA;AAEA;AACA;AACA;AAEA;AAEA,IAAME,gBAAgB,GAAG;AACvB;AACA;AACAC,WAAS,EAATA,oEAHuB;AAIvBC,mBAAiB,EAAjBA,4EAJuB;AAKvBC,mBAAiB,EAAjBA,4EALuB;AAMvBC,eAAa,EAAbA,wEANuB;AAOvBC,eAAa,EAAbA,wEAPuB;AAQvBC,mBAAiB,EAAjBA,4EARuB;AASvBC,iBAAe,EAAfA,0EATuB;AAUvBC,YAAU,EAAVA,qEAVuB;AAWvBC,WAAS,EAATA,oEAXuB;AAYvBC,kBAAgB,EAAhBA,2EAZuB;AAavBC,gBAAc,EAAdA,yEAbuB;AAcvB;AACAC,WAAS,EAATA,sEAfuB;AAgBvBC,oBAAkB,EAAlBA,+EAhBuB;AAiBvBC,uBAAqB,EAArBA,kFAjBuB;AAkBvBC,sBAAoB,EAApBA,iFAlBuB;AAmBvBC,oBAAkB,EAAlBA,+EAnBuB;AAoBvBC,wBAAsB,EAAtBA,mFApBuB;AAqBvB;AACAC,gBAAc,EAAdA,8DAtBuB;AAuBvBC,0BAAwB,EAAxBA,wEAvBuB;AAwBvBC,eAAa,EAAbA,6DAxBuB;AAyBvBC,YAAU,EAAVA,0DAzBuB;AA0BvBC,yBAAuB,EAAvBA,uEA1BuB;AA2BvBC,aAAW,EAAXA,2DA3BuB;AA4BvBC,aAAW,EAAXA,2DA5BuB;AA6BvBC,wBAAsB,EAAtBA,sEA7BuB;AA8BvBC,mBAAiB,EAAjBA,iEA9BuB;AA+BvBC,SAAO,EAAPA,uDA/BuB;AAgCvBC,oBAAkB,EAAlBA,kEAhCuB;AAiCvBC,YAAU,EAAVA,0DAjCuB;AAkCvBC,iBAAe,EAAfA,+DAlCuB;AAmCvBC,kBAAgB,EAAhBA,gEAnCuB;AAoCvBC,2BAAyB,EAAzBA,yEApCuB;AAqCvBC,2BAAyB,EAAzBA,yEArCuB;AAsCvBC,iBAAe,EAAfA,+DAtCuB;AAuCvBC,gBAAc,EAAdA,8DAvCuB;AAwCvBC,UAAQ,EAARA,wDAxCuB;AAyCvBC,oBAAkB,EAAlBA,kEAzCuB;AA0CvBC,UAAQ,EAARA,wDA1CuB;AA2CvBC,oBAAkB,EAAlBA,kEA3CuB;AA4CvBC,MAAI,EAAJA,gDA5CuB;AA6CvBC,eAAa,EAAbA,oEA7CuB;AA8CvBC,gBAAc,EAAdA,qEA9CuB;AA+CvBC,UAAQ,EAARA,gEA/CuB;AAgDvBC,UAAQ,EAARA,gEAhDuB;AAiDvBC,OAAK,EAALA,uDAjDuB;AAkDvB/c,WAAS,EAATA,yDAlDuB;AAmDvBgd,mBAAiB,EAAjBA,mEAnDuB;AAoDvBC,SAAO,EAAPA,yDApDuB;AAqDvBC,mBAAiB,EAAjBA,mEArDuB;AAsDvBC,YAAU,EAAVA,gEAtDuB;AAuDvBC,sBAAoB,EAApBA,0EAvDuB;AAwDvBlF,gBAAc,EAAdA,wEAxDuB;AAyDvBmF,0BAAwB,EAAxBA,kFAzDuB;AA0DvBC,wBAAsB,EAAtBA,sEA1DuB;AA2DvBC,eAAa,EAAbA,oEA3DuB;AA4DvBC,yBAAuB,EAAvBA,8EA5DuB;AA6DvBC,gBAAc,EAAdA,qEA7DuB;AA8DvBC,0BAAwB,EAAxBA,+EA9DuB;AA+DvBC,iBAAe,EAAfA,sEA/DuB;AAgEvBC,2BAAyB,EAAzBA,gFAhEuB;AAiEvBC,gBAAc,EAAdA,qEAjEuB;AAkEvBC,0BAAwB,EAAxBA,+EAlEuB;AAmEvB/b,cAAY,EAAZA,2EAnEuB;AAoEvBpB,cAAY,EAAZA,2EApEuB;AAqEvBiC,iBAAe,EAAfA,8EArEuB;AAsEvBmb,gBAAc,EAAdA,6EAtEuB;AAuEvBC,4BAA0B,EAA1BA,yFAvEuB;AAwEvBC,4BAA0B,EAA1BA,yFAxEuB;AAyEvB1gB,WAAS,EAATA,sEAzEuB;AA0EvBxC,WAAS,EAATA,sEA1EuB;AA2EvBd,YAAU,EAAVA,uEA3EuB;AA4EvBikB,iBAAe,EAAfA,4EA5EuB;AA6EvBC,2BAAyB,EAAzBA,wGA7EuB;AA8EvBC,kCAAgC,EAAhCA,+GA9EuB;AA+EvBC,sBAAoB,EAApBA,mGA/EuB;AAgFvBC,oBAAkB,EAAlBA,+EAhFuB;AAiFvBC,oCAAkC,EAAlCA,mHAjFuB;AAkFvBC,uCAAqC,EAArCA,sHAlFuB;AAmFvBC,6CAA2C,EAA3CA,6HAnFuB;AAoFvBC,gDAA8C,EAA9CA,gIApFuB;AAqFvB5F,2BAAyB,EAAzBA,iGArFuB;AAsFvB6F,aAAW,EAAXA,8DAtFuB;AAuFvBC,QAAM,EAANA,wDAvFuB;AAwFvBC,cAAY,EAAZA,uDAxFuB;AAyFvBC,eAAa,EAAbA,wDAzFuB;AA0FvBC,gBAAc,EAAdA,2DA1FuB;AA2FvBC,QAAM,EAAED,2DA3Fe;AA4FvBE,UAAQ,EAARA,gEA5FuB;AA6FvBC,cAAY,EAAZA,oEA7FuB;AA8FvBC,kBAAgB,EAAhBA,6EA9FuB;AA+FvBC,yBAAuB,EAAvBA,oFA/FuB;AAgGvBC,cAAY,EAAZA,yEAhGuB;AAiGvBC,yBAAuB,EAAvBA,oFAjGuB;AAkGvBC,gCAA8B,EAA9BA,2FAlGuB;AAmGvBC,sCAAoC,EAApCA,iGAnGuB;AAoGvBC,6BAA2B,EAA3BA,wFApGuB;AAqGvBC,qBAAmB,EAAnBA,gFArGuB;AAsGvBC,oBAAkB,EAAlBA,2EAtGuB;AAuGvBxnB,UAAQ,EAARA,4DAvGuB;AAwGvBiJ,QAAM,EAANA,mDAxGuB;AAyGvBwe,SAAO,EAAPA,oDAAOA;AAzGgB,CAAzB,C,CA4GA;;AACA;AA2GA;AAEe1F,+EAAf,E;;;;;;;;;;;;AC/aA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;AAYe,2EAAoC;AAAA,MAA3B2F,oBAA2B,uEAAJ,EAAI;;AACjDC,+BAA6B;;AAC7BC,cAAY;;AAEZ,MAAMC,yBAAyB,GAAGhgB,iEAAS,CAAC,qBAAD,CAA3C;;AAEA,MAAI2D,KAAK,CAACC,OAAN,CAAcic,oBAAd,CAAJ,EAAyC;AACvCA,wBAAoB,CAAClkB,OAArB,CAA6B,UAAAskB,kBAAkB,EAAI;AAAA,UACzCC,UADyC,GACXD,kBADW,CACzCC,UADyC;AAAA,UAC7Brf,aAD6B,GACXof,kBADW,CAC7Bpf,aAD6B;AAGjD,UAAMkZ,MAAM,GAAG/Z,iEAAS,CAACkgB,UAAD,CAAxB;;AAEA,UAAInG,MAAJ,EAAY;AACVA,cAAM,CAAClZ,aAAP,GAAuBxG,MAAM,CAAC8lB,MAAP,CACrB,EADqB,EAErBpG,MAAM,CAAClZ,aAFc,EAGrBA,aAHqB,CAAvB;AAKD;AACF,KAZD;AAaD,GAdD,MAcO;AACL;AACAmf,6BAAyB,CAACnf,aAA1B,GAA0CxG,MAAM,CAAC8lB,MAAP,CACxC,EADwC,EAExCH,yBAAyB,CAACnf,aAFc,EAGxCgf,oBAHwC,CAA1C;AAKD;;AAED,MAAIG,yBAAyB,CAACnf,aAA1B,CAAwCuf,mBAA5C,EAAiE;AAC/DC,kFAAmB,CAACnf,MAApB;AACD;AACF;AAED;;;;;;;;AAOA,SAAS4e,6BAAT,GAAyC;AACvC;AACAQ,kCAAgC;;AAEhC,MAAMloB,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,MAAMmoB,mBAAmB,GAAGnoB,WAAW,CAACgJ,MAAZ,CAAmBof,eAA/C;AACA,MAAMC,oBAAoB,GAAGroB,WAAW,CAACgJ,MAAZ,CAAmBsf,gBAAhD;AAEAtoB,aAAW,CAACuoB,MAAZ,CAAmBxf,gBAAnB,CAAoCof,mBAApC,EAAyDK,6EAAzD;AACAxoB,aAAW,CAACuoB,MAAZ,CAAmBxf,gBAAnB,CACEsf,oBADF,EAEEI,gFAFF;AAID;AAED;;;;;;;;;AAOA,SAASP,gCAAT,GAA4C;AAC1C,MAAMloB,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,MAAMmoB,mBAAmB,GAAGnoB,WAAW,CAACgJ,MAAZ,CAAmBof,eAA/C;AACA,MAAMC,oBAAoB,GAAGroB,WAAW,CAACgJ,MAAZ,CAAmBsf,gBAAhD;AAEAtoB,aAAW,CAACuoB,MAAZ,CAAmBpf,mBAAnB,CACEgf,mBADF,EAEEK,6EAFF;AAIAxoB,aAAW,CAACuoB,MAAZ,CAAmBpf,mBAAnB,CACEkf,oBADF,EAEEI,gFAFF;AAID;AAED;;;;;;;AAOA;;;;;;;;;;AAQA,SAASd,YAAT,GAAwB;AACtB,MAAMe,OAAO,GAAG/D,uDAAK,CAAC+D,OAAtB;AAEAzmB,QAAM,CAACC,IAAP,CAAYwmB,OAAZ,EAAqBnlB,OAArB,CAA6B,UAASolB,GAAT,EAAc;AACzC,QAAI,OAAOD,OAAO,CAACC,GAAD,CAAP,CAAaC,kBAApB,KAA2C,UAA/C,EAA2D;AACzDF,aAAO,CAACC,GAAD,CAAP,CAAaC,kBAAb;AACD;AACF,GAJD;AAKD,C;;;;;;;;;;;;ACvHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AASA;AAMA;AACA;AAEA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEO,IAAM/G,GAAG,GAAG;AACjB,mBAAiBgH,+DADA;AAEjB,6BAA2Brb,yEAFV;AAGjB,wBAAsBsb,oEAHL;AAKjB,+BAA6BC,sEALZ;AAMjB,mBAAiBC,oDANA;AAQjB,yCAAuCvZ,6EARtB;AASjB,0CAAwCe,8EATvB;AAUjB,kCAAgCyY,sEAVf;AAWjB,iCAA+BnY,qEAXd;AAYjB,6BAA2B/G,iEAZV;AAajB,gCAA8BC,oEAbb;AAcjB,2CAAyCkf,oFAdxB;AAejB,+CAA6Czc,wFAf5B;AAgBjB,iCAA+B0c,0EAhBd;AAkBjB,uCAAqCC,wDAAM,CAACC,0BAlB3B;AAmBjB,wCAAsCD,wDAAM,CAACE,2BAnB5B;AAqBjB,2BAAyB1U,+DArBR;AAsBjB,kBAAgB3O,sDAtBC;AAuBjB,kBAAgB/F,sDAvBC;AAwBjB,uBAAqBqpB,2DAxBJ;AAyBjB,sBAAoBpqB,0DAzBH;AA0BjB,uBAAqBsX,2DA1BJ;AA2BjB,6BAA2B/W,iEA3BV;AA4BjB,wBAAsB8pB,4DA5BL;AA6BjB,yBAAuBC,6DA7BN;AA8BjB,sBAAoBC,0DA9BH;AA+BjB,6BAA2BC,iEA/BV;AAgCjB,yBAAuBhlB,gEAhCN;AAiCjB,uBAAqBilB,8DAjCJ;AAkCjB,qBAAmBzjB,yDAlCF;AAmCjB,2BAAyBC,+DAnCR;AAoCjB,sBAAoBvB,6DApCH;AAqCjB,+BAA6BglB,sEArCZ;AAsCjB,yBAAuBC,gEAtCN;AAuCjB,0BAAwB9kB,qEAvCP;AAyCjB,uBAAqB+kB,8DAzCJ;AA0CjB,8BAA4BC,kEA1CX;AA2CjB,qBAAmB3P,4DA3CF;AA4CjB,uBAAqB4P,8DA5CJ;AA6CjB,sCAAoCC,6EA7CnB;AA8CjB,wBAAsBC,+DA9CL;AA+CjB,iBAAeC,wDA/CE;AAgDjB,yBAAuBC,gEAhDN;AAiDjB,0CAAwCC,wFAjDvB;AAkDjB,mCAAiCC,iFAlDhB;AAmDjB,iCAA+BC,+EAnDd;AAoDjB,iCAA+BC,wEApDd;AAqDjB,2BAAyBC,kEArDR;AAsDjB,uBAAqBC,8DAtDJ;AAuDjB,yCAAuCC,mGAvDtB;AAwDjB,qCAAmCC,+FAxDlB;AAyDjB,yBAAuBC,mFAzDN;AA0DjB,yBAAuBC,mFA1DN;AA2DjB,6BAA2BC,oEA3DV;AA4DjB,4BAA0BC,mEA5DT;AA6DjB,0BAAwBC,iEA7DP;AA8DjB,uBAAqB3gB,8DA9DJ;AA+DjB,2BAAyB4gB,kEA/DR;AAgEjB,eAAaC,kDAhEI;AAiEjB,oBAAkBC,uDAjED;AAkEjB,mBAAiBC,sDAlEA;AAmEjB,oBAAkBC,wDAnED;AAoEjB,qBAAmBpkB,yDApEF;AAqEjB,0BAAwBqkB,8DArEP;AAsEjB,wBAAsBC,4DAtEL;AAuEjB,mBAAiBC,uDAvEA;AAwEjB,yBAAuBC,6DAxEN;AAyEjB,2BAAyBC,+DAzER;AA0EjB,oBAAkBviB,uDA1ED;AA2EjB,mBAAiBwiB,uDA3EA;AA4EjB,eAAaC,gDA5EI;AA6EjB,2CAAyCC,4EA7ExB;AA8EjB,0BAAwBC,8DA9EP;AAgFjB;AACA,uBAAqBC,+DAjFJ;AAkFjB,wBAAsBC,gEAlFL;AAmFjB,4BAA0BC,gDAnFT;AAoFjB,oBAAkBC,4DAASA;AApFV,CAAZ,C;;;;;;;;;;;;AC5FP;AAAA;AAAA;AAEA;;;;;;;;;;;AAUe,yEAASC,UAAT,EAAqB1qB,OAArB,EAA8B;AAC3C,MAAMiM,KAAK,GAAGye,UAAU,CAACze,KAAzB;AACA,MAAM0e,SAAS,GAAG;AAChBpoB,QAAI,EAAE,CADU;AAEhBC,OAAG,EAAE,CAFW;AAGhB1D,SAAK,EAAEmN,KAAK,CAACnN,KAHG;AAIhBE,UAAM,EAAEiN,KAAK,CAACjN;AAJE,GAAlB;AAOA,MAAI4rB,kBAAkB,GAAG,KAAzB;AAEAtqB,QAAM,CAACC,IAAP,CAAYP,OAAZ,EAAqB4B,OAArB,CAA6B,UAASqG,IAAT,EAAe;AAC1C,QAAMvH,MAAM,GAAGV,OAAO,CAACiI,IAAD,CAAtB;;AAEA,QAAIvH,MAAM,CAACmqB,mBAAP,KAA+B,IAAnC,EAAyC;AACvC;AACD;;AAED,QACEzsB,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+B0oB,UAA/B,CAA0CpqB,MAA1C,EAAkDiqB,SAAlD,MAAiE,KADnE,EAEE;AACAC,wBAAkB,GAAG,IAArB;AACD;AACF,GAZD;AAcA,SAAOA,kBAAP;AACD,C;;;;;;;;;;;;;;;;;;ACtCD;AACA;AAEA;;;;;;;;;;;;;;;AAcA,IAAM/b,uBAAuB,GAAG,SAA1BA,uBAA0B,CAC9B7Q,OAD8B,EAE9BgC,OAF8B,EAG9BqJ,MAH8B,EAI9B0hB,iBAJ8B,EAK9B;AACA,MAAIC,YAAJ;;AAEA,MAAI,CAAChrB,OAAL,EAAc;AACZ;AACD;;AAED,MAAI4J,KAAK,CAACC,OAAN,CAAc7J,OAAd,CAAJ,EAA4B;AAC1B,QAAMK,UAAU,GAAGC,MAAM,CAACC,IAAP,CAAYP,OAAZ,CAAnB;;AAEA,SAAK,IAAIQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,UAAU,CAACmB,MAA/B,EAAuChB,CAAC,EAAxC,EAA4C;AAC1C,UAAMwmB,GAAG,GAAG3mB,UAAU,CAACG,CAAD,CAAtB;AACA,UAAME,MAAM,GAAGV,OAAO,CAACgnB,GAAD,CAAtB;;AAEA,WACE;AACA,OAACtmB,MAAM,CAACuqB,cAAP,CAAsB,GAAtB,CAAD,IACA,CAACvqB,MAAM,CAACuqB,cAAP,CAAsB,GAAtB,CAHH,EAIE;AACA;AACD;;AAED,UAAIC,uBAAuB,CAACxqB,MAAD,EAAS1C,OAAT,EAAkBqL,MAAlB,EAA0B0hB,iBAA1B,CAA3B,EAAyE;AACvEC,oBAAY,GAAGtqB,MAAf;AACA;AACD;AACF;AACF,GApBD,MAoBO,IAAI,qEAAOV,OAAP,MAAmB,QAAvB,EAAiC;AACtC,QAAMK,WAAU,GAAGC,MAAM,CAACC,IAAP,CAAYP,OAAZ,CAAnB;;AAEA,SAAK,IAAIQ,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGH,WAAU,CAACmB,MAA/B,EAAuChB,EAAC,EAAxC,EAA4C;AAC1C,UAAM2qB,UAAU,GAAG9qB,WAAU,CAACG,EAAD,CAA7B;;AAEA,UAAIoJ,KAAK,CAACC,OAAN,CAAc7J,OAAO,CAACmrB,UAAD,CAArB,CAAJ,EAAwC;AACtCH,oBAAY,GAAGnc,uBAAuB,CACpC7Q,OADoC,EAEpCgC,OAAO,CAACmrB,UAAD,CAF6B,EAGpC9hB,MAHoC,EAIpC0hB,iBAJoC,CAAtC;;AAMA,YAAIC,YAAJ,EAAkB;AAChB;AACD;AACF,OAVD,MAUO;AACL,YAAMtqB,OAAM,GAAGV,OAAO,CAACmrB,UAAD,CAAtB;;AAEA,YACED,uBAAuB,CAACxqB,OAAD,EAAS1C,OAAT,EAAkBqL,MAAlB,EAA0B0hB,iBAA1B,CADzB,EAEE;AACAC,sBAAY,GAAGtqB,OAAf;AACA;AACD;AACF;AACF;AACF;;AAED,SAAOsqB,YAAP;AACD,CA9DD;AAgEA;;;;;;;;;;;;;AAWA,IAAME,uBAAuB,GAAG,SAA1BA,uBAA0B,CAC9BxqB,MAD8B,EAE9B1C,OAF8B,EAG9BqL,MAH8B,EAI9B0hB,iBAJ8B,EAK9B;AACA,MAAIrqB,MAAM,CAACuqB,cAAP,CAAsB,iBAAtB,CAAJ,EAA8C;AAC5C,QAAIvqB,MAAM,CAAC0qB,eAAP,CAAuBptB,OAAvB,EAAgC0C,MAAhC,EAAwC2I,MAAxC,CAAJ,EAAqD;AACnD,aAAO,IAAP;AACD;AACF,GAJD,MAIO,IAAI3I,MAAM,CAAC2qB,cAAP,KAA0B,IAA9B,EAAoC;AACzC,QAAIvC,+EAAsB,CAACpoB,MAAD,EAAS2I,MAAT,CAA1B,EAA4C;AAC1C,aAAO,IAAP;AACD;AACF,GAJM,MAIA;AACL,QAAMiiB,YAAY,GAAGltB,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4C0C,MAA5C,CAArB;AACA,QAAMiT,QAAQ,GAAGvV,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CACf2X,YADe,EAEfjiB,MAFe,CAAjB;;AAKA,QAAIsK,QAAQ,IAAIoX,iBAAhB,EAAmC;AACjC,aAAO,IAAP;AACD;AACF;;AAED,SAAO,KAAP;AACD,CA3BD;;AA6Belc,sFAAf,E;;;;;;;;;;;;ACzHA;AAAA;AAAA;AAEA;;;;;;;;;;;;;AAYe,yEAAS7Q,OAAT,EAAkBgC,OAAlB,EAA2BurB,WAA3B,EAAwCR,iBAAxC,EAA2D;AACxE,MAAI,CAACA,iBAAL,EAAwB;AACtBA,qBAAiB,GAAG,CAApB;AACD;;AAED,MAAMS,YAAY,GAAGC,gBAAgB,CAACzrB,OAAD,CAArC;;AACA,MAAMgrB,YAAY,GAAGnc,2EAAuB,CAC1C7Q,OAD0C,EAE1CgC,OAF0C,EAG1CurB,WAH0C,EAI1CR,iBAJ0C,CAA5C;;AAOA,MAAIS,YAAY,KAAKR,YAArB,EAAmC;AACjC,QAAIA,YAAY,KAAKvtB,SAArB,EAAgC;AAC9ButB,kBAAY,CAACnqB,MAAb,GAAsB,IAAtB;AACD;;AAED,QAAI2qB,YAAY,KAAK/tB,SAArB,EAAgC;AAC9B+tB,kBAAY,CAAC3qB,MAAb,GAAsB,KAAtB;AACD;;AAED,WAAO,IAAP;AACD;;AAED,SAAO,KAAP;AACD;AAED;;;;;;;;AAOA,SAAS4qB,gBAAT,CAA0BzrB,OAA1B,EAAmC;AACjC,MAAIwrB,YAAJ;AAEAlrB,QAAM,CAACC,IAAP,CAAYP,OAAZ,EAAqB4B,OAArB,CAA6B,UAASqG,IAAT,EAAe;AAC1C,QAAMvH,MAAM,GAAGV,OAAO,CAACiI,IAAD,CAAtB;;AAEA,QAAIvH,MAAM,CAACG,MAAP,KAAkB,IAAtB,EAA4B;AAC1B2qB,kBAAY,GAAG9qB,MAAf;AAEA;AACD;AACF,GARD;AAUA,SAAO8qB,YAAP;AACD,C;;;;;;;;;;;;AC/DD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAM/jB,MAAM,GAAGC,iEAAS,CAAC,6BAAD,CAAxB;AAEA,IAAMgkB,sBAAsB,GAAGzlB,iEAAS,CAAC,kBAAD,CAAxC;AAEA,IAAM0lB,WAAW,GAAG;AAClB7R,OAAK,EAAE,CAACzS,kDAAM,CAACuF,UAAR,CADW;AAElBmN,OAAK,EAAE,CAAC1S,kDAAM,CAAC2I,UAAR;AAFW,CAApB;AAKA,IAAM4b,cAAc,GAAG;AACrB9R,OAAK,EAAE,CAACzS,kDAAM,CAAC2F,QAAR,EAAkB3F,kDAAM,CAACiF,WAAzB,CADc;AAErByN,OAAK,EAAE,CACL1S,kDAAM,CAAC4I,SADF,EAEL5I,kDAAM,CAACkV,cAFF,EAGLlV,kDAAM,CAACgJ,WAHF,EAILhJ,kDAAM,CAAC8I,WAJF,EAKL9I,kDAAM,CAACqG,GALF;AAFc,CAAvB;AAWA;;;;;;;;;;;;;;;;;;;AAkBe,+EAEbhF,QAFa,EAGbmjB,UAHa,EAIbnrB,MAJa,EAQb;AAAA,MAPE1C,OAOF,QAPEA,OAOF;AAAA,MAHAT,OAGA,uEAHU,EAGV;AAAA,MAFAkd,eAEA,uEAFkB,OAElB;AAAA,MADAqR,kBACA;AACA;AACAvuB,SAAO,GAAG+C,MAAM,CAAC8lB,MAAP,CACR;AACEvY,8BAA0B,EAAEtM,qDAAK,CAACsM,0BADpC;AAEEke,6BAAyB,EAAExqB,qDAAK,CAACwqB;AAFnC,GADQ,EAKRxuB,OALQ,CAAV;;AAQA,MAAMyuB,WAAW,GAAGC,YAAY,CAACjjB,IAAb,CAClB,IADkB,EAElBN,QAFkB,EAGlBmjB,UAHkB,EAIlBtuB,OAJkB,EAKlBkd,eALkB,CAApB,CAVA,CAiBA;;;AACA,MAAMyR,cAAc,GAAG,SAAjBA,cAAiB,CAAA/lB,GAAG,EAAI;AAC5BgmB,mBAAe,CACbzjB,QADa,EAEbmjB,UAFa,EAGbtuB,OAHa,EAIbkd,eAJa,EAKb;AACEuR,iBAAW,EAAXA,WADF;AAEEE,oBAAc,EAAdA;AAFF,KALa,EASb/lB,GATa,EAUb2lB,kBAVa,CAAf;AAYD,GAbD;;AAeAJ,wBAAsB,CAACU,OAAvB,CAA+BC,8BAA/B,CACEruB,OADF,EAEEsuB,mBAAmB,CAACtjB,IAApB,CACE,IADF,EAEE6iB,UAFF,EAGEtuB,OAHF,EAIEkd,eAJF,EAKE;AACEuR,eAAW,EAAXA,WADF;AAEEE,kBAAc,EAAdA;AAFF,GALF,EASEluB,OATF,EAUE8tB,kBAVF,CAFF;AAgBAD,YAAU,CAAChrB,MAAX,GAAoB,IAApB;AACAU,uDAAK,CAAC6H,YAAN,GAAqB,IAArB,CAlDA,CAoDA;;AACAuiB,aAAW,CAAClR,eAAD,CAAX,CAA6B7Y,OAA7B,CAAqC,UAAA4G,SAAS,EAAI;AAChDxK,WAAO,CAACoJ,gBAAR,CAAyBoB,SAAzB,EAAoCwjB,WAApC;AACD,GAFD;;AAGAJ,gBAAc,CAACnR,eAAD,CAAd,CAAgC7Y,OAAhC,CAAwC,UAAA4G,SAAS,EAAI;AACnDxK,WAAO,CAACoJ,gBAAR,CAAyBoB,SAAzB,EAAoC0jB,cAApC;AACD,GAFD;AAGD;;AAED,SAASD,YAAT,CACEvjB,QADF,EAEEmjB,UAFF,EAME;AAAA,MAHAtuB,OAGA,uEAHU,EAGV;AAAA,MAFAkd,eAEA;AAAA,MADAtU,GACA;AAAA,oBACoCA,GAAG,CAACE,MADxC;AAAA,MACQrI,OADR,eACQA,OADR;AAAA,MACiBiO,KADjB,eACiBA,KADjB;AAAA,MACwBjC,OADxB,eACwBA,OADxB;AAAA,8BAEiB7D,GAAG,CAACE,MAAJ,CAAWsS,WAAX,CAAuB1M,KAFxC;AAAA,MAEQ3O,CAFR,yBAEQA,CAFR;AAAA,MAEWD,CAFX,yBAEWA,CAFX;AAIAwuB,YAAU,CAAChrB,MAAX,GAAoB,IAApB;AACAgrB,YAAU,CAACje,WAAX,GAAyB,IAAzB;AAEA,MAAMvN,UAAU,GAAGC,MAAM,CAACC,IAAP,CAAYsrB,UAAU,CAAC7rB,OAAvB,CAAnB;;AAEA,OAAK,IAAIQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,UAAU,CAACmB,MAA/B,EAAuChB,CAAC,EAAxC,EAA4C;AAC1C,QAAMwmB,GAAG,GAAG3mB,UAAU,CAACG,CAAD,CAAtB;AACA,QAAME,MAAM,GAAGmrB,UAAU,CAAC7rB,OAAX,CAAmBgnB,GAAnB,CAAf;;AAEA,SACE;AACAtmB,UAAM,CAAC6rB,kBAAP,KAA8B,IAA9B,IACA;AACA,KAAC7rB,MAAM,CAACuqB,cAAP,CAAsB,GAAtB,CAFD,IAGA,CAACvqB,MAAM,CAACuqB,cAAP,CAAsB,GAAtB,CALH,EAME;AACA;AACD;;AAEDvqB,UAAM,CAACpD,CAAP,IAAYA,CAAZ;AACAoD,UAAM,CAACrD,CAAP,IAAYA,CAAZ;;AAEA,QAAIE,OAAO,CAACwuB,yBAAZ,EAAuC;AACrCrC,qEAAS,CAAChpB,MAAD,EAASuL,KAAT,CAAT;AACD;AACF;;AAED7N,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA,MAAMyN,UAAU,GAAGC,mEAAa,CAAC1N,OAAD,EAAUgM,OAAV,EAAmByQ,eAAnB,CAAhC;;AAEA,MAAIhP,UAAU,YAAYI,sEAA1B,EAA8C;AAC5CJ,cAAU,CAAC+gB,iBAAX,CAA6BvgB,KAA7B,EAAoCjO,OAApC,EAA6C6tB,UAA7C;AACD;;AAED,MAAMrjB,SAAS,GAAGnB,kDAAM,CAACiY,oBAAzB;AACA,MAAMmN,iBAAiB,GAAG;AACxB/jB,YAAQ,EAARA,QADwB;AAExBC,YAAQ,EAAED,QAFc;AAEJ;AACpB1K,WAAO,EAAPA,OAHwB;AAIxB8J,mBAAe,EAAE+jB;AAJO,GAA1B;AAOAjjB,uEAAY,CAAC5K,OAAD,EAAUwK,SAAV,EAAqBikB,iBAArB,CAAZ;AAEAtmB,KAAG,CAACyB,cAAJ;AACAzB,KAAG,CAAC0B,eAAJ;AACD;;AAED,SAASykB,mBAAT,CACET,UADF,EAOE;AAAA,MALAtuB,OAKA,uEALU,EAKV;AAAA,MAJAkd,eAIA;;AAAA;AAAA,MAHEuR,WAGF,SAHEA,WAGF;AAAA,MAHeE,cAGf,SAHeA,cAGf;;AAAA,MAFAluB,OAEA;AAAA,MADA8tB,kBACA;;AACAY,aAAW,CACTb,UADS,EAETtuB,OAFS,EAGTkd,eAHS,EAIT;AACEuR,eAAW,EAAXA,WADF;AAEEE,kBAAc,EAAdA;AAFF,GAJS,EAQTluB,OARS,EAST8tB,kBATS,EAUT,KAVS,CAAX;AAYD;;AAED,SAASK,eAAT,CACEzjB,QADF,EAEEmjB,UAFF,EAQE;AAAA,MALAtuB,OAKA,uEALU,EAKV;AAAA,MAJAkd,eAIA;;AAAA;AAAA,MAHEuR,WAGF,SAHEA,WAGF;AAAA,MAHeE,cAGf,SAHeA,cAGf;;AAAA,MAFA/lB,GAEA;AAAA,MADA2lB,kBACA;AACA,MAAM1lB,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADA,MAEQrI,OAFR,GAEoBoI,SAFpB,CAEQpI,OAFR;AAIA0tB,wBAAsB,CAACU,OAAvB,CAA+BO,iCAA/B,CAAiE3uB,OAAjE,EAJA,CAMA;;AACA,MACET,OAAO,CAACsQ,0BAAR,IACAC,0EAAsB,CAAC1H,SAAD,EAAYylB,UAAU,CAAC7rB,OAAvB,CAFxB,EAGE;AACA6I,yFAAe,CAAC7K,OAAD,EAAU0K,QAAV,EAAoBmjB,UAApB,CAAf;AACD;;AAEDa,aAAW,CACTb,UADS,EAETtuB,OAFS,EAGTkd,eAHS,EAIT;AACEuR,eAAW,EAAXA,WADF;AAEEE,kBAAc,EAAdA;AAFF,GAJS,EAQTluB,OARS,EAST8tB,kBATS,EAUT,IAVS,CAAX;AAYD;;AAED,SAASY,WAAT,CACEb,UADF,EAQE;AAAA,MANAtuB,OAMA,uEANU,EAMV;AAAA,MALAkd,eAKA;;AAAA;AAAA,MAJEuR,WAIF,SAJEA,WAIF;AAAA,MAJeE,cAIf,SAJeA,cAIf;;AAAA,MAHAluB,OAGA;AAAA,MAFA8tB,kBAEA;AAAA,MADAxjB,OACA,uEADU,IACV;AACAujB,YAAU,CAAChrB,MAAX,GAAoB,KAApB;AACAgrB,YAAU,CAACje,WAAX,GAAyB,IAAzB;AACArM,uDAAK,CAAC6H,YAAN,GAAqB,KAArB,CAHA,CAKA;;AACAuiB,aAAW,CAAClR,eAAD,CAAX,CAA6B7Y,OAA7B,CAAqC,UAAA4G,SAAS,EAAI;AAChDxK,WAAO,CAACwJ,mBAAR,CAA4BgB,SAA5B,EAAuCwjB,WAAvC;AACD,GAFD;;AAGAJ,gBAAc,CAACnR,eAAD,CAAd,CAAgC7Y,OAAhC,CAAwC,UAAA4G,SAAS,EAAI;AACnDxK,WAAO,CAACwJ,mBAAR,CAA4BgB,SAA5B,EAAuC0jB,cAAvC;AACD,GAFD;;AAIA,MAAI,OAAO3uB,OAAO,CAACuuB,kBAAf,KAAsC,UAA1C,EAAsD;AACpDrkB,UAAM,CAACmlB,IAAP,CACE,+HADF;AAGArvB,WAAO,CAACuuB,kBAAR,CAA2BxjB,OAA3B;AACD;;AAED,MAAI,OAAOwjB,kBAAP,KAA8B,UAAlC,EAA8C;AAC5CA,sBAAkB,CAACxjB,OAAD,CAAlB;AACD;;AAEDlK,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD,C;;;;;;;;;;;;AC7QD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMyJ,MAAM,GAAGC,iEAAS,CAAC,yBAAD,CAAxB;AAEA,IAAMgkB,sBAAsB,GAAGzlB,iEAAS,CAAC,kBAAD,CAAxC;AAEA,IAAM4mB,YAAY,GAAG;AACnBC,OAAK,EAAE;AADY,CAArB;AAIA,IAAMnB,WAAW,GAAG;AAClB7R,OAAK,EAAE,CAACzS,kDAAM,CAACuF,UAAR,CADW;AAElBmN,OAAK,EAAE,CAAC1S,kDAAM,CAAC2I,UAAR;AAFW,CAApB;AAKA,IAAM4b,cAAc,GAAG;AACrB9R,OAAK,EAAE,CAACzS,kDAAM,CAAC2F,QAAR,EAAkB3F,kDAAM,CAACiF,WAAzB,CADc;AAErByN,OAAK,EAAE,CACL1S,kDAAM,CAAC4I,SADF,EAEL5I,kDAAM,CAACkV,cAFF,EAGLlV,kDAAM,CAACgJ,WAHF,EAILhJ,kDAAM,CAAC8I,WAJF,EAKL9I,kDAAM,CAACqG,GALF;AAFc,CAAvB;AAWA;;;;;;;;;;;;;;;;;;;AAkBe,yEACb3N,SADa,EAEb2I,QAFa,EAGbmjB,UAHa,EAIbnrB,MAJa,EAQb;AAAA,MAHAnD,OAGA,uEAHU,EAGV;AAAA,MAFAkd,eAEA,uEAFkB,OAElB;AAAA,MADAqR,kBACA;AACA;AACAvuB,SAAO,GAAG+C,MAAM,CAAC8lB,MAAP,CACR;AACEvY,8BAA0B,EAAEtM,qDAAK,CAACsM,0BADpC;AAEEke,6BAAyB,EAAExqB,qDAAK,CAACwqB;AAFnC,GADQ,EAKRxuB,OALQ,CAAV;AAQA,MAAMS,OAAO,GAAG+B,SAAS,CAAC/B,OAA1B;;AACA,MAAMguB,WAAW,GAAGC,YAAY,CAACjjB,IAAb,CAClB,IADkB,EAElBN,QAFkB,EAGlBmjB,UAHkB,EAIlBnrB,MAJkB,EAKlBnD,OALkB,EAMlBkd,eANkB,CAApB,CAXA,CAmBA;;;AACA,MAAMyR,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3BC,mBAAe,CACbzjB,QADa,EAEb3I,SAFa,EAGb8rB,UAHa,EAIbnrB,MAJa,EAKbnD,OALa,EAMbkd,eANa,EAOb;AACEuR,iBAAW,EAAXA,WADF;AAEEE,oBAAc,EAAdA;AAFF,KAPa,EAWbJ,kBAXa,CAAf;AAaD,GAdD;;AAgBAJ,wBAAsB,CAACU,OAAvB,CAA+BC,8BAA/B,CACEruB,OADF,EAEEsuB,mBAAmB,CAACtjB,IAApB,CACE,IADF,EAEEN,QAFF,EAGE3I,SAHF,EAIE8rB,UAJF,EAKEnrB,MALF,EAMEnD,OANF,EAOEkd,eAPF,EAQE;AACEuR,eAAW,EAAXA,WADF;AAEEE,kBAAc,EAAdA;AAFF,GARF,EAYEJ,kBAZF,CAFF;AAkBAprB,QAAM,CAACG,MAAP,GAAgB,IAAhB;AACAH,QAAM,CAACK,MAAP,GAAgB,IAAhB;AACA8qB,YAAU,CAAChrB,MAAX,GAAoB,IAApB;AACAU,uDAAK,CAAC6H,YAAN,GAAqB,IAArB,CAzDA,CA2DA;;AACAuiB,aAAW,CAAClR,eAAD,CAAX,CAA6B7Y,OAA7B,CAAqC,UAAA4G,SAAS,EAAI;AAChDxK,WAAO,CAACoJ,gBAAR,CAAyBoB,SAAzB,EAAoCwjB,WAApC;AACD,GAFD;;AAGAJ,gBAAc,CAACnR,eAAD,CAAd,CAAgC7Y,OAAhC,CAAwC,UAAA4G,SAAS,EAAI;AACnDxK,WAAO,CAACoJ,gBAAR,CAAyBoB,SAAzB,EAAoC0jB,cAApC;AACD,GAFD,EA/DA,CAmEA;AACA;AACA;;;AACA,MAAIzR,eAAe,KAAK,OAAxB,EAAiC;AAC/BoS,gBAAY,CAACC,KAAb,GAAqB,IAArB;AACA,QAAM/U,cAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB,CAF+B,CAI/B;AACA;;AACA,QAAM+uB,cAAc,GAAG,CAAC,EAAxB;AAEA,QAAMC,WAAW,GAAG;AAClB1vB,OAAC,EAAEyC,SAAS,CAACuJ,aAAV,CAAwB2O,IAAxB,CAA6B3a,CADd;AAElBD,OAAC,EAAE0C,SAAS,CAACuJ,aAAV,CAAwB2O,IAAxB,CAA6B5a,CAA7B,GAAiC0vB;AAFlB,KAApB;AAKA,QAAME,cAAc,GAAG7uB,2DAAQ,CAACC,WAAT,CAAqB8Z,WAArB,CACrBna,OADqB,EAErBgvB,WAAW,CAAC1vB,CAFS,EAGrB0vB,WAAW,CAAC3vB,CAHS,CAAvB;;AAMA6vB,YAAQ,CAACxsB,MAAD,EAASmsB,YAAT,EAAuB9U,cAAvB,EAAuCkV,cAAvC,CAAR;AACD;AACF;;AAED,SAAShB,YAAT,CACEvjB,QADF,EAEEmjB,UAFF,EAGEnrB,MAHF,EAIEnD,OAJF,EAKEkd,eALF,EAMEtU,GANF,EAOE;AAAA,oBACmDA,GAAG,CAACE,MADvD;AAAA,MACQ4F,KADR,eACQA,KADR;AAAA,MACe3C,aADf,eACeA,aADf;AAAA,MAC8BtL,OAD9B,eAC8BA,OAD9B;AAAA,MACuCgM,OADvC,eACuCA,OADvC;AAEA,MAAMiO,IAAI,GAAG3O,aAAa,CAAC2O,IAA3B;AACA,MAAMkV,YAAY,GAAG,CAAC,EAAtB;AACA,MAAMF,cAAc,GAAG7uB,2DAAQ,CAACC,WAAT,CAAqB8Z,WAArB,CACrBna,OADqB,EAErBia,IAAI,CAAC3a,CAFgB,EAGrBmd,eAAe,KAAK,OAApB,GAA8BxC,IAAI,CAAC5a,CAAL,GAAS8vB,YAAvC,GAAsDlV,IAAI,CAAC5a,CAHtC,CAAvB;AAMAwvB,cAAY,CAACC,KAAb,GAAqB,KAArB;AACApsB,QAAM,CAACG,MAAP,GAAgB,IAAhB;AACAH,QAAM,CAACuC,QAAP,GAAkB,IAAlB;AACAvC,QAAM,CAACpD,CAAP,GAAW2vB,cAAc,CAAC3vB,CAA1B;AACAoD,QAAM,CAACrD,CAAP,GAAW4vB,cAAc,CAAC5vB,CAA1B,CAdA,CAeA;;AACAwuB,YAAU,CAACje,WAAX,GAAyB,IAAzB;;AAEA,MAAIrQ,OAAO,CAACwuB,yBAAZ,EAAuC;AACrCrC,mEAAS,CAAChpB,MAAD,EAASuL,KAAT,CAAT;AACD;;AAED7N,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA,MAAMyN,UAAU,GAAGC,mEAAa,CAAC1N,OAAD,EAAUgM,OAAV,EAAmByQ,eAAnB,CAAhC;;AAEA,MAAIhP,UAAU,YAAYI,sEAA1B,EAA8C;AAC5CJ,cAAU,CAAC+gB,iBAAX,CAA6BvgB,KAA7B,EAAoCjO,OAApC,EAA6C6tB,UAA7C;AACD;;AAED,MAAMrjB,SAAS,GAAGnB,kDAAM,CAACiY,oBAAzB;AACA,MAAMmN,iBAAiB,GAAG;AACxB/jB,YAAQ,EAARA,QADwB;AAExBC,YAAQ,EAAED,QAFc;AAEJ;AACpB1K,WAAO,EAAPA,OAHwB;AAIxB8J,mBAAe,EAAE+jB;AAJO,GAA1B;AAOAjjB,uEAAY,CAAC5K,OAAD,EAAUwK,SAAV,EAAqBikB,iBAArB,CAAZ;AACD;;AAED,SAASH,mBAAT,CACE5jB,QADF,EAEE3I,SAFF,EAGE8rB,UAHF,EAIEnrB,MAJF,EASE;AAAA,MAJAnD,OAIA,uEAJU,EAIV;AAAA,MAHAkd,eAGA;;AAAA;AAAA,MAFEuR,WAEF,QAFEA,WAEF;AAAA,MAFeE,cAEf,QAFeA,cAEf;;AAAA,MADAJ,kBACA;;AACAY,aAAW,CACThkB,QADS,EAET3I,SAFS,EAGT8rB,UAHS,EAITnrB,MAJS,EAKTnD,OALS,EAMTkd,eANS,EAOT;AACEuR,eAAW,EAAXA,WADF;AAEEE,kBAAc,EAAdA;AAFF,GAPS,EAWTJ,kBAXS,EAYT,KAZS,CAAX;AAcD;;AAED,SAASK,eAAT,CACEzjB,QADF,EAEE3I,SAFF,EAGE8rB,UAHF,EAIEnrB,MAJF,EASE;AAAA,MAJAnD,OAIA,uEAJU,EAIV;AAAA,MAHAkd,eAGA;;AAAA;AAAA,MAFEuR,WAEF,SAFEA,WAEF;AAAA,MAFeE,cAEf,SAFeA,cAEf;;AAAA,MADAJ,kBACA;AAAA,MACQ9tB,OADR,GACoB+B,SADpB,CACQ/B,OADR;AAGA0tB,wBAAsB,CAACU,OAAvB,CAA+BO,iCAA/B,CAAiE3uB,OAAjE;;AAEA0uB,aAAW,CACThkB,QADS,EAET3I,SAFS,EAGT8rB,UAHS,EAITnrB,MAJS,EAKTnD,OALS,EAMTkd,eANS,EAOT;AACEuR,eAAW,EAAXA,WADF;AAEEE,kBAAc,EAAdA;AAFF,GAPS,EAWTJ,kBAXS,EAYT,IAZS,CAAX;AAcD;;AAED,SAASY,WAAT,CACEhkB,QADF,EAEE3I,SAFF,EAGE8rB,UAHF,EAIEnrB,MAJF,EAUE;AAAA,MALAnD,OAKA,uEALU,EAKV;AAAA,MAJAkd,eAIA;;AAAA;AAAA,MAHEuR,WAGF,SAHEA,WAGF;AAAA,MAHeE,cAGf,SAHeA,cAGf;;AAAA,MAFAJ,kBAEA;AAAA,MADAxjB,OACA,uEADU,IACV;AACA,MAAMtK,OAAO,GAAG+B,SAAS,CAAC/B,OAA1B;AAEA0C,QAAM,CAACG,MAAP,GAAgB,KAAhB;AACAH,QAAM,CAACK,MAAP,GAAgB,KAAhB;AACA8qB,YAAU,CAAChrB,MAAX,GAAoB,KAApB;AACAgrB,YAAU,CAACje,WAAX,GAAyB,IAAzB;AACAif,cAAY,CAACC,KAAb,GAAqB,KAArB;AACAvrB,uDAAK,CAAC6H,YAAN,GAAqB,KAArB,CARA,CAUA;;AACAuiB,aAAW,CAAClR,eAAD,CAAX,CAA6B7Y,OAA7B,CAAqC,UAAA4G,SAAS,EAAI;AAChDxK,WAAO,CAACwJ,mBAAR,CAA4BgB,SAA5B,EAAuCwjB,WAAvC;AACD,GAFD;;AAGAJ,gBAAc,CAACnR,eAAD,CAAd,CAAgC7Y,OAAhC,CAAwC,UAAA4G,SAAS,EAAI;AACnDxK,WAAO,CAACwJ,mBAAR,CAA4BgB,SAA5B,EAAuC0jB,cAAvC;AACD,GAFD,EAdA,CAkBA;;;AACA,MACE3uB,OAAO,CAACsQ,0BAAR,IACAC,0EAAsB,CAAC/N,SAAD,EAAY8rB,UAAU,CAAC7rB,OAAvB,CAFxB,EAGE;AACA6I,yFAAe,CAAC7K,OAAD,EAAU0K,QAAV,EAAoBmjB,UAApB,CAAf;AACD,GAxBD,CA0BA;AACA;AACA;AACA;AACA;AACA;;;AAEA,MAAI,OAAOtuB,OAAO,CAACuuB,kBAAf,KAAsC,UAA1C,EAAsD;AACpDrkB,UAAM,CAACmlB,IAAP,CACE,+HADF;AAIArvB,WAAO,CAACuuB,kBAAR,CAA2BxjB,OAA3B;AACD;;AAED,MAAI,OAAOwjB,kBAAP,KAA8B,UAAlC,EAA8C;AAC5CA,sBAAkB,CAACxjB,OAAD,CAAlB;AACD;;AAEDlK,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;;;;AAWA,SAASkvB,QAAT,CAAkBxsB,MAAlB,EAA0BmsB,YAA1B,EAAwC9U,cAAxC,EAAwDkV,cAAxD,EAAwE;AACtE,MAAI,CAACJ,YAAY,CAACC,KAAlB,EAAyB;AACvB;AACD,GAHqE,CAKtE;;;AACA,MAAMM,iBAAiB,GAAGjwB,IAAI,CAACmC,GAAL,CAASoB,MAAM,CAACrD,CAAP,GAAW4vB,cAAc,CAAC5vB,CAAnC,CAA1B;AACA,MAAMgwB,mBAAmB,GAAGD,iBAAiB,GAAG,EAAhD;;AAEA,MAAIA,iBAAiB,GAAG,CAAxB,EAA2B;AACzB1sB,UAAM,CAACrD,CAAP,GAAW4vB,cAAc,CAAC5vB,CAA1B;AACAwvB,gBAAY,CAACC,KAAb,GAAqB,KAArB;AAEA;AACD;;AAED,MAAIpsB,MAAM,CAACrD,CAAP,GAAW4vB,cAAc,CAAC5vB,CAA9B,EAAiC;AAC/BqD,UAAM,CAACrD,CAAP,IAAYgwB,mBAAZ;AACD,GAFD,MAEO,IAAI3sB,MAAM,CAACrD,CAAP,GAAW4vB,cAAc,CAAC5vB,CAA9B,EAAiC;AACtCqD,UAAM,CAACrD,CAAP,IAAYgwB,mBAAZ;AACD,GApBqE,CAsBtE;;;AACAjvB,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC6P,cAAc,CAAC/Z,OAAhD,EAvBsE,CAyBtE;;AACAI,6DAAQ,CAACC,WAAT,CAAqBivB,qBAArB,CAA2C,YAAW;AACpDJ,YAAQ,CAACxsB,MAAD,EAASmsB,YAAT,EAAuB9U,cAAvB,EAAuCkV,cAAvC,CAAR;AACD,GAFD;AAGD,C;;;;;;;;;;;;ACrWD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMxlB,MAAM,GAAGC,iEAAS,CAAC,4BAAD,CAAxB;AAEA,IAAMgkB,sBAAsB,GAAGzlB,iEAAS,CAAC,kBAAD,CAAxC;AAEA,IAAMsnB,WAAW,GAAG;AAClBzT,OAAK,EAAE,CAACzS,kDAAM,CAACyF,UAAR,EAAoBzF,kDAAM,CAACuF,UAA3B,CADW;AAElBmN,OAAK,EAAE,CAAC1S,kDAAM,CAAC2I,UAAR;AAFW,CAApB;AAKA,IAAMwd,cAAc,GAAG;AACrB1T,OAAK,EAAE,CAACzS,kDAAM,CAAC2F,QAAR,EAAkB3F,kDAAM,CAACiF,WAAzB,CADc;AAErByN,OAAK,EAAE,CAAC1S,kDAAM,CAAC4I,SAAR,EAAmB5I,kDAAM,CAACgJ,WAA1B,EAAuChJ,kDAAM,CAACqG,GAA9C;AAFc,CAAvB;AAKA;;;;;;;;;;;;;;;;;;;AAkBe,yEACbtH,SADa,EAEbsC,QAFa,EAGbmjB,UAHa,EAIbnrB,MAJa,EAKbnD,OALa,EAQb;AAAA,MAFAkd,eAEA,uEAFkB,OAElB;AAAA,MADAqR,kBACA;AACA;AACAvuB,SAAO,GAAG+C,MAAM,CAAC8lB,MAAP,CACR;AACEvY,8BAA0B,EAAEtM,qDAAK,CAACsM,0BADpC;AAEEke,6BAAyB,EAAExqB,qDAAK,CAACwqB;AAFnC,GADQ,EAKRxuB,OALQ,CAAV;AAQAA,SAAO,CAAC0F,QAAR,GAAmB,KAAnB;AAVA,MAYQjF,OAZR,GAYoBoI,SAZpB,CAYQpI,OAZR;AAcA6tB,YAAU,CAAChrB,MAAX,GAAoB,IAApB;AAEAH,QAAM,CAACK,MAAP,GAAgB,IAAhB;AACAL,QAAM,CAACG,MAAP,GAAgB,IAAhB;AACAU,uDAAK,CAAC6H,YAAN,GAAqB,IAArB;;AAEA,WAASqkB,WAAT,CAAqBtnB,GAArB,EAA0B;AACxBunB,gBAAY,CAAChlB,QAAD,EAAWmjB,UAAX,EAAuBnrB,MAAvB,EAA+BnD,OAA/B,EAAwCkd,eAAxC,EAAyDtU,GAAzD,CAAZ;AACD,GAtBD,CAuBA;;;AACA,WAASwnB,cAAT,CAAwBxnB,GAAxB,EAA6B;AAC3BynB,mBAAe,CACbllB,QADa,EAEbmjB,UAFa,EAGbnrB,MAHa,EAIbnD,OAJa,EAKbkd,eALa,EAMb;AACEgT,iBAAW,EAAXA,WADF;AAEEE,oBAAc,EAAdA;AAFF,KANa,EAUbxnB,GAVa,EAWb2lB,kBAXa,CAAf;AAaD,GAtCD,CAwCA;AACA;AACA;AACA;AAEA;;;AACAyB,aAAW,CAAC9S,eAAD,CAAX,CAA6B7Y,OAA7B,CAAqC,UAAA4G,SAAS,EAAI;AAChDxK,WAAO,CAACoJ,gBAAR,CAAyBoB,SAAzB,EAAoCilB,WAApC;AACD,GAFD;;AAGAzvB,SAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACwI,WAAhC,EAA6Cge,yBAA7C;;AAEAL,gBAAc,CAAC/S,eAAD,CAAd,CAAgC7Y,OAAhC,CAAwC,UAAA4G,SAAS,EAAI;AACnDxK,WAAO,CAACoJ,gBAAR,CAAyBoB,SAAzB,EAAoCmlB,cAApC;AACD,GAFD,EAnDA,CAuDA;AACA;AACA;AACA;AACA;;;AACAjC,wBAAsB,CAACU,OAAvB,CAA+BC,8BAA/B,CACEruB,OADF,EAEEsuB,mBAAmB,CAACtjB,IAApB,CACE,IADF,EAEE6iB,UAFF,EAGEnrB,MAHF,EAIEnD,OAJF,EAKEkd,eALF,EAME;AACEgT,eAAW,EAAXA,WADF;AAEEE,kBAAc,EAAdA;AAFF,GANF,EAUE3vB,OAVF,EAWE8tB,kBAXF,CAFF;AAgBD;AAED;;;;;;;;;;;;;;AAaA,SAAS4B,YAAT,CACEhlB,QADF,EAEEmjB,UAFF,EAGEnrB,MAHF,EAIEnD,OAJF,EAKEkd,eALF,EAMEtU,GANF,EAOE;AAAA,oBACmDA,GAAG,CAACE,MADvD;AAAA,MACQiD,aADR,eACQA,aADR;AAAA,MACuB2C,KADvB,eACuBA,KADvB;AAAA,MAC8BjO,OAD9B,eAC8BA,OAD9B;AAAA,MACuCgM,OADvC,eACuCA,OADvC;AAGAzM,SAAO,CAAC0F,QAAR,GAAmB,IAAnB;AAEA,MAAMgV,IAAI,GAAG3O,aAAa,CAAC2O,IAA3B;AACA,MAAMkV,YAAY,GAAG,CAAC,EAAtB;AACA,MAAMF,cAAc,GAAG7uB,2DAAQ,CAACC,WAAT,CAAqB8Z,WAArB,CACrBna,OADqB,EAErByc,eAAe,KAAK,OAApB,GAA8BxC,IAAI,CAAC3a,CAAL,GAAS6vB,YAAvC,GAAsDlV,IAAI,CAAC3a,CAFtC,EAGrBmd,eAAe,KAAK,OAApB,GAA8BxC,IAAI,CAAC5a,CAAL,GAAS8vB,YAAvC,GAAsDlV,IAAI,CAAC5a,CAHtC,CAAvB;AAMAwuB,YAAU,CAACje,WAAX,GAAyB,IAAzB;AACAlN,QAAM,CAACG,MAAP,GAAgB,IAAhB;AACAH,QAAM,CAACpD,CAAP,GAAW2vB,cAAc,CAAC3vB,CAA1B;AACAoD,QAAM,CAACrD,CAAP,GAAW4vB,cAAc,CAAC5vB,CAA1B;;AAEA,MAAIE,OAAO,IAAIA,OAAO,CAACwuB,yBAAvB,EAAkD;AAChDrC,mEAAS,CAAChpB,MAAD,EAASuL,KAAT,CAAT;AACD;;AAED7N,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA,MAAMyN,UAAU,GAAGC,mEAAa,CAAC1N,OAAD,EAAUgM,OAAV,EAAmByQ,eAAnB,CAAhC;;AAEA,MAAIhP,UAAU,YAAYI,sEAA1B,EAA8C;AAC5CJ,cAAU,CAAC+gB,iBAAX,CAA6BvgB,KAA7B,EAAoCjO,OAApC,EAA6C6tB,UAA7C;AACD;;AAED,MAAMrjB,SAAS,GAAGnB,kDAAM,CAACiY,oBAAzB;AACA,MAAMmN,iBAAiB,GAAG;AACxB/jB,YAAQ,EAARA,QADwB;AAExBC,YAAQ,EAAED,QAFc;AAEJ;AACpB1K,WAAO,EAAPA,OAHwB;AAIxB8J,mBAAe,EAAE+jB;AAJO,GAA1B;AAOAjjB,uEAAY,CAAC5K,OAAD,EAAUwK,SAAV,EAAqBikB,iBAArB,CAAZ;AACD;;AAED,SAASC,WAAT,CACEjS,eADF,EAEEld,OAFF,EAGES,OAHF,QAKE8tB,kBALF,EAOE;AAAA,MAHE2B,WAGF,QAHEA,WAGF;AAAA,MAHeE,cAGf,QAHeA,cAGf;AAAA,MADArlB,OACA,uEADU,IACV;;AACA;AACAilB,aAAW,CAAC9S,eAAD,CAAX,CAA6B7Y,OAA7B,CAAqC,UAAA4G,SAAS,EAAI;AAChDxK,WAAO,CAACwJ,mBAAR,CAA4BgB,SAA5B,EAAuCilB,WAAvC;AACD,GAFD;;AAGAD,gBAAc,CAAC/S,eAAD,CAAd,CAAgC7Y,OAAhC,CAAwC,UAAA4G,SAAS,EAAI;AACnDxK,WAAO,CAACwJ,mBAAR,CAA4BgB,SAA5B,EAAuCmlB,cAAvC;AACD,GAFD;;AAGA3vB,SAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAACwI,WAAnC,EAAgDge,yBAAhD;AAEAtsB,uDAAK,CAAC6H,YAAN,GAAqB,KAArB;;AAEA,MAAI,OAAO0iB,kBAAP,KAA8B,UAAlC,EAA8C;AAC5CA,sBAAkB,CAACxjB,OAAD,CAAlB;AACD;;AAED,MAAI,OAAO/K,OAAO,CAACuuB,kBAAf,KAAsC,UAA1C,EAAsD;AACpDrkB,UAAM,CAACmlB,IAAP,CACE,+HADF;AAIArvB,WAAO,CAACuuB,kBAAR,CAA2BxjB,OAA3B;AACD,GAtBD,CAwBA;;;AACAlK,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;;AAED,SAAS4vB,eAAT,CACEllB,QADF,EAEEmjB,UAFF,EAGEnrB,MAHF,EAIEnD,OAJF,EAKEkd,eALF,SAOEtU,GAPF,EAQE2lB,kBARF,EASE;AAAA,MAHE2B,WAGF,SAHEA,WAGF;AAAA,MAHeE,cAGf,SAHeA,cAGf;AACA,MAAMvnB,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADA,MAEQrI,OAFR,GAEmCoI,SAFnC,CAEQpI,OAFR;AAAA,MAEiBsL,aAFjB,GAEmClD,SAFnC,CAEiBkD,aAFjB;;AAIA,MAAI/L,OAAO,CAAC0F,QAAR,KAAqB,KAAzB,EAAgC;AAC9B;AACD;;AAED,MAAMgV,IAAI,GAAG3O,aAAa,CAAC2O,IAA3B;AACA,MAAMkV,YAAY,GAAG,CAAC,EAAtB;AACA,MAAMF,cAAc,GAAG7uB,2DAAQ,CAACC,WAAT,CAAqB8Z,WAArB,CACrBna,OADqB,EAErByc,eAAe,KAAK,OAApB,GAA8BxC,IAAI,CAAC3a,CAAL,GAAS6vB,YAAvC,GAAsDlV,IAAI,CAAC3a,CAFtC,EAGrBmd,eAAe,KAAK,OAApB,GAA8BxC,IAAI,CAAC5a,CAAL,GAAS8vB,YAAvC,GAAsDlV,IAAI,CAAC5a,CAHtC,CAAvB,CAVA,CAgBA;;AACAwuB,YAAU,CAAChrB,MAAX,GAAoB,KAApB;AACAgrB,YAAU,CAACje,WAAX,GAAyB,IAAzB;AACAlN,QAAM,CAACG,MAAP,GAAgB,KAAhB;AACAH,QAAM,CAACK,MAAP,GAAgB,KAAhB;AACAL,QAAM,CAACpD,CAAP,GAAW2vB,cAAc,CAAC3vB,CAA1B;AACAoD,QAAM,CAACrD,CAAP,GAAW4vB,cAAc,CAAC5vB,CAA1B;AAEAquB,wBAAsB,CAACU,OAAvB,CAA+BO,iCAA/B,CAAiE3uB,OAAjE,EAxBA,CA0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;;AAEA,MAAIT,OAAO,CAACwuB,yBAAZ,EAAuC;AACrCrC,mEAAS,CAAChpB,MAAD,EAASyF,GAAG,CAACE,MAAJ,CAAW4F,KAApB,CAAT;AACD,GAhDD,CAkDA;;;AACA,MACE1O,OAAO,CAACsQ,0BAAR,IACAC,0EAAsB,CAAC3H,GAAG,CAACE,MAAL,EAAawlB,UAAU,CAAC7rB,OAAxB,CAFxB,EAGE;AACA6rB,cAAU,CAACtjB,SAAX,GAAuB,IAAvB;AACAM,yFAAe,CAAC7K,OAAD,EAAU0K,QAAV,EAAoBmjB,UAApB,CAAf;AACD;;AAEDa,aAAW,CACTjS,eADS,EAETld,OAFS,EAGTS,OAHS,EAIT;AACEyvB,eAAW,EAAXA,WADF;AAEEE,kBAAc,EAAdA;AAFF,GAJS,EAQT7B,kBARS,EAST,IATS,CAAX;AAWD;;AAED,SAASQ,mBAAT,CACET,UADF,EAEEnrB,MAFF,EAGEnD,OAHF,EAIEkd,eAJF,SAMEzc,OANF,EAOE8tB,kBAPF,EAQE;AAAA,MAHE2B,WAGF,SAHEA,WAGF;AAAA,MAHeE,cAGf,SAHeA,cAGf;AACA;AACA9B,YAAU,CAAChrB,MAAX,GAAoB,KAApB;AACAgrB,YAAU,CAACje,WAAX,GAAyB,IAAzB;AACAlN,QAAM,CAACG,MAAP,GAAgB,KAAhB;;AAEA6rB,aAAW,CACTjS,eADS,EAETld,OAFS,EAGTS,OAHS,EAIT;AACEyvB,eAAW,EAAXA,WADF;AAEEE,kBAAc,EAAdA;AAFF,GAJS,EAQT7B,kBARS,EAST,KATS,CAAX;AAWD;AAED;;;;;;;;;;;;;AAWA,SAAS+B,yBAAT,CAAmC1nB,GAAnC,EAAwC;AACtCA,KAAG,CAAC8I,wBAAJ;AAEA,SAAO,KAAP;AACD,C;;;;;;;;;;;;AC7VD;AAAA;AAAA;AAKA;;;;;;;AAMA,SAAS6e,eAAT,CAAyB9vB,OAAzB,EAAkC;AAChC6lB,yFAAyB,CAAC7lB,OAAD,EAAU,KAAKiK,IAAf,CAAzB;AACD;AAED;;;;;;;;AAMA,SAAS8lB,eAAT,CAAyB/vB,OAAzB,EAAkC;AAChCylB,uFAAuB,CAACzlB,OAAD,EAAU,KAAKiK,IAAf,CAAvB;AACD;AAED;;;;;;AAIe;AACb6lB,iBAAe,EAAfA,eADa;AAEbC,iBAAe,EAAfA;AAFa,CAAf,E;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAKA;;;;;;;AAMA,SAASD,eAAT,CAAyB9vB,OAAzB,EAAkC;AAChC6lB,yFAAyB,CAAC7lB,OAAD,EAAU,KAAKiK,IAAf,CAAzB;AACD;AAED;;;;;;;;AAMA,SAAS+lB,cAAT,CAAwBhwB,OAAxB,EAAiC;AAC/B2lB,wFAAwB,CAAC3lB,OAAD,EAAU,KAAKiK,IAAf,CAAxB;AACD;AAED;;;;;;;AAKe;AACb6lB,iBAAe,EAAfA,eADa;AAEbE,gBAAc,EAAdA;AAFa,CAAf,E;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEe;AACbtG,4BAA0B,EAA1BA,sEADa;AAEbC,6BAA2B,EAA3BA,uEAFa;AAGbsG,yBAAuB,EAAvBA,gFAHa;AAIbC,2BAAyB,EAAzBA,kFAJa;AAKbC,2BAAyB,EAAzBA,kFALa;AAMbC,4BAA0B,EAA1BA,mFANa;AAObC,kBAAgB,EAAhBA,yEAAgBA;AAPH,CAAf,E;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;iBAE6BpoB,wDAAS,CAAC,cAAD,C;IAA9BwD,O,cAAAA,O;IAAS2iB,O,cAAAA,O;AAEjB;;;;;;;;;AAOA,SAASkC,aAAT,GAAyB;AACvB,OAAKtuB,OAAL,GAAe;AACbpD,SAAK,EAAE,EADM;AAEbC,OAAG,EAAE;AAFQ,GAAf;AAID;AAED;;;;;;;;;AAOA,SAASqK,cAAT,CAAwBf,GAAxB,EAA6B;AAAA;;AAC3B,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD2B,MAEnBrI,OAFmB,GAEPoI,SAFO,CAEnBpI,OAFmB;AAG3B,MAAMlB,KAAK,GAAG2M,OAAO,CAAC8kB,UAAR,CAAmBvwB,OAAnB,EAA4B,IAA5B,CAAd;AACA,MAAMxB,OAAO,GAAGyW,8DAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;AAJ2B,MAKnB+O,QALmB,GAKNvV,wDAAQ,CAAC+D,eAAT,CAAyBC,KALnB,CAKnBuR,QALmB;AAO3BrP,uDAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvB,QAAI,CAAC,KAAI,CAACwD,OAAV,EAAmB;AACjB,aAAO,IAAP;AACD;;AACD,QAAMwuB,WAAW,GAAGpwB,wDAAQ,CAACC,WAAT,CAAqBC,aAArB,CAClBN,OADkB,EAElB,KAAI,CAACgC,OAAL,CAAapD,KAFK,CAApB;AAKA,QAAM6xB,SAAS,GAAGrwB,wDAAQ,CAACC,WAAT,CAAqBC,aAArB,CAChBN,OADgB,EAEhB,KAAI,CAACgC,OAAL,CAAanD,GAFG,CAAlB,CATuB,CAcvB;;AACA,QAAMqB,MAAM,GAAGyV,QAAQ,CAAC6a,WAAD,EAAcC,SAAd,CAAvB,CAfuB,CAiBvB;;AACA5G,+DAAU,CAACrrB,OAAD,EAAUwB,OAAV,EAAmB,KAAI,CAACgC,OAAL,CAAapD,KAAhC,EAAuCsB,MAAvC,EAA+C;AAAEpB,WAAK,EAALA;AAAF,KAA/C,CAAV;AACD,GAnBG,CAAJ;AAoBD;AAED;;;;;;;;;AAOA,SAAS4xB,qBAAT,CAA+BvoB,GAA/B,EAAoC;AAClC,MAAMwoB,YAAY,GAAG,IAArB;AACA,MAAM3wB,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B;AACA,MAAMiO,KAAK,GAAG9F,GAAG,CAACE,MAAJ,CAAWiD,aAAX,CAAyB2C,KAAvC;;AAEA,MAAI2iB,mEAAc,CAAC,KAAK5uB,OAAL,CAAapD,KAAd,CAAlB,EAAwC;AACtC,SAAKoD,OAAL,CAAapD,KAAb,GAAqBqP,KAArB;AACD,GAFD,MAEO;AACL,SAAKjM,OAAL,CAAanD,GAAb,GAAmBoP,KAAnB;;AACA,SAAK4iB,cAAL,CAAoB1oB,GAApB;AACD;;AAED/H,0DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA,SAAO2wB,YAAP;AACD;AAED;;;;;;;;;;AAQA,SAASG,oBAAT,CAA8B3oB,GAA9B,EAAmC;AAAA,oBACEA,GAAG,CAACE,MADN;AAAA,MACzBrI,OADyB,eACzBA,OADyB;AAAA,MAChBsL,aADgB,eAChBA,aADgB;AAAA,MAEzB2C,KAFyB,GAEf3C,aAFe,CAEzB2C,KAFyB;AAIjC,OAAKjM,OAAL,CAAanD,GAAb,GAAmBoP,KAAnB;AACA7N,0DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;AAQA,SAAS6wB,cAAT,CAAwB1oB,GAAxB,EAA6B;AAC3BA,KAAG,CAACE,MAAJ,CAAWrG,OAAX,GAAqB,KAAKA,OAA1B;AAD2B,MAEnBhC,OAFmB,GAEPmI,GAAG,CAACE,MAFG,CAEnBrI,OAFmB;;AAAA,4BAI6ByL,OAAO,CAACiI,UAAR,CACtD1T,OADsD,CAJ7B;AAAA,MAInB0T,UAJmB,uBAInBA,UAJmB;AAAA,MAIPF,UAJO,uBAIPA,UAJO;AAAA,MAIK+H,mBAJL,uBAIKA,mBAJL;;AAQ3B,MAAM9G,SAAS,GAAGf,UAAU,CAACe,SAA7B;AACA,MAAMsc,iBAAiB,GAAGtc,SAAS,CAACuc,KAAV,EAA1B;AAEA,MAAMrxB,MAAM,GAAG;AACbf,SAAK,EAAE;AACLU,OAAC,EAAE,KAAK0C,OAAL,CAAapD,KAAb,CAAmBU,CADjB;AAELD,OAAC,EAAE,KAAK2C,OAAL,CAAapD,KAAb,CAAmBS;AAFjB,KADM;AAKbR,OAAG,EAAE;AACHS,OAAC,EAAE,KAAK0C,OAAL,CAAanD,GAAb,CAAiBS,CADjB;AAEHD,OAAC,EAAE,KAAK2C,OAAL,CAAanD,GAAb,CAAiBQ;AAFjB;AALQ,GAAf;AAWA,MAAM4xB,aAAa,GAAG;AACpBtxB,UAAM,EAANA,MADoB;AAEpB8U,aAAS,EAATA,SAFoB;AAGpBW,gBAAY,EAAE5B,UAAU,CAACuD,kBAHL;AAIpBma,yBAAqB;AAJD,GAAtB;AAOA,OAAKC,mBAAL,CAAyBhpB,GAAzB,EAA8B8oB,aAA9B;AAEA,MAAMG,SAAS,GAAG;AAChBC,gBAAY,EAAE9V,mBADE;AAEhB+V,QAAI,EAAEC,kFAAuB,CAACR,iBAAD,EAAoBtc,SAApB;AAFb,GAAlB;AAKA2Z,SAAO,CAACoD,SAAR,CAAkB,KAAKxxB,OAAvB,EAAgC,CAACoxB,SAAD,CAAhC,EApC2B,CAsC3B;;AACAhD,SAAO,CAACqD,0BAAR,CAAmC/d,UAAnC;AACAtT,0DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;;AAEA,OAAKswB,aAAL;AACD;AAED;;;;;;AAIe;AACb3e,wBAAsB,EAAE+e,qBADX;AAEbljB,uBAAqB,EAAEkjB,qBAFV;AAGbgB,oBAAkB,EAAEhB,qBAHP;AAIbiB,mBAAiB,EAAEb,oBAJN;AAKb/iB,mBAAiB,EAAE+iB,oBALN;AAMbziB,mBAAiB,EAAEyiB,oBANN;AAObc,kBAAgB,EAAEf,cAPL;AAQbgB,iBAAe,EAAEhB,cARJ;AASbiB,iBAAe,EAAExB,aATJ;AAUbpnB,gBAAc,EAAdA,cAVa;AAWbonB,eAAa,EAAbA,aAXa;AAYbO,gBAAc,EAAdA;AAZa,CAAf,E;;;;;;;;;;;;;;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AAEA,IAAMpnB,MAAM,GAAGC,iEAAS,CAAC,oBAAD,CAAxB;;iBAE6BzB,wDAAS,CAAC,cAAD,C;IAA9BwD,O,cAAAA,O;IAAS2iB,O,cAAAA,O;AAEjB;;;;;;;;;AAOA,SAASllB,cAAT,CAAwBf,GAAxB,EAA6B;AAC3B,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD2B,MAEnBrI,OAFmB,GAEPoI,SAFO,CAEnBpI,OAFmB;AAG3B,MAAMlB,KAAK,GAAG2M,OAAO,CAAC8kB,UAAR,CAAmBvwB,OAAnB,EAA4B,IAA5B,CAAd;AACA,MAAMxB,OAAO,GAAGyW,8DAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;AACA,MAAMjH,MAAM,GAAG,KAAKqC,OAAL,CAAarC,MAA5B;;AAEA,MAAIA,MAAM,CAAC6D,MAAP,GAAgB,CAApB,EAAuB;AACrB;AACD;;AAED8C,uDAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvB,SAAK,IAAIua,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGpZ,MAAM,CAAC6D,MAA3B,EAAmCuV,CAAC,EAApC,EAAwC;AACtC,UAAMjV,KAAK,GAAG,gFAAInE,MAAM,CAACoZ,CAAD,CAAN,CAAUjV,KAAjB,CAAX;;AAEA,UAAIiV,CAAC,KAAKpZ,MAAM,CAAC6D,MAAP,GAAgB,CAA1B,EAA6B;AAC3B;AACA;AACAM,aAAK,CAACwV,IAAN,CAAW3Z,MAAM,CAAC,CAAD,CAAjB;AACD;;AACDI,sEAAe,CAACvB,OAAD,EAAUwB,OAAV,EAAmBL,MAAM,CAACoZ,CAAD,CAAzB,EAA8BjV,KAA9B,EAAqC;AAClDhF,aAAK,EAALA;AADkD,OAArC,CAAf;AAGD;AACF,GAbG,CAAJ;AAcD;AAED;;;;;;;;;AAOA,SAAS4xB,qBAAT,CAA+BvoB,GAA/B,EAAoC;AAClC,MAAMnI,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B;AACA,MAAMiO,KAAK,GAAG9F,GAAG,CAACE,MAAJ,CAAWiD,aAAX,CAAyB2C,KAAvC;AACA,MAAMtO,MAAM,GAAG,KAAKqC,OAAL,CAAarC,MAA5B;;AAEA,MAAI,CAACA,MAAM,CAAC6D,MAAZ,EAAoB;AAClBiG,UAAM,CAACmlB,IAAP,CAAY,+CAAZ;AAEA,WAAO,IAAP;AACD;;AAEDjvB,QAAM,CAAC2Z,IAAP,CAAY;AACVha,KAAC,EAAE2O,KAAK,CAAC3O,CADC;AAEVD,KAAC,EAAE4O,KAAK,CAAC5O,CAFC;AAGVyE,SAAK,EAAE;AAHG,GAAZ;AAMA,OAAKiuB,aAAL,IAAsB,CAAtB;AAEA3xB,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;AAQA,SAAS8wB,oBAAT,CAA8B3oB,GAA9B,EAAmC;AACjC,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,MAAMrI,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B;;AAEA,OAAKgyB,SAAL,CAAe5pB,SAAf;;AACAhI,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;AAQA,SAAS6wB,cAAT,CAAwB1oB,GAAxB,EAA6B;AAC3B,MAAMxI,MAAM,GAAG,KAAKqC,OAAL,CAAarC,MAA5B;AAD2B,MAEnBK,OAFmB,GAEPmI,GAAG,CAACE,MAFG,CAEnBrI,OAFmB;;AAAA,4BAI6ByL,OAAO,CAACiI,UAAR,CACtD1T,OADsD,CAJ7B;AAAA,MAInB0T,UAJmB,uBAInBA,UAJmB;AAAA,MAIPF,UAJO,uBAIPA,UAJO;AAAA,MAIK+H,mBAJL,uBAIKA,mBAJL;;AAQ3B,MAAM9G,SAAS,GAAGf,UAAU,CAACe,SAA7B;AACA,MAAMsc,iBAAiB,GAAGtc,SAAS,CAACuc,KAAV,EAA1B;AAEA,MAAMC,aAAa,GAAG;AACpBtxB,UAAM,EAANA,MADoB;AAEpB8U,aAAS,EAATA,SAFoB;AAGpBW,gBAAY,EAAE5B,UAAU,CAACuD,kBAHL;AAIpBma,yBAAqB;AAJD,GAAtB;AAOA,OAAKC,mBAAL,CAAyBhpB,GAAzB,EAA8B8oB,aAA9B;AAEA,MAAMG,SAAS,GAAG;AAChBC,gBAAY,EAAE9V,mBADE;AAEhB+V,QAAI,EAAEC,kFAAuB,CAACR,iBAAD,EAAoBtc,SAApB;AAFb,GAAlB;AAKA2Z,SAAO,CAACoD,SAAR,CAAkB,KAAKxxB,OAAvB,EAAgC,CAACoxB,SAAD,CAAhC,EAzB2B,CA2B3B;;AACAhD,SAAO,CAACqD,0BAAR,CAAmC/d,UAAnC;AACAtT,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;;AAEA,OAAKswB,aAAL;AACD;AAED;;;;;;;;;AAOA,SAASA,aAAT,GAAyB;AACvB,OAAKtuB,OAAL,GAAe;AACbrC,UAAM,EAAE;AADK,GAAf;AAIA,OAAKoyB,aAAL,GAAqB,CAArB;AACD;AAED;;;;;;;;;AAOA,SAASC,SAAT,CAAmB7pB,GAAnB,EAAwB;AACtB,MAAMxI,MAAM,GAAG,KAAKqC,OAAL,CAAarC,MAA5B;;AAEA,MAAIA,MAAM,CAAC6D,MAAX,EAAmB;AACjB;AACA7D,UAAM,CAAC,KAAKoyB,aAAL,GAAqB,CAAtB,CAAN,CAA+BjuB,KAA/B,CAAqCwV,IAArC,CAA0C;AACxCha,OAAC,EAAE6I,GAAG,CAACmD,aAAJ,CAAkB2C,KAAlB,CAAwB3O,CADa;AAExCD,OAAC,EAAE8I,GAAG,CAACmD,aAAJ,CAAkB2C,KAAlB,CAAwB5O,CAFa;AAGxCyE,WAAK,EAAE;AAHiC,KAA1C;AAKD,GAVqB,CAYtB;;;AACAnE,QAAM,CAAC2Z,IAAP,CAAY;AACVha,KAAC,EAAE6I,GAAG,CAACmD,aAAJ,CAAkB2C,KAAlB,CAAwB3O,CADjB;AAEVD,KAAC,EAAE8I,GAAG,CAACmD,aAAJ,CAAkB2C,KAAlB,CAAwB5O,CAFjB;AAGVyE,SAAK,EAAE;AAHG,GAAZ,EAbsB,CAmBtB;;AACA,OAAKiuB,aAAL,IAAsB,CAAtB,CApBsB,CAsBtB;;AACA3xB,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC/B,GAAG,CAACnI,OAArC;AACD;AAED;;;;;;AAIe;AACb2R,wBAAsB,EAAE+e,qBADX;AAEbljB,uBAAqB,EAAEkjB,qBAFV;AAGbgB,oBAAkB,EAAEhB,qBAHP;AAIbiB,mBAAiB,EAAEb,oBAJN;AAKb/iB,mBAAiB,EAAE+iB,oBALN;AAMbziB,mBAAiB,EAAEyiB,oBANN;AAObc,kBAAgB,EAAEf,cAPL;AAQbgB,iBAAe,EAAEhB,cARJ;AASbiB,iBAAe,EAAExB,aATJ;AAUbpnB,gBAAc,EAAdA,cAVa;AAWbonB,eAAa,EAAbA,aAXa;AAYb0B,WAAS,EAATA,SAZa;AAabnB,gBAAc,EAAdA;AAba,CAAf,E;;;;;;;;;;;;;;;;;;;ACvLA;AACA;AACA;;iBAEoB5oB,wDAAS,CAAC,cAAD,C;IAArBwD,O,cAAAA,O;AAER;;;;;;;;;;AAQA,SAASvC,cAAT,CAAwBf,GAAxB,EAA6B;AAAA;;AAC3B,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD2B,MAEnBrI,OAFmB,GAEPoI,SAFO,CAEnBpI,OAFmB;AAG3B,MAAMlB,KAAK,GAAG2M,OAAO,CAAC8kB,UAAR,CAAmBvwB,OAAnB,EAA4B,IAA5B,CAAd;AACA,MAAMxB,OAAO,GAAGyW,8DAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;AACA,MAAM5E,OAAO,GAAG,KAAKA,OAArB;AAEAsE,uDAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvB,QAAMyzB,mBAAmB,GAAGjwB,OAAO,CAACrC,MAAR,CAAe6D,MAAf,GAAwB,CAApD;;AAEA,QAAIyuB,mBAAJ,EAAyB;AACvB,WAAK,IAAIlZ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG/W,OAAO,CAACrC,MAAR,CAAe6D,MAAnC,EAA2CuV,CAAC,EAA5C,EAAgD;AAC9C,YAAMjV,KAAK,GAAG,gFAAI9B,OAAO,CAACrC,MAAR,CAAeoZ,CAAf,EAAkBjV,KAAzB,CAAX;;AAEA/D,wEAAe,CAACvB,OAAD,EAAUwB,OAAV,EAAmB,KAAI,CAACgC,OAAL,CAAarC,MAAb,CAAoBoZ,CAApB,CAAnB,EAA2CjV,KAA3C,EAAkD;AAC/DhF,eAAK,EAALA;AAD+D,SAAlD,CAAf;AAGD;AACF;AACF,GAZG,CAAJ;AAaD;;AAED,IAAMoxB,yBAAyB,GAAG5tB,MAAM,CAAC8lB,MAAP,CAAc,EAAd,EAAkB+H,kEAAlB,EAA6C;AAC7EjnB,gBAAc,EAAdA;AAD6E,CAA7C,CAAlC;AAIA;;;;;AAIegnB,wFAAf,E;;;;;;;;;;;;AC5CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;iBAE6BjoB,wDAAS,CAAC,cAAD,C;IAA9BwD,O,cAAAA,O;IAAS2iB,O,cAAAA,O;AAEjB;;;;;;;;;AAOA,SAASllB,cAAT,CAAwBf,GAAxB,EAA6B;AAAA;;AAC3B,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD2B,MAEnBrI,OAFmB,GAEPoI,SAFO,CAEnBpI,OAFmB;AAG3B,MAAMlB,KAAK,GAAG2M,OAAO,CAAC8kB,UAAR,CAAmBvwB,OAAnB,EAA4B,IAA5B,CAAd;AACA,MAAMxB,OAAO,GAAGyW,8DAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;AAEAN,uDAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvBurB,6DAAQ,CAACvrB,OAAD,EAAUwB,OAAV,EAAmB,KAAI,CAACgC,OAAL,CAAapD,KAAhC,EAAuC,KAAI,CAACoD,OAAL,CAAanD,GAApD,EAAyD;AAC/DC,WAAK,EAALA;AAD+D,KAAzD,CAAR;AAGD,GAJG,CAAJ;AAKD;AAED;;;;;;;;;AAOA,SAAS4xB,qBAAT,CAA+BvoB,GAA/B,EAAoC;AAClC,MAAMwoB,YAAY,GAAG,IAArB;AACA,MAAM3wB,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B;AACA,MAAMiO,KAAK,GAAG9F,GAAG,CAACE,MAAJ,CAAWiD,aAAX,CAAyB2C,KAAvC;;AAEA,MAAI2iB,mEAAc,CAAC,KAAK5uB,OAAL,CAAapD,KAAd,CAAlB,EAAwC;AACtC,SAAKoD,OAAL,CAAapD,KAAb,GAAqBqP,KAArB;AACD,GAFD,MAEO;AACL,SAAKjM,OAAL,CAAanD,GAAb,GAAmBoP,KAAnB;;AACA,SAAK4iB,cAAL,CAAoB1oB,GAApB;AACD;;AAED/H,0DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA,SAAO2wB,YAAP;AACD;AAED;;;;;;;;;;AAQA,SAASG,oBAAT,CAA8B3oB,GAA9B,EAAmC;AAAA,oBAI7BA,GAAG,CAACE,MAJyB;AAAA,MAE/BrI,OAF+B,eAE/BA,OAF+B;AAAA,MAGdiO,KAHc,eAG/B3C,aAH+B,CAGd2C,KAHc;AAMjC,OAAKjM,OAAL,CAAanD,GAAb,GAAmBoP,KAAnB;AACA7N,0DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;AAQA,SAAS6wB,cAAT,CAAwB1oB,GAAxB,EAA6B;AAC3BA,KAAG,CAACE,MAAJ,CAAWrG,OAAX,GAAqB,KAAKA,OAA1B;AAD2B,MAGnBhC,OAHmB,GAGPmI,GAAG,CAACE,MAHG,CAGnBrI,OAHmB;;AAAA,4BAK6ByL,OAAO,CAACiI,UAAR,CACtD1T,OADsD,CAL7B;AAAA,MAKnB0T,UALmB,uBAKnBA,UALmB;AAAA,MAKPF,UALO,uBAKPA,UALO;AAAA,MAKK+H,mBALL,uBAKKA,mBALL;;AAS3B,MAAM9G,SAAS,GAAGf,UAAU,CAACe,SAA7B;AACA,MAAMsc,iBAAiB,GAAGtc,SAAS,CAACuc,KAAV,EAA1B;AAEA,MAAMrxB,MAAM,GAAG,CACb;AACEL,KAAC,EAAE,KAAK0C,OAAL,CAAapD,KAAb,CAAmBU,CADxB;AAEED,KAAC,EAAE,KAAK2C,OAAL,CAAapD,KAAb,CAAmBS;AAFxB,GADa,EAKb;AACEC,KAAC,EAAE,KAAK0C,OAAL,CAAanD,GAAb,CAAiBS,CADtB;AAEED,KAAC,EAAE,KAAK2C,OAAL,CAAanD,GAAb,CAAiBQ;AAFtB,GALa,CAAf;AAWA,MAAM4xB,aAAa,GAAG;AACpBtxB,UAAM,EAANA,MADoB;AAEpB8U,aAAS,EAATA,SAFoB;AAGpBW,gBAAY,EAAE5B,UAAU,CAACuD,kBAHL;AAIpBma,yBAAqB;AAJD,GAAtB;AAOA,OAAKC,mBAAL,CAAyBhpB,GAAzB,EAA8B8oB,aAA9B;AAEA,MAAMG,SAAS,GAAG;AAChBC,gBAAY,EAAE9V,mBADE;AAEhB+V,QAAI,EAAEC,kFAAuB,CAACR,iBAAD,EAAoBtc,SAApB;AAFb,GAAlB;AAKA2Z,SAAO,CAACoD,SAAR,CAAkB,KAAKxxB,OAAvB,EAAgC,CAACoxB,SAAD,CAAhC,EArC2B,CAuC3B;;AACAhD,SAAO,CAACqD,0BAAR,CAAmC/d,UAAnC;AACAtT,0DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;;AAEA,OAAKswB,aAAL;AACD;AAED;;;;;;;;;AAOA,SAASA,aAAT,GAAyB;AACvB,OAAKtuB,OAAL,GAAe;AACbpD,SAAK,EAAE,EADM;AAEbC,OAAG,EAAE;AAFQ,GAAf;AAID;AAED;;;;;;AAIe;AACb8S,wBAAsB,EAAE+e,qBADX;AAEbljB,uBAAqB,EAAEkjB,qBAFV;AAGbgB,oBAAkB,EAAEhB,qBAHP;AAIbiB,mBAAiB,EAAEb,oBAJN;AAKb/iB,mBAAiB,EAAE+iB,oBALN;AAMbziB,mBAAiB,EAAEyiB,oBANN;AAObc,kBAAgB,EAAEf,cAPL;AAQbgB,iBAAe,EAAEhB,cARJ;AASbiB,iBAAe,EAAExB,aATJ;AAUbpnB,gBAAc,EAAdA,cAVa;AAWbonB,eAAa,EAAbA,aAXa;AAYbO,gBAAc,EAAdA;AAZa,CAAf,E;;;;;;;;;;;;AC9IA;AAAA;AAAA;AAAA;AACA;AAEA;;;;;;;AAMA,SAASqB,WAAT,CAAqB/pB,GAArB,EAA0B;AAAA,MAChB9H,WADgB,GACAD,2DADA,CAChBC,WADgB;;AAAA,mBAEW4H,iEAAS,CAAC,cAAD,CAFpB;AAAA,MAEhBwD,OAFgB,cAEhBA,OAFgB;AAAA,MAEP3C,aAFO,cAEPA,aAFO;;AAGxB,MAAMV,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,MAAMzH,QAAQ,GAAGwH,SAAS,CAACxH,QAA3B;AAEA,MAAIuxB,aAAJ;;AAEA,MAAI,KAAKC,QAAT,EAAmB;AACjBD,iBAAa,GAAG,KAAKE,gBAArB;AACD,GAFD,MAEO,IAAI,KAAKC,cAAT,EAAyB;AAC9BH,iBAAa,GAAG,KAAKE,gBAArB;AACA,SAAKC,cAAL,GAAsB,KAAtB;AACD,GAHM,MAGA;AACLH,iBAAa,GAAGnN,uDAAK,CAACzhB,KAAN,CAAYyK,kBAA5B;AACD;;AAED,MAAI,CAACmkB,aAAL,EAAoB;AAClB;AACD;;AAnBuB,yBAqBE/pB,SAAS,CAAC6F,KArBZ;AAAA,MAqBhBsG,IArBgB,oBAqBhBA,IArBgB;AAAA,MAqBVge,OArBU,oBAqBVA,OArBU;AAAA,uBAsBPJ,aAtBO;AAAA,MAsBhB7yB,CAtBgB,kBAsBhBA,CAtBgB;AAAA,MAsBbD,CAtBa,kBAsBbA,CAtBa;;AAwBxB,MAAIC,CAAC,GAAG,CAAJ,IAASA,CAAC,GAAGizB,OAAb,IAAwBlzB,CAAC,GAAG,CAA5B,IAAiCA,CAAC,GAAGkV,IAAzC,EAA+C;AAC7C;AACD,GA1BuB,CA4BxB;;;AACA,MAAMrU,MAAM,GAAG4I,aAAa,CAAC5I,MAA7B;AACA,MAAM1B,OAAO,GAAG4J,SAAS,CAACkN,aAA1B;AACA,MAAMtV,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;AACA,MAAMlB,KAAK,GAAG2M,OAAO,CAAC8kB,UAAR,CAAmBvwB,OAAnB,EAA4B,KAAKoyB,QAAjC,CAAd;AAEA5zB,SAAO,CAACyI,YAAR,CAAqB,CAArB,EAAwB,CAAxB,EAA2B,CAA3B,EAA8B,CAA9B,EAAiC,CAAjC,EAAoC,CAApC;AAEA,MAAMurB,YAAY,GAAGtyB,MAAM,GAAGU,QAAQ,CAACM,KAAvC;AACA,MAAMuxB,iBAAiB,GAAGpyB,WAAW,CAACC,aAAZ,CAA0BN,OAA1B,EAAmCmyB,aAAnC,CAA1B;AAEA3zB,SAAO,CAAC2I,SAAR;AACA3I,SAAO,CAAC4D,WAAR,GAAsBtD,KAAtB;AACAN,SAAO,CAACqD,OAAR,CACE4wB,iBAAiB,CAACnzB,CADpB,EAEEmzB,iBAAiB,CAACpzB,CAFpB,EAGEmzB,YAHF,EAIEA,YAJF,EAKE,CALF,EAME,CANF,EAOE,IAAIrzB,IAAI,CAACU,EAPX;AASArB,SAAO,CAAC6I,MAAR;AACD;;AAEc;AACb6qB,aAAW,EAAXA;AADa,CAAf,E;;;;;;;;;;;;AC9DA;AAAA;AAAA;AAAA;AACA;AAEA;;;;;;;;;AAQe,yEAASQ,MAAT,EAAiB;AAC9B,MAAMC,IAAI,GAAGnH,yEAAgB,CAACkH,MAAD,CAA7B,CAD8B,CAG9B;AACA;;AAEA,MAAI9L,WAAW,GAAG,EAAlB;AACA,MAAMgM,YAAY,GAAGD,IAAI,CAACrzB,CAAL,GAAS,CAAT,GAAa,GAAb,GAAmB,GAAxC;AACA,MAAMuzB,YAAY,GAAGF,IAAI,CAACtzB,CAAL,GAAS,CAAT,GAAa,GAAb,GAAmB,GAAxC;AACA,MAAMyzB,YAAY,GAAGH,IAAI,CAACI,CAAL,GAAS,CAAT,GAAa,GAAb,GAAmB,GAAxC,CAT8B,CAW9B;;AACA,MAAMzxB,GAAG,GAAG,IAAIlB,2DAAQ,CAAC+D,eAAT,CAAyB6uB,OAA7B,CACV7zB,IAAI,CAACmC,GAAL,CAASqxB,IAAI,CAACrzB,CAAd,CADU,EAEVH,IAAI,CAACmC,GAAL,CAASqxB,IAAI,CAACtzB,CAAd,CAFU,EAGVF,IAAI,CAACmC,GAAL,CAASqxB,IAAI,CAACI,CAAd,CAHU,CAAZ;AAMA,MAAME,GAAG,GAAG,MAAZ;;AAEA,OAAK,IAAIzwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,CAApB,EAAuBA,CAAC,EAAxB,EAA4B;AAC1B,QAAIlB,GAAG,CAAChC,CAAJ,GAAQ2zB,GAAR,IAAe3xB,GAAG,CAAChC,CAAJ,GAAQgC,GAAG,CAACjC,CAA3B,IAAgCiC,GAAG,CAAChC,CAAJ,GAAQgC,GAAG,CAACyxB,CAAhD,EAAmD;AACjDnM,iBAAW,IAAIgM,YAAf;AACAtxB,SAAG,CAAChC,CAAJ,GAAQ,CAAR;AACD,KAHD,MAGO,IAAIgC,GAAG,CAACjC,CAAJ,GAAQ4zB,GAAR,IAAe3xB,GAAG,CAACjC,CAAJ,GAAQiC,GAAG,CAAChC,CAA3B,IAAgCgC,GAAG,CAACjC,CAAJ,GAAQiC,GAAG,CAACyxB,CAAhD,EAAmD;AACxDnM,iBAAW,IAAIiM,YAAf;AACAvxB,SAAG,CAACjC,CAAJ,GAAQ,CAAR;AACD,KAHM,MAGA,IAAIiC,GAAG,CAACyxB,CAAJ,GAAQE,GAAR,IAAe3xB,GAAG,CAACyxB,CAAJ,GAAQzxB,GAAG,CAAChC,CAA3B,IAAgCgC,GAAG,CAACyxB,CAAJ,GAAQzxB,GAAG,CAACjC,CAAhD,EAAmD;AACxDunB,iBAAW,IAAIkM,YAAf;AACAxxB,SAAG,CAACyxB,CAAJ,GAAQ,CAAR;AACD,KAHM,MAGA,IAAIzxB,GAAG,CAAChC,CAAJ,GAAQ2zB,GAAR,IAAe3xB,GAAG,CAACjC,CAAJ,GAAQ4zB,GAAvB,IAA8B3xB,GAAG,CAAChC,CAAJ,KAAUgC,GAAG,CAACjC,CAAhD,EAAmD;AACxDunB,iBAAW,IAAIgM,YAAY,GAAGC,YAA9B;AACAvxB,SAAG,CAAChC,CAAJ,GAAQ,CAAR;AACAgC,SAAG,CAACjC,CAAJ,GAAQ,CAAR;AACD,KAJM,MAIA,IAAIiC,GAAG,CAAChC,CAAJ,GAAQ2zB,GAAR,IAAe3xB,GAAG,CAACyxB,CAAJ,GAAQE,GAAvB,IAA8B3xB,GAAG,CAAChC,CAAJ,KAAUgC,GAAG,CAACyxB,CAAhD,EAAmD;AACxDnM,iBAAW,IAAIgM,YAAY,GAAGE,YAA9B;AACAxxB,SAAG,CAAChC,CAAJ,GAAQ,CAAR;AACAgC,SAAG,CAACyxB,CAAJ,GAAQ,CAAR;AACD,KAJM,MAIA,IAAIzxB,GAAG,CAACjC,CAAJ,GAAQ4zB,GAAR,IAAe3xB,GAAG,CAACyxB,CAAJ,GAAQE,GAAvB,IAA8B3xB,GAAG,CAACjC,CAAJ,KAAUiC,GAAG,CAACyxB,CAAhD,EAAmD;AACxDnM,iBAAW,IAAIiM,YAAY,GAAGC,YAA9B;AACAxxB,SAAG,CAACjC,CAAJ,GAAQ,CAAR;AACAiC,SAAG,CAACyxB,CAAJ,GAAQ,CAAR;AACD,KAJM,MAIA;AACL;AACD;AACF;;AAED,SAAOnM,WAAP;AACD,C;;;;;;;;;;;;AC3DD;AAAA;AAAA;AAAA;AACA;AAEA,IAAMA,WAAW,GAAG;AAClBsM,sBAAoB,EAApBA,gEADkB;AAElBC,yBAAuB,EAAvBA,mEAAuBA;AAFL,CAApB;AAKevM,0EAAf,E;;;;;;;;;;;;ACRA;AAAA;;;;;;;;AAQe,yEAASwM,iBAAT,EAA4B;AACzC,MAAIC,QAAQ,GAAGD,iBAAiB,CAACE,OAAlB,CAA0B,GAA1B,EAA+B,GAA/B,CAAf;AAEAD,UAAQ,GAAGA,QAAQ,CAACC,OAAT,CAAiB,GAAjB,EAAsB,GAAtB,CAAX;AACAD,UAAQ,GAAGA,QAAQ,CAACC,OAAT,CAAiB,GAAjB,EAAsB,GAAtB,CAAX;AACAD,UAAQ,GAAGA,QAAQ,CAACC,OAAT,CAAiB,GAAjB,EAAsB,GAAtB,CAAX;AACAD,UAAQ,GAAGA,QAAQ,CAACC,OAAT,CAAiB,GAAjB,EAAsB,GAAtB,CAAX;AACAD,UAAQ,GAAGA,QAAQ,CAACC,OAAT,CAAiB,GAAjB,EAAsB,GAAtB,CAAX;AACAD,UAAQ,GAAGA,QAAQ,CAACE,WAAT,EAAX;AAEA,SAAOF,QAAP;AACD,C;;;;;;;;;;;;ACnBD;AAAA;AAAA;AAAA;AACA;AAEA,IAAMG,WAAW,GAAG;AAClBC,aAAW,EAAE,EADK;AAElBC,WAAS,EAAE,EAFO;AAGlBC,UAAQ,EAAE;AAHQ,CAApB;AAMA,IAAMC,WAAW,GAAG;AAClBH,aAAW,EAAE,CADK;AAElBC,WAAS,EAAE,CAFO;AAGlBC,UAAQ,EAAE;AAHQ,CAApB;AAMA,IAAIE,cAAc,GAAG;AACnBJ,aAAW,EAAE,CADM;AAEnBC,WAAS,EAAE,CAFQ;AAGnBC,UAAQ,EAAE;AAHS,CAArB;AAMA,IAAIG,KAAK,GAAG,KAAZ;AACA,IAAMC,SAAS,GAAG,EAAlB;;AAEA,SAASC,UAAT,CACEh0B,OADF,EAEEi0B,OAFF,EAGExkB,IAHF,EAIEykB,YAJF,EAKEC,YALF,EAMEC,YANF,EAOEC,cAPF,EAQE;AACA,MAAI,CAACb,WAAW,CAACvG,cAAZ,CAA2Bxd,IAA3B,CAAL,EAAuC;AACrC,UAAM,IAAI6kB,KAAJ,CACJ,iEADI,CAAN;AAGD;;AAED,MAAI,CAACt0B,OAAD,IAAY,CAACi0B,OAAjB,EAA0B;AACxB;AACD,GATD,CAWA;;;AACA,MAAMM,cAAc,GAAG;AACrB9kB,QAAI,EAAJA,IADqB;AAErBwkB,WAAO,EAAPA,OAFqB;AAGrBC,gBAAY,EAAZA,YAHqB;AAIrBC,gBAAY,EAAZA,YAJqB;AAKrBC,gBAAY,EAAZA;AALqB,GAAvB,CAZA,CAoBA;;AACA,MAAMI,eAAe,GAAGp0B,2DAAQ,CAACC,WAAT,CAAqBo0B,UAArB,CAAgCC,kBAAhC,CACtBT,OADsB,CAAxB;;AAIA,MAAIO,eAAJ,EAAqB;AACnBA,mBAAe,CAACG,OAAhB,CAAwBC,IAAxB,CACE,UAAS3mB,KAAT,EAAgB;AACdkmB,kBAAY,CAAClmB,KAAD,CAAZ;AACD,KAHH,EAIE,UAAS4mB,KAAT,EAAgB;AACdT,kBAAY,CAACS,KAAD,CAAZ;AACD,KANH;AASA;AACD;;AAED,MAAIR,cAAJ,EAAoB;AAClB;AACAb,eAAW,CAAC/jB,IAAD,CAAX,CAAkBqlB,OAAlB,CAA0BP,cAA1B;AACD,GAHD,MAGO;AACL;AACAf,eAAW,CAAC/jB,IAAD,CAAX,CAAkB6J,IAAlB,CAAuBib,cAAvB;AACD,GA5CD,CA8CA;;;AACAT,OAAK,GAAG,IAAR;AACD;;AAED,SAASiB,iBAAT,CAA2BtlB,IAA3B,EAAiC;AAC/B;AACA,MAAI,CAAC+jB,WAAW,CAACvG,cAAZ,CAA2Bxd,IAA3B,CAAL,EAAuC;AACrC,UAAM,IAAI6kB,KAAJ,CACJ,iEADI,CAAN;AAGD;;AAEDd,aAAW,CAAC/jB,IAAD,CAAX,GAAoB,EAApB;AACD;;AAED,SAASulB,UAAT,GAAsB;AACpB,MAAI,CAAClB,KAAL,EAAY;AACV;AACD;;AAEDlZ,YAAU,CAAC,YAAW;AACpBqa,iBAAa;AACd,GAFS,EAEPlB,SAFO,CAAV;AAGD;;AAED,SAASmB,WAAT,CAAqBX,cAArB,EAAqC;AACnC,MAAMl0B,WAAW,GAAGD,2DAAQ,CAACC,WAA7B,CADmC,CAEnC;;AACA,MAAMoP,IAAI,GAAG8kB,cAAc,CAAC9kB,IAA5B;AAEAmkB,aAAW,CAACnkB,IAAD,CAAX;AAEAqkB,OAAK,GAAG,IAAR;AACA,MAAMG,OAAO,GAAGM,cAAc,CAACN,OAA/B;AACA,MAAME,YAAY,GAAGI,cAAc,CAACJ,YAApC;AACA,MAAMC,YAAY,GAAGG,cAAc,CAACH,YAApC,CAVmC,CAYnC;;AACA,MAAMI,eAAe,GAAGn0B,WAAW,CAACo0B,UAAZ,CAAuBC,kBAAvB,CAA0CT,OAA1C,CAAxB;;AAEA,MAAIO,eAAJ,EAAqB;AACnB;AACA;AACAA,mBAAe,CAACG,OAAhB,CAAwBC,IAAxB,CACE,UAAS3mB,KAAT,EAAgB;AACd2lB,iBAAW,CAACnkB,IAAD,CAAX,GADc,CAEd;;AAEA0kB,kBAAY,CAAClmB,KAAD,CAAZ;AACA+mB,gBAAU;AACX,KAPH,EAQE,UAASH,KAAT,EAAgB;AACdjB,iBAAW,CAACnkB,IAAD,CAAX,GADc,CAEd;;AACA2kB,kBAAY,CAACS,KAAD,CAAZ;AACAG,gBAAU;AACX,KAbH;AAgBA;AACD;;AAED,WAASG,yBAAT,CAAmCZ,cAAnC,EAAmD;AACjD,QAAIA,cAAc,CAAC9kB,IAAf,KAAwB,UAA5B,EAAwC;AACtC,aAAO,CAAC,CAAR;AACD,KAFD,MAEO,IAAI8kB,cAAc,CAAC9kB,IAAf,KAAwB,aAA5B,EAA2C;AAChD,aAAO,CAAP;AACD,KAFM,MAEA,IAAI8kB,cAAc,CAAC9kB,IAAf,KAAwB,WAA5B,EAAyC;AAC9C,aAAO,CAAP;AACD;AACF;;AAED,MAAM2lB,QAAQ,GAAGD,yBAAyB,CAACZ,cAAD,CAA1C;AAEA,MAAIc,MAAJ;;AAEA,MAAId,cAAc,CAACL,YAAf,KAAgC,IAApC,EAA0C;AACxCmB,UAAM,GAAGh1B,WAAW,CAACi1B,SAAZ,CAAsBrB,OAAtB,EAA+B;AACtCmB,cAAQ,EAARA,QADsC;AAEtC3lB,UAAI,EAAE8kB,cAAc,CAAC9kB;AAFiB,KAA/B,CAAT;AAID,GALD,MAKO;AACL4lB,UAAM,GAAGh1B,WAAW,CAACk1B,iBAAZ,CAA8BtB,OAA9B,EAAuC;AAC9CmB,cAAQ,EAARA,QAD8C;AAE9C3lB,UAAI,EAAE8kB,cAAc,CAAC9kB;AAFyB,KAAvC,CAAT;AAID,GA7DkC,CA+DnC;;;AACA4lB,QAAM,CAACT,IAAP,CACE,UAAS3mB,KAAT,EAAgB;AACd2lB,eAAW,CAACnkB,IAAD,CAAX,GADc,CAEd;;AACA0kB,gBAAY,CAAClmB,KAAD,CAAZ;AACA+mB,cAAU;AACX,GANH,EAOE,UAASH,KAAT,EAAgB;AACdjB,eAAW,CAACnkB,IAAD,CAAX,GADc,CAEd;;AACA2kB,gBAAY,CAACS,KAAD,CAAZ;AACAG,cAAU;AACX,GAZH;AAcD;;AAED,SAASC,aAAT,GAAyB;AACvB;AACA,MAAMO,uBAAuB,GAAGtK,sGAA0B,EAA1D;AAEA2I,gBAAc,GAAG;AACfJ,eAAW,EAAEt0B,IAAI,CAACkH,GAAL,CAASmvB,uBAAT,EAAkC,CAAlC,CADE;AAEf9B,aAAS,EAAEv0B,IAAI,CAACkH,GAAL,CAASmvB,uBAAuB,GAAG,CAAnC,EAAsC,CAAtC,CAFI;AAGf7B,YAAQ,EAAEx0B,IAAI,CAACkH,GAAL,CAASmvB,uBAAuB,GAAG,CAAnC,EAAsC,CAAtC;AAHK,GAAjB;AAMA,MAAMC,eAAe,GACnB7B,WAAW,CAACH,WAAZ,GAA0BG,WAAW,CAACF,SAAtC,GAAkDE,WAAW,CAACD,QADhE;AAEA,MAAM+B,cAAc,GAAGF,uBAAuB,GAAGC,eAAjD;;AAEA,OAAK,IAAIjzB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkzB,cAApB,EAAoClzB,CAAC,EAArC,EAAyC;AACvC,QAAM+xB,cAAc,GAAGoB,cAAc,EAArC;;AAEA,QAAIpB,cAAJ,EAAoB;AAClBW,iBAAW,CAACX,cAAD,CAAX;AACD;AACF;AACF;;AAED,SAASoB,cAAT,GAA0B;AACxB,MACEnC,WAAW,CAACC,WAAZ,CAAwBjwB,MAAxB,IACAowB,WAAW,CAACH,WAAZ,GAA0BI,cAAc,CAACJ,WAF3C,EAGE;AACA,WAAOD,WAAW,CAACC,WAAZ,CAAwBmC,KAAxB,EAAP;AACD;;AAED,MACEpC,WAAW,CAACE,SAAZ,CAAsBlwB,MAAtB,IACAowB,WAAW,CAACF,SAAZ,GAAwBG,cAAc,CAACH,SAFzC,EAGE;AACA,WAAOF,WAAW,CAACE,SAAZ,CAAsBkC,KAAtB,EAAP;AACD;;AAED,MACEpC,WAAW,CAACG,QAAZ,CAAqBnwB,MAArB,IACAowB,WAAW,CAACD,QAAZ,GAAuBE,cAAc,CAACF,QAFxC,EAGE;AACA,WAAOH,WAAW,CAACG,QAAZ,CAAqBiC,KAArB,EAAP;AACD;;AAED,MACE,CAACpC,WAAW,CAACC,WAAZ,CAAwBjwB,MAAzB,IACA,CAACgwB,WAAW,CAACE,SAAZ,CAAsBlwB,MADvB,IAEA,CAACgwB,WAAW,CAACG,QAAZ,CAAqBnwB,MAHxB,EAIE;AACAswB,SAAK,GAAG,KAAR;AACD;;AAED,SAAO,KAAP;AACD;;AAED,SAAS+B,cAAT,GAA0B;AACxB,SAAOrC,WAAP;AACD;;AAEc;AACbQ,YAAU,EAAVA,UADa;AAEbe,mBAAiB,EAAjBA,iBAFa;AAGbE,eAAa,EAAbA,aAHa;AAIbY,gBAAc,EAAdA;AAJa,CAAf,E;;;;;;;;;;;;;;;;;;;;;;ACnPA;AACA;;IAEqBC,c;;;AACnB,4BAAc;AAAA;;AACZ,SAAKva,mBAAL,GAA2B,CAA3B;AACA,SAAKwa,QAAL,GAAgB,EAAhB;AACA,SAAKC,WAAL,GAAmBv2B,SAAnB;AACD;;;;2BAEMO,O,EAASi2B,W,EAAa;AAAA;;AAC3B;AACA,UAAI,CAACC,MAAM,CAACC,SAAP,CAAiB,KAAK5a,mBAAtB,CAAL,EAAiD;AAC/C,cAAM,IAAI+Y,KAAJ,CACJ,2DADI,CAAN;AAGD;;AAED,UAAI,CAAC,KAAK0B,WAAV,EAAuB;AACrB,cAAM,IAAI1B,KAAJ,CAAU,wCAAV,CAAN;AACD;;AAED,UAAI,CAAC2B,WAAL,EAAkB;AAChB,YAAMzlB,QAAQ,GAAG5H,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA7B;AAEAi2B,mBAAW,GAAGzlB,QAAQ,CAACzD,IAAvB;AACD,OAhB0B,CAiB3B;;;AAEA,UAAM1M,WAAW,GAAGD,2DAAQ,CAACC,WAA7B,CAnB2B,CAqB3B;;AACA,UAAM+1B,eAAe,GAAGH,WAAW,CAAC,CAAD,CAAnC;AACA,UAAMI,cAAc,GAAGD,eAAe,CAACE,QAAhB,CAAyB,KAAK/a,mBAA9B,CAAvB;AACA,UAAMgb,kBAAkB,GAAGN,WAAW,CAACjF,KAAZ,CAAkB,CAAlB,EAAqBiF,WAAW,CAACzyB,MAAjC,CAA3B;AAEAnD,iBAAW,CAACk1B,iBAAZ,CAA8Bc,cAA9B,EAA8CzB,IAA9C,CAAmD,UAAA4B,SAAS,EAAI;AAC9D,YAAIC,WAAW,GAAG,KAAI,CAACV,QAAL,CAAc,CAAd,CAAlB,CAD8D,CAG9D;;AACA,YAAIU,WAAJ,EAAiB;AACfp2B,qBAAW,CAACq2B,aAAZ,CAA0B12B,OAA1B,EAAmCw2B,SAAnC,EAA8CC,WAA9C;AACD,SAFD,MAEO;AACL;AACAA,qBAAW,GAAGp2B,WAAW,CAACs2B,QAAZ,CACZ32B,OADY,EAEZw2B,SAFY,EAGZJ,eAAe,CAAC72B,OAHJ,CAAd;;AAKA,eAAI,CAACw2B,QAAL,CAAczc,IAAd,CAAmBmd,WAAnB;AACD,SAd6D,CAgB9D;;;AACAp2B,mBAAW,CAACu2B,YAAZ,CAAyB52B,OAAzB,EAAkCw2B,SAAlC,EAjB8D,CAmB9D;;AACAD,0BAAkB,CAAC3yB,OAAnB,CAA2B,UAACizB,MAAD,EAASC,iBAAT,EAA+B;AACxD,cAAM7C,OAAO,GAAG,KAAI,CAAC+B,WAAL,CAAiBa,MAAM,CAACP,QAAxB,EAAkCD,cAAlC,CAAhB;;AACA,cAAMU,UAAU,GAAGD,iBAAiB,GAAG,CAAvC;AACA,cAAIE,cAAc,GAAG,KAAI,CAACjB,QAAL,CAAcgB,UAAd,CAArB,CAHwD,CAKxD;AACA;AACA;;AACA,cAAI,CAACC,cAAL,EAAqB;AACnBA,0BAAc,GAAG32B,WAAW,CAACs2B,QAAZ,CACf32B,OADe,EAEfP,SAFe,EAGfo3B,MAAM,CAACt3B,OAHQ,CAAjB;;AAKA,iBAAI,CAACw2B,QAAL,CAAczc,IAAd,CAAmB0d,cAAnB;AACD;;AAED,cAAI/C,OAAJ,EAAa;AACX;AACA;AACA;AACA5zB,uBAAW,CAACk1B,iBAAZ,CAA8BtB,OAA9B,EAAuCW,IAAvC,CAA4C,UAAA3mB,KAAK,EAAI;AACnD5N,yBAAW,CAACq2B,aAAZ,CAA0B12B,OAA1B,EAAmCiO,KAAnC,EAA0C+oB,cAA1C;AACA32B,yBAAW,CAAC6J,WAAZ,CAAwBlK,OAAxB;AACD,aAHD;AAID,WARD,MAQO;AACL;AACA;AACAK,uBAAW,CAACq2B,aAAZ,CAA0B12B,OAA1B,EAAmCP,SAAnC,EAA8Cu3B,cAA9C;AACA32B,uBAAW,CAAC42B,cAAZ,CAA2Bj3B,OAA3B,EAAoCy2B,WAApC;AACAp2B,uBAAW,CAAC6J,WAAZ,CAAwBlK,OAAxB;AACD;AACF,SAhCD;AAiCD,OArDD;AAsDD;;;;;;;;;;;;;;;;;;AC1FH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA,IAAM0K,QAAQ,GAAG,UAAjB;AAEA;;;;;;;;AAOA,SAASwsB,mBAAT,CAA6BxE,MAA7B,EAAqCyE,KAArC,EAA4C;AAC1C,MAAI30B,CAAJ;AACA,MAAI40B,MAAJ;AACA,MAAIC,KAAJ;AACA,MAAIC,GAAG,GAAG,CAAV;AACA,MAAMC,KAAK,GAAG7E,MAAM,CAAClvB,MAArB;AACA,MAAMg0B,QAAQ,GAAG,EAAjB,CAN0C,CAQ1C;;AACAA,UAAQ,CAACC,aAAT,GAAyB,KAAzB;;AAEA,MAAI,OAAON,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,IAAI,CAA1C,EAA6C;AAC3CA,SAAK,GAAG,CAAR;AACD,GAbyC,CAe1C;;;AACA,OAAK30B,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG+0B,KAAhB,EAAuB/0B,CAAC,EAAxB,EAA4B;AAC1B;AACA60B,SAAK,GAAInB,MAAM,CAACxD,MAAM,CAAClwB,CAAD,CAAP,CAAN,GAAoB20B,KAArB,GAA8B,CAAtC,CAF0B,CAEe;;AACzCK,YAAQ,CAACle,IAAT,CAAc+d,KAAd;;AACA,QAAI70B,CAAC,KAAK,CAAV,EAAa;AACX;AACA40B,YAAM,GAAGC,KAAT;AACD,KAHD,MAGO,IAAIA,KAAK,KAAKD,MAAd,EAAsB;AAC3BI,cAAQ,CAACC,aAAT,GAAyB,IAAzB;AACD;;AAEDH,OAAG,IAAID,KAAP;AACD;;AAED,MAAIG,QAAQ,CAACh0B,MAAT,GAAkB,CAAtB,EAAyB;AACvB,QAAIg0B,QAAQ,CAACC,aAAb,EAA4B;AAC1B;AACA;AACAJ,WAAK,GAAIC,GAAG,GAAGE,QAAQ,CAACh0B,MAAhB,GAA0B,CAAlC;AACD,KAJD,MAIO;AACL6zB,WAAK,GAAGG,QAAQ,CAAC,CAAD,CAAhB;AACD;;AAEDA,YAAQ,CAACle,IAAT,CAAc+d,KAAd;AACD;;AAED,SAAOG,QAAP;AACD;AAED;;;;;;;AAKA,SAASE,gBAAT,CAA0BC,YAA1B,EAAwC;AACtC,MAAMC,EAAE,GAAGD,YAAY,CAACE,UAAxB;;AAEA,MAAI,OAAOD,EAAP,KAAc,WAAlB,EAA+B;AAC7BD,gBAAY,CAACE,UAAb,GAA0Bp4B,SAA1B;;AACA,QAAIk4B,YAAY,CAACG,oBAAjB,EAAuC;AACrC1c,kBAAY,CAACwc,EAAD,CAAZ;AACD,KAFD,MAEO;AACLG,mBAAa,CAACH,EAAD,CAAb;AACD;AACF;AACF;AAED;;;;;;;AAKA,SAASI,gBAAT,CAA0Bh4B,OAA1B,EAAmC;AACjC,MAAMi4B,WAAW,GAAG;AAClBj4B,WAAO,EAAPA;AADkB,GAApB;AAIA4K,uEAAY,CAAC5K,OAAD,EAAUqJ,kDAAM,CAACoY,YAAjB,EAA+BwW,WAA/B,CAAZ;AACD;AAED;;;;;;;;;;AAQA,SAASnT,QAAT,CAAkB9kB,OAAlB,EAA2Bk4B,eAA3B,EAA4C;AAC1C,MAAIP,YAAJ;AACA,MAAIQ,gBAAJ;;AAEA,MAAIn4B,OAAO,KAAKP,SAAhB,EAA2B;AACzB,UAAM,IAAI60B,KAAJ,CAAU,yCAAV,CAAN;AACD;;AAED,MAAM8D,aAAa,GAAGxvB,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAAlC;;AAEA,MAAI,CAACo4B,aAAD,IAAkB,CAACA,aAAa,CAACrrB,IAAjC,IAAyC,CAACqrB,aAAa,CAACrrB,IAAd,CAAmBvJ,MAAjE,EAAyE;AACvE;AACD;;AAED,MAAMnD,WAAW,GAAGD,2DAAQ,CAACC,WAA7B,CAd0C,CAe1C;;AACA,MAAIg4B,aAAJ;;AAEA,MAAID,aAAa,CAACrrB,IAAd,CAAmBvJ,MAAnB,GAA4B,CAAhC,EAAmC;AACjC,QAAM80B,iBAAiB,GAAG1vB,kFAAY,CAAC5I,OAAD,EAAU,eAAV,CAAtC;;AAEA,QACEs4B,iBAAiB,IACjBA,iBAAiB,CAACvrB,IADlB,IAEAurB,iBAAiB,CAACvrB,IAAlB,CAAuBvJ,MAHzB,EAIE;AACA60B,mBAAa,GAAGC,iBAAiB,CAACvrB,IAAlB,CAAuB,CAAvB,CAAhB;AACD;AACF;;AAED,MAAMwrB,SAAS,GAAGH,aAAa,CAACrrB,IAAd,CAAmB,CAAnB,CAAlB;AAEA,MAAMyrB,gBAAgB,GAAG5vB,kFAAY,CAAC5I,OAAD,EAAU0K,QAAV,CAArC;;AAEA,MACE,CAAC8tB,gBAAD,IACA,CAACA,gBAAgB,CAACzrB,IADlB,IAEA,CAACyrB,gBAAgB,CAACzrB,IAAjB,CAAsBvJ,MAHzB,EAIE;AACAm0B,gBAAY,GAAG;AACbE,gBAAU,EAAEp4B,SADC;AAEby4B,qBAAe,EAAE,EAFJ;AAGbO,wBAAkB,EAAEh5B,SAHP;AAIbi5B,eAAS,EAAE,CAJE;AAKbC,qBAAe,EAAEl5B,SALJ;AAMbm5B,2BAAqB,EAAE,KANV;AAObd,0BAAoB,EAAE,KAPT;AAQbX,WAAK,EAAE,CARM;AASb0B,aAAO,EAAE,KATI;AAUbC,UAAI,EAAE;AAVO,KAAf;AAYA9uB,sFAAY,CAAChK,OAAD,EAAU0K,QAAV,EAAoBitB,YAApB,CAAZ;AACD,GAlBD,MAkBO;AACLA,gBAAY,GAAGa,gBAAgB,CAACzrB,IAAjB,CAAsB,CAAtB,CAAf,CADK,CAEL;;AACA2qB,oBAAgB,CAACC,YAAD,CAAhB;AACD,GAxDyC,CA0D1C;;;AACA,MAAIO,eAAe,GAAG,CAAlB,IAAuBA,eAAe,GAAG,CAA7C,EAAgD;AAC9CP,gBAAY,CAACO,eAAb,GAA+BhC,MAAM,CAACgC,eAAD,CAArC;AACAP,gBAAY,CAACkB,OAAb,GAAuBlB,YAAY,CAACO,eAAb,GAA+B,CAAtD,CAF8C,CAG9C;;AACAP,gBAAY,CAACiB,qBAAb,GAAqC,IAArC;AACD,GAhEyC,CAkE1C;;;AACA,MACEjB,YAAY,CAACiB,qBAAb,KAAuC,IAAvC,IACAjB,YAAY,CAACgB,eADb,IAEAhB,YAAY,CAACgB,eAAb,CAA6Bn1B,MAA7B,KAAwC+0B,SAAS,CAACjC,QAAV,CAAmB9yB,MAH7D,EAIE;AACA20B,oBAAgB,GAAGjB,mBAAmB,CACpCS,YAAY,CAACgB,eADuB,EAEpChB,YAAY,CAACR,KAFuB,CAAtC;AAID,GA5EyC,CA8E1C;;;AACA,MAAM4B,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3B;AACA,QAAI1D,MAAJ;AAAA,QACE2D,mBADF;AAAA,QAEEC,iBAFF;AAAA,QAGEC,mBAHF;AAAA,QAIEC,eAAe,GAAGZ,SAAS,CAAChd,mBAJ9B;AAMA,QAAM6d,UAAU,GAAGb,SAAS,CAACjC,QAAV,CAAmB9yB,MAAtC;;AAEA,QAAIm0B,YAAY,CAACkB,OAAjB,EAA0B;AACxBM,qBAAe;AAChB,KAFD,MAEO;AACLA,qBAAe;AAChB;;AAED,QACE,CAACxB,YAAY,CAACmB,IAAd,KACCK,eAAe,GAAG,CAAlB,IAAuBA,eAAe,IAAIC,UAD3C,CADF,EAGE;AACA1B,sBAAgB,CAACC,YAAD,CAAhB;AACAK,sBAAgB,CAACh4B,OAAD,CAAhB;AAEA;AACD,KAxB0B,CA0B3B;;;AACA,QAAIm5B,eAAe,IAAIC,UAAvB,EAAmC;AACjCD,qBAAe,GAAG,CAAlB;AACD;;AAED,QAAIA,eAAe,GAAG,CAAtB,EAAyB;AACvBA,qBAAe,GAAGC,UAAU,GAAG,CAA/B;AACD;;AAED,QAAID,eAAe,KAAKZ,SAAS,CAAChd,mBAAlC,EAAuD;AACrDyd,yBAAmB,GAAGzS,8EAAkB,CAAC8S,mBAAnB,CAAuCr5B,OAAvC,CAAtB;AACAi5B,uBAAiB,GAAG1S,8EAAkB,CAAC+S,iBAAnB,CAAqCt5B,OAArC,CAApB;AACAk5B,yBAAmB,GAAG3S,8EAAkB,CAACgT,sBAAnB,CAA0Cv5B,OAA1C,CAAtB;;AAEA,UAAIg5B,mBAAJ,EAAyB;AACvBA,2BAAmB,CAACh5B,OAAD,CAAnB;AACD;;AAED,UAAIu4B,SAAS,CAACrE,YAAV,KAA2B,IAA/B,EAAqC;AACnCmB,cAAM,GAAGh1B,WAAW,CAACi1B,SAAZ,CAAsBiD,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CAAtB,CAAT;AACD,OAFD,MAEO;AACL9D,cAAM,GAAGh1B,WAAW,CAACk1B,iBAAZ,CACPgD,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CADO,CAAT;AAGD;;AAED9D,YAAM,CAACT,IAAP,CACE,UAAS3mB,KAAT,EAAgB;AACd,YAAI;AACFsqB,mBAAS,CAAChd,mBAAV,GAAgC4d,eAAhC;;AACA,cAAId,aAAJ,EAAmB;AACjBA,yBAAa,CAAC9c,mBAAd,GAAoC4d,eAApC;AACAd,yBAAa,CAACmB,MAAd,CAAqBx5B,OAArB,EAA8Bo4B,aAAa,CAACrrB,IAA5C;AACD,WAHD,MAGO;AACL1M,uBAAW,CAACu2B,YAAZ,CAAyB52B,OAAzB,EAAkCiO,KAAlC;AACD;;AACD,cAAIgrB,iBAAJ,EAAuB;AACrBA,6BAAiB,CAACj5B,OAAD,EAAUiO,KAAV,CAAjB;AACD;AACF,SAXD,CAWE,OAAO4mB,KAAP,EAAc;AACd;AACD;AACF,OAhBH,EAiBE,UAASA,KAAT,EAAgB;AACd,YAAMZ,OAAO,GAAGsE,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CAAhB;;AAEA,YAAID,mBAAJ,EAAyB;AACvBA,6BAAmB,CAACl5B,OAAD,EAAUi0B,OAAV,EAAmBY,KAAnB,CAAnB;AACD;AACF,OAvBH;AAyBD;AACF,GA9ED,CA/E0C,CA+J1C;AACA;;;AACA,MACEsD,gBAAgB,IAChBA,gBAAgB,CAAC30B,MAAjB,GAA0B,CAD1B,IAEA20B,gBAAgB,CAACV,aAHnB,EAIE;AACAE,gBAAY,CAACG,oBAAb,GAAoC,IAApC;AACAH,gBAAY,CAACE,UAAb,GAA0Bjd,UAAU,CAAC,SAAS6e,sBAAT,GAAkC;AACrE9B,kBAAY,CAACE,UAAb,GAA0Bjd,UAAU,CAClC6e,sBADkC,EAElCtB,gBAAgB,CAACI,SAAS,CAAChd,mBAAX,CAFkB,CAApC;AAIAwd,oBAAc;AACf,KANmC,EAMjC,CANiC,CAApC;AAOD,GAbD,MAaO;AACL;AACApB,gBAAY,CAACG,oBAAb,GAAoC,KAApC;AACAH,gBAAY,CAACE,UAAb,GAA0B6B,WAAW,CACnCX,cADmC,EAEnC,OAAO55B,IAAI,CAACmC,GAAL,CAASq2B,YAAY,CAACO,eAAtB,CAF4B,CAArC;AAID;AACF;AAED;;;;;;;AAKA,SAASnT,QAAT,CAAkB/kB,OAAlB,EAA2B;AACzB,MAAMw4B,gBAAgB,GAAG5vB,kFAAY,CAAC5I,OAAD,EAAU0K,QAAV,CAArC;;AAEA,MACE,CAAC8tB,gBAAD,IACA,CAACA,gBAAgB,CAACzrB,IADlB,IAEA,CAACyrB,gBAAgB,CAACzrB,IAAjB,CAAsBvJ,MAHzB,EAIE;AACA;AACD;;AAEDk0B,kBAAgB,CAACc,gBAAgB,CAACzrB,IAAjB,CAAsB,CAAtB,CAAD,CAAhB;AACD;;;;;;;;;;;;;;AC5SD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMtD,MAAM,GAAGC,iEAAS,CAAC,0BAAD,CAAxB;AAEA,IAAMgB,QAAQ,GAAG,eAAjB;AACA,IAAMivB,WAAW,GAAG,UAApB;AAEA,IAAI7wB,aAAa,GAAG;AAClB8wB,qBAAmB,EAAEC,QADH;AAElBC,sBAAoB,EAAE;AAFJ,CAApB;AAKA,IAAIC,oBAAJ;AACA,IAAMC,kBAAkB,GAAG,EAA3B;;AAEA,SAASC,KAAT,CAAeC,MAAf,EAAuBC,OAAvB,EAAgC;AAC9B;AACA;AACAD,QAAM,GAAG/6B,IAAI,CAACi7B,KAAL,CAAWF,MAAX,KAAsB,CAA/B;AACAC,SAAO,GAAGh7B,IAAI,CAACi7B,KAAL,CAAWD,OAAX,KAAuB,CAAjC;AAEA,MAAME,GAAG,GAAG,EAAZ;AACA,MAAIC,CAAC,GAAGH,OAAO,GAAGD,MAAV,GAAmB,CAA3B;;AAEA,MAAII,CAAC,IAAI,CAAT,EAAY;AACV,WAAOD,GAAP;AACD;;AAED,SAAOC,CAAC,EAAR,EAAY;AACVD,OAAG,CAACC,CAAD,CAAH,GAASH,OAAO,EAAhB;AACD;;AAED,SAAOE,GAAP;AACD;;AAED,IAAMh0B,GAAG,GAAG,SAANA,GAAM,CAASg0B,GAAT,EAAc;AACxB,SAAOl7B,IAAI,CAACkH,GAAL,CAASk0B,KAAT,CAAe,IAAf,EAAqBF,GAArB,CAAP;AACD,CAFD;;AAIA,IAAM14B,GAAG,GAAG,SAANA,GAAM,CAAS04B,GAAT,EAAc;AACxB,SAAOl7B,IAAI,CAACwC,GAAL,CAAS44B,KAAT,CAAe,IAAf,EAAqBF,GAArB,CAAP;AACD,CAFD;;AAIA,SAASG,YAAT,CAAsBH,GAAtB,EAA2B/6B,CAA3B,EAA8B;AAC5B;AACA;AACA,MAAMm7B,CAAC,GAAG,EAAV;AACA,MAAMh5B,CAAC,GAAG,EAAV;AAEA44B,KAAG,CAACz2B,OAAJ,CAAY,UAAS82B,CAAT,EAAY;AACtB,QAAIA,CAAC,GAAGp7B,CAAR,EAAW;AACTm7B,OAAC,CAACnhB,IAAF,CAAOohB,CAAP;AACD,KAFD,MAEO,IAAIA,CAAC,GAAGp7B,CAAR,EAAW;AAChBmC,OAAC,CAAC6X,IAAF,CAAOohB,CAAP;AACD;AACF,GAND;AAQA,SAAO;AACLC,OAAG,EAAEN,GAAG,CAACO,OAAJ,CAAYv0B,GAAG,CAACo0B,CAAD,CAAf,CADA;AAELI,QAAI,EAAER,GAAG,CAACO,OAAJ,CAAYj5B,GAAG,CAACF,CAAD,CAAf;AAFD,GAAP;AAID;;AAED,SAASkyB,QAAT,CAAkB3zB,OAAlB,EAA2B;AACzB;AACA,MAAMu4B,SAAS,GAAG3vB,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA9B;;AAEA,MAAI,CAACu4B,SAAD,IAAc,CAACA,SAAS,CAACxrB,IAAzB,IAAiC,CAACwrB,SAAS,CAACxrB,IAAV,CAAevJ,MAArD,EAA6D;AAC3D;AACD;;AAED,MAAMs3B,KAAK,GAAGvC,SAAS,CAACxrB,IAAV,CAAe,CAAf,CAAd,CARyB,CAUzB;;AACA,MAAMguB,iBAAiB,GAAGnyB,kFAAY,CAAC5I,OAAD,EAAU0K,QAAV,CAAtC;;AAEA,MAAI,CAACqwB,iBAAL,EAAwB;AACtB;AACD;;AAED,MAAMnW,aAAa,GAAGmW,iBAAiB,CAAChuB,IAAlB,CAAuB,CAAvB,KAA6B,EAAnD,CAjByB,CAmBzB;;AACA,MACE,CAAC6X,aAAa,CAACoW,gBAAf,IACA,CAACpW,aAAa,CAACoW,gBAAd,CAA+Bx3B,MAFlC,EAGE;AACAohB,iBAAa,CAACqW,OAAd,GAAwB,KAAxB;AACD,GAzBwB,CA2BzB;;;AACA,MAAIrW,aAAa,CAACqW,OAAd,KAA0B,KAA9B,EAAqC;AACnC;AACD,GA9BwB,CAgCzB;AACA;;;AACA,WAASC,cAAT,CAAwB7J,YAAxB,EAAsC;AACpC,QAAMvqB,KAAK,GAAG8d,aAAa,CAACoW,gBAAd,CAA+BJ,OAA/B,CAAuCvJ,YAAvC,CAAd;;AAEA,QAAIvqB,KAAK,GAAG,CAAC,CAAb,EAAgB;AACd;AACA8d,mBAAa,CAACoW,gBAAd,CAA+BG,MAA/B,CAAsCr0B,KAAtC,EAA6C,CAA7C;AACD;AACF,GAzCwB,CA2CzB;AACA;;;AACAi0B,mBAAiB,CAAChuB,IAAlB,CAAuB,CAAvB,EAA0BiuB,gBAA1B,CAA2CI,IAA3C,CAAgD,UAACC,CAAD,EAAIC,CAAJ;AAAA,WAAUD,CAAC,GAAGC,CAAd;AAAA,GAAhD;AACA,MAAMC,oBAAoB,GAAG3W,aAAa,CAACoW,gBAAd,CAA+BhK,KAA/B,EAA7B;AAEAuK,sBAAoB,CAAC33B,OAArB,CAA6B,UAASytB,YAAT,EAAuB;AAClD,QAAM4C,OAAO,GAAG6G,KAAK,CAACxE,QAAN,CAAejF,YAAf,CAAhB;;AAEA,QAAI,CAAC4C,OAAL,EAAc;AACZ;AACD;;AAED,QAAMO,eAAe,GAAGp0B,2DAAQ,CAACC,WAAT,CAAqBo0B,UAArB,CAAgCC,kBAAhC,CACtBT,OADsB,CAAxB;;AAIA,QAAIO,eAAJ,EAAqB;AACnB0G,oBAAc,CAAC7J,YAAD,CAAd;AACD;AACF,GAdD,EAhDyB,CAgEzB;AACA;;AACA,MAAI,CAACzM,aAAa,CAACoW,gBAAd,CAA+Bx3B,MAApC,EAA4C;AAC1C;AACD,GApEwB,CAsEzB;;;AACA,MAAI,CAACsF,aAAa,CAACgxB,oBAAnB,EAAyC;AACvClS,8EAAkB,CAACmN,iBAAnB,CAAqC4E,WAArC;AACD,GAzEwB,CA2EzB;;;AACA,MAAM6B,OAAO,GAAGhB,YAAY,CAC1B5V,aAAa,CAACoW,gBADY,EAE1BF,KAAK,CAACvf,mBAFoB,CAA5B;AAKA,MAAI0Y,OAAJ;AACA,MAAIwH,gBAAJ;AACA,MAAMvH,YAAY,GAAG,KAArB;;AAEA,WAASC,YAAT,CAAsBlmB,KAAtB,EAA6B;AAC3BxE,UAAM,CAACE,GAAP,CAAW,mBAAX,EAAgCsE,KAAK,CAACgmB,OAAtC;AACA,QAAM5C,YAAY,GAAGyJ,KAAK,CAACxE,QAAN,CAAesE,OAAf,CAAuB3sB,KAAK,CAACgmB,OAA7B,CAArB;AAEAiH,kBAAc,CAAC7J,YAAD,CAAd;AAEAzmB,sEAAY,CAAC5K,OAAD,EAAUqJ,kDAAM,CAACsY,2BAAjB,EAA8C;AACxD3hB,aAAO,EAAPA,OADwD;AAExDi0B,aAAO,EAAEhmB,KAAK,CAACgmB,OAFyC;AAGxDyH,gBAAU,EAAErK,YAH4C;AAIxDzM,mBAAa,EAAbA,aAJwD;AAKxDkW,WAAK,EAALA;AALwD,KAA9C,CAAZ,CAN2B,CAc3B;;AACA,QACE,EACElW,aAAa,CAACoW,gBAAd,IACApW,aAAa,CAACoW,gBAAd,CAA+Bx3B,MAA/B,GAAwC,CAF1C,CADF,EAKE;AACAoH,wEAAY,CAAC5K,OAAD,EAAUqJ,kDAAM,CAACuY,mBAAjB,EAAsC;AAChD5hB,eAAO,EAAPA,OADgD;AAEhD4kB,qBAAa,EAAbA,aAFgD;AAGhDkW,aAAK,EAALA;AAHgD,OAAtC,CAAZ;AAKD;AACF,GAhHwB,CAkHzB;;;AACA,MAAM5B,mBAAmB,GAAG3S,8EAAkB,CAACgT,sBAAnB,CAC1Bv5B,OAD0B,CAA5B;;AAIA,WAASo0B,YAAT,CAAsBS,KAAtB,EAA6B;AAC3BprB,UAAM,CAACE,GAAP,CAAW,sBAAX,EAAmCkrB,KAAnC;;AACA,QAAIqE,mBAAJ,EAAyB;AACvBA,yBAAmB,CAACl5B,OAAD,EAAUi0B,OAAV,EAAmBY,KAAnB,EAA0B,eAA1B,CAAnB;AACD;AACF,GA5HwB,CA8HzB;;;AACA,MAAI8G,UAAU,GAAGH,OAAO,CAACb,GAAzB;AACA,MAAIiB,WAAW,GAAGJ,OAAO,CAACX,IAA1B;AACA,MAAMgB,kBAAkB,GAAG,EAA3B;;AAEA,SACEF,UAAU,IAAI,CAAd,IACAC,WAAW,GAAGhX,aAAa,CAACoW,gBAAd,CAA+Bx3B,MAF/C,EAGE;AACA,QAAMs4B,YAAY,GAAGhB,KAAK,CAACvf,mBAA3B;AACA,QAAMwgB,eAAe,GACnBD,YAAY,GAAGlX,aAAa,CAACoW,gBAAd,CAA+BW,UAA/B,CAAf,GACA7yB,aAAa,CAAC8wB,mBAFhB;AAGA,QAAMoC,gBAAgB,GACpBpX,aAAa,CAACoW,gBAAd,CAA+BY,WAA/B,IAA8CE,YAA9C,GACAhzB,aAAa,CAAC8wB,mBAFhB;AAIA,QAAMqC,eAAe,GAAG,CAACF,eAAD,IAAoBJ,UAAU,IAAI,CAA1D;AACA,QAAMO,gBAAgB,GACpB,CAACF,gBAAD,IAAqBJ,WAAW,GAAGhX,aAAa,CAACoW,gBAAd,CAA+Bx3B,MADpE;;AAGA,QAAI,CAAC04B,gBAAD,IAAqB,CAACD,eAA1B,EAA2C;AACzC;AACD;;AAED,QAAIA,eAAJ,EAAqB;AACnBR,sBAAgB,GAAG7W,aAAa,CAACoW,gBAAd,CAA+BW,UAAU,EAAzC,CAAnB;AACA1H,aAAO,GAAG6G,KAAK,CAACxE,QAAN,CAAemF,gBAAf,CAAV;AACAI,wBAAkB,CAACviB,IAAnB,CAAwB2a,OAAxB;AACD;;AAED,QAAIiI,gBAAJ,EAAsB;AACpBT,sBAAgB,GAAG7W,aAAa,CAACoW,gBAAd,CAA+BY,WAAW,EAA1C,CAAnB;AACA3H,aAAO,GAAG6G,KAAK,CAACxE,QAAN,CAAemF,gBAAf,CAAV;AACAI,wBAAkB,CAACviB,IAAnB,CAAwB2a,OAAxB;AACD;AACF,GAlKwB,CAmKzB;;;AAnKyB;AAAA;AAAA;;AAAA;AAoKzB,yBAA0B4H,kBAAkB,CAAChD,OAAnB,EAA1B,8HAAwD;AAAA,UAA7CsD,WAA6C;AACtDvU,gFAAkB,CAACoM,UAAnB,CACEh0B,OADF,EAEEm8B,WAFF,EAGExC,WAHF,EAIEzF,YAJF,EAKEC,YALF,EAMEC,YANF,EAOE,IAPF;AASD,KA9KwB,CAgLzB;AACA;;AAjLyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAkLzBxM,4EAAkB,CAACqN,aAAnB;AACD;;AAED,SAASmH,wBAAT,CAAkCp8B,OAAlC,EAA2C;AACzC,SAAO,UAAS6Z,CAAT,EAAY;AACjB,QAAMzR,SAAS,GAAGyR,CAAC,CAACxR,MAApB,CADiB,CAGjB;AACA;AACA;;AACA,QAAIkwB,SAAJ;;AAEA,QAAI;AACF;AACAA,eAAS,GAAG3vB,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAAxB;AACD,KAHD,CAGE,OAAO60B,KAAP,EAAc;AACd;AACD;;AAED,QAAI,CAAC0D,SAAD,IAAc,CAACA,SAAS,CAACxrB,IAAzB,IAAiC,CAACwrB,SAAS,CAACxrB,IAAV,CAAevJ,MAArD,EAA6D;AAC3D;AACD;;AAED,QAAMs3B,KAAK,GAAGvC,SAAS,CAACxrB,IAAV,CAAe,CAAf,CAAd;AACA,QAAMskB,YAAY,GAAGyJ,KAAK,CAACxE,QAAN,CAAesE,OAAf,CAAuBxyB,SAAS,CAAC6rB,OAAjC,CAArB,CApBiB,CAsBjB;AACA;;AACA,QAAI5C,YAAY,GAAG,CAAnB,EAAsB;AACpB;AACD;;AAED,QAAM0J,iBAAiB,GAAGnyB,kFAAY,CAAC5I,OAAD,EAAU0K,QAAV,CAAtC;;AAEA,QACE,CAACqwB,iBAAD,IACA,CAACA,iBAAiB,CAAChuB,IADnB,IAEA,CAACguB,iBAAiB,CAAChuB,IAAlB,CAAuBvJ,MAH1B,EAIE;AACA;AACD;;AAEDu3B,qBAAiB,CAAChuB,IAAlB,CAAuB,CAAvB,EAA0BiuB,gBAA1B,CAA2C1hB,IAA3C,CAAgD+X,YAAhD;AACD,GAvCD;AAwCD;;AAED,SAASgL,cAAT,CAAwBxiB,CAAxB,EAA2B;AACzB;AACA;AACAuB,cAAY,CAAC2e,oBAAD,CAAZ;AACAA,sBAAoB,GAAGnf,UAAU,CAAC,YAAW;AAC3C,QAAM5a,OAAO,GAAG6Z,CAAC,CAACyiB,MAAlB,CAD2C,CAG3C;AACA;;AACA,QAAI;AACF3I,cAAQ,CAAC3zB,OAAD,CAAR;AACD,KAFD,CAEE,OAAO60B,KAAP,EAAc;AACd;AACD;AACF,GAVgC,EAU9BmF,kBAV8B,CAAjC;AAWD;;AAED,SAAS7wB,MAAT,CAAgBnJ,OAAhB,EAAyB;AACvB;AACA,MAAMu8B,sBAAsB,GAAG3zB,kFAAY,CAAC5I,OAAD,EAAU0K,QAAV,CAA3C;AAEA6xB,wBAAsB,CAACxvB,IAAvB,GAA8B,EAA9B,CAJuB,CAMvB;;AACA,MAAMwrB,SAAS,GAAG3vB,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA9B;;AAEA,MAAI,CAACu4B,SAAD,IAAc,CAACA,SAAS,CAACxrB,IAAzB,IAAiC,CAACwrB,SAAS,CAACxrB,IAAV,CAAevJ,MAArD,EAA6D;AAC3D;AACD;;AAED,MAAMs3B,KAAK,GAAGvC,SAAS,CAACxrB,IAAV,CAAe,CAAf,CAAd,CAbuB,CAevB;;AACA,MAAI+tB,KAAK,CAAC5G,YAAN,KAAuB,IAA3B,EAAiC;AAC/BzqB,UAAM,CAACmlB,IAAP,CACE,+DADF;AAIA;AACD,GAtBsB,CAwBvB;;;AACA,MAAMmM,iBAAiB,GAAG;AACxBC,oBAAgB,EAAEf,KAAK,CAAC,CAAD,EAAIa,KAAK,CAACxE,QAAN,CAAe9yB,MAAf,GAAwB,CAA5B,CADC;AAExBy3B,WAAO,EAAE,IAFe;AAGxB/c,aAAS,EAAE;AAHa,GAA1B,CAzBuB,CA+BvB;;AACA,MAAMse,mBAAmB,GAAGzB,iBAAiB,CAACC,gBAAlB,CAAmCJ,OAAnC,CAC1BE,KAAK,CAACvf,mBADoB,CAA5B;AAIAwf,mBAAiB,CAACC,gBAAlB,CAAmCG,MAAnC,CAA0CqB,mBAA1C,EAA+D,CAA/D;AAEAxyB,oFAAY,CAAChK,OAAD,EAAU0K,QAAV,EAAoBqwB,iBAApB,CAAZ;AAEApH,UAAQ,CAAC3zB,OAAD,CAAR;AAEAA,SAAO,CAACwJ,mBAAR,CACEpJ,2DAAQ,CAACC,WAAT,CAAqBgJ,MAArB,CAA4B+F,SAD9B,EAEEitB,cAFF;AAIAr8B,SAAO,CAACoJ,gBAAR,CACEhJ,2DAAQ,CAACC,WAAT,CAAqBgJ,MAArB,CAA4B+F,SAD9B,EAEEitB,cAFF;AAKA,MAAMI,qBAAqB,GAAGL,wBAAwB,CAACp8B,OAAD,CAAtD;AAEAI,6DAAQ,CAACC,WAAT,CAAqBuoB,MAArB,CAA4Bpf,mBAA5B,CACEpJ,2DAAQ,CAACC,WAAT,CAAqBgJ,MAArB,CAA4BqzB,2BAD9B,EAEED,qBAFF;AAIAr8B,6DAAQ,CAACC,WAAT,CAAqBuoB,MAArB,CAA4Bxf,gBAA5B,CACEhJ,2DAAQ,CAACC,WAAT,CAAqBgJ,MAArB,CAA4BqzB,2BAD9B,EAEED,qBAFF;AAID;;AAED,SAASlzB,OAAT,CAAiBvJ,OAAjB,EAA0B;AACxBob,cAAY,CAAC2e,oBAAD,CAAZ;AACA/5B,SAAO,CAACwJ,mBAAR,CACEpJ,2DAAQ,CAACC,WAAT,CAAqBgJ,MAArB,CAA4B+F,SAD9B,EAEEitB,cAFF;AAKA,MAAMI,qBAAqB,GAAGL,wBAAwB,CAACp8B,OAAD,CAAtD;AAEAI,6DAAQ,CAACC,WAAT,CAAqBuoB,MAArB,CAA4Bpf,mBAA5B,CACEpJ,2DAAQ,CAACC,WAAT,CAAqBgJ,MAArB,CAA4BqzB,2BAD9B,EAEED,qBAFF;AAKA,MAAM1B,iBAAiB,GAAGnyB,kFAAY,CAAC5I,OAAD,EAAU0K,QAAV,CAAtC,CAdwB,CAexB;;AAEA,MAAIqwB,iBAAiB,IAAIA,iBAAiB,CAAChuB,IAAlB,CAAuBvJ,MAAhD,EAAwD;AACtDu3B,qBAAiB,CAAChuB,IAAlB,CAAuB,CAAvB,EAA0BkuB,OAA1B,GAAoC,KAApC,CADsD,CAGtD;;AACArT,8EAAkB,CAACmN,iBAAnB,CAAqC4E,WAArC;AACD;AACF;;AAED,SAASgD,gBAAT,GAA4B;AAC1B,SAAO7zB,aAAP;AACD;;AAED,SAAS8zB,gBAAT,CAA0BC,MAA1B,EAAkC;AAChC/zB,eAAa,GAAG+zB,MAAhB;;AAEA,MAAIA,MAAM,CAACrH,uBAAX,EAAoC;AAClCsH,0GAA0B,CAACD,MAAM,CAACrH,uBAAR,CAA1B;AACD;AACF,C,CAED;;;AACA,IAAM5Q,aAAa,GAAG;AACpBzb,QAAM,EAANA,MADoB;AAEpBI,SAAO,EAAPA,OAFoB;AAGpBozB,kBAAgB,EAAhBA,gBAHoB;AAIpBC,kBAAgB,EAAhBA;AAJoB,CAAtB;AAOehY,4EAAf,E;;;;;;;;;;;;ACnaA;AAAA;AAAA;AAEA,IAAMC,cAAc,GAAG,EAAvB;AAEAA,cAAc,CAACiR,cAAf,GAAgCA,0DAAhC;AAEejR,6EAAf,E;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;;;;;;;;;;AAUA,SAAS6B,2CAAT,GAAuD;AACrD,MAAM7Z,SAAS,GAAG,EAAlB,CADqD,CAGrD;AACA;;AACA,WAASkwB,oCAAT,CACEC,gBADF,EAEEtyB,QAFF,EAGEqC,IAHF,EAIE;AACA;AACA,QAAIF,SAAS,CAACogB,cAAV,CAAyB+P,gBAAzB,MAA+C,KAAnD,EAA0D;AACxDnwB,eAAS,CAACmwB,gBAAD,CAAT,GAA8B,EAA9B;AACD;;AAED,QAAMC,yBAAyB,GAAGpwB,SAAS,CAACmwB,gBAAD,CAA3C,CANA,CAQA;;AACA,QAAIC,yBAAyB,CAAChQ,cAA1B,CAAyCviB,QAAzC,MAAuD,KAA3D,EAAkE;AAChEuyB,+BAAyB,CAACvyB,QAAD,CAAzB,GAAsC;AACpCqC,YAAI,EAAE;AAD8B,OAAtC;AAGD;;AAED,QAAMyD,QAAQ,GAAGysB,yBAAyB,CAACvyB,QAAD,CAA1C,CAfA,CAiBA;;AACA8F,YAAQ,CAACzD,IAAT,CAAcuM,IAAd,CAAmBvM,IAAnB;AACD,GA5BoD,CA8BrD;AACA;;;AACA,WAASmwB,oCAAT,CAA8CF,gBAA9C,EAAgEtyB,QAAhE,EAA0E;AACxE;AACA,QAAImC,SAAS,CAACogB,cAAV,CAAyB+P,gBAAzB,MAA+C,KAAnD,EAA0D;AACxD;AACD;;AAED,QAAMC,yBAAyB,GAAGpwB,SAAS,CAACmwB,gBAAD,CAA3C,CANwE,CAQxE;;AACA,QAAIC,yBAAyB,CAAChQ,cAA1B,CAAyCviB,QAAzC,MAAuD,KAA3D,EAAkE;AAChE;AACD;;AAED,QAAM8F,QAAQ,GAAGysB,yBAAyB,CAACvyB,QAAD,CAA1C;AAEA,WAAO8F,QAAP;AACD;;AAED,WAAS2sB,uCAAT,CACEH,gBADF,EAEEtyB,QAFF,EAGEqC,IAHF,EAIE;AACA;AACA,QAAIF,SAAS,CAACogB,cAAV,CAAyB+P,gBAAzB,MAA+C,KAAnD,EAA0D;AACxD;AACD;;AAED,QAAMC,yBAAyB,GAAGpwB,SAAS,CAACmwB,gBAAD,CAA3C,CANA,CAQA;;AACA,QAAIC,yBAAyB,CAAChQ,cAA1B,CAAyCviB,QAAzC,MAAuD,KAA3D,EAAkE;AAChE;AACD;;AAED,QAAM8F,QAAQ,GAAGysB,yBAAyB,CAACvyB,QAAD,CAA1C,CAbA,CAcA;;AACA,QAAI0yB,WAAW,GAAG,CAAC,CAAnB;;AAEA,SAAK,IAAI56B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAC7C,UAAIgO,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,MAAqBuK,IAAzB,EAA+B;AAC7BqwB,mBAAW,GAAG56B,CAAd;AACD;AACF;;AAED,QAAI46B,WAAW,KAAK,CAAC,CAArB,EAAwB;AACtB5sB,cAAQ,CAACzD,IAAT,CAAcouB,MAAd,CAAqBiC,WAArB,EAAkC,CAAlC;AACD;AACF;;AAED,SAAO;AACLC,OAAG,EAAEH,oCADA;AAELpd,OAAG,EAAEid,oCAFA;AAGLO,UAAM,EAAEH;AAHH,GAAP;AAKD,C,CAED;AACA;;;AACA,IAAMxW,8CAA8C,GAAGD,2CAA2C,EAAlG;;;;;;;;;;;;;ACrGA;AAAA;AAAA;AAAA;AAAA;AAEA;;;;;;;;;;;AAUA,SAASF,kCAAT,GAA8C;AAC5C,MAAI3Z,SAAS,GAAG,EAAhB,CAD4C,CAG5C;AACA;;AAEA,WAAS0wB,oBAAT,CAA8BtJ,OAA9B,EAAuC;AACrC,WAAOpnB,SAAS,CAAConB,OAAD,CAAhB;AACD;;AAED,WAASuJ,uBAAT,CAAiCvJ,OAAjC,EAA0CwJ,gBAA1C,EAA4D;AAC1D5wB,aAAS,CAAConB,OAAD,CAAT,GAAqBwJ,gBAArB;AACD;;AAED,WAASC,aAAT,GAAyB;AACvB,WAAO7wB,SAAP;AACD;;AAED,WAAS8wB,gBAAT,CAA0BC,cAA1B,EAA0C;AACxC/wB,aAAS,GAAG+wB,cAAZ;AACD,GApB2C,CAsB5C;AACA;;;AACA,WAASC,mBAAT,CAA6B79B,OAA7B,EAAsC0K,QAAtC,EAAgDqC,IAAhD,EAAsD;AACpD,QAAMgN,cAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB,CADoD,CAGpD;;AACA,QAAI,CAAC+Z,cAAc,CAAC9L,KAApB,EAA2B;AACzB;AACD;;AACD6vB,uBAAmB,CAAC/jB,cAAc,CAAC9L,KAAf,CAAqBgmB,OAAtB,EAA+BvpB,QAA/B,EAAyCqC,IAAzC,CAAnB;AACD;;AAED,WAAS+wB,mBAAT,CAA6B7J,OAA7B,EAAsCvpB,QAAtC,EAAgDqC,IAAhD,EAAsD;AACpD;AACA,QAAIF,SAAS,CAACogB,cAAV,CAAyBgH,OAAzB,MAAsC,KAA1C,EAAiD;AAC/CpnB,eAAS,CAAConB,OAAD,CAAT,GAAqB,EAArB;AACD;;AAED,QAAMwJ,gBAAgB,GAAG5wB,SAAS,CAAConB,OAAD,CAAlC,CANoD,CAQpD;;AACA,QAAIwJ,gBAAgB,CAACxQ,cAAjB,CAAgCviB,QAAhC,MAA8C,KAAlD,EAAyD;AACvD+yB,sBAAgB,CAAC/yB,QAAD,CAAhB,GAA6B;AAC3BqC,YAAI,EAAE;AADqB,OAA7B;AAGD;;AAED,QAAMyD,QAAQ,GAAGitB,gBAAgB,CAAC/yB,QAAD,CAAjC,CAfoD,CAiBpD;;AACA8F,YAAQ,CAACzD,IAAT,CAAcuM,IAAd,CAAmBvM,IAAnB;AACD;;AAED,WAASgxB,mBAAT,CAA6B/9B,OAA7B,EAAsC0K,QAAtC,EAAgD;AAC9C,QAAMqP,cAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB,CAD8C,CAG9C;;AACA,QAAI,CAAC+Z,cAAc,CAAC9L,KAApB,EAA2B;AACzB;AACD;;AAED,WAAO+vB,mBAAmB,CAACjkB,cAAc,CAAC9L,KAAf,CAAqBgmB,OAAtB,EAA+BvpB,QAA/B,CAA1B;AACD,GAhE2C,CAkE5C;AACA;;;AACA,WAASszB,mBAAT,CAA6B/J,OAA7B,EAAsCvpB,QAAtC,EAAgD;AAC9C;AACA,QAAImC,SAAS,CAACogB,cAAV,CAAyBgH,OAAzB,MAAsC,KAA1C,EAAiD;AAC/C;AACD;;AAED,QAAMwJ,gBAAgB,GAAG5wB,SAAS,CAAConB,OAAD,CAAlC,CAN8C,CAQ9C;;AACA,QAAIwJ,gBAAgB,CAACxQ,cAAjB,CAAgCviB,QAAhC,MAA8C,KAAlD,EAAyD;AACvD;AACD;;AAED,WAAO+yB,gBAAgB,CAAC/yB,QAAD,CAAvB;AACD,GAlF2C,CAoF5C;;;AACA,WAASuzB,qBAAT,CAA+Bj+B,OAA/B,EAAwC;AACtC,QAAM+Z,cAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB;;AAEA,QAAI,CAAC+Z,cAAc,CAAC9L,KAApB,EAA2B;AACzB;AACD;;AACDiwB,yBAAqB,CAACnkB,cAAc,CAAC9L,KAAf,CAAqBgmB,OAAtB,CAArB;AACD;;AAED,WAASiK,qBAAT,CAA+BjK,OAA/B,EAAwC;AACtC,QAAIpnB,SAAS,CAACogB,cAAV,CAAyBgH,OAAzB,MAAsC,KAA1C,EAAiD;AAC/C;AACD;;AAED,WAAOpnB,SAAS,CAAConB,OAAD,CAAhB;AACD;;AAED,SAAO;AACLoJ,OAAG,EAAEU,mBADA;AAELje,OAAG,EAAE+d,mBAFA;AAGLM,SAAK,EAAEF,qBAHF;AAILD,uBAAmB,EAAnBA,mBAJK;AAKLF,uBAAmB,EAAnBA,mBALK;AAMLI,yBAAqB,EAArBA,qBANK;AAOLX,wBAAoB,EAApBA,oBAPK;AAQLC,2BAAuB,EAAvBA,uBARK;AASLE,iBAAa,EAAbA,aATK;AAULC,oBAAgB,EAAhBA,gBAVK;AAWL9wB,aAAS,EAATA;AAXK,GAAP;AAaD,C,CAED;AACA;;;AACA,IAAM4Z,qCAAqC,GAAGD,kCAAkC,EAAhF;;;;;;;;;;;;;ACnIA;AAAA;AAAA;AAEA,IAAM4X,qBAAqB,GAAG,SAA9B;AAEA,IAAMC,uBAAuB,GAAG,EAAhC;AACA,IAAMC,qBAAqB,GAAG,EAA9B;AACA,IAAMC,0BAA0B,GAAG,EAAnC;;AAEA,SAASC,mBAAT,CAA6Bx+B,OAA7B,EAAsC;AACpC,MAAI,CAACA,OAAL,EAAc;AACZ,WAAOo+B,qBAAP;AACD;;AACD,MAAMK,IAAI,GAAGr+B,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,EAAgDy+B,IAA7D;;AAEA,MAAI,CAACA,IAAL,EAAW;AACT,UAAM,IAAInK,KAAJ,CAAU,qDAAV,CAAN;AACD;;AAED,SAAOmK,IAAP;AACD;;AAED,SAASC,mBAAT,CAA6BC,OAA7B,EAA2D;AAAA,MAArB3+B,OAAqB,uEAAXP,SAAW;;AACzD,MAAI,CAACk/B,OAAL,EAAc;AACZ,UAAM,IAAIrK,KAAJ,CAAU,sCAAV,CAAN;AACD;;AACD,MAAMmK,IAAI,GAAGD,mBAAmB,CAACx+B,OAAD,CAAhC;;AAEAq+B,yBAAuB,CAACI,IAAD,CAAvB,GAAgCE,OAAhC;AACD;;AAED,SAAStF,mBAAT,CAA6Br5B,OAA7B,EAAsC;AACpC,MAAMy+B,IAAI,GAAGD,mBAAmB,CAACx+B,OAAD,CAAhC;;AAEA,SACEq+B,uBAAuB,CAACI,IAAD,CAAvB,IACAJ,uBAAuB,CAACD,qBAAD,CAFzB;AAID;;AAED,SAASQ,iBAAT,CAA2BD,OAA3B,EAAyD;AAAA,MAArB3+B,OAAqB,uEAAXP,SAAW;;AACvD,MAAI,CAACk/B,OAAL,EAAc;AACZ,UAAM,IAAIrK,KAAJ,CAAU,sCAAV,CAAN;AACD;;AACD,MAAMmK,IAAI,GAAGD,mBAAmB,CAACx+B,OAAD,CAAhC;;AAEAs+B,uBAAqB,CAACG,IAAD,CAArB,GAA8BE,OAA9B;AACD;;AAED,SAASrF,iBAAT,CAA2Bt5B,OAA3B,EAAoC;AAClC,MAAMy+B,IAAI,GAAGD,mBAAmB,CAACx+B,OAAD,CAAhC;;AAEA,SACEs+B,qBAAqB,CAACG,IAAD,CAArB,IAA+BH,qBAAqB,CAACF,qBAAD,CADtD;AAGD;;AAED,SAASS,sBAAT,CAAgCF,OAAhC,EAA8D;AAAA,MAArB3+B,OAAqB,uEAAXP,SAAW;;AAC5D,MAAI,CAACk/B,OAAL,EAAc;AACZ,UAAM,IAAIrK,KAAJ,CAAU,sCAAV,CAAN;AACD;;AACD,MAAMmK,IAAI,GAAGD,mBAAmB,CAACx+B,OAAD,CAAhC;;AAEAu+B,4BAA0B,CAACE,IAAD,CAA1B,GAAmCE,OAAnC;AACD;;AAED,SAASpF,sBAAT,CAAgCv5B,OAAhC,EAAyC;AACvC,MAAMy+B,IAAI,GAAGD,mBAAmB,CAACx+B,OAAD,CAAhC;;AAEA,SACEu+B,0BAA0B,CAACE,IAAD,CAA1B,IACAF,0BAA0B,CAACH,qBAAD,CAF5B;AAID;;AAED,SAASU,cAAT,CAAwB9+B,OAAxB,EAAiC;AAC/B,MAAMy+B,IAAI,GAAGD,mBAAmB,CAACx+B,OAAD,CAAhC;;AAEA,SAAOq+B,uBAAuB,CAACI,IAAD,CAA9B;AACA,SAAOH,qBAAqB,CAACG,IAAD,CAA5B;AACA,SAAOF,0BAA0B,CAACE,IAAD,CAAjC;AACD;;AAED,IAAMlY,kBAAkB,GAAG;AACzBmY,qBAAmB,EAAnBA,mBADyB;AAEzBrF,qBAAmB,EAAnBA,mBAFyB;AAGzBuF,mBAAiB,EAAjBA,iBAHyB;AAIzBtF,mBAAiB,EAAjBA,iBAJyB;AAKzBuF,wBAAsB,EAAtBA,sBALyB;AAMzBtF,wBAAsB,EAAtBA,sBANyB;AAOzBuF,gBAAc,EAAdA;AAPyB,CAA3B;AAUevY,iFAAf,E;;;;;;;;;;;;AC5FA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAKA;;;;;;;;;;;;AAWA,SAASF,gCAAT,CAA0C0Y,SAA1C,EAAqDC,eAArD,EAAsE;AACpE,MAAInyB,SAAS,GAAG,EAAhB;;AAEA,WAAS6wB,aAAT,GAAyB;AACvB,WAAO7wB,SAAP;AACD;;AAED,WAAS8wB,gBAAT,CAA0Bh1B,cAA1B,EAA0C;AACxCkE,aAAS,GAAGlE,cAAZ;AACD,GATmE,CAWpE;AACA;;;AACA,WAASs2B,yBAAT,CAAmCj/B,OAAnC,EAA4C0K,QAA5C,EAAsDqC,IAAtD,EAA4D;AAC1D;AACA,QAAIgyB,SAAS,CAACnE,OAAV,CAAkBlwB,QAAlB,KAA+B,CAAnC,EAAsC;AACpC;AACA,UAAImC,SAAS,CAACogB,cAAV,CAAyBviB,QAAzB,MAAuC,KAA3C,EAAkD;AAChDmC,iBAAS,CAACnC,QAAD,CAAT,GAAsB;AACpBqC,cAAI,EAAE;AADc,SAAtB;AAGD;;AAED,UAAMyD,QAAQ,GAAG3D,SAAS,CAACnC,QAAD,CAA1B,CARoC,CAUpC;;AACA8F,cAAQ,CAACzD,IAAT,CAAcuM,IAAd,CAAmBvM,IAAnB;AACD,KAZD,MAYO;AACL;AACA,aAAOiyB,eAAe,CAAClf,GAAhB,CAAoB9f,OAApB,EAA6B0K,QAA7B,EAAuCqC,IAAvC,CAAP;AACD;AACF,GA/BmE,CAiCpE;AACA;;;AACA,WAASmyB,yBAAT,CAAmCl/B,OAAnC,EAA4C0K,QAA5C,EAAsD;AACpD;AACA,QAAIq0B,SAAS,CAACnE,OAAV,CAAkBlwB,QAAlB,KAA+B,CAAnC,EAAsC;AACpC;AACA,UAAImC,SAAS,CAACogB,cAAV,CAAyBviB,QAAzB,MAAuC,KAA3C,EAAkD;AAChDmC,iBAAS,CAACnC,QAAD,CAAT,GAAsB;AACpBqC,cAAI,EAAE;AADc,SAAtB;AAGD;;AAED,aAAOF,SAAS,CAACnC,QAAD,CAAhB;AACD,KAXmD,CAapD;;;AACA,WAAOs0B,eAAe,CAAC3B,GAAhB,CAAoBr9B,OAApB,EAA6B0K,QAA7B,CAAP;AACD;;AAED,MAAMy0B,6BAA6B,GAAG;AACpC9B,OAAG,EAAE6B,yBAD+B;AAEpCpf,OAAG,EAAEmf,yBAF+B;AAGpCvB,iBAAa,EAAbA,aAHoC;AAIpCC,oBAAgB,EAAhBA,gBAJoC;AAKpC9wB,aAAS,EAATA;AALoC,GAAtC;AAQA,SAAOsyB,6BAAP;AACD;;AAED,IAAMC,kBAAkB,GAAG,EAA3B;;AAEA,SAAS9Y,oBAAT,CAA8BtmB,OAA9B,EAAuCq/B,UAAvC,EAAmD;AACjD,MAAIL,eAAe,GAAG9Y,gFAA0B,CAAClmB,OAAD,CAAhD;;AAEA,MAAI,CAACg/B,eAAL,EAAsB;AACpBA,mBAAe,GAAGvY,qGAAlB;AACD;;AAED,MAAI6Y,UAAU,GAAG,CACf,OADe,EAEf,eAFe,EAGf,UAHe,EAIf,QAJe,EAKf,MALe,EAMf,gBANe,EAOf,YAPe,EAQf,eARe,CAAjB;;AAWA,MAAID,UAAJ,EAAgB;AACdC,cAAU,GAAGA,UAAU,CAACC,MAAX,CAAkBF,UAAlB,CAAb;AACD;;AAED,MAAMjZ,yBAAyB,GAAGC,gCAAgC,CAChEiZ,UADgE,EAEhEN,eAFgE,CAAlE;AAKAI,oBAAkB,CAAC9lB,IAAnB,CAAwB8M,yBAAxB;AACAH,kFAA0B,CAACjmB,OAAD,EAAUomB,yBAAV,CAA1B;AACD;;AAED,IAAMA,yBAAyB,GAAG;AAChCC,kCAAgC,EAAhCA,gCADgC;AAEhCC,sBAAoB,EAApBA;AAFgC,CAAlC;;;;;;;;;;;;;ACjHA;AAAA,IAAIkZ,eAAe,GAAG,EAAtB;AAAA,IACEC,WAAW,aAAMD,eAAN,aADb;AAAA,IAEEE,sBAAsB,GAAG,aAF3B;;AAIA,SAASC,OAAT,CAAiBp6B,IAAjB,EAAuB;AACrBk6B,aAAW,GAAGl6B,IAAd;AACD;;AAED,SAASE,OAAT,GAAmB;AACjB,SAAOg6B,WAAP;AACD;;AAED,SAASG,WAAT,CAAqB55B,QAArB,EAA+B;AAC7Bw5B,iBAAe,GAAGx5B,QAAlB;AACD;;AAED,SAASC,WAAT,GAAuB;AACrB,SAAOu5B,eAAP;AACD;;AAED,SAASK,kBAAT,CAA4B35B,eAA5B,EAA6C;AAC3Cw5B,wBAAsB,GAAGx5B,eAAzB;AACD;;AAED,SAASC,kBAAT,GAA8B;AAC5B,SAAOu5B,sBAAP;AACD;;AAED,IAAMl6B,SAAS,GAAG;AAChBm6B,SAAO,EAAPA,OADgB;AAEhBl6B,SAAO,EAAPA,OAFgB;AAGhBm6B,aAAW,EAAXA,WAHgB;AAIhB35B,aAAW,EAAXA,WAJgB;AAKhB45B,oBAAkB,EAAlBA,kBALgB;AAMhB15B,oBAAkB,EAAlBA;AANgB,CAAlB;AASeX,wEAAf,E;;;;;;;;;;;;ACrCA;AAAA,IAAIvD,YAAY,GAAG,OAAnB;AAAA,IACE69B,WAAW,GAAG,aADhB;AAAA,IAEEC,SAAS,GAAG,aAFd;;AAIA,SAASC,YAAT,CAAsBlhC,KAAtB,EAA6B;AAC3BihC,WAAS,GAAGjhC,KAAZ;AACD;;AAED,SAASmhC,YAAT,GAAwB;AACtB,SAAOF,SAAP;AACD;;AAED,SAASG,YAAT,CAAsBphC,KAAtB,EAA6B;AAC3BmD,cAAY,GAAGnD,KAAf;AACD;;AAED,SAASqD,YAAT,GAAwB;AACtB,SAAOF,YAAP;AACD;;AAED,SAASk+B,cAAT,CAAwBrhC,KAAxB,EAA+B;AAC7BghC,aAAW,GAAGhhC,KAAd;AACD;;AAED,SAASshC,cAAT,GAA0B;AACxB,SAAON,WAAP;AACD;;AAED,SAASO,gBAAT,CAA0BtzB,IAA1B,EAAgC;AAC9B,MAAIA,IAAI,CAACjO,KAAT,EAAgB;AACd,WAAOiO,IAAI,CAACjO,KAAZ;AACD;;AAED,SAAOiO,IAAI,CAAClK,MAAL,GAAci9B,WAAd,GAA4B79B,YAAnC;AACD;;AAED,IAAMC,UAAU,GAAG;AACjB89B,cAAY,EAAZA,YADiB;AAEjBC,cAAY,EAAZA,YAFiB;AAGjBC,cAAY,EAAZA,YAHiB;AAIjB/9B,cAAY,EAAZA,YAJiB;AAKjBg+B,gBAAc,EAAdA,cALiB;AAMjBC,gBAAc,EAAdA,cANiB;AAOjBC,kBAAgB,EAAhBA;AAPiB,CAAnB;AAUen+B,yEAAf,E;;;;;;;;;;;;AC9CA;AAAA,IAAIo+B,UAAJ;;AAEA,SAASC,SAAT,CAAmBn4B,SAAnB,EAA8B;AAC5Bk4B,YAAU,GAAGl4B,SAAS,CAACkD,aAAV,CAAwB1E,MAArC;AACD;;AAED,SAAS45B,SAAT,GAAqB;AACnB,SAAOF,UAAP;AACD;;AAED,IAAMna,eAAe,GAAG;AACtBoa,WAAS,EAATA,SADsB;AAEtBC,WAAS,EAATA;AAFsB,CAAxB;AAKera,8EAAf,E;;;;;;;;;;;;ACfA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;AAQA,SAASD,0BAAT,CAAoClmB,OAApC,EAA6C;AAC3C,MAAM+Z,cAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB,CAD2C,CAE3C;AACA;;AAEA,MAAI+Z,cAAc,CAAC0mB,gBAAf,KAAoChhC,SAAxC,EAAmD;AACjDsa,kBAAc,CAAC0mB,gBAAf,GAAkCha,qGAAlC;AACD;;AAED,SAAO1M,cAAc,CAAC0mB,gBAAtB;AACD;AAED;;;;;;;;;;;;;AAWA,SAASz2B,YAAT,CAAsBhK,OAAtB,EAA+B0K,QAA/B,EAAyCZ,eAAzC,EAA0D;AACxD,MAAM22B,gBAAgB,GAAGva,0BAA0B,CAAClmB,OAAD,CAAnD;AAEA8J,iBAAe,CAAC20B,IAAhB,GAAuB30B,eAAe,CAAC20B,IAAhB,IAAwBiC,+DAAM,EAArD;AACAD,kBAAgB,CAAC3gB,GAAjB,CAAqB9f,OAArB,EAA8B0K,QAA9B,EAAwCZ,eAAxC;AAEA,MAAMU,SAAS,GAAGnB,kDAAM,CAACgY,iBAAzB;AACA,MAAMjZ,SAAS,GAAG;AAChBsC,YAAQ,EAARA,QADgB;AAEhBC,YAAQ,EAAED,QAFM;AAEI;AACpB1K,WAAO,EAAPA,OAHgB;AAIhB8J,mBAAe,EAAfA;AAJgB,GAAlB;AAOAc,uEAAY,CAAC5K,OAAD,EAAUwK,SAAV,EAAqBpC,SAArB,CAAZ;AACD;AAED;;;;;;;;;;;;;;AAYA,SAASQ,YAAT,CAAsB5I,OAAtB,EAA+B0K,QAA/B,EAAyC;AACvC,MAAM+1B,gBAAgB,GAAGva,0BAA0B,CAAClmB,OAAD,CAAnD;AAEA,SAAOygC,gBAAgB,CAACpD,GAAjB,CAAqBr9B,OAArB,EAA8B0K,QAA9B,CAAP;AACD;AAED;;;;;;;;;;;;AAUA,SAASG,eAAT,CAAyB7K,OAAzB,EAAkC0K,QAAlC,EAA4CqC,IAA5C,EAAkD;AAChD,MAAM0zB,gBAAgB,GAAGva,0BAA0B,CAAClmB,OAAD,CAAnD;AACA,MAAMwQ,QAAQ,GAAGiwB,gBAAgB,CAACpD,GAAjB,CAAqBr9B,OAArB,EAA8B0K,QAA9B,CAAjB;;AAEA,MAAI,CAAC8F,QAAD,IAAa,CAACA,QAAQ,CAACzD,IAAvB,IAA+B,CAACyD,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlD,EAA0D;AACxD;AACD,GAN+C,CAQhD;;;AACA,MAAI45B,WAAW,GAAG,CAAC,CAAnB;;AAEA,OAAK,IAAI56B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAC7C,QAAIgO,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,MAAqBuK,IAAzB,EAA+B;AAC7BqwB,iBAAW,GAAG56B,CAAd;AACD;AACF;;AAED,MAAI46B,WAAW,KAAK,CAAC,CAArB,EAAwB;AACtB5sB,YAAQ,CAACzD,IAAT,CAAcouB,MAAd,CAAqBiC,WAArB,EAAkC,CAAlC;AAEA,QAAM5yB,SAAS,GAAGnB,kDAAM,CAACkY,mBAAzB;AACA,QAAMnZ,SAAS,GAAG;AAChBsC,cAAQ,EAARA,QADgB;AAEhBC,cAAQ,EAAED,QAFM;AAEI;AACpB1K,aAAO,EAAPA,OAHgB;AAIhB8J,qBAAe,EAAEiD;AAJD,KAAlB;AAOAnC,yEAAY,CAAC5K,OAAD,EAAUwK,SAAV,EAAqBpC,SAArB,CAAZ;AACD;AACF;AAED;;;;;;;;;;;;AAUA,SAAS4d,cAAT,CAAwBhmB,OAAxB,EAAiC0K,QAAjC,EAA2C;AACzC,MAAM+1B,gBAAgB,GAAGva,0BAA0B,CAAClmB,OAAD,CAAnD;AACA,MAAMwQ,QAAQ,GAAGiwB,gBAAgB,CAACpD,GAAjB,CAAqBr9B,OAArB,EAA8B0K,QAA9B,CAAjB,CAFyC,CAIzC;;AACA,MAAI8F,QAAQ,KAAK/Q,SAAjB,EAA4B;AAC1B+Q,YAAQ,CAACzD,IAAT,GAAgB,EAAhB;AACD;AACF;AAED;;;;;;;;;;;AASA,SAASkZ,0BAAT,CAAoCjmB,OAApC,EAA6CygC,gBAA7C,EAA+D;AAC7D,MAAM1mB,cAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB;AAEA+Z,gBAAc,CAAC0mB,gBAAf,GAAkCA,gBAAlC;AACD;;;;;;;;;;;;;;ACnJD;AAAA,IAAIE,YAAY,GAAG,CAAnB;AAAA,IACEC,WAAW,GAAG,CADhB;;AAGA,SAASC,YAAT,CAAsB//B,KAAtB,EAA6B;AAC3B6/B,cAAY,GAAG7/B,KAAf;AACD;;AAED,SAASoC,YAAT,GAAwB;AACtB,SAAOy9B,YAAP;AACD;;AAED,SAASG,cAAT,CAAwBhgC,KAAxB,EAA+B;AAC7B8/B,aAAW,GAAG9/B,KAAd;AACD;;AAED,SAASmC,cAAT,GAA0B;AACxB,SAAO29B,WAAP;AACD;;AAED,IAAM59B,SAAS,GAAG;AAChB69B,cAAY,EAAZA,YADgB;AAEhB39B,cAAY,EAAZA,YAFgB;AAGhB49B,gBAAc,EAAdA,cAHgB;AAIhB79B,gBAAc,EAAdA;AAJgB,CAAlB;AAOeD,wEAAf,E;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA,IAAMyG,MAAM,GAAGC,iEAAS,CAAC,SAAD,CAAxB;AAEA;;;;;;;;;;;;;AAYA,IAAMyb,iBAAiB,GAAG,SAApBA,iBAAoB,CAASnlB,OAAT,EAAkB+gC,OAAlB,EAA2BC,KAA3B,EAAkC;AAC1D;AACA;AACA;AACA,MAAMv4B,IAAI,GAAG,IAAIs4B,OAAJ,CAAYC,KAAZ,CAAb;AACA,MAAMC,yBAAyB,GAAGhc,qEAAiB,CAACjlB,OAAD,EAAUyI,IAAI,CAACwB,IAAf,CAAnD;;AAEA,MAAIg3B,yBAAJ,EAA+B;AAC7Bx3B,UAAM,CAACmlB,IAAP,CAAY,iDAAZ,EAA+DnmB,IAAI,CAACwB,IAApE;AAEA;AACD;;AAEDxB,MAAI,CAACzI,OAAL,GAAeA,OAAf;AACAglB,mDAAK,CAACzhB,KAAN,CAAYgF,KAAZ,CAAkB+Q,IAAlB,CAAuB7Q,IAAvB;AACD,CAfD;AAiBA;;;;;;;;;;;;;AAWA,IAAMyc,OAAO,GAAG,SAAVA,OAAU,CAAS6b,OAAT,EAAkBC,KAAlB,EAAyB;AACvCE,kBAAgB,CAACH,OAAD,EAAUC,KAAV,CAAhB;;AACAhc,mDAAK,CAACzhB,KAAN,CAAYyd,eAAZ,CAA4Bpd,OAA5B,CAAoC,UAAA5D,OAAO,EAAI;AAC7CmlB,qBAAiB,CAACnlB,OAAD,EAAU+gC,OAAV,EAAmBC,KAAnB,CAAjB;AACD,GAFD;AAGD,CALD;AAOA;;;;;;;;;;;;;AAWA,IAAME,gBAAgB,GAAG,SAAnBA,gBAAmB,CAASH,OAAT,EAAkBC,KAAlB,EAAyB;AAAA,mBACtB/4B,2DAAS,CAAC,qBAAD,CADa;AAAA,MACxCa,aADwC,cACxCA,aADwC;;AAGhD,MAAI,CAACA,aAAa,CAACq4B,qBAAnB,EAA0C;AACxC;AACD;;AAED,MAAM14B,IAAI,GAAG,IAAIs4B,OAAJ,CAAYC,KAAZ,CAAb;AACA,MAAMI,wBAAwB,GAC5Bpc,iDAAK,CAACzhB,KAAN,CAAY89B,WAAZ,CAAwB54B,IAAI,CAACwB,IAA7B,MAAuCxK,SADzC;;AAGA,MAAI2hC,wBAAJ,EAA8B;AAC5B33B,UAAM,CAACmlB,IAAP,CAAY,oCAAZ,EAAkDnmB,IAAI,CAACwB,IAAvD;AAEA;AACD;;AAED+a,mDAAK,CAACzhB,KAAN,CAAY89B,WAAZ,CAAwB54B,IAAI,CAACwB,IAA7B,IAAqC;AACnCxB,QAAI,EAAEs4B,OAD6B;AAEnCC,SAAK,EAALA,KAFmC;AAGnCM,kBAAc,EAAE;AAHmB,GAArC;AAKD,CAtBD;;;;;;;;;;;;;;AChEA;AAAA;AAAA;AAAA;AACA;AAEA;;;;;;;;;;;AAUe,yEAAS/4B,KAAT,EAAgB;AAC7B,SAAOA,KAAK,CAACC,MAAN,CACL,UAAAC,IAAI;AAAA,WACF,CAACA,IAAI,CAAC84B,eAAN,IACA,EAAE94B,IAAI,YAAYoF,yEAAlB,CADA,IAEA,EAAEpF,IAAI,YAAY0gB,oEAAlB,CAHE;AAAA,GADC,CAAP;AAMD,C;;;;;;;;;;;;ACpBD;AAAA;;;;;;;;;;;;AAYe,yEAASnpB,OAAT,EAAkBuI,KAAlB,EAAyB8G,WAAzB,EAAsC;AACnD,SAAO9G,KAAK,CAACC,MAAN,CACL,UAAAC,IAAI;AAAA,WACFA,IAAI,CAACzI,OAAL,KAAiBA,OAAjB,IACAyI,IAAI,CAACC,IAAL,KAAc,QADd,KAEC2G,WAAW,KAAK5P,SAAhB,IAA6BgJ,IAAI,CAAClJ,OAAL,aAAkB8P,WAAlB,YAF9B,CADE;AAAA,GADC,CAAP;AAMD,C;;;;;;;;;;;;ACnBD;AAAA;;;;;;;;;;;AAWe,yEAASrP,OAAT,EAAkBuI,KAAlB,EAAyB;AACtC,SAAOA,KAAK,CAACC,MAAN,CACL,UAAAC,IAAI;AAAA,WACFA,IAAI,CAACzI,OAAL,KAAiBA,OAAjB,KACCyI,IAAI,CAACC,IAAL,KAAc,QAAd,IAA0BD,IAAI,CAACC,IAAL,KAAc,SADzC,CADE;AAAA,GADC,CAAP;AAKD,C;;;;;;;;;;;;ACjBD;AAAA;AAAA;AAEA;;;;;;;;;;;;AAWe,yEAAS1I,OAAT,EAAkBiK,IAAlB,EAAwB;AACrC,SAAO1G,+CAAK,CAACgF,KAAN,CAAY8D,IAAZ,CACL,UAAA5D,IAAI;AAAA,WAAIA,IAAI,CAACzI,OAAL,KAAiBA,OAAjB,IAA4ByI,IAAI,CAACwB,IAAL,KAAcA,IAA9C;AAAA,GADC,CAAP;AAGD,C;;;;;;;;;;;;ACjBD;AAAA;AAAA;AAEA;;;;;;;;;;;;AAWe,yEAASjK,OAAT,EAAkBuI,KAAlB,EAAyB;AACtC,SAAOA,KAAK,CAACC,MAAN,CAAa,UAAAC,IAAI,EAAI;AAC1B,QAAMoE,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAUyI,IAAI,CAACwB,IAAf,CAA9B;AAEA,WAAO4C,SAAS,IAAIA,SAAS,CAACE,IAAV,CAAevJ,MAAf,GAAwB,CAA5C;AACD,GAJM,CAAP;AAKD,C;;;;;;;;;;;;ACnBD;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;;;;;;;;;;;;;;AAae,yEAASxD,OAAT,EAAkBuI,KAAlB,EAAyB8C,MAAzB,EAA4D;AAAA,MAA3BoR,eAA2B,uEAAT,OAAS;AACzE,MAAM+kB,SAAS,GACb/kB,eAAe,KAAK,OAApB,GAA8BlZ,+CAAK,CAACk+B,cAApC,GAAqDl+B,+CAAK,CAACm+B,cAD7D;AAGA,SAAOn5B,KAAK,CAACC,MAAN,CAAa,UAAAC,IAAI,EAAI;AAC1B,QAAMoE,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAUyI,IAAI,CAACwB,IAAf,CAA9B;;AAEA,SAAK,IAAIzH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqK,SAAS,CAACE,IAAV,CAAevJ,MAAnC,EAA2ChB,CAAC,EAA5C,EAAgD;AAC9C,UACEqO,wFAAuB,CACrB7Q,OADqB,EAErB6M,SAAS,CAACE,IAAV,CAAevK,CAAf,EAAkBR,OAFG,EAGrBqJ,MAHqB,EAIrBm2B,SAJqB,CAAvB,KAKM/hC,SANR,EAOE;AACA,eAAO,IAAP;AACD;AACF;;AAED,WAAO,KAAP;AACD,GAjBM,CAAP;AAkBD,C;;;;;;;;;;;;ACvCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMgK,MAAM,GAAGC,iEAAS,CAAC,2BAAD,CAAxB;AAEO,IAAMnG,KAAK,GAAG;AACnB;AACA89B,aAAW,EAAE,EAFM;AAGnBM,yBAAuB,EAAE,EAHN;AAInB;AACA3gB,iBAAe,EAAE,EALE;AAMnBzY,OAAK,EAAE,EANY;AAOnB6C,cAAY,EAAE,KAPK;AAQnBw2B,qBAAmB,EAAE,IARF;AASnB5zB,oBAAkB,EAAE,EATD;AAUnB;AACAyzB,gBAAc,EAAE,CAXG;AAYnBC,gBAAc,EAAE,EAZG;AAanBp+B,cAAY,EAAE,CAbK;AAcnBuM,4BAA0B,EAAE,IAdT;AAenBke,2BAAyB,EAAE,KAfR;AAgBnB;AACA8T,cAAY,EAAE,IAjBK,CAkBnB;;AAlBmB,CAAd;AAqBA,IAAMp2B,OAAO,GAAG;AACrBC,YAAU,EAAE;AAAA,WACVnI,KAAK,CAACgF,KAAN,CAAYC,MAAZ,CAAmB,UAAAC,IAAI;AAAA,aACrBA,IAAI,CAAC8G,yBAAL,CAA+BxD,QAA/B,CAAwC,OAAxC,CADqB;AAAA,KAAvB,CADU;AAAA,GADS;AAKrB4E,YAAU,EAAE;AAAA,WACVpN,KAAK,CAACgF,KAAN,CAAYC,MAAZ,CAAmB,UAAAC,IAAI;AAAA,aACrBA,IAAI,CAAC8G,yBAAL,CAA+BxD,QAA/B,CAAwC,OAAxC,CADqB;AAAA,KAAvB,CADU;AAAA,GALS;AASrB+1B,qBAAmB,EAAE,6BAAAC,iBAAiB;AAAA,WACpCx+B,KAAK,CAACyd,eAAN,CAAsB3U,IAAtB,CACE,UAAArM,OAAO;AAAA,aACLI,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,EAAgDy+B,IAAhD,KACAsD,iBAFK;AAAA,KADT,CADoC;AAAA;AATjB,CAAhB;AAiBA,IAAMhZ,OAAO,GAAG;AACrBiZ,cAAY,EAAZA,mEADqB;AAErBC,QAAM,EAANA,gEAFqB;AAGrBC,qBAAmB,EAAnBA,6EAHqB;AAIrBC,kBAAgB,EAAhBA,uEAAgBA;AAJK,CAAhB;AAOA,SAASl6B,SAAT,CAAmBkgB,UAAnB,EAA+B;AACpC,SAAOY,OAAO,CAACZ,UAAD,CAAd;AACD;AAEc;AACbY,SAAO,EAAPA,OADa;AAEbxlB,OAAK,EAALA,KAFa;AAGbkI,SAAO,EAAPA;AAHa,CAAf,E;;;;;;;;;;;;AC3DA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA;AAMA;AACA;AAMA;AACA;AAEA,IAAMhC,MAAM,GAAGC,iEAAS,CAAC,6BAAD,CAAxB;AAEA;;;;;;;;;;AAUA;;;;;;;;AAOA;;;;;;;;;;;AAUe,yEAAS04B,iBAAT,EAA4B;AACzC34B,QAAM,CAACE,GAAP,CAAW,uBAAX;AACA,MAAMoQ,cAAc,GAAGqoB,iBAAiB,CAAC/5B,MAAlB,CAAyBrI,OAAhD,CAFyC,CAIzC;;AACAqiC,yFAA4B,CAACl5B,MAA7B,CAAoC4Q,cAApC;AACAuoB,oFAAuB,CAACn5B,MAAxB,CAA+B4Q,cAA/B;;AANyC,mBAQf9R,2DAAS,CAAC,qBAAD,CARM;AAAA,MAQjCa,aARiC,cAQjCA,aARiC,EAUzC;;;AACA,MAAIA,aAAa,CAACy5B,YAAlB,EAAgC;AAC9BC,gFAAmB,CAACr5B,MAApB,CAA2B4Q,cAA3B;AACA0oB,+EAAkB,CAACt5B,MAAnB,CAA0B4Q,cAA1B;AACA2oB,uFAAwB,CAACv5B,MAAzB,CAAgC4Q,cAAhC;AACD,GAfwC,CAiBzC;;;AACA,MAAIjR,aAAa,CAAC65B,YAAlB,EAAgC;AAC9BC,gFAAmB,CAACz5B,MAApB,CAA2B4Q,cAA3B;AACA8oB,uFAAwB,CAAC15B,MAAzB,CAAgC4Q,cAAhC;AACD,GArBwC,CAuBzC;;;AACA+oB,oBAAkB,CAAC/oB,cAAD,CAAlB;AACD;AAED;;;;;;;;AAOA,IAAM+oB,kBAAkB,GAAG,SAArBA,kBAAqB,CAAS/oB,cAAT,EAAyB;AAClDiL,mDAAK,CAACzhB,KAAN,CAAYyd,eAAZ,CAA4B1H,IAA5B,CAAiCS,cAAjC;;AACA,MAAIiL,iDAAK,CAAC+D,OAAV,EAAmB;AACjBga,yBAAqB,CAAChpB,cAAD,CAArB;AACD;;AACDipB,0BAAwB,CAACjpB,cAAD,CAAxB;;AACAkpB,0BAAwB,CAAClpB,cAAD,CAAxB;AACD,CAPD;AASA;;;;;;;;;;AAQA,SAASgpB,qBAAT,CAA+BhpB,cAA/B,EAA+C;AAC7C,MAAMgP,OAAO,GAAG/D,iDAAK,CAAC+D,OAAtB;AAEAzmB,QAAM,CAACC,IAAP,CAAYwmB,OAAZ,EAAqBnlB,OAArB,CAA6B,UAASolB,GAAT,EAAc;AACzC,QAAI,OAAOD,OAAO,CAACC,GAAD,CAAP,CAAaka,sBAApB,KAA+C,UAAnD,EAA+D;AAC7Dna,aAAO,CAACC,GAAD,CAAP,CAAaka,sBAAb,CAAoCnpB,cAApC;AACD;AACF,GAJD;AAKD;AAED;;;;;;;;;AAOA,SAASipB,wBAAT,CAAkCjpB,cAAlC,EAAkD;AAAA,oBACtB9R,2DAAS,CAAC,qBAAD,CADa;AAAA,MACxCa,aADwC,eACxCA,aADwC;;AAGhD,MAAI,CAACA,aAAa,CAACq4B,qBAAnB,EAA0C;AACxC;AACD;;AAED7+B,QAAM,CAACC,IAAP,CAAYyiB,iDAAK,CAACzhB,KAAN,CAAY89B,WAAxB,EAAqCz9B,OAArC,CAA6C,UAASolB,GAAT,EAAc;AAAA,gCACjChE,iDAAK,CAACzhB,KAAN,CAAY89B,WAAZ,CAAwBrY,GAAxB,CADiC;AAAA,QACjDvgB,IADiD,yBACjDA,IADiD;AAAA,QAC3Cu4B,KAD2C,yBAC3CA,KAD2C;AAGzD7b,yEAAiB,CAACpL,cAAD,EAAiBtR,IAAjB,EAAuBu4B,KAAvB,CAAjB;AACD,GAJD;AAKD;AAED;;;;;;;;;;AAQA,SAASiC,wBAAT,CAAkClpB,cAAlC,EAAkD;AAAA,oBACtB9R,2DAAS,CAAC,qBAAD,CADa;AAAA,MACxCa,aADwC,eACxCA,aADwC;;AAGhD,MAAI,CAACA,aAAa,CAACq4B,qBAAnB,EAA0C;AACxC;AACD;;AAED,MAAMgC,cAAc,GAAG;AACrBtgC,UAAM,EAAE4iB,uEADa;AAErB1T,WAAO,EAAEgU,wEAFY;AAGrBkV,WAAO,EAAEtV,wEAHY;AAIrByd,YAAQ,EAAEvd,yEAAyBA;AAJd,GAAvB;AAOAb,mDAAK,CAACzhB,KAAN,CAAYo+B,uBAAZ,CAAoC/9B,OAApC,CAA4C,UAAAy/B,YAAY,EAAI;AAC1D,QAAMC,IAAI,GAAGD,YAAY,CAACC,IAAb,CAAkBtS,KAAlB,CAAwB,CAAxB,CAAb;AAEAsS,QAAI,CAACxO,OAAL,CAAa/a,cAAb;AACAopB,kBAAc,CAACE,YAAY,CAAC36B,IAAd,CAAd,CAAkC6xB,KAAlC,CAAwC,IAAxC,EAA8C+I,IAA9C;AACD,GALD;AAMD,C;;;;;;;;;;;;AChKD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA;AAMA;AACA;AACA;AAEA,IAAM75B,MAAM,GAAGC,iEAAS,CAAC,gCAAD,CAAxB;AAEA;;;;;;;;;;AAUA;;;;;;;;;;;AAUe,yEAAS65B,kBAAT,EAA6B;AAC1C95B,QAAM,CAACE,GAAP,CAAW,wBAAX;AACA,MAAMoQ,cAAc,GAAGwpB,kBAAkB,CAACl7B,MAAnB,CAA0BrI,OAAjD;;AAF0C,mBAGhBiI,2DAAS,CAAC,qBAAD,CAHO;AAAA,MAGlCa,aAHkC,cAGlCA,aAHkC,EAK1C;;;AACAu5B,yFAA4B,CAAC94B,OAA7B,CAAqCwQ,cAArC;AACAuoB,oFAAuB,CAAC/4B,OAAxB,CAAgCwQ,cAAhC,EAP0C,CAS1C;;AACA,MAAIjR,aAAa,CAACy5B,YAAlB,EAAgC;AAC9BC,gFAAmB,CAACj5B,OAApB,CAA4BwQ,cAA5B;AACA0oB,+EAAkB,CAACl5B,OAAnB,CAA2BwQ,cAA3B;AACA2oB,uFAAwB,CAACn5B,OAAzB,CAAiCwQ,cAAjC;AACD,GAdyC,CAgB1C;;;AACA,MAAIjR,aAAa,CAAC65B,YAAlB,EAAgC;AAC9BC,gFAAmB,CAACr5B,OAApB,CAA4BwQ,cAA5B;AACA8oB,uFAAwB,CAACt5B,OAAzB,CAAiCwQ,cAAjC;AACD,GApByC,CAsB1C;;;AACAypB,2BAAyB,CAACzpB,cAAD,CAAzB;;AACA0pB,uBAAqB,CAAC1pB,cAAD,CAArB;;AACA2pB,qBAAmB,CAAC3pB,cAAD,CAAnB;AACD;AAED;;;;;;;;AAOA,IAAMypB,yBAAyB,GAAG,SAA5BA,yBAA4B,CAASzpB,cAAT,EAAyB;AACzD;AACA;AACAiL,mDAAK,CAACzhB,KAAN,CAAYgF,KAAZ,GAAoByc,iDAAK,CAACzhB,KAAN,CAAYgF,KAAZ,CAAkBC,MAAlB,CAClB,UAAAC,IAAI;AAAA,WAAIA,IAAI,CAACzI,OAAL,KAAiB+Z,cAArB;AAAA,GADc,CAApB;AAGD,CAND;AAQA;;;;;;;;;AAOA,IAAM0pB,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAS1pB,cAAT,EAAyB;AACrD,MAAIiL,iDAAK,CAAC+D,OAAV,EAAmB;AACjB4a,0BAAsB,CAAC5pB,cAAD,CAAtB;AACD;;AAED,MAAM6pB,iBAAiB,GAAG5e,iDAAK,CAACzhB,KAAN,CAAYyd,eAAZ,CAA4B6iB,SAA5B,CACxB,UAAA7jC,OAAO;AAAA,WAAIA,OAAO,KAAK+Z,cAAhB;AAAA,GADiB,CAA1B;;AAIA,MAAI6pB,iBAAiB,GAAG,CAAC,CAAzB,EAA4B;AAC1B5e,qDAAK,CAACzhB,KAAN,CAAYyd,eAAZ,CAA4Bma,MAA5B,CAAmCyI,iBAAnC,EAAsD,CAAtD;AACD,GAFD,MAEO;AACLn6B,UAAM,CAACmlB,IAAP,CAAY,0BAAZ;AACD;AACF,CAdD;AAgBA;;;;;;;;;AAOA,IAAM8U,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAS1jC,OAAT,EAAkB;AAC5CumB,gFAAkB,CAACuY,cAAnB,CAAkC9+B,OAAlC;AACD,CAFD;AAIA;;;;;;;;;;AAQA,SAAS2jC,sBAAT,CAAgC5pB,cAAhC,EAAgD;AAC9C,MAAMgP,OAAO,GAAG/D,iDAAK,CAAC+D,OAAtB;AAEAzmB,QAAM,CAACC,IAAP,CAAYwmB,OAAZ,EAAqBnlB,OAArB,CAA6B,UAASolB,GAAT,EAAc;AACzC,QAAI,OAAOD,OAAO,CAACC,GAAD,CAAP,CAAa8a,4BAApB,KAAqD,UAAzD,EAAqE;AACnE/a,aAAO,CAACC,GAAD,CAAP,CAAa8a,4BAAb,CAA0C/pB,cAA1C;AACD;AACF,GAJD;AAKD,C;;;;;;;;;;;;AClID;AAAA;AAAA;AAEA;;;;;;;;;;;;AAWe,yEAAS/Z,OAAT,EAAkBiK,IAAlB,EAAwB;AACrC,MAAMxB,IAAI,GAAGwc,qEAAiB,CAACjlB,OAAD,EAAUiK,IAAV,CAA9B;AAEA,SAAOxB,IAAI,CAACC,IAAL,KAAc,QAArB;AACD,C;;;;;;;;;;;;ACjBD;AAAA;AAAA;AAEA,IAAMI,aAAa,GAAG;AACpBi7B,UAAQ,EAAE,EADU;AAEpBC,SAAO,EAAE;AACP1kC,KAAC,EAAE,EADI;AAEPD,KAAC,EAAE;AAFI,GAFW;AAMpB4kC,YAAU,EAAE;AACV3kC,KAAC,EAAE,CADO;AAEVD,KAAC,EAAE;AAFO,GANQ;AAUpB6kC,yBAAuB;AAVH,CAAtB;AAgBA,IAAM9V,OAAO,GAAG;AACd+V,gBAAc,EAAE,wBAAAC,UAAU,EAAI;AAC5B9hC,UAAM,CAAC8lB,MAAP,CAActf,aAAd,EAA6Bs7B,UAA7B;AACD;AAHa,CAAhB;AAMA,IAAM34B,OAAO,GAAG;AACd04B,gBAAc,EAAE;AAAA,WAAMr7B,aAAN;AAAA;AADF,CAAhB;AAIe;AACbA,eAAa,EAAbA,aADa;AAEb2C,SAAO,EAAPA,OAFa;AAGb2iB,SAAO,EAAPA;AAHa,CAAf,E;;;;;;;;;;;;AC5BA;AAAA,IAAMtlB,aAAa,GAAG;AACpBy5B,cAAY,EAAE,IADM;AAEpBI,cAAY,EAAE,IAFM;AAGpBxB,uBAAqB,EAAE,KAHH;AAIpBkD,gBAAc,EAAE,KAJI;AAKpBhc,qBAAmB,EAAE,IALD;AAMpBrpB,UAAQ,EAAE,CAAC,CAAD,EAAI,CAAJ;AANU,CAAtB;AASe;AACb8J,eAAa,EAAbA;AADa,CAAf,E;;;;;;;;;;;;ACTA;AAAA;AAAA;AAEA,IAAMvF,KAAK,GAAG;AAAE+gC,oBAAkB,EAAE;AAAtB,CAAd;;AAEA,SAASjW,8BAAT,CAAwCruB,OAAxC,EAAiDukC,QAAjD,EAA2D;AACzD,MAAMxqB,cAAc,GAAG3Z,wDAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB;AACA,MAAMwkC,kBAAkB,GAAGzqB,cAAc,CAAC0kB,IAA1C;AAEAl7B,OAAK,CAAC+gC,kBAAN,CAAyBE,kBAAzB,IAA+CD,QAA/C;AACD;;AAED,SAAS5V,iCAAT,CAA2C3uB,OAA3C,EAAoD;AAClD,MAAM+Z,cAAc,GAAG3Z,wDAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB;AACA,MAAMwkC,kBAAkB,GAAGzqB,cAAc,CAAC0kB,IAA1C;AAFkD,MAG1C6F,kBAH0C,GAGnB/gC,KAHmB,CAG1C+gC,kBAH0C;AAKlD,SAAOA,kBAAkB,CAACE,kBAAD,CAAzB;AACD;;AAED,SAASC,kCAAT,CAA4CzkC,OAA5C,EAAqD;AACnD,MAAM+Z,cAAc,GAAG3Z,wDAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB;AACA,MAAMwkC,kBAAkB,GAAGzqB,cAAc,CAAC0kB,IAA1C;;AACAiG,yCAAuC,CAACF,kBAAD,CAAvC;AACD;;AAED,SAASE,uCAAT,CAAiDF,kBAAjD,EAAqE;AAAA,MAC3DF,kBAD2D,GACpC/gC,KADoC,CAC3D+gC,kBAD2D;AAEnE,MAAMC,QAAQ,GAAGD,kBAAkB,CAACE,kBAAD,CAAnC;;AAEA,MAAI,OAAOD,QAAP,KAAoB,UAAxB,EAAoC;AAClCA,YAAQ;AACT;;AAED,SAAOD,kBAAkB,CAACE,kBAAD,CAAzB;AACD;;AAED,SAASG,wBAAT,GAAoC;AAAA,MAC1BL,kBAD0B,GACH/gC,KADG,CAC1B+gC,kBAD0B;AAGlChiC,QAAM,CAACC,IAAP,CAAY+hC,kBAAZ,EAAgC1gC,OAAhC,CAAwC,UAAA4gC,kBAAkB;AAAA,WACxDE,uCAAuC,CAACF,kBAAD,CADiB;AAAA,GAA1D;AAGD;;AAED,SAASI,2BAAT,CAAqCz8B,GAArC,EAA0C;AACxC,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADwC,MAEhCrI,OAFgC,GAEpBoI,SAFoB,CAEhCpI,OAFgC;AAIxC2uB,mCAAiC,CAAC3uB,OAAD,CAAjC;AACD;;AAED,SAAS8jC,4BAAT,CAAsC9jC,OAAtC,EAA+C;AAAA,MACrCoP,SADqC,GACvBhP,wDAAQ,CAACC,WAAT,CAAqBgJ,MADE,CACrC+F,SADqC;AAG7CpP,SAAO,CAACwJ,mBAAR,CAA4B4F,SAA5B,EAAuCw1B,2BAAvC;AACAjW,mCAAiC,CAAC3uB,OAAD,CAAjC;AACD;;AAED,SAASkjC,sBAAT,CAAgCljC,OAAhC,EAAyC;AAAA,MAC/BoP,SAD+B,GACjBhP,wDAAQ,CAACC,WAAT,CAAqBgJ,MADJ,CAC/B+F,SAD+B;AAGvCpP,SAAO,CAACwJ,mBAAR,CAA4B4F,SAA5B,EAAuCw1B,2BAAvC;AACA5kC,SAAO,CAACoJ,gBAAR,CAAyBgG,SAAzB,EAAoCw1B,2BAApC;AACD;;AAEc;AACbxW,SAAO,EAAE;AACP;AACAC,kCAA8B,EAA9BA,8BAFO;AAGPM,qCAAiC,EAAjCA,iCAHO;AAKP;AACA8V,sCAAkC,EAAlCA,kCANO;AAOPE,4BAAwB,EAAxBA;AAPO,GADI;AAUbphC,OAAK,EAALA,KAVa;AAWb2/B,wBAAsB,EAAtBA,sBAXa;AAYbY,8BAA4B,EAA5BA;AAZa,CAAf,E;;;;;;;;;;;;ACjEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;AAOA,SAASe,sBAAT,CAAgCC,0BAAhC,EAA4D;AAC1D,MAAM9kC,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMglC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMu4B,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AACA,MAAMk4B,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AAEA,MAAM4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAxB;;AAEA,MAAI,CAACC,eAAL,EAAsB;AACpB;AACD;;AAED,SAAOA,eAAe,CAAC5pB,mBAAvB;AACD;AAED;;;;;;;;;;;AASA,SAAS8pB,sBAAT,CAAgCN,0BAAhC,EAA+E;AAAA,MAAnBrxB,aAAmB,uEAAH,CAAG;AAC7E,MAAMzT,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMK,WAAW,GAAGD,wDAAQ,CAACC,WAA7B;AACA,MAAM2kC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMu4B,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AACA,MAAMgN,cAAc,GAAG1Z,WAAW,CAAC2Z,iBAAZ,CAA8Bha,OAA9B,CAAvB;AAV6E,8BAWnD+Z,cAAc,CAAC9L,KAXoC;AAAA,MAWrEsG,IAXqE,yBAWrEA,IAXqE;AAAA,MAW/Dge,OAX+D,yBAW/DA,OAX+D;AAY7E,MAAM8S,cAAc,GAAG9M,SAAS,CAACjC,QAAV,CAAmB9yB,MAA1C;AACA,MAAM8hC,IAAI,GAAG/wB,IAAI,GAAGge,OAAP,GAAiB8S,cAA9B;AACA,MAAMJ,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AAEA,MAAI4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAtB;;AAEA,MAAIC,eAAJ,EAAqB;AACnBA,mBAAe,CAAC5pB,mBAAhB,GAAsC7H,aAAtC;;AAEA,QAAI,CAACyxB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,CAAL,EAAiD;AAC/C8xB,oEAAa,CAACL,eAAD,EAAkBzxB,aAAlB,EAAiC6xB,IAAjC,CAAb;AACD;AACF,GAND,MAMO;AACL/hC,kDAAK,CAAC4hC,MAAN,CAAaF,YAAb,IAA6B;AAC3B3pB,yBAAmB,EAAE7H,aADM;AAE3B4H,iBAAW,EAAE;AAFc,KAA7B;AAKA6pB,mBAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAlB;AAEAM,kEAAa,CAACL,eAAD,EAAkBzxB,aAAlB,EAAiC6xB,IAAjC,CAAb;AACD;;AAEDjlC,aAAW,CAAC6J,WAAZ,CAAwBlK,OAAxB;AACD;;;;;;;;;;;;;;AC9ED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;;;;;;;;;AAQA,SAASwlC,qBAAT,CAA+BV,0BAA/B,EAA2DrxB,aAA3D,EAA0E;AACxE,MAAMzT,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMglC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMu4B,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AACA,MAAMk4B,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AAEA,MAAM4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAxB;;AAEA,MAAIC,eAAJ,EAAqB;AACnBzxB,iBAAa,GACXA,aAAa,KAAKhU,SAAlB,GACIylC,eAAe,CAAC5pB,mBADpB,GAEI7H,aAHN;AAKA,QAAMD,UAAU,GAAG0xB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,CAAnB;;AAEA,QAAID,UAAJ,EAAgB;AACd,aAAOA,UAAU,CAACuD,kBAAlB;AACD;AACF;;AAED,SAAO,CAAP;AACD;AAED;;;;;;;;;;AAQA,SAAS0uB,qBAAT,CAA+BX,0BAA/B,EAA2D1vB,YAA3D,EAAyE;AACvE,MAAMpV,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMglC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMu4B,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AACA,MAAMk4B,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AAEA,MAAM4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAxB;;AAEA,MAAI,CAACC,eAAL,EAAsB;AACpB;AACD;;AAED,MAAM5pB,mBAAmB,GAAG4pB,eAAe,CAAC5pB,mBAA5C;AACA,MAAM9H,UAAU,GAAG0xB,eAAe,CAAC7pB,WAAhB,CAA4BC,mBAA5B,CAAnB;;AAlBuE,mBAoB7CrT,2DAAS,CAAC,cAAD,CApBoC;AAAA,MAoB/Da,aApB+D,cAoB/DA,aApB+D;;AAsBvE,MAAIsM,YAAY,IAAI,CAApB,EAAuB;AACrBA,gBAAY,GAAG,CAAf;AACD,GAFD,MAEO,IAAIA,YAAY,GAAGtM,aAAa,CAAC48B,mBAAjC,EAAsD;AAC3DtwB,gBAAY,GAAGtM,aAAa,CAAC48B,mBAA7B;AACD;;AAEDlyB,YAAU,CAACuD,kBAAX,GAAgC3B,YAAhC;AACD;AAED;;;;;;;;;AAOA,SAASuwB,2BAAT,CAAqCb,0BAArC,EAAiE;AAC/D,MAAM9kC,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED4lC,2BAAyB,CAAC5lC,OAAD,EAAU,UAAV,CAAzB;AACD;AAED;;;;;;;;;AAOA,SAAS6lC,2BAAT,CAAqCf,0BAArC,EAAiE;AAC/D,MAAM9kC,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED4lC,2BAAyB,CAAC5lC,OAAD,EAAU,UAAV,CAAzB;AACD;AAED;;;;;;;;;AAOA,SAAS4lC,yBAAT,CAAmC5lC,OAAnC,EAA6E;AAAA,MAAjC8lC,kBAAiC,uEAAZ,UAAY;;AAAA,oBACjD79B,2DAAS,CAAC,cAAD,CADwC;AAAA,MACnEa,aADmE,eACnEA,aADmE;;AAE3E,MAAMk8B,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMu4B,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AACA,MAAMk4B,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AAEA,MAAM4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAxB;;AAEA,MAAI,CAACC,eAAL,EAAsB;AACpB;AACD;;AAED,MAAM5pB,mBAAmB,GAAG4pB,eAAe,CAAC5pB,mBAA5C;AACA,MAAM9H,UAAU,GAAG0xB,eAAe,CAAC7pB,WAAhB,CAA4BC,mBAA5B,CAAnB;;AAEA,UAAQwqB,kBAAR;AACE,SAAK,UAAL;AACEtyB,gBAAU,CAACuD,kBAAX;;AAEA,UAAIvD,UAAU,CAACuD,kBAAX,GAAgCjO,aAAa,CAAC48B,mBAAlD,EAAuE;AACrElyB,kBAAU,CAACuD,kBAAX,GAAgC,CAAhC;AACD;;AACD;;AACF,SAAK,UAAL;AACEvD,gBAAU,CAACuD,kBAAX;;AAEA,UAAIvD,UAAU,CAACuD,kBAAX,IAAiC,CAArC,EAAwC;AACtCvD,kBAAU,CAACuD,kBAAX,GAAgCjO,aAAa,CAAC48B,mBAA9C;AACD;;AACD;AAdJ;AAgBD;;;;;;;;;;;;;;ACzJD;AAAA;AAAA;AAAA;AAAA;AACA;IAEQK,a,GAAkCC,mD,CAAlCD,a;IAAeE,c,GAAmBD,mD,CAAnBC,c;AAEvB;;;;;;;;;;;AAUe,SAASC,aAAT,CACbhB,eADa,EAEbzxB,aAFa,EAGb4d,YAHa,EAIb9c,IAJa,EAKbge,OALa,EAMb;AAAA,mBAC0BtqB,2DAAS,CAAC,cAAD,CADnC;AAAA,MACQa,aADR,cACQA,aADR;;AAEA,MAAMq9B,WAAW,GAAG5xB,IAAI,GAAGge,OAA3B;AAEA,MAAM6T,aAAa,GAAGD,WAAW,GAAG9U,YAApC;AAEA,MAAI5c,SAAJ;;AAEA,UAAQ3L,aAAa,CAACu9B,SAAtB;AACE,SAAKN,aAAL;AACEtxB,eAAS,GAAG,IAAI6xB,WAAJ,CACVpB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,EAA2C8yB,MADjC,EAEVH,aAAa,GAAG,CAFN,EAES;AACnBD,iBAHU,CAAZ;AAMA;;AAEF,SAAKF,cAAL;AACExxB,eAAS,GAAG,IAAI+xB,YAAJ,CACVtB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,EAA2C8yB,MADjC,EAEVH,aAAa,GAAG,CAFN,EAES;AACnBD,iBAHU,CAAZ;AAKA;;AAEF;AACE,YAAM,IAAI7R,KAAJ,kCAAoCxrB,aAAa,CAACu9B,SAAlD,EAAN;AAnBJ;;AAsBAnB,iBAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,EAA2CkI,WAA3C,CAAuD0V,YAAvD,IAAuE;AACrE5c,aAAS,EAATA,SADqE;AAErEwC,sBAAkB,EAAE;AAFiD,GAAvE;AAID,C;;;;;;;;;;;;ACvDD;AAAA;AAAA;AAAA;AAAA;AACA;IAEQ8uB,a,GAAkCC,mD,CAAlCD,a;IAAeE,c,GAAmBD,mD,CAAnBC,c;AAEvB;;;;;;;;;AAQe,SAASV,aAAT,CAAuBL,eAAvB,EAAwCzxB,aAAxC,EAAuD6xB,IAAvD,EAA6D;AAAA,mBAChDr9B,2DAAS,CAAC,cAAD,CADuC;AAAA,MAClEa,aADkE,cAClEA,aADkE;;AAE1E,MAAI29B,aAAJ;;AAEA,UAAQ39B,aAAa,CAACu9B,SAAtB;AACE,SAAKN,aAAL;AACEU,mBAAa,GAAG,CAAhB;AAEA;;AAEF,SAAKR,cAAL;AACEQ,mBAAa,GAAG,CAAhB;AACA;;AAEF;AACE,YAAM,IAAInS,KAAJ,kCAAoCxrB,aAAa,CAACu9B,SAAlD,EAAN;AAXJ,GAJ0E,CAkB1E;;;AACAnB,iBAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,IAA6C;AAC3C8yB,UAAM,EAAE,IAAIG,WAAJ,CAAgBpB,IAAI,GAAGmB,aAAvB,CADmC;AAE3C9qB,eAAW,EAAE,EAF8B;AAG3CgrB,YAAQ,EAAE,EAHiC;AAI3C5vB,sBAAkB,EAAE,CAJuB;AAK3CnC,iBAAa,EAAE,CAL4B;AAM3CJ,kBAAc,EAAE,EAN2B;AAO3CoyB,QAAI,EAAE,EAPqC;AAQ3CC,QAAI,EAAE;AARqC,GAA7C;AAUD,C;;;;;;;;;;;;AC1CD;AAAA,IAAMb,WAAW,GAAG;AAClBD,eAAa,EAAE,CADG;AAElBE,gBAAc,EAAE;AAFE,CAApB;AAKeD,0EAAf,E;;;;;;;;;;;;;;;;;;;;;;;;ACLA;AACA;AACA;AAEA,IAAMv8B,MAAM,GAAGC,8DAAS,CAAC,8CAAD,CAAxB;AAEA;;;;;;;;AAOe,SAASo9B,WAAT,CAAqBlyB,aAArB,EAAmD;AAAA,MAAfmyB,QAAe,uEAAJ,EAAI;;AAAA,mBACtC9+B,2DAAS,CAAC,cAAD,CAD6B;AAAA,MACxDa,aADwD,cACxDA,aADwD;;AAEhE,MAAM48B,mBAAmB,GAAG58B,aAAa,CAAC48B,mBAA1C;;AAEA,MAAIqB,QAAJ,EAAc;AACZC,wBAAoB,CAACD,QAAD,EAAWrB,mBAAX,CAApB;;AAEA,QAAIqB,QAAQ,CAACvjC,MAAT,GAAkBkiC,mBAAtB,EAA2C;AACzCqB,cAAQ,6FACHA,QADG,mFAEHE,oBAAoB,CAACvB,mBAAmB,GAAGqB,QAAQ,CAACvjC,MAAhC,CAFjB,EAAR;AAID;AACF,GATD,MASO;AACL;AACAujC,YAAQ,GAAGA,QAAQ,IAAIE,oBAAoB,CAACvB,mBAAD,CAA3C;AACD,GAhB+D,CAkBhE;;;AACAqB,UAAQ,CAACjS,OAAT,CAAiB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAjB;AAEAvxB,gDAAK,CAACoR,cAAN,CAAqBC,aAArB,IAAsCmyB,QAAtC;AACD;AAEM,SAASG,6BAAT,CAAuC1zB,UAAvC,EAAmDoB,aAAnD,EAAkE;AACvEpB,YAAU,CAACoB,aAAX,GAA2BA,aAA3B;AACD;AAEM,SAASuyB,+BAAT,CACLC,yBADK,EAELhyB,YAFK,EAGL;AACA,MAAM2xB,QAAQ,GAAGM,WAAW,CAACD,yBAAD,CAA5B;AAEA,SAAOL,QAAQ,CAAC3xB,YAAD,CAAf;AACD;AAED;;;;;;;;AAOO,SAASkyB,iCAAT,CACLF,yBADK,EAELhyB,YAFK,EAGLmyB,UAHK,EAIL;AACA,MAAMR,QAAQ,GAAGM,WAAW,CAACD,yBAAD,CAA5B;AAEAL,UAAQ,CAAC3xB,YAAD,CAAR,GAAyBmyB,UAAzB;AACD;AAEM,SAASF,WAAT,CAAqBD,yBAArB,EAAgD;AACrD,MAAI,OAAOA,yBAAP,KAAqC,QAAzC,EAAmD;AACjD,WAAO7jC,8CAAK,CAACoR,cAAN,CAAqByyB,yBAArB,CAAP;AACD;;AAED,SAAO7jC,8CAAK,CAACoR,cAAN,CAAqByyB,yBAAyB,CAACxyB,aAA/C,CAAP;AACD;AAED;;;;;;;AAMA,SAASoyB,oBAAT,CAA8BD,QAA9B,EAAwCrB,mBAAxC,EAA6D;AAC3D,MAAIqB,QAAQ,CAACvjC,MAAT,GAAkBkiC,mBAAtB,EAA2C;AACzCj8B,UAAM,CAACmlB,IAAP,+CACyCmY,QAAQ,CAACvjC,MADlD,4DAC0GkiC,mBAD1G;AAGD,GAJD,MAIO,IAAIqB,QAAQ,CAACvjC,MAAT,GAAkBkiC,mBAAtB,EAA2C;AAChDj8B,UAAM,CAACmlB,IAAP,yCACmC8W,mBADnC,kDAC8FqB,QAAQ,CAACvjC,MADvG,+BACkIkiC,mBADlI;AAGD;AACF;AAED;;;;;;;;;AAOA,SAASuB,oBAAT,GAAoD;AAAA,MAAtBO,cAAsB,uEAAL,GAAK;AAClD,MAAMC,MAAM,GAAG,EAAf;;AAEA,OAAK,IAAIjlC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGglC,cAApB,EAAoChlC,CAAC,EAArC,EAAyC;AACvCilC,UAAM,CAACnuB,IAAP,CAAYouB,eAAe,CAACC,UAAU,EAAX,EAAeC,QAAQ,EAAvB,CAA3B;AACD;;AAED,SAAOH,MAAP;AACD;;AAED,IAAMI,WAAW,GAAG,KAApB;AACA,IAAIC,QAAQ,GAAG,KAAf;;AAEA,SAASH,UAAT,GAAsB;AACpBG,UAAQ,IAAID,WAAZ;;AAEA,MAAIC,QAAQ,IAAI,GAAhB,EAAqB;AACnBA,YAAQ,IAAI,GAAZ;AACD;;AAED,SAAOA,QAAP;AACD;;AAED,IAAIrN,CAAC,GAAG,GAAR;AACA,IAAMsN,IAAI,GAAG,IAAb;AACA,IAAMC,IAAI,GAAG,GAAb;AACA,IAAMC,IAAI,GAAG,IAAb;;AAEA,SAASL,QAAT,GAAoB;AAClBnN,GAAC,IAAIwN,IAAL;;AAEA,MAAIxN,CAAC,GAAGsN,IAAR,EAAc;AACZ,QAAMzW,IAAI,GAAGmJ,CAAC,GAAGsN,IAAjB;AAEAtN,KAAC,GAAGuN,IAAI,GAAG1W,IAAX;AACD;;AAED,SAAOmJ,CAAP;AACD;AAED;;;;;;;;;;;AASA,SAASiN,eAAT,CAAyBQ,GAAzB,EAA2D;AAAA,MAA7BC,CAA6B,uEAAzB,CAAyB;AAAA,MAAtB1N,CAAsB,uEAAlB,GAAkB;AAAA,MAAb2N,KAAa,uEAAL,GAAK;AACzD,MAAM9N,CAAC,GAAG,CAAC,IAAIn7B,IAAI,CAACmC,GAAL,CAAS,IAAIm5B,CAAJ,GAAQ,CAAjB,CAAL,IAA4B0N,CAAtC;AACA,MAAM7oC,CAAC,GAAGg7B,CAAC,IAAI,IAAIn7B,IAAI,CAACmC,GAAL,CAAW4mC,GAAG,GAAG,EAAP,GAAa,CAAd,GAAmB,CAA5B,CAAR,CAAX;AACA,MAAMG,CAAC,GAAG5N,CAAC,GAAGH,CAAC,GAAG,CAAlB;AAEA,MAAIgO,CAAJ,EAAOC,CAAP,EAAUjN,CAAV;;AAEA,MAAI4M,GAAG,GAAG,EAAV,EAAc;AACXI,KADW,GACChO,CADD;AACRiO,KADQ,GACIjpC,CADJ;AACLg8B,KADK,GACO,CADP;AAEb,GAFD,MAEO,IAAI4M,GAAG,GAAG,GAAV,EAAe;AACnBI,KADmB,GACPhpC,CADO;AAChBipC,KADgB,GACJjO,CADI;AACbgB,KADa,GACD,CADC;AAErB,GAFM,MAEA,IAAI4M,GAAG,GAAG,GAAV,EAAe;AACnBI,KADmB,GACP,CADO;AAChBC,KADgB,GACJjO,CADI;AACbgB,KADa,GACDh8B,CADC;AAErB,GAFM,MAEA,IAAI4oC,GAAG,GAAG,GAAV,EAAe;AACnBI,KADmB,GACP,CADO;AAChBC,KADgB,GACJjpC,CADI;AACbg8B,KADa,GACDhB,CADC;AAErB,GAFM,MAEA,IAAI4N,GAAG,GAAG,GAAV,EAAe;AACnBI,KADmB,GACPhpC,CADO;AAChBipC,KADgB,GACJ,CADI;AACbjN,KADa,GACDhB,CADC;AAErB,GAFM,MAEA,IAAI4N,GAAG,GAAG,GAAV,EAAe;AACnBI,KADmB,GACPhO,CADO;AAChBiO,KADgB,GACJ,CADI;AACbjN,KADa,GACDh8B,CADC;AAErB;;AAED,SAAO,CAAC,CAACgpC,CAAC,GAAGD,CAAL,IAAU,GAAX,EAAgB,CAACE,CAAC,GAAGF,CAAL,IAAU,GAA1B,EAA+B,CAAC/M,CAAC,GAAG+M,CAAL,IAAU,GAAzC,EAA8CD,KAA9C,CAAP;AACD,C;;;;;;;;;;;;AC3KD;AAAA;AAAA;IAEQrC,a,GAAkBC,mD,CAAlBD,a,EAER;;AACA,IAAMje,oBAAoB,GAAG;AAC3B9e,eAAa,EAAE,IADY;AAE3BD,YAAU,EAAE,IAFe;AAG3ByS,+BAA6B,EAAE,IAHJ;AAI3Btb,QAAM,EAAE,EAJmB;AAK3BsoC,WAAS,EAAE,CALgB;AAM3BC,WAAS,EAAE,EANgB;AAO3Bz0B,WAAS,EAAE,GAPgB;AAQ3BC,mBAAiB,EAAE,GARQ;AAS3BC,cAAY,EAAE,GATa;AAU3BC,sBAAoB,EAAE,IAVK;AAW3ByC,cAAY,EAAE,CAXa;AAY3B8xB,cAAY,EAAE,IAZa;AAa3BhD,qBAAmB,EAAE,KAbM;AAaC;AAC5BW,WAAS,EAAEN;AAdgB,CAA7B;AAiBeje,mFAAf,E;;;;;;;;;;;;ACtBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;;;;;;;;;;AASe,SAAS6gB,aAAT,CACb7D,0BADa,EAEb1vB,YAFa,EAGb3B,aAHa,EAIb;AACA,MAAI,CAAC2B,YAAL,EAAmB;AACjB;AACD;;AAED,MAAMpV,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMglC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMu4B,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AACA,MAAMk4B,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AAEA,MAAM4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAxB;;AAEA,MAAI,CAACC,eAAL,EAAsB;AACpB;AACD;;AAEDzxB,eAAa,GACXA,aAAa,KAAKhU,SAAlB,GACIylC,eAAe,CAAC5pB,mBADpB,GAEI7H,aAHN;AAKA,MAAMD,UAAU,GAAG0xB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,CAAnB;;AAEA,MAAI,CAACD,UAAL,EAAiB;AACf;AACD,GA9BD,CAgCA;;;AACA,SAAOA,UAAU,CAACmzB,QAAX,CAAoBvxB,YAApB,CAAP;AAEA,MAAMuG,WAAW,GAAGnI,UAAU,CAACmI,WAA/B,CAnCA,CAqCA;;AACA,OAAK,IAAInZ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmZ,WAAW,CAACnY,MAAhC,EAAwChB,CAAC,EAAzC,EAA6C;AAC3C,QAAMkR,UAAU,GAAGiI,WAAW,CAACnZ,CAAD,CAA9B,CAD2C,CAG3C;;AACA,QAAIkR,UAAU,IAAIA,UAAU,CAACuD,kBAAX,CAA8BlL,QAA9B,CAAuCqJ,YAAvC,CAAlB,EAAwE;AACtE,UAAMX,SAAS,GAAGf,UAAU,CAACe,SAA7B,CADsE,CAGtE;;AACA,UAAMm0B,cAAc,GAAGl1B,UAAU,CAACuD,kBAAX,CAA8B2jB,OAA9B,CACrBxlB,YADqB,CAAvB;AAIA1B,gBAAU,CAACuD,kBAAX,CAA8BkkB,MAA9B,CAAqCyN,cAArC,EAAqD,CAArD,EARsE,CAUtE;;AACA,WAAK,IAAIllC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+Q,SAAS,CAACjR,MAA9B,EAAsCE,CAAC,EAAvC,EAA2C;AACzC,YAAI+Q,SAAS,CAAC/Q,CAAD,CAAT,KAAiB0R,YAArB,EAAmC;AACjCX,mBAAS,CAAC/Q,CAAD,CAAT,GAAe,CAAf;AACD;AACF;AACF;AACF;;AAEDtD,0DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD,C;;;;;;;;;;;;AChFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AAEA,IAAMyJ,MAAM,GAAGC,8DAAS,CAAC,gDAAD,CAAxB;AAEA;;;;;;;;;;AASe,SAASm/B,aAAT,CACb/D,0BADa,EAGb;AAAA,MADAgE,OACA,uEADU,KACV;AACA,MAAM9oC,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMglC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;;AAEA,MAAI,CAACglC,UAAL,EAAiB;AACfv7B,UAAM,CAACorB,KAAP,CACE,+FADF;AAIA;AACD;;AAED,MAAM0D,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AACA,MAAMk4B,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AAEA,MAAM4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAxB;AAEA,MAAInmC,KAAJ;;AAEA,MAAIomC,eAAJ,EAAqB;AACnB,QAAM5pB,mBAAmB,GAAG4pB,eAAe,CAAC5pB,mBAA5C;AACA,QAAM9H,UAAU,GAAG0xB,eAAe,CAAC7pB,WAAhB,CAA4BC,mBAA5B,CAAnB;AAEA,QAAMvE,kBAAkB,GAAGvD,UAAU,CAACuD,kBAAtC;AAEAjY,SAAK,GAAGyE,8CAAK,CAACoR,cAAN,CAAqBnB,UAAU,CAACoB,aAAhC,EAA+CmC,kBAA/C,CAAR;AACD,GAPD,MAOO;AACL;AACAjY,SAAK,GAAGyE,8CAAK,CAACoR,cAAN,CAAqB,CAArB,EAAwB,CAAxB,CAAR;AACD;;AAED,SAAOm0B,OAAO,kBACFhqC,KAAK,CAAC,CAAD,CADH,eACWA,KAAK,CAAC,CAAD,CADhB,eACwBA,KAAK,CAAC,CAAD,CAD7B,8BAEFA,KAAK,CAAC,CAAD,CAFH,eAEWA,KAAK,CAAC,CAAD,CAFhB,eAEwBA,KAAK,CAAC,CAAD,CAF7B,YAAd;AAGD,C;;;;;;;;;;;;AC3DD;AAAA;AAAA;AAAA;AAEA;;;;;;;;AAOe,SAASiqC,WAAT,CAAqBjE,0BAArB,EAAiD;AAC9D,MAAIA,0BAA0B,YAAYkE,WAA1C,EAAuD;AACrD,WAAOlE,0BAAP;AACD;;AAED,SAAOmE,iDAAY,CAACnH,mBAAb,CAAiCgD,0BAAjC,CAAP;AACD,C;;;;;;;;;;;;ACfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAEQiB,a,GAAkCC,mD,CAAlCD,a;IAAeE,c,GAAmBD,mD,CAAnBC,c;AAEvB,IAAMx8B,MAAM,GAAGC,8DAAS,CAAC,gDAAD,CAAxB;AAEA;;;;;;;;;;AASe,SAASw/B,aAAT,CAAuBpE,0BAAvB,EAAmD;AAChE,MAAM9kC,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMK,WAAW,GAAGD,wDAAQ,CAACC,WAA7B;AACA,MAAM2kC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;;AAEA,MAAI,CAACglC,UAAL,EAAiB;AACfv7B,UAAM,CAACorB,KAAP,CACE,+FADF;AAIA;AACD;;AAED,MAAM0D,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AAEA,MAAMgN,cAAc,GAAG1Z,WAAW,CAAC2Z,iBAAZ,CAA8Bha,OAA9B,CAAvB;AAEA,MAAMub,mBAAmB,GAAGgd,SAAS,CAAChd,mBAAtC;AAtBgE,8BAuBtCxB,cAAc,CAAC9L,KAvBuB;AAAA,MAuBxDsG,IAvBwD,yBAuBxDA,IAvBwD;AAAA,MAuBlDge,OAvBkD,yBAuBlDA,OAvBkD;AAyBhE,MAAM8S,cAAc,GAAG9M,SAAS,CAACjC,QAAV,CAAmB9yB,MAA1C;AACA,MAAMyhC,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AAEA,MAAI4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAtB;AAEA,MAAI3pB,mBAAJ;;AAEA,MAAI4pB,eAAJ,EAAqB;AACnB5pB,uBAAmB,GAAG4pB,eAAe,CAAC5pB,mBAAtC;;AAEA,QAAI,CAAC4pB,eAAe,CAAC7pB,WAAhB,CAA4BC,mBAA5B,CAAL,EAAuD;AACrD,UAAMgqB,IAAI,GAAG/wB,IAAI,GAAGge,OAAP,GAAiB8S,cAA9B;AAEAE,oEAAa,CAACL,eAAD,EAAkB5pB,mBAAlB,EAAuCgqB,IAAvC,CAAb;AACD;;AAED,QACE,CAACJ,eAAe,CAAC7pB,WAAhB,CAA4BC,mBAA5B,EAAiDK,WAAjD,CACCJ,mBADD,CADH,EAIE;AACA2qB,oEAAa,CACXhB,eADW,EAEX5pB,mBAFW,EAGXC,mBAHW,EAIXhH,IAJW,EAKXge,OALW,CAAb;AAOD;AACF,GAtBD,MAsBO;AACLjX,uBAAmB,GAAG,CAAtB;AAEA/X,kDAAK,CAAC4hC,MAAN,CAAaF,YAAb,IAA6B;AAC3B3pB,yBAAmB,EAAnBA,mBAD2B;AAE3BD,iBAAW,EAAE;AAFc,KAA7B;AAKA6pB,mBAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAlB;;AAEA,QAAMK,KAAI,GAAG/wB,IAAI,GAAGge,OAAP,GAAiB8S,cAA9B;;AAEAE,kEAAa,CAACL,eAAD,EAAkB5pB,mBAAlB,EAAuCgqB,KAAvC,CAAb;AAEAY,kEAAa,CACXhB,eADW,EAEX5pB,mBAFW,EAGXC,mBAHW,EAIXhH,IAJW,EAKXge,OALW,CAAb;AAOD;;AAED,MAAM/e,UAAU,GAAG0xB,eAAe,CAAC7pB,WAAhB,CAA4BC,mBAA5B,CAAnB;AAEA,SAAO;AACL5H,cAAU,EAAEF,UAAU,CAACmI,WAAX,CAAuBJ,mBAAvB,CADP;AAEL/H,cAAU,EAAVA,UAFK;AAGL+H,uBAAmB,EAAnBA,mBAHK;AAILD,uBAAmB,EAAnBA;AAJK,GAAP;AAMD;AAED;;;;;;;;;;;AAUO,SAAS6tB,2BAAT,CACL31B,UADK,EAEL6d,YAFK,EAGL9c,IAHK,EAILge,OAJK,EAKL;AACA,MAAI,CAAC/e,UAAU,CAACmI,WAAX,CAAuB0V,YAAvB,CAAL,EAA2C;AAAA,qBACfppB,2DAAS,CAAC,cAAD,CADM;AAAA,QACjCa,aADiC,cACjCA,aADiC;;AAEzC,QAAMq9B,WAAW,GAAG5xB,IAAI,GAAGge,OAA3B;AAEA,QAAM6T,aAAa,GAAGD,WAAW,GAAG9U,YAApC;AAEA,QAAI5c,SAAJ;;AAEA,YAAQ3L,aAAa,CAACu9B,SAAtB;AACE,WAAKN,aAAL;AACEtxB,iBAAS,GAAG,IAAI6xB,WAAJ,CACV9yB,UAAU,CAAC+yB,MADD,EAEVH,aAAa,GAAG,CAFN,EAES;AACnBD,mBAHU,CAAZ;AAMA;;AAEF,WAAKF,cAAL;AACExxB,iBAAS,GAAG,IAAI+xB,YAAJ,CACVhzB,UAAU,CAAC+yB,MADD,EAEVH,aAAa,GAAG,CAFN,EAES;AACnBD,mBAHU,CAAZ;AAKA;;AAEF;AACE,cAAM,IAAI7R,KAAJ,kCAAoCxrB,aAAa,CAACu9B,SAAlD,EAAN;AAnBJ;;AAsBA7yB,cAAU,CAACmI,WAAX,CAAuB0V,YAAvB,IAAuC;AACrC5c,eAAS,EAATA,SADqC;AAErCwC,wBAAkB,EAAEmyB,uEAAsB,CAAC30B,SAAD;AAFL,KAAvC;AAID;;AAED,SAAOjB,UAAU,CAACmI,WAAX,CAAuB0V,YAAvB,CAAP;AACD,C;;;;;;;;;;;;ACpKD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;IAEQ0U,a,GAAkCC,mD,CAAlCD,a;IAAeE,c,GAAmBD,mD,CAAnBC,c;AAEvB;;;;;;;;;;;;;AAYA,SAASoD,kBAAT,CAA4BvE,0BAA5B,EAAwDrxB,aAAxD,EAAuE;AACrE,MAAMzT,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AALoE,wBAO7CspC,+DAAc,CAACtpC,OAAD,CAP+B;AAAA,MAO7Dqb,WAP6D,mBAO7DA,WAP6D;;AASrE,MAAI,CAACA,WAAL,EAAkB;AAChB,WAAO,EAAP;AACD;;AAXoE,mBAa3CpT,2DAAS,CAAC,cAAD,CAbkC;AAAA,MAa7Da,aAb6D,cAa7DA,aAb6D;;AAerE,MAAI2G,IAAJ;AACA,MAAIg3B,aAAJ;;AAEA,UAAQ39B,aAAa,CAACu9B,SAAtB;AACE,SAAKN,aAAL;AACEt2B,UAAI,GAAG,aAAP;AACAg3B,mBAAa,GAAG,GAAhB;AAEA;;AAEF,SAAKR,cAAL;AACEx2B,UAAI,GAAG,cAAP;AACAg3B,mBAAa,GAAG,GAAhB;AACA;;AAEF;AACE,YAAM,IAAInS,KAAJ,kCAAoCxrB,aAAa,CAACu9B,SAAlD,EAAN;AAbJ;;AAgBA,MAAM1xB,cAAc,GAAGpR,8CAAK,CAACoR,cAA7B;;AAEA,MAAIlB,aAAa,KAAKhU,SAAtB,EAAiC;AAC/B,QAAM+T,UAAU,GAAG6H,WAAW,CAAC5H,aAAD,CAA9B;;AAEA,QAAID,UAAJ,EAAgB;AACd,aAAO;AACLC,qBAAa,EAAbA,aADK;AAELgzB,qBAAa,EAAbA,aAFK;AAGLh3B,YAAI,EAAJA,IAHK;AAIL82B,cAAM,EAAE/yB,UAAU,CAAC+yB,MAJd;AAKLQ,gBAAQ,EAAEpyB,cAAc,CAACnB,UAAU,CAACoB,aAAZ;AALnB,OAAP;AAOD;;AAED;AACD;;AAED,MAAM20B,eAAe,GAAG,EAAxB;;AAEA,OAAK,IAAI/mC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6Y,WAAW,CAAC7X,MAAhC,EAAwChB,CAAC,EAAzC,EAA6C;AAC3C,QAAMgR,WAAU,GAAG6H,WAAW,CAAC7Y,CAAD,CAA9B;;AAEA,QAAIgR,WAAJ,EAAgB;AACd+1B,qBAAe,CAACjwB,IAAhB,CAAqB;AACnB7F,qBAAa,EAAEjR,CADI;AAEnBikC,qBAAa,EAAE,CAFI;AAGnBF,cAAM,EAAE/yB,WAAU,CAAC+yB,MAHA;AAInBQ,gBAAQ,EAAEpyB,cAAc,CAACnB,WAAU,CAACoB,aAAZ;AAJL,OAArB;AAMD;AACF;;AAED,SAAO20B,eAAP;AACD;AAED;;;;;;;;;;;AASA,SAASC,uBAAT,CAAiC1E,0BAAjC,EAA6D;AAC3D,MAAM9kC,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMglC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMs2B,QAAQ,GAAG0O,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,EAAmBupB,QAApC;AACA,MAAM2O,YAAY,GAAG3O,QAAQ,CAAC,CAAD,CAA7B;AAEA,MAAM4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAxB;;AAEA,MAAI,CAACC,eAAL,EAAsB;AACpB;AACD;;AAED,MAAM5pB,mBAAmB,GAAG4pB,eAAe,CAAC5pB,mBAA5C;AAEA,SAAO+tB,kBAAkB,CAACrpC,OAAD,EAAUsb,mBAAV,CAAzB;AACD;;;;;;;;;;;;;;ACxHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AAEA,IAAM7R,MAAM,GAAGC,8DAAS,CAAC,mDAAD,CAAxB;AAEA;;;;;;;;;;;;;;AAae,SAAS+/B,gBAAT,CACb3E,0BADa,EAEb1vB,YAFa,EAGb3B,aAHa,EAIb;AACA,MAAMpT,WAAW,GAAGD,wDAAQ,CAACC,WAA7B;AACA,MAAML,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ,WAAO,IAAP;AACD;;AAED,MAAMglC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMs2B,QAAQ,GAAG0O,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,EAAmBupB,QAApC;AACA,MAAM2O,YAAY,GAAG3O,QAAQ,CAAC,CAAD,CAA7B;AAEA,SAAO,IAAIoT,OAAJ,CAAY,UAAAC,OAAO,EAAI;AAC5B,QAAMzE,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAxB;;AAEA,QAAI,CAACC,eAAL,EAAsB;AACpByE,aAAO,CAAC,IAAD,CAAP;AACD;;AAL2B,2BAOgBC,eAAe,CAACtT,QAAD,CAP/B;AAAA,QAOpBuT,kBAPoB,oBAOpBA,kBAPoB;AAAA,QAOAC,WAPA,oBAOAA,WAPA;;AAS5B,QAAI,CAACD,kBAAL,EAAyB;AACvBpgC,YAAM,CAACmlB,IAAP,CACE,2EADF;AAGA+a,aAAO,CAAC,IAAD,CAAP;AACD;;AAEDl2B,iBAAa,GACXA,aAAa,KAAKhU,SAAlB,GACIylC,eAAe,CAAC5pB,mBADpB,GAEI7H,aAHN;AAKA,QAAMD,UAAU,GAAG0xB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,CAAnB;AAEA,QAAMs2B,aAAa,GAAG,EAAtB;;AAEA,SAAK,IAAIvnC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8zB,QAAQ,CAAC9yB,MAA7B,EAAqChB,CAAC,EAAtC,EAA0C;AACxCunC,mBAAa,CAACzwB,IAAd,CAAmBjZ,WAAW,CAACk1B,iBAAZ,CAA8Be,QAAQ,CAAC9zB,CAAD,CAAtC,CAAnB;AACD;;AAEDknC,WAAO,CAACM,GAAR,CAAYD,aAAZ,EAA2BnV,IAA3B,CAAgC,UAAAqV,MAAM,EAAI;AACxC,UAAMC,KAAK,GAAGC,uBAAuB,CACnC32B,UADmC,EAEnCy2B,MAFmC,EAGnCH,WAHmC,EAInC10B,YAJmC,CAArC;;AAOAu0B,aAAO,CAACO,KAAD,CAAP;AACD,KATD;AAUD,GAvCM,CAAP;AAwCD;AAED;;;;;;;AAMA,SAASN,eAAT,CAAyBtT,QAAzB,EAAmC;AACjC,MAAMwT,WAAW,GAAG,EAApB;AACA,MAAMzpC,WAAW,GAAGD,wDAAQ,CAACC,WAA7B;AACA,MAAM+pC,gBAAgB,GAAG/pC,WAAW,CAACgqC,QAArC;AAEA,MAAIR,kBAAkB,GAAG,IAAzB;;AAEA,OAAK,IAAIrnC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8zB,QAAQ,CAAC9yB,MAA7B,EAAqChB,CAAC,EAAtC,EAA0C;AACxC,QAAM8nC,gBAAgB,GAAGF,gBAAgB,CAAC/M,GAAjB,CACvB,kBADuB,EAEvB/G,QAAQ,CAAC9zB,CAAD,CAFe,CAAzB;;AAKA,QAAI,CAAC8nC,gBAAL,EAAuB;AACrBT,wBAAkB,GAAG,KAArB;AACA;AACD;;AAEDC,eAAW,CAACxwB,IAAZ,CAAiBgxB,gBAAjB;AACD;;AAED,SAAO;AAAET,sBAAkB,EAAlBA,kBAAF;AAAsBC,eAAW,EAAXA;AAAtB,GAAP;AACD;AAED;;;;;;;;;;;;AAUO,SAASK,uBAAT,CACL32B,UADK,EAELy2B,MAFK,EAGLH,WAHK,EAIL10B,YAJK,EAKL;AACA,MAAMm1B,cAAc,GAAGC,4BAA4B,CACjDh3B,UADiD,EAEjDy2B,MAFiD,EAGjDH,WAHiD,EAIjD10B,YAJiD,CAAnD;;AAOA,MAAIq1B,kBAAkB,GAAG,CAAzB;AACA,MAAIpkC,GAAG,GAAGkkC,cAAc,CAAC,CAAD,CAAd,CAAkBG,MAAlB,CAAyB,CAAzB,CAAV;AACA,MAAI/oC,GAAG,GAAG0E,GAAV;AACA,MAAIskC,MAAM,GAAG,CAAb,CAXA,CAaA;;AACA,OAAK,IAAInoC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+nC,cAAc,CAAC/mC,MAAnC,EAA2ChB,CAAC,EAA5C,EAAgD;AAAA,4BACf+nC,cAAc,CAAC/nC,CAAD,CADC;AAAA,QACtCkoC,MADsC,qBACtCA,MADsC;AAAA,QAC9BE,UAD8B,qBAC9BA,UAD8B;AAG9CD,UAAM,IAAIC,UAAU,GAAGF,MAAM,CAAClnC,MAA9B;AAEA,QAAI8zB,GAAG,GAAG,CAAV;AAEAoT,UAAM,CAAC9mC,OAAP,CAAe,UAAAkrB,KAAK,EAAI;AACtB,UAAIA,KAAK,GAAGzoB,GAAZ,EAAiB;AACfA,WAAG,GAAGyoB,KAAN;AACD,OAFD,MAEO,IAAIA,KAAK,GAAGntB,GAAZ,EAAiB;AACtBA,WAAG,GAAGmtB,KAAN;AACD;;AAEDwI,SAAG,IAAIxI,KAAP;AACD,KARD;AAUA2b,sBAAkB,IAAInT,GAAG,GAAGsT,UAA5B;AACD;;AAEDH,oBAAkB,IAAIE,MAAtB;AAEA,MAAIE,mBAAmB,GAAG,CAA1B,CApCA,CAsCA;;AACA,OAAK,IAAIroC,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAG+nC,cAAc,CAAC/mC,MAAnC,EAA2ChB,EAAC,EAA5C,EAAgD;AAAA,6BACf+nC,cAAc,CAAC/nC,EAAD,CADC;AAAA,QACtCkoC,MADsC,sBACtCA,MADsC;AAAA,QAC9BE,UAD8B,sBAC9BA,UAD8B;AAG9C,QAAIE,SAAS,GAAG,CAAhB;AAEAJ,UAAM,CAAC9mC,OAAP,CAAe,UAAAkrB,KAAK,EAAI;AACtBgc,eAAS,IAAI3rC,IAAI,CAAC4rC,GAAL,CAASjc,KAAK,GAAG2b,kBAAjB,EAAqC,CAArC,CAAb;AACD,KAFD;AAIAI,uBAAmB,IAAIC,SAAS,GAAGF,UAAnC;AACD;;AAEDC,qBAAmB,IAAIF,MAAvB;AACAE,qBAAmB,GAAG1rC,IAAI,CAACmf,IAAL,CAAUusB,mBAAV,CAAtB;AAEA,SAAO;AACLF,UAAM,EAANA,MADK;AAELK,QAAI,EAAEP,kBAFD;AAGLQ,UAAM,EAAEJ,mBAHH;AAILxkC,OAAG,EAAHA,GAJK;AAKL1E,OAAG,EAAHA;AALK,GAAP;AAOD;AAED;;;;;;;;;;;;AAWA,SAAS6oC,4BAAT,CACEh3B,UADF,EAEEy2B,MAFF,EAGEH,WAHF,EAIE10B,YAJF,EAKE;AAAA,iBACgD60B,MAAM,CAAC,CAAD,CADtD;AAAA,MACQzzB,eADR,YACQA,eADR;AAAA,MACyBC,kBADzB,YACyBA,kBADzB;AAEA,MAAMkF,WAAW,GAAGnI,UAAU,CAACmI,WAA/B;AACA,MAAM4uB,cAAc,GAAG,EAAvB;;AAEA,OAAK,IAAI/nC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmZ,WAAW,CAACnY,MAAhC,EAAwChB,CAAC,EAAzC,EAA6C;AAC3C,QAAMkR,UAAU,GAAGiI,WAAW,CAACnZ,CAAD,CAA9B;;AAEA,QAAIkR,UAAU,IAAIA,UAAU,CAACuD,kBAAX,CAA8BlL,QAA9B,CAAuCqJ,YAAvC,CAAlB,EAAwE;AACtE,UAAM81B,cAAc,GAAGC,kBAAkB,CAAClB,MAAD,EAASH,WAAT,EAAsBtnC,CAAtB,CAAzC;;AACA,UAAMooC,UAAU,GAAGM,cAAc,GAAG10B,eAAjB,GAAmCC,kBAAtD;AACA,UAAM20B,qBAAqB,GAAG13B,UAAU,CAACe,SAAzC;AACA,UAAM42B,cAAc,GAAGpB,MAAM,CAACznC,CAAD,CAAN,CAAU8oC,YAAV,EAAvB;AACA,UAAMZ,MAAM,GAAG,EAAf,CALsE,CAOtE;;AACA,WAAK,IAAIhnC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0nC,qBAAqB,CAAC5nC,MAA1C,EAAkDE,CAAC,EAAnD,EAAuD;AACrD,YAAI0nC,qBAAqB,CAAC1nC,CAAD,CAArB,KAA6B0R,YAAjC,EAA+C;AAC7Cs1B,gBAAM,CAACpxB,IAAP,CAAY+xB,cAAc,CAAC3nC,CAAD,CAA1B;AACD;AACF;;AAED6mC,oBAAc,CAACjxB,IAAf,CAAoB;AAClBsxB,kBAAU,EAAVA,UADkB;AAElBF,cAAM,EAANA;AAFkB,OAApB;AAID;AACF;;AAED,SAAOH,cAAP;AACD;AAED;;;;;;;;;;;;;;;AAaA,SAASY,kBAAT,CAA4BlB,MAA5B,EAAoCH,WAApC,EAAiDyB,UAAjD,EAA6D;AAC3D,MAAMC,cAAc,GAAGvB,MAAM,CAACzmC,MAA9B;AACA,MAAMioC,GAAG,GAAG3B,WAAW,CAACyB,UAAD,CAAX,CAAwBG,oBAApC,CAF2D,CAI3D;AACA;;AACA,MAAIH,UAAU,KAAK,CAAnB,EAAsB;AACpB,QAAMI,SAAQ,GAAG7B,WAAW,CAACyB,UAAU,GAAG,CAAd,CAAX,CAA4BG,oBAA7C;AAEA,WAAOE,qBAAqB,CAACH,GAAD,EAAME,SAAN,CAA5B;AACD,GAJD,MAIO,IAAIJ,UAAU,KAAKC,cAAc,GAAG,CAApC,EAAuC;AAC5C,QAAMK,SAAQ,GAAG/B,WAAW,CAACyB,UAAU,GAAG,CAAd,CAAX,CAA4BG,oBAA7C;AAEA,WAAOE,qBAAqB,CAACH,GAAD,EAAMI,SAAN,CAA5B;AACD,GAd0D,CAgB3D;;;AACA,MAAMA,QAAQ,GAAG/B,WAAW,CAACyB,UAAU,GAAG,CAAd,CAAX,CAA4BG,oBAA7C;AACA,MAAMC,QAAQ,GAAG7B,WAAW,CAACyB,UAAU,GAAG,CAAd,CAAX,CAA4BG,oBAA7C;AAEA,SACE,CAACE,qBAAqB,CAACH,GAAD,EAAMI,QAAN,CAArB,GACCD,qBAAqB,CAACH,GAAD,EAAME,QAAN,CADvB,IAEA,CAHF;AAKD;AAED;;;;;;;;AAMA,SAASC,qBAAT,CAA+BE,IAA/B,EAAqCC,IAArC,EAA2C;AACzC,SAAO5sC,IAAI,CAACmf,IAAL,CACLnf,IAAI,CAAC4rC,GAAL,CAASe,IAAI,CAAC,CAAD,CAAJ,GAAUC,IAAI,CAAC,CAAD,CAAvB,EAA4B,CAA5B,IACE5sC,IAAI,CAAC4rC,GAAL,CAASe,IAAI,CAAC,CAAD,CAAJ,GAAUC,IAAI,CAAC,CAAD,CAAvB,EAA4B,CAA5B,CADF,GAEE5sC,IAAI,CAAC4rC,GAAL,CAASe,IAAI,CAAC,CAAD,CAAJ,GAAUC,IAAI,CAAC,CAAD,CAAvB,EAA4B,CAA5B,CAHG,CAAP;AAKD,C;;;;;;;;;;;;AChSD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AAEA,IAAMtiC,MAAM,GAAGC,8DAAS,CAAC,iDAAD,CAAxB;AAEA;;;;;;;;;;AASe,SAAS4/B,cAAT,CAAwBxE,0BAAxB,EAAoD;AACjE,MAAM9kC,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMglC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;;AAEA,MAAI,CAACglC,UAAL,EAAiB;AACfv7B,UAAM,CAACorB,KAAP,CACE,+FADF;AAIA;AACD;;AAED,MAAM0D,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AAEA,MAAMk4B,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AACA,MAAM4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAxB;AAEA,MAAI5pB,WAAJ;AACA,MAAIC,mBAAJ;;AAEA,MAAI4pB,eAAJ,EAAqB;AACnB7pB,eAAW,GAAG6pB,eAAe,CAAC7pB,WAA9B;AACAC,uBAAmB,GAAG4pB,eAAe,CAAC5pB,mBAAtC;AACD;;AAED,SAAO;AACLD,eAAW,EAAXA,WADK;AAELC,uBAAmB,EAAnBA,mBAFK;AAGLC,uBAAmB,EAAEgd,SAAS,CAAChd;AAH1B,GAAP;AAKD;AAED;;;;;;;;;;;AAUO,SAASywB,aAAT,CAAuBlH,0BAAvB,EAAmDrxB,aAAnD,EAAkE;AAAA,wBAC1B61B,cAAc,CACzDxE,0BADyD,CADY;AAAA,MAC/DzpB,WAD+D,mBAC/DA,WAD+D;AAAA,MAClDC,mBADkD,mBAClDA,mBADkD;;AAKvE7H,eAAa,GACXA,aAAa,KAAKhU,SAAlB,GAA8BgU,aAA9B,GAA8C6H,mBADhD;AAGA,SAAOD,WAAW,CAAC5H,aAAD,CAAlB;AACD,C;;;;;;;;;;;;ACzED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AAEA,IAAMhK,MAAM,GAAGC,8DAAS,CACtB,oEADsB,CAAxB;AAIA;;;;;;;AAMe,SAASuiC,iCAAT,CAA2C9jC,GAA3C,EAAgD;AAC7D,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD6D,MAErDrI,OAFqD,GAEnBoI,SAFmB,CAErDpI,OAFqD;AAAA,MAE5CiO,KAF4C,GAEnB7F,SAFmB,CAE5C6F,KAF4C;AAAA,MAErC3C,aAFqC,GAEnBlD,SAFmB,CAErCkD,aAFqC;;AAI7D,MAAI,CAACA,aAAL,EAAoB;AAClB7B,UAAM,CAACmlB,IAAP,CAAY,gCAAZ;AAEA;AACD;;AAED,MAAMta,IAAI,GAAGrG,KAAK,CAACnN,KAAnB;AACA,MAAMyT,IAAI,GAAGtG,KAAK,CAACjN,MAAnB;;AAEA,MAAI,CAAChB,OAAL,EAAc;AACZ;AACD;;AAED,MAAMglC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMu4B,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AACA,MAAMwO,mBAAmB,GAAGgd,SAAS,CAAChd,mBAAtC;AACA,MAAM0pB,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AACA,MAAM4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAxB;AAEA,MAAM3pB,mBAAmB,GAAG4pB,eAAe,CAAC5pB,mBAA5C;AAEA,MAAM9H,UAAU,GAAG0xB,eAAe,CAAC7pB,WAAhB,CAA4BC,mBAA5B,CAAnB;;AAEA,MAAI,CAAC9H,UAAL,EAAiB;AACf;AACA;AACD;;AAED,MAAME,UAAU,GAAGF,UAAU,CAACmI,WAAX,CAAuBJ,mBAAvB,CAAnB;;AAEA,MAAI,CAAC7H,UAAL,EAAiB;AACf;AACA;AACD;;AAED,MAAMe,SAAS,GAAGf,UAAU,CAACe,SAA7B;AAvC6D,6BAyC9CnJ,aAAa,CAAC2C,KAzCgC;AAAA,MAyCvD3O,CAzCuD,wBAyCvDA,CAzCuD;AAAA,MAyCpDD,CAzCoD,wBAyCpDA,CAzCoD;AA2C7DC,GAAC,GAAGH,IAAI,CAACkY,KAAL,CAAW/X,CAAX,CAAJ;AACAD,GAAC,GAAGF,IAAI,CAACkY,KAAL,CAAWhY,CAAX,CAAJ;;AAEA,MAAI2sB,oEAAc,CAAC;AAAE1sB,KAAC,EAADA,CAAF;AAAKD,KAAC,EAADA;AAAL,GAAD,EAAWkV,IAAX,EAAiBD,IAAjB,CAAlB,EAA0C;AACxC,QAAMc,YAAY,GAAGX,SAAS,CAACpV,CAAC,GAAGiV,IAAJ,GAAWhV,CAAZ,CAA9B;;AAEA,QAAI8V,YAAY,KAAK,CAArB,EAAwB;AACtB;AACD;;AAED,WAAO;AACLA,kBAAY,EAAZA,YADK;AAELuxB,cAAQ,EAAEnzB,UAAU,CAACmzB,QAAX,CAAoBvxB,YAApB;AAFL,KAAP;AAID,GAzD4D,CA2D7D;;;AACA;AACD,C;;;;;;;;;;;;AC7ED;AAAA;AAAA;;;;AAIe,SAASg0B,sBAAT,CAAgC30B,SAAhC,EAA2C;AACxD,MAAMy3B,UAAU,GAAG,IAAIC,GAAJ,CAAQ13B,SAAR,CAAnB;AACA,MAAM23B,QAAQ,GAAGF,UAAU,CAACxB,MAAX,EAAjB;AAEA,MAAMzzB,kBAAkB,GAAG,EAA3B;AACA,MAAIo1B,IAAI,GAAG,KAAX;;AAEA,SAAO,CAACA,IAAR,EAAc;AACZ,QAAMC,IAAI,GAAGF,QAAQ,CAACE,IAAT,EAAb;AAEAD,QAAI,GAAGC,IAAI,CAACD,IAAZ;;AAEA,QAAI,CAACA,IAAL,EAAW;AACTp1B,wBAAkB,CAACqC,IAAnB,CAAwBgzB,IAAI,CAACxd,KAA7B;AACD;AACF;;AAED,SAAO7X,kBAAP;AACD,C;;;;;;;;;;;;ACtBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA,IAAMxN,MAAM,GAAGC,8DAAS,CAAC,qCAAD,CAAxB;;AAEA,SAAS8nB,SAAT,CAAmBxxB,OAAnB,EAA4BusC,UAA5B,EAAwC94B,aAAxC,EAAuD;AACrD,MAAMD,UAAU,GAAGw4B,qEAAa,CAAChsC,OAAD,EAAUyT,aAAV,CAAhC;AAEAD,YAAU,CAACozB,IAAX,CAAgBttB,IAAhB,CAAqBizB,UAArB;AACA/4B,YAAU,CAACqzB,IAAX,GAAkB,EAAlB;AACD;;AAED,SAASD,IAAT,CAAc5mC,OAAd,EAAuByT,aAAvB,EAAsC;AACpC,MAAMD,UAAU,GAAGw4B,qEAAa,CAAChsC,OAAD,EAAUyT,aAAV,CAAhC;AADoC,MAE5BmzB,IAF4B,GAEbpzB,UAFa,CAE5BozB,IAF4B;AAAA,MAEtBC,IAFsB,GAEbrzB,UAFa,CAEtBqzB,IAFsB;;AAIpC,MAAI,CAACD,IAAI,CAACpjC,MAAV,EAAkB;AAChBiG,UAAM,CAACmlB,IAAP,CAAY,gBAAZ;AAEA;AACD,GARmC,CAUpC;;;AACA,MAAM2d,UAAU,GAAG3F,IAAI,CAAC4F,GAAL,EAAnB,CAXoC,CAapC;;AACAC,YAAU,CAACj5B,UAAD,EAAa+4B,UAAb,EAAyB,CAAzB,CAAV,CAdoC,CAgBpC;;AACA1F,MAAI,CAACvtB,IAAL,CAAUizB,UAAV;AAEAnsC,0DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;;AAED,SAAS6mC,IAAT,CAAc7mC,OAAd,EAAuByT,aAAvB,EAAsC;AACpC,MAAMD,UAAU,GAAGw4B,qEAAa,CAAChsC,OAAD,EAAUyT,aAAV,CAAhC;AADoC,MAE5BmzB,IAF4B,GAEbpzB,UAFa,CAE5BozB,IAF4B;AAAA,MAEtBC,IAFsB,GAEbrzB,UAFa,CAEtBqzB,IAFsB;;AAIpC,MAAI,CAACA,IAAI,CAACrjC,MAAV,EAAkB;AAChBiG,UAAM,CAACmlB,IAAP,CAAY,gBAAZ;AAEA;AACD,GARmC,CAUpC;;;AACA,MAAM2d,UAAU,GAAG1F,IAAI,CAAC2F,GAAL,EAAnB,CAXoC,CAapC;;AACAC,YAAU,CAACj5B,UAAD,EAAa+4B,UAAb,EAAyB,CAAzB,CAAV,CAdoC,CAgBpC;;AACA3F,MAAI,CAACttB,IAAL,CAAUizB,UAAV;AAEAnsC,0DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;;AAED;;AAEA,SAASysC,UAAT,CAAoBj5B,UAApB,EAAgC+4B,UAAhC,EAA4CG,YAA5C,EAA0D;AAAA,MAChD/wB,WADgD,GAChCnI,UADgC,CAChDmI,WADgD;AAGxD4wB,YAAU,CAAC3oC,OAAX,CAAmB,UAAAwtB,SAAS,EAAI;AAAA,QACtBC,YADsB,GACCD,SADD,CACtBC,YADsB;AAAA,QACRC,IADQ,GACCF,SADD,CACRE,IADQ;AAE9B,QAAM5d,UAAU,GAAGiI,WAAW,CAAC0V,YAAD,CAA9B;AACA,QAAM5c,SAAS,GAAGf,UAAU,CAACe,SAA7B;;AAEA,SAAK,IAAIjS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8uB,IAAI,CAAC9tB,MAAzB,EAAiChB,CAAC,EAAlC,EAAsC;AACpC,UAAMmqC,KAAK,GAAGrb,IAAI,CAAC9uB,CAAD,CAAlB;AAEAiS,eAAS,CAACk4B,KAAK,CAAC,CAAD,CAAN,CAAT,GAAsBA,KAAK,CAACD,YAAD,CAA3B;AACD;AACF,GAVD;AAWD,C;;;;;;;;;;;;ACzED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAIA;AAMA;AAIA;AAIA;AAIA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;;;;;;;AAOA;;;;;;;AAOA;;;;;;;;;;;;;;;;;;AAkBA;;;;;;;;AAQA;;;;;;AAKA,SAASzjB,kBAAT,GAA8B;AAC5B6d,4DAAW,CAAC,CAAD,CAAX;AACD;;AAEc;AACbvjC,OAAK,EAALA,+CADa;AAEbuF,eAAa,EAAbA,8DAFa;AAGbmgB,oBAAkB,EAAlBA,kBAHa;AAIbxd,SAAO,EAAE;AACPk7B,YAAQ,EAAEiG,qDADH;AAEPp5B,cAAU,EAAEw4B,6DAFL;AAGP3wB,eAAW,EAAEiuB,uDAHN;AAIPhuB,uBAAmB,EAAEupB,2EAJd;AAKP9tB,sBAAkB,EAAEyuB,yEALb;AAMPqH,oBAAgB,EAAhBA,sEANO;AAOPn5B,cAAU,EAAEw1B,sDAPL;AAQP4D,4BAAwB,EAAE3D,0EARnB;AASP4D,iBAAa,EAAEtD,yDATR;AAUPuD,kCAA8B,EAAEf,0EAVzB;AAWP1b,cAAU,EAAEsY,uDAXL;AAYPU,mBAAe,EAAEF,sEAZV;AAaP4D,wBAAoB,EAAEzD,2EAbf;AAcPzC,YAAQ,EAAEM,sDAdH;AAeP6F,gCAA4B,EAAE/F,0EAA+BA;AAftD,GAJI;AAqBb/Y,SAAO,EAAE;AACPuY,YAAQ,EAAEwG,qDADH;AAEPC,wBAAoB,EAAEC,yEAFf;AAGPC,4BAAwB,EAAEC,6EAHnB;AAIP5H,+BAA2B,EAA3BA,+EAJO;AAKPE,+BAA2B,EAA3BA,+EALO;AAMP9uB,sBAAkB,EAAE0uB,yEANb;AAOP+H,2BAAuB,EAAvBA,6EAPO;AAQP/b,8BAA0B,EAAE,oCAAA/d,UAAU,EAAI;AACxCA,gBAAU,CAACuD,kBAAX,GAAgCmyB,wEAAsB,CACpD11B,UAAU,CAACe,SADyC,CAAtD;AAGD,KAZM;AAaPk0B,iBAAa,EAAbA,uDAbO;AAcP5B,YAAQ,EAAED,kDAdH;AAeP2G,8BAA0B,EAAEvG,wEAfrB;AAgBPwG,kCAA8B,EAAEpG,4EAhBzB;AAiBPhsB,uBAAmB,EAAE8pB,2EAjBd;AAkBPllC,UAAM,EAAEytC,mDAlBD;AAmBPnc,aAAS,EAATA,mDAnBO;AAoBPoV,QAAI,EAAJA,8CApBO;AAqBPC,QAAI,EAAJA,8CAAIA;AArBG;AArBI,CAAf,E;;;;;;;;;;;;AC3FA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMp9B,MAAM,GAAGC,8DAAS,CAAC,2CAAD,CAAxB;AAEA;;;;;;;;;;;;;;AAaA,SAASkjC,WAAT,CAAqB9H,0BAArB,EAAiDrxB,aAAjD,EAAgE2B,YAAhE,EAA8E;AAC5E,MAAMpV,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMglC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMu4B,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AACA,MAAMk4B,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AAEA,MAAM4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAxB;;AAEA,MAAI,CAACC,eAAL,EAAsB;AACpBz7B,UAAM,CAACmlB,IAAP;AAEA;AACD;;AAEDnb,eAAa,GACXA,aAAa,KAAKhU,SAAlB,GACIylC,eAAe,CAAC5pB,mBADpB,GAEI7H,aAHN;;AAKA,MAAI,CAACyxB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,CAAL,EAAiD;AAC/ChK,UAAM,CAACmlB,IAAP,2CAA+Cnb,aAA/C;AAEA;AACD;;AAED,MAAMD,UAAU,GAAG0xB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,CAAnB;;AAEA,MAAI2B,YAAY,KAAK3V,SAArB,EAAgC;AAC9B,WAAO+T,UAAU,CAACmzB,QAAlB;AACD;;AAED,SAAOnzB,UAAU,CAACmzB,QAAX,CAAoBvxB,YAApB,CAAP;AACD;AAED;;;;;;;;;;;;;AAWA,SAAS+3B,WAAT,CACErI,0BADF,EAKE;AAAA,MAHArxB,aAGA,uEAHgB,CAGhB;AAAA,MAFA2B,YAEA;AAAA,MADAuxB,QACA;AACA,MAAM3mC,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMK,WAAW,GAAGD,wDAAQ,CAACC,WAA7B;AACA,MAAM2kC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMu4B,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AACA,MAAMk4B,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AAEA,MAAI4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAtB;;AAEA,MAAI,CAACC,eAAL,EAAsB;AACpB3hC,kDAAK,CAAC4hC,MAAN,CAAaF,YAAb,IAA6B;AAC3BxxB,mBAAa,EAAbA,aAD2B;AAE3B4H,iBAAW,EAAE;AAFc,KAA7B;AAKA6pB,mBAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAlB;AACD;;AAED,MAAI,CAACC,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,CAAL,EAAiD;AAC/C,QAAMsG,cAAc,GAAG1Z,WAAW,CAAC2Z,iBAAZ,CAA8Bha,OAA9B,CAAvB;AAD+C,gCAGrB+Z,cAAc,CAAC9L,KAHM;AAAA,QAGvCsG,IAHuC,yBAGvCA,IAHuC;AAAA,QAGjCge,OAHiC,yBAGjCA,OAHiC;AAI/C,QAAM8S,cAAc,GAAG9M,SAAS,CAACjC,QAAV,CAAmB9yB,MAA1C;AACA,QAAM8hC,IAAI,GAAG/wB,IAAI,GAAGge,OAAP,GAAiB8S,cAA9B;AAEAE,kEAAa,CAACL,eAAD,EAAkBzxB,aAAlB,EAAiC6xB,IAAjC,CAAb;AACD;;AAED,MAAM9xB,UAAU,GAAG0xB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,CAAnB;AAEAD,YAAU,CAACmzB,QAAX,CAAoBvxB,YAApB,IAAoCuxB,QAApC;AACD;;;;;;;;;;;;;;ACjHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AAEA,IAAMl9B,MAAM,GAAGC,8DAAS,CAAC,oDAAD,CAAxB;AAEA;;;;;;;;;;;AAUA,SAASmjC,gBAAT,CACE/H,0BADF,EAEE1vB,YAFF,EAGE3B,aAHF,EAIE;AACA,MAAI,CAAC2B,YAAL,EAAmB;AACjB;AACD;;AAED,MAAMpV,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMglC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMu4B,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AACA,MAAMk4B,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AAEA,MAAM4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAxB;;AAEA,MAAI,CAACC,eAAL,EAAsB;AACpBz7B,UAAM,CAACmlB,IAAP;AAEA;AACD;;AAEDnb,eAAa,GACXA,aAAa,KAAKhU,SAAlB,GACIylC,eAAe,CAAC5pB,mBADpB,GAEI7H,aAHN;;AAKA,MAAI,CAACyxB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,CAAL,EAAiD;AAC/ChK,UAAM,CAACmlB,IAAP,2CAA+Cnb,aAA/C;AAEA;AACD;;AAED,MAAMD,UAAU,GAAG0xB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,CAAnB;AACA,MAAMyD,OAAO,GAAG,CAAC1D,UAAU,CAACgB,cAAX,CAA0BY,YAA1B,CAAjB;AAEA,SAAO8B,OAAP;AACD;AAED;;;;;;;;;;;;AAUA,SAASs2B,uBAAT,CACE1I,0BADF,EAEE1vB,YAFF,EAGE3B,aAHF,EAIE;AACA,MAAI,CAAC2B,YAAL,EAAmB;AACjB;AACD;;AAED,MAAMpV,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMglC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMu4B,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AACA,MAAMk4B,YAAY,GAAG1M,SAAS,CAACjC,QAAV,CAAmB,CAAnB,CAArB;AAEA,MAAM4O,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAxB;;AAEA,MAAI,CAACC,eAAL,EAAsB;AACpBz7B,UAAM,CAACmlB,IAAP;AAEA;AACD;;AAEDnb,eAAa,GACXA,aAAa,KAAKhU,SAAlB,GACIylC,eAAe,CAAC5pB,mBADpB,GAEI7H,aAHN;;AAKA,MAAI,CAACyxB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,CAAL,EAAiD;AAC/ChK,UAAM,CAACmlB,IAAP,2CAA+Cnb,aAA/C;AAEA;AACD;;AAED,MAAMD,UAAU,GAAG0xB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,CAAnB;AACA,MAAMe,cAAc,GAAGhB,UAAU,CAACgB,cAAlC;AAEAA,gBAAc,CAACY,YAAD,CAAd,GAA+B,CAACZ,cAAc,CAACY,YAAD,CAA9C;AAEA,SAAO,CAACZ,cAAc,CAACY,YAAD,CAAtB;AACD;;;;;;;;;;;;;;ACpHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;IAEQ2wB,a,GAAkCC,mD,CAAlCD,a;IAAeE,c,GAAmBD,mD,CAAnBC,c;AAEvB;;;;;;;;;;;;;;;AAcA,SAASoH,uBAAT,CACEvI,0BADF,EAEEyB,MAFF,EAGE9yB,aAHF,EAOE;AAAA,MAHAkzB,QAGA,uEAHW,EAGX;AAAA,MAFAiH,uBAEA;AAAA,MADAh5B,aACA,uEADgB,CAChB;AACA,MAAM5U,OAAO,GAAG+kC,2DAAU,CAACD,0BAAD,CAA1B;;AAEA,MAAI,CAAC9kC,OAAL,EAAc;AACZ;AACD;;AAED,MAAMglC,UAAU,GAAGp8B,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,MAAMqlC,cAAc,GAAGL,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,EAAmBupB,QAAnB,CAA4B9yB,MAAnD;AACA,MAAMyhC,YAAY,GAAGD,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,EAAmBupB,QAAnB,CAA4B,CAA5B,CAArB;AAEAiX,6BAA2B,CACzBtI,YADyB,EAEzBsB,MAFyB,EAGzB9yB,aAHyB,EAIzBkzB,QAJyB,EAKzBtB,cALyB,EAMzBuI,uBANyB,EAOzBh5B,aAPyB,CAA3B;AAUAi5B,yFAA4B,CAAC7tC,OAAD,EAAUyT,aAAV,CAA5B;AACD;AAED;;;;;;;;;;;;;;;;;;AAgBA,SAAS85B,2BAAT,CACEtI,YADF,EAEEsB,MAFF,EAGE9yB,aAHF,EAQE;AAAA,MAJAkzB,QAIA,uEAJW,EAIX;AAAA,MAHAtB,cAGA;AAAA,MAFAuI,uBAEA;AAAA,MADAh5B,aACA,uEADgB,CAChB;;AAAA,mBAC0B3M,2DAAS,CAAC,cAAD,CADnC;AAAA,MACQa,aADR,cACQA,aADR;;AAGA,MAAIo8B,eAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAtB;;AAEA,MAAI,CAACC,eAAL,EAAsB;AACpB3hC,kDAAK,CAAC4hC,MAAN,CAAaF,YAAb,IAA6B;AAC3B3pB,yBAAmB,EAAE7H,aADM;AAE3B4H,iBAAW,EAAE;AAFc,KAA7B;AAKA6pB,mBAAe,GAAG3hC,8CAAK,CAAC4hC,MAAN,CAAaF,YAAb,CAAlB;AACD;;AAEDC,iBAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,IAA6C;AAC3C8yB,UAAM,EAANA,MAD2C;AAE3C5qB,eAAW,EAAE,EAF8B;AAG3CgrB,YAAQ,EAARA,QAH2C;AAI3C5vB,sBAAkB,EAAE,CAJuB;AAK3CnC,iBAAa,EAAbA,aAL2C;AAM3CJ,kBAAc,EAAE,EAN2B;AAO3CoyB,QAAI,EAAE,EAPqC;AAQ3CC,QAAI,EAAE;AARqC,GAA7C;AAWA,MAAMlrB,WAAW,GAAGupB,eAAe,CAAC7pB,WAAhB,CAA4B5H,aAA5B,EAA2CkI,WAA/D;AACA,MAAMmyB,kBAAkB,GAAGvH,MAAM,CAACwH,UAAP,GAAoB1I,cAA/C;;AAEA,OAAK,IAAI7iC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6iC,cAApB,EAAoC7iC,CAAC,EAArC,EAAyC;AACvC,QAAIiS,SAAS,SAAb;;AAEA,YAAQ3L,aAAa,CAACu9B,SAAtB;AACE,WAAKN,aAAL;AACEtxB,iBAAS,GAAG,IAAI6xB,WAAJ,CACVC,MADU,EAEVuH,kBAAkB,GAAGtrC,CAFX,EAEc;AACxBsrC,0BAAkB,GAAG,CAHX,CAAZ;AAMA;;AAEF,WAAK7H,cAAL;AACExxB,iBAAS,GAAG,IAAI+xB,YAAJ,CACVD,MADU,EAEVuH,kBAAkB,GAAGtrC,CAFX,EAGVsrC,kBAAkB,GAAG,CAHX,CAAZ;AAKA;;AAEF;AACE,cAAM,IAAIxZ,KAAJ,kCAAoCxrB,aAAa,CAACu9B,SAAlD,EAAN;AAnBJ;;AAsBA,QAAMpvB,kBAAkB,GAAG22B,uBAAuB,GAC9CA,uBAAuB,CAACprC,CAAD,CADuB,GAE9C4mC,uEAAsB,CAAC30B,SAAD,CAF1B;;AAIA,QAAIwC,kBAAkB,IAAIA,kBAAkB,CAAC7J,IAAnB,CAAwB,UAAA4gC,OAAO;AAAA,aAAIA,OAAJ;AAAA,KAA/B,CAA1B,EAAuE;AACrEryB,iBAAW,CAACnZ,CAAD,CAAX,GAAiB;AACfiS,iBAAS,EAATA,SADe;AAEfwC,0BAAkB,EAAlBA;AAFe,OAAjB;AAID;AACF;AACF;;;;;;;;;;;;;;AC/ID;AAAA;AAAA;AAAA;AAEe,SAAS02B,SAAT,CAAmBM,SAAnB,EAA8B;AAAA,mBACjBhmC,wDAAS,CAAC,cAAD,CADQ;AAAA,MACnCa,aADmC,cACnCA,aADmC;;AAG3CA,eAAa,CAAC5I,MAAd,GAAuBf,IAAI,CAACwC,GAAL,CACrBxC,IAAI,CAACkH,GAAL,CAAS4nC,SAAT,EAAoBnlC,aAAa,CAAC0/B,SAAlC,CADqB,EAErB1/B,aAAa,CAAC2/B,SAFO,CAAvB;AAID,C;;;;;;;;;;;;ACTD;AAAA;AACA,IAAMllC,KAAK,GAAG;AACZ4hC,QAAM,EAAE,EADI;AAEZxwB,gBAAc,EAAE;AAFJ,CAAd;AAKepR,oEAAf,E;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AAAA;AAEA;;;;;;;;;;;;AAWA,IAAM8hB,oBAAoB,GAAG,SAAvBA,oBAAuB,CAASrlB,OAAT,EAAkB0K,QAAlB,EAA4B;AACvD,MAAMwjC,SAAS,GAAGlpB,iDAAK,CAACzhB,KAAN,CAAYgF,KAAZ,CAAkBs7B,SAAlB,CAChB,UAAAp7B,IAAI;AAAA,WAAIA,IAAI,CAACzI,OAAL,KAAiBA,OAAjB,IAA4ByI,IAAI,CAACwB,IAAL,KAAcS,QAA9C;AAAA,GADY,CAAlB;;AAIA,MAAIwjC,SAAS,IAAI,CAAjB,EAAoB;AAClBlpB,qDAAK,CAACzhB,KAAN,CAAYgF,KAAZ,CAAkB4yB,MAAlB,CAAyB+S,SAAzB,EAAoC,CAApC;AACD;AACF,CARD;AAUA;;;;;;;;;;;;AAUA,IAAM9oB,UAAU,GAAG,SAAbA,UAAa,CAAS1a,QAAT,EAAmB;AACpCyjC,qBAAmB,CAACzjC,QAAD,CAAnB;;AACAsa,mDAAK,CAACzhB,KAAN,CAAYyd,eAAZ,CAA4Bpd,OAA5B,CAAoC,UAAA5D,OAAO,EAAI;AAC7CqlB,wBAAoB,CAACrlB,OAAD,EAAU0K,QAAV,CAApB;AACD,GAFD;AAGD,CALD;AAOA;;;;;;;;;;;;AAUA,IAAMyjC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAASzjC,QAAT,EAAmB;AAAA,mBACnBzC,2DAAS,CAAC,qBAAD,CADU;AAAA,MACrCa,aADqC,cACrCA,aADqC;;AAG7C,MAAI,CAACA,aAAa,CAACq4B,qBAAnB,EAA0C;AACxC;AACD;;AAED,MAAInc,iDAAK,CAACzhB,KAAN,CAAY89B,WAAZ,CAAwB32B,QAAxB,CAAJ,EAAuC;AACrC,WAAOsa,iDAAK,CAACzhB,KAAN,CAAY89B,WAAZ,CAAwB32B,QAAxB,CAAP;AACD;AACF,CAVD;;;;;;;;;;;;;;AClDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAEA,IAAMw3B,mBAAmB,GAAGnZ,iDAAO,CAACmZ,mBAApC;AAEA;;;;;;;;AAOA,SAASkM,aAAT,CAAuBpuC,OAAvB,EAAgCquC,SAAhC,EAA2C;AACzC,MAAI,CAACnM,mBAAmB,CAACp5B,aAApB,CAAkCu7B,cAAvC,EAAuD;AACrD;AACD,GAHwC,CAIzC;AACA;AAEA;;;AACA,MAAMiK,UAAU,GAAGD,SAAS,CAACE,qBAAV,EAAnB;AACA,MAAMtK,UAAU,GAAGoK,SAAS,CAACpK,UAA7B;AAEA,MAAMpC,YAAY,GAAGjhB,MAAM,CAAC4tB,GAAP,CAAWC,eAAX,CAA2BH,UAA3B,CAArB;AAEAtuC,SAAO,CAAC0uC,KAAR,CAAczM,MAAd,kBAA+BJ,YAA/B,gBAAiDoC,UAAjD;AAEA1gC,iDAAK,CAACs+B,YAAN,GAAqBA,YAArB;AACD;;AAED,SAAS8M,eAAT,CAAyB3uC,OAAzB,EAAkC;AAChC4uC,yBAAuB,CAAC5uC,OAAD,EAAU,SAAV,CAAvB;AACD;;AAED,SAAS6uC,cAAT,CAAwB7uC,OAAxB,EAAiC;AAC/B,MAAI,CAACkiC,mBAAmB,CAACp5B,aAApB,CAAkCu7B,cAAvC,EAAuD;AACrD;AACD;;AAEDuK,yBAAuB,CAAC5uC,OAAD,EAAU,MAAV,CAAvB;AACD;;AAED,SAAS4uC,uBAAT,CAAiC5uC,OAAjC,EAA0C8uC,YAA1C,EAAwD;AACtD,MAAIvrC,+CAAK,CAACs+B,YAAV,EAAwB;AACtBjhB,UAAM,CAAC4tB,GAAP,CAAWO,eAAX,CAA2BxrC,+CAAK,CAACs+B,YAAjC;AACD;;AAEDt+B,iDAAK,CAACs+B,YAAN,GAAqB,IAArB;AACA7hC,SAAO,CAAC0uC,KAAR,CAAczM,MAAd,GAAuB6M,YAAvB;AACD,C;;;;;;;;;;;;AClDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAKA;AACA;AAEA,IAAM5M,mBAAmB,GAAGj6B,2DAAS,CAAC,qBAAD,CAArC;AACA,IAAMwB,MAAM,GAAGC,iEAAS,CAAC,mBAAD,CAAxB;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAM+b,uBAAuB,GAAG,SAA1BA,uBAA0B,CAC9BzlB,OAD8B,EAE9B0K,QAF8B,EAG9BnL,OAH8B,EAI9ByvC,gBAJ8B,EAK9B;AACA;AACA,MAAIA,gBAAgB,KAAKvvC,SAArB,IAAkCmM,KAAK,CAACC,OAAN,CAActM,OAAd,CAAtC,EAA8D;AAC5DyvC,oBAAgB,GAAGzvC,OAAnB;AACAA,WAAO,GAAG,IAAV;AACD;;AAED,MAAMkJ,IAAI,GAAGwc,qEAAiB,CAACjlB,OAAD,EAAU0K,QAAV,CAA9B;;AAEA,MAAIjC,IAAJ,EAAU;AACRwmC,0BAAsB,CAACjvC,OAAD,EAAUyI,IAAV,EAAgBlJ,OAAhB,EAAyByvC,gBAAzB,CAAtB,CADQ,CAGR;AACA;;;AACAvmC,QAAI,CAAC8G,yBAAL,CAA+B3L,OAA/B,CAAuC,UAAA6Y,eAAe,EAAI;AACxD,UACEuyB,gBAAgB,KAAKvvC,SAArB,IACAuvC,gBAAgB,CAACjjC,QAAjB,CAA0B0Q,eAA1B,CAFF,EAGE;AACAld,eAAO,aAAMkd,eAAN,YAAP,GAAwC,IAAxC;AACD,OALD,MAKO;AACLld,eAAO,aAAMkd,eAAN,YAAP,GAAwC,KAAxC;AACD;AACF,KATD;;AAWA,QACEylB,mBAAmB,CAACp5B,aAApB,CAAkCu7B,cAAlC,IACA57B,IAAI,CAAC8G,yBAAL,CAA+BxD,QAA/B,CAAwC,OAAxC,CAFF,EAGE;AACAmjC,6BAAuB,CAAClvC,OAAD,EAAUT,OAAV,EAAmBkJ,IAAnB,CAAvB;AACD;AACF,GA/BD,CAiCA;;;AACA0mC,uBAAqB,CAAC,QAAD,EAAW,IAAX,EAAiBnvC,OAAjB,EAA0B0K,QAA1B,EAAoCnL,OAApC,CAArB;AACD,CAxCD;;AA0CA,SAAS2vC,uBAAT,CAAiClvC,OAAjC,EAA0CT,OAA1C,EAAmDkJ,IAAnD,EAAyD;AACvD,MAAIqD,eAAJ;;AAEA,MAAI,OAAOvM,OAAP,KAAmB,QAAvB,EAAiC;AAC/BuM,mBAAe,GAAG,CAACvM,OAAD,CAAlB;AACD,GAFD,MAEO;AACLuM,mBAAe,GAAGvM,OAAO,CAACuM,eAA1B;AACD;;AAED,MAAIA,eAAe,CAACC,QAAhB,CAAyB,CAAzB,CAAJ,EAAiC;AAC/B,QAAItD,IAAI,CAAC4lC,SAAT,EAAoB;AAClBD,6EAAa,CAAC3lC,IAAI,CAACzI,OAAN,EAAeyI,IAAI,CAAC4lC,SAApB,CAAb;AACD,KAFD,MAEO,IAAI5lC,IAAI,CAAC2mC,iBAAT,EAA4B;AACjCP,8EAAc,CAAC7uC,OAAD,CAAd;AACD,KAFM,MAEA;AACL2uC,+EAAe,CAAC3uC,OAAD,CAAf;AACD;AACF;AACF;AAED;;;;;;;;;;;;;;AAYA,IAAMwlB,aAAa,GAAG,SAAhBA,aAAgB,CAAS9a,QAAT,EAAmBnL,OAAnB,EAA4ByvC,gBAA5B,EAA8C;AAClEK,4BAA0B,CAAC,QAAD,EAAW3kC,QAAX,EAAqBnL,OAArB,EAA8ByvC,gBAA9B,CAA1B;;AACAhqB,mDAAK,CAACzhB,KAAN,CAAYyd,eAAZ,CAA4Bpd,OAA5B,CAAoC,UAAA5D,OAAO,EAAI;AAC7CylB,2BAAuB,CAACzlB,OAAD,EAAU0K,QAAV,EAAoBnL,OAApB,EAA6ByvC,gBAA7B,CAAvB;AACD,GAFD;AAGD,CALD;AAOA;;;;;;;;;;;;;;AAYA,IAAMnpB,yBAAyB,GAAGspB,qBAAqB,CAACnkC,IAAtB,CAChC,IADgC,EAEhC,UAFgC,EAGhC,IAHgC,CAAlC;AAMA;;;;;;;;;;;;AAWA,IAAM4a,eAAe,GAAG0pB,WAAW,CAACtkC,IAAZ,CAAiB,IAAjB,EAAuB,UAAvB,EAAmC,IAAnC,CAAxB;AAEA;;;;;;;;;;;;;AAYA,IAAM2a,wBAAwB,GAAGwpB,qBAAqB,CAACnkC,IAAtB,CAC/B,IAD+B,EAE/B,SAF+B,EAG/B,IAH+B,CAAjC;AAMA;;;;;;;;;;;;AAWA,IAAM0a,cAAc,GAAG4pB,WAAW,CAACtkC,IAAZ,CAAiB,IAAjB,EAAuB,SAAvB,EAAkC,IAAlC,CAAvB;AAEA;;;;;;;;;;;;;AAYA,IAAM+a,wBAAwB,GAAGopB,qBAAqB,CAACnkC,IAAtB,CAC/B,IAD+B,EAE/B,SAF+B,EAG/B3B,kDAAM,CAACmY,gBAHwB,CAAjC;AAMA;;;;;;;;;;;;AAWA,IAAMsE,cAAc,GAAGwpB,WAAW,CAACtkC,IAAZ,CACrB,IADqB,EAErB,SAFqB,EAGrB3B,kDAAM,CAACmY,gBAHc,CAAvB;AAMA;;;;;;;;;;;;;;AAaA,SAAS2tB,qBAAT,CAA+BzmC,IAA/B,EAAqC6mC,WAArC,EAAkDvvC,OAAlD,EAA2D0K,QAA3D,EAAqEnL,OAArE,EAA8E;AAC5E,MAAMkJ,IAAI,GAAGwc,qEAAiB,CAACjlB,OAAD,EAAU0K,QAAV,CAA9B;;AAEA,MAAI,CAACjC,IAAL,EAAW;AACTgB,UAAM,CAACmlB,IAAP,CAAY,6CAAZ,EAA2DlkB,QAA3D;AAEA;AACD;;AAEDnL,SAAO,GAAGiwC,qBAAqB,CAACjwC,OAAD,CAA/B,CAT4E,CAW5E;AACA;AACA;;AACA,MACEqM,KAAK,CAACC,OAAN,CAActM,OAAO,CAACuM,eAAtB,KACAvM,OAAO,CAACuM,eAAR,CAAwBtI,MAAxB,KAAmC,CADnC,IAEAoI,KAAK,CAACC,OAAN,CAAcpD,IAAI,CAAClJ,OAAL,CAAauM,eAA3B,CAHF,EAIE;AACAvM,WAAO,CAACuM,eAAR,GAA0B2jC,qBAAqB,CAC7ClwC,OAAO,CAACuM,eADqC,EAE7CrD,IAAI,CAAClJ,OAAL,CAAauM,eAFgC,CAA/C;AAID,GAvB2E,CAyB5E;;;AACArD,MAAI,CAACC,IAAL,GAAYA,IAAZ;AACAD,MAAI,CAACinC,YAAL,CAAkBnwC,OAAlB,EA3B4E,CA6B5E;;AACA,MAAIkJ,IAAI,WAAIC,IAAJ,cAAR,EAA6B;AAC3BD,QAAI,WAAIC,IAAJ,cAAJ,CAAwB1I,OAAxB,EAAiCT,OAAjC;AACD,GAhC2E,CAkC5E;;;AACA,MAAIgwC,WAAJ,EAAiB;AACf,QAAMI,qBAAqB,GAAG;AAC5BpwC,aAAO,EAAPA,OAD4B;AAE5BmL,cAAQ,EAARA,QAF4B;AAG5BC,cAAQ,EAAED,QAHkB;AAGR;AACpB+E,UAAI,EAAE8/B;AAJsB,KAA9B;AAOA3kC,yEAAY,CAAC5K,OAAD,EAAUuvC,WAAV,EAAuBI,qBAAvB,CAAZ;AACD,GA5C2E,CA8C5E;AACA;AACA;;AACD;AAED;;;;;;;;;;;;;;AAYA,SAASL,WAAT,CAAqB5mC,IAArB,EAA2B6mC,WAA3B,EAAwC7kC,QAAxC,EAAkDnL,OAAlD,EAA2D;AACzD8vC,4BAA0B,CAAC3mC,IAAD,EAAOgC,QAAP,EAAiBnL,OAAjB,CAA1B;;AACAylB,mDAAK,CAACzhB,KAAN,CAAYyd,eAAZ,CAA4Bpd,OAA5B,CAAoC,UAAA5D,OAAO,EAAI;AAC7CmvC,yBAAqB,CAACzmC,IAAD,EAAO6mC,WAAP,EAAoBvvC,OAApB,EAA6B0K,QAA7B,EAAuCnL,OAAvC,CAArB;AACD,GAFD;AAGD;AAED;;;;;;;;;;;;;;;AAaA,SAAS0vC,sBAAT,CAAgCjvC,OAAhC,EAAyCyI,IAAzC,EAA+ClJ,OAA/C,EAAwDyvC,gBAAxD,EAA0E;AACxE;AACA;AACA;AACAvmC,MAAI,CAAC8G,yBAAL,CAA+B3L,OAA/B,CAAuC,UAAA6Y,eAAe,EAAI;AACxD,QACEuyB,gBAAgB,KAAKvvC,SAArB,IACAuvC,gBAAgB,CAACjjC,QAAjB,CAA0B0Q,eAA1B,CAFF,EAGE;AACA,UAAMmzB,aAAa,GAAGC,eAAe,CAACpzB,eAAD,CAArC;;AAEA,UAAImzB,aAAJ,EAAmB;AACjBA,qBAAa,CAACnnC,IAAD,EAAOzI,OAAP,EAAgBT,OAAhB,CAAb;AACD,OAFD,MAEO;AACLkK,cAAM,CAACmlB,IAAP,CACE,+CADF,EAEEnS,eAFF;AAID;AACF;AACF,GAhBD;AAkBA,MAAMqzB,qBAAqB,GAAG9qB,iDAAK,CAACzhB,KAAN,CAAYgF,KAAZ,CAAkBC,MAAlB,CAC5B,UAAA4F,CAAC;AAAA,WACCA,CAAC,CAACpO,OAAF,KAAcA,OAAd,IACAoO,CAAC,CAAC1F,IAAF,KAAW,QADX,IAEA0F,CAAC,CAACmB,yBAAF,CAA4B/L,MAA5B,GAAqC,CAHtC;AAAA,GAD2B,CAA9B;AAOAssC,uBAAqB,CAAClsC,OAAtB,CAA8B,UAAAwK,CAAC,EAAI;AACjC,QAAI2hC,+BAA+B,GAAG,KAAtC;AAEA3hC,KAAC,CAACmB,yBAAF,CAA4B3L,OAA5B,CAAoC,UAAA6Y,eAAe,EAAI;AACrD,UAAIrO,CAAC,CAAC7O,OAAF,aAAekd,eAAf,YAAJ,EAA6C;AAC3CszB,uCAA+B,GAAG,IAAlC;AACD;AACF,KAJD;;AAMA,QAAI,CAACA,+BAAL,EAAsC;AACpCtmC,YAAM,CAACE,GAAP,CAAW,8BAAX,EAA2CyE,CAAC,CAACnE,IAA7C;AACA8b,8BAAwB,CAAC/lB,OAAD,EAAUoO,CAAC,CAACnE,IAAZ,CAAxB;AACD;AACF,GAbD;AAcD;AAED;;;;;;;;;;;;AAUA,SAAS+lC,2BAAT,CAAqCvnC,IAArC,EAA2CzI,OAA3C,EAAoDT,OAApD,EAA6D;AAC3D,MAAMuM,eAAe,GAAG0jC,qBAAqB,CAACjwC,OAAD,CAArB,CAA+BuM,eAAvD;;AACA,MAAMmkC,kBAAkB,GACtBrkC,KAAK,CAACC,OAAN,CAAcC,eAAd,KAAkCA,eAAe,CAACtI,MAAhB,GAAyB,CAD7D;;AAGA,MAAI,CAACysC,kBAAL,EAAyB;AACvB;AACD;;AAED,MAAMC,qCAAqC,GAAGlrB,iDAAK,CAACzhB,KAAN,CAAYgF,KAAZ,CAAkB8D,IAAlB,CAC5C,UAAA+B,CAAC;AAAA,WACCA,CAAC,CAACpO,OAAF,KAAcA,OAAd,IACAoO,CAAC,CAAC1F,IAAF,KAAW,QADX,IAEA0F,CAAC,CAAC7O,OAAF,CAAU0M,aAAV,KAA4B,IAF5B,IAGAL,KAAK,CAACC,OAAN,CAAcuC,CAAC,CAAC7O,OAAF,CAAUuM,eAAxB,CAHA,IAIAsC,CAAC,CAAC7O,OAAF,CAAUuM,eAAV,CAA0BsB,IAA1B,CAA+B,UAAAstB,CAAC;AAAA,aAAI5uB,eAAe,CAACC,QAAhB,CAAyB2uB,CAAzB,CAAJ;AAAA,KAAhC,CALD;AAAA,GAD2C,CAA9C;;AASA,MAAIwV,qCAAJ,EAA2C;AACzC;AACAA,yCAAqC,CAAC3wC,OAAtC,CAA8CuM,eAA9C,GAAgEokC,qCAAqC,CAAC3wC,OAAtC,CAA8CuM,eAA9C,CAA8DtD,MAA9D,CAC9D,UAAA2nC,IAAI;AAAA,aAAI,CAACrkC,eAAe,CAACC,QAAhB,CAAyBokC,IAAzB,CAAL;AAAA,KAD0D,CAAhE,CAFyC,CAMzC;;AACA,QACED,qCAAqC,CAAC3wC,OAAtC,CAA8CuM,eAA9C,CAA8DtI,MAA9D,KAAyE,CAD3E,EAEE;AACA0sC,2CAAqC,CAAC3wC,OAAtC,CAA8C0M,aAA9C,GAA8D,KAA9D;AACD;AACF;AACF;AAED;;;;;;;;;;;AASA,SAASmkC,2BAAT,CAAqC3nC,IAArC,EAA2CzI,OAA3C,EAAoD;AAClD,MAAMqwC,eAAe,GAAGrrB,iDAAK,CAACzhB,KAAN,CAAYgF,KAAZ,CAAkB8D,IAAlB,CACtB,UAAA+B,CAAC;AAAA,WACCA,CAAC,CAACpO,OAAF,KAAcA,OAAd,IACAoO,CAAC,CAAC1F,IAAF,KAAW,QADX,IAEA0F,CAAC,CAAC7O,OAAF,CAAUiS,aAAV,KAA4B,IAH7B;AAAA,GADqB,CAAxB;AAOA,MAAM8+B,uCAAuC,GAAGtrB,iDAAK,CAACzhB,KAAN,CAAYgF,KAAZ,CAAkB8D,IAAlB,CAC9C,UAAA+B,CAAC;AAAA,WACCA,CAAC,CAACpO,OAAF,KAAcA,OAAd,IACAoO,CAAC,CAAC1F,IAAF,KAAW,QADX,IAEA0F,CAAC,CAAC7O,OAAF,CAAUgxC,kBAAV,KAAiC,IAFjC,IAGAniC,CAAC,CAACtF,aAAF,CAAgByH,aAAhB,KAAkC,CAJnC;AAAA,GAD6C,CAAhD;;AAQA,MAAI8/B,eAAJ,EAAqB;AACnB5mC,UAAM,CAACE,GAAP,CACE,0CADF,EAEE0mC,eAAe,CAACpmC,IAFlB;AAIAomC,mBAAe,CAAC9wC,OAAhB,CAAwBiS,aAAxB,GAAwC,KAAxC;AACD;;AACD,MAAI8+B,uCAAJ,EAA6C;AAC3C7mC,UAAM,CAACE,GAAP,CACE,0CADF,EAEE2mC,uCAAuC,CAACrmC,IAF1C;AAIAqmC,2CAAuC,CAAC/wC,OAAxC,CAAgDgxC,kBAAhD,GAAqE,KAArE;AACD;AACF;AAED;;;;;;;;;;;AASA,SAASC,gCAAT,CAA0C/nC,IAA1C,EAAgDzI,OAAhD,EAAyD;AACvD,MAAMywC,oBAAoB,GAAGzrB,iDAAK,CAACzhB,KAAN,CAAYgF,KAAZ,CAAkB8D,IAAlB,CAC3B,UAAA+B,CAAC;AAAA,WACCA,CAAC,CAACpO,OAAF,KAAcA,OAAd,IACAoO,CAAC,CAAC1F,IAAF,KAAW,QADX,IAEA0F,CAAC,CAAC7O,OAAF,CAAUgxC,kBAAV,KAAiC,IAFjC,IAGAniC,CAAC,CAACtF,aAAF,CAAgByH,aAAhB,KAAkC9H,IAAI,CAACK,aAAL,CAAmByH,aAJtD;AAAA,GAD0B,CAA7B;AAQA,MAAI8/B,eAAJ;;AAEA,MAAI5nC,IAAI,CAACK,aAAL,CAAmByH,aAAnB,KAAqC,CAAzC,EAA4C;AAC1C8/B,mBAAe,GAAGrrB,iDAAK,CAACzhB,KAAN,CAAYgF,KAAZ,CAAkB8D,IAAlB,CAChB,UAAA+B,CAAC;AAAA,aACCA,CAAC,CAACpO,OAAF,KAAcA,OAAd,IACAoO,CAAC,CAAC1F,IAAF,KAAW,QADX,IAEA0F,CAAC,CAAC7O,OAAF,CAAUiS,aAAV,KAA4B,IAH7B;AAAA,KADe,CAAlB;AAMD;;AAED,MAAIi/B,oBAAJ,EAA0B;AACxBhnC,UAAM,CAACE,GAAP,CACE,+CADF,EAEE8mC,oBAAoB,CAACxmC,IAFvB;AAIAwmC,wBAAoB,CAAClxC,OAArB,CAA6BgxC,kBAA7B,GAAkD,KAAlD;AACD;;AAED,MAAIF,eAAJ,EAAqB;AACnB5mC,UAAM,CAACE,GAAP,CACE,0CADF,EAEE0mC,eAAe,CAACpmC,IAFlB;AAIAomC,mBAAe,CAAC9wC,OAAhB,CAAwBiS,aAAxB,GAAwC,KAAxC;AACD;AACF;AAED;;;;;;;;;;;;;;;AAaA,SAASk/B,6BAAT,CAAuCj0B,eAAvC,EAAwDhU,IAAxD,EAA8DzI,OAA9D,EAAuE;AACrE,MAAM2wC,mBAAmB,eAAQl0B,eAAR,WAAzB;AACA,MAAMm0B,mCAAmC,GAAG5rB,iDAAK,CAACzhB,KAAN,CAAYgF,KAAZ,CAAkB8D,IAAlB,CAC1C,UAAA+B,CAAC;AAAA,WACCA,CAAC,CAACpO,OAAF,KAAcA,OAAd,IACAoO,CAAC,CAAC1F,IAAF,KAAW,QADX,IAEA0F,CAAC,CAAC7O,OAAF,CAAUoxC,mBAAV,MAAmC,IAHpC;AAAA,GADyC,CAA5C;;AAOA,MAAIC,mCAAJ,EAAyC;AACvCnnC,UAAM,CAACE,GAAP,CACE,+BADF,EAEEinC,mCAAmC,CAAC3mC,IAFtC,EAGE0mC,mBAHF;AAKAC,uCAAmC,CAACrxC,OAApC,CAA4CoxC,mBAA5C,IAAmE,KAAnE;AACD;AACF;;AAED,SAAStB,0BAAT,CAAoC3mC,IAApC,EAA0CgC,QAA1C,EAAoDnL,OAApD,EAA6DyvC,gBAA7D,EAA+E;AAC7E,MAAI,CAAC9M,mBAAmB,CAACp5B,aAApB,CAAkCq4B,qBAAvC,EAA8D;AAC5D;AACD,GAH4E,CAK7E;;;AACA,MAAMkC,YAAY,GAAG;AACnB36B,QAAI,EAAJA,IADmB;AAEnB46B,QAAI,EAAE,CAAC54B,QAAD,EAAWnL,OAAX;AAFa,GAArB;;AAKA,MAAIyvC,gBAAJ,EAAsB;AACpB3L,gBAAY,CAAC/pB,IAAb,CAAkB01B,gBAAlB;AACD;;AAEDhqB,mDAAK,CAACzhB,KAAN,CAAYo+B,uBAAZ,CAAoCroB,IAApC,CAAyC+pB,YAAzC;AAEA,MAAMwN,2BAA2B,GAAG,EAApC;;AAEA,MACE7rB,iDAAK,CAACzhB,KAAN,CAAYo+B,uBAAZ,CAAoCn+B,MAApC,GAA6CqtC,2BAD/C,EAEE;AACA7rB,qDAAK,CAACzhB,KAAN,CAAYo+B,uBAAZ,CAAoC/L,KAApC;AACD,GAvB4E,CAyB7E;;;AACA,MAAMkb,UAAU,GAAG9rB,iDAAK,CAACzhB,KAAN,CAAY89B,WAAZ,CAAwB32B,QAAxB,CAAnB;;AAEA,MAAI,CAAComC,UAAL,EAAiB;AACfrnC,UAAM,CAACmlB,IAAP,6DACuDlkB,QADvD;AAIA;AACD;;AAED,MAAIhC,IAAI,KAAK,QAAb,EAAuB;AACrB,QAAIqoC,cAAc,GAAGC,wBAAwB,CAC3CtmC,QAD2C,EAE3CnL,OAF2C,EAG3CyvC,gBAH2C,CAA7C,CADqB,CAOrB;;;AACA1sC,UAAM,CAACC,IAAP,CAAYyiB,iDAAK,CAACzhB,KAAN,CAAY89B,WAAxB,EAAqCz9B,OAArC,CAA6C,UAAAolB,GAAG,EAAI;AAClD,UAAMvgB,IAAI,GAAGuc,iDAAK,CAACzhB,KAAN,CAAY89B,WAAZ,CAAwBrY,GAAxB,CAAb;AAEAvgB,UAAI,CAAC64B,cAAL,GAAsB74B,IAAI,CAAC64B,cAAL,CAAoB94B,MAApB,CACpB,UAAAyoC,OAAO;AAAA,eAAI,CAACF,cAAc,CAAChlC,QAAf,CAAwBklC,OAAxB,CAAL;AAAA,OADa,CAAtB;AAGD,KAND,EARqB,CAgBrB;;AACA,QAAIF,cAAc,CAAC3jC,IAAf,CAAoB,UAAA6jC,OAAO;AAAA,aAAIA,OAAO,CAACllC,QAAR,CAAiB,cAAjB,CAAJ;AAAA,KAA3B,CAAJ,EAAsE;AACpE+kC,gBAAU,CAACxP,cAAX,GAA4BwP,UAAU,CAACxP,cAAX,CAA0B94B,MAA1B,CAC1B,UAAAyoC,OAAO;AAAA,eAAI,CAACA,OAAO,CAACllC,QAAR,CAAiB,OAAjB,CAAL;AAAA,OADmB,CAA5B;AAGAglC,oBAAc,GAAGA,cAAc,CAACvoC,MAAf,CACf,UAAAyoC,OAAO;AAAA,eAAI,CAACA,OAAO,CAACllC,QAAR,CAAiB,OAAjB,CAAL;AAAA,OADQ,CAAjB;AAGD;;AAED+kC,cAAU,CAACxP,cAAX,GAA4BwP,UAAU,CAACxP,cAAX,CAA0B/B,MAA1B,CAC1BwR,cAD0B,CAA5B;AAGD,GA7BD,MA6BO;AACLD,cAAU,CAACxP,cAAX,GAA4B,EAA5B;AACD;AACF;;AAED,SAAS0P,wBAAT,CAAkCtmC,QAAlC,EAA4CnL,OAA5C,EAAqDyvC,gBAArD,EAAuE;AACrE,MAAIA,gBAAgB,KAAKvvC,SAArB,IAAkCmM,KAAK,CAACC,OAAN,CAActM,OAAd,CAAtC,EAA8D;AAC5DyvC,oBAAgB,GAAGzvC,OAAnB;AACAA,WAAO,GAAG,IAAV;AACD;;AAED,MAAMwxC,cAAc,GAAG,EAAvB;AACA,MAAMD,UAAU,GAAG9rB,iDAAK,CAACzhB,KAAN,CAAY89B,WAAZ,CAAwB32B,QAAxB,CAAnB;;AAEA,MAAIomC,UAAJ,EAAgB;AACd;AACA,QAAMroC,IAAI,GAAG,IAAIqoC,UAAU,CAACroC,IAAf,CAAoBqoC,UAAU,CAAC9P,KAA/B,CAAb;AAEAv4B,QAAI,CAAC8G,yBAAL,CAA+B3L,OAA/B,CAAuC,UAAA6Y,eAAe,EAAI;AACxD,UACEuyB,gBAAgB,KAAKvvC,SAArB,IACAuvC,gBAAgB,CAACjjC,QAAjB,CAA0B0Q,eAA1B,CAFF,EAGE;AACA,YAAIA,eAAe,KAAK,OAAxB,EAAiC;AAC/B,cAAMy0B,gBAAgB,GAAG1B,qBAAqB,CAACjwC,OAAD,CAArB,CACtBuM,eADH,CAD+B,CAI/B;;;AACA,cAAIF,KAAK,CAACC,OAAN,CAAcqlC,gBAAd,KAAmCA,gBAAgB,CAAC1tC,MAAjB,GAA0B,CAAjE,EAAoE;AAClE0tC,4BAAgB,CAACttC,OAAjB,CAAyB,UAAAusC,IAAI;AAAA,qBAC3BY,cAAc,CAACz3B,IAAf,WAAuBmD,eAAvB,cAA0C0zB,IAA1C,EAD2B;AAAA,aAA7B;AAGD,WAJD,MAIO,IACLvkC,KAAK,CAACC,OAAN,CAAcqlC,gBAAd,KACAA,gBAAgB,CAAC1tC,MAAjB,KAA4B,CAFvB,EAGL;AACAutC,0BAAc,CAACz3B,IAAf,WAAuBmD,eAAvB;AACD;AACF,SAfD,MAeO,IAAIA,eAAe,KAAK,YAAxB,EAAsC;AAC3Cs0B,wBAAc,CAACz3B,IAAf,WACKmD,eADL,cACwBhU,IAAI,CAACK,aAAL,CAAmByH,aAD3C;AAGD,SAJM,MAIA;AACLwgC,wBAAc,CAACz3B,IAAf,CAAoBmD,eAApB;AACD;AACF;AACF,KA5BD;AA6BD;;AAED,SAAOs0B,cAAP;AACD;;AAED,IAAMlB,eAAe,GAAG;AACtBsB,OAAK,EAAEnB,2BADe;AAEtBoB,YAAU,EAAEV,6BAA6B,CAAC1lC,IAA9B,CAAmC,SAAnC,EAAyC,YAAzC,CAFU;AAGtBqmC,OAAK,EAAEjB,2BAHe;AAItBkB,YAAU,EAAEZ,6BAA6B,CAAC1lC,IAA9B,CAAmC,SAAnC,EAAyC,YAAzC,CAJU;AAKtBumC,aAAW,EAAEb,6BAA6B,CAAC1lC,IAA9B,CAAmC,SAAnC,EAAyC,aAAzC,CALS;AAMtBwmC,WAAS,EAAEd,6BAA6B,CAAC1lC,IAA9B,CAAmC,SAAnC,EAAyC,WAAzC,CANW;AAOtBymC,YAAU,EAAEjB;AAPU,CAAxB;;AAUA,SAAShB,qBAAT,CAA+BjwC,OAA/B,EAAwC;AACtC,MAAIqM,KAAK,CAACC,OAAN,CAActM,OAAd,CAAJ,EAA4B;AAC1B;AACAA,WAAO,GAAG;AAAEuM,qBAAe,EAAEvM;AAAnB,KAAV;AACD,GAHD,MAGO,IAAIA,OAAO,KAAK+C,MAAM,CAAC/C,OAAD,CAAtB,EAAiC;AACtC;AACA;AACAA,WAAO,GAAG;AAAEuM,qBAAe,EAAE,CAACvM,OAAD;AAAnB,KAAV;AACD,GARqC,CAUtC;;;AACA,MAAI,CAACA,OAAO,CAAC0tB,cAAR,CAAuB,iBAAvB,CAAL,EAAgD;AAC9C1tB,WAAO,CAACuM,eAAR,GAA0B,EAA1B;AACD;;AAED,MAAI,CAACF,KAAK,CAACC,OAAN,CAActM,OAAO,CAACuM,eAAtB,CAAL,EAA6C;AAC3CvM,WAAO,CAACuM,eAAR,GAA0B,CAACvM,OAAO,CAACuM,eAAT,CAA1B;AACD,GAjBqC,CAmBtC;;;AACAvM,SAAO,CAACuM,eAAR,GAA0BvM,OAAO,CAACuM,eAAR,CAAwBtD,MAAxB,CACxB,UAAAkpC,CAAC;AAAA,WAAI,OAAOA,CAAP,KAAa,QAAb,IAAyBA,CAAC,KAAK,CAAnC;AAAA,GADuB,CAA1B;AAIA,SAAOnyC,OAAP;AACD;;AAED,SAASkwC,qBAAT,CAA+BkC,OAA/B,EAAwCC,OAAxC,EAAiD;AAC/C;AACA,SAAOD,OAAO,CAACpS,MAAR,CAAeqS,OAAf,EAAwBC,MAAxB,CAA+B,UAACC,GAAD,EAAMzJ,CAAN,EAAY;AAChD,QAAIyJ,GAAG,CAAClX,OAAJ,CAAYyN,CAAZ,MAAmB,CAAC,CAAxB,EAA2B;AACzByJ,SAAG,CAACx4B,IAAJ,CAAS+uB,CAAT;AACD;;AAED,WAAOyJ,GAAP;AACD,GANM,EAMJ,EANI,CAAP;AAOD;;;;;;;;;;;;;;AC1qBD;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;;;;;;;;;;;;;AAYA,IAAMxsB,wBAAwB,GAAG,SAA3BA,wBAA2B,CAAStlB,OAAT,EAAkB0K,QAAlB,EAA4BnL,OAA5B,EAAqC;AACpE,MAAMkJ,IAAI,GAAGwc,qEAAiB,CAACjlB,OAAD,EAAU0K,QAAV,CAA9B;;AAEA,MAAIjC,IAAJ,EAAU;AACRA,QAAI,CAACinC,YAAL,CAAkBnwC,OAAlB;AACD;AACF,CAND;AAQA;;;;;;;;;;;;;AAWA,IAAM4gB,cAAc,GAAG,SAAjBA,cAAiB,CAASzV,QAAT,EAAmBnL,OAAnB,EAA4B;AACjDgE,iDAAK,CAACyd,eAAN,CAAsBpd,OAAtB,CAA8B,UAAA5D,OAAO,EAAI;AACvCslB,4BAAwB,CAACtlB,OAAD,EAAU0K,QAAV,EAAoBnL,OAApB,CAAxB;AACD,GAFD;AAGD,CAJD;;;;;;;;;;;;;;AClCA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;;;;;;;;AAOA,SAASwyC,MAAT,CAAgBC,KAAhB,EAAuB;AACrB,SAAOA,KAAK,CAACxpC,MAAN,CAAa,UAASsmB,KAAT,EAAgBhoB,KAAhB,EAAuBmrC,IAAvB,EAA6B;AAC/C,WAAOA,IAAI,CAACrX,OAAL,CAAa9L,KAAb,MAAwBhoB,KAA/B;AACD,GAFM,CAAP;AAGD;AAED;;;;;;;;;;;AASA,SAASwgB,YAAT,CAAsB1U,KAAtB,EAA6B+rB,OAA7B,EAAsC;AACpC,MAAMt+B,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,MAAM6xC,IAAI,GAAG,IAAb;AACA,MAAMC,cAAc,GAAG,EAAvB,CAHoC,CAGT;;AAC3B,MAAMC,cAAc,GAAG,EAAvB,CAJoC,CAIT;;AAE3B,MAAIC,iBAAiB,GAAG,KAAxB;AACA,MAAMC,WAAW,GAAG,EAApB;AACA,MAAIC,YAAY,GAAG5T,OAAnB;AAEA,OAAK1D,OAAL,GAAe,IAAf;AAEA;;;;;;AAKA,OAAKuX,UAAL,GAAkB,UAAS7T,OAAT,EAAkB;AAClC4T,gBAAY,GAAG5T,OAAf;AACD,GAFD;AAIA;;;;;;AAIA,OAAK8T,UAAL,GAAkB,YAAW;AAC3B,WAAOF,YAAP;AACD,GAFD;AAIA;;;;;;;AAKA,OAAKG,YAAL,GAAoB,YAAW;AAC7B,QAAI,CAACP,cAAc,CAAC3uC,MAAhB,IAA0B,CAAC4uC,cAAc,CAAC5uC,MAA9C,EAAsD;AACpD;AACD;;AAED8uC,eAAW,CAACK,SAAZ,GAAwB,EAAxB;AACAL,eAAW,CAAChc,QAAZ,GAAuB;AACrB6b,oBAAc,EAAE,EADK;AAErBC,oBAAc,EAAE;AAFK,KAAvB;AAKAD,kBAAc,CAACvuC,OAAf,CAAuB,UAASgvC,aAAT,EAAwB;AAC7C,UAAMC,oBAAoB,GAAGxyC,WAAW,CAAC2Z,iBAAZ,CAA8B44B,aAA9B,CAA7B;;AAEA,UAAI,CAACC,oBAAD,IAAyB,CAACA,oBAAoB,CAAC5kC,KAAnD,EAA0D;AACxD;AACD;;AAED,UAAM6kC,aAAa,GAAGD,oBAAoB,CAAC5kC,KAArB,CAA2BgmB,OAAjD;AACA,UAAM8e,gBAAgB,GAAG1yC,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CACvB,kBADuB,EAEvByV,aAFuB,CAAzB;;AAKA,UAAI,CAACC,gBAAD,IAAqB,CAACA,gBAAgB,CAACrH,oBAA3C,EAAiE;AAC/D;AACD;;AAED,UAAMsH,mBAAmB,GAAGxnB,yEAAgB,CAC1CunB,gBAAgB,CAACrH,oBADyB,CAA5C;;AAIA,UAAI4G,WAAW,CAACrlB,cAAZ,CAA2B4lB,oBAA3B,CAAJ,EAAsD;AACpD;AACD;;AACDP,iBAAW,CAACK,SAAZ,CAAsBG,aAAtB,IAAuC,EAAvC;AAEAR,iBAAW,CAAChc,QAAZ,CAAqB6b,cAArB,CAAoC74B,IAApC,CAAyCw5B,aAAzC;AAEAV,oBAAc,CAACxuC,OAAf,CAAuB,UAASqvC,aAAT,EAAwB;AAC7C,YAAMC,oBAAoB,GAAG7yC,WAAW,CAAC2Z,iBAAZ,CAC3Bi5B,aAD2B,CAA7B;;AAIA,YAAI,CAACC,oBAAD,IAAyB,CAACA,oBAAoB,CAACjlC,KAAnD,EAA0D;AACxD;AACD;;AAED,YAAMklC,aAAa,GAAGD,oBAAoB,CAACjlC,KAArB,CAA2BgmB,OAAjD;AAEAqe,mBAAW,CAAChc,QAAZ,CAAqB8b,cAArB,CAAoC94B,IAApC,CAAyC65B,aAAzC;;AAEA,YAAIP,aAAa,KAAKK,aAAtB,EAAqC;AACnC;AACD;;AAED,YAAIH,aAAa,KAAKK,aAAtB,EAAqC;AACnC;AACD;;AAED,YACEb,WAAW,CAACK,SAAZ,CAAsBG,aAAtB,EAAqC7lB,cAArC,CAAoDkmB,aAApD,CADF,EAEE;AACA;AACD;;AAED,YAAMC,gBAAgB,GAAG/yC,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CACvB,kBADuB,EAEvB8V,aAFuB,CAAzB;;AAKA,YAAI,CAACC,gBAAD,IAAqB,CAACA,gBAAgB,CAAC1H,oBAA3C,EAAiE;AAC/D;AACD;;AAED,YAAM2H,mBAAmB,GAAG7nB,yEAAgB,CAC1C4nB,gBAAgB,CAAC1H,oBADyB,CAA5C;AAIA4G,mBAAW,CAACK,SAAZ,CAAsBG,aAAtB,EACEK,aADF,IAEIE,mBAAmB,CAACC,KAApB,GAA4BC,GAA5B,CAAgCP,mBAAhC,CAFJ;AAGD,OA3CD;;AA6CA,UAAI,CAAC1wC,MAAM,CAACC,IAAP,CAAY+vC,WAAW,CAACK,SAAZ,CAAsBG,aAAtB,CAAZ,EAAkDtvC,MAAvD,EAA+D;AAC7D,eAAO8uC,WAAW,CAACK,SAAZ,CAAsBG,aAAtB,CAAP;AACD;AACF,KA5ED;AA6ED,GAxFD;AA0FA;;;;;;;;;;AAQA,WAASU,SAAT,CAAmBZ,aAAnB,EAAkCxqC,SAAlC,EAA6C;AAC3C,QAAMqrC,UAAU,GAAG,CAACvB,IAAI,CAACjX,OAAzB;AACA,QAAMyY,UAAU,GAAG,CAACvB,cAAc,CAAC3uC,MAAhB,IAA0B,CAAC4uC,cAAc,CAAC5uC,MAA7D;;AAEA,QAAIiwC,UAAU,IAAIC,UAAlB,EAA8B;AAC5B;AACD;;AAEDrB,qBAAiB,GAAG,IAApB;AACAD,kBAAc,CAACxuC,OAAf,CAAuB,UAASqvC,aAAT,EAAwB;AAC7C,UAAMU,WAAW,GAAGvB,cAAc,CAACxX,OAAf,CAAuBqY,aAAvB,CAApB;;AAEA,UAAIU,WAAW,KAAK,CAAC,CAArB,EAAwB;AACtB;AACD;;AAED,UAAMR,aAAa,GAAGb,WAAW,CAAChc,QAAZ,CAAqB8b,cAArB,CAAoCuB,WAApC,CAAtB;AACA,UAAMC,WAAW,GAAGzB,cAAc,CAACvX,OAAf,CAAuBgY,aAAvB,CAApB;;AAEA,UAAIgB,WAAW,KAAK,CAAC,CAArB,EAAwB;AACtB;AACD;;AAED,UAAMd,aAAa,GAAGR,WAAW,CAAChc,QAAZ,CAAqB6b,cAArB,CAAoCyB,WAApC,CAAtB;AAEA,UAAIC,kBAAJ;;AAEA,UAAIf,aAAa,KAAKK,aAAtB,EAAqC;AACnCU,0BAAkB,GAAG,CAArB;AACD,OAFD,MAEO,IAAIvB,WAAW,CAACK,SAAZ,CAAsBG,aAAtB,MAAyCrzC,SAA7C,EAAwD;AAC7Do0C,0BAAkB,GAChBvB,WAAW,CAACK,SAAZ,CAAsBG,aAAtB,EAAqCK,aAArC,CADF;AAED;;AAEDZ,kBAAY,CACVL,IADU,EAEVU,aAFU,EAGVK,aAHU,EAIV7qC,SAJU,EAKVyrC,kBALU,CAAZ;AAOD,KAhCD;AAiCAxB,qBAAiB,GAAG,KAApB;AACD;AAED;;;;;;;;;AAOA,WAASyB,OAAT,CAAiBj6B,CAAjB,EAAoB;AAClB,QAAMzR,SAAS,GAAGyR,CAAC,CAACxR,MAApB;;AAEA,QAAIgqC,iBAAiB,KAAK,IAA1B,EAAgC;AAC9B;AACD;;AAEDmB,aAAS,CAAC35B,CAAC,CAACC,aAAH,EAAkB1R,SAAlB,CAAT;AACD;AAED;;;;;;;;AAMA,OAAK2rC,SAAL,GAAiB,UAAS/zC,OAAT,EAAkB;AACjC;AACA,QAAM8G,KAAK,GAAGqrC,cAAc,CAACvX,OAAf,CAAuB56B,OAAvB,CAAd;;AAEA,QAAI8G,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChB;AACD,KANgC,CAQjC;;;AACAqrC,kBAAc,CAAC74B,IAAf,CAAoBtZ,OAApB,EATiC,CAWjC;;AACA4S,SAAK,CAACohC,KAAN,CAAY,GAAZ,EAAiBpwC,OAAjB,CAAyB,UAAAqwC,QAAQ,EAAI;AACnCj0C,aAAO,CAACoJ,gBAAR,CAAyB6qC,QAAzB,EAAmCH,OAAnC;AACD,KAFD,EAZiC,CAgBjC;;AACA5B,QAAI,CAACQ,YAAL;AAEAR,QAAI,CAACgC,qBAAL;AACD,GApBD;AAsBA;;;;;;;;AAMA,OAAKC,SAAL,GAAiB,UAASn0C,OAAT,EAAkB;AACjC;AACA,QAAM8G,KAAK,GAAGsrC,cAAc,CAACxX,OAAf,CAAuB56B,OAAvB,CAAd;;AAEA,QAAI8G,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChB;AACD,KANgC,CAQjC;;;AACAsrC,kBAAc,CAAC94B,IAAf,CAAoBtZ,OAApB,EATiC,CAWjC;;AACAkyC,QAAI,CAACQ,YAAL,GAZiC,CAcjC;;AACAH,gBAAY,CAACL,IAAD,EAAOlyC,OAAP,EAAgBA,OAAhB,EAAyB,CAAzB,CAAZ;AAEAkyC,QAAI,CAACgC,qBAAL;AACD,GAlBD;AAoBA;;;;;;;;AAMA,OAAKp0B,GAAL,GAAW,UAAS9f,OAAT,EAAkB;AAC3BkyC,QAAI,CAAC6B,SAAL,CAAe/zC,OAAf;AACAkyC,QAAI,CAACiC,SAAL,CAAen0C,OAAf;AACD,GAHD;AAKA;;;;;;;;AAMA,OAAKo0C,YAAL,GAAoB,UAASp0C,OAAT,EAAkB;AACpC;AACA,QAAM8G,KAAK,GAAGqrC,cAAc,CAACvX,OAAf,CAAuB56B,OAAvB,CAAd;;AAEA,QAAI8G,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChB;AACD,KANmC,CAQpC;;;AACAqrC,kBAAc,CAAChX,MAAf,CAAsBr0B,KAAtB,EAA6B,CAA7B,EAToC,CAWpC;;AACA8L,SAAK,CAACohC,KAAN,CAAY,GAAZ,EAAiBpwC,OAAjB,CAAyB,UAAAqwC,QAAQ,EAAI;AACnCj0C,aAAO,CAACwJ,mBAAR,CAA4ByqC,QAA5B,EAAsCH,OAAtC;AACD,KAFD,EAZoC,CAgBpC;;AACA5B,QAAI,CAACQ,YAAL,GAjBoC,CAmBpC;;AACAc,aAAS,CAACxzC,OAAD,CAAT;AACAkyC,QAAI,CAACgC,qBAAL;AACD,GAtBD;AAwBA;;;;;;;;AAMA,OAAKG,YAAL,GAAoB,UAASr0C,OAAT,EAAkB;AACpC;AACA,QAAM8G,KAAK,GAAGsrC,cAAc,CAACxX,OAAf,CAAuB56B,OAAvB,CAAd;;AAEA,QAAI8G,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChB;AACD,KANmC,CAQpC;;;AACAsrC,kBAAc,CAACjX,MAAf,CAAsBr0B,KAAtB,EAA6B,CAA7B,EAToC,CAWpC;;AACAorC,QAAI,CAACQ,YAAL,GAZoC,CAcpC;;AACAH,gBAAY,CAACL,IAAD,EAAOlyC,OAAP,EAAgBA,OAAhB,EAAyB,CAAzB,CAAZ;AACAkyC,QAAI,CAACgC,qBAAL;AACD,GAjBD;AAmBA;;;;;;;;AAMA,OAAK5W,MAAL,GAAc,UAASt9B,OAAT,EAAkB;AAC9BkyC,QAAI,CAACmC,YAAL,CAAkBr0C,OAAlB;AACAkyC,QAAI,CAACkC,YAAL,CAAkBp0C,OAAlB;AACD,GAHD;AAKA;;;;;;;AAKA,OAAKs0C,iBAAL,GAAyB,YAAW;AAClC,WAAOnC,cAAP;AACD,GAFD;AAIA;;;;;;;AAKA,OAAKoC,iBAAL,GAAyB,YAAW;AAClC,WAAOnC,cAAP;AACD,GAFD;AAIA;;;;;;;;;;AAQA,OAAKxb,YAAL,GAAoB,UAAS52B,OAAT,EAAkBiO,KAAlB,EAAyBrN,QAAzB,EAAmC;AACrDyxC,qBAAiB,GAAG,IAApB;AACAhyC,eAAW,CAACu2B,YAAZ,CAAyB52B,OAAzB,EAAkCiO,KAAlC,EAAyCrN,QAAzC;AACAyxC,qBAAiB,GAAG,KAApB;AACD,GAJD;AAMA;;;;;;;;;AAOA,OAAKmC,WAAL,GAAmB,UAASx0C,OAAT,EAAkBY,QAAlB,EAA4B;AAC7CyxC,qBAAiB,GAAG,IAApB;AACAhyC,eAAW,CAACm0C,WAAZ,CAAwBx0C,OAAxB,EAAiCY,QAAjC;AACAyxC,qBAAiB,GAAG,KAApB;AACD,GAJD;AAMA;;;;;;;;;AAOA,WAASoC,cAAT,CAAwB56B,CAAxB,EAA2B;AACzB,QAAM7Z,OAAO,GAAG6Z,CAAC,CAACxR,MAAF,CAASrI,OAAzB;AAEAkyC,QAAI,CAAC5U,MAAL,CAAYt9B,OAAZ;AACA00C,qFAAyB,CAAC10C,OAAD,CAAzB;AACD;AAED;;;;;;AAIA,OAAKk0C,qBAAL,GAA6B,YAAW;AACtC,QAAMS,QAAQ,GAAG5C,MAAM,CAACI,cAAc,CAAC5S,MAAf,CAAsB6S,cAAtB,CAAD,CAAvB;AAEAuC,YAAQ,CAAC/wC,OAAT,CAAiB,UAAS5D,OAAT,EAAkB;AACjCA,aAAO,CAACwJ,mBAAR,CACEpJ,2DAAQ,CAACC,WAAT,CAAqBgJ,MAArB,CAA4Bsf,gBAD9B,EAEE8rB,cAFF;AAIAz0C,aAAO,CAACoJ,gBAAR,CACEhJ,2DAAQ,CAACC,WAAT,CAAqBgJ,MAArB,CAA4Bsf,gBAD9B,EAEE8rB,cAFF;AAID,KATD;AAUD,GAbD;AAeA;;;;;;AAIA,OAAKG,OAAL,GAAe,YAAW;AACxB,QAAMD,QAAQ,GAAG5C,MAAM,CAACI,cAAc,CAAC5S,MAAf,CAAsB6S,cAAtB,CAAD,CAAvB;AAEAuC,YAAQ,CAAC/wC,OAAT,CAAiB,UAAS5D,OAAT,EAAkB;AACjCkyC,UAAI,CAAC5U,MAAL,CAAYt9B,OAAZ;AACD,KAFD;AAGD,GAND;AAOD;;AAEcsnB,2EAAf,E;;;;;;;;;;;;AC1bA;AAAA;AAAA;AAEA;;;;;;;;;;;;;;AAae,yEAASutB,YAAT,EAAuBjC,aAAvB,EAAsCK,aAAtC,EAAqD;AAClE;AACA,MAAIA,aAAa,KAAKL,aAAtB,EAAqC;AACnC;AACD;;AAED,MAAMvyC,WAAW,GAAGD,2DAAQ,CAACC,WAA7B,CANkE,CAOlE;;AACA,MAAMy0C,cAAc,GAAGz0C,WAAW,CAACQ,WAAZ,CAAwB+xC,aAAxB,CAAvB;AACA,MAAMmC,cAAc,GAAG10C,WAAW,CAACQ,WAAZ,CAAwBoyC,aAAxB,CAAvB,CATkE,CAWlE;;AACA,MACE8B,cAAc,CAAC7zC,KAAf,KAAyB4zC,cAAc,CAAC5zC,KAAxC,IACA6zC,cAAc,CAAC5zC,WAAf,CAA2B7B,CAA3B,KAAiCw1C,cAAc,CAAC3zC,WAAf,CAA2B7B,CAD5D,IAEAy1C,cAAc,CAAC5zC,WAAf,CAA2B9B,CAA3B,KAAiCy1C,cAAc,CAAC3zC,WAAf,CAA2B9B,CAH9D,EAIE;AACA;AACD,GAlBiE,CAoBlE;;;AACA01C,gBAAc,CAAC7zC,KAAf,GAAuB4zC,cAAc,CAAC5zC,KAAtC;AACA6zC,gBAAc,CAAC5zC,WAAf,CAA2B7B,CAA3B,GAA+Bw1C,cAAc,CAAC3zC,WAAf,CAA2B7B,CAA1D;AACAy1C,gBAAc,CAAC5zC,WAAf,CAA2B9B,CAA3B,GAA+By1C,cAAc,CAAC3zC,WAAf,CAA2B9B,CAA1D;AACAw1C,cAAY,CAACL,WAAb,CAAyBvB,aAAzB,EAAwC8B,cAAxC;AACD,C;;;;;;;;;;;;ACxCD;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;AAae,yEAASF,YAAT,EAAuBjC,aAAvB,EAAsCK,aAAtC,EAAqD;AAClE;AACA,MAAIA,aAAa,KAAKL,aAAtB,EAAqC;AACnC;AACD;;AAED,MAAMvyC,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,MAAM20C,yBAAyB,GAAGpsC,kFAAY,CAACgqC,aAAD,EAAgB,OAAhB,CAA9C;AACA,MAAMqC,eAAe,GAAGD,yBAAyB,CAACjoC,IAA1B,CAA+B,CAA/B,CAAxB;AACA,MAAMmoC,yBAAyB,GAAGtsC,kFAAY,CAACqqC,aAAD,EAAgB,OAAhB,CAA9C;AACA,MAAMkC,eAAe,GAAGD,yBAAyB,CAACnoC,IAA1B,CAA+B,CAA/B,CAAxB;AAEA,MAAIosB,eAAe,GAAG8b,eAAe,CAAC15B,mBAAtC,CAZkE,CAclE;;AACA4d,iBAAe,GAAG1N,6DAAI,CACpB0N,eADoB,EAEpB,CAFoB,EAGpBgc,eAAe,CAAC7e,QAAhB,CAAyB9yB,MAAzB,GAAkC,CAHd,CAAtB,CAfkE,CAqBlE;;AACA,MAAI21B,eAAe,KAAKgc,eAAe,CAAC55B,mBAAxC,EAA6D;AAC3D;AACD;;AAED,MAAMyd,mBAAmB,GAAGzS,8EAAkB,CAAC8S,mBAAnB,CAC1B4Z,aAD0B,CAA5B;AAGA,MAAMha,iBAAiB,GAAG1S,8EAAkB,CAAC+S,iBAAnB,CAAqC2Z,aAArC,CAA1B;AACA,MAAM/Z,mBAAmB,GAAG3S,8EAAkB,CAACgT,sBAAnB,CAC1B0Z,aAD0B,CAA5B;;AAIA,MAAIja,mBAAJ,EAAyB;AACvBA,uBAAmB,CAACia,aAAD,CAAnB;AACD;;AAED,MAAI5d,MAAJ;;AAEA,MAAI8f,eAAe,CAACjhB,YAAhB,KAAiC,IAArC,EAA2C;AACzCmB,UAAM,GAAGh1B,WAAW,CAACi1B,SAAZ,CAAsB6f,eAAe,CAAC7e,QAAhB,CAAyB6C,eAAzB,CAAtB,CAAT;AACD,GAFD,MAEO;AACL9D,UAAM,GAAGh1B,WAAW,CAACk1B,iBAAZ,CACP4f,eAAe,CAAC7e,QAAhB,CAAyB6C,eAAzB,CADO,CAAT;AAGD;;AAED9D,QAAM,CAACT,IAAP,CACE,UAAS3mB,KAAT,EAAgB;AACd,QAAMrN,QAAQ,GAAGP,WAAW,CAACQ,WAAZ,CAAwBoyC,aAAxB,CAAjB;AAEAkC,mBAAe,CAAC55B,mBAAhB,GAAsC4d,eAAtC;AACA0b,gBAAY,CAACje,YAAb,CAA0Bqc,aAA1B,EAAyChlC,KAAzC,EAAgDrN,QAAhD;;AACA,QAAIq4B,iBAAJ,EAAuB;AACrBA,uBAAiB,CAACga,aAAD,EAAgBhlC,KAAhB,CAAjB;AACD;AACF,GATH,EAUE,UAAS4mB,KAAT,EAAgB;AACd,QAAMZ,OAAO,GAAGkhB,eAAe,CAAC7e,QAAhB,CAAyB6C,eAAzB,CAAhB;;AAEA,QAAID,mBAAJ,EAAyB;AACvBA,yBAAmB,CAAC+Z,aAAD,EAAgBhf,OAAhB,EAAyBY,KAAzB,CAAnB;AACD;AACF,GAhBH;AAkBD,C;;;;;;;;;;;;ACpFD;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;CAGA;;AAEA;;;;;;;;;;;;;;;;;;AAiBe,yEACbggB,YADa,EAEbjC,aAFa,EAGbK,aAHa,EAIb7qC,SAJa,EAKbyrC,kBALa,EAMb;AACA;AACA,MAAIZ,aAAa,KAAKL,aAAtB,EAAqC;AACnC;AACD;;AAED,MAAMvyC,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,MAAM40C,eAAe,GAAGrsC,kFAAY,CAACgqC,aAAD,EAAgB,OAAhB,CAAZ,CAAqC7lC,IAArC,CAA0C,CAA1C,CAAxB;AACA,MAAM+lC,aAAa,GACjBmC,eAAe,CAAC3e,QAAhB,CAAyB2e,eAAe,CAAC15B,mBAAzC,CADF;AAEA,MAAMw3B,gBAAgB,GAAG1yC,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CACvB,kBADuB,EAEvByV,aAFuB,CAAzB;;AAKA,MACEC,gBAAgB,KAAKtzC,SAArB,IACAszC,gBAAgB,CAACrH,oBAAjB,KAA0CjsC,SAF5C,EAGE;AACA;AACD;;AAED,MAAMuzC,mBAAmB,GAAGxnB,yEAAgB,CAC1CunB,gBAAgB,CAACrH,oBADyB,CAA5C;AAIA,MAAM0J,mBAAmB,GAAGxsC,kFAAY,CAACqqC,aAAD,EAAgB,OAAhB,CAAxC;AACA,MAAM1a,SAAS,GAAG6c,mBAAmB,CAACroC,IAApB,CAAyB,CAAzB,CAAlB;AAEA,MAAIsoC,WAAW,GAAGnf,MAAM,CAACof,SAAzB;AACA,MAAInc,eAAe,GAAG,CAAC,CAAvB;;AAEA,MAAI,CAAC0a,kBAAL,EAAyB;AACvB;AACD;;AAED,MAAM0B,aAAa,GAAGvC,mBAAmB,CAACM,KAApB,GAA4BxzB,GAA5B,CAAgC+zB,kBAAhC,CAAtB;AAEAtb,WAAS,CAACjC,QAAV,CAAmB1yB,OAAnB,CAA2B,UAASqwB,OAAT,EAAkBntB,KAAlB,EAAyB;AAClD,QAAM0uC,UAAU,GAAGn1C,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CAAyB,kBAAzB,EAA6CpJ,OAA7C,CAAnB;;AAEA,QACEuhB,UAAU,KAAK/1C,SAAf,IACA+1C,UAAU,CAAC9J,oBAAX,KAAoCjsC,SAFtC,EAGE;AACA;AACD;;AAED,QAAMg2C,aAAa,GAAGjqB,yEAAgB,CAACgqB,UAAU,CAAC9J,oBAAZ,CAAtC;AACA,QAAM/1B,QAAQ,GAAG4/B,aAAa,CAACG,iBAAd,CAAgCD,aAAhC,CAAjB;;AAEA,QAAI9/B,QAAQ,GAAG0/B,WAAf,EAA4B;AAC1BA,iBAAW,GAAG1/B,QAAd;AACAwjB,qBAAe,GAAGryB,KAAlB;AACD;AACF,GAjBD;;AAmBA,MACEqyB,eAAe,KAAKZ,SAAS,CAAChd,mBAA9B,IACA4d,eAAe,KAAK,CAAC,CAFvB,EAGE;AACA;AACD;;AAED,MAAMH,mBAAmB,GAAGzS,8EAAkB,CAAC8S,mBAAnB,CAC1B4Z,aAD0B,CAA5B;AAGA,MAAMha,iBAAiB,GAAG1S,8EAAkB,CAAC+S,iBAAnB,CAAqC2Z,aAArC,CAA1B;AACA,MAAM/Z,mBAAmB,GAAG3S,8EAAkB,CAACgT,sBAAnB,CAC1B0Z,aAD0B,CAA5B;AAIA1a,WAAS,CAAChd,mBAAV,GAAgC4d,eAAhC;AACA,MAAMwc,UAAU,GAAGpd,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CAAnB;;AAEA,MAAIH,mBAAJ,EAAyB;AACvBA,uBAAmB,CAACia,aAAD,CAAnB;AACD;;AAED,MAAI5d,MAAJ;;AAEA,MAAIkD,SAAS,CAACrE,YAAV,KAA2B,IAA/B,EAAqC;AACnCmB,UAAM,GAAGh1B,WAAW,CAACi1B,SAAZ,CAAsBqgB,UAAtB,CAAT;AACD,GAFD,MAEO;AACLtgB,UAAM,GAAGh1B,WAAW,CAACk1B,iBAAZ,CAA8BogB,UAA9B,CAAT;AACD;;AAEDtgB,QAAM,CAACT,IAAP,CACE,UAAS3mB,KAAT,EAAgB;AACd,QAAMrN,QAAQ,GAAGP,WAAW,CAACQ,WAAZ,CAAwBoyC,aAAxB,CAAjB;;AAEA,QAAI1a,SAAS,CAAChd,mBAAV,KAAkC4d,eAAtC,EAAuD;AACrD;AACD;;AAED0b,gBAAY,CAACje,YAAb,CAA0Bqc,aAA1B,EAAyChlC,KAAzC,EAAgDrN,QAAhD;;AACA,QAAIq4B,iBAAJ,EAAuB;AACrBA,uBAAiB,CAACga,aAAD,EAAgBhlC,KAAhB,CAAjB;AACD;AACF,GAZH,EAaE,UAAS4mB,KAAT,EAAgB;AACd,QAAMZ,OAAO,GAAGsE,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CAAhB;;AAEA,QAAID,mBAAJ,EAAyB;AACvBA,yBAAmB,CAAC+Z,aAAD,EAAgBhf,OAAhB,EAAyBY,KAAzB,CAAnB;AACD;AACF,GAnBH;AAqBD,C;;;;;;;;;;;;AC1ID;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;AAae,yEAASggB,YAAT,EAAuBjC,aAAvB,EAAsCK,aAAtC,EAAqD;AAClE;AACA,MAAIA,aAAa,KAAKL,aAAtB,EAAqC;AACnC;AACD;;AAED,MAAMvyC,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,MAAM40C,eAAe,GAAGrsC,kFAAY,CAACgqC,aAAD,EAAgB,OAAhB,CAAZ,CAAqC7lC,IAArC,CAA0C,CAA1C,CAAxB;AACA,MAAM+lC,aAAa,GACjBmC,eAAe,CAAC3e,QAAhB,CAAyB2e,eAAe,CAAC15B,mBAAzC,CADF;AAEA,MAAMw3B,gBAAgB,GAAG1yC,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CACvB,kBADuB,EAEvByV,aAFuB,CAAzB;;AAKA,MACEC,gBAAgB,KAAKtzC,SAArB,IACAszC,gBAAgB,CAACrH,oBAAjB,KAA0CjsC,SAF5C,EAGE;AACA;AAEA;AACD;;AAED,MAAMuzC,mBAAmB,GAAGxnB,yEAAgB,CAC1CunB,gBAAgB,CAACrH,oBADyB,CAA5C;AAGA,MAAM0J,mBAAmB,GAAGxsC,kFAAY,CAACqqC,aAAD,EAAgB,OAAhB,CAAxC;AACA,MAAM1a,SAAS,GAAG6c,mBAAmB,CAACroC,IAApB,CAAyB,CAAzB,CAAlB;AAEA,MAAIsoC,WAAW,GAAGnf,MAAM,CAACof,SAAzB;AACA,MAAInc,eAAe,GAAG,CAAC,CAAvB;AAEAZ,WAAS,CAACjC,QAAV,CAAmB1yB,OAAnB,CAA2B,UAACqwB,OAAD,EAAUntB,KAAV,EAAoB;AAC7C,QAAM0uC,UAAU,GAAGn1C,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CAAyB,kBAAzB,EAA6CpJ,OAA7C,CAAnB;;AAEA,QACEuhB,UAAU,KAAK/1C,SAAf,IACA+1C,UAAU,CAAC9J,oBAAX,KAAoCjsC,SAFtC,EAGE;AACA;AAEA;AACD;;AAED,QAAMg2C,aAAa,GAAGjqB,yEAAgB,CAACgqB,UAAU,CAAC9J,oBAAZ,CAAtC;AACA,QAAM/1B,QAAQ,GAAG8/B,aAAa,CAACC,iBAAd,CAAgC1C,mBAAhC,CAAjB,CAb6C,CAc7C;;AAEA,QAAIr9B,QAAQ,GAAG0/B,WAAf,EAA4B;AAC1BA,iBAAW,GAAG1/B,QAAd;AACAwjB,qBAAe,GAAGryB,KAAlB;AACD;AACF,GApBD;;AAsBA,MAAIqyB,eAAe,KAAKZ,SAAS,CAAChd,mBAAlC,EAAuD;AACrD;AACD;;AAED,MAAMyd,mBAAmB,GAAGzS,8EAAkB,CAAC8S,mBAAnB,CAC1B4Z,aAD0B,CAA5B;AAGA,MAAMha,iBAAiB,GAAG1S,8EAAkB,CAAC+S,iBAAnB,CAAqC2Z,aAArC,CAA1B;AACA,MAAM/Z,mBAAmB,GAAG3S,8EAAkB,CAACgT,sBAAnB,CAC1B0Z,aAD0B,CAA5B;AAIA1a,WAAS,CAAChd,mBAAV,GAAgC4d,eAAhC;AACA,MAAMwc,UAAU,GAAGpd,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CAAnB;;AAEA,MAAIH,mBAAJ,EAAyB;AACvBA,uBAAmB,CAACia,aAAD,CAAnB;AACD;;AAED,MAAI9Z,eAAe,KAAK,CAAC,CAAzB,EAA4B;AAC1B,QAAI9D,MAAJ;;AAEA,QAAIkD,SAAS,CAACrE,YAAV,KAA2B,IAA/B,EAAqC;AACnCmB,YAAM,GAAGh1B,WAAW,CAACi1B,SAAZ,CAAsBqgB,UAAtB,CAAT;AACD,KAFD,MAEO;AACLtgB,YAAM,GAAGh1B,WAAW,CAACk1B,iBAAZ,CAA8BogB,UAA9B,CAAT;AACD;;AAEDtgB,UAAM,CAACT,IAAP,CACE,UAAS3mB,KAAT,EAAgB;AACd,UAAMrN,QAAQ,GAAGP,WAAW,CAACQ,WAAZ,CAAwBoyC,aAAxB,CAAjB;;AAEA,UAAI1a,SAAS,CAAChd,mBAAV,KAAkC4d,eAAtC,EAAuD;AACrD;AACD;;AAED0b,kBAAY,CAACje,YAAb,CAA0Bqc,aAA1B,EAAyChlC,KAAzC,EAAgDrN,QAAhD;;AACA,UAAIq4B,iBAAJ,EAAuB;AACrBA,yBAAiB,CAACga,aAAD,EAAgBhlC,KAAhB,CAAjB;AACD;AACF,KAZH,EAaE,UAAS4mB,KAAT,EAAgB;AACd,UAAMZ,OAAO,GAAGsE,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CAAhB;;AAEA,UAAID,mBAAJ,EAAyB;AACvBA,2BAAmB,CAAC+Z,aAAD,EAAgBhf,OAAhB,EAAyBY,KAAzB,CAAnB;AACD;AACF,KAnBH;AAqBD;AACF,C;;;;;;;;;;;;AC3HD;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;;AAce,yEAASggB,YAAT,EAAuBjC,aAAvB,EAAsCK,aAAtC,EAAqD7qC,SAArD,EAAgE;AAC7E;AACA,MAAIwqC,aAAa,KAAKK,aAAtB,EAAqC;AACnC;AACD,GAJ4E,CAM7E;;;AACA,MAAI,CAAC7qC,SAAD,IAAc,CAACA,SAAS,CAAC8V,SAA7B,EAAwC;AACtC;AACD;;AAED,MAAM7d,WAAW,GAAGD,2DAAQ,CAACC,WAA7B,CAX6E,CAY7E;;AACA,MAAM+0C,mBAAmB,GAAGxsC,kFAAY,CAACqqC,aAAD,EAAgB,OAAhB,CAAxC;AACA,MAAM1a,SAAS,GAAG6c,mBAAmB,CAACroC,IAApB,CAAyB,CAAzB,CAAlB,CAd6E,CAgB7E;;AACA,MAAIosB,eAAe,GAAGZ,SAAS,CAAChd,mBAAV,GAAgCnT,SAAS,CAAC8V,SAAhE,CAjB6E,CAmB7E;;AACAib,iBAAe,GAAG1N,6DAAI,CAAC0N,eAAD,EAAkB,CAAlB,EAAqBZ,SAAS,CAACjC,QAAV,CAAmB9yB,MAAnB,GAA4B,CAAjD,CAAtB,CApB6E,CAsB7E;;AACA,MAAI+0B,SAAS,CAAChd,mBAAV,KAAkC4d,eAAtC,EAAuD;AACrD;AACD;;AAED,MAAMH,mBAAmB,GAAGzS,8EAAkB,CAAC8S,mBAAnB,CAC1B4Z,aAD0B,CAA5B;AAGA,MAAMha,iBAAiB,GAAG1S,8EAAkB,CAAC+S,iBAAnB,CAAqC2Z,aAArC,CAA1B;AACA,MAAM/Z,mBAAmB,GAAG3S,8EAAkB,CAACgT,sBAAnB,CAC1B0Z,aAD0B,CAA5B;AAIA1a,WAAS,CAAChd,mBAAV,GAAgC4d,eAAhC;AACA,MAAMwc,UAAU,GAAGpd,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CAAnB;;AAEA,MAAIH,mBAAJ,EAAyB;AACvBA,uBAAmB,CAACia,aAAD,CAAnB;AACD;;AAED,MAAI5d,MAAJ;;AAEA,MAAIkD,SAAS,CAACrE,YAAV,KAA2B,IAA/B,EAAqC;AACnCmB,UAAM,GAAGh1B,WAAW,CAACi1B,SAAZ,CAAsBqgB,UAAtB,CAAT;AACD,GAFD,MAEO;AACLtgB,UAAM,GAAGh1B,WAAW,CAACk1B,iBAAZ,CAA8BogB,UAA9B,CAAT;AACD;;AAEDtgB,QAAM,CAACT,IAAP,CACE,UAAS3mB,KAAT,EAAgB;AACd,QAAMrN,QAAQ,GAAGP,WAAW,CAACQ,WAAZ,CAAwBoyC,aAAxB,CAAjB;;AAEA,QAAI1a,SAAS,CAAChd,mBAAV,KAAkC4d,eAAtC,EAAuD;AACrD;AACD;;AAED0b,gBAAY,CAACje,YAAb,CAA0Bqc,aAA1B,EAAyChlC,KAAzC,EAAgDrN,QAAhD;;AACA,QAAIq4B,iBAAJ,EAAuB;AACrBA,uBAAiB,CAACga,aAAD,EAAgBhlC,KAAhB,CAAjB;AACD;AACF,GAZH,EAaE,UAAS4mB,KAAT,EAAgB;AACd,QAAMZ,OAAO,GAAGsE,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CAAhB;;AAEA,QAAID,mBAAJ,EAAyB;AACvBA,yBAAmB,CAAC+Z,aAAD,EAAgBhf,OAAhB,EAAyBY,KAAzB,CAAnB;AACD;AACF,GAnBH;AAqBD,C;;;;;;;;;;;;AC1FD;AAAA;AAAA;AAEA;;;;;;;;;;;;;;AAae,yEAASggB,YAAT,EAAuBjC,aAAvB,EAAsCK,aAAtC,EAAqD;AAClE;AACA,MAAIA,aAAa,KAAKL,aAAtB,EAAqC;AACnC;AACD;;AAEDxyC,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC+oC,aAAjC;AACD,C;;;;;;;;;;;;ACtBD;AAAA;AAAA;AAEA;;;;;;;;;;;;;;AAae,yEAAS4B,YAAT,EAAuBjC,aAAvB,EAAsCK,aAAtC,EAAqD;AAClE;AACA,MAAIA,aAAa,KAAKL,aAAtB,EAAqC;AACnC;AACD;;AAED,MAAMvyC,WAAW,GAAGD,2DAAQ,CAACC,WAA7B,CANkE,CAOlE;;AACA,MAAMy0C,cAAc,GAAGz0C,WAAW,CAACQ,WAAZ,CAAwB+xC,aAAxB,CAAvB;AACA,MAAMmC,cAAc,GAAG10C,WAAW,CAACQ,WAAZ,CAAwBoyC,aAAxB,CAAvB,CATkE,CAWlE;;AACA,MACE8B,cAAc,CAACa,GAAf,CAAmBC,WAAnB,KAAmCf,cAAc,CAACc,GAAf,CAAmBC,WAAtD,IACAd,cAAc,CAACa,GAAf,CAAmBE,YAAnB,KAAoChB,cAAc,CAACc,GAAf,CAAmBE,YADvD,IAEAf,cAAc,CAACgB,MAAf,KAA0BjB,cAAc,CAACiB,MAH3C,EAIE;AACA;AACD,GAlBiE,CAoBlE;;;AACAhB,gBAAc,CAACa,GAAf,CAAmBC,WAAnB,GAAiCf,cAAc,CAACc,GAAf,CAAmBC,WAApD;AACAd,gBAAc,CAACa,GAAf,CAAmBE,YAAnB,GAAkChB,cAAc,CAACc,GAAf,CAAmBE,YAArD;AACAf,gBAAc,CAACgB,MAAf,GAAwBjB,cAAc,CAACiB,MAAvC;AACAlB,cAAY,CAACL,WAAb,CAAyBvB,aAAzB,EAAwC8B,cAAxC;AACD,C;;;;;;;;;;;;;;;;;;;;ACxCD;AACA;AACA;AACA;AAEA,IAAMtrC,MAAM,GAAGC,iEAAS,CAAC,qBAAD,CAAxB;AAEA;;;;;;;;;;;;;;;AAce,yEAAS+F,IAAT,EAAexF,IAAf,EAAqB+rC,IAArB,EAA8C;AAAA,MAAnBC,SAAmB,uEAAP,KAAO;;AAC3D,MAAI,CAACC,YAAY,CAACzmC,IAAD,EAAOxF,IAAP,EAAa+rC,IAAb,CAAjB,EAAqC;AACnC;AACD;;AAED,UAAQvmC,IAAR;AACE,SAAK,QAAL;AACE0mC,wEAAc,CAAClsC,IAAD,EAAO+rC,IAAP,EAAaC,SAAb,CAAd;AACA;;AACF,SAAK,OAAL;AACEG,uEAAa,CAACnsC,IAAD,EAAO+rC,IAAP,EAAaC,SAAb,CAAb;AACA;;AACF;AACEI,sEAAY,CAAC5mC,IAAD,EAAOxF,IAAP,EAAa+rC,IAAb,EAAmBC,SAAnB,CAAZ;AARJ;AAUD;AAED;;;;;;;;;;;;;AAYA,SAASC,YAAT,CAAsBzmC,IAAtB,EAA4BxF,IAA5B,EAAkC+rC,IAAlC,EAAwC;AACtC,MAAI,CAACvmC,IAAL,EAAW;AACThG,UAAM,CAACmlB,IAAP,CAAY,8CAAZ;AAEA,WAAO,KAAP;AACD;;AAED,MAAI,CAAC3kB,IAAL,EAAW;AACTR,UAAM,CAACmlB,IAAP,kDAA6Dnf,IAA7D;AAEA,WAAO,KAAP;AACD;;AAED,MAAI,qEAAOumC,IAAP,MAAgB,QAAhB,IAA4B,OAAOA,IAAP,KAAgB,UAAhD,EAA4D;AAC1DvsC,UAAM,CAACmlB,IAAP,0DAEEonB,IAFF,uEAGSA,IAHT;AAMA,WAAO,KAAP;AACD;;AAED,SAAO,IAAP;AACD,C;;;;;;;;;;;;AC1ED;AAAA;AAAA;AAAA;AACA;AAEA,IAAMvsC,MAAM,GAAGC,iEAAS,CAAC,yBAAD,CAAxB;AAEA;;;;;;;;;;;;;;;AAce,yEAAS+F,IAAT,EAAexF,IAAf,EAAqB+rC,IAArB,EAA8C;AAAA,MAAnBC,SAAmB,uEAAP,KAAO;AAC3D,MAAMK,OAAO,aAAM7mC,IAAN,cAAcxF,IAAd,CAAb;AACA,MAAMssC,iBAAiB,GAAGC,oBAAoB,CAACF,OAAD,CAA9C;;AAEA,MAAIC,iBAAiB,IAAI,CAACN,SAA1B,EAAqC;AACnCxsC,UAAM,CAACmlB,IAAP,CAAY,0BAAZ,EAAwC0nB,OAAxC;AAEA;AACD;;AAED,MAAIC,iBAAJ,EAAuB;AACrB9sC,UAAM,CAACmlB,IAAP,CAAY,gBAAZ,EAA8B0nB,OAA9B;AACD;;AAEDp0B,6CAAG,CAACo0B,OAAD,CAAH,GAAeN,IAAf;AACD;;AAED,SAASQ,oBAAT,CAA8BF,OAA9B,EAAuC;AACrC,SAAOp0B,2CAAG,CAACo0B,OAAD,CAAH,KAAiB72C,SAAxB;AACD,C;;;;;;;;;;;;ACtCD;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA,IAAMgK,MAAM,GAAGC,iEAAS,CAAC,0BAAD,CAAxB;AACA;;;;;;;;;;;;;;AAce,yEAASO,IAAT,EAAewsC,KAAf,EAAyC;AAAA,MAAnBR,SAAmB,uEAAP,KAAO;AACtD,MAAMM,iBAAiB,GAAGG,iBAAiB,CAACzsC,IAAD,CAA3C;;AAEA,MAAIssC,iBAAiB,IAAI,CAACN,SAA1B,EAAqC;AACnCxsC,UAAM,CAACmlB,IAAP,CAAY,iCAAZ,EAA+C3kB,IAA/C;AAEA;AACD;;AAED,MAAIssC,iBAAJ,EAAuB;AACrB9sC,UAAM,CAACmlB,IAAP,CAAY,uBAAZ,EAAqC3kB,IAArC;AACD,GAXqD,CAatD;;;AACAwf,0DAAM,CAACxf,IAAD,CAAN,GAAewsC,KAAf,CAdsD,CAgBtD;;AACAv0B,6CAAG,kBAAWjY,IAAX,EAAH,GAAwBwf,wDAAM,CAACxf,IAAD,CAA9B;AACD;;AAED,SAASysC,iBAAT,CAA2BzsC,IAA3B,EAAiC;AAC/B,SAAOwf,wDAAM,CAACxf,IAAD,CAAN,KAAiBxK,SAAxB;AACD,C;;;;;;;;;;;;ACzCD;AAAA;AAAA;AAAA;AACA;AAEA,IAAMgK,MAAM,GAAGC,iEAAS,CAAC,2BAAD,CAAxB;AAEA;;;;;;;;;;;;;;AAae,yEAASO,IAAT,EAAe0sC,SAAf,EAA6C;AAAA,MAAnBV,SAAmB,uEAAP,KAAO;AAC1D,MAAMM,iBAAiB,GAAGK,sBAAsB,CAAC3sC,IAAD,CAAhD;;AAEA,MAAIssC,iBAAiB,IAAI,CAACN,SAA1B,EAAqC;AACnCxsC,UAAM,CAACmlB,IAAP,CAAY,iDAAZ,EAA+D3kB,IAA/D;AAEA;AACD;;AAED,MAAIssC,iBAAJ,EAAuB;AACrB9sC,UAAM,CAACmlB,IAAP,CAAY,uBAAZ,EAAqC3kB,IAArC;AACD;;AAED8e,yDAAO,CAAC9e,IAAD,CAAP,GAAgB0sC,SAAhB;;AAEA,MAAI,OAAO5tB,uDAAO,CAAC9e,IAAD,CAAP,CAAcgf,kBAArB,KAA4C,UAAhD,EAA4D;AAC1DF,2DAAO,CAAC9e,IAAD,CAAP,CAAcgf,kBAAd;AACD;AACF;;AAED,SAAS2tB,sBAAT,CAAgC3sC,IAAhC,EAAsC;AACpC,SAAO8e,uDAAO,CAAC9e,IAAD,CAAP,KAAkBxK,SAAzB;AACD,C;;;;;;;;;;;;ACxCD;AAAA;AAAA;AAEA;;;;;;;;;;;;;AAYe,yEAASo3C,KAAT,EAAmC;AAAA,MAAnBZ,SAAmB,uEAAP,KAAO;AAChDY,OAAK,CAACjzC,OAAN,CAAc,gBAA0B;AAAA,QAAvB6L,IAAuB,QAAvBA,IAAuB;AAAA,QAAjBxF,IAAiB,QAAjBA,IAAiB;AAAA,QAAX+rC,IAAW,QAAXA,IAAW;AACtC9uB,gEAAQ,CAACzX,IAAD,EAAOxF,IAAP,EAAa+rC,IAAb,EAAmBC,SAAnB,CAAR;AACD,GAFD;AAGD,C;;;;;;;;;;;;AClBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAMa,kBAAkB,GAAG,EAA3B;AAEA;;;;;;;;;;;;;AAYA,SAAS72B,cAAT,CAAwBvV,QAAxB,EAAkC1K,OAAlC,EAA2C;AACzC,MAAI,CAAC82C,kBAAkB,CAACpsC,QAAD,CAAvB,EAAmC;AACjC,WAAO,EAAP;AACD;;AAED,MAAMqsC,WAAW,GAAGD,kBAAkB,CAACpsC,QAAD,CAAtC;AACA,MAAMssC,aAAa,GAAGD,WAAW,CAAC1qC,IAAZ,CACpB,UAAA4qC,gBAAgB;AAAA,WAAIA,gBAAgB,CAACj3C,OAAjB,KAA6BA,OAAjC;AAAA,GADI,CAAtB;;AAIA,MAAI,CAACg3C,aAAL,EAAoB;AAClB,WAAO,EAAP;AACD;;AAED,SAAOA,aAAa,CAACz3C,OAArB;AACD;AAED;;;;;;;;;;;;;;AAYA,SAAS4gB,cAAT,CAAwBzV,QAAxB,EAAkC1K,OAAlC,EAA2CT,OAA3C,EAAoD;AAClD,MAAI,CAACu3C,kBAAkB,CAACpsC,QAAD,CAAvB,EAAmC;AACjCosC,sBAAkB,CAACpsC,QAAD,CAAlB,GAA+B,CAC7B;AACE1K,aAAO,EAAPA,OADF;AAEET,aAAO,EAAPA;AAFF,KAD6B,CAA/B;AAOA;AACD;;AAED,MAAMw3C,WAAW,GAAGD,kBAAkB,CAACpsC,QAAD,CAAtC;AACA,MAAM5D,KAAK,GAAGiwC,WAAW,CAAClT,SAAZ,CACZ,UAAAoT,gBAAgB;AAAA,WAAIA,gBAAgB,CAACj3C,OAAjB,KAA6BA,OAAjC;AAAA,GADJ,CAAd;;AAIA,MAAI8G,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChBgwC,sBAAkB,CAACpsC,QAAD,CAAlB,CAA6B4O,IAA7B,CAAkC;AAChCtZ,aAAO,EAAPA,OADgC;AAEhCT,aAAO,EAAPA;AAFgC,KAAlC;AAID,GALD,MAKO;AACL,QAAM23C,cAAc,GAAGJ,kBAAkB,CAACpsC,QAAD,CAAlB,CAA6B5D,KAA7B,EAAoCvH,OAApC,IAA+C,EAAtE;AAEAu3C,sBAAkB,CAACpsC,QAAD,CAAlB,CAA6B5D,KAA7B,EAAoCvH,OAApC,GAA8C+C,MAAM,CAAC8lB,MAAP,CAC5C8uB,cAD4C,EAE5C33C,OAF4C,CAA9C;AAID;AACF;AAED;;;;;;;;;;;;;AAWA,SAAS43C,gBAAT,CAA0BzsC,QAA1B,EAAoC1K,OAApC,EAA6C;AAC3C,MAAM+2C,WAAW,GAAGD,kBAAkB,CAACpsC,QAAD,CAAtC;;AAEA,MAAIqsC,WAAJ,EAAiB;AACfD,sBAAkB,CAACpsC,QAAD,CAAlB,GAA+BqsC,WAAW,CAACvuC,MAAZ,CAC7B,UAAAyuC,gBAAgB;AAAA,aAAIA,gBAAgB,CAACj3C,OAAjB,KAA6BA,OAAjC;AAAA,KADa,CAA/B;AAGD;AACF;AAED;;;;;;;;;;;;;;;;AAcA,SAASo3C,0BAAT,CAAoCzsC,QAApC,EAA8C;AAC5C,SAAO0sC,0BAA0B,CAAC1sC,QAAD,CAAjC;AACD;AAED;;;;;;;;;;;;AAUA,SAAS0sC,0BAAT,CAAoC3sC,QAApC,EAA8C;AAC5C,SAAOosC,kBAAkB,CAACpsC,QAAD,CAAzB;AACD;AAED;;;;;;;;;;;;AAUA,SAASgqC,yBAAT,CAAmC10C,OAAnC,EAA4C;AAC1C,OAAK,IAAM0K,QAAX,IAAuBosC,kBAAvB,EAA2C;AACzCA,sBAAkB,CAACpsC,QAAD,CAAlB,GAA+BosC,kBAAkB,CAACpsC,QAAD,CAAlB,CAA6BlC,MAA7B,CAC7B,UAAAyuC,gBAAgB;AAAA,aAAIA,gBAAgB,CAACj3C,OAAjB,KAA6BA,OAAjC;AAAA,KADa,CAA/B;AAGD;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChJD;AACA;AAEA;AACA;AAKA;AACA;AACA;AACA;AAEA;;;;;;;;;;IASqBqjB,c;;;;;AACnB,4BAAwB;AAAA;;AAAA,QAAZ2d,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,YADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnB8+B,eAAS,EAAEkJ,mEAAgBA;AAHR,KAArB;AAMA,kNAAMvW,KAAN,EAAasW,YAAb;AAEA,UAAKE,iBAAL,GAAyB,MAAKC,eAAL,CAAqBzsC,IAArB,4FAAzB;AACA,UAAK+C,iBAAL,GAAyB,MAAK0pC,eAAL,CAAqBzsC,IAArB,4FAAzB;AACA,UAAK2mB,iBAAL,GAAyB,MAAK8lB,eAAL,CAAqBzsC,IAArB,4FAAzB;AAXsB;AAYvB;;;;oCAEe7C,G,EAAK;AACnB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADmB,UAEXrI,OAFW,GAECoI,SAFD,CAEXpI,OAFW,EAInB;;AACAmI,SAAG,CAAC8I,wBAAJ,GALmB,CAOnB;;AACA,UAAMT,QAAQ,GAAG5H,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA7B;;AAEA,UAAI,CAACuG,QAAL,EAAe;AACb;AACD,OAZkB,CAcnB;;;AACA,UAAMoiC,aAAa,GAAG5yC,OAAtB;AACA,UAAM6yC,oBAAoB,GAAGzyC,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAC3B44B,aAD2B,CAA7B;AAGA,UAAME,aAAa,GAAGD,oBAAoB,CAAC5kC,KAArB,CAA2BgmB,OAAjD;AACA,UAAM8e,gBAAgB,GAAG3yC,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CACvB,kBADuB,EAEvByV,aAFuB,CAAzB;;AAKA,UAAI,CAACC,gBAAL,EAAuB;AACrB;AACD,OA3BkB,CA6BnB;;;AACA,UAAM2E,gBAAgB,GAAGtvC,SAAS,CAACkD,aAAV,CAAwB2C,KAAjD,CA9BmB,CAgCnB;;AACA,UAAM0pC,YAAY,GAAG/sB,yFAAwB,CAC3C8sB,gBAD2C,EAE3C3E,gBAF2C,CAA7C,CAjCmB,CAsCnB;;AACA,UAAM6E,WAAW,GAAGpnC,QAAQ,CAACzD,IAAT,CAAc,CAAd,EAAiB8qC,sBAArC;AACA,UAAM72B,eAAe,GAAG42B,WAAW,CAACtD,iBAAZ,EAAxB,CAxCmB,CA0CnB;;AACAtzB,qBAAe,CAACpd,OAAhB,CAAwB,UAASqvC,aAAT,EAAwB;AAC9C;AACA,YAAIA,aAAa,KAAKL,aAAtB,EAAqC;AACnC;AACD;;AAED,YAAIyC,WAAW,GAAGnf,MAAM,CAACof,SAAzB;AACA,YAAInc,eAAe,GAAG,CAAC,CAAvB;AAEA,YAAMic,mBAAmB,GAAGxsC,kFAAY,CAACqqC,aAAD,EAAgB,OAAhB,CAAxC;;AAEA,YAAImC,mBAAmB,KAAK31C,SAA5B,EAAuC;AACrC;AACD;;AAED,YAAM84B,SAAS,GAAG6c,mBAAmB,CAACroC,IAApB,CAAyB,CAAzB,CAAlB,CAf8C,CAiB9C;;AACAwrB,iBAAS,CAACjC,QAAV,CAAmB1yB,OAAnB,CAA2B,UAASqwB,OAAT,EAAkBntB,KAAlB,EAAyB;AAClD,cAAM0uC,UAAU,GAAGp1C,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CACjB,kBADiB,EAEjBpJ,OAFiB,CAAnB,CADkD,CAMlD;;AACA,cACE,CAACuhB,UAAD,IACA,CAACA,UAAU,CAAC9J,oBADZ,IAEA,CAAC8J,UAAU,CAACsC,UAFZ,IAGA,CAACtC,UAAU,CAACuC,aAJd,EAKE;AACA;AACD;;AAED,cAAMtC,aAAa,GAAGjqB,0EAAgB,CAACgqB,UAAU,CAAC9J,oBAAZ,CAAtC;AACA,cAAMsM,GAAG,GAAGxsB,0EAAgB,CAACgqB,UAAU,CAACsC,UAAZ,CAA5B;AACA,cAAMG,MAAM,GAAGzsB,0EAAgB,CAACgqB,UAAU,CAACuC,aAAZ,CAA/B;AACA,cAAMG,MAAM,GAAGD,MAAM,CAAC3E,KAAP,GAAe6E,KAAf,CAAqBH,GAAG,CAAC1E,KAAJ,EAArB,CAAf;AACA,cAAM39B,QAAQ,GAAGxW,IAAI,CAACmC,GAAL,CACf42C,MAAM,CAAC5E,KAAP,GAAe8E,GAAf,CAAmB3C,aAAnB,IAAoCyC,MAAM,CAAC5E,KAAP,GAAe8E,GAAf,CAAmBT,YAAnB,CADrB,CAAjB;;AAIA,cAAIhiC,QAAQ,GAAG0/B,WAAf,EAA4B;AAC1BA,uBAAW,GAAG1/B,QAAd;AACAwjB,2BAAe,GAAGryB,KAAlB;AACD;AACF,SA5BD;;AA8BA,YAAIqyB,eAAe,KAAKZ,SAAS,CAAChd,mBAAlC,EAAuD;AACrD;AACD,SAlD6C,CAoD9C;;;AACA,YACE4d,eAAe,KAAK,CAAC,CAArB,IACAZ,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,MAAwC15B,SAF1C,EAGE;AACA,cAAMu5B,mBAAmB,GAAGzS,8EAAkB,CAAC8S,mBAAnB,CAC1B4Z,aAD0B,CAA5B;AAGA,cAAMha,iBAAiB,GAAG1S,8EAAkB,CAAC+S,iBAAnB,CACxB2Z,aADwB,CAA1B;AAGA,cAAM/Z,mBAAmB,GAAG3S,8EAAkB,CAACgT,sBAAnB,CAC1B0Z,aAD0B,CAA5B;;AAIA,cAAIja,mBAAJ,EAAyB;AACvBA,+BAAmB,CAACia,aAAD,CAAnB;AACD;;AAED,cAAI5d,MAAJ;;AAEA,cAAIkD,SAAS,CAACrE,YAAV,KAA2B,IAA/B,EAAqC;AACnCmB,kBAAM,GAAGj1B,2DAAQ,CAACC,WAAT,CAAqBi1B,SAArB,CACPiD,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CADO,CAAT;AAGD,WAJD,MAIO;AACL9D,kBAAM,GAAGj1B,2DAAQ,CAACC,WAAT,CAAqBk1B,iBAArB,CACPgD,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CADO,CAAT;AAGD;;AAED9D,gBAAM,CAACT,IAAP,CACE,UAAS3mB,KAAT,EAAgB;AACd,gBAAMrN,QAAQ,GAAGR,2DAAQ,CAACC,WAAT,CAAqBQ,WAArB,CAAiCoyC,aAAjC,CAAjB;AAEA1a,qBAAS,CAAChd,mBAAV,GAAgC4d,eAAhC;AACA/4B,uEAAQ,CAACC,WAAT,CAAqBu2B,YAArB,CAAkCqc,aAAlC,EAAiDhlC,KAAjD,EAAwDrN,QAAxD;;AACA,gBAAIq4B,iBAAJ,EAAuB;AACrBA,+BAAiB,CAACga,aAAD,EAAgBhlC,KAAhB,CAAjB;AACD;AACF,WATH,EAUE,UAAS4mB,KAAT,EAAgB;AACd,gBAAMZ,OAAO,GAAGsE,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CAAhB;;AAEA,gBAAID,mBAAJ,EAAyB;AACvBA,iCAAmB,CAAC+Z,aAAD,EAAgBhf,OAAhB,EAAyBY,KAAzB,CAAnB;AACD;AACF,WAhBH;AAkBD;AACF,OAtGD;AAuGD;;;mCAEc70B,O,QAAsD;AAAA,UAA3C8L,eAA2C,QAA3CA,eAA2C;AAAA,UAA1B+rC,sBAA0B,QAA1BA,sBAA0B;AACnE13B,6EAAc,CAAC,KAAKlW,IAAN,EAAYjK,OAAZ,EAAqB;AAAE8L,uBAAe,EAAfA;AAAF,OAArB,CAAd,CADmE,CAGnE;;AACAka,0FAAc,CAAChmB,OAAD,EAAU,KAAKiK,IAAf,CAAd;AAEAD,wFAAY,CAAChK,OAAD,EAAU,KAAKiK,IAAf,EAAqB;AAC/B4tC,8BAAsB,EAAtBA;AAD+B,OAArB,CAAZ;AAGD;;;;EA5KyC3uB,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvB5C;AACA;AAEA;;;;;;;;;;IASqB5F,wB;;;;;AACnB,sCAAwB;AAAA,QAAZ0d,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,sBADa;AAEnBsF,+BAAyB,EAAE,CAAC,WAAD;AAFR,KAArB;AADsB,2NAMhByxB,KANgB,EAMTsW,YANS;AAOvB;;;;sCAEiBnvC,G,EAAK;AACrB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAEAjI,iEAAQ,CAACC,WAAT,CAAqBg4C,WAArB,CAAiCjwC,SAAS,CAACpI,OAA3C;AACD;;;;EAdmDkpB,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZtD;AACA;AAEA;AACA;AACA;AACA;AACA;AAMA;AACA;AAEA;;;;;;;;;;IASqB3F,a;;;;;AACnB,2BAAwB;AAAA;;AAAA,QAAZyd,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,WADa;AAEnBquC,gBAAU,EAAE;AACVC,eAAO,EAAEC,eADC;AAEVC,eAAO,EAAEC;AAFC,OAFO;AAMnBF,qBAAe,EAAE,SANE;AAOnBjpC,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAPR;AAQnB8+B,eAAS,EAAEsK,8DAAWA;AARH,KAArB;AAWA,iNAAM3X,KAAN,EAAasW,YAAb;AAEA,UAAK3lB,iBAAL,GAAyB,MAAKinB,oBAAL,CAA0B5tC,IAA1B,4FAAzB;AACA,UAAK4mB,gBAAL,GAAwB,MAAKinB,uBAAL,CAA6B7tC,IAA7B,4FAAxB;AAEA,UAAK+C,iBAAL,GAAyB,MAAK6qC,oBAAL,CAA0B5tC,IAA1B,4FAAzB;AACA,UAAK6mB,eAAL,GAAuB,MAAKgnB,uBAAL,CAA6B7tC,IAA7B,4FAAvB;AAEA,UAAK8tC,aAAL,GAAqB,EAArB;AApBsB;AAqBvB;;;;yCAEoB3wC,G,EAAK;AACxB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADwB,UAEhBrI,OAFgB,GAEJoI,SAFI,CAEhBpI,OAFgB;AAIxB,WAAK84C,aAAL,GAAqB1wC,SAArB;AACAhI,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;;;4CAEuBmI,G,EAAK;AAC3B,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD2B,UAEnBrI,OAFmB,GAEPoI,SAFO,CAEnBpI,OAFmB;AAI3B,WAAK84C,aAAL,GAAqB,EAArB;AACA14C,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;;;mCAEcmI,G,EAAK;AAClB,UAAI,CAAC,KAAK2wC,aAAL,CAAmBxtC,aAAxB,EAAuC;AACrC;AACD;;AAED,UACEnD,GAAG,IACHA,GAAG,CAACE,MADJ,IAEA0wC,OAAO,CAACz2C,MAAM,CAACC,IAAP,CAAY,KAAKu2C,aAAL,CAAmBxtC,aAA/B,EAA8C9H,MAA/C,CAHT,EAIE;AACA2E,WAAG,CAACE,MAAJ,CAAWiD,aAAX,GAA2B,KAAKwtC,aAAL,CAAmBxtC,aAA9C;AACA,aAAK6lB,mBAAL,CAAyBhpB,GAAzB;AACD;AACF;;;;EArDwC+gB,yD;AAwD3C;;;;;;;;;;AAMA,SAASsvB,eAAT,CAAyBrwC,GAAzB,EAA8B;AAC5B,MAAM00B,MAAM,GAAG,KAAK/zB,aAApB;AACA,MAAMzI,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,MAAM+H,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAH4B,MAIpBrI,OAJoB,GAI6BoI,SAJ7B,CAIpBpI,OAJoB;AAAA,MAIXiO,KAJW,GAI6B7F,SAJ7B,CAIX6F,KAJW;AAAA,MAIJ3C,aAJI,GAI6BlD,SAJ7B,CAIJkD,aAJI;AAAA,MAIWgK,aAJX,GAI6BlN,SAJ7B,CAIWkN,aAJX;AAM5B,MAAM9W,OAAO,GAAGyW,wEAAa,CAACK,aAAa,CAAC1O,MAAf,CAA7B;AAEA,MAAM9H,KAAK,GAAGoD,sEAAU,CAACk+B,cAAX,EAAd;AACA,MAAM4Y,UAAU,GAAGxzC,qEAAS,CAACS,WAAV,EAAnB;AAEA,MAAM3G,CAAC,GAAGH,IAAI,CAACi7B,KAAL,CAAW9uB,aAAa,CAAC2C,KAAd,CAAoB3O,CAA/B,CAAV;AACA,MAAMD,CAAC,GAAGF,IAAI,CAACi7B,KAAL,CAAW9uB,aAAa,CAAC2C,KAAd,CAAoB5O,CAA/B,CAAV;;AAEA,MAAIC,CAAC,GAAG,CAAJ,IAASD,CAAC,GAAG,CAAb,IAAkBC,CAAC,IAAI2O,KAAK,CAACskB,OAA7B,IAAwClzB,CAAC,IAAI4O,KAAK,CAACsG,IAAvD,EAA6D;AAC3D;AACD;;AAEDjO,iEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvBorB,wEAAS,CAACprB,OAAD,EAAUq+B,MAAV,CAAT;AAEA,QAAMn4B,IAAI,aAAMpF,CAAN,eAAYD,CAAZ,CAAV;AACA,QAAI45C,YAAJ;AACA,QAAIC,GAAJ;;AAEA,QAAIjrC,KAAK,CAACnP,KAAV,EAAiB;AACfm6C,kBAAY,GAAGjuB,sEAAY,CAAChrB,OAAD,EAAUV,CAAV,EAAaD,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,CAA3B;AACA65C,SAAG,gBAASD,YAAY,CAAC,CAAD,CAArB,iBAA+BA,YAAY,CAAC,CAAD,CAA3C,iBACDA,YAAY,CAAC,CAAD,CADX,iBAEIA,YAAY,CAAC,CAAD,CAFhB,CAAH;AAGD,KALD,MAKO;AACLA,kBAAY,GAAG54C,WAAW,CAAC84C,eAAZ,CAA4Bn5C,OAA5B,EAAqCV,CAArC,EAAwCD,CAAxC,EAA2C,CAA3C,EAA8C,CAA9C,CAAf;AACA,UAAM+5C,EAAE,GAAGH,YAAY,CAAC,CAAD,CAAvB;AACA,UAAMI,EAAE,GAAGD,EAAE,GAAGnrC,KAAK,CAACqrC,KAAX,GAAmBrrC,KAAK,CAACsrC,SAApC;AACA,UAAMC,GAAG,GAAGlvB,sEAAY,CAACrc,KAAD,EAAQmrC,EAAR,CAAxB,CAJK,CAML;;AACAF,SAAG,iBAAUE,EAAV,kBAAoBK,UAAU,CAACJ,EAAE,CAACK,OAAH,CAAW,CAAX,CAAD,CAA9B,CAAH;;AACA,UAAIF,GAAJ,EAAS;AACPN,WAAG,oBAAaO,UAAU,CAACD,GAAG,CAACE,OAAJ,CAAY,CAAZ,CAAD,CAAvB,CAAH;AACD;AACF,KAvBsB,CAyBvB;;;AACA,QAAM50C,UAAU,GAAG;AACjBxF,OAAC,EAAEgM,aAAa,CAAC1E,MAAd,CAAqBtH,CAArB,GAAyB,CADX;AAEjBD,OAAC,EAAEiM,aAAa,CAAC1E,MAAd,CAAqBvH,CAArB,GAAyB;AAFX,KAAnB;AAKA2F,4EAAW,CACTxG,OADS,EAET06C,GAFS,EAGTp0C,UAAU,CAACxF,CAHF,EAITwF,UAAU,CAACzF,CAAX,GAAe25C,UAAf,GAA4B,CAJnB,EAKTl6C,KALS,CAAX;AAOAkG,4EAAW,CAACxG,OAAD,EAAUkG,IAAV,EAAgBI,UAAU,CAACxF,CAA3B,EAA8BwF,UAAU,CAACzF,CAAzC,EAA4CP,KAA5C,CAAX;AACD,GAvCG,CAAJ;AAwCD;AAED;;;;;;;;AAMA,SAAS45C,eAAT,CAAyBvwC,GAAzB,EAA8B;AAC5B,MAAM00B,MAAM,GAAG,KAAK/zB,aAApB;AACA,MAAMzI,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,MAAM+H,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAH4B,MAK1BrI,OAL0B,GAUxBoI,SAVwB,CAK1BpI,OAL0B;AAAA,MAM1BiO,KAN0B,GAUxB7F,SAVwB,CAM1B6F,KAN0B;AAAA,MAO1B3C,aAP0B,GAUxBlD,SAVwB,CAO1BkD,aAP0B;AAAA,MAQ1BgK,aAR0B,GAUxBlN,SAVwB,CAQ1BkN,aAR0B;AAAA,MAS1B2I,YAT0B,GAUxB7V,SAVwB,CAS1B6V,YAT0B;AAY5B,MAAMzf,OAAO,GAAGyW,wEAAa,CAACK,aAAa,CAAC1O,MAAf,CAA7B;AACA,MAAM9H,KAAK,GAAGoD,sEAAU,CAACk+B,cAAX,EAAd;AAEA,MAAIuZ,UAAU,GAAGruC,aAAa,CAAC2O,IAAd,CAAmB5a,CAAnB,GAAuBmG,qEAAS,CAACS,WAAV,KAA0B,CAAlE;;AAEA,MAAIgY,YAAJ,EAAkB;AAChB07B,cAAU,GAAGruC,aAAa,CAAC2O,IAAd,CAAmB5a,CAAnB,GAAuBmG,qEAAS,CAACS,WAAV,KAA0B,CAA9D;AACD;;AACD,MAAM2zC,UAAU,GAAGv5C,WAAW,CAAC8Z,WAAZ,CACjBna,OADiB,EAEjBsL,aAAa,CAAC2O,IAAd,CAAmB3a,CAFF,EAGjBq6C,UAHiB,CAAnB;;AAMA,MACEC,UAAU,CAACt6C,CAAX,GAAe,CAAf,IACAs6C,UAAU,CAACv6C,CAAX,GAAe,CADf,IAEAu6C,UAAU,CAACt6C,CAAX,IAAgB2O,KAAK,CAACskB,OAFtB,IAGAqnB,UAAU,CAACv6C,CAAX,IAAgB4O,KAAK,CAACsG,IAJxB,EAKE;AACA;AACD;;AAEDjO,iEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvBorB,wEAAS,CAACprB,OAAD,EAAUq+B,MAAV,CAAT;AAEA,QAAMgd,YAAY,GAAGx5C,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CACnB,qBADmB,EAEnBpvB,KAAK,CAACgmB,OAFa,CAArB;AAIA,QAAM6lB,QAAQ,GAAGD,YAAY,IAAIA,YAAY,CAACC,QAA9C;AAEA,QAAIb,YAAJ;AACA,QAAIv0C,IAAI,GAAG,EAAX;;AAEA,QAAIuJ,KAAK,CAACnP,KAAV,EAAiB;AACfm6C,kBAAY,GAAGjuB,sEAAY,CAAChrB,OAAD,EAAU45C,UAAU,CAACt6C,CAArB,EAAwBs6C,UAAU,CAACv6C,CAAnC,EAAsC,CAAtC,EAAyC,CAAzC,CAA3B;AACAqF,UAAI,gBAASu0C,YAAY,CAAC,CAAD,CAArB,iBAA+BA,YAAY,CAAC,CAAD,CAA3C,iBACFA,YAAY,CAAC,CAAD,CADV,CAAJ;AAGD,KALD,MAKO;AACLA,kBAAY,GAAG54C,WAAW,CAAC84C,eAAZ,CACbn5C,OADa,EAEb45C,UAAU,CAACt6C,CAFE,EAGbs6C,UAAU,CAACv6C,CAHE,EAIb,CAJa,EAKb,CALa,CAAf;AAOA,UAAM+5C,EAAE,GAAGH,YAAY,CAAC,CAAD,CAAvB;AACA,UAAMI,EAAE,GAAGD,EAAE,GAAGnrC,KAAK,CAACqrC,KAAX,GAAmBrrC,KAAK,CAACsrC,SAApC;AAEA,UAAMQ,sBAAsB,GAAGN,UAAU,CAACJ,EAAE,CAACK,OAAH,CAAW,CAAX,CAAD,CAAzC;;AAEA,UAAII,QAAQ,KAAK,IAAjB,EAAuB;AACrBp1C,YAAI,kBAAWq1C,sBAAX,CAAJ;AACD,OAFD,MAEO,IAAID,QAAQ,KAAK,IAAjB,EAAuB;AAC5Bp1C,YAAI,IAAIq1C,sBAAR;AACA,YAAMP,GAAG,GAAGlvB,sEAAY,CAACrc,KAAD,EAAQmrC,EAAR,CAAxB;;AAEA,YAAII,GAAJ,EAAS;AACP90C,cAAI,oBAAa+0C,UAAU,CAACD,GAAG,CAACE,OAAJ,CAAY,CAAZ,CAAD,CAAvB,CAAJ;AACD;AACF,OAPM,MAOA;AACLh1C,YAAI,IAAIq1C,sBAAR;AACD;AACF,KA1CsB,CA4CvB;;;AACA,QAAMj1C,UAAU,GAAGzE,WAAW,CAACC,aAAZ,CAA0BN,OAA1B,EAAmC45C,UAAnC,CAAnB,CA7CuB,CA+CvB;;AACA,QAAIz4C,WAAW,GAAG;AAChB7B,OAAC,EAAE,EADa;AAEhBD,OAAC,EAAE,EAAEmG,qEAAS,CAACS,WAAV,KAA0B,EAA5B,IAAkC;AAFrB,KAAlB;AAKA,QAAM3C,YAAY,GAAG,CAArB;AACA,QAAMgC,OAAO,GAAG,CAAhB;AACA,QAAMxE,KAAK,GAAGuE,6EAAY,CAAC7G,OAAD,EAAUkG,IAAV,EAAgBY,OAAhB,CAA1B;;AAEA,QAAI2Y,YAAJ,EAAkB;AAChB9c,iBAAW,GAAG;AACZ7B,SAAC,EAAE,CAACwB,KAAD,GAAS,CADA;AAEZzB,SAAC,EAAE,CAACmG,qEAAS,CAACS,WAAV,EAAD,GAA2B,EAA3B,GAAgC,IAAI3C;AAF3B,OAAd;AAID;;AAEDumB,yEAAU,CAACrrB,OAAD,EAAUwB,OAAV,EAAmB8E,UAAnB,EAA+BxB,YAA/B,EAA6C;AAAExE,WAAK,EAALA;AAAF,KAA7C,EAAwD,QAAxD,CAAV;AACAkG,4EAAW,CACTxG,OADS,EAETkG,IAFS,EAGTI,UAAU,CAACxF,CAAX,GAAe6B,WAAW,CAAC7B,CAHlB,EAITwF,UAAU,CAACzF,CAAX,GAAe8B,WAAW,CAAC9B,CAJlB,EAKTP,KALS,CAAX;AAOD,GAxEG,CAAJ;AAyED,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrQD;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;IAQqB0kB,U;;;;;AACnB,wBAAwB;AAAA;;AAAA,QAAZwd,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,QADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnB8+B,eAAS,EAAE2L,+DAAYA;AAHJ,KAArB;AAMA,8MAAMhZ,KAAN,EAAasW,YAAb;AAEA,UAAKhrC,oBAAL,GAA4B,MAAK2tC,qBAAL,CAA2BjvC,IAA3B,4FAA5B;AACA,UAAKyG,qBAAL,GAA6B,MAAKwoC,qBAAL,CAA2BjvC,IAA3B,4FAA7B;AAVsB;AAWvB;;;;0CAEqB7C,G,EAAK;AACzB,UAAMkD,MAAM,GAAGlD,GAAG,CAACE,MAAJ,CAAWiD,aAAX,CAAyB1E,MAAxC;AACA,UAAM5G,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B;AAEAuD,2DAAK,CAACgF,KAAN,CAAY3E,OAAZ,CAAoB,UAAS6E,IAAT,EAAe;AACjC,YAAMoE,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAUyI,IAAI,CAACwB,IAAf,CAA9B;;AAEA,YAAI4C,SAAJ,EAAe;AACb;AACAA,mBAAS,CAACE,IAAV,CAAenJ,OAAf,CAAuB,UAASmJ,IAAT,EAAe;AACpC,gBACE,OAAOtE,IAAI,CAAC0E,aAAZ,KAA8B,UAA9B,IACA1E,IAAI,CAAC0E,aAAL,CAAmBnN,OAAnB,EAA4B+M,IAA5B,EAAkC1B,MAAlC,CAFF,EAGE;AACAR,mGAAe,CAAC7K,OAAD,EAAUyI,IAAI,CAACwB,IAAf,EAAqB8C,IAArB,CAAf;AACA3M,yEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AACF,WARD;AASD;AACF,OAfD;AAiBA,UAAM2wB,YAAY,GAAG,IAArB;AAEA,aAAOA,YAAP;AACD;;;;EAtCqCzH,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;IAEQgxB,kB,GAAuB3tB,gE,CAAvB2tB,kB;AAER;;;;;;;;;;IASqBz2B,uB;;;;;AACnB,qCAAwB;AAAA;;AAAA,QAAZud,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,qBADa;AAEnBkwC,wBAAkB,EAAE,aAFD;AAGnB5qC,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,EAAmB,WAAnB,CAHR;AAInBka,YAAM,EAAE,CAAC,4BAAD,CAJW;AAKnB3gB,mBAAa,EAAEsxC,8CAA8C,EAL1C;AAMnB/L,eAAS,EAAEgM,4EAAyBA;AANjB,KAArB;AASA,2NAAMrZ,KAAN,EAAasW,YAAb;AAEA,UAAKnpC,iBAAL,GAAyB,IAAzB;AACA,UAAKozB,eAAL,GAAuB,IAAvB;AACA,UAAK4Y,kBAAL,GAA0B,MAAKG,oBAAL,CAA0BH,kBAApD;AAEA,UAAKI,OAAL,GAAe,KAAf,CAhBsB,CAkBtB;;AACA,UAAKC,qBAAL,GAA6B,MAAKA,qBAAL,CAA2BxvC,IAA3B,4FAA7B;AACA,UAAKyvC,sBAAL,GAA8B,MAAKA,sBAAL,CAA4BzvC,IAA5B,4FAA9B;AACA,UAAK0vC,uBAAL,GAA+B,MAAKA,uBAAL,CAA6B1vC,IAA7B,4FAA/B;AArBsB;AAsBvB;;;;mCAEc7C,G,EAAK;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;;AAEA,UAAI,KAAKS,aAAL,CAAmB6xC,WAAnB,KAAmC,IAAvC,EAA6C;AAC3C,eAAO,KAAP;AACD;;AAED,UAAM36C,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;AACA,UAAM68B,MAAM,GAAG,KAAK/zB,aAApB;AAEA,UAAM+D,SAAS,GAAGjE,mFAAY,CAAC5I,OAAD,EAAU,KAAKm6C,kBAAf,CAA9B;AACA,UAAMptC,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe8vB,MAAM,CAAC8d,WAAtB,CAAb;;AAEA,UAAI,CAAC5tC,IAAL,EAAW;AACT,eAAO,KAAP;AACD;;AAED,UAAI,KAAKwtC,OAAT,EAAkB;AAChB,YAAM/7C,OAAO,GAAG4J,SAAS,CAACkN,aAAV,CAAwB1O,MAAxB,CAA+BI,UAA/B,CAA0C,IAA1C,CAAhB;AACA,YAAMzH,OAAO,GAAG;AACdT,eAAK,EAAE,KAAKgK,aAAL,CAAmB8xC,SADZ;AAEdz3C,cAAI,EAAE,IAFQ;AAGdG,sBAAY,EAAE,KAAKu3C;AAHL,SAAhB;AAMA1wB,+EAAW,CACT3rB,OADS,EAET4J,SAFS,EAGT,KAAKU,aAAL,CAAmBgyC,aAAnB,CAAiC94C,OAHxB,EAITzC,OAJS,CAAX;AAMD,OAdD,MAcO,IAAI,KAAKuJ,aAAL,CAAmBiyC,iBAAnB,IAAwC,CAAC,KAAKC,eAAlD,EAAmE;AACxE,aAAKC,kBAAL,CAAwB9yC,GAAxB;AACD;AACF;;;wCAEmBA,G,EAAK;AACvB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;;AAEA,WAAK6yC,mBAAL,CAAyB9yC,SAAzB;;AACAhI,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC9B,SAAS,CAACpI,OAA3C;AACD;;;sCAEiBmI,G,EAAK;AACrB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;;AAEA,WAAK6yC,mBAAL,CAAyB9yC,SAAzB;;AACAhI,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC9B,SAAS,CAACpI,OAA3C;AACD;;;0CAEqBmI,G,EAAK;AACzB,WAAKgzC,oBAAL,CAA0BhzC,GAA1B;;AAEA,aAAO,IAAP;AACD;AAED;;;;;;;;;yCAMqBA,G,EAAK;AACxB,UAAI,CAAC,KAAK5I,OAAL,CAAauM,eAAb,CAA6BC,QAA7B,CAAsC5D,GAAG,CAACE,MAAJ,CAAW2D,OAAjD,CAAL,EAAgE;AAC9D;AACD;;AAED,WAAKmvC,oBAAL,CAA0BhzC,GAA1B;;AAEA,aAAO,IAAP;AACD;AAED;;;;;;;;;;4CAOwBA,G,EAAK;AAC3B,UAAM00B,MAAM,GAAG,KAAK/zB,aAApB;;AAEA,UAAI,CAAC,KAAKyxC,OAAV,EAAmB;AACjB;AACD;;AAED,UAAMnyC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAMwE,SAAS,GAAGjE,mFAAY,CAACR,SAAS,CAACpI,OAAX,EAAoB,KAAKm6C,kBAAzB,CAA9B;;AAEA,UAAI,CAACttC,SAAL,EAAgB;AACd;AACD;;AAED,UAAMlN,MAAM,GAAGkN,SAAS,CAACE,IAAV,CAAe8vB,MAAM,CAAC8d,WAAtB,EAAmC34C,OAAnC,CAA2CrC,MAA1D,CAd2B,CAgB3B;;AACA,WAAKy7C,iBAAL,CAAuBhzC,SAAvB;;AACA,WAAKizC,OAAL,CAAajzC,SAAb,EAAwBzI,MAAxB,EAlB2B,CAoB3B;;;AACAS,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC9B,SAAS,CAACpI,OAA3C;AACD;AAED;;;;;;;;;0CAMsBmI,G,EAAK;AACzB,WAAKmzC,UAAL,CAAgBnzC,GAAhB;AACD;AAED;;;;;;;;;2CAMuBA,G,EAAK;AAC1B,WAAKmzC,UAAL,CAAgBnzC,GAAhB;;AAEA,WAAKozC,iBAAL,CAAuBpzC,GAAvB;;AACA,WAAK6yC,eAAL,GAAuB,IAAvB;AACD;;;+BAEU7yC,G,EAAK;AACd,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAMrI,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;AACA,UAAM68B,MAAM,GAAG,KAAK/zB,aAApB;AAEA,WAAKyxC,OAAL,GAAe,KAAf;AAEAh3C,4DAAK,CAAC2I,qBAAN,GAA8B,KAA9B;;AAEA,WAAKkvC,iBAAL,CAAuBhzC,SAAvB;;AACA,WAAKozC,mBAAL,CAAyBpzC,SAAzB;;AAEAy0B,YAAM,CAAC4e,aAAP,GAAuB,IAAvB;;AAEA,WAAKC,iBAAL,CAAuB17C,OAAvB,EAdc,CAgBd;;;AACAI,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC9B,SAAS,CAACpI,OAA3C;AAEA27C,wBAAkB,CAACxzC,GAAD,CAAlB;AACD;AAED;;;;;;;;;;uCAOmBA,G,EAAK;AACtB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAMrI,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;AACA,UAAMxB,OAAO,GAAG4J,SAAS,CAACkN,aAAV,CAAwB1O,MAAxB,CAA+BI,UAA/B,CAA0C,IAA1C,CAAhB;AAEA,UAAM6F,SAAS,GAAGjE,mFAAY,CAAC5I,OAAD,EAAU,KAAKm6C,kBAAf,CAA9B;AACA,UAAMptC,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe,KAAKjE,aAAL,CAAmB6xC,WAAlC,CAAb;AAEA,WAAKK,eAAL,GAAuB,KAAvB;AAEA,UAAI3vC,MAAJ;;AAEA,UAAI,KAAKvC,aAAL,CAAmB2yC,aAAvB,EAAsC;AACpCpwC,cAAM,GAAG,KAAKvC,aAAL,CAAmBgyC,aAAnB,CAAiC94C,OAAjC,CAAyCpD,KAAlD;AACA,aAAKkK,aAAL,CAAmB2yC,aAAnB,GAAmC,KAAnC;AACD,OAHD,MAGO;AACLpwC,cAAM,GAAG9H,sDAAK,CAACyK,kBAAf;AACD;;AAED,UAAM4tC,eAAe,GAAG32B,4EAAiB,CAACjlB,OAAD,EAAU,KAAKm6C,kBAAf,CAAzC;AACA,UAAI0B,YAAY,GAAGD,eAAe,CAACE,uBAAhB,CACjB97C,OADiB,EAEjB+M,IAFiB,EAGjB1B,MAHiB,CAAnB;AAMA,WAAKvC,aAAL,CAAmBgyC,aAAnB,CAAiC94C,OAAjC,CAAyCpD,KAAzC,CAA+CU,CAA/C,GAAmD+L,MAAM,CAAC/L,CAA1D;AACA,WAAKwJ,aAAL,CAAmBgyC,aAAnB,CAAiC94C,OAAjC,CAAyCpD,KAAzC,CAA+CS,CAA/C,GAAmDgM,MAAM,CAAChM,CAA1D;;AAEA,UAAI,KAAKyJ,aAAL,CAAmBizC,wBAAvB,EAAiD;AAC/C,YAAMC,eAAe,GAAGH,YAAxB;AAEAA,oBAAY,GAAG,KAAKI,wBAAL,CAA8B7zC,SAA9B,EAAyCyzC,YAAzC,CAAf,CAH+C,CAK/C;;AACA,YACEG,eAAe,GACf,KAAKlzC,aAAL,CAAmBozC,uBAAnB,GAA6CL,YAF/C,EAGE;AACAr9C,iBAAO,CAACwX,WAAR,GAAsB,KAAKlN,aAAL,CAAmBqzC,oBAAzC;AACD;AACF;;AAED,UAAM58C,OAAO,GAAG;AACd4D,YAAI,EAAE,IADQ;AAEdrE,aAAK,EAAE,KAAKgK,aAAL,CAAmBszC,UAFZ;AAGd94C,oBAAY,EAAEu4C;AAHA,OAAhB;AAMA1xB,6EAAW,CACT3rB,OADS,EAET4J,SAFS,EAGT,KAAKU,aAAL,CAAmBgyC,aAAnB,CAAiC94C,OAHxB,EAITzC,OAJS,CAAX;;AAOA,UAAI,KAAKuJ,aAAL,CAAmBizC,wBAAvB,EAAiD;AAC/Cv9C,eAAO,CAACwX,WAAR,GAAsB,GAAtB,CAD+C,CACpB;AAC5B;AACF;AAED;;;;;;;;;;qCAOiB7N,G,EAAK;AACpB,WAAKozC,iBAAL,CAAuBpzC,GAAvB;AACD;AAED;;;;;;;;;;oCAOgBA,G,EAAK;AACnB,WAAKozC,iBAAL,CAAuBpzC,GAAvB;AACD;AAED;;;;;;;;;;oCAOgBA,G,EAAK;AACnB,WAAKozC,iBAAL,CAAuBpzC,GAAvB;AACD;AAED;;;;;;;;;;qCAOiBA,G,EAAK;AACpB,WAAKozC,iBAAL,CAAuBpzC,GAAvB;AACD;AAED;;;;;;;;;;wCAOoBC,S,EAAW;AAC7B,UAAMy0B,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAM9I,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;;AACA,UAAMq8C,gBAAgB,GAAG,KAAKC,gCAAL,CACvBt8C,OADuB,EAEvBoI,SAFuB,CAAzB;;AAKA,UAAIi0C,gBAAgB,KAAK58C,SAAzB,EAAoC;AAClC;AACD;;AAEDo9B,YAAM,CAAC8d,WAAP,GAAqB0B,gBAArB;AACAxN,qFAAc,CAAC7uC,OAAD,CAAd;AACD;AAED;;;;;;;;;;;0CAQsBA,O,EAASkuC,S,EAAW;AACxC,UAAMrhC,SAAS,GAAGjE,mFAAY,CAAC5I,OAAD,EAAU,KAAKm6C,kBAAf,CAA9B;AACA,UAAMptC,IAAI,GAAGF,SAAS,CAACE,IAAvB;AACA,UAAM8vB,MAAM,GAAG,KAAK/zB,aAApB;AAEA+zB,YAAM,CAAC8d,WAAP,GAAqBzM,SAArB;;AAEA,WAAK,IAAI1rC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuK,IAAI,CAACvJ,MAAzB,EAAiChB,CAAC,EAAlC,EAAsC;AACpC,YAAIA,CAAC,KAAK0rC,SAAV,EAAqB;AACnBnhC,cAAI,CAACvK,CAAD,CAAJ,CAAQK,MAAR,GAAiB,IAAjB;AACD,SAFD,MAEO;AACLkK,cAAI,CAACvK,CAAD,CAAJ,CAAQK,MAAR,GAAiB,KAAjB;AACD;AACF;AACF;AAED;;;;;;;;;;;yCAQqBsF,G,EAAK;AACxB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAMw0B,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAM9I,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;;AAEA,UAAI68B,MAAM,CAAC8d,WAAP,KAAuB,IAA3B,EAAiC;AAC/B,aAAKO,mBAAL,CAAyB9yC,SAAzB;;AAEA,YAAIy0B,MAAM,CAAC8d,WAAP,KAAuB,IAA3B,EAAiC;AAC/B;AACD;AACF;;AAED,WAAKJ,OAAL,GAAe,IAAf,CAbwB,CAexB;;AACAh3C,4DAAK,CAAC2I,qBAAN,GAA8B,IAA9B;;AAEA,WAAKqwC,kBAAL,CAAwBn0C,SAAxB;;AACA,WAAKgzC,iBAAL,CAAuBhzC,SAAvB;;AAEA,WAAKo0C,qBAAL,CAA2Bx8C,OAA3B,EAAoC68B,MAAM,CAAC8d,WAA3C;;AACA,WAAK8B,eAAL,CAAqBz8C,OAArB;;AAEAI,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC9B,SAAS,CAACpI,OAA3C;AACD;AAED;;;;;;;;;;;;4BASQoI,S,EAAWzI,M,EAAQ;AACzB,UAAMk9B,MAAM,GAAG,KAAK/zB,aAApB;AAEA,WAAK4zC,WAAL,GAAmB;AACjB18C,eAAO,EAAEoI,SAAS,CAACpI,OADF;AAEjBiO,aAAK,EAAE7F,SAAS,CAAC6F,KAFA;AAGjBg2B,kBAAU,EAAE77B,SAAS,CAACkD,aAAV,CAAwB2C,KAHnB;AAIjBtO,cAAM,EAANA,MAJiB;AAKjBg9C,gBAAQ,EAAE,KAAKC,cALE;AAMjBC,kBAAU,EAAEhgB,MAAM,CAACggB,UANF;AAOjBC,kBAAU,EAAE39C,IAAI,CAACkH,GAAL,CAAS,KAAKu2C,cAAd,EAA8B/f,MAAM,CAACggB,UAAP,GAAoB,CAAlD;AAPK,OAAnB,CAHyB,CAazB;;AACA,UAAME,aAAa,GAAG,KAAKC,YAAL,EAAtB,CAdyB,CAezB;AACA;;;AAEA,UAAID,aAAa,CAACE,KAAd,KAAwBx9C,SAA5B,EAAuC;AACrC,aAAKy9C,iBAAL,CAAuBH,aAAvB,EADqC,CAErC;AACA;;;AACA,aAAKI,mBAAL;AACD;AACF;AAED;;;;;;;;;;mCAOe;AAAA,8BAC4B,KAAKT,WADjC;AAAA,UACL/8C,MADK,qBACLA,MADK;AAAA,UACGskC,UADH,qBACGA,UADH;AAAA,UACe0Y,QADf,qBACeA,QADf;AAEb,UAAMI,aAAa,GAAG,EAAtB;;AAEA,WAAK,IAAIv6C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG7C,MAAM,CAAC6D,MAA3B,EAAmChB,CAAC,EAApC,EAAwC;AACtC,YAAM46C,gBAAgB,GAAGh9C,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CACvBhW,MAAM,CAAC6C,CAAD,CADiB,EAEvByhC,UAFuB,CAAzB;;AAKA,YAAImZ,gBAAgB,GAAGT,QAAvB,EAAiC;AAC/B;AACD,SARqC,CAUtC;;;AACA,aAAKU,cAAL,CAAoB76C,CAApB,EAAuB46C,gBAAvB;;AACA,YAAIL,aAAa,CAACE,KAAd,KAAwBx9C,SAA5B,EAAuC;AACrCs9C,uBAAa,CAACE,KAAd,GAAsBz6C,CAAtB;AACAu6C,uBAAa,CAACO,IAAd,GAAqB96C,CAArB;AACD,SAHD,MAGO;AACLu6C,uBAAa,CAACO,IAAd,GAAqB96C,CAArB;AACD;AACF;;AAED,aAAOu6C,aAAP;AACD;AAED;;;;;;;;;;;mCAQev6C,C,EAAG46C,gB,EAAkB;AAAA,+BACc,KAAKV,WADnB;AAAA,UAC1B/8C,MAD0B,sBAC1BA,MAD0B;AAAA,UAClBskC,UADkB,sBAClBA,UADkB;AAAA,UACN0Y,QADM,sBACNA,QADM;AAAA,UACI1uC,KADJ,sBACIA,KADJ;AAElC,UAAMvL,MAAM,GAAG/C,MAAM,CAAC6C,CAAD,CAArB;AAEA,UAAM+6C,mBAAmB,GAAG;AAC1Bj+C,SAAC,EAAE,CAACoD,MAAM,CAACpD,CAAP,GAAW2kC,UAAU,CAAC3kC,CAAvB,IAA4B89C,gBADL;AAE1B/9C,SAAC,EAAE,CAACqD,MAAM,CAACrD,CAAP,GAAW4kC,UAAU,CAAC5kC,CAAvB,IAA4B+9C;AAFL,OAA5B;AAKA,UAAMI,QAAQ,GAAG;AACfl+C,SAAC,EAAE2kC,UAAU,CAAC3kC,CAAX,GAAeq9C,QAAQ,GAAGY,mBAAmB,CAACj+C,CADlC;AAEfD,SAAC,EAAE4kC,UAAU,CAAC5kC,CAAX,GAAes9C,QAAQ,GAAGY,mBAAmB,CAACl+C;AAFlC,OAAjB;AAKAqsB,sEAAS,CAAC8xB,QAAD,EAAWvvC,KAAX,CAAT;AAEAvL,YAAM,CAACpD,CAAP,GAAWk+C,QAAQ,CAACl+C,CAApB;AACAoD,YAAM,CAACrD,CAAP,GAAWm+C,QAAQ,CAACn+C,CAApB,CAjBkC,CAmBlC;;AACA,UAAMo+C,eAAe,GAAG,KAAKC,WAAL,CAAiBC,uBAAjB,CACtBn7C,CADsB,EAEtB7C,MAAM,CAAC6D,MAFe,CAAxB;;AAKA7D,YAAM,CAAC89C,eAAD,CAAN,CAAwB35C,KAAxB,CAA8B0oC,GAA9B;AACA7sC,YAAM,CAAC89C,eAAD,CAAN,CAAwB35C,KAAxB,CAA8BwV,IAA9B,CAAmC5W,MAAnC;AACD;AAED;;;;;;;;;;;sCAQkBq6C,a,EAAe;AAC/B,UAAMa,qBAAqB,GAAG,KAAKC,sBAAL,CAA4Bd,aAA5B,CAA9B;;AACA,UAAIe,gBAAgB,GAAG,CAAvB;;AAEA,WAAK,IAAIt7C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGo7C,qBAAqB,CAACp6C,MAA1C,EAAkDhB,CAAC,EAAnD,EAAuD;AACrD,YAAMu7C,WAAW,GAAGH,qBAAqB,CAACp7C,CAAD,CAArB,GAA2B,CAA3B,GAA+Bs7C,gBAAnD;;AAEA,aAAKE,qBAAL,CAA2BD,WAA3B;;AACAD,wBAAgB;AACjB;AACF;AAED;;;;;;;;;;;;2CASuBf,a,EAAe;AAAA,+BACL,KAAKL,WADA;AAAA,UAC5B/8C,MAD4B,sBAC5BA,MAD4B;AAAA,UACpBm9C,UADoB,sBACpBA,UADoB;AAEpC,UAAMc,qBAAqB,GAAG,EAA9B;;AAEA,WAAK,IAAIp7C,CAAC,GAAGu6C,aAAa,CAACE,KAA3B,EAAkCz6C,CAAC,IAAIu6C,aAAa,CAACO,IAArD,EAA2D96C,CAAC,EAA5D,EAAgE;AAC9D,aAAKy7C,aAAL,CAAmBz7C,CAAnB,EAAsB7C,MAAtB,EAA8Bi+C,qBAA9B,EAAqDd,UAArD;AACD;;AAED,UAAMoB,cAAc,GAAG,KAAKR,WAAL,CAAiBS,mBAAjB,CACrBpB,aAAa,CAACO,IADO,EAErB39C,MAAM,CAAC6D,MAFc,CAAvB,CARoC,CAapC;;;AACA,UAAI06C,cAAc,KAAKnB,aAAa,CAACE,KAArC,EAA4C;AAC1C,aAAKgB,aAAL,CACEC,cADF,EAEEv+C,MAFF,EAGEi+C,qBAHF,EAIEd,UAJF;;AAOA,YAAMsB,gBAAgB,GAAG,KAAKV,WAAL,CAAiBC,uBAAjB,CACvBZ,aAAa,CAACE,KADS,EAEvBt9C,MAAM,CAAC6D,MAFgB,CAAzB;;AAKA,YAAI46C,gBAAgB,KAAKF,cAAzB,EAAyC;AACvC,eAAKD,aAAL,CACEG,gBADF,EAEEz+C,MAFF,EAGEi+C,qBAHF,EAIEd,UAJF;AAMD;AACF;;AAED,aAAOc,qBAAP;AACD;AAED;;;;;;;;;;;;;kCAUcp7C,C,EAAG7C,M,EAAQi+C,qB,EAAuBd,U,EAAY;AAC1D,UAAMuB,eAAe,GAAG,KAAKX,WAAL,CAAiBS,mBAAjB,CACtB37C,CADsB,EAEtB7C,MAAM,CAAC6D,MAFe,CAAxB;;AAKA,UAAM86C,oBAAoB,GAAGl+C,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CAC3BhW,MAAM,CAAC6C,CAAD,CADqB,EAE3B7C,MAAM,CAAC0+C,eAAD,CAFqB,CAA7B;;AAKA,UAAIC,oBAAoB,GAAGxB,UAA3B,EAAuC;AACrCc,6BAAqB,CAACtkC,IAAtB,CAA2B9W,CAA3B;AACD;AACF;AAED;;;;;;;;;;;0CAQsBu7C,W,EAAa;AAAA,UACzBp+C,MADyB,GACd,KAAK+8C,WADS,CACzB/8C,MADyB;AAGjC,UAAM4+C,aAAa,GAAGR,WAAW,GAAG,CAApC;;AACA,UAAMS,SAAS,GAAG,KAAKd,WAAL,CAAiBe,+BAAjB,CAChBV,WADgB,EAEhBp+C,MAAM,CAAC6D,MAFS,CAAlB;;AAIA,UAAMk7C,cAAc,GAAG,KAAKC,kBAAL,CACrBZ,WADqB,EAErBQ,aAFqB,EAGrBC,SAHqB,CAAvB;;AAKA,UAAMI,UAAU,GAAG,IAAI1E,kBAAJ,CAAuBwE,cAAvB,CAAnB;AAEA/+C,YAAM,CAACw7B,MAAP,CAAc4iB,WAAd,EAA2B,CAA3B,EAA8Ba,UAA9B,EAfiC,CAiBjC;;AACAj/C,YAAM,CAAC4+C,aAAD,CAAN,CAAsBz6C,KAAtB,CAA4B0oC,GAA5B;AACA7sC,YAAM,CAAC4+C,aAAD,CAAN,CAAsBz6C,KAAtB,CAA4BwV,IAA5B,CAAiC3Z,MAAM,CAACo+C,WAAD,CAAvC;AAEAxxB,sEAAa,CAACsyB,OAAd,CAAsBl/C,MAAtB,EAA8Bo+C,WAA9B;AACD;AAED;;;;;;;;;;0CAOsB;AAAA,UACZp+C,MADY,GACD,KAAK+8C,WADJ,CACZ/8C,MADY,EAGpB;;AACA,UAAIA,MAAM,CAAC6D,MAAP,IAAiB,CAArB,EAAwB;AACtB;AACD;;AAED,UAAMs7C,UAAU,GAAG,KAAKC,qBAAL,EAAnB;;AAEA,WAAKC,kBAAL,CAAwBF,UAAxB;AACD;AAED;;;;;;;;;;;4CAQwB;AAAA,+BACS,KAAKpC,WADd;AAAA,UACd/8C,MADc,sBACdA,MADc;AAAA,UACNk9C,UADM,sBACNA,UADM;AAEtB,UAAMiC,UAAU,GAAG,EAAnB;AACA,UAAIt7C,MAAM,GAAG7D,MAAM,CAAC6D,MAApB;;AAEA,WAAK,IAAIhB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgB,MAApB,EAA4BhB,CAAC,EAA7B,EAAiC;AAC/B,YAAM67C,eAAe,GAAG,KAAKX,WAAL,CAAiBS,mBAAjB,CACtB37C,CADsB,EAEtB7C,MAAM,CAAC6D,MAFe,CAAxB;;AAKA,YAAM86C,oBAAoB,GAAGl+C,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CAC3BhW,MAAM,CAAC6C,CAAD,CADqB,EAE3B7C,MAAM,CAAC0+C,eAAD,CAFqB,CAA7B;;AAKA,YAAIC,oBAAoB,GAAGzB,UAA3B,EAAuC;AACrC,cAAMoC,IAAI,GAAG,CAACz8C,CAAD,EAAI67C,eAAJ,CAAb;AAEAS,oBAAU,CAACxlC,IAAX,CAAgB2lC,IAAhB,EAHqC,CAKrC;;AACA,cAAIz8C,CAAC,KAAK,CAAV,EAAa;AACXgB,kBAAM,IAAI,CAAV;AACD,WARoC,CAUrC;;;AACAhB,WAAC;AACF;AACF;;AAED,aAAOs8C,UAAP;AACD;AAED;;;;;;;;;;;uCAQmBA,U,EAAY;AAC7B,UAAII,oBAAoB,GAAG,CAA3B;;AAEA,WAAK,IAAI18C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGs8C,UAAU,CAACt7C,MAA/B,EAAuChB,CAAC,EAAxC,EAA4C;AAC1C,YAAMy8C,IAAI,GAAG,KAAKvB,WAAL,CAAiByB,iBAAjB,CACXL,UAAU,CAACt8C,CAAD,CADC,EAEX08C,oBAFW,CAAb;;AAKA,aAAKE,eAAL,CAAqBH,IAArB;;AACAC,4BAAoB;AACrB,OAX4B,CAa7B;;;AACA,UAAMG,aAAa,GAAG,KAAKN,qBAAL,EAAtB;;AAEA,UAAIM,aAAa,CAAC77C,MAAlB,EAA0B;AACxB,aAAKw7C,kBAAL,CAAwBK,aAAxB;AACD;AACF;AAED;;;;;;;;;;oCAOgBC,U,EAAY;AAAA,+BACA,KAAK5C,WADL;AAAA,UAClB/8C,MADkB,sBAClBA,MADkB;AAAA,UACVsO,KADU,sBACVA,KADU,EAG1B;;AACA,UAAMsxC,QAAQ,GAAG;AACfjgD,SAAC,EAAE,CAACK,MAAM,CAAC2/C,UAAU,CAAC,CAAD,CAAX,CAAN,CAAsBhgD,CAAtB,GAA0BK,MAAM,CAAC2/C,UAAU,CAAC,CAAD,CAAX,CAAN,CAAsBhgD,CAAjD,IAAsD,GAD1C;AAEfD,SAAC,EAAE,CAACM,MAAM,CAAC2/C,UAAU,CAAC,CAAD,CAAX,CAAN,CAAsBjgD,CAAtB,GAA0BM,MAAM,CAAC2/C,UAAU,CAAC,CAAD,CAAX,CAAN,CAAsBjgD,CAAjD,IAAsD;AAF1C,OAAjB;AAKAqsB,sEAAS,CAAC6zB,QAAD,EAAWtxC,KAAX,CAAT,CAT0B,CAW1B;;AACAtO,YAAM,CAAC2/C,UAAU,CAAC,CAAD,CAAX,CAAN,CAAsBhgD,CAAtB,GAA0BigD,QAAQ,CAACjgD,CAAnC;AACAK,YAAM,CAAC2/C,UAAU,CAAC,CAAD,CAAX,CAAN,CAAsBjgD,CAAtB,GAA0BkgD,QAAQ,CAAClgD,CAAnC,CAb0B,CAe1B;;AACA,UAAMmgD,oBAAoB,GAAG,KAAK9B,WAAL,CAAiBS,mBAAjB,CAC3BmB,UAAU,CAAC,CAAD,CADiB,EAE3B3/C,MAAM,CAAC6D,MAFoB,CAA7B;;AAKA7D,YAAM,CAAC2/C,UAAU,CAAC,CAAD,CAAX,CAAN,CAAsBx7C,KAAtB,CAA4B0oC,GAA5B;AACA7sC,YAAM,CAAC2/C,UAAU,CAAC,CAAD,CAAX,CAAN,CAAsBx7C,KAAtB,CAA4BwV,IAA5B,CAAiC3Z,MAAM,CAAC6/C,oBAAD,CAAvC,EAtB0B,CAwB1B;;AACA7/C,YAAM,CAACw7B,MAAP,CAAcmkB,UAAU,CAAC,CAAD,CAAxB,EAA6B,CAA7B;AACD;AAED;;;;;;;;;;;uCAQmBl3C,S,EAAW;AAC5B,UAAMpI,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;AACA,UAAM68B,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAMolC,SAAS,GAAGrR,MAAM,CAAC8d,WAAzB;AACA,UAAMtvC,MAAM,GAAGjD,SAAS,CAACkD,aAAV,CAAwB2C,KAAvC;AAEA,UAAMpB,SAAS,GAAGjE,mFAAY,CAAC5I,OAAD,EAAU,KAAKm6C,kBAAf,CAA9B;AACA,UAAMptC,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAemhC,SAAf,CAAb;AAEA,UAAM0N,eAAe,GAAG32B,4EAAiB,CAACjlB,OAAD,EAAU,KAAKm6C,kBAAf,CAAzC;AAEA,UAAIsF,WAAW,GAAG7D,eAAe,CAAC8D,iBAAhB,CAAkC1/C,OAAlC,EAA2C+M,IAA3C,EAAiD1B,MAAjD,CAAlB;AACA,UAAIwwC,YAAY,GAAGD,eAAe,CAACE,uBAAhB,CACjB97C,OADiB,EAEjB+M,IAFiB,EAGjB1B,MAHiB,CAAnB,CAZ4B,CAkB5B;;AACA,UAAIwxB,MAAM,CAACkf,wBAAX,EAAqC;AACnC0D,mBAAW,GAAG,KAAKE,uBAAL,CAA6Bv3C,SAA7B,EAAwCq3C,WAAxC,CAAd;AACA5D,oBAAY,GAAG,KAAKI,wBAAL,CAA8B7zC,SAA9B,EAAyCyzC,YAAzC,CAAf;AACD;;AAED,WAAKe,cAAL,GAAsB6C,WAAtB;AACA,WAAK5E,eAAL,GAAuBgB,YAAvB;AACD;AAED;;;;;;;;;;sCAOkBzzC,S,EAAW;AAC3B,UAAMy0B,MAAM,GAAG,KAAK/zB,aAApB;AAEA+zB,YAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCU,CAAnC,GAAuC8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAArE;AACAu9B,YAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCS,CAAnC,GAAuC+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAArE;AACAqsB,sEAAS,CAACmR,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA9B,EAAqCwJ,SAAS,CAAC6F,KAA/C,CAAT;AACD;AAED;;;;;;;;;;;oCAQgBjO,O,EAAS;AACvB,WAAK07C,iBAAL,CAAuB17C,OAAvB,EADuB,CAGvB;;;AACAA,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC2F,QAAhC,EAA0C,KAAKwrC,qBAA/C;AACAx6C,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACiF,WAAhC,EAA6C,KAAKksC,qBAAlD;AACAx6C,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACuF,UAAhC,EAA4C,KAAK8rC,uBAAjD;AAEA16C,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC4I,SAAhC,EAA2C,KAAKwoC,sBAAhD;AACAz6C,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACu2C,SAAhC,EAA2C,KAAKnF,sBAAhD;AACAz6C,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC2I,UAAhC,EAA4C,KAAK0oC,uBAAjD;AAEAt6C,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;;sCAQkBA,O,EAAS;AACzBA,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC2F,QAAnC,EAA6C,KAAKwrC,qBAAlD;AACAx6C,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAACiF,WAAnC,EAAgD,KAAKksC,qBAArD;AACAx6C,aAAO,CAACwJ,mBAAR,CACEH,kDAAM,CAACuF,UADT,EAEE,KAAK8rC,uBAFP;AAKA16C,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC4I,SAAnC,EAA8C,KAAKwoC,sBAAnD;AACAz6C,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAACu2C,SAAnC,EAA8C,KAAKnF,sBAAnD;AACAz6C,aAAO,CAACwJ,mBAAR,CACEH,kDAAM,CAAC2I,UADT,EAEE,KAAK0oC,uBAFP;AAKAt6C,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;wCAOoBoI,S,EAAW;AAC7B,UAAMy0B,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAM9I,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;AACA,UAAMwQ,QAAQ,GAAG5H,mFAAY,CAAC5I,OAAD,EAAU,KAAKm6C,kBAAf,CAA7B;AACA,UAAMptC,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAc8vB,MAAM,CAAC8d,WAArB,CAAb;AAEA5tC,UAAI,CAAC6C,WAAL,GAAmB,IAAnB;AACD;AAED;;;;;;;AAOA;;;;sCACkBzH,G,EAAK;AACrB,UAAM00B,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAM0H,QAAQ,GAAG5H,mFAAY,CAAC,KAAK5I,OAAN,EAAe,KAAKm6C,kBAApB,CAA7B;AAEAtd,YAAM,CAAC8d,WAAP,GAAqB,IAArB;;AAEA,UAAInqC,QAAJ,EAAc;AACZ,aAAK,IAAIhO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAC7CgO,kBAAQ,CAACzD,IAAT,CAAcvK,CAAd,EAAiBK,MAAjB,GAA0B,KAA1B;AACD;AACF;;AAEDurC,oFAAa,CAAC,KAAKpuC,OAAN,EAAe,KAAKquC,SAApB,CAAb;AAEAjuC,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC,KAAKlK,OAAtC;AACD;AAED;;;;;;;;;;;;;;AAwBA;;;;;;;;;;6CAUyBoI,S,EAAWyzC,Y,EAAc;AAChD,aAAO,KAAKgE,kBAAL,CAAwBz3C,SAAxB,EAAmCyzC,YAAnC,EAAiD,IAAjD,CAAP;AACD;AAED;;;;;;;;;;;;;4CAUwBzzC,S,EAAWq3C,W,EAAa;AAC9C,aAAO,KAAKI,kBAAL,CAAwBz3C,SAAxB,EAAmCq3C,WAAnC,EAAgD,KAAhD,CAAP;AACD;AAED;;;;;;;;;;;;;;uCAWmBr3C,S,EAAWlI,M,EAA8B;AAAA,UAAtB4/C,YAAsB,uEAAP,KAAO;AAC1D,UAAM9/C,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;AACA,UAAMiO,KAAK,GAAG7F,SAAS,CAAC6F,KAAxB;AACA,UAAM4uB,MAAM,GAAG,KAAK/zB,aAApB;AAEA,UAAM+D,SAAS,GAAGjE,mFAAY,CAAC5I,OAAD,EAAU,KAAKm6C,kBAAf,CAA9B;AACA,UAAMptC,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe8vB,MAAM,CAAC8d,WAAtB,CAAb;AAEA,UAAIoF,YAAY,GAAG,GAAnB;;AAEA,UAAID,YAAJ,EAAkB;AAChB,YAAM7nC,OAAO,GAAG7X,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4C;AAC1DV,WAAC,EAAE,CADuD;AAE1DD,WAAC,EAAE;AAFuD,SAA5C,CAAhB;AAIA,YAAMkZ,WAAW,GAAGnY,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4C;AAC9DV,WAAC,EAAE2O,KAAK,CAACnN,KADqD;AAE9DzB,WAAC,EAAE4O,KAAK,CAACjN;AAFqD,SAA5C,CAApB;AAIA,YAAMg/C,UAAU,GACd,CAACznC,WAAW,CAACjZ,CAAZ,GAAgB2Y,OAAO,CAAC3Y,CAAzB,KAA+BiZ,WAAW,CAAClZ,CAAZ,GAAgB4Y,OAAO,CAAC5Y,CAAvD,CADF;AAGA0gD,oBAAY,GAAGC,UAAU,IAAI/xC,KAAK,CAACnN,KAAN,GAAcmN,KAAK,CAACjN,MAAxB,CAAzB;AACD;;AAED,UAAMi/C,IAAI,GAAGlzC,IAAI,CAACkzC,IAAL,GAAYF,YAAzB;AACA,UAAMtX,SAAS,GAAGtpC,IAAI,CAAC4rC,GAAL,CAASkV,IAAI,GAAG9gD,IAAI,CAACU,EAArB,EAAyB,GAAzB,CAAlB;AAEA,aAAOV,IAAI,CAACwC,GAAL,CAASzB,MAAT,EAAiBuoC,SAAjB,CAAP;AACD;AAED;;;;;;;;;;;;qDASiCzoC,O,EAASoI,S,EAAW;AACnD,UAAM83C,QAAQ,GAAGj7B,4EAAiB,CAACjlB,OAAD,EAAU,KAAKm6C,kBAAf,CAAlC;AACA,UAAMttC,SAAS,GAAGjE,mFAAY,CAAC5I,OAAD,EAAU,KAAKm6C,kBAAf,CAA9B;;AAEA,UAAI,CAACttC,SAAL,EAAgB;AACd;AACD;;AAED,UAAME,IAAI,GAAGF,SAAS,CAACE,IAAvB;AACA,UAAMozC,WAAW,GAAG/3C,SAAS,CAACkD,aAAV,CAAwB2C,KAA5C;AAEA,UAAMmyC,OAAO,GAAG;AACdzqC,gBAAQ,EAAEkkB,QADI;AAEdqU,iBAAS,EAAE;AAFG,OAAhB;;AAKA,WAAK,IAAI1rC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuK,IAAI,CAACvJ,MAAzB,EAAiChB,CAAC,EAAlC,EAAsC;AACpC,YAAM69C,iBAAiB,GAAGH,QAAQ,CAACR,iBAAT,CACxB1/C,OADwB,EAExB+M,IAAI,CAACvK,CAAD,CAFoB,EAGxB29C,WAHwB,CAA1B;;AAMA,YAAIE,iBAAiB,KAAK,CAAC,CAA3B,EAA8B;AAC5B;AACD;;AAED,YAAIA,iBAAiB,GAAGD,OAAO,CAACzqC,QAAhC,EAA0C;AACxCyqC,iBAAO,CAACzqC,QAAR,GAAmB0qC,iBAAnB;AACAD,iBAAO,CAAClS,SAAR,GAAoB1rC,CAApB;AACD;AACF;;AAED,aAAO49C,OAAO,CAAClS,SAAf;AACD;AAED;;;;;;;;;;;;;AAqDA;;;;;;;;;;uCAUmB6P,W,EAAaQ,a,EAAeC,S,EAAW;AAAA,+BACR,KAAK9B,WADG;AAAA,UAChD/8C,MADgD,sBAChDA,MADgD;AAAA,UACxCg9C,QADwC,sBACxCA,QADwC;AAAA,UAC9B1Y,UAD8B,sBAC9BA,UAD8B;AAAA,UAClBh2B,KADkB,sBAClBA,KADkB,EAGxD;AACA;;AACA,UAAMsxC,QAAQ,GAAG;AACfjgD,SAAC,EAAE,CAACK,MAAM,CAAC4+C,aAAD,CAAN,CAAsBj/C,CAAtB,GAA0BK,MAAM,CAAC6+C,SAAD,CAAN,CAAkBl/C,CAA7C,IAAkD,GADtC;AAEfD,SAAC,EAAE,CAACM,MAAM,CAAC4+C,aAAD,CAAN,CAAsBl/C,CAAtB,GAA0BM,MAAM,CAAC6+C,SAAD,CAAN,CAAkBn/C,CAA7C,IAAkD;AAFtC,OAAjB;AAKA,UAAMihD,kBAAkB,GAAGlgD,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CACzBsuB,UADyB,EAEzBsb,QAFyB,CAA3B;AAKA,UAAIb,cAAJ;;AAEA,UAAI4B,kBAAkB,GAAG3D,QAAzB,EAAmC;AACjC,YAAMY,mBAAmB,GAAG;AAC1Bj+C,WAAC,EAAE,CAACigD,QAAQ,CAACjgD,CAAT,GAAa2kC,UAAU,CAAC3kC,CAAzB,IAA8BghD,kBADP;AAE1BjhD,WAAC,EAAE,CAACkgD,QAAQ,CAAClgD,CAAT,GAAa4kC,UAAU,CAAC5kC,CAAzB,IAA8BihD;AAFP,SAA5B;AAKA5B,sBAAc,GAAG;AACfp/C,WAAC,EAAE2kC,UAAU,CAAC3kC,CAAX,GAAeq9C,QAAQ,GAAGY,mBAAmB,CAACj+C,CADlC;AAEfD,WAAC,EAAE4kC,UAAU,CAAC5kC,CAAX,GAAes9C,QAAQ,GAAGY,mBAAmB,CAACl+C;AAFlC,SAAjB;AAID,OAVD,MAUO;AACLq/C,sBAAc,GAAGa,QAAjB;AACD;;AAED7zB,sEAAS,CAACgzB,cAAD,EAAiBzwC,KAAjB,CAAT;AAEA,aAAOywC,cAAP;AACD,K,CAED;AACA;AACA;;;;wBAEiB;AACf,aAAO,KAAK51C,aAAL,CAAmB+zC,UAA1B;AACD,K;sBAEc/tB,K,EAAO;AACpB,UAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,cAAM,IAAIwF,KAAJ,CACJ,+EADI,CAAN;AAGD;;AAED,WAAKxrB,aAAL,CAAmB+zC,UAAnB,GAAgC/tB,KAAhC;AACD;;;wBAEgB;AACf,aAAO,KAAKhmB,aAAL,CAAmBg0C,UAA1B;AACD,K;sBAEchuB,K,EAAO;AACpB,UAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,cAAM,IAAIwF,KAAJ,CACJ,+EADI,CAAN;AAGD;;AAED,WAAKxrB,aAAL,CAAmBg0C,UAAnB,GAAgChuB,KAAhC;AACD;;;wBAEuB;AACtB,aAAO,KAAKhmB,aAAL,CAAmBiyC,iBAA1B;AACD,K;sBAEqBjsB,K,EAAO;AAC3B,UAAI,OAAOA,KAAP,KAAiB,SAArB,EAAgC;AAC9B,cAAM,IAAIwF,KAAJ,CACJ,uFADI,CAAN;AAGD;;AAED,WAAKxrB,aAAL,CAAmBiyC,iBAAnB,GAAuCjsB,KAAvC;AACA1uB,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC,KAAKlK,OAAtC;AACD;;;wBAE8B;AAC7B,aAAO,KAAK8I,aAAL,CAAmBizC,wBAA1B;AACD,K;sBAE4BjtB,K,EAAO;AAClC,UAAI,OAAOA,KAAP,KAAiB,SAArB,EAAgC;AAC9B,cAAM,IAAIwF,KAAJ,CACJ,8FADI,CAAN;AAGD;;AAED,WAAKxrB,aAAL,CAAmBizC,wBAAnB,GAA8CjtB,KAA9C;AACA1uB,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC,KAAKlK,OAAtC;AACD;;;wBAE0B;AACzB,aAAO,KAAK8I,aAAL,CAAmBqzC,oBAA1B;AACD,K;sBAEwBrtB,K,EAAO;AAC9B,UAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,cAAM,IAAIwF,KAAJ,CACJ,yFADI,CAAN;AAGD,OAL6B,CAO9B;;;AACAxF,WAAK,GAAG3vB,IAAI,CAACkH,GAAL,CAASlH,IAAI,CAACwC,GAAL,CAASmtB,KAAT,EAAgB,GAAhB,CAAT,EAA+B,GAA/B,CAAR;AAEA,WAAKhmB,aAAL,CAAmBqzC,oBAAnB,GAA0CrtB,KAA1C;AACA1uB,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC,KAAKlK,OAAtC;AACD;;;wBAE6B;AAC5B,aAAO,KAAK8I,aAAL,CAAmBozC,uBAA1B;AACD,K;sBAE2BptB,K,EAAO;AACjC,UAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,cAAM,IAAIwF,KAAJ,CACJ,4FADI,CAAN;AAGD,OALgC,CAOjC;;;AACAxF,WAAK,GAAG3vB,IAAI,CAACkH,GAAL,CAASyoB,KAAT,EAAgB,GAAhB,CAAR;AAEA,WAAKhmB,aAAL,CAAmBozC,uBAAnB,GAA6CptB,KAA7C;AACA1uB,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC,KAAKlK,OAAtC;AACD;;;sCApUwBi/C,I,EAAMC,oB,EAAsB;AACnD,UAAMqB,aAAa,GAAG,CACpBtB,IAAI,CAAC,CAAD,CAAJ,GAAUC,oBADU,EAEpBD,IAAI,CAAC,CAAD,CAAJ,GAAUC,oBAFU,CAAtB,CADmD,CAMnD;;AACA,UAAIqB,aAAa,CAAC,CAAD,CAAb,GAAmB,CAAvB,EAA0B;AACxBA,qBAAa,CAAC,CAAD,CAAb,GAAmB,CAAnB;AACD;;AAED,aAAOA,aAAP;AACD;;;wCA8H0B/9C,C,EAAGgB,M,EAAQ;AACpC,UAAIhB,CAAC,KAAKgB,MAAM,GAAG,CAAnB,EAAsB;AACpB,eAAO,CAAP;AACD;;AAED,aAAOhB,CAAC,GAAG,CAAX;AACD;AAED;;;;;;;;;;;;4CAS+BA,C,EAAGgB,M,EAAQ;AACxC,UAAIhB,CAAC,KAAK,CAAV,EAAa;AACX,eAAOgB,MAAM,GAAG,CAAhB;AACD;;AAED,aAAOhB,CAAC,GAAG,CAAX;AACD;AAED;;;;;;;;;;;;;oDAUuCu7C,W,EAAav6C,M,EAAQ;AAC1D,UAAIu6C,WAAW,KAAKv6C,MAApB,EAA4B;AAC1B,eAAO,CAAP;AACD,OAHyD,CAI1D;;;AAEA,aAAOu6C,WAAP;AACD;;;;EAjiCkD70B,0D;AAorCrD;;;;;;;;;AAKA,SAASkxB,8CAAT,GAA0D;AACxD,SAAO;AACLU,iBAAa,EAAE;AACb94C,aAAO,EAAE;AACPpD,aAAK,EAAE;AACL+Q,mBAAS,EAAE,IADN;AAEL9M,gBAAM,EAAE;AAFH;AADA;AADI,KADV;AASLg6C,cAAU,EAAE,CATP;AAULlC,eAAW,EAAE,IAVR;AAWLC,aAAS,EAAE14C,sEAAU,CAACk+B,cAAX,EAXN;AAYLgc,cAAU,EAAEl6C,sEAAU,CAACC,YAAX,EAZP;;AAcL;;;;;;;;;AASA44C,qBAAiB,EAAE,IAvBd;AAwBLgB,4BAAwB,EAAE,IAxBrB;AAyBLI,wBAAoB,EAAE,GAzBjB;AA0BLD,2BAAuB,EAAE;AA1BpB,GAAP;AA4BD;;AAED,SAASP,kBAAT,CAA4BxzC,GAA5B,EAAiC;AAC/BA,KAAG,CAAC8I,wBAAJ;AACA9I,KAAG,CAAC0B,eAAJ;AACA1B,KAAG,CAACyB,cAAJ;AACD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrvCD;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;IAQqB8Z,W;;;;;AACnB,yBAAwB;AAAA;;AAAA,QAAZsd,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,SADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnBzG,mBAAa,EAAE;AACb03C,mBAAW,EAAE,GADA;AAEbC,0BAAkB,EAAE;AAFP,OAHI;AAOnBpS,eAAS,EAAEqS,gEAAaA;AAPL,KAArB;AAUA,+MAAM1f,KAAN,EAAasW,YAAb;AAEA,UAAKqJ,UAAL,GAAkBlhD,SAAlB;AACA,UAAKmhD,WAAL,GAAmBnhD,SAAnB,CAdsB,CAgBtB;;AACA,UAAKuwB,cAAL,GAAsB,MAAK6wB,0BAAL,CAAgC71C,IAAhC,4FAAtB;AACA,UAAK+kB,eAAL,GAAuB,MAAK8wB,0BAAL,CAAgC71C,IAAhC,4FAAvB;AACA,UAAK81C,gBAAL,GAAwB,MAAKC,2BAAL,CAAiC/1C,IAAjC,4FAAxB,CAnBsB,CAqBtB;;AACA,UAAK2G,sBAAL,GAA8B,MAAKqvC,mBAAL,CAAyBh2C,IAAzB,4FAA9B;AACA,UAAK2mB,iBAAL,GAAyB,MAAKsvB,sBAAL,CAA4Bj2C,IAA5B,4FAAzB;AACA,UAAK4mB,gBAAL,GAAwB,MAAKsvB,sBAAL,CAA4Bl2C,IAA5B,4FAAxB;AACA,UAAKm2C,oBAAL,GAA4B,MAAKD,sBAAL,CAA4Bl2C,IAA5B,4FAA5B,CAzBsB,CA0BtB;;AACA,UAAKwC,qBAAL,GAA6B,MAAKwzC,mBAAL,CAAyBh2C,IAAzB,4FAA7B;AACA,UAAK+C,iBAAL,GAAyB,MAAKkzC,sBAAL,CAA4Bj2C,IAA5B,4FAAzB;AACA,UAAK6mB,eAAL,GAAuB,MAAKqvB,sBAAL,CAA4Bl2C,IAA5B,4FAAvB,CA7BsB,CA8BtB;;AACA,UAAK0mB,kBAAL,GAA0B,MAAKwvB,sBAAL,CAA4Bl2C,IAA5B,4FAA1B,CA/BsB,CAgCtB;;AACA,UAAKmE,gBAAL,GAAwB,MAAKiyC,sBAAL,CAA4Bp2C,IAA5B,4FAAxB;AAjCsB;AAkCvB;;;;wCAEmB7C,G,EAAK;AAAA;;AACvB;AACA,WAAKk5C,kBAAL;;AACA,WAAKC,kBAAL,CAAwBn5C,GAAxB,EAHuB,CAIvB;;;AACAyY,YAAM,CAAC0O,qBAAP,CAA6B;AAAA,eAAM,MAAI,CAAC8xB,sBAAL,CAA4Bj5C,GAA5B,CAAN;AAAA,OAA7B;AAEA0mC,oFAAc,CAAC1mC,GAAG,CAACE,MAAJ,CAAWrI,OAAZ,CAAd;AAEAmI,SAAG,CAACyB,cAAJ;AACAzB,SAAG,CAAC0B,eAAJ;AACD;;;2CAEsB1B,G,EAAK;AAC1B,WAAKi5C,sBAAL,CAA4Bj5C,GAA5B;;AAEAA,SAAG,CAACyB,cAAJ;AACAzB,SAAG,CAAC0B,eAAJ;AACD;;;2CAEsB1B,G,EAAK;AAC1B,UAAMnI,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B,CAD0B,CAG1B;;AACAouC,mFAAa,CAAC,KAAKpuC,OAAN,EAAe,KAAKquC,SAApB,CAAb;AAEAruC,aAAO,CAACuhD,aAAR,CAAsB,cAAtB,EAAsC7S,KAAtC,CAA4C8S,OAA5C,GAAsD,MAAtD;;AACA,WAAKH,kBAAL;AACD;;;2CAEsBl5C,G,EAAK;AAC1B,UAAMnI,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B;AACA,UAAMyhD,aAAa,GAAGzhD,OAAO,CAACuhD,aAAR,CAAsB,cAAtB,CAAtB;;AAEA,UAAI,CAACE,aAAL,EAAoB;AAClB,aAAKZ,0BAAL,CAAgC7gD,OAAhC;AACD;;AAED,UAAI,KAAK2gD,UAAL,KAAoBlhD,SAAxB,EAAmC;AACjC;AACD,OAVyB,CAY1B;AACA;;;AACA,UAAMmH,MAAM,GAAG5G,OAAO,CAACuhD,aAAR,CAAsB,0BAAtB,CAAf;AACA,UAAM/iD,OAAO,GAAGyW,uEAAa,CAACwsC,aAAD,CAA7B,CAf0B,CAiB1B;;AACA,UAAMC,cAAc,GAAGthD,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CACrB6H,GAAG,CAACE,MAAJ,CAAWrI,OADU,EAErBmI,GAAG,CAACE,MAAJ,CAAWiD,aAAX,CAAyB2C,KAFJ,CAAvB,CAlB0B,CAuB1B;;AACA,UAAMuyC,WAAW,GAAGrhD,IAAI,CAACwC,GAAL,CAClB,KAAKmH,aAAL,CAAmB03C,WADD,EAElB55C,MAAM,CAAC9F,KAFW,EAGlB8F,MAAM,CAAC5F,MAHW,CAApB;AAKA,UAAMy/C,kBAAkB,GAAG,KAAK33C,aAAL,CAAmB23C,kBAA9C;AAEAgB,mBAAa,CAAC3gD,KAAd,GAAsB0/C,WAAtB;AACAiB,mBAAa,CAACzgD,MAAd,GAAuBw/C,WAAvB,CAhC0B,CAkC1B;;AACAkB,oBAAc,CAACpiD,CAAf,GAAmBH,IAAI,CAACkH,GAAL,CACjBq7C,cAAc,CAACpiD,CADE,EAEhB,MAAMkhD,WAAP,GAAsBC,kBAFL,CAAnB;AAIAiB,oBAAc,CAACpiD,CAAf,GAAmBH,IAAI,CAACwC,GAAL,CACjB+/C,cAAc,CAACpiD,CADE,EAEjBsH,MAAM,CAAC9F,KAAP,GAAgB,MAAM0/C,WAAP,GAAsBC,kBAFpB,CAAnB;AAIAiB,oBAAc,CAACriD,CAAf,GAAmBF,IAAI,CAACkH,GAAL,CACjBq7C,cAAc,CAACriD,CADE,EAEhB,MAAMmhD,WAAP,GAAsBC,kBAFL,CAAnB;AAIAiB,oBAAc,CAACriD,CAAf,GAAmBF,IAAI,CAACwC,GAAL,CACjB+/C,cAAc,CAACriD,CADE,EAEjBuH,MAAM,CAAC5F,MAAP,GAAiB,MAAMw/C,WAAP,GAAsBC,kBAFrB,CAAnB;AAKA,UAAMkB,QAAQ,GAAG;AACfriD,SAAC,EAAEoiD,cAAc,CAACpiD,CAAf,GAAmBmhD,kBAAnB,GAAwC,MAAMD,WADlC;AAEfnhD,SAAC,EAAEqiD,cAAc,CAACriD,CAAf,GAAmBohD,kBAAnB,GAAwC,MAAMD;AAFlC,OAAjB;AAKAmB,cAAQ,CAACriD,CAAT,GAAaH,IAAI,CAACkH,GAAL,CAASs7C,QAAQ,CAACriD,CAAlB,EAAqB,CAArB,CAAb;AACAqiD,cAAQ,CAACtiD,CAAT,GAAaF,IAAI,CAACkH,GAAL,CAASs7C,QAAQ,CAACtiD,CAAlB,EAAqB,CAArB,CAAb;AAEAb,aAAO,CAAC4X,SAAR,CACE,KAAKuqC,UADP,EAEEgB,QAAQ,CAACriD,CAFX,EAGEqiD,QAAQ,CAACtiD,CAHX,EAIEmhD,WAJF,EAKEA,WALF,EAME,CANF,EAOE,CAPF,EAQEA,WARF,EASEA,WATF,EA5D0B,CAwE1B;;AACA,UAAMoB,WAAW,GAAGz5C,GAAG,CAACE,MAAJ,CAAW4V,YAAX,GAA0B,GAA1B,GAAgC,CAApD;AACA,UAAM4jC,eAAe,GAAG;AACtBr9C,WAAG,EAAErF,IAAI,CAACkH,GAAL,CAASq7C,cAAc,CAACriD,CAAf,GAAmB,MAAMmhD,WAAzB,GAAuCoB,WAAhD,EAA6D,CAA7D,CADiB;AAEtBr9C,YAAI,EAAEpF,IAAI,CAACkH,GAAL,CAASq7C,cAAc,CAACpiD,CAAf,GAAmB,MAAMkhD,WAAlC,EAA+C,CAA/C;AAFgB,OAAxB,CA1E0B,CA+E1B;;AACA,UAAMsB,YAAY,GAAGL,aAAa,CAACM,qBAAd,EAArB,CAhF0B,CAkF1B;;AACAF,qBAAe,CAACr9C,GAAhB,GAAsBrF,IAAI,CAACwC,GAAL,CACpBkgD,eAAe,CAACr9C,GADI,EAEpBoC,MAAM,CAAC5F,MAAP,GAAgB8gD,YAAY,CAAC9gD,MAFT,CAAtB;AAIA6gD,qBAAe,CAACt9C,IAAhB,GAAuBpF,IAAI,CAACwC,GAAL,CACrBkgD,eAAe,CAACt9C,IADK,EAErBqC,MAAM,CAAC9F,KAAP,GAAeghD,YAAY,CAAChhD,KAFP,CAAvB;AAIA2gD,mBAAa,CAAC/S,KAAd,CAAoBlqC,GAApB,aAA6Bq9C,eAAe,CAACr9C,GAA7C;AACAi9C,mBAAa,CAAC/S,KAAd,CAAoBnqC,IAApB,aAA8Bs9C,eAAe,CAACt9C,IAA9C;AACAk9C,mBAAa,CAAC/S,KAAd,CAAoB8S,OAApB,GAA8B,OAA9B;AACD;AAED;;;;;;;;;;;uCAQmBr5C,G,EAAK;AACtB,UAAMnI,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B;AACA,UAAI+Z,cAAc,GAAG5R,GAAG,CAACE,MAAJ,CAAW0R,cAAhC;;AAEA,UAAIA,cAAc,KAAKta,SAAvB,EAAkC;AAChCsa,sBAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAjB;AACD;;AAED,UAAMygD,kBAAkB,GAAG,KAAK33C,aAAL,CAAmB23C,kBAA9C;AACA,UAAMuB,UAAU,GAAGjoC,cAAc,CAACnT,MAAlC;AACA,UAAMqH,KAAK,GAAG8L,cAAc,CAAC9L,KAA7B,CAVsB,CAYtB;;AACA,UAAI,CAAC,KAAK2yC,WAAV,EAAuB;AACrB,aAAKA,WAAL,GAAmB9rC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAnB;AACA,aAAK6rC,WAAL,CAAiB9/C,KAAjB,GAAyBkhD,UAAU,CAAClhD,KAAX,GAAmB2/C,kBAA5C;AACA,aAAKG,WAAL,CAAiB5/C,MAAjB,GAA0BghD,UAAU,CAAChhD,MAAX,GAAoBy/C,kBAA9C;AACArgD,mEAAQ,CAACC,WAAT,CAAqB8I,MAArB,CAA4B,KAAKy3C,WAAjC,EAA8C7mC,cAAc,CAACxa,OAA7D;AACD;;AAED,UAAM0iD,kBAAkB,GAAG7hD,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CACzB,KAAK4mC,WADoB,CAA3B;AAGA,UAAMhgD,QAAQ,GAAGR,2DAAQ,CAACC,WAAT,CAAqBQ,WAArB,CAAiCkZ,cAAc,CAAC/Z,OAAhD,CAAjB;AAEA,WAAK2gD,UAAL,GAAkBsB,kBAAkB,CAACr7C,MAArC;AACA,WAAK+5C,UAAL,CAAgB7/C,KAAhB,GAAwBkhD,UAAU,CAAClhD,KAAX,GAAmB2/C,kBAA3C;AACA,WAAKE,UAAL,CAAgB3/C,MAAhB,GAAyBghD,UAAU,CAAChhD,MAAX,GAAoBy/C,kBAA7C;AAEAwB,wBAAkB,CAACrhD,QAAnB,GAA8B0B,MAAM,CAAC8lB,MAAP,CAAc,EAAd,EAAkBxnB,QAAlB,CAA9B,CA7BsB,CA+BtB;;AACAA,cAAQ,CAACM,KAAT,IAAkBu/C,kBAAlB;AACArgD,iEAAQ,CAACC,WAAT,CAAqBu2B,YAArB,CAAkC,KAAKgqB,WAAvC,EAAoD3yC,KAApD;AACA7N,iEAAQ,CAACC,WAAT,CAAqBm0C,WAArB,CAAiC,KAAKoM,WAAtC,EAAmDhgD,QAAnD,EAlCsB,CAmCtB;AACD;AAED;;;;;;;;yCAKqB;AACnB,UAAI,KAAKggD,WAAL,KAAqBnhD,SAAzB,EAAoC;AAClCW,mEAAQ,CAACC,WAAT,CAAqBkJ,OAArB,CAA6B,KAAKo3C,UAAlC;AACA,aAAKC,WAAL,GAAmBnhD,SAAnB;AACA,aAAKkhD,UAAL,GAAkBlhD,SAAlB;AACD;AACF;AAED;;;;;;;;;;;;+CAS2BO,O,EAAS;AAClC;AACA,UAAIA,OAAO,CAACuhD,aAAR,CAAsB,cAAtB,MAA0C,IAA9C,EAAoD;AAClD;AACA,YAAME,aAAa,GAAG3sC,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAtB,CAFkD,CAIlD;AACA;;AACA0sC,qBAAa,CAACS,SAAd,CAAwBpiC,GAAxB,CAA4B,aAA5B;AACA2hC,qBAAa,CAAC3gD,KAAd,GAAsB,KAAKgI,aAAL,CAAmB03C,WAAzC;AACAiB,qBAAa,CAACzgD,MAAd,GAAuB,KAAK8H,aAAL,CAAmB03C,WAA1C;AACAiB,qBAAa,CAAC/S,KAAd,CAAoB8O,QAApB,GAA+B,UAA/B;AACAiE,qBAAa,CAAC/S,KAAd,CAAoB8S,OAApB,GAA8B,MAA9B;AACAxhD,eAAO,CAACmiD,WAAR,CAAoBV,aAApB;AACD;AACF;AAED;;;;;;;;;gDAM4BzhD,O,EAAS;AACnC,UAAMyhD,aAAa,GAAGzhD,OAAO,CAACuhD,aAAR,CAAsB,cAAtB,CAAtB;;AAEA,UAAIE,aAAJ,EAAmB;AACjBzhD,eAAO,CAACoiD,WAAR,CAAoBX,aAApB;AACD;AACF;;;;EApQsCv4B,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdzC;AACA;CAGA;;AACA;AACA;AACA;AAEA;;;;;;;;;IAQqBtF,sB;;;;;AACnB,oCAAwB;AAAA,QAAZod,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,oBADa;AAEnBnB,mBAAa,EAAE;AACbu5C,sBAAc,EAAE;AADH,OAFI;AAKnB54B,YAAM,EAAE,CAAC,6BAAD;AALW,KAArB;AADsB,yNAShBuX,KATgB,EASTsW,YATS;AAUvB;;;;oCAEet3C,O,EAAS;AACvB,WAAKsiD,gBAAL,CAAsBtiD,OAAtB;AACD;;;qCAEgBA,O,EAAS;AACxB,WAAKsiD,gBAAL,CAAsBtiD,OAAtB;AACD;;;qCAEgBA,O,EAAS;AACxB,UAAMK,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,UAAM0Z,cAAc,GAAG1Z,WAAW,CAAC2Z,iBAAZ,CAA8Bha,OAA9B,CAAvB;;AAEA,UAAI+Z,cAAc,CAAC9L,KAAnB,EAA0B;AACxB5N,mBAAW,CAAC6J,WAAZ,CAAwBlK,OAAxB;AACD;AACF;;;mCAEcmI,G,EAAK;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAM7J,OAAO,GAAGyW,uEAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;AACA,UAAM5G,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;AACA,UAAMuiD,OAAO,GAAGC,qBAAqB,CAACxiD,OAAD,CAArC;;AAEA,UAAI,CAACuiD,OAAL,EAAc;AACZ;AACD;;AACD,UAAMl3C,MAAM,GAAGo3C,6BAA6B,CAACziD,OAAD,EAAUuiD,OAAV,CAA5C;AACA,UAAMzjD,KAAK,GAAGoD,sEAAU,CAACC,YAAX,EAAd;AAEA,UAAMugD,UAAU,GAAG;AACjBl+C,WAAG,EAAEa,6EAAY,CAAC7G,OAAD,EAAU+jD,OAAO,CAAC/9C,GAAlB,EAAuB,CAAvB,CADA;AAEjBD,YAAI,EAAEc,6EAAY,CAAC7G,OAAD,EAAU+jD,OAAO,CAACh+C,IAAlB,EAAwB,CAAxB,CAFD;AAGjBwT,aAAK,EAAE1S,6EAAY,CAAC7G,OAAD,EAAU+jD,OAAO,CAACxqC,KAAlB,EAAyB,CAAzB,CAHF;AAIjBH,cAAM,EAAEvS,6EAAY,CAAC7G,OAAD,EAAU+jD,OAAO,CAAC3qC,MAAlB,EAA0B,CAA1B,CAJH;AAKjB5W,cAAM,EAAEqE,6EAAY,CAAC7G,OAAD,EAAU,GAAV,EAAe,CAAf,CALH,CAKsB;;AALtB,OAAnB;AAQAmkD,qBAAe,CAACnkD,OAAD,EAAU+jD,OAAV,EAAmBl3C,MAAnB,EAA2Bq3C,UAA3B,EAAuC5jD,KAAvC,CAAf;;AACA,UAAI,KAAKgK,aAAL,CAAmBu5C,cAAvB,EAAuC;AACrCO,2BAAmB,CAACpkD,OAAD,EAAU+jD,OAAV,EAAmBl3C,MAAnB,EAA2Bq3C,UAA3B,EAAuC5jD,KAAvC,CAAnB;AACD;AACF;;;;EAtDiDoqB,yD;;;;AAyDpD,IAAMy5B,eAAe,GAAG,SAAlBA,eAAkB,CAACnkD,OAAD,EAAU+jD,OAAV,EAAmBl3C,MAAnB,EAA2Bq3C,UAA3B,EAAuC5jD,KAAvC,EAAiD;AACvEkG,0EAAW,CACTxG,OADS,EAET+jD,OAAO,CAAC/9C,GAFC,EAGT6G,MAAM,CAAC7G,GAAP,CAAWlF,CAAX,GAAeojD,UAAU,CAACl+C,GAAX,GAAiB,CAHvB,EAIT6G,MAAM,CAAC7G,GAAP,CAAWnF,CAJF,EAKTP,KALS,CAAX;AAOAkG,0EAAW,CACTxG,OADS,EAET+jD,OAAO,CAACh+C,IAFC,EAGT8G,MAAM,CAAC9G,IAAP,CAAYjF,CAAZ,GAAgBojD,UAAU,CAACn+C,IAAX,GAAkB,CAHzB,EAIT8G,MAAM,CAAC9G,IAAP,CAAYlF,CAJH,EAKTP,KALS,CAAX;AAOD,CAfD;;AAiBA,IAAM8jD,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACpkD,OAAD,EAAU+jD,OAAV,EAAmBl3C,MAAnB,EAA2Bq3C,UAA3B,EAAuC5jD,KAAvC,EAAiD;AAC3EkG,0EAAW,CACTxG,OADS,EAET+jD,OAAO,CAACxqC,KAFC,EAGT1M,MAAM,CAAC0M,KAAP,CAAazY,CAAb,GAAiBojD,UAAU,CAAC3qC,KAHnB,EAIT1M,MAAM,CAAC0M,KAAP,CAAa1Y,CAJJ,EAKTP,KALS,CAAX;AAOAkG,0EAAW,CACTxG,OADS,EAET+jD,OAAO,CAAC3qC,MAFC,EAGTvM,MAAM,CAACuM,MAAP,CAActY,CAAd,GAAkBojD,UAAU,CAAC9qC,MAAX,GAAoB,CAH7B,EAITvM,MAAM,CAACuM,MAAP,CAAcvY,CAAd,GAAkBqjD,UAAU,CAAC1hD,MAJpB,EAKTlC,KALS,CAAX;AAOD,CAfD;;AAiBA,IAAM0jD,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAAxiD,OAAO,EAAI;AACvC,MAAMK,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,MAAM0Z,cAAc,GAAG1Z,WAAW,CAAC2Z,iBAAZ,CAA8Bha,OAA9B,CAAvB;AACA,MAAMw1C,UAAU,GAAGn1C,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CACjB,kBADiB,EAEjBtjB,cAAc,CAAC9L,KAAf,CAAqBgmB,OAFJ,CAAnB;;AAKA,MAAI,CAACuhB,UAAD,IAAe,CAACA,UAAU,CAACsC,UAA3B,IAAyC,CAACtC,UAAU,CAACuC,aAAzD,EAAwE;AACtE;AACD;;AAED,MAAMC,GAAG,GAAGpxB,6DAAW,CAACsM,oBAAZ,CAAiCsiB,UAAU,CAACsC,UAA5C,CAAZ;AACA,MAAMG,MAAM,GAAGrxB,6DAAW,CAACsM,oBAAZ,CAAiCsiB,UAAU,CAACuC,aAA5C,CAAf;AACA,MAAM8K,WAAW,GAAGj8B,6DAAW,CAACuM,uBAAZ,CAAoC6kB,GAApC,CAApB;AACA,MAAM8K,cAAc,GAAGl8B,6DAAW,CAACuM,uBAAZ,CAAoC8kB,MAApC,CAAvB;AAEA,SAAO;AACLzzC,OAAG,EAAEs+C,cADA;AAELlrC,UAAM,EAAEqgC,MAFH;AAGL1zC,QAAI,EAAEs+C,WAHD;AAIL9qC,SAAK,EAAEigC;AAJF,GAAP;AAMD,CAvBD;;AAyBA,IAAMyK,6BAA6B,GAAG,SAAhCA,6BAAgC,CAAAziD,OAAO,EAAI;AAC/C,MAAM+Z,cAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB;AACA,MAAMwE,GAAG,GAAGpE,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4C;AACtDV,KAAC,EAAEya,cAAc,CAAC9L,KAAf,CAAqBnN,KAArB,GAA6B,CADsB;AAEtDzB,KAAC,EAAE;AAFmD,GAA5C,CAAZ;AAIA,MAAMuY,MAAM,GAAGxX,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4C;AACzDV,KAAC,EAAEya,cAAc,CAAC9L,KAAf,CAAqBnN,KAArB,GAA6B,CADyB;AAEzDzB,KAAC,EAAE0a,cAAc,CAAC9L,KAAf,CAAqBjN,MAArB,GAA8B;AAFwB,GAA5C,CAAf;AAIA,MAAMuD,IAAI,GAAGnE,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4C;AACvDV,KAAC,EAAE,CADoD;AAEvDD,KAAC,EAAE0a,cAAc,CAAC9L,KAAf,CAAqBjN,MAArB,GAA8B;AAFsB,GAA5C,CAAb;AAIA,MAAM+W,KAAK,GAAG3X,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4C;AACxDV,KAAC,EAAEya,cAAc,CAAC9L,KAAf,CAAqBnN,KAArB,GAA6B,EADwB;AAExDzB,KAAC,EAAE0a,cAAc,CAAC9L,KAAf,CAAqBjN,MAArB,GAA8B;AAFuB,GAA5C,CAAd;AAKA,SAAO;AACLwD,OAAG,EAAHA,GADK;AAELoT,UAAM,EAANA,MAFK;AAGLrT,QAAI,EAAJA,IAHK;AAILwT,SAAK,EAALA;AAJK,GAAP;AAMD,CAzBD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrIA;AACA;AAEA;;;;;;;;;;;;IAWqB4L,W;;;;;AACnB,yBAAgC;AAAA;;AAAA,QAApB7a,aAAoB,uEAAJ,EAAI;;AAAA;;AAC9B,QAAMi6C,aAAa,GAAG;AACpB94C,UAAI,EAAE,SADc;AAEpBnB,mBAAa,EAAE,EAFK;AAGpB2gB,YAAM,EAAE,CAAC,6BAAD;AAHY,KAAtB;AAKA,QAAM6wB,oBAAoB,GAAGh4C,MAAM,CAAC8lB,MAAP,CAAc26B,aAAd,EAA6Bj6C,aAA7B,CAA7B;AAEA,+MAAMwxC,oBAAN;AAEA,UAAKA,oBAAL,GAA4BA,oBAA5B;AAV8B;AAW/B;;;;oCAEet6C,O,EAAS;AACvB,WAAKsiD,gBAAL,CAAsBtiD,OAAtB;AACD;;;qCAEgBA,O,EAAS;AACxB,WAAKsiD,gBAAL,CAAsBtiD,OAAtB;AACD;;;qCAEgBA,O,EAAS;AACxB,UAAM+Z,cAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB;;AAEA,UAAI+Z,cAAc,CAAC9L,KAAnB,EAA0B;AACxB7N,mEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AACF;;;mCAEcmI,G,EAAK;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADkB,UAEV0R,cAFU,GAEyC3R,SAFzC,CAEV2R,cAFU;AAAA,UAEM9L,KAFN,GAEyC7F,SAFzC,CAEM6F,KAFN;AAAA,UAEarN,QAFb,GAEyCwH,SAFzC,CAEaxH,QAFb;AAAA,UAEuB0U,aAFvB,GAEyClN,SAFzC,CAEuBkN,aAFvB;;AAIlB,UAAI,CAAClN,SAAD,IAAc,CAAC2R,cAAf,IAAiC,CAAC9L,KAAtC,EAA6C;AAC3C;AACD;;AAED,UAAM+0C,oBAAoB,GAAG5iD,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CAC3B,oBAD2B,EAE3BpvB,KAAK,CAACgmB,OAFqB,CAA7B;;AAKA,UACE,CAAC+uB,oBAAD,IACA,CAACA,oBAAoB,CAACC,QADtB,IAEA,CAACD,oBAAoB,CAACC,QAArB,CAA8Bz/C,MAHjC,EAIE;AACA;AACD;;AAED,UAAM0/C,oBAAoB,GAAG;AAC3BjL,cAAM,EAAEr3C,QAAQ,CAACuiD,aAAT,CAAuB1sC,kBAAvB,IAA6C,CAD1B;AAE3BuhC,WAAG,EAAEp3C,QAAQ,CAACuiD,aAAT,CAAuB3sC,eAAvB,IAA0C;AAFpB,OAA7B;AAIA,UAAM4sC,UAAU,GACdjkD,IAAI,CAACmC,GAAL,CAASV,QAAQ,CAACuiD,aAAT,CAAuBE,IAAvB,CAA4B/jD,CAA5B,GAAgCsB,QAAQ,CAACuiD,aAAT,CAAuBG,IAAvB,CAA4BhkD,CAArE,IACA4jD,oBAAoB,CAACjL,MAFvB;AAGA,UAAMsL,WAAW,GACfpkD,IAAI,CAACmC,GAAL,CAASV,QAAQ,CAACuiD,aAAT,CAAuBE,IAAvB,CAA4BhkD,CAA5B,GAAgCuB,QAAQ,CAACuiD,aAAT,CAAuBG,IAAvB,CAA4BjkD,CAArE,IACA6jD,oBAAoB,CAAClL,GAFvB;AAIAgL,0BAAoB,CAACC,QAArB,CAA8Br/C,OAA9B,CAAsC,UAAA4/C,OAAO,EAAI;AAC/C,YAAIA,OAAO,CAACtsC,OAAR,KAAoB,KAAxB,EAA+B;AAC7B;AACD;;AAED,YAAMusC,WAAW,GAAG3uC,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAApB;AAEA0uC,mBAAW,CAAC3iD,KAAZ,GAAoBsiD,UAApB;AACAK,mBAAW,CAACziD,MAAZ,GAAqBuiD,WAArB;AAEA,YAAMG,YAAY,GAAGD,WAAW,CAACz8C,UAAZ,CAAuB,IAAvB,CAArB;AAEA08C,oBAAY,CAAChkD,SAAb,GAAyB8jD,OAAO,CAAC9jD,SAAR,IAAqB,OAA9C;;AAEA,YAAI8jD,OAAO,CAAC/zC,IAAR,KAAiB,GAArB,EAA0B;AACxBi0C,sBAAY,CAACh9C,QAAb,CAAsB,CAAtB,EAAyB,CAAzB,EAA4B+8C,WAAW,CAAC3iD,KAAxC,EAA+C2iD,WAAW,CAACziD,MAA3D;AACA0iD,sBAAY,CAACC,wBAAb,GAAwC,KAAxC;AACD;;AAED,YAAInhD,CAAC,GAAG,CAAR;;AAEA,aAAK,IAAInD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmkD,OAAO,CAACjvC,IAA5B,EAAkClV,CAAC,EAAnC,EAAuC;AACrC,eAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkkD,OAAO,CAACjxB,OAA5B,EAAqCjzB,CAAC,EAAtC,EAA0C;AACxC,gBAAIkkD,OAAO,CAAC/uC,SAAR,CAAkBjS,CAAC,EAAnB,IAAyB,CAA7B,EAAgC;AAC9BkhD,0BAAY,CAACh9C,QAAb,CAAsBpH,CAAtB,EAAyBD,CAAzB,EAA4B,CAA5B,EAA+B,CAA/B;AACD;AACF;AACF,SA3B8C,CA6B/C;;;AACA,YAAMukD,QAAQ,GACZ,CAACC,KAAK,CAACpK,UAAU,CAAC+J,OAAO,CAAClkD,CAAT,CAAX,CAAN,IAAiCwkD,QAAQ,CAACN,OAAO,CAAClkD,CAAT,CAAzC,GAAuDkkD,OAAO,CAAClkD,CAA/D,GAAmE,CADrE;AAEA,YAAMykD,QAAQ,GACZ,CAACF,KAAK,CAACpK,UAAU,CAAC+J,OAAO,CAACnkD,CAAT,CAAX,CAAN,IAAiCykD,QAAQ,CAACN,OAAO,CAACnkD,CAAT,CAAzC,GAAuDmkD,OAAO,CAACnkD,CAA/D,GAAmE,CADrE,CAhC+C,CAkC/C;;AAEAiW,qBAAa,CAACc,SAAd,CAAwBqtC,WAAxB,EAAqCG,QAArC,EAA+CG,QAA/C;AACD,OArCD;AAsCD;;;;EApGsC76B,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdzC;AACA;AAEA;;;;;;;;;IAQqBrF,iB;;;;;AACnB,+BAAwB;AAAA;;AAAA,QAAZmd,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,eADa;AAEnBsF,+BAAyB,EAAE,CAAC,YAAD,CAFR;AAGnBzG,mBAAa,EAAE;AACbyH,qBAAa,EAAE;AADF;AAHI,KAArB;AAQA,qNAAMywB,KAAN,EAAasW,YAAb,GATsB,CAWtB;;AACA,UAAKhnC,sBAAL,GAA8B,MAAK0zC,aAAL,CAAmBh5C,IAAnB,4FAA9B;AAZsB;AAavB;;;;kCAEa7C,G,EAAK;AACjB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADiB,UAETrI,OAFS,GAEaoI,SAFb,CAETpI,OAFS;AAAA,UAEAY,QAFA,GAEawH,SAFb,CAEAxH,QAFA;;AAIjB,UAAIwH,SAAS,CAACiI,WAAV,KAA0B,KAAKvH,aAAL,CAAmByH,aAAjD,EAAgE;AAC9D,YAAMpP,WAAW,GAAG,KAAK8iD,eAAL,CAAqB77C,SAArB,CAApB;;AAEA,aAAK87C,iBAAL,CAAuBtjD,QAAvB,EAAiCO,WAAjC;;AACAf,mEAAQ,CAACC,WAAT,CAAqBm0C,WAArB,CAAiCx0C,OAAjC,EAA0CY,QAA1C;AACD;AACF;;;oCAEewH,S,EAAW;AAAA,UACjBxH,QADiB,GACgBwH,SADhB,CACjBxH,QADiB;AAAA,UACPqN,KADO,GACgB7F,SADhB,CACP6F,KADO;AAAA,UACA0M,WADA,GACgBvS,SADhB,CACAuS,WADA;AAGzB,UAAIrE,UAAU,GAAG1V,QAAQ,CAACM,KAA1B;AACA,UAAIqV,WAAW,GAAG3V,QAAQ,CAACM,KAA3B;;AAEA,UAAI+M,KAAK,CAACuI,eAAN,GAAwBvI,KAAK,CAACwI,kBAAlC,EAAsD;AACpDH,kBAAU,IAAIrI,KAAK,CAACwI,kBAAN,GAA2BxI,KAAK,CAACuI,eAA/C;AACD,OAFD,MAEO,IAAIvI,KAAK,CAACwI,kBAAN,GAA2BxI,KAAK,CAACuI,eAArC,EAAsD;AAC3DD,mBAAW,IAAItI,KAAK,CAACuI,eAAN,GAAwBvI,KAAK,CAACwI,kBAA7C;AACD;;AAED,aAAO;AACLnX,SAAC,EAAEqb,WAAW,CAACV,IAAZ,CAAiB3a,CAAjB,GAAqBgX,UADnB;AAELjX,SAAC,EAAEsb,WAAW,CAACV,IAAZ,CAAiB5a,CAAjB,GAAqBkX;AAFnB,OAAP;AAID;;;sCAEiB3V,Q,EAAUO,W,EAAa;AACvCP,cAAQ,CAACO,WAAT,CAAqB7B,CAArB,IAA0B6B,WAAW,CAAC7B,CAAtC;AACAsB,cAAQ,CAACO,WAAT,CAAqB9B,CAArB,IAA0B8B,WAAW,CAAC9B,CAAtC;AACD;;;;EAjD4C6pB,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACX/C;AACA;AACA;AAEA;;;;;;;;;IAQqBpF,O;;;;;AACnB,qBAAwB;AAAA;;AAAA,QAAZkd,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,KADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnB8+B,eAAS,EAAE8V,2DAASA;AAHD,KAArB;AAMA,2MAAMnjB,KAAN,EAAasW,YAAb,GAPsB,CAStB;;AACA,UAAK3lB,iBAAL,GAAyB,MAAKqyB,aAAL,CAAmBh5C,IAAnB,4FAAzB,CAVsB,CAWtB;;AACA,UAAK+C,iBAAL,GAAyB,MAAKi2C,aAAL,CAAmBh5C,IAAnB,4FAAzB;AAZsB;AAavB;;;;kCAEa7C,G,EAAK;AACjB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADiB,UAETrI,OAFS,GAEaoI,SAFb,CAETpI,OAFS;AAAA,UAEAY,QAFA,GAEawH,SAFb,CAEAxH,QAFA;;AAIjB,UAAMO,WAAW,GAAG,KAAK8iD,eAAL,CAAqB77C,SAArB,CAApB;;AAEA,WAAK87C,iBAAL,CAAuBtjD,QAAvB,EAAiCO,WAAjC;;AACAf,iEAAQ,CAACC,WAAT,CAAqBm0C,WAArB,CAAiCx0C,OAAjC,EAA0CY,QAA1C;AACD;;;oCAEewH,S,EAAW;AAAA,UACjBxH,QADiB,GACgBwH,SADhB,CACjBxH,QADiB;AAAA,UACPqN,KADO,GACgB7F,SADhB,CACP6F,KADO;AAAA,UACA0M,WADA,GACgBvS,SADhB,CACAuS,WADA;AAGzB,UAAIrE,UAAU,GAAG1V,QAAQ,CAACM,KAA1B;AACA,UAAIqV,WAAW,GAAG3V,QAAQ,CAACM,KAA3B;;AAEA,UAAI+M,KAAK,CAACuI,eAAN,GAAwBvI,KAAK,CAACwI,kBAAlC,EAAsD;AACpDH,kBAAU,IAAIrI,KAAK,CAACwI,kBAAN,GAA2BxI,KAAK,CAACuI,eAA/C;AACD,OAFD,MAEO,IAAIvI,KAAK,CAACwI,kBAAN,GAA2BxI,KAAK,CAACuI,eAArC,EAAsD;AAC3DD,mBAAW,IAAItI,KAAK,CAACuI,eAAN,GAAwBvI,KAAK,CAACwI,kBAA7C;AACD;;AAED,aAAO;AACLnX,SAAC,EAAEqb,WAAW,CAACV,IAAZ,CAAiB3a,CAAjB,GAAqBgX,UADnB;AAELjX,SAAC,EAAEsb,WAAW,CAACV,IAAZ,CAAiB5a,CAAjB,GAAqBkX;AAFnB,OAAP;AAID;;;sCAEiB3V,Q,EAAUO,W,EAAa;AACvCP,cAAQ,CAACO,WAAT,CAAqB7B,CAArB,IAA0B6B,WAAW,CAAC7B,CAAtC;AACAsB,cAAQ,CAACO,WAAT,CAAqB9B,CAArB,IAA0B8B,WAAW,CAAC9B,CAAtC;AACD;;;;EA/CkC6pB,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZrC;AACA;AAEA;AACA;AACA;AACA;AAEA,IAAMzf,MAAM,GAAGC,kEAAS,CAAC,0BAAD,CAAxB;AAEA;;;;;;;;;;;;;;IAaqBqa,kB;;;;;AACnB,gCAAwB;AAAA;;AAAA,QAAZid,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,gBADa;AAEnBwf,YAAM,EAAE,CAAC,6BAAD,CAFW;AAGnB3gB,mBAAa,EAAE;AACbs7C,gBAAQ,EAAEC,qFAAyBA;AADtB;AAHI,KAArB;AAQA,sNAAMrjB,KAAN,EAAasW,YAAb;AAEA,UAAK8M,QAAL,GAAgB,IAAhB;AACA,UAAKvM,sBAAL,GAA8B,IAA9B;AAZsB;AAavB;;;;;;;8FAEqB73C,O;;;;;;;;;;;+EAAsC,E,EAA3B63C,sB,QAAAA,sB;AACzBuM,wB,GAAW,KAAKt7C,aAAL,CAAmBs7C,Q;;uBACPh4B,uFAAgC,CAACpsB,OAAD,C;;;AAAvD+Z,8B;;sBAEF,CAACA,cAAD,IAAmB,CAACqqC,QAApB,IAAgC,CAACvM,sB;;;;;AACnC;AACA;AACApuC,sBAAM,CAACmlB,IAAP,4BACsB,KAAK3kB,IAD3B;;;;AAMF,qBAAKm6C,QAAL,GAAgBA,QAAhB;AACA,qBAAKvM,sBAAL,GAA8BA,sBAA9B;AAEA,qBAAKyK,gBAAL,CAAsBtiD,OAAtB;;;;;;;;;;;;;;;;;;qCAGeA,O,EAAS;AACxB,WAAKsiD,gBAAL,CAAsBtiD,OAAtB;AACD;;;qCAEgBA,O,EAAS;AACxB,UAAM+Z,cAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB;;AAEA,UAAI+Z,cAAc,CAAC9L,KAAnB,EAA0B;AACxB7N,mEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AACF;;;mCAEcmI,G,EAAK;AAAA;;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB,CADkB,CAGlB;;AACA,UAAI,CAAC,KAAK+7C,QAAN,IAAkB,CAAC,KAAKvM,sBAA5B,EAAoD;AAClD;AACD,OANiB,CAQlB;;;AACA,UAAM72B,eAAe,GAAG,KAAK62B,sBAAL,CAA4BvD,iBAA5B,EAAxB;AACA,UAAM91C,OAAO,GAAGyW,uEAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;AAEAxG,iEAAQ,CAACC,WAAT,CAAqBikD,0BAArB,CACEl8C,SAAS,CAAC2R,cADZ,EAEEvb,OAFF;AAIAwiB,qBAAe,CAACpd,OAAhB,CAAwB,UAAA2gD,uBAAuB,EAAI;AACjD;AACA,YAAIA,uBAAuB,KAAKp8C,GAAG,CAAC2R,aAApC,EAAmD;AACjD;AACD,SAJgD,CAMjD;;;AACA,cAAI,CAACsqC,QAAL,CACE5lD,OADF,EAEE4J,SAFF,EAGED,GAAG,CAAC2R,aAHN,EAIEyqC,uBAJF;AAMD,OAbD;AAcD;;;;EA7E6Cr7B,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBhD;AACA;AACA;AACA;AAEA;;;;;;;;;IAQqBlF,U;;;;;AACnB,wBAAwB;AAAA,QAAZgd,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,QADa;AAEnBquC,gBAAU,EAAE;AACVC,eAAO,EAAEC,eADC;AAEVgM,kBAAU,EAAEC,kBAFF;AAGVC,gBAAQ,EAAEC;AAHA,OAFO;AAOnBnM,qBAAe,EAAE,SAPE;AAQnBjpC,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CARR;AASnB8+B,eAAS,EAAEuW,8DAAYA;AATJ,KAArB;AADsB,6MAahB5jB,KAbgB,EAaTsW,YAbS;AAcvB;;;;sCAEiBnvC,G,EAAK;AACrB,WAAK08C,YAAL,CAAkB18C,GAAlB;AACD;;;sCAEiBA,G,EAAK;AACrB,WAAK08C,YAAL,CAAkB18C,GAAlB;AACD;;;0CAEqBA,G,EAAK;AACzB,WAAKxH,eAAL,GAAuBwH,GAAG,CAACE,MAAJ,CAAWzH,QAAX,CAAoBQ,QAA3C;AACD;;;iCAEY+G,G,EAAK;AAChBA,SAAG,CAACE,MAAJ,CAAWzH,QAAX,CAAoBD,eAApB,GAAsC,KAAKA,eAA3C;AACA,WAAKwwB,mBAAL,CAAyBhpB,GAAzB;AACA/H,iEAAQ,CAACC,WAAT,CAAqBm0C,WAArB,CAAiCrsC,GAAG,CAACE,MAAJ,CAAWrI,OAA5C,EAAqDmI,GAAG,CAACE,MAAJ,CAAWzH,QAAhE;AACD;;;;EAjCqCsoB,yD;;;;AAoCxC,SAASsvB,eAAT,CAAyBrwC,GAAzB,EAA8B;AAC5B,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD4B,MAEpBrI,OAFoB,GAEEoI,SAFF,CAEpBpI,OAFoB;AAAA,MAEXY,QAFW,GAEEwH,SAFF,CAEXxH,QAFW;AAG5B,MAAMD,eAAe,GAAGC,QAAQ,CAACD,eAAjC,CAH4B,CAK5B;;AACA,MAAMgG,IAAI,GAAG3G,OAAO,CAAC+hD,qBAAR,CAA8B/hD,OAA9B,CAAb;AAN4B,MAOPc,KAPO,GAOyBd,OAPzB,CAOpBe,WAPoB;AAAA,MAOcC,MAPd,GAOyBhB,OAPzB,CAOAiB,YAPA;AAS5B,MAAM6jD,aAAa,GAAG;AACpBxlD,KAAC,EAAE8I,SAAS,CAACmJ,WAAV,CAAsB+I,MAAtB,CAA6Bhb,CADZ;AAEpBD,KAAC,EAAE+I,SAAS,CAACmJ,WAAV,CAAsB+I,MAAtB,CAA6Bjb;AAFZ,GAAtB;AAT4B,MAapB6B,KAboB,GAaGN,QAbH,CAapBM,KAboB;AAAA,MAabC,WAba,GAaGP,QAbH,CAabO,WAba;AAc5B,MAAM4jD,YAAY,GAAG;AACnBzlD,KAAC,EAAEqH,IAAI,CAACpC,IAAL,GAAYzD,KAAK,GAAG,CAApB,GAAwBK,WAAW,CAAC7B,CAAZ,GAAgB4B,KADxB;AAEnB7B,KAAC,EAAEsH,IAAI,CAACnC,GAAL,GAAWxD,MAAM,GAAG,CAApB,GAAwBG,WAAW,CAAC9B,CAAZ,GAAgB6B;AAFxB,GAArB;AAKA,MAAMoK,aAAa,GAAG;AACpBhM,KAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwBgP,MAAxB,CAA+Bhb,CADd;AAEpBD,KAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwBgP,MAAxB,CAA+Bjb;AAFd,GAAtB;AAKA,MAAM2lD,SAAS,GAAG35B,2EAAkB,CAClC05B,YADkC,EAElCD,aAFkC,EAGlCx5C,aAHkC,CAApC;;AAMA,MAAI05C,SAAS,CAAC9mC,SAAV,GAAsB,CAA1B,EAA6B;AAC3B8mC,aAAS,CAAC9lD,KAAV,GAAkB,CAAC8lD,SAAS,CAAC9lD,KAA7B;AACD;;AAED0B,UAAQ,CAACQ,QAAT,GAAoBT,eAAe,GAAGqkD,SAAS,CAAC9lD,KAAhD;AACD;;AAED,IAAMulD,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAt8C,GAAG,EAAI;AAChC,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADgC,MAExBzH,QAFwB,GAEEwH,SAFF,CAExBxH,QAFwB;AAAA,MAEd+Z,WAFc,GAEEvS,SAFF,CAEduS,WAFc;AAIhC/Z,UAAQ,CAACQ,QAAT,IAAqBuZ,WAAW,CAACV,IAAZ,CAAiB3a,CAAjB,GAAqBsB,QAAQ,CAACM,KAAnD;AACD,CALD;;AAOA,IAAMyjD,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAx8C,GAAG,EAAI;AAC9B,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD8B,MAEtBzH,QAFsB,GAEIwH,SAFJ,CAEtBxH,QAFsB;AAAA,MAEZ+Z,WAFY,GAEIvS,SAFJ,CAEZuS,WAFY;AAI9B/Z,UAAQ,CAACQ,QAAT,IAAqBuZ,WAAW,CAACV,IAAZ,CAAiB5a,CAAjB,GAAqBuB,QAAQ,CAACM,KAAnD;AACD,CALD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7FA;AACA;AAEA;;;;;;;;;IAQqB+iB,e;;;;;AACnB,6BAAwB;AAAA,QAAZ+c,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,aADa;AAEnBsF,+BAAyB,EAAE,CAAC,aAAD;AAFR,KAArB;AADsB,kNAMhByxB,KANgB,EAMTsW,YANS;AAOvB;;;;wCAEmBnvC,G,EAAK;AACvB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADuB,UAEfrI,OAFe,GAEiBoI,SAFjB,CAEfpI,OAFe;AAAA,UAENY,QAFM,GAEiBwH,SAFjB,CAENxH,QAFM;AAAA,UAEIQ,QAFJ,GAEiBgH,SAFjB,CAEIhH,QAFJ;AAIvBR,cAAQ,CAACQ,QAAT,IAAqBA,QAArB;AACAhB,iEAAQ,CAACC,WAAT,CAAqBm0C,WAArB,CAAiCx0C,OAAjC,EAA0CY,QAA1C;AACD;;;;EAhB0CsoB,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACX7C;CAEA;;AACA;AACA;AACA;AACA;AAEA,IAAMzf,MAAM,GAAGC,kEAAS,CAAC,wBAAD,CAAxB;AAEA;;;;;;;;;IAQqBwa,gB;;;;;AACnB,8BAAwB;AAAA,QAAZ8c,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,cADa;AAEnBnB,mBAAa,EAAE;AACbm8C,uBAAe,EAAE,IADJ;AAEbC,uBAAe,EAAE;AAFJ,OAFI;AAMnBz7B,YAAM,EAAE,CAAC,6BAAD;AANW,KAArB;AADsB,mNAUhBuX,KAVgB,EAUTsW,YAVS;AAWvB;;;;oCAEet3C,O,EAAS;AACvB,WAAKsiD,gBAAL,CAAsBtiD,OAAtB;AACD;;;qCAEgBA,O,EAAS;AACxB,WAAKsiD,gBAAL,CAAsBtiD,OAAtB;AACD;;;qCAEgBA,O,EAAS;AACxB,UAAM+Z,cAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB;;AAEA,UAAI+Z,cAAc,CAAC9L,KAAnB,EAA0B;AACxB7N,mEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AACF;;;mCAEcmI,G,EAAK;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAEA,UAAM7J,OAAO,GAAGyW,uEAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;AAHkB,UAIVqH,KAJU,GAImB7F,SAJnB,CAIV6F,KAJU;AAAA,UAIHrN,QAJG,GAImBwH,SAJnB,CAIHxH,QAJG;AAAA,UAIOZ,OAJP,GAImBoI,SAJnB,CAIOpI,OAJP;AAMlB,UAAIwW,eAAe,GAAGvI,KAAK,CAACuI,eAA5B;AACA,UAAI2uC,eAAe,GAAGl3C,KAAK,CAACwI,kBAA5B;AACA,UAAM++B,UAAU,GAAGp1C,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CACjB,kBADiB,EAEjBpvB,KAAK,CAACgmB,OAFW,CAAnB;;AAKA,UAAIuhB,UAAJ,EAAgB;AACdh/B,uBAAe,GACbg/B,UAAU,CAACh/B,eAAX,IAA8Bg/B,UAAU,CAAC4P,oBAD3C;AAEAD,uBAAe,GACb3P,UAAU,CAAC/+B,kBAAX,IAAiC++B,UAAU,CAAC6P,oBAD9C;AAED,OAlBiB,CAoBlB;;;AACA,UAAI,CAAC7uC,eAAD,IAAoB,CAAC2uC,eAAzB,EAA0C;AACxC17C,cAAM,CAACmlB,IAAP,4EACsE,KAAK3kB,IAD3E;AAIA;AACD;;AAED,UAAMq7C,UAAU,GAAG;AACjBxkD,aAAK,EAAEtC,OAAO,CAACoI,MAAR,CAAe9F,KADL;AAEjBE,cAAM,EAAExC,OAAO,CAACoI,MAAR,CAAe5F;AAFN,OAAnB,CA7BkB,CAkClB;;AACA,UAAMukD,qBAAqB,GAAI,OAAO/uC,eAAR,GAA2B5V,QAAQ,CAACM,KAAlE;AACA,UAAMskD,uBAAuB,GAAI,OAAOL,eAAR,GAA2BvkD,QAAQ,CAACM,KAApE,CApCkB,CAsClB;;AACA,UAAMukD,YAAY,GAAGC,kBAAkB,CAACJ,UAAD,EAAa,IAAb,EAAmB,IAAnB,CAAvC;AACA,UAAMK,YAAY,GAAGD,kBAAkB,CAACJ,UAAD,EAAa,IAAb,EAAmB,IAAnB,CAAvC;;AAEA,UACE,CAACA,UAAU,CAACxkD,KAAZ,IACA,CAACwkD,UAAU,CAACtkD,MADZ,IAEA,CAACykD,YAFD,IAGA,CAACE,YAJH,EAKE;AACA;AACD;;AAED,UAAM7mD,KAAK,GAAGoD,sEAAU,CAACC,YAAX,EAAd;AACA,UAAMpD,SAAS,GAAGiE,qEAAS,CAACE,YAAV,EAAlB;AAEA,UAAM0iD,eAAe,GAAGtjD,MAAM,CAAC8lB,MAAP,CACtB,EADsB,EAEtB;AACEq9B,oBAAY,EAAZA,YADF;AAEEE,oBAAY,EAAZA,YAFF;AAGEE,yBAAiB,EAAEN,qBAHrB;AAIEO,2BAAmB,EAAEN,uBAJvB;AAKEO,oBAAY,EAAE;AACZnnD,eAAK,EAAE;AACLU,aAAC,EAAEqmD,YAAY,CAACptC,WAAb,CAAyBjZ,CADvB;AAELD,aAAC,EAAEsmD,YAAY,CAAC1tC,OAAb,CAAqB5Y;AAFnB,WADK;AAKZR,aAAG,EAAE;AACHS,aAAC,EAAEqmD,YAAY,CAACptC,WAAb,CAAyBjZ,CADzB;AAEHD,aAAC,EAAEsmD,YAAY,CAACptC,WAAb,CAAyBlZ;AAFzB;AALO,SALhB;AAeE2mD,sBAAc,EAAE;AACdpnD,eAAK,EAAE;AACLU,aAAC,EAAEmmD,YAAY,CAACxtC,OAAb,CAAqB3Y,CADnB;AAELD,aAAC,EAAEomD,YAAY,CAACltC,WAAb,CAAyBlZ;AAFvB,WADO;AAKdR,aAAG,EAAE;AACHS,aAAC,EAAEmmD,YAAY,CAACltC,WAAb,CAAyBjZ,CADzB;AAEHD,aAAC,EAAEomD,YAAY,CAACltC,WAAb,CAAyBlZ;AAFzB;AALS,SAflB;AAyBEP,aAAK,EAALA,KAzBF;AA0BEC,iBAAS,EAATA;AA1BF,OAFsB,EA8BtB,KAAK+J,aA9BiB,CAAxB;AAiCAxC,oEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvBorB,2EAAS,CAACprB,OAAD,EAAUonD,eAAV,CAAT,CADuB,CAGvB;;AACApmD,0EAAQ,CACNhB,OADM,EAENwB,OAFM,EAGN4lD,eAAe,CAACG,YAAhB,CAA6BnnD,KAHvB,EAINgnD,eAAe,CAACG,YAAhB,CAA6BlnD,GAJvB,EAKN;AACEC,eAAK,EAAE8mD,eAAe,CAAC9mD,KADzB;AAEEC,mBAAS,EAAE6mD,eAAe,CAAC7mD;AAF7B,SALM,EASN,QATM,CAAR;AAWAknD,qCAA6B,CAACznD,OAAD,EAAUwB,OAAV,EAAmB4lD,eAAnB,CAA7B,CAfuB,CAiBvB;;AACApmD,0EAAQ,CACNhB,OADM,EAENwB,OAFM,EAGN4lD,eAAe,CAACI,cAAhB,CAA+BpnD,KAHzB,EAINgnD,eAAe,CAACI,cAAhB,CAA+BnnD,GAJzB,EAKN;AACEC,eAAK,EAAE8mD,eAAe,CAAC9mD,KADzB;AAEEC,mBAAS,EAAE6mD,eAAe,CAAC7mD;AAF7B,SALM,EASN,QATM,CAAR;AAWAmnD,uCAA+B,CAAC1nD,OAAD,EAAUwB,OAAV,EAAmB4lD,eAAnB,CAA/B;AACD,OA9BG,CAAJ;AA+BD;;;;EApJ2C18B,yD;AAuJ9C;;;;;;;;;;;AAOA,IAAMw8B,kBAAkB,GAAG,SAArBA,kBAAqB,CACzBJ,UADyB,EAEzBa,mBAFyB,EAGzBC,iBAHyB,EAItB;AACH,MAAMC,UAAU,GAAGF,mBAAmB,GAAGhnD,IAAI,CAACwC,GAAL,CAAS,IAAT,EAAe2jD,UAAU,CAACxkD,KAA1B,CAAzC;AACA,MAAMwlD,UAAU,GAAGF,iBAAiB,GAAGjnD,IAAI,CAACwC,GAAL,CAAS,IAAT,EAAe2jD,UAAU,CAACtkD,MAA1B,CAAvC;AACA,MAAMulD,YAAY,GAAG;AACnBhiD,QAAI,EAAE8hD,UADa;AAEnB7hD,OAAG,EAAE8hD,UAFc;AAGnBxlD,SAAK,EAAEwkD,UAAU,CAACxkD,KAAX,GAAmB,IAAIulD,UAHX;AAInBrlD,UAAM,EAAEskD,UAAU,CAACtkD,MAAX,GAAoB,IAAIslD;AAJb,GAArB;AAOA,SAAO;AACLruC,WAAO,EAAE;AACP3Y,OAAC,EAAEinD,YAAY,CAAChiD,IADT;AAEPlF,OAAC,EAAEknD,YAAY,CAAC/hD;AAFT,KADJ;AAKL+T,eAAW,EAAE;AACXjZ,OAAC,EAAEinD,YAAY,CAAChiD,IAAb,GAAoBgiD,YAAY,CAACzlD,KADzB;AAEXzB,OAAC,EAAEknD,YAAY,CAAC/hD,GAAb,GAAmB+hD,YAAY,CAACvlD;AAFxB;AALR,GAAP;AAUD,CAxBD;AA0BA;;;;;;;;AAMA,IAAMilD,6BAA6B,GAAG,SAAhCA,6BAAgC,CAACznD,OAAD,EAAUwB,OAAV,EAAmB4lD,eAAnB,EAAuC;AAC3E,MAAIpjD,CAAC,GAAG,CAAR;;AAEA,SACEojD,eAAe,CAACG,YAAhB,CAA6BnnD,KAA7B,CAAmCS,CAAnC,GACEmD,CAAC,GAAGojD,eAAe,CAACC,iBADtB,IAEAD,eAAe,CAACD,YAAhB,CAA6BptC,WAA7B,CAAyClZ,CAH3C,EAIE;AAAA,QACQP,KADR,GAC6B8mD,eAD7B,CACQ9mD,KADR;AAAA,QACeC,SADf,GAC6B6mD,eAD7B,CACe7mD,SADf;AAEA,QAAMynD,UAAU,GAAG;AACjBlnD,OAAC,EAAEsmD,eAAe,CAACG,YAAhB,CAA6BnnD,KAA7B,CAAmCU,CADrB;AAEjBD,OAAC,EACCumD,eAAe,CAACG,YAAhB,CAA6BnnD,KAA7B,CAAmCS,CAAnC,GACAmD,CAAC,GAAGojD,eAAe,CAACC;AAJL,KAAnB;AAOA,QAAMY,QAAQ,GAAG;AACfnnD,OAAC,EAAE,CADY;AAEfD,OAAC,EACCumD,eAAe,CAACG,YAAhB,CAA6BnnD,KAA7B,CAAmCS,CAAnC,GACAmD,CAAC,GAAGojD,eAAe,CAACC;AAJP,KAAjB;;AAOA,QAAIrjD,CAAC,GAAG,CAAJ,KAAU,CAAd,EAAiB;AACfikD,cAAQ,CAACnnD,CAAT,GACEsmD,eAAe,CAACG,YAAhB,CAA6BnnD,KAA7B,CAAmCU,CAAnC,GAAuCsmD,eAAe,CAACV,eADzD;AAED,KAHD,MAGO;AACLuB,cAAQ,CAACnnD,CAAT,GACEsmD,eAAe,CAACG,YAAhB,CAA6BnnD,KAA7B,CAAmCU,CAAnC,GAAuCsmD,eAAe,CAACX,eADzD;AAED;;AAEDzlD,sEAAQ,CACNhB,OADM,EAENwB,OAFM,EAGNwmD,UAHM,EAINC,QAJM,EAKN;AACE3nD,WAAK,EAALA,KADF;AAEEC,eAAS,EAATA;AAFF,KALM,EASN,QATM,CAAR;AAYAyD,KAAC;AACF;AACF,CA7CD;AA+CA;;;;;;;;AAMA,IAAM0jD,+BAA+B,GAAG,SAAlCA,+BAAkC,CAAC1nD,OAAD,EAAUwB,OAAV,EAAmB4lD,eAAnB,EAAuC;AAC7E,MAAIpjD,CAAC,GAAG,CAAR;;AAEA,SACEojD,eAAe,CAACI,cAAhB,CAA+BpnD,KAA/B,CAAqCU,CAArC,GACEkD,CAAC,GAAGojD,eAAe,CAACE,mBADtB,IAEAF,eAAe,CAACH,YAAhB,CAA6BltC,WAA7B,CAAyCjZ,CAH3C,EAIE;AAAA,QACQR,KADR,GAC6B8mD,eAD7B,CACQ9mD,KADR;AAAA,QACeC,SADf,GAC6B6mD,eAD7B,CACe7mD,SADf;AAEA,QAAMynD,UAAU,GAAG;AACjBlnD,OAAC,EACCsmD,eAAe,CAACI,cAAhB,CAA+BpnD,KAA/B,CAAqCU,CAArC,GACAkD,CAAC,GAAGojD,eAAe,CAACE,mBAHL;AAIjBzmD,OAAC,EAAEumD,eAAe,CAACI,cAAhB,CAA+BpnD,KAA/B,CAAqCS;AAJvB,KAAnB;AAOA,QAAMonD,QAAQ,GAAG;AACfnnD,OAAC,EACCsmD,eAAe,CAACI,cAAhB,CAA+BpnD,KAA/B,CAAqCU,CAArC,GACAkD,CAAC,GAAGojD,eAAe,CAACE,mBAHP;AAIfzmD,OAAC,EAAE;AAJY,KAAjB;;AAOA,QAAImD,CAAC,GAAG,CAAJ,KAAU,CAAd,EAAiB;AACfikD,cAAQ,CAACpnD,CAAT,GACEumD,eAAe,CAACI,cAAhB,CAA+BpnD,KAA/B,CAAqCS,CAArC,GACAumD,eAAe,CAACV,eAFlB;AAGD,KAJD,MAIO;AACLuB,cAAQ,CAACpnD,CAAT,GACEumD,eAAe,CAACI,cAAhB,CAA+BpnD,KAA/B,CAAqCS,CAArC,GACAumD,eAAe,CAACX,eAFlB;AAGD;;AAEDzlD,sEAAQ,CACNhB,OADM,EAENwB,OAFM,EAGNwmD,UAHM,EAINC,QAJM,EAKN;AACE3nD,WAAK,EAALA,KADF;AAEEC,eAAS,EAATA;AAFF,KALM,EASN,QATM,CAAR;AAYAyD,KAAC;AACF;AACF,CA/CD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrQA;AACA;AAEA;;;;;;;;;IAQqB2hB,yB;;;;;AACnB,uCAAwB;AAAA,QAAZ6c,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,uBADa;AAEnBsF,+BAAyB,EAAE,CAAC,YAAD,CAFR;AAGnBzG,mBAAa,EAAE;AACbgwB,YAAI,EAAE,KADO;AAEb4tB,qBAAa,EAAE,IAFF;AAGb3Q,cAAM,EAAE;AAHK;AAHI,KAArB;AADsB,4NAWhB/U,KAXgB,EAWTsW,YAXS;AAYvB;;;;uCAEkBnvC,G,EAAK;AAAA,wBACiBA,GAAG,CAACE,MADrB;AAAA,UACH4hC,MADG,eACd/rB,SADc;AAAA,UACKle,OADL,eACKA,OADL;AAAA,gCAEkB,KAAK8I,aAFvB;AAAA,UAEdgwB,IAFc,uBAEdA,IAFc;AAAA,UAER4tB,aAFQ,uBAERA,aAFQ;AAAA,UAEO3Q,MAFP,uBAEOA,MAFP;AAGtB,UAAM73B,SAAS,GAAG63B,MAAM,GAAG,CAAC9L,MAAJ,GAAaA,MAArC;AAEAxf,qEAAM,CAACzqB,OAAD,EAAUke,SAAV,EAAqB4a,IAArB,EAA2B4tB,aAA3B,CAAN;AACD;;;;EArBoDx9B,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXvD;AACA;AACA;AACA;AAEA;;;;;;;;;IAQqB9E,yB;;;;;AACnB,uCAAwB;AAAA;;AAAA,QAAZ4c,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,uBADa;AAEnBsF,+BAAyB,EAAE,CAAC,YAAD,CAFR;AAGnBzG,mBAAa,EAAE;AACbgwB,YAAI,EAAE,KADO;AAEb4tB,qBAAa,EAAE,IAFF;AAGbn2C,qBAAa,EAAE;AAHF;AAHI,KAArB;AAUA,6NAAMywB,KAAN,EAAasW,YAAb;AACA,UAAKhnC,sBAAL,GAA8B,MAAK0zC,aAAL,CAAmBh5C,IAAnB,4FAA9B;AAZsB;AAavB;;;;kCAEa7C,G,EAAK;AACjB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;;AAEA,UAAID,SAAS,CAACiI,WAAV,KAA0B,KAAKvH,aAAL,CAAmByH,aAAjD,EAAgE;AAAA,YACtDvQ,OADsD,GAC7BoI,SAD6B,CACtDpI,OADsD;AAAA,YAC7C2a,WAD6C,GAC7BvS,SAD6B,CAC7CuS,WAD6C;AAAA,kCAE9B,KAAK7R,aAFyB;AAAA,YAEtDgwB,IAFsD,uBAEtDA,IAFsD;AAAA,YAEhD4tB,aAFgD,uBAEhDA,aAFgD;AAG9D,YAAMnnD,OAAO,GAAG0gB,sEAAc,CAAC,KAAKhW,IAAN,EAAYjK,OAAZ,CAA9B;;AAEA,YAAM2mD,cAAc,GAAG,KAAKC,iBAAL,CAAuB5mD,OAAvB,CAAvB;;AACA,YAAMoT,MAAM,GAAG,KAAKyzC,UAAL,CAAgB7mD,OAAhB,EAAyB2a,WAAW,CAACV,IAAZ,CAAiB5a,CAA1C,CAAf;;AAEA,YAAI,CAACsnD,cAAL,EAAqB;AACnB;AACD;;AAED,YAAIxnD,IAAI,CAACmC,GAAL,CAAS8R,MAAT,KAAoBuzC,cAAxB,EAAwC;AACtC,cAAMG,kBAAkB,GAAG3nD,IAAI,CAACi7B,KAAL,CAAWhnB,MAAM,GAAGuzC,cAApB,CAA3B;AAEAl8B,yEAAM,CAACzqB,OAAD,EAAU8mD,kBAAV,EAA8BhuB,IAA9B,EAAoC4tB,aAApC,CAAN;AAEAnnD,iBAAO,CAAC6T,MAAR,GAAiBA,MAAM,GAAGuzC,cAA1B;AACD,SAND,MAMO;AACLpnD,iBAAO,CAAC6T,MAAR,GAAiBA,MAAjB;AACD;;AAED+M,8EAAc,CAAC,KAAKlW,IAAN,EAAYjK,OAAZ,EAAqBT,OAArB,CAAd;AACD;AACF;;;+BAEUS,O,EAAS+mD,Y,EAAc;AAChC,UAAMxnD,OAAO,GAAG0gB,sEAAc,CAAC,KAAKhW,IAAN,EAAYjK,OAAZ,CAA9B;AACA,UAAMoT,MAAM,GAAG7T,OAAO,CAAC6T,MAAR,IAAkB,CAAjC;AAEA,aAAOA,MAAM,GAAG2zC,YAAhB;AACD;;;sCAEiB/mD,O,EAAS;AACzB,UAAMwQ,QAAQ,GAAG5H,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA7B;;AAEA,UAAI,CAACwQ,QAAD,IAAa,CAACA,QAAQ,CAACzD,IAAvB,IAA+B,CAACyD,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlD,EAA0D;AACxD;AACD;;AAED,UAAM+0B,SAAS,GAAG/nB,QAAQ,CAACzD,IAAT,CAAc,CAAd,CAAlB;AAPyB,UAQjBi6C,gBARiB,GAQI,KAAKl+C,aART,CAQjBk+C,gBARiB,EAUzB;;AACA,aACEA,gBAAgB,IAChB7nD,IAAI,CAACkH,GAAL,CAAS,CAAT,EAAYrG,OAAO,CAACinD,YAAR,GAAuB9nD,IAAI,CAACkH,GAAL,CAASkyB,SAAS,CAACjC,QAAV,CAAmB9yB,MAA5B,EAAoC,CAApC,CAAnC,CAFF;AAID;;;;EAnEoD0lB,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbvD;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;IAQqB7E,e;;;;;AACnB,6BAAwB;AAAA;;AAAA,QAAZ2c,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,aADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnBzG,mBAAa,EAAE;AACbgwB,YAAI,EAAE,KADO;AAEb4tB,qBAAa,EAAE;AAFF,OAHI;AAOnBrY,eAAS,EAAE6Y,oEAAiBA;AAPT,KAArB;AAUA,mNAAMlmB,KAAN,EAAasW,YAAb;AAEA,UAAKvpC,iBAAL,GAAyB,MAAKi2C,aAAL,CAAmBh5C,IAAnB,4FAAzB;AACA,UAAK2mB,iBAAL,GAAyB,MAAKqyB,aAAL,CAAmBh5C,IAAnB,4FAAzB;AAdsB;AAevB;;;;kCAEa7C,G,EAAK;AACjB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADiB,UAETrI,OAFS,GAEgBoI,SAFhB,CAETpI,OAFS;AAAA,UAEA2a,WAFA,GAEgBvS,SAFhB,CAEAuS,WAFA;AAAA,gCAGe,KAAK7R,aAHpB;AAAA,UAGTgwB,IAHS,uBAGTA,IAHS;AAAA,UAGH4tB,aAHG,uBAGHA,aAHG;AAIjB,UAAMnnD,OAAO,GAAG0gB,sEAAc,CAAC,KAAKhW,IAAN,EAAYjK,OAAZ,CAA9B;;AAEA,UAAM2mD,cAAc,GAAG,KAAKC,iBAAL,CAAuB5mD,OAAvB,CAAvB;;AACA,UAAMoT,MAAM,GAAG,KAAKyzC,UAAL,CAAgB7mD,OAAhB,EAAyB2a,WAAW,CAACV,IAAZ,CAAiB5a,CAA1C,CAAf;;AAEA,UAAI,CAACsnD,cAAL,EAAqB;AACnB;AACD;;AAED,UAAIxnD,IAAI,CAACmC,GAAL,CAAS8R,MAAT,KAAoBuzC,cAAxB,EAAwC;AACtC,YAAMG,kBAAkB,GAAG3nD,IAAI,CAACi7B,KAAL,CAAWhnB,MAAM,GAAGuzC,cAApB,CAA3B;AAEAl8B,uEAAM,CAACzqB,OAAD,EAAU8mD,kBAAV,EAA8BhuB,IAA9B,EAAoC4tB,aAApC,CAAN;AAEAnnD,eAAO,CAAC6T,MAAR,GAAiBA,MAAM,GAAGuzC,cAA1B;AACD,OAND,MAMO;AACLpnD,eAAO,CAAC6T,MAAR,GAAiBA,MAAjB;AACD;;AAED+M,4EAAc,CAAC,KAAKlW,IAAN,EAAYjK,OAAZ,EAAqBT,OAArB,CAAd;AACD;;;+BAEUS,O,EAAS+mD,Y,EAAc;AAChC,UAAMxnD,OAAO,GAAG0gB,sEAAc,CAAC,KAAKhW,IAAN,EAAYjK,OAAZ,CAA9B;AACA,UAAMoT,MAAM,GAAG7T,OAAO,CAAC6T,MAAR,IAAkB,CAAjC;AAEA,aAAOA,MAAM,GAAG2zC,YAAhB;AACD;;;sCAEiB/mD,O,EAAS;AACzB,UAAMwQ,QAAQ,GAAG5H,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA7B;;AAEA,UAAI,CAACwQ,QAAD,IAAa,CAACA,QAAQ,CAACzD,IAAvB,IAA+B,CAACyD,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlD,EAA0D;AACxD;AACD;;AAED,UAAM+0B,SAAS,GAAG/nB,QAAQ,CAACzD,IAAT,CAAc,CAAd,CAAlB;AAPyB,UAQjBi6C,gBARiB,GAQI,KAAKl+C,aART,CAQjBk+C,gBARiB,EAUzB;;AACA,aACEA,gBAAgB,IAChB7nD,IAAI,CAACkH,GAAL,CAAS,CAAT,EAAYrG,OAAO,CAACinD,YAAR,GAAuB9nD,IAAI,CAACkH,GAAL,CAASkyB,SAAS,CAACjC,QAAV,CAAmB9yB,MAA5B,EAAoC,CAApC,CAAnC,CAFF;AAID;;;;EAlE0C0lB,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACd7C;CAEA;;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;IAQqB5E,c;;;;;AACnB;AACA,4BAAwB;AAAA;;AAAA,QAAZ0c,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,YADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnBzG,mBAAa,EAAE;AACbq+C,sBAAc,EAAE;AADH,OAHI;AAMnB9Y,eAAS,EAAE+Y,mEAAgBA;AANR,KAArB;AASA,kNAAMpmB,KAAN,EAAasW,YAAb;;AACA,UAAKhnB,aAAL,GAXsB,CAatB;AACA;AACA;;AAEA;;;AACA,UAAK3e,sBAAL,GAA8B,MAAK+e,qBAAL,CAA2B1lB,IAA3B,4FAA9B;AAEA;;AACA,UAAK2mB,iBAAL,GAAyB,MAAKb,oBAAL,CAA0B9lB,IAA1B,4FAAzB;AAEA;;AACA,UAAK4mB,gBAAL,GAAwB,MAAKf,cAAL,CAAoB7lB,IAApB,4FAAxB,CAxBsB,CA0BtB;AACA;AACA;;AAEA;;AACA,UAAKwC,qBAAL,GAA6B,MAAKkjB,qBAAL,CAA2B1lB,IAA3B,4FAA7B;AAEA;;AACA,UAAK0mB,kBAAL,GAA0B,MAAKhB,qBAAL,CAA2B1lB,IAA3B,4FAA1B;AAEA;;AACA,UAAK+C,iBAAL,GAAyB,MAAK+iB,oBAAL,CAA0B9lB,IAA1B,4FAAzB;AAEA;;AACA,UAAKqD,iBAAL,GAAyB,MAAKyiB,oBAAL,CAA0B9lB,IAA1B,4FAAzB;AAEA;;AACA,UAAK6mB,eAAL,GAAuB,MAAKhB,cAAL,CAAoB7lB,IAApB,4FAAvB;AA3CsB;AA4CvB;AAED;;;;;;;;;;;mCAOe7C,G,EAAK;AAAA;;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADkB,UAEVrI,OAFU,GAEEoI,SAFF,CAEVpI,OAFU;AAGlB,UAAMlB,KAAK,GAAGoD,uEAAU,CAACm+B,gBAAX,CAA4B;AAAEx9B,cAAM,EAAE;AAAV,OAA5B,CAAd;AACA,UAAMrE,OAAO,GAAGyW,uEAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;AAEAN,oEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvBurB,0EAAQ,CAACvrB,OAAD,EAAUwB,OAAV,EAAmB,MAAI,CAACgC,OAAL,CAAapD,KAAhC,EAAuC,MAAI,CAACoD,OAAL,CAAanD,GAApD,EAAyD;AAC/DC,eAAK,EAALA;AAD+D,SAAzD,CAAR;AAGD,OAJG,CAAJ;AAKD;AAED;;;;;;;;;;0CAOsBqJ,G,EAAK;AACzB,UAAMwoB,YAAY,GAAG,IAArB;AACA,UAAM3wB,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B;AACA,UAAMiO,KAAK,GAAG9F,GAAG,CAACE,MAAJ,CAAWiD,aAAX,CAAyB2C,KAAvC;;AAEA,UAAI2iB,cAAc,CAAC,KAAK5uB,OAAL,CAAapD,KAAd,CAAlB,EAAwC;AACtC,aAAKoD,OAAL,CAAapD,KAAb,GAAqBqP,KAArB;AACD,OAFD,MAEO;AACL,aAAKjM,OAAL,CAAanD,GAAb,GAAmBoP,KAAnB;;AACA,aAAK4iB,cAAL,CAAoB1oB,GAApB;AACD;;AAED/H,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA,aAAO2wB,YAAP;AACD;AAED;;;;;;;;;;;yCAQqBxoB,G,EAAK;AACxB,UAAMnI,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B;AACA,UAAMiO,KAAK,GAAG9F,GAAG,CAACE,MAAJ,CAAWiD,aAAX,CAAyB2C,KAAvC;AAEA,WAAKjM,OAAL,CAAanD,GAAb,GAAmBoP,KAAnB;AACA7N,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;;mCAQemI,G,EAAK;AAClB,UACEyoB,cAAc,CAAC,KAAK5uB,OAAL,CAAapD,KAAd,CAAd,IACAgyB,cAAc,CAAC,KAAK5uB,OAAL,CAAanD,GAAd,CAFhB,EAGE;AACA;AACD;;AAEDsJ,SAAG,CAACE,MAAJ,CAAWrG,OAAX,GAAqB,KAAKA,OAA1B;;AACAqlD,sBAAgB,CAACl/C,GAAD,EAAM,KAAKW,aAAX,CAAhB;;AACA,WAAKwnB,aAAL;AACD;AAED;;;;;;;;;;oCAOgB;AACd,WAAKtuB,OAAL,GAAe;AACbpD,aAAK,EAAE,EADM;AAEbC,WAAG,EAAE;AAFQ,OAAf;AAID;;;;EA7IyCqqB,yD;AAgJ5C;;;;;;;;;;;;AAQA,IAAM0H,cAAc,GAAG,SAAjBA,cAAiB,CAAA02B,GAAG;AAAA,SACxBhlD,MAAM,CAACC,IAAP,CAAY+kD,GAAZ,EAAiB9jD,MAAjB,KAA4B,CAA5B,IAAiC8jD,GAAG,CAAC5J,WAAJ,KAAoBp7C,MAD7B;AAAA,CAA1B;AAGA;;;;;;;;;;;;AAUA,IAAM+kD,gBAAgB,GAAG,SAAnBA,gBAAmB,CAASl/C,GAAT,EAAc00B,MAAd,EAAsB;AAC7C,MAAMz0B,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD6C,MAErC4F,KAFqC,GAElB7F,SAFkB,CAErC6F,KAFqC;AAAA,MAE9BjO,OAF8B,GAElBoI,SAFkB,CAE9BpI,OAF8B;AAAA,4BAGAmI,GAAG,CAACE,MAAJ,CAAWrG,OAHX;AAAA,MAG9BwkD,UAH8B,uBAGrC5nD,KAHqC;AAAA,MAGb6nD,QAHa,uBAGlB5nD,GAHkB,EAK7C;;AACA,MAAI0F,IAAI,GAAGpF,IAAI,CAACwC,GAAL,CAAS6kD,UAAU,CAAClnD,CAApB,EAAuBmnD,QAAQ,CAACnnD,CAAhC,CAAX;AACA,MAAIkF,GAAG,GAAGrF,IAAI,CAACwC,GAAL,CAAS6kD,UAAU,CAACnnD,CAApB,EAAuBonD,QAAQ,CAACpnD,CAAhC,CAAV;AACA,MAAIyB,KAAK,GAAG3B,IAAI,CAACmC,GAAL,CAASklD,UAAU,CAAClnD,CAAX,GAAemnD,QAAQ,CAACnnD,CAAjC,CAAZ;AACA,MAAI0B,MAAM,GAAG7B,IAAI,CAACmC,GAAL,CAASklD,UAAU,CAACnnD,CAAX,GAAeonD,QAAQ,CAACpnD,CAAjC,CAAb,CAT6C,CAW7C;;AACAkF,MAAI,GAAGknB,6DAAI,CAAClnB,IAAD,EAAO,CAAP,EAAU0J,KAAK,CAACnN,KAAhB,CAAX;AACA0D,KAAG,GAAGinB,6DAAI,CAACjnB,GAAD,EAAM,CAAN,EAASyJ,KAAK,CAACjN,MAAf,CAAV;AACAF,OAAK,GAAG3B,IAAI,CAACkY,KAAL,CAAWlY,IAAI,CAACwC,GAAL,CAASb,KAAT,EAAgB3B,IAAI,CAACmC,GAAL,CAAS2M,KAAK,CAACnN,KAAN,GAAcyD,IAAvB,CAAhB,CAAX,CAAR;AACAvD,QAAM,GAAG7B,IAAI,CAACkY,KAAL,CAAWlY,IAAI,CAACwC,GAAL,CAASX,MAAT,EAAiB7B,IAAI,CAACmC,GAAL,CAAS2M,KAAK,CAACjN,MAAN,GAAewD,GAAxB,CAAjB,CAAX,CAAT,CAf6C,CAiB7C;;AACA,MAAM+iD,kBAAkB,GAAGn9B,sEAAY,CAACpqB,OAAD,EAAUuE,IAAV,EAAgBC,GAAhB,EAAqB1D,KAArB,EAA4BE,MAA5B,CAAvC,CAlB6C,CAoB7C;;AACA,MAAMwmD,UAAU,GAAGC,oBAAoB,CACrCF,kBADqC,EAErCt5C,KAAK,CAACy5C,aAF+B,EAGrCz5C,KAAK,CAAC05C,aAH+B,CAAvC,CArB6C,CA2B7C;;;AACA,MAAM/mD,QAAQ,GAAGwH,SAAS,CAACxH,QAA3B;;AAEA,MAAIi8B,MAAM,CAACsqB,cAAP,KAA0B1nD,SAA9B,EAAyC;AACvCo9B,UAAM,CAACsqB,cAAP,GAAwB,EAAxB;AACD;;AAEDvmD,UAAQ,CAACg1C,GAAT,CAAaC,WAAb,GAA2B12C,IAAI,CAACkH,GAAL,CACzBlH,IAAI,CAACmC,GAAL,CAASkmD,UAAU,CAACnhD,GAAX,GAAiBmhD,UAAU,CAAC7lD,GAArC,CADyB,EAEzBk7B,MAAM,CAACsqB,cAFkB,CAA3B;AAIAvmD,UAAQ,CAACg1C,GAAT,CAAaE,YAAb,GAA4B0R,UAAU,CAACxc,IAAvC,CAtC6C,CAwC7C;;AACApqC,UAAQ,CAACgnD,MAAT,GAAkBnoD,SAAlB;AAEAW,6DAAQ,CAACC,WAAT,CAAqBm0C,WAArB,CAAiCx0C,OAAjC,EAA0CY,QAA1C;AACAR,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD,CA7CD;AA+CA;;;;;;;;;;;;AAUA,IAAMynD,oBAAoB,GAAG,SAAvBA,oBAAuB,CAASI,cAAT,EAAyBC,SAAzB,EAAoCC,SAApC,EAA+C;AAC1E,MAAMC,SAAS,GAAGH,cAAc,CAACrkD,MAAjC;AACA,MAAI7B,GAAG,GAAGomD,SAAV;AACA,MAAI1hD,GAAG,GAAGyhD,SAAV;AACA,MAAIxwB,GAAG,GAAG,CAAV;;AAEA,MAAI0wB,SAAS,GAAG,CAAhB,EAAmB;AACjB,WAAO;AACLrmD,SAAG,EAAHA,GADK;AAEL0E,SAAG,EAAHA,GAFK;AAGL2kC,UAAI,EAAE,CAAC8c,SAAS,GAAGC,SAAb,IAA0B;AAH3B,KAAP;AAKD;;AAED,OAAK,IAAIjhD,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGkhD,SAA5B,EAAuClhD,KAAK,EAA5C,EAAgD;AAC9C,QAAMmhD,GAAG,GAAGJ,cAAc,CAAC/gD,KAAD,CAA1B;AAEAnF,OAAG,GAAGxC,IAAI,CAACwC,GAAL,CAASA,GAAT,EAAcsmD,GAAd,CAAN;AACA5hD,OAAG,GAAGlH,IAAI,CAACkH,GAAL,CAASA,GAAT,EAAc4hD,GAAd,CAAN;AACA3wB,OAAG,IAAI2wB,GAAP;AACD;;AAED,SAAO;AACLtmD,OAAG,EAAHA,GADK;AAEL0E,OAAG,EAAHA,GAFK;AAGL2kC,QAAI,EAAE1T,GAAG,GAAG0wB;AAHP,GAAP;AAKD,CA3BD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/OA;AACA;AACA;AAEA;;;;;;;;;IAQqBzjC,Q;;;;;AACnB,sBAAwB;AAAA,QAAZyc,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,MADa;AAEnBquC,gBAAU,EAAE;AAAE4P,6BAAqB,EAArBA;AAAF,OAFO;AAGnB34C,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAHR;AAInBzG,mBAAa,EAAE;AACb8d,mBAAW,EAAE;AADA,OAJI;AAOnBynB,eAAS,EAAE8Z,4DAAUA;AAPF,KAArB;AADsB,2MAWhBnnB,KAXgB,EAWTsW,YAXS;AAYvB;;;;sCAEiBnvC,G,EAAK;AACrB,WAAKgpB,mBAAL,CAAyBhpB,GAAzB;AACA/H,iEAAQ,CAACC,WAAT,CAAqBm0C,WAArB,CAAiCrsC,GAAG,CAACE,MAAJ,CAAWrI,OAA5C,EAAqDmI,GAAG,CAACE,MAAJ,CAAWzH,QAAhE;AACD;;;sCAEiBuH,G,EAAK;AACrB;AACAA,SAAG,CAAC8I,wBAAJ;AACA,WAAKkgB,mBAAL,CAAyBhpB,GAAzB;AACA/H,iEAAQ,CAACC,WAAT,CAAqBm0C,WAArB,CAAiCrsC,GAAG,CAACE,MAAJ,CAAWrI,OAA5C,EAAqDmI,GAAG,CAACE,MAAJ,CAAWzH,QAAhE;AACD;;;;EAzBmCsoB,yD;AA4BtC;;;;;;;;;;;;;;AAUA,SAASg/B,qBAAT,CAA+B//C,GAA/B,EAAoC;AAAA,MAC1Bye,WAD0B,GACV,KAAK9d,aADK,CAC1B8d,WAD0B;AAElC,MAAMxe,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAEA,MAAM+/C,MAAM,GACVhgD,SAAS,CAAC6F,KAAV,CAAgB05C,aAAhB,GAAgCv/C,SAAS,CAAC6F,KAAV,CAAgBqrC,KAAhD,GACAlxC,SAAS,CAAC6F,KAAV,CAAgBsrC,SAFlB;AAGA,MAAM8O,MAAM,GACVjgD,SAAS,CAAC6F,KAAV,CAAgBy5C,aAAhB,GAAgCt/C,SAAS,CAAC6F,KAAV,CAAgBqrC,KAAhD,GACAlxC,SAAS,CAAC6F,KAAV,CAAgBsrC,SAFlB;AAGA,MAAM+O,iBAAiB,GAAGF,MAAM,GAAGC,MAAnC;AACA,MAAME,UAAU,GAAGD,iBAAiB,GAAG,IAAvC;AAEA,MAAMj1C,MAAM,GAAGjL,SAAS,CAACuS,WAAV,CAAsBV,IAAtB,CAA2B3a,CAA3B,GAA+BipD,UAA9C;AACA,MAAMn1C,MAAM,GAAGhL,SAAS,CAACuS,WAAV,CAAsBV,IAAtB,CAA2B5a,CAA3B,GAA+BkpD,UAA9C;;AAEA,MAAI3hC,WAAW,KAAK,CAApB,EAAuB;AACrBxe,aAAS,CAACxH,QAAV,CAAmBg1C,GAAnB,CAAuBC,WAAvB,IAAsCxiC,MAAtC;AACAjL,aAAS,CAACxH,QAAV,CAAmBg1C,GAAnB,CAAuBE,YAAvB,IAAuC1iC,MAAvC;AACD,GAHD,MAGO;AACLhL,aAAS,CAACxH,QAAV,CAAmBg1C,GAAnB,CAAuBC,WAAvB,IAAsCziC,MAAtC;AACAhL,aAAS,CAACxH,QAAV,CAAmBg1C,GAAnB,CAAuBE,YAAvB,IAAuCziC,MAAvC;AACD,GAtBiC,CAwBlC;;;AACAjL,WAAS,CAACxH,QAAV,CAAmBgnD,MAAnB,GAA4BnoD,SAA5B;AACD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5ED;AACA;AACA;AAEA;;;;;;;;;IAQqB+kB,kB;;;;;AACnB,gCAAwB;AAAA,QAAZwc,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,gBADa;AAEnBsF,+BAAyB,EAAE,CAAC,YAAD,CAFR;AAGnBzG,mBAAa,EAAE;AACb0/C,gBAAQ,EAAE,IADG;AAEbC,gBAAQ,EAAE,IAFG;AAGb1S,cAAM,EAAE;AAHK;AAHI,KAArB;AADsB,qNAWhB/U,KAXgB,EAWTsW,YAXS;AAYvB;;;;uCAEkBnvC,G,EAAK;AAAA,wBACeA,GAAG,CAACE,MADnB;AAAA,UACdrI,OADc,eACdA,OADc;AAAA,UACLY,QADK,eACLA,QADK;AAAA,UACKkS,KADL,eACKA,KADL;AAAA,gCAEiB,KAAKhK,aAFtB;AAAA,UAEditC,MAFc,uBAEdA,MAFc;AAAA,UAEN0S,QAFM,uBAENA,QAFM;AAAA,UAEID,QAFJ,uBAEIA,QAFJ;AAGtB,UAAME,KAAK,GAAG3S,MAAM,GAAGjjC,KAAK,GAAG,CAAX,GAAe,CAACA,KAAD,GAAS,CAA5C;AAEA,UAAM61C,eAAe,GAAGC,+EAAmB,CAAChoD,QAAD,EAAW8nD,KAAX,EAAkB;AAC3DD,gBAAQ,EAARA,QAD2D;AAE3DD,gBAAQ,EAARA;AAF2D,OAAlB,CAA3C;AAKApoD,iEAAQ,CAACC,WAAT,CAAqBm0C,WAArB,CAAiCx0C,OAAjC,EAA0C2oD,eAA1C;AACD;;;;EA1B6Cz/B,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZhD;AACA;AACA;AACA;AACA;IAEQ2/B,Y,GAAsCp8B,2D,CAAtCo8B,Y;IAAcD,mB,GAAwBn8B,2D,CAAxBm8B,mB;AAEtB;;;;;;;;;IAQqBnkC,Q;;;;;AACnB,sBAAwB;AAAA,QAAZuc,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,MADa;AAEnBquC,gBAAU,EAAE;AACVC,eAAO,EAAEC,eADC;AAEV1wC,iBAAS,EAAEghD,iBAFD;AAGVC,oBAAY,EAAEC;AAHJ,OAFO;AAOnBxQ,qBAAe,EAAE,SAPE;AAQnBjpC,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CARR;AASnBzG,mBAAa,EAAE;AACbitC,cAAM,EAAE,KADK;AAEbkT,+BAAuB,EAAE,KAFZ;AAGbT,gBAAQ,EAAE,IAHG;AAIbC,gBAAQ,EAAE;AAJG,OATI;AAenBpa,eAAS,EAAE6a,4DAAUA;AAfF,KAArB;AADsB,2MAmBhBloB,KAnBgB,EAmBTsW,YAnBS;AAoBvB;;;;sCAEiBnvC,G,EAAK;AACrB08C,kBAAY,CAAC9+C,IAAb,CAAkB,IAAlB,EAAwBoC,GAAxB;AACD;;;sCAEiBA,G,EAAK;AACrB08C,kBAAY,CAAC9+C,IAAb,CAAkB,IAAlB,EAAwBoC,GAAxB;AACD;;;;EA7BmC+gB,yD;;;;AAgCtC,IAAM27B,YAAY,GAAG,SAAfA,YAAe,CAAS18C,GAAT,EAAc;AACjC,MAAMiL,MAAM,GAAGjL,GAAG,CAACE,MAAJ,CAAWsS,WAAX,CAAuBV,IAAvB,CAA4B5a,CAA3C;;AAEA,MAAI,CAAC+T,MAAL,EAAa;AACX,WAAO,KAAP;AACD;;AAED,OAAK+d,mBAAL,CAAyBhpB,GAAzB,EAA8B,KAAKW,aAAnC;AACA1I,6DAAQ,CAACC,WAAT,CAAqBm0C,WAArB,CAAiCrsC,GAAG,CAACE,MAAJ,CAAWrI,OAA5C,EAAqDmI,GAAG,CAACE,MAAJ,CAAWzH,QAAhE;AACD,CATD;AAWA;;;;;;;;;;AAQA,SAAS43C,eAAT,CAAyBrwC,GAAzB,EAA8B;AAAA,4BACW,KAAKW,aADhB;AAAA,MACpBitC,MADoB,uBACpBA,MADoB;AAAA,MACZ0S,QADY,uBACZA,QADY;AAAA,MACFD,QADE,uBACFA,QADE;AAE5B,MAAMp1C,MAAM,GAAGjL,GAAG,CAACE,MAAJ,CAAWsS,WAAX,CAAuBV,IAAvB,CAA4B5a,CAA3C;AACA,MAAMqpD,KAAK,GAAG3S,MAAM,GAAG,CAAC3iC,MAAD,GAAU,GAAb,GAAmBA,MAAM,GAAG,GAAhD;AAH4B,oBAIEjL,GAAG,CAACE,MAJN;AAAA,MAIpBrI,OAJoB,eAIpBA,OAJoB;AAAA,MAIXY,QAJW,eAIXA,QAJW;AAAA,aAKa,CACvCuH,GAAG,CAACE,MAAJ,CAAWkJ,WAAX,CAAuB0I,IAAvB,CAA4B3a,CADW,EAEvC6I,GAAG,CAACE,MAAJ,CAAWkJ,WAAX,CAAuB0I,IAAvB,CAA4B5a,CAFW,EAGvC8I,GAAG,CAACE,MAAJ,CAAWkJ,WAAX,CAAuBtD,KAAvB,CAA6B3O,CAHU,EAIvC6I,GAAG,CAACE,MAAJ,CAAWkJ,WAAX,CAAuBtD,KAAvB,CAA6B5O,CAJU,CALb;AAAA,MAKrB8pD,MALqB;AAAA,MAKbC,MALa;AAAA,MAKL1oC,MALK;AAAA,MAKGC,MALH,YAY5B;;AACA,MAAMgoC,eAAe,GAAGC,mBAAmB,CAAChoD,QAAD,EAAW8nD,KAAX,EAAkB;AAC3DD,YAAQ,EAARA,QAD2D;AAE3DD,YAAQ,EAARA;AAF2D,GAAlB,CAA3C;AAKApoD,6DAAQ,CAACC,WAAT,CAAqBm0C,WAArB,CAAiCx0C,OAAjC,EAA0C2oD,eAA1C,EAlB4B,CAoB5B;AACA;;AACA,MAAMU,SAAS,GAAGjpD,2DAAQ,CAACC,WAAT,CAAqB8Z,WAArB,CAAiCna,OAAjC,EAA0CmpD,MAA1C,EAAkDC,MAAlD,CAAlB,CAtB4B,CAwB5B;AACA;AACA;;AACA,MAAIxzB,KAAK,GAAG;AACVt2B,KAAC,EAAEohB,MAAM,GAAG2oC,SAAS,CAAC/pD,CADZ;AAEVD,KAAC,EAAEshB,MAAM,GAAG0oC,SAAS,CAAChqD;AAFZ,GAAZ,CA3B4B,CAgC5B;;AACAu2B,OAAK,GAAGizB,YAAY,CAACjzB,KAAD,EAAQ+yB,eAAR,CAApB,CAjC4B,CAmC5B;;AACA/nD,UAAQ,CAACO,WAAT,CAAqB7B,CAArB,IAA0Bs2B,KAAK,CAACt2B,CAAhC;AACAsB,UAAQ,CAACO,WAAT,CAAqB9B,CAArB,IAA0Bu2B,KAAK,CAACv2B,CAAhC;AACD;;AAED,SAASypD,iBAAT,CAA2B3gD,GAA3B,EAAgC;AAAA,6BAM1B,KAAKW,aANqB;AAAA,MAE5BitC,MAF4B,wBAE5BA,MAF4B;AAAA,MAG5BkT,uBAH4B,wBAG5BA,uBAH4B;AAAA,MAI5BR,QAJ4B,wBAI5BA,QAJ4B;AAAA,MAK5BD,QAL4B,wBAK5BA,QAL4B;AAO9B,MAAMp1C,MAAM,GAAGjL,GAAG,CAACE,MAAJ,CAAWsS,WAAX,CAAuBV,IAAvB,CAA4B5a,CAA3C;AACA,MAAMqpD,KAAK,GAAG3S,MAAM,GAAG,CAAC3iC,MAAD,GAAU,GAAb,GAAmBA,MAAM,GAAG,GAAhD;AACA,MAAMnF,KAAK,GAAG9F,GAAG,CAACE,MAAJ,CAAW4F,KAAzB;AACA,MAAMrN,QAAQ,GAAGuH,GAAG,CAACE,MAAJ,CAAWzH,QAA5B;AAV8B,cAWL,CACvBuH,GAAG,CAACE,MAAJ,CAAWkJ,WAAX,CAAuBtD,KAAvB,CAA6B3O,CADN,EAEvB6I,GAAG,CAACE,MAAJ,CAAWkJ,WAAX,CAAuBtD,KAAvB,CAA6B5O,CAFN,CAXK;AAAA,MAWvB8pD,MAXuB;AAAA,MAWfC,MAXe,aAgB9B;AACA;AACA;AACA;;AACA,MAAMT,eAAe,GAAGC,mBAAmB,CAAChoD,QAAD,EAAW8nD,KAAX,EAAkB;AAC3DD,YAAQ,EAARA,QAD2D;AAE3DD,YAAQ,EAARA;AAF2D,GAAlB,CAA3C,CApB8B,CAyB9B;;AACA,MAAM5yB,KAAK,GAAG;AACZt2B,KAAC,EAAE,CADS;AAEZD,KAAC,EAAE;AAFS,GAAd,CA1B8B,CA+B9B;;AACA,MAAMiqD,cAAc,GAAG,CAAvB;AACA,MAAMC,2BAA2B,GAAG,CAApC;AACA,MAAMC,cAAc,GAAG,IAAvB;;AAEA,MAAId,KAAK,GAAG,CAAZ,EAAe;AACb;AACA,QAAIC,eAAe,CAACznD,KAAhB,GAAwBqoD,2BAA5B,EAAyD;AACvD;AACA;AACA,UAAIpqD,IAAI,CAACmC,GAAL,CAASqnD,eAAe,CAACxnD,WAAhB,CAA4B7B,CAArC,IAA0CkqD,cAA9C,EAA8D;AAC5Db,uBAAe,CAACxnD,WAAhB,CAA4B7B,CAA5B,GAAgC,CAAhC;AACD,OAFD,MAEO;AACLs2B,aAAK,CAACt2B,CAAN,GAAUqpD,eAAe,CAACxnD,WAAhB,CAA4B7B,CAA5B,GAAgCgqD,cAA1C;AACD,OAPsD,CASvD;AACA;;;AACA,UAAInqD,IAAI,CAACmC,GAAL,CAASqnD,eAAe,CAACxnD,WAAhB,CAA4B9B,CAArC,IAA0CmqD,cAA9C,EAA8D;AAC5Db,uBAAe,CAACxnD,WAAhB,CAA4B9B,CAA5B,GAAgC,CAAhC;AACD,OAFD,MAEO;AACLu2B,aAAK,CAACv2B,CAAN,GAAUspD,eAAe,CAACxnD,WAAhB,CAA4B9B,CAA5B,GAAgCiqD,cAA1C;AACD;AACF;AACF,GAnBD,MAmBO;AACL;AAEA;AACA;AACA;AACA,QAAIL,uBAAJ,EAA6B;AAC3Bv9B,qEAAS,CAACvjB,GAAG,CAACE,MAAJ,CAAWkJ,WAAX,CAAuBtD,KAAxB,EAA+BA,KAA/B,CAAT;AACD,KARI,CAUL;AACA;;;AACA,QAAIw7C,kBAAkB,GAAG;AACvBnqD,OAAC,EAAE2O,KAAK,CAACnN,KAAN,GAAc,CAAd,GAAkBqoD,MADE;AAEvB9pD,OAAC,EAAE4O,KAAK,CAACjN,MAAN,GAAe,CAAf,GAAmBooD;AAFC,KAAzB,CAZK,CAiBL;;AACAK,sBAAkB,GAAGZ,YAAY,CAACY,kBAAD,EAAqBd,eAArB,CAAjC,CAlBK,CAoBL;AACA;;AACA,QAAMe,iBAAiB,GAAG;AACxBpqD,OAAC,EAAEqpD,eAAe,CAACxnD,WAAhB,CAA4B7B,CAA5B,GAAgCmqD,kBAAkB,CAACnqD,CAD9B;AAExBD,OAAC,EAAEspD,eAAe,CAACxnD,WAAhB,CAA4B9B,CAA5B,GAAgCoqD,kBAAkB,CAACpqD;AAF9B,KAA1B,CAtBK,CA2BL;AACA;;AACA,QAAIF,IAAI,CAACmC,GAAL,CAASooD,iBAAiB,CAACpqD,CAA3B,IAAgCkqD,cAApC,EAAoD;AAClDb,qBAAe,CAACxnD,WAAhB,CAA4B7B,CAA5B,GAAgCmqD,kBAAkB,CAACnqD,CAAnD;AACD,KAFD,MAEO;AACL;AACAs2B,WAAK,CAACt2B,CAAN,GAAUoqD,iBAAiB,CAACpqD,CAAlB,GAAsBgqD,cAAhC;AACD,KAlCI,CAoCL;AACA;;;AACA,QAAInqD,IAAI,CAACmC,GAAL,CAASooD,iBAAiB,CAACrqD,CAA3B,IAAgCmqD,cAApC,EAAoD;AAClDb,qBAAe,CAACxnD,WAAhB,CAA4B9B,CAA5B,GAAgCoqD,kBAAkB,CAACpqD,CAAnD;AACD,KAFD,MAEO;AACL;AACAu2B,WAAK,CAACv2B,CAAN,GAAUqqD,iBAAiB,CAACrqD,CAAlB,GAAsBiqD,cAAhC;AACD;AACF,GAnG6B,CAqG9B;;;AACAX,iBAAe,CAACxnD,WAAhB,CAA4B7B,CAA5B,IAAiCs2B,KAAK,CAACt2B,CAAvC;AACAqpD,iBAAe,CAACxnD,WAAhB,CAA4B9B,CAA5B,IAAiCu2B,KAAK,CAACv2B,CAAvC;AACD;;AAED,SAAS2pD,oBAAT,CAA8B7gD,GAA9B,EAAmC;AAAA,6BACM,KAAKW,aADX;AAAA,MACzBitC,MADyB,wBACzBA,MADyB;AAAA,MACjB0S,QADiB,wBACjBA,QADiB;AAAA,MACPD,QADO,wBACPA,QADO;AAEjC,MAAMp1C,MAAM,GAAGjL,GAAG,CAACE,MAAJ,CAAWsS,WAAX,CAAuBV,IAAvB,CAA4B5a,CAA3C;AACA,MAAMqpD,KAAK,GAAG3S,MAAM,GAAG,CAAC3iC,MAAD,GAAU,GAAb,GAAmBA,MAAM,GAAG,GAAhD;AACA,MAAMxS,QAAQ,GAAGuH,GAAG,CAACE,MAAJ,CAAWzH,QAA5B,CAJiC,CAMjC;;AACAgoD,qBAAmB,CAAChoD,QAAD,EAAW8nD,KAAX,EAAkB;AACnCD,YAAQ,EAARA,QADmC;AAEnCD,YAAQ,EAARA;AAFmC,GAAlB,CAAnB;AAID,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChOD;AACA;AACA;IAEQK,Y,GAAiBp8B,2D,CAAjBo8B,Y;AAER;;;;;;;;;;IASqBnkC,kB;;;;;AACnB,gCAAwB;AAAA,QAAZsc,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,gBADa;AAEnB;AACAsF,+BAAyB,EAAE,CAAC,YAAD,CAHR;AAInBzG,mBAAa,EAAE;AACb0/C,gBAAQ,EAAE,IADG;AAEbC,gBAAQ,EAAE;AAFG;AAJI,KAArB;AADsB,qNAWhBznB,KAXgB,EAWTsW,YAXS;AAYvB;;;;uCAEkBnvC,G,EAAK;AAAA,wBACqBA,GAAG,CAACE,MADzB;AAAA,UACdrI,OADc,eACdA,OADc;AAAA,UACLY,QADK,eACLA,QADK;AAAA,UACKgd,WADL,eACKA,WADL;AAAA,iBAEqC,CACzDzV,GAAG,CAACE,MAAJ,CAAWkJ,WAAX,CAAuB0I,IAAvB,CAA4B3a,CAD6B,EAEzD6I,GAAG,CAACE,MAAJ,CAAWkJ,WAAX,CAAuB0I,IAAvB,CAA4B5a,CAF6B,EAGzD8I,GAAG,CAACE,MAAJ,CAAWkJ,WAAX,CAAuBtD,KAAvB,CAA6B3O,CAH4B,EAIzD6I,GAAG,CAACE,MAAJ,CAAWkJ,WAAX,CAAuBtD,KAAvB,CAA6B5O,CAJ4B,CAFrC;AAAA,UAEfsqD,UAFe;AAAA,UAEHC,UAFG;AAAA,UAESC,WAFT;AAAA,UAEsBC,WAFtB;AAAA,gCAQS,KAAKhhD,aARd;AAAA,UAQd2/C,QARc,uBAQdA,QARc;AAAA,UAQJD,QARI,uBAQJA,QARI,EAUtB;;AACA5nD,cAAQ,CAACM,KAAT,IAAkB0c,WAAW,GAAGhd,QAAQ,CAACM,KAAzC;;AACA,UAAIunD,QAAQ,IAAI7nD,QAAQ,CAACM,KAAT,GAAiBunD,QAAjC,EAA2C;AACzC7nD,gBAAQ,CAACM,KAAT,GAAiBunD,QAAjB;AACD,OAFD,MAEO,IAAID,QAAQ,IAAI5nD,QAAQ,CAACM,KAAT,GAAiBsnD,QAAjC,EAA2C;AAChD5nD,gBAAQ,CAACM,KAAT,GAAiBsnD,QAAjB;AACD;;AAEDpoD,iEAAQ,CAACC,WAAT,CAAqBm0C,WAArB,CAAiCx0C,OAAjC,EAA0CY,QAA1C,EAlBsB,CAoBtB;AACA;;AACA,UAAMyoD,SAAS,GAAGjpD,2DAAQ,CAACC,WAAT,CAAqB8Z,WAArB,CAChBna,OADgB,EAEhB2pD,UAFgB,EAGhBC,UAHgB,CAAlB;AAKA,UAAIh0B,KAAK,GAAG;AACVt2B,SAAC,EAAEuqD,WAAW,GAAGR,SAAS,CAAC/pD,CADjB;AAEVD,SAAC,EAAEyqD,WAAW,GAAGT,SAAS,CAAChqD;AAFjB,OAAZ;AAKAu2B,WAAK,GAAGizB,YAAY,CAACjzB,KAAD,EAAQh1B,QAAR,CAApB;AACAA,cAAQ,CAACO,WAAT,CAAqB7B,CAArB,IAA0Bs2B,KAAK,CAACt2B,CAAhC;AACAsB,cAAQ,CAACO,WAAT,CAAqB9B,CAArB,IAA0Bu2B,KAAK,CAACv2B,CAAhC;AACAe,iEAAQ,CAACC,WAAT,CAAqBm0C,WAArB,CAAiCx0C,OAAjC,EAA0CY,QAA1C;AACD;;;;EAnD6CsoB,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfhD;CAEA;;AACA;AAKA;CAEA;;CAEA;;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;IAUqB9G,S;;;;;AACnB,uBAAwB;AAAA;;AAAA,QAAZ4e,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,OADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnB8+B,eAAS,EAAE0b,8DAHQ;AAInBjhD,mBAAa,EAAE;AACbqhB,mBAAW,EAAE,IADA;AAEb6/B,0BAAkB,EAAE,KAFP;AAGblnD,2BAAmB,EAAE,KAHR;AAIbmnD,oBAAY,EAAE;AAJD;AAJI,KAArB;AAYA,6MAAMjpB,KAAN,EAAasW,YAAb;AAEA,UAAK4S,qBAAL,GAA6B,KAA7B;AAEA,UAAKC,0BAAL,GAAkCj+B,+DAAQ,CAAC,MAAKsC,iBAAN,EAAyB,GAAzB,CAA1C;AAjBsB;AAkBvB;;;;yCAEoBpmB,S,EAAW;AAC9B;AACA,aAAO;AACL8O,eAAO,EAAE,IADJ;AAELrU,cAAM,EAAE,IAFH;AAGL/D,aAAK,EAAEW,SAHF;AAILmQ,mBAAW,EAAE,IAJR;AAKL5N,eAAO,EAAE;AACPpD,eAAK,EAAE;AACLU,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD5B;AAELD,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF5B;AAGLsQ,qBAAS,EAAE,IAHN;AAIL9M,kBAAM,EAAE;AAJH,WADA;AAOPunD,gBAAM,EAAE;AACN9qD,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD3B;AAEND,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF3B;AAGNsQ,qBAAS,EAAE,IAHL;AAIN9M,kBAAM,EAAE;AAJF,WAPD;AAaPhE,aAAG,EAAE;AACHS,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD9B;AAEHD,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF9B;AAGHsQ,qBAAS,EAAE,IAHR;AAIH9M,kBAAM,EAAE;AAJL,WAbE;AAmBP4B,iBAAO,EAAE;AACP5B,kBAAM,EAAE,KADD;AAEPoC,oBAAQ,EAAE,KAFH;AAGPspB,8BAAkB,EAAE,KAHb;AAIP5rB,8BAAkB,EAAE,IAJb;AAKPkqB,+BAAmB,EAAE,IALd;AAMPQ,0BAAc,EAAE;AANT;AAnBF;AALJ,OAAP;AAkCD;;;kCAEartB,O,EAAS+M,I,EAAM1B,M,EAAQ;AACnC,UAAI0B,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B,eAAO,KAAP;AACD;;AAED,aACEqU,yEAAe,CACbvrB,OADa,EAEb+M,IAAI,CAAC/K,OAAL,CAAapD,KAFA,EAGbmO,IAAI,CAAC/K,OAAL,CAAaooD,MAHA,EAIb/+C,MAJa,CAAf,GAKI,EALJ,IAMAkgB,yEAAe,CAACvrB,OAAD,EAAU+M,IAAI,CAAC/K,OAAL,CAAaooD,MAAvB,EAA+Br9C,IAAI,CAAC/K,OAAL,CAAanD,GAA5C,EAAiDwM,MAAjD,CAAf,GACE,EARJ;AAUD;;;sCAEiB4C,K,EAAOjO,O,EAAS+M,I,EAAM;AACtC,UAAMs9C,KAAK,GAAGC,OAAO,CAACr8C,KAAD,EAAQlB,IAAI,CAAC/K,OAAL,CAAaooD,MAArB,EAA6Br9C,IAAI,CAAC/K,OAAL,CAAapD,KAA1C,CAArB;AACA,UAAM2rD,KAAK,GAAGD,OAAO,CAACr8C,KAAD,EAAQlB,IAAI,CAAC/K,OAAL,CAAanD,GAArB,EAA0BkO,IAAI,CAAC/K,OAAL,CAAaooD,MAAvC,CAArB;AACA,UAAMI,KAAK,GAAGF,OAAO,CAACr8C,KAAD,EAAQlB,IAAI,CAAC/K,OAAL,CAAanD,GAArB,EAA0BkO,IAAI,CAAC/K,OAAL,CAAapD,KAAvC,CAArB;AAEA,UAAM6rD,WAAW,GAAGjnD,MAAM,CAAC6mD,KAAD,CAA1B;AACA,UAAMK,WAAW,GAAGlnD,MAAM,CAAC+mD,KAAD,CAA1B;AACA,UAAMI,WAAW,GAAGnnD,MAAM,CAACgnD,KAAD,CAA1B,CAPsC,CAStC;;AACA,UAAItrD,KAAK,GAAGC,IAAI,CAACyrD,IAAL,CACV,CAACzrD,IAAI,CAAC4rC,GAAL,CAAS0f,WAAT,EAAsB,CAAtB,IACCtrD,IAAI,CAAC4rC,GAAL,CAAS2f,WAAT,EAAsB,CAAtB,CADD,GAECvrD,IAAI,CAAC4rC,GAAL,CAAS4f,WAAT,EAAsB,CAAtB,CAFF,KAGG,IAAIF,WAAJ,GAAkBC,WAHrB,CADU,CAAZ;AAOAxrD,WAAK,IAAI,MAAMC,IAAI,CAACU,EAApB;AAEAkN,UAAI,CAAC89C,MAAL,GAAcngC,wEAAc,CAACxrB,KAAD,EAAQ,CAAR,CAA5B;AACA6N,UAAI,CAAC6C,WAAL,GAAmB,KAAnB;AACD;;;mCAEczH,G,EAAK;AAAA;;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAM0R,cAAc,GAAG3R,SAAS,CAAC2R,cAAjC;AAFkB,gCAQd,KAAKjR,aARS;AAAA,UAIhBxF,YAJgB,uBAIhBA,YAJgB;AAAA,UAKhB0mD,kBALgB,uBAKhBA,kBALgB;AAAA,UAMhBlnD,mBANgB,uBAMhBA,mBANgB;AAAA,UAOhBmnD,YAPgB,uBAOhBA,YAPgB,EASlB;;AACA,UAAMz5C,QAAQ,GAAG5H,kFAAY,CAACT,GAAG,CAAC2R,aAAL,EAAoB,KAAK7P,IAAzB,CAA7B;AACA,UAAMjL,QAAQ,GAAGiJ,+DAAS,CAAC,qBAAD,CAAT,CAAiCa,aAAjC,CAA+C9J,QAAhE;;AAEA,UAAI,CAACwR,QAAL,EAAe;AACb;AACD,OAfiB,CAiBlB;;;AACA,UAAMhS,OAAO,GAAGyW,wEAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;AAlBkB,UAmBVqH,KAnBU,GAmBS7F,SAnBT,CAmBV6F,KAnBU;AAAA,UAmBHjO,OAnBG,GAmBSoI,SAnBT,CAmBHpI,OAnBG;;AAAA,6BAoB2B6rB,sEAAe,CAAC5d,KAAD,CApB1C;AAAA,UAoBVuI,eApBU,oBAoBVA,eApBU;AAAA,UAoBO2uC,eApBP,oBAoBOA,eApBP;;AAsBlB,UAAMpmD,SAAS,GAAGiE,qEAAS,CAACE,YAAV,EAAlB;;AAtBkB,iCAwBTV,CAxBS;AAyBhB,YAAMuK,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAb;;AAEA,YAAIuK,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B;AACD;;AAED5Q,uEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvBorB,8EAAS,CAACprB,OAAD,EAAU,MAAI,CAACsK,aAAf,CAAT,CADuB,CAGvB;;AACA,cAAMhK,KAAK,GAAGoD,sEAAU,CAACm+B,gBAAX,CAA4BtzB,IAA5B,CAAd;AAEA,cAAM+9C,iBAAiB,GAAG1qD,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CACxB8H,SAAS,CAACpI,OADc,EAExB+M,IAAI,CAAC/K,OAAL,CAAapD,KAFW,CAA1B;AAIA,cAAMmsD,kBAAkB,GAAG3qD,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CACzB8H,SAAS,CAACpI,OADe,EAEzB+M,IAAI,CAAC/K,OAAL,CAAaooD,MAFY,CAA3B;AAKA,cAAMY,WAAW,GAAG;AAAElsD,iBAAK,EAALA;AAAF,WAApB;;AAEA,cAAImrD,YAAJ,EAAkB;AAChBe,uBAAW,CAAChsD,QAAZ,GAAuBA,QAAvB;AACD;;AAEDe,oFAAe,CACbvB,OADa,EAEb4J,SAAS,CAACpI,OAFG,EAGb+M,IAAI,CAAC/K,OAAL,CAAapD,KAHA,EAIb,CAACmO,IAAI,CAAC/K,OAAL,CAAaooD,MAAd,EAAsBr9C,IAAI,CAAC/K,OAAL,CAAanD,GAAnC,CAJa,EAKbmsD,WALa,CAAf,CArBuB,CA6BvB;;AACA,cAAMC,aAAa,GAAG;AACpBnsD,iBAAK,EAALA,KADoB;AAEpBwE,wBAAY,EAAZA,YAFoB;AAGpBV,+BAAmB,EAAEonD,kBAHD;AAIpBlnD,+BAAmB,EAAnBA;AAJoB,WAAtB;;AAOA,cAAI,MAAI,CAACgG,aAAL,CAAmBqhB,WAAvB,EAAoC;AAClCA,oFAAW,CAAC3rB,OAAD,EAAU4J,SAAV,EAAqB2E,IAAI,CAAC/K,OAA1B,EAAmCipD,aAAnC,CAAX;AACD,WAvCsB,CAyCvB;;;AACA,cAAIl+C,IAAI,CAAC6C,WAAL,KAAqB,IAAzB,EAA+B;AAC7B,gBAAI7C,IAAI,CAAC89C,MAAT,EAAiB;AACf,oBAAI,CAACV,0BAAL,CAAgCl8C,KAAhC,EAAuCjO,OAAvC,EAAgD+M,IAAhD;AACD,aAFD,MAEO;AACL,oBAAI,CAACyhB,iBAAL,CAAuBvgB,KAAvB,EAA8BjO,OAA9B,EAAuC+M,IAAvC;AACD;AACF;;AAED,cAAIA,IAAI,CAAC89C,MAAT,EAAiB;AACf,gBAAMnmD,IAAI,GAAGwmD,WAAW,CAACn+C,IAAD,EAAOyJ,eAAP,EAAwB2uC,eAAxB,CAAxB;AAEA,gBAAMxvC,QAAQ,GAAG,EAAjB;AAEA,gBAAI7Q,UAAJ;;AAEA,gBAAI,CAACiI,IAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBQ,QAA1B,EAAoC;AAClCH,wBAAU,GAAG;AACXxF,iBAAC,EAAEyrD,kBAAkB,CAACzrD,CADX;AAEXD,iBAAC,EAAE0rD,kBAAkB,CAAC1rD;AAFX,eAAb;AAKA,kBAAMiG,OAAO,GAAG,CAAhB;AACA,kBAAM6lD,SAAS,GAAG9lD,6EAAY,CAAC7G,OAAD,EAAUkG,IAAV,EAAgBY,OAAhB,CAA9B;;AAEA,kBAAIylD,kBAAkB,CAACzrD,CAAnB,GAAuBwrD,iBAAiB,CAACxrD,CAA7C,EAAgD;AAC9CwF,0BAAU,CAACxF,CAAX,IAAgBqW,QAAQ,GAAGw1C,SAAX,GAAuB,EAAvC;AACD,eAFD,MAEO;AACLrmD,0BAAU,CAACxF,CAAX,IAAgBqW,QAAhB;AACD;;AAED,kBAAMy1C,SAAS,GAAGhrD,2DAAQ,CAACC,WAAT,CAAqBgrD,QAArB,CAA8BC,YAA9B,CAChBvxC,cADgB,CAAlB;AAIAqxC,uBAAS,CAACrV,MAAV;AAEA,kBAAM1qC,MAAM,GAAG+/C,SAAS,CAACG,cAAV,CAAyBzmD,UAAU,CAACxF,CAApC,EAAuCwF,UAAU,CAACzF,CAAlD,CAAf;AAEA0N,kBAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBnF,CAArB,GAAyB+L,MAAM,CAAC/L,CAAhC;AACAyN,kBAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBpF,CAArB,GAAyBgM,MAAM,CAAChM,CAAhC;AACD;;AAED6qB,0FAAiB,CACf1rB,OADe,EAEf4J,SAAS,CAACpI,OAFK,EAGf+M,IAAI,CAAC/K,OAAL,CAAayC,OAHE,EAIfC,IAJe,EAKfqI,IAAI,CAAC/K,OALU,EAMf2C,mBANe,EAOf7F,KAPe,EAQfC,SARe,EASf,CATe,EAUf,IAVe,CAAjB;AAYD;AACF,SAjGG,CAAJ;AA/BgB;;AAwBlB,WAAK,IAAIyD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAAA,yBAAtCA,CAAsC;;AAAA,iCAI3C;AAqGH;;AAED,eAAS0oD,WAAT,CAAqBn+C,IAArB,EAA2ByJ,eAA3B,EAA4C2uC,eAA5C,EAA6D;AAC3D,YAAMqG,MAAM,GAAG,CAACh1C,eAAD,IAAoB,CAAC2uC,eAArB,GAAuC,cAAvC,GAAwD,EAAvE;AACA,YAAMjM,GAAG,GAAG,MAAZ,CAF2D,CAEvC;;AAEpB,eACEnsC,IAAI,CAAC89C,MAAL,CAAY/kD,QAAZ,KAAyB2lD,MAAM,CAACC,YAAP,CAAoBC,QAAQ,CAACzS,GAAD,EAAM,EAAN,CAA5B,CAAzB,GAAkEsS,MADpE;AAGD;;AAED,eAAS7mD,mBAAT,CAA6B3C,OAA7B,EAAsC;AACpC,eAAO,CAACA,OAAO,CAACpD,KAAT,EAAgBoD,OAAO,CAACooD,MAAxB,EAAgCpoD,OAAO,CAACnD,GAAxC,CAAP;AACD;AACF;;;sCAEiBsJ,G,EAAKsU,e,EAAiB;AAAA;;AACtC,UAAI,KAAKytC,qBAAT,EAAgC;AAC9B;AACD;;AAED,WAAKA,qBAAL,GAA6B,IAA7B;AACA/hD,SAAG,CAACyB,cAAJ;AACAzB,SAAG,CAAC0B,eAAJ;AAEA,UAAMzB,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAMyB,eAAe,GAAG,KAAKC,oBAAL,CAA0B3B,SAA1B,CAAxB;AACA,UAAMpI,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B,CAXsC,CAatC;;AACAgK,wFAAY,CAAChK,OAAD,EAAU,KAAKiK,IAAf,EAAqBH,eAArB,CAAZ;AACA1J,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC,EAfsC,CAiBtC;;AACAqK,mFAAa,CACXjC,SADW,EAEX,KAAK6B,IAFM,EAGXH,eAHW,EAIXA,eAAe,CAAC9H,OAAhB,CAAwBooD,MAJb,EAKX,KAAK7qD,OALM,EAMXkd,eANW,EAOX,UAAAnS,OAAO,EAAI;AACTR,uBAAe,CAACjH,MAAhB,GAAyB,KAAzB;;AAEA,YAAI,CAACyH,OAAL,EAAc;AACZO,+FAAe,CAAC7K,OAAD,EAAU,MAAI,CAACiK,IAAf,EAAqBH,eAArB,CAAf;AAEA,gBAAI,CAACogD,qBAAL,GAA6B,KAA7B;AAEA;AACD;;AAEDpgD,uBAAe,CAAC9H,OAAhB,CAAwBnD,GAAxB,CAA4BgE,MAA5B,GAAqC,IAArC;AAEAzC,mEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC,EAbS,CAeT;;AACAqK,qFAAa,CACXjC,SADW,EAEX,MAAI,CAAC6B,IAFM,EAGXH,eAHW,EAIXA,eAAe,CAAC9H,OAAhB,CAAwBnD,GAJb,EAKX,MAAI,CAACU,OALM,EAMXkd,eANW,EAOX,UAAAnS,OAAO,EAAI;AACT,cAAIA,OAAJ,EAAa;AACXR,2BAAe,CAACjH,MAAhB,GAAyB,KAAzB;AACAzC,uEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD,WAHD,MAGO;AACL6K,iGAAe,CAAC7K,OAAD,EAAU,MAAI,CAACiK,IAAf,EAAqBH,eAArB,CAAf;AACD;;AAED,gBAAI,CAACogD,qBAAL,GAA6B,KAA7B;AACA9pD,qEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA,cAAMyuB,iBAAiB,GAAG;AACxB/jB,oBAAQ,EAAE,MAAI,CAACT,IADS;AAExBU,oBAAQ,EAAE,MAAI,CAACV,IAFS;AAEH;AACrBjK,mBAAO,EAAPA,OAHwB;AAIxB8J,2BAAe,EAAfA;AAJwB,WAA1B;AAOAc,gFAAY,CACV5K,OADU,EAEVqJ,mDAAM,CAACoB,qBAFG,EAGVgkB,iBAHU,CAAZ;AAKD,SA9BU,CAAb;AAgCD,OAvDU,CAAb;AAyDD;;;;EA/ToC5gB,mE;;;;AAkUvC,SAASrK,MAAT,CAAgBkvB,MAAhB,EAAwB;AACtB,SAAOvzB,IAAI,CAACmf,IAAL,CAAUnf,IAAI,CAAC4rC,GAAL,CAASrY,MAAM,CAACpzB,CAAhB,EAAmB,CAAnB,IAAwBH,IAAI,CAAC4rC,GAAL,CAASrY,MAAM,CAACrzB,CAAhB,EAAmB,CAAnB,CAAlC,CAAP;AACD;;AAED,SAASirD,OAAT,CAAiBr8C,KAAjB,EAAwB29C,SAAxB,EAAmCC,WAAnC,EAAgD;AAAA,0BACDhgC,sEAAe,CAAC5d,KAAD,CADd;AAAA,MACtCuI,eADsC,qBACtCA,eADsC;AAAA,MACrB2uC,eADqB,qBACrBA,eADqB;;AAG9C,SAAO;AACL7lD,KAAC,EAAE,CAACssD,SAAS,CAACtsD,CAAV,GAAcusD,WAAW,CAACvsD,CAA3B,KAAiC6lD,eAAe,IAAI,CAApD,CADE;AAEL9lD,KAAC,EAAE,CAACusD,SAAS,CAACvsD,CAAV,GAAcwsD,WAAW,CAACxsD,CAA3B,KAAiCmX,eAAe,IAAI,CAApD;AAFE,GAAP;AAID,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtXD;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;IAOqB6L,iB;;;;;AACnB,+BAAwB;AAAA;;AAAA,QAAZ2e,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,eADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnBzG,mBAAa,EAAE;AACbgjD,uBAAe,EAAfA,eADa;AAEbC,0BAAkB,EAAlBA,kBAFa;AAGb5hC,mBAAW,EAAE,IAHA;AAIb6/B,0BAAkB,EAAE,KAJP;AAKblnD,2BAAmB,EAAE,KALR;AAMbkpD,kBAAU,EAAE,IANC;AAOb/B,oBAAY,EAAE;AAPD,OAHI;AAYnB5b,eAAS,EAAE4d,sEAAmBA;AAZX,KAArB;AAeA,qNAAMjrB,KAAN,EAAasW,YAAb;AACA,UAAK4S,qBAAL,GAA6B,KAA7B;AAjBsB;AAkBvB;;;;yCAEoB/hD,G,EAAK;AACxB;AACA,aAAO;AACL+O,eAAO,EAAE,IADJ;AAELrU,cAAM,EAAE,IAFH;AAGL/D,aAAK,EAAEW,SAHF;AAILuC,eAAO,EAAE;AACPpD,eAAK,EAAE;AACLU,aAAC,EAAE6I,GAAG,CAACE,MAAJ,CAAWiD,aAAX,CAAyB2C,KAAzB,CAA+B3O,CAD7B;AAELD,aAAC,EAAE8I,GAAG,CAACE,MAAJ,CAAWiD,aAAX,CAAyB2C,KAAzB,CAA+B5O,CAF7B;AAGLsQ,qBAAS,EAAE,IAHN;AAIL9M,kBAAM,EAAE;AAJH,WADA;AAOPhE,aAAG,EAAE;AACHS,aAAC,EAAE6I,GAAG,CAACE,MAAJ,CAAWiD,aAAX,CAAyB2C,KAAzB,CAA+B3O,CAD/B;AAEHD,aAAC,EAAE8I,GAAG,CAACE,MAAJ,CAAWiD,aAAX,CAAyB2C,KAAzB,CAA+B5O,CAF/B;AAGHsQ,qBAAS,EAAE,IAHR;AAIH9M,kBAAM,EAAE;AAJL,WAPE;AAaP4B,iBAAO,EAAE;AACP5B,kBAAM,EAAE,KADD;AAEPoC,oBAAQ,EAAE,KAFH;AAGPspB,8BAAkB,EAAE,KAHb;AAIP5rB,8BAAkB,EAAE,IAJb;AAKPkqB,+BAAmB,EAAE,IALd;AAMPQ,0BAAc,EAAE;AANT;AAbF;AAJJ,OAAP;AA2BD;;;kCAEartB,O,EAAS+M,I,EAAM1B,M,EAAQ;AACnC,UAAI0B,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B,eAAO,KAAP;AACD;;AAED,aACEqU,yEAAe,CAACvrB,OAAD,EAAU+M,IAAI,CAAC/K,OAAL,CAAapD,KAAvB,EAA8BmO,IAAI,CAAC/K,OAAL,CAAanD,GAA3C,EAAgDwM,MAAhD,CAAf,GACA,EAFF;AAID;;;wCAEmB,CAClB;AACD;;;mCAEclD,G,EAAK;AAAA;;AAAA,wBACkBA,GAAG,CAACE,MADtB;AAAA,UACVrI,OADU,eACVA,OADU;AAAA,UACD+Z,cADC,eACDA,cADC;AAAA,gCAOd,KAAKjR,aAPS;AAAA,UAGhBxF,YAHgB,uBAGhBA,YAHgB;AAAA,UAIhB0mD,kBAJgB,uBAIhBA,kBAJgB;AAAA,UAKhBlnD,mBALgB,uBAKhBA,mBALgB;AAAA,UAMhBmnD,YANgB,uBAMhBA,YANgB,EASlB;;AACA,UAAMz5C,QAAQ,GAAG5H,mFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA7B;;AAEA,UAAI,CAACuG,QAAL,EAAe;AACb;AACD,OAdiB,CAgBlB;;;AACA,UAAM5J,MAAM,GAAGuB,GAAG,CAACE,MAAJ,CAAWiN,aAAX,CAAyB1O,MAAxC;AACA,UAAMpI,OAAO,GAAGyW,wEAAa,CAACrO,MAAD,CAA7B;AAEA,UAAM7H,SAAS,GAAGiE,qEAAS,CAACE,YAAV,EAAlB;AAEA,UAAIlE,QAAJ;;AACA,UAAIirD,YAAJ,EAAkB;AAChBjrD,gBAAQ,GAAGiJ,+DAAS,CAAC,qBAAD,CAAT,CAAiCa,aAAjC,CAA+C9J,QAA1D;AACD;;AAzBiB,iCA2BTwD,CA3BS;AA4BhB,YAAMuK,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAb;;AAEA,YAAIuK,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B;AACD;;AAED5Q,uEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvBorB,8EAAS,CAACprB,OAAD,EAAU,MAAI,CAACsK,aAAf,CAAT;AAEA,cAAMhK,KAAK,GAAGoD,uEAAU,CAACm+B,gBAAX,CAA4BtzB,IAA5B,CAAd,CAHuB,CAKvB;;AACA,cAAM+9C,iBAAiB,GAAG1qD,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CACxBN,OADwB,EAExB+M,IAAI,CAAC/K,OAAL,CAAapD,KAFW,CAA1B;AAIA,cAAMstD,eAAe,GAAG9rD,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CACtBN,OADsB,EAEtB+M,IAAI,CAAC/K,OAAL,CAAanD,GAFS,CAAxB,CAVuB,CAevB;;AACA,cAAI,MAAI,CAACiK,aAAL,CAAmBkjD,UAAvB,EAAmC;AACjC/hC,kFAAS,CACPzrB,OADO,EAEP0tD,eAFO,EAGPpB,iBAHO,EAIPhsD,KAJO,EAKPC,SALO,EAMPC,QANO,CAAT;AAQD,WATD,MASO;AACLirB,kFAAS,CACPzrB,OADO,EAEPssD,iBAFO,EAGPoB,eAHO,EAIPptD,KAJO,EAKPC,SALO,EAMPC,QANO,CAAT;AAQD;;AAED,cAAMisD,aAAa,GAAG;AACpBnsD,iBAAK,EAALA,KADoB;AAEpBwE,wBAAY,EAAZA,YAFoB;AAGpBV,+BAAmB,EAAEonD,kBAHD;AAIpBlnD,+BAAmB,EAAnBA;AAJoB,WAAtB;;AAOA,cAAI,MAAI,CAACgG,aAAL,CAAmBqhB,WAAvB,EAAoC;AAClCA,oFAAW,CAAC3rB,OAAD,EAAU2J,GAAG,CAACE,MAAd,EAAsB0E,IAAI,CAAC/K,OAA3B,EAAoCipD,aAApC,CAAX;AACD;;AAED,cAAMvmD,IAAI,GAAGwmD,WAAW,CAACn+C,IAAD,CAAxB,CA/CuB,CAiDvB;;AACA,cAAIrI,IAAI,IAAIA,IAAI,KAAK,EAArB,EAAyB;AACvB;AACA,gBAAMY,OAAO,GAAG,CAAhB;AACA,gBAAM6lD,SAAS,GAAG9lD,6EAAY,CAAC7G,OAAD,EAAUkG,IAAV,EAAgBY,OAAhB,CAA9B;AACA,gBAAM6mD,UAAU,GAAG3mD,qEAAS,CAACS,WAAV,KAA0B,EAA7C;AAEA,gBAAI0P,QAAQ,GAAGxW,IAAI,CAACkH,GAAL,CAAS8kD,SAAT,EAAoBgB,UAApB,IAAkC,CAAlC,GAAsC,CAArD;;AAEA,gBAAID,eAAe,CAAC5sD,CAAhB,GAAoBwrD,iBAAiB,CAACxrD,CAA1C,EAA6C;AAC3CqW,sBAAQ,GAAG,CAACA,QAAZ;AACD;;AAED,gBAAI,CAAC5I,IAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBQ,QAA1B,EAAoC;AAClC,kBAAIH,UAAJ;;AAEA,kBAAI,MAAI,CAACgE,aAAL,CAAmBkjD,UAAvB,EAAmC;AACjClnD,0BAAU,GAAG;AACXxF,mBAAC,EAAE4sD,eAAe,CAAC5sD,CAAhB,GAAoB6rD,SAAS,GAAG,CAAhC,GAAoCx1C,QAD5B;AAEXtW,mBAAC,EAAE6sD,eAAe,CAAC7sD,CAAhB,GAAoB8sD,UAAU,GAAG;AAFzB,iBAAb;AAID,eALD,MAKO;AACL;AACA;AACArnD,0BAAU,GAAG;AACXxF,mBAAC,EAAEwrD,iBAAiB,CAACxrD,CAAlB,GAAsB6rD,SAAS,GAAG,CAAlC,GAAsCx1C,QAD9B;AAEXtW,mBAAC,EAAEyrD,iBAAiB,CAACzrD,CAAlB,GAAsB8sD,UAAU,GAAG;AAF3B,iBAAb;AAID;;AAED,kBAAMf,SAAS,GAAGhrD,2DAAQ,CAACC,WAAT,CAAqBgrD,QAArB,CAA8BC,YAA9B,CAChBvxC,cADgB,CAAlB;AAIAqxC,uBAAS,CAACrV,MAAV;AAEA,kBAAM1qC,MAAM,GAAG+/C,SAAS,CAACG,cAAV,CAAyBzmD,UAAU,CAACxF,CAApC,EAAuCwF,UAAU,CAACzF,CAAlD,CAAf;AAEA0N,kBAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBnF,CAArB,GAAyB+L,MAAM,CAAC/L,CAAhC;AACAyN,kBAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBpF,CAArB,GAAyBgM,MAAM,CAAChM,CAAhC;AACD;;AAED6qB,0FAAiB,CACf1rB,OADe,EAEfwB,OAFe,EAGf+M,IAAI,CAAC/K,OAAL,CAAayC,OAHE,EAIfC,IAJe,EAKfqI,IAAI,CAAC/K,OALU,EAMf2C,mBANe,EAOf7F,KAPe,EAQfC,SARe,EASf,CATe,EAUf,KAVe,CAAjB;AAYD;AACF,SAxGG,CAAJ;AAlCgB;;AA2BlB,WAAK,IAAIyD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAAA,yBAAtCA,CAAsC;;AAAA,iCAI3C;AA4GH;;AAED,eAAS0oD,WAAT,CAAqBn+C,IAArB,EAA2B;AACzB,eAAOA,IAAI,CAACrI,IAAZ;AACD;;AAED,eAASC,mBAAT,CAA6B3C,OAA7B,EAAsC;AACpC,YAAMoqD,QAAQ,GAAG;AACf9sD,WAAC,EAAE,CAAC0C,OAAO,CAACpD,KAAR,CAAcU,CAAd,GAAkB0C,OAAO,CAACnD,GAAR,CAAYS,CAA/B,IAAoC,CADxB;AAEfD,WAAC,EAAE,CAAC2C,OAAO,CAACpD,KAAR,CAAcS,CAAd,GAAkB2C,OAAO,CAACnD,GAAR,CAAYQ,CAA/B,IAAoC;AAFxB,SAAjB;AAKA,eAAO,CAAC2C,OAAO,CAACpD,KAAT,EAAgBwtD,QAAhB,EAA0BpqD,OAAO,CAACnD,GAAlC,CAAP;AACD;AACF;;;sCAEiBsJ,G,EAAKsU,e,EAAiB;AAAA;;AACtC,UAAMzc,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B;AACA,UAAM8J,eAAe,GAAG,KAAKC,oBAAL,CAA0B5B,GAA1B,CAAxB,CAFsC,CAItC;;AACA6B,yFAAY,CAAChK,OAAD,EAAU,KAAKiK,IAAf,EAAqBH,eAArB,CAAZ;AACA1J,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEAqK,mFAAa,CACXlC,GAAG,CAACE,MADO,EAEX,KAAK4B,IAFM,EAGXH,eAHW,EAIXA,eAAe,CAAC9H,OAAhB,CAAwBnD,GAJb,EAKX,KAAKU,OALM,EAMXkd,eANW,EAOX,UAAAnS,OAAO,EAAI;AACT,YAAIA,OAAJ,EAAa;AACX,cAAIR,eAAe,CAACpF,IAAhB,KAAyBjF,SAA7B,EAAwC;AACtC,kBAAI,CAACqJ,aAAL,CAAmBgjD,eAAnB,CAAmC,UAAApnD,IAAI,EAAI;AACzC,kBAAIA,IAAJ,EAAU;AACRoF,+BAAe,CAACpF,IAAhB,GAAuBA,IAAvB;AACD,eAFD,MAEO;AACLmG,sGAAe,CAAC7K,OAAD,EAAU,MAAI,CAACiK,IAAf,EAAqBH,eAArB,CAAf;AACD;;AAEDA,6BAAe,CAACjH,MAAhB,GAAyB,KAAzB;AACAzC,yEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA4K,oFAAY,CAAC5K,OAAD,EAAUqJ,kDAAM,CAACiY,oBAAjB,EAAuC;AACjD5W,wBAAQ,EAAE,MAAI,CAACT,IADkC;AAEjDU,wBAAQ,EAAE,MAAI,CAACV,IAFkC;AAE5B;AACrBjK,uBAAO,EAAPA,OAHiD;AAIjD8J,+BAAe,EAAfA;AAJiD,eAAvC,CAAZ;AAMD,aAhBD,EAgBG3B,GAAG,CAACE,MAhBP;AAiBD;;AAED,cAAMomB,iBAAiB,GAAG;AACxB/jB,oBAAQ,EAAE,MAAI,CAACT,IADS;AAExBU,oBAAQ,EAAE,MAAI,CAACV,IAFS;AAEH;AACrBjK,mBAAO,EAAPA,OAHwB;AAIxB8J,2BAAe,EAAfA;AAJwB,WAA1B;AAOAc,gFAAY,CACV5K,OADU,EAEVqJ,kDAAM,CAACoB,qBAFG,EAGVgkB,iBAHU,CAAZ;AAKD,SAjCD,MAiCO;AACL5jB,gGAAe,CAAC7K,OAAD,EAAU,MAAI,CAACiK,IAAf,EAAqBH,eAArB,CAAf;AACD;;AAED1J,mEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD,OA9CU,CAAb;AAgDD;;;wCAEmBmI,G,EAAK;AACvB,aAAO,KAAKkkD,8BAAL,CAAoClkD,GAApC,CAAP;AACD;;;uCAEkBA,G,EAAK;AACtB,aAAO,KAAKkkD,8BAAL,CAAoClkD,GAApC,CAAP;AACD;;;mDAE8BA,G,EAAK;AAClC,UAAMnI,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B;AACA,UAAMqL,MAAM,GAAGlD,GAAG,CAACE,MAAJ,CAAWiD,aAAX,CAAyB1E,MAAxC;AACA,UAAMiG,SAAS,GAAGjE,mFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;;AAEA,UAAI,CAAC4C,SAAL,EAAgB;AACd,eAAO,KAAP;AACD;;AAED,WAAK,IAAIrK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqK,SAAS,CAACE,IAAV,CAAevJ,MAAnC,EAA2ChB,CAAC,EAA5C,EAAgD;AAC9C,YAAMuK,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAevK,CAAf,CAAb;;AAEA,YACE,KAAK2K,aAAL,CAAmBnN,OAAnB,EAA4B+M,IAA5B,EAAkC1B,MAAlC,KACAyf,gFAAsB,CAAC/d,IAAI,CAAC/K,OAAL,CAAayC,OAAd,EAAuB4G,MAAvB,CAFxB,EAGE;AACA0B,cAAI,CAAClK,MAAL,GAAc,IAAd;AACAzC,qEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC,EAFA,CAIA;;AACA,eAAK8I,aAAL,CAAmBijD,kBAAnB,CACEh/C,IADF,EAEE5E,GAAG,CAACE,MAFN,EAGE,KAAKikD,yBAAL,CAA+BthD,IAA/B,CAAoC,IAApC,EAA0ChL,OAA1C,EAAmD+M,IAAnD,CAHF;AAMA5E,aAAG,CAAC8I,wBAAJ;AACA9I,aAAG,CAACyB,cAAJ;AACAzB,aAAG,CAAC0B,eAAJ;AAEA,iBAAO,IAAP;AACD;AACF;AACF;;;8CAEyB7J,O,EAAS8J,e,EAAiByiD,W,EAAaC,U,EAAY;AAC3E,UAAIA,UAAU,KAAK,IAAnB,EAAyB;AACvB3hD,8FAAe,CAAC7K,OAAD,EAAU,KAAKiK,IAAf,EAAqBH,eAArB,CAAf;AACD,OAFD,MAEO;AACLA,uBAAe,CAACpF,IAAhB,GAAuB6nD,WAAvB;AACD;;AAEDziD,qBAAe,CAACjH,MAAhB,GAAyB,KAAzB;AACAzC,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA4K,4EAAY,CAAC5K,OAAD,EAAUqJ,kDAAM,CAACiY,oBAAjB,EAAuC;AACjD5W,gBAAQ,EAAE,KAAKT,IADkC;AAEjDU,gBAAQ,EAAE,KAAKV,IAFkC;AAE5B;AACrBjK,eAAO,EAAPA,OAHiD;AAIjD8J,uBAAe,EAAfA;AAJiD,OAAvC,CAAZ;AAMD;;;;EAnV4C+D,mE;;;;AAsV/C,SAASi+C,eAAT,CAAyBW,wBAAzB,EAAmD;AACjDA,0BAAwB,CAACC,MAAM,CAAC,wBAAD,CAAP,CAAxB;AACD;;AAED,SAASX,kBAAT,CAA4Bh/C,IAA5B,EAAkC3E,SAAlC,EAA6CqkD,wBAA7C,EAAuE;AACrEA,0BAAwB,CAACC,MAAM,CAAC,yBAAD,CAAP,CAAxB;AACD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7XD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAC7iD,eAAD,EAAkB1B,SAAlB,EAA6B+rB,YAA7B;AAAA,SAC5BA,YAAY,EADgB;AAAA,CAA9B;AAGA;;;;;;;;;;IASqB7R,iB;;;;;AACnB,6BAAY0e,KAAZ,EAAmB;AAAA;;AAAA;;AACjB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,eADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnBzG,mBAAa,EAAE;AACb8jD,yCAAiC,EAAED,qBADtB;AAEbE,sCAA8B,EAAEF,qBAFnB;AAGbloD,eAAO,EAAE,EAHI;AAIb6C,cAAM,EAAE,EAJK;AAKb6iB,mBAAW,EAAE,IALA;AAMb6/B,0BAAkB,EAAE,IANP;AAOblnD,2BAAmB,EAAE,KAPR;AAQbmnD,oBAAY,EAAE,KARD;AASb6C,sBAAc,EAAE;AATH,OAHI;AAcnBze,eAAS,EAAE0e,sEAAmBA;AAdX,KAArB;AAiBA,qNAAM/rB,KAAN,EAAasW,YAAb;AAEA,UAAK6S,0BAAL,GAAkCj+B,+DAAQ,CAAC,MAAKsC,iBAAN,EAAyB,GAAzB,CAA1C;AAEA,UAAKzkB,oBAAL,GAA4BA,kFAAoB,CAACiB,IAArB,4FAA5B;AACA,UAAKmC,aAAL,GAAqBA,2EAAa,CAACnC,IAAd,4FAArB;AACA,UAAK9B,cAAL,GAAsBA,4EAAc,CAAC8B,IAAf,4FAAtB;AACA,UAAK4C,iBAAL,GAAyBA,gFAAiB,CAAC5C,IAAlB,4FAAzB;AACA,UAAKgiD,aAAL,GAAqBA,gFAAa,CAAChiD,IAAd,4FAArB;AAEA,UAAKgC,sBAAL,GAA8BA,qFAAsB,CAAChC,IAAvB,4FAA9B;AACA,UAAKiiD,2BAAL,GAAmCA,0FAA2B,CAACjiD,IAA5B,4FAAnC;AACA,UAAKkiD,2BAAL,GAAmCA,0FAA2B,CAACliD,IAA5B,4FAAnC;AA9BiB;AA+BlB;;;;sCAEiBiD,K,EAAOjO,O,EAAS+M,I,EAAM;AACtC;AACA,UAAIA,IAAI,CAACrC,QAAL,KAAkB,KAAKT,IAA3B,EAAiC;AAC/B;AACD;;AAED,UAAMkjD,YAAY,GAAGthC,sEAAe,CAAC5d,KAAD,CAApC;;AANsC,kCAUlCm/C,8GAAoC,CAACrgD,IAAD,EAAOogD,YAAP,CAVF;AAAA,UAQpCE,eARoC,yBAQpCA,eARoC;AAAA,UASpCC,gBAToC,yBASpCA,gBAToC,EAYtC;;;AACAvgD,UAAI,CAACsgD,eAAL,GAAuBA,eAAvB;AACAtgD,UAAI,CAACugD,gBAAL,GAAwBA,gBAAxB;AACAvgD,UAAI,CAAC6C,WAAL,GAAmB,KAAnB;AACD;;;;EAlD4C/B,mE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3B/C;CAGA;;AACA;AACA;AACA;CAGA;;CAUA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMpE,MAAM,GAAGC,kEAAS,CAAC,gCAAD,CAAxB;AAEA;;;;;;;;;IAQqB6Y,a;;;;;AACnB,2BAAwB;AAAA;;AAAA,QAAZye,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,WADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnB8+B,eAAS,EAAEkf,kEAHQ;AAInBzkD,mBAAa,EAAE;AACbmhD,oBAAY,EAAE,KADD;AAEbnnD,2BAAmB,EAAE;AAFR;AAJI,KAArB;AAUA,iNAAMk+B,KAAN,EAAasW,YAAb;AAEA,UAAK6S,0BAAL,GAAkCj+B,kEAAQ,CAAC,MAAKsC,iBAAN,EAAyB,GAAzB,CAA1C;AAbsB;AAcvB;;;;yCAEoBpmB,S,EAAW;AAC9B,UAAMolD,aAAa,GACjBplD,SAAS,IAAIA,SAAS,CAACkD,aAAvB,IAAwClD,SAAS,CAACkD,aAAV,CAAwB2C,KADlE;;AAGA,UAAI,CAACu/C,aAAL,EAAoB;AAClB/jD,cAAM,CAACorB,KAAP,mDAC6C,KAAK5qB,IADlD;AAIA;AACD;;AAED,aAAO;AACLiN,eAAO,EAAE,IADJ;AAELrU,cAAM,EAAE,IAFH;AAGL/D,aAAK,EAAEW,SAHF;AAILmQ,mBAAW,EAAE,IAJR;AAKL5N,eAAO,EAAE;AACPpD,eAAK,EAAE;AACLU,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD5B;AAELD,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF5B;AAGLsQ,qBAAS,EAAE,IAHN;AAIL9M,kBAAM,EAAE;AAJH,WADA;AAOPhE,aAAG,EAAE;AACHS,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD9B;AAEHD,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF9B;AAGHsQ,qBAAS,EAAE,IAHR;AAIH9M,kBAAM,EAAE;AAJL,WAPE;AAaPlC,yBAAe,EAAEyH,SAAS,CAACxH,QAAV,CAAmBQ,QAb7B;AAcPqD,iBAAO,EAAE;AACP5B,kBAAM,EAAE,KADD;AAEPoC,oBAAQ,EAAE,KAFH;AAGPspB,8BAAkB,EAAE,KAHb;AAIP5rB,8BAAkB,EAAE,IAJb;AAKPkqB,+BAAmB,EAAE,IALd;AAMPQ,0BAAc,EAAE;AANT;AAdF;AALJ,OAAP;AA6BD;;;kCAEartB,O,EAAS+M,I,EAAM1B,M,EAAQoR,e,EAAiB;AACpD,UAAMgxC,qBAAqB,GACzB1gD,IAAI,IAAIA,IAAI,CAAC/K,OAAb,IAAwB+K,IAAI,CAAC/K,OAAL,CAAapD,KAArC,IAA8CmO,IAAI,CAAC/K,OAAL,CAAanD,GAD7D;AAGA,UAAM6uD,WAAW,GAAGttD,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAAnD;;AAEA,UAAI,CAAC83C,qBAAL,EAA4B;AAC1BhkD,cAAM,CAACmlB,IAAP,+CACyC,KAAK3kB,IAD9C;AAGD;;AAED,UAAI,CAACwjD,qBAAD,IAA0B1gD,IAAI,CAACmK,OAAL,KAAiB,KAA/C,EAAsD;AACpD,eAAO,KAAP;AACD;;AAED,UAAMvB,QAAQ,GAAG8G,eAAe,KAAK,OAApB,GAA8B,EAA9B,GAAmC,EAApD;AAEA,UAAM+T,WAAW,GAAGpwB,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAClBN,OADkB,EAElB+M,IAAI,CAAC/K,OAAL,CAAapD,KAFK,CAApB;AAKA,UAAM6xB,SAAS,GAAGrwB,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAChBN,OADgB,EAEhB+M,IAAI,CAAC/K,OAAL,CAAanD,GAFG,CAAlB,CAvBoD,CA4BpD;;AACA,UAAM8uD,kBAAkB,GAAGD,WAAW,CAACl9B,WAAD,EAAcnlB,MAAd,CAAtC,CA7BoD,CA+BpD;;AACA,UAAMnL,MAAM,GAAGwtD,WAAW,CAACl9B,WAAD,EAAcC,SAAd,CAA1B,CAhCoD,CAkCpD;;AACA,aACEk9B,kBAAkB,GAAGztD,MAAM,GAAGyV,QAAQ,GAAG,CAAzC,IACAg4C,kBAAkB,GAAGztD,MAAM,GAAGyV,QAAQ,GAAG,CAF3C;AAID;;;sCAEiB1H,K,EAAOjO,O,EAAS+M,I,EAAM;AACtC,UAAM8sC,YAAY,GAChBz5C,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CAAkC,qBAAlC,EAAyDpvB,KAAK,CAACgmB,OAA/D,KACA,EAFF;AAGA,UAAM6lB,QAAQ,GAAGD,YAAY,CAACC,QAA9B;AACA,UAAMqT,YAAY,GAAGthC,sEAAe,CAAC5d,KAAD,CAApC;;AAEA,UAAMi8B,KAAK,GAAG0jB,eAAe,CAC3B3/C,KAD2B,EAE3BjO,OAF2B,EAG3B+M,IAAI,CAAC/K,OAHsB,EAI3B83C,QAJ2B,EAK3BqT,YAL2B,CAA7B;;AAQApgD,UAAI,CAAC8gD,WAAL,GAAmB3jB,KAAnB;AACAn9B,UAAI,CAAC6C,WAAL,GAAmB,KAAnB;AACD;;;mCAEczH,G,EAAK;AAAA;;AAClB,UAAMqI,QAAQ,GAAG5H,kFAAY,CAACT,GAAG,CAAC2R,aAAL,EAAoB,KAAK7P,IAAzB,CAA7B;;AAEA,UAAI,CAACuG,QAAL,EAAe;AACb;AACD;;AAED,UAAMk9C,WAAW,GAAGttD,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAAnD;AACA,UAAMvN,SAAS,GAAGD,GAAG,CAACE,MAAtB;AARkB,UASV4F,KATU,GASwB7F,SATxB,CASV6F,KATU;AAAA,UASHjO,OATG,GASwBoI,SATxB,CASHpI,OATG;AAAA,UASMsV,aATN,GASwBlN,SATxB,CASMkN,aATN;AAUlB,UAAMvW,SAAS,GAAGiE,qEAAS,CAACE,YAAV,EAAlB;AAVkB,gCAgBd,KAAK4F,aAhBS;AAAA,UAYhBxF,YAZgB,uBAYhBA,YAZgB;AAAA,UAahB0mD,kBAbgB,uBAahBA,kBAbgB;AAAA,UAchBlnD,mBAdgB,uBAchBA,mBAdgB;AAAA,UAehBmnD,YAfgB,uBAehBA,YAfgB;AAiBlB,UAAM6D,UAAU,GAAG74C,wEAAa,CAACK,aAAa,CAAC1O,MAAf,CAAhC;;AAjBkB,6BAkB2BilB,sEAAe,CAAC5d,KAAD,CAlB1C;AAAA,UAkBVuI,eAlBU,oBAkBVA,eAlBU;AAAA,UAkBO2uC,eAlBP,oBAkBOA,eAlBP;;AAmBlB,UAAMnmD,QAAQ,GAAGiJ,+DAAS,CAAC,qBAAD,CAAT,CAAiCa,aAAjC,CAA+C9J,QAAhE,CAnBkB,CAqBlB;;AACA,UAAM66C,YAAY,GAChBz5C,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CAAkC,qBAAlC,EAAyDpvB,KAAK,CAACgmB,OAA/D,KACA,EAFF,CAtBkB,CA0BlB;;AACA,UAAM6lB,QAAQ,GAAGD,YAAY,CAACC,QAA9B;AACA,UAAMiU,eAAe,GAAGv3C,eAAe,IAAI2uC,eAA3C;AAEA7+C,qEAAI,CAACwnD,UAAD,EAAa,UAAAtvD,OAAO,EAAI;AAC1B;AACA,aAAK,IAAIgE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAC7C,cAAMuK,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAb;;AAEA,cAAIuK,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B;AACD,WAL4C,CAO7C;;;AACA,cAAMpY,KAAK,GAAGoD,sEAAU,CAACm+B,gBAAX,CAA4BtzB,IAA5B,CAAd;AACA,cAAMk+C,aAAa,GAAG;AACpBnsD,iBAAK,EAALA,KADoB;AAEpBwE,wBAAY,EAAZA,YAFoB;AAGpBV,+BAAmB,EAAEonD,kBAHD;AAIpBlnD,+BAAmB,EAAnBA;AAJoB,WAAtB;AAOA8mB,8EAAS,CAACprB,OAAD,EAAU,MAAI,CAACsK,aAAf,CAAT;AAEA,cAAM0nB,WAAW,GAAGpwB,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAClBN,OADkB,EAElB+M,IAAI,CAAC/K,OAAL,CAAapD,KAFK,CAApB;AAKA,cAAM6xB,SAAS,GAAGrwB,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAChBN,OADgB,EAEhB+M,IAAI,CAAC/K,OAAL,CAAanD,GAFG,CAAlB,CAvB6C,CA4B7C;;AACA,cAAMqB,MAAM,GAAGwtD,WAAW,CAACl9B,WAAD,EAAcC,SAAd,CAA1B;AAEA,cAAMu9B,aAAa,GAAG;AAAElvD,iBAAK,EAALA;AAAF,WAAtB;;AAEA,cAAImrD,YAAJ,EAAkB;AAChB+D,yBAAa,CAAChvD,QAAd,GAAyBA,QAAzB;AACD,WAnC4C,CAqC7C;;;AACA6qB,+EAAU,CACRrrB,OADQ,EAERwB,OAFQ,EAGR+M,IAAI,CAAC/K,OAAL,CAAapD,KAHL,EAIRsB,MAJQ,EAKR8tD,aALQ,EAMR,OANQ,CAAV;AASA7jC,gFAAW,CAAC3rB,OAAD,EAAU4J,SAAV,EAAqB2E,IAAI,CAAC/K,OAA1B,EAAmCipD,aAAnC,CAAX,CA/C6C,CAiD7C;;AACA,cAAIl+C,IAAI,CAAC6C,WAAL,KAAqB,IAAzB,EAA+B;AAC7B,gBAAI7C,IAAI,CAAC8gD,WAAT,EAAsB;AACpB,oBAAI,CAAC1D,0BAAL,CAAgCl8C,KAAhC,EAAuCjO,OAAvC,EAAgD+M,IAAhD;AACD,aAFD,MAEO;AACL,oBAAI,CAACyhB,iBAAL,CAAuBvgB,KAAvB,EAA8BjO,OAA9B,EAAuC+M,IAAvC;AACD;AACF,WAxD4C,CA0D7C;;;AACA,cAAI,CAACA,IAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBQ,QAA1B,EAAoC;AAClC,gBAAMgpD,aAAa,GAAG5jC,6EAAmB,CACvCjiB,SAAS,CAACxH,QAD6B,EAEvCmM,IAAI,CAAC/K,OAFkC,CAAzC;AAKAM,kBAAM,CAAC8lB,MAAP,CAAcrb,IAAI,CAAC/K,OAAL,CAAayC,OAA3B,EAAoCwpD,aAApC;AACD;;AAED,cAAMtpD,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAA3C,OAAO;AAAA,mBACjCksD,wBAAwB,CAAClsD,OAAO,CAACpD,KAAT,EAAgBoD,OAAO,CAACnD,GAAxB,CADS;AAAA,WAAnC;;AAGA,cAAMsvD,cAAc,GAAGC,qBAAqB,CAC1C5vD,OAD0C,EAE1CyP,KAAK,CAACnP,KAFoC,EAG1CiO,IAAI,CAAC8gD,WAHqC,EAI1C/T,QAJ0C,EAK1CiU,eAL0C,EAM1C,MAAI,CAACjlD,aANqC,CAA5C;;AASAiE,cAAI,CAACshD,IAAL,GAAYC,QAAQ,CAACxU,QAAD,EAAW,MAAI,CAAChxC,aAAL,CAAmBylD,mBAA9B,CAApB;AAEArkC,sFAAiB,CACf1rB,OADe,EAEfwB,OAFe,EAGf+M,IAAI,CAAC/K,OAAL,CAAayC,OAHE,EAIf0pD,cAJe,EAKfphD,IAAI,CAAC/K,OALU,EAMf2C,mBANe,EAOf7F,KAPe,EAQfC,SARe,EASf,EATe,EAUf,IAVe,CAAjB;AAYD;AACF,OAjGG,CAAJ;AAkGD;;;;EAxPwC8O,mE;AA2P3C;;;;;;;;;;;AAOA,SAASqgD,wBAAT,CAAkCM,WAAlC,EAA+CC,SAA/C,EAA0D;AAAA,yBACnBC,sEAAe,CAACF,WAAD,EAAcC,SAAd,CADI;AAAA,MAChDlqD,IADgD,oBAChDA,IADgD;AAAA,MAC1CC,GAD0C,oBAC1CA,GAD0C;AAAA,MACrC1D,KADqC,oBACrCA,KADqC;AAAA,MAC9BE,MAD8B,oBAC9BA,MAD8B;;AAGxD,SAAO,CACL;AACE;AACA1B,KAAC,EAAEiF,IAAI,GAAGzD,KAAK,GAAG,CAFpB;AAGEzB,KAAC,EAAEmF;AAHL,GADK,EAML;AACE;AACAlF,KAAC,EAAEiF,IAFL;AAGElF,KAAC,EAAEmF,GAAG,GAAGxD,MAAM,GAAG;AAHpB,GANK,EAWL;AACE;AACA1B,KAAC,EAAEiF,IAAI,GAAGzD,KAAK,GAAG,CAFpB;AAGEzB,KAAC,EAAEmF,GAAG,GAAGxD;AAHX,GAXK,EAgBL;AACE;AACA1B,KAAC,EAAEiF,IAAI,GAAGzD,KAFZ;AAGEzB,KAAC,EAAEmF,GAAG,GAAGxD,MAAM,GAAG;AAHpB,GAhBK,CAAP;AAsBD;;AAED,SAASstD,QAAT,CAAkBxU,QAAlB,EAA4ByU,mBAA5B,EAAiD;AAC/C,SAAOzU,QAAQ,KAAK,IAAb,IAAqByU,mBAAmB,KAAK,KAA7C,GAAqD,IAArD,GAA4D,EAAnE;AACD;AAED;;;;;;;;;;;;;AAWA,SAASH,qBAAT,CACE5vD,OADF,EAEEmwD,YAFF,EAOE;AAAA,iFAJkD,EAIlD;AAAA,MAJE1O,IAIF,QAJEA,IAIF;AAAA,MAJQjV,IAIR,QAJQA,IAIR;AAAA,MAJcC,MAId,QAJcA,MAId;AAAA,MAJsBtpC,GAItB,QAJsBA,GAItB;AAAA,MAJ2B0E,GAI3B,QAJ2BA,GAI3B;AAAA,MAJgCuoD,aAIhC,QAJgCA,aAIhC;;AAAA,MAHA9U,QAGA;AAAA,MAFAiU,eAEA;AAAA,MADAxuD,OACA,uEADU,EACV;AACA,MAAMsvD,UAAU,GAAGtvD,OAAO,CAACsvD,UAAR,IAAsB,KAAzC;AACA,MAAMjpD,SAAS,GAAG,EAAlB,CAFA,CAIA;;AACA,MAAMkpD,UAAU,GAAG,EAAnB;;AAEA,MAAI,CAACH,YAAL,EAAmB;AACjB,QAAMI,uBAAuB,GAAGH,aAAa,IAAIA,aAAa,CAAC5jB,IAAd,KAAuB,CAAxE;;AACA,QAAMqjB,IAAI,GAAGC,QAAQ,CAACxU,QAAD,EAAWv6C,OAAO,CAACgvD,mBAAnB,CAArB;;AAEA,QAAIS,UAAU,mBAAY1jC,2EAAiB,CAAC0f,IAAI,CAAC0O,OAAL,CAAa,CAAb,CAAD,CAA7B,cAAkD2U,IAAlD,CAAd;AACA,QAAMY,YAAY,sBAAe3jC,2EAAiB,CAChD2f,MAAM,CAACyO,OAAP,CAAe,CAAf,CADgD,CAAhC,cAEb2U,IAFa,CAAlB,CALiB,CASjB;;AACA,QAAIU,uBAAJ,EAA6B;AAC3B,UAAMG,OAAO,GAAG,QAAhB;AAEA,UAAMC,aAAa,aAAMD,OAAN,SAAgB5jC,2EAAiB,CAClDsjC,aAAa,CAAC5jB,IAAd,CAAmB0O,OAAnB,CAA2B,CAA3B,CADkD,CAAjC,CAAnB;AAGA,UAAM0V,eAAe,aAAMF,OAAN,SAAgB5jC,2EAAiB,CACpDsjC,aAAa,CAAC3jB,MAAd,CAAqByO,OAArB,CAA6B,CAA7B,CADoD,CAAjC,CAArB;AAIA,UAAM2V,kBAAkB,GAAGlwD,IAAI,CAACkY,KAAL,CACzB7Y,OAAO,CAACmH,WAAR,WAAuBspD,YAAvB,YAA4CnuD,KADnB,CAA3B;;AAIA,aAAOtC,OAAO,CAACmH,WAAR,CAAoBqpD,UAApB,EAAgCluD,KAAhC,GAAwCuuD,kBAA/C,EAAmE;AACjEL,kBAAU,IAAI,GAAd;AACD;;AAEDF,gBAAU,CAACx1C,IAAX,WAAmB01C,UAAnB,SAAgCG,aAAhC;AACAL,gBAAU,CAACx1C,IAAX,WAAmB21C,YAAnB,kBAAuCG,eAAvC;AACD,KApBD,MAoBO;AACLN,gBAAU,CAACx1C,IAAX,WAAmB01C,UAAnB,kBAAqCC,YAArC;AACD;;AAED,QAAIJ,UAAJ,EAAgB;AACd,UAAIS,SAAS,kBAAW3tD,GAAX,cAAkB0sD,IAAlB,CAAb;AACA,UAAMkB,SAAS,kBAAWlpD,GAAX,cAAkBgoD,IAAlB,CAAf;;AACA,UAAMgB,mBAAkB,GAAGN,uBAAuB,GAC9C5vD,IAAI,CAACkY,KAAL,CAAW7Y,OAAO,CAACmH,WAAR,WAAuBspD,YAAvB,YAA4CnuD,KAAvD,CAD8C,GAE9C3B,IAAI,CAACkY,KAAL,CAAW7Y,OAAO,CAACmH,WAAR,WAAuBqpD,UAAvB,YAA0CluD,KAArD,CAFJ;;AAIA,aAAOtC,OAAO,CAACmH,WAAR,CAAoB2pD,SAApB,EAA+BxuD,KAA/B,GAAuCuuD,mBAA9C,EAAkE;AAChEC,iBAAS,IAAI,GAAb;AACD;;AAEDR,gBAAU,CAACx1C,IAAX,WAAmBg2C,SAAnB,SAA+BC,SAA/B;AACD;AACF;;AAED3pD,WAAS,CAAC0T,IAAV,CAAek2C,WAAW,CAACvP,IAAD,EAAO8N,eAAP,CAA1B;AACAe,YAAU,CAAClrD,OAAX,CAAmB,UAAAtE,CAAC;AAAA,WAAIsG,SAAS,CAAC0T,IAAV,CAAeha,CAAf,CAAJ;AAAA,GAApB;AAEA,SAAOsG,SAAP;AACD;AAED;;;;;;;;;AAOA,SAAS4pD,WAAT,CAAqBvP,IAArB,EAA2B8N,eAA3B,EAA4C;AAC1C;AACA,MAAMvC,MAAM,GAAGuC,eAAe,gBACpBtC,MAAM,CAACC,YAAP,CAAoB,GAApB,CADoB,iBAEpBD,MAAM,CAACC,YAAP,CAAoB,GAApB,CAFoB,CAA9B;AAIA,yBAAgBpgC,2EAAiB,CAAC20B,IAAI,CAACvG,OAAL,CAAa,CAAb,CAAD,CAAjC,SAAqD8R,MAArD;AACD;AAED;;;;;;;;;;;;AAUA,SAASoC,eAAT,CAAyB3/C,KAAzB,EAAgCjO,OAAhC,EAAyCgC,OAAzC,EAAkD83C,QAAlD,EAA4DqT,YAA5D,EAA0E;AACxE;AACA,MAAMsC,iBAAiB,GAAGf,sEAAe,CAAC1sD,OAAO,CAACpD,KAAT,EAAgBoD,OAAO,CAACnD,GAAxB,CAAzC,CAFwE,CAIxE;;AACA,MAAM4Y,MAAM,GAAGrX,2DAAQ,CAACC,WAAT,CAAqBqvD,SAArB,CACb1vD,OADa,EAEbyvD,iBAAiB,CAAClrD,IAFL,EAGbkrD,iBAAiB,CAACjrD,GAHL,EAIbirD,iBAAiB,CAAC3uD,KAJL,EAKb2uD,iBAAiB,CAACzuD,MALL,CAAf,CALwE,CAaxE;;AACA,MAAM2uD,iBAAiB,GAAGC,0FAA0B,CAClDn4C,MADkD,EAElDg4C,iBAFkD,CAApD;AAKA,MAAIb,aAAJ;;AAEA,MAAI9U,QAAQ,KAAK,IAAjB,EAAuB;AACrB8U,iBAAa,GAAG;AACd5jB,UAAI,EAAE1gB,sEAAY,CAACrc,KAAD,EAAQ0hD,iBAAiB,CAAC3kB,IAA1B,EAAgC,IAAhC,CAAZ,IAAqD,CAD7C;AAEdC,YAAM,EAAE3gB,sEAAY,CAACrc,KAAD,EAAQ0hD,iBAAiB,CAAC1kB,MAA1B,EAAkC,IAAlC,CAAZ,IAAuD;AAFjD,KAAhB;AAID;;AAED,MAAMgV,IAAI,GACR9gD,IAAI,CAACU,EAAL,IACE4vD,iBAAiB,CAAC3uD,KAAlB,IAA2BqsD,YAAY,CAAChI,eAAb,IAAgC,CAA3D,CAAD,GAAkE,CADnE,KAEEsK,iBAAiB,CAACzuD,MAAlB,IAA4BmsD,YAAY,CAAC32C,eAAb,IAAgC,CAA5D,CAAD,GAAmE,CAFpE,CADF;AAKA,SAAO;AACLypC,QAAI,EAAEA,IAAI,IAAI,CADT;AAEL4P,SAAK,EAAEF,iBAAiB,CAACE,KAAlB,IAA2B,CAF7B;AAGL7kB,QAAI,EAAE2kB,iBAAiB,CAAC3kB,IAAlB,IAA0B,CAH3B;AAIL8kB,YAAQ,EAAEH,iBAAiB,CAACG,QAAlB,IAA8B,CAJnC;AAKL7kB,UAAM,EAAE0kB,iBAAiB,CAAC1kB,MAAlB,IAA4B,CAL/B;AAMLtpC,OAAG,EAAEguD,iBAAiB,CAAChuD,GAAlB,IAAyB,CANzB;AAOL0E,OAAG,EAAEspD,iBAAiB,CAACtpD,GAAlB,IAAyB,CAPzB;AAQLuoD,iBAAa,EAAbA;AARK,GAAP;AAUD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9dD;CAEA;;AACA;AACA;AAKA;CAEA;;CAEA;;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;IAOqBpsC,a;;;;;AACnB,2BAAwB;AAAA;;AAAA,QAAZwe,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,WADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnB8+B,eAAS,EAAE0hB,kEAHQ;AAInBjnD,mBAAa,EAAE;AACbqhB,mBAAW,EAAE,IADA;AAEb6/B,0BAAkB,EAAE,KAFP;AAGblnD,2BAAmB,EAAE,KAHR;AAIbmnD,oBAAY,EAAE;AAJD;AAJI,KAArB;AAYA,iNAAMjpB,KAAN,EAAasW,YAAb;AAEA,UAAK0Y,aAAL,GAAqB,KAArB;AAEA,UAAK7F,0BAAL,GAAkCj+B,+DAAQ,CAAC,MAAKsC,iBAAN,EAAyB,GAAzB,CAA1C;AAjBsB;AAkBvB;;;;yCAEoBpmB,S,EAAW;AAC9B;AACA,WAAK4nD,aAAL,GAAqB,IAArB;AAEA,aAAO;AACL94C,eAAO,EAAE,IADJ;AAELrU,cAAM,EAAE,IAFH;AAGL/D,aAAK,EAAEW,SAHF;AAILmQ,mBAAW,EAAE,IAJR;AAKLqgD,gBAAQ,EAAE,KALL;AAMLnhC,aAAK,EAAE,EANF;AAOL9sB,eAAO,EAAE;AACPpD,eAAK,EAAE;AACLU,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD5B;AAELD,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF5B;AAGLsQ,qBAAS,EAAE,IAHN;AAIL9M,kBAAM,EAAE;AAJH,WADA;AAOPhE,aAAG,EAAE;AACHS,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD9B;AAEHD,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF9B;AAGHsQ,qBAAS,EAAE,IAHR;AAIH9M,kBAAM,EAAE;AAJL,WAPE;AAaPqtD,gBAAM,EAAE;AACN5wD,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD3B;AAEND,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF3B;AAGNsQ,qBAAS,EAAE,IAHL;AAIN9M,kBAAM,EAAE,KAJF;AAKNF,8BAAkB,EAAE;AALd,WAbD;AAoBPwtD,cAAI,EAAE;AACJ7wD,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAA9B,GAAkC,CADjC;AAEJD,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF7B;AAGJsQ,qBAAS,EAAE,IAHP;AAIJ9M,kBAAM,EAAE,KAJJ;AAKJF,8BAAkB,EAAE;AALhB,WApBC;AA2BP8B,iBAAO,EAAE;AACP5B,kBAAM,EAAE,KADD;AAEPoC,oBAAQ,EAAE,KAFH;AAGPspB,8BAAkB,EAAE,KAHb;AAIP5rB,8BAAkB,EAAE,IAJb;AAKPkqB,+BAAmB,EAAE,IALd;AAMPQ,0BAAc,EAAE;AANT;AA3BF;AAPJ,OAAP;AA4CD;AAED;;;;;;;;;;;kCAQcrtB,O,EAAS+M,I,EAAM1B,M,EAAQ;AACnC,UAAI0B,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B,eAAO,KAAP;AACD;;AAED,UAAI,KAAK84C,aAAT,EAAwB;AACtB,eAAO,KAAP;AACD;;AAED,aACEzkC,yEAAe,CAACvrB,OAAD,EAAU+M,IAAI,CAAC/K,OAAL,CAAapD,KAAvB,EAA8BmO,IAAI,CAAC/K,OAAL,CAAanD,GAA3C,EAAgDwM,MAAhD,CAAf,GACE,EADF,IAEAkgB,yEAAe,CAACvrB,OAAD,EAAU+M,IAAI,CAAC/K,OAAL,CAAakuD,MAAvB,EAA+BnjD,IAAI,CAAC/K,OAAL,CAAamuD,IAA5C,EAAkD9kD,MAAlD,CAAf,GACE,EAJJ;AAMD;;;sCAEiB4C,K,EAAOjO,O,EAAS+M,I,EAAM;AAAA,6BACO8e,sEAAe,CAAC5d,KAAD,CADtB;AAAA,UAC9BuI,eAD8B,oBAC9BA,eAD8B;AAAA,UACb2uC,eADa,oBACbA,eADa;;AAGtC,UAAMiL,GAAG,GACP,CAACjxD,IAAI,CAACkxD,IAAL,CAAUtjD,IAAI,CAAC/K,OAAL,CAAapD,KAAb,CAAmBU,CAA7B,IAAkCH,IAAI,CAACkxD,IAAL,CAAUtjD,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBS,CAA3B,CAAnC,KACC6lD,eAAe,IAAI,CADpB,CADF;AAGA,UAAMmL,GAAG,GACP,CAACnxD,IAAI,CAACkxD,IAAL,CAAUtjD,IAAI,CAAC/K,OAAL,CAAapD,KAAb,CAAmBS,CAA7B,IAAkCF,IAAI,CAACkxD,IAAL,CAAUtjD,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBQ,CAA3B,CAAnC,KACCmX,eAAe,IAAI,CADpB,CADF;AAGA,UAAM+5C,GAAG,GACP,CAACpxD,IAAI,CAACkxD,IAAL,CAAUtjD,IAAI,CAAC/K,OAAL,CAAakuD,MAAb,CAAoB5wD,CAA9B,IAAmCH,IAAI,CAACkxD,IAAL,CAAUtjD,IAAI,CAAC/K,OAAL,CAAamuD,IAAb,CAAkB7wD,CAA5B,CAApC,KACC6lD,eAAe,IAAI,CADpB,CADF;AAGA,UAAMqL,GAAG,GACP,CAACrxD,IAAI,CAACkxD,IAAL,CAAUtjD,IAAI,CAAC/K,OAAL,CAAakuD,MAAb,CAAoB7wD,CAA9B,IAAmCF,IAAI,CAACkxD,IAAL,CAAUtjD,IAAI,CAAC/K,OAAL,CAAamuD,IAAb,CAAkB9wD,CAA5B,CAApC,KACCmX,eAAe,IAAI,CADpB,CADF;AAIA,UAAItX,KAAK,GAAGC,IAAI,CAACyrD,IAAL,CACVzrD,IAAI,CAACmC,GAAL,CACE,CAAC8uD,GAAG,GAAGG,GAAN,GAAYD,GAAG,GAAGE,GAAnB,KACGrxD,IAAI,CAACmf,IAAL,CAAU8xC,GAAG,GAAGA,GAAN,GAAYE,GAAG,GAAGA,GAA5B,IAAmCnxD,IAAI,CAACmf,IAAL,CAAUiyC,GAAG,GAAGA,GAAN,GAAYC,GAAG,GAAGA,GAA5B,CADtC,CADF,CADU,CAAZ;AAOAtxD,WAAK,IAAI,MAAMC,IAAI,CAACU,EAApB;AAEAkN,UAAI,CAAC89C,MAAL,GAAcngC,wEAAc,CAACxrB,KAAD,EAAQ,CAAR,CAA5B;AACA6N,UAAI,CAAC6C,WAAL,GAAmB,KAAnB;AACD;;;mCAEczH,G,EAAK;AAAA;;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADkB,gCAOd,KAAKS,aAPS;AAAA,UAGhBxF,YAHgB,uBAGhBA,YAHgB;AAAA,UAIhB0mD,kBAJgB,uBAIhBA,kBAJgB;AAAA,UAKhBlnD,mBALgB,uBAKhBA,mBALgB;AAAA,UAMhBmnD,YANgB,uBAMhBA,YANgB,EAQlB;;AACA,UAAMz5C,QAAQ,GAAG5H,kFAAY,CAACT,GAAG,CAAC2R,aAAL,EAAoB,KAAK7P,IAAzB,CAA7B;;AAEA,UAAI,CAACuG,QAAL,EAAe;AACb;AACD,OAbiB,CAelB;;;AACA,UAAMhS,OAAO,GAAGyW,wEAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;AAEA,UAAM7H,SAAS,GAAGiE,qEAAS,CAACE,YAAV,EAAlB;AACA,UAAMlE,QAAQ,GAAGiJ,+DAAS,CAAC,qBAAD,CAAT,CAAiCa,aAAjC,CAA+C9J,QAAhE;AACA,UAAMuG,IAAI,GAAGC,qEAAS,CAACC,OAAV,EAAb;;AApBkB,iCAsBTjD,CAtBS;AAuBhB,YAAMuK,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAb;;AAEA,YAAIuK,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B;AACD;;AAED5Q,uEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvBorB,8EAAS,CAACprB,OAAD,EAAU,MAAI,CAACsK,aAAf,CAAT,CADuB,CAGvB;;AACA,cAAMhK,KAAK,GAAGoD,uEAAU,CAACm+B,gBAAX,CAA4BtzB,IAA5B,CAAd;AAEA,cAAMi+C,WAAW,GAAG;AAAElsD,iBAAK,EAALA;AAAF,WAApB;;AAEA,cAAImrD,YAAJ,EAAkB;AAChBe,uBAAW,CAAChsD,QAAZ,GAAuBA,QAAvB;AACD;;AAEDQ,6EAAQ,CACNhB,OADM,EAEN4J,SAAS,CAACpI,OAFJ,EAGN+M,IAAI,CAAC/K,OAAL,CAAapD,KAHP,EAINmO,IAAI,CAAC/K,OAAL,CAAanD,GAJP,EAKNmsD,WALM,CAAR;;AAQA,cAAIj+C,IAAI,CAACkjD,QAAT,EAAmB;AACjBzwD,+EAAQ,CACNhB,OADM,EAEN4J,SAAS,CAACpI,OAFJ,EAGN+M,IAAI,CAAC/K,OAAL,CAAakuD,MAHP,EAINnjD,IAAI,CAAC/K,OAAL,CAAamuD,IAJP,EAKNnF,WALM,CAAR;AAOD,WA5BsB,CA8BvB;;;AACA,cAAMC,aAAa,GAAG;AACpBnsD,iBAAK,EAALA,KADoB;AAEpBwE,wBAAY,EAAZA,YAFoB;AAGpBV,+BAAmB,EAAEonD,kBAHD;AAIpBlnD,+BAAmB,EAAnBA;AAJoB,WAAtB;;AAOA,cAAI,MAAI,CAACgG,aAAL,CAAmBqhB,WAAvB,EAAoC;AAClCA,oFAAW,CAAC3rB,OAAD,EAAU4J,SAAV,EAAqB2E,IAAI,CAAC/K,OAA1B,EAAmCipD,aAAnC,CAAX;AACD,WAxCsB,CA0CvB;;;AACAzsD,iBAAO,CAACkB,SAAR,GAAoBZ,KAApB;AAEA,cAAM4F,IAAI,GAAGqI,IAAI,CAAC+hB,KAAlB;;AAEA,cAAI,CAAC/hB,IAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBQ,QAA1B,EAAoC;AAClC,gBAAMH,UAAU,GAAG;AACjBxF,eAAC,EAAE,CAACyN,IAAI,CAAC/K,OAAL,CAAapD,KAAb,CAAmBU,CAAnB,GAAuByN,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBS,CAAzC,IAA8C,CADhC;AAEjBD,eAAC,EAAE,CAAC0N,IAAI,CAAC/K,OAAL,CAAapD,KAAb,CAAmBS,CAAnB,GAAuB0N,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBQ,CAAzC,IAA8C,CAA9C,GAAkD;AAFpC,aAAnB;AAKAb,mBAAO,CAAC+G,IAAR,GAAeA,IAAf;AACAwH,gBAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBnF,CAArB,GAAyBwF,UAAU,CAACxF,CAApC;AACAyN,gBAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBpF,CAArB,GAAyByF,UAAU,CAACzF,CAApC;AACD;;AAED6qB,wFAAiB,CACf1rB,OADe,EAEf4J,SAAS,CAACpI,OAFK,EAGf+M,IAAI,CAAC/K,OAAL,CAAayC,OAHE,EAIfC,IAJe,EAKfqI,IAAI,CAAC/K,OALU,EAMf2C,mBANe,EAOf7F,KAPe,EAQfC,SARe,EASf,CATe,EAUf,IAVe,CAAjB;AAYD,SAtEG,CAAJ;AA7BgB;;AAsBlB,WAAK,IAAIyD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAAA,yBAAtCA,CAAsC;;AAAA,iCAI3C;AA0EH;;AAED,eAASmC,mBAAT,CAA6B3C,OAA7B,EAAsC;AACpC,eAAO,CAACA,OAAO,CAACpD,KAAT,EAAgBoD,OAAO,CAACkuD,MAAxB,EAAgCluD,OAAO,CAACnD,GAAxC,EAA6CmD,OAAO,CAACmuD,IAArD,CAAP;AACD;AACF;;;kCAEanwD,O,EAAS;AACrB,UAAM6M,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;;AAEA,UAAI4C,SAAS,IAAIjB,KAAK,CAACC,OAAN,CAAcgB,SAAS,CAACE,IAAxB,CAAjB,EAAgD;AAC9C,eAAOF,SAAS,CAACE,IAAV,CAAeV,IAAf,CAAoB;AAAA,cAAG4jD,QAAH,QAAGA,QAAH;AAAA,iBAAkBA,QAAQ,KAAK,KAA/B;AAAA,SAApB,CAAP;AACD;AACF;;;sCAEiB9nD,G,EAAKsU,e,EAAiB;AAAA;;AACtCtU,SAAG,CAACyB,cAAJ;AACAzB,SAAG,CAAC0B,eAAJ;AAEA,UAAMzB,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAEA,UAAIyB,eAAJ;AACA,UAAI2mD,YAAJ;;AACA,UAAI3iC,kBAAkB,GAAG,4BAAAxjB,OAAO,EAAI;AAClC;AACA,YAAI,CAACA,OAAL,EAAc;AACZO,+FAAe,CAAC7K,OAAD,EAAU,MAAI,CAACiK,IAAf,EAAqBH,eAArB,CAAf;AAEA;AACD;AACF,OAPD,CARsC,CAiBtC;;;AACA,UAAM9J,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B;AACA,UAAM0wD,kBAAkB,GAAG,KAAKC,aAAL,CAAmB3wD,OAAnB,CAA3B;;AAEA,UAAI0wD,kBAAJ,EAAwB;AACtB5mD,uBAAe,GAAG4mD,kBAAlB;AACA5mD,uBAAe,CAACmmD,QAAhB,GAA2B,IAA3B;AACAnmD,uBAAe,CAAC9H,OAAhB,CAAwBkuD,MAAxB,GAAiC;AAC/B5wD,WAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CADF;AAE/BD,WAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAFF;AAG/BsD,4BAAkB,EAAE,KAHW;AAI/BgN,mBAAS,EAAE,IAJoB;AAK/B9M,gBAAM,EAAE;AALuB,SAAjC;AAOAiH,uBAAe,CAAC9H,OAAhB,CAAwBmuD,IAAxB,GAA+B;AAC7B7wD,WAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CADJ;AAE7BD,WAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAFJ;AAG7BsD,4BAAkB,EAAE,KAHS;AAI7BgN,mBAAS,EAAE,IAJkB;AAK7B9M,gBAAM,EAAE;AALqB,SAA/B;AAOA4tD,oBAAY,GAAG3mD,eAAe,CAAC9H,OAAhB,CAAwBmuD,IAAvC;AACA,aAAKH,aAAL,GAAqB,KAArB;;AACAliC,0BAAkB,GAAG,4BAAAxjB,OAAO,EAAI;AAC9B;AACA,cAAI,CAACA,OAAL,EAAc;AACZO,iGAAe,CAAC7K,OAAD,EAAU,MAAI,CAACiK,IAAf,EAAqBH,eAArB,CAAf;AAEA;AACD;;AAED,cAAMU,SAAS,GAAGnB,mDAAM,CAACoB,qBAAzB;AACA,cAAMrC,SAAS,GAAG;AAChBsC,oBAAQ,EAAE,MAAI,CAACT,IADC;AAEhBU,oBAAQ,EAAE,MAAI,CAACV,IAFC;AAEK;AACrBjK,mBAAO,EAAPA,OAHgB;AAIhB8J,2BAAe,EAAfA;AAJgB,WAAlB;AAOAc,gFAAY,CAAC5K,OAAD,EAAUwK,SAAV,EAAqBpC,SAArB,CAAZ;AACD,SAjBD;AAkBD,OArCD,MAqCO;AACL0B,uBAAe,GAAG,KAAKC,oBAAL,CAA0B3B,SAA1B,CAAlB;AACA4B,0FAAY,CAAChK,OAAD,EAAU,KAAKiK,IAAf,EAAqBH,eAArB,CAAZ;AACA2mD,oBAAY,GAAG3mD,eAAe,CAAC9H,OAAhB,CAAwBnD,GAAvC;AACD,OA9DqC,CAgEtC;;;AACAuB,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEAqK,mFAAa,CACXjC,SADW,EAEX,KAAK6B,IAFM,EAGXH,eAHW,EAIX2mD,YAJW,EAKX,KAAKlxD,OALM,EAMXkd,eANW,EAOXqR,kBAPW,CAAb;AASD;;;sCAEiB8iC,E,EAAI;AAAA,UACZ5wD,OADY,GACA4wD,EAAE,CAACvoD,MADH,CACZrI,OADY;AAEpB,UAAMiO,KAAK,GAAG7N,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,EAAgDiO,KAA9D;;AAFoB,8BAGyB4d,sEAAe,CAAC5d,KAAD,CAHxC;AAAA,UAGZuI,eAHY,qBAGZA,eAHY;AAAA,UAGK2uC,eAHL,qBAGKA,eAHL;;AAKpB,UAAIyL,EAAE,CAACvoD,MAAH,CAAUqC,QAAV,KAAuB,KAAKT,IAAhC,EAAsC;AACpC;AACD;;AACD,UAAM8C,IAAI,GAAG6jD,EAAE,CAACvoD,MAAH,CAAUyB,eAAvB,CARoB,CAUpB;;AACA,UAAIiD,IAAI,CAAC6C,WAAL,KAAqB,IAAzB,EAA+B;AAC7B,YAAI7C,IAAI,CAAC89C,MAAT,EAAiB;AACf,eAAKV,0BAAL,CAAgCl8C,KAAhC,EAAuCjO,OAAvC,EAAgD+M,IAAhD;AACD,SAFD,MAEO;AACL,eAAKyhB,iBAAL,CAAuBvgB,KAAvB,EAA8BjO,OAA9B,EAAuC+M,IAAvC;AACD;AACF;;AAjBmB,UAmBZ89C,MAnBY,GAmBD99C,IAnBC,CAmBZ89C,MAnBY;AAqBpB99C,UAAI,CAAC+hB,KAAL,GAAa,EAAb;;AAEA,UAAI,CAACoH,MAAM,CAAC2tB,KAAP,CAAagH,MAAb,CAAL,EAA2B;AACzB99C,YAAI,CAAC+hB,KAAL,GAAao8B,WAAW,CAACL,MAAD,EAASr0C,eAAT,EAA0B2uC,eAA1B,CAAxB;AACD;;AAED,eAAS+F,WAAT,CAAqBL,MAArB,EAA6Br0C,eAA7B,EAA8C2uC,eAA9C,EAA+D;AAC7D,YAAMqG,MAAM,GAAG,CAACh1C,eAAD,IAAoB,CAAC2uC,eAArB,GAAuC,cAAvC,GAAwD,EAAvE;AACA,YAAMjM,GAAG,GAAG,MAAZ,CAF6D,CAEzC;;AAEpB,eACE2R,MAAM,CAAC/kD,QAAP,KAAoB2lD,MAAM,CAACC,YAAP,CAAoBC,QAAQ,CAACzS,GAAD,EAAM,EAAN,CAA5B,CAApB,GAA6DsS,MAD/D;AAGD;AACF;;;mCAEcxrD,O,EAAS;AACtB,WAAK6wD,iBAAL,GAAyB,KAAKA,iBAAL,CAAuB7lD,IAAvB,CAA4B,IAA5B,CAAzB;AACAhL,aAAO,CAACoJ,gBAAR,CACEC,mDAAM,CAACiY,oBADT,EAEE,KAAKuvC,iBAFP;AAID;;;oCAEe7wD,O,EAAS;AACvB,WAAK6wD,iBAAL,GAAyB,KAAKA,iBAAL,CAAuB7lD,IAAvB,CAA4B,IAA5B,CAAzB;AACAhL,aAAO,CAACoJ,gBAAR,CACEC,mDAAM,CAACiY,oBADT,EAEE,KAAKuvC,iBAFP;AAID;;;oCAEe7wD,O,EAAS;AACvBA,aAAO,CAACwJ,mBAAR,CACEH,mDAAM,CAACiY,oBADT,EAEE,KAAKuvC,iBAFP;AAID;;;qCAEgB7wD,O,EAAS;AACxBA,aAAO,CAACwJ,mBAAR,CACEH,mDAAM,CAACiY,oBADT,EAEE,KAAKuvC,iBAFP;AAID;;;;EA/XwChjD,mE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtC3C;CAGA;;AACA;AACA;AACA;CAGA;;CAUA;;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMpE,MAAM,GAAGC,kEAAS,CAAC,oCAAD,CAAxB;AAEA;;;;;;;;;IAQqB+Y,iB;;;;;AACnB,+BAAwB;AAAA;;AAAA,QAAZue,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,eADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnBzG,mBAAa,EAAE;AACb;AACA;AACAkhD,0BAAkB,EAAE,KAHP;AAIblnD,2BAAmB,EAAE,KAJR;AAKbmnD,oBAAY,EAAE;AALD,OAHI;AAUnB5b,eAAS,EAAEyiB,sEAAmBA;AAVX,KAArB;AAaA,qNAAM9vB,KAAN,EAAasW,YAAb;AAEA,UAAK6S,0BAAL,GAAkCj+B,kEAAQ,CAAC,MAAKsC,iBAAN,EAAyB,GAAzB,CAA1C;AAhBsB;AAiBvB;;;;yCAEoBpmB,S,EAAW;AAC9B,UAAMolD,aAAa,GACjBplD,SAAS,IAAIA,SAAS,CAACkD,aAAvB,IAAwClD,SAAS,CAACkD,aAAV,CAAwB2C,KADlE;;AAGA,UAAI,CAACu/C,aAAL,EAAoB;AAClB/jD,cAAM,CAACorB,KAAP,mDAC6C,KAAK5qB,IADlD;AAIA;AACD;;AAED,aAAO;AACLiN,eAAO,EAAE,IADJ;AAELrU,cAAM,EAAE,IAFH;AAGL/D,aAAK,EAAEW,SAHF;AAILmQ,mBAAW,EAAE,IAJR;AAKL5N,eAAO,EAAE;AACPpD,eAAK,EAAE;AACLU,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD5B;AAELD,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF5B;AAGLsQ,qBAAS,EAAE,IAHN;AAIL9M,kBAAM,EAAE;AAJH,WADA;AAOPhE,aAAG,EAAE;AACHS,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD9B;AAEHD,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF9B;AAGHsQ,qBAAS,EAAE,IAHR;AAIH9M,kBAAM,EAAE;AAJL,WAPE;AAaPlC,yBAAe,EAAEyH,SAAS,CAACxH,QAAV,CAAmBQ,QAb7B;AAcPqD,iBAAO,EAAE;AACP5B,kBAAM,EAAE,KADD;AAEPoC,oBAAQ,EAAE,KAFH;AAGPspB,8BAAkB,EAAE,KAHb;AAIP5rB,8BAAkB,EAAE,IAJb;AAKPkqB,+BAAmB,EAAE,IALd;AAMPQ,0BAAc,EAAE;AANT;AAdF;AALJ,OAAP;AA6BD;;;kCAEartB,O,EAAS+M,I,EAAM1B,M,EAAQoR,e,EAAiB;AACpD,UAAMgxC,qBAAqB,GACzB1gD,IAAI,IAAIA,IAAI,CAAC/K,OAAb,IAAwB+K,IAAI,CAAC/K,OAAL,CAAapD,KAArC,IAA8CmO,IAAI,CAAC/K,OAAL,CAAanD,GAD7D;AAGA,UAAMkyD,eAAe,GAAGtD,qBAAxB;;AAEA,UAAI,CAACsD,eAAL,EAAsB;AACpBtnD,cAAM,CAACmlB,IAAP,+CACyC,KAAK3kB,IAD9C;AAGD;;AAED,UAAI,CAAC8mD,eAAD,IAAoBhkD,IAAI,CAACmK,OAAL,KAAiB,KAAzC,EAAgD;AAC9C,eAAO,KAAP;AACD;;AAED,UAAM85C,oBAAoB,GAAGngD,sFAAuB,CAClD7Q,OADkD,EAElD+M,IAAI,CAAC/K,OAF6C,EAGlDqJ,MAHkD,EAIlD,CAJkD,CAApD;;AAOA,UAAI2lD,oBAAJ,EAA0B;AACxB,eAAO,IAAP;AACD;;AAED,UAAMr7C,QAAQ,GAAG8G,eAAe,KAAK,OAApB,GAA8B,EAA9B,GAAmC,EAApD;AACA,UAAM+T,WAAW,GAAGpwB,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAClBN,OADkB,EAElB+M,IAAI,CAAC/K,OAAL,CAAapD,KAFK,CAApB;AAIA,UAAM6xB,SAAS,GAAGrwB,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAChBN,OADgB,EAEhB+M,IAAI,CAAC/K,OAAL,CAAanD,GAFG,CAAlB;AAKA,UAAMoyD,YAAY,GAAG;AACnB1sD,YAAI,EAAEpF,IAAI,CAACwC,GAAL,CAAS6uB,WAAW,CAAClxB,CAArB,EAAwBmxB,SAAS,CAACnxB,CAAlC,IAAuCqW,QAAQ,GAAG,CADrC;AAEnBnR,WAAG,EAAErF,IAAI,CAACwC,GAAL,CAAS6uB,WAAW,CAACnxB,CAArB,EAAwBoxB,SAAS,CAACpxB,CAAlC,IAAuCsW,QAAQ,GAAG,CAFpC;AAGnB7U,aAAK,EAAE3B,IAAI,CAACmC,GAAL,CAASkvB,WAAW,CAAClxB,CAAZ,GAAgBmxB,SAAS,CAACnxB,CAAnC,IAAwCqW,QAH5B;AAInB3U,cAAM,EAAE7B,IAAI,CAACmC,GAAL,CAASkvB,WAAW,CAACnxB,CAAZ,GAAgBoxB,SAAS,CAACpxB,CAAnC,IAAwCsW;AAJ7B,OAArB;AAOA,UAAMu7C,YAAY,GAAG;AACnB3sD,YAAI,EAAEpF,IAAI,CAACwC,GAAL,CAAS6uB,WAAW,CAAClxB,CAArB,EAAwBmxB,SAAS,CAACnxB,CAAlC,IAAuCqW,QAAQ,GAAG,CADrC;AAEnBnR,WAAG,EAAErF,IAAI,CAACwC,GAAL,CAAS6uB,WAAW,CAACnxB,CAArB,EAAwBoxB,SAAS,CAACpxB,CAAlC,IAAuCsW,QAAQ,GAAG,CAFpC;AAGnB7U,aAAK,EAAE3B,IAAI,CAACmC,GAAL,CAASkvB,WAAW,CAAClxB,CAAZ,GAAgBmxB,SAAS,CAACnxB,CAAnC,IAAwCqW,QAH5B;AAInB3U,cAAM,EAAE7B,IAAI,CAACmC,GAAL,CAASkvB,WAAW,CAACnxB,CAAZ,GAAgBoxB,SAAS,CAACpxB,CAAnC,IAAwCsW;AAJ7B,OAArB;AAOA,UAAMw7C,mBAAmB,GAAGC,8EAAc,CAACH,YAAD,EAAe5lD,MAAf,CAA1C;AACA,UAAMgmD,mBAAmB,GAAGD,8EAAc,CAACF,YAAD,EAAe7lD,MAAf,CAA1C;;AAEA,UAAIgmD,mBAAmB,IAAI,CAACF,mBAA5B,EAAiD;AAC/C,eAAO,IAAP;AACD;;AAED,aAAO,KAAP;AACD;;;sCAEiBljD,K,EAAOjO,O,EAAS+M,I,EAAM;AACtC,UAAM8sC,YAAY,GAChBz5C,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CAAkC,qBAAlC,EAAyDpvB,KAAK,CAACgmB,OAA/D,KACA,EAFF;AAGA,UAAM6lB,QAAQ,GAAGD,YAAY,CAACC,QAA9B;AACA,UAAMqT,YAAY,GAAGthC,sEAAe,CAAC5d,KAAD,CAApC;;AAEA,UAAMi8B,KAAK,GAAG0jB,eAAe,CAC3B3/C,KAD2B,EAE3BjO,OAF2B,EAG3B+M,IAAI,CAAC/K,OAHsB,EAI3B83C,QAJ2B,EAK3BqT,YAL2B,CAA7B;;AAQApgD,UAAI,CAAC8gD,WAAL,GAAmB3jB,KAAnB;AACAn9B,UAAI,CAAC6C,WAAL,GAAmB,KAAnB;AACD;;;mCAEczH,G,EAAK;AAAA;;AAClB,UAAMqI,QAAQ,GAAG5H,kFAAY,CAACT,GAAG,CAAC2R,aAAL,EAAoB,KAAK7P,IAAzB,CAA7B;;AAEA,UAAI,CAACuG,QAAL,EAAe;AACb;AACD;;AAED,UAAMpI,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAPkB,UAQV4F,KARU,GAQS7F,SART,CAQV6F,KARU;AAAA,UAQHjO,OARG,GAQSoI,SART,CAQHpI,OARG;AASlB,UAAMjB,SAAS,GAAGiE,qEAAS,CAACE,YAAV,EAAlB;AACA,UAAMlE,QAAQ,GAAGiJ,+DAAS,CAAC,qBAAD,CAAT,CAAiCa,aAAjC,CAA+C9J,QAAhE;AAVkB,gCAgBd,KAAK8J,aAhBS;AAAA,UAYhBxF,YAZgB,uBAYhBA,YAZgB;AAAA,UAahB0mD,kBAbgB,uBAahBA,kBAbgB;AAAA,UAchBlnD,mBAdgB,uBAchBA,mBAdgB;AAAA,UAehBmnD,YAfgB,uBAehBA,YAfgB;AAiBlB,UAAMzrD,OAAO,GAAGyW,wEAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;;AAjBkB,6BAkB2BilB,sEAAe,CAAC5d,KAAD,CAlB1C;AAAA,UAkBVuI,eAlBU,oBAkBVA,eAlBU;AAAA,UAkBO2uC,eAlBP,oBAkBOA,eAlBP,EAoBlB;;;AACA,UAAMtL,YAAY,GAChBz5C,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CAAkC,qBAAlC,EAAyDpvB,KAAK,CAACgmB,OAA/D,KACA,EAFF,CArBkB,CAyBlB;;AACA,UAAM6lB,QAAQ,GAAGD,YAAY,CAACC,QAA9B;AACA,UAAMiU,eAAe,GAAGv3C,eAAe,IAAI2uC,eAA3C;AAEA7+C,qEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvB;AACA,aAAK,IAAIgE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAC7C,cAAMuK,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAb;;AAEA,cAAIuK,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B;AACD,WAL4C,CAO7C;;;AACA,cAAMpY,KAAK,GAAGoD,sEAAU,CAACm+B,gBAAX,CAA4BtzB,IAA5B,CAAd;AACA,cAAMk+C,aAAa,GAAG;AACpBnsD,iBAAK,EAALA,KADoB;AAEpBwE,wBAAY,EAAZA,YAFoB;AAGpBV,+BAAmB,EAAEonD,kBAHD;AAIpBlnD,+BAAmB,EAAnBA;AAJoB,WAAtB;AAOA8mB,8EAAS,CAACprB,OAAD,EAAU,MAAI,CAACsK,aAAf,CAAT;AAEA,cAAMwoD,cAAc,GAAG;AAAExyD,iBAAK,EAALA;AAAF,WAAvB;;AAEA,cAAImrD,YAAJ,EAAkB;AAChBqH,0BAAc,CAACtyD,QAAf,GAA0BA,QAA1B;AACD,WAtB4C,CAwB7C;;;AACA8qB,gFAAW,CACTtrB,OADS,EAETwB,OAFS,EAGT+M,IAAI,CAAC/K,OAAL,CAAapD,KAHJ,EAITmO,IAAI,CAAC/K,OAAL,CAAanD,GAJJ,EAKTyyD,cALS,EAMT,OANS,EAOTvkD,IAAI,CAAC/K,OAAL,CAAarB,eAPJ,CAAX;AASAwpB,gFAAW,CAAC3rB,OAAD,EAAU4J,SAAV,EAAqB2E,IAAI,CAAC/K,OAA1B,EAAmCipD,aAAnC,CAAX,CAlC6C,CAoC7C;;AACA,cAAIl+C,IAAI,CAAC6C,WAAL,KAAqB,IAAzB,EAA+B;AAC7B,gBAAI7C,IAAI,CAAC8gD,WAAT,EAAsB;AACpB,oBAAI,CAAC1D,0BAAL,CAAgCl8C,KAAhC,EAAuCjO,OAAvC,EAAgD+M,IAAhD;AACD,aAFD,MAEO;AACL,oBAAI,CAACyhB,iBAAL,CAAuBvgB,KAAvB,EAA8BjO,OAA9B,EAAuC+M,IAAvC;AACD;AACF,WA3C4C,CA6C7C;;;AACA,cAAI,CAACA,IAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBQ,QAA1B,EAAoC;AAClC,gBAAMgpD,aAAa,GAAG5jC,6EAAmB,CACvCjiB,SAAS,CAACxH,QAD6B,EAEvCmM,IAAI,CAAC/K,OAFkC,CAAzC;AAKAM,kBAAM,CAAC8lB,MAAP,CAAcrb,IAAI,CAAC/K,OAAL,CAAayC,OAA3B,EAAoCwpD,aAApC;AACD;;AAED,cAAMtpD,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAA3C,OAAO;AAAA,mBACjCksD,wBAAwB,CAAClsD,OAAO,CAACpD,KAAT,EAAgBoD,OAAO,CAACnD,GAAxB,CADS;AAAA,WAAnC;;AAEA,cAAMsvD,cAAc,GAAGC,qBAAqB,CAC1C5vD,OAD0C,EAE1CyP,KAAK,CAACnP,KAFoC,EAG1CiO,IAAI,CAAC8gD,WAHqC,EAI1C/T,QAJ0C,EAK1CiU,eAL0C,EAM1C,MAAI,CAACjlD,aANqC,CAA5C;;AASAiE,cAAI,CAACshD,IAAL,GAAYC,QAAQ,CAACxU,QAAD,EAAW,MAAI,CAAChxC,aAAL,CAAmBylD,mBAA9B,CAApB;AAEArkC,sFAAiB,CACf1rB,OADe,EAEfwB,OAFe,EAGf+M,IAAI,CAAC/K,OAAL,CAAayC,OAHE,EAIf0pD,cAJe,EAKfphD,IAAI,CAAC/K,OALU,EAMf2C,mBANe,EAOf7F,KAPe,EAQfC,SARe,EASf,EATe,EAUf,IAVe,CAAjB;AAYD;AACF,OAnFG,CAAJ;AAoFD;;;;EAhQ4C8O,mE;AAmQ/C;;;;;;;;;;;AAOA,SAASqgD,wBAAT,CAAkCM,WAAlC,EAA+CC,SAA/C,EAA0D;AAAA,8BACnB8C,2BAA2B,CAC9D/C,WAD8D,EAE9DC,SAF8D,CADR;AAAA,MAChDlqD,IADgD,yBAChDA,IADgD;AAAA,MAC1CC,GAD0C,yBAC1CA,GAD0C;AAAA,MACrC1D,KADqC,yBACrCA,KADqC;AAAA,MAC9BE,MAD8B,yBAC9BA,MAD8B;;AAMxD,SAAO,CACL;AACE;AACA1B,KAAC,EAAEiF,IAAI,GAAGzD,KAAK,GAAG,CAFpB;AAGEzB,KAAC,EAAEmF;AAHL,GADK,EAML;AACE;AACAlF,KAAC,EAAEiF,IAFL;AAGElF,KAAC,EAAEmF,GAAG,GAAGxD,MAAM,GAAG;AAHpB,GANK,EAWL;AACE;AACA1B,KAAC,EAAEiF,IAAI,GAAGzD,KAAK,GAAG,CAFpB;AAGEzB,KAAC,EAAEmF,GAAG,GAAGxD;AAHX,GAXK,EAgBL;AACE;AACA1B,KAAC,EAAEiF,IAAI,GAAGzD,KAFZ;AAGEzB,KAAC,EAAEmF,GAAG,GAAGxD,MAAM,GAAG;AAHpB,GAhBK,CAAP;AAsBD;;AAED,SAASstD,QAAT,CAAkBxU,QAAlB,EAA4ByU,mBAA5B,EAAiD;AAC/C,SAAOzU,QAAQ,KAAK,IAAb,IAAqByU,mBAAmB,KAAK,KAA7C,GAAqD,IAArD,GAA4D,EAAnE;AACD;AAED;;;;;;;;;;;;;AAWA,SAASH,qBAAT,CACE5vD,OADF,EAEEmwD,YAFF,EAOE;AAAA,iFAJkD,EAIlD;AAAA,MAJE1O,IAIF,QAJEA,IAIF;AAAA,MAJQjV,IAIR,QAJQA,IAIR;AAAA,MAJcC,MAId,QAJcA,MAId;AAAA,MAJsBtpC,GAItB,QAJsBA,GAItB;AAAA,MAJ2B0E,GAI3B,QAJ2BA,GAI3B;AAAA,MAJgCuoD,aAIhC,QAJgCA,aAIhC;;AAAA,MAHA9U,QAGA;AAAA,MAFAiU,eAEA;AAAA,MADAxuD,OACA,uEADU,EACV;AACA,MAAMsvD,UAAU,GAAGtvD,OAAO,CAACsvD,UAAR,IAAsB,KAAzC;AACA,MAAMjpD,SAAS,GAAG,EAAlB,CAFA,CAIA;;AACA,MAAMkpD,UAAU,GAAG,EAAnB;;AAEA,MAAI,CAACH,YAAL,EAAmB;AACjB,QAAMI,uBAAuB,GAAGH,aAAa,IAAIA,aAAa,CAAC5jB,IAAd,KAAuB,CAAxE;;AACA,QAAMqjB,IAAI,GAAGC,QAAQ,CAACxU,QAAD,EAAWv6C,OAAO,CAACgvD,mBAAnB,CAArB;;AAEA,QAAIS,UAAU,mBAAY1jC,2EAAiB,CAAC0f,IAAI,CAAC0O,OAAL,CAAa,CAAb,CAAD,CAA7B,cAAkD2U,IAAlD,CAAd;AACA,QAAMY,YAAY,sBAAe3jC,2EAAiB,CAChD2f,MAAM,CAACyO,OAAP,CAAe,CAAf,CADgD,CAAhC,cAEb2U,IAFa,CAAlB,CALiB,CASjB;;AACA,QAAIU,uBAAJ,EAA6B;AAC3B,UAAMG,OAAO,GAAG,QAAhB;AAEA,UAAMC,aAAa,aAAMD,OAAN,SAAgB5jC,2EAAiB,CAClDsjC,aAAa,CAAC5jB,IAAd,CAAmB0O,OAAnB,CAA2B,CAA3B,CADkD,CAAjC,CAAnB;AAGA,UAAM0V,eAAe,aAAMF,OAAN,SAAgB5jC,2EAAiB,CACpDsjC,aAAa,CAAC3jB,MAAd,CAAqByO,OAArB,CAA6B,CAA7B,CADoD,CAAjC,CAArB;AAIA,UAAM2V,kBAAkB,GAAGlwD,IAAI,CAACkY,KAAL,CACzB7Y,OAAO,CAACmH,WAAR,WAAuBspD,YAAvB,YAA4CnuD,KADnB,CAA3B;;AAIA,aAAOtC,OAAO,CAACmH,WAAR,CAAoBqpD,UAApB,EAAgCluD,KAAhC,GAAwCuuD,kBAA/C,EAAmE;AACjEL,kBAAU,IAAI,GAAd;AACD;;AAEDF,gBAAU,CAACx1C,IAAX,WAAmB01C,UAAnB,SAAgCG,aAAhC;AACAL,gBAAU,CAACx1C,IAAX,WAAmB21C,YAAnB,kBAAuCG,eAAvC;AACD,KApBD,MAoBO;AACLN,gBAAU,CAACx1C,IAAX,WAAmB01C,UAAnB,kBAAqCC,YAArC;AACD;;AAED,QAAIJ,UAAJ,EAAgB;AACd,UAAIS,SAAS,kBAAW3tD,GAAX,cAAkB0sD,IAAlB,CAAb;AACA,UAAMkB,SAAS,kBAAWlpD,GAAX,cAAkBgoD,IAAlB,CAAf;;AACA,UAAMgB,mBAAkB,GAAGN,uBAAuB,GAC9C5vD,IAAI,CAACkY,KAAL,CAAW7Y,OAAO,CAACmH,WAAR,WAAuBspD,YAAvB,YAA4CnuD,KAAvD,CAD8C,GAE9C3B,IAAI,CAACkY,KAAL,CAAW7Y,OAAO,CAACmH,WAAR,WAAuBqpD,UAAvB,YAA0CluD,KAArD,CAFJ;;AAIA,aAAOtC,OAAO,CAACmH,WAAR,CAAoB2pD,SAApB,EAA+BxuD,KAA/B,GAAuCuuD,mBAA9C,EAAkE;AAChEC,iBAAS,IAAI,GAAb;AACD;;AAEDR,gBAAU,CAACx1C,IAAX,WAAmBg2C,SAAnB,SAA+BC,SAA/B;AACD;AACF;;AAED3pD,WAAS,CAAC0T,IAAV,CAAek2C,WAAW,CAACvP,IAAD,EAAO8N,eAAP,CAA1B;AACAe,YAAU,CAAClrD,OAAX,CAAmB,UAAAtE,CAAC;AAAA,WAAIsG,SAAS,CAAC0T,IAAV,CAAeha,CAAf,CAAJ;AAAA,GAApB;AAEA,SAAOsG,SAAP;AACD;AAED;;;;;;;;;AAOA,SAAS4pD,WAAT,CAAqBvP,IAArB,EAA2B8N,eAA3B,EAA4C;AAC1C;AACA,MAAMvC,MAAM,GAAGuC,eAAe,gBACpBtC,MAAM,CAACC,YAAP,CAAoB,GAApB,CADoB,iBAEpBD,MAAM,CAACC,YAAP,CAAoB,GAApB,CAFoB,CAA9B;AAIA,yBAAgBpgC,2EAAiB,CAAC20B,IAAI,CAACvG,OAAL,CAAa,CAAb,CAAD,CAAjC,SAAqD8R,MAArD;AACD;AAED;;;;;;;;;;;;AAUA,SAASoC,eAAT,CAAyB3/C,KAAzB,EAAgCjO,OAAhC,EAAyCgC,OAAzC,EAAkD83C,QAAlD,EAA4DqT,YAA5D,EAA0E;AACxE;AACA,MAAMqE,kBAAkB,GAAGD,2BAA2B,CACpDvvD,OAAO,CAACpD,KAD4C,EAEpDoD,OAAO,CAACnD,GAF4C,CAAtD,CAFwE,CAOxE;;;AACA,MAAM4Y,MAAM,GAAGrX,2DAAQ,CAACC,WAAT,CAAqBqvD,SAArB,CACb1vD,OADa,EAEbwxD,kBAAkB,CAACjtD,IAFN,EAGbitD,kBAAkB,CAAChtD,GAHN,EAIbgtD,kBAAkB,CAAC1wD,KAJN,EAKb0wD,kBAAkB,CAACxwD,MALN,CAAf,CARwE,CAgBxE;;AACA,MAAM2uD,iBAAiB,GAAGC,0FAA0B,CAClDn4C,MADkD,EAElD+5C,kBAFkD,CAApD;AAKA,MAAI5C,aAAJ;;AAEA,MAAI9U,QAAQ,KAAK,IAAjB,EAAuB;AACrB8U,iBAAa,GAAG;AACd5jB,UAAI,EAAE1gB,sEAAY,CAACrc,KAAD,EAAQ0hD,iBAAiB,CAAC3kB,IAA1B,EAAgC,IAAhC,CAAZ,IAAqD,CAD7C;AAEdC,YAAM,EAAE3gB,sEAAY,CAACrc,KAAD,EAAQ0hD,iBAAiB,CAAC1kB,MAA1B,EAAkC,IAAlC,CAAZ,IAAuD;AAFjD,KAAhB;AAID,GA7BuE,CA+BxE;;;AACA,MAAMgV,IAAI,GACR9gD,IAAI,CAACU,EAAL,IACE2xD,kBAAkB,CAAC1wD,KAAnB,IAA4BqsD,YAAY,CAAChI,eAAb,IAAgC,CAA5D,CAAD,GAAmE,CADpE,KAEEqM,kBAAkB,CAACxwD,MAAnB,IAA6BmsD,YAAY,CAAC32C,eAAb,IAAgC,CAA7D,CAAD,GAAoE,CAFrE,CADF;AAKA,SAAO;AACLypC,QAAI,EAAEA,IAAI,IAAI,CADT;AAEL4P,SAAK,EAAEF,iBAAiB,CAACE,KAAlB,IAA2B,CAF7B;AAGL7kB,QAAI,EAAE2kB,iBAAiB,CAAC3kB,IAAlB,IAA0B,CAH3B;AAIL8kB,YAAQ,EAAEH,iBAAiB,CAACG,QAAlB,IAA8B,CAJnC;AAKL7kB,UAAM,EAAE0kB,iBAAiB,CAAC1kB,MAAlB,IAA4B,CAL/B;AAMLtpC,OAAG,EAAEguD,iBAAiB,CAAChuD,GAAlB,IAAyB,CANzB;AAOL0E,OAAG,EAAEspD,iBAAiB,CAACtpD,GAAlB,IAAyB,CAPzB;AAQLuoD,iBAAa,EAAbA;AARK,GAAP;AAUD;AAED;;;;;;;;;AAOA,SAAS2C,2BAAT,CAAqC/C,WAArC,EAAkDC,SAAlD,EAA6D;AAC3D,SAAO;AACLlqD,QAAI,EAAEpF,IAAI,CAACi7B,KAAL,CAAWj7B,IAAI,CAACwC,GAAL,CAAS6sD,WAAW,CAAClvD,CAArB,EAAwBmvD,SAAS,CAACnvD,CAAlC,CAAX,CADD;AAELkF,OAAG,EAAErF,IAAI,CAACi7B,KAAL,CAAWj7B,IAAI,CAACwC,GAAL,CAAS6sD,WAAW,CAACnvD,CAArB,EAAwBovD,SAAS,CAACpvD,CAAlC,CAAX,CAFA;AAGLyB,SAAK,EAAE3B,IAAI,CAACi7B,KAAL,CAAWj7B,IAAI,CAACmC,GAAL,CAASktD,WAAW,CAAClvD,CAAZ,GAAgBmvD,SAAS,CAACnvD,CAAnC,CAAX,CAHF;AAIL0B,UAAM,EAAE7B,IAAI,CAACi7B,KAAL,CAAWj7B,IAAI,CAACmC,GAAL,CAASktD,WAAW,CAACnvD,CAAZ,GAAgBovD,SAAS,CAACpvD,CAAnC,CAAX;AAJH,GAAP;AAMD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChgBD;AACA;CAEA;;AACA;AAKA;AACA;AACA;CAEA;;CAEA;;AACA;AACA;CAGA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMoK,MAAM,GAAGC,kEAAS,CAAC,kCAAD,CAAxB;IAGE+nD,c,GAKEllC,gE,CALFklC,c;IACAC,Y,GAIEnlC,gE,CAJFmlC,Y;IACAC,2B,GAGEplC,gE,CAHFolC,2B;IACAC,iB,GAEErlC,gE,CAFFqlC,iB;IACA1X,kB,GACE3tB,gE,CADF2tB,kB;AAGF;;;;;;;;;IAQqBx3B,e;;;;;AACnB,6BAAwB;AAAA;;AAAA,QAAZse,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,aADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnBzG,mBAAa,EAAE+oD,4BAA4B,EAHxB;AAInBxjB,eAAS,EAAEyjB,oEAAiBA;AAJT,KAArB;AAOA,mNAAM9wB,KAAN,EAAasW,YAAb;AAEA,UAAK/V,eAAL,GAAuB,IAAvB;AAEA,UAAKnP,QAAL,GAAgB,KAAhB;AACA,UAAK2/B,SAAL,GAAiB,KAAjB;AACA,UAAKC,UAAL,GAAkB,KAAlB,CAdsB,CAgBtB;;AACA,UAAKC,yBAAL,GAAiC,MAAKA,yBAAL,CAA+BjnD,IAA/B,4FAAjC;AACA,UAAKknD,yBAAL,GAAiC,MAAKA,yBAAL,CAA+BlnD,IAA/B,4FAAjC;AACA,UAAKmnD,yBAAL,GAAiC,MAAKA,yBAAL,CAA+BnnD,IAA/B,4FAAjC;AACA,UAAKonD,uBAAL,GAA+B,MAAKA,uBAAL,CAA6BpnD,IAA7B,4FAA/B;AACA,UAAKqnD,gCAAL,GAAwC,MAAKA,gCAAL,CAAsCrnD,IAAtC,4FAAxC;AAGA,UAAKsnD,oBAAL,GAA4B,MAAKA,oBAAL,CAA0BtnD,IAA1B,4FAA5B;AACA,UAAKunD,sBAAL,GAA8B,MAAKA,sBAAL,CAA4BvnD,IAA5B,4FAA9B;AAEA,UAAKwnD,0BAAL,GAAkC,MAAKA,0BAAL,CAAgCxnD,IAAhC,4FAAlC;AAGA,UAAKynD,yBAAL,GAAiC,MAAKA,yBAAL,CAA+BznD,IAA/B,4FAAjC;AACA,UAAK0nD,8BAAL,GAAsC,MAAKA,8BAAL,CAAoC1nD,IAApC,4FAAtC;AAGA,UAAK2nD,sBAAL,GAA8B,MAAKA,sBAAL,CAA4B3nD,IAA5B,4FAA9B;AAEA,UAAKm/C,0BAAL,GAAkCj+B,+DAAQ,CAAC,MAAKsC,iBAAN,EAAyB,GAAzB,CAA1C;AApCsB;AAqCvB;;;;yCAEoBpmB,S,EAAW;AAC9B,UAAMolD,aAAa,GACjBplD,SAAS,IAAIA,SAAS,CAACkD,aAAvB,IAAwClD,SAAS,CAACkD,aAAV,CAAwB2C,KADlE;;AAGA,UAAI,CAACu/C,aAAL,EAAoB;AAClB/jD,cAAM,CAACorB,KAAP,mDAC6C,KAAK5qB,IADlD;AAIA;AACD;;AAED,UAAMH,eAAe,GAAG;AACtBoN,eAAO,EAAE,IADa;AAEtBrU,cAAM,EAAE,IAFc;AAGtB+M,mBAAW,EAAE,IAHS;AAItB9Q,aAAK,EAAEW,SAJe;AAKtBuC,eAAO,EAAE;AACPrC,gBAAM,EAAE;AADD;AALa,OAAxB;AAUAmK,qBAAe,CAAC9H,OAAhB,CAAwByC,OAAxB,GAAkC;AAChC5B,cAAM,EAAE,KADwB;AAEhCoC,gBAAQ,EAAE,KAFsB;AAGhCspB,0BAAkB,EAAE,KAHY;AAIhC5rB,0BAAkB,EAAE,IAJY;AAKhCkqB,2BAAmB,EAAE,IALW;AAMhCQ,sBAAc,EAAE;AANgB,OAAlC;AASA,aAAOvjB,eAAP;AACD;AAED;;;;;;;;;;;kCAQc9J,O,EAAS+M,I,EAAM1B,M,EAAQ;AACnC,UAAM0lD,eAAe,GAAGhkD,IAAI,IAAIA,IAAI,CAAC/K,OAAb,IAAwB+K,IAAI,CAAC/K,OAAL,CAAarC,MAA7D;;AAEA,UAAI,CAACoxD,eAAL,EAAsB;AACpB,cAAM,IAAIz8B,KAAJ,+CACmC,KAAKrqB,IADxC,sBAAN;AAGD;;AAED,UAAI,CAAC8mD,eAAD,IAAoBhkD,IAAI,CAACmK,OAAL,KAAiB,KAAzC,EAAgD;AAC9C,eAAO,KAAP;AACD;;AAED,UAAM07C,eAAe,GAAG,KAAKC,gBAAL,CAAsB7yD,OAAtB,EAA+B+M,IAA/B,EAAqC1B,MAArC,CAAxB;;AAEA,UAAIunD,eAAe,KAAKnzD,SAAxB,EAAmC;AACjC,eAAO,IAAP;AACD;;AAED,aAAO,KAAP;AACD;AAED;;;;;;;;;;;sCAQkBO,O,EAAS+M,I,EAAM1B,M,EAAQ;AACvC,UAAIsK,QAAQ,GAAGkkB,QAAf;;AAEA,WAAK,IAAIr3B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuK,IAAI,CAAC/K,OAAL,CAAarC,MAAb,CAAoB6D,MAAxC,EAAgDhB,CAAC,EAAjD,EAAqD;AACnD,YAAMswD,SAAS,GAAG1yD,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CAChB5I,IAAI,CAAC/K,OAAL,CAAarC,MAAb,CAAoB6C,CAApB,CADgB,EAEhB6I,MAFgB,CAAlB;AAKAsK,gBAAQ,GAAGxW,IAAI,CAACwC,GAAL,CAASgU,QAAT,EAAmBm9C,SAAnB,CAAX;AACD,OAVsC,CAYvC;;;AACA,UAAIn9C,QAAQ,KAAKkkB,QAAjB,EAA2B;AACzB,eAAO,CAAC,CAAR;AACD;;AAED,aAAOlkB,QAAP;AACD;AAED;;;;;;;;;;;4CAQwB3V,O,EAAS+M,I,EAAM1B,M,EAAQ;AAC7C,UAAIsK,QAAQ,GAAGkkB,QAAf;;AAEA,UAAI,CAAC9sB,IAAL,EAAW;AACT,eAAO,CAAC,CAAR;AACD;;AAED,UAAM+yC,YAAY,GAAG1/C,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4CqL,MAA5C,CAArB;AAEA,UAAM1L,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B;;AAEA,WAAK,IAAI6C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG7C,MAAM,CAAC6D,MAA3B,EAAmChB,CAAC,EAApC,EAAwC;AACtC,YAAM8qB,YAAY,GAAGltB,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CACnBN,OADmB,EAEnBL,MAAM,CAAC6C,CAAD,CAFa,CAArB;AAKA,YAAMswD,SAAS,GAAG1yD,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CAChB2X,YADgB,EAEhBwyB,YAFgB,CAAlB;AAKAnqC,gBAAQ,GAAGxW,IAAI,CAACwC,GAAL,CAASgU,QAAT,EAAmBm9C,SAAnB,CAAX;AACD,OAvB4C,CAyB7C;;;AACA,UAAIn9C,QAAQ,KAAKkkB,QAAjB,EAA2B;AACzB,eAAO,CAAC,CAAR;AACD;;AAED,aAAOlkB,QAAP;AACD;AAED;;;;;;;;;;;;;sCAUkB1H,K,EAAOjO,O,EAAS+M,I,EAAM;AACtC;AACA,UAAIgmD,UAAJ,EAAgBnE,aAAhB;AAEA,UAAM/U,YAAY,GAAGz5C,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CACnB,qBADmB,EAEnBpvB,KAAK,CAACgmB,OAFa,CAArB;AAIA,UAAM6lB,QAAQ,GAAGD,YAAY,GAAGA,YAAY,CAACC,QAAhB,GAA2B,IAAxD;AAEA,UAAMn6C,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B,CAVsC,CAWtC;AACA;AAEA;;AACA,UAAMqzD,MAAM,GAAG;AACbzuD,YAAI,EAAE5E,MAAM,CAAC,CAAD,CAAN,CAAUL,CADH;AAEbyY,aAAK,EAAEpY,MAAM,CAAC,CAAD,CAAN,CAAUL,CAFJ;AAGbsY,cAAM,EAAEjY,MAAM,CAAC,CAAD,CAAN,CAAUN,CAHL;AAIbmF,WAAG,EAAE7E,MAAM,CAAC,CAAD,CAAN,CAAUL;AAJF,OAAf;;AAOA,WAAK,IAAIkD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG7C,MAAM,CAAC6D,MAA3B,EAAmChB,CAAC,EAApC,EAAwC;AACtCwwD,cAAM,CAACzuD,IAAP,GAAcpF,IAAI,CAACwC,GAAL,CAASqxD,MAAM,CAACzuD,IAAhB,EAAsB5E,MAAM,CAAC6C,CAAD,CAAN,CAAUlD,CAAhC,CAAd;AACA0zD,cAAM,CAACj7C,KAAP,GAAe5Y,IAAI,CAACkH,GAAL,CAAS2sD,MAAM,CAACj7C,KAAhB,EAAuBpY,MAAM,CAAC6C,CAAD,CAAN,CAAUlD,CAAjC,CAAf;AACA0zD,cAAM,CAACp7C,MAAP,GAAgBzY,IAAI,CAACwC,GAAL,CAASqxD,MAAM,CAACp7C,MAAhB,EAAwBjY,MAAM,CAAC6C,CAAD,CAAN,CAAUnD,CAAlC,CAAhB;AACA2zD,cAAM,CAACxuD,GAAP,GAAarF,IAAI,CAACkH,GAAL,CAAS2sD,MAAM,CAACxuD,GAAhB,EAAqB7E,MAAM,CAAC6C,CAAD,CAAN,CAAUnD,CAA/B,CAAb;AACD;;AAED,UAAM4zD,eAAe,GAAG;AACtB1uD,YAAI,EAAEyuD,MAAM,CAACzuD,IADS;AAEtBC,WAAG,EAAEwuD,MAAM,CAACp7C,MAFU;AAGtB9W,aAAK,EAAE3B,IAAI,CAACmC,GAAL,CAAS0xD,MAAM,CAACj7C,KAAP,GAAei7C,MAAM,CAACzuD,IAA/B,CAHe;AAItBvD,cAAM,EAAE7B,IAAI,CAACmC,GAAL,CAAS0xD,MAAM,CAACxuD,GAAP,GAAawuD,MAAM,CAACp7C,MAA7B;AAJc,OAAxB,CA7BsC,CAoCtC;;AACA7K,UAAI,CAACkmD,eAAL,GAAuBA,eAAvB,CArCsC,CAuCtC;AACA;;AACA,UAAI,CAAChlD,KAAK,CAACnP,KAAX,EAAkB;AAChB;AACA,YAAM2Y,MAAM,GAAGrX,2DAAQ,CAACC,WAAT,CAAqBqvD,SAArB,CACb1vD,OADa,EAEbizD,eAAe,CAAC1uD,IAFH,EAGb0uD,eAAe,CAACzuD,GAHH,EAIbyuD,eAAe,CAACnyD,KAJH,EAKbmyD,eAAe,CAACjyD,MALH,CAAf,CAFgB,CAUhB;;AACA+xD,kBAAU,GAAGpB,2BAA2B,CAAC5rD,IAA5B,CACX,IADW,EAEX0R,MAFW,EAGXw7C,eAHW,EAIXlmD,IAAI,CAAC/K,OAAL,CAAarC,MAJF,CAAb;;AAOA,YAAIm6C,QAAQ,KAAK,IAAjB,EAAuB;AACrB;AACA;AAEA;AACA;AACA;AACA;AACA8U,uBAAa,GAAG;AACd5jB,gBAAI,EAAE1gB,sEAAY,CAChBrc,KADgB,EAEhB,CAAC8kD,UAAU,CAAC/nB,IAAX,GAAkB/8B,KAAK,CAACsrC,SAAzB,IAAsCtrC,KAAK,CAACqrC,KAF5B,CADJ;AAKdrO,kBAAM,EAAE3gB,sEAAY,CAClBrc,KADkB,EAElB,CAAC8kD,UAAU,CAAC9nB,MAAX,GAAoBh9B,KAAK,CAACsrC,SAA3B,IAAwCtrC,KAAK,CAACqrC,KAF5B;AALN,WAAhB;AAUD,SApCe,CAsChB;;;AACA,YAAIyZ,UAAU,IAAI,CAAClP,KAAK,CAACkP,UAAU,CAAC/nB,IAAZ,CAAxB,EAA2C;AACzCj+B,cAAI,CAACgmD,UAAL,GAAkBA,UAAlB;AACAhmD,cAAI,CAAC6hD,aAAL,GAAqBA,aAArB;AACD;AACF,OApFqC,CAsFtC;AACA;;;AACA,UAAMn4C,kBAAkB,GAAGxI,KAAK,CAACwI,kBAAN,IAA4B,CAAvD;AACA,UAAMD,eAAe,GAAGvI,KAAK,CAACuI,eAAN,IAAyB,CAAjD;AACA,UAAM08C,OAAO,GAAGz8C,kBAAkB,GAAGD,eAArC;AAEA,UAAMypC,IAAI,GAAGyR,YAAY,CAAC3kD,IAAI,CAAC/K,OAAL,CAAarC,MAAd,EAAsBuzD,OAAtB,CAAzB,CA5FsC,CA8FtC;;AACA,UAAI,CAACrP,KAAK,CAAC5D,IAAD,CAAV,EAAkB;AAChBlzC,YAAI,CAACkzC,IAAL,GAAYA,IAAZ;AACD,OAjGqC,CAmGtC;;;AACAlzC,UAAI,CAAC6C,WAAL,GAAmB,KAAnB;AACD;AAED;;;;;;;;;mCAMezH,G,EAAK;AAAA;;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB,CADkB,CAGlB;;AACA,UAAMwE,SAAS,GAAGjE,kFAAY,CAACT,GAAG,CAAC2R,aAAL,EAAoB,KAAK7P,IAAzB,CAA9B;;AAEA,UAAI,CAAC4C,SAAL,EAAgB;AACd;AACD;;AARiB,UAUVoB,KAVU,GAUS7F,SAVT,CAUV6F,KAVU;AAAA,UAUHjO,OAVG,GAUSoI,SAVT,CAUHpI,OAVG;AAWlB,UAAM68B,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAM+wC,YAAY,GAAGz5C,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CACnB,qBADmB,EAEnBpvB,KAAK,CAACgmB,OAFa,CAArB;AAIA,UAAM6lB,QAAQ,GAAGD,YAAY,GAAGA,YAAY,CAACC,QAAhB,GAA2B,IAAxD,CAhBkB,CAkBlB;;AACA,UAAMt7C,OAAO,GAAGyW,wEAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;AACA,UAAM7H,SAAS,GAAGiE,sEAAS,CAACE,YAAV,EAAlB;AApBkB,UAqBV+mD,YArBU,GAqBOptB,MArBP,CAqBVotB,YArBU;AAsBlB,UAAMjrD,QAAQ,GAAGiJ,kEAAS,CAAC,qBAAD,CAAT,CAAiCa,aAAjC,CAA+C9J,QAAhE;;AAtBkB,iCAwBTwD,CAxBS;AAyBhB,YAAMuK,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAevK,CAAf,CAAb;;AAEA,YAAIuK,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B;AACD;;AAED5Q,uEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvB,cAAIM,KAAK,GAAGoD,uEAAU,CAACm+B,gBAAX,CAA4BtzB,IAA5B,CAAZ;AACA,cAAIgzB,SAAJ;;AAEA,cAAIhzB,IAAI,CAAClK,MAAT,EAAiB;AACf,gBAAIkK,IAAI,CAAC/K,OAAL,CAAamxD,sBAAjB,EAAyC;AACvCr0D,mBAAK,GAAG+9B,MAAM,CAACu2B,YAAf;AACArzB,uBAAS,GAAGlD,MAAM,CAACu2B,YAAnB;AACD,aAHD,MAGO;AACLt0D,mBAAK,GAAGoD,uEAAU,CAACm+B,gBAAX,CAA4BtzB,IAA5B,CAAR;AACAgzB,uBAAS,GAAG79B,uEAAU,CAAC+9B,YAAX,EAAZ;AACD;AACF,WARD,MAQO;AACLF,qBAAS,GAAG79B,uEAAU,CAACC,YAAX,EAAZ;AACD;;AAED,cAAI5C,OAAO,GAAG;AAAET,iBAAK,EAALA;AAAF,WAAd;;AAEA,cAAImrD,YAAJ,EAAkB;AAChB1qD,mBAAO,CAACP,QAAR,GAAmBA,QAAnB;AACD;;AAED,cAAI+N,IAAI,CAAC/K,OAAL,CAAarC,MAAb,CAAoB6D,MAAxB,EAAgC;AAC9B,gBAAM7D,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B;AAEAI,sFAAe,CAACvB,OAAD,EAAUwB,OAAV,EAAmBL,MAAM,CAAC,CAAD,CAAzB,EAA8BA,MAA9B,EAAsCJ,OAAtC,CAAf;;AAEA,gBAAIwN,IAAI,CAACkmD,eAAT,EAA0B;AACxBlzD,wFAAe,CACbvB,OADa,EAEbwB,OAFa,EAGbL,MAAM,CAACA,MAAM,CAAC6D,MAAP,GAAgB,CAAjB,CAHO,EAIb,CAAC7D,MAAM,CAAC,CAAD,CAAP,CAJa,EAKbJ,OALa,CAAf;AAOD,aARD,MAQO;AACLQ,wFAAe,CACbvB,OADa,EAEbwB,OAFa,EAGbL,MAAM,CAACA,MAAM,CAAC6D,MAAP,GAAgB,CAAjB,CAHO,EAIb,CAACq5B,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA9B,CAJa,EAKbW,OALa,CAAf;AAOD;AACF,WA5CsB,CA8CvB;;;AAEAA,iBAAO,GAAG;AACRT,iBAAK,EAALA,KADQ;AAERqE,gBAAI,EAAE48B;AAFE,WAAV;;AAKA,cAAIlD,MAAM,CAACw2B,iBAAP,IAA6BtmD,IAAI,CAAClK,MAAL,IAAekK,IAAI,CAACkmD,eAArD,EAAuE;AACrE;AACA1zD,mBAAO,CAAC+D,YAAR,GAAuBu5B,MAAM,CAACy2B,kBAA9B;;AAEA,gBAAI,MAAI,CAACxqD,aAAL,CAAmBqhB,WAAvB,EAAoC;AAClCA,sFAAW,CAAC3rB,OAAD,EAAU4J,SAAV,EAAqB2E,IAAI,CAAC/K,OAAL,CAAarC,MAAlC,EAA0CJ,OAA1C,CAAX;AACD;AACF;;AAED,cAAIwN,IAAI,CAACwmD,WAAT,EAAsB;AACpB;AACAh0D,mBAAO,CAAC+D,YAAR,GAAuBu5B,MAAM,CAAC22B,oBAA9B;AACA,gBAAM9wD,MAAM,GAAGqK,IAAI,CAAC/K,OAAL,CAAarC,MAAb,CAAoB,CAApB,CAAf;;AAEA,gBAAI,MAAI,CAACmJ,aAAL,CAAmBqhB,WAAvB,EAAoC;AAClCA,sFAAW,CAAC3rB,OAAD,EAAU4J,SAAV,EAAqB,CAAC1F,MAAD,CAArB,EAA+BnD,OAA/B,CAAX;AACD;AACF;;AAED,cAAIwN,IAAI,CAAClK,MAAL,IAAe,CAACkK,IAAI,CAACkmD,eAAzB,EAA0C;AACxC;AACA1zD,mBAAO,CAAC+D,YAAR,GAAuBu5B,MAAM,CAACy2B,kBAA9B;;AAEA,gBAAI,MAAI,CAACxqD,aAAL,CAAmBqhB,WAAvB,EAAoC;AAClCA,sFAAW,CACT3rB,OADS,EAET4J,SAFS,EAGTy0B,MAAM,CAACie,aAAP,CAAqB94C,OAHZ,EAITzC,OAJS,CAAX;AAMD;;AAED,gBAAMk0D,WAAW,GAAG1mD,IAAI,CAAC/K,OAAL,CAAarC,MAAb,CAAoB,CAApB,CAApB;;AAEA,gBAAI,MAAI,CAACmJ,aAAL,CAAmBqhB,WAAvB,EAAoC;AAClCA,sFAAW,CAAC3rB,OAAD,EAAU4J,SAAV,EAAqB,CAACqrD,WAAD,CAArB,EAAoCl0D,OAApC,CAAX;AACD;AACF,WA1FsB,CA4FvB;;;AACA,cAAIwN,IAAI,CAAC6C,WAAL,KAAqB,IAArB,IAA6B,CAAC7C,IAAI,CAAClK,MAAvC,EAA+C;AAC7C,gBAAIkK,IAAI,CAACgmD,UAAL,IAAmBhmD,IAAI,CAAC6hD,aAAxB,IAAyC7hD,IAAI,CAACkzC,IAAlD,EAAwD;AACtD,oBAAI,CAACkK,0BAAL,CAAgCl8C,KAAhC,EAAuCjO,OAAvC,EAAgD+M,IAAhD;AACD,aAFD,MAEO;AACL,oBAAI,CAACyhB,iBAAL,CAAuBvgB,KAAvB,EAA8BjO,OAA9B,EAAuC+M,IAAvC;AACD;AACF,WAnGsB,CAqGvB;;;AACA,cAAIA,IAAI,CAACkmD,eAAL,IAAwB,CAAClmD,IAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBy7C,QAAlD,EAA4D;AAC1D;AACA;AACA,gBAAI,CAACnzC,IAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBQ,QAA1B,EAAoC;AAClC;AACA;AACA8H,kBAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBnF,CAArB,GACEyN,IAAI,CAACkmD,eAAL,CAAqB1uD,IAArB,GAA4BwI,IAAI,CAACkmD,eAAL,CAAqBnyD,KADnD;AAEAiM,kBAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBpF,CAArB,GACE0N,IAAI,CAACkmD,eAAL,CAAqBzuD,GAArB,GAA2BuI,IAAI,CAACkmD,eAAL,CAAqBjyD,MAArB,GAA8B,CAD3D;AAED;;AAED,gBAAM0D,IAAI,GAAGwmD,WAAW,CAACnlD,IAAZ,CAAiB,MAAjB,EAAuBgH,IAAvB,CAAb;AAEAmd,0FAAiB,CACf1rB,OADe,EAEfwB,OAFe,EAGf+M,IAAI,CAAC/K,OAAL,CAAayC,OAHE,EAIfC,IAJe,EAKfqI,IAAI,CAAC/K,OAAL,CAAarC,MALE,EAMfgF,mBANe,EAOf7F,KAPe,EAQfC,SARe,EASf,CATe,EAUf,IAVe,CAAjB;AAYD;AACF,SAjIG,CAAJ;AA/BgB;;AAwBlB,WAAK,IAAIyD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqK,SAAS,CAACE,IAAV,CAAevJ,MAAnC,EAA2ChB,CAAC,EAA5C,EAAgD;AAAA,yBAAvCA,CAAuC;;AAAA,iCAI5C;AAqIH;;AAED,eAAS0oD,WAAT,CAAqBn+C,IAArB,EAA2B;AAAA,YACjBgmD,UADiB,GACmBhmD,IADnB,CACjBgmD,UADiB;AAAA,YACLnE,aADK,GACmB7hD,IADnB,CACL6hD,aADK;AAAA,YACU3O,IADV,GACmBlzC,IADnB,CACUkzC,IADV,EAEzB;;AACA,YAAMr6C,SAAS,GAAG,EAAlB,CAHyB,CAKzB;;AACA,YAAImtD,UAAU,IAAIA,UAAU,CAAC/nB,IAAX,KAAoBvrC,SAAtC,EAAiD;AAC/C;AACA,cAAIi0D,QAAQ,GAAG,EAAf;;AAEA,cAAI5Z,QAAQ,KAAK,IAAjB,EAAuB;AACrB4Z,oBAAQ,GAAG,IAAX;AACD;;AACD3mD,cAAI,CAACshD,IAAL,GAAYqF,QAAZ,CAP+C,CAS/C;;AACA,cAAIC,QAAQ,mBAAYroC,2EAAiB,CACvCynC,UAAU,CAAC/nB,IAAX,CAAgB0O,OAAhB,CAAwB,CAAxB,CADuC,CAA7B,cAEPga,QAFO,CAAZ,CAV+C,CAa/C;;AACA,cAAIE,UAAU,qBAActoC,2EAAiB,CAC3CynC,UAAU,CAAC9nB,MAAX,CAAkByO,OAAlB,CAA0B,CAA1B,CAD2C,CAA/B,cAETga,QAFS,CAAd,CAd+C,CAkB/C;;AACA,cAAI9E,aAAa,IAAIA,aAAa,CAAC5jB,IAAd,KAAuBvrC,SAA5C,EAAuD;AACrD,gBAAMyvD,OAAO,GAAG,QAAhB;AAEAyE,oBAAQ,IACNzE,OAAO,GAAG5jC,2EAAiB,CAACsjC,aAAa,CAAC5jB,IAAd,CAAmB0O,OAAnB,CAA2B,CAA3B,CAAD,CAD7B;AAEAka,sBAAU,IACR1E,OAAO,GAAG5jC,2EAAiB,CAACsjC,aAAa,CAAC3jB,MAAd,CAAqByO,OAArB,CAA6B,CAA7B,CAAD,CAD7B;AAED,WA1B8C,CA4B/C;;;AACA9zC,mBAAS,CAAC0T,IAAV,CAAeq6C,QAAf;AACA/tD,mBAAS,CAAC0T,IAAV,CAAes6C,UAAf;AACD,SArCwB,CAuCzB;;;AACA,YAAI3T,IAAJ,EAAU;AACR;AACA;AACA;AACA,cAAIuL,MAAM,gBAASC,MAAM,CAACC,YAAP,CAAoB,GAApB,CAAT,CAAV;;AAEA,cAAI,CAACz9C,KAAK,CAACuI,eAAP,IAA0B,CAACvI,KAAK,CAACwI,kBAArC,EAAyD;AACvD+0C,kBAAM,oBAAaC,MAAM,CAACC,YAAP,CAAoB,GAApB,CAAb,CAAN;AACD,WARO,CAUR;;;AACA,cAAMmI,QAAQ,mBAAYvoC,2EAAiB,CAAC20B,IAAI,CAACvG,OAAL,CAAa,CAAb,CAAD,CAA7B,SAAiD8R,MAAjD,CAAd,CAXQ,CAaR;;AACA5lD,mBAAS,CAAC0T,IAAV,CAAeu6C,QAAf;AACD;;AAED,eAAOjuD,SAAP;AACD;;AAED,eAASjB,mBAAT,CAA6B3C,OAA7B,EAAsC;AACpC,eAAOA,OAAP;AACD;AACF;;;sCAEiBmG,G,EAAK;AACrB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;;AAEA,WAAKyrD,aAAL,CAAmB3rD,GAAnB;;AACA,WAAK6pB,SAAL,CAAe5pB,SAAf;;AAEAuzC,wBAAkB,CAACxzC,GAAD,CAAlB;AACD;;;yCAEoBA,G,EAAK;AACxB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;;AACA,UAAM0rD,MAAM,GAAG,KAAKC,wBAAL,CAA8B5rD,SAA9B,CAAf;;AAEA,UAAIA,SAAS,CAACwK,KAAV,CAAgBoI,OAApB,EAA6B;AAC3B,YAAI+4C,MAAM,KAAKt0D,SAAX,IAAwBs0D,MAAM,CAACE,YAAP,CAAoB5mC,cAAhD,EAAgE,CAC9D;AACD,SAFD,MAEO;AACLokC,wBAAc,CAAC1rD,IAAf,CAAoB,IAApB,EAA0BoC,GAA1B,EAA+B4rD,MAA/B;AACD;;AAEDpY,0BAAkB,CAACxzC,GAAD,CAAlB;AAEA,eAAO,IAAP;AACD;;AAED,aAAO,KAAP;AACD;;;2CAEsBA,G,EAAKqI,Q,EAAU9N,M,EAAmC;AAAA,UAA3B+Z,eAA2B,uEAAT,OAAS;AAAA,UAC/Dzc,OAD+D,GACnDmI,GAAG,CAACE,MAD+C,CAC/DrI,OAD+D;AAEvE,UAAM6M,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;;AAEA,UAAIvH,MAAM,CAAC2qB,cAAX,EAA2B;AACzB;AACA9D,qGAAwB,CAACphB,GAAD,EAAM,IAAN,EAAYqI,QAAZ,EAAsB9N,MAAtB,EAA8B+Z,eAA9B,CAAxB;AAEA;AACD;;AAED,UAAMogB,MAAM,GAAG,KAAK/zB,aAApB;AAEA+zB,YAAM,CAACq3B,UAAP,GAAoB;AAClB50D,SAAC,EAAEoD,MAAM,CAACpD,CADQ;AAElBD,SAAC,EAAEqD,MAAM,CAACrD;AAFQ,OAApB,CAbuE,CAkBvE;;AACA,WAAK,IAAI6uC,SAAS,GAAG,CAArB,EAAwBA,SAAS,GAAGrhC,SAAS,CAACE,IAAV,CAAevJ,MAAnD,EAA2D0qC,SAAS,EAApE,EAAwE;AACtE,YAAMvuC,MAAM,GAAGkN,SAAS,CAACE,IAAV,CAAemhC,SAAf,EAA0BlsC,OAA1B,CAAkCrC,MAAjD;;AAEA,aAAK,IAAI+D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG/D,MAAM,CAAC6D,MAA3B,EAAmCE,CAAC,EAApC,EAAwC;AACtC,cAAI/D,MAAM,CAAC+D,CAAD,CAAN,KAAchB,MAAlB,EAA0B;AACxBm6B,kBAAM,CAAC9K,aAAP,GAAuBruB,CAAvB;AACAm5B,kBAAM,CAAC8d,WAAP,GAAqBzM,SAArB;AACD;AACF;AACF;;AAED,WAAK8jB,UAAL,GAAkB,IAAlB;;AAEA,WAAKmC,eAAL,CAAqBn0D,OAArB,EAhCuE,CAkCvE;;;AACA27C,wBAAkB,CAACxzC,GAAD,CAAlB;AACD;AAED;;;;;;;;;;8CAO0BA,G,EAAK;AAC7B,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD6B,UAErBiD,aAFqB,GAEMlD,SAFN,CAErBkD,aAFqB;AAAA,UAENtL,OAFM,GAEMoI,SAFN,CAENpI,OAFM;AAG7B,UAAM6M,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;AAEA,UAAM4yB,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAM6xC,WAAW,GAAG9d,MAAM,CAAC8d,WAA3B;AAEA,UAAM5tC,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe4tC,WAAf,CAAb;AACA,UAAMtvC,MAAM,GAAGC,aAAa,CAAC1E,MAA7B,CAT6B,CAW7B;;AACA,WAAKw0C,iBAAL,CAAuBhzC,SAAvB;;AACA,WAAKgsD,2BAAL,CAAiCrnD,IAAjC,EAAuC3E,SAAvC,EAb6B,CAe7B;;;AACA,UAAM6rD,YAAY,GAAG,KAAKpB,gBAAL,CAAsB7yD,OAAtB,EAA+B+M,IAA/B,EAAqC1B,MAArC,CAArB;;AACA,UAAM1L,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B,CAjB6B,CAkB7B;AACA;;AAEA,UACEs0D,YAAY,KAAKx0D,SAAjB,IACA,CAACw0D,YAAY,CAAC5mC,cADd,IAEA4mC,YAAY,GAAGt0D,MAAM,CAAC6D,MAAP,GAAgB,CAHjC,EAIE;AACAq5B,cAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCU,CAAnC,GAAuCK,MAAM,CAACs0D,YAAD,CAAN,CAAqB30D,CAA5D;AACAu9B,cAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCS,CAAnC,GAAuCM,MAAM,CAACs0D,YAAD,CAAN,CAAqB50D,CAA5D;AACD,OA5B4B,CA8B7B;;;AACAe,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;8CAO0BmI,G,EAAK;AAC7B,UAAI,CAAC,KAAK5I,OAAL,CAAauM,eAAb,CAA6BC,QAA7B,CAAsC5D,GAAG,CAACE,MAAJ,CAAW2D,OAAjD,CAAL,EAAgE;AAC9D;AACD;;AAED,WAAKqoD,YAAL,CAAkBlsD,GAAlB;AACD;AAED;;;;;;;;;;8CAO0BA,G,EAAK;AAC7B,WAAKksD,YAAL,CAAkBlsD,GAAlB;AACD;;;iCAEYA,G,EAAK;AAChB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADgB,UAERrI,OAFQ,GAEIoI,SAFJ,CAERpI,OAFQ;AAIhB,UAAM6M,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;AAEA,UAAM4yB,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAM6xC,WAAW,GAAG9d,MAAM,CAAC8d,WAA3B;AAEA,UAAM5tC,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe4tC,WAAf,CAAb,CATgB,CAWhB;;AACA,WAAKS,iBAAL,CAAuBhzC,SAAvB;;AACA,WAAKgsD,2BAAL,CAAiCrnD,IAAjC,EAAuC3E,SAAvC;;AACA,WAAKksD,mBAAL,CAAyBlsD,SAAzB,EAAoC2E,IAAI,CAAC/K,OAAL,CAAarC,MAAjD;;AACA,WAAKoyD,SAAL,GAAiB,IAAjB,CAfgB,CAiBhB;;AACA3xD,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;4CAOwBmI,G,EAAK;AAAA,UACnBnI,OADmB,GACPmI,GAAG,CAACE,MADG,CACnBrI,OADmB;;AAG3B,UAAI,CAAC,KAAK+xD,SAAV,EAAqB;AACnB;AACD;;AAED,WAAKA,SAAL,GAAiB,KAAjB;AAEA,UAAMl1B,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAM6xC,WAAW,GAAG9d,MAAM,CAAC8d,WAA3B;AACA,UAAM9tC,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;AACA,UAAM8C,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe4tC,WAAf,CAAb;;AAEA,UAAI,CAACiX,iBAAiB,CAAC/yD,GAAlB,CAAsBkO,IAAI,CAAC/K,OAAL,CAAarC,MAAnC,CAAD,IAA+CoN,IAAI,CAACwmD,WAAxD,EAAqE;AACnE,YAAMgB,gBAAgB,GAAG13B,MAAM,CAAC9K,aAAhC;;AAEA,aAAKyiC,WAAL,CAAiBx0D,OAAjB,EAA0Bu0D,gBAA1B;AACD;;AAED5Y,wBAAkB,CAACxzC,GAAD,CAAlB;AAEA;AACD;AAED;;;;;;;;;;8CAO0BA,G,EAAK;AAC7B,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD6B,UAErB2D,OAFqB,GAEe5D,SAFf,CAErB4D,OAFqB;AAAA,UAEZV,aAFY,GAEelD,SAFf,CAEZkD,aAFY;AAAA,UAEGtL,OAFH,GAEeoI,SAFf,CAEGpI,OAFH;;AAI7B,UAAI,CAAC,KAAKT,OAAL,CAAauM,eAAb,CAA6BC,QAA7B,CAAsCC,OAAtC,CAAL,EAAqD;AACnD;AACD;;AAED,UAAMX,MAAM,GAAGC,aAAa,CAAC1E,MAA7B;AAEA,UAAMi2B,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAM6xC,WAAW,GAAG9d,MAAM,CAAC8d,WAA3B;AACA,UAAM9tC,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;AACA,UAAM8C,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe4tC,WAAf,CAAb;;AAEA,UAAMsZ,YAAY,GAAG,KAAKpB,gBAAL,CAAsB7yD,OAAtB,EAA+B+M,IAA/B,EAAqC1B,MAArC,CAArB;;AAEA,UAAI,CAACumD,iBAAiB,CAAC/yD,GAAlB,CAAsBkO,IAAI,CAAC/K,OAAL,CAAarC,MAAnC,CAAD,IAA+CoN,IAAI,CAACwmD,WAAxD,EAAqE;AACnE,YAAMgB,gBAAgB,GAAG13B,MAAM,CAAC9K,aAAhC;;AAEA,aAAKyiC,WAAL,CAAiBx0D,OAAjB,EAA0Bu0D,gBAA1B;AACD,OAJD,MAIO,IAAIN,YAAY,KAAKx0D,SAArB,EAAgC;AACrC,aAAKuyB,SAAL,CAAe5pB,SAAf;AACD;;AAEDuzC,wBAAkB,CAACxzC,GAAD,CAAlB;AAEA;AACD;AAED;;;;;;;;;;+CAO2BA,G,EAAK;AAC9B,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD8B,UAEtBiD,aAFsB,GAEKlD,SAFL,CAEtBkD,aAFsB;AAAA,UAEPtL,OAFO,GAEKoI,SAFL,CAEPpI,OAFO;AAI9B,UAAMqL,MAAM,GAAGC,aAAa,CAAC1E,MAA7B;AAEA,UAAMi2B,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAM6xC,WAAW,GAAG9d,MAAM,CAAC8d,WAA3B;AACA,UAAM9tC,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;AACA,UAAM8C,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe4tC,WAAf,CAAb;;AAEA,UAAMsZ,YAAY,GAAG,KAAKpB,gBAAL,CAAsB7yD,OAAtB,EAA+B+M,IAA/B,EAAqC1B,MAArC,CAArB;;AAEA,UAAI,CAACumD,iBAAiB,CAAC/yD,GAAlB,CAAsBkO,IAAI,CAAC/K,OAAL,CAAarC,MAAnC,CAAD,IAA+CoN,IAAI,CAACwmD,WAAxD,EAAqE;AACnE,YAAMgB,gBAAgB,GAAG13B,MAAM,CAAC9K,aAAhC;;AAEA,aAAKyiC,WAAL,CAAiBx0D,OAAjB,EAA0Bu0D,gBAA1B;AACD,OAJD,MAIO,IAAIN,YAAY,KAAKx0D,SAArB,EAAgC;AACrC,aAAKuyB,SAAL,CAAe5pB,SAAf;AACD;;AAEDuzC,wBAAkB,CAACxzC,GAAD,CAAlB;AAEA;AACD;AAED;;;;;;;;;oCAMgBnI,O,EAAS;AACvB,UAAI,CAAC,KAAKoyB,QAAV,EAAoB;AAClB;AACD;;AACD,UAAMvlB,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;AACA,UAAM4yB,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAMiE,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe8vB,MAAM,CAAC8d,WAAtB,CAAb;;AAEA,UACE,CAACiX,iBAAiB,CAAC/yD,GAAlB,CAAsBkO,IAAI,CAAC/K,OAAL,CAAarC,MAAnC,CAAD,IACAoN,IAAI,CAAC/K,OAAL,CAAarC,MAAb,CAAoB6D,MAApB,IAA8B,CAFhC,EAGE;AACA,YAAM+wD,gBAAgB,GAAG13B,MAAM,CAAC9K,aAAhC;AAEAhlB,YAAI,CAACkmD,eAAL,GAAuB,EAAvB;;AACA,aAAKuB,WAAL,CAAiBx0D,OAAjB,EAA0Bu0D,gBAA1B;AACD;AACF;AAED;;;;;;;;;;qDAOiCpsD,G,EAAK;AAAA,UAC5BnI,OAD4B,GAChBmI,GAAG,CAACE,MADY,CAC5BrI,OAD4B;AAGpC,WAAKy0D,eAAL,CAAqBz0D,OAArB;AAEA27C,wBAAkB,CAACxzC,GAAD,CAAlB;AACD;AAED;;;;;;;;;;mDAO+BA,G,EAAK;AAAA,UAC1BnI,OAD0B,GACdmI,GAAG,CAACE,MADU,CAC1BrI,OAD0B;AAGlC,WAAKy0D,eAAL,CAAqBz0D,OAArB;AAEA27C,wBAAkB,CAACxzC,GAAD,CAAlB;AACD;AAED;;;;;;;;;;2CAOuBA,G,EAAK;AAC1B,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD0B,UAElBrI,OAFkB,GAEGoI,SAFH,CAElBpI,OAFkB;AAAA,UAETgM,OAFS,GAEG5D,SAFH,CAET4D,OAFS;;AAI1B,UAAI,CAAC,KAAKzM,OAAL,CAAauM,eAAb,CAA6BC,QAA7B,CAAsCC,OAAtC,CAAL,EAAqD;AACnD;AACD;;AAED,UAAMa,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;AAEA,UAAM4yB,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAMiE,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe8vB,MAAM,CAAC8d,WAAtB,CAAb;AACA,UAAM5oB,aAAa,GAAG8K,MAAM,CAAC9K,aAA7B;AACA,UAAMpyB,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B;AACA,UAAI+0D,WAAW,GAAG,CAAC,CAAnB,CAd0B,CAgB1B;;AACA,WAAKtZ,iBAAL,CAAuBhzC,SAAvB;;AAEA2E,UAAI,CAAC/K,OAAL,CAAamxD,sBAAb,GAAsCvB,iBAAiB,CAAC+C,MAAlB,CACpCh1D,MADoC,EAEpCoyB,aAFoC,CAAtC;AAIAhlB,UAAI,CAAClK,MAAL,GAAc,IAAd;AACAkK,UAAI,CAAC4C,SAAL,GAAiB,IAAjB;AACAhQ,YAAM,CAACoyB,aAAD,CAAN,CAAsBzyB,CAAtB,GAA0Bu9B,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCU,CAA7D;AACAK,YAAM,CAACoyB,aAAD,CAAN,CAAsB1yB,CAAtB,GAA0Bw9B,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCS,CAA7D;AAEAq1D,iBAAW,GAAG,KAAKE,mBAAL,CAAyB7iC,aAAzB,EAAwCpyB,MAAxC,CAAd;;AAEA,UAAIoyB,aAAa,IAAI,CAArB,EAAwB;AACtB,YAAM8iC,aAAa,GAAGl1D,MAAM,CAAC+0D,WAAD,CAAN,CAAoB5wD,KAApB,CAA0BN,MAA1B,GAAmC,CAAzD;AACA,YAAMsxD,QAAQ,GAAGn1D,MAAM,CAAC+0D,WAAD,CAAN,CAAoB5wD,KAApB,CAA0B+wD,aAA1B,CAAjB;AAEAC,gBAAQ,CAACx1D,CAAT,GAAau9B,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCU,CAAhD;AACAw1D,gBAAQ,CAACz1D,CAAT,GAAaw9B,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCS,CAAhD;AACD,OApCyB,CAsC1B;;;AACAe,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;2CAOuBmI,G,EAAK;AAC1B,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD0B,UAElBrI,OAFkB,GAENoI,SAFM,CAElBpI,OAFkB;AAI1B,UAAM6M,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;AAEA,UAAM4yB,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAMiE,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe8vB,MAAM,CAAC8d,WAAtB,CAAb;AACA,UAAM5oB,aAAa,GAAG8K,MAAM,CAAC9K,aAA7B;AACA,UAAMpyB,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B;AACA,UAAI+0D,WAAW,GAAG,CAAC,CAAnB,CAV0B,CAY1B;;AACA,WAAKtZ,iBAAL,CAAuBhzC,SAAvB;;AAEA2E,UAAI,CAAC/K,OAAL,CAAamxD,sBAAb,GAAsCvB,iBAAiB,CAAC+C,MAAlB,CACpCh1D,MADoC,EAEpCoyB,aAFoC,CAAtC;AAIAhlB,UAAI,CAAClK,MAAL,GAAc,IAAd;AACAkK,UAAI,CAAC4C,SAAL,GAAiB,IAAjB;AACAhQ,YAAM,CAACoyB,aAAD,CAAN,CAAsBzyB,CAAtB,GAA0Bu9B,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCU,CAA7D;AACAK,YAAM,CAACoyB,aAAD,CAAN,CAAsB1yB,CAAtB,GAA0Bw9B,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCS,CAA7D;AAEAq1D,iBAAW,GAAG,KAAKE,mBAAL,CAAyB7iC,aAAzB,EAAwCpyB,MAAxC,CAAd;;AAEA,UAAIoyB,aAAa,IAAI,CAArB,EAAwB;AACtB,YAAM8iC,aAAa,GAAGl1D,MAAM,CAAC+0D,WAAD,CAAN,CAAoB5wD,KAApB,CAA0BN,MAA1B,GAAmC,CAAzD;AACA,YAAMsxD,QAAQ,GAAGn1D,MAAM,CAAC+0D,WAAD,CAAN,CAAoB5wD,KAApB,CAA0B+wD,aAA1B,CAAjB;AAEAC,gBAAQ,CAACx1D,CAAT,GAAau9B,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCU,CAAhD;AACAw1D,gBAAQ,CAACz1D,CAAT,GAAaw9B,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCS,CAAhD;AACD,OAhCyB,CAkC1B;;;AACAe,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;wCAMoB+xB,a,EAAepyB,M,EAAQ;AACzC,UAAIoyB,aAAa,KAAK,CAAtB,EAAyB;AACvB,eAAOpyB,MAAM,CAAC6D,MAAP,GAAgB,CAAvB;AACD;;AAED,aAAOuuB,aAAa,GAAG,CAAvB;AACD;AAED;;;;;;;;;;yCAOqB5pB,G,EAAK;AACxB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADwB,UAEhBrI,OAFgB,GAEJoI,SAFI,CAEhBpI,OAFgB;AAGxB,UAAM6M,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;;AAEA,WAAK8qD,iBAAL,CAAuB/0D,OAAvB;;AAEA,WAAKg1D,WAAL,CAAiB5sD,SAAjB,EAA4ByE,SAA5B;;AACA,WAAK2nD,WAAL,CAAiBx0D,OAAjB;;AAEAI,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;;;;gCAUYoI,S,EAAWyE,S,EAAW;AAChC,UAAMgwB,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAM6xC,WAAW,GAAG9d,MAAM,CAAC8d,WAA3B;AACA,UAAM34C,OAAO,GAAG6K,SAAS,CAACE,IAAV,CAAe4tC,WAAf,EAA4B34C,OAA5C;AACA,UAAMrC,MAAM,GAAGqC,OAAO,CAACrC,MAAvB,CAJgC,CAMhC;;AACA,UAAIqC,OAAO,CAACmxD,sBAAZ,EAAoC;AAClC,YAAMphC,aAAa,GAAG8K,MAAM,CAAC9K,aAA7B;AACA,YAAMkjC,iBAAiB,GAAGt1D,MAAM,CAACoyB,aAAD,CAAhC;AACA,YAAImjC,kBAAJ;;AAEA,YAAInjC,aAAa,KAAK,CAAtB,EAAyB;AACvB,cAAMojC,YAAY,GAAGx1D,MAAM,CAAC6D,MAAP,GAAgB,CAArC;AAEA0xD,4BAAkB,GAAGv1D,MAAM,CAACw1D,YAAD,CAA3B;AACD,SAJD,MAIO;AACLD,4BAAkB,GAAGv1D,MAAM,CAACoyB,aAAa,GAAG,CAAjB,CAA3B;AACD,SAXiC,CAalC;;;AACAkjC,yBAAiB,CAAC31D,CAAlB,GAAsBu9B,MAAM,CAACq3B,UAAP,CAAkB50D,CAAxC;AACA21D,yBAAiB,CAAC51D,CAAlB,GAAsBw9B,MAAM,CAACq3B,UAAP,CAAkB70D,CAAxC;AACA61D,0BAAkB,CAACpxD,KAAnB,CAAyB,CAAzB,IAA8BmxD,iBAA9B;AAEAjzD,eAAO,CAACmxD,sBAAR,GAAiC,KAAjC;AACD;AACF;AAED;;;;;;;;;;;kCAQchrD,G,EAAK;AACjB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAMyB,eAAe,GAAG,KAAKC,oBAAL,CAA0B3B,SAA1B,CAAxB;AAFiB,UAGTpI,OAHS,GAGGoI,SAHH,CAGTpI,OAHS;AAIjB,UAAM68B,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAI2T,eAAJ;;AAEA,UAAItU,GAAG,CAACsH,IAAJ,KAAapG,kDAAM,CAACoF,mBAAxB,EAA6C;AAC3CgO,uBAAe,GAAG,OAAlB;AACD,OAFD,MAEO,IAAItU,GAAG,CAACsH,IAAJ,KAAapG,kDAAM,CAAC6I,kBAAxB,EAA4C;AACjDuK,uBAAe,GAAG,OAAlB;AACD;;AACD,WAAK24C,aAAL,CAAmBp1D,OAAnB,EAA4Byc,eAA5B;;AACA,WAAK2+B,iBAAL,CAAuBhzC,SAAvB;;AAEA4B,wFAAY,CAAChK,OAAD,EAAU,KAAKiK,IAAf,EAAqBH,eAArB,CAAZ;AAEA,UAAM+C,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;AAEA4yB,YAAM,CAAC8d,WAAP,GAAqB9tC,SAAS,CAACE,IAAV,CAAevJ,MAAf,GAAwB,CAA7C;AAEA,WAAK6xD,2BAAL,GAAmCxoD,SAAS,CAACE,IAAV,CAAe8vB,MAAM,CAAC8d,WAAtB,CAAnC;AACD;AAED;;;;;;;;;;8BAOUvyC,S,EAAW;AAAA,UACXkD,aADW,GACgBlD,SADhB,CACXkD,aADW;AAAA,UACItL,OADJ,GACgBoI,SADhB,CACIpI,OADJ;AAEnB,UAAM6M,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B,CAFmB,CAInB;;AACA,UAAM4yB,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAMiE,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe8vB,MAAM,CAAC8d,WAAtB,CAAb;;AAEA,UAAI5tC,IAAI,CAAC/K,OAAL,CAAamxD,sBAAjB,EAAyC;AACvC;AACD;;AAED,UAAMmC,aAAa,GAAG,IAAIpb,kBAAJ,CAAuB5uC,aAAa,CAAC2C,KAArC,CAAtB,CAZmB,CAcnB;;AACA,UAAIlB,IAAI,CAAC/K,OAAL,CAAarC,MAAb,CAAoB6D,MAAxB,EAAgC;AAC9B;AACAuJ,YAAI,CAAC/K,OAAL,CAAarC,MAAb,CAAoBk9B,MAAM,CAAC9K,aAAP,GAAuB,CAA3C,EAA8CjuB,KAA9C,CAAoDwV,IAApD,CACEhO,aAAa,CAAC2C,KADhB;AAGD,OApBkB,CAsBnB;;;AACAlB,UAAI,CAAC/K,OAAL,CAAarC,MAAb,CAAoB2Z,IAApB,CAAyBg8C,aAAzB,EAvBmB,CAyBnB;;AACAz4B,YAAM,CAAC9K,aAAP,IAAwB,CAAxB,CA1BmB,CA4BnB;;AACA3xB,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACA,WAAKu1D,iBAAL,CAAuBv1D,OAAvB,EAAgC+M,IAAhC;AACD;AAED;;;;;;;;;;;;wCASoB3E,S,EAAWzI,M,EAAQ;AAAA;;AACrC,UAAMk9B,MAAM,GAAG,KAAK/zB,aAApB;AADqC,UAE7B9I,OAF6B,GAEjBoI,SAFiB,CAE7BpI,OAF6B;AAGrC,UAAMikC,UAAU,GAAGpH,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAAhD;;AAEA,UAAM42D,+BAA+B,GAAG,SAAlCA,+BAAkC,CAAA9yD,MAAM;AAAA,eAC5C,MAAI,CAAC+yD,4BAAL,CAAkCz1D,OAAlC,EAA2C0C,MAA3C,EAAmDuhC,UAAnD,CAD4C;AAAA,OAA9C;;AAGA,UAAItkC,MAAM,CAAC+1D,KAAP,CAAaF,+BAAb,CAAJ,EAAmD;AACjD,aAAKxjC,SAAL,CAAe5pB,SAAf;AACD;AACF;AAED;;;;;;;;;;;gCAQYpI,O,EAASi0D,Y,EAAc;AACjC,UAAMpnD,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;AACA,UAAM4yB,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAMiE,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe8vB,MAAM,CAAC8d,WAAtB,CAAb;AAEA5tC,UAAI,CAAClK,MAAL,GAAc,KAAd;AACAkK,UAAI,CAAC4C,SAAL,GAAiB,KAAjB;AACA5C,UAAI,CAAC/K,OAAL,CAAamxD,sBAAb,GAAsC,KAAtC,CAPiC,CASjC;;AACA,UAAIc,YAAY,KAAKx0D,SAArB,EAAgC;AAC9B,YAAME,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B;AAEAA,cAAM,CAACk9B,MAAM,CAAC9K,aAAP,GAAuB,CAAxB,CAAN,CAAiCjuB,KAAjC,CAAuCwV,IAAvC,CAA4C3Z,MAAM,CAAC,CAAD,CAAlD;AACD;;AAED,UAAI,KAAKqyD,UAAT,EAAqB;AACnB,aAAKA,UAAL,GAAkB,KAAlB;AACAjlD,YAAI,CAAC6C,WAAL,GAAmB,IAAnB;AACD,OAnBgC,CAqBjC;;;AACAitB,YAAM,CAAC9K,aAAP,GAAuB,CAAvB;AACA8K,YAAM,CAAC8d,WAAP,GAAqB,CAAC,CAAtB;AACA5tC,UAAI,CAACwmD,WAAL,GAAmB,KAAnB;;AAEA,UAAI,KAAKnhC,QAAT,EAAmB;AACjB,aAAKujC,eAAL,CAAqB31D,OAArB;AACD;;AAEDI,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA,WAAKu1D,iBAAL,CAAuBv1D,OAAvB,EAAgC+M,IAAhC;AACA,WAAK6oD,kBAAL,CAAwB51D,OAAxB,EAAiC+M,IAAjC;AACD;AAED;;;;;;;;;;;;qCASiB/M,O,EAAS+M,I,EAAM1B,M,EAAQ;AACtC,UAAI0B,IAAI,CAAC/K,OAAL,KAAiBvC,SAAjB,IAA8BsN,IAAI,CAAC/K,OAAL,CAAarC,MAAb,KAAwBF,SAA1D,EAAqE;AACnE;AACD;;AAED,UAAIsN,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B;AACD;;AAED,WAAK,IAAI1U,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuK,IAAI,CAAC/K,OAAL,CAAarC,MAAb,CAAoB6D,MAAxC,EAAgDhB,CAAC,EAAjD,EAAqD;AACnD,YAAM8qB,YAAY,GAAGltB,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CACnBN,OADmB,EAEnB+M,IAAI,CAAC/K,OAAL,CAAarC,MAAb,CAAoB6C,CAApB,CAFmB,CAArB;;AAKA,YAAIpC,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CAAwC2X,YAAxC,EAAsDjiB,MAAtD,IAAgE,CAApE,EAAuE;AACrE,iBAAO7I,CAAP;AACD;AACF,OAlBqC,CAoBtC;;;AACA,UAAIuK,IAAI,CAAC/K,OAAL,CAAayC,OAAjB,EAA0B;AACxB,YAAIqmB,gFAAsB,CAAC/d,IAAI,CAAC/K,OAAL,CAAayC,OAAd,EAAuB4G,MAAvB,CAA1B,EAA0D;AACxD,iBAAO0B,IAAI,CAAC/K,OAAL,CAAayC,OAApB;AACD;AACF;AACF;AAED;;;;;;;;;;6CAOyB2D,S,EAAW;AAAA,UAC1BkD,aAD0B,GACClD,SADD,CAC1BkD,aAD0B;AAAA,UACXtL,OADW,GACCoI,SADD,CACXpI,OADW;AAElC,UAAMqL,MAAM,GAAGC,aAAa,CAAC1E,MAA7B;AACA,UAAMiG,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;;AAEA,UAAI,CAAC4C,SAAL,EAAgB;AACd;AACD;;AAED,UAAIonD,YAAJ;;AAEA,WAAK,IAAI/lB,SAAS,GAAG,CAArB,EAAwBA,SAAS,GAAGrhC,SAAS,CAACE,IAAV,CAAevJ,MAAnD,EAA2D0qC,SAAS,EAApE,EAAwE;AACtE+lB,oBAAY,GAAG,KAAKpB,gBAAL,CACb7yD,OADa,EAEb6M,SAAS,CAACE,IAAV,CAAemhC,SAAf,CAFa,EAGb7iC,MAHa,CAAf;;AAKA,YAAI4oD,YAAY,KAAKx0D,SAArB,EAAgC;AAC9B,iBAAO;AACLw0D,wBAAY,EAAZA,YADK;AAEL/lB,qBAAS,EAATA;AAFK,WAAP;AAID;AACF;AACF;AAED;;;;;;;;;;sCAOkB9lC,S,EAAW;AAAA,UACnBkD,aADmB,GACMlD,SADN,CACnBkD,aADmB;AAAA,UACJ2C,KADI,GACM7F,SADN,CACJ6F,KADI,EAE3B;;AACA,UAAM4uB,MAAM,GAAG,KAAK/zB,aAApB;AAEA+zB,YAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCU,CAAnC,GAAuCgM,aAAa,CAAC2C,KAAd,CAAoB3O,CAA3D;AACAu9B,YAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA7B,CAAmCS,CAAnC,GAAuCiM,aAAa,CAAC2C,KAAd,CAAoB5O,CAA3D;AACAqsB,sEAAS,CAACmR,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAA9B,EAAqCqP,KAArC,CAAT;AACD;AAED;;;;;;;;;;;gDAQ4BlB,I,EAAM3E,S,EAAW;AAC3C,UAAI2E,IAAI,CAAC/K,OAAL,CAAarC,MAAb,CAAoB6D,MAApB,GAA6B,CAAjC,EAAoC;AAClC,eAAO,IAAP;AACD;;AAED,UAAI2vD,sBAAJ;;AAEA,UAAI,KAAKpB,SAAT,EAAoB;AAClBoB,8BAAsB,GAAG,KAAK0C,uBAAL,CAA6B9oD,IAA7B,EAAmC3E,SAAnC,CAAzB;AACD,OAFD,MAEO;AACL+qD,8BAAsB,GAAG,KAAK2C,wBAAL,CAA8B/oD,IAA9B,EAAoC3E,SAApC,CAAzB;AACD;;AAED2E,UAAI,CAAC/K,OAAL,CAAamxD,sBAAb,GAAsCA,sBAAtC;AACD;AAED;;;;;;;;;;;;6CASyBpmD,I,EAAM3E,S,EAAW;AACxC,UAAMy0B,MAAM,GAAG,KAAK/zB,aAApB;AADwC,UAEhC9I,OAFgC,GAEpBoI,SAFoB,CAEhCpI,OAFgC;AAGxC,UAAMikC,UAAU,GAAGpH,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAAhD;AACA,UAAMe,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B;AACA,UAAIwzD,sBAAsB,GAAG,KAA7B;AAEApmD,UAAI,CAACwmD,WAAL,GAAmB,KAAnB;;AAEA,UAAMwC,mBAAmB,GAAG,KAAKC,2CAAL,CAC1Bh2D,OAD0B,EAE1BL,MAAM,CAAC,CAAD,CAFoB,EAG1BskC,UAH0B,CAA5B;;AAMA,UACE8xB,mBAAmB,IACnB,CAACnE,iBAAiB,CAAC/yD,GAAlB,CAAsBc,MAAtB,CADD,IAEAA,MAAM,CAAC6D,MAAP,GAAgB,CAHlB,EAIE;AACAuJ,YAAI,CAACwmD,WAAL,GAAmB,IAAnB;AACAJ,8BAAsB,GAAG,KAAzB;AACD,OAPD,MAOO;AACLA,8BAAsB,GAAGvB,iBAAiB,CAACqE,SAAlB,CAA4BhyB,UAA5B,EAAwCtkC,MAAxC,CAAzB;AACD;;AAED,aAAOwzD,sBAAP;AACD;AAED;;;;;;;;;;;4CAQwBpmD,I,EAAM3E,S,EAAW;AACvC,UAAMy0B,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAMm7B,UAAU,GAAGpH,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAAhD;AACA,UAAMe,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B;AACA,UAAIwzD,sBAAsB,GAAGvB,iBAAiB,CAACqE,SAAlB,CAC3BhyB,UAD2B,EAE3BtkC,MAF2B,CAA7B;;AAKA,UAAIwzD,sBAAsB,KAAK,KAA/B,EAAsC;AACpCA,8BAAsB,GAAG,KAAK+C,wBAAL,CAA8BnpD,IAA9B,EAAoC3E,SAApC,CAAzB;AACD;;AAED,aAAO+qD,sBAAP;AACD;AAED;;;;;;;;;;;6CAQyBpmD,I,EAAM3E,S,EAAW;AACxC,UAAMy0B,MAAM,GAAG,KAAK/zB,aAApB;AADwC,UAEhC9I,OAFgC,GAEpBoI,SAFoB,CAEhCpI,OAFgC;AAGxC,UAAMikC,UAAU,GAAGpH,MAAM,CAACie,aAAP,CAAqB94C,OAArB,CAA6BpD,KAAhD;AACA,UAAMe,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B;;AAEA,UAAMo2D,mBAAmB,GAAG,KAAKC,2CAAL,CAC1Bh2D,OAD0B,EAE1BL,MAAM,CAAC,CAAD,CAFoB,EAG1BskC,UAH0B,CAA5B;;AAMA,UAAI8xB,mBAAJ,EAAyB;AACvBhpD,YAAI,CAACwmD,WAAL,GAAmB,IAAnB;AAEA,eAAO,KAAP;AACD;;AAEDxmD,UAAI,CAACwmD,WAAL,GAAmB,KAAnB,CAlBwC,CAoBxC;;AACA,WAAK,IAAI/wD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG7C,MAAM,CAAC6D,MAAP,GAAgB,CAApC,EAAuChB,CAAC,EAAxC,EAA4C;AAC1C,YAAI,KAAK2zD,6BAAL,CAAmCn2D,OAAnC,EAA4CL,MAAM,CAAC6C,CAAD,CAAlD,EAAuDyhC,UAAvD,CAAJ,EAAwE;AACtE,iBAAO,IAAP;AACD;AACF;;AAED,aAAO,KAAP;AACD;AAED;;;;;;;;;;;;;gEAU4CjkC,O,EAASo2D,E,EAAIC,E,EAAI;AAC3D,UAAMC,QAAQ,GAAGl2D,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4Co2D,EAA5C,CAAjB;AACA,UAAMG,QAAQ,GAAGn2D,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4Cq2D,EAA5C,CAAjB;AAEA,UAAI7C,oBAAJ;;AAEA,UAAI,KAAKgD,uBAAL,KAAiC,OAArC,EAA8C;AAC5ChD,4BAAoB,GAAG,KAAK1qD,aAAL,CAAmB0qD,oBAA1C;AACD,OAFD,MAEO,IAAI,KAAKgD,uBAAL,KAAiC,OAArC,EAA8C;AACnDhD,4BAAoB,GAAG,KAAK1qD,aAAL,CAAmB2tD,yBAA1C;AACD;;AAED,aAAO,KAAKC,yBAAL,CACL12D,OADK,EAELs2D,QAFK,EAGLC,QAHK,EAIL,GAJK,EAKL/C,oBALK,CAAP;AAOD;AAED;;;;;;;;;;;;;kDAU8BxzD,O,EAASo2D,E,EAAIC,E,EAAI;AAC7C,aAAO,KAAKK,yBAAL,CAA+B12D,OAA/B,EAAwCo2D,EAAxC,EAA4CC,EAA5C,EAAgD,GAAhD,CAAP;AACD;AAED;;;;;;;;;;;;;iDAU6Br2D,O,EAASo2D,E,EAAIC,E,EAAI;AAC5C,aAAO,KAAKK,yBAAL,CAA+B12D,OAA/B,EAAwCo2D,EAAxC,EAA4CC,EAA5C,EAAgD,GAAhD,CAAP;AACD;AAED;;;;;;;;;;;;;;;8CAaEr2D,O,EACAo2D,E,EACAC,E,EAGA;AAAA,UAFAM,UAEA,uEAFa,GAEb;AAAA,UADAC,OACA,uEADU,KAAK9tD,aAAL,CAAmB8tD,OAC7B;;AACA,UAAID,UAAU,KAAK,GAAnB,EAAwB;AACtB,eAAOv2D,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CAAwCygD,EAAxC,EAA4CC,EAA5C,IAAkDO,OAAzD;AACD;;AAED,aAAOx2D,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CAAwCygD,EAAxC,EAA4CC,EAA5C,IAAkDO,OAAzD;AACD;AAED;;;;;;;;;;;;kCASc52D,O,EAAoC;AAAA,UAA3Byc,eAA2B,uEAAT,OAAS;AAChD,WAAK2V,QAAL,GAAgB,IAAhB;AACA,WAAKokC,uBAAL,GAA+B/5C,eAA/B;AAEAlZ,4DAAK,CAAC2I,qBAAN,GAA8B,IAA9B;AACA2iC,qFAAc,CAAC,KAAK7uC,OAAN,CAAd,CALgD,CAOhD;;AACAA,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACkF,UAAhC,EAA4C,KAAK0jD,yBAAjD;AACAjyD,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACyF,UAAhC,EAA4C,KAAKojD,yBAAjD;AACAlyD,aAAO,CAACoJ,gBAAR,CACEC,kDAAM,CAACsF,kBADT,EAEE,KAAK0jD,gCAFP,EAVgD,CAehD;;AACAryD,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACuF,UAAhC,EAA4C,KAAKujD,yBAAjD;AACAnyD,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC2F,QAAhC,EAA0C,KAAKojD,uBAA/C,EAjBgD,CAmBhD;;AACApyD,aAAO,CAACoJ,gBAAR,CACEC,kDAAM,CAACwI,WADT,EAEE,KAAKqgD,yBAFP;AAIAlyD,aAAO,CAACoJ,gBAAR,CACEC,kDAAM,CAACwI,WADT,EAEE,KAAK2gD,0BAFP;AAKAxyD,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC2I,UAAhC,EAA4C,KAAKygD,yBAAjD;AACAzyD,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC4I,SAAhC,EAA2C,KAAKmgD,uBAAhD;AACApyD,aAAO,CAACoJ,gBAAR,CACEC,kDAAM,CAAC+I,UADT,EAEE,KAAKsgD,8BAFP;AAKAtyD,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;;oCAQgBA,O,EAAS;AACvB,WAAKoyB,QAAL,GAAgB,KAAhB;AACA7uB,4DAAK,CAAC2I,qBAAN,GAA8B,KAA9B;AACA,WAAKmpD,2BAAL,GAAmC,IAAnC;AACA,WAAKmB,uBAAL,GAA+B,IAA/B;AACApoB,oFAAa,CAAC,KAAKpuC,OAAN,EAAe,KAAKquC,SAApB,CAAb;AAEAruC,aAAO,CAACwJ,mBAAR,CACEH,kDAAM,CAACkF,UADT,EAEE,KAAK0jD,yBAFP;AAIAjyD,aAAO,CAACwJ,mBAAR,CACEH,kDAAM,CAACyF,UADT,EAEE,KAAKojD,yBAFP;AAIAlyD,aAAO,CAACwJ,mBAAR,CACEH,kDAAM,CAACsF,kBADT,EAEE,KAAK0jD,gCAFP;AAIAryD,aAAO,CAACwJ,mBAAR,CACEH,kDAAM,CAACuF,UADT,EAEE,KAAKujD,yBAFP;AAIAnyD,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC2F,QAAnC,EAA6C,KAAKojD,uBAAlD,EAvBuB,CAyBvB;;AACApyD,aAAO,CAACwJ,mBAAR,CACEH,kDAAM,CAACwI,WADT,EAEE,KAAK2gD,0BAFP;AAIAxyD,aAAO,CAACwJ,mBAAR,CACEH,kDAAM,CAAC2I,UADT,EAEE,KAAKygD,yBAFP;AAIAzyD,aAAO,CAACwJ,mBAAR,CACEH,kDAAM,CAACwI,WADT,EAEE,KAAKqgD,yBAFP;AAIAlyD,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC4I,SAAnC,EAA8C,KAAKmgD,uBAAnD;AAEAhyD,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;;oCAQgBA,O,EAAS;AACvBuD,4DAAK,CAAC6H,YAAN,GAAqB,IAArB;AAEApL,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC2F,QAAhC,EAA0C,KAAKsjD,oBAA/C;AACAtyD,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACuF,UAAhC,EAA4C,KAAK2jD,sBAAjD;AACAvyD,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACiF,WAAhC,EAA6C,KAAKgkD,oBAAlD;AAEAtyD,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC4I,SAAhC,EAA2C,KAAKqgD,oBAAhD;AACAtyD,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC2I,UAAhC,EAA4C,KAAK2gD,sBAAjD;AAEAvyD,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;;sCAQkBA,O,EAAS;AACzBuD,4DAAK,CAAC6H,YAAN,GAAqB,KAArB;AAEApL,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC2F,QAAnC,EAA6C,KAAKsjD,oBAAlD;AACAtyD,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAACuF,UAAnC,EAA+C,KAAK2jD,sBAApD;AACAvyD,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAACiF,WAAnC,EAAgD,KAAKgkD,oBAArD;AAEAtyD,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC4I,SAAnC,EAA8C,KAAKqgD,oBAAnD;AACAtyD,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC2I,UAAnC,EAA+C,KAAK2gD,sBAApD;AAEAvyD,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;;;oCAEeA,O,EAAS;AACvB,WAAK62D,mBAAL,CAAyB72D,OAAzB;AACD;;;oCAEeA,O,EAAS;AACvB,WAAK62D,mBAAL,CAAyB72D,OAAzB;AACD;;;qCAEgBA,O,EAAS;AACxB,WAAK62D,mBAAL,CAAyB72D,OAAzB;AACD;;;wCAEmBA,O,EAAS;AAC3B,UAAI,KAAKoyB,QAAT,EAAmB;AACjB;AACA,YAAMyK,MAAM,GAAG,KAAK/zB,aAApB;AACA,YAAMyrD,gBAAgB,GAAG13B,MAAM,CAAC9K,aAAhC;;AAEA,aAAKyiC,WAAL,CAAiBx0D,OAAjB,EAA0Bu0D,gBAA1B;;AACAn0D,mEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AACF;AAED;;;;;;;;;sCAMkBA,O,EAAS8J,e,EAAiB;AAC1C,UAAMU,SAAS,GAAGnB,kDAAM,CAACiY,oBAAzB;AACA,UAAMlZ,SAAS,GAAG;AAChBsC,gBAAQ,EAAE,KAAKT,IADC;AAEhBU,gBAAQ,EAAE,KAAKV,IAFC;AAEK;AACrBjK,eAAO,EAAPA,OAHgB;AAIhB8J,uBAAe,EAAfA;AAJgB,OAAlB;AAOAc,4EAAY,CAAC5K,OAAD,EAAUwK,SAAV,EAAqBpC,SAArB,CAAZ;AACD;;;uCAEkBpI,O,EAAS8J,e,EAAiB;AAC3C,UAAMU,SAAS,GAAGnB,kDAAM,CAACoB,qBAAzB;AACA,UAAMrC,SAAS,GAAG;AAChBsC,gBAAQ,EAAE,KAAKT,IADC;AAEhBU,gBAAQ,EAAE,KAAKV,IAFC;AAEK;AACrBjK,eAAO,EAAPA,OAHgB;AAIhB8J,uBAAe,EAAfA;AAJgB,OAAlB;AAOAc,4EAAY,CAAC5K,OAAD,EAAUwK,SAAV,EAAqBpC,SAArB,CAAZ;AACD,K,CAED;AACA;AACA;;;;;AA8EA;;;;;;;kCAOcpI,O,EAAS;AACrB,UAAI,CAAC,KAAKoyB,QAAV,EAAoB;AAClB;AACD;;AACD,UAAMvlB,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;AAEA,UAAM4yB,MAAM,GAAG,KAAK/zB,aAApB;AAEA,UAAMiE,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAe8vB,MAAM,CAAC8d,WAAtB,CAAb;AAEA5tC,UAAI,CAAClK,MAAL,GAAc,KAAd;AACAkK,UAAI,CAAC4C,SAAL,GAAiB,KAAjB;AACA5C,UAAI,CAAC/K,OAAL,CAAamxD,sBAAb,GAAsC,KAAtC,CAZqB,CAcrB;;AACAt2B,YAAM,CAAC9K,aAAP,GAAuB,CAAvB;AACA8K,YAAM,CAAC8d,WAAP,GAAqB,CAAC,CAAtB;AACA5tC,UAAI,CAACwmD,WAAL,GAAmB,KAAnB;AAEA1oD,2FAAe,CAAC7K,OAAD,EAAU,KAAKiK,IAAf,EAAqB8C,IAArB,CAAf;;AAEA,WAAK4oD,eAAL,CAAqB31D,OAArB;;AAEAI,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;qCAOiBmI,G,EAAK;AACpB,UAAM00B,MAAM,GAAG,KAAK/zB,aAApB;;AAEA,UAAI,EAAE,KAAKspB,QAAL,IAAiB,KAAKijC,2BAAxB,CAAJ,EAA0D;AACxD;AACD,OALmB,CAOpB;;;AAEA,UAAMr1D,OAAO,GAAGmI,GAAG,CAACE,MAAJ,CAAWrI,OAA3B;AACA,UAAM+M,IAAI,GAAG,KAAKsoD,2BAAlB;AAEAtoD,UAAI,CAAClK,MAAL,GAAc,KAAd;AACAkK,UAAI,CAAC4C,SAAL,GAAiB,KAAjB;AACA5C,UAAI,CAAC/K,OAAL,CAAamxD,sBAAb,GAAsC,KAAtC,CAdoB,CAgBpB;;AACA,UAAMxzD,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B;AAEAA,YAAM,CAACk9B,MAAM,CAAC9K,aAAP,GAAuB,CAAxB,CAAN,CAAiCjuB,KAAjC,CAAuCwV,IAAvC,CAA4C3Z,MAAM,CAAC,CAAD,CAAlD,EAnBoB,CAqBpB;;AACAk9B,YAAM,CAAC9K,aAAP,GAAuB,CAAvB;AACA8K,YAAM,CAAC8d,WAAP,GAAqB,CAAC,CAAtB;AACA5tC,UAAI,CAACwmD,WAAL,GAAmB,KAAnB;;AAEA,WAAKoC,eAAL,CAAqB31D,OAArB;;AAEAI,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;;;wBAjJa;AACZ,aAAO,KAAK8I,aAAL,CAAmB8tD,OAA1B;AACD,K;sBAEW9nC,K,EAAO;AACjB,UAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,cAAM,IAAIwF,KAAJ,CACJ,oEADI,CAAN;AAGD;;AAED,WAAKxrB,aAAL,CAAmB8tD,OAAnB,GAA6B9nC,KAA7B;AACA1uB,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC,KAAKlK,OAAtC;AACD;;;wBAEwB;AACvB,aAAO,KAAK8I,aAAL,CAAmBwqD,kBAA1B;AACD,K;sBAEsBxkC,K,EAAO;AAC5B,UAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,cAAM,IAAIwF,KAAJ,CACJ,+EADI,CAAN;AAGD;;AAED,WAAKxrB,aAAL,CAAmBwqD,kBAAnB,GAAwCxkC,KAAxC;AACA1uB,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC,KAAKlK,OAAtC;AACD;;;wBAE0B;AACzB,aAAO,KAAK8I,aAAL,CAAmB0qD,oBAA1B;AACD,K;sBAEwB1kC,K,EAAO;AAC9B,UAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,cAAM,IAAIwF,KAAJ,CACJ,iFADI,CAAN;AAGD;;AAED,WAAKxrB,aAAL,CAAmB0qD,oBAAnB,GAA0C1kC,KAA1C;AACA1uB,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC,KAAKlK,OAAtC;AACD;;;wBAEuB;AACtB,aAAO,KAAK8I,aAAL,CAAmBuqD,iBAA1B;AACD,K;sBAEqBvkC,K,EAAO;AAC3B,UAAI,OAAOA,KAAP,KAAiB,SAArB,EAAgC;AAC9B,cAAM,IAAIwF,KAAJ,CACJ,+EADI,CAAN;AAGD;;AAED,WAAKxrB,aAAL,CAAmBuqD,iBAAnB,GAAuCvkC,KAAvC;AACA1uB,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC,KAAKlK,OAAtC;AACD;;;wBAEkB;AACjB,aAAO,KAAK8I,aAAL,CAAmBsqD,YAA1B;AACD,K;sBAEgBtkC,K,EAAO;AACtB;;;;;;AAOA,WAAKhmB,aAAL,CAAmBsqD,YAAnB,GAAkCtkC,KAAlC;AACA1uB,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC,KAAKlK,OAAtC;AACD;;;;EAxqD0C6N,mE;;;;AAkvD7C,SAASgkD,4BAAT,GAAwC;AACtC,SAAO;AACL/W,iBAAa,EAAE;AACb94C,aAAO,EAAE;AACPpD,aAAK,EAAE;AACL+Q,mBAAS,EAAE,IADN;AAEL9M,gBAAM,EAAE;AAFH;AADA;AADI,KADV;AASL+zD,WAAO,EAAE,CATJ;AAULtD,sBAAkB,EAAE,CAVf;AAWLE,wBAAoB,EAAE,CAXjB;AAYLiD,6BAAyB,EAAE,EAZtB;AAaLpD,qBAAiB,EAAE,KAbd;AAcLD,gBAAY,EAAE,SAdT;AAeLrhC,iBAAa,EAAE,CAfV;AAgBL4oB,eAAW,EAAE,CAAC,CAhBT;AAiBLxwB,eAAW,EAAE,IAjBR;AAkBL8/B,gBAAY,EAAE;AAlBT,GAAP;AAoBD;;AAED,SAAStO,kBAAT,CAA4BxzC,GAA5B,EAAiC;AAC/BA,KAAG,CAAC8I,wBAAJ;AACA9I,KAAG,CAAC0B,eAAJ;AACA1B,KAAG,CAACyB,cAAJ;AACD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CC9zDD;;AACA;AACA;CAEA;;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMH,MAAM,GAAGC,kEAAS,CAAC,6BAAD,CAAxB;AAEA;;;;;;;;IAOqBiZ,U;;;;;AACnB,wBAAwB;AAAA;;AAAA,QAAZqe,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,QADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnB8+B,eAAS,EAAEyoB,+DAHQ;AAInBhuD,mBAAa,EAAE;AACbqhB,mBAAW,EAAE,IADA;AAEb6/B,0BAAkB,EAAE,KAFP;AAGblnD,2BAAmB,EAAE,KAHR;AAIbmnD,oBAAY,EAAE;AAJD;AAJI,KAArB;AAYA,8MAAMjpB,KAAN,EAAasW,YAAb;AAEA,UAAK6S,0BAAL,GAAkCj+B,+DAAQ,CAAC,MAAKsC,iBAAN,EAAyB,GAAzB,CAA1C;AAfsB;AAgBvB;;;;yCAEoBpmB,S,EAAW;AAC9B,UAAMolD,aAAa,GACjBplD,SAAS,IAAIA,SAAS,CAACkD,aAAvB,IAAwClD,SAAS,CAACkD,aAAV,CAAwB2C,KADlE;;AAGA,UAAI,CAACu/C,aAAL,EAAoB;AAClB/jD,cAAM,CAACorB,KAAP,mDAC6C,KAAK5qB,IADlD;AAIA;AACD;;AAV6B,kCAYb7B,SAAS,CAACkD,aAAV,CAAwB2C,KAZX;AAAA,UAYtB3O,CAZsB,yBAYtBA,CAZsB;AAAA,UAYnBD,CAZmB,yBAYnBA,CAZmB;AAc9B,aAAO;AACL6X,eAAO,EAAE,IADJ;AAELrU,cAAM,EAAE,IAFH;AAGL/D,aAAK,EAAEW,SAHF;AAILmQ,mBAAW,EAAE,IAJR;AAKL5N,eAAO,EAAE;AACPpD,eAAK,EAAE;AACLU,aAAC,EAADA,CADK;AAELD,aAAC,EAADA,CAFK;AAGLsQ,qBAAS,EAAE,IAHN;AAIL9M,kBAAM,EAAE;AAJH,WADA;AAOPhE,aAAG,EAAE;AACHS,aAAC,EAADA,CADG;AAEHD,aAAC,EAADA,CAFG;AAGHsQ,qBAAS,EAAE,IAHR;AAIH9M,kBAAM,EAAE;AAJL,WAPE;AAaP4B,iBAAO,EAAE;AACP5B,kBAAM,EAAE,KADD;AAEPoC,oBAAQ,EAAE,KAFH;AAGPspB,8BAAkB,EAAE,KAHb;AAIP5rB,8BAAkB,EAAE,IAJb;AAKPkqB,+BAAmB,EAAE,IALd;AAMPQ,0BAAc,EAAE;AANT;AAbF;AALJ,OAAP;AA4BD;AAED;;;;;;;;;;;kCAQcrtB,O,EAAS+M,I,EAAM1B,M,EAAQ;AACnC,UAAMoiD,qBAAqB,GACzB1gD,IAAI,IAAIA,IAAI,CAAC/K,OAAb,IAAwB+K,IAAI,CAAC/K,OAAL,CAAapD,KAArC,IAA8CmO,IAAI,CAAC/K,OAAL,CAAanD,GAD7D;AAEA,UAAMkyD,eAAe,GAAGtD,qBAAxB;;AAEA,UAAI,CAACsD,eAAL,EAAsB;AACpBtnD,cAAM,CAACmlB,IAAP,+CACyC,KAAK3kB,IAD9C;AAIA,eAAO,KAAP;AACD;;AAED,UAAI8C,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B,eAAO,KAAP;AACD;;AAED,aACEqU,yEAAe,CAACvrB,OAAD,EAAU+M,IAAI,CAAC/K,OAAL,CAAapD,KAAvB,EAA8BmO,IAAI,CAAC/K,OAAL,CAAanD,GAA3C,EAAgDwM,MAAhD,CAAf,GACA,EAFF;AAID;;;sCAEiB4C,K,EAAOjO,O,EAAS+M,I,EAAM;AAAA,6BACO8e,sEAAe,CAAC5d,KAAD,CADtB;AAAA,UAC9BuI,eAD8B,oBAC9BA,eAD8B;AAAA,UACb2uC,eADa,oBACbA,eADa,EAGtC;;;AACA,UAAM4R,EAAE,GACN,CAAChqD,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBS,CAAjB,GAAqByN,IAAI,CAAC/K,OAAL,CAAapD,KAAb,CAAmBU,CAAzC,KAA+C6lD,eAAe,IAAI,CAAlE,CADF;AAEA,UAAM6R,EAAE,GACN,CAACjqD,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBQ,CAAjB,GAAqB0N,IAAI,CAAC/K,OAAL,CAAapD,KAAb,CAAmBS,CAAzC,KAA+CmX,eAAe,IAAI,CAAlE,CADF,CANsC,CAStC;;AACA,UAAMhT,MAAM,GAAGrE,IAAI,CAACmf,IAAL,CAAUy4C,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAzB,CAAf,CAVsC,CAYtC;;AACAjqD,UAAI,CAACvJ,MAAL,GAAcA,MAAd;AACAuJ,UAAI,CAAC6C,WAAL,GAAmB,KAAnB;AACD;;;mCAEczH,G,EAAK;AAAA;;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADkB,gCAOd,KAAKS,aAPS;AAAA,UAGhBxF,YAHgB,uBAGhBA,YAHgB;AAAA,UAIhB0mD,kBAJgB,uBAIhBA,kBAJgB;AAAA,UAKhBlnD,mBALgB,uBAKhBA,mBALgB;AAAA,UAMhBmnD,YANgB,uBAMhBA,YANgB;AAQlB,UAAMz5C,QAAQ,GAAG5H,kFAAY,CAACT,GAAG,CAAC2R,aAAL,EAAoB,KAAK7P,IAAzB,CAA7B;;AAEA,UAAI,CAACuG,QAAL,EAAe;AACb;AACD,OAZiB,CAclB;;;AACA,UAAMhS,OAAO,GAAGyW,uEAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;AAfkB,UAgBVqH,KAhBU,GAgBS7F,SAhBT,CAgBV6F,KAhBU;AAAA,UAgBHjO,OAhBG,GAgBSoI,SAhBT,CAgBHpI,OAhBG;;AAAA,8BAiB2B6rB,sEAAe,CAAC5d,KAAD,CAjB1C;AAAA,UAiBVuI,eAjBU,qBAiBVA,eAjBU;AAAA,UAiBO2uC,eAjBP,qBAiBOA,eAjBP;;AAmBlB,UAAMpmD,SAAS,GAAGiE,qEAAS,CAACE,YAAV,EAAlB;AACA,UAAMlE,QAAQ,GAAGiJ,+DAAS,CAAC,qBAAD,CAAT,CAAiCa,aAAjC,CAA+C9J,QAAhE;;AApBkB,iCAsBTwD,CAtBS;AAuBhB,YAAMuK,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAb;;AAEA,YAAIuK,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B;AACD;;AAED5Q,sEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvB;AACAorB,6EAAS,CAACprB,OAAD,EAAU,MAAI,CAACsK,aAAf,CAAT;AAEA,cAAMhK,KAAK,GAAGoD,sEAAU,CAACm+B,gBAAX,CAA4BtzB,IAA5B,CAAd;AAEA,cAAMi+C,WAAW,GAAG;AAAElsD,iBAAK,EAALA;AAAF,WAApB;;AAEA,cAAImrD,YAAJ,EAAkB;AAChBe,uBAAW,CAAChsD,QAAZ,GAAuBA,QAAvB;AACD,WAVsB,CAYvB;;;AACAQ,4EAAQ,CACNhB,OADM,EAENwB,OAFM,EAGN+M,IAAI,CAAC/K,OAAL,CAAapD,KAHP,EAINmO,IAAI,CAAC/K,OAAL,CAAanD,GAJP,EAKNmsD,WALM,CAAR,CAbuB,CAqBvB;;AACA,cAAMC,aAAa,GAAG;AACpBnsD,iBAAK,EAALA,KADoB;AAEpBwE,wBAAY,EAAZA,YAFoB;AAGpBV,+BAAmB,EAAEonD,kBAHD;AAIpBlnD,+BAAmB,EAAnBA;AAJoB,WAAtB;;AAOA,cAAI,MAAI,CAACgG,aAAL,CAAmBqhB,WAAvB,EAAoC;AAClCA,oFAAW,CAAC3rB,OAAD,EAAU4J,SAAV,EAAqB2E,IAAI,CAAC/K,OAA1B,EAAmCipD,aAAnC,CAAX;AACD;;AAED,cAAI,CAACl+C,IAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBQ,QAA1B,EAAoC;AAClC,gBAAMoG,MAAM,GAAG;AACb/L,eAAC,EAAEH,IAAI,CAACkH,GAAL,CAAS0G,IAAI,CAAC/K,OAAL,CAAapD,KAAb,CAAmBU,CAA5B,EAA+ByN,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBS,CAAhD;AADU,aAAf,CADkC,CAKlC;AACA;;AACA,gBAAI+L,MAAM,CAAC/L,CAAP,KAAayN,IAAI,CAAC/K,OAAL,CAAapD,KAAb,CAAmBU,CAApC,EAAuC;AACrC+L,oBAAM,CAAChM,CAAP,GAAW0N,IAAI,CAAC/K,OAAL,CAAapD,KAAb,CAAmBS,CAA9B;AACD,aAFD,MAEO;AACLgM,oBAAM,CAAChM,CAAP,GAAW0N,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBQ,CAA5B;AACD;;AAED0N,gBAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBnF,CAArB,GAAyB+L,MAAM,CAAC/L,CAAhC;AACAyN,gBAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBpF,CAArB,GAAyBgM,MAAM,CAAChM,CAAhC;AACD,WAhDsB,CAkDvB;AACA;;;AACA,cAAMuF,OAAO,GAAG,EAAhB,CApDuB,CAsDvB;;AACA,cAAImI,IAAI,CAAC6C,WAAL,KAAqB,IAAzB,EAA+B;AAC7B,gBAAI7C,IAAI,CAACvJ,MAAT,EAAiB;AACf,oBAAI,CAAC2mD,0BAAL,CAAgCl8C,KAAhC,EAAuCjO,OAAvC,EAAgD+M,IAAhD;AACD,aAFD,MAEO;AACL,oBAAI,CAACyhB,iBAAL,CAAuBvgB,KAAvB,EAA8BjO,OAA9B,EAAuC+M,IAAvC;AACD;AACF;;AAED,cAAMrI,IAAI,GAAGwmD,WAAW,CAACn+C,IAAD,EAAOyJ,eAAP,EAAwB2uC,eAAxB,CAAxB;AAEAj7B,wFAAiB,CACf1rB,OADe,EAEfwB,OAFe,EAGf+M,IAAI,CAAC/K,OAAL,CAAayC,OAHE,EAIfC,IAJe,EAKfqI,IAAI,CAAC/K,OALU,EAMf2C,mBANe,EAOf7F,KAPe,EAQfC,SARe,EASf6F,OATe,EAUf,IAVe,CAAjB;AAYD,SA7EG,CAAJ;AA7BgB;;AAsBlB,WAAK,IAAIpC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAAA,yBAAtCA,CAAsC;;AAAA,iCAI3C;AAiFH,OA3GiB,CA6GlB;;;AACA,eAAS0oD,WAAT,CAAqBr9B,UAArB,EAAiCrX,eAAjC,EAAkD2uC,eAAlD,EAAmE;AACjE,YAAM8R,aAAa,GAAGC,sBAAsB,CAACrpC,UAAU,CAACrqB,MAAZ,CAA5C,CADiE,CAGjE;;;AACA,YAAI,CAACyzD,aAAL,EAAoB;AAClB,iBAAO,EAAP;AACD,SANgE,CAQjE;;;AACA,YAAIzL,MAAM,GAAG,IAAb;;AAEA,YAAI,CAACh1C,eAAD,IAAoB,CAAC2uC,eAAzB,EAA0C;AACxCqG,gBAAM,GAAG,QAAT;AACD;;AAED39B,kBAAU,CAACwgC,IAAX,GAAkB7C,MAAlB;AAEA,yBAAUyL,aAAa,CAACvd,OAAd,CAAsB,CAAtB,CAAV,cAAsC8R,MAAtC;AACD;;AAED,eAAS7mD,mBAAT,CAA6B3C,OAA7B,EAAsC;AACpC,YAAMoqD,QAAQ,GAAG;AACf9sD,WAAC,EAAE,CAAC0C,OAAO,CAACpD,KAAR,CAAcU,CAAd,GAAkB0C,OAAO,CAACnD,GAAR,CAAYS,CAA/B,IAAoC,CADxB;AAEfD,WAAC,EAAE,CAAC2C,OAAO,CAACpD,KAAR,CAAcS,CAAd,GAAkB2C,OAAO,CAACnD,GAAR,CAAYQ,CAA/B,IAAoC;AAFxB,SAAjB;AAKA,eAAO,CAAC2C,OAAO,CAACpD,KAAT,EAAgBwtD,QAAhB,EAA0BpqD,OAAO,CAACnD,GAAlC,CAAP;AACD;AACF;;;;EAzPqCgP,mE;AA4PxC;;;;;;;;;;;AAOA,SAASqpD,sBAAT,CAAgCpoC,KAAhC,EAAuC;AACrC,MAAMqoC,WAAW,GAAGjhC,MAAM,CAACpH,KAAD,CAA1B;AACA,MAAMsoC,QAAQ,GAAG,CAACvT,KAAK,CAACsT,WAAD,CAAvB;AAEA,SAAOC,QAAQ,GAAGD,WAAH,GAAiB13D,SAAhC;AACD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtSD;CAEA;;AACA;AACA;CAEA;;AACA;AACA;CAEA;;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMgK,MAAM,GAAGC,kEAAS,CAAC,4BAAD,CAAxB;AAEA;;;;;;;;;IAQqBkZ,S;;;;;AACnB,uBAAwB;AAAA;;AAAA,QAAZoe,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,OADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnB8+B,eAAS,EAAEsK,8DAHQ;AAInB7vC,mBAAa,EAAE;AACbqhB,mBAAW,EAAE,IADA;AAEb8/B,oBAAY,EAAE;AAFD;AAJI,KAArB;AAUA,6MAAMjpB,KAAN,EAAasW,YAAb;AAEA,UAAK6S,0BAAL,GAAkCj+B,+DAAQ,CAAC,MAAKsC,iBAAN,EAAyB,GAAzB,CAA1C;AAbsB;AAcvB;;;;yCAEoBpmB,S,EAAW;AAC9B,UAAMolD,aAAa,GACjBplD,SAAS,IAAIA,SAAS,CAACkD,aAAvB,IAAwClD,SAAS,CAACkD,aAAV,CAAwB2C,KADlE;;AAGA,UAAI,CAACu/C,aAAL,EAAoB;AAClB/jD,cAAM,CAACorB,KAAP,mDAC6C,KAAK5qB,IADlD;AAIA;AACD;;AAED,aAAO;AACLiN,eAAO,EAAE,IADJ;AAELrU,cAAM,EAAE,IAFH;AAGL/D,aAAK,EAAEW,SAHF;AAILmQ,mBAAW,EAAE,IAJR;AAKL5N,eAAO,EAAE;AACPnD,aAAG,EAAE;AACHS,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD9B;AAEHD,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF9B;AAGHsQ,qBAAS,EAAE,IAHR;AAIH9M,kBAAM,EAAE;AAJL;AADE;AALJ,OAAP;AAcD;AAED;;;;;;;;;;;kCAQc7C,O,EAAS+M,I,EAAM1B,M,EAAQ;AACnC,UAAMgsD,YAAY,GAAGtqD,IAAI,IAAIA,IAAI,CAAC/K,OAAb,IAAwB+K,IAAI,CAAC/K,OAAL,CAAanD,GAA1D;AACA,UAAMkyD,eAAe,GAAGsG,YAAxB;;AAEA,UAAI,CAACtG,eAAL,EAAsB;AACpBtnD,cAAM,CAACmlB,IAAP,+CACyC,KAAK3kB,IAD9C;AAGD;;AAED,UAAI,CAAC8mD,eAAD,IAAoBhkD,IAAI,CAACmK,OAAL,KAAiB,KAAzC,EAAgD;AAC9C,eAAO,KAAP;AACD;;AAED,UAAMogD,WAAW,GAAGl3D,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAClBN,OADkB,EAElB+M,IAAI,CAAC/K,OAAL,CAAanD,GAFK,CAApB;AAKA,aAAOuB,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CAAwC2hD,WAAxC,EAAqDjsD,MAArD,IAA+D,CAAtE;AACD;;;sCAEiB4C,K,EAAOjO,O,EAAS+M,I,EAAM;AACtC,UAAMzN,CAAC,GAAGH,IAAI,CAACi7B,KAAL,CAAWrtB,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBS,CAA5B,CAAV;AACA,UAAMD,CAAC,GAAGF,IAAI,CAACi7B,KAAL,CAAWrtB,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBQ,CAA5B,CAAV;AAEA,UAAM6qC,KAAK,GAAG,EAAd;;AAEA,UAAI5qC,CAAC,IAAI,CAAL,IAAUD,CAAC,IAAI,CAAf,IAAoBC,CAAC,GAAG2O,KAAK,CAACskB,OAA9B,IAAyClzB,CAAC,GAAG4O,KAAK,CAACsG,IAAvD,EAA6D;AAC3D21B,aAAK,CAAC5qC,CAAN,GAAUA,CAAV;AACA4qC,aAAK,CAAC7qC,CAAN,GAAUA,CAAV;;AAEA,YAAI4O,KAAK,CAACnP,KAAV,EAAiB;AACforC,eAAK,CAAC+O,YAAN,GAAqBjuB,sEAAY,CAAChrB,OAAD,EAAUV,CAAV,EAAaD,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,CAAjC;AACD,SAFD,MAEO;AACL6qC,eAAK,CAAC+O,YAAN,GAAqB74C,2DAAQ,CAACC,WAAT,CAAqB84C,eAArB,CACnBn5C,OADmB,EAEnBV,CAFmB,EAGnBD,CAHmB,EAInB,CAJmB,EAKnB,CALmB,CAArB;AAOA6qC,eAAK,CAACkP,EAAN,GAAWlP,KAAK,CAAC+O,YAAN,CAAmB,CAAnB,CAAX;AACA/O,eAAK,CAACmP,EAAN,GAAWnP,KAAK,CAACkP,EAAN,GAAWnrC,KAAK,CAACqrC,KAAjB,GAAyBrrC,KAAK,CAACsrC,SAA1C;AACArP,eAAK,CAACsP,GAAN,GAAYlvB,sEAAY,CAACrc,KAAD,EAAQi8B,KAAK,CAACkP,EAAd,CAAxB;AACD;AACF;;AAEDrsC,UAAI,CAAC8gD,WAAL,GAAmB3jB,KAAnB;AACAn9B,UAAI,CAAC6C,WAAL,GAAmB,KAAnB;AACD;;;mCAEczH,G,EAAK;AAAA;;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADkB,gCAEqB,KAAKS,aAF1B;AAAA,UAEVxF,YAFU,uBAEVA,YAFU;AAAA,UAEI2mD,YAFJ,uBAEIA,YAFJ;AAGlB,UAAMz5C,QAAQ,GAAG5H,kFAAY,CAACT,GAAG,CAAC2R,aAAL,EAAoB,KAAK7P,IAAzB,CAA7B;;AAEA,UAAI,CAACuG,QAAL,EAAe;AACb;AACD,OAPiB,CASlB;;;AACA,UAAMhS,OAAO,GAAGyW,wEAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;AAVkB,UAWVqH,KAXU,GAWS7F,SAXT,CAWV6F,KAXU;AAAA,UAWHjO,OAXG,GAWSoI,SAXT,CAWHpI,OAXG;AAYlB,UAAMg5C,UAAU,GAAGxzC,qEAAS,CAACS,WAAV,EAAnB;AACA,UAAMjH,QAAQ,GAAGiJ,+DAAS,CAAC,qBAAD,CAAT,CAAiCa,aAAjC,CAA+C9J,QAAhE;;AAbkB,iCAeTwD,CAfS;AAgBhB,YAAMuK,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAb;;AAEA,YAAIuK,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B;AACD;;AAED5Q,uEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvB,cAAMM,KAAK,GAAGoD,sEAAU,CAACm+B,gBAAX,CAA4BtzB,IAA5B,CAAd;;AAEA,cAAI,MAAI,CAACjE,aAAL,CAAmBqhB,WAAvB,EAAoC;AAClC;AACA,gBAAI8gC,aAAa,GAAG;AAAE3nD,0BAAY,EAAZA,YAAF;AAAgBxE,mBAAK,EAALA;AAAhB,aAApB;;AAEA,gBAAImrD,YAAJ,EAAkB;AAChBgB,2BAAa,CAACjsD,QAAd,GAAyBA,QAAzB;AACD;;AAEDmrB,oFAAW,CAAC3rB,OAAD,EAAU4J,SAAV,EAAqB2E,IAAI,CAAC/K,OAA1B,EAAmCipD,aAAnC,CAAX;AACD,WAZsB,CAcvB;;;AACA,cAAIl+C,IAAI,CAAC6C,WAAL,KAAqB,IAAzB,EAA+B;AAC7B,gBAAI7C,IAAI,CAAC8gD,WAAT,EAAsB;AACpB,oBAAI,CAAC1D,0BAAL,CAAgCl8C,KAAhC,EAAuCjO,OAAvC,EAAgD+M,IAAhD;AACD,aAFD,MAEO;AACL,oBAAI,CAACyhB,iBAAL,CAAuBvgB,KAAvB,EAA8BjO,OAA9B,EAAuC+M,IAAvC;AACD;AACF;;AAED,cAAIrI,IAAJ,EAAUw0C,GAAV;AAvBuB,kCAyBqBnsC,IAAI,CAAC8gD,WAzB1B;AAAA,cAyBfvuD,CAzBe,qBAyBfA,CAzBe;AAAA,cAyBZD,CAzBY,qBAyBZA,CAzBY;AAAA,cAyBT45C,YAzBS,qBAyBTA,YAzBS;AAAA,cAyBKG,EAzBL,qBAyBKA,EAzBL;AAAA,cAyBSC,EAzBT,qBAyBSA,EAzBT;AAAA,cAyBaG,GAzBb,qBAyBaA,GAzBb;;AA2BvB,cAAIl6C,CAAC,IAAI,CAAL,IAAUD,CAAC,IAAI,CAAf,IAAoBC,CAAC,GAAG2O,KAAK,CAACskB,OAA9B,IAAyClzB,CAAC,GAAG4O,KAAK,CAACsG,IAAvD,EAA6D;AAC3D7P,gBAAI,aAAMpF,CAAN,eAAYD,CAAZ,CAAJ;;AAEA,gBAAI4O,KAAK,CAACnP,KAAV,EAAiB;AACfo6C,iBAAG,gBAASD,YAAY,CAAC,CAAD,CAArB,iBAA+BA,YAAY,CAAC,CAAD,CAA3C,iBACDA,YAAY,CAAC,CAAD,CADX,CAAH;AAGD,aAJD,MAIO;AACL;AACAC,iBAAG,iBAAUE,EAAV,kBAAoBK,UAAU,CAACJ,EAAE,CAACK,OAAH,CAAW,CAAX,CAAD,CAA9B,CAAH;;AACA,kBAAIF,GAAJ,EAAS;AACPN,mBAAG,oBAAaO,UAAU,CAACD,GAAG,CAACE,OAAJ,CAAY,CAAZ,CAAD,CAAvB,CAAH;AACD;AACF,aAb0D,CAe3D;;;AACA,gBAAMruC,MAAM,GAAG;AACb;AACA/L,eAAC,EAAEyN,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBS,CAAjB,GAAqB,CAFX;AAGbD,eAAC,EAAE0N,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBQ,CAAjB,GAAqB;AAHX,aAAf;AAKA,gBAAMyF,UAAU,GAAG1E,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CACjB8H,SAAS,CAACpI,OADO,EAEjBqL,MAFiB,CAAnB;AAKArG,oFAAW,CACTxG,OADS,EAET06C,GAFS,EAGTp0C,UAAU,CAACxF,CAHF,EAITwF,UAAU,CAACzF,CAAX,GAAe25C,UAAf,GAA4B,CAJnB,EAKTl6C,KALS,CAAX;AAOAkG,oFAAW,CAACxG,OAAD,EAAUkG,IAAV,EAAgBI,UAAU,CAACxF,CAA3B,EAA8BwF,UAAU,CAACzF,CAAzC,EAA4CP,KAA5C,CAAX;AACD;AACF,SA9DG,CAAJ;AAtBgB;;AAelB,WAAK,IAAI0D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAAA,yBAAtCA,CAAsC;;AAAA,iCAI3C;AAkEH;AACF;;;;EA/LoCqL,mE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5BvC;CAGA;;AACA;AACA;CAGA;;CAUA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMpE,MAAM,GAAGC,kEAAS,CAAC,mCAAD,CAAxB;AAEA;;;;;;;;;IAQqBmZ,gB;;;;;AACnB,8BAAwB;AAAA;;AAAA,QAAZme,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,cADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnBzG,mBAAa,EAAE;AACbqhB,mBAAW,EAAE,IADA;AAEb6/B,0BAAkB,EAAE,KAFP;AAGblnD,2BAAmB,EAAE,KAHR;AAIbmnD,oBAAY,EAAE,KAJD,CAKb;AACA;;AANa,OAHI;AAWnB5b,eAAS,EAAEkpB,qEAAkBA;AAXV,KAArB;AAcA,oNAAMv2B,KAAN,EAAasW,YAAb;AAEA,UAAK6S,0BAAL,GAAkCj+B,kEAAQ,CAAC,MAAKsC,iBAAN,EAAyB,GAAzB,CAA1C;AAjBsB;AAkBvB;;;;yCAEoBpmB,S,EAAW;AAC9B,UAAMolD,aAAa,GACjBplD,SAAS,IAAIA,SAAS,CAACkD,aAAvB,IAAwClD,SAAS,CAACkD,aAAV,CAAwB2C,KADlE;;AAGA,UAAI,CAACu/C,aAAL,EAAoB;AAClB/jD,cAAM,CAACorB,KAAP,mDAC6C,KAAK5qB,IADlD;AAIA;AACD;;AAED,aAAO;AACLiN,eAAO,EAAE,IADJ;AAELrU,cAAM,EAAE,IAFH;AAGL/D,aAAK,EAAEW,SAHF;AAILmQ,mBAAW,EAAE,IAJR;AAKL5N,eAAO,EAAE;AACPpD,eAAK,EAAE;AACLU,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD5B;AAELD,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF5B;AAGLsQ,qBAAS,EAAE,IAHN;AAIL9M,kBAAM,EAAE;AAJH,WADA;AAOPhE,aAAG,EAAE;AACHS,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD9B;AAEHD,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF9B;AAGHsQ,qBAAS,EAAE,IAHR;AAIH9M,kBAAM,EAAE;AAJL,WAPE;AAaPlC,yBAAe,EAAEyH,SAAS,CAACxH,QAAV,CAAmBQ,QAb7B;AAcPqD,iBAAO,EAAE;AACP5B,kBAAM,EAAE,KADD;AAEPoC,oBAAQ,EAAE,KAFH;AAGPspB,8BAAkB,EAAE,KAHb;AAIP5rB,8BAAkB,EAAE,IAJb;AAKPkqB,+BAAmB,EAAE,IALd;AAMPQ,0BAAc,EAAE;AANT;AAdF;AALJ,OAAP;AA6BD;;;kCAEartB,O,EAAS+M,I,EAAM1B,M,EAAQoR,e,EAAiB;AACpD,UAAMgxC,qBAAqB,GACzB1gD,IAAI,IAAIA,IAAI,CAAC/K,OAAb,IAAwB+K,IAAI,CAAC/K,OAAL,CAAapD,KAArC,IAA8CmO,IAAI,CAAC/K,OAAL,CAAanD,GAD7D;AAEA,UAAMkyD,eAAe,GAAGtD,qBAAxB;;AAEA,UAAI,CAACsD,eAAL,EAAsB;AACpBtnD,cAAM,CAACmlB,IAAP,+CACyC,KAAK3kB,IAD9C;AAGD;;AAED,UAAI,CAAC8mD,eAAD,IAAoBhkD,IAAI,CAACmK,OAAL,KAAiB,KAAzC,EAAgD;AAC9C,eAAO,KAAP;AACD;;AAED,UAAMvB,QAAQ,GAAG8G,eAAe,KAAK,OAApB,GAA8B,EAA9B,GAAmC,EAApD;AACA,UAAM+T,WAAW,GAAGpwB,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAClBN,OADkB,EAElB+M,IAAI,CAAC/K,OAAL,CAAapD,KAFK,CAApB;AAIA,UAAM6xB,SAAS,GAAGrwB,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAChBN,OADgB,EAEhB+M,IAAI,CAAC/K,OAAL,CAAanD,GAFG,CAAlB;AAKA,UAAM8H,IAAI,GAAG;AACXpC,YAAI,EAAEpF,IAAI,CAACwC,GAAL,CAAS6uB,WAAW,CAAClxB,CAArB,EAAwBmxB,SAAS,CAACnxB,CAAlC,CADK;AAEXkF,WAAG,EAAErF,IAAI,CAACwC,GAAL,CAAS6uB,WAAW,CAACnxB,CAArB,EAAwBoxB,SAAS,CAACpxB,CAAlC,CAFM;AAGXyB,aAAK,EAAE3B,IAAI,CAACmC,GAAL,CAASkvB,WAAW,CAAClxB,CAAZ,GAAgBmxB,SAAS,CAACnxB,CAAnC,CAHI;AAIX0B,cAAM,EAAE7B,IAAI,CAACmC,GAAL,CAASkvB,WAAW,CAACnxB,CAAZ,GAAgBoxB,SAAS,CAACpxB,CAAnC;AAJG,OAAb;AAOA,UAAMm4D,eAAe,GAAGp3D,2DAAQ,CAAC+D,eAAT,CAAyBwC,IAAzB,CAA8B6wD,eAA9B,CACtB7wD,IADsB,EAEtB0E,MAFsB,CAAxB;AAKA,aAAOmsD,eAAe,GAAG7hD,QAAzB;AACD;;;sCAEiB1H,K,EAAOjO,O,EAAS+M,I,EAAM;AACtC,UAAM8sC,YAAY,GAChBz5C,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CAAkC,qBAAlC,EAAyDpvB,KAAK,CAACgmB,OAA/D,KACA,EAFF;AAGA,UAAM6lB,QAAQ,GAAGD,YAAY,CAACC,QAA9B;AACA,UAAMqT,YAAY,GAAGthC,sEAAe,CAAC5d,KAAD,CAApC;;AAEA,UAAMi8B,KAAK,GAAG0jB,eAAe,CAC3B3/C,KAD2B,EAE3BjO,OAF2B,EAG3B+M,IAAI,CAAC/K,OAHsB,EAI3B83C,QAJ2B,EAK3BqT,YAL2B,CAA7B;;AAQApgD,UAAI,CAAC8gD,WAAL,GAAmB3jB,KAAnB;AACAn9B,UAAI,CAAC6C,WAAL,GAAmB,KAAnB;AACD;;;mCAEczH,G,EAAK;AAAA;;AAClB,UAAMqI,QAAQ,GAAG5H,kFAAY,CAACT,GAAG,CAAC2R,aAAL,EAAoB,KAAK7P,IAAzB,CAA7B;;AAEA,UAAI,CAACuG,QAAL,EAAe;AACb;AACD;;AAED,UAAMpI,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAPkB,UAQV4F,KARU,GAQS7F,SART,CAQV6F,KARU;AAAA,UAQHjO,OARG,GAQSoI,SART,CAQHpI,OARG;AASlB,UAAMjB,SAAS,GAAGiE,qEAAS,CAACE,YAAV,EAAlB;AACA,UAAMlE,QAAQ,GAAGiJ,+DAAS,CAAC,qBAAD,CAAT,CAAiCa,aAAjC,CAA+C9J,QAAhE;AAVkB,gCAgBd,KAAK8J,aAhBS;AAAA,UAYhBxF,YAZgB,uBAYhBA,YAZgB;AAAA,UAahB0mD,kBAbgB,uBAahBA,kBAbgB;AAAA,UAchBlnD,mBAdgB,uBAchBA,mBAdgB;AAAA,UAehBmnD,YAfgB,uBAehBA,YAfgB;AAiBlB,UAAMzrD,OAAO,GAAGyW,wEAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;;AAjBkB,6BAkB2BilB,sEAAe,CAAC5d,KAAD,CAlB1C;AAAA,UAkBVuI,eAlBU,oBAkBVA,eAlBU;AAAA,UAkBO2uC,eAlBP,oBAkBOA,eAlBP,EAoBlB;;;AACA,UAAMtL,YAAY,GAChBz5C,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CAAkC,qBAAlC,EAAyDpvB,KAAK,CAACgmB,OAA/D,KACA,EAFF,CArBkB,CAyBlB;;AACA,UAAM6lB,QAAQ,GAAGD,YAAY,CAACC,QAA9B;AACA,UAAMiU,eAAe,GAAGv3C,eAAe,IAAI2uC,eAA3C;AAEA7+C,qEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvB;AACA,aAAK,IAAIgE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAC7C,cAAMuK,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAb;;AAEA,cAAIuK,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B;AACD,WAL4C,CAO7C;;;AACA,cAAMpY,KAAK,GAAGoD,sEAAU,CAACm+B,gBAAX,CAA4BtzB,IAA5B,CAAd;AACA,cAAMk+C,aAAa,GAAG;AACpBnsD,iBAAK,EAALA,KADoB;AAEpBwE,wBAAY,EAAZA,YAFoB;AAGpBV,+BAAmB,EAAEonD,kBAHD;AAIpBlnD,+BAAmB,EAAnBA;AAJoB,WAAtB;AAOA8mB,8EAAS,CAACprB,OAAD,EAAU,MAAI,CAACsK,aAAf,CAAT;AAEA,cAAM2uD,WAAW,GAAG;AAAE34D,iBAAK,EAALA;AAAF,WAApB;;AAEA,cAAImrD,YAAJ,EAAkB;AAChBwN,uBAAW,CAACz4D,QAAZ,GAAuBA,QAAvB;AACD,WAtB4C,CAwB7C;;;AACA+qB,6EAAQ,CACNvrB,OADM,EAENwB,OAFM,EAGN+M,IAAI,CAAC/K,OAAL,CAAapD,KAHP,EAINmO,IAAI,CAAC/K,OAAL,CAAanD,GAJP,EAKN44D,WALM,EAMN,OANM,EAON1qD,IAAI,CAAC/K,OAAL,CAAarB,eAPP,CAAR;;AAUA,cAAI,MAAI,CAACmI,aAAL,CAAmBqhB,WAAvB,EAAoC;AAClCA,kFAAW,CAAC3rB,OAAD,EAAU4J,SAAV,EAAqB2E,IAAI,CAAC/K,OAA1B,EAAmCipD,aAAnC,CAAX;AACD,WArC4C,CAuC7C;;;AACA,cAAIl+C,IAAI,CAAC6C,WAAL,KAAqB,IAAzB,EAA+B;AAC7B,gBAAI7C,IAAI,CAAC8gD,WAAT,EAAsB;AACpB,oBAAI,CAAC1D,0BAAL,CAAgCl8C,KAAhC,EAAuCjO,OAAvC,EAAgD+M,IAAhD;AACD,aAFD,MAEO;AACL,oBAAI,CAACyhB,iBAAL,CAAuBvgB,KAAvB,EAA8BjO,OAA9B,EAAuC+M,IAAvC;AACD;AACF,WA9C4C,CAgD7C;;;AACA,cAAI,CAACA,IAAI,CAAC/K,OAAL,CAAayC,OAAb,CAAqBQ,QAA1B,EAAoC;AAClC,gBAAMgpD,aAAa,GAAG5jC,6EAAmB,CACvCjiB,SAAS,CAACxH,QAD6B,EAEvCmM,IAAI,CAAC/K,OAFkC,CAAzC;AAKAM,kBAAM,CAAC8lB,MAAP,CAAcrb,IAAI,CAAC/K,OAAL,CAAayC,OAA3B,EAAoCwpD,aAApC;AACD;;AAED,cAAMtpD,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAA3C,OAAO;AAAA,mBACjCksD,wBAAwB,CAAClsD,OAAO,CAACpD,KAAT,EAAgBoD,OAAO,CAACnD,GAAxB,CADS;AAAA,WAAnC;;AAEA,cAAMsvD,cAAc,GAAGC,qBAAqB,CAC1C5vD,OAD0C,EAE1CyP,KAAK,CAACnP,KAFoC,EAG1CiO,IAAI,CAAC8gD,WAHqC,EAI1C/T,QAJ0C,EAK1CiU,eAL0C,EAM1C,MAAI,CAACjlD,aANqC,CAA5C;;AASAiE,cAAI,CAACshD,IAAL,GAAYC,QAAQ,CAACxU,QAAD,EAAW,MAAI,CAAChxC,aAAL,CAAmBylD,mBAA9B,CAApB;AAEArkC,sFAAiB,CACf1rB,OADe,EAEfwB,OAFe,EAGf+M,IAAI,CAAC/K,OAAL,CAAayC,OAHE,EAIf0pD,cAJe,EAKfphD,IAAI,CAAC/K,OALU,EAMf2C,mBANe,EAOf7F,KAPe,EAQfC,SARe,EASf,EATe,EAUf,IAVe,CAAjB;AAYD;AACF,OAtFG,CAAJ;AAuFD;;;;EA/O2C8O,mE;AAkP9C;;;;;;;;;;;;AAQA,SAAS6pD,6BAAT,CAAuClJ,WAAvC,EAAoDC,SAApD,EAA+D;AAC7D,SAAO;AACLlqD,QAAI,EAAEpF,IAAI,CAACwC,GAAL,CAAS6sD,WAAW,CAAClvD,CAArB,EAAwBmvD,SAAS,CAACnvD,CAAlC,CADD;AAELkF,OAAG,EAAErF,IAAI,CAACwC,GAAL,CAAS6sD,WAAW,CAACnvD,CAArB,EAAwBovD,SAAS,CAACpvD,CAAlC,CAFA;AAGLyB,SAAK,EAAE3B,IAAI,CAACmC,GAAL,CAASktD,WAAW,CAAClvD,CAAZ,GAAgBmvD,SAAS,CAACnvD,CAAnC,CAHF;AAIL0B,UAAM,EAAE7B,IAAI,CAACmC,GAAL,CAASktD,WAAW,CAACnvD,CAAZ,GAAgBovD,SAAS,CAACpvD,CAAnC;AAJH,GAAP;AAMD;AAED;;;;;;;;;;;;AAUA,SAASuuD,eAAT,CAAyB3/C,KAAzB,EAAgCjO,OAAhC,EAAyCgC,OAAzC,EAAkD83C,QAAlD,EAA4DqT,YAA5D,EAA0E;AACxE;AACA,MAAMwK,cAAc,GAAGD,6BAA6B,CAClD11D,OAAO,CAACpD,KAD0C,EAElDoD,OAAO,CAACnD,GAF0C,CAApD,CAFwE,CAOxE;;;AACA,MAAM4Y,MAAM,GAAGrX,2DAAQ,CAACC,WAAT,CAAqBqvD,SAArB,CACb1vD,OADa,EAEb23D,cAAc,CAACpzD,IAFF,EAGbozD,cAAc,CAACnzD,GAHF,EAIbmzD,cAAc,CAAC72D,KAJF,EAKb62D,cAAc,CAAC32D,MALF,CAAf,CARwE,CAgBxE;;AACA,MAAM42D,aAAa,GAAGC,wBAAwB,CAACpgD,MAAD,EAASkgD,cAAT,CAA9C;;AAEA,MAAI/I,aAAJ;;AAEA,MAAI9U,QAAQ,KAAK,IAAjB,EAAuB;AACrB8U,iBAAa,GAAG;AACd5jB,UAAI,EAAE1gB,sEAAY,CAACrc,KAAD,EAAQ2pD,aAAa,CAAC5sB,IAAtB,EAA4B,IAA5B,CAAZ,IAAiD,CADzC;AAEdC,YAAM,EAAE3gB,sEAAY,CAACrc,KAAD,EAAQ2pD,aAAa,CAAC3sB,MAAtB,EAA8B,IAA9B,CAAZ,IAAmD;AAF7C,KAAhB;AAID,GA1BuE,CA4BxE;;;AACA,MAAMgV,IAAI,GACR0X,cAAc,CAAC72D,KAAf,IACCqsD,YAAY,CAAChI,eAAb,IAAgC,CADjC,KAECwS,cAAc,CAAC32D,MAAf,IAAyBmsD,YAAY,CAAC32C,eAAb,IAAgC,CAAzD,CAFD,CADF;AAKA,SAAO;AACLypC,QAAI,EAAEA,IAAI,IAAI,CADT;AAEL4P,SAAK,EAAE+H,aAAa,CAAC/H,KAAd,IAAuB,CAFzB;AAGL7kB,QAAI,EAAE4sB,aAAa,CAAC5sB,IAAd,IAAsB,CAHvB;AAIL8kB,YAAQ,EAAE8H,aAAa,CAAC9H,QAAd,IAA0B,CAJ/B;AAKL7kB,UAAM,EAAE2sB,aAAa,CAAC3sB,MAAd,IAAwB,CAL3B;AAMLtpC,OAAG,EAAEi2D,aAAa,CAACj2D,GAAd,IAAqB,CANrB;AAOL0E,OAAG,EAAEuxD,aAAa,CAACvxD,GAAd,IAAqB,CAPrB;AAQLuoD,iBAAa,EAAbA;AARK,GAAP;AAUD;AAED;;;;;;;;;AAOA,SAASiJ,wBAAT,CAAkCze,EAAlC,EAAsC0e,SAAtC,EAAiD;AAC/C,MAAIxgC,GAAG,GAAG,CAAV;AACA,MAAIygC,UAAU,GAAG,CAAjB;AACA,MAAIlI,KAAK,GAAG,CAAZ;AACA,MAAI/oD,KAAK,GAAG,CAAZ;AACA,MAAInF,GAAG,GAAGy3C,EAAE,GAAGA,EAAE,CAAC,CAAD,CAAL,GAAW,IAAvB;AACA,MAAI/yC,GAAG,GAAG+yC,EAAE,GAAGA,EAAE,CAAC,CAAD,CAAL,GAAW,IAAvB;;AAEA,OAAK,IAAI/5C,CAAC,GAAGy4D,SAAS,CAACtzD,GAAvB,EAA4BnF,CAAC,GAAGy4D,SAAS,CAACtzD,GAAV,GAAgBszD,SAAS,CAAC92D,MAA1D,EAAkE3B,CAAC,EAAnE,EAAuE;AACrE,SAAK,IAAIC,CAAC,GAAGw4D,SAAS,CAACvzD,IAAvB,EAA6BjF,CAAC,GAAGw4D,SAAS,CAACvzD,IAAV,GAAiBuzD,SAAS,CAACh3D,KAA5D,EAAmExB,CAAC,EAApE,EAAwE;AACtEg4B,SAAG,IAAI8hB,EAAE,CAACtyC,KAAD,CAAT;AACAixD,gBAAU,IAAI3e,EAAE,CAACtyC,KAAD,CAAF,GAAYsyC,EAAE,CAACtyC,KAAD,CAA5B;AACAnF,SAAG,GAAGxC,IAAI,CAACwC,GAAL,CAASA,GAAT,EAAcy3C,EAAE,CAACtyC,KAAD,CAAhB,CAAN;AACAT,SAAG,GAAGlH,IAAI,CAACkH,GAAL,CAASA,GAAT,EAAc+yC,EAAE,CAACtyC,KAAD,CAAhB,CAAN;AACA+oD,WAAK,GALiE,CAK7D;;AACT/oD,WAAK;AACN;AACF;;AAED,MAAI+oD,KAAK,KAAK,CAAd,EAAiB;AACf,WAAO;AACLA,WAAK,EAALA,KADK;AAEL7kB,UAAI,EAAE,GAFD;AAGL8kB,cAAQ,EAAE,GAHL;AAIL7kB,YAAM,EAAE,GAJH;AAKLtpC,SAAG,EAAE,GALA;AAML0E,SAAG,EAAE;AANA,KAAP;AAQD;;AAED,MAAM2kC,IAAI,GAAG1T,GAAG,GAAGu4B,KAAnB;AACA,MAAMC,QAAQ,GAAGiI,UAAU,GAAGlI,KAAb,GAAqB7kB,IAAI,GAAGA,IAA7C;AAEA,SAAO;AACL6kB,SAAK,EAALA,KADK;AAEL7kB,QAAI,EAAJA,IAFK;AAGL8kB,YAAQ,EAARA,QAHK;AAIL7kB,UAAM,EAAE9rC,IAAI,CAACmf,IAAL,CAAUwxC,QAAV,CAJH;AAKLnuD,OAAG,EAAHA,GALK;AAML0E,OAAG,EAAHA;AANK,GAAP;AAQD;AAED;;;;;;;;;AAOA,SAAS6nD,wBAAT,CAAkCM,WAAlC,EAA+CC,SAA/C,EAA0D;AAAA,8BACnBiJ,6BAA6B,CAChElJ,WADgE,EAEhEC,SAFgE,CADV;AAAA,MAChDlqD,IADgD,yBAChDA,IADgD;AAAA,MAC1CC,GAD0C,yBAC1CA,GAD0C;AAAA,MACrC1D,KADqC,yBACrCA,KADqC;AAAA,MAC9BE,MAD8B,yBAC9BA,MAD8B;;AAMxD,SAAO,CACL;AACE;AACA1B,KAAC,EAAEiF,IAAI,GAAGzD,KAAK,GAAG,CAFpB;AAGEzB,KAAC,EAAEmF;AAHL,GADK,EAML;AACE;AACAlF,KAAC,EAAEiF,IAFL;AAGElF,KAAC,EAAEmF,GAAG,GAAGxD,MAAM,GAAG;AAHpB,GANK,EAWL;AACE;AACA1B,KAAC,EAAEiF,IAAI,GAAGzD,KAAK,GAAG,CAFpB;AAGEzB,KAAC,EAAEmF,GAAG,GAAGxD;AAHX,GAXK,EAgBL;AACE;AACA1B,KAAC,EAAEiF,IAAI,GAAGzD,KAFZ;AAGEzB,KAAC,EAAEmF,GAAG,GAAGxD,MAAM,GAAG;AAHpB,GAhBK,CAAP;AAsBD;AAED;;;;;;;;;AAOA,SAASwuD,WAAT,CAAqBvP,IAArB,EAA2B8N,eAA3B,EAA4C;AAC1C;AACA,MAAMvC,MAAM,GAAGuC,eAAe,gBACpBtC,MAAM,CAACC,YAAP,CAAoB,GAApB,CADoB,iBAEpBD,MAAM,CAACC,YAAP,CAAoB,GAApB,CAFoB,CAA9B;AAIA,yBAAgBpgC,2EAAiB,CAAC20B,IAAI,CAACvG,OAAL,CAAa,CAAb,CAAD,CAAjC,SAAqD8R,MAArD;AACD;;AAED,SAAS8C,QAAT,CAAkBxU,QAAlB,EAA4ByU,mBAA5B,EAAiD;AAC/C,SAAOzU,QAAQ,KAAK,IAAb,IAAqByU,mBAAmB,KAAK,KAA7C,GAAqD,IAArD,GAA4D,EAAnE;AACD;AAED;;;;;;;;;;;;;;AAYA,SAASH,qBAAT,CACE5vD,OADF,EAEEmwD,YAFF,QAIE7U,QAJF,EAKEiU,eALF,EAOE;AAAA,MAJE9N,IAIF,QAJEA,IAIF;AAAA,MAJQjV,IAIR,QAJQA,IAIR;AAAA,MAJcC,MAId,QAJcA,MAId;AAAA,MAJsBtpC,GAItB,QAJsBA,GAItB;AAAA,MAJ2B0E,GAI3B,QAJ2BA,GAI3B;AAAA,MAJgCuoD,aAIhC,QAJgCA,aAIhC;AAAA,MADArvD,OACA,uEADU,EACV;AACA,MAAMsvD,UAAU,GAAGtvD,OAAO,CAACsvD,UAAR,IAAsB,KAAzC;AACA,MAAMjpD,SAAS,GAAG,EAAlB;AAEA,MAAMkpD,UAAU,GAAG,EAAnB;;AAEA,MAAI,CAACH,YAAL,EAAmB;AACjB,QAAMI,uBAAuB,GAAGH,aAAa,IAAIA,aAAa,CAAC5jB,IAAd,KAAuB,CAAxE;;AACA,QAAMqjB,IAAI,GAAGC,QAAQ,CAACxU,QAAD,EAAWv6C,OAAO,CAACgvD,mBAAnB,CAArB;;AAEA,QAAIS,UAAU,mBAAY1jC,2EAAiB,CAAC0f,IAAI,CAAC0O,OAAL,CAAa,CAAb,CAAD,CAA7B,cAAkD2U,IAAlD,CAAd;AACA,QAAMY,YAAY,sBAAe3jC,2EAAiB,CAChD2f,MAAM,CAACyO,OAAP,CAAe,CAAf,CADgD,CAAhC,cAEb2U,IAFa,CAAlB,CALiB,CASjB;;AACA,QAAIU,uBAAJ,EAA6B;AAC3B,UAAMG,OAAO,GAAG,QAAhB;AAEA,UAAMC,aAAa,aAAMD,OAAN,SAAgB5jC,2EAAiB,CAClDsjC,aAAa,CAAC5jB,IAAd,CAAmB0O,OAAnB,CAA2B,CAA3B,CADkD,CAAjC,CAAnB;AAGA,UAAM0V,eAAe,aAAMF,OAAN,SAAgB5jC,2EAAiB,CACpDsjC,aAAa,CAAC3jB,MAAd,CAAqByO,OAArB,CAA6B,CAA7B,CADoD,CAAjC,CAArB;AAIA,UAAM2V,kBAAkB,GAAGlwD,IAAI,CAACkY,KAAL,CACzB7Y,OAAO,CAACmH,WAAR,WAAuBspD,YAAvB,YAA4CnuD,KADnB,CAA3B;;AAIA,aAAOtC,OAAO,CAACmH,WAAR,CAAoBqpD,UAApB,EAAgCluD,KAAhC,GAAwCuuD,kBAA/C,EAAmE;AACjEL,kBAAU,IAAI,GAAd;AACD;;AAEDF,gBAAU,CAACx1C,IAAX,WAAmB01C,UAAnB,SAAgCG,aAAhC;AACAL,gBAAU,CAACx1C,IAAX,WAAmB21C,YAAnB,kBAAuCG,eAAvC;AACD,KApBD,MAoBO;AACLN,gBAAU,CAACx1C,IAAX,WAAmB01C,UAAnB,kBAAqCC,YAArC;AACD;;AAED,QAAIJ,UAAJ,EAAgB;AACd,UAAIS,SAAS,kBAAW3tD,GAAX,cAAkB0sD,IAAlB,CAAb;AACA,UAAMkB,SAAS,kBAAWlpD,GAAX,cAAkBgoD,IAAlB,CAAf;;AACA,UAAMgB,mBAAkB,GAAGN,uBAAuB,GAC9C5vD,IAAI,CAACkY,KAAL,CAAW7Y,OAAO,CAACmH,WAAR,WAAuBspD,YAAvB,YAA4CnuD,KAAvD,CAD8C,GAE9C3B,IAAI,CAACkY,KAAL,CAAW7Y,OAAO,CAACmH,WAAR,WAAuBqpD,UAAvB,YAA0CluD,KAArD,CAFJ;;AAIA,aAAOtC,OAAO,CAACmH,WAAR,CAAoB2pD,SAApB,EAA+BxuD,KAA/B,GAAuCuuD,mBAA9C,EAAkE;AAChEC,iBAAS,IAAI,GAAb;AACD;;AAEDR,gBAAU,CAACx1C,IAAX,WAAmBg2C,SAAnB,SAA+BC,SAA/B;AACD;AACF;;AAED3pD,WAAS,CAAC0T,IAAV,CAAek2C,WAAW,CAACvP,IAAD,EAAO8N,eAAP,CAA1B;AACAe,YAAU,CAAClrD,OAAX,CAAmB,UAAAtE,CAAC;AAAA,WAAIsG,SAAS,CAAC0T,IAAV,CAAeha,CAAf,CAAJ;AAAA,GAApB;AAEA,SAAOsG,SAAP;AACD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1hBD;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAEA;;;;;;;;;IAQqBkd,c;;;;;AACnB,4BAAwB;AAAA;;AAAA,QAAZke,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,YADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnBzG,mBAAa,EAAE;AACby5C,eAAO,EAAE,EADI;AAEbyV,eAAO,EAAE,EAFI;AAGbC,iBAAS,EAAE,IAHE;AAIbn/B,YAAI,EAAE,KAJO;AAKbizB,0BAAkB,EAAlBA;AALa,OAHI;AAUnB1d,eAAS,EAAE6pB,mEAAgBA;AAVR,KAArB;AAaA,kNAAMl3B,KAAN,EAAasW,YAAb;AACA,UAAK6gB,kBAAL,GAA0B,MAAKC,WAAL,CAAiBptD,IAAjB,4FAA1B;AACA,UAAKqtD,mBAAL,GAA2B,MAAKD,WAAL,CAAiBptD,IAAjB,4FAA3B;AAhBsB;AAiBvB;;;;yCAEoB5C,S,EAAW;AAC9B,UAAMy0B,MAAM,GAAG,KAAK/zB,aAApB;;AAEA,UAAI,CAAC+zB,MAAM,CAACm7B,OAAZ,EAAqB;AACnB;AACD,OAL6B,CAO9B;;;AACA,UAAMluD,eAAe,GAAG;AACtBoN,eAAO,EAAE,IADa;AAEtBrU,cAAM,EAAE,IAFc;AAGtB6B,YAAI,EAAEm4B,MAAM,CAACm7B,OAHS;AAItBl5D,aAAK,EAAEW,SAJe;AAKtBuC,eAAO,EAAE;AACPnD,aAAG,EAAE;AACHS,aAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAD9B;AAEHD,aAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAF9B;AAGHsQ,qBAAS,EAAE,IAHR;AAIH9M,kBAAM,EAAE,IAJL;AAKHwqB,0BAAc,EAAE;AALb;AADE;AALa,OAAxB,CAR8B,CAwB9B;;AACA,UAAMV,SAAS,GAAG;AAChBpoB,YAAI,EAAE,CADU;AAEhBC,WAAG,EAAE,CAFW;AAGhB1D,aAAK,EAAEsH,SAAS,CAAC6F,KAAV,CAAgBnN,KAHP;AAIhBE,cAAM,EAAEoH,SAAS,CAAC6F,KAAV,CAAgBjN;AAJR,OAAlB,CAzB8B,CAgC9B;AACA;;AACA,UACE,CAACZ,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+B0oB,UAA/B,CACChjB,eAAe,CAAC9H,OAAhB,CAAwBnD,GADzB,EAEC8tB,SAFD,CADH,EAKE;AACA;AACD,OAzC6B,CA2C9B;;;AACA,UAAImP,YAAY,GAAGe,MAAM,CAAC0lB,OAAP,CAAe3nB,OAAf,CAAuBiC,MAAM,CAACm7B,OAA9B,CAAnB;AAEA,UAAMM,SAAS,GAAGz7B,MAAM,CAACo7B,SAAP,GAAmB,CAAnB,GAAuB,CAAC,CAA1C;AAEAn8B,kBAAY,IAAIw8B,SAAhB;;AAEA,UAAIx8B,YAAY,IAAIe,MAAM,CAAC0lB,OAAP,CAAe/+C,MAAnC,EAA2C;AACzCs4B,oBAAY,GAAGe,MAAM,CAAC/D,IAAP,GAAc,CAAd,GAAkB,CAAC,CAAlC;AACD,OAFD,MAEO,IAAIgD,YAAY,GAAG,CAAnB,EAAsB;AAC3BA,oBAAY,GAAGe,MAAM,CAAC/D,IAAP,GAAc+D,MAAM,CAAC0lB,OAAP,CAAe/+C,MAA7B,GAAsC,CAAC,CAAtD;AACD;;AAEDq5B,YAAM,CAACm7B,OAAP,GAAiBn7B,MAAM,CAAC0lB,OAAP,CAAezmB,YAAf,CAAjB;AAEA,aAAOhyB,eAAP;AACD;;;kCAEa9J,O,EAAS+M,I,EAAM1B,M,EAAQ;AACnC,UAAI0B,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B,eAAO,KAAP;AACD;;AAED,UAAI,CAACnK,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBqF,WAAtB,EAAmC;AACjC;AACD;;AAED,UAAMszD,eAAe,GAAGp3D,2DAAQ,CAAC+D,eAAT,CAAyBwC,IAAzB,CAA8B6wD,eAA9B,CACtBzqD,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBqF,WADK,EAEtBmH,MAFsB,CAAxB;AAIA,UAAMktD,iBAAiB,GAAGztC,+EAAsB,CAAC/d,IAAI,CAAC/K,OAAL,CAAanD,GAAd,EAAmBwM,MAAnB,CAAhD;AAEA,aAAOmsD,eAAe,GAAG,EAAlB,IAAwBe,iBAA/B;AACD;;;wCAEmB,CAClB;AACD;;;mCAEcpwD,G,EAAK;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAMw0B,MAAM,GAAG,KAAK/zB,aAApB,CAFkB,CAIlB;;AACA,UAAM0H,QAAQ,GAAG5H,mFAAY,CAACR,SAAS,CAACpI,OAAX,EAAoB,KAAKiK,IAAzB,CAA7B;;AAEA,UAAI,CAACuG,QAAL,EAAe;AACb;AACD,OATiB,CAWlB;;;AACA,UAAMhS,OAAO,GAAGyW,wEAAa,CAAC7M,SAAS,CAACkN,aAAV,CAAwB1O,MAAzB,CAA7B;;AAZkB,iCAcTpE,CAdS;AAehB,YAAMuK,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAb;;AAEA,YAAIuK,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B;AACD;;AAED,YAAMpY,KAAK,GAAGoD,sEAAU,CAACm+B,gBAAX,CAA4BtzB,IAA5B,CAAd;AAEAzG,uEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvBorB,8EAAS,CAACprB,OAAD,EAAUq+B,MAAV,CAAT;AAEA,cAAM/3B,UAAU,GAAG1E,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CACjB8H,SAAS,CAACpI,OADO,EAEjB+M,IAAI,CAAC/K,OAAL,CAAanD,GAFI,CAAnB;AAKA,cAAMU,OAAO,GAAG;AACdwF,qBAAS,EAAE;AACTzF,eAAC,EAAE,IADM;AAETD,eAAC,EAAE;AAFM;AADG,WAAhB;AAOA0N,cAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBqF,WAAjB,GAA+Bc,wEAAW,CACxCxG,OADwC,EAExCuO,IAAI,CAACrI,IAFmC,EAGxCI,UAAU,CAACxF,CAH6B,EAIxCwF,UAAU,CAACzF,CAAX,GAAe,EAJyB,EAKxCP,KALwC,EAMxCS,OANwC,CAA1C;AAQD,SAvBG,CAAJ;AAvBgB;;AAclB,WAAK,IAAIiD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAAA,yBAAtCA,CAAsC;;AAAA,iCAI3C;AA6BH;AACF;;;gCAEW2F,G,EAAK;AACf,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADe,UAEPrI,OAFO,GAEoBoI,SAFpB,CAEPpI,OAFO;AAAA,UAEEsL,aAFF,GAEoBlD,SAFpB,CAEEkD,aAFF;AAGf,UAAIyB,IAAJ;;AAEA,eAAS0/C,wBAAT,CAAkC1/C,IAAlC,EAAwCw/C,WAAxC,EAAqDC,UAArD,EAAiE;AAC/D,YAAIA,UAAU,KAAK,IAAnB,EAAyB;AACvB3hD,gGAAe,CAAC7K,OAAD,EAAU,KAAKiK,IAAf,EAAqB8C,IAArB,CAAf;AACD,SAFD,MAEO;AACLA,cAAI,CAACrI,IAAL,GAAY6nD,WAAZ;AACD;;AAEDx/C,YAAI,CAAClK,MAAL,GAAc,KAAd;AACAzC,mEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;;AAED,UAAM68B,MAAM,GAAG,KAAK/zB,aAApB;AACA,UAAMuC,MAAM,GAAGC,aAAa,CAAC1E,MAA7B;AACA,UAAM4J,QAAQ,GAAG5H,mFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA7B,CAlBe,CAoBf;;AACA,UAAI,CAACuG,QAAL,EAAe;AACb;AACD;;AAED,WAAK,IAAIhO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAC7CuK,YAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAP;;AACA,YAAI,KAAK2K,aAAL,CAAmBnN,OAAnB,EAA4B+M,IAA5B,EAAkC1B,MAAlC,CAAJ,EAA+C;AAC7C0B,cAAI,CAAClK,MAAL,GAAc,IAAd;AACAzC,qEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC,EAF6C,CAI7C;;AACA68B,gBAAM,CAACkvB,kBAAP,CAA0Bh/C,IAA1B,EAAgC3E,SAAhC,EAA2CqkD,wBAA3C;AAEAtkD,aAAG,CAAC8I,wBAAJ;AACA9I,aAAG,CAACyB,cAAJ;AACAzB,aAAG,CAAC0B,eAAJ;AAEA;AACD;AACF;AACF;;;;EAlMyCgE,mE;AAqM5C;;;;;;;;;;;;;;AAUA,IAAMk+C,kBAAkB,GAAG,SAArBA,kBAAqB,CAACh/C,IAAD,EAAO3E,SAAP,EAAkBqkD,wBAAlB,EAA+C;AACxE;AACAA,0BAAwB,CAAC1/C,IAAD,EAAO2/C,MAAM,CAAC,yBAAD,CAAb,CAAxB;AACD,CAHD;AAKA;;;;;;;;;;;;;;;;ACxOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AAEe,yEAASvkD,GAAT,EAAcsU,eAAd,EAA+B;AAAA;;AAC5C,MAAMrU,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD4C,MAEpCrI,OAFoC,GAERoI,SAFQ,CAEpCpI,OAFoC;AAAA,MAE3BiO,KAF2B,GAER7F,SAFQ,CAE3B6F,KAF2B;AAAA,MAEpBjC,OAFoB,GAER5D,SAFQ,CAEpB4D,OAFoB;AAI5C,MAAM6wB,MAAM,GAAG,KAAK/zB,aAApB;;AAEA,MAAI0vD,iBAAiB,CAACvqD,KAAD,CAArB,EAA8B;AAC5B;AACD;;AAED,MAAMnE,eAAe,GAAG,KAAKC,oBAAL,CAA0B3B,SAA1B,CAAxB;;AAEA,MAAM+rB,YAAY,GAAG,SAAfA,YAAe,GAAM;AACzBrqB,mBAAe,CAACjH,MAAhB,GAAyB,KAAzB;AACAzC,+DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD,GAHD,CAZ4C,CAiB5C;;;AACAgK,oFAAY,CAAChK,OAAD,EAAU,KAAKiK,IAAf,EAAqBH,eAArB,CAAZ;AACA1J,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA,MAAMy4D,SAAS,GAAG,IAAIr8C,IAAJ,GAAWs8C,OAAX,EAAlB;AArB4C,8BAsBR5uD,eAAe,CAAC9H,OAtBR;AAAA,MAsBpCnD,GAtBoC,yBAsBpCA,GAtBoC;AAAA,MAsB/B85D,kBAtB+B,yBAsB/BA,kBAtB+B;AAwB5CtuD,8EAAa,CACXjC,SADW,EAEX,KAAK6B,IAFM,EAGXH,eAHW,EAIXjL,GAJW,EAKX,EALW,EAMX4d,eANW,EAOX,UAAAnS,OAAO,EAAI;AACT,QAAI,CAACA,OAAL,EAAc;AACZO,2FAAe,CAAC7K,OAAD,EAAU,KAAI,CAACiK,IAAf,EAAqBH,eAArB,CAAf;AAEA;AACD;;AALQ,QAMD9H,OANC,GAM8C8H,eAN9C,CAMD9H,OANC;AAAA,QAMQqrD,eANR,GAM8CvjD,eAN9C,CAMQujD,eANR;AAAA,QAMyBC,gBANzB,GAM8CxjD,eAN9C,CAMyBwjD,gBANzB;AAOT,QAAMsL,iBAAiB,GAAG9oD,uFAAsB,CAAC1H,SAAD,EAAYpG,OAAZ,CAAhD;AACA,QAAM62D,mBAAmB,GAAGpf,UAAU,CAAC4T,eAAD,CAAV,IAA+B,CAA3D;AACA,QAAMyL,oBAAoB,GAAGrf,UAAU,CAAC6T,gBAAD,CAAV,IAAgC,CAA7D;AACA,QAAMyL,SAAS,GAAGF,mBAAmB,GAAG,CAAtB,IAA2BC,oBAAoB,GAAG,CAApE;AACA,QAAME,SAAS,GAAG,IAAI58C,IAAJ,GAAWs8C,OAAX,KAAuBD,SAAvB,GAAmC,GAArD;;AAEA,QAAIG,iBAAiB,IAAIG,SAArB,IAAkCC,SAAtC,EAAiD;AAC/C;AACAlvD,qBAAe,CAACS,SAAhB,GAA4B,IAA5B;AACAM,2FAAe,CAAC7K,OAAD,EAAU,KAAI,CAACiK,IAAf,EAAqBH,eAArB,CAAf;AACD,KAJD,MAIO;AACL;AACA+yB,YAAM,CAACgwB,8BAAP,CACE/iD,eADF,EAEE1B,SAFF,EAGE+rB,YAHF;AAKD,KAxBQ,CA0BT;;;AACA8kC,4FAA8B,CAAC7wD,SAAD,EAAY0B,eAAZ,CAA9B;AACA6uD,sBAAkB,CAACO,MAAnB,GAA4B,KAA5B;AAEApvD,mBAAe,CAAC8F,WAAhB,GAA8B,IAA9B;AAEAxP,+DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA,QAAMyN,UAAU,GAAGC,mEAAa,CAAC1N,OAAD,EAAUgM,OAAV,EAAmByQ,eAAnB,CAAhC;;AAEA,QAAIhP,UAAU,YAAY6U,0DAA1B,EAA6C;AAC3C7U,gBAAU,CAAC+gB,iBAAX,CAA6BvgB,KAA7B,EAAoCjO,OAApC,EAA6C8J,eAA7C;AACD;;AAED,QAAM2kB,iBAAiB,GAAG;AACxB/jB,cAAQ,EAAE,KAAI,CAACT,IADS;AAExBU,cAAQ,EAAE,KAAI,CAACV,IAFS;AAEH;AACrBjK,aAAO,EAAPA,OAHwB;AAIxB8J,qBAAe,EAAfA;AAJwB,KAA1B;AAOAc,yEAAY,CAAC5K,OAAD,EAAUqJ,kDAAM,CAACiY,oBAAjB,EAAuCmN,iBAAvC,CAAZ;AACA7jB,yEAAY,CAAC5K,OAAD,EAAUqJ,kDAAM,CAACoB,qBAAjB,EAAwCgkB,iBAAxC,CAAZ;AACD,GAxDU,CAAb;AA0DD;;AAED,IAAM+pC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAvqD,KAAK,EAAI;AACjC,MAAMunC,UAAU,GAAGp1C,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CACjB,kBADiB,EAEjBpvB,KAAK,CAACgmB,OAFW,CAAnB;AAIA,MAAIzd,eAAe,GAAGvI,KAAK,CAACuI,eAA5B;AACA,MAAI2uC,eAAe,GAAGl3C,KAAK,CAACwI,kBAA5B;;AAEA,MAAI++B,UAAJ,EAAgB;AACdh/B,mBAAe,GACbg/B,UAAU,CAACh/B,eAAX,IAA8Bg/B,UAAU,CAAC4P,oBAD3C;AAEAD,mBAAe,GACb3P,UAAU,CAAC/+B,kBAAX,IAAiC++B,UAAU,CAAC6P,oBAD9C;AAED,GAbgC,CAejC;;;AACA,SAAO,CAAC7uC,eAAD,IAAoB,CAAC2uC,eAA5B;AACD,CAjBD,C;;;;;;;;;;;;ACjGA;AAAA,IAAMgU,SAAS,GAAG,SAAZA,SAAY,CAAC75D,CAAD,EAAID,CAAJ,EAAOyH,KAAP;AAAA,MAAcsyD,eAAd,uEAAgC,EAAhC;AAAA,SAChB92D,MAAM,CAAC8lB,MAAP,CACE;AACE9oB,KAAC,EAADA,CADF;AAEED,KAAC,EAADA,CAFF;AAGEyH,SAAK,EAALA,KAHF;AAIEnE,sBAAkB,EAAE,KAJtB;AAKEkqB,uBAAmB,EAAE,KALvB;AAMEld,aAAS,EAAE,IANb;AAOE9M,UAAM,EAAE;AAPV,GADF,EAUEu2D,eAVF,CADgB;AAAA,CAAlB;;AAce,yEAASC,cAAT,EAAyB;AAAA,8BACrBA,cAAc,CAAC/tD,aAAf,CAA6B2C,KADR;AAAA,MAC9B3O,CAD8B,yBAC9BA,CAD8B;AAAA,MAC3BD,CAD2B,yBAC3BA,CAD2B,EAEtC;;AACA,MAAMyK,eAAe,GAAG;AACtBY,YAAQ,EAAE,KAAKT,IADO;AAEtBU,YAAQ,EAAE,KAAKV,IAFO;AAED;AACrBqvD,cAAU,EAAE,IAHU;AAItBpiD,WAAO,EAAE,IAJa;AAKtBrU,UAAM,EAAE,IALc;AAMtB+M,eAAW,EAAE,IANS;AAOtB5N,WAAO,EAAE;AACPpD,WAAK,EAAEu6D,SAAS,CAAC75D,CAAD,EAAID,CAAJ,EAAO,CAAP,CADT;AAEPR,SAAG,EAAEs6D,SAAS,CAAC75D,CAAD,EAAID,CAAJ,EAAO,CAAP,EAAU;AAAEwD,cAAM,EAAE;AAAV,OAAV,CAFP;AAGP81D,wBAAkB,EAAEQ,SAAS,CAAC75D,CAAD,EAAID,CAAJ,EAAO,CAAP,EAAU;AAAE65D,cAAM,EAAE;AAAV,OAAV,CAHtB;AAIPK,sBAAgB,EAAEJ,SAAS,CAAC75D,CAAD,EAAID,CAAJ,EAAO,CAAP,CAJpB;AAKPoF,aAAO,EAAE00D,SAAS,CAAC75D,CAAC,GAAG,EAAL,EAASD,CAAC,GAAG,EAAb,EAAiB,IAAjB,EAAuB;AACvCsQ,iBAAS,EAAE,KAD4B;AAEvC1K,gBAAQ,EAAE,IAF6B;AAGvCpC,cAAM,EAAE,KAH+B;AAIvC0rB,0BAAkB,EAAE,KAJmB;AAKvC5rB,0BAAkB,EAAE,IALmB;AAMvCkqB,2BAAmB,EAAE,IANkB;AAOvCQ,sBAAc,EAAE;AAPuB,OAAvB;AALX,KAPa;AAsBtBggC,mBAAe,EAAE,CAtBK;AAuBtBC,oBAAgB,EAAE;AAvBI,GAAxB;AA0BA,SAAOxjD,eAAP;AACD,C;;;;;;;;;;;;AC5CD;AAAe,yEAAS3B,GAAT,EAAcqI,QAAd,EAAwB9N,MAAxB,EAA2D;AAAA,MAA3B+Z,eAA2B,uEAAT,OAAS;;AACxE,MAAIA,eAAe,KAAK,OAAxB,EAAiC;AAC/B,SAAKywC,2BAAL,CAAiC/kD,GAAjC;AACD,GAFD,MAEO;AACL,SAAK8kD,2BAAL,CAAiC9kD,GAAjC;AACD;AACF,C;;;;;;;;;;;;;;;;;;;;;;;;;;;ACND;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AAEe,yEAASA,GAAT,EAAc;AAAA;;AAC3B,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD2B,MAGnBrI,OAHmB,GAGPoI,SAHO,CAGnBpI,OAHmB;AAI3B,MAAI+M,IAAJ;AAEA,MAAMggB,iBAAiB,GAAGxpB,qDAAK,CAACk+B,cAAhC;;AAEA,MAAM+3B,cAAc,GAAG,SAAjBA,cAAiB,CAAA92D,MAAM,EAAI;AAC/BqK,QAAI,CAAC6C,WAAL,GAAmB,IAAnB;;AACA,QAAIE,uFAAsB,CAAC1H,SAAD,EAAY2E,IAAI,CAAC/K,OAAjB,CAA1B,EAAqD;AACnD;AACA6I,2FAAe,CAAC7K,OAAD,EAAU,KAAI,CAACiK,IAAf,EAAqB8C,IAArB,CAAf;AACD,KAL8B,CAO/B;;;AACA,QAAIrK,MAAJ,EAAY;AACVA,YAAM,CAACK,MAAP,GAAgB,KAAhB;AACAL,YAAM,CAAC+2D,QAAP,GAAkB,IAAlB;AACD;;AAEDrrB,kFAAa,CAAC,KAAI,CAACpuC,OAAN,EAAe,KAAI,CAACquC,SAApB,CAAb;AAEAjuC,+DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACAA,WAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACyF,UAAhC,EAA4C,KAAI,CAACk+C,aAAjD;AACAhtD,WAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACwI,WAAhC,EAA6C,KAAI,CAACm7C,aAAlD;AACD,GAlBD;;AAoBA,MAAM3hD,MAAM,GAAGjD,SAAS,CAACmJ,WAAV,CAAsB3K,MAArC;AACA,MAAM4J,QAAQ,GAAG5H,kFAAY,CAACT,GAAG,CAAC2R,aAAL,EAAoB,KAAK7P,IAAzB,CAA7B;;AAEA,MAAI,CAACuG,QAAL,EAAe;AACb;AACD,GAjC0B,CAmC3B;;;AAnC2B,6BAoClBhO,CApCkB;AAqCzBuK,QAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAP;AACA,QAAMk3D,YAAY,GAAG,CAAC15D,OAAD,EAAU+M,IAAI,CAAC/K,OAAf,EAAwBqJ,MAAxB,EAAgC0hB,iBAAhC,CAArB;AACA,QAAIrqB,MAAM,GAAGmO,gFAAuB,MAAvB,SAA2B6oD,YAA3B,CAAb;;AAEA,QAAIh3D,MAAJ,EAAY;AACV1C,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAACyF,UAAnC,EAA+C,KAAI,CAACk+C,aAApD;AACAhtD,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAACwI,WAAnC,EAAgD,KAAI,CAACm7C,aAArD;AAEAjgD,UAAI,CAAClK,MAAL,GAAc,IAAd;AAEA82D,wBAAkB,CAAC5sD,IAAI,CAAC/K,OAAN,CAAlB;AACAU,YAAM,CAACK,MAAP,GAAgB,IAAhB,CAPU,CASV;;AACAL,YAAM,GAAGk3D,iEAAa,CAACxxD,SAAD,EAAY2E,IAAZ,EAAkBrK,MAAlB,CAAtB;AAEA;;;;AAGA,UAAI,CAACA,MAAM,CAAC2qB,cAAZ,EAA4B;AAC1BwhB,uFAAc,CAAC,KAAI,CAAC7uC,OAAN,CAAd;AACD;;AAEDoK,+EAAU,CAAChC,SAAD,EAAY,KAAI,CAAC6B,IAAjB,EAAuB8C,IAAvB,EAA6BrK,MAA7B,EAAqC;AAAA,eAC7C82D,cAAc,CAAC92D,MAAD,CAD+B;AAAA,OAArC,CAAV;AAIAi5C,wBAAkB,CAACxzC,GAAD,CAAlB;AAEA;AAAA,WAAO;AAAP;AACD;AAnEwB;;AAoC3B,OAAK,IAAI3F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAAA,qBAAtCA,CAAsC;;AAAA;AAgC9C;;AAED,MAAMq3D,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAA73D,OAAO;AAAA,WAAI,YAAM;AAC7C83D,2BAAqB,CAAC93D,OAAD,EAAU,KAAV,CAArB;AACAw3D,oBAAc;AACf,KAHoC;AAAA,GAArC;;AAKA,OAAK,IAAIh3D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAC7CuK,QAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAP;;AACA,QAAI,KAAK2K,aAAL,CAAmBnN,OAAnB,EAA4B+M,IAA5B,EAAkC1B,MAAlC,EAA0C,OAA1C,CAAJ,EAAwD;AACtDrL,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAACyF,UAAnC,EAA+C,KAAKk+C,aAApD;AACAhtD,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAACwI,WAAnC,EAAgD,KAAKm7C,aAArD;AACAjgD,UAAI,CAAClK,MAAL,GAAc,IAAd;AAEA82D,wBAAkB,CAAC5sD,IAAI,CAAC/K,OAAN,CAAlB;AACA83D,2BAAqB,CAAC/sD,IAAI,CAAC/K,OAAN,EAAe,IAAf,CAArB;AAEA,UAAM8rB,kBAAkB,GAAG+rC,qBAAqB,CAAC9sD,IAAI,CAAC/K,OAAN,CAAhD;AAEAmP,mFAAc,CACZ/I,SADY,EAEZ,KAAK6B,IAFO,EAGZ8C,IAHY,EAIZ,IAJY,EAKZ;AACE8C,kCAA0B,EAAE,IAD9B;AAEEke,iCAAyB,EAAE;AAF7B,OALY,EASZ,OATY,EAUZD,kBAVY,CAAd;AAaA6tB,wBAAkB,CAACxzC,GAAD,CAAlB;AAEA,aAAO,IAAP;AACD;AACF;AACF,C,GAED;;AACA,IAAMwxD,kBAAkB,GAAG,SAArBA,kBAAqB,CAAA33D,OAAO,EAAI;AACpC,MAAIkM,gBAAgB,GAAG,KAAvB;AAEA5L,QAAM,CAACC,IAAP,CAAYP,OAAZ,EAAqB4B,OAArB,CAA6B,UAAAnB,SAAS,EAAI;AACxC,QAAIA,SAAS,KAAK,SAAlB,EAA6B;AAC3B;AACD;;AACDT,WAAO,CAACS,SAAD,CAAP,CAAmBg3D,QAAnB,GAA8B,KAA9B;AACAvrD,oBAAgB,GAAGlM,OAAO,CAACS,SAAD,CAAP,CAAmBI,MAAnB,IAA6BqL,gBAAhD;AACAlM,WAAO,CAACS,SAAD,CAAP,CAAmBI,MAAnB,GAA4B,KAA5B;AACD,GAPD;AASA,SAAOqL,gBAAP;AACD,CAbD;;AAeA,IAAM4rD,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAC93D,OAAD,EAAUuB,KAAV,EAAoB;AAChDjB,QAAM,CAACC,IAAP,CAAYP,OAAZ,EAAqB4B,OAArB,CAA6B,UAAAnB,SAAS,EAAI;AACxC,QAAIA,SAAS,KAAK,SAAlB,EAA6B;AAC3B;AACD;;AACDT,WAAO,CAACS,SAAD,CAAP,CAAmBM,MAAnB,GAA4BQ,KAA5B;AACD,GALD;AAMD,CAPD;;AASA,IAAMo4C,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAxzC,GAAG,EAAI;AAChCA,KAAG,CAAC8I,wBAAJ;AACA9I,KAAG,CAAC0B,eAAJ;AACA1B,KAAG,CAACyB,cAAJ;AACD,CAJD,C;;;;;;;;;;;;;;;;;;;;;;;;;ACnJA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AAEe,yEAASzB,GAAT,EAAc;AAAA;;AAC3B,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD2B,MAEnBrI,OAFmB,GAEPoI,SAFO,CAEnBpI,OAFmB;AAG3B,MAAI+M,IAAJ;AAEA,MAAMggB,iBAAiB,GAAGxpB,qDAAK,CAACm+B,cAAhC;;AAEA,MAAM83B,cAAc,GAAG,SAAjBA,cAAiB,CAAA92D,MAAM,EAAI;AAC/BqK,QAAI,CAAC6C,WAAL,GAAmB,IAAnB;;AACA,QAAIE,uFAAsB,CAAC1H,SAAD,EAAY2E,IAAI,CAAC/K,OAAjB,CAA1B,EAAqD;AACnD;AACA6I,2FAAe,CAAC7K,OAAD,EAAU,KAAI,CAACiK,IAAf,EAAqB8C,IAArB,CAAf;AACD,KAL8B,CAO/B;;;AACA,QAAIrK,MAAJ,EAAY;AACVA,YAAM,CAACK,MAAP,GAAgB,KAAhB;AACAL,YAAM,CAAC+2D,QAAP,GAAkB,IAAlB;AACD;;AAEDr5D,+DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACAA,WAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC2I,UAAhC,EAA4C,KAAI,CAACg7C,aAAjD;AACD,GAfD;;AAiBA,MAAM3hD,MAAM,GAAGjD,SAAS,CAACmJ,WAAV,CAAsB3K,MAArC;AACA,MAAM4J,QAAQ,GAAG5H,kFAAY,CAACT,GAAG,CAAC2R,aAAL,EAAoB,KAAK7P,IAAzB,CAA7B;;AAEA,MAAI,CAACuG,QAAL,EAAe;AACb;AACD,GA7B0B,CA+B3B;;;AA/B2B,6BAgClBhO,CAhCkB;AAiCzBuK,QAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAP;AACA,QAAMk3D,YAAY,GAAG,CAAC15D,OAAD,EAAU+M,IAAI,CAAC/K,OAAf,EAAwBqJ,MAAxB,EAAgC0hB,iBAAhC,CAArB;AACA,QAAMrqB,MAAM,GAAGmO,gFAAuB,MAAvB,SAA2B6oD,YAA3B,CAAf;;AAEA,QAAIh3D,MAAJ,EAAY;AACV1C,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC2I,UAAnC,EAA+C,KAAI,CAACg7C,aAApD;AAEAjgD,UAAI,CAAClK,MAAL,GAAc,IAAd;AAEA82D,wBAAkB,CAAC5sD,IAAI,CAAC/K,OAAN,CAAlB;AACAU,YAAM,CAACK,MAAP,GAAgB,IAAhB;AACAg3D,oFAAe,CAAC3xD,SAAD,EAAY,KAAI,CAAC6B,IAAjB,EAAuB8C,IAAvB,EAA6BrK,MAA7B,EAAqC;AAAA,eAClD82D,cAAc,CAAC92D,MAAD,CADoC;AAAA,OAArC,CAAf;AAGAi5C,wBAAkB,CAACxzC,GAAD,CAAlB;AAEA;AAAA,WAAO;AAAP;AACD;AAlDwB;;AAgC3B,OAAK,IAAI3F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAAA,qBAAtCA,CAAsC;;AAAA;AAmB9C;;AAED,MAAMq3D,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAA73D,OAAO;AAAA,WAAI,YAAM;AAC7C83D,2BAAqB,CAAC93D,OAAD,EAAU,KAAV,CAArB;AACAw3D,oBAAc;AACf,KAHoC;AAAA,GAArC;;AAKA,OAAK,IAAIh3D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAC7CuK,QAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAP;;AACA,QAAI,KAAK2K,aAAL,CAAmBnN,OAAnB,EAA4B+M,IAA5B,EAAkC1B,MAAlC,EAA0C,OAA1C,CAAJ,EAAwD;AACtDrL,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC2I,UAAnC,EAA+C,KAAKg7C,aAApD;AACAjgD,UAAI,CAAClK,MAAL,GAAc,IAAd;AAEA82D,wBAAkB,CAAC5sD,IAAI,CAAC/K,OAAN,CAAlB;AACA83D,2BAAqB,CAAC/sD,IAAI,CAAC/K,OAAN,EAAe,IAAf,CAArB;AAEA,UAAM8rB,kBAAkB,GAAG+rC,qBAAqB,CAAC9sD,IAAI,CAAC/K,OAAN,CAAhD;AAEAmP,mFAAc,CACZ/I,SADY,EAEZ,KAAK6B,IAFO,EAGZ8C,IAHY,EAIZ,IAJY,EAKZ;AACE8C,kCAA0B,EAAE,IAD9B;AAEEke,iCAAyB,EAAE;AAF7B,OALY,EASZ,OATY,EAUZD,kBAVY,CAAd;AAaA6tB,wBAAkB,CAACxzC,GAAD,CAAlB;AAEA,aAAO,IAAP;AACD;AACF;AACF,C,GAED;;AACA,IAAMwxD,kBAAkB,GAAG,SAArBA,kBAAqB,CAAA33D,OAAO,EAAI;AACpC,MAAIkM,gBAAgB,GAAG,KAAvB;AAEA5L,QAAM,CAACC,IAAP,CAAYP,OAAZ,EAAqB4B,OAArB,CAA6B,UAAAnB,SAAS,EAAI;AACxC,QAAIA,SAAS,KAAK,SAAlB,EAA6B;AAC3B;AACD;;AACDT,WAAO,CAACS,SAAD,CAAP,CAAmBg3D,QAAnB,GAA8B,KAA9B;AACAvrD,oBAAgB,GAAGlM,OAAO,CAACS,SAAD,CAAP,CAAmBI,MAAnB,IAA6BqL,gBAAhD;AACAlM,WAAO,CAACS,SAAD,CAAP,CAAmBI,MAAnB,GAA4B,KAA5B;AACD,GAPD;AASA,SAAOqL,gBAAP;AACD,CAbD;;AAeA,IAAM4rD,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAC93D,OAAD,EAAUuB,KAAV,EAAoB;AAChDjB,QAAM,CAACC,IAAP,CAAYP,OAAZ,EAAqB4B,OAArB,CAA6B,UAAAnB,SAAS,EAAI;AACxC,QAAIA,SAAS,KAAK,SAAlB,EAA6B;AAC3B;AACD;;AACDT,WAAO,CAACS,SAAD,CAAP,CAAmBM,MAAnB,GAA4BQ,KAA5B;AACD,GALD;AAMD,CAPD;;AASA,IAAMo4C,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAxzC,GAAG,EAAI;AAChCA,KAAG,CAAC8I,wBAAJ;AACA9I,KAAG,CAAC0B,eAAJ;AACA1B,KAAG,CAACyB,cAAJ;AACD,CAJD,C;;;;;;;;;;;;AC/HA;AAAA;AAAA,IAAMowD,aAAa,GAAG,SAAhBA,aAAgB,CAAC3+B,CAAD,EAAIC,CAAJ,EAAO2+B,SAAP,EAAqB;AACzC,MAAMC,SAAS,GAAG7+B,CAAC,CAAC4+B,SAAD,CAAnB;AACA,MAAME,SAAS,GAAG7+B,CAAC,CAAC2+B,SAAD,CAAnB;AAEA5+B,GAAC,CAAC4+B,SAAD,CAAD,GAAeE,SAAf;AACA7+B,GAAC,CAAC2+B,SAAD,CAAD,GAAeC,SAAf;AACD,CAND;;AAQA,IAAME,WAAW,GAAG,SAAdA,WAAc,CAAC/+B,CAAD,EAAIC,CAAJ,EAAU;AAC5B0+B,eAAa,CAAC3+B,CAAD,EAAIC,CAAJ,EAAO,GAAP,CAAb;AACA0+B,eAAa,CAAC3+B,CAAD,EAAIC,CAAJ,EAAO,GAAP,CAAb;AACA0+B,eAAa,CAAC3+B,CAAD,EAAIC,CAAJ,EAAO,QAAP,CAAb;AACA0+B,eAAa,CAAC3+B,CAAD,EAAIC,CAAJ,EAAO,OAAP,CAAb;AACA0+B,eAAa,CAAC3+B,CAAD,EAAIC,CAAJ,EAAO,QAAP,CAAb;AACA0+B,eAAa,CAAC3+B,CAAD,EAAIC,CAAJ,EAAO,UAAP,CAAb;AACD,CAPD;;AASe,SAASs+B,aAAT,CAAuBxxD,SAAvB,EAAkC0B,eAAlC,EAAmDpH,MAAnD,EAA2D;AAAA,yBACxB0F,SAAS,CAAC6F,KADc;AAAA,MAChEuI,eADgE,oBAChEA,eADgE;AAAA,MAC/CC,kBAD+C,oBAC/CA,kBAD+C;AAAA,MAEhEzU,OAFgE,GAEpD8H,eAFoD,CAEhE9H,OAFgE;AAAA,MAGhEpD,KAHgE,GAGXoD,OAHW,CAGhEpD,KAHgE;AAAA,MAGzDC,GAHyD,GAGXmD,OAHW,CAGzDnD,GAHyD;AAAA,MAGpD85D,kBAHoD,GAGX32D,OAHW,CAGpD22D,kBAHoD;AAAA,MAGhCY,gBAHgC,GAGXv3D,OAHW,CAGhCu3D,gBAHgC,EAKxE;;AACA,MAAMxC,EAAE,GAAG,CAACn4D,KAAK,CAACU,CAAN,GAAUT,GAAG,CAACS,CAAf,KAAqBmX,kBAAkB,IAAI,CAA3C,CAAX;AACA,MAAMugD,EAAE,GAAG,CAACp4D,KAAK,CAACS,CAAN,GAAUR,GAAG,CAACQ,CAAf,KAAqBmX,eAAe,IAAI,CAAxC,CAAX;AACA,MAAMhT,MAAM,GAAGrE,IAAI,CAACmf,IAAL,CAAUy4C,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAzB,CAAf,CARwE,CAUxE;;AACA,MAAMqD,EAAE,GACN,CAAC1B,kBAAkB,CAACr5D,CAAnB,GAAuBi6D,gBAAgB,CAACj6D,CAAzC,KAA+CmX,kBAAkB,IAAI,CAArE,CADF;AAEA,MAAM6jD,EAAE,GACN,CAAC3B,kBAAkB,CAACt5D,CAAnB,GAAuBk6D,gBAAgB,CAACl6D,CAAzC,KAA+CmX,eAAe,IAAI,CAAlE,CADF;AAEA,MAAM1V,KAAK,GAAG3B,IAAI,CAACmf,IAAL,CAAU+7C,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAzB,KAAgC,CAA9C;;AAEA,MAAIx5D,KAAK,GAAG0C,MAAZ,EAAoB;AAClB42D,eAAW,CAACx7D,KAAD,EAAQC,GAAR,CAAX;AACAu7D,eAAW,CAACx7D,KAAD,EAAQ+5D,kBAAR,CAAX;AACAyB,eAAW,CAACv7D,GAAD,EAAM06D,gBAAN,CAAX;AAEA,WAAOj3D,MAAM,CAACooC,MAAP,CAAc1oC,OAAd,EAAuBqK,IAAvB,CAA4B,UAAA5K,CAAC;AAAA,aAAIA,CAAC,CAACsB,MAAF,KAAa,IAAjB;AAAA,KAA7B,CAAP;AACD;;AAED,SAAOL,MAAP;AACD,C;;;;;;;;;;;;AC3CD;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;CAGA;;AACA,IAAM4mB,eAAe,GAAG,SAAlBA,eAAkB,CACtBtpB,OADsB,EAEtBgC,OAFsB,EAGtBurB,WAHsB,EAKnB;AAAA,MADHR,iBACG,uEADiB,CACjB;AACH,MAAMC,YAAY,GAAGnc,wFAAuB,CAC1C7Q,OAD0C,EAE1CgC,OAF0C,EAG1CurB,WAH0C,EAI1CR,iBAJ0C,CAA5C;AAOA,MAAIwtC,sBAAsB,GAAG,KAA7B;AAEAj4D,QAAM,CAACC,IAAP,CAAYP,OAAZ,EAAqB4B,OAArB,CAA6B,UAAAnB,SAAS,EAAI;AACxC,QAAIA,SAAS,KAAK,SAAlB,EAA6B;AAC3B;AACD;;AACD,QAAMC,MAAM,GAAGV,OAAO,CAACS,SAAD,CAAtB;AACA,QAAM+3D,cAAc,GAAG93D,MAAM,KAAKsqB,YAAlC;;AAEA,QAAItqB,MAAM,CAACG,MAAP,KAAkB23D,cAAtB,EAAsC;AACpCD,4BAAsB,GAAG,IAAzB;AACD;;AAED73D,UAAM,CAACG,MAAP,GAAgB23D,cAAhB;AACD,GAZD;AAcA,SAAOD,sBAAP;AACD,CA9BD,C,CAgCA;;;AACe,yEAAS3nD,KAAT,EAAgB;AAAA;;AAC7B,MAAMxK,SAAS,GAAGwK,KAAK,CAACvK,MAAxB;AAD6B,MAErBrI,OAFqB,GAEToI,SAFS,CAErBpI,OAFqB;AAI7BmmB,6EAAe,CAACoa,SAAhB,CAA0Bn4B,SAA1B,EAJ6B,CAM7B;;AACA,MAAMoI,QAAQ,GAAG5H,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA7B;;AAEA,MAAI,CAACuG,QAAL,EAAe;AACb;AACD,GAX4B,CAa7B;;;AACA,MAAItC,gBAAgB,GAAG,KAAvB;;AAd6B,6BAgBpB1L,CAhBoB;AAiB3B;AACA,QAAM6I,MAAM,GAAGjD,SAAS,CAACkD,aAAV,CAAwB1E,MAAvC;AAEA,QAAMmG,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAb;AACA,QAAM+3D,sBAAsB,GAAGjxC,eAAe,CAC5CtpB,OAD4C,EAE5C+M,IAAI,CAAC/K,OAFuC,EAG5CqJ,MAH4C,CAA9C;AAMA/I,UAAM,CAACC,IAAP,CAAYwK,IAAI,CAAC/K,OAAjB,EAA0B4B,OAA1B,CAAkC,UAAAnB,SAAS,EAAI;AAC7C,UAAIA,SAAS,KAAK,SAAlB,EAA6B;AAC3B;AACD;;AACD,UAAMC,MAAM,GAAGqK,IAAI,CAAC/K,OAAL,CAAaS,SAAb,CAAf;AAEAC,YAAM,CAAC+3D,KAAP,GAAe/3D,MAAM,CAACG,MAAtB;AACD,KAPD;;AASA,QAAI03D,sBAAJ,EAA4B;AAC1BrsD,sBAAgB,GAAG,IAAnB;AACD;;AAED,QAAMwsD,QAAQ,GAAG,KAAI,CAACvtD,aAAL,CAAmBnN,OAAnB,EAA4B+M,IAA5B,EAAkC1B,MAAlC,EAA0C,OAA1C,CAAjB;;AACA,QAAMsvD,mBAAmB,GAAGD,QAAQ,IAAI,CAAC3tD,IAAI,CAAClK,MAA9C;AACA,QAAM+3D,oBAAoB,GAAG,CAACF,QAAD,IAAa3tD,IAAI,CAAClK,MAA/C;;AAEA,QAAI83D,mBAAmB,IAAIC,oBAA3B,EAAiD;AAC/C7tD,UAAI,CAAClK,MAAL,GAAc,CAACkK,IAAI,CAAClK,MAApB;AACAqL,sBAAgB,GAAG,IAAnB;AACD;AA/C0B;;AAgB7B,OAAK,IAAI1L,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAAA,UAAtCA,CAAsC;AAgC9C,GAhD4B,CAkD7B;;;AACA,MAAI0L,gBAAgB,KAAK,IAAzB,EAA+B;AAC7B9N,+DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AACF,C;;;;;;;;;;;;AC7FD;AAAA;AAAA;AAAA;AAAA;AACA;;AAEA,SAAS66D,UAAT,CAAoBrU,UAApB,EAAgCC,QAAhC,EAA0C;AACxC,SAAO;AACL7nD,SAAK,EAAE4nD,UADF;AAEL3nD,OAAG,EAAE4nD;AAFA,GAAP;AAID;AAED;;;;;;;;;;;;AAUe,SAASqU,WAAT,CAAqBhxD,eAArB,EAAsC1B,SAAtC,EAAiD2yD,UAAjD,EAA6D;AAAA,MAClEC,WADkE,GAClD56D,2DAAQ,CAAC+D,eADyC,CAClE62D,WADkE;AAAA,8BAOtElxD,eAAe,CAAC9H,OAPsD;AAAA,MAGxEpD,KAHwE,yBAGxEA,KAHwE;AAAA,MAIxEC,GAJwE,yBAIxEA,GAJwE;AAAA,MAKxE85D,kBALwE,yBAKxEA,kBALwE;AAAA,MAMxEY,gBANwE,yBAMxEA,gBANwE;AAAA,yBAQlBnxD,SAAS,CAAC6F,KARQ;AAAA,+CAQlEwI,kBARkE;AAAA,MAQlEA,kBARkE,sCAQ7C,CAR6C;AAAA,+CAQ1CD,eAR0C;AAAA,MAQ1CA,eAR0C,sCAQxB,CARwB;AAU1E,MAAMykD,QAAQ,GAAGJ,UAAU,CAACj8D,KAAD,EAAQC,GAAR,CAA3B;AACA,MAAMq8D,iBAAiB,GAAGL,UAAU,CAAClC,kBAAD,EAAqBY,gBAArB,CAApC;AACA,MAAM4B,YAAY,GAAGH,WAAW,CAACI,aAAZ,CAA0BH,QAA1B,EAAoCC,iBAApC,CAArB;AAEA,MAAMG,eAAe,GAAGC,qFAA2B,CACjD7kD,kBADiD,EAEjDD,eAFiD,EAGjDukD,UAHiD,EAIjDI,YAJiD,CAAnD;AAOA,SAAO;AACL1kD,sBAAkB,EAAlBA,kBADK;AACe;AACpBD,mBAAe,EAAfA,eAFK;AAEY;AACjB5X,SAAK,EAALA,KAHK;AAGE;AACPC,OAAG,EAAHA,GAJK;AAIA;AACL85D,sBAAkB,EAAlBA,kBALK;AAKe;AACpBY,oBAAgB,EAAhBA,gBANK;AAMa;AAClB0B,YAAQ,EAARA,QAPK;AAOK;AACVE,gBAAY,EAAZA,YARK;AAQS;AACdE,mBAAe,EAAfA,eATK;AASY;AACjBN,cAAU,EAAVA,UAVK,CAUO;;AAVP,GAAP;AAYD,C;;;;;;;;;;;;ACrDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEe,yEACb1B,cADa,EAEb3uD,QAFa,EAGbqC,IAHa,EAIbrK,MAJa,EAKborB,kBALa,EAMbC,yBANa,EAOb;AAAA,MACQ/tB,OADR,GACoCq5D,cADpC,CACQr5D,OADR;AAAA,MACiBiO,KADjB,GACoCorD,cADpC,CACiBprD,KADjB;AAAA,MACwBjC,OADxB,GACoCqtD,cADpC,CACwBrtD,OADxB;AAEA,MAAMuvD,gBAAgB,GAAG;AACvBj8D,KAAC,EAAEoD,MAAM,CAACpD,CAAP,GAAW+5D,cAAc,CAAC/tD,aAAf,CAA6B2C,KAA7B,CAAmC3O,CAD1B;AAEvBD,KAAC,EAAEqD,MAAM,CAACrD,CAAP,GAAWg6D,cAAc,CAAC/tD,aAAf,CAA6B2C,KAA7B,CAAmC5O;AAF1B,GAAzB;;AAKA,MAAM2kD,aAAa,GAAG,SAAhBA,aAAgB,CAAApxC,KAAK,EAAI;AAC7B,QAAMxK,SAAS,GAAGwK,KAAK,CAACvK,MAAxB;AAEA3F,UAAM,CAACuC,QAAP,GAAkB,IAAlB;;AAEA,QAAIvC,MAAM,CAACoE,KAAP,KAAiBrH,SAAjB,IAA8BiD,MAAM,CAACoE,KAAP,KAAiB,IAAnD,EAAyD;AACvDpE,YAAM,CAACpD,CAAP,GAAW8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAA9B,GAAkCi8D,gBAAgB,CAACj8D,CAA9D;AACAoD,YAAM,CAACrD,CAAP,GAAW+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAA9B,GAAkCk8D,gBAAgB,CAACl8D,CAA9D;AACD,KAHD,MAGO;AACLm8D,4EAAkB,CAAC94D,MAAD,EAAS0F,SAAT,EAAoB2E,IAApB,EAA0BwuD,gBAA1B,CAAlB;AACD;;AAED,QAAIxtC,yBAAJ,EAA+B;AAC7BrrB,YAAM,CAACpD,CAAP,GAAWH,IAAI,CAACkH,GAAL,CAAS3D,MAAM,CAACpD,CAAhB,EAAmB,CAAnB,CAAX;AACAoD,YAAM,CAACpD,CAAP,GAAWH,IAAI,CAACwC,GAAL,CAASe,MAAM,CAACpD,CAAhB,EAAmB8I,SAAS,CAAC6F,KAAV,CAAgBnN,KAAnC,CAAX;AAEA4B,YAAM,CAACrD,CAAP,GAAWF,IAAI,CAACkH,GAAL,CAAS3D,MAAM,CAACrD,CAAhB,EAAmB,CAAnB,CAAX;AACAqD,YAAM,CAACrD,CAAP,GAAWF,IAAI,CAACwC,GAAL,CAASe,MAAM,CAACrD,CAAhB,EAAmB+I,SAAS,CAAC6F,KAAV,CAAgBjN,MAAnC,CAAX;AACD;;AAED+L,QAAI,CAAC6C,WAAL,GAAmB,IAAnB;AAEAxP,+DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA,QAAMyN,UAAU,GAAGC,mEAAa,CAAC1N,OAAD,EAAUgM,OAAV,EAAmB,OAAnB,CAAhC;;AAEA,QAAIyB,UAAU,YAAYI,gEAA1B,EAA8C;AAC5CJ,gBAAU,CAAC+gB,iBAAX,CAA6BvgB,KAA7B,EAAoCjO,OAApC,EAA6C+M,IAA7C;AACD;;AAED,QAAM0hB,iBAAiB,GAAG;AACxB/jB,cAAQ,EAARA,QADwB;AAExBC,cAAQ,EAAED,QAFc;AAEJ;AACpB1K,aAAO,EAAPA,OAHwB;AAIxB8J,qBAAe,EAAEiD;AAJO,KAA1B;AAOA3M,+DAAQ,CAACC,WAAT,CAAqBuK,YAArB,CACE5K,OADF,EAEEqJ,kDAAM,CAACiY,oBAFT,EAGEmN,iBAHF;AAKD,GA1CD;;AA4CA/rB,QAAM,CAACG,MAAP,GAAgB,IAAhB;AACAH,QAAM,CAACK,MAAP,GAAgB,IAAhB;AACAQ,uDAAK,CAAC6H,YAAN,GAAqB,IAArB;AAEApL,SAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACuF,UAAhC,EAA4Co1C,aAA5C;AACAhkD,SAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC2I,UAAhC,EAA4CgyC,aAA5C;AAEA,MAAMyX,YAAY,GAAGr7D,2DAAQ,CAACC,WAAT,CAAqBq7D,QAArB,CAA8B17D,OAA9B,CAArB;;AACA,MAAM27D,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;AACjC,QAAMC,QAAQ,GAAGx7D,2DAAQ,CAACC,WAAT,CAAqBq7D,QAArB,CAA8B17D,OAA9B,CAAjB,CADiC,CAGjC;;AACA,QAAI47D,QAAQ,CAAC3nC,OAAT,KAAqBwnC,YAAY,CAACxnC,OAAtC,EAA+C;AAC7C4nC,4BAAsB;AACvB;AACF,GAPD,CA3DA,CAoEA;;;AACA77D,SAAO,CAACoJ,gBAAR,CACEhJ,2DAAQ,CAACC,WAAT,CAAqBgJ,MAArB,CAA4BC,cAD9B,EAEEqyD,oBAFF;;AAKA,MAAME,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAM;AACnCn5D,UAAM,CAACG,MAAP,GAAgB,KAAhB;AACAU,yDAAK,CAAC6H,YAAN,GAAqB,KAArB;AAEApL,WAAO,CAACwJ,mBAAR,CACEpJ,2DAAQ,CAACC,WAAT,CAAqBgJ,MAArB,CAA4BC,cAD9B,EAEEqyD,oBAFF;AAKA37D,WAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAACuF,UAAnC,EAA+Co1C,aAA/C;AACAhkD,WAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC2F,QAAnC,EAA6C6sD,sBAA7C;AACA77D,WAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAACiF,WAAnC,EAAgDutD,sBAAhD;AAEA77D,WAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC2I,UAAnC,EAA+CgyC,aAA/C;AACAhkD,WAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAACkV,cAAnC,EAAmDs9C,sBAAnD;AACA77D,WAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAACqG,GAAnC,EAAwCmsD,sBAAxC;AAEAz7D,+DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;;AAEA,QAAI,OAAO8tB,kBAAP,KAA8B,UAAlC,EAA8C;AAC5CA,wBAAkB;AACnB;AACF,GAtBD;;AAwBA9tB,SAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC2F,QAAhC,EAA0C6sD,sBAA1C;AACA77D,SAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACiF,WAAhC,EAA6CutD,sBAA7C;AAEA77D,SAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACkV,cAAhC,EAAgDs9C,sBAAhD;AACA77D,SAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACqG,GAAhC,EAAqCmsD,sBAArC;AACD,C;;;;;;;;;;;;ACrHD;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;;;;;;;;;;;AAUe,SAASC,YAAT,CACbC,aADa,EAEbjyD,eAFa,EAGb1B,SAHa,EAIb2yD,UAJa,EAKb;AACA,MAAMiB,QAAQ,GAAGlB,+DAAW,CAAChxD,eAAD,EAAkB1B,SAAlB,EAA6B2yD,UAA7B,CAA5B;AADA,MAEQtkD,kBAFR,GAEiEulD,QAFjE,CAEQvlD,kBAFR;AAAA,MAE4BD,eAF5B,GAEiEwlD,QAFjE,CAE4BxlD,eAF5B;AAAA,MAE6C6kD,eAF7C,GAEiEW,QAFjE,CAE6CX,eAF7C,EAIA;;AACA,MAAMY,aAAa,GAAGX,qFAA2B,CAC/C7kD,kBAD+C,EAE/CD,eAF+C,EAG/CukD,UAH+C,EAI/CgB,aAJ+C,CAAjD,CALA,CAYA;;AACA,MAAIE,aAAa,IAAIZ,eAArB,EAAsC;AACpC,WAAO,KAAP;AACD,GAfD,CAiBA;;;AACA,MAAMa,aAAa,GAAGb,eAAe,GAAGY,aAAxC;AACA,MAAME,eAAe,GAAG;AACtB78D,KAAC,EAAEy7D,UAAU,CAACz7D,CAAX,GAAe,CAACy8D,aAAa,CAACz8D,CAAd,GAAkBy7D,UAAU,CAACz7D,CAA9B,IAAmC48D,aAD/B;AAEtB78D,KAAC,EAAE07D,UAAU,CAAC17D,CAAX,GAAe,CAAC08D,aAAa,CAAC18D,CAAd,GAAkB07D,UAAU,CAAC17D,CAA9B,IAAmC68D;AAF/B,GAAxB,CAnBA,CAwBA;;AACA,MAAME,OAAO,GAAGC,2EAAuB,CAACL,QAAD,EAAWG,eAAX,CAAvC,CAzBA,CA2BA;;AACAryD,iBAAe,CAAC9H,OAAhB,CAAwB22D,kBAAxB,CAA2Cr5D,CAA3C,GAA+C88D,OAAO,CAACx9D,KAAR,CAAcU,CAA7D;AACAwK,iBAAe,CAAC9H,OAAhB,CAAwB22D,kBAAxB,CAA2Ct5D,CAA3C,GAA+C+8D,OAAO,CAACx9D,KAAR,CAAcS,CAA7D;AACAyK,iBAAe,CAAC9H,OAAhB,CAAwBu3D,gBAAxB,CAAyCj6D,CAAzC,GAA6C88D,OAAO,CAACv9D,GAAR,CAAYS,CAAzD;AACAwK,iBAAe,CAAC9H,OAAhB,CAAwBu3D,gBAAxB,CAAyCl6D,CAAzC,GAA6C+8D,OAAO,CAACv9D,GAAR,CAAYQ,CAAzD;AAEA,SAAO,IAAP;AACD,C;;;;;;;;;;;;ACrDD;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;;;;;;;;;;AASe,SAASg9D,uBAAT,CAAiCL,QAAjC,EAA2CM,GAA3C,EAAgD;AAAA,MAE3D7lD,kBAF2D,GASzDulD,QATyD,CAE3DvlD,kBAF2D;AAAA,MAG3DD,eAH2D,GASzDwlD,QATyD,CAG3DxlD,eAH2D;AAAA,MAI3D5X,KAJ2D,GASzDo9D,QATyD,CAI3Dp9D,KAJ2D;AAAA,MAK3D+5D,kBAL2D,GASzDqD,QATyD,CAK3DrD,kBAL2D;AAAA,MAM3DY,gBAN2D,GASzDyC,QATyD,CAM3DzC,gBAN2D;AAAA,MAO3D4B,YAP2D,GASzDa,QATyD,CAO3Db,YAP2D;AAAA,MAQ3DJ,UAR2D,GASzDiB,QATyD,CAQ3DjB,UAR2D,EAW7D;;AACA,MAAMwB,UAAU,GAAGjB,kFAA2B,CAC5C7kD,kBAD4C,EAE5CD,eAF4C,EAG5CmiD,kBAH4C,EAI5CwC,YAJ4C,CAA9C,CAZ6D,CAmB7D;;AACA,MAAMqB,UAAU,GAAGlB,kFAA2B,CAC5C7kD,kBAD4C,EAE5CD,eAF4C,EAG5C+iD,gBAH4C,EAI5C4B,YAJ4C,CAA9C,CApB6D,CA2B7D;;AACA,MAAMzoC,MAAM,GAAG+pC,oEAAa,CAC1BhmD,kBAD0B,EAE1BD,eAF0B,EAG1BukD,UAH0B,EAI1BuB,GAJ0B,CAA5B,CA5B6D,CAmC7D;;AACA,MAAM/T,UAAU,GAAGwS,UAAU,KAAKn8D,KAAf,GAAuB,CAAvB,GAA2B,CAAC,CAA/C;AACA,MAAM89D,aAAa,GAAGnU,UAAU,GAAG/xC,eAAnC;AACA,MAAMmmD,gBAAgB,GAAGpU,UAAU,GAAG9xC,kBAAtC,CAtC6D,CAwC7D;;AACA,SAAO;AACL7X,SAAK,EAAE;AACLU,OAAC,EAAEg9D,GAAG,CAACh9D,CAAJ,GAAQozB,MAAM,CAACrzB,CAAP,GAAWk9D,UAAX,GAAwBG,aAD9B;AAELr9D,OAAC,EAAEi9D,GAAG,CAACj9D,CAAJ,GAAQqzB,MAAM,CAACpzB,CAAP,GAAWi9D,UAAX,GAAwBI,gBAAxB,GAA2C,CAAC;AAFlD,KADF;AAKL99D,OAAG,EAAE;AACHS,OAAC,EAAEg9D,GAAG,CAACh9D,CAAJ,GAAQozB,MAAM,CAACrzB,CAAP,GAAWm9D,UAAX,GAAwBE,aAAxB,GAAwC,CAAC,CADjD;AAEHr9D,OAAC,EAAEi9D,GAAG,CAACj9D,CAAJ,GAAQqzB,MAAM,CAACpzB,CAAP,GAAWk9D,UAAX,GAAwBG;AAFhC;AALA,GAAP;AAUD,C;;;;;;;;;;;;AC/DD;AAAA;AAAA;AAAA;AAEA;;;;;;;;;;AASe,SAASC,sBAAT,CAAgC7B,UAAhC,EAA4CxB,gBAA5C,EAA8D;AAC3E,SAAOsD,2EAAuB,CAAC9B,UAAD,EAAaxB,gBAAb,CAAvB,GAAwD,CAAC,CAAzD,GAA6D,CAApE;AACD,C;;;;;;;;;;;;ACbD;AAAA;AAAA;AAAA;AAEA;;;;;;;;;;;;;;AAae,SAASuD,aAAT,CAAuBd,QAAvB,EAAiCD,aAAjC,EAAgDrpC,MAAhD,EAAwD;AAAA,MAEnEjc,kBAFmE,GAMjEulD,QANiE,CAEnEvlD,kBAFmE;AAAA,MAGnED,eAHmE,GAMjEwlD,QANiE,CAGnExlD,eAHmE;AAAA,MAInE+iD,gBAJmE,GAMjEyC,QANiE,CAInEzC,gBAJmE;AAAA,MAKnEwB,UALmE,GAMjEiB,QANiE,CAKnEjB,UALmE,EAQrE;;AACA,MAAMgC,UAAU,GAAG7mC,MAAM,CAAC8mC,gBAA1B,CATqE,CAWrE;;AACA,MAAMzU,UAAU,GACdqU,uEAAsB,CAAC7B,UAAD,EAAaxB,gBAAb,CAAtB,GAAuDwD,UADzD;AAGA,SAAO;AACLn+D,SAAK,EAAEm9D,aADF;AAELl9D,OAAG,EAAE;AACHS,OAAC,EAAEy8D,aAAa,CAACz8D,CAAd,GAAkBozB,MAAM,CAACrzB,CAAP,GAAWmX,eAAX,GAA6B+xC,UAD/C;AAEHlpD,OAAC,EAAE08D,aAAa,CAAC18D,CAAd,GAAkBqzB,MAAM,CAACpzB,CAAP,GAAWmX,kBAAX,GAAgC8xC,UAAhC,GAA6C,CAAC;AAFhE;AAFA,GAAP;AAOD,C;;;;;;;;;;;;ACrCD;AAAA;AAAA;AAAA;AAEA;;;;;;;;;;;;AAWe,SAAS0U,cAAT,CACblC,UADa,EAEbpC,kBAFa,EAGbY,gBAHa,EAIb;AACA,MAAIsD,2EAAuB,CAAC9B,UAAD,EAAaxB,gBAAb,CAA3B,EAA2D;AACzD,WAAOZ,kBAAP;AACD;;AAED,SAAOY,gBAAP;AACD,C;;;;;;;;;;;;ACvBD;AAAA;AAAA;;;;;;;;;AASe,SAASsD,uBAAT,CAAiC9B,UAAjC,EAA6CxB,gBAA7C,EAA+D;AAC5E,SAAOwB,UAAU,KAAKxB,gBAAtB;AACD,C;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAEA;;;;;;;;;;;AAUe,SAAS2D,aAAT,CACbzmD,kBADa,EAEbD,eAFa,EAGbzS,IAHa,EAIb;AACA,MAAMo5D,UAAU,GAAG7B,kFAA2B,CAC5C7kD,kBAD4C,EAE5CD,eAF4C,EAG5CzS,IAAI,CAACnF,KAHuC,EAI5CmF,IAAI,CAAClF,GAJuC,CAA9C;AAOA,SAAOs+D,UAAU,KAAK,CAAtB;AACD,C;;;;;;;;;;;;ACzBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;AAUe,SAASC,qBAAT,CACbrB,aADa,EAEbjyD,eAFa,EAGb1B,SAHa,EAIb2yD,UAJa,EAKb;AAAA,MACQC,WADR,GACwB56D,2DAAQ,CAAC+D,eADjC,CACQ62D,WADR;AAEA,MAAMgB,QAAQ,GAAGlB,+DAAW,CAAChxD,eAAD,EAAkB1B,SAAlB,EAA6B2yD,UAA7B,CAA5B;AAFA,MAIEtkD,kBAJF,GASIulD,QATJ,CAIEvlD,kBAJF;AAAA,MAKED,eALF,GASIwlD,QATJ,CAKExlD,eALF;AAAA,MAME5X,KANF,GASIo9D,QATJ,CAMEp9D,KANF;AAAA,MAOEq8D,QAPF,GASIe,QATJ,CAOEf,QAPF;AAAA,MAQEE,YARF,GASIa,QATJ,CAQEb,YARF,EAWA;;AACA,MAAI,CAAC+B,iEAAa,CAACzmD,kBAAD,EAAqBD,eAArB,EAAsCykD,QAAtC,CAAlB,EAAmE;AACjE,WAAO,KAAP;AACD,GAdD,CAgBA;;;AACA,MAAMvoC,MAAM,GAAG+pC,uEAAa,CAC1BhmD,kBAD0B,EAE1BD,eAF0B,EAG1B5X,KAH0B,EAI1Bu8D,YAJ0B,CAA5B,CAjBA,CAwBA;;AACA,MAAMkC,UAAU,GAAGP,iEAAa,CAACd,QAAD,EAAWD,aAAX,EAA0BrpC,MAA1B,CAAhC,CAzBA,CA2BA;;AACA,MAAMypC,eAAe,GAAGnB,WAAW,CAACI,aAAZ,CAA0BH,QAA1B,EAAoCoC,UAApC,CAAxB,CA5BA,CA8BA;;AACA,MAAI,CAAClB,eAAL,EAAsB;AACpB,WAAO,KAAP;AACD,GAjCD,CAmCA;;;AACA,MAAMC,OAAO,GAAGC,2EAAuB,CACrCL,QADqC,EAErCG,eAFqC,EAGrCkB,UAHqC,EAIrC3qC,MAJqC,CAAvC,CApCA,CA2CA;;AACA5oB,iBAAe,CAAC9H,OAAhB,CAAwB22D,kBAAxB,CAA2Cr5D,CAA3C,GAA+C88D,OAAO,CAACx9D,KAAR,CAAcU,CAA7D;AACAwK,iBAAe,CAAC9H,OAAhB,CAAwB22D,kBAAxB,CAA2Ct5D,CAA3C,GAA+C+8D,OAAO,CAACx9D,KAAR,CAAcS,CAA7D;AACAyK,iBAAe,CAAC9H,OAAhB,CAAwBu3D,gBAAxB,CAAyCj6D,CAAzC,GAA6C88D,OAAO,CAACv9D,GAAR,CAAYS,CAAzD;AACAwK,iBAAe,CAAC9H,OAAhB,CAAwBu3D,gBAAxB,CAAyCl6D,CAAzC,GAA6C+8D,OAAO,CAACv9D,GAAR,CAAYQ,CAAzD;AAEA,SAAO,IAAP;AACD,C;;;;;;;;;;;;;;;;;;;ACxED;AACA;AAEA;;;;;;;;;;;;AAWe,SAASg9D,uBAAT,CACbL,QADa,EAEbM,GAFa,EAGbe,UAHa,EAIb3qC,MAJa,EAKb;AAAA;;AAAA,MAEEjc,kBAFF,GAQIulD,QARJ,CAEEvlD,kBAFF;AAAA,MAGED,eAHF,GAQIwlD,QARJ,CAGExlD,eAHF;AAAA,MAIEukD,UAJF,GAQIiB,QARJ,CAIEjB,UAJF;AAAA,MAKEpC,kBALF,GAQIqD,QARJ,CAKErD,kBALF;AAAA,MAMEY,gBANF,GAQIyC,QARJ,CAMEzC,gBANF;AAAA,MAOE8B,eAPF,GAQIW,QARJ,CAOEX,eAPF,EAUA;;AACA,MAAM9S,UAAU,GACdqU,uEAAsB,CAAC7B,UAAD,EAAaxB,gBAAb,CAAtB,GAAuD8B,eADzD,CAXA,CAcA;;AACA,MAAMiC,WAAW,GAAGL,+DAAc,CAChClC,UADgC,EAEhCpC,kBAFgC,EAGhCY,gBAHgC,CAAlC,CAfA,CAqBA;;AACA,MAAMgE,aAAa,GAAGD,WAAW,KAAK3E,kBAAtC;AACA,MAAM6E,SAAS,GAAGD,aAAa,GAAG,OAAH,GAAa,KAA5C;AACA,MAAME,QAAQ,GAAGF,aAAa,GAAG,KAAH,GAAW,OAAzC,CAxBA,CA0BA;;AACA,uGACGC,SADH,EACe;AACXl+D,KAAC,EAAE+9D,UAAU,CAACz+D,KAAX,CAAiBU,CADT;AAEXD,KAAC,EAAEg+D,UAAU,CAACz+D,KAAX,CAAiBS;AAFT,GADf,sFAKGo+D,QALH,EAKc;AACVn+D,KAAC,EAAEg9D,GAAG,CAACh9D,CAAJ,GAAQozB,MAAM,CAACrzB,CAAP,GAAWmX,eAAX,GAA6B+xC,UAD9B;AAEVlpD,KAAC,EAAEi9D,GAAG,CAACj9D,CAAJ,GAAQqzB,MAAM,CAACpzB,CAAP,GAAWmX,kBAAX,GAAgC8xC,UAAhC,GAA6C,CAAC;AAF/C,GALd;AAUD,C;;;;;;;;;;;;ACxDD;AAAA;AAAA;AAAA;AAAA;AACA;CAGA;;AACe,yEAAS7lD,MAAT,EAAiB0F,SAAjB,EAA4B2E,IAA5B,EAAkCwuD,gBAAlC,EAAoD;AACjE,MAAImC,UAAJ;AACA,MAAIC,WAAJ;AACA,MAAIC,MAAJ;AACA,MAAIzC,YAAJ;AACA,MAAI0C,EAAJ;AACA,MAAIC,EAAJ;AAEA,MAAM7C,QAAQ,GAAG,EAAjB;AACA,MAAMC,iBAAiB,GAAG,EAA1B;AACA,MAAMa,aAAa,GAAG;AACpBz8D,KAAC,EAAE8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAA9B,GAAkCi8D,gBAAgB,CAACj8D,CADlC;AAEpBD,KAAC,EAAE+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAA9B,GAAkCk8D,gBAAgB,CAACl8D;AAFlC,GAAtB;;AAKA,MAAIqD,MAAM,CAACoE,KAAP,KAAiB,CAArB,EAAwB;AACtB;AACA82D,UAAM,GAAG9B,6EAAY,CAACC,aAAD,EAAgBhvD,IAAhB,EAAsB3E,SAAtB,EAAiC2E,IAAI,CAAC/K,OAAL,CAAanD,GAA9C,CAArB;;AACA,QAAI++D,MAAJ,EAAY;AACVl7D,YAAM,CAACpD,CAAP,GAAWy8D,aAAa,CAACz8D,CAAzB;AACAoD,YAAM,CAACrD,CAAP,GAAW08D,aAAa,CAAC18D,CAAzB;AACD,KAHD,MAGO;AACL+I,eAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAA9B,GAAkCoD,MAAM,CAACpD,CAAzC;AACA8I,eAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAA9B,GAAkCqD,MAAM,CAACrD,CAAzC;AACD;AACF,GAVD,MAUO,IAAIqD,MAAM,CAACoE,KAAP,KAAiB,CAArB,EAAwB;AAC7B;AACA82D,UAAM,GAAG9B,6EAAY,CAACC,aAAD,EAAgBhvD,IAAhB,EAAsB3E,SAAtB,EAAiC2E,IAAI,CAAC/K,OAAL,CAAapD,KAA9C,CAArB;;AACA,QAAIg/D,MAAJ,EAAY;AACVl7D,YAAM,CAACpD,CAAP,GAAWy8D,aAAa,CAACz8D,CAAzB;AACAoD,YAAM,CAACrD,CAAP,GAAW08D,aAAa,CAAC18D,CAAzB;AACD,KAHD,MAGO;AACL+I,eAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAA9B,GAAkCoD,MAAM,CAACpD,CAAzC;AACA8I,eAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAA9B,GAAkCqD,MAAM,CAACrD,CAAzC;AACD;AACF,GAVM,MAUA,IAAIqD,MAAM,CAACoE,KAAP,KAAiB,CAArB,EAAwB;AAC7B62D,eAAW,GAAG,KAAd,CAD6B,CAE7B;;AACA1C,YAAQ,CAACr8D,KAAT,GAAiB;AACfU,OAAC,EAAEyN,IAAI,CAAC/K,OAAL,CAAapD,KAAb,CAAmBU,CADP;AAEfD,OAAC,EAAE0N,IAAI,CAAC/K,OAAL,CAAapD,KAAb,CAAmBS;AAFP,KAAjB;AAIA47D,YAAQ,CAACp8D,GAAT,GAAe;AACbS,OAAC,EAAEyN,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBS,CADP;AAEbD,OAAC,EAAE0N,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBQ;AAFP,KAAf;AAKA67D,qBAAiB,CAACt8D,KAAlB,GAA0B;AACxBU,OAAC,EAAEyN,IAAI,CAAC/K,OAAL,CAAau3D,gBAAb,CAA8Bj6D,CADT;AAExBD,OAAC,EAAE0N,IAAI,CAAC/K,OAAL,CAAau3D,gBAAb,CAA8Bl6D;AAFT,KAA1B;AAIA67D,qBAAiB,CAACr8D,GAAlB,GAAwB;AACtBS,OAAC,EAAEy8D,aAAa,CAACz8D,CADK;AAEtBD,OAAC,EAAE08D,aAAa,CAAC18D;AAFK,KAAxB;AAKA87D,gBAAY,GAAG/6D,2DAAQ,CAAC+D,eAAT,CAAyB62D,WAAzB,CAAqCI,aAArC,CACbH,QADa,EAEbC,iBAFa,CAAf;;AAIA,QAAI,CAACC,YAAL,EAAmB;AACjBD,uBAAiB,CAACr8D,GAAlB,GAAwB;AACtBS,SAAC,EAAEyN,IAAI,CAAC/K,OAAL,CAAa22D,kBAAb,CAAgCr5D,CADb;AAEtBD,SAAC,EAAE0N,IAAI,CAAC/K,OAAL,CAAa22D,kBAAb,CAAgCt5D;AAFb,OAAxB;AAKA87D,kBAAY,GAAG/6D,2DAAQ,CAAC+D,eAAT,CAAyB62D,WAAzB,CAAqCI,aAArC,CACbH,QADa,EAEbC,iBAFa,CAAf;AAKA2C,QAAE,GAAGz9D,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CACHwlD,YADG,EAEHpuD,IAAI,CAAC/K,OAAL,CAAapD,KAFV,CAAL;AAIAk/D,QAAE,GAAG19D,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CACHwlD,YADG,EAEHpuD,IAAI,CAAC/K,OAAL,CAAanD,GAFV,CAAL;;AAKA,UAAI,CAACs8D,YAAD,IAAiB0C,EAAE,GAAG,CAAtB,IAA2BC,EAAE,GAAG,CAApC,EAAuC;AACrCH,mBAAW,GAAG,IAAd;AACD;AACF;;AAEDD,cAAU,GAAG,KAAb;;AAEA,QAAI,CAACC,WAAL,EAAkB;AAChBD,gBAAU,GAAGN,+FAAqB,CAChCrB,aADgC,EAEhChvD,IAFgC,EAGhC3E,SAHgC,EAIhC2E,IAAI,CAAC/K,OAAL,CAAau3D,gBAJmB,CAAlC;;AAOA,UAAI,CAACmE,UAAL,EAAiB;AACft1D,iBAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAA9B,GAAkCyN,IAAI,CAAC/K,OAAL,CAAa22D,kBAAb,CAAgCr5D,CAAlE;AACA8I,iBAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAA9B,GAAkC0N,IAAI,CAAC/K,OAAL,CAAa22D,kBAAb,CAAgCt5D,CAAlE;AACD;AACF;AACF,GAjEM,MAiEA,IAAIqD,MAAM,CAACoE,KAAP,KAAiB,CAArB,EAAwB;AAC7B62D,eAAW,GAAG,KAAd,CAD6B,CAG7B;;AACA1C,YAAQ,CAACr8D,KAAT,GAAiB;AACfU,OAAC,EAAEyN,IAAI,CAAC/K,OAAL,CAAapD,KAAb,CAAmBU,CADP;AAEfD,OAAC,EAAE0N,IAAI,CAAC/K,OAAL,CAAapD,KAAb,CAAmBS;AAFP,KAAjB;AAIA47D,YAAQ,CAACp8D,GAAT,GAAe;AACbS,OAAC,EAAEyN,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBS,CADP;AAEbD,OAAC,EAAE0N,IAAI,CAAC/K,OAAL,CAAanD,GAAb,CAAiBQ;AAFP,KAAf;AAKA67D,qBAAiB,CAACt8D,KAAlB,GAA0B;AACxBU,OAAC,EAAEyN,IAAI,CAAC/K,OAAL,CAAa22D,kBAAb,CAAgCr5D,CADX;AAExBD,OAAC,EAAE0N,IAAI,CAAC/K,OAAL,CAAa22D,kBAAb,CAAgCt5D;AAFX,KAA1B;AAIA67D,qBAAiB,CAACr8D,GAAlB,GAAwB;AACtBS,OAAC,EAAEy8D,aAAa,CAACz8D,CADK;AAEtBD,OAAC,EAAE08D,aAAa,CAAC18D;AAFK,KAAxB;AAKA87D,gBAAY,GAAG/6D,2DAAQ,CAAC+D,eAAT,CAAyB62D,WAAzB,CAAqCI,aAArC,CACbH,QADa,EAEbC,iBAFa,CAAf;;AAIA,QAAI,CAACC,YAAL,EAAmB;AACjBD,uBAAiB,CAACr8D,GAAlB,GAAwB;AACtBS,SAAC,EAAEyN,IAAI,CAAC/K,OAAL,CAAau3D,gBAAb,CAA8Bj6D,CADX;AAEtBD,SAAC,EAAE0N,IAAI,CAAC/K,OAAL,CAAau3D,gBAAb,CAA8Bl6D;AAFX,OAAxB;AAKA87D,kBAAY,GAAG/6D,2DAAQ,CAAC+D,eAAT,CAAyB62D,WAAzB,CAAqCI,aAArC,CACbH,QADa,EAEbC,iBAFa,CAAf;AAKA2C,QAAE,GAAGz9D,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CACHwlD,YADG,EAEHpuD,IAAI,CAAC/K,OAAL,CAAapD,KAFV,CAAL;AAIAk/D,QAAE,GAAG19D,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CACHwlD,YADG,EAEHpuD,IAAI,CAAC/K,OAAL,CAAanD,GAFV,CAAL;;AAKA,UAAI,CAACs8D,YAAD,IAAiB0C,EAAE,GAAG,CAAtB,IAA2BC,EAAE,GAAG,CAApC,EAAuC;AACrCH,mBAAW,GAAG,IAAd;AACD;AACF;;AAEDD,cAAU,GAAG,KAAb;;AAEA,QAAI,CAACC,WAAL,EAAkB;AAChBD,gBAAU,GAAGN,+FAAqB,CAChCrB,aADgC,EAEhChvD,IAFgC,EAGhC3E,SAHgC,EAIhC2E,IAAI,CAAC/K,OAAL,CAAa22D,kBAJmB,CAAlC;;AAOA,UAAI,CAAC+E,UAAL,EAAiB;AACft1D,iBAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAA9B,GAAkCyN,IAAI,CAAC/K,OAAL,CAAau3D,gBAAb,CAA8Bj6D,CAAhE;AACA8I,iBAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAA9B,GAAkC0N,IAAI,CAAC/K,OAAL,CAAau3D,gBAAb,CAA8Bl6D,CAAhE;AACD;AACF;AACF;AACF,C;;;;;;;;;;;;AC5KD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAM0+D,cAAc,GAAG,CACrB10D,kDAAM,CAAC4I,SADc,EAErB5I,kDAAM,CAACkV,cAFc,EAGrBlV,kDAAM,CAACgJ,WAHc,EAIrBhJ,kDAAM,CAAC8I,WAJc,EAKrB9I,kDAAM,CAACqG,GALc,CAAvB;AAQe,yEACb2pD,cADa,EAEb3uD,QAFa,EAGbqC,IAHa,EAIbrK,MAJa,EAKborB,kBALa,EAMbC,yBANa,EAOb;AAAA,MACQ/tB,OADR,GACoCq5D,cADpC,CACQr5D,OADR;AAAA,MACiBiO,KADjB,GACoCorD,cADpC,CACiBprD,KADjB;AAAA,MACwBjC,OADxB,GACoCqtD,cADpC,CACwBrtD,OADxB;AAEA,MAAMuvD,gBAAgB,GAAG;AACvBj8D,KAAC,EAAEoD,MAAM,CAACpD,CAAP,GAAW+5D,cAAc,CAAC/tD,aAAf,CAA6B2C,KAA7B,CAAmC3O,CAD1B;AAEvBD,KAAC,EAAEqD,MAAM,CAACrD,CAAP,GAAWg6D,cAAc,CAAC/tD,aAAf,CAA6B2C,KAA7B,CAAmC5O;AAF1B,GAAzB;;AAKA,MAAMsyB,iBAAiB,GAAG,SAApBA,iBAAoB,CAAA/e,KAAK,EAAI;AACjC,QAAMxK,SAAS,GAAGwK,KAAK,CAACvK,MAAxB;AAEA3F,UAAM,CAACuC,QAAP,GAAkB,IAAlB;;AAEA,QAAIvC,MAAM,CAACoE,KAAP,KAAiBrH,SAAjB,IAA8BiD,MAAM,CAACoE,KAAP,KAAiB,IAAnD,EAAyD;AACvDpE,YAAM,CAACpD,CAAP,GAAW8I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B3O,CAA9B,GAAkCi8D,gBAAgB,CAACj8D,CAA9D;AACAoD,YAAM,CAACrD,CAAP,GAAW+I,SAAS,CAACkD,aAAV,CAAwB2C,KAAxB,CAA8B5O,CAA9B,GAAkCk8D,gBAAgB,CAACl8D,CAA9D;AACD,KAHD,MAGO;AACLm8D,4EAAkB,CAAC94D,MAAD,EAAS0F,SAAT,EAAoB2E,IAApB,EAA0BwuD,gBAA1B,CAAlB;AACD;;AAED,QAAIxtC,yBAAJ,EAA+B;AAC7BrrB,YAAM,CAACpD,CAAP,GAAWH,IAAI,CAACkH,GAAL,CAAS3D,MAAM,CAACpD,CAAhB,EAAmB,CAAnB,CAAX;AACAoD,YAAM,CAACpD,CAAP,GAAWH,IAAI,CAACwC,GAAL,CAASe,MAAM,CAACpD,CAAhB,EAAmB8I,SAAS,CAAC6F,KAAV,CAAgBnN,KAAnC,CAAX;AAEA4B,YAAM,CAACrD,CAAP,GAAWF,IAAI,CAACkH,GAAL,CAAS3D,MAAM,CAACrD,CAAhB,EAAmB,CAAnB,CAAX;AACAqD,YAAM,CAACrD,CAAP,GAAWF,IAAI,CAACwC,GAAL,CAASe,MAAM,CAACrD,CAAhB,EAAmB+I,SAAS,CAAC6F,KAAV,CAAgBjN,MAAnC,CAAX;AACD;;AAED+L,QAAI,CAAC6C,WAAL,GAAmB,IAAnB;AAEAxP,+DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AAEA,QAAMyN,UAAU,GAAGC,mEAAa,CAAC1N,OAAD,EAAUgM,OAAV,EAAmB,OAAnB,CAAhC;;AAEA,QAAIyB,UAAU,YAAYI,gEAA1B,EAA8C;AAC5CJ,gBAAU,CAAC+gB,iBAAX,CAA6BvgB,KAA7B,EAAoCjO,OAApC,EAA6C+M,IAA7C;AACD;;AAED,QAAM0hB,iBAAiB,GAAG;AACxB/jB,cAAQ,EAARA,QADwB;AAExBC,cAAQ,EAAED,QAFc;AAEJ;AACpB1K,aAAO,EAAPA,OAHwB;AAIxB8J,qBAAe,EAAEiD;AAJO,KAA1B;AAOA3M,+DAAQ,CAACC,WAAT,CAAqBuK,YAArB,CACE5K,OADF,EAEEqJ,kDAAM,CAACiY,oBAFT,EAGEmN,iBAHF;AAKD,GA1CD;;AA4CA/rB,QAAM,CAACG,MAAP,GAAgB,IAAhB;AACAU,uDAAK,CAAC6H,YAAN,GAAqB,IAArB;AAEApL,SAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC2I,UAAhC,EAA4C2f,iBAA5C;;AAEA,MAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AAC7BlvB,UAAM,CAACG,MAAP,GAAgB,KAAhB;AACAU,yDAAK,CAAC6H,YAAN,GAAqB,KAArB;AAEApL,WAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC2I,UAAnC,EAA+C2f,iBAA/C;AACAosC,kBAAc,CAACn6D,OAAf,CAAuB,UAAA4G,SAAS,EAAI;AAClCxK,aAAO,CAACwJ,mBAAR,CAA4BgB,SAA5B,EAAuConB,gBAAvC;AACD,KAFD;AAIAxxB,+DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;;AAEA,QAAI,OAAO8tB,kBAAP,KAA8B,UAAlC,EAA8C;AAC5CA,wBAAkB;AACnB;AACF,GAdD;;AAgBAiwC,gBAAc,CAACn6D,OAAf,CAAuB,UAAA4G,SAAS,EAAI;AAClCxK,WAAO,CAACoJ,gBAAR,CAAyBoB,SAAzB,EAAoConB,gBAApC;AACD,GAFD;AAGD,C;;;;;;;;;;;;ACjGD;AAAA;AAAA;AAAA;AAAA;AACA;AACA;;AAEA,IAAMosC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAC7Bh+D,OAD6B,EAE7BgC,OAF6B,EAG7BqJ,MAH6B,EAI7B0hB,iBAJ6B,EAK1B;AACH,MAAM1sB,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,MAAM8D,eAAe,GAAG/D,2DAAQ,CAAC+D,eAAjC;AACA,MAAM62D,WAAW,GAAG;AAClBp8D,SAAK,EAAEyB,WAAW,CAACC,aAAZ,CAA0BN,OAA1B,EAAmCgC,OAAO,CAAC22D,kBAA3C,CADW;AAElB95D,OAAG,EAAEwB,WAAW,CAACC,aAAZ,CAA0BN,OAA1B,EAAmCgC,OAAO,CAACu3D,gBAA3C;AAFa,GAApB;AAKA,MAAM/B,eAAe,GAAGrzD,eAAe,CAAC62D,WAAhB,CAA4BxD,eAA5B,CACtBwD,WADsB,EAEtB3vD,MAFsB,CAAxB;AAKA,SAAOmsD,eAAe,GAAGzqC,iBAAzB;AACD,CAnBD;;AAqBe,yEAAS/sB,OAAT,EAAkB+M,IAAlB,EAAwB1B,MAAxB,EAA2D;AAAA,MAA3BoR,eAA2B,uEAAT,OAAS;AACxE,MAAMpc,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,MAAM8D,eAAe,GAAG/D,2DAAQ,CAAC+D,eAAjC;AAFwE,MAGhEnC,OAHgE,GAGpD+K,IAHoD,CAGhE/K,OAHgE;AAIxE,MAAMg5D,WAAW,GAAG;AAClBp8D,SAAK,EAAEyB,WAAW,CAACC,aAAZ,CAA0BN,OAA1B,EAAmCgC,OAAO,CAACpD,KAA3C,CADW;AAElBC,OAAG,EAAEwB,WAAW,CAACC,aAAZ,CAA0BN,OAA1B,EAAmCgC,OAAO,CAACnD,GAA3C;AAFa,GAApB;AAKA,MAAM24D,eAAe,GAAGrzD,eAAe,CAAC62D,WAAhB,CAA4BxD,eAA5B,CACtBwD,WADsB,EAEtB3vD,MAFsB,CAAxB;;AAKA,MAAIyf,+EAAsB,CAAC9oB,OAAO,CAACyC,OAAT,EAAkB4G,MAAlB,CAA1B,EAAqD;AACnD,WAAO,IAAP;AACD;;AAED,MAAM0hB,iBAAiB,GACrBtQ,eAAe,KAAK,OAApB,GAA8BlZ,qDAAK,CAACk+B,cAApC,GAAqDl+B,qDAAK,CAACm+B,cAD7D;;AAGA,MAAIs8B,sBAAsB,CAACh+D,OAAD,EAAUgC,OAAV,EAAmBqJ,MAAnB,EAA2B0hB,iBAA3B,CAA1B,EAAyE;AACvE,WAAO,IAAP;AACD;;AAED,SAAOyqC,eAAe,GAAGzqC,iBAAzB;AACD,C;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDD;AAA6B;AAC7B;AACA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AAEe,yEAAS5kB,GAAT,EAAc;AAAA;;AAC3B,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAD2B,MAEnBrI,OAFmB,GAEeoI,SAFf,CAEnBpI,OAFmB;AAAA,MAEVsV,aAFU,GAEelN,SAFf,CAEVkN,aAFU;AAAA,MAEKrH,KAFL,GAEe7F,SAFf,CAEK6F,KAFL;AAAA,4BAQvB,KAAKnF,aARkB;AAAA,MAIzBxF,YAJyB,uBAIzBA,YAJyB;AAAA,MAKzB0mD,kBALyB,uBAKzBA,kBALyB;AAAA,MAMzBlnD,mBANyB,uBAMzBA,mBANyB;AAAA,MAOzBmnD,YAPyB,uBAOzBA,YAPyB;AAU3B,MAAMjrD,QAAQ,GAAGiJ,8DAAS,CAAC,qBAAD,CAAT,CAAiCa,aAAjC,CAA+C9J,QAAhE,CAV2B,CAY3B;;AACA,MAAMwR,QAAQ,GAAG5H,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA7B;;AAEA,MAAI,CAACuG,QAAL,EAAe;AACb;AACD;;AAjB0B,yBAmBkBqb,qEAAe,CAAC5d,KAAD,CAnBjC;AAAA,MAmBnBuI,eAnBmB,oBAmBnBA,eAnBmB;AAAA,MAmBF2uC,eAnBE,oBAmBFA,eAnBE,EAqB3B;;;AACA,MAAI,CAAC3uC,eAAD,IAAoB,CAAC2uC,eAAzB,EAA0C;AACxC;AACD,GAxB0B,CA0B3B;;;AACA,MAAM3mD,OAAO,GAAGyW,uEAAa,CAACK,aAAa,CAAC1O,MAAf,CAA7B;AAEA,MAAI9H,KAAJ;AACA,MAAMghC,WAAW,GAAG59B,sEAAU,CAACk+B,cAAX,EAApB;AACA,MAAMrhC,SAAS,GAAGiE,qEAAS,CAACE,YAAV,EAAlB;;AA/B2B,6BAiClBV,CAjCkB;AAkCzB,QAAMuK,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcvK,CAAd,CAAb;;AAEA,QAAIuK,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B;AACD;;AAEDpY,SAAK,GAAGiO,IAAI,CAAClK,MAAL,GAAci9B,WAAd,GAA4B59B,sEAAU,CAACC,YAAX,EAApC,CAxCyB,CA0CzB;;AACA,QAAI4K,IAAI,CAAC6C,WAAL,KAAqB,IAAzB,EAA+B;AAC7B,UAAI7C,IAAI,CAACsgD,eAAL,IAAwBtgD,IAAI,CAACugD,gBAAjC,EAAmD;AACjD,aAAI,CAACnD,0BAAL,CAAgCl8C,KAAhC,EAAuCjO,OAAvC,EAAgD+M,IAAhD;AACD,OAFD,MAEO;AACL,aAAI,CAACyhB,iBAAL,CAAuBvgB,KAAvB,EAA8BjO,OAA9B,EAAuC+M,IAAvC;AACD;AACF;;AAEDzG,kEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvB;AACAorB,yEAAS,CAACprB,OAAD,EAAU,KAAI,CAACsK,aAAf,CAAT;AAFuB,0BAUnBiE,IAAI,CAAC/K,OAVc;AAAA,UAKrBpD,KALqB,iBAKrBA,KALqB;AAAA,UAMrBC,GANqB,iBAMrBA,GANqB;AAAA,UAOrB85D,kBAPqB,iBAOrBA,kBAPqB;AAAA,UAQrBY,gBARqB,iBAQrBA,gBARqB;AAAA,UASrB90D,OATqB,iBASrBA,OATqB;AAYvB,UAAMumD,WAAW,GAAG;AAAElsD,aAAK,EAALA;AAAF,OAApB;AACA,UAAMm/D,wBAAwB,GAAG;AAAEn/D,aAAK,EAALA,KAAF;AAASo/D,mBAAW,EAAXA;AAAT,OAAjC;;AAEA,UAAIjU,YAAJ,EAAkB;AAChBe,mBAAW,CAAChsD,QAAZ,GAAuBA,QAAvB;AACAi/D,gCAAwB,CAACj/D,QAAzB,GAAoCA,QAApC;AACD,OAlBsB,CAoBvB;;;AACAQ,wEAAQ,CAAChB,OAAD,EAAUwB,OAAV,EAAmBpB,KAAnB,EAA0BC,GAA1B,EAA+BmsD,WAA/B,CAAR,CArBuB,CAuBvB;;AACA,UAAMkT,WAAW,GAAGn/D,SAApB;AAEAk6D,8FAA8B,CAAC7wD,SAAD,EAAY2E,IAAZ,CAA9B;AAEAvN,wEAAQ,CACNhB,OADM,EAENwB,OAFM,EAGN24D,kBAHM,EAINY,gBAJM,EAKN0E,wBALM,CAAR,CA5BuB,CAoCvB;;AACA,UAAMhT,aAAa,GAAG;AACpBnsD,aAAK,EAALA,KADoB;AAEpBwE,oBAAY,EAAZA,YAFoB;AAGpBV,2BAAmB,EAAEonD,kBAHD;AAIpBlnD,2BAAmB,EAAnBA;AAJoB,OAAtB,CArCuB,CA4CvB;;AACA,UAAI,KAAI,CAACgG,aAAL,CAAmBqhB,WAAvB,EAAoC;AAClCA,+EAAW,CAAC3rB,OAAD,EAAU4J,SAAV,EAAqB2E,IAAI,CAAC/K,OAA1B,EAAmCipD,aAAnC,CAAX;AACD,OA/CsB,CAiDvB;AACA;AACA;;;AACA,UAAMrmD,OAAO,GAAG,EAAhB;;AACA,UAAMD,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAA3C,OAAO;AAAA,eAAI,CACrCA,OAAO,CAACpD,KAD6B,EAErCoD,OAAO,CAACnD,GAF6B,EAGrCmD,OAAO,CAAC22D,kBAH6B,EAIrC32D,OAAO,CAACu3D,gBAJ6B,CAAJ;AAAA,OAAnC;;AAMA,UAAM3zD,SAAS,GAAGu4D,cAAc,CAACpxD,IAAD,EAAOyJ,eAAP,EAAwB2uC,eAAxB,CAAhC;AAEAj7B,mFAAiB,CACf1rB,OADe,EAEfwB,OAFe,EAGfyE,OAHe,EAIfmB,SAJe,EAKfmH,IAAI,CAAC/K,OALU,EAMf2C,mBANe,EAOf7F,KAPe,EAQfC,SARe,EASf6F,OATe,EAUf,IAVe,CAAjB;AAYD,KAzEG,CAAJ;AAnDyB;;AAiC3B,OAAK,IAAIpC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgO,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAAA,qBAAtCA,CAAsC;;AAAA,6BAI3C;AAwFH;AACF;;AAED,IAAM27D,cAAc,GAAG,SAAjBA,cAAiB,CAACpxD,IAAD,EAAOyJ,eAAP,EAAwB2uC,eAAxB,EAA4C;AACjE,MAAIqG,MAAM,GAAG,KAAb;;AAEA,MAAI,CAACh1C,eAAD,IAAoB,CAAC2uC,eAAzB,EAA0C;AACxCqG,UAAM,GAAG,SAAT;AACD;;AAED,MAAM4S,UAAU,gBAASrxD,IAAI,CAACsgD,eAAd,SAAgC7B,MAAhC,CAAhB;AACA,MAAM6S,SAAS,gBAAStxD,IAAI,CAACugD,gBAAd,SAAiC9B,MAAjC,CAAf;AARiE,MAUzD8S,MAVyD,GAU9CvxD,IAV8C,CAUzDuxD,MAVyD;;AAYjE,MAAIA,MAAM,IAAI1yD,KAAK,CAACC,OAAN,CAAcyyD,MAAd,CAAd,EAAqC;AACnC,qGAAWA,MAAX,IAAmBF,UAAnB,EAA+BC,SAA/B;AACD;;AAED,SAAO,CAACD,UAAD,EAAaC,SAAb,CAAP;AACD,CAjBD,C;;;;;;;;;;;;ACjJA;AAAA;AAAA;;;;;;;AAOe,SAASjR,oCAAT,CACbtjD,eADa,EAEbqjD,YAFa,EAGb;AAAA,MACQ32C,eADR,GAC6C22C,YAD7C,CACQ32C,eADR;AAAA,MACyB2uC,eADzB,GAC6CgI,YAD7C,CACyBhI,eADzB;AAAA,8BAOIr7C,eAAe,CAAC9H,OAPpB;AAAA,MAGEpD,KAHF,yBAGEA,KAHF;AAAA,MAIEC,GAJF,yBAIEA,GAJF;AAAA,MAKE85D,kBALF,yBAKEA,kBALF;AAAA,MAMEY,gBANF,yBAMEA,gBANF,EASA;;AACA,MAAMxC,EAAE,GAAG,CAACn4D,KAAK,CAACU,CAAN,GAAUT,GAAG,CAACS,CAAf,KAAqB6lD,eAAe,IAAI,CAAxC,CAAX;AACA,MAAM6R,EAAE,GAAG,CAACp4D,KAAK,CAACS,CAAN,GAAUR,GAAG,CAACQ,CAAf,KAAqBmX,eAAe,IAAI,CAAxC,CAAX;AACA,MAAIhT,MAAM,GAAGrE,IAAI,CAACmf,IAAL,CAAUy4C,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAzB,CAAb,CAZA,CAcA;;AACA,MAAMqD,EAAE,GACN,CAAC1B,kBAAkB,CAACr5D,CAAnB,GAAuBi6D,gBAAgB,CAACj6D,CAAzC,KAA+C6lD,eAAe,IAAI,CAAlE,CADF;AAEA,MAAMmV,EAAE,GACN,CAAC3B,kBAAkB,CAACt5D,CAAnB,GAAuBk6D,gBAAgB,CAACl6D,CAAzC,KAA+CmX,eAAe,IAAI,CAAlE,CADF;AAEA,MAAI1V,KAAK,GAAG3B,IAAI,CAACmf,IAAL,CAAU+7C,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAzB,CAAZ;;AAEA,MAAI,CAACx5D,KAAL,EAAY;AACVA,SAAK,GAAG,CAAR;AACD,GAvBD,CAyBA;;;AACA,MAAIA,KAAK,GAAG0C,MAAZ,EAAoB;AAClB,QAAM+6D,KAAK,GAAGz9D,KAAd;AACA,QAAM09D,KAAK,GAAGh7D,MAAd;AAEAA,UAAM,GAAG+6D,KAAT;AACAz9D,SAAK,GAAG09D,KAAR;AACD;;AAED,SAAO;AACLnR,mBAAe,EAAE7pD,MAAM,CAACk2C,OAAP,CAAe,CAAf,CADZ;AAEL4T,oBAAgB,EAAExsD,KAAK,CAAC44C,OAAN,CAAc,CAAd;AAFb,GAAP;AAID,C;;;;;;;;;;;;AChDD;AAAA;AAAA;;;;;;;;;;AAUe,SAAS4hB,2BAAT,CACb7kD,kBADa,EAEbD,eAFa,EAGbgwC,UAHa,EAIbC,QAJa,EAKb;AACA,MAAMgY,KAAK,GAAG,CAACjY,UAAU,CAAClnD,CAAX,GAAemnD,QAAQ,CAACnnD,CAAzB,IAA8BkX,eAA5C;AACA,MAAMkoD,KAAK,GAAG,CAAClY,UAAU,CAACnnD,CAAX,GAAeonD,QAAQ,CAACpnD,CAAzB,IAA8BoX,kBAA5C;AAEA,SAAOtX,IAAI,CAACmf,IAAL,CAAUmgD,KAAK,GAAGA,KAAR,GAAgBC,KAAK,GAAGA,KAAlC,CAAP;AACD,C;;;;;;;;;;;;ACpBD;AAAA;AAAA;;;;;;;;;;AAUe,SAASjC,aAAT,CACbhmD,kBADa,EAEbD,eAFa,EAGbgwC,UAHa,EAIbC,QAJa,EAKb;AACA,MAAMsQ,EAAE,GAAG,CAACvQ,UAAU,CAAClnD,CAAX,GAAemnD,QAAQ,CAACnnD,CAAzB,IAA8BmX,kBAAzC;AACA,MAAMugD,EAAE,GAAG,CAACxQ,UAAU,CAACnnD,CAAX,GAAeonD,QAAQ,CAACpnD,CAAzB,IAA8BmX,eAAzC;AACA,MAAMhT,MAAM,GAAGrE,IAAI,CAACmf,IAAL,CAAUy4C,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAzB,CAAf;AACA,MAAM2H,OAAO,GAAG5H,EAAE,GAAGvzD,MAArB;AACA,MAAMo7D,OAAO,GAAG5H,EAAE,GAAGxzD,MAArB;AAEA,SAAO;AACLlE,KAAC,EAAEq/D,OADE;AAELt/D,KAAC,EAAEu/D,OAFE;AAGLp7D,UAAM,EAANA;AAHK,GAAP;AAKD,C;;;;;;;;;;;;AC3BD;AAAA;AAAA;AAAA;AAEA;;;;;;;;;;;AAUe,SAASy1D,8BAAT,CACb7wD,SADa,EAEb0B,eAFa,EAGb;AACA,MAAI,CAACA,eAAe,CAAC9H,OAAhB,CAAwB22D,kBAAxB,CAA2CO,MAAhD,EAAwD;AACtD,WAAO,KAAP;AACD;;AAED,MAAI/P,MAAJ,EAAYC,MAAZ,EAAoByV,IAApB,EAA0BC,IAA1B;AALA,8BAOuBh1D,eAAe,CAAC9H,OAPvC;AAAA,MAOQpD,KAPR,yBAOQA,KAPR;AAAA,MAOeC,GAPf,yBAOeA,GAPf;AAAA,yBAQwDuJ,SAAS,CAAC6F,KARlE;AAAA,+CAQQwI,kBARR;AAAA,MAQQA,kBARR,sCAQ6B,CAR7B;AAAA,+CAQgCD,eARhC;AAAA,MAQgCA,eARhC,sCAQkD,CARlD;;AAUA,MAAI5X,KAAK,CAACU,CAAN,KAAYT,GAAG,CAACS,CAAhB,IAAqBV,KAAK,CAACS,CAAN,KAAYR,GAAG,CAACQ,CAAzC,EAA4C;AAC1C8pD,UAAM,GAAGvqD,KAAK,CAACU,CAAf;AACA8pD,UAAM,GAAGxqD,KAAK,CAACS,CAAf;AACAw/D,QAAI,GAAGhgE,GAAG,CAACS,CAAX;AACAw/D,QAAI,GAAGjgE,GAAG,CAACQ,CAAX;AACD,GALD,MAKO;AACL;AACA,QAAMi9D,GAAG,GAAG;AACVh9D,OAAC,EAAE,CAACV,KAAK,CAACU,CAAN,GAAUT,GAAG,CAACS,CAAf,IAAoB,CADb;AAEVD,OAAC,EAAE,CAACT,KAAK,CAACS,CAAN,GAAUR,GAAG,CAACQ,CAAf,IAAoB;AAFb,KAAZ,CAFK,CAOL;;AACA,QAAMqzB,MAAM,GAAG+pC,8DAAa,CAC1BhmD,kBAD0B,EAE1BD,eAF0B,EAG1B5X,KAH0B,EAI1BC,GAJ0B,CAA5B;AAOA,QAAMkgE,uBAAuB,GAAGrsC,MAAM,CAAClvB,MAAP,GAAgB,CAAhD;AACA,QAAMk5D,aAAa,GAAGqC,uBAAuB,IAAI,IAAIvoD,eAAR,CAA7C;AACA,QAAMmmD,gBAAgB,GAAGoC,uBAAuB,IAAI,IAAItoD,kBAAR,CAAhD;AAEA0yC,UAAM,GAAGmT,GAAG,CAACh9D,CAAJ,GAAQq9D,gBAAgB,GAAGjqC,MAAM,CAACrzB,CAA3C;AACA+pD,UAAM,GAAGkT,GAAG,CAACj9D,CAAJ,GAAQq9D,aAAa,GAAGhqC,MAAM,CAACpzB,CAAxC;AACAu/D,QAAI,GAAGvC,GAAG,CAACh9D,CAAJ,GAAQq9D,gBAAgB,GAAGjqC,MAAM,CAACrzB,CAAzC;AACAy/D,QAAI,GAAGxC,GAAG,CAACj9D,CAAJ,GAAQq9D,aAAa,GAAGhqC,MAAM,CAACpzB,CAAtC;AACD;;AAEDwK,iBAAe,CAAC9H,OAAhB,CAAwB22D,kBAAxB,CAA2Cr5D,CAA3C,GAA+C6pD,MAA/C;AACAr/C,iBAAe,CAAC9H,OAAhB,CAAwB22D,kBAAxB,CAA2Ct5D,CAA3C,GAA+C+pD,MAA/C;AACAt/C,iBAAe,CAAC9H,OAAhB,CAAwBu3D,gBAAxB,CAAyCj6D,CAAzC,GAA6Cu/D,IAA7C;AACA/0D,iBAAe,CAAC9H,OAAhB,CAAwBu3D,gBAAxB,CAAyCl6D,CAAzC,GAA6Cy/D,IAA7C;AAEA,SAAO,IAAP;AACD,C;;;;;;;;;;;;AC7DD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;;AACe;AACb18C,WAAS,EAATA,qDADa;AAEbC,mBAAiB,EAAjBA,6DAFa;AAGbC,mBAAiB,EAAjBA,6DAHa;AAIbC,eAAa,EAAbA,yDAJa;AAKbC,eAAa,EAAbA,yDALa;AAMbC,mBAAiB,EAAjBA,6DANa;AAObC,iBAAe,EAAfA,2DAPa;AAQbC,YAAU,EAAVA,sDARa;AASbC,WAAS,EAATA,qDATa;AAUbC,kBAAgB,EAAhBA,4DAVa;AAWbC,gBAAc,EAAdA,2DAAcA;AAXD,CAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AAIA;AAEA,IAAMrZ,MAAM,GAAGC,8DAAS,CAAC,oBAAD,CAAxB;AAEA;;;;;;;IAMMmE,kB;;;;;;;;;;;;;AACJ;AACA;AACA;;AAEA;;;;;;;;;AASA;yCACqB1F,G,EAAK;AACxB,YAAM,IAAImsB,KAAJ,2DAC+C,KAAKrqB,IADpD,OAAN;AAGD;AAED;;;;;;;;;;;;;AAaA;;;;kCACcjK,O,EAAS+M,I,EAAM1B,M,EAAmC;AAAA,UAA3BoR,eAA2B,uEAAT,OAAS;AAC9D,YAAM,IAAI6X,KAAJ,oDAAsD,KAAKrqB,IAA3D,OAAN;AACD;AAED;;;;;;;;;;;;;AAaA;;;;sCACkBjK,O,EAAS+M,I,EAAM1B,M,EAAQ;AACvC,YAAM,IAAIipB,KAAJ,wDAC4C,KAAKrqB,IADjD,OAAN;AAGD;AAED;;;;;;;AAOA;;;;mCACe9B,G,EAAK;AAClB,YAAM,IAAImsB,KAAJ,8CAAgD,KAAKrqB,IAArD,OAAN;AACD,K,CAED;AACA;AACA;;AAEA;;;;;;;;;;;sCAQkB9B,G,EAAK;AAAA,wBACcA,GAAG,CAACE,MADlB;AAAA,UACbrI,OADa,eACbA,OADa;AAAA,UACJsL,aADI,eACJA,aADI;AAErB,UAAMD,MAAM,GAAGC,aAAa,CAAC1E,MAA7B;AACA,UAAMiG,SAAS,GAAGjE,kFAAY,CAAC5I,OAAD,EAAU,KAAKiK,IAAf,CAA9B;AAEA,UAAIiE,gBAAgB,GAAG,KAAvB;;AAEA,WAAK,IAAI6C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGlE,SAAS,CAACE,IAAV,CAAevJ,MAAnC,EAA2CuN,CAAC,EAA5C,EAAgD;AAC9C,YAAMhE,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAegE,CAAf,CAAb,CAD8C,CAG9C;;AACA,YAAIuY,gFAAe,CAACtpB,OAAD,EAAU+M,IAAI,CAAC/K,OAAf,EAAwBqJ,MAAxB,CAAf,KAAmD,IAAvD,EAA6D;AAC3D6C,0BAAgB,GAAG,IAAnB;AACD,SAN6C,CAQ9C;AACA;;;AACA,YAAM8wD,0BAA0B,GAC9B,KAAK7xD,aAAL,CAAmBnN,OAAnB,EAA4B+M,IAA5B,EAAkC1B,MAAlC,EAA0C,OAA1C,KAAsD,CAAC0B,IAAI,CAAClK,MAD9D;AAEA,YAAMo8D,0BAA0B,GAC9B,CAAC,KAAK9xD,aAAL,CAAmBnN,OAAnB,EAA4B+M,IAA5B,EAAkC1B,MAAlC,EAA0C,OAA1C,CAAD,IAAuD0B,IAAI,CAAClK,MAD9D;;AAGA,YAAIm8D,0BAA0B,IAAIC,0BAAlC,EAA8D;AAC5DlyD,cAAI,CAAClK,MAAL,GAAc,CAACkK,IAAI,CAAClK,MAApB;AACAqL,0BAAgB,GAAG,IAAnB;AACD;AACF;;AAED,aAAOA,gBAAP;AACD;AAED;;;;;;;;;;;;;;2CAWuB/F,G,EAAKqI,Q,EAAU9N,M,EAAmC;AAAA,UAA3B+Z,eAA2B,uEAAT,OAAS;AACvE8M,kGAAwB,CAACphB,GAAD,EAAM,IAAN,EAAYqI,QAAZ,EAAsB9N,MAAtB,EAA8B+Z,eAA9B,CAAxB;AACD;AAED;;;;;;;;;;;;;;yCAWqBtU,G,EAAK0lB,U,EAAuC;AAAA,UAA3BpR,eAA2B,uEAAT,OAAS;AAC/D+M,wFAAc,CAACrhB,GAAD,EAAM,IAAN,EAAY0lB,UAAZ,EAAwBpR,eAAxB,CAAd;AACD;AAED;;;;;;;;;;;sCAQkBxO,K,EAAOjO,O,EAAS+M,I,EAAM;AACtC;AACAtD,YAAM,CAACmlB,IAAP,iDAAqD,KAAK3kB,IAA1D;AACD;;;;EA3J8Bif,oD;;AA8JlBrb,iFAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AAKA,IAAM7F,kBAAkB,GAAGC,kEAAS,CAAC,cAAD,CAApC;AAEA;;;;;;;;IAOMkhB,a;;;;;AACJ,yBAAY6X,KAAZ,EAAsC;AAAA;;AAAA,QAAnBsW,YAAmB,uEAAJ,EAAI;;AAAA;;AACpC,QAAI,CAACA,YAAY,CAACxuC,aAAlB,EAAiC;AAC/BwuC,kBAAY,CAACxuC,aAAb,GAA6B;AAAEo2D,0BAAkB,EAAE;AAAtB,OAA7B;AACD;;AAED,iNAAMl+B,KAAN,EAAasW,YAAb;AAEA,UAAKnpC,iBAAL,GAAyB,IAAzB;AACA,UAAKihC,iBAAL,GAAyB,IAAzB;AAEA,UAAKhd,QAAL,GAAgB,KAAhB;AACA,UAAKggC,uBAAL,GAA+B,MAAKA,uBAAL,CAA6BpnD,IAA7B,4FAA/B;AAXoC;AAYrC,G,CAED;AACA;AACA;;AAEA;;;;;;;AAOA;;;;;gCACY7C,G,EAAK;AACf,YAAM,IAAImsB,KAAJ,kDAAoD,KAAKrqB,IAAzD,OAAN;AACD;AAED;;;;;;;;AAQA;;;;2BACO9B,G,EAAK;AACV,YAAM,IAAImsB,KAAJ,6CAA+C,KAAKrqB,IAApD,OAAN;AACD,K,CAED;AACA;AACA;;AAEA;;;;;;;;;;;sCAQkB9B,G,EAAK;AAAA,UACbmD,aADa,GACKnD,GAAG,CAACE,MADT,CACbiD,aADa;AAGrB,WAAK+mB,gBAAL,GAAwB/mB,aAAa,CAAC2C,KAAtC,CAHqB,CAKrB;AACA;;AACA,UAAI,KAAKmkB,QAAT,EAAmB;AACjB,aAAK+sC,MAAL,CAAYh3D,GAAZ;AACD;AACF;AAED;;;;;;;;;;;yCAQqBA,G,EAAK;AACxB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADwB,UAEhBrI,OAFgB,GAEWoI,SAFX,CAEhBpI,OAFgB;AAAA,UAEPsL,aAFO,GAEWlD,SAFX,CAEPkD,aAFO;;AAIxB,WAAK8zD,cAAL,CAAoBj3D,GAApB;;AAEA,WAAKkqB,gBAAL,GAAwB/mB,aAAa,CAAC2C,KAAtC;AACA,WAAKmkB,QAAL,GAAgB,IAAhB;;AACA,WAAKitC,yBAAL,CAA+Br/D,OAA/B;;AACA,WAAKm/D,MAAL,CAAYh3D,GAAZ;;AAEA,aAAO,IAAP;AACD;AAED;;;;;;;;;;;mCAQeA,G,EAAK;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAMrI,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;AAFkB,UAGV8I,aAHU,GAGiBd,kBAHjB,CAGVc,aAHU;AAAA,UAGK2C,OAHL,GAGiBzD,kBAHjB,CAGKyD,OAHL;;AAAA,gCAUdA,OAAO,CAACiI,UAAR,CAAmB1T,OAAnB,CAVc;AAAA,UAMhB0T,UANgB,uBAMhBA,UANgB;AAAA,UAOhBF,UAPgB,uBAOhBA,UAPgB;AAAA,UAQhB+H,mBARgB,uBAQhBA,mBARgB;AAAA,UAShBD,mBATgB,uBAShBA,mBATgB;;AAYlB,UAAMgkD,WAAW,GACf,KAAKC,WAAL,CAAiBn3D,SAAjB,KAA+B,KAAKU,aAAL,CAAmBo2D,kBADpD;AAGA,WAAKM,cAAL,GAAsB;AACpB9rD,kBAAU,EAAVA,UADoB;AAEpBF,kBAAU,EAAVA,UAFoB;AAGpB+H,2BAAmB,EAAnBA,mBAHoB;AAIpBD,2BAAmB,EAAnBA,mBAJoB;AAKpBgkD,mBAAW,EAAXA;AALoB,OAAtB;;AAQA,UAAIx2D,aAAa,CAAC4/B,YAAlB,EAAgC;AAC9B,YAAM+2B,iBAAiB,GAAG/rD,UAAU,CAACe,SAAX,CAAqBuc,KAArB,EAA1B;AAEA,aAAKwuC,cAAL,CAAoBC,iBAApB,GAAwCA,iBAAxC;AACD;AACF;AAED;;;;;;;;;;;iCAQat3D,G,EAAK;AAAA,UACRW,aADQ,GACmBd,kBADnB,CACRc,aADQ;AAAA,UACOslB,OADP,GACmBpmB,kBADnB,CACOomB,OADP;AAAA,iCAE4B,KAAKoxC,cAFjC;AAAA,UAER9rD,UAFQ,wBAERA,UAFQ;AAAA,UAEI6H,mBAFJ,wBAEIA,mBAFJ,EAIhB;;AACA,UAAM2wB,UAAU,GAAG,IAAIC,GAAJ,CAAQz4B,UAAU,CAACe,SAAnB,CAAnB;AACA,UAAM23B,QAAQ,GAAGF,UAAU,CAACxB,MAAX,EAAjB;AAEA,UAAMzzB,kBAAkB,GAAG,EAA3B;AACA,UAAIo1B,IAAI,GAAG,KAAX;;AAEA,aAAO,CAACA,IAAR,EAAc;AACZ,YAAMC,IAAI,GAAGF,QAAQ,CAACE,IAAT,EAAb;AAEAD,YAAI,GAAGC,IAAI,CAACD,IAAZ;;AAEA,YAAI,CAACA,IAAL,EAAW;AACTp1B,4BAAkB,CAACqC,IAAnB,CAAwBgzB,IAAI,CAACxd,KAA7B;AACD;AACF;;AAEDpb,gBAAU,CAACuD,kBAAX,GAAgCA,kBAAhC;;AAEA,UAAInO,aAAa,CAAC4/B,YAAlB,EAAgC;AAAA,YACtB+2B,iBADsB,GACA,KAAKD,cADL,CACtBC,iBADsB;AAE9B,YAAMC,YAAY,GAAGhsD,UAAU,CAACe,SAAhC;AACA,YAAM2c,SAAS,GAAG;AAChBC,sBAAY,EAAE9V,mBADE;AAEhB+V,cAAI,EAAEC,mFAAuB,CAACkuC,iBAAD,EAAoBC,YAApB;AAFb,SAAlB;AAKAtxC,eAAO,CAACoD,SAAR,CAAkB,KAAKxxB,OAAvB,EAAgC,CAACoxB,SAAD,CAAhC;AACD;;AAEDyc,8FAA4B,CAAC,KAAK7tC,OAAN,CAA5B;AACD,K,CAED;AACA;AACA;;AAEA;;;;;;;;;;;sCAQkBmI,G,EAAK;AAAA,UACbmD,aADa,GACKnD,GAAG,CAACE,MADT,CACbiD,aADa;AAGrB,WAAK+mB,gBAAL,GAAwB/mB,aAAa,CAAC2C,KAAtC;AACD;AAED;;;;;;;;;mCAMe9F,G,EAAK;AAClB,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAMrI,OAAO,GAAGoI,SAAS,CAACpI,OAA1B,CAFkB,CAIlB;;AACA,UAAIulB,gFAAsB,CAACvlB,OAAD,EAAU,KAAKiK,IAAf,CAA1B,EAAgD;AAC9C;AACA,aAAKioB,WAAL,CAAiB/pB,GAAjB;AACD;AACF;AAED;;;;;;;AAOA;;;;oCACgBA,G,EAAK;AACnB,UAAI;AACF/H,mEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC,KAAKlK,OAAtC;AACD,OAFD,CAEE,OAAO60B,KAAP,EAAc;AACd;AACA;AACA;AACD;AACF;AAED;;;;;;;;;;;4CAQwB1sB,G,EAAK;AAC3B,UAAMC,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAMrI,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;;AAEA,WAAK2/D,YAAL,CAAkBx3D,GAAlB;;AAEA,WAAKiqB,QAAL,GAAgB,KAAhB;AACA,WAAKE,cAAL,GAAsB,IAAtB;;AACA,WAAKstC,wBAAL,CAA8B5/D,OAA9B;AACD;;;qCAEgBmI,G,EAAK;AACpB,UAAI,KAAKiqB,QAAT,EAAmB;AACjB;AACA,aAAKutC,YAAL,CAAkBx3D,GAAlB;;AACA,aAAKi3D,cAAL,CAAoBj3D,GAApB;AACD;AACF;AAED;;;;;;;;;;;8CAQ0BnI,O,EAAS;AACjCA,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC2F,QAAnC,EAA6C,KAAKojD,uBAAlD;AACApyD,aAAO,CAACwJ,mBAAR,CACEH,kDAAM,CAACiF,WADT,EAEE,KAAK8jD,uBAFP;AAKApyD,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAAC2F,QAAhC,EAA0C,KAAKojD,uBAA/C;AACApyD,aAAO,CAACoJ,gBAAR,CAAyBC,kDAAM,CAACiF,WAAhC,EAA6C,KAAK8jD,uBAAlD;AAEAhyD,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD;AAED;;;;;;;;;;;6CAQyBA,O,EAAS;AAChCA,aAAO,CAACwJ,mBAAR,CAA4BH,kDAAM,CAAC2F,QAAnC,EAA6C,KAAKojD,uBAAlD;AACApyD,aAAO,CAACwJ,mBAAR,CACEH,kDAAM,CAACiF,WADT,EAEE,KAAK8jD,uBAFP;AAKAhyD,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiClK,OAAjC;AACD,K,CAED;AACA;AACA;;AAEA;;;;;;;;;;wCAOoB;AAAA,UACV8I,aADU,GACiBd,kBADjB,CACVc,aADU;AAAA,UACKslB,OADL,GACiBpmB,kBADjB,CACKomB,OADL;AAElB,UAAMyxC,SAAS,GAAG/2D,aAAa,CAAC5I,MAAhC;AACA,UAAI+tC,SAAS,GAAG9uC,IAAI,CAACkY,KAAL,CAAWwoD,SAAS,GAAG,GAAvB,CAAhB,CAHkB,CAKlB;AACA;;AACA,UAAI5xB,SAAS,KAAK4xB,SAAlB,EAA6B;AAC3B5xB,iBAAS,IAAI,CAAb;AACD;;AAED7f,aAAO,CAACluB,MAAR,CAAe+tC,SAAf;AACD;AAED;;;;;;;;;;wCAOoB;AAAA,UACVnlC,aADU,GACiBd,kBADjB,CACVc,aADU;AAAA,UACKslB,OADL,GACiBpmB,kBADjB,CACKomB,OADL;AAElB,UAAMyxC,SAAS,GAAG/2D,aAAa,CAAC5I,MAAhC;AACA,UAAM+tC,SAAS,GAAG9uC,IAAI,CAACkY,KAAL,CAAWwoD,SAAS,GAAG,GAAvB,CAAlB;AAEAzxC,aAAO,CAACluB,MAAR,CAAe+tC,SAAf;AACD;;;gCAEW7lC,S,EAAW;AACrB,aAAQA,SAAS,CAACwK,KAAV,IAAmBxK,SAAS,CAACwK,KAAV,CAAgBoI,OAApC,IAAgD5S,SAAS,CAAC4S,OAAjE;AACD;;;;EA9UyBkO,oD;;AAiVbC,4EAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpWA;AACA;AACA;AACA;AACA;AAEA,IAAM1f,MAAM,GAAGC,iEAAS,CAAC,qBAAD,CAAxB;AAEA,IAAMue,yBAAyB,GAAGhgB,wDAAS,CAAC,qBAAD,CAA3C;AAEA;;;;;;;;;AASA;;;;;;IAKMihB,Q;;;AACJ;;;;;AAKA,oBAAY8X,KAAZ,EAAmBsW,YAAnB,EAAiC;AAAA;;AAC/B;;;AAGA,SAAKgD,oBAAL,GAA4B1uB,kEAAS,CAAC0rB,YAAD,EAAetW,KAAf,CAArC;AAJ+B,gCAc3B,KAAKsZ,oBAdsB;AAAA,QAO7BrwC,IAP6B,yBAO7BA,IAP6B;AAAA,QAQ7BquC,UAR6B,yBAQ7BA,UAR6B;AAAA,QAS7BE,eAT6B,yBAS7BA,eAT6B;AAAA,QAU7B1vC,aAV6B,yBAU7BA,aAV6B;AAAA,QAW7ByG,yBAX6B,yBAW7BA,yBAX6B;AAAA,QAY7Bka,MAZ6B,yBAY7BA,MAZ6B;AAAA,QAa7B4kB,SAb6B,yBAa7BA,SAb6B;AAgB/B;;;;;AAIA,SAAKpkC,IAAL,GAAYA,IAAZ;AAEA;;AACA,SAAKvB,IAAL,GAAY,UAAZ;AACA,SAAK1I,OAAL,GAAeP,SAAf;AACA,SAAK8P,yBAAL,GAAiCA,yBAAyB,IAAI,EAA9D;AAEA,SAAK+oC,UAAL,GAAkBA,UAAU,IAAI,EAAhC;AACA,SAAKE,eAAL,GACEA,eAAe,IAAIl2C,MAAM,CAACC,IAAP,CAAY,KAAK+1C,UAAjB,EAA6B,CAA7B,CAAnB,IAAsD74C,SADxD;AAEA,SAAKqgE,cAAL,GAAsB,KAAKtnB,eAA3B;;AAEA,QAAInK,SAAJ,EAAe;AACb,WAAKA,SAAL,GAAiBA,SAAjB;AACD,KAlC8B,CAoC/B;AACA;;;AACA,SAAK0xB,QAAL,GAAgB,EAAhB,CAtC+B,CAwC/B;;AACA,SAAKC,cAAL,GAAsB19D,MAAM,CAAC8lB,MAAP,CAAc,EAAd,EAAkBtf,aAAlB,CAAtB,CAzC+B,CA2C/B;AACA;AACA;;AACA,SAAKqF,iBAAL,GAAyB,KAAzB;AACA,SAAKihC,iBAAL,GAAyB,KAAzB,CA/C+B,CAiD/B;;AACA,QAAI3lB,MAAM,IAAIA,MAAM,CAACjmB,MAArB,EAA6B;AAC3B,WAAKy8D,YAAL,CAAkBx2C,MAAlB;AACD;;AAED,SAAKy2C,QAAL,GAAgB59D,MAAM,CAAC8lB,MAAP,CAAc,EAAd,EAAkB,KAAKkyB,oBAAL,CAA0BjxB,OAA5C,CAAhB;AAEA,QAAM82C,aAAa,GACjB,KAAK3nB,eAAL,IAAwB,KAAK0nB,QAAL,CAAc,KAAKJ,cAAnB,CAD1B;;AAGA,QAAIK,aAAJ,EAAmB;AACjB,WAAK9xB,SAAL,GAAiB8xB,aAAjB;AACD;AACF,G,CAED;AACA;AACA;;AAEA;;;;;;;;;;;AA6BA;;;;;;;;iCAQa5gE,O,EAAS;AACpB,WAAKwgE,QAAL,GAAgBz9D,MAAM,CAAC8lB,MAAP,CAAc,EAAd,EAAkB,KAAK23C,QAAvB,EAAiCxgE,OAAjC,CAAhB;AACD;AAED;;;;;;;;;;;mCAQe;AACb,WAAKwgE,QAAL,GAAgB,EAAhB;AACD;AAED;;;;;;;;;;;;;;;;wCAaoB53D,G,EAAK8oB,a,EAAe;AACtC,aAAO,KAAKqnB,UAAL,CAAgB,KAAKwnB,cAArB,EAAqC/5D,IAArC,CAA0C,IAA1C,EAAgDoC,GAAhD,EAAqD8oB,aAArD,CAAP;AACD;AAED;;;;;;;;;;;;iCASamvC,W,EAAa;AACxB,WAAK,IAAI59D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG49D,WAAW,CAAC58D,MAAhC,EAAwChB,CAAC,EAAzC,EAA6C;AAC3C,YAAMi0C,KAAK,GAAGhtB,wDAAM,WAAI22C,WAAW,CAAC59D,CAAD,CAAf,EAApB;;AAEA,YAAI,qEAAOi0C,KAAP,MAAiB,QAArB,EAA+B;AAC7Bn0C,gBAAM,CAAC8lB,MAAP,CAAc,IAAd,EAAoBquB,KAApB;;AAEA,cAAI,OAAO,KAAK3kB,eAAZ,KAAgC,UAApC,EAAgD;AAC9C;AACA,iBAAKA,eAAL;AACD;AACF,SAPD,MAOO;AACLroB,gBAAM,CAACmlB,IAAP,WAAe,KAAK3kB,IAApB,qBAAmCwf,wDAAM,CAACjnB,CAAD,CAAzC;AACD;AACF,OAduB,CAgBxB;;;AACA,UAAI,KAAKsvB,eAAL,KAAyB,UAA7B,EAAyC;AACvC,eAAO,KAAKA,eAAZ;AACD;AACF;AAED;;;;;;;;;;;sCAQkBuuC,Q,EAAU;AAC1B,WAAKP,cAAL,GAAsBO,QAAtB;;AAEA,UAAIp4C,yBAAyB,CAACnf,aAA1B,CAAwCu7B,cAA5C,EAA4D;AAC1D,aAAKi8B,YAAL,CAAkB,KAAKtgE,OAAvB,EAAgCqgE,QAAhC;AACD;AACF;AAED;;;;;;;;;;iCAOargE,O,EAASqgE,Q,EAAU;AAC9B;AACA,UAAI,CAACrgE,OAAL,EAAc;AACZ;AACD,OAJ6B,CAM9B;;;AACA,UAAMiiC,MAAM,GAAG,KAAKi+B,QAAL,CAAcG,QAAd,CAAf;;AAEA,UAAIp+B,MAAJ,EAAY;AACV,aAAKoM,SAAL,GAAiBpM,MAAjB;;AAEA,YAAI,KAAKv5B,IAAL,KAAc,QAAlB,EAA4B;AAC1B0lC,uFAAa,CAACpuC,OAAD,EAAUiiC,MAAV,CAAb,CAD0B,CAE1B;AACD;AACF;AACF,K,CAED;AACA;AACA;AAEA;AACA;AACA;;AAEA;;;;;;;;;AAQA;;;;;;;;;AASA;;;;;;;;;AAQA;;;;;;;;AAQA;;;;;;;;;AAQA;;;;;;;;AAQA;;;;;;;;;AAQA;;;;;;;;;;wBAxMoB;AAClB,aAAO,KAAK+9B,cAAZ;AACD,K;sBAEiBl3D,a,EAAe;AAC/B,WAAKk3D,cAAL,GAAsBl3D,aAAtB;AACD,K,CAED;AACA;AACA;;AAEA;;;;;;;;wBAKc;AACZ,aAAO,KAAKi3D,QAAZ;AACD;;;wBArB0B,CAAE;;;;;;AAmNhB72C,uEAAf,E;;;;;;;;;;;;AC3TA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;CAGA;;AACA;AACA;CAGA;;AACe;AACbrb,oBAAkB,EAAlBA,8DADa;AAEbsb,eAAa,EAAbA,yDAFa;AAGbD,UAAQ,EAARA,oDAAQA;AAHK,CAAf,E;;;;;;;;;;;;;;;;;;;;;;ACVA;AACA;AAEA,IAAMq3C,YAAY,GAAGx3C,uDAAO,CAACkZ,MAA7B;AAEA;;AAEA;;;;;;;;;IASqB7Y,W;;;AACnB,uBAAYo3C,eAAZ,EAA6BjhE,OAA7B,EAAsC;AAAA;;AACpC,SAAKihE,eAAL,GAAuBA,eAAvB;AACA,SAAKjhE,OAAL,GAAe+C,MAAM,CAAC8lB,MAAP,CACb,EADa,EAEbm4C,YAAY,CAAC90D,OAAb,CAAqB04B,cAArB,EAFa,EAGb5kC,OAHa,CAAf;AAKD;AAED;;;;;;;;;;iCAMyB;AAAA,UAAdA,OAAc,uEAAJ,EAAI;;AACvB,UAAMkhE,SAAS,GAAG,KAAKC,sBAAL,CAA4BnhE,OAA5B,CAAlB;;AAEA,aAAO,IAAIohE,IAAJ,CAAS,CAACF,SAAD,CAAT,EAAsB;AAAEhxD,YAAI,EAAE;AAAR,OAAtB,CAAP;AACD;AAED;;;;;;;;;uCAM+B;AAAA,UAAdlQ,OAAc,uEAAJ,EAAI;AAC7B,aAAO,KAAKmhE,sBAAL,CAA4BnhE,OAA5B,CAAP;AACD;AAED;;;;;;;;;4CAMoC;AAAA,UAAdA,OAAc,uEAAJ,EAAI;;AAClC,UAAMkhE,SAAS,GAAG,KAAKG,iCAAL,CAAuCrhE,OAAvC,CAAlB;;AAEA,aAAO,IAAIohE,IAAJ,CAAS,CAACF,SAAD,CAAT,EAAsB;AAAEhxD,YAAI,EAAE;AAAR,OAAtB,CAAP;AACD;AAED;;;;;;;;;+CAMuC;AAAA,UAAdlQ,OAAc,uEAAJ,EAAI;AACrC,aAAO,KAAKqhE,iCAAL,CAAuCrhE,OAAvC,CAAP;AACD;AAED;;;;;;;;;AAWA;;;;;;wDAMgD;AAAA,UAAdA,OAAc,uEAAJ,EAAI;AAC9C,UAAMshE,UAAU,GAAGv+D,MAAM,CAAC8lB,MAAP,CAAc,EAAd,EAAkB,KAAK7oB,OAAvB,EAAgCA,OAAhC,CAAnB;AAD8C,UAEtC2kC,uBAFsC,GAES28B,UAFT,CAEtC38B,uBAFsC;AAAA,UAEbH,QAFa,GAES88B,UAFT,CAEb98B,QAFa;AAAA,UAEHC,OAFG,GAES68B,UAFT,CAEH78B,OAFG;AAI9C,UAAM9iC,KAAK,GAAG6iC,QAAQ,GAAG5kC,IAAI,CAACkH,GAAL,CAAS29B,OAAO,CAAC1kC,CAAjB,EAAoB0kC,OAAO,CAAC3kC,CAA5B,CAAzB;AACA,UAAMyhE,OAAO,GAAG,KAAK/8B,QAArB;AAEA,UAAM08B,SAAS,6HAGFK,OAHE,yBAGkBA,OAHlB,8BAG2CA,OAH3C,cAGsDA,OAHtD,iDAMP58B,uBANO,4EAQ6BhjC,KAR7B,6BASP,KAAKs/D,eATE,iCAAf;AAaA,aAAO,KAAKO,aAAL,CAAmBN,SAAnB,EAA8BI,UAA9B,CAAP;AACD;AAED;;;;;;;;;6CAMqC;AAAA,UAAdthE,OAAc,uEAAJ,EAAI;AACnC,UAAMshE,UAAU,GAAGv+D,MAAM,CAAC8lB,MAAP,CAAc,EAAd,EAAkB,KAAK7oB,OAAvB,EAAgCA,OAAhC,CAAnB;AADmC,UAE3BwkC,QAF2B,GAEL88B,UAFK,CAE3B98B,QAF2B;AAAA,UAEjBC,OAFiB,GAEL68B,UAFK,CAEjB78B,OAFiB;AAInC,UAAMy8B,SAAS,2HAGF18B,QAHE,yBAGmBA,QAHnB,uCAITC,OAAO,CAAC1kC,CAJC,cAII0kC,OAAO,CAAC3kC,CAJZ,kCAMT,KAAKmhE,eANI,mBAAf;AASA,aAAO,KAAKO,aAAL,CAAmBN,SAAnB,EAA8BI,UAA9B,CAAP;AACD;AAED;;;;;;;;;;kCAOcJ,S,EAAyB;AAAA,UAAdlhE,OAAc,uEAAJ,EAAI;AACrC,UAAMugC,WAAW,GAAGvgC,OAAO,CAACugC,WAAR,IAAuB59B,sEAAU,CAACk+B,cAAX,EAA3C;AACA,UAAM4gC,SAAS,GAAGzhE,OAAO,CAACyhE,SAAR,IAAqB9+D,sEAAU,CAACC,YAAX,EAAvC;AACA,UAAM49B,SAAS,GAAGxgC,OAAO,CAACwgC,SAAR,IAAqB79B,sEAAU,CAAC+9B,YAAX,EAAvC;AAEA,aAAOwgC,SAAS,CACbntC,OADI,CACI,eADJ,YACwBwM,WADxB,GAEJxM,OAFI,CAEI,aAFJ,YAEsB0tC,SAFtB,GAGJ1tC,OAHI,CAGI,aAHJ,YAGsByM,SAHtB,EAAP;AAID;;;wBAzEgB;AACf,UAAMkE,UAAU,GAAG,KAAK1kC,OAAL,CAAa0kC,UAAhC;AAEA,uBAAUA,UAAU,CAAC3kC,CAArB,cAA0B2kC,UAAU,CAAC5kC,CAArC;AACD;;;;;;;;;;;;;;;;;;AC/EH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;;;;;;;;;;;AAWO,IAAM0qD,WAAW,GAAG,IAAI3gC,uDAAJ,+NAKzB;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,IADI;AAEPD,KAAC,EAAE;AAFI;AADX,CALyB,CAApB;AAaA,IAAM4sD,mBAAmB,GAAG,IAAI7iC,uDAAJ,sPAIjC;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,EADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAJiC,CAA5B;AAYA,IAAM0tD,mBAAmB,GAAG,IAAI3jC,uDAAJ,21BASjC;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,EADI;AAEPD,KAAC,EAAE;AAFI;AADX,CATiC,CAA5B;AAiBA,IAAM0wD,eAAe,GAAG,IAAI3mC,uDAAJ,mWAS7B;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,EADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAT6B,CAAxB;AAiBA,IAAMkuD,eAAe,GAAG,IAAInkC,uDAAJ,qGAE7B;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,EADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAF6B,CAAxB;AAUA,IAAMyxD,mBAAmB,GAAG,IAAI1nC,uDAAJ,wOAKjC;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,EADI;AAEPD,KAAC,EAAE;AAFI;AADX,CALiC,CAA5B;AAaA,IAAMyyD,iBAAiB,GAAG,IAAI1oC,uDAAJ,swFAkC/B;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,EADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAlC+B,CAA1B;AA0CA,IAAMg7C,yBAAyB,GAAG,IAAIjxB,uDAAJ,0lGAmCvC;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,EADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAnCuC,CAAlC;AA2CA,IAAMy3D,YAAY,GAAG,IAAI1tC,uDAAJ,6PAI1B;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,EADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAJ0B,CAArB;AAYA,IAAMs5C,WAAW,GAAG,IAAIvvB,uDAAJ,oYAOzB;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,IADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAPyB,CAApB;AAeA,IAAMk4D,kBAAkB,GAAG,IAAInuC,uDAAJ,qTAMhC;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,IADI;AAEPD,KAAC,EAAE;AAFI;AADX,CANgC,CAA3B;AAcA,IAAM64D,gBAAgB,GAAG,IAAI9uC,uDAAJ,ypBAW9B;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,IADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAX8B,CAAzB;AAmBA,IAAMk4C,gBAAgB,GAAG,IAAInuB,uDAAJ,2vBAa9B;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,IADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAb8B,CAAzB;AAqBA,IAAM26C,YAAY,GAAG,IAAI5wB,uDAAJ,4TAM1B;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,IADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAN0B,CAArB;AAcA,IAAMqhD,aAAa,GAAG,IAAIt3B,uDAAJ,kZAO3B;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,GADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAP2B,CAAtB;AAeA,IAAM8kD,SAAS,GAAG,IAAI/6B,uDAAJ,0hBASvB;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,IADI;AAEPD,KAAC,EAAE;AAFI;AADX,CATuB,CAAlB;AAiBA,IAAMulD,YAAY,GAAG,IAAIx7B,uDAAJ,yfAS1B;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,IADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAT0B,CAArB;AAiBA,IAAM6nD,iBAAiB,GAAG,IAAI99B,uDAAJ,wXAO/B;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,EADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAP+B,CAA1B;AAeA,IAAM+nD,gBAAgB,GAAG,IAAIh+B,uDAAJ,sMAK9B;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,IADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAL8B,CAAzB;AAaA,IAAM8oD,UAAU,GAAG,IAAI/+B,uDAAJ,0MAGxB;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,EADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAHwB,CAAnB;AAWA,IAAM6pD,UAAU,GAAG,IAAI9/B,uDAAJ,8tBAYxB;AACE4a,SAAO,EAAE;AACP1kC,KAAC,EAAE,GADI;AAEPD,KAAC,EAAE;AAFI;AADX,CAZwB,CAAnB;AAoBP,IAAM4hE,uBAAuB,GAAG;AAC9B3hE,GAAC,EAAE,GAD2B;AAE9BD,GAAC,EAAE;AAF2B,CAAhC;;AAKA,IAAM6hE,SAAS,GAAG,SAAZA,SAAY;AAAA,MAACpiE,KAAD,uEAAS,cAAT;AAAA,gCACDA,KADC;AAAA,CAAlB;;AAGA,IAAMqiE,QAAQ,GAAG,SAAXA,QAAW;AAAA,MACfriE,KADe,uEACP,cADO;AAAA,gCAEGA,KAFH,+FAGGA,KAHH;AAAA,CAAjB;;AAKA,IAAMsiE,WAAW,sjBAAjB;AACA,IAAMC,aAAa,0IAAnB;AACA,IAAMC,UAAU,0NAAhB;AAEO,IAAMC,yBAAyB,GAAG,IAAIn4C,uDAAJ,WACpCg4C,WADoC,cACrBF,SAAS,EADY,GAEvC;AACEl9B,SAAO,EAAEi9B;AADX,CAFuC,CAAlC;AAOA,IAAMO,wBAAwB,GAAG,IAAIp4C,uDAAJ,WACnCg4C,WADmC,cACpBD,QAAQ,EADY,GAEtC;AACEn9B,SAAO,EAAEi9B;AADX,CAFsC,CAAjC;AAOA,IAAMQ,0BAA0B,GAAG,IAAIr4C,uDAAJ,WACrCg4C,WADqC,cACtBF,SAAS,EADa,GAExC;AACEl9B,SAAO,EAAEi9B;AADX,CAFwC,CAAnC;AAOA,IAAMS,yBAAyB,GAAG,IAAIt4C,uDAAJ,WACpCg4C,WADoC,cACrBD,QAAQ,EADa,GAEvC;AACEn9B,SAAO,EAAEi9B;AADX,CAFuC,CAAlC;AAOA,IAAMU,6BAA6B,GAAG,IAAIv4C,uDAAJ,WACxCi4C,aADwC,cACvBH,SAAS,EADc,GAE3C;AACEl9B,SAAO,EAAEi9B;AADX,CAF2C,CAAtC;AAOA,IAAMW,4BAA4B,GAAG,IAAIx4C,uDAAJ,WACvCi4C,aADuC,cACtBF,QAAQ,EADc,GAE1C;AACEn9B,SAAO,EAAEi9B;AADX,CAF0C,CAArC;AAOA,IAAMY,8BAA8B,GAAG,IAAIz4C,uDAAJ,WACzCi4C,aADyC,cACxBH,SAAS,EADe,GAE5C;AACEl9B,SAAO,EAAEi9B;AADX,CAF4C,CAAvC;AAOA,IAAMa,6BAA6B,GAAG,IAAI14C,uDAAJ,WACxCi4C,aADwC,cACvBF,QAAQ,EADe,GAE3C;AACEn9B,SAAO,EAAEi9B;AADX,CAF2C,CAAtC;AAOA,IAAMc,0BAA0B,GAAG,IAAI34C,uDAAJ,WACrCk4C,UADqC,cACvBJ,SAAS,EADc,GAExC;AACEl9B,SAAO,EAAEi9B;AADX,CAFwC,CAAnC;AAOA,IAAMe,yBAAyB,GAAG,IAAI54C,uDAAJ,WACpCk4C,UADoC,cACtBH,QAAQ,EADc,GAEvC;AACEn9B,SAAO,EAAEi9B;AADX,CAFuC,CAAlC;AAOA,IAAMgB,2BAA2B,GAAG,IAAI74C,uDAAJ,WACtCk4C,UADsC,cACxBJ,SAAS,EADe,GAEzC;AACEl9B,SAAO,EAAEi9B;AADX,CAFyC,CAApC;AAOA,IAAMiB,0BAA0B,GAAG,IAAI94C,uDAAJ,WACrCk4C,UADqC,cACvBH,QAAQ,EADe,GAExC;AACEn9B,SAAO,EAAEi9B;AADX,CAFwC,CAAnC,C;;;;;;;;;;;;AC7dP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CAGA;;CA0BA;;AACe;AACb59C,gBAAc,EAAdA,0DADa;AAEbC,0BAAwB,EAAxBA,oEAFa;AAGbC,eAAa,EAAbA,yDAHa;AAIbC,YAAU,EAAVA,sDAJa;AAKbC,yBAAuB,EAAvBA,mEALa;AAMbC,aAAW,EAAXA,uDANa;AAObC,aAAW,EAAXA,uDAPa;AAQbC,wBAAsB,EAAtBA,kEARa;AASbC,mBAAiB,EAAjBA,6DATa;AAUbC,SAAO,EAAPA,mDAVa;AAWbC,oBAAkB,EAAlBA,+DAXa;AAYbC,YAAU,EAAVA,uDAZa;AAabC,iBAAe,EAAfA,4DAba;AAcbC,kBAAgB,EAAhBA,6DAda;AAebC,2BAAyB,EAAzBA,sEAfa;AAgBbC,2BAAyB,EAAzBA,sEAhBa;AAiBbC,iBAAe,EAAfA,4DAjBa;AAkBbC,gBAAc,EAAdA,2DAlBa;AAmBbC,UAAQ,EAARA,qDAnBa;AAoBbC,oBAAkB,EAAlBA,+DApBa;AAqBbC,UAAQ,EAARA,qDArBa;AAsBbC,oBAAkB,EAAlBA,+DAAkBA;AAtBL,CAAf,E;;;;;;;;;;;;AClDA;AAAA;AAAA;AAKA;;;;;;;;;;;;;;AAae,yEAAS0uB,gBAAT,EAA2B+uB,mBAA3B,EAAgD;AAC7D,MAAMxiE,MAAM,GAAGkrB,sFAAsB,CAACuoB,gBAAD,EAAmB+uB,mBAAnB,CAArC;;AAEA,MAAI,CAACxiE,MAAL,EAAa;AACX;AACD;;AAED,SAAO;AACLf,SAAK,EAAE+rB,+FAA+B,CAAChrB,MAAM,CAACf,KAAR,EAAew0C,gBAAf,CADjC;AAELv0C,OAAG,EAAE8rB,+FAA+B,CAAChrB,MAAM,CAACd,GAAR,EAAau0C,gBAAb;AAF/B,GAAP;AAID,C;;;;;;;;;;;;AC7BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;AAWe,yEAAS50C,OAAT,EAAkB4J,SAAlB,EAA6B6qC,aAA7B,EAA4CmvB,gBAA5C,EAA8D;AAC3E,MAAM/hE,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,MAAMgiE,WAAW,GAAGhiE,WAAW,CAAC2Z,iBAAZ,CAA8Bi5B,aAA9B,EAA6ChlC,KAAjE;AACA,MAAMq0D,cAAc,GAAGjiE,WAAW,CAAC2Z,iBAAZ,CAA8BooD,gBAA9B,EAAgDn0D,KAAvE,CAH2E,CAK3E;;AACA,MAAI,CAACo0D,WAAD,IAAgB,CAACC,cAArB,EAAqC;AACnC;AACD;;AAED,MAAMlvB,gBAAgB,GAAG/yC,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CACvB,kBADuB,EAEvBglC,WAAW,CAACpuC,OAFW,CAAzB;AAIA,MAAMkuC,mBAAmB,GAAG9hE,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CAC1B,kBAD0B,EAE1BilC,cAAc,CAACruC,OAFW,CAA5B,CAd2E,CAmB3E;;AACA,MACE,CAACmf,gBAAD,IACA,CAAC+uB,mBADD,IAEA,CAAC/uB,gBAAgB,CAAC0E,UAFlB,IAGA,CAAC1E,gBAAgB,CAAC2E,aAHlB,IAIA,CAAC3E,gBAAgB,CAAC1H,oBAJlB,IAKA,CAACy2B,mBAAmB,CAACrqB,UALrB,IAMA,CAACqqB,mBAAmB,CAACpqB,aANrB,IAOA,CAACoqB,mBAAmB,CAACz2B,oBARvB,EASE;AACA;AACD,GA/B0E,CAiC3E;;;AACA,MACE0H,gBAAgB,CAACmvB,mBAAjB,KACAJ,mBAAmB,CAACI,mBAFtB,EAGE;AACA;AACD;;AAEDnvB,kBAAgB,CAAC0E,UAAjB,GAA8BtsB,yEAAgB,CAAC4nB,gBAAgB,CAAC0E,UAAlB,CAA9C;AACA1E,kBAAgB,CAAC2E,aAAjB,GAAiCvsB,yEAAgB,CAC/C4nB,gBAAgB,CAAC2E,aAD8B,CAAjD;AAGA3E,kBAAgB,CAAC1H,oBAAjB,GAAwClgB,yEAAgB,CACtD4nB,gBAAgB,CAAC1H,oBADqC,CAAxD;AAGAy2B,qBAAmB,CAACrqB,UAApB,GAAiCtsB,yEAAgB,CAC/C22C,mBAAmB,CAACrqB,UAD2B,CAAjD;AAGAqqB,qBAAmB,CAACpqB,aAApB,GAAoCvsB,yEAAgB,CAClD22C,mBAAmB,CAACpqB,aAD8B,CAApD;AAGAoqB,qBAAmB,CAACz2B,oBAApB,GAA2ClgB,yEAAgB,CACzD22C,mBAAmB,CAACz2B,oBADqC,CAA3D,CAtD2E,CA0D3E;;AACA,MAAM82B,YAAY,GAAGpvB,gBAAgB,CAAC0E,UAAjB,CAClBxE,KADkB,GAElB6E,KAFkB,CAEZ/E,gBAAgB,CAAC2E,aAFL,CAArB;AAGA,MAAM0qB,eAAe,GAAGN,mBAAmB,CAACrqB,UAApB,CACrBxE,KADqB,GAErB6E,KAFqB,CAEfgqB,mBAAmB,CAACpqB,aAFL,CAAxB;AAGA,MAAI2qB,cAAc,GAAGF,YAAY,CAACG,OAAb,CAAqBF,eAArB,CAArB;AAEAC,gBAAc,GAAGvjE,IAAI,CAACmC,GAAL,CAASohE,cAAT,CAAjB;;AACA,MAAIA,cAAc,GAAG,GAArB,EAA0B;AACxB;AACA;AACD;;AAED,MAAME,aAAa,GAAGC,0EAAsB,CAC1CzvB,gBAD0C,EAE1C+uB,mBAF0C,CAA5C;;AAKA,MAAI,CAACS,aAAL,EAAoB;AAClB;AACD;;AAED,MAAM9jE,KAAK,GAAGoD,sEAAU,CAACk+B,cAAX,EAAd,CAlF2E,CAoF3E;;AACA5hC,SAAO,CAACyI,YAAR,CAAqB,CAArB,EAAwB,CAAxB,EAA2B,CAA3B,EAA8B,CAA9B,EAAiC,CAAjC,EAAoC,CAApC;AAEAX,gEAAI,CAAC9H,OAAD,EAAU,UAAAA,OAAO,EAAI;AACvBgB,sEAAQ,CACNhB,OADM,EAEN4J,SAAS,CAACpI,OAFJ,EAGN4iE,aAAa,CAAChkE,KAHR,EAINgkE,aAAa,CAAC/jE,GAJR,EAKN;AAAEC,WAAK,EAALA;AAAF,KALM,CAAR;AAOD,GARG,CAAJ;AASD,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjHD;AACA;AACA;AACA;AACA;AAEA,IAAM2K,MAAM,GAAGC,kEAAS,CAAC,iBAAD,CAAxB;AAEA,IAAM1B,kBAAkB,GAAGC,iEAAS,CAAC,cAAD,CAApC;AAEA;;;;;;;;IAOqB8a,S;;;;;AACnB,uBAAwB;AAAA;;AAAA,QAAZie,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,OADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnBzG,mBAAa,EAAE,EAHI;AAInB2gB,YAAM,EAAE,CAAC,kBAAD;AAJW,KAArB;AAOA,6MAAMuX,KAAN,EAAasW,YAAb;AAEA,UAAK3lB,iBAAL,GAAyB,MAAKwtC,MAAL,CAAYn0D,IAAZ,4FAAzB;AAVsB;AAWvB;AAED;;;;;;;;;;;2BAOO7C,G,EAAK;AAAA,UACFW,aADE,GACgBd,kBADhB,CACFc,aADE;AAEV,UAAMV,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAMrI,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;AAHU,6BAIgBoI,SAAS,CAAC6F,KAJ1B;AAAA,UAIFsG,IAJE,oBAIFA,IAJE;AAAA,UAIIge,OAJJ,oBAIIA,OAJJ;AAAA,kCAKOnqB,SAAS,CAACkD,aAAV,CAAwB2C,KAL/B;AAAA,UAKF3O,CALE,yBAKFA,CALE;AAAA,UAKCD,CALD,yBAKCA,CALD;;AAOV,UAAIC,CAAC,GAAG,CAAJ,IAASA,CAAC,GAAGizB,OAAb,IAAwBlzB,CAAC,GAAG,CAA5B,IAAiCA,CAAC,GAAGkV,IAAzC,EAA+C;AAC7C;AACD;;AAED,UAAMrU,MAAM,GAAG4I,aAAa,CAAC5I,MAA7B;AACA,UAAM4iE,YAAY,GAAGC,6EAAS,CAAC7iE,MAAD,EAASqU,IAAT,EAAege,OAAf,EAAwBjzB,CAAxB,EAA2BD,CAA3B,CAA9B;AAZU,iCAcsC,KAAKmgE,cAd3C;AAAA,UAcF9rD,UAdE,wBAcFA,UAdE;AAAA,UAcUF,UAdV,wBAcUA,UAdV;AAAA,UAcsB8rD,WAdtB,wBAcsBA,WAdtB,EAgBV;;AACA0D,yFAAe,CACbF,YADa,EAEbpvD,UAAU,CAACe,SAFE,EAGbjB,UAAU,CAACuD,kBAHE,EAIbwb,OAJa,EAKb+sC,WALa,CAAf;AAQAl/D,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC/B,GAAG,CAACE,MAAJ,CAAWrI,OAA5C;AACD;;;;EA/CoCmpB,mD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBvC;AACA;AAMA;AAOA;;;;;;;;IAOqBhG,kB;;;;;AACnB;AACA,gCAAwB;AAAA,QAAZ6d,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,gBADa;AAEnBquC,gBAAU,EAAE;AACV2qB,mBAAW,EAAEC,4DADH;AAEVC,oBAAY,EAAEC,6DAFJ;AAGVC,qBAAa,EAAEC,8DAHL;AAIVC,oBAAY,EAAEC,6DAAiBA;AAJrB,OAFO;AAQnBn6C,aAAO,EAAE;AACP45C,mBAAW,EAAEjB,kEADN;AAEPmB,oBAAY,EAAEjB,mEAFP;AAGPmB,qBAAa,EAAEpB,oEAHR;AAIPsB,oBAAY,EAAExB,mEAA0BA;AAJjC,OARU;AAcnBvpB,qBAAe,EAAE,aAdE;AAenBjpC,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAfR;AAgBnB8+B,eAAS,EAAE2zB,kEAhBQ;AAiBnBv4C,YAAM,EAAE,CAAC,yBAAD;AAjBW,KAArB;AADsB,qNAqBhBuX,KArBgB,EAqBTsW,YArBS;AAsBvB;;;EAxB6CpuB,8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBhD;AACA;AACA;AAEA;;;;;;;;IAOqB9F,sB;;;;;AACnB;AACA,oCAAwB;AAAA,QAAZ4d,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,oBADa;AAEnBquC,gBAAU,EAAE;AACVmrB,kBAAU,EAAEC,sDAAUA;AADZ,OAFO;AAKnBr6C,aAAO,EAAE;AACPo6C,kBAAU,EAAEjC,iEAAwBA;AAD7B,OALU;AAQnBhpB,qBAAe,EAAE,YARE;AASnBjpC,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CATR;AAUnB8+B,eAAS,EAAEmzB,iEAVQ;AAWnB/3C,YAAM,EAAE,CAAC,2BAAD;AAXW,KAArB;AADsB,yNAehBuX,KAfgB,EAeTsW,YAfS;AAgBvB;;;EAlBiDpuB,8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXpD;AAMA;AAMA;AAEA;;;;;;;;IAOqBhG,oB;;;;;AACnB;AACA,kCAAwB;AAAA,QAAZ8d,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,kBADa;AAEnBquC,gBAAU,EAAE;AACV2qB,mBAAW,EAAEU,8DADH;AAEVR,oBAAY,EAAES,+DAFJ;AAGVP,qBAAa,EAAEQ,gEAHL;AAIVN,oBAAY,EAAEO,+DAAmBA;AAJvB,OAFO;AAQnBz6C,aAAO,EAAE;AACP45C,mBAAW,EAAEzB,iEADN;AAEP2B,oBAAY,EAAEzB,kEAFP;AAGP2B,qBAAa,EAAE5B,mEAHR;AAIP8B,oBAAY,EAAEhC,kEAAyBA;AAJhC,OARU;AAcnB/oB,qBAAe,EAAE,aAdE;AAenBjpC,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAfR;AAgBnB8+B,eAAS,EAAEmzB,iEAhBQ;AAiBnB/3C,YAAM,EAAE,CAAC,2BAAD;AAjBW,KAArB;AADsB,uNAqBhBuX,KArBgB,EAqBTsW,YArBS;AAsBvB;;;EAxB+CpuB,8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBlD;AACA;AAMA;AAOA;;;;;;;;IAOqBjG,qB;;;;;AACnB;AACA,mCAAwB;AAAA,QAAZ+d,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,mBADa;AAEnBquC,gBAAU,EAAE;AACV2qB,mBAAW,EAAEc,+DADH;AAEVZ,oBAAY,EAAEa,gEAFJ;AAGVX,qBAAa,EAAEY,iEAHL;AAIVV,oBAAY,EAAEW,gEAAoBA;AAJxB,OAFO;AAQnB76C,aAAO,EAAE;AACP45C,mBAAW,EAAErB,qEADN;AAEPuB,oBAAY,EAAErB,sEAFP;AAGPuB,qBAAa,EAAExB,uEAHR;AAIP0B,oBAAY,EAAE5B,sEAA6BA;AAJpC,OARU;AAcnBnpB,qBAAe,EAAE,aAdE;AAenBjpC,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAfR;AAgBnBka,YAAM,EAAE,CAAC,4BAAD;AAhBW,KAArB;AADsB,wNAoBhBuX,KApBgB,EAoBTsW,YApBS;AAqBvB;;;EAvBgDpuB,8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBnD;AACA;AACA;AACA;AAKA;AACA;AACA;AAEA,IAAMzf,MAAM,GAAGC,kEAAS,CAAC,0BAAD,CAAxB;AAEA,IAAM1B,kBAAkB,GAAGC,iEAAS,CAAC,cAAD,CAApC;AAEA;;;;;;;;IAOqB+a,kB;;;;;AACnB,gCAAwB;AAAA;;AAAA,QAAZge,KAAY,uEAAJ,EAAI;;AAAA;;AACtB,QAAMsW,YAAY,GAAG;AACnBrtC,UAAI,EAAE,gBADa;AAEnBsF,+BAAyB,EAAE,CAAC,OAAD,EAAU,OAAV,CAFR;AAGnBzG,mBAAa,EAAE;AAAEo2D,0BAAkB,EAAE;AAAtB,OAHI;AAInBz1C,YAAM,EAAE,CAAC,kBAAD;AAJW,KAArB;AAOA,sNAAMuX,KAAN,EAAasW,YAAb;AAEA,UAAK3lB,iBAAL,GAAyB,MAAKwtC,MAAL,CAAYn0D,IAAZ,4FAAzB;AAVsB;AAWvB;AAED;;;;;;;;;;;;mCAQe7C,G,EAAK;AAAA,UACVW,aADU,GACiBd,kBADjB,CACVc,aADU;AAAA,UACK2C,OADL,GACiBzD,kBADjB,CACKyD,OADL;AAElB,UAAMrD,SAAS,GAAGD,GAAG,CAACE,MAAtB;AAFkB,UAGVrI,OAHU,GAGSoI,SAHT,CAGVpI,OAHU;AAAA,UAGDiO,KAHC,GAGS7F,SAHT,CAGD6F,KAHC;AAAA,UAIV5N,WAJU,GAIMD,2DAJN,CAIVC,WAJU;AAKlB,UAAMH,MAAM,GAAG4I,aAAa,CAAC5I,MAA7B;AALkB,UAMVqU,IANU,GAMQtG,KANR,CAMVsG,IANU;AAAA,UAMJge,OANI,GAMQtkB,KANR,CAMJskB,OANI;AAOlB,UAAM46B,YAAY,GAAGhuD,IAAI,CAACkH,GAAL,CACnB4H,KAAK,CAACuI,eADa,EAEnBvI,KAAK,CAACwI,kBAFa,CAArB;AAKA,UAAMuuB,UAAU,GAAGp8B,mFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA/B;AACA,UAAMu4B,SAAS,GAAGyM,UAAU,CAACj4B,IAAX,CAAgB,CAAhB,CAAlB;AAbkB,UAcVupB,QAdU,GAcGiC,SAdH,CAcVjC,QAdU;;AAAA,gCAqBd7qB,OAAO,CAACiI,UAAR,CAAmB1T,OAAnB,CArBc;AAAA,UAiBhB0T,UAjBgB,uBAiBhBA,UAjBgB;AAAA,UAkBhBF,UAlBgB,uBAkBhBA,UAlBgB;AAAA,UAmBhB+H,mBAnBgB,uBAmBhBA,mBAnBgB;AAAA,UAoBhBD,mBApBgB,uBAoBhBA,mBApBgB;;AAuBlB,UAAMgkD,WAAW,GACf,KAAKC,WAAL,CAAiBn3D,SAAjB,KAA+B,KAAKU,aAAL,CAAmBo2D,kBADpD;AAGA,UAAMiF,wBAAwB,GAAG9jE,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CAC/B,kBAD+B,EAE/BpvB,KAAK,CAACgmB,OAFyB,CAAjC;AAKA,UAAImwC,aAAJ;;AAEA,UAAID,wBAAJ,EAA8B;AAC5B,YAAME,iBAAiB,GAAGF,wBAAwB,CAACz4B,oBAAnD;AAEA04B,qBAAa,GAAG,KAAKE,iBAAL,CACd/oD,mBADc,EAEd8oD,iBAFc,EAGd/tC,QAHc,EAIdp2B,MAJc,EAKditD,YALc,CAAhB;AAOD,OAVD,MAUO;AACL1jD,cAAM,CAACmlB,IAAP;AAIAw1C,qBAAa,GAAG,CACd;AACA;AACE/yC,sBAAY,EAAE9V,mBADhB;AAEEgpD,uBAAa,EAAErkE;AAFjB,SAFc,CAAhB;AAOD;;AAED,WAAKs/D,cAAL,GAAsB;AACpB9rD,kBAAU,EAAVA,UADoB;AAEpBF,kBAAU,EAAVA,UAFoB;AAGpB+H,2BAAmB,EAAnBA,mBAHoB;AAIpBD,2BAAmB,EAAnBA,mBAJoB;AAKpBgkD,mBAAW,EAAXA,WALoB;AAMpB8E,qBAAa,EAAbA;AANoB,OAAtB;;AASA,UAAIt7D,aAAa,CAAC4/B,YAAlB,EAAgC;AAC9B,YAAM87B,iCAAiC,GAAG,EAA1C;;AAEA,aAAK,IAAIhiE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4hE,aAAa,CAAC5gE,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAAA,cACrC6uB,YADqC,GACpB+yC,aAAa,CAAC5hE,CAAD,CADO,CACrC6uB,YADqC;AAE7C,cAAMozC,yBAAyB,GAAGh5D,OAAO,CAACqhC,wBAAR,CAChCt5B,UADgC,EAEhC6d,YAFgC,EAGhC9c,IAHgC,EAIhCge,OAJgC,CAAlC;AAOA,cAAMxB,iBAAiB,GAAG0zC,yBAAyB,CAAChwD,SAA1B,CAAoCuc,KAApC,EAA1B;AAEAwzC,2CAAiC,CAAClrD,IAAlC,CAAuCyX,iBAAvC;AACD;;AAED,aAAKyuC,cAAL,CAAoBgF,iCAApB,GAAwDA,iCAAxD;AACD;AACF;AAED;;;;;;;;;;2BAOOr8D,G,EAAK;AAAA,UACFsD,OADE,GACUzD,kBADV,CACFyD,OADE;AAEV,UAAMrD,SAAS,GAAGD,GAAG,CAACE,MAAtB;AACA,UAAMrI,OAAO,GAAGoI,SAAS,CAACpI,OAA1B;AACA,UAAMiO,KAAK,GAAG7F,SAAS,CAAC6F,KAAxB;AAJU,UAKFsG,IALE,GAKgBtG,KALhB,CAKFsG,IALE;AAAA,UAKIge,OALJ,GAKgBtkB,KALhB,CAKIskB,OALJ;AAAA,kCAMOnqB,SAAS,CAACkD,aAAV,CAAwB2C,KAN/B;AAAA,UAMF3O,CANE,yBAMFA,CANE;AAAA,UAMCD,CAND,yBAMCA,CAND;;AAQV,UAAIC,CAAC,GAAG,CAAJ,IAASA,CAAC,GAAGizB,OAAb,IAAwBlzB,CAAC,GAAG,CAA5B,IAAiCA,CAAC,GAAGkV,IAAzC,EAA+C;AAC7C;AACD;;AAVS,iCAYyC,KAAKirD,cAZ9C;AAAA,UAYFhsD,UAZE,wBAYFA,UAZE;AAAA,UAYU4wD,aAZV,wBAYUA,aAZV;AAAA,UAYyB9E,WAZzB,wBAYyBA,WAZzB;;AAcV,WAAK,IAAI98D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4hE,aAAa,CAAC5gE,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAAA,+BACL4hE,aAAa,CAAC5hE,CAAD,CADR;AAAA,YACrC6uB,YADqC,oBACrCA,YADqC;AAAA,YACvBkzC,aADuB,oBACvBA,aADuB;AAE7C,YAAMzB,YAAY,GAAGC,oEAAS,CAACwB,aAAD,EAAgBhwD,IAAhB,EAAsBge,OAAtB,EAA+BjzB,CAA/B,EAAkCD,CAAlC,CAA9B,CAF6C,CAI7C;;AACA,YAAMolE,yBAAyB,GAAGh5D,OAAO,CAACqhC,wBAAR,CAChCt5B,UADgC,EAEhC6d,YAFgC,EAGhC9c,IAHgC,EAIhCge,OAJgC,CAAlC,CAL6C,CAY7C;;AACAywC,kFAAe,CACbF,YADa,EAEb2B,yBAAyB,CAAChwD,SAFb,EAGbjB,UAAU,CAACuD,kBAHE,EAIbwb,OAJa,EAKb+sC,WALa,CAAf;AAOD;;AAEDl/D,iEAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC/B,GAAG,CAACE,MAAJ,CAAWrI,OAA5C;AACD;AAED;;;;;;;;;;;;;;;;sCAcEub,mB,EACA8oD,iB,EACA/tC,Q,EACAp2B,M,EACAitD,Y,EACA;AACA,UAAMuX,UAAU,GAAGxkE,MAAM,GAAGitD,YAA5B;AACA,UAAMiX,aAAa,GAAG,CACpB;AACA;AACE/yC,oBAAY,EAAE9V,mBADhB;AAEEgpD,qBAAa,EAAErkE;AAFjB,OAFoB,CAAtB,CAFA,CAUA;;AACA,WAAK,IAAIsC,CAAC,GAAG+Y,mBAAmB,GAAG,CAAnC,EAAsC/Y,CAAC,GAAG8zB,QAAQ,CAAC9yB,MAAnD,EAA2DhB,CAAC,EAA5D,EAAgE;AAC9D,YAAM+hE,aAAa,GAAG,KAAKI,iBAAL,CACpBruC,QAAQ,CAAC9zB,CAAD,CADY,EAEpB6hE,iBAFoB,EAGpBK,UAHoB,EAIpBvX,YAJoB,CAAtB;;AAOA,YAAI,CAACoX,aAAL,EAAoB;AAClB;AACD;;AAEDH,qBAAa,CAAC9qD,IAAd,CAAmB;AACjB+X,sBAAY,EAAE7uB,CADG;AAEjB+hE,uBAAa,EAAbA;AAFiB,SAAnB;AAID,OA3BD,CA6BA;;;AACA,WAAK,IAAI/hE,EAAC,GAAG+Y,mBAAmB,GAAG,CAAnC,EAAsC/Y,EAAC,IAAI,CAA3C,EAA8CA,EAAC,EAA/C,EAAmD;AACjD,YAAM+hE,cAAa,GAAG,KAAKI,iBAAL,CACpBruC,QAAQ,CAAC9zB,EAAD,CADY,EAEpB6hE,iBAFoB,EAGpBK,UAHoB,EAIpBvX,YAJoB,CAAtB;;AAOA,YAAI,CAACoX,cAAL,EAAoB;AAClB;AACD;;AAEDH,qBAAa,CAAC9qD,IAAd,CAAmB;AACjB+X,sBAAY,EAAE7uB,EADG;AAEjB+hE,uBAAa,EAAbA;AAFiB,SAAnB;AAID;;AAED,aAAOH,aAAP;AACD;AAED;;;;;;;;;;;;;;sCAWkBnwC,O,EAASowC,iB,EAAmBK,U,EAAYvX,Y,EAAc;AACtE,UAAM3X,UAAU,GAAGp1C,2DAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CACjB,kBADiB,EAEjBpJ,OAFiB,CAAnB;;AAKA,UAAI,CAACuhB,UAAL,EAAiB;AACf/rC,cAAM,CAACmlB,IAAP,uFACiFqF,OADjF;AAIA;AACD;;AAED,UAAMwX,GAAG,GAAG+J,UAAU,CAAC9J,oBAAvB;AAEA,UAAM/1B,QAAQ,GAAGxW,IAAI,CAACmf,IAAL,CACfnf,IAAI,CAAC4rC,GAAL,CAASU,GAAG,CAAC,CAAD,CAAH,GAAS44B,iBAAiB,CAAC,CAAD,CAAnC,EAAwC,CAAxC,IACEllE,IAAI,CAAC4rC,GAAL,CAASU,GAAG,CAAC,CAAD,CAAH,GAAS44B,iBAAiB,CAAC,CAAD,CAAnC,EAAwC,CAAxC,CADF,GAEEllE,IAAI,CAAC4rC,GAAL,CAASU,GAAG,CAAC,CAAD,CAAH,GAAS44B,iBAAiB,CAAC,CAAD,CAAnC,EAAwC,CAAxC,CAHa,CAAjB;;AAMA,UAAI1uD,QAAQ,GAAG+uD,UAAf,EAA2B;AACzB;AACA;AACD;;AAED,aAAOvlE,IAAI,CAACkY,KAAL,CACLlY,IAAI,CAACmf,IAAL,CAAUnf,IAAI,CAAC4rC,GAAL,CAAS25B,UAAT,EAAqB,CAArB,IAA0BvlE,IAAI,CAAC4rC,GAAL,CAASp1B,QAAT,EAAmB,CAAnB,CAApC,IAA6Dw3C,YADxD,CAAP;AAGD;;;iCAEYhlD,G,EAAK;AAAA,kCACsB,KAAKq3D,cAD3B;AAAA,UACRhsD,UADQ,yBACRA,UADQ;AAAA,UACI4wD,aADJ,yBACIA,aADJ;AAEhB,UAAM73B,UAAU,GAAG,EAAnB;AAFgB,UAGRzjC,aAHQ,GAGmBd,kBAHnB,CAGRc,aAHQ;AAAA,UAGOslB,OAHP,GAGmBpmB,kBAHnB,CAGOomB,OAHP;;AAKhB,WAAK,IAAI5rB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4hE,aAAa,CAAC5gE,MAAlC,EAA0ChB,CAAC,EAA3C,EAA+C;AAAA,YACrC6uB,YADqC,GACpB+yC,aAAa,CAAC5hE,CAAD,CADO,CACrC6uB,YADqC;AAE7C,YAAM3d,UAAU,GAAGF,UAAU,CAACmI,WAAX,CAAuB0V,YAAvB,CAAnB,CAF6C,CAI7C;;AACA,YAAM6a,UAAU,GAAG,IAAIC,GAAJ,CAAQz4B,UAAU,CAACe,SAAnB,CAAnB;AACA,YAAM23B,QAAQ,GAAGF,UAAU,CAACxB,MAAX,EAAjB;AAEA,YAAMzzB,kBAAkB,GAAG,EAA3B;AACA,YAAIo1B,IAAI,GAAG,KAAX;;AAEA,eAAO,CAACA,IAAR,EAAc;AACZ,cAAMC,IAAI,GAAGF,QAAQ,CAACE,IAAT,EAAb;AAEAD,cAAI,GAAGC,IAAI,CAACD,IAAZ;;AAEA,cAAI,CAACA,IAAL,EAAW;AACTp1B,8BAAkB,CAACqC,IAAnB,CAAwBgzB,IAAI,CAACxd,KAA7B;AACD;AACF;;AAEDpb,kBAAU,CAACuD,kBAAX,GAAgCA,kBAAhC;;AAEA,YAAInO,aAAa,CAAC4/B,YAAlB,EAAgC;AAAA,cACtB87B,iCADsB,GACgB,KAAKhF,cADrB,CACtBgF,iCADsB;AAG9B,cAAMzzC,iBAAiB,GAAGyzC,iCAAiC,CAAChiE,CAAD,CAA3D;AACA,cAAMkR,WAAU,GAAGF,UAAU,CAACmI,WAAX,CAAuB0V,YAAvB,CAAnB;AACA,cAAMquC,YAAY,GAAGhsD,WAAU,CAACe,SAAhC;AAEA83B,oBAAU,CAACjzB,IAAX,CAAgB;AACd+X,wBAAY,EAAZA,YADc;AAEdC,gBAAI,EAAEC,kFAAuB,CAACR,iBAAD,EAAoB2uC,YAApB;AAFf,WAAhB;AAID;AACF;;AAED,UAAI52D,aAAa,CAAC4/B,YAAlB,EAAgC;AAC9Bta,eAAO,CAACoD,SAAR,CAAkB,KAAKxxB,OAAvB,EAAgCusC,UAAhC;AACD;;AAEDsB,6FAA4B,CAAC,KAAK7tC,OAAN,CAA5B;AACD;;;;EA3T6CmpB,8D;;;;;;;;;;;;;;ACvBhD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;CAGA;;AACA;AACA;AACA;AACA;AACA;CAGA;;AACe;AACbpG,WAAS,EAATA,kDADa;AAEbC,oBAAkB,EAAlBA,2DAFa;AAGbG,oBAAkB,EAAlBA,2DAHa;AAIbC,wBAAsB,EAAtBA,+DAJa;AAKbF,sBAAoB,EAApBA,6DALa;AAMbD,uBAAqB,EAArBA,8DAAqBA;AANR,CAAf,E;;;;;;;;;;;;;;;;;;;;;;AChBA;AACA;AAIA;AACA;AAEA;AAEA,IAAMxZ,MAAM,GAAGC,8DAAS,CAAC,yCAAD,CAAxB;AAEA;;;;;;;;;;;;;;AAae,SAASg6D,UAAT,CAAoBv7D,GAApB,EAAyB8oB,aAAzB,EAAwC;AAAA,MAC7Cxc,SAD6C,GACMwc,aADN,CAC7Cxc,SAD6C;AAAA,MAClCW,YADkC,GACM6b,aADN,CAClC7b,YADkC;AAAA,MACpB8b,qBADoB,GACMD,aADN,CACpBC,qBADoB;;AAGrD,MAAIA,qBAAqB,gCAAzB,EAA2D;AACzDznB,UAAM,CAACorB,KAAP,2FACqF3D,qBADrF;AAIA;AACD;;AAED,MAAM0zC,KAAK,GAAGC,gBAAgB,CAAC18D,GAAD,EAAM8oB,aAAN,CAA9B;AAEA,MAAM6zC,gBAAgB,GAAGC,6BAA6B,CAACH,KAAD,EAAQxvD,YAAR,CAAtD;;AAEA,MAAI0vD,gBAAgB,CAACE,kBAArB,EAAyC;AACvC,QAAIF,gBAAgB,CAAC1zC,SAAjB,KAA+B,oBAAnC,EAAyD;AACvD3nB,YAAM,CAACmlB,IAAP,CAAY,sCAAZ;AACA+0C,0EAAkB,CAACx7D,GAAD,EAAM8oB,aAAN,CAAlB;AACD,KAHD,MAGO,IAAI6zC,gBAAgB,CAAC1zC,SAAjB,KAA+B,qBAAnC,EAA0D;AAC/D3nB,YAAM,CAACmlB,IAAP,CAAY,2CAAZ;AACAk1C,2EAAmB,CAAC37D,GAAD,EAAM8oB,aAAN,CAAnB;AACD;;AAED;AACD,GAzBoD,CA2BrD;;;AACA,MAAMg0C,eAAe,GAAG,IAAIC,UAAJ,CAAezwD,SAAS,CAACjR,MAAzB,CAAxB;AACA,MAAM+oC,UAAU,GAAG44B,+BAA+B,CAACP,KAAD,EAAQxvD,YAAR,CAAlD;AAEAm3B,YAAU,CAAC3oC,OAAX,CAAmB,UAAAwtB,SAAS,EAAI;AAC9Bg0C,oBAAgB,CAACh0C,SAAD,EAAY3c,SAAZ,EAAuBwwD,eAAvB,EAAwC7vD,YAAxC,EAAsDjN,GAAtD,CAAhB;AACD,GAFD;AAGD;AAED;;;;;;;;;AAQA,SAAS08D,gBAAT,CAA0B18D,GAA1B,EAA+B8oB,aAA/B,EAA8C;AAAA,MACpCxc,SADoC,GACdwc,aADc,CACpCxc,SADoC;AAAA,MACzB9U,MADyB,GACdsxB,aADc,CACzBtxB,MADyB;AAAA,MAGpCsO,KAHoC,GAG1B9F,GAAG,CAACE,MAHsB,CAGpC4F,KAHoC;AAI5C,MAAMqG,IAAI,GAAGrG,KAAK,CAACnN,KAAnB;AACA,MAAMyT,IAAI,GAAGtG,KAAK,CAACjN,MAAnB;AAEA,MAAM4jE,KAAK,GAAG,EAAd;;AAEA,OAAK,IAAIpiE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG7C,MAAM,CAAC6D,MAA3B,EAAmChB,CAAC,EAApC,EAAwC;AACtC,QAAM4B,KAAK,GAAGzE,MAAM,CAAC6C,CAAD,CAApB;AAEA,QAAIlD,CAAC,GAAGH,IAAI,CAACkY,KAAL,CAAWjT,KAAK,CAAC9E,CAAjB,CAAR;AACA,QAAID,CAAC,GAAGF,IAAI,CAACkY,KAAL,CAAWjT,KAAK,CAAC/E,CAAjB,CAAR,CAJsC,CAMtC;;AACAC,KAAC,GAAGmsB,0DAAI,CAACnsB,CAAD,EAAI,CAAJ,EAAOgV,IAAI,GAAG,CAAd,CAAR;AACAjV,KAAC,GAAGosB,0DAAI,CAACpsB,CAAD,EAAI,CAAJ,EAAOkV,IAAI,GAAG,CAAd,CAAR;AAEA,QAAM8wD,QAAQ,GAAGT,KAAK,CAACA,KAAK,CAACphE,MAAN,GAAe,CAAhB,CAAtB,CAVsC,CAYtC;;AACA,QAAI6hE,QAAQ,IAAI/lE,CAAC,KAAK+lE,QAAQ,CAAC/lE,CAA3B,IAAgCD,CAAC,KAAKgmE,QAAQ,CAAChmE,CAAnD,EAAsD;AACpD;AACD;;AAEDulE,SAAK,CAACtrD,IAAN,CAAW;AACTha,OAAC,EAADA,CADS;AAETD,OAAC,EAADA,CAFS;AAGT2uC,aAAO,EAAEv5B,SAAS,CAACpV,CAAC,GAAGiV,IAAJ,GAAWhV,CAAZ;AAHT,KAAX;AAKD;;AAED,SAAOslE,KAAP;AACD;AACD;;;;;;;;;;AAQA,SAASG,6BAAT,CAAuCH,KAAvC,EAA8CxvD,YAA9C,EAA4D;AAC1D,MAAIkwD,SAAS,GAAG,IAAhB;AACA,MAAIC,UAAU,GAAG,IAAjB;;AAEA,OAAK,IAAI/iE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGoiE,KAAK,CAACphE,MAA1B,EAAkChB,CAAC,EAAnC,EAAuC;AACrC,QAAMgjE,IAAI,GAAGZ,KAAK,CAACpiE,CAAD,CAAlB;;AAEA,QAAIgjE,IAAI,CAACx3B,OAAL,KAAiB54B,YAArB,EAAmC;AACjCmwD,gBAAU,GAAG,KAAb;AACD,KAFD,MAEO;AACLD,eAAS,GAAG,KAAZ;AACD;;AAED,QAAI,CAACA,SAAD,IAAc,CAACC,UAAnB,EAA+B;AAC7B;AACD;AACF;;AAED,MAAIA,UAAJ,EAAgB;AACd,WAAO;AAAEP,wBAAkB,EAAE,IAAtB;AAA4B5zC,eAAS,EAAE;AAAvC,KAAP;AACD,GAFD,MAEO,IAAIk0C,SAAJ,EAAe;AACpB,WAAO;AAAEN,wBAAkB,EAAE,IAAtB;AAA4B5zC,eAAS,EAAE;AAAvC,KAAP;AACD;;AAED,SAAO;AAAE4zC,sBAAkB,EAAE;AAAtB,GAAP;AACD;AAED;;;;;;;;;;;;AAUA,SAASI,gBAAT,CACEh0C,SADF,EAEE3c,SAFF,EAGEwwD,eAHF,EAIE7vD,YAJF,EAKEjN,GALF,EAME;AAAA,0BACsCA,GAAG,CAACE,MAAJ,CAAW4F,KADjD;AAAA,MACeqG,IADf,qBACQxT,KADR;AAAA,MAC6ByT,IAD7B,qBACqBvT,MADrB;AAAA,MAGQ4jE,KAHR,GAG4BxzC,SAH5B,CAGQwzC,KAHR;AAAA,MAGea,QAHf,GAG4Br0C,SAH5B,CAGeq0C,QAHf;AAIA,MAAMC,cAAc,GAAGD,QAAQ,GAAG,CAAH,GAAO,CAAtC,CAJA,CAMA;;AACA,MAAME,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,UAAU;AAAA,WAAIA,UAAU,CAACvmE,CAAX,GAAeiV,IAAf,GAAsBsxD,UAAU,CAACtmE,CAArC;AAAA,GAAhC;;AACA,MAAMumE,gCAAgC,GAAG,SAAnCA,gCAAmC,CAAAzuD,UAAU;AAAA,WAAK;AACtD9X,OAAC,EAAE8X,UAAU,GAAG9C,IADsC;AAEtDjV,OAAC,EAAEF,IAAI,CAACkY,KAAL,CAAWD,UAAU,GAAG9C,IAAxB;AAFmD,KAAL;AAAA,GAAnD;;AAKA,MAAImxD,QAAJ,EAAc;AACZh8D,UAAM,CAACmlB,IAAP,CAAY,uBAAZ;AACD,GAFD,MAEO;AACLnlB,UAAM,CAACmlB,IAAP,CAAY,0BAAZ;AACD;;AAjBD,uBAmB2Ck3C,aAAa,CAAClB,KAAD,CAnBxD;AAAA,MAmBQmB,SAnBR,kBAmBQA,SAnBR;AAAA,MAmBmBC,QAnBnB,kBAmBmBA,QAnBnB;AAAA,MAmB6BC,SAnB7B,kBAmB6BA,SAnB7B,EAqBA;AACA;;;AACA,MAAMC,gBAAgB,GAAGH,SAAS,CAAC,CAAD,CAAlC;AAEA,MAAM7hE,WAAW,GAAG;AAClBxC,QAAI,EAAEwkE,gBAAgB,CAAC5mE,CADL;AAElB6mE,QAAI,EAAED,gBAAgB,CAAC5mE,CAFL;AAGlBsC,QAAI,EAAEskE,gBAAgB,CAAC7mE,CAHL;AAIlB+mE,QAAI,EAAEF,gBAAgB,CAAC7mE;AAJL,GAApB,CAzBA,CAgCA;;AACA,OAAK,IAAImD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyiE,eAAe,CAACzhE,MAApC,EAA4ChB,CAAC,EAA7C,EAAiD;AAC/C,QAAIiS,SAAS,CAACjS,CAAD,CAAT,KAAiB4S,YAArB,EAAmC;AACjC,UAAM4D,KAAK,GAAG6sD,gCAAgC,CAACrjE,CAAD,CAA9C;AAEA6jE,uBAAiB,CAACniE,WAAD,EAAc8U,KAAd,CAAjB;AACAisD,qBAAe,CAACziE,CAAD,CAAf,GAAqB,CAArB;AACD,KALD,MAKO;AACLyiE,qBAAe,CAACziE,CAAD,CAAf,GAAqB,CAArB;AACD;AACF,GA1CD,CA4CA;AACA;;;AACA,OAAK,IAAIA,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGujE,SAAS,CAACviE,MAA9B,EAAsChB,EAAC,EAAvC,EAA2C;AACzC,QAAMwW,MAAK,GAAG+sD,SAAS,CAACvjE,EAAD,CAAvB;AAEAyiE,mBAAe,CAACU,aAAa,CAAC3sD,MAAD,CAAd,CAAf,GAAwC,CAAxC;AACAqtD,qBAAiB,CAACniE,WAAD,EAAc8U,MAAd,CAAjB;AACD;;AAEDstD,iBAAe,CAACpiE,WAAD,EAAcqQ,IAAd,EAAoBD,IAApB,CAAf;AArDA,MAuDQ5S,IAvDR,GAuDmCwC,WAvDnC,CAuDQxC,IAvDR;AAAA,MAuDcykE,IAvDd,GAuDmCjiE,WAvDnC,CAuDciiE,IAvDd;AAAA,MAuDoBvkE,IAvDpB,GAuDmCsC,WAvDnC,CAuDoBtC,IAvDpB;AAAA,MAuD0BwkE,IAvD1B,GAuDmCliE,WAvDnC,CAuD0BkiE,IAvD1B,EAyDA;;AACA,WAASG,MAAT,CAAgBjnE,CAAhB,EAAmBD,CAAnB,EAAsB;AACpB;AACA;AACA;AAEA,QAAIC,CAAC,IAAI6mE,IAAL,IAAa7mE,CAAC,GAAGoC,IAAjB,IAAyBrC,CAAC,IAAI+mE,IAA9B,IAAsC/mE,CAAC,GAAGuC,IAA9C,EAAoD;AAClD;AACD;;AAED,WAAOqjE,eAAe,CAAC5lE,CAAC,GAAGiV,IAAJ,GAAWhV,CAAZ,CAAtB;AACD;;AAED,MAAIknE,QAAQ,GAAG,CAAf;AACA,MAAIC,SAAS,GAAG,CAAhB,CAvEA,CAyEA;;AACA,OAAK,IAAIjkE,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAGwjE,QAAQ,CAACxiE,MAA7B,EAAqChB,GAAC,EAAtC,EAA0C;AACxC;AACA,QAAMkkE,SAAS,GAAGV,QAAQ,CAACxjE,GAAD,CAA1B;AACA,QAAMmkE,SAAS,GAAG1B,eAAe,CAACU,aAAa,CAACe,SAAD,CAAd,CAAjC;;AAEA,QAAIC,SAAS,KAAKjB,cAAd,IAAgC15C,oEAAc,CAAC06C,SAAD,EAAYnyD,IAAZ,EAAkBD,IAAlB,CAAlD,EAA2E;AACzEkyD,cAAQ,IAAII,aAAa,CAACF,SAAD,EAAY,CAAZ,EAAezB,eAAf,EAAgCsB,MAAhC,EAAwCjyD,IAAxC,CAAzB;AACD,KAPuC,CASxC;;;AACA,QAAMuyD,UAAU,GAAGZ,SAAS,CAACzjE,GAAD,CAA5B;AACA,QAAMskE,UAAU,GAAG7B,eAAe,CAACU,aAAa,CAACkB,UAAD,CAAd,CAAlC;;AAEA,QACEC,UAAU,KAAKpB,cAAf,IACA15C,oEAAc,CAAC66C,UAAD,EAAatyD,IAAb,EAAmBD,IAAnB,CAFhB,EAGE;AACAmyD,eAAS,IAAIG,aAAa,CAACC,UAAD,EAAa,CAAb,EAAgB5B,eAAhB,EAAiCsB,MAAjC,EAAyCjyD,IAAzC,CAA1B;AACD;AACF;;AAED,MAAIkyD,QAAQ,KAAK,CAAb,IAAkBC,SAAS,KAAK,CAApC,EAAuC;AACrC;AACA;AACA;AACD;;AAED,MAAMM,YAAY,GAAGtB,QAAQ,GAAGrwD,YAAH,GAAkB,CAA/C,CArGA,CAuGA;;AACA,MAAM4xD,SAAS,GAAGR,QAAQ,GAAGC,SAAX,GAAuB,CAAvB,GAA2B,CAA7C;;AAEA,OAAK,IAAIjkE,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAGyiE,eAAe,CAACzhE,MAApC,EAA4ChB,GAAC,EAA7C,EAAiD;AAC/C,QAAIyiE,eAAe,CAACziE,GAAD,CAAf,KAAuBwkE,SAA3B,EAAsC;AACpCvyD,eAAS,CAACjS,GAAD,CAAT,GAAeukE,YAAf;AACD;AACF;;AAED,MAAIA,YAAY,KAAK3xD,YAArB,EAAmC;AACjC;AACA,SAAK,IAAI5S,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAGujE,SAAS,CAACviE,MAA9B,EAAsChB,GAAC,EAAvC,EAA2C;AACzCiS,eAAS,CAACkxD,aAAa,CAACI,SAAS,CAACvjE,GAAD,CAAV,CAAd,CAAT,GAAyC4S,YAAzC;AACD;AACF,GALD,MAKO;AACL;AACA,SAAK,IAAI5S,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAGujE,SAAS,CAACviE,MAA9B,EAAsChB,GAAC,EAAvC,EAA2C;AACzC,UAAM4U,UAAU,GAAGuuD,aAAa,CAACI,SAAS,CAACvjE,GAAD,CAAV,CAAhC;;AAEA,UAAIiS,SAAS,CAAC2C,UAAD,CAAT,KAA0BhC,YAA9B,EAA4C;AAC1CX,iBAAS,CAAC2C,UAAD,CAAT,GAAwB,CAAxB;AACD;AACF;AACF;AACF;AAED;;;;;;;;;AAOA,SAASivD,iBAAT,CAA2BniE,WAA3B,EAAwC8U,KAAxC,EAA+C;AAAA,MACrC1Z,CADqC,GAC5B0Z,KAD4B,CACrC1Z,CADqC;AAAA,MAClCD,CADkC,GAC5B2Z,KAD4B,CAClC3Z,CADkC;;AAG7C,MAAIC,CAAC,GAAG4E,WAAW,CAACxC,IAApB,EAA0B;AACxBwC,eAAW,CAACxC,IAAZ,GAAmBpC,CAAnB;AACD;;AACD,MAAIA,CAAC,GAAG4E,WAAW,CAACiiE,IAApB,EAA0B;AACxBjiE,eAAW,CAACiiE,IAAZ,GAAmB7mE,CAAnB;AACD;;AACD,MAAID,CAAC,GAAG6E,WAAW,CAACtC,IAApB,EAA0B;AACxBsC,eAAW,CAACtC,IAAZ,GAAmBvC,CAAnB;AACD;;AACD,MAAIA,CAAC,GAAG6E,WAAW,CAACkiE,IAApB,EAA0B;AACxBliE,eAAW,CAACkiE,IAAZ,GAAmB/mE,CAAnB;AACD;AACF;AAED;;;;;;;;;AAOA,SAASinE,eAAT,CAAyBpiE,WAAzB,EAAsCqQ,IAAtC,EAA4CD,IAA5C,EAAkD;AAChD;AACA,MAAM2yD,MAAM,GAAG,CAAf;AAEA/iE,aAAW,CAACiiE,IAAZ,GAAmBhnE,IAAI,CAACwC,GAAL,CAASuC,WAAW,CAACiiE,IAAZ,GAAmBc,MAA5B,EAAoC3yD,IAApC,CAAnB;AACApQ,aAAW,CAACxC,IAAZ,GAAmBvC,IAAI,CAACkH,GAAL,CAASnC,WAAW,CAACxC,IAAZ,GAAmBulE,MAA5B,EAAoC,CAApC,CAAnB;AACA/iE,aAAW,CAACkiE,IAAZ,GAAmBjnE,IAAI,CAACwC,GAAL,CAASuC,WAAW,CAACkiE,IAAZ,GAAmBa,MAA5B,EAAoC1yD,IAApC,CAAnB;AACArQ,aAAW,CAACtC,IAAZ,GAAmBzC,IAAI,CAACkH,GAAL,CAASnC,WAAW,CAACtC,IAAZ,GAAmBqlE,MAA5B,EAAoC,CAApC,CAAnB;AACD;AAED;;;;;;;;;;;AASA,SAASL,aAAT,CAAuB5tD,KAAvB,EAA8BguD,SAA9B,EAAyC/B,eAAzC,EAA0DsB,MAA1D,EAAkEjyD,IAAlE,EAAwE;AACtE,MAAMspD,MAAM,GAAGsJ,oEAAS,CAACX,MAAD,EAAS,CAACvtD,KAAK,CAAC1Z,CAAP,EAAU0Z,KAAK,CAAC3Z,CAAhB,CAAT,CAAxB;AAEA,MAAM8nE,OAAO,GAAGvJ,MAAM,CAACuJ,OAAvB;;AAEA,OAAK,IAAIzjE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyjE,OAAO,CAAC3jE,MAA5B,EAAoCE,CAAC,EAArC,EAAyC;AACvC,QAAM0jE,QAAQ,GAAGD,OAAO,CAACzjE,CAAD,CAAxB;AAEAuhE,mBAAe,CAACmC,QAAQ,CAAC,CAAD,CAAR,GAAc9yD,IAAd,GAAqB8yD,QAAQ,CAAC,CAAD,CAA9B,CAAf,GAAoDJ,SAApD;AACD;;AAED,SAAOG,OAAO,CAAC3jE,MAAf;AACD;AAED;;;;;;;AAKA,SAASsiE,aAAT,CAAuBlB,KAAvB,EAA8B;AAC5B,MAAMmB,SAAS,GAAG,EAAlB;;AAEA,OAAK,IAAIvjE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGoiE,KAAK,CAACphE,MAAN,GAAe,CAAnC,EAAsChB,CAAC,EAAvC,EAA2C;AACzC;AACAujE,aAAS,CAACzsD,IAAV,CAAesrD,KAAK,CAACpiE,CAAD,CAApB,EAFyC,CAGzC;;AACAujE,aAAS,CAACzsD,IAAV,OAAAysD,SAAS,kFAASsB,oFAAyB,CAACzC,KAAK,CAACpiE,CAAD,CAAN,EAAWoiE,KAAK,CAACpiE,CAAC,GAAG,CAAL,CAAhB,CAAlC,EAAT;AACD,GAR2B,CAU5B;;;AACAujE,WAAS,CAACzsD,IAAV,CAAesrD,KAAK,CAACA,KAAK,CAACphE,MAAN,GAAe,CAAhB,CAApB,EAX4B,CAa5B;;AAEA,MAAMwiE,QAAQ,GAAG,EAAjB;AACA,MAAMC,SAAS,GAAG,EAAlB;;AAEA,OAAK,IAAIzjE,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAGujE,SAAS,CAACviE,MAAV,GAAmB,CAAvC,EAA0ChB,GAAC,EAA3C,EAA+C;AAAA,gCACrB8kE,gCAAgC,CACtDvB,SAAS,CAACvjE,GAAD,CAD6C,EAEtDujE,SAAS,CAACvjE,GAAC,GAAG,CAAL,CAF6C,CADX;AAAA,QACrC+B,IADqC,yBACrCA,IADqC;AAAA,QAC/BwT,KAD+B,yBAC/BA,KAD+B;;AAM7CiuD,YAAQ,CAAC1sD,IAAT,CAAc/U,IAAd;AACA0hE,aAAS,CAAC3sD,IAAV,CAAevB,KAAf;AACD;;AAED,SAAO;AAAEguD,aAAS,EAATA,SAAF;AAAaC,YAAQ,EAARA,QAAb;AAAuBC,aAAS,EAATA;AAAvB,GAAP;AACD;AAED;;;;;;;;;;;AASA,SAASqB,gCAAT,CAA0CC,SAA1C,EAAqDC,aAArD,EAAoE;AAClE,MAAMtpD,SAAS,GAAG;AAChB5e,KAAC,EAAEkoE,aAAa,CAACloE,CAAd,GAAkBioE,SAAS,CAACjoE,CADf;AAEhBD,KAAC,EAAEmoE,aAAa,CAACnoE,CAAd,GAAkBkoE,SAAS,CAACloE;AAFf,GAAlB,CADkE,CAMlE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAI6e,SAAS,CAAC5e,CAAV,KAAgB,CAAC,CAAjB,IAAsB4e,SAAS,CAAC7e,CAAV,KAAgB,CAA1C,EAA6C;AAC3C,WAAO;AACLkF,UAAI,EAAE;AAAEjF,SAAC,EAAEioE,SAAS,CAACjoE,CAAV,GAAc,CAAnB;AAAsBD,SAAC,EAAEkoE,SAAS,CAACloE,CAAV,GAAc;AAAvC,OADD;AAEL0Y,WAAK,EAAE;AAAEzY,SAAC,EAAEioE,SAAS,CAACjoE,CAAV,GAAc,CAAnB;AAAsBD,SAAC,EAAEkoE,SAAS,CAACloE,CAAV,GAAc;AAAvC;AAFF,KAAP;AAID,GALD,MAKO,IAAI6e,SAAS,CAAC5e,CAAV,KAAgB,CAAhB,IAAqB4e,SAAS,CAAC7e,CAAV,KAAgB,CAAzC,EAA4C;AACjD,WAAO;AACLkF,UAAI,EAAE;AAAEjF,SAAC,EAAEioE,SAAS,CAACjoE,CAAV,GAAc,CAAnB;AAAsBD,SAAC,EAAEkoE,SAAS,CAACloE;AAAnC,OADD;AAEL0Y,WAAK,EAAE;AAAEzY,SAAC,EAAEioE,SAAS,CAACjoE,CAAV,GAAc,CAAnB;AAAsBD,SAAC,EAAEkoE,SAAS,CAACloE;AAAnC;AAFF,KAAP;AAID,GALM,MAKA,IAAI6e,SAAS,CAAC5e,CAAV,KAAgB,CAAhB,IAAqB4e,SAAS,CAAC7e,CAAV,KAAgB,CAAzC,EAA4C;AACjD,WAAO;AACLkF,UAAI,EAAE;AAAEjF,SAAC,EAAEioE,SAAS,CAACjoE,CAAV,GAAc,CAAnB;AAAsBD,SAAC,EAAEkoE,SAAS,CAACloE,CAAV,GAAc;AAAvC,OADD;AAEL0Y,WAAK,EAAE;AAAEzY,SAAC,EAAEioE,SAAS,CAACjoE,CAAV,GAAc,CAAnB;AAAsBD,SAAC,EAAEkoE,SAAS,CAACloE,CAAV,GAAc;AAAvC;AAFF,KAAP;AAID,GALM,MAKA,IAAI6e,SAAS,CAAC5e,CAAV,KAAgB,CAAhB,IAAqB4e,SAAS,CAAC7e,CAAV,KAAgB,CAAzC,EAA4C;AACjD,WAAO;AACLkF,UAAI,EAAE;AAAEjF,SAAC,EAAEioE,SAAS,CAACjoE,CAAf;AAAkBD,SAAC,EAAEkoE,SAAS,CAACloE,CAAV,GAAc;AAAnC,OADD;AAEL0Y,WAAK,EAAE;AAAEzY,SAAC,EAAEioE,SAAS,CAACjoE,CAAf;AAAkBD,SAAC,EAAEkoE,SAAS,CAACloE,CAAV,GAAc;AAAnC;AAFF,KAAP;AAID,GALM,MAKA,IAAI6e,SAAS,CAAC5e,CAAV,KAAgB,CAAhB,IAAqB4e,SAAS,CAAC7e,CAAV,KAAgB,CAAC,CAA1C,EAA6C;AAClD,WAAO;AACLkF,UAAI,EAAE;AAAEjF,SAAC,EAAEioE,SAAS,CAACjoE,CAAV,GAAc,CAAnB;AAAsBD,SAAC,EAAEkoE,SAAS,CAACloE,CAAV,GAAc;AAAvC,OADD;AAEL0Y,WAAK,EAAE;AAAEzY,SAAC,EAAEioE,SAAS,CAACjoE,CAAV,GAAc,CAAnB;AAAsBD,SAAC,EAAEkoE,SAAS,CAACloE,CAAV,GAAc;AAAvC;AAFF,KAAP;AAID,GALM,MAKA,IAAI6e,SAAS,CAAC5e,CAAV,KAAgB,CAAhB,IAAqB4e,SAAS,CAAC7e,CAAV,KAAgB,CAAC,CAA1C,EAA6C;AAClD,WAAO;AACLkF,UAAI,EAAE;AAAEjF,SAAC,EAAEioE,SAAS,CAACjoE,CAAV,GAAc,CAAnB;AAAsBD,SAAC,EAAEkoE,SAAS,CAACloE;AAAnC,OADD;AAEL0Y,WAAK,EAAE;AAAEzY,SAAC,EAAEioE,SAAS,CAACjoE,CAAV,GAAc,CAAnB;AAAsBD,SAAC,EAAEkoE,SAAS,CAACloE;AAAnC;AAFF,KAAP;AAID,GALM,MAKA,IAAI6e,SAAS,CAAC5e,CAAV,KAAgB,CAAC,CAAjB,IAAsB4e,SAAS,CAAC7e,CAAV,KAAgB,CAAC,CAA3C,EAA8C;AACnD,WAAO;AACLkF,UAAI,EAAE;AAAEjF,SAAC,EAAEioE,SAAS,CAACjoE,CAAV,GAAc,CAAnB;AAAsBD,SAAC,EAAEkoE,SAAS,CAACloE,CAAV,GAAc;AAAvC,OADD;AAEL0Y,WAAK,EAAE;AAAEzY,SAAC,EAAEioE,SAAS,CAACjoE,CAAV,GAAc,CAAnB;AAAsBD,SAAC,EAAEkoE,SAAS,CAACloE,CAAV,GAAc;AAAvC;AAFF,KAAP;AAID,GALM,MAKA,IAAI6e,SAAS,CAAC5e,CAAV,KAAgB,CAAC,CAAjB,IAAsB4e,SAAS,CAAC7e,CAAV,KAAgB,CAA1C,EAA6C;AAClD,WAAO;AACLkF,UAAI,EAAE;AAAEjF,SAAC,EAAEioE,SAAS,CAACjoE,CAAf;AAAkBD,SAAC,EAAEkoE,SAAS,CAACloE,CAAV,GAAc;AAAnC,OADD;AAEL0Y,WAAK,EAAE;AAAEzY,SAAC,EAAEioE,SAAS,CAACjoE,CAAf;AAAkBD,SAAC,EAAEkoE,SAAS,CAACloE,CAAV,GAAc;AAAnC;AAFF,KAAP;AAID;;AAEDoK,QAAM,CAACorB,KAAP,wDAEE0yC,SAFF,EAGEC,aAHF,EAIEtpD,SAJF;AAMD;AAED;;;;;;;;;;;AASA,SAASinD,+BAAT,CAAyCP,KAAzC,EAAgDxvD,YAAhD,EAA8D;AAC5D;AACA,MAAIqyD,OAAO,GAAG7C,KAAK,CAAC,CAAD,CAAL,CAAS52B,OAAT,KAAqB54B,YAAnC;AAEA,MAAMm3B,UAAU,GAAG,EAAnB;AAEAA,YAAU,CAACjzB,IAAX,CAAgB;AACdmsD,YAAQ,EAAE,CAACgC,OADG;AAEd7C,SAAK,EAAE;AAFO,GAAhB;AAKA,MAAI8C,cAAc,GAAG,CAArB;;AAEA,OAAK,IAAIllE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGoiE,KAAK,CAACphE,MAA1B,EAAkChB,CAAC,EAAnC,EAAuC;AACrC,QAAMgjE,IAAI,GAAGZ,KAAK,CAACpiE,CAAD,CAAlB;;AAEA,QAAIilE,OAAJ,EAAa;AACXl7B,gBAAU,CAACm7B,cAAD,CAAV,CAA2B9C,KAA3B,CAAiCtrD,IAAjC,CAAsCksD,IAAtC;;AAEA,UAAIA,IAAI,CAACx3B,OAAL,KAAiB54B,YAArB,EAAmC;AACjC;AAEAsyD,sBAAc;AACdD,eAAO,GAAG,CAACA,OAAX;AACAl7B,kBAAU,CAACjzB,IAAX,CAAgB;AACdmsD,kBAAQ,EAAE,IADI;AAEdb,eAAK,EAAE;AAFO,SAAhB;AAIAr4B,kBAAU,CAACm7B,cAAD,CAAV,CAA2B9C,KAA3B,CAAiCtrD,IAAjC,CAAsCsrD,KAAK,CAACpiE,CAAC,GAAG,CAAL,CAA3C;AACA+pC,kBAAU,CAACm7B,cAAD,CAAV,CAA2B9C,KAA3B,CAAiCtrD,IAAjC,CAAsCksD,IAAtC;AACD;AACF,KAfD,MAeO;AACLj5B,gBAAU,CAACm7B,cAAD,CAAV,CAA2B9C,KAA3B,CAAiCtrD,IAAjC,CAAsCksD,IAAtC;;AAEA,UAAIA,IAAI,CAACx3B,OAAL,KAAiB54B,YAArB,EAAmC;AACjC;AACAsyD,sBAAc;AACdD,eAAO,GAAG,CAACA,OAAX;AACAl7B,kBAAU,CAACjzB,IAAX,CAAgB;AACdmsD,kBAAQ,EAAE,KADI;AAEdb,eAAK,EAAE;AAFO,SAAhB;AAIAr4B,kBAAU,CAACm7B,cAAD,CAAV,CAA2B9C,KAA3B,CAAiCtrD,IAAjC,CAAsCsrD,KAAK,CAACpiE,CAAC,GAAG,CAAL,CAA3C;AACA+pC,kBAAU,CAACm7B,cAAD,CAAV,CAA2B9C,KAA3B,CAAiCtrD,IAAjC,CAAsCksD,IAAtC;AACD;AACF;AACF,GA9C2D,CAgD5D;;;AAEAj5B,YAAU,CAACC,GAAX;AACAD,YAAU,CAAC3W,KAAX;AAEA,SAAO2W,UAAP;AACD,C;;;;;;;;;;;;;;;;;;;;;;AC9gBD;AACA;AACA;AAKA;AAEA,IAAM9iC,MAAM,GAAGC,8DAAS,CAAC,gDAAD,CAAxB;AAEA;;;;;;;;;AAQA,SAASi+D,WAAT,CAAqBx/D,GAArB,EAA0B8oB,aAA1B,EAAwD;AAAA,MAAf22C,MAAe,uEAAN,IAAM;AAAA,MAC9C12C,qBAD8C,GACpBD,aADoB,CAC9CC,qBAD8C;;AAGtD,MAAIA,qBAAqB,8BAAzB,EAAyD;AACvDznB,UAAM,CAACorB,KAAP,gGAC0F3D,qBAD1F;AAIA;AACD;;AAED,MAAM9oB,SAAS,GAAGD,GAAG,CAACE,MAAtB;;AAXsD,8BAYvBw/D,qFAA0B,CAAC1/D,GAAD,CAZH;AAAA;AAAA,MAY/C8P,OAZ+C;AAAA,MAYtCM,WAZsC;;AAatD,MAAM1W,OAAO,GAAG6sD,wEAAe,CAC7BtmD,SAAS,CAACpG,OAAV,CAAkBpD,KADW,EAE7BwJ,SAAS,CAACpG,OAAV,CAAkBnD,GAFW,CAA/B;AAKA+oE,QAAM,GACFE,2EAAgB,CACd3/D,GADc,EAEd8oB,aAFc,EAGd,UAAA7sB,KAAK;AAAA,WAAIgtD,oEAAc,CAACvvD,OAAD,EAAUuC,KAAV,CAAlB;AAAA,GAHS,EAId6T,OAJc,EAKdM,WALc,CADd,GAQFwvD,4EAAiB,CACf5/D,GADe,EAEf8oB,aAFe,EAGf,UAAA7sB,KAAK;AAAA,WAAIgtD,oEAAc,CAACvvD,OAAD,EAAUuC,KAAV,CAAlB;AAAA,GAHU,EAIf6T,OAJe,EAKfM,WALe,CARrB;AAeD;AAED;;;;;;;;;AAOO,SAASirD,iBAAT,CAA2Br7D,GAA3B,EAAgC8oB,aAAhC,EAA+C;AACpD02C,aAAW,CAACx/D,GAAD,EAAM8oB,aAAN,EAAqB,IAArB,CAAX;AACD;AAED;;;;;;;;AAOO,SAASqyC,kBAAT,CAA4Bn7D,GAA5B,EAAiC8oB,aAAjC,EAAgD;AACrD02C,aAAW,CAACx/D,GAAD,EAAM8oB,aAAN,EAAqB,KAArB,CAAX;AACD,C;;;;;;;;;;;;;;;;;;;;;AC1ED;AAKA;AACA;AAEA,IAAMxnB,MAAM,GAAGC,8DAAS,CAAC,kDAAD,CAAxB;AAEA;;;;;;;;;AAQA,SAASs+D,aAAT,CAAuB7/D,GAAvB,EAA4B8oB,aAA5B,EAA0D;AAAA,MAAf22C,MAAe,uEAAN,IAAM;AAAA,MAChDjoE,MADgD,GACdsxB,aADc,CAChDtxB,MADgD;AAAA,MACxCuxB,qBADwC,GACdD,aADc,CACxCC,qBADwC;;AAGxD,MAAIA,qBAAqB,gCAAzB,EAA2D;AACzDznB,UAAM,CAACorB,KAAP,oGAC8F3D,qBAD9F;AAIA;AACD;;AATuD,MAWhDjjB,KAXgD,GAWtC9F,GAAG,CAACE,MAXkC,CAWhD4F,KAXgD;AAYxD,MAAMg6D,QAAQ,GAAGtoE,MAAM,CAAC8D,GAAP,CAAW,UAAA43B,CAAC;AAAA,WAAI,CAACA,CAAC,CAAC/7B,CAAH,EAAM+7B,CAAC,CAACh8B,CAAR,CAAJ;AAAA,GAAZ,CAAjB;;AAZwD,8BAazB6oE,sFAA2B,CAACD,QAAD,EAAWh6D,KAAX,CAbF;AAAA;AAAA,MAajDgK,OAbiD;AAAA,MAaxCM,WAbwC;;AAexDqvD,QAAM,GACFE,2EAAgB,CACd3/D,GADc,EAEd8oB,aAFc,EAGd,UAAA7sB,KAAK;AAAA,WAAI6nB,sEAAgB,CAAC,CAAC7nB,KAAK,CAAC9E,CAAP,EAAU8E,KAAK,CAAC/E,CAAhB,CAAD,EAAqB4oE,QAArB,CAApB;AAAA,GAHS,EAIdhwD,OAJc,EAKdM,WALc,CADd,GAQFwvD,4EAAiB,CACf5/D,GADe,EAEf8oB,aAFe,EAGf,UAAA7sB,KAAK;AAAA,WAAI6nB,sEAAgB,CAAC,CAAC7nB,KAAK,CAAC9E,CAAP,EAAU8E,KAAK,CAAC/E,CAAhB,CAAD,EAAqB4oE,QAArB,CAApB;AAAA,GAHU,EAIfhwD,OAJe,EAKfM,WALe,CARrB;AAeD;AAED;;;;;;;;;AAOO,SAASurD,mBAAT,CAA6B37D,GAA7B,EAAkC8oB,aAAlC,EAAiD;AACtD+2C,eAAa,CAAC7/D,GAAD,EAAM8oB,aAAN,EAAqB,IAArB,CAAb;AACD;AAED;;;;;;;;AAOO,SAAS4yC,oBAAT,CAA8B17D,GAA9B,EAAmC8oB,aAAnC,EAAkD;AACvD+2C,eAAa,CAAC7/D,GAAD,EAAM8oB,aAAN,EAAqB,KAArB,CAAb;AACD,C;;;;;;;;;;;;;;;;;;;;ACtED;AACA;AAMA,IAAMxnB,MAAM,GAAGC,8DAAS,CAAC,mDAAD,CAAxB;AAEA;;;;;;;;AAOA,SAASy+D,cAAT,CAAwBhgE,GAAxB,EAA6B8oB,aAA7B,EAA2D;AAAA,MAAf22C,MAAe,uEAAN,IAAM;AAAA,MACjDjoE,MADiD,GACfsxB,aADe,CACjDtxB,MADiD;AAAA,MACzCuxB,qBADyC,GACfD,aADe,CACzCC,qBADyC;;AAGzD,MAAIA,qBAAqB,iCAAzB,EAA4D;AAC1DznB,UAAM,CAACorB,KAAP,sGACgG3D,qBADhG;AAIA;AACD;;AAED,MAAM9oB,SAAS,GAAGD,GAAG,CAACE,MAAtB,CAXyD,CAazD;AAEA;AACA;;AAhByD,MAiBjD4F,KAjBiD,GAiBvC7F,SAjBuC,CAiBjD6F,KAjBiD;AAkBzD,MAAMg6D,QAAQ,GAAGtoE,MAAM,CAAC8D,GAAP,CAAW,UAAA43B,CAAC;AAAA,WAAI,CAACA,CAAC,CAAC/7B,CAAH,EAAM+7B,CAAC,CAACh8B,CAAR,CAAJ;AAAA,GAAZ,CAAjB;;AAlByD,8BAmB1B6oE,sFAA2B,CAACD,QAAD,EAAWh6D,KAAX,CAnBD;AAAA;AAAA,MAmBlDgK,OAnBkD;AAAA,MAmBzCM,WAnByC;;AAqBzDqvD,QAAM,GACFE,2EAAgB,CAAC3/D,GAAD,EAAM8oB,aAAN,EAAqB;AAAA,WAAM,IAAN;AAAA,GAArB,EAAiChZ,OAAjC,EAA0CM,WAA1C,CADd,GAEF6vD,kFAAuB,CAACjgE,GAAD,EAAM8oB,aAAN,EAAqBhZ,OAArB,EAA8BM,WAA9B,CAF3B;AAGD;AAED;;;;;;;;;AAOO,SAAS2rD,oBAAT,CAA8B/7D,GAA9B,EAAmC8oB,aAAnC,EAAkD;AACvDk3C,gBAAc,CAAChgE,GAAD,EAAM8oB,aAAN,EAAqB,IAArB,CAAd;AACD;AAED;;;;;;;;AAOO,SAASgzC,qBAAT,CAA+B97D,GAA/B,EAAoC8oB,aAApC,EAAmD;AACxDk3C,gBAAc,CAAChgE,GAAD,EAAM8oB,aAAN,EAAqB,KAArB,CAAd;AACD,C;;;;;;;;;;;;;;;;;;;;;;AC9DD;AAKA;AACA;AAEA;AAEA,IAAMxnB,MAAM,GAAGC,8DAAS,CAAC,yCAAD,CAAxB;AAEA;;;;;;;;AAOA,SAAS2+D,UAAT,CAAoBlgE,GAApB,EAAyB8oB,aAAzB,EAAuD;AAAA,MAAf22C,MAAe,uEAAN,IAAM;AAAA,MAC7C12C,qBAD6C,GACnBD,aADmB,CAC7CC,qBAD6C;;AAGrD,MAAIA,qBAAqB,8BAAzB,EAAyD;AACvDznB,UAAM,CAACorB,KAAP,+FACyF3D,qBADzF;AAIA;AACD;;AAED,MAAM9oB,SAAS,GAAGD,GAAG,CAACE,MAAtB;;AAXqD,8BAYtBw/D,qFAA0B,CAAC1/D,GAAD,CAZJ;AAAA;AAAA,MAY9C8P,OAZ8C;AAAA,MAYrCM,WAZqC;;AAarD,MAAM1W,OAAO,GAAG6sD,qEAAe,CAC7BtmD,SAAS,CAACpG,OAAV,CAAkBpD,KADW,EAE7BwJ,SAAS,CAACpG,OAAV,CAAkBnD,GAFW,CAA/B;AAKA+oE,QAAM,GACFU,0EAAe,CACbngE,GADa,EAEb8oB,aAFa,EAGb,UAAA7sB,KAAK;AAAA,WAAIgtD,oEAAc,CAACvvD,OAAD,EAAUuC,KAAV,CAAlB;AAAA,GAHQ,EAIb6T,OAJa,EAKbM,WALa,CADb,GAQFgwD,2EAAgB,CACdpgE,GADc,EAEd8oB,aAFc,EAGd,UAAA7sB,KAAK;AAAA,WAAIgtD,oEAAc,CAACvvD,OAAD,EAAUuC,KAAV,CAAlB;AAAA,GAHS,EAId6T,OAJc,EAKdM,WALc,CARpB;AAeD;AAED;;;;;;;;;AAOO,SAAS2qD,gBAAT,CAA0B/6D,GAA1B,EAA+B8oB,aAA/B,EAA8C;AACnDo3C,YAAU,CAAClgE,GAAD,EAAM8oB,aAAN,EAAqB,IAArB,CAAV;AACD;AAED;;;;;;;;AAOO,SAASmyC,iBAAT,CAA2Bj7D,GAA3B,EAAgC8oB,aAAhC,EAA+C;AACpDo3C,YAAU,CAAClgE,GAAD,EAAM8oB,aAAN,EAAqB,KAArB,CAAV;AACD,C;;;;;;;;;;;;;;;;;;;;;AC1ED;AAKA;AAEA;AAEA,IAAMxnB,MAAM,GAAGC,8DAAS,CAAC,iDAAD,CAAxB;AAEA;;;;;;;;;AAQA,SAAS8+D,YAAT,CAAsBrgE,GAAtB,EAA2B8oB,aAA3B,EAAyD;AAAA,MAAf22C,MAAe,uEAAN,IAAM;AAAA,MAC/CjoE,MAD+C,GACbsxB,aADa,CAC/CtxB,MAD+C;AAAA,MACvCuxB,qBADuC,GACbD,aADa,CACvCC,qBADuC;;AAGvD,MAAIA,qBAAqB,gCAAzB,EAA2D;AACzDznB,UAAM,CAACorB,KAAP,oGAC8F3D,qBAD9F;AAIA;AACD,GATsD,CAWvD;AACA;AACA;;;AAbuD,MAc/CjjB,KAd+C,GAcrC9F,GAAG,CAACE,MAdiC,CAc/C4F,KAd+C;AAevD,MAAMg6D,QAAQ,GAAGtoE,MAAM,CAAC8D,GAAP,CAAW,UAAA43B,CAAC;AAAA,WAAI,CAACA,CAAC,CAAC/7B,CAAH,EAAM+7B,CAAC,CAACh8B,CAAR,CAAJ;AAAA,GAAZ,CAAjB;;AAfuD,8BAgBxB6oE,sFAA2B,CAACD,QAAD,EAAWh6D,KAAX,CAhBH;AAAA;AAAA,MAgBhDgK,OAhBgD;AAAA,MAgBvCM,WAhBuC;;AAkBvDqvD,QAAM,GACFU,0EAAe,CACbngE,GADa,EAEb8oB,aAFa,EAGb,UAAA7sB,KAAK;AAAA,WAAI6nB,sEAAgB,CAAC,CAAC7nB,KAAK,CAAC9E,CAAP,EAAU8E,KAAK,CAAC/E,CAAhB,CAAD,EAAqB4oE,QAArB,CAApB;AAAA,GAHQ,EAIbhwD,OAJa,EAKbM,WALa,CADb,GAQFgwD,2EAAgB,CACdpgE,GADc,EAEd8oB,aAFc,EAGd,UAAA7sB,KAAK;AAAA,WAAI6nB,sEAAgB,CAAC,CAAC7nB,KAAK,CAAC9E,CAAP,EAAU8E,KAAK,CAAC/E,CAAhB,CAAD,EAAqB4oE,QAArB,CAApB;AAAA,GAHS,EAIdhwD,OAJc,EAKdM,WALc,CARpB;AAeD;AAED;;;;;;;;;AAOO,SAASorD,kBAAT,CAA4Bx7D,GAA5B,EAAiC8oB,aAAjC,EAAgD;AACrDu3C,cAAY,CAACrgE,GAAD,EAAM8oB,aAAN,EAAqB,IAArB,CAAZ;AACD;AAED;;;;;;;;AAOO,SAAS2yC,mBAAT,CAA6Bz7D,GAA7B,EAAkC8oB,aAAlC,EAAiD;AACtDu3C,cAAY,CAACrgE,GAAD,EAAM8oB,aAAN,EAAqB,KAArB,CAAZ;AACD,C;;;;;;;;;;;;;;;;;;;;AC1ED;AAKA;AAEA,IAAMxnB,MAAM,GAAGC,8DAAS,CAAC,kDAAD,CAAxB;AAEA;;;;;;;;;AAQA,SAAS++D,aAAT,CAAuBtgE,GAAvB,EAA4B8oB,aAA5B,EAA0D;AAAA,MAAf22C,MAAe,uEAAN,IAAM;AAAA,MAChDjoE,MADgD,GACdsxB,aADc,CAChDtxB,MADgD;AAAA,MACxCuxB,qBADwC,GACdD,aADc,CACxCC,qBADwC;;AAGxD,MAAIA,qBAAqB,iCAAzB,EAA4D;AAC1DznB,UAAM,CAACorB,KAAP,sGACgG3D,qBADhG;AAIA;AACD;;AATuD,MAWhDjjB,KAXgD,GAWtC9F,GAAG,CAACE,MAXkC,CAWhD4F,KAXgD;AAYxD,MAAMg6D,QAAQ,GAAGtoE,MAAM,CAAC8D,GAAP,CAAW,UAAA43B,CAAC;AAAA,WAAI,CAACA,CAAC,CAAC/7B,CAAH,EAAM+7B,CAAC,CAACh8B,CAAR,CAAJ;AAAA,GAAZ,CAAjB;;AAZwD,8BAazB6oE,sFAA2B,CAACD,QAAD,EAAWh6D,KAAX,CAbF;AAAA;AAAA,MAajDgK,OAbiD;AAAA,MAaxCM,WAbwC;;AAexDqvD,QAAM,GACFU,0EAAe,CAACngE,GAAD,EAAM8oB,aAAN,EAAqB;AAAA,WAAM,IAAN;AAAA,GAArB,EAAiChZ,OAAjC,EAA0CM,WAA1C,CADb,GAEFmwD,iFAAsB,CAACvgE,GAAD,EAAM8oB,aAAN,EAAqBhZ,OAArB,EAA8BM,WAA9B,CAF1B;AAGD;AAED;;;;;;;;;AAOO,SAASwrD,mBAAT,CAA6B57D,GAA7B,EAAkC8oB,aAAlC,EAAiD;AACtDw3C,eAAa,CAACtgE,GAAD,EAAM8oB,aAAN,EAAqB,IAArB,CAAb;AACD;AAED;;;;;;;;AAOO,SAAS+yC,oBAAT,CAA8B77D,GAA9B,EAAmC8oB,aAAnC,EAAkD;AACvDw3C,eAAa,CAACtgE,GAAD,EAAM8oB,aAAN,EAAqB,KAArB,CAAb;AACD,C;;;;;;;;;;;;ACzDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAIA;AACA;AACA;;;;;;;;;;;;;ACRA;AAAA;;;;;;;;;;AAUe,yEAACjxB,OAAD,EAAU2oE,QAAV,EAA+C;AAAA,MAA3BC,QAA2B,uEAAhB,WAAgB;AAC5D,MAAMhiE,MAAM,GAAG5G,OAAO,CAACuhD,aAAR,CAAsB,QAAtB,CAAf,CAD4D,CAG5D;;AACA,MAAI36C,MAAM,CAACiiE,QAAX,EAAqB;AACnB,QAAMC,IAAI,GAAGliE,MAAM,CAACiiE,QAAP,EAAb;AAEA,WAAOjoD,MAAM,CAACmoD,SAAP,CAAiBC,UAAjB,CAA4BF,IAA5B,EAAkCH,QAAlC,CAAP;AACD,GAR2D,CAU5D;AACA;;;AACA,MAAMM,GAAG,GAAGn0D,QAAQ,CAACC,aAAT,CAAuB,GAAvB,CAAZ,CAZ4D,CAc5D;;AACAk0D,KAAG,CAACC,QAAJ,GAAeP,QAAf,CAf4D,CAiB5D;AACA;AACA;;AACAM,KAAG,CAACE,IAAJ,GAAWviE,MAAM,CAACwiE,SAAP,CAAiBR,QAAjB,EAA2B,CAA3B,CAAX,CApB4D,CAsB5D;;AACA,MAAI9zD,QAAQ,CAACu0D,WAAb,EAA0B;AACxB,QAAMxvD,CAAC,GAAG/E,QAAQ,CAACu0D,WAAT,CAAqB,aAArB,CAAV;AAEAxvD,KAAC,CAACyvD,cAAF,CACE,OADF,EAEE,IAFF,EAGE,IAHF,EAIE1oD,MAJF,EAKE,CALF,EAME,CANF,EAOE,CAPF,EAQE,CARF,EASE,CATF,EAUE,KAVF,EAWE,KAXF,EAYE,KAZF,EAaE,KAbF,EAcE,CAdF,EAeE,IAfF;AAkBAqoD,OAAG,CAACM,aAAJ,CAAkB1vD,CAAlB;AACD,GAtBD,MAsBO,IAAIovD,GAAG,CAACz1B,SAAR,EAAmB;AACxBy1B,OAAG,CAACz1B,SAAJ,CAAc,SAAd;AACD;AACF,CAhDD,E;;;;;;;;;;;;ACVA;AAAA;;;;;;;;;;;AAWe,yEAACg2B,EAAD,EAAKpT,EAAL,EAASC,EAAT,EAAgB;AAC7B,MAAMoT,GAAG,GAAGtqE,IAAI,CAACmf,IAAL,CAAUnf,IAAI,CAAC4rC,GAAL,CAASy+B,EAAE,CAAClqE,CAAH,GAAO82D,EAAE,CAAC92D,CAAnB,EAAsB,CAAtB,IAA2BH,IAAI,CAAC4rC,GAAL,CAASy+B,EAAE,CAACnqE,CAAH,GAAO+2D,EAAE,CAAC/2D,CAAnB,EAAsB,CAAtB,CAArC,CAAZ;AACA,MAAMqqE,GAAG,GAAGvqE,IAAI,CAACmf,IAAL,CAAUnf,IAAI,CAAC4rC,GAAL,CAASy+B,EAAE,CAAClqE,CAAH,GAAO+2D,EAAE,CAAC/2D,CAAnB,EAAsB,CAAtB,IAA2BH,IAAI,CAAC4rC,GAAL,CAASy+B,EAAE,CAACnqE,CAAH,GAAOg3D,EAAE,CAACh3D,CAAnB,EAAsB,CAAtB,CAArC,CAAZ;AACA,MAAMsqE,GAAG,GAAGxqE,IAAI,CAACmf,IAAL,CAAUnf,IAAI,CAAC4rC,GAAL,CAASqrB,EAAE,CAAC92D,CAAH,GAAO+2D,EAAE,CAAC/2D,CAAnB,EAAsB,CAAtB,IAA2BH,IAAI,CAAC4rC,GAAL,CAASqrB,EAAE,CAAC/2D,CAAH,GAAOg3D,EAAE,CAACh3D,CAAnB,EAAsB,CAAtB,CAArC,CAAZ;AAEA,MAAMH,KAAK,GACRC,IAAI,CAACyrD,IAAL,CACC,CAACzrD,IAAI,CAAC4rC,GAAL,CAAS0+B,GAAT,EAAc,CAAd,IAAmBtqE,IAAI,CAAC4rC,GAAL,CAAS2+B,GAAT,EAAc,CAAd,CAAnB,GAAsCvqE,IAAI,CAAC4rC,GAAL,CAAS4+B,GAAT,EAAc,CAAd,CAAvC,KAA4D,IAAIF,GAAJ,GAAUC,GAAtE,CADD,IAGC,GAHF,GAIAvqE,IAAI,CAACU,EALP,CAL6B,CAY7B;;AACA,MAAMqe,SAAS,GACb,CAACk4C,EAAE,CAAC92D,CAAH,GAAOkqE,EAAE,CAAClqE,CAAX,KAAiB+2D,EAAE,CAACh3D,CAAH,GAAOmqE,EAAE,CAACnqE,CAA3B,IAAgC,CAAC+2D,EAAE,CAAC/2D,CAAH,GAAOmqE,EAAE,CAACnqE,CAAX,KAAiBg3D,EAAE,CAAC/2D,CAAH,GAAOkqE,EAAE,CAAClqE,CAA3B,CADlC;AAGA,SAAO;AACLJ,SAAK,EAALA,KADK;AAELgf,aAAS,EAATA;AAFK,GAAP;AAID,CApBD,E;;;;;;;;;;;;ACXA;AAAA;AAAA;AAEA;;;;;;;;;;;AAUe,yEAASjQ,KAAT,EAAgB27D,gBAAhB,EAAuD;AAAA,MAArBC,WAAqB,uEAAP,KAAO;AACpE,MAAMxpE,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AACA,MAAMypE,kBAAkB,GAAGzpE,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CACzB,oBADyB,EAEzBpvB,KAAK,CAACgmB,OAFmB,CAA3B;AAIA,MAAM4lB,YAAY,GAAGx5C,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CACnB,qBADmB,EAEnBpvB,KAAK,CAACgmB,OAFa,CAArB;;AAKA,MAAI,CAAC61C,kBAAD,IAAuB,CAACjwB,YAA5B,EAA0C;AACxC;AACD;;AAED,MAAMC,QAAQ,GAAGD,YAAY,CAACC,QAA9B,CAfoE,CAiBpE;;AACA,MAAIA,QAAQ,KAAK,IAAjB,EAAuB;AACrB;AACD;;AAED,MAAMiwB,kBAAkB,GAAGF,WAAW,GAClCD,gBADkC,GAElCA,gBAAgB,GAAG37D,KAAK,CAACqrC,KAAzB,GAAiCrrC,KAAK,CAACsrC,SAF3C;AAIA,MAAMywB,aAAa,GAAGF,kBAAkB,CAACE,aAAzC,CA1BoE,CA0BZ;;AAExD,MAAI,CAACA,aAAL,EAAoB;AAClB;AACD;;AAED,MAAMC,iBAAiB,GAAG5pE,WAAW,CAACgqC,QAAZ,CAAqBhN,GAArB,CACxB,kBADwB,EAExBpvB,KAAK,CAACgmB,OAFkB,CAA1B;;AAKA,MAAI,CAACg2C,iBAAL,EAAwB;AACtB;AACD;;AAED,MAAMC,uBAAuB,GAAGD,iBAAiB,CAACC,uBAAlD;AACA,MAAMC,SAAS,GAAGD,uBAAuB,CAACE,4BAA1C;AACA,MAAMC,SAAS,GAAGH,uBAAuB,CAACI,qBAA1C;AACA,MAAMC,QAAQ,GAAGL,uBAAuB,CAACM,oBAAzC;AACA,MAAMC,qBAAqB,GAAG5wB,YAAY,CAAC6wB,UAA3C;;AAEA,MAAI,CAACP,SAAD,IAAc,CAACE,SAAf,IAA4B,CAACE,QAA7B,IAAyC,CAACE,qBAA9C,EAAqE;AACnE;AACD;;AAED,MAAME,wBAAwB,GAC5BC,SAAS,CAACH,qBAAqB,CAACI,iBAAtB,IAA2C,CAA5C,CAAT,GACAJ,qBAAqB,CAACK,OADtB,GAEAL,qBAAqB,CAACM,OAAtB,GAAgC,EAFhC,GAGAN,qBAAqB,CAACO,KAAtB,GAA8B,EAA9B,GAAmC,EAJrC;AAKA,MAAMC,2BAA2B,GAC/BL,SAAS,CAACT,SAAS,CAACU,iBAAX,CAAT,GACAV,SAAS,CAACW,OADV,GAEAX,SAAS,CAACY,OAAV,GAAoB,EAFpB,GAGAZ,SAAS,CAACa,KAAV,GAAkB,EAAlB,GAAuB,EAJzB;AAKA,MAAME,iBAAiB,GACrBP,wBAAwB,GAAGM,2BAD7B;AAEA,MAAME,aAAa,GACjBd,SAAS,GAAGlrE,IAAI,CAACisE,GAAL,CAAU,CAACF,iBAAD,GAAqB/rE,IAAI,CAACwK,GAAL,CAAS,CAAT,CAAtB,GAAqC4gE,QAA9C,CADd;AAEA,MAAM/wB,GAAG,GAAKuwB,kBAAkB,GAAGC,aAAtB,GAAuCmB,aAAxC,GAAyD,IAArE;AAEA,SAAO3xB,GAAP;AACD;AAED;;;;;;;;;;AASA,SAASoxB,SAAT,CAAmBS,eAAnB,EAAoC;AAClC,SAAO5xB,UAAU,YAAK4xB,eAAL,EAAjB;AACD,C;;;;;;;;;;;;AC7FD;AAAA;AAAA;AAAA;;;;;;;;;;AAUO,SAAS5/C,IAAT,CAAc6/C,GAAd,EAAmB3wC,GAAnB,EAAwBE,IAAxB,EAA8B;AACnC,SAAO17B,IAAI,CAACwC,GAAL,CAASxC,IAAI,CAACkH,GAAL,CAASs0B,GAAT,EAAc2wC,GAAd,CAAT,EAA6BzwC,IAA7B,CAAP;AACD;AAED;;;;;;;;;;AASO,SAASnP,SAAT,CAAmBtnB,KAAnB,EAA0BmnE,GAA1B,EAA+B;AACpC;AACAnnE,OAAK,CAAC9E,CAAN,GAAUmsB,IAAI,CAACrnB,KAAK,CAAC9E,CAAP,EAAU,CAAV,EAAaisE,GAAG,CAACzqE,KAAjB,CAAd;AACAsD,OAAK,CAAC/E,CAAN,GAAUosB,IAAI,CAACrnB,KAAK,CAAC/E,CAAP,EAAU,CAAV,EAAaksE,GAAG,CAACvqE,MAAjB,CAAd;AACD;AAEcyqB,mEAAf,E;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAEA;;;;;;;;;AAQe,SAASD,gBAAT,CAA0BggD,cAA1B,EAA0C;AACvD,MAAMrnE,eAAe,GAAG/D,2DAAQ,CAAC+D,eAAjC;;AAEA,MAAIqnE,cAAc,YAAYrnE,eAAe,CAAC6uB,OAA9C,EAAuD;AACrD,WAAOw4C,cAAP;AACD;;AAED,SAAO,IAAIrnE,eAAe,CAAC6uB,OAApB,CACLw4C,cAAc,CAAC,CAAD,CADT,EAELA,cAAc,CAAC,CAAD,CAFT,EAGLA,cAAc,CAAC,CAAD,CAHT,CAAP;AAKD,C;;;;;;;;;;;;ACtBD;AAAA;;;;;;;;AAQe,yEAAS7rE,MAAT,EAAiB;AAC9B,MAAMsa,IAAI,GAAGwxD,KAAK,CAAC9rE,MAAM,CAACsa,IAAR,CAAlB;;AACA,MAAMhM,KAAK,GAAGw9D,KAAK,CAAC9rE,MAAM,CAACsO,KAAR,CAAnB;;AACA,MAAMqM,MAAM,GAAGmxD,KAAK,CAAC9rE,MAAM,CAAC2a,MAAR,CAApB;;AACA,MAAM1T,MAAM,GAAG6kE,KAAK,CAAC9rE,MAAM,CAACiH,MAAR,CAApB;;AAEA,SAAO;AACLqT,QAAI,EAAJA,IADK;AAELhM,SAAK,EAALA,KAFK;AAGLqM,UAAM,EAANA,MAHK;AAIL1T,UAAM,EAANA;AAJK,GAAP;AAMD;AAED;;;;;;;;;AAQA,SAAS6kE,KAAT,GAA8B;AAAA,iFAAJ,EAAI;AAAA,MAAbnsE,CAAa,QAAbA,CAAa;AAAA,MAAVD,CAAU,QAAVA,CAAU;;AAC5B,SAAO;AACLC,KAAC,EAADA,CADK;AAELD,KAAC,EAADA;AAFK,GAAP;AAID,C;;;;;;;;;;;;ACnCD;AAAA;AAAA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA,SAASssB,QAAT,CAAkB+/C,IAAlB,EAAwBv/C,IAAxB,EAA8B5sB,OAA9B,EAAuC;AACrC,MAAIosE,QAAJ,EAAcC,QAAd,EAAwBC,OAAxB,EAAiCjO,MAAjC,EAAyCkO,OAAzC,EAAkDC,YAAlD;AAEA,MAAIC,cAAc,GAAG,CAArB;AACA,MAAIC,OAAO,GAAG,KAAd;AACA,MAAIC,MAAM,GAAG,KAAb;AACA,MAAIC,QAAQ,GAAG,IAAf,CANqC,CAQrC;;AACA,MAAMC,MAAM,GACV,CAACjgD,IAAD,IAASA,IAAI,KAAK,CAAlB,IAAuB,OAAOvL,MAAM,CAAC0O,qBAAd,KAAwC,UADjE;;AAGA,MAAI,OAAOo8C,IAAP,KAAgB,UAApB,EAAgC;AAC9B,UAAM,IAAIW,SAAJ,CAAc,qBAAd,CAAN;AACD;;AACDlgD,MAAI,GAAG+J,MAAM,CAAC/J,IAAD,CAAN,IAAgB,CAAvB;;AACA,MAAIJ,4DAAQ,CAACxsB,OAAD,CAAZ,EAAuB;AACrB0sE,WAAO,GAAGlzB,OAAO,CAACx5C,OAAO,CAAC0sE,OAAT,CAAjB;AACAC,UAAM,GAAG,aAAa3sE,OAAtB;AACAssE,WAAO,GAAGK,MAAM,GAAG/sE,IAAI,CAACkH,GAAL,CAAS6vB,MAAM,CAAC32B,OAAO,CAACssE,OAAT,CAAN,IAA2B,CAApC,EAAuC1/C,IAAvC,CAAH,GAAkD0/C,OAAlE;AACAM,YAAQ,GAAG,cAAc5sE,OAAd,GAAwBw5C,OAAO,CAACx5C,OAAO,CAAC4sE,QAAT,CAA/B,GAAoDA,QAA/D;AACD;;AAED,WAASG,UAAT,CAAoBC,IAApB,EAA0B;AACxB,QAAMjpC,IAAI,GAAGqoC,QAAb;AACA,QAAMa,OAAO,GAAGZ,QAAhB;AAEAD,YAAQ,GAAGC,QAAQ,GAAGnsE,SAAtB;AACAusE,kBAAc,GAAGO,IAAjB;AACA3O,UAAM,GAAG8N,IAAI,CAACnxC,KAAL,CAAWiyC,OAAX,EAAoBlpC,IAApB,CAAT;AAEA,WAAOs6B,MAAP;AACD;;AAED,WAAS6O,UAAT,CAAoBC,WAApB,EAAiCvgD,IAAjC,EAAuC;AACrC,QAAIigD,MAAJ,EAAY;AACV,aAAOxrD,MAAM,CAAC0O,qBAAP,CAA6Bo9C,WAA7B,CAAP;AACD;;AAED,WAAO9xD,UAAU,CAAC8xD,WAAD,EAAcvgD,IAAd,CAAjB;AACD;;AAED,WAASwgD,WAAT,CAAqB/0C,EAArB,EAAyB;AACvB,QAAIw0C,MAAJ,EAAY;AACV,aAAOxrD,MAAM,CAACgsD,oBAAP,CAA4Bh1C,EAA5B,CAAP;AACD;;AACDxc,gBAAY,CAACwc,EAAD,CAAZ;AACD;;AAED,WAASi1C,WAAT,CAAqBN,IAArB,EAA2B;AACzB;AACAP,kBAAc,GAAGO,IAAjB,CAFyB,CAGzB;;AACAT,WAAO,GAAGW,UAAU,CAACK,YAAD,EAAe3gD,IAAf,CAApB,CAJyB,CAMzB;;AACA,WAAO8/C,OAAO,GAAGK,UAAU,CAACC,IAAD,CAAb,GAAsB3O,MAApC;AACD;;AAED,WAASmP,aAAT,CAAuBR,IAAvB,EAA6B;AAC3B,QAAMS,iBAAiB,GAAGT,IAAI,GAAGR,YAAjC;AACA,QAAMkB,mBAAmB,GAAGV,IAAI,GAAGP,cAAnC;AACA,QAAMkB,WAAW,GAAG/gD,IAAI,GAAG6gD,iBAA3B;AAEA,WAAOd,MAAM,GACT/sE,IAAI,CAACwC,GAAL,CAASurE,WAAT,EAAsBrB,OAAO,GAAGoB,mBAAhC,CADS,GAETC,WAFJ;AAGD;;AAED,WAASC,YAAT,CAAsBZ,IAAtB,EAA4B;AAC1B,QAAMS,iBAAiB,GAAGT,IAAI,GAAGR,YAAjC;AACA,QAAMkB,mBAAmB,GAAGV,IAAI,GAAGP,cAAnC,CAF0B,CAI1B;AACA;AACA;;AACA,WACED,YAAY,KAAKtsE,SAAjB,IACAutE,iBAAiB,IAAI7gD,IADrB,IAEA6gD,iBAAiB,GAAG,CAFpB,IAGCd,MAAM,IAAIe,mBAAmB,IAAIpB,OAJpC;AAMD;;AAED,WAASiB,YAAT,GAAwB;AACtB,QAAMP,IAAI,GAAGnwD,IAAI,CAACD,GAAL,EAAb;;AAEA,QAAIgxD,YAAY,CAACZ,IAAD,CAAhB,EAAwB;AACtB,aAAOa,YAAY,CAACb,IAAD,CAAnB;AACD,KALqB,CAMtB;;;AACAT,WAAO,GAAGW,UAAU,CAACK,YAAD,EAAeC,aAAa,CAACR,IAAD,CAA5B,CAApB;AACD;;AAED,WAASa,YAAT,CAAsBb,IAAtB,EAA4B;AAC1BT,WAAO,GAAGrsE,SAAV,CAD0B,CAG1B;AACA;;AACA,QAAI0sE,QAAQ,IAAIR,QAAhB,EAA0B;AACxB,aAAOW,UAAU,CAACC,IAAD,CAAjB;AACD;;AACDZ,YAAQ,GAAGC,QAAQ,GAAGnsE,SAAtB;AAEA,WAAOm+D,MAAP;AACD;;AAED,WAASyP,MAAT,GAAkB;AAChB,QAAIvB,OAAO,KAAKrsE,SAAhB,EAA2B;AACzBktE,iBAAW,CAACb,OAAD,CAAX;AACD;;AACDE,kBAAc,GAAG,CAAjB;AACAL,YAAQ,GAAGI,YAAY,GAAGH,QAAQ,GAAGE,OAAO,GAAGrsE,SAA/C;AACD;;AAED,WAAS6tE,KAAT,GAAiB;AACf,WAAOxB,OAAO,KAAKrsE,SAAZ,GAAwBm+D,MAAxB,GAAiCwP,YAAY,CAAChxD,IAAI,CAACD,GAAL,EAAD,CAApD;AACD;;AAED,WAASoxD,OAAT,GAAmB;AACjB,WAAOzB,OAAO,KAAKrsE,SAAnB;AACD;;AAED,WAAS+tE,SAAT,GAA4B;AAC1B,QAAMjB,IAAI,GAAGnwD,IAAI,CAACD,GAAL,EAAb;AACA,QAAMsxD,UAAU,GAAGN,YAAY,CAACZ,IAAD,CAA/B;;AAF0B,sCAANjpC,IAAM;AAANA,UAAM;AAAA;;AAI1BqoC,YAAQ,GAAGroC,IAAX;AACAsoC,YAAQ,GAAG,IAAX,CAL0B,CAKT;;AACjBG,gBAAY,GAAGQ,IAAf;;AAEA,QAAIkB,UAAJ,EAAgB;AACd,UAAI3B,OAAO,KAAKrsE,SAAhB,EAA2B;AACzB,eAAOotE,WAAW,CAACd,YAAD,CAAlB;AACD;;AACD,UAAIG,MAAJ,EAAY;AACV;AACAJ,eAAO,GAAGW,UAAU,CAACK,YAAD,EAAe3gD,IAAf,CAApB;AAEA,eAAOmgD,UAAU,CAACP,YAAD,CAAjB;AACD;AACF;;AACD,QAAID,OAAO,KAAKrsE,SAAhB,EAA2B;AACzBqsE,aAAO,GAAGW,UAAU,CAACK,YAAD,EAAe3gD,IAAf,CAApB;AACD;;AAED,WAAOyxC,MAAP;AACD;;AACD4P,WAAS,CAACH,MAAV,GAAmBA,MAAnB;AACAG,WAAS,CAACF,KAAV,GAAkBA,KAAlB;AACAE,WAAS,CAACD,OAAV,GAAoBA,OAApB;AAEA,SAAOC,SAAP;AACD;;AAEc7hD,uEAAf,E;;;;;;;;;;;;;;;;;AC1NA;;;;AAKA,SAAS+hD,KAAT,CAAeC,GAAf,EAAoB;AAClBC,aAAW,CAACrnE,KAAZ,GAAoBqnE,WAApB;AACAA,aAAW,CAACr1B,OAAZ,GAAsBq1B,WAAtB;AACAA,aAAW,CAACC,MAAZ,GAAqBA,MAArB;AACAD,aAAW,CAACrkE,OAAZ,GAAsBA,OAAtB;AACAqkE,aAAW,CAACzkE,MAAZ,GAAqBA,MAArB;AACAykE,aAAW,CAAC3yC,OAAZ,GAAsBA,OAAtB;AACA2yC,aAAW,CAACE,QAAZ,GAAuBC,mBAAO,CAAC,uCAAD,CAA9B;AAEAzrE,QAAM,CAACC,IAAP,CAAYorE,GAAZ,EAAiB/pE,OAAjB,CAAyB,UAAAolB,GAAG,EAAI;AAC9B4kD,eAAW,CAAC5kD,GAAD,CAAX,GAAmB2kD,GAAG,CAAC3kD,GAAD,CAAtB;AACD,GAFD;AAIA;;;;AAGA4kD,aAAW,CAACI,SAAZ,GAAwB,EAAxB;AAEA;;;;AAIAJ,aAAW,CAACK,KAAZ,GAAoB,EAApB;AACAL,aAAW,CAACM,KAAZ,GAAoB,EAApB;AAEA;;;;;;AAKAN,aAAW,CAACO,UAAZ,GAAyB,EAAzB;AAEA;;;;;;;AAMA,WAASC,WAAT,CAAqBC,SAArB,EAAgC;AAC9B,QAAIC,IAAI,GAAG,CAAX;;AAEA,SAAK,IAAI9rE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6rE,SAAS,CAAC7qE,MAA9B,EAAsChB,CAAC,EAAvC,EAA2C;AACzC8rE,UAAI,GAAG,CAACA,IAAI,IAAI,CAAT,IAAcA,IAAd,GAAqBD,SAAS,CAACE,UAAV,CAAqB/rE,CAArB,CAA5B;AACA8rE,UAAI,IAAI,CAAR,CAFyC,CAE9B;AACZ;;AAED,WAAOV,WAAW,CAACY,MAAZ,CAAmBrvE,IAAI,CAACmC,GAAL,CAASgtE,IAAT,IAAiBV,WAAW,CAACY,MAAZ,CAAmBhrE,MAAvD,CAAP;AACD;;AACDoqE,aAAW,CAACQ,WAAZ,GAA0BA,WAA1B;AAEA;;;;;;;;AAOA,WAASR,WAAT,CAAqBS,SAArB,EAAgC;AAC9B,QAAII,QAAJ;;AAEA,aAASloE,KAAT,GAAwB;AAAA,wCAAN+8B,IAAM;AAANA,YAAM;AAAA;;AACtB;AACA,UAAI,CAAC/8B,KAAK,CAAC00B,OAAX,EAAoB;AAClB;AACD;;AAED,UAAMgX,IAAI,GAAG1rC,KAAb,CANsB,CAQtB;;AACA,UAAMmoE,IAAI,GAAGx4C,MAAM,CAAC,IAAI9Z,IAAJ,EAAD,CAAnB;AACA,UAAMuyD,EAAE,GAAGD,IAAI,IAAID,QAAQ,IAAIC,IAAhB,CAAf;AAEAz8B,UAAI,CAAC3gB,IAAL,GAAYq9C,EAAZ;AACA18B,UAAI,CAAC28B,IAAL,GAAYH,QAAZ;AACAx8B,UAAI,CAACy8B,IAAL,GAAYA,IAAZ;AACAD,cAAQ,GAAGC,IAAX;AAEAprC,UAAI,CAAC,CAAD,CAAJ,GAAUsqC,WAAW,CAACC,MAAZ,CAAmBvqC,IAAI,CAAC,CAAD,CAAvB,CAAV;;AAEA,UAAI,OAAOA,IAAI,CAAC,CAAD,CAAX,KAAmB,QAAvB,EAAiC;AAC/B;AACAA,YAAI,CAACxO,OAAL,CAAa,IAAb;AACD,OAtBqB,CAwBtB;;;AACA,UAAIhuB,KAAK,GAAG,CAAZ;AAEAw8B,UAAI,CAAC,CAAD,CAAJ,GAAUA,IAAI,CAAC,CAAD,CAAJ,CAAQhQ,OAAR,CAAgB,eAAhB,EAAiC,UAACu7C,KAAD,EAAQC,MAAR,EAAmB;AAC5D;AACA,YAAID,KAAK,KAAK,IAAd,EAAoB;AAClB,iBAAOA,KAAP;AACD;;AACD/nE,aAAK;AACL,YAAMioE,SAAS,GAAGnB,WAAW,CAACO,UAAZ,CAAuBW,MAAvB,CAAlB;;AAEA,YAAI,OAAOC,SAAP,KAAqB,UAAzB,EAAqC;AACnC,cAAMzD,GAAG,GAAGhoC,IAAI,CAACx8B,KAAD,CAAhB;AAEA+nE,eAAK,GAAGE,SAAS,CAAChpE,IAAV,CAAeksC,IAAf,EAAqBq5B,GAArB,CAAR,CAHmC,CAKnC;;AACAhoC,cAAI,CAACnI,MAAL,CAAYr0B,KAAZ,EAAmB,CAAnB;AACAA,eAAK;AACN;;AAED,eAAO+nE,KAAP;AACD,OAnBS,CAAV,CA3BsB,CAgDtB;;AACAjB,iBAAW,CAACoB,UAAZ,CAAuBjpE,IAAvB,CAA4BksC,IAA5B,EAAkC3O,IAAlC;AAEA,UAAM2rC,KAAK,GAAGh9B,IAAI,CAACtoC,GAAL,IAAYikE,WAAW,CAACjkE,GAAtC;AAEAslE,WAAK,CAAC10C,KAAN,CAAY0X,IAAZ,EAAkB3O,IAAlB;AACD;;AAED/8B,SAAK,CAAC8nE,SAAN,GAAkBA,SAAlB;AACA9nE,SAAK,CAAC00B,OAAN,GAAgB2yC,WAAW,CAAC3yC,OAAZ,CAAoBozC,SAApB,CAAhB;AACA9nE,SAAK,CAAC2oE,SAAN,GAAkBtB,WAAW,CAACsB,SAAZ,EAAlB;AACA3oE,SAAK,CAACzH,KAAN,GAAcsvE,WAAW,CAACC,SAAD,CAAzB;AACA9nE,SAAK,CAACquC,OAAN,GAAgBA,OAAhB;AACAruC,SAAK,CAAC4oE,MAAN,GAAeA,MAAf,CAhE8B,CAiE9B;AACA;AAEA;;AACA,QAAI,OAAOvB,WAAW,CAACjpD,IAAnB,KAA4B,UAAhC,EAA4C;AAC1CipD,iBAAW,CAACjpD,IAAZ,CAAiBpe,KAAjB;AACD;;AAEDqnE,eAAW,CAACI,SAAZ,CAAsB10D,IAAtB,CAA2B/S,KAA3B;AAEA,WAAOA,KAAP;AACD;;AAED,WAASquC,OAAT,GAAmB;AACjB,QAAM9tC,KAAK,GAAG8mE,WAAW,CAACI,SAAZ,CAAsBpzC,OAAtB,CAA8B,IAA9B,CAAd;;AAEA,QAAI9zB,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChB8mE,iBAAW,CAACI,SAAZ,CAAsB7yC,MAAtB,CAA6Br0B,KAA7B,EAAoC,CAApC;AAEA,aAAO,IAAP;AACD;;AAED,WAAO,KAAP;AACD;;AAED,WAASqoE,MAAT,CAAgBd,SAAhB,EAA2Be,SAA3B,EAAsC;AACpC,QAAMC,QAAQ,GAAGzB,WAAW,CAC1B,KAAKS,SAAL,IACG,OAAOe,SAAP,KAAqB,WAArB,GAAmC,GAAnC,GAAyCA,SAD5C,IAEEf,SAHwB,CAA5B;AAMAgB,YAAQ,CAAC1lE,GAAT,GAAe,KAAKA,GAApB;AAEA,WAAO0lE,QAAP;AACD;AAED;;;;;;;;;AAOA,WAASlmE,MAAT,CAAgBmmE,UAAhB,EAA4B;AAC1B1B,eAAW,CAAClvE,IAAZ,CAAiB4wE,UAAjB;AAEA1B,eAAW,CAACK,KAAZ,GAAoB,EAApB;AACAL,eAAW,CAACM,KAAZ,GAAoB,EAApB;AAEA,QAAI1rE,CAAJ;AACA,QAAMwxC,KAAK,GAAG,CAAC,OAAOs7B,UAAP,KAAsB,QAAtB,GAAiCA,UAAjC,GAA8C,EAA/C,EAAmDt7B,KAAnD,CACZ,QADY,CAAd;AAGA,QAAMu7B,GAAG,GAAGv7B,KAAK,CAACxwC,MAAlB;;AAEA,SAAKhB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG+sE,GAAhB,EAAqB/sE,CAAC,EAAtB,EAA0B;AACxB,UAAI,CAACwxC,KAAK,CAACxxC,CAAD,CAAV,EAAe;AACb;AACA;AACD;;AAED8sE,gBAAU,GAAGt7B,KAAK,CAACxxC,CAAD,CAAL,CAAS8wB,OAAT,CAAiB,KAAjB,EAAwB,KAAxB,CAAb;;AAEA,UAAIg8C,UAAU,CAAC,CAAD,CAAV,KAAkB,GAAtB,EAA2B;AACzB1B,mBAAW,CAACM,KAAZ,CAAkB50D,IAAlB,CAAuB,IAAIk2D,MAAJ,YAAeF,UAAU,CAACG,MAAX,CAAkB,CAAlB,CAAf,OAAvB;AACD,OAFD,MAEO;AACL7B,mBAAW,CAACK,KAAZ,CAAkB30D,IAAlB,CAAuB,IAAIk2D,MAAJ,YAAeF,UAAf,OAAvB;AACD;AACF;;AAED,SAAK9sE,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGorE,WAAW,CAACI,SAAZ,CAAsBxqE,MAAtC,EAA8ChB,CAAC,EAA/C,EAAmD;AACjD,UAAMktE,QAAQ,GAAG9B,WAAW,CAACI,SAAZ,CAAsBxrE,CAAtB,CAAjB;AAEAktE,cAAQ,CAACz0C,OAAT,GAAmB2yC,WAAW,CAAC3yC,OAAZ,CAAoBy0C,QAAQ,CAACrB,SAA7B,CAAnB;AACD;AACF;AAED;;;;;;;;AAMA,WAAS9kE,OAAT,GAAmB;AACjB,QAAM+lE,UAAU,GAAG,0FACd1B,WAAW,CAACK,KAAZ,CAAkBxqE,GAAlB,CAAsBksE,WAAtB,CADc,mFAEd/B,WAAW,CAACM,KAAZ,CAAkBzqE,GAAlB,CAAsBksE,WAAtB,EAAmClsE,GAAnC,CAAuC,UAAA4qE,SAAS;AAAA,wBAAQA,SAAR;AAAA,KAAhD,CAFc,GAGjBuB,IAHiB,CAGZ,GAHY,CAAnB;AAKAhC,eAAW,CAACzkE,MAAZ,CAAmB,EAAnB;AAEA,WAAOmmE,UAAP;AACD;AAED;;;;;;;;;AAOA,WAASr0C,OAAT,CAAiBhxB,IAAjB,EAAuB;AACrB,QAAIA,IAAI,CAACA,IAAI,CAACzG,MAAL,GAAc,CAAf,CAAJ,KAA0B,GAA9B,EAAmC;AACjC,aAAO,IAAP;AACD;;AAED,QAAIhB,CAAJ;AACA,QAAI+sE,GAAJ;;AAEA,SAAK/sE,CAAC,GAAG,CAAJ,EAAO+sE,GAAG,GAAG3B,WAAW,CAACM,KAAZ,CAAkB1qE,MAApC,EAA4ChB,CAAC,GAAG+sE,GAAhD,EAAqD/sE,CAAC,EAAtD,EAA0D;AACxD,UAAIorE,WAAW,CAACM,KAAZ,CAAkB1rE,CAAlB,EAAqBqtE,IAArB,CAA0B5lE,IAA1B,CAAJ,EAAqC;AACnC,eAAO,KAAP;AACD;AACF;;AAED,SAAKzH,CAAC,GAAG,CAAJ,EAAO+sE,GAAG,GAAG3B,WAAW,CAACK,KAAZ,CAAkBzqE,MAApC,EAA4ChB,CAAC,GAAG+sE,GAAhD,EAAqD/sE,CAAC,EAAtD,EAA0D;AACxD,UAAIorE,WAAW,CAACK,KAAZ,CAAkBzrE,CAAlB,EAAqBqtE,IAArB,CAA0B5lE,IAA1B,CAAJ,EAAqC;AACnC,eAAO,IAAP;AACD;AACF;;AAED,WAAO,KAAP;AACD;AAED;;;;;;;;;AAOA,WAAS0lE,WAAT,CAAqBG,MAArB,EAA6B;AAC3B,WAAOA,MAAM,CACVhqE,QADI,GAEJiqE,SAFI,CAEM,CAFN,EAESD,MAAM,CAAChqE,QAAP,GAAkBtC,MAAlB,GAA2B,CAFpC,EAGJ8vB,OAHI,CAGI,SAHJ,EAGe,GAHf,CAAP;AAID;AAED;;;;;;;;;AAOA,WAASu6C,MAAT,CAAgBvC,GAAhB,EAAqB;AACnB,QAAIA,GAAG,YAAYh3C,KAAnB,EAA0B;AACxB,aAAOg3C,GAAG,CAACxwC,KAAJ,IAAawwC,GAAG,CAAC0E,OAAxB;AACD;;AAED,WAAO1E,GAAP;AACD;;AAEDsC,aAAW,CAACzkE,MAAZ,CAAmBykE,WAAW,CAACqC,IAAZ,EAAnB;AAEA,SAAOrC,WAAP;AACD;;AAEcF,oEAAf,E;;;;;;;;;;;;AC9RA;AAAA;AAAA;AAEA;AAEA;;;;AAGA,IAAMwC,OAAO,GAAGC,YAAY,EAA5B;AAEA,IAAMC,QAAQ,GAAG;AACfpB,YAAU,EAAVA,UADe;AAEftwE,MAAI,EAAJA,IAFe;AAGfuxE,MAAI,EAAJA,IAHe;AAIff,WAAS,EAATA,SAJe;AAKfgB,SAAO,EAAPA;AALe,CAAjB;AAOA;;;;AAIAE,QAAQ,CAAC5B,MAAT,GAAkB,CAChB,SADgB,EAEhB,SAFgB,EAGhB,SAHgB,EAIhB,SAJgB,EAKhB,SALgB,EAMhB,SANgB,EAOhB,SAPgB,EAQhB,SARgB,EAShB,SATgB,EAUhB,SAVgB,EAWhB,SAXgB,EAYhB,SAZgB,EAahB,SAbgB,EAchB,SAdgB,EAehB,SAfgB,EAgBhB,SAhBgB,EAiBhB,SAjBgB,EAkBhB,SAlBgB,EAmBhB,SAnBgB,EAoBhB,SApBgB,EAqBhB,SArBgB,EAsBhB,SAtBgB,EAuBhB,SAvBgB,EAwBhB,SAxBgB,EAyBhB,SAzBgB,EA0BhB,SA1BgB,EA2BhB,SA3BgB,EA4BhB,SA5BgB,EA6BhB,SA7BgB,EA8BhB,SA9BgB,EA+BhB,SA/BgB,EAgChB,SAhCgB,EAiChB,SAjCgB,EAkChB,SAlCgB,EAmChB,SAnCgB,EAoChB,SApCgB,EAqChB,SArCgB,EAsChB,SAtCgB,EAuChB,SAvCgB,EAwChB,SAxCgB,EAyChB,SAzCgB,EA0ChB,SA1CgB,EA2ChB,SA3CgB,EA4ChB,SA5CgB,EA6ChB,SA7CgB,EA8ChB,SA9CgB,EA+ChB,SA/CgB,EAgDhB,SAhDgB,EAiDhB,SAjDgB,EAkDhB,SAlDgB,EAmDhB,SAnDgB,EAoDhB,SApDgB,EAqDhB,SArDgB,EAsDhB,SAtDgB,EAuDhB,SAvDgB,EAwDhB,SAxDgB,EAyDhB,SAzDgB,EA0DhB,SA1DgB,EA2DhB,SA3DgB,EA4DhB,SA5DgB,EA6DhB,SA7DgB,EA8DhB,SA9DgB,EA+DhB,SA/DgB,EAgEhB,SAhEgB,EAiEhB,SAjEgB,EAkEhB,SAlEgB,EAmEhB,SAnEgB,EAoEhB,SApEgB,EAqEhB,SArEgB,EAsEhB,SAtEgB,EAuEhB,SAvEgB,EAwEhB,SAxEgB,EAyEhB,SAzEgB,EA0EhB,SA1EgB,EA2EhB,SA3EgB,EA4EhB,SA5EgB,CAAlB;AA8EA;;;;;;;AAOA;;AAEA,SAASU,SAAT,GAAqB;AACnB;AACA;AACA;AACA,MACE,OAAOtuD,MAAP,KAAkB,WAAlB,IACAA,MAAM,CAACyvD,OADP,KAECzvD,MAAM,CAACyvD,OAAP,CAAe5gE,IAAf,KAAwB,UAAxB,IAAsCmR,MAAM,CAACyvD,OAAP,CAAeC,MAFtD,CADF,EAIE;AACA,WAAO,IAAP;AACD,GAVkB,CAUjB;;;AAEF,MACE,OAAOvH,SAAP,KAAqB,WAArB,IACAA,SAAS,CAACwH,SADV,IAEAxH,SAAS,CAACwH,SAAV,CAAoBC,WAApB,GAAkC3B,KAAlC,CAAwC,uBAAxC,CAHF,EAIE;AACA,WAAO,KAAP;AACD,GAlBkB,CAkBjB;AACF;;;AAEA,SACG,OAAO/5D,QAAP,KAAoB,WAApB,IACCA,QAAQ,CAAC27D,eADV,IAEC37D,QAAQ,CAAC27D,eAAT,CAAyB/hC,KAF1B,IAGC55B,QAAQ,CAAC27D,eAAT,CAAyB/hC,KAAzB,CAA+BgiC,gBAHjC,IAGsD;AACrD,SAAO9vD,MAAP,KAAkB,WAAlB,IACCA,MAAM,CAAC+vD,OADR,KAEE/vD,MAAM,CAAC+vD,OAAP,CAAeC,OAAf,IACEhwD,MAAM,CAAC+vD,OAAP,CAAeE,SAAf,IAA4BjwD,MAAM,CAAC+vD,OAAP,CAAeG,KAH/C,CAJD,IAO4D;AAC5D;AACC,SAAO/H,SAAP,KAAqB,WAArB,IACCA,SAAS,CAACwH,SADX,IAECxH,SAAS,CAACwH,SAAV,CAAoBC,WAApB,GAAkC3B,KAAlC,CAAwC,gBAAxC,CAFD,IAGCljB,QAAQ,CAAC6jB,MAAM,CAACuB,EAAR,EAAY,EAAZ,CAAR,IAA2B,EAZ7B,IAYoC;AACnC,SAAOhI,SAAP,KAAqB,WAArB,IACCA,SAAS,CAACwH,SADX,IAECxH,SAAS,CAACwH,SAAV,CAAoBC,WAApB,GAAkC3B,KAAlC,CAAwC,oBAAxC,CAhBJ;AAkBD;AACD;;;;;;;AAMA,SAASG,UAAT,CAAoB1rC,IAApB,EAA0B;AACxBA,MAAI,CAAC,CAAD,CAAJ,aAAa,CAAC,KAAK4rC,SAAL,GAAiB,IAAjB,GAAwB,EAAzB,IACX,KAAKb,SADM,IAEV,KAAKa,SAAL,GAAiB,KAAjB,GAAyB,GAFf,IAGX5rC,IAAI,CAAC,CAAD,CAHO,IAIV,KAAK4rC,SAAL,GAAiB,KAAjB,GAAyB,GAJf,CAAb,cAIoC8B,UAAU,CAAClD,QAAX,CAAoB,KAAKx8C,IAAzB,CAJpC;;AAMA,MAAI,CAAC,KAAK49C,SAAV,EAAqB;AACnB;AACD;;AAED,MAAM50C,CAAC,oBAAa,KAAKx7B,KAAlB,CAAP;AAEAwkC,MAAI,CAACnI,MAAL,CAAY,CAAZ,EAAe,CAAf,EAAkBb,CAAlB,EAAqB,gBAArB,EAbwB,CAagB;AACxC;AACA;;AAEA,MAAIxzB,KAAK,GAAG,CAAZ;AACA,MAAImqE,KAAK,GAAG,CAAZ;AAEA3tC,MAAI,CAAC,CAAD,CAAJ,CAAQhQ,OAAR,CAAgB,aAAhB,EAA+B,UAASu7C,KAAT,EAAgB;AAC7C,QAAIA,KAAK,KAAK,IAAd,EAAoB;AAClB;AACD;;AAED/nE,SAAK;;AAEL,QAAI+nE,KAAK,KAAK,IAAd,EAAoB;AAClB;AACA;AACAoC,WAAK,GAAGnqE,KAAR;AACD;AACF,GAZD;AAaAw8B,MAAI,CAACnI,MAAL,CAAY81C,KAAZ,EAAmB,CAAnB,EAAsB32C,CAAtB;AACD;AACD;;;;;;;;;;AASA81C,QAAQ,CAACzmE,GAAT,GAAegnE,OAAO,CAACpqE,KAAR,IAAiBoqE,OAAO,CAAChnE,GAAzB,IAAgC,YAAW,CAAE,CAA5D;AACA;;;;;;;;AAOA,SAASjL,IAAT,CAAc4wE,UAAd,EAA0B;AACxB,MAAI;AACF,QAAIA,UAAJ,EAAgB;AACdc,cAAQ,CAACF,OAAT,CAAiBgB,OAAjB,CAAyB,OAAzB,EAAkC5B,UAAlC;AACD,KAFD,MAEO;AACLc,cAAQ,CAACF,OAAT,CAAiBiB,UAAjB,CAA4B,OAA5B;AACD;AACF,GAND,CAME,OAAOt8C,KAAP,EAAc,CACd;AACA;AACD;AACF;AACD;;;;;;;;AAOA,SAASo7C,IAAT,GAAgB;AACd,MAAI3nC,CAAJ;;AAEA,MAAI;AACFA,KAAC,GAAG8nC,QAAQ,CAACF,OAAT,CAAiBkB,OAAjB,CAAyB,OAAzB,CAAJ;AACD,GAFD,CAEE,OAAOv8C,KAAP,EAAc;AACd87C,WAAO,CAAC/hD,IAAR,CAAaiG,KAAb;AACD,GAPa,CAOZ;AACF;AACA;;;AAEA,MAAI,CAACyT,CAAD,IAAM,OAAO+nC,OAAP,KAAmB,WAAzB,IAAwC,SAASA,OAArD,EAA8D;AAC5D/nC,KAAC,GAAG+nC,OAAO,CAAC1C,GAAR,CAAY0D,KAAhB;AACD;;AAED,SAAO/oC,CAAP;AACD;AACD;;;;;;;;;;;;AAWA,SAAS6nC,YAAT,GAAwB;AACtB,MAAI;AACF;AACA;AACA,WAAOmB,YAAP;AACD,GAJD,CAIE,OAAOz8C,KAAP,EAAc,CACd;AACA;AACD;AACF;;AAED,IAAMm8C,UAAU,GAAGtD,0DAAK,CAAC0C,QAAD,CAAxB;AACA,IAAMjC,UAAU,GAAG6C,UAAU,CAAC7C,UAA9B;AACA;;;;AAIAA,UAAU,CAACp1D,CAAX,GAAe,UAAS2hB,CAAT,EAAY;AACzB,MAAI;AACF,WAAO62C,IAAI,CAACC,SAAL,CAAe92C,CAAf,CAAP;AACD,GAFD,CAEE,OAAO7F,KAAP,EAAc;AACd,iDAAsCA,KAAK,CAACm7C,OAA5C;AACD;AACF,CAND;;AAQegB,yEAAf,E;;;;;;;;;;;;;;;;;;ACrRA,IAAMS,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAnG,GAAG,EAAI;AAC/B,MAAMoG,aAAa,GAAGpG,GAAG,IAAI,qEAAOA,GAAP,MAAe,QAA5C;AAEA,SACEoG,aAAa,IACbpvE,MAAM,CAACuD,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BulE,GAA/B,MAAwC,iBADxC,IAEAhpE,MAAM,CAACuD,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BulE,GAA/B,MAAwC,eAH1C;AAKD,CARD;;AAUA,IAAMqG,WAAW,GAAG,SAAdA,WAAc,CAAArG,GAAG,EAAI;AACzB,MAAMsG,OAAO,GAAGhmE,KAAK,CAACC,OAAN,CAAcy/D,GAAd,IAAqB,EAArB,GAA0B,EAA1C;AAEA,SAAOsG,OAAP;AACD,CAJD;;AAMA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAC/iD,KAAD,EAAQgjD,eAAR,EAA4B;AACnD,MAAMx+B,KAAK,GAAGw+B,eAAe,IAAIA,eAAe,CAACx+B,KAAhB,KAA0B,IAA3D;AAEA,SAAOA,KAAK,IAAIm+B,iBAAiB,CAAC3iD,KAAD,CAA1B,GACHlD,SAAS,CAAC+lD,WAAW,CAAC7iD,KAAD,CAAZ,EAAqBA,KAArB,EAA4BgjD,eAA5B,CADN,GAEHhjD,KAFJ;AAGD,CAND;;AAQA,IAAMijD,iBAAiB,GAAG,SAApBA,iBAAoB,CAACz1C,MAAD,EAAS01C,MAAT,EAAiBF,eAAjB,EAAqC;AAC7D,MAAMG,WAAW,GAAG31C,MAAM,CAACtL,KAAP,EAApB;AAEAghD,QAAM,CAACpuE,OAAP,CAAe,UAASiW,CAAT,EAAYrX,CAAZ,EAAe;AAC5B,QAAI,OAAOyvE,WAAW,CAACzvE,CAAD,CAAlB,KAA0B,WAA9B,EAA2C;AACzCyvE,iBAAW,CAACzvE,CAAD,CAAX,GAAiBqvE,gBAAgB,CAACh4D,CAAD,EAAIi4D,eAAJ,CAAjC;AACD,KAFD,MAEO,IAAIL,iBAAiB,CAAC53D,CAAD,CAArB,EAA0B;AAC/Bo4D,iBAAW,CAACzvE,CAAD,CAAX,GAAiBopB,SAAS,CAAC0Q,MAAM,CAAC95B,CAAD,CAAP,EAAYqX,CAAZ,EAAei4D,eAAf,CAA1B;AACD,KAFM,MAEA,IAAIx1C,MAAM,CAAC1B,OAAP,CAAe/gB,CAAf,MAAsB,CAAC,CAA3B,EAA8B;AACnCo4D,iBAAW,CAAC34D,IAAZ,CAAiBu4D,gBAAgB,CAACh4D,CAAD,EAAIi4D,eAAJ,CAAjC;AACD;AACF,GARD;AAUA,SAAOG,WAAP;AACD,CAdD;;AAgBA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAAC51C,MAAD,EAAS01C,MAAT,EAAiBF,eAAjB,EAAqC;AACvD,MAAMG,WAAW,GAAG,EAApB;;AAEA,MAAIR,iBAAiB,CAACn1C,MAAD,CAArB,EAA+B;AAC7Bh6B,UAAM,CAACC,IAAP,CAAY+5B,MAAZ,EAAoB14B,OAApB,CAA4B,UAASolB,GAAT,EAAc;AACxCipD,iBAAW,CAACjpD,GAAD,CAAX,GAAmB6oD,gBAAgB,CAACv1C,MAAM,CAACtT,GAAD,CAAP,EAAc8oD,eAAd,CAAnC;AACD,KAFD;AAGD;;AACDxvE,QAAM,CAACC,IAAP,CAAYyvE,MAAZ,EAAoBpuE,OAApB,CAA4B,UAASolB,GAAT,EAAc;AACxC,QAAI,CAACyoD,iBAAiB,CAACO,MAAM,CAAChpD,GAAD,CAAP,CAAlB,IAAmC,CAACsT,MAAM,CAACtT,GAAD,CAA9C,EAAqD;AACnDipD,iBAAW,CAACjpD,GAAD,CAAX,GAAmB6oD,gBAAgB,CAACG,MAAM,CAAChpD,GAAD,CAAP,EAAc8oD,eAAd,CAAnC;AACD,KAFD,MAEO;AACLG,iBAAW,CAACjpD,GAAD,CAAX,GAAmB4C,SAAS,CAAC0Q,MAAM,CAACtT,GAAD,CAAP,EAAcgpD,MAAM,CAAChpD,GAAD,CAApB,EAA2B8oD,eAA3B,CAA5B;AACD;AACF,GAND;AAQA,SAAOG,WAAP;AACD,CAjBD;;AAmBA,IAAMrmD,SAAS,GAAG,SAAZA,SAAY,GAA+C;AAAA,MAA9C0Q,MAA8C,uEAArC,EAAqC;AAAA,MAAjC01C,MAAiC,uEAAxB,EAAwB;AAAA,MAApBF,eAAoB;AAC/D,MAAM9/B,KAAK,GAAGpmC,KAAK,CAACC,OAAN,CAAcmmE,MAAd,CAAd;AACA,MAAMzyE,OAAO,GAAGuyE,eAAe,IAAI;AAAEK,cAAU,EAAEJ;AAAd,GAAnC;AACA,MAAMI,UAAU,GAAG5yE,OAAO,CAAC4yE,UAAR,IAAsBJ,iBAAzC;;AAEA,MAAI//B,KAAJ,EAAW;AACT,WAAOpmC,KAAK,CAACC,OAAN,CAAcywB,MAAd,IACH61C,UAAU,CAAC71C,MAAD,EAAS01C,MAAT,EAAiBF,eAAjB,CADP,GAEHD,gBAAgB,CAACG,MAAD,EAASF,eAAT,CAFpB;AAGD;;AAED,SAAOI,WAAW,CAAC51C,MAAD,EAAS01C,MAAT,EAAiBF,eAAjB,CAAlB;AACD,CAZD;;AAcelmD,wEAAf,E;;;;;;;;;;;;ACzEA;AAAA;AAAA;AAEA;;;;;;;;;;;AAUe,yEAASwtB,EAAT,EAAav3C,OAAb,EAAsB;AACnC,MAAIy1B,GAAG,GAAG,CAAV;AACA,MAAIygC,UAAU,GAAG,CAAjB;AACA,MAAIlI,KAAK,GAAG,CAAZ;AACA,MAAI/oD,KAAK,GAAG,CAAZ;AACA,MAAInF,GAAG,GAAG,IAAV;AACA,MAAI0E,GAAG,GAAG,IAAV;;AAEA,OAAK,IAAIhH,CAAC,GAAGwC,OAAO,CAAC2C,GAArB,EAA0BnF,CAAC,GAAGwC,OAAO,CAAC2C,GAAR,GAAc3C,OAAO,CAACb,MAApD,EAA4D3B,CAAC,EAA7D,EAAiE;AAC/D,SAAK,IAAIC,CAAC,GAAGuC,OAAO,CAAC0C,IAArB,EAA2BjF,CAAC,GAAGuC,OAAO,CAAC0C,IAAR,GAAe1C,OAAO,CAACf,KAAtD,EAA6DxB,CAAC,EAA9D,EAAkE;AAChE,UAAM8E,KAAK,GAAG;AACZ9E,SAAC,EAADA,CADY;AAEZD,SAAC,EAADA;AAFY,OAAd;;AAKA,UAAI+xD,kEAAc,CAACvvD,OAAD,EAAUuC,KAAV,CAAlB,EAAoC;AAClC,YAAIzC,GAAG,KAAK,IAAZ,EAAkB;AAChBA,aAAG,GAAGy3C,EAAE,CAACtyC,KAAD,CAAR;AACAT,aAAG,GAAG+yC,EAAE,CAACtyC,KAAD,CAAR;AACD;;AAEDwwB,WAAG,IAAI8hB,EAAE,CAACtyC,KAAD,CAAT;AACAixD,kBAAU,IAAI3e,EAAE,CAACtyC,KAAD,CAAF,GAAYsyC,EAAE,CAACtyC,KAAD,CAA5B;AACAnF,WAAG,GAAGxC,IAAI,CAACwC,GAAL,CAASA,GAAT,EAAcy3C,EAAE,CAACtyC,KAAD,CAAhB,CAAN;AACAT,WAAG,GAAGlH,IAAI,CAACkH,GAAL,CAASA,GAAT,EAAc+yC,EAAE,CAACtyC,KAAD,CAAhB,CAAN;AACA+oD,aAAK;AACN;;AAED/oD,WAAK;AACN;AACF;;AAED,MAAI+oD,KAAK,KAAK,CAAd,EAAiB;AACf,WAAO;AACLA,WAAK,EAALA,KADK;AAEL7kB,UAAI,EAAE,GAFD;AAGL8kB,cAAQ,EAAE,GAHL;AAIL7kB,YAAM,EAAE,GAJH;AAKLtpC,SAAG,EAAE,GALA;AAML0E,SAAG,EAAE;AANA,KAAP;AAQD;;AAED,MAAM2kC,IAAI,GAAG1T,GAAG,GAAGu4B,KAAnB;AACA,MAAMC,QAAQ,GAAGiI,UAAU,GAAGlI,KAAb,GAAqB7kB,IAAI,GAAGA,IAA7C;AAEA,SAAO;AACL6kB,SAAK,EAALA,KADK;AAEL7kB,QAAI,EAAJA,IAFK;AAGL8kB,YAAQ,EAARA,QAHK;AAIL7kB,UAAM,EAAE9rC,IAAI,CAACmf,IAAL,CAAUwxC,QAAV,CAJH;AAKLnuD,OAAG,EAAHA,GALK;AAML0E,OAAG,EAAHA;AANK,GAAP;AAQD,C;;;;;;;;;;;;AClED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;CAGA;;CAGA;;AACe;AACbupD,4BAA0B,EAA1BA,sEADa;AAEbwB,gBAAc,EAAdA,0DAAcA;AAFD,CAAf,E;;;;;;;;;;;;ACPA;AAAA;;;;;;;;;AASe,yEAASvvD,OAAT,EAAkBuwE,QAAlB,EAA4B;AACzC,MAAMC,OAAO,GAAGxwE,OAAO,CAACf,KAAR,GAAgB,CAAhC;AACA,MAAMwxE,OAAO,GAAGzwE,OAAO,CAACb,MAAR,GAAiB,CAAjC;;AAEA,MAAIqxE,OAAO,IAAI,GAAX,IAAkBC,OAAO,IAAI,GAAjC,EAAsC;AACpC,WAAO,KAAP;AACD;;AAED,MAAMryE,MAAM,GAAG;AACbX,KAAC,EAAEuC,OAAO,CAAC0C,IAAR,GAAe8tE,OADL;AAEbhzE,KAAC,EAAEwC,OAAO,CAAC2C,GAAR,GAAc8tE;AAFJ,GAAf;AAKA;;;;;AAKA,MAAMC,UAAU,GAAG;AACjBjzE,KAAC,EAAE8yE,QAAQ,CAAC9yE,CAAT,GAAaW,MAAM,CAACX,CADN;AAEjBD,KAAC,EAAE+yE,QAAQ,CAAC/yE,CAAT,GAAaY,MAAM,CAACZ;AAFN,GAAnB;AAKA,MAAMmzE,SAAS,GACZD,UAAU,CAACjzE,CAAX,GAAeizE,UAAU,CAACjzE,CAA3B,IAAiC+yE,OAAO,GAAGA,OAA3C,IACGE,UAAU,CAAClzE,CAAX,GAAekzE,UAAU,CAAClzE,CAA3B,IAAiCizE,OAAO,GAAGA,OAA3C,CADF,IAEA,GAHF;AAKA,SAAOE,SAAP;AACD,C;;;;;;;;;;;;ACtCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;CAGA;;AAEA;;;;;;;;;;;;;;AAaA,IAAMjpD,wBAAwB,GAAG,SAA3BA,wBAA2B,CAC/BphB,GAD+B,EAE/BM,IAF+B,EAG/B+H,QAH+B,EAI/B9N,MAJ+B,EAK/B+Z,eAL+B,EAM/B;AACAjM,UAAQ,CAAC3N,MAAT,GAAkB,IAAlB;AACAU,uDAAK,CAAC6H,YAAN,GAAqB,IAArB;AAEAhB,2EAAU,CACRjC,GAAG,CAACE,MADI,EAERI,IAAI,CAACwB,IAFG,EAGRuG,QAHQ,EAIR9N,MAJQ,EAKR+F,IAAI,CAAClJ,OALG,EAMRkd,eANQ,CAAV;AASAtU,KAAG,CAAC8I,wBAAJ;AACA9I,KAAG,CAAC0B,eAAJ;AACA1B,KAAG,CAACyB,cAAJ;AAEA;AACD,CAxBD;AA0BA;;;;;;;;;;;;;;;;AAcA,IAAMkD,4BAA4B,GAAG,SAA/BA,4BAA+B,CACnC9M,OADmC,EAEnC6M,SAFmC,EAGnCnC,QAHmC,EAInCW,MAJmC,EAMnC;AAAA,MADAoR,eACA,uEADkB,OAClB;;AACA,OAAK,IAAIja,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqK,SAAS,CAACE,IAAV,CAAevJ,MAAnC,EAA2ChB,CAAC,EAA5C,EAAgD;AAC9C,QAAMuK,IAAI,GAAGF,SAAS,CAACE,IAAV,CAAevK,CAAf,CAAb;AACA,QAAME,MAAM,GAAGmO,wFAAuB,CACpC7Q,OADoC,EAEpC+M,IAAI,CAAC/K,OAF+B,EAGpCqJ,MAHoC,EAIpCoR,eAAe,KAAK,OAApB,GAA8BlZ,qDAAK,CAACk+B,cAApC,GAAqDl+B,qDAAK,CAACm+B,cAJvB,CAAtC;;AAOA,QAAIh/B,MAAJ,EAAY;AACV,aAAO;AACLA,cAAM,EAANA,MADK;AAELqK,YAAI,EAAJA;AAFK,OAAP;AAID;AACF;AACF,CAvBD;AAyBA;;;;;;;;;;;;;;;;;;;AAiBA,IAAMyc,cAAc,GAAG,SAAjBA,cAAiB,CACrBrhB,GADqB,EAErBM,IAFqB,EAGrBolB,UAHqB,EAKrB;AAAA,MADApR,eACA,uEADkB,OAClB;AACAoR,YAAU,CAAChrB,MAAX,GAAoB,IAApB;AACAU,uDAAK,CAAC6H,YAAN,GAAqB,IAArB;AAEA+F,+EAAc,CACZhJ,GAAG,CAACE,MADQ,EAEZI,IAAI,CAACwB,IAFO,EAGZ4jB,UAHY,EAIZ,IAJY,EAKZplB,IAAI,CAAClJ,OALO,EAMZkd,eANY,EAOZ,YAAM;AACJoR,cAAU,CAAChrB,MAAX,GAAoB,KAApB;AACAU,yDAAK,CAAC6H,YAAN,GAAqB,KAArB;AACD,GAVW,CAAd;AAaAjD,KAAG,CAAC8I,wBAAJ;AACA9I,KAAG,CAAC0B,eAAJ;AACA1B,KAAG,CAACyB,cAAJ;AAEA;AACD,CA3BD;;;;;;;;;;;;;;;;;;;;ACrGA;;;;;;;IAOqB6oE,e;AACnB;;;;;AAKA,yBAAYvkC,SAAZ,EAAuBwkC,gBAAvB,EAAyC;AAAA;;AACvC,OAAKxkC,SAAL,GAAiBA,SAAjB;AACA,OAAKwkC,gBAAL,GAAwBA,gBAAxB;AACD,C;;;;;;;;;;;;;;;;;;;;AChBH;;;;;;;;;;;IAWqBx4B,kB;AACnB;;;;;;;AAOA,4BAAYsD,QAAZ,EAAuD;AAAA,MAAjC7tC,SAAiC,uEAArB,IAAqB;AAAA,MAAf9M,MAAe,uEAAN,IAAM;;AAAA;;AACrD,OAAKvD,CAAL,GAASk+C,QAAQ,CAACl+C,CAAlB;AACA,OAAKD,CAAL,GAASm+C,QAAQ,CAACn+C,CAAlB;AACA,OAAKsQ,SAAL,GAAiBA,SAAjB;AACA,OAAK9M,MAAL,GAAcA,MAAd;AACA,OAAKiB,KAAL,GAAa,EAAb;AACD,C;;;;;;;;;;;;;;;;;;;;;;;;;ACzBH;AACA;AACA;AAEA,IAAMipB,iBAAiB,GAAG,EAA1B;AAEA;;;;;;IAKqB4lD,kB;;;AACnB;;;;;;AAMA,8BAAYvqE,SAAZ,EAAuBsC,QAAvB,EAAiC;AAAA;;AAC/B,SAAKkoE,UAAL,GAAkBxqE,SAAlB;AACA,SAAKyqE,SAAL,GAAiBnoE,QAAjB;AACD;AAED;;;;;;;;;;;+BAOW;AACT,UAAM2xC,gBAAgB,GAAG,KAAKy2B,QAAL,EAAzB;;AAEA,UAAIz2B,gBAAgB,KAAK,IAAzB,EAA+B;AAC7B,eAAO,IAAP;AACD;;AAED,UAAM02B,UAAU,GAAG,KAAKC,oBAAL,CAA0B32B,gBAA1B,CAAnB;;AAEA,UAAI02B,UAAJ,EAAgB;AACd,YAAME,eAAe,GAAG,KAAKC,gBAAL,CACtB72B,gBADsB,EAEtB02B,UAFsB,CAAxB,CADc,CAMd;;;AACA,eAAOE,eAAP;AACD,OAjBQ,CAmBT;;;AACA,aAAO,IAAP;AACD;AAED;;;;;;;;;;;+BAQW;AACT,WAAKE,SAAL,GAAiBvqE,kFAAY,CAAC,KAAKgqE,UAAL,CAAgB5yE,OAAjB,EAA0B,KAAK6yE,SAA/B,CAA7B;AACA,WAAKO,WAAL,GAAmB,KAAKR,UAAL,CAAgBtnE,aAAhB,CAA8B1E,MAAjD;;AAEA,UAAI,CAAC,KAAKusE,SAAV,EAAqB;AACnB,eAAO,IAAP;AACD;;AAED,UAAME,aAAa,GAAG,KAAKC,6BAAL,EAAtB;;AAEA,aAAOD,aAAa,CAACnlC,SAArB;AACD;AAED;;;;;;;;;oDAMgC;AAC9B,UAAM19B,QAAQ,GAAG,KAAK2iE,SAAtB;AAEA,UAAIE,aAAa,GAAG;AAClBnlC,iBAAS,EAAE,IADO;AAElBwmB,mBAAW,EAAE,IAFK;AAGlB/+C,gBAAQ,EAAEkkB,QAHQ,CAGE;;AAHF,OAApB;;AAMA,WAAK,IAAIqU,SAAS,GAAG,CAArB,EAAwBA,SAAS,GAAG19B,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlD,EAA0D0qC,SAAS,EAAnE,EAAuE;AACrE,YAAMqlC,qBAAqB,GAAG,KAAKC,qBAAL,CAA2BtlC,SAA3B,CAA9B;;AAEA,YAAIqlC,qBAAqB,KAAK,IAA9B,EAAoC;AAClC;AACD;;AAED,YAAIA,qBAAqB,CAAC59D,QAAtB,GAAiC09D,aAAa,CAAC19D,QAAnD,EAA6D;AAC3D09D,uBAAa,GAAGE,qBAAhB;AACD;AACF;;AAED,aAAOF,aAAP;AACD;AAED;;;;;;;;;;;0CAQsBnlC,S,EAAW;AAC/B,UAAM9lC,SAAS,GAAG,KAAKwqE,UAAvB;AACA,UAAMpiE,QAAQ,GAAG,KAAK2iE,SAAtB;AAEA,UAAMpmE,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcmhC,SAAd,CAAb;AACA,UAAMvuC,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B;;AAEA,UAAIA,MAAM,KAAKF,SAAf,EAA0B;AACxB,eAAO,IAAP;AACD;;AAED,UAAIsN,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B,eAAO,IAAP;AACD;;AAED,UAAMkpC,OAAO,GAAG;AACdlS,iBAAS,EAATA,SADc;AAEdwmB,mBAAW,EAAE,IAFC;AAGd/+C,gBAAQ,EAAEkkB,QAHI,CAGM;;AAHN,OAAhB;;AAMA,WAAK,IAAIr3B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG7C,MAAM,CAAC6D,MAA3B,EAAmChB,CAAC,EAApC,EAAwC;AACtC,YAAM8qB,YAAY,GAAGltB,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CACnB8H,SAAS,CAACpI,OADS,EAEnBL,MAAM,CAAC6C,CAAD,CAFa,CAArB;AAIA,YAAMixE,4BAA4B,GAAGrzE,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CACnC2X,YADmC,EAEnC,KAAK8lD,WAF8B,CAArC;;AAKA,YAAIK,4BAA4B,GAAGrzB,OAAO,CAACzqC,QAA3C,EAAqD;AACnDyqC,iBAAO,CAACsU,WAAR,GAAsBlyD,CAAtB;AACA49C,iBAAO,CAACzqC,QAAR,GAAmB89D,4BAAnB;AACD;AACF;;AAED,aAAOrzB,OAAP;AACD;AAED;;;;;;;;;;;yCAQqBlS,S,EAAW;AAC9B,UAAM19B,QAAQ,GAAG,KAAK2iE,SAAtB;AACA,UAAMxzE,MAAM,GAAG6Q,QAAQ,CAACzD,IAAT,CAAcmhC,SAAd,EAAyBlsC,OAAzB,CAAiCrC,MAAhD;AAEA,UAAMozE,UAAU,GAAG,EAAnB;;AAEA,WAAK,IAAIvwE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG7C,MAAM,CAAC6D,MAA3B,EAAmChB,CAAC,EAApC,EAAwC;AACtC,YAAMg8C,SAAS,GAAGm0B,kBAAkB,CAACe,kBAAnB,CAAsClxE,CAAtC,EAAyC7C,MAAM,CAAC6D,MAAhD,CAAlB;;AACA,YAAMuN,CAAC,GAAG,KAAK4iE,wBAAL,CAA8Bh0E,MAAM,CAAC6C,CAAD,CAApC,EAAyC7C,MAAM,CAAC6+C,SAAD,CAA/C,CAAV;;AAEA,YAAIztC,CAAC,GAAGgc,iBAAR,EAA2B;AACzBgmD,oBAAU,CAACz5D,IAAX,CAAgB,CAAC9W,CAAD,EAAIg8C,SAAJ,CAAhB;AACD;AACF;;AAED,aAAOu0B,UAAP;AACD;AAED;;;;;;;;;;;;qCASiB7kC,S,EAAW6kC,U,EAAY;AACtC;AACA,WAAK,IAAIvwE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuwE,UAAU,CAACvvE,MAA/B,EAAuChB,CAAC,EAAxC,EAA4C;AAC1C,YAAI,KAAKoxE,2BAAL,CAAiC1lC,SAAjC,EAA4C6kC,UAAU,CAACvwE,CAAD,CAAtD,CAAJ,EAAgE;AAC9D,iBAAO,IAAIiwE,2DAAJ,CAAoBvkC,SAApB,EAA+B6kC,UAAU,CAACvwE,CAAD,CAAzC,CAAP;AACD;AACF,OANqC,CAQtC;;;AACA,aAAO,IAAP;AACD;AAED;;;;;;;;;;;;gDAS4B0rC,S,EAAWwkC,gB,EAAkB;AACvD,UAAMtqE,SAAS,GAAG,KAAKwqE,UAAvB;AACA,UAAMpiE,QAAQ,GAAG,KAAK2iE,SAAtB;AACA,UAAMpmE,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcmhC,SAAd,CAAb;AACA,UAAMvuC,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B;;AAEA,UAAIoN,IAAI,CAAC/K,OAAL,CAAarC,MAAb,KAAwBF,SAA5B,EAAuC;AACrC;AACD;;AAED,UAAIsN,IAAI,CAACmK,OAAL,KAAiB,KAArB,EAA4B;AAC1B,eAAO,KAAP;AACD;;AAED,UAAM28D,OAAO,GAAGl0E,MAAM,CAAC+yE,gBAAgB,CAAC,CAAD,CAAjB,CAAtB;AACA,UAAMoB,OAAO,GAAGn0E,MAAM,CAAC+yE,gBAAgB,CAAC,CAAD,CAAjB,CAAtB;AAEA,UAAMhvE,CAAC,GAAGivE,kBAAkB,CAACoB,0BAAnB,CACRF,OADQ,EAERC,OAFQ,EAGR1rE,SAAS,CAACpI,OAHF,CAAV;AAMA,UAAMsoC,CAAC,GAAGqqC,kBAAkB,CAACqB,eAAnB,CAAmCtwE,CAAnC,CAAV;;AACA,UAAM2kC,CAAC,GAAG,KAAK4rC,6BAAL,CAAmCvwE,CAAnC,CAAV,CAxBuD,CA0BvD;;;AACA,UAAMwwE,KAAK,GAAG,CAAC7rC,CAAC,CAAC,CAAD,CAAD,GAAOC,CAAC,CAAC,CAAD,CAAR,GAAcD,CAAC,CAAC,CAAD,CAAD,GAAOC,CAAC,CAAC,CAAD,CAAvB,IAA8BA,CAAC,CAAC6rC,SAA9C;;AAEA,UAAID,KAAK,GAAG,CAAR,IAAaA,KAAK,GAAG5rC,CAAC,CAAC6rC,SAA3B,EAAsC;AACpC,eAAO,IAAP;AACD;;AAED,aAAO,KAAP;AACD;AAED;;;;;;;;;;;;;;;AA2CA;;;;;;;;kDAQ8BzwE,C,EAAG;AAC/B,UAAM2kC,CAAC,GAAG,CAAC,KAAK+qC,WAAL,CAAiB9zE,CAAjB,GAAqBoE,CAAC,CAAC,CAAD,CAAD,CAAKpE,CAA3B,EAA8B,KAAK8zE,WAAL,CAAiB/zE,CAAjB,GAAqBqE,CAAC,CAAC,CAAD,CAAD,CAAKrE,CAAxD,CAAV;AAEA,aAAOgpC,CAAP;AACD;AAED;;;;;;;;;;;;6CASyBwrC,O,EAASC,O,EAAS;AACzC,UAAM1rE,SAAS,GAAG,KAAKwqE,UAAvB;AAEA,UAAMxc,EAAE,GAAGh2D,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmC8H,SAAS,CAACpI,OAA7C,EAAsD6zE,OAAtD,CAAX;AACA,UAAMxd,EAAE,GAAGj2D,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmC8H,SAAS,CAACpI,OAA7C,EAAsD8zE,OAAtD,CAAX;AACA,UAAMM,MAAM,GAAG,KAAKhB,WAApB,CALyC,CAOzC;AACA;;AACA,UAAMiB,mBAAmB,GAAGl1E,IAAI,CAACmC,GAAL,CAC1B,CAAC+0D,EAAE,CAACh3D,CAAH,GAAO+2D,EAAE,CAAC/2D,CAAX,IAAgB+0E,MAAM,CAAC90E,CAAvB,GACE,CAAC+2D,EAAE,CAAC/2D,CAAH,GAAO82D,EAAE,CAAC92D,CAAX,IAAgB80E,MAAM,CAAC/0E,CADzB,GAEEg3D,EAAE,CAAC/2D,CAAH,GAAO82D,EAAE,CAAC/2D,CAFZ,GAGEg3D,EAAE,CAACh3D,CAAH,GAAO+2D,EAAE,CAAC92D,CAJc,CAA5B;AAMA,UAAMg1E,UAAU,GAAGl0E,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CAAwCygD,EAAxC,EAA4CC,EAA5C,CAAnB;AACA,UAAMtlD,CAAC,GAAGsjE,mBAAmB,GAAGC,UAAhC;AAEA,aAAOvjE,CAAP;AACD;AAED;;;;;;;;;;;;;;+CA5EkC8iE,O,EAASC,O,EAAS9zE,O,EAAS;AAC3D,UAAM0D,CAAC,GAAG,EAAV,CAD2D,CAG3D;;AACA,UAAImwE,OAAO,CAACv0E,CAAR,GAAYw0E,OAAO,CAACx0E,CAAxB,EAA2B;AACzBoE,SAAC,CAAC4V,IAAF,CAAOlZ,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4C6zE,OAA5C,CAAP;AACAnwE,SAAC,CAAC4V,IAAF,CAAOlZ,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4C8zE,OAA5C,CAAP;AACD,OAHD,MAGO;AACLpwE,SAAC,CAAC4V,IAAF,CAAOlZ,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4C8zE,OAA5C,CAAP;AACApwE,SAAC,CAAC4V,IAAF,CAAOlZ,2DAAQ,CAACC,WAAT,CAAqBC,aAArB,CAAmCN,OAAnC,EAA4C6zE,OAA5C,CAAP;AACD;;AAED,aAAOnwE,CAAP;AACD;AAED;;;;;;;;;;;;oCASuBA,C,EAAG;AACxB,UAAM4kC,CAAC,GAAG,CAAC5kC,CAAC,CAAC,CAAD,CAAD,CAAKpE,CAAL,GAASoE,CAAC,CAAC,CAAD,CAAD,CAAKpE,CAAf,EAAkBoE,CAAC,CAAC,CAAD,CAAD,CAAKrE,CAAL,GAASqE,CAAC,CAAC,CAAD,CAAD,CAAKrE,CAAhC,CAAV;AAEAipC,OAAC,CAAC6rC,SAAF,GAAc/zE,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CAAwCjS,CAAC,CAAC,CAAD,CAAzC,EAA8CA,CAAC,CAAC,CAAD,CAA/C,CAAd;AAEA,aAAO4kC,CAAP;AACD;;;uCAyDyBxM,Y,EAAct4B,M,EAAQ;AAC9C,UAAIg7C,SAAJ;;AAEA,UAAI1iB,YAAY,GAAGt4B,MAAM,GAAG,CAA5B,EAA+B;AAC7Bg7C,iBAAS,GAAG1iB,YAAY,GAAG,CAA3B;AACD,OAFD,MAEO;AACL0iB,iBAAS,GAAG,CAAZ;AACD;;AAED,aAAOA,SAAP;AACD;;;;;;;;;;;;;;;;;;AChWH;AAAA;;;;;;;AAOe,yEAAS7+C,MAAT,EAAiBo+C,WAAjB,EAA8B;AAC3C;AACA,MAAIA,WAAW,KAAKp+C,MAAM,CAAC6D,MAAP,GAAgB,CAApC,EAAuC;AACrC7D,UAAM,CAACo+C,WAAD,CAAN,CAAoBj6C,KAApB,CAA0BwV,IAA1B,CAA+B3Z,MAAM,CAAC,CAAD,CAArC;AACD,GAFD,MAEO;AACLA,UAAM,CAACo+C,WAAD,CAAN,CAAoBj6C,KAApB,CAA0BwV,IAA1B,CAA+B3Z,MAAM,CAACo+C,WAAW,GAAG,CAAf,CAArC;AACD;AACF,C;;;;;;;;;;;;ACdD;AAAA;AAAA;AAEA;;;;;;;;;;;AAUe,yEAAS3E,EAAT,EAAal1C,WAAb,EAA0BqwE,WAA1B,EAAuC;AACpD,MAAMC,aAAa,GAAG;AACpB3kB,SAAK,EAAE,CADa;AAEpB7kB,QAAI,EAAE,GAFc;AAGpB8kB,YAAQ,EAAE,GAHU;AAIpB7kB,UAAM,EAAE;AAJY,GAAtB;AAOA,MAAM3T,GAAG,GAAGm9C,MAAM,CAACr7B,EAAD,EAAKl1C,WAAL,EAAkBqwE,WAAlB,CAAlB;;AAEA,MAAIj9C,GAAG,CAACu4B,KAAJ,KAAc,CAAlB,EAAqB;AACnB,WAAO2kB,aAAP;AACD;;AAEDA,eAAa,CAAC3kB,KAAd,GAAsBv4B,GAAG,CAACu4B,KAA1B;AACA2kB,eAAa,CAACxpC,IAAd,GAAqB1T,GAAG,CAACxI,KAAJ,GAAYwI,GAAG,CAACu4B,KAArC;AACA2kB,eAAa,CAAC1kB,QAAd,GACEx4B,GAAG,CAACo9C,OAAJ,GAAcp9C,GAAG,CAACu4B,KAAlB,GAA0B2kB,aAAa,CAACxpC,IAAd,GAAqBwpC,aAAa,CAACxpC,IAD/D;AAEAwpC,eAAa,CAACvpC,MAAd,GAAuB9rC,IAAI,CAACmf,IAAL,CAAUk2D,aAAa,CAAC1kB,QAAxB,CAAvB;AAEA,SAAO0kB,aAAP;AACD;AAED;;;;;;;;;;;;AAWA,SAASC,MAAT,CAAgBr7B,EAAhB,EAAoBl1C,WAApB,EAAiCqwE,WAAjC,EAA8C;AAC5C,MAAMj9C,GAAG,GAAG;AACVxI,SAAK,EAAE,CADG;AAEV4lD,WAAO,EAAE,CAFC;AAGV7kB,SAAK,EAAE;AAHG,GAAZ;AAKA,MAAI/oD,KAAK,GAAG,CAAZ;;AAEA,OAAK,IAAIzH,CAAC,GAAG6E,WAAW,CAACM,GAAzB,EAA8BnF,CAAC,GAAG6E,WAAW,CAACM,GAAZ,GAAkBN,WAAW,CAAClD,MAAhE,EAAwE3B,CAAC,EAAzE,EAA6E;AAC3E,SACE,IAAIC,CAAC,GAAG4E,WAAW,CAACK,IADtB,EAEEjF,CAAC,GAAG4E,WAAW,CAACK,IAAZ,GAAmBL,WAAW,CAACpD,KAFrC,EAGExB,CAAC,EAHH,EAIE;AACA,UAAM8E,KAAK,GAAG;AACZ9E,SAAC,EAADA,CADY;AAEZD,SAAC,EAADA;AAFY,OAAd;AAKAs1E,0BAAoB,CAACJ,WAAD,EAAcnwE,KAAd,EAAqBkzB,GAArB,EAA0B8hB,EAAE,CAACtyC,KAAD,CAA5B,CAApB;AACAA,WAAK;AACN;AACF;;AAED,SAAOwwB,GAAP;AACD;AAED;;;;;;;;;;;;;AAWA,SAASq9C,oBAAT,CAA8BJ,WAA9B,EAA2CnwE,KAA3C,EAAkDwwE,UAAlD,EAA8DC,UAA9D,EAA0E;AACxE,MAAIC,mEAAe,CAACP,WAAD,EAAcnwE,KAAd,CAAnB,EAAyC;AACvCwwE,cAAU,CAAC9lD,KAAX,IAAoB+lD,UAApB;AACAD,cAAU,CAACF,OAAX,IAAsBG,UAAU,GAAGA,UAAnC;AACAD,cAAU,CAAC/kB,KAAX;AACD;AACF,C;;;;;;;;;;;;AC1FD;AAAA;;;;;;;;;AASe,yEAAS0kB,WAAT,EAAsBrhB,OAAtB,EAA+B;AAC5C,MAAI6hB,YAAY,GAAG,CAAnB;AACA,MAAIh8D,CAAC,GAAGw7D,WAAW,CAAC/wE,MAAZ,GAAqB,CAA7B,CAF4C,CAEZ;;AAEhC0vD,SAAO,GAAGA,OAAO,IAAI,CAArB,CAJ4C,CAIpB;;AAExB,OAAK,IAAI1wD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+xE,WAAW,CAAC/wE,MAAhC,EAAwChB,CAAC,EAAzC,EAA6C;AAC3CuyE,gBAAY,IACV,CAACR,WAAW,CAACx7D,CAAD,CAAX,CAAezZ,CAAf,GAAmBi1E,WAAW,CAAC/xE,CAAD,CAAX,CAAelD,CAAnC,KACCi1E,WAAW,CAACx7D,CAAD,CAAX,CAAe1Z,CAAf,GAAmBk1E,WAAW,CAAC/xE,CAAD,CAAX,CAAenD,CADnC,CADF;AAGA0Z,KAAC,GAAGvW,CAAJ,CAJ2C,CAIpC;AACR;;AAED,SAAOrD,IAAI,CAACmC,GAAL,CAAUyzE,YAAY,GAAG7hB,OAAhB,GAA2B,GAApC,CAAP;AACD,C;;;;;;;;;;;;ACvBD;AAAA;;;;;AAKA;;;;;;;;;AASA,SAAS+C,SAAT,CAAmB+e,eAAnB,EAAoCT,WAApC,EAAiD;AAC/C;AACA,MAAMU,YAAY,GAAGV,WAAW,CAAC/wE,MAAZ,GAAqB,CAA1C;AACA,MAAM0xE,UAAU,GAAG10C,SAAS,CAAC+zC,WAAW,CAACU,YAAD,CAAZ,CAA5B;AACA,MAAMhf,SAAS,GAAGz1B,SAAS,CAACw0C,eAAD,CAA3B;AAEA,SAAOG,uBAAuB,CAACZ,WAAD,EAAcW,UAAd,EAA0Bjf,SAA1B,EAAqC,CACjEgf,YADiE,CAArC,CAA9B;AAGD;AAED;;;;;;;;;;AAQA,SAASp2E,GAAT,CAAa01E,WAAb,EAA0B;AACxB,MAAMU,YAAY,GAAGV,WAAW,CAAC/wE,MAAZ,GAAqB,CAA1C;AACA,MAAM0xE,UAAU,GAAG10C,SAAS,CAAC+zC,WAAW,CAACU,YAAD,CAAZ,CAA5B;AACA,MAAMxhB,WAAW,GAAGjzB,SAAS,CAAC+zC,WAAW,CAAC,CAAD,CAAZ,CAA7B;AAEA,SAAOY,uBAAuB,CAACZ,WAAD,EAAcW,UAAd,EAA0BzhB,WAA1B,EAAuC,CACnEwhB,YADmE,EAEnE,CAFmE,CAAvC,CAA9B;AAID;AAED;;;;;;;;;;;AASA,SAAStgB,MAAT,CAAgB4f,WAAhB,EAA6Ba,gBAA7B,EAA+C;AAC7C;AACA,MAAMC,cAAc,GAAG70C,SAAS,CAAC+zC,WAAW,CAACa,gBAAD,CAAZ,CAAhC,CAF6C,CAI7C;;AACA,MAAIE,gBAAgB,GAAGF,gBAAgB,GAAG,CAA1C;;AAEA,MAAIA,gBAAgB,KAAK,CAAzB,EAA4B;AAC1BE,oBAAgB,GAAGf,WAAW,CAAC/wE,MAAZ,GAAqB,CAAxC;AACD;;AAED,MAAI+xE,cAAc,GAAG/0C,SAAS,CAAC+zC,WAAW,CAACe,gBAAD,CAAZ,CAA9B;;AAEA,MACEH,uBAAuB,CAACZ,WAAD,EAAcc,cAAd,EAA8BE,cAA9B,EAA8C,CACnEH,gBADmE,EAEnEE,gBAFmE,CAA9C,CADzB,EAKE;AACA,WAAO,IAAP;AACD,GApB4C,CAsB7C;;;AACA,MAAIF,gBAAgB,KAAKb,WAAW,CAAC/wE,MAAZ,GAAqB,CAA9C,EAAiD;AAC/C8xE,oBAAgB,GAAG,CAAnB;AACD,GAFD,MAEO;AACLA,oBAAgB,GAAGF,gBAAgB,GAAG,CAAtC;AACD;;AAEDG,gBAAc,GAAG/0C,SAAS,CAAC+zC,WAAW,CAACe,gBAAD,CAAZ,CAA1B;AAEA,SAAOH,uBAAuB,CAACZ,WAAD,EAAcc,cAAd,EAA8BE,cAA9B,EAA8C,CAC1EH,gBAD0E,EAE1EE,gBAF0E,CAA9C,CAA9B;AAID;AAED;;;;;;;;;;;;;AAWA,SAASH,uBAAT,CAAiCZ,WAAjC,EAA8Cne,EAA9C,EAAkDof,EAAlD,EAAsDC,gBAAtD,EAAwE;AACtE,MAAI18D,CAAC,GAAGw7D,WAAW,CAAC/wE,MAAZ,GAAqB,CAA7B;;AAEA,OAAK,IAAIhB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+xE,WAAW,CAAC/wE,MAAhC,EAAwChB,CAAC,EAAzC,EAA6C;AAC3C,QACEizE,gBAAgB,CAAC76C,OAAjB,CAAyBp4B,CAAzB,MAAgC,CAAC,CAAjC,IACAizE,gBAAgB,CAAC76C,OAAjB,CAAyB7hB,CAAzB,MAAgC,CAAC,CAFnC,EAGE;AACAA,OAAC,GAAGvW,CAAJ;AACA;AACD;;AAED,QAAM6zD,EAAE,GAAG71B,SAAS,CAAC+zC,WAAW,CAACx7D,CAAD,CAAZ,CAApB;AACA,QAAM28D,EAAE,GAAGl1C,SAAS,CAAC+zC,WAAW,CAAC/xE,CAAD,CAAZ,CAApB;;AAEA,QAAImzE,aAAa,CAACvf,EAAD,EAAKof,EAAL,EAASnf,EAAT,EAAaqf,EAAb,CAAjB,EAAmC;AACjC,aAAO,IAAP;AACD;;AAED38D,KAAC,GAAGvW,CAAJ;AACD;;AAED,SAAO,KAAP;AACD;AAED;;;;;;;;;;;;;AAWA,SAASmzE,aAAT,CAAuBvf,EAAvB,EAA2Bof,EAA3B,EAA+Bnf,EAA/B,EAAmCqf,EAAnC,EAAuC;AACrC,MAAI9X,MAAM,GAAG,KAAb;AAEA,MAAMgY,MAAM,GAAG,CACbhvD,WAAW,CAACwvC,EAAD,EAAKof,EAAL,EAASnf,EAAT,CADE,EAEbzvC,WAAW,CAACwvC,EAAD,EAAKof,EAAL,EAASE,EAAT,CAFE,EAGb9uD,WAAW,CAACyvC,EAAD,EAAKqf,EAAL,EAAStf,EAAT,CAHE,EAIbxvC,WAAW,CAACyvC,EAAD,EAAKqf,EAAL,EAASF,EAAT,CAJE,CAAf,CAHqC,CAUrC;;AACA,MAAII,MAAM,CAAC,CAAD,CAAN,KAAcA,MAAM,CAAC,CAAD,CAApB,IAA2BA,MAAM,CAAC,CAAD,CAAN,KAAcA,MAAM,CAAC,CAAD,CAAnD,EAAwD;AACtD,WAAO,IAAP;AACD,GAboC,CAerC;;;AACA,MAAIA,MAAM,CAAC,CAAD,CAAN,KAAc,CAAd,IAAmBC,SAAS,CAACzf,EAAD,EAAKC,EAAL,EAASmf,EAAT,CAAhC,EAA8C;AAC5C;AACA5X,UAAM,GAAG,IAAT;AACD,GAHD,MAGO,IAAIgY,MAAM,CAAC,CAAD,CAAN,KAAc,CAAd,IAAmBC,SAAS,CAACzf,EAAD,EAAKsf,EAAL,EAASF,EAAT,CAAhC,EAA8C;AACnD;AACA5X,UAAM,GAAG,IAAT;AACD,GAHM,MAGA,IAAIgY,MAAM,CAAC,CAAD,CAAN,KAAc,CAAd,IAAmBC,SAAS,CAACxf,EAAD,EAAKD,EAAL,EAASsf,EAAT,CAAhC,EAA8C;AACnD;AACA9X,UAAM,GAAG,IAAT;AACD,GAHM,MAGA,IAAIgY,MAAM,CAAC,CAAD,CAAN,KAAc,CAAd,IAAmBC,SAAS,CAACxf,EAAD,EAAKmf,EAAL,EAASE,EAAT,CAAhC,EAA8C;AACnD;AACA9X,UAAM,GAAG,IAAT;AACD;;AAED,SAAOA,MAAP;AACD;AAED;;;;;;;;;;AAQA,SAASp9B,SAAT,CAAmBs1C,UAAnB,EAA+B;AAC7B,SAAO;AACLx2E,KAAC,EAAEw2E,UAAU,CAACx2E,CADT;AAELD,KAAC,EAAEy2E,UAAU,CAACz2E;AAFT,GAAP;AAID;AAED;;;;;;;;;;;;AAUA,SAASunB,WAAT,CAAqBljB,CAArB,EAAwBqyE,CAAxB,EAA2BztC,CAA3B,EAA8B;AAC5B,MAAM0tC,gBAAgB,GACpB,CAACD,CAAC,CAAC12E,CAAF,GAAMqE,CAAC,CAACrE,CAAT,KAAeipC,CAAC,CAAChpC,CAAF,GAAMy2E,CAAC,CAACz2E,CAAvB,IAA4B,CAACy2E,CAAC,CAACz2E,CAAF,GAAMoE,CAAC,CAACpE,CAAT,KAAegpC,CAAC,CAACjpC,CAAF,GAAM02E,CAAC,CAAC12E,CAAvB,CAD9B;;AAGA,MAAI22E,gBAAgB,KAAK,CAAzB,EAA4B;AAC1B,WAAO,CAAP,CAD0B,CAChB;AACX;;AAED,SAAOA,gBAAgB,GAAG,CAAnB,GAAuB,CAAvB,GAA2B,CAAlC;AACD;AAED;;;;;;;;;;;;AAUA,SAASH,SAAT,CAAmBnyE,CAAnB,EAAsBqyE,CAAtB,EAAyBztC,CAAzB,EAA4B;AAC1B,MACEytC,CAAC,CAACz2E,CAAF,IAAOH,IAAI,CAACkH,GAAL,CAAS3C,CAAC,CAACpE,CAAX,EAAcgpC,CAAC,CAAChpC,CAAhB,CAAP,IACAy2E,CAAC,CAACz2E,CAAF,IAAOH,IAAI,CAACwC,GAAL,CAAS+B,CAAC,CAACpE,CAAX,EAAcgpC,CAAC,CAAChpC,CAAhB,CADP,IAEAy2E,CAAC,CAAC12E,CAAF,IAAOF,IAAI,CAACkH,GAAL,CAAS3C,CAAC,CAACrE,CAAX,EAAcipC,CAAC,CAACjpC,CAAhB,CAFP,IAGA02E,CAAC,CAAC12E,CAAF,IAAOF,IAAI,CAACwC,GAAL,CAAS+B,CAAC,CAACrE,CAAX,EAAcipC,CAAC,CAACjpC,CAAhB,CAJT,EAKE;AACA,WAAO,IAAP;AACD;;AAED,SAAO,KAAP;AACD;;AAEc;AACb42D,WAAS,EAATA,SADa;AAEbp3D,KAAG,EAAHA,GAFa;AAGb81D,QAAM,EAANA;AAHa,CAAf,E;;;;;;;;;;;;ACrOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEe;AACbhD,6BAA2B,EAA3BA,uEADa;AAEb8gB,iBAAe,EAAfA,2DAFa;AAGb/gB,cAAY,EAAZA,wDAHa;AAIbxX,oBAAkB,EAAlBA,8DAJa;AAKb0X,mBAAiB,EAAjBA,6DALa;AAMb+gB,oBAAkB,EAAlBA,8DANa;AAOblhB,gBAAc,EAAdA,0DAPa;AAQbqjB,iBAAe,EAAfA,2DARa;AASbj2B,SAAO,EAAPA,mDAAOA;AATM,CAAf,E;;;;;;;;;;;;ACVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;AASe,yEAAS12C,GAAT,EAAc4rD,MAAd,EAAsB;AACnC,MAAM3rD,SAAS,GAAGD,GAAG,CAACE,MAAtB;;AAEA,MAAI0rD,MAAM,IAAIA,MAAM,CAACE,YAAP,KAAwB,IAAtC,EAA4C;AAC1C,QAAMgiB,UAAU,GAAG;AACjB/nC,eAAS,EAAE6lB,MAAM,CAAC7lB,SADD;AAEjBwmB,iBAAW,EAAEX,MAAM,CAACE;AAFH,KAAnB;;AAKAiiB,gBAAY,CAACnwE,IAAb,CAAkB,IAAlB,EAAwBqC,SAAxB,EAAmC6tE,UAAnC;AACD,GAPD,MAOO;AACL,QAAME,kBAAkB,GAAG,IAAIxD,8DAAJ,CAAuBvqE,SAAvB,EAAkC,KAAK6B,IAAvC,CAA3B;AACA,QAAMmsE,UAAU,GAAGD,kBAAkB,CAACE,QAAnB,EAAnB;;AAEA,QAAID,UAAJ,EAAgB;AACdE,kBAAY,CAACvwE,IAAb,CAAkB,IAAlB,EAAwBqC,SAAxB,EAAmCguE,UAAnC;AACD;AACF;AACF;AAED;;;;;;;;;;AASA,SAASF,YAAT,CAAsB9tE,SAAtB,EAAiC6tE,UAAjC,EAA6C;AAC3C,MAAMzlE,QAAQ,GAAG5H,kFAAY,CAACR,SAAS,CAACpI,OAAX,EAAoB,KAAKiK,IAAzB,CAA7B;;AAEA,MAAIuG,QAAQ,KAAK/Q,SAAjB,EAA4B;AAC1B;AACD;;AAED,MAAM82E,YAAY,GAAGN,UAAU,CAACvhB,WAAhC;AACA,MAAMxmB,SAAS,GAAG+nC,UAAU,CAAC/nC,SAA7B,CAR2C,CAU3C;;AACA,MAAMnhC,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcmhC,SAAd,CAAb;AAEA,MAAMvuC,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B,CAb2C,CAe3C;;AACA,MAAIA,MAAM,CAAC6D,MAAP,IAAiB,CAArB,EAAwB;AACtB;AACD,GAlB0C,CAoB3C;;;AACA,MAAI+yE,YAAY,KAAK52E,MAAM,CAAC6D,MAAP,GAAgB,CAArC,EAAwC;AACtC7D,UAAM,CAAC42E,YAAY,GAAG,CAAhB,CAAN,CAAyBzyE,KAAzB,CAA+B0oC,GAA/B;AACA7sC,UAAM,CAAC42E,YAAY,GAAG,CAAhB,CAAN,CAAyBzyE,KAAzB,CAA+BwV,IAA/B,CAAoC3Z,MAAM,CAAC,CAAD,CAA1C;AACD,GAHD,MAGO,IAAI42E,YAAY,KAAK,CAArB,EAAwB;AAC7B52E,UAAM,CAACA,MAAM,CAAC6D,MAAP,GAAgB,CAAjB,CAAN,CAA0BM,KAA1B,CAAgC0oC,GAAhC;AACA7sC,UAAM,CAACA,MAAM,CAAC6D,MAAP,GAAgB,CAAjB,CAAN,CAA0BM,KAA1B,CAAgCwV,IAAhC,CAAqC3Z,MAAM,CAAC42E,YAAY,GAAG,CAAhB,CAA3C;AACD,GAHM,MAGA;AACL52E,UAAM,CAAC42E,YAAY,GAAG,CAAhB,CAAN,CAAyBzyE,KAAzB,CAA+B0oC,GAA/B;AACA7sC,UAAM,CAAC42E,YAAY,GAAG,CAAhB,CAAN,CAAyBzyE,KAAzB,CAA+BwV,IAA/B,CAAoC3Z,MAAM,CAAC42E,YAAY,GAAG,CAAhB,CAA1C;AACD,GA9B0C,CAgC3C;;;AACA52E,QAAM,CAACw7B,MAAP,CAAco7C,YAAd,EAA4B,CAA5B;AAEAxpE,MAAI,CAAC6C,WAAL,GAAmB,IAAnB;AACA7C,MAAI,CAAClK,MAAL,GAAc,IAAd;AACAkK,MAAI,CAAC4C,SAAL,GAAiB,IAAjB,CArC2C,CAuC3C;;AACAvP,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC9B,SAAS,CAACpI,OAA3C;AACD;AAED;;;;;;;;;;;AASA,SAASs2E,YAAT,CAAsBluE,SAAtB,EAAiCguE,UAAjC,EAA6C;AAC3C,MAAM5lE,QAAQ,GAAG5H,kFAAY,CAACR,SAAS,CAACpI,OAAX,EAAoB,KAAKiK,IAAzB,CAA7B;;AAEA,MAAIuG,QAAQ,KAAK/Q,SAAjB,EAA4B;AAC1B;AACD,GAL0C,CAO3C;;;AACA,MAAMsN,IAAI,GAAGyD,QAAQ,CAACzD,IAAT,CAAcqpE,UAAU,CAACloC,SAAzB,CAAb;;AAEA,MAAM6P,WAAW,GAAGy4B,kBAAkB,CAACJ,UAAD,CAAtC;;AAEA,MAAIr4B,WAAW,KAAKlkB,QAApB,EAA8B;AAC5B;AACD;;AAED,MAAM+kB,UAAU,GAAG,IAAI1E,8DAAJ,CAAuB9xC,SAAS,CAACkD,aAAV,CAAwB2C,KAA/C,CAAnB;AAEA,MAAMtO,MAAM,GAAGoN,IAAI,CAAC/K,OAAL,CAAarC,MAA5B,CAlB2C,CAoB3C;;AACAA,QAAM,CAACw7B,MAAP,CAAc4iB,WAAd,EAA2B,CAA3B,EAA8Ba,UAA9B,EArB2C,CAuB3C;;AACAj/C,QAAM,CAACo+C,WAAW,GAAG,CAAf,CAAN,CAAwBj6C,KAAxB,CAA8B0oC,GAA9B;AACA7sC,QAAM,CAACo+C,WAAW,GAAG,CAAf,CAAN,CAAwBj6C,KAAxB,CAA8BwV,IAA9B,CAAmClR,SAAS,CAACkD,aAAV,CAAwB2C,KAA3D;AAEA4wC,6DAAO,CAACl/C,MAAD,EAASo+C,WAAT,CAAP;AAEAhxC,MAAI,CAAClK,MAAL,GAAc,IAAd;AACAkK,MAAI,CAAC4C,SAAL,GAAiB,IAAjB,CA9B2C,CAgC3C;;AACA5C,MAAI,CAAC6C,WAAL,GAAmB,IAAnB;AACAxP,6DAAQ,CAACC,WAAT,CAAqB6J,WAArB,CAAiC9B,SAAS,CAACpI,OAA3C;AACD;AAED;;;;;;;;;;AAQA,SAASw2E,kBAAT,CAA4BJ,UAA5B,EAAwC;AACtC;AACA,MAAM1D,gBAAgB,GAAG0D,UAAU,CAAC1D,gBAApC;AACA,MAAI30B,WAAW,GAAGlkB,QAAlB;AACA,MAAM48C,iBAAiB,GAAG/D,gBAAgB,CAAC3mE,QAAjB,CAA0B,CAA1B,CAA1B;;AAEA,OAAK,IAAIvJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkwE,gBAAgB,CAAClvE,MAArC,EAA6ChB,CAAC,EAA9C,EAAkD;AAChD,QAAMsE,KAAK,GAAG4rE,gBAAgB,CAAClwE,CAAD,CAA9B;;AAEA,QAAIsE,KAAK,KAAK,CAAV,IAAeA,KAAK,GAAGi3C,WAA3B,EAAwC;AACtCA,iBAAW,GAAGj3C,KAAd;AACD;AACF,GAZqC,CActC;;;AACA,MAAI2vE,iBAAiB,IAAI14B,WAAW,KAAK,CAAzC,EAA4C;AAC1CA,eAAW,GAAG,CAAd;AACD,GAjBqC,CAmBtC;;;AACAA,aAAW;AAEX,SAAOA,WAAP;AACD,C;;;;;;;;;;;;ACpKD;AAAA;;;;;;;;;;;AAWe,yEAASw2B,WAAT,EAAsBnC,QAAtB,EAAgC;AAC7C,MAAIsE,KAAK,GAAG,KAAZ,CAD6C,CAG7C;;AACA,MAAI39D,CAAC,GAAGw7D,WAAW,CAAC/wE,MAAZ,GAAqB,CAA7B,CAJ6C,CAIb;;AAEhC,OAAK,IAAIhB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+xE,WAAW,CAAC/wE,MAAhC,EAAwChB,CAAC,EAAzC,EAA6C;AAC3C,QAAIm0E,wBAAwB,CAACvE,QAAD,EAAWmC,WAAW,CAAC/xE,CAAD,CAAtB,EAA2B+xE,WAAW,CAACx7D,CAAD,CAAtC,CAA5B,EAAwE;AACtE29D,WAAK,GAAG,CAACA,KAAT;AACD;;AAED39D,KAAC,GAAGvW,CAAJ,CAL2C,CAKpC;AACR;;AAED,SAAOk0E,KAAP;AACD;AAED;;;;;;;;;;;;AAWA,SAASE,WAAT,CAAqBC,EAArB,EAAyBC,EAAzB,EAA6BC,EAA7B,EAAiC;AAC/B,MAAKD,EAAE,GAAGD,EAAL,IAAWA,EAAE,GAAGE,EAAjB,IAAyBA,EAAE,GAAGF,EAAL,IAAWA,EAAE,GAAGC,EAA7C,EAAkD;AAChD,WAAO,IAAP;AACD;;AAED,SAAO,KAAP;AACD;AAED;;;;;;;;;;;;;AAWA,SAASE,kBAAT,CAA4B5yE,KAA5B,EAAmC6yE,GAAnC,EAAwCC,GAAxC,EAA6C;AAC3C;AACA,MAAID,GAAG,CAAC33E,CAAJ,GAAQ8E,KAAK,CAAC9E,CAAd,IAAmB43E,GAAG,CAAC53E,CAAJ,GAAQ8E,KAAK,CAAC9E,CAArC,EAAwC;AACtC,WAAO,IAAP;AACD,GAJ0C,CAM3C;;;AACA,MAAI23E,GAAG,CAAC33E,CAAJ,KAAU43E,GAAG,CAAC53E,CAAlB,EAAqB;AACnB,WAAO8E,KAAK,CAAC9E,CAAN,GAAU23E,GAAG,CAAC33E,CAArB;AACD,GAT0C,CAW3C;;;AACA,MAAI23E,GAAG,CAAC33E,CAAJ,GAAQ43E,GAAG,CAAC53E,CAAhB,EAAmB;AACjB,QAAM63E,MAAM,GAAGF,GAAf;AAEAA,OAAG,GAAGC,GAAN;AACAA,OAAG,GAAGC,MAAN;AACD;;AACD,MAAMC,OAAO,GAAGC,kBAAkB,CAACjzE,KAAD,EAAQ6yE,GAAR,EAAaC,GAAb,CAAlC,CAlB2C,CAoB3C;AACA;;AACA,MACE/3E,IAAI,CAACm4E,IAAL,CAAUF,OAAO,CAACG,QAAlB,IAA8BnzE,KAAK,CAAC/E,CAApC,GACAF,IAAI,CAACm4E,IAAL,CAAUF,OAAO,CAACG,QAAlB,IAA8BH,OAAO,CAACtoD,KAFxC,EAGE;AACA,WAAO,IAAP;AACD;;AAED,SAAO,KAAP;AACD;AAED;;;;;;;;;;;;;AAWA,SAASuoD,kBAAT,CAA4BjzE,KAA5B,EAAmC6yE,GAAnC,EAAwCC,GAAxC,EAA6C;AAC3C,MAAMM,IAAI,GAAG,CAACN,GAAG,CAAC73E,CAAJ,GAAQ43E,GAAG,CAAC53E,CAAb,KAAmB63E,GAAG,CAAC53E,CAAJ,GAAQ23E,GAAG,CAAC33E,CAA/B,CAAb;AACA,MAAMm4E,EAAE,GAAG;AACT3oD,SAAK,EAAEmoD,GAAG,CAAC53E,CAAJ,GAAQm4E,IAAI,IAAIpzE,KAAK,CAAC9E,CAAN,GAAU23E,GAAG,CAAC33E,CAAlB,CADV;AAETi4E,YAAQ,EAAEC;AAFD,GAAX;AAKA,SAAOC,EAAP;AACD;AAED;;;;;;;;;;;;;AAWA,SAASd,wBAAT,CAAkCvyE,KAAlC,EAAyCszE,OAAzC,EAAkDC,OAAlD,EAA2D;AACzD,MACEf,WAAW,CAACxyE,KAAK,CAAC/E,CAAP,EAAUq4E,OAAO,CAACr4E,CAAlB,EAAqBs4E,OAAO,CAACt4E,CAA7B,CAAX,IACA23E,kBAAkB,CAAC5yE,KAAD,EAAQszE,OAAR,EAAiBC,OAAjB,CAFpB,EAGE;AACA,WAAO,IAAP;AACD;;AAED,SAAO,KAAP;AACD,C;;;;;;;;;;;;ACnID;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;CAGA;AACA;;AACe,SAASjqE,aAAT,CACb1N,OADa,EAEbgM,OAFa,EAIb;AAAA,MADAyQ,eACA,uEADkB,OAClB;AACA,MAAIlU,KAAJ;;AAEA,MAAIkU,eAAe,KAAK,OAAxB,EAAiC;AAC/BlU,SAAK,GAAGuF,+EAAwB,CAAC9N,OAAD,EAAUyL,8CAAO,CAACkF,UAAR,EAAV,CAAhC;AACApI,SAAK,GAAGA,KAAK,CAACC,MAAN,CAAa,UAAAC,IAAI;AAAA,aAAIA,IAAI,CAAClJ,OAAL,CAAaiS,aAAjB;AAAA,KAAjB,CAAR;AACD,GAHD,MAGO;AACL;AACAjJ,SAAK,GAAGuF,+EAAwB,CAAC9N,OAAD,EAAUyL,8CAAO,CAACC,UAAR,EAAV,CAAhC,CAFK,CAIL;;AACAnD,SAAK,GAAGA,KAAK,CAACC,MAAN,CACN,UAAAC,IAAI;AAAA,aACFmD,KAAK,CAACC,OAAN,CAAcpD,IAAI,CAAClJ,OAAL,CAAauM,eAA3B,KACAE,OADA,IAEAvD,IAAI,CAAClJ,OAAL,CAAauM,eAAb,CAA6BC,QAA7B,CAAsCC,OAAtC,CAFA,IAGAvD,IAAI,CAAClJ,OAAL,CAAa0M,aAJX;AAAA,KADE,CAAR;;AAQA,QAAI1I,4CAAK,CAAC2I,qBAAV,EAAiC;AAC/B3D,WAAK,GAAG4D,0FAAoC,CAAC5D,KAAD,CAA5C;AACD;AACF;;AAED,MAAIA,KAAK,CAAC/E,MAAN,KAAiB,CAArB,EAAwB;AACtB;AACD;;AAED,SAAO+E,KAAK,CAAC,CAAD,CAAZ;AACD,C;;;;;;;;;;;;ACvCD;AAAA;AAAA;AAAA;AAEA;;;;;;;;AAOe,SAASmmD,eAAT,CAAyBF,WAAzB,EAAsCC,SAAtC,EAAiD;AAAA,MACtD94C,QADsD,GACzCvV,wDAAQ,CAAC+D,eAAT,CAAyBC,KADgB,CACtDuR,QADsD;AAE9D,MAAMzV,MAAM,GAAGyV,QAAQ,CAAC64C,WAAD,EAAcC,SAAd,CAAvB;AAEA,SAAO;AACLlqD,QAAI,EAAEpF,IAAI,CAACkY,KAAL,CAAWlY,IAAI,CAACwC,GAAL,CAAS6sD,WAAW,CAAClvD,CAAZ,GAAgBY,MAAzB,EAAiCuuD,SAAS,CAACnvD,CAA3C,CAAX,CADD;AAELkF,OAAG,EAAErF,IAAI,CAACkY,KAAL,CAAWlY,IAAI,CAACwC,GAAL,CAAS6sD,WAAW,CAACnvD,CAAZ,GAAgBa,MAAzB,EAAiCuuD,SAAS,CAACpvD,CAA3C,CAAX,CAFA;AAGLyB,SAAK,EAAEZ,MAAM,GAAG,CAHX;AAILc,UAAM,EAAEd,MAAM,GAAG;AAJZ,GAAP;AAMD,C;;;;;;;;;;;;ACnBD;AAAA;;;;;;;AAOe,yEAAS4uB,KAAT,EAAgB8oD,YAAhB,EAA8B;AAC3C,SAAO9oD,KAAK,KAAKrvB,SAAV,GAAsBm4E,YAAtB,GAAqC9oD,KAA5C;AACD,C;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AACA;AAEe,SAASzC,eAAT,CAAyBxS,CAAzB,EAA4B;AACzC,MAAMxZ,WAAW,GAAGD,wDAAQ,CAACC,WAA7B;AACA,MAAML,OAAO,GAAG6Z,CAAC,CAACC,aAAlB;AACA,MAAMC,cAAc,GAAG1Z,WAAW,CAAC2Z,iBAAZ,CAA8Bha,OAA9B,CAAvB;;AAEA,MAAI,CAAC+Z,cAAD,IAAmB,CAACA,cAAc,CAAC9L,KAAvC,EAA8C;AAC5C;AACD;;AAED,MAAM4pE,kBAAkB,GAAG7yD,+CAAK,CAACzhB,KAAN,CAAYyK,kBAAvC;AAEA,SAAO;AACL4E,SAAK,EAAEgO,MAAM,CAAChO,KAAP,IAAgBiH,CADlB;AACqB;AAC1B7Z,WAAO,EAAPA,OAFK;AAGLY,YAAQ,EAAEP,WAAW,CAACQ,WAAZ,CAAwBb,OAAxB,CAHL;AAILiO,SAAK,EAAE8L,cAAc,CAAC9L,KAJjB;AAKL3C,iBAAa,EAAE;AACb2C,WAAK,EAAE4pE,kBADM;AAEbjxE,YAAM,EAAEvG,WAAW,CAACC,aAAZ,CAA0BN,OAA1B,EAAmC63E,kBAAnC;AAFK,KALV;AASLC,WAAO,EAAEj+D,CAAC,CAACi+D,OATN;AAULn+D,SAAK,EAAEE,CAAC,CAACF;AAVJ,GAAP;AAYD,C;;;;;;;;;;;;AC1BD;AAAA;AAAA;AAEA;;;;;;;;;;;;;AAYe,yEAAS3Z,OAAT,EAAkBV,CAAlB,EAAqBD,CAArB,EAAwByB,KAAxB,EAA+BE,MAA/B,EAAuC;AACpD,MAAI,CAAChB,OAAL,EAAc;AACZ,UAAM,IAAIs0B,KAAJ,CAAU,uDAAV,CAAN;AACD;;AAEDh1B,GAAC,GAAGH,IAAI,CAACi7B,KAAL,CAAW96B,CAAX,CAAJ;AACAD,GAAC,GAAGF,IAAI,CAACi7B,KAAL,CAAW/6B,CAAX,CAAJ;AACA,MAAM0a,cAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB;AACA,MAAMiO,KAAK,GAAG8L,cAAc,CAAC9L,KAA7B;AACA,MAAM8pE,SAAS,GAAG,EAAlB;AACA,MAAIjxE,KAAK,GAAG,CAAZ;AACA,MAAM2N,SAAS,GAAGxG,KAAK,CAACq9B,YAAN,EAAlB;AACA,MAAI0sC,OAAJ,EAAahgC,GAAb,EAAkBC,MAAlB;;AAEA,MAAIhqC,KAAK,CAACnP,KAAV,EAAiB;AACf,SAAKk5C,GAAG,GAAG,CAAX,EAAcA,GAAG,GAAGh3C,MAApB,EAA4Bg3C,GAAG,EAA/B,EAAmC;AACjC,WAAKC,MAAM,GAAG,CAAd,EAAiBA,MAAM,GAAGn3C,KAA1B,EAAiCm3C,MAAM,EAAvC,EAA2C;AACzC+/B,eAAO,GAAG,CAAC,CAAChgC,GAAG,GAAG34C,CAAP,IAAY4O,KAAK,CAACskB,OAAlB,IAA6B0lB,MAAM,GAAG34C,CAAtC,CAAD,IAA6C,CAAvD;AACA,YAAM24E,GAAG,GAAGxjE,SAAS,CAACujE,OAAD,CAArB;AACA,YAAME,KAAK,GAAGzjE,SAAS,CAACujE,OAAO,GAAG,CAAX,CAAvB;AACA,YAAMG,IAAI,GAAG1jE,SAAS,CAACujE,OAAO,GAAG,CAAX,CAAtB;AAEAD,iBAAS,CAACjxE,KAAK,EAAN,CAAT,GAAqB,SAASmxE,GAAT,GAAe,SAASC,KAAxB,GAAgC,SAASC,IAA9D;AACD;AACF;AACF,GAXD,MAWO;AACL,SAAKngC,GAAG,GAAG,CAAX,EAAcA,GAAG,GAAGh3C,MAApB,EAA4Bg3C,GAAG,EAA/B,EAAmC;AACjC,WAAKC,MAAM,GAAG,CAAd,EAAiBA,MAAM,GAAGn3C,KAA1B,EAAiCm3C,MAAM,EAAvC,EAA2C;AACzC+/B,eAAO,GAAG,CAAChgC,GAAG,GAAG34C,CAAP,IAAY4O,KAAK,CAACskB,OAAlB,IAA6B0lB,MAAM,GAAG34C,CAAtC,CAAV;AACAy4E,iBAAS,CAACjxE,KAAK,EAAN,CAAT,GAAqB2N,SAAS,CAACujE,OAAD,CAAT,GAAqB/pE,KAAK,CAACqrC,KAA3B,GAAmCrrC,KAAK,CAACsrC,SAA9D;AACD;AACF;AACF;;AAED,SAAOw+B,SAAP;AACD,C;;;;;;;;;;;;ACjDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAIK,6BAAJ,C,CAEA;AACA;;AACA,IAAM5iD,uBAAuB,GAAG;AAC9B+iB,SAAO,EAAE,CADqB;AAE9B8/B,IAAE,EAAE;AACF,OAAG,CADD;AAEF,QAAI,CAFF;AAGF9/B,WAAO,EAAE;AAHP,GAF0B;AAO9B+/B,SAAO,EAAE;AACP//B,WAAO,EAAE;AADF,GAPqB;AAU9BggC,OAAK,EAAE;AACL,QAAI,CADC;AAEL,QAAI,CAFC;AAGL,QAAI,CAHC;AAILhgC,WAAO,EAAE;AAJJ,GAVuB;AAgB9BigC,QAAM,EAAE;AACNjgC,WAAO,EAAE;AADH,GAhBsB;AAmB9BkgC,QAAM,EAAE;AACNlgC,WAAO,EAAE;AADH;AAnBsB,CAAhC,C,CAwBA;AACA;AACA;;AAEA;;;;;;;;;AAQA,SAASptB,cAAT,GAA0B;AACxB,MAAMutD,EAAE,GAAG3P,SAAS,CAACwH,SAArB;AACA,MAAIoI,CAAC,GACHD,EAAE,CAAC7J,KAAH,CAAS,8DAAT,KACA,EAFF;AAGA,MAAI+J,GAAJ;;AAEA,MAAI,WAAW/I,IAAX,CAAgB8I,CAAC,CAAC,CAAD,CAAjB,CAAJ,EAA2B;AACzBC,OAAG,GAAG,kBAAkBC,IAAlB,CAAuBH,EAAvB,KAA8B,EAApC;AAEA,wBAAaE,GAAG,CAAC,CAAD,CAAH,IAAU,EAAvB;AACD;;AAED,MAAID,CAAC,CAAC,CAAD,CAAD,KAAS,QAAb,EAAuB;AACrBC,OAAG,GAAGF,EAAE,CAAC7J,KAAH,CAAS,qBAAT,CAAN;;AACA,QAAI+J,GAAG,KAAK,IAAZ,EAAkB;AAChB,aAAOA,GAAG,CACP5nD,KADI,CACE,CADF,EAEJ4+C,IAFI,CAEC,GAFD,EAGJt8C,OAHI,CAGI,KAHJ,EAGW,OAHX,CAAP;AAID;AACF;;AAEDqlD,GAAC,GAAGA,CAAC,CAAC,CAAD,CAAD,GAAO,CAACA,CAAC,CAAC,CAAD,CAAF,EAAOA,CAAC,CAAC,CAAD,CAAR,CAAP,GAAsB,CAAC5P,SAAS,CAAC+P,OAAX,EAAoB/P,SAAS,CAACgQ,UAA9B,EAA0C,IAA1C,CAA1B;;AACA,MAAI,CAACH,GAAG,GAAGF,EAAE,CAAC7J,KAAH,CAAS,iBAAT,CAAP,MAAwC,IAA5C,EAAkD;AAChD8J,KAAC,CAACx9C,MAAF,CAAS,CAAT,EAAY,CAAZ,EAAey9C,GAAG,CAAC,CAAD,CAAlB;AACD;;AAED,SAAOD,CAAC,CAAC/I,IAAF,CAAO,GAAP,CAAP;AACD;AAED;;;;;;;;;;AAQA,SAAS9yC,0BAAT,CAAoCk8C,0BAApC,EAAgE;AAC9DZ,+BAA6B,GAAGY,0BAAhC;AACD;AAED;;;;;;;;;AAOA,SAAS9tD,0BAAT,GAAsC;AACpC,MAAIktD,6BAAJ,EAAmC;AACjC,WAAOA,6BAAP;AACD;;AAED,SAAOntD,8BAA8B,EAArC;AACD;AAED;;;;;;;;;AAOA,SAASA,8BAAT,GAA0C;AACxC,MAAMguD,UAAU,GAAG9tD,cAAc,EAAjC;AACA,MAAM+tD,IAAI,GAAGD,UAAU,CAACjlC,KAAX,CAAiB,GAAjB,CAAb;AACA,MAAMmlC,WAAW,GAAGD,IAAI,CAAC,CAAD,CAAxB;AACA,MAAME,cAAc,GAAGF,IAAI,CAAC,CAAD,CAA3B;AACA,MAAMG,WAAW,GAAG7jD,uBAAuB,CAAC2jD,WAAD,CAA3C;;AAEA,MAAI,CAACE,WAAL,EAAkB;AAChB,WAAO7jD,uBAAuB,CAAC+iB,OAA/B;AACD;;AAED,MAAI,CAAC8gC,WAAW,CAACD,cAAD,CAAhB,EAAkC;AAChC,WAAOC,WAAW,CAAC9gC,OAAnB;AACD;;AAED,SAAO8gC,WAAW,CAACD,cAAD,CAAlB;AACD;AAED;;;;;;;;;AAOA,SAAShuD,cAAT,GAA0B;AACxB,MAAMkuD,OAAO,GAAG,IAAI9J,MAAJ,CACd,+DADc,CAAhB;AAIA,SAAO8J,OAAO,CAACzJ,IAAR,CAAa9G,SAAS,CAACwH,SAAvB,CAAP;AACD;;;;;;;;;;;;;;ACxID;AAAA;AAAA;AAAA;AAEe,SAAS1kD,eAAT,CAAyB5d,KAAzB,EAAgC;AAC7C,MAAMunC,UAAU,GAAGp1C,wDAAQ,CAACC,WAAT,CAAqBgqC,QAArB,CAA8BhN,GAA9B,CACjB,kBADiB,EAEjBpvB,KAAK,CAACgmB,OAFW,CAAnB;;AAKA,MAAIuhB,UAAJ,EAAgB;AACd,WAAO;AACLh/B,qBAAe,EACbg/B,UAAU,CAACh/B,eAAX,IAA8Bg/B,UAAU,CAAC4P,oBAFtC;AAGLD,qBAAe,EACb3P,UAAU,CAAC/+B,kBAAX,IAAiC++B,UAAU,CAAC6P;AAJzC,KAAP;AAMD;;AAED,SAAO;AACL7uC,mBAAe,EAAEvI,KAAK,CAACuI,eADlB;AAEL2uC,mBAAe,EAAEl3C,KAAK,CAACwI;AAFlB,GAAP;AAID,C;;;;;;;;;;;;ACrBD;AAAA;AAAA;AAEA;;;;;;;;;;;;;AAYe,yEAASzW,OAAT,EAAkBV,CAAlB,EAAqBD,CAArB,EAAwByB,KAAxB,EAA+BE,MAA/B,EAAuC;AACpD,MAAI,CAAChB,OAAL,EAAc;AACZ,UAAM,IAAIs0B,KAAJ,CAAU,uDAAV,CAAN;AACD;;AAEDh1B,GAAC,GAAGH,IAAI,CAACi7B,KAAL,CAAW96B,CAAX,CAAJ;AACAD,GAAC,GAAGF,IAAI,CAACi7B,KAAL,CAAW/6B,CAAX,CAAJ;AACA,MAAM0a,cAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB;AACA,MAAMu5E,eAAe,GAAG,EAAxB;AACA,MAAIzyE,KAAK,GAAG,CAAZ;AACA,MAAM2N,SAAS,GAAGsF,cAAc,CAAC9L,KAAf,CAAqBq9B,YAArB,EAAlB;AACA,MAAI0sC,OAAJ,EAAahgC,GAAb,EAAkBC,MAAlB;;AAEA,MAAIl+B,cAAc,CAAC9L,KAAf,CAAqBnP,KAAzB,EAAgC;AAC9B,SAAKk5C,GAAG,GAAG,CAAX,EAAcA,GAAG,GAAGh3C,MAApB,EAA4Bg3C,GAAG,EAA/B,EAAmC;AACjC,WAAKC,MAAM,GAAG,CAAd,EAAiBA,MAAM,GAAGn3C,KAA1B,EAAiCm3C,MAAM,EAAvC,EAA2C;AACzC+/B,eAAO,GAAG,CAAC,CAAChgC,GAAG,GAAG34C,CAAP,IAAY0a,cAAc,CAAC9L,KAAf,CAAqBskB,OAAjC,IAA4C0lB,MAAM,GAAG34C,CAArD,CAAD,IAA4D,CAAtE;AACA,YAAM24E,GAAG,GAAGxjE,SAAS,CAACujE,OAAD,CAArB;AACA,YAAME,KAAK,GAAGzjE,SAAS,CAACujE,OAAO,GAAG,CAAX,CAAvB;AACA,YAAMG,IAAI,GAAG1jE,SAAS,CAACujE,OAAO,GAAG,CAAX,CAAtB;AACA,YAAM5vC,KAAK,GAAG3zB,SAAS,CAACujE,OAAO,GAAG,CAAX,CAAvB;AAEAuB,uBAAe,CAACzyE,KAAK,EAAN,CAAf,GAA2BmxE,GAA3B;AACAsB,uBAAe,CAACzyE,KAAK,EAAN,CAAf,GAA2BoxE,KAA3B;AACAqB,uBAAe,CAACzyE,KAAK,EAAN,CAAf,GAA2BqxE,IAA3B;AACAoB,uBAAe,CAACzyE,KAAK,EAAN,CAAf,GAA2BshC,KAA3B;AACD;AACF;AACF;;AAED,SAAOmxC,eAAP;AACD,C;;;;;;;;;;;;AC7CD;AAAA;AAAA;;;;;;;;AAQe,SAASlvD,mBAAT,CAA6BzpB,QAA7B,EAAuCoB,OAAvC,EAAgD;AAC7D,MAAMw3E,OAAO,GAAGC,iBAAiB,CAACz3E,OAAD,CAAjC;;AACA,MAAM03E,OAAO,GAAG,CAACF,OAAO,CAACj1E,IAAR,CAAajF,CAAb,GAAiBk6E,OAAO,CAACzhE,KAAR,CAAczY,CAAhC,IAAqC,CAArD;AACA,MAAMq6E,OAAO,GAAG,CAACH,OAAO,CAACh1E,GAAR,CAAYnF,CAAZ,GAAgBm6E,OAAO,CAAC5hE,MAAR,CAAevY,CAAhC,IAAqC,CAArD;AACA,MAAMoF,OAAO,GAAG,EAAhB;;AAEA,MAAI7D,QAAQ,CAACQ,QAAT,IAAqB,CAArB,IAA0BR,QAAQ,CAACQ,QAAT,GAAoB,EAAlD,EAAsD;AACpDqD,WAAO,CAACnF,CAAR,GAAYsB,QAAQ,CAACgH,KAAT,GAAiB4xE,OAAO,CAACj1E,IAAR,CAAajF,CAA9B,GAAkCk6E,OAAO,CAACzhE,KAAR,CAAczY,CAA5D;AACAmF,WAAO,CAACpF,CAAR,GAAYs6E,OAAZ;AACD;;AACD,MAAI/4E,QAAQ,CAACQ,QAAT,IAAqB,EAArB,IAA2BR,QAAQ,CAACQ,QAAT,GAAoB,GAAnD,EAAwD;AACtDqD,WAAO,CAACnF,CAAR,GAAYo6E,OAAZ;AACAj1E,WAAO,CAACpF,CAAR,GAAYuB,QAAQ,CAACiH,KAAT,GAAiB2xE,OAAO,CAAC5hE,MAAR,CAAevY,CAAhC,GAAoCm6E,OAAO,CAACh1E,GAAR,CAAYnF,CAA5D;AACD;;AACD,MAAIuB,QAAQ,CAACQ,QAAT,IAAqB,GAArB,IAA4BR,QAAQ,CAACQ,QAAT,GAAoB,GAApD,EAAyD;AACvDqD,WAAO,CAACnF,CAAR,GAAYsB,QAAQ,CAACgH,KAAT,GAAiB4xE,OAAO,CAACzhE,KAAR,CAAczY,CAA/B,GAAmCk6E,OAAO,CAACj1E,IAAR,CAAajF,CAA5D;AACAmF,WAAO,CAACpF,CAAR,GAAYs6E,OAAZ;AACD;;AACD,MAAI/4E,QAAQ,CAACQ,QAAT,IAAqB,GAArB,IAA4BR,QAAQ,CAACQ,QAAT,GAAoB,GAApD,EAAyD;AACvDqD,WAAO,CAACnF,CAAR,GAAYo6E,OAAZ;AACAj1E,WAAO,CAACpF,CAAR,GAAYuB,QAAQ,CAACiH,KAAT,GAAiB2xE,OAAO,CAACh1E,GAAR,CAAYnF,CAA7B,GAAiCm6E,OAAO,CAAC5hE,MAAR,CAAevY,CAA5D;AACD;;AAED,SAAOoF,OAAP;AACD;AAED;;;;;;;AAMA,SAASg1E,iBAAT,CAA2Bz3E,OAA3B,EAAoC;AAClC,MAAM43E,kBAAkB,GAAG,CAAC53E,OAAO,CAACpD,KAAT,EAAgBoD,OAAO,CAACnD,GAAxB,EAA6Bu8B,IAA7B,CAAkCy+C,SAAlC,CAA3B;AACA,MAAMC,kBAAkB,GAAG,CAAC93E,OAAO,CAACpD,KAAT,EAAgBoD,OAAO,CAACnD,GAAxB,EAA6Bu8B,IAA7B,CAAkC2+C,SAAlC,CAA3B;AACA,MAAMx1E,IAAI,GAAGq1E,kBAAkB,CAAC,CAAD,CAA/B;AACA,MAAM7hE,KAAK,GAAG6hE,kBAAkB,CAACA,kBAAkB,CAACp2E,MAAnB,GAA4B,CAA7B,CAAhC;AACA,MAAMgB,GAAG,GAAGs1E,kBAAkB,CAAC,CAAD,CAA9B;AACA,MAAMliE,MAAM,GAAGkiE,kBAAkB,CAACA,kBAAkB,CAACt2E,MAAnB,GAA4B,CAA7B,CAAjC;AAEA,SAAO;AACLgB,OAAG,EAAHA,GADK;AAELD,QAAI,EAAJA,IAFK;AAGLqT,UAAM,EAANA,MAHK;AAILG,SAAK,EAALA;AAJK,GAAP;;AAOA,WAAS8hE,SAAT,CAAmBx+C,CAAnB,EAAsBC,CAAtB,EAAyB;AACvB,WAAOD,CAAC,CAAC/7B,CAAF,GAAMg8B,CAAC,CAACh8B,CAAR,GAAY,CAAC,CAAb,GAAiB,CAAxB;AACD;;AACD,WAASy6E,SAAT,CAAmB1+C,CAAnB,EAAsBC,CAAtB,EAAyB;AACvB,WAAOD,CAAC,CAACh8B,CAAF,GAAMi8B,CAAC,CAACj8B,CAAR,GAAY,CAAC,CAAb,GAAiB,CAAxB;AACD;AACF,C;;;;;;;;;;;;AC7DD;AAAA;;;;;;;;AAQA,IAAMysB,aAAa,GAAG,SAAhBA,aAAgB,CAAAw7B,GAAG;AAAA,SACvBhlD,MAAM,CAACC,IAAP,CAAY+kD,GAAZ,EAAiB9jD,MAAjB,KAA4B,CAA5B,IAAiC8jD,GAAG,CAAC5J,WAAJ,KAAoBp7C,MAD9B;AAAA,CAAzB;;AAGewpB,4EAAf,E;;;;;;;;;;;;;;;;;ACXA;;;;;;;;;;;;;;;;;;;;;;;AAuBA,SAASC,QAAT,CAAkB+C,KAAlB,EAAyB;AACvB,MAAMrf,IAAI,GAAG,qEAAOqf,KAAV,CAAV;;AAEA,SAAOA,KAAK,KAAK,IAAV,KAAmBrf,IAAI,KAAK,QAAT,IAAqBA,IAAI,KAAK,UAAjD,CAAP;AACD;;AAEcsc,uEAAf,E;;;;;;;;;;;;AC7BA;AAAA;AAAA;;;;;;;AAOe,SAASC,cAAT,OAAkCzX,IAAlC,EAAwCD,IAAxC,EAA8C;AAAA,MAApBhV,CAAoB,QAApBA,CAAoB;AAAA,MAAjBD,CAAiB,QAAjBA,CAAiB;AAC3D,SAAOC,CAAC,GAAGgV,IAAJ,IAAYhV,CAAC,IAAI,CAAjB,IAAsBD,CAAC,GAAGkV,IAA1B,IAAkClV,CAAC,IAAI,CAA9C;AACD,C;;;;;;;;;;;;ACTD;AAAA;AAAA;;;;;;;;;;;AAWe,SAAS4sB,gBAAT,CAA0B7nB,KAA1B,EAAiC41E,EAAjC,EAAqC;AAClD,MAAM16E,CAAC,GAAG8E,KAAK,CAAC,CAAD,CAAf;AACA,MAAM/E,CAAC,GAAG+E,KAAK,CAAC,CAAD,CAAf;AACA,MAAIwjE,MAAM,GAAG,KAAb;;AAEA,OAAK,IAAIplE,CAAC,GAAG,CAAR,EAAWuW,CAAC,GAAGihE,EAAE,CAACx2E,MAAH,GAAY,CAAhC,EAAmChB,CAAC,GAAGw3E,EAAE,CAACx2E,MAA1C,EAAkDuV,CAAC,GAAGvW,CAAC,EAAvD,EAA2D;AACzD,QAAMy3E,EAAE,GAAGD,EAAE,CAACx3E,CAAD,CAAF,CAAM,CAAN,CAAX;AACA,QAAM03E,EAAE,GAAGF,EAAE,CAACx3E,CAAD,CAAF,CAAM,CAAN,CAAX;AAEA,QAAM23E,EAAE,GAAGH,EAAE,CAACjhE,CAAD,CAAF,CAAM,CAAN,CAAX;AACA,QAAMqhE,EAAE,GAAGJ,EAAE,CAACjhE,CAAD,CAAF,CAAM,CAAN,CAAX;AAEA,QAAMshE,SAAS,GACbH,EAAE,GAAG76E,CAAL,KAAW+6E,EAAE,GAAG/6E,CAAhB,IAAqBC,CAAC,GAAI,CAAC66E,EAAE,GAAGF,EAAN,KAAa56E,CAAC,GAAG66E,EAAjB,CAAD,IAA0BE,EAAE,GAAGF,EAA/B,IAAqCD,EADhE;;AAGA,QAAII,SAAJ,EAAe;AACbzS,YAAM,GAAG,CAACA,MAAV;AACD;AACF;;AAED,SAAOA,MAAP;AACD,C;;;;;;;;;;;;AChCD;AAAA;AAAA;AAEA;;;;;;;;;;;;AAWe,yEAAS5nE,OAAT,EAAkBpB,KAAlB,EAAyBC,GAAzB,EAA8BwM,MAA9B,EAAsC;AACnD,MAAMhL,WAAW,GAAGD,2DAAQ,CAACC,WAA7B;AAEA,MAAM26D,WAAW,GAAG;AAClBp8D,SAAK,EAAEyB,WAAW,CAACC,aAAZ,CAA0BN,OAA1B,EAAmCpB,KAAnC,CADW;AAElBC,OAAG,EAAEwB,WAAW,CAACC,aAAZ,CAA0BN,OAA1B,EAAmCnB,GAAnC;AAFa,GAApB;AAKA,SAAOuB,2DAAQ,CAAC+D,eAAT,CAAyB62D,WAAzB,CAAqCxD,eAArC,CACLwD,WADK,EAEL3vD,MAFK,CAAP;AAID,C;;;;;;;;;;;;ACzBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,IAAMivE,UAAU,GAAG,kBAAnB;AACA,IAAMC,UAAU,GAAGnK,kEAAQ,CAACkK,UAAD,CAA3B,C,CAEA;;AACA,IAAME,OAAO,GAAGnK,aAAA,KAAyB,aAAzC,C,CAEA;;AACA,IAAImK,OAAO,IAAI,CAACD,UAAU,CAACt/C,OAA3B,EAAoC;AAClC;AACA01C,SAAO,CAAChnE,GAAR,CACE,qBADF,EAEE,oEAFF,EAFkC,CAOlC;;AACAgnE,SAAO,CAACuI,IAAR,CACE,iFADF,EAEE,0DAFF,EAGE,EAHF;AAKD;AAED;;;;;;AAKO,IAAMxvE,SAAS,GAAG,SAAZA,SAAY,CAAA+wE,KAAK,EAAI;AAChC,MAAM9wE,GAAG,GAAG4wE,UAAU,CAACpL,MAAX,CAAkBsL,KAAlB,CAAZ;AAEA,SAAO;AACL9wE,OAAG,EAAHA,GADK;AAEL;AACAilB,QAAI,EAAE4rD,OAAO,GAAG7J,OAAO,CAAC/hD,IAAR,CAAa5jB,IAAb,CAAkB2lE,OAAlB,CAAH,GAAgChnE,GAHxC;AAIL;AACAkrB,SAAK,EAAE87C,OAAO,CAAC97C,KAAR,CAAc7pB,IAAd,CAAmB2lE,OAAnB;AALF,GAAP;AAOD,CAVM;AAYP;;;;;;AAKO,IAAMxnE,MAAM,GAAG,SAATA,MAAS;AAAA,MAACsxE,KAAD,iFAAYH,UAAZ;AAAA,SAA+BlK,0DAAQ,CAACjnE,MAAT,CAAgBsxE,KAAhB,CAA/B;AAAA,CAAf;AAEP;;;;;;AAKO,IAAMlxE,OAAO,GAAG,SAAVA,OAAU;AAAA,SAAM6mE,0DAAQ,CAAC7mE,OAAT,EAAN;AAAA,CAAhB,C;;;;;;;;;;;;ACrDP;AAAA;;;;;;;;;;AAUe,yEAASvJ,OAAT,EAAkB06E,mBAAlB,EAAuC;AACpD16E,SAAO,CAAC0uC,KAAR,CAAcisC,gBAAd,GAAiC,MAAjC;AACA36E,SAAO,CAAC0uC,KAAR,CAAcksC,kBAAd,GAAmC,MAAnC;AACA56E,SAAO,CAAC0uC,KAAR,CAAcmsC,aAAd,GAA8B,MAA9B;AACA76E,SAAO,CAAC0uC,KAAR,CAAcosC,YAAd,GAA6B,MAA7B;AACA96E,SAAO,CAAC0uC,KAAR,CAAcqsC,WAAd,GAA4B,MAA5B;AACA/6E,SAAO,CAAC0uC,KAAR,CAAcssC,eAAd,GAAgC,MAAhC;AACAh7E,SAAO,CAAC0uC,KAAR,CAAcusC,UAAd,GAA2B,MAA3B;AAEAj7E,SAAO,CAACk7E,YAAR,GAAuB,IAAvB;;AACAl7E,SAAO,CAACm7E,aAAR,GAAwB;AAAA,WAAM,KAAN;AAAA,GAAxB;;AAEA,MAAIT,mBAAmB,KAAK,IAA5B,EAAkC;AAChC16E,WAAO,CAAC0uC,KAAR,CAAc0sC,aAAd,GAA8B,MAA9B;AACD;AACF,C;;;;;;;;;;;;ACzBD;AAAA;;;;;;;;;AASe,yEAAS97E,CAAT,EAAY;AACzB,MAAM+7E,KAAK,GAAG/7E,CAAC,CAACwG,QAAF,GAAakuC,KAAb,CAAmB,GAAnB,CAAd;AAEAqnC,OAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAL,CAAS/nD,OAAT,CAAiB,uBAAjB,EAA0C,GAA1C,CAAX;AAEA,SAAO+nD,KAAK,CAACzL,IAAN,CAAW,GAAX,CAAP;AACD,C;;;;;;;;;;;;ACfD;AAAA;AAAA;AAEA;;;;;;;;;;AASe,yEAASltE,MAAT,EAAiB2I,MAAjB,EAAyB;AACtC,MAAI,CAAC3I,MAAM,CAACwB,WAAZ,EAAyB;AACvB;AACD;;AAED,SAAO9D,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+B0oB,UAA/B,CAA0CzhB,MAA1C,EAAkD3I,MAAM,CAACwB,WAAzD,CAAP;AACD,C;;;;;;;;;;;;ACjBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;;;;;;;;;;AASO,SAASymB,+BAAT,CAAyCgtB,YAAzC,EAAuDnC,UAAvD,EAAmE;AACxE,MAAMsC,UAAU,GAAGtsB,yEAAgB,CAACgqB,UAAU,CAACsC,UAAZ,CAAnC;AACA,MAAMC,aAAa,GAAGvsB,yEAAgB,CAACgqB,UAAU,CAACuC,aAAZ,CAAtC;AACA,MAAMrM,oBAAoB,GAAGlgB,yEAAgB,CAC3CgqB,UAAU,CAAC9J,oBADgC,CAA7C;AAGA,MAAMtnC,KAAK,GAAGuzC,YAAY,CAACrE,KAAb,GAAqBC,GAArB,CAAyB7H,oBAAzB,CAAd;AACA,MAAMpsC,CAAC,GAAGw4C,UAAU,CAACM,GAAX,CAAeh0C,KAAf,IAAwBoxC,UAAU,CAAC/+B,kBAA7C;AACA,MAAMpX,CAAC,GAAG04C,aAAa,CAACK,GAAd,CAAkBh0C,KAAlB,IAA2BoxC,UAAU,CAACh/B,eAAhD;AAEA,SAAO;AACLlX,KAAC,EAADA,CADK;AAELD,KAAC,EAADA;AAFK,GAAP;AAID,C,CAED;;AACA;;;;;;;;;;AASO,SAASurB,wBAAT,CAAkC0wD,UAAlC,EAA8C9lC,UAA9C,EAA0D;AAC/D,MAAMsC,UAAU,GAAGtsB,yEAAgB,CAACgqB,UAAU,CAACsC,UAAZ,CAAnC;AACA,MAAMC,aAAa,GAAGvsB,yEAAgB,CAACgqB,UAAU,CAACuC,aAAZ,CAAtC;AACA,MAAMrM,oBAAoB,GAAGlgB,yEAAgB,CAC3CgqB,UAAU,CAAC9J,oBADgC,CAA7C;AAIA,MAAMpsC,CAAC,GAAGw4C,UAAU,CAACxE,KAAX,GAAmBioC,cAAnB,CAAkCD,UAAU,CAACh8E,CAA7C,CAAV;AAEAA,GAAC,CAACi8E,cAAF,CAAiB/lC,UAAU,CAAC/+B,kBAA5B;AACA,MAAMpX,CAAC,GAAG04C,aAAa,CAACzE,KAAd,GAAsBioC,cAAtB,CAAqCD,UAAU,CAACj8E,CAAhD,CAAV;AAEAA,GAAC,CAACk8E,cAAF,CAAiB/lC,UAAU,CAACh/B,eAA5B;AACA,MAAMmhC,YAAY,GAAGr4C,CAAC,CAACwgB,GAAF,CAAMzgB,CAAN,CAArB;AAEAs4C,cAAY,CAAC73B,GAAb,CAAiB4rB,oBAAjB;AAEA,SAAOiM,YAAP;AACD;AAED;;;;;;;;;AAQA,SAAS6jC,0BAAT,CAAoChmC,UAApC,EAAgD;AAC9C;AACA,MAAMv9B,OAAO,GAAG2S,wBAAwB,CACtC;AACEtrB,KAAC,EAAE,CADL;AAEED,KAAC,EAAE;AAFL,GADsC,EAKtCm2C,UALsC,CAAxC;AAOA,MAAMr9B,QAAQ,GAAGyS,wBAAwB,CACvC;AACEtrB,KAAC,EAAEk2C,UAAU,CAACjjB,OADhB;AAEElzB,KAAC,EAAE;AAFL,GADuC,EAKvCm2C,UALuC,CAAzC;AAOA,MAAMn9B,UAAU,GAAGuS,wBAAwB,CACzC;AACEtrB,KAAC,EAAE,CADL;AAEED,KAAC,EAAEm2C,UAAU,CAACjhC;AAFhB,GADyC,EAKzCihC,UALyC,CAA3C;AAOA,MAAMj9B,WAAW,GAAGqS,wBAAwB,CAC1C;AACEtrB,KAAC,EAAEk2C,UAAU,CAACjjB,OADhB;AAEElzB,KAAC,EAAEm2C,UAAU,CAACjhC;AAFhB,GAD0C,EAK1CihC,UAL0C,CAA5C,CAvB8C,CA+B9C;;AACA,MAAM7uC,IAAI,GAAG;AACXnC,OAAG,EAAE,IAAIpE,2DAAQ,CAAC+D,eAAT,CAAyBs3E,KAA7B,CAAmCxjE,OAAnC,EAA4CE,QAA5C,CADM;AAEX5T,QAAI,EAAE,IAAInE,2DAAQ,CAAC+D,eAAT,CAAyBs3E,KAA7B,CAAmCxjE,OAAnC,EAA4CI,UAA5C,CAFK;AAGXN,SAAK,EAAE,IAAI3X,2DAAQ,CAAC+D,eAAT,CAAyBs3E,KAA7B,CAAmCtjE,QAAnC,EAA6CI,WAA7C,CAHI;AAIXX,UAAM,EAAE,IAAIxX,2DAAQ,CAAC+D,eAAT,CAAyBs3E,KAA7B,CAAmCpjE,UAAnC,EAA+CE,WAA/C;AAJG,GAAb;AAOA,SAAO5R,IAAP;AACD;AAED;;;;;;;;;;;;AAUA,SAAS+0E,yBAAT,CAAmC33E,IAAnC,EAAyC4C,IAAzC,EAA+C;AAC7C,MAAMg1E,aAAa,GAAG,EAAtB;AAEAr5E,QAAM,CAACC,IAAP,CAAYoE,IAAZ,EAAkB/C,OAAlB,CAA0B,UAASg4E,IAAT,EAAe;AACvC,QAAM5tC,OAAO,GAAGrnC,IAAI,CAACi1E,IAAD,CAApB;AACA,QAAMzgB,YAAY,GAAGp3D,IAAI,CAACq3D,aAAL,CAAmBptB,OAAnB,CAArB;;AAEA,QAAImtB,YAAJ,EAAkB;AAChBwgB,mBAAa,CAACriE,IAAd,CAAmB6hD,YAAnB;AACD;AACF,GAPD;AASA,SAAOwgB,aAAP;AACD;AAED;;;;;;;;;;;AASO,SAAS9wD,sBAAT,CAAgCuoB,gBAAhC,EAAkD+uB,mBAAlD,EAAuE;AAC5E,MAAM0Z,gBAAgB,GAAGrwD,yEAAgB,CAAC4nB,gBAAgB,CAAC0E,UAAlB,CAAzC;AACA,MAAMgkC,mBAAmB,GAAGtwD,yEAAgB,CAAC4nB,gBAAgB,CAAC2E,aAAlB,CAA5C;AACA,MAAMgkC,0BAA0B,GAAGvwD,yEAAgB,CACjD4nB,gBAAgB,CAAC1H,oBADgC,CAAnD;AAGA,MAAMswC,mBAAmB,GAAGxwD,yEAAgB,CAAC22C,mBAAmB,CAACrqB,UAArB,CAA5C;AACA,MAAMmkC,sBAAsB,GAAGzwD,yEAAgB,CAC7C22C,mBAAmB,CAACpqB,aADyB,CAA/C;AAGA,MAAMmkC,6BAA6B,GAAG1wD,yEAAgB,CACpD22C,mBAAmB,CAACz2B,oBADgC,CAAtD,CAV4E,CAc5E;;AACA,MAAM82B,YAAY,GAAGqZ,gBAAgB,CAACvoC,KAAjB,GAAyB6E,KAAzB,CAA+B2jC,mBAA/B,CAArB;AACA,MAAMK,WAAW,GAAG,IAAI/7E,2DAAQ,CAAC+D,eAAT,CAAyBi4E,KAA7B,EAApB;AAEAD,aAAW,CAACE,6BAAZ,CACE7Z,YADF,EAEEuZ,0BAFF;AAKA,MAAMtZ,eAAe,GAAGuZ,mBAAmB,CACxC1oC,KADqB,GAErB6E,KAFqB,CAEf8jC,sBAFe,CAAxB;AAGA,MAAMK,cAAc,GAAG,IAAIl8E,2DAAQ,CAAC+D,eAAT,CAAyBi4E,KAA7B,EAAvB;AAEAE,gBAAc,CAACD,6BAAf,CACE5Z,eADF,EAEEyZ,6BAFF;AAKA,MAAMK,eAAe,GAAGD,cAAc,CAAChpC,KAAf,GAAuBkpC,cAAvB,CAAsCL,WAAtC,CAAxB;AACA,MAAMM,MAAM,GAAGF,eAAe,CAACE,MAA/B;AACA,MAAMv+D,SAAS,GAAGq+D,eAAe,CAACr+D,SAAlC,CAnC4E,CAqC5E;;AACA,MAAM3F,WAAW,GAAGqS,wBAAwB,CAC1C;AACEtrB,KAAC,EAAE6iE,mBAAmB,CAAC5vC,OADzB;AAEElzB,KAAC,EAAE8iE,mBAAmB,CAAC5tD;AAFzB,GAD0C,EAK1C4tD,mBAL0C,CAA5C;AAOA,MAAMxsD,QAAQ,GAAGumE,6BAA6B,CAACQ,UAA9B,CAAyCnkE,WAAzC,CAAjB,CA7C4E,CA+C5E;;AACA,MAAMxU,IAAI,GAAG,IAAI3D,2DAAQ,CAAC+D,eAAT,CAAyBs3E,KAA7B,EAAb;AAEA13E,MAAI,CAACnF,KAAL,GAAa69E,MAAb;AACA14E,MAAI,CAAClF,GAAL,GAAW49E,MAAM,CAACnpC,KAAP,GAAexzB,GAAf,CAAmB5B,SAAS,CAACq9D,cAAV,CAAyB5lE,QAAzB,CAAnB,CAAX,CAnD4E,CAqD5E;;AACA,MAAMhP,IAAI,GAAG60E,0BAA0B,CAACrZ,mBAAD,CAAvC;AACA,MAAMwZ,aAAa,GAAGD,yBAAyB,CAAC33E,IAAD,EAAO4C,IAAP,CAA/C,CAvD4E,CAyD5E;AACA;;AACA,MAAIg1E,aAAa,CAACn4E,MAAd,KAAyB,CAA7B,EAAgC;AAC9B;AACD;;AAED,SAAO;AACL5E,SAAK,EAAE+8E,aAAa,CAAC,CAAD,CADf;AAEL98E,OAAG,EAAE88E,aAAa,CAAC,CAAD;AAFb,GAAP;AAID;AAED;;;;;;;;;;;AAUO,SAASp6E,WAAT,CAAqB6C,KAArB,EAA4BnE,MAA5B,EAAoCf,KAApC,EAA2C;AAChD,MAAMy9E,YAAY,GAAGz9E,KAAK,IAAIC,IAAI,CAACU,EAAL,GAAU,GAAd,CAA1B,CADgD,CACF;;AAE9C,MAAM+8E,QAAQ,GACZz9E,IAAI,CAACS,GAAL,CAAS+8E,YAAT,KAA0Bv4E,KAAK,CAAC9E,CAAN,GAAUW,MAAM,CAACX,CAA3C,IACAH,IAAI,CAACW,GAAL,CAAS68E,YAAT,KAA0Bv4E,KAAK,CAAC/E,CAAN,GAAUY,MAAM,CAACZ,CAA3C,CADA,GAEAY,MAAM,CAACX,CAHT;AAKA,MAAMu9E,QAAQ,GACZ19E,IAAI,CAACW,GAAL,CAAS68E,YAAT,KAA0Bv4E,KAAK,CAAC9E,CAAN,GAAUW,MAAM,CAACX,CAA3C,IACAH,IAAI,CAACS,GAAL,CAAS+8E,YAAT,KAA0Bv4E,KAAK,CAAC/E,CAAN,GAAUY,MAAM,CAACZ,CAA3C,CADA,GAEAY,MAAM,CAACZ,CAHT;AAKA,SAAO;AACLC,KAAC,EAAEs9E,QADE;AAELv9E,KAAC,EAAEw9E;AAFE,GAAP;AAID,C;;;;;;;;;;;;AC9OD;AAAA;;;;;;;;;AASe,yEAAS/tD,KAAT,EAAgBguD,SAAhB,EAA2B;AACxC,MAAMv0B,UAAU,GAAGppD,IAAI,CAAC4rC,GAAL,CAAS,EAAT,EAAa+xC,SAAb,CAAnB;AAEA,SAAO39E,IAAI,CAACi7B,KAAL,CAAWtL,KAAK,GAAGy5B,UAAnB,IAAiCA,UAAxC;AACD,C;;;;;;;;;;;;ACbD;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;AAWe,yEAASvoD,OAAT,EAAkBiqC,MAAlB,EAA8D;AAAA,MAApCnR,IAAoC,uEAA7B,KAA6B;AAAA,MAAtB4tB,aAAsB,uEAAN,IAAM;AAC3E,MAAMl2C,QAAQ,GAAG5H,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA7B;;AAEA,MAAI,CAACwQ,QAAD,IAAa,CAACA,QAAQ,CAACzD,IAAvB,IAA+B,CAACyD,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlD,EAA0D;AACxD;AACD;;AAED,MAAM+0B,SAAS,GAAG/nB,QAAQ,CAACzD,IAAT,CAAc,CAAd,CAAlB;;AAEA,MAAI,CAACwrB,SAAS,CAACg1C,OAAf,EAAwB;AACtBh1C,aAAS,CAACg1C,OAAV,GAAoB,EAApB;AACD;;AAED,MAAIp0C,eAAe,GAAGZ,SAAS,CAAChd,mBAAV,GAAgC0uB,MAAtD;;AAEA,MAAInR,IAAJ,EAAU;AACR,QAAMikD,QAAQ,GAAGxkD,SAAS,CAACjC,QAAV,CAAmB9yB,MAApC;AAEA21B,mBAAe,IAAI4jD,QAAnB;AACD,GAJD,MAIO;AACL5jD,mBAAe,GAAG1N,wDAAI,CAAC0N,eAAD,EAAkB,CAAlB,EAAqBZ,SAAS,CAACjC,QAAV,CAAmB9yB,MAAnB,GAA4B,CAAjD,CAAtB;AACD;;AAED,MAAIkjD,aAAJ,EAAmB;AACjBl8B,qEAAa,CAACxqB,OAAD,EAAUm5B,eAAV,CAAb;AACD,GAFD,MAEO;AACL,QAAM6jD,YAAY,GAAG;AACnBl2E,WAAK,EAAEqyB;AADY,KAArB;AAIAZ,aAAS,CAACg1C,OAAV,CAAkBj0D,IAAlB,CAAuB0jE,YAAvB;AACAC,yBAAqB,CAAC1kD,SAAD,EAAYykD,YAAZ,EAA0Bh9E,OAA1B,CAArB;AACD;AACF;AAED;;;;;;;;;;;;AAWA,SAASi9E,qBAAT,CAA+B1kD,SAA/B,EAA0CykD,YAA1C,EAAwDh9E,OAAxD,EAAiE;AAC/D,MAAIu4B,SAAS,CAACg1C,OAAV,CAAkB,CAAlB,MAAyByP,YAA7B,EAA2C;AACzC,QAAIzkD,SAAS,CAAChd,mBAAV,KAAkCyhE,YAAY,CAACl2E,KAAnD,EAA0D;AACxDyxB,eAAS,CAACg1C,OAAV,CAAkBpyC,MAAlB,CAAyB5C,SAAS,CAACg1C,OAAV,CAAkB3yC,OAAlB,CAA0BoiD,YAA1B,CAAzB,EAAkE,CAAlE;;AAEA,UAAIzkD,SAAS,CAACg1C,OAAV,CAAkB/pE,MAAlB,GAA2B,CAA/B,EAAkC;AAChCy5E,6BAAqB,CAAC1kD,SAAD,EAAYA,SAAS,CAACg1C,OAAV,CAAkB,CAAlB,CAAZ,EAAkCvtE,OAAlC,CAArB;AACD;;AAED;AACD;;AAED,QAAMk9E,eAAe,GAAG,SAAlBA,eAAkB,CAAStqE,KAAT,EAAgB;AACtC,UAAM9L,KAAK,GAAGyxB,SAAS,CAACjC,QAAV,CAAmBsE,OAAnB,CAA2BhoB,KAAK,CAACvK,MAAN,CAAa4F,KAAb,CAAmBgmB,OAA9C,CAAd;;AAEA,UAAIntB,KAAK,KAAKk2E,YAAY,CAACl2E,KAA3B,EAAkC;AAChCyxB,iBAAS,CAACg1C,OAAV,CAAkBpyC,MAAlB,CAAyB5C,SAAS,CAACg1C,OAAV,CAAkB3yC,OAAlB,CAA0BoiD,YAA1B,CAAzB,EAAkE,CAAlE;AACAh9E,eAAO,CAACwJ,mBAAR,CACEpJ,2DAAQ,CAACC,WAAT,CAAqBgJ,MAArB,CAA4B+F,SAD9B,EAEE8tE,eAFF;;AAKA,YAAI3kD,SAAS,CAACg1C,OAAV,CAAkB/pE,MAAlB,GAA2B,CAA/B,EAAkC;AAChCy5E,+BAAqB,CAAC1kD,SAAD,EAAYA,SAAS,CAACg1C,OAAV,CAAkB,CAAlB,CAAZ,EAAkCvtE,OAAlC,CAArB;AACD;AACF;AACF,KAdD;;AAgBAA,WAAO,CAACoJ,gBAAR,CACEhJ,2DAAQ,CAACC,WAAT,CAAqBgJ,MAArB,CAA4B+F,SAD9B,EAEE8tE,eAFF;AAKA1yD,qEAAa,CAACxqB,OAAD,EAAUg9E,YAAY,CAACl2E,KAAvB,CAAb;AACD;AACF,C;;;;;;;;;;;;ACjGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;AASe,yEAAS9G,OAAT,EAAkBm5B,eAAlB,EAAmC;AAChD,MAAM3oB,QAAQ,GAAG5H,kFAAY,CAAC5I,OAAD,EAAU,OAAV,CAA7B;;AAEA,MAAI,CAACwQ,QAAD,IAAa,CAACA,QAAQ,CAACzD,IAAvB,IAA+B,CAACyD,QAAQ,CAACzD,IAAT,CAAcvJ,MAAlD,EAA0D;AACxD;AACD;;AAED,MAAMnD,WAAW,GAAGD,2DAAQ,CAACC,WAA7B,CAPgD,CAQhD;;AACA,MAAIg4B,aAAJ;;AAEA,MAAI7nB,QAAQ,CAACzD,IAAT,CAAcvJ,MAAd,GAAuB,CAA3B,EAA8B;AAC5B,QAAM80B,iBAAiB,GAAG1vB,kFAAY,CAAC5I,OAAD,EAAU,eAAV,CAAtC;;AAEA,QACEs4B,iBAAiB,IACjBA,iBAAiB,CAACvrB,IADlB,IAEAurB,iBAAiB,CAACvrB,IAAlB,CAAuBvJ,MAHzB,EAIE;AACA60B,mBAAa,GAAGC,iBAAiB,CAACvrB,IAAlB,CAAuB,CAAvB,CAAhB;AACD;AACF;;AAED,MAAMwrB,SAAS,GAAG/nB,QAAQ,CAACzD,IAAT,CAAc,CAAd,CAAlB,CAvBgD,CAyBhD;;AACA,MAAIosB,eAAe,GAAG,CAAtB,EAAyB;AACvBA,mBAAe,IAAIZ,SAAS,CAACjC,QAAV,CAAmB9yB,MAAtC;AACD;;AAED,MAAMw1B,mBAAmB,GAAGzS,8EAAkB,CAAC8S,mBAAnB,CAAuCr5B,OAAvC,CAA5B;AACA,MAAMi5B,iBAAiB,GAAG1S,8EAAkB,CAAC+S,iBAAnB,CAAqCt5B,OAArC,CAA1B;AACA,MAAMk5B,mBAAmB,GAAG3S,8EAAkB,CAACgT,sBAAnB,CAC1Bv5B,OAD0B,CAA5B;;AAIA,WAASm0B,YAAT,CAAsBlmB,KAAtB,EAA6B;AAC3B,QAAIsqB,SAAS,CAAChd,mBAAV,KAAkC4d,eAAtC,EAAuD;AACrD;AACD,KAH0B,CAK3B;AACA;;;AACA,QAAI;AACF;AACA94B,iBAAW,CAAC2Z,iBAAZ,CAA8Bha,OAA9B;AACD,KAHD,CAGE,OAAO60B,KAAP,EAAc;AACd;AACD;;AAED,QAAIwD,aAAJ,EAAmB;AACjBA,mBAAa,CAAC9c,mBAAd,GAAoC4d,eAApC;AACAd,mBAAa,CAACmB,MAAd,CAAqBx5B,OAArB,EAA8BwQ,QAAQ,CAACzD,IAAvC;AACD,KAHD,MAGO;AACL1M,iBAAW,CAACu2B,YAAZ,CAAyB52B,OAAzB,EAAkCiO,KAAlC;AACD;;AAED,QAAIgrB,iBAAJ,EAAuB;AACrBA,uBAAiB,CAACj5B,OAAD,EAAUiO,KAAV,CAAjB;AACD;AACF;;AAED,WAASmmB,YAAT,CAAsBS,KAAtB,EAA6B;AAC3B,QAAMZ,OAAO,GAAGsE,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CAAhB;;AAEA,QAAID,mBAAJ,EAAyB;AACvBA,yBAAmB,CAACl5B,OAAD,EAAUi0B,OAAV,EAAmBY,KAAnB,CAAnB;AACD;AACF;;AAED,MAAIsE,eAAe,KAAKZ,SAAS,CAAChd,mBAAlC,EAAuD;AACrD;AACD;;AAED,MAAIyd,mBAAJ,EAAyB;AACvBA,uBAAmB,CAACh5B,OAAD,CAAnB;AACD;;AAED,MAAMoI,SAAS,GAAG;AAChB+wB,mBAAe,EAAfA,eADgB;AAEhBjb,aAAS,EAAEib,eAAe,GAAGZ,SAAS,CAAChd;AAFvB,GAAlB;AAKAgd,WAAS,CAAChd,mBAAV,GAAgC4d,eAAhC;AACA,MAAMwc,UAAU,GAAGpd,SAAS,CAACjC,QAAV,CAAmB6C,eAAnB,CAAnB,CApFgD,CAsFhD;AACA;;AACA;;;;;;;;AAYA;;AACA,MAAMjF,YAAY,GAAG6kB,OAAO,CAACxgB,SAAS,CAACrE,YAAX,CAA5B;AAEA,MAAIipD,YAAJ;;AAEA,MAAIjpD,YAAJ,EAAkB;AAChBipD,gBAAY,GAAG98E,WAAW,CAACi1B,SAAZ,CAAsBqgB,UAAtB,CAAf;AACD,GAFD,MAEO;AACLwnC,gBAAY,GAAG98E,WAAW,CAACk1B,iBAAZ,CAA8BogB,UAA9B,CAAf;AACD;;AAEDwnC,cAAY,CAACvoD,IAAb,CAAkBT,YAAlB,EAAgCC,YAAhC,EA/GgD,CAgHhD;;AACAxM,4EAAkB,CAACqN,aAAnB;AAEArqB,uEAAY,CAAC5K,OAAD,EAAUqJ,kDAAM,CAACqY,YAAjB,EAA+BtZ,SAA/B,CAAZ;AACD,C;;;;;;;;;;;;;;;;;;ACpID;AAEA;;;;;;;;;;;AAUA,SAAS46D,eAAT,CACEF,YADF,EAEEruD,SAFF,EAGEW,YAHF,EAIEmd,OAJF,EAME;AAAA,MADA+sC,WACA,uEADc,KACd;;AACA,MAAMqG,aAAa,GAAG,SAAhBA,aAAgB,CAACrmE,CAAD,EAAID,CAAJ;AAAA,WAAUA,CAAC,GAAGkzB,OAAJ,GAAcjzB,CAAxB;AAAA,GAAtB;;AAEAwjE,cAAY,CAACl/D,OAAb,CAAqB,UAAAQ,KAAK,EAAI;AAC5B,QAAM4zE,OAAO,GAAGrS,aAAa,MAAb,yFAAiBvhE,KAAjB,EAAhB;;AAEA,QAAIk7D,WAAJ,EAAiB;AACf8d,6EAAmB,CAACpF,OAAD,EAAUvjE,SAAV,EAAqBW,YAArB,CAAnB;AACD,KAFD,MAEO;AACLX,eAAS,CAACujE,OAAD,CAAT,GAAqB5iE,YAArB;AACD;AACF,GARD;AASD;;;;;;;;;;;;;;AC9BD;AAAA;AAAA;;;;;;;AAOe,SAASgoE,mBAAT,CACbhmE,UADa,EAEb3C,SAFa,EAGbW,YAHa,EAIb;AACA,MAAIX,SAAS,CAAC2C,UAAD,CAAT,KAA0BhC,YAA9B,EAA4C;AAC1CX,aAAS,CAAC2C,UAAD,CAAT,GAAwB,CAAxB;AACD;AACF,C;;;;;;;;;;;;ACfD;AAAA;AAAA;AAAA;AAEA;;;;;;;;;;;AAUe,SAASgxD,uBAAT,CACbjgE,GADa,EAEb8oB,aAFa,EAGbhZ,OAHa,EAIbM,WAJa,EAKb;AACA,MAAMnQ,SAAS,GAAGD,GAAG,CAACE,MAAtB;AADA,MAEQoM,SAFR,GAEoCwc,aAFpC,CAEQxc,SAFR;AAAA,MAEmBW,YAFnB,GAEoC6b,aAFpC,CAEmB7b,YAFnB;AAAA,MAGQnH,KAHR,GAGkB7F,SAHlB,CAGQ6F,KAHR;AAAA,MAIQnN,KAJR,GAI0BmN,KAJ1B,CAIQnN,KAJR;AAAA,MAIeE,MAJf,GAI0BiN,KAJ1B,CAIejN,MAJf,EAMA;;AACA,OAAK,IAAIwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG1B,KAApB,EAA2B0B,CAAC,EAA5B,EAAgC;AAC9B,SAAK,IAAIuW,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGd,OAAO,CAAC,CAAD,CAA3B,EAAgCc,CAAC,EAAjC,EAAqC;AACnCqkE,0EAAmB,CAACrkE,CAAC,GAAGjY,KAAJ,GAAY0B,CAAb,EAAgBiS,SAAhB,EAA2BW,YAA3B,CAAnB;AACD;AACF,GAXD,CAaA;;;AACA,OAAK,IAAI5S,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGyV,OAAO,CAAC,CAAD,CAA3B,EAAgCzV,EAAC,EAAjC,EAAqC;AACnC,SAAK,IAAIuW,EAAC,GAAGd,OAAO,CAAC,CAAD,CAApB,EAAyBc,EAAC,GAAGR,WAAW,CAAC,CAAD,CAAxC,EAA6CQ,EAAC,EAA9C,EAAkD;AAChDqkE,0EAAmB,CAACrkE,EAAC,GAAGjY,KAAJ,GAAY0B,EAAb,EAAgBiS,SAAhB,EAA2BW,YAA3B,CAAnB;AACD;AACF,GAlBD,CAoBA;;;AACA,OAAK,IAAI5S,GAAC,GAAG+V,WAAW,CAAC,CAAD,CAAxB,EAA6B/V,GAAC,GAAG1B,KAAjC,EAAwC0B,GAAC,EAAzC,EAA6C;AAC3C,SAAK,IAAIuW,GAAC,GAAGd,OAAO,CAAC,CAAD,CAApB,EAAyBc,GAAC,GAAGR,WAAW,CAAC,CAAD,CAAxC,EAA6CQ,GAAC,EAA9C,EAAkD;AAChDqkE,0EAAmB,CAACrkE,GAAC,GAAGjY,KAAJ,GAAY0B,GAAb,EAAgBiS,SAAhB,EAA2BW,YAA3B,CAAnB;AACD;AACF,GAzBD,CA2BA;;;AACA,OAAK,IAAI5S,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAG1B,KAApB,EAA2B0B,GAAC,EAA5B,EAAgC;AAC9B,SAAK,IAAIuW,GAAC,GAAGR,WAAW,CAAC,CAAD,CAAxB,EAA6BQ,GAAC,GAAG/X,MAAjC,EAAyC+X,GAAC,EAA1C,EAA8C;AAC5CqkE,0EAAmB,CAACrkE,GAAC,GAAGjY,KAAJ,GAAY0B,GAAb,EAAgBiS,SAAhB,EAA2BW,YAA3B,CAAnB;AACD;AACF;AACF,C;;;;;;;;;;;;;;;;;;;;;AClDD;AACA;AAEA;AAEA,IAAM3L,MAAM,GAAGC,4DAAS,CAAC,iDAAD,CAAxB;AAEA;;;;;;;;;;;;AAWA,SAAS2zE,UAAT,CACEl1E,GADF,EAEE8oB,aAFF,EAGEqsD,YAHF,EAIErlE,OAJF,EAKEM,WALF,EAOE;AAAA,MADAglE,eACA,uEADkB,QAClB;AAAA,MACQz8E,KADR,GACkBqH,GAAG,CAACE,MAAJ,CAAW4F,KAD7B,CACQnN,KADR;AAAA,MAEQ2T,SAFR,GAEoCwc,aAFpC,CAEQxc,SAFR;AAAA,MAEmBW,YAFnB,GAEoC6b,aAFpC,CAEmB7b,YAFnB;;AAAA,6FAGqB6C,OAHrB;AAAA,MAGOvW,IAHP;AAAA,MAGaE,IAHb;;AAAA,iGAIqB2W,WAJrB;AAAA,MAIO4tD,IAJP;AAAA,MAIaC,IAJb;;AAMA,MAAImX,eAAe,KAAK,SAAxB,EAAmC;AACjCnV,4EAAuB,CAACjgE,GAAD,EAAM8oB,aAAN,EAAqBhZ,OAArB,EAA8BM,WAA9B,CAAvB;AACD;;AAED,OAAK,IAAIjZ,CAAC,GAAGoC,IAAb,EAAmBpC,CAAC,GAAG6mE,IAAvB,EAA6B7mE,CAAC,EAA9B,EAAkC;AAChC,SAAK,IAAID,CAAC,GAAGuC,IAAb,EAAmBvC,CAAC,GAAG+mE,IAAvB,EAA6B/mE,CAAC,EAA9B,EAAkC;AAChC,UAAM+X,UAAU,GAAG/X,CAAC,GAAGyB,KAAJ,GAAYxB,CAA/B,CADgC,CAGhC;AACA;;AACA,UACEk+E,iEAAa,CAACpmE,UAAD,EAAa3C,SAAb,EAAwBW,YAAxB,CAAb,IACAkoE,YAAY,CAAC;AACXh+E,SAAC,EAADA,CADW;AAEXD,SAAC,EAADA;AAFW,OAAD,CAFd,EAME;AACAoV,iBAAS,CAAC2C,UAAD,CAAT,GAAwB,CAAxB;AACD;AACF;AACF;AACF;AAED;;;;;;;;;;;;;AAWO,SAAS0wD,gBAAT,CACL3/D,GADK,EAEL8oB,aAFK,EAGLqsD,YAHK,EAILrlE,OAJK,EAKLM,WALK,EAML;AACA8kE,YAAU,CAACl1E,GAAD,EAAM8oB,aAAN,EAAqBqsD,YAArB,EAAmCrlE,OAAnC,EAA4CM,WAA5C,EAAyD,QAAzD,CAAV;AACD;AAED;;;;;;;;;;;;AAWO,SAASwvD,iBAAT,CACL5/D,GADK,EAEL8oB,aAFK,EAGLqsD,YAHK,EAILrlE,OAJK,EAKLM,WALK,EAML;AACA8kE,YAAU,CACRl1E,GADQ,EAER8oB,aAFQ,EAGR,UAAA7sB,KAAK;AAAA,WAAI,CAACk5E,YAAY,CAACl5E,KAAD,CAAjB;AAAA,GAHG,EAIR6T,OAJQ,EAKRM,WALQ,EAMR,SANQ,CAAV;AAQD,C;;;;;;;;;;;;ACrGD;AAAA;AAAA;;;;;;;;;;AAUe,SAASmwD,sBAAT,CACbvgE,GADa,EAEb8oB,aAFa,EAGbhZ,OAHa,EAIbM,WAJa,EAKb;AAAA,MACQ9D,SADR,GACoCwc,aADpC,CACQxc,SADR;AAAA,MACmBW,YADnB,GACoC6b,aADpC,CACmB7b,YADnB;AAAA,0BAE0BjN,GAAG,CAACE,MAAJ,CAAW4F,KAFrC;AAAA,MAEQnN,KAFR,qBAEQA,KAFR;AAAA,MAEeE,MAFf,qBAEeA,MAFf,EAIA;;AACA,OAAK,IAAIwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG1B,KAApB,EAA2B0B,CAAC,EAA5B,EAAgC;AAC9B,SAAK,IAAIuW,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGd,OAAO,CAAC,CAAD,CAA3B,EAAgCc,CAAC,EAAjC,EAAqC;AACnCtE,eAAS,CAACsE,CAAC,GAAGjY,KAAJ,GAAY0B,CAAb,CAAT,GAA2B4S,YAA3B;AACD;AACF,GATD,CAWA;;;AACA,OAAK,IAAI5S,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGyV,OAAO,CAAC,CAAD,CAA3B,EAAgCzV,EAAC,EAAjC,EAAqC;AACnC,SAAK,IAAIuW,EAAC,GAAGd,OAAO,CAAC,CAAD,CAApB,EAAyBc,EAAC,GAAGR,WAAW,CAAC,CAAD,CAAxC,EAA6CQ,EAAC,EAA9C,EAAkD;AAChDtE,eAAS,CAACsE,EAAC,GAAGjY,KAAJ,GAAY0B,EAAb,CAAT,GAA2B4S,YAA3B;AACD;AACF,GAhBD,CAkBA;;;AACA,OAAK,IAAI5S,GAAC,GAAG+V,WAAW,CAAC,CAAD,CAAxB,EAA6B/V,GAAC,GAAG1B,KAAjC,EAAwC0B,GAAC,EAAzC,EAA6C;AAC3C,SAAK,IAAIuW,GAAC,GAAGd,OAAO,CAAC,CAAD,CAApB,EAAyBc,GAAC,GAAGR,WAAW,CAAC,CAAD,CAAxC,EAA6CQ,GAAC,EAA9C,EAAkD;AAChDtE,eAAS,CAACsE,GAAC,GAAGjY,KAAJ,GAAY0B,GAAb,CAAT,GAA2B4S,YAA3B;AACD;AACF,GAvBD,CAyBA;;;AACA,OAAK,IAAI5S,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAG1B,KAApB,EAA2B0B,GAAC,EAA5B,EAAgC;AAC9B,SAAK,IAAIuW,GAAC,GAAGR,WAAW,CAAC,CAAD,CAAxB,EAA6BQ,GAAC,GAAG/X,MAAjC,EAAyC+X,GAAC,EAA1C,EAA8C;AAC5CtE,eAAS,CAACsE,GAAC,GAAGjY,KAAJ,GAAY0B,GAAb,CAAT,GAA2B4S,YAA3B;AACD;AACF;AACF,C;;;;;;;;;;;;;;;;;;;;AC9CD;AACA;AAEA,IAAM3L,MAAM,GAAGC,4DAAS,CAAC,gDAAD,CAAxB;AAEA;;;;;;;;;;;;AAWA,SAAS+zE,SAAT,CACEt1E,GADF,EAEE8oB,aAFF,EAGEqsD,YAHF,EAIErlE,OAJF,EAKEM,WALF,EAOE;AAAA,MADAglE,eACA,uEADkB,QAClB;AAAA,MACQ9oE,SADR,GACoCwc,aADpC,CACQxc,SADR;AAAA,MACmBW,YADnB,GACoC6b,aADpC,CACmB7b,YADnB;;AAGA,MAAIX,SAAS,KAAKhV,SAAd,IAA2B2V,YAAY,KAAK3V,SAAhD,EAA2D;AACzDgK,UAAM,CAACorB,KAAP;AAIA;AACD;;AATD,MAWQ/zB,KAXR,GAWkBqH,GAAG,CAACE,MAAJ,CAAW4F,KAX7B,CAWQnN,KAXR;;AAAA,6FAYqBmX,OAZrB;AAAA,MAYOvW,IAZP;AAAA,MAYaE,IAZb;;AAAA,iGAaqB2W,WAbrB;AAAA,MAaO4tD,IAbP;AAAA,MAaaC,IAbb;;AAeA,MAAImX,eAAe,KAAK,SAAxB,EAAmC;AACjC7U,2EAAsB,CAACvgE,GAAD,EAAM8oB,aAAN,EAAqBhZ,OAArB,EAA8BM,WAA9B,CAAtB;AACD;;AAED,OAAK,IAAIjZ,CAAC,GAAGoC,IAAb,EAAmBpC,CAAC,GAAG6mE,IAAvB,EAA6B7mE,CAAC,EAA9B,EAAkC;AAChC,SAAK,IAAID,CAAC,GAAGuC,IAAb,EAAmBvC,CAAC,GAAG+mE,IAAvB,EAA6B/mE,CAAC,EAA9B,EAAkC;AAChC,UAAM+X,UAAU,GAAG/X,CAAC,GAAGyB,KAAJ,GAAYxB,CAA/B,CADgC,CAGhC;AACA;;AACA,UACEg+E,YAAY,CAAC;AACXh+E,SAAC,EAADA,CADW;AAEXD,SAAC,EAADA;AAFW,OAAD,CADd,EAKE;AACAoV,iBAAS,CAAC2C,UAAD,CAAT,GAAwBhC,YAAxB;AACD;AACF;AACF;AACF;AAED;;;;;;;;;;;;;AAWO,SAASkzD,eAAT,CACLngE,GADK,EAEL8oB,aAFK,EAGLqsD,YAHK,EAILrlE,OAJK,EAKLM,WALK,EAML;AACAklE,WAAS,CAACt1E,GAAD,EAAM8oB,aAAN,EAAqBqsD,YAArB,EAAmCrlE,OAAnC,EAA4CM,WAA5C,EAAyD,QAAzD,CAAT;AACD;AAED;;;;;;;;;;;;AAWO,SAASgwD,gBAAT,CACLpgE,GADK,EAEL8oB,aAFK,EAGLqsD,YAHK,EAILrlE,OAJK,EAKLM,WALK,EAML;AACAklE,WAAS,CACPt1E,GADO,EAEP8oB,aAFO,EAGP,UAAA7sB,KAAK;AAAA,WAAI,CAACk5E,YAAY,CAACl5E,KAAD,CAAjB;AAAA,GAHE,EAIP6T,OAJO,EAKPM,WALO,EAMP,SANO,CAAT;AAQD,C;;;;;;;;;;;;;;;;;AC3GD;;;;;;;;;;;;;;;;;;;AAmBe,yEAASguD,MAAT,EAAiBmX,IAAjB,EAAqC;AAAA,MAAdn+E,OAAc,uEAAJ,EAAI;;AAClD,MAAMo+E,OAAO,GAAGp+E,OAAO,CAACo+E,OAAR,IAAmB,YAAW,CAAE,CAAhD;;AACA,MAAMC,UAAU,GAAGr+E,OAAO,CAACq+E,UAAR,IAAsB,YAAW,CAAE,CAAtD;;AACA,MAAMC,MAAM,GAAGt+E,OAAO,CAACs+E,MAAR,IAAkBC,aAAjC;AACA,MAAMC,SAAS,GAAGx+E,OAAO,CAACw+E,SAAR,IAAqB,KAAvC;AACA,MAAMC,SAAS,GAAG3gD,GAAG,CAACqgD,IAAD,CAArB;AACA,MAAMO,YAAY,GAAGC,kBAAkB,EAAvC;AACA,MAAMpjD,KAAK,GAAG,EAAd;AACA,MAAMqsC,OAAO,GAAG,EAAhB;AACA,MAAMgX,MAAM,GAAG,EAAf;AACA,MAAMnrB,MAAM,GAAG,EAAf;AAEAl4B,OAAK,CAACxhB,IAAN,CAAW;AAAE8kE,eAAW,EAAEV;AAAf,GAAX;;AAEA,SAAO5iD,KAAK,CAACt3B,MAAN,GAAe,CAAtB,EAAyB;AACvB66E,SAAK,CAACvjD,KAAK,CAAC0R,GAAN,EAAD,CAAL;AACD;;AAED,SAAO;AACL26B,WAAO,EAAPA,OADK;AAELmX,cAAU,EAAEA,UAAU;AAFjB,GAAP;;AAKA,WAASD,KAAT,CAAeE,GAAf,EAAoB;AAClB,QAAMC,OAAO,GAAGD,GAAG,CAACH,WAApB;AACA,QAAMK,QAAQ,GAAGF,GAAG,CAACG,YAArB;;AAEA,QAAIC,OAAO,CAACH,OAAD,CAAX,EAAsB;AACpB;AACD;;AACDI,iBAAa,CAACJ,OAAD,CAAb;;AAEA,QAAIK,MAAM,CAACL,OAAD,CAAV,EAAqB;AACnBM,mBAAa,CAACN,OAAD,CAAb;AACAO,kBAAY,CAACP,OAAD,CAAZ;AACD,KAHD,MAGO;AACLQ,oBAAc,CAACP,QAAD,CAAd;AACD;AACF;;AAED,WAASE,OAAT,CAAiB31D,GAAjB,EAAsB;AACpB,WAAOm1D,MAAM,CAACn1D,GAAD,CAAN,KAAgB,IAAvB;AACD;;AAED,WAAS41D,aAAT,CAAuB51D,GAAvB,EAA4B;AAC1Bm1D,UAAM,CAACn1D,GAAD,CAAN,GAAc,IAAd;AACD;;AAED,WAAS61D,MAAT,CAAgBL,OAAhB,EAAyB;AACvB,QAAMhZ,IAAI,GAAGyZ,MAAM,CAAC5hD,GAAD,EAAM,CAACmhD,OAAD,CAAN,CAAnB;AAEA,WAAOS,MAAM,CAACpB,MAAD,EAAS,CAACrY,IAAD,EAAOwY,SAAP,CAAT,CAAb;AACD;;AAED,WAASc,aAAT,CAAuBN,OAAvB,EAAgC;AAC9BrX,WAAO,CAAC7tD,IAAR,CAAaklE,OAAb;AACAb,WAAO,MAAP,yFAAWa,OAAX;AACD;;AAED,WAASQ,cAAT,CAAwBP,QAAxB,EAAkC;AAChCzrB,UAAM,CAACyrB,QAAD,CAAN,GAAmBA,QAAnB;AACAb,cAAU,MAAV,yFAAca,QAAd;AACD;;AAED,WAASM,YAAT,CAAsBP,OAAtB,EAA+B;AAC7B,SAAK,IAAIh8E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGy7E,YAAY,CAACz6E,MAAjC,EAAyChB,CAAC,IAAI,CAA9C,EAAiD;AAC/C,UAAM08E,IAAI,GAAGjB,YAAY,CAACz7E,CAAD,CAAzB;AACA,UAAM28E,QAAQ,GAAGX,OAAO,CAACxtD,KAAR,CAAc,CAAd,CAAjB;;AAEA,WAAK,IAAIjY,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGylE,OAAO,CAACh7E,MAA5B,EAAoCuV,CAAC,IAAI,CAAzC,EAA4C;AAC1ComE,gBAAQ,CAACpmE,CAAD,CAAR,IAAemmE,IAAI,CAACnmE,CAAD,CAAnB;AACD;;AAED+hB,WAAK,CAACxhB,IAAN,CAAW;AACT8kE,mBAAW,EAAEe,QADJ;AAETT,oBAAY,EAAEF;AAFL,OAAX;AAID;AACF;;AAED,WAASnhD,GAAT,CAAamhD,OAAb,EAAsB;AACpB,WAAOjY,MAAM,MAAN,yFAAUiY,OAAV,EAAP;AACD;;AAED,WAASS,MAAT,CAAgBG,CAAhB,EAAmB97C,IAAnB,EAAyB;AACvB,QAAI;AACF,aAAO87C,CAAC,MAAD,yFAAK97C,IAAL,EAAP;AACD,KAFD,CAEE,OAAOzO,KAAP,EAAc;AACd;AACD;AACF;;AAED,WAASqpD,kBAAT,GAA8B;AAC5B,QAAMD,YAAY,GAAGoB,OAAO,CAAC3B,IAAI,CAACl6E,MAAN,CAA5B;AAEA,WAAOy6E,YAAY,CAACz1E,MAAb,CAAoB,UAAS02E,IAAT,EAAe;AACxC,UAAMrvB,KAAK,GAAGyvB,cAAc,CAACJ,IAAD,CAA5B;AAEA,aAAOrvB,KAAK,KAAK,CAAV,KAAgBA,KAAK,KAAK,CAAV,IAAekuB,SAA/B,CAAP;AACD,KAJM,CAAP;AAKD;;AAED,WAASsB,OAAT,CAAiB77E,MAAjB,EAAyB;AACvB,QAAM+7E,KAAK,GAAG,EAAd;;AAEA,QAAMC,WAAW,GAAG,SAAdA,WAAc,CAASC,MAAT,EAAiB;AACnC,aAAOA,MAAM,CAACzrC,KAAP,CAAa,EAAb,EAAiBvwC,GAAjB,CAAqB,UAAS62B,CAAT,EAAY;AACtC,eAAOqxB,QAAQ,CAACrxB,CAAD,EAAI,EAAJ,CAAR,GAAkB,CAAzB;AACD,OAFM,CAAP;AAGD,KAJD;;AAMA,SAAK,IAAI93B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGrD,IAAI,CAAC4rC,GAAL,CAAS,CAAT,EAAYvnC,MAAZ,CAApB,EAAyChB,CAAC,IAAI,CAA9C,EAAiD;AAC/C,UAAMi9E,MAAM,GAAGC,IAAI,CAACl9E,CAAC,CAACsD,QAAF,CAAW,CAAX,CAAD,EAAgB,GAAhB,EAAqBtC,MAArB,CAAnB;AAEA+7E,WAAK,CAACjmE,IAAN,CAAWkmE,WAAW,CAACC,MAAD,CAAtB;AACD;;AAED,WAAOF,KAAP;AACD;;AAED,WAASjB,UAAT,GAAsB;AACpB,QAAMtsC,KAAK,GAAG,EAAd;;AAEA,SAAK,IAAMhpB,GAAX,IAAkBgqC,MAAlB,EAA0B;AACxB,UAAIA,MAAM,CAAC/lC,cAAP,CAAsBjE,GAAtB,CAAJ,EAAgC;AAC9BgpB,aAAK,CAACld,OAAN,CAAck+B,MAAM,CAAChqC,GAAD,CAApB;AACD;AACF;;AAED,WAAOgpB,KAAP;AACD;AACF;;AAED,SAAS8rC,aAAT,CAAuBziD,CAAvB,EAA0BC,CAA1B,EAA6B;AAC3B,SAAOD,CAAC,KAAKC,CAAb;AACD;;AAED,SAASgkD,cAAT,CAAwBttC,KAAxB,EAA+B;AAC7B,MAAI6d,KAAK,GAAG,CAAZ;;AAEA,OAAK,IAAIrtD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwvC,KAAK,CAACxuC,MAA1B,EAAkChB,CAAC,IAAI,CAAvC,EAA0C;AACxC,QAAIwvC,KAAK,CAACxvC,CAAD,CAAL,KAAa,CAAjB,EAAoB;AAClBqtD,WAAK,IAAI,CAAT;AACD;AACF;;AAED,SAAOA,KAAP;AACD;;AAED,SAAS6vB,IAAT,CAAcD,MAAd,EAAsBE,SAAtB,EAAiCn8E,MAAjC,EAAyC;AACvC,MAAMwuC,KAAK,GAAG,IAAIpmC,KAAJ,CAAUpI,MAAM,GAAG,CAAnB,CAAd;AACA,MAAMo8E,GAAG,GAAG5tC,KAAK,CAAC49B,IAAN,CAAW+P,SAAX,CAAZ;AAEA,SAAO,CAACC,GAAG,GAAGH,MAAP,EAAezuD,KAAf,CAAqB,CAACxtB,MAAtB,CAAP;AACD,C;;;;;;;;;;;;AC7KD;AAAA;AAAA;AAAA;AAEe,SAASqkE,0BAAT,CAAoC1/D,GAApC,EAAyC;AAAA,MAC9CnG,OAD8C,GAClCmG,GAAG,CAACE,MAD8B,CAC9CrG,OAD8C;AAAA,0BAEHmG,GAAG,CAACE,MAAJ,CAAW4F,KAFR;AAAA,MAEvCm1C,UAFuC,qBAE9CtiD,KAF8C;AAAA,MAEnByiD,WAFmB,qBAE3BviD,MAF2B;AAGtD,MAAMyuD,iBAAiB,GAAGf,gEAAe,CAAC1sD,OAAO,CAACpD,KAAT,EAAgBoD,OAAO,CAACnD,GAAxB,CAAzC;AAEA,MAAIsnE,IAAI,GAAG1W,iBAAiB,CAAC3uD,KAAlB,GAA0B2uD,iBAAiB,CAAClrD,IAAvD;AACA,MAAI7C,IAAI,GAAG+tD,iBAAiB,CAAClrD,IAA7B;AACA,MAAI6hE,IAAI,GAAG3W,iBAAiB,CAACjrD,GAAlB,GAAwBirD,iBAAiB,CAACzuD,MAArD;AACA,MAAIY,IAAI,GAAG6tD,iBAAiB,CAACjrD,GAA7B;AAEA9C,MAAI,GAAGvC,IAAI,CAACkY,KAAL,CAAW3V,IAAX,CAAP;AACAE,MAAI,GAAGzC,IAAI,CAACkY,KAAL,CAAWzV,IAAX,CAAP;AACAukE,MAAI,GAAGhnE,IAAI,CAACkY,KAAL,CAAW8uD,IAAX,CAAP;AACAC,MAAI,GAAGjnE,IAAI,CAACkY,KAAL,CAAW+uD,IAAX,CAAP;AAEAD,MAAI,GAAGhnE,IAAI,CAACwC,GAAL,CAASyhD,UAAT,EAAqB+iB,IAArB,CAAP;AACAzkE,MAAI,GAAGvC,IAAI,CAACkH,GAAL,CAAS,CAAT,EAAY3E,IAAZ,CAAP;AACA0kE,MAAI,GAAGjnE,IAAI,CAACwC,GAAL,CAAS4hD,WAAT,EAAsB6iB,IAAtB,CAAP;AACAxkE,MAAI,GAAGzC,IAAI,CAACkH,GAAL,CAAS,CAAT,EAAYzE,IAAZ,CAAP;AAEA,SAAO,CAAC,CAACF,IAAD,EAAOE,IAAP,CAAD,EAAe,CAACukE,IAAD,EAAOC,IAAP,CAAf,CAAP;AACD,C;;;;;;;;;;;;ACvBD;AAAA;AAAe,SAAS8B,2BAAT,CAAqCD,QAArC,EAA+Ch6D,KAA/C,EAAsD;AACnE,MAAIvM,IAAI,GAAGm4B,QAAX;AACA,MAAIssC,IAAI,GAAG,CAAX;AACA,MAAIvkE,IAAI,GAAGi4B,QAAX;AACA,MAAIusC,IAAI,GAAG,CAAX;AAJmE,MAK3DtlE,KAL2D,GAKzCmN,KALyC,CAK3DnN,KAL2D;AAAA,MAKpDE,MALoD,GAKzCiN,KALyC,CAKpDjN,MALoD;AAOnEinE,UAAQ,CAACrkE,OAAT,CAAiB,UAAA82B,CAAC,EAAI;AACpBh5B,QAAI,GAAGvC,IAAI,CAACwC,GAAL,CAAS+4B,CAAC,CAAC,CAAD,CAAV,EAAeh5B,IAAf,CAAP;AACAykE,QAAI,GAAGhnE,IAAI,CAACkH,GAAL,CAASq0B,CAAC,CAAC,CAAD,CAAV,EAAeyrC,IAAf,CAAP;AACAvkE,QAAI,GAAGzC,IAAI,CAACwC,GAAL,CAAS+4B,CAAC,CAAC,CAAD,CAAV,EAAe94B,IAAf,CAAP;AACAwkE,QAAI,GAAGjnE,IAAI,CAACkH,GAAL,CAASq0B,CAAC,CAAC,CAAD,CAAV,EAAe0rC,IAAf,CAAP;AACD,GALD;AAOA1kE,MAAI,GAAGvC,IAAI,CAACkY,KAAL,CAAW3V,IAAX,CAAP;AACAE,MAAI,GAAGzC,IAAI,CAACkY,KAAL,CAAWzV,IAAX,CAAP;AACAukE,MAAI,GAAGhnE,IAAI,CAACkY,KAAL,CAAW8uD,IAAX,CAAP;AACAC,MAAI,GAAGjnE,IAAI,CAACkY,KAAL,CAAW+uD,IAAX,CAAP;AAEAD,MAAI,GAAGhnE,IAAI,CAACwC,GAAL,CAASb,KAAT,EAAgBqlE,IAAhB,CAAP;AACAzkE,MAAI,GAAGvC,IAAI,CAACkH,GAAL,CAAS,CAAT,EAAY3E,IAAZ,CAAP;AACA0kE,MAAI,GAAGjnE,IAAI,CAACwC,GAAL,CAASX,MAAT,EAAiBolE,IAAjB,CAAP;AACAxkE,MAAI,GAAGzC,IAAI,CAACkH,GAAL,CAAS,CAAT,EAAYzE,IAAZ,CAAP;AAEA,SAAO,CAAC,CAACF,IAAD,EAAOE,IAAP,CAAD,EAAe,CAACukE,IAAD,EAAOC,IAAP,CAAf,CAAP;AACD,C;;;;;;;;;;;;ACzBD;AAAA;AAAA;;;;;;;;;;;;AAYe,SAASrD,SAAT,CACb7iE,MADa,EAEbqU,IAFa,EAGbge,OAHa,EAMb;AAAA,MAFAstD,MAEA,uEAFS,CAET;AAAA,MADAC,MACA,uEADS,CACT;AACA,MAAMC,EAAE,GAAG5gF,IAAI,CAACkY,KAAL,CAAWwoE,MAAX,CAAX;AACA,MAAMG,EAAE,GAAG7gF,IAAI,CAACkY,KAAL,CAAWyoE,MAAX,CAAX;;AAEA,MAAI5/E,MAAM,KAAK,CAAf,EAAkB;AAChB,WAAO,CAAC,CAAC6/E,EAAD,EAAKC,EAAL,CAAD,CAAP;AACD;;AAED,MAAMC,WAAW,GAAG,EAApB;AACA,MAAIn5E,KAAK,GAAG,CAAZ;;AAEA,OAAK,IAAIzH,CAAC,GAAG,CAACa,MAAd,EAAsBb,CAAC,IAAIa,MAA3B,EAAmCb,CAAC,EAApC,EAAwC;AACtC,QAAMygF,OAAM,GAAGE,EAAE,GAAG3gF,CAApB;;AAEA,QAAIygF,OAAM,GAAGvrE,IAAT,IAAiBurE,OAAM,GAAG,CAA9B,EAAiC;AAC/B;AACD;;AAED,SAAK,IAAIxgF,CAAC,GAAG,CAACY,MAAd,EAAsBZ,CAAC,IAAIY,MAA3B,EAAmCZ,CAAC,EAApC,EAAwC;AACtC,UAAMugF,OAAM,GAAGE,EAAE,GAAGzgF,CAApB;;AAEA,UAAIugF,OAAM,IAAIttD,OAAV,IAAqBstD,OAAM,GAAG,CAAlC,EAAqC;AACnC;AACD;;AAED,UAAIvgF,CAAC,GAAGA,CAAJ,GAAQD,CAAC,GAAGA,CAAZ,GAAgBa,MAAM,GAAGA,MAA7B,EAAqC;AACnC+/E,mBAAW,CAACn5E,KAAK,EAAN,CAAX,GAAuB,CAACi5E,EAAE,GAAGzgF,CAAN,EAAS0gF,EAAE,GAAG3gF,CAAd,CAAvB;AACD;AACF;AACF;;AAED,SAAO4gF,WAAP;AACD,C;;;;;;;;;;;;AClDD;AAAA;AAAe,SAAS1uD,uBAAT,CACbkuC,iBADa,EAEbC,YAFa,EAGb;AACA,MAAMpuC,IAAI,GAAG,EAAb;;AAEA,OAAK,IAAI9uB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi9D,iBAAiB,CAACj8D,MAAtC,EAA8ChB,CAAC,EAA/C,EAAmD;AACjD,QAAIi9D,iBAAiB,CAACj9D,CAAD,CAAjB,KAAyBk9D,YAAY,CAACl9D,CAAD,CAAzC,EAA8C;AAC5C8uB,UAAI,CAAChY,IAAL,CAAU,CAAC9W,CAAD,EAAIi9D,iBAAiB,CAACj9D,CAAD,CAArB,EAA0Bk9D,YAAY,CAACl9D,CAAD,CAAtC,CAAV;AACD;AACF;;AAED,SAAO8uB,IAAP;AACD,C;;;;;;;;;;;;ACbD;AAAA;AAAA;AAEA,IAAM4uD,YAAY,GAAG,IAAI/gF,IAAI,CAACmf,IAAL,CAAU,CAAV,CAAzB,C,CAAuC;;AAEvC,IAAM6hE,UAAU,GAAG;AACjBC,IAAE,EAAE;AACF9gF,KAAC,EAAE,CADD;AAEFD,KAAC,EAAE;AAFD,GADa;AAKjBghF,SAAO,EAAE;AACP/gF,KAAC,EAAE4gF,YADI;AAEP7gF,KAAC,EAAE6gF;AAFI,GALQ;AASjBnoE,OAAK,EAAE;AACLzY,KAAC,EAAE,CADE;AAELD,KAAC,EAAE;AAFE,GATU;AAajBihF,WAAS,EAAE;AACThhF,KAAC,EAAE4gF,YADM;AAET7gF,KAAC,EAAE,CAAC6gF;AAFK,GAbM;AAiBjBK,MAAI,EAAE;AACJjhF,KAAC,EAAE,CADC;AAEJD,KAAC,EAAE;AAFC,GAjBW;AAqBjBmhF,UAAQ,EAAE;AACRlhF,KAAC,EAAE,CAAC4gF,YADI;AAER7gF,KAAC,EAAE,CAAC6gF;AAFI,GArBO;AAyBjB37E,MAAI,EAAE;AACJjF,KAAC,EAAE,CAAC,CADA;AAEJD,KAAC,EAAE;AAFC,GAzBW;AA6BjBohF,QAAM,EAAE;AACNnhF,KAAC,EAAE,CAAC4gF,YADE;AAEN7gF,KAAC,EAAE6gF;AAFG;AA7BS,CAAnB;AAmCA;;;;;;;;;;AASe,yEAAS9pB,EAAT,EAAaC,EAAb,EAAiB;AAC9B,MAAM3yD,CAAC,GAAG;AACRpE,KAAC,EAAE82D,EAAE,CAAC92D,CADE;AAERD,KAAC,EAAE+2D,EAAE,CAAC/2D;AAFE,GAAV;AAKA,MAAMkB,IAAI,GAAG,EAAb;;AAEA,SAAO81D,EAAE,CAAC/2D,CAAH,KAASoE,CAAC,CAACpE,CAAX,IAAgB+2D,EAAE,CAACh3D,CAAH,KAASqE,CAAC,CAACrE,CAAlC,EAAqC;AACnC,QAAIg3D,EAAE,CAAC/2D,CAAH,KAASoE,CAAC,CAACpE,CAAf,EAAkB;AAChB;AACA,UAAI+2D,EAAE,CAACh3D,CAAH,GAAOqE,CAAC,CAACrE,CAAb,EAAgB;AACdqE,SAAC,CAACrE,CAAF;AACD,OAFD,MAEO;AACLqE,SAAC,CAACrE,CAAF;AACD;AACF,KAPD,MAOO,IAAIg3D,EAAE,CAACh3D,CAAH,KAASqE,CAAC,CAACrE,CAAf,EAAkB;AACvB;AACA,UAAIg3D,EAAE,CAAC/2D,CAAH,GAAOoE,CAAC,CAACpE,CAAb,EAAgB;AACdoE,SAAC,CAACpE,CAAF;AACD,OAFD,MAEO;AACLoE,SAAC,CAACpE,CAAF;AACD;AACF,KAPM,MAOA,IAAI+2D,EAAE,CAACh3D,CAAH,GAAOqE,CAAC,CAACrE,CAAb,EAAgB;AACrB,UAAIg3D,EAAE,CAAC/2D,CAAH,GAAOoE,CAAC,CAACpE,CAAb,EAAgB;AACd;AACAohF,mBAAW,CAACh9E,CAAD,EAAI2yD,EAAJ,CAAX;AACD,OAHD,MAGO;AACL;AACAsqB,kBAAU,CAACj9E,CAAD,EAAI2yD,EAAJ,CAAV;AACD;AACF,KARM,MAQA,IAAIA,EAAE,CAAC/2D,CAAH,GAAOoE,CAAC,CAACpE,CAAb,EAAgB;AACrB;AACAshF,mBAAa,CAACl9E,CAAD,EAAI2yD,EAAJ,CAAb;AACD,KAHM,MAGA;AACL;AACAwqB,kBAAY,CAACn9E,CAAD,EAAI2yD,EAAJ,CAAZ;AACD;;AAED91D,QAAI,CAAC+Y,IAAL,CAAU;AACRha,OAAC,EAAEoE,CAAC,CAACpE,CADG;AAERD,OAAC,EAAEqE,CAAC,CAACrE;AAFG,KAAV;AAID;;AAEDkB,MAAI,CAACisC,GAAL,GA7C8B,CA6ClB;;AAEZ,SAAOjsC,IAAP;AACD;AAED;;;;;;;;AAOA,SAASmgF,WAAT,CAAqBh9E,CAArB,EAAwB2yD,EAAxB,EAA4B;AAC1B,MAAMyqB,UAAU,GAAGC,mBAAmB,CAACr9E,CAAD,EAAI2yD,EAAJ,CAAtC,CAD0B,CAG1B;;AACA,MAAM2qB,WAAW,GAAG,CAClBC,YAAY,CAACH,UAAD,EAAaX,UAAU,CAACC,EAAxB,CADM,EAElBa,YAAY,CAACH,UAAD,EAAaX,UAAU,CAACpoE,KAAxB,CAFM,EAGlBkpE,YAAY,CAACH,UAAD,EAAaX,UAAU,CAACE,OAAxB,CAHM,CAApB;AAMA,MAAMa,YAAY,GAAGC,mCAAmC,CAACH,WAAD,CAAxD;;AAEA,UAAQE,YAAR;AACE,SAAK,CAAL;AACEx9E,OAAC,CAACrE,CAAF;AACA;;AACF,SAAK,CAAL;AACEqE,OAAC,CAACpE,CAAF;AACA;;AACF,SAAK,CAAL;AACEoE,OAAC,CAACrE,CAAF;AACAqE,OAAC,CAACpE,CAAF;AATJ;AAWD;AAED;;;;;;;;;AAOA,SAASqhF,UAAT,CAAoBj9E,CAApB,EAAuB2yD,EAAvB,EAA2B;AACzB,MAAMyqB,UAAU,GAAGC,mBAAmB,CAACr9E,CAAD,EAAI2yD,EAAJ,CAAtC,CADyB,CAGzB;;AACA,MAAM2qB,WAAW,GAAG,CAClBC,YAAY,CAACH,UAAD,EAAaX,UAAU,CAACC,EAAxB,CADM,EAElBa,YAAY,CAACH,UAAD,EAAaX,UAAU,CAAC57E,IAAxB,CAFM,EAGlB08E,YAAY,CAACH,UAAD,EAAaX,UAAU,CAACM,MAAxB,CAHM,CAApB;AAMA,MAAMS,YAAY,GAAGC,mCAAmC,CAACH,WAAD,CAAxD;;AAEA,UAAQE,YAAR;AACE,SAAK,CAAL;AACEx9E,OAAC,CAACrE,CAAF;AACA;;AACF,SAAK,CAAL;AACEqE,OAAC,CAACpE,CAAF;AACA;;AACF,SAAK,CAAL;AACEoE,OAAC,CAACrE,CAAF;AACAqE,OAAC,CAACpE,CAAF;AATJ;AAWD;AAED;;;;;;;;;AAOA,SAASshF,aAAT,CAAuBl9E,CAAvB,EAA0B2yD,EAA1B,EAA8B;AAC5B,MAAMyqB,UAAU,GAAGC,mBAAmB,CAACr9E,CAAD,EAAI2yD,EAAJ,CAAtC,CAD4B,CAG5B;;AACA,MAAM2qB,WAAW,GAAG,CAClBC,YAAY,CAACH,UAAD,EAAaX,UAAU,CAACI,IAAxB,CADM,EAElBU,YAAY,CAACH,UAAD,EAAaX,UAAU,CAACpoE,KAAxB,CAFM,EAGlBkpE,YAAY,CAACH,UAAD,EAAaX,UAAU,CAACG,SAAxB,CAHM,CAApB;AAMA,MAAMY,YAAY,GAAGC,mCAAmC,CAACH,WAAD,CAAxD;;AAEA,UAAQE,YAAR;AACE,SAAK,CAAL;AACEx9E,OAAC,CAACrE,CAAF;AACA;;AACF,SAAK,CAAL;AACEqE,OAAC,CAACpE,CAAF;AACA;;AACF,SAAK,CAAL;AACEoE,OAAC,CAACrE,CAAF;AACAqE,OAAC,CAACpE,CAAF;AATJ;AAWD;AAED;;;;;;;;;AAOA,SAASuhF,YAAT,CAAsBn9E,CAAtB,EAAyB2yD,EAAzB,EAA6B;AAC3B,MAAMyqB,UAAU,GAAGC,mBAAmB,CAACr9E,CAAD,EAAI2yD,EAAJ,CAAtC,CAD2B,CAG3B;;AACA,MAAM2qB,WAAW,GAAG,CAClBC,YAAY,CAACH,UAAD,EAAaX,UAAU,CAACI,IAAxB,CADM,EAElBU,YAAY,CAACH,UAAD,EAAaX,UAAU,CAAC57E,IAAxB,CAFM,EAGlB08E,YAAY,CAACH,UAAD,EAAaX,UAAU,CAACK,QAAxB,CAHM,CAApB;AAMA,MAAMU,YAAY,GAAGC,mCAAmC,CAACH,WAAD,CAAxD;;AAEA,UAAQE,YAAR;AACE,SAAK,CAAL;AACEx9E,OAAC,CAACrE,CAAF;AACA;;AACF,SAAK,CAAL;AACEqE,OAAC,CAACpE,CAAF;AACA;;AACF,SAAK,CAAL;AACEoE,OAAC,CAACrE,CAAF;AACAqE,OAAC,CAACpE,CAAF;AATJ;AAWD;AAED;;;;;;;;;AAOA,SAASyhF,mBAAT,CAA6Br9E,CAA7B,EAAgC2yD,EAAhC,EAAoC;AAClC,MAAM1gD,QAAQ,GAAGvV,2DAAQ,CAAC+D,eAAT,CAAyBC,KAAzB,CAA+BuR,QAA/B,CAAwCjS,CAAxC,EAA2C2yD,EAA3C,CAAjB;AAEA,SAAO;AACL/2D,KAAC,EAAE,CAAC+2D,EAAE,CAAC/2D,CAAH,GAAOoE,CAAC,CAACpE,CAAV,IAAeqW,QADb;AAELtW,KAAC,EAAE,CAACg3D,EAAE,CAACh3D,CAAH,GAAOqE,CAAC,CAACrE,CAAV,IAAesW;AAFb,GAAP;AAID;;AAED,SAASsrE,YAAT,CAAsBv9E,CAAtB,EAAyB2yD,EAAzB,EAA6B;AAC3B,SAAO3yD,CAAC,CAACpE,CAAF,GAAM+2D,EAAE,CAAC/2D,CAAT,GAAaoE,CAAC,CAACrE,CAAF,GAAMg3D,EAAE,CAACh3D,CAA7B;AACD;AAED;;;;;;;;AAMA,SAAS8hF,mCAAT,CAA6CnvC,KAA7C,EAAoD;AAClD,MAAIkvC,YAAY,GAAGlvC,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAhB,GAAsB,CAAtB,GAA0B,CAA7C;;AAEA,MAAIA,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAACkvC,YAAD,CAApB,EAAoC;AAClCA,gBAAY,GAAG,CAAf;AACD;;AAED,SAAOA,YAAP;AACD,C;;;;;;;;;;;;ACpQD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACbA;AAAA;AAAA;;;;;;;;;AASe,SAAS1D,aAAT,CAAuBpmE,UAAvB,EAAmC3C,SAAnC,EAA8CW,YAA9C,EAA4D;AACzE,SAAOX,SAAS,CAAC2C,UAAD,CAAT,KAA0BhC,YAAjC;AACD,C;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;;;;;;;AAMe,SAASy4B,4BAAT,CAAsC7tC,OAAtC,EAA+CyT,aAA/C,EAA8D;AAAA,mBACvDxL,wDAAS,CAAC,cAAD,CAD8C;AAAA,MACnEwD,OADmE,cACnEA,OADmE;;AAG3EgI,eAAa,GACXA,aAAa,KAAKhU,SAAlB,GACIgM,OAAO,CAAC6P,mBAAR,CAA4Btb,OAA5B,CADJ,GAEIyT,aAHN;AAKArT,0DAAQ,CAACC,WAAT,CAAqBuK,YAArB,CAAkC5K,OAAlC,EAA2CqJ,kDAAM,CAACwY,iBAAlD,EAAqE;AACnEpO,iBAAa,EAAbA;AADmE,GAArE;AAGD,C;;;;;;;;;;;;ACrBD;AAAA;AAAA;AAEA;;;;;;;;;;;;;;AAae,yEAASsG,cAAT,EAAyBvb,OAAzB,EAAkCwH,QAAlC,EAA4C;AACzD,MAAMo7E,SAAS,GAAG,GAAlB;AAEAhhF,6DAAQ,CAACC,WAAT,CAAqBikD,0BAArB,CACEvqC,cADF,EAEEvb,OAFF,EAGE4iF,SAHF,EAHyD,CAQzD;;AACA,MAAMC,cAAc,GAAGr7E,QAAQ,GAAG+T,cAAc,CAACnZ,QAAf,CAAwBM,KAAnC,GAA2CkgF,SAAlE,CATyD,CAUzD;;AACA,MAAME,UAAU,GAAGt7E,QAAQ,GAAG+T,cAAc,CAACnZ,QAAf,CAAwBM,KAAnC,GAA2CkgF,SAA9D;AAEA,SAAO;AACLp7E,YAAQ,EAAEq7E,cADL;AAELC,cAAU,EAAVA,UAFK;AAGLF,aAAS,EAATA;AAHK,GAAP;AAKD,C;;;;;;;;;;;;ACjCD;AAAA;AAAA;AAAA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,SAASl1D,QAAT,CAAkBw/C,IAAlB,EAAwBv/C,IAAxB,EAA8B5sB,OAA9B,EAAuC;AACrC,MAAI0sE,OAAO,GAAG,IAAd;AACA,MAAIE,QAAQ,GAAG,IAAf;;AAEA,MAAI,OAAOT,IAAP,KAAgB,UAApB,EAAgC;AAC9B,UAAM,IAAIW,SAAJ,CAAc,qBAAd,CAAN;AACD;;AACD,MAAItgD,4DAAQ,CAACxsB,OAAD,CAAZ,EAAuB;AACrB0sE,WAAO,GAAG,aAAa1sE,OAAb,GAAuBw5C,OAAO,CAACx5C,OAAO,CAAC0sE,OAAT,CAA9B,GAAkDA,OAA5D;AACAE,YAAQ,GAAG,cAAc5sE,OAAd,GAAwBw5C,OAAO,CAACx5C,OAAO,CAAC4sE,QAAT,CAA/B,GAAoDA,QAA/D;AACD;;AAED,SAAOxgD,4DAAQ,CAAC+/C,IAAD,EAAOv/C,IAAP,EAAa;AAC1B8/C,WAAO,EAAPA,OAD0B;AAE1BE,YAAQ,EAARA,QAF0B;AAG1BN,WAAO,EAAE1/C;AAHiB,GAAb,CAAf;AAKD;;AAEcD,uEAAf,E;;;;;;;;;;;;ACtEA;AAAA;AAAA;;;;;;;;;;AAUe,SAASthB,YAAT,CAAsB22E,EAAtB,EAA0B9xE,IAA1B,EAA+C;AAAA,MAAfpH,MAAe,uEAAN,IAAM;AAC5D,MAAIuK,KAAJ,CAD4D,CAG5D;;AACA,MAAI,OAAOgO,MAAM,CAAC4gE,WAAd,KAA8B,UAAlC,EAA8C;AAC5C5uE,SAAK,GAAG,IAAI4uE,WAAJ,CAAgB/xE,IAAhB,EAAsB;AAC5BpH,YAAM,EAANA,MAD4B;AAE5Bo5E,gBAAU,EAAE;AAFgB,KAAtB,CAAR;AAID,GALD,MAKO;AACL7uE,SAAK,GAAGkC,QAAQ,CAACu0D,WAAT,CAAqB,aAArB,CAAR;AACAz2D,SAAK,CAAC8uE,eAAN,CAAsBjyE,IAAtB,EAA4B,IAA5B,EAAkC,IAAlC,EAAwCpH,MAAxC;AACD;;AAED,SAAOk5E,EAAE,CAAChY,aAAH,CAAiB32D,KAAjB,CAAP;AACD,C;;;;;;;;;;;;ACzBD;AAAA;AAAe,SAAS8tB,MAAT,GAAkB;AAC/B,SAAO,uCAAuCpN,OAAvC,CAA+C,OAA/C,EAAwD,UAASgH,CAAT,EAAY;AACzE,QAAIgO,CAAC,GAAInpC,IAAI,CAACwiF,MAAL,KAAgB,EAAjB,GAAuB,CAA/B;AAAA,QACEjnD,CAAC,GAAGJ,CAAC,IAAI,GAAL,GAAWgO,CAAX,GAAgBA,CAAC,GAAG,GAAL,GAAY,GADjC;AAGA,WAAO5N,CAAC,CAAC50B,QAAF,CAAW,EAAX,CAAP;AACD,GALM,CAAP;AAMD,C;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAA;AAAA;AAEA;;;;;;;;;AAQO,IAAMqmB,IAAI,GAAG,SAAPA,IAAO,CAAAwiD,EAAE;AAAA,SAAI,IAAIjlC,OAAJ,CAAY,UAAAC,OAAO;AAAA,WAAI/uB,UAAU,CAAC+uB,OAAD,EAAUglC,EAAV,CAAd;AAAA,GAAnB,CAAJ;AAAA,CAAf;AAEP;;;;;;;;;;;AAUO,SAASviD,gCAAT,CAA0CpsB,OAA1C,EAAmD;AACxD,MAAI;AACF,QAAM+Z,cAAc,GAAG3Z,2DAAQ,CAACC,WAAT,CAAqB2Z,iBAArB,CAAuCha,OAAvC,CAAvB;;AAEA,QAAI,CAAC+Z,cAAc,CAAC9L,KAApB,EAA2B;AACzB,aAAOke,IAAI,CAAC,GAAD,CAAJ,CAAUyI,IAAV,CAAe;AAAA,eAAMxI,gCAAgC,CAACpsB,OAAD,CAAtC;AAAA,OAAf,CAAP;AACD,KALC,CAOF;;;AACA,WAAO+Z,cAAP;AACD,GATD,CASE,OAAO6nE,EAAP,EAAW;AACX;AACA,WAAO,IAAP;AACD;AACF;AAEcz1D,mEAAf,E;;;;;;;;;;;;ACtCA;AAAA;;;;;;;;;;;AAWe,yEAASvrB,QAAT,EAAmB8nD,KAAnB,EAA0Bm5B,WAA1B,EAAuC;AAAA,MAC5Cp5B,QAD4C,GACrBo5B,WADqB,CAC5Cp5B,QAD4C;AAAA,MAClCD,QADkC,GACrBq5B,WADqB,CAClCr5B,QADkC;AAEpD,MAAMzd,GAAG,GAAG,GAAZ;AACA,MAAM+2C,SAAS,GAAG3iF,IAAI,CAACwK,GAAL,CAAS/I,QAAQ,CAACM,KAAlB,IAA2B/B,IAAI,CAACwK,GAAL,CAASohC,GAAT,CAA7C;AACA,MAAMg3C,MAAM,GAAGD,SAAS,GAAGp5B,KAA3B;AACA,MAAMxnD,KAAK,GAAG/B,IAAI,CAAC4rC,GAAL,CAASA,GAAT,EAAcg3C,MAAd,CAAd;;AAEA,MAAIt5B,QAAQ,IAAIvnD,KAAK,GAAGunD,QAAxB,EAAkC;AAChC7nD,YAAQ,CAACM,KAAT,GAAiBunD,QAAjB;AACD,GAFD,MAEO,IAAID,QAAQ,IAAItnD,KAAK,GAAGsnD,QAAxB,EAAkC;AACvC5nD,YAAQ,CAACM,KAAT,GAAiBsnD,QAAjB;AACD,GAFM,MAEA;AACL5nD,YAAQ,CAACM,KAAT,GAAiBA,KAAjB;AACD;;AAED,SAAON,QAAP;AACD,C;;;;;;;;;;;;AC3BD;AAAA;;;;;;;;;AASe,yEAASg1B,KAAT,EAAgBosD,mBAAhB,EAAqC;AAAA,MAC1Cp6E,KAD0C,GACfo6E,mBADe,CAC1Cp6E,KAD0C;AAAA,MACnCC,KADmC,GACfm6E,mBADe,CACnCn6E,KADmC;AAAA,MAC5BzG,QAD4B,GACf4gF,mBADe,CAC5B5gF,QAD4B,EAGlD;;AACAw0B,OAAK,CAACt2B,CAAN,IAAWsI,KAAK,GAAG,CAAC,CAAJ,GAAQ,CAAxB;AACAguB,OAAK,CAACv2B,CAAN,IAAWwI,KAAK,GAAG,CAAC,CAAJ,GAAQ,CAAxB,CALkD,CAOlD;;AACA,MAAIzG,QAAQ,KAAK,CAAjB,EAAoB;AAClB,QAAMlC,KAAK,GAAIkC,QAAQ,GAAGjC,IAAI,CAACU,EAAjB,GAAuB,GAArC;AAEA,QAAMoiF,IAAI,GAAG9iF,IAAI,CAACS,GAAL,CAASV,KAAT,CAAb;AACA,QAAMgjF,IAAI,GAAG/iF,IAAI,CAACW,GAAL,CAASZ,KAAT,CAAb;AAEA,QAAMijF,IAAI,GAAGvsD,KAAK,CAACt2B,CAAN,GAAU2iF,IAAV,GAAiBrsD,KAAK,CAACv2B,CAAN,GAAU6iF,IAAxC;AACA,QAAME,IAAI,GAAGxsD,KAAK,CAACt2B,CAAN,GAAU4iF,IAAV,GAAiBtsD,KAAK,CAACv2B,CAAN,GAAU4iF,IAAxC;AAEArsD,SAAK,CAACt2B,CAAN,GAAU6iF,IAAV;AACAvsD,SAAK,CAACv2B,CAAN,GAAU+iF,IAAV;AACD;;AAED,SAAOxsD,KAAP;AACD,C;;;;;;;;;;;;AC/BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;CAGA;;CAGA;;AACe;AACbgzB,qBAAmB,EAAnBA,+DADa;AAEbC,cAAY,EAAZA,wDAAYA;AAFC,CAAf,E;;;;;;;;;;;;ACPA;AAAe,uEAAf,E","file":"cornerstoneTools.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"cornerstone-tools\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cornerstone-tools\"] = factory();\n\telse\n\t\troot[\"cornerstoneTools\"] = factory();\n})(window, function() {\nreturn "," \tfunction hotDisposeChunk(chunkId) {\n \t\tdelete installedChunks[chunkId];\n \t}\n \tvar parentHotUpdateCallback = window[\"webpackHotUpdate\"];\n \twindow[\"webpackHotUpdate\"] = // eslint-disable-next-line no-unused-vars\n \tfunction webpackHotUpdateCallback(chunkId, moreModules) {\n \t\thotAddUpdateChunk(chunkId, moreModules);\n \t\tif (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);\n \t} ;\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotDownloadUpdateChunk(chunkId) {\n \t\tvar script = document.createElement(\"script\");\n \t\tscript.charset = \"utf-8\";\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".\" + hotCurrentHash + \".hot-update.js\";\n \t\tif (null) script.crossOrigin = null;\n \t\tdocument.head.appendChild(script);\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotDownloadManifest(requestTimeout) {\n \t\trequestTimeout = requestTimeout || 10000;\n \t\treturn new Promise(function(resolve, reject) {\n \t\t\tif (typeof XMLHttpRequest === \"undefined\") {\n \t\t\t\treturn reject(new Error(\"No browser support\"));\n \t\t\t}\n \t\t\ttry {\n \t\t\t\tvar request = new XMLHttpRequest();\n \t\t\t\tvar requestPath = __webpack_require__.p + \"\" + hotCurrentHash + \".hot-update.json\";\n \t\t\t\trequest.open(\"GET\", requestPath, true);\n \t\t\t\trequest.timeout = requestTimeout;\n \t\t\t\trequest.send(null);\n \t\t\t} catch (err) {\n \t\t\t\treturn reject(err);\n \t\t\t}\n \t\t\trequest.onreadystatechange = function() {\n \t\t\t\tif (request.readyState !== 4) return;\n \t\t\t\tif (request.status === 0) {\n \t\t\t\t\t// timeout\n \t\t\t\t\treject(\n \t\t\t\t\t\tnew Error(\"Manifest request to \" + requestPath + \" timed out.\")\n \t\t\t\t\t);\n \t\t\t\t} else if (request.status === 404) {\n \t\t\t\t\t// no update available\n \t\t\t\t\tresolve();\n \t\t\t\t} else if (request.status !== 200 && request.status !== 304) {\n \t\t\t\t\t// other failure\n \t\t\t\t\treject(new Error(\"Manifest request to \" + requestPath + \" failed.\"));\n \t\t\t\t} else {\n \t\t\t\t\t// success\n \t\t\t\t\ttry {\n \t\t\t\t\t\tvar update = JSON.parse(request.responseText);\n \t\t\t\t\t} catch (e) {\n \t\t\t\t\t\treject(e);\n \t\t\t\t\t\treturn;\n \t\t\t\t\t}\n \t\t\t\t\tresolve(update);\n \t\t\t\t}\n \t\t\t};\n \t\t});\n \t}\n\n \tvar hotApplyOnUpdate = true;\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentHash = \"6dad0a126f110a3e24b6\";\n \tvar hotRequestTimeout = 10000;\n \tvar hotCurrentModuleData = {};\n \tvar hotCurrentChildModule;\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentParents = [];\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentParentsTemp = [];\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotCreateRequire(moduleId) {\n \t\tvar me = installedModules[moduleId];\n \t\tif (!me) return __webpack_require__;\n \t\tvar fn = function(request) {\n \t\t\tif (me.hot.active) {\n \t\t\t\tif (installedModules[request]) {\n \t\t\t\t\tif (installedModules[request].parents.indexOf(moduleId) === -1) {\n \t\t\t\t\t\tinstalledModules[request].parents.push(moduleId);\n \t\t\t\t\t}\n \t\t\t\t} else {\n \t\t\t\t\thotCurrentParents = [moduleId];\n \t\t\t\t\thotCurrentChildModule = request;\n \t\t\t\t}\n \t\t\t\tif (me.children.indexOf(request) === -1) {\n \t\t\t\t\tme.children.push(request);\n \t\t\t\t}\n \t\t\t} else {\n \t\t\t\tconsole.warn(\n \t\t\t\t\t\"[HMR] unexpected require(\" +\n \t\t\t\t\t\trequest +\n \t\t\t\t\t\t\") from disposed module \" +\n \t\t\t\t\t\tmoduleId\n \t\t\t\t);\n \t\t\t\thotCurrentParents = [];\n \t\t\t}\n \t\t\treturn __webpack_require__(request);\n \t\t};\n \t\tvar ObjectFactory = function ObjectFactory(name) {\n \t\t\treturn {\n \t\t\t\tconfigurable: true,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: function() {\n \t\t\t\t\treturn __webpack_require__[name];\n \t\t\t\t},\n \t\t\t\tset: function(value) {\n \t\t\t\t\t__webpack_require__[name] = value;\n \t\t\t\t}\n \t\t\t};\n \t\t};\n \t\tfor (var name in __webpack_require__) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(__webpack_require__, name) &&\n \t\t\t\tname !== \"e\" &&\n \t\t\t\tname !== \"t\"\n \t\t\t) {\n \t\t\t\tObject.defineProperty(fn, name, ObjectFactory(name));\n \t\t\t}\n \t\t}\n \t\tfn.e = function(chunkId) {\n \t\t\tif (hotStatus === \"ready\") hotSetStatus(\"prepare\");\n \t\t\thotChunksLoading++;\n \t\t\treturn __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {\n \t\t\t\tfinishChunkLoading();\n \t\t\t\tthrow err;\n \t\t\t});\n\n \t\t\tfunction finishChunkLoading() {\n \t\t\t\thotChunksLoading--;\n \t\t\t\tif (hotStatus === \"prepare\") {\n \t\t\t\t\tif (!hotWaitingFilesMap[chunkId]) {\n \t\t\t\t\t\thotEnsureUpdateChunk(chunkId);\n \t\t\t\t\t}\n \t\t\t\t\tif (hotChunksLoading === 0 && hotWaitingFiles === 0) {\n \t\t\t\t\t\thotUpdateDownloaded();\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t};\n \t\tfn.t = function(value, mode) {\n \t\t\tif (mode & 1) value = fn(value);\n \t\t\treturn __webpack_require__.t(value, mode & ~1);\n \t\t};\n \t\treturn fn;\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotCreateModule(moduleId) {\n \t\tvar hot = {\n \t\t\t// private stuff\n \t\t\t_acceptedDependencies: {},\n \t\t\t_declinedDependencies: {},\n \t\t\t_selfAccepted: false,\n \t\t\t_selfDeclined: false,\n \t\t\t_disposeHandlers: [],\n \t\t\t_main: hotCurrentChildModule !== moduleId,\n\n \t\t\t// Module API\n \t\t\tactive: true,\n \t\t\taccept: function(dep, callback) {\n \t\t\t\tif (dep === undefined) hot._selfAccepted = true;\n \t\t\t\telse if (typeof dep === \"function\") hot._selfAccepted = dep;\n \t\t\t\telse if (typeof dep === \"object\")\n \t\t\t\t\tfor (var i = 0; i < dep.length; i++)\n \t\t\t\t\t\thot._acceptedDependencies[dep[i]] = callback || function() {};\n \t\t\t\telse hot._acceptedDependencies[dep] = callback || function() {};\n \t\t\t},\n \t\t\tdecline: function(dep) {\n \t\t\t\tif (dep === undefined) hot._selfDeclined = true;\n \t\t\t\telse if (typeof dep === \"object\")\n \t\t\t\t\tfor (var i = 0; i < dep.length; i++)\n \t\t\t\t\t\thot._declinedDependencies[dep[i]] = true;\n \t\t\t\telse hot._declinedDependencies[dep] = true;\n \t\t\t},\n \t\t\tdispose: function(callback) {\n \t\t\t\thot._disposeHandlers.push(callback);\n \t\t\t},\n \t\t\taddDisposeHandler: function(callback) {\n \t\t\t\thot._disposeHandlers.push(callback);\n \t\t\t},\n \t\t\tremoveDisposeHandler: function(callback) {\n \t\t\t\tvar idx = hot._disposeHandlers.indexOf(callback);\n \t\t\t\tif (idx >= 0) hot._disposeHandlers.splice(idx, 1);\n \t\t\t},\n\n \t\t\t// Management API\n \t\t\tcheck: hotCheck,\n \t\t\tapply: hotApply,\n \t\t\tstatus: function(l) {\n \t\t\t\tif (!l) return hotStatus;\n \t\t\t\thotStatusHandlers.push(l);\n \t\t\t},\n \t\t\taddStatusHandler: function(l) {\n \t\t\t\thotStatusHandlers.push(l);\n \t\t\t},\n \t\t\tremoveStatusHandler: function(l) {\n \t\t\t\tvar idx = hotStatusHandlers.indexOf(l);\n \t\t\t\tif (idx >= 0) hotStatusHandlers.splice(idx, 1);\n \t\t\t},\n\n \t\t\t//inherit from previous dispose call\n \t\t\tdata: hotCurrentModuleData[moduleId]\n \t\t};\n \t\thotCurrentChildModule = undefined;\n \t\treturn hot;\n \t}\n\n \tvar hotStatusHandlers = [];\n \tvar hotStatus = \"idle\";\n\n \tfunction hotSetStatus(newStatus) {\n \t\thotStatus = newStatus;\n \t\tfor (var i = 0; i < hotStatusHandlers.length; i++)\n \t\t\thotStatusHandlers[i].call(null, newStatus);\n \t}\n\n \t// while downloading\n \tvar hotWaitingFiles = 0;\n \tvar hotChunksLoading = 0;\n \tvar hotWaitingFilesMap = {};\n \tvar hotRequestedFilesMap = {};\n \tvar hotAvailableFilesMap = {};\n \tvar hotDeferred;\n\n \t// The update info\n \tvar hotUpdate, hotUpdateNewHash;\n\n \tfunction toModuleId(id) {\n \t\tvar isNumber = +id + \"\" === id;\n \t\treturn isNumber ? +id : id;\n \t}\n\n \tfunction hotCheck(apply) {\n \t\tif (hotStatus !== \"idle\") {\n \t\t\tthrow new Error(\"check() is only allowed in idle status\");\n \t\t}\n \t\thotApplyOnUpdate = apply;\n \t\thotSetStatus(\"check\");\n \t\treturn hotDownloadManifest(hotRequestTimeout).then(function(update) {\n \t\t\tif (!update) {\n \t\t\t\thotSetStatus(\"idle\");\n \t\t\t\treturn null;\n \t\t\t}\n \t\t\thotRequestedFilesMap = {};\n \t\t\thotWaitingFilesMap = {};\n \t\t\thotAvailableFilesMap = update.c;\n \t\t\thotUpdateNewHash = update.h;\n\n \t\t\thotSetStatus(\"prepare\");\n \t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\thotDeferred = {\n \t\t\t\t\tresolve: resolve,\n \t\t\t\t\treject: reject\n \t\t\t\t};\n \t\t\t});\n \t\t\thotUpdate = {};\n \t\t\tvar chunkId = \"cornerstoneTools\";\n \t\t\t// eslint-disable-next-line no-lone-blocks\n \t\t\t{\n \t\t\t\t/*globals chunkId */\n \t\t\t\thotEnsureUpdateChunk(chunkId);\n \t\t\t}\n \t\t\tif (\n \t\t\t\thotStatus === \"prepare\" &&\n \t\t\t\thotChunksLoading === 0 &&\n \t\t\t\thotWaitingFiles === 0\n \t\t\t) {\n \t\t\t\thotUpdateDownloaded();\n \t\t\t}\n \t\t\treturn promise;\n \t\t});\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotAddUpdateChunk(chunkId, moreModules) {\n \t\tif (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])\n \t\t\treturn;\n \t\thotRequestedFilesMap[chunkId] = false;\n \t\tfor (var moduleId in moreModules) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\thotUpdate[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif (--hotWaitingFiles === 0 && hotChunksLoading === 0) {\n \t\t\thotUpdateDownloaded();\n \t\t}\n \t}\n\n \tfunction hotEnsureUpdateChunk(chunkId) {\n \t\tif (!hotAvailableFilesMap[chunkId]) {\n \t\t\thotWaitingFilesMap[chunkId] = true;\n \t\t} else {\n \t\t\thotRequestedFilesMap[chunkId] = true;\n \t\t\thotWaitingFiles++;\n \t\t\thotDownloadUpdateChunk(chunkId);\n \t\t}\n \t}\n\n \tfunction hotUpdateDownloaded() {\n \t\thotSetStatus(\"ready\");\n \t\tvar deferred = hotDeferred;\n \t\thotDeferred = null;\n \t\tif (!deferred) return;\n \t\tif (hotApplyOnUpdate) {\n \t\t\t// Wrap deferred object in Promise to mark it as a well-handled Promise to\n \t\t\t// avoid triggering uncaught exception warning in Chrome.\n \t\t\t// See https://bugs.chromium.org/p/chromium/issues/detail?id=465666\n \t\t\tPromise.resolve()\n \t\t\t\t.then(function() {\n \t\t\t\t\treturn hotApply(hotApplyOnUpdate);\n \t\t\t\t})\n \t\t\t\t.then(\n \t\t\t\t\tfunction(result) {\n \t\t\t\t\t\tdeferred.resolve(result);\n \t\t\t\t\t},\n \t\t\t\t\tfunction(err) {\n \t\t\t\t\t\tdeferred.reject(err);\n \t\t\t\t\t}\n \t\t\t\t);\n \t\t} else {\n \t\t\tvar outdatedModules = [];\n \t\t\tfor (var id in hotUpdate) {\n \t\t\t\tif (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\n \t\t\t\t\toutdatedModules.push(toModuleId(id));\n \t\t\t\t}\n \t\t\t}\n \t\t\tdeferred.resolve(outdatedModules);\n \t\t}\n \t}\n\n \tfunction hotApply(options) {\n \t\tif (hotStatus !== \"ready\")\n \t\t\tthrow new Error(\"apply() is only allowed in ready status\");\n \t\toptions = options || {};\n\n \t\tvar cb;\n \t\tvar i;\n \t\tvar j;\n \t\tvar module;\n \t\tvar moduleId;\n\n \t\tfunction getAffectedStuff(updateModuleId) {\n \t\t\tvar outdatedModules = [updateModuleId];\n \t\t\tvar outdatedDependencies = {};\n\n \t\t\tvar queue = outdatedModules.map(function(id) {\n \t\t\t\treturn {\n \t\t\t\t\tchain: [id],\n \t\t\t\t\tid: id\n \t\t\t\t};\n \t\t\t});\n \t\t\twhile (queue.length > 0) {\n \t\t\t\tvar queueItem = queue.pop();\n \t\t\t\tvar moduleId = queueItem.id;\n \t\t\t\tvar chain = queueItem.chain;\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (!module || module.hot._selfAccepted) continue;\n \t\t\t\tif (module.hot._selfDeclined) {\n \t\t\t\t\treturn {\n \t\t\t\t\t\ttype: \"self-declined\",\n \t\t\t\t\t\tchain: chain,\n \t\t\t\t\t\tmoduleId: moduleId\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\tif (module.hot._main) {\n \t\t\t\t\treturn {\n \t\t\t\t\t\ttype: \"unaccepted\",\n \t\t\t\t\t\tchain: chain,\n \t\t\t\t\t\tmoduleId: moduleId\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\tfor (var i = 0; i < module.parents.length; i++) {\n \t\t\t\t\tvar parentId = module.parents[i];\n \t\t\t\t\tvar parent = installedModules[parentId];\n \t\t\t\t\tif (!parent) continue;\n \t\t\t\t\tif (parent.hot._declinedDependencies[moduleId]) {\n \t\t\t\t\t\treturn {\n \t\t\t\t\t\t\ttype: \"declined\",\n \t\t\t\t\t\t\tchain: chain.concat([parentId]),\n \t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\tparentId: parentId\n \t\t\t\t\t\t};\n \t\t\t\t\t}\n \t\t\t\t\tif (outdatedModules.indexOf(parentId) !== -1) continue;\n \t\t\t\t\tif (parent.hot._acceptedDependencies[moduleId]) {\n \t\t\t\t\t\tif (!outdatedDependencies[parentId])\n \t\t\t\t\t\t\toutdatedDependencies[parentId] = [];\n \t\t\t\t\t\taddAllToSet(outdatedDependencies[parentId], [moduleId]);\n \t\t\t\t\t\tcontinue;\n \t\t\t\t\t}\n \t\t\t\t\tdelete outdatedDependencies[parentId];\n \t\t\t\t\toutdatedModules.push(parentId);\n \t\t\t\t\tqueue.push({\n \t\t\t\t\t\tchain: chain.concat([parentId]),\n \t\t\t\t\t\tid: parentId\n \t\t\t\t\t});\n \t\t\t\t}\n \t\t\t}\n\n \t\t\treturn {\n \t\t\t\ttype: \"accepted\",\n \t\t\t\tmoduleId: updateModuleId,\n \t\t\t\toutdatedModules: outdatedModules,\n \t\t\t\toutdatedDependencies: outdatedDependencies\n \t\t\t};\n \t\t}\n\n \t\tfunction addAllToSet(a, b) {\n \t\t\tfor (var i = 0; i < b.length; i++) {\n \t\t\t\tvar item = b[i];\n \t\t\t\tif (a.indexOf(item) === -1) a.push(item);\n \t\t\t}\n \t\t}\n\n \t\t// at begin all updates modules are outdated\n \t\t// the \"outdated\" status can propagate to parents if they don't accept the children\n \t\tvar outdatedDependencies = {};\n \t\tvar outdatedModules = [];\n \t\tvar appliedUpdate = {};\n\n \t\tvar warnUnexpectedRequire = function warnUnexpectedRequire() {\n \t\t\tconsole.warn(\n \t\t\t\t\"[HMR] unexpected require(\" + result.moduleId + \") to disposed module\"\n \t\t\t);\n \t\t};\n\n \t\tfor (var id in hotUpdate) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\n \t\t\t\tmoduleId = toModuleId(id);\n \t\t\t\t/** @type {TODO} */\n \t\t\t\tvar result;\n \t\t\t\tif (hotUpdate[id]) {\n \t\t\t\t\tresult = getAffectedStuff(moduleId);\n \t\t\t\t} else {\n \t\t\t\t\tresult = {\n \t\t\t\t\t\ttype: \"disposed\",\n \t\t\t\t\t\tmoduleId: id\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\t/** @type {Error|false} */\n \t\t\t\tvar abortError = false;\n \t\t\t\tvar doApply = false;\n \t\t\t\tvar doDispose = false;\n \t\t\t\tvar chainInfo = \"\";\n \t\t\t\tif (result.chain) {\n \t\t\t\t\tchainInfo = \"\\nUpdate propagation: \" + result.chain.join(\" -> \");\n \t\t\t\t}\n \t\t\t\tswitch (result.type) {\n \t\t\t\t\tcase \"self-declined\":\n \t\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n \t\t\t\t\t\tif (!options.ignoreDeclined)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because of self decline: \" +\n \t\t\t\t\t\t\t\t\tresult.moduleId +\n \t\t\t\t\t\t\t\t\tchainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"declined\":\n \t\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n \t\t\t\t\t\tif (!options.ignoreDeclined)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because of declined dependency: \" +\n \t\t\t\t\t\t\t\t\tresult.moduleId +\n \t\t\t\t\t\t\t\t\t\" in \" +\n \t\t\t\t\t\t\t\t\tresult.parentId +\n \t\t\t\t\t\t\t\t\tchainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"unaccepted\":\n \t\t\t\t\t\tif (options.onUnaccepted) options.onUnaccepted(result);\n \t\t\t\t\t\tif (!options.ignoreUnaccepted)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because \" + moduleId + \" is not accepted\" + chainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"accepted\":\n \t\t\t\t\t\tif (options.onAccepted) options.onAccepted(result);\n \t\t\t\t\t\tdoApply = true;\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"disposed\":\n \t\t\t\t\t\tif (options.onDisposed) options.onDisposed(result);\n \t\t\t\t\t\tdoDispose = true;\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tdefault:\n \t\t\t\t\t\tthrow new Error(\"Unexception type \" + result.type);\n \t\t\t\t}\n \t\t\t\tif (abortError) {\n \t\t\t\t\thotSetStatus(\"abort\");\n \t\t\t\t\treturn Promise.reject(abortError);\n \t\t\t\t}\n \t\t\t\tif (doApply) {\n \t\t\t\t\tappliedUpdate[moduleId] = hotUpdate[moduleId];\n \t\t\t\t\taddAllToSet(outdatedModules, result.outdatedModules);\n \t\t\t\t\tfor (moduleId in result.outdatedDependencies) {\n \t\t\t\t\t\tif (\n \t\t\t\t\t\t\tObject.prototype.hasOwnProperty.call(\n \t\t\t\t\t\t\t\tresult.outdatedDependencies,\n \t\t\t\t\t\t\t\tmoduleId\n \t\t\t\t\t\t\t)\n \t\t\t\t\t\t) {\n \t\t\t\t\t\t\tif (!outdatedDependencies[moduleId])\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId] = [];\n \t\t\t\t\t\t\taddAllToSet(\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId],\n \t\t\t\t\t\t\t\tresult.outdatedDependencies[moduleId]\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t\tif (doDispose) {\n \t\t\t\t\taddAllToSet(outdatedModules, [result.moduleId]);\n \t\t\t\t\tappliedUpdate[moduleId] = warnUnexpectedRequire;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Store self accepted outdated modules to require them later by the module system\n \t\tvar outdatedSelfAcceptedModules = [];\n \t\tfor (i = 0; i < outdatedModules.length; i++) {\n \t\t\tmoduleId = outdatedModules[i];\n \t\t\tif (\n \t\t\t\tinstalledModules[moduleId] &&\n \t\t\t\tinstalledModules[moduleId].hot._selfAccepted &&\n \t\t\t\t// removed self-accepted modules should not be required\n \t\t\t\tappliedUpdate[moduleId] !== warnUnexpectedRequire\n \t\t\t) {\n \t\t\t\toutdatedSelfAcceptedModules.push({\n \t\t\t\t\tmodule: moduleId,\n \t\t\t\t\terrorHandler: installedModules[moduleId].hot._selfAccepted\n \t\t\t\t});\n \t\t\t}\n \t\t}\n\n \t\t// Now in \"dispose\" phase\n \t\thotSetStatus(\"dispose\");\n \t\tObject.keys(hotAvailableFilesMap).forEach(function(chunkId) {\n \t\t\tif (hotAvailableFilesMap[chunkId] === false) {\n \t\t\t\thotDisposeChunk(chunkId);\n \t\t\t}\n \t\t});\n\n \t\tvar idx;\n \t\tvar queue = outdatedModules.slice();\n \t\twhile (queue.length > 0) {\n \t\t\tmoduleId = queue.pop();\n \t\t\tmodule = installedModules[moduleId];\n \t\t\tif (!module) continue;\n\n \t\t\tvar data = {};\n\n \t\t\t// Call dispose handlers\n \t\t\tvar disposeHandlers = module.hot._disposeHandlers;\n \t\t\tfor (j = 0; j < disposeHandlers.length; j++) {\n \t\t\t\tcb = disposeHandlers[j];\n \t\t\t\tcb(data);\n \t\t\t}\n \t\t\thotCurrentModuleData[moduleId] = data;\n\n \t\t\t// disable module (this disables requires from this module)\n \t\t\tmodule.hot.active = false;\n\n \t\t\t// remove module from cache\n \t\t\tdelete installedModules[moduleId];\n\n \t\t\t// when disposing there is no need to call dispose handler\n \t\t\tdelete outdatedDependencies[moduleId];\n\n \t\t\t// remove \"parents\" references from all children\n \t\t\tfor (j = 0; j < module.children.length; j++) {\n \t\t\t\tvar child = installedModules[module.children[j]];\n \t\t\t\tif (!child) continue;\n \t\t\t\tidx = child.parents.indexOf(moduleId);\n \t\t\t\tif (idx >= 0) {\n \t\t\t\t\tchild.parents.splice(idx, 1);\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// remove outdated dependency from module children\n \t\tvar dependency;\n \t\tvar moduleOutdatedDependencies;\n \t\tfor (moduleId in outdatedDependencies) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)\n \t\t\t) {\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (module) {\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\n \t\t\t\t\tfor (j = 0; j < moduleOutdatedDependencies.length; j++) {\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[j];\n \t\t\t\t\t\tidx = module.children.indexOf(dependency);\n \t\t\t\t\t\tif (idx >= 0) module.children.splice(idx, 1);\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Now in \"apply\" phase\n \t\thotSetStatus(\"apply\");\n\n \t\thotCurrentHash = hotUpdateNewHash;\n\n \t\t// insert new code\n \t\tfor (moduleId in appliedUpdate) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {\n \t\t\t\tmodules[moduleId] = appliedUpdate[moduleId];\n \t\t\t}\n \t\t}\n\n \t\t// call accept handlers\n \t\tvar error = null;\n \t\tfor (moduleId in outdatedDependencies) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)\n \t\t\t) {\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (module) {\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\n \t\t\t\t\tvar callbacks = [];\n \t\t\t\t\tfor (i = 0; i < moduleOutdatedDependencies.length; i++) {\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[i];\n \t\t\t\t\t\tcb = module.hot._acceptedDependencies[dependency];\n \t\t\t\t\t\tif (cb) {\n \t\t\t\t\t\t\tif (callbacks.indexOf(cb) !== -1) continue;\n \t\t\t\t\t\t\tcallbacks.push(cb);\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t\tfor (i = 0; i < callbacks.length; i++) {\n \t\t\t\t\t\tcb = callbacks[i];\n \t\t\t\t\t\ttry {\n \t\t\t\t\t\t\tcb(moduleOutdatedDependencies);\n \t\t\t\t\t\t} catch (err) {\n \t\t\t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\t\t\ttype: \"accept-errored\",\n \t\t\t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\t\t\tdependencyId: moduleOutdatedDependencies[i],\n \t\t\t\t\t\t\t\t\terror: err\n \t\t\t\t\t\t\t\t});\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Load self accepted modules\n \t\tfor (i = 0; i < outdatedSelfAcceptedModules.length; i++) {\n \t\t\tvar item = outdatedSelfAcceptedModules[i];\n \t\t\tmoduleId = item.module;\n \t\t\thotCurrentParents = [moduleId];\n \t\t\ttry {\n \t\t\t\t__webpack_require__(moduleId);\n \t\t\t} catch (err) {\n \t\t\t\tif (typeof item.errorHandler === \"function\") {\n \t\t\t\t\ttry {\n \t\t\t\t\t\titem.errorHandler(err);\n \t\t\t\t\t} catch (err2) {\n \t\t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\t\ttype: \"self-accept-error-handler-errored\",\n \t\t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\t\terror: err2,\n \t\t\t\t\t\t\t\toriginalError: err\n \t\t\t\t\t\t\t});\n \t\t\t\t\t\t}\n \t\t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\t\tif (!error) error = err2;\n \t\t\t\t\t\t}\n \t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t}\n \t\t\t\t} else {\n \t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\ttype: \"self-accept-errored\",\n \t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\terror: err\n \t\t\t\t\t\t});\n \t\t\t\t\t}\n \t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// handle errors in accept handlers and self accepted module load\n \t\tif (error) {\n \t\t\thotSetStatus(\"fail\");\n \t\t\treturn Promise.reject(error);\n \t\t}\n\n \t\thotSetStatus(\"idle\");\n \t\treturn new Promise(function(resolve) {\n \t\t\tresolve(outdatedModules);\n \t\t});\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {},\n \t\t\thot: hotCreateModule(moduleId),\n \t\t\tparents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),\n \t\t\tchildren: []\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// __webpack_hash__\n \t__webpack_require__.h = function() { return hotCurrentHash; };\n\n\n \t// Load entry module and return exports\n \treturn hotCreateRequire(\"./index.js\")(__webpack_require__.s = \"./index.js\");\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","module.exports = require(\"regenerator-runtime\");\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\-?\\d?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","/**\n * This function manages the {@link https://www.w3.org/TR/2dcontext/#the-canvas-state|save/restore}\n * pattern for working in a new context state stack. The parameter `fn` is passed the `context` and can\n * execute any API calls in a clean stack.\n * @public\n * @method draw\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target Canvas\n * @param {ContextFn} fn - A function which performs drawing operations within the given context.\n * @returns {undefined}\n */\nexport default function(context, fn) {\n context.save();\n fn(context);\n context.restore();\n}\n","import drawLine from './drawLine.js';\nimport drawJoinedLines from './drawJoinedLines.js';\n\n/**\n * Draw an arrow using the drawing API.\n * @public\n * @method drawArrow\n * @memberof Drawing\n *\n * @param {Object} context The canvas context.\n * @param {Object} start The start position.\n * @param {Object} end The end position.\n * @param {string} color The color of the arrow.\n * @param {number} lineWidth The width of the arrow line.\n * @param {number[]|| undefined} [lineDash] The optional lineDash style.\n * @returns {undefined}\n */\nexport default function(context, start, end, color, lineWidth, lineDash) {\n // Variables to be used when creating the arrow\n const headLength = 10;\n\n const angle = Math.atan2(end.y - start.y, end.x - start.x);\n\n // Starting path of the arrow from the start square to the end square and drawing the stroke\n let options = {\n color,\n lineWidth,\n };\n\n if (lineDash) {\n options.lineDash = lineDash;\n }\n\n drawLine(context, undefined, start, end, options, 'canvas');\n options = {\n color,\n lineWidth,\n fillStyle: color,\n };\n\n const points = [\n {\n x: end.x - headLength * Math.cos(angle - Math.PI / 7),\n y: end.y - headLength * Math.sin(angle - Math.PI / 7),\n },\n {\n x: end.x - headLength * Math.cos(angle + Math.PI / 7),\n y: end.y - headLength * Math.sin(angle + Math.PI / 7),\n },\n end,\n ];\n\n drawJoinedLines(context, undefined, end, points, options, 'canvas');\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\n\n/**\n * Draw a circle with given `center` and `radius`.\n * @public\n * @method drawCircle\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object} center - `{ x, y }` in either pixel or canvas coordinates.\n * @param {number} radius - The circle's radius in canvas units.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n center,\n radius,\n options,\n coordSystem = 'pixel'\n) {\n if (coordSystem === 'pixel') {\n center = external.cornerstone.pixelToCanvas(element, center);\n }\n\n path(context, options, context => {\n context.arc(center.x, center.y, radius, 0, 2 * Math.PI);\n });\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\nimport { rotatePoint } from '../util/pointProjector.js';\n\n/**\n * Draw an ellipse within the bounding box defined by `corner1` and `corner2`.\n * @public\n * @method drawEllipse\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object} corner1 - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} corner2 - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @param {Number} initialRotation - Ellipse initial rotation\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n corner1,\n corner2,\n options,\n coordSystem = 'pixel',\n initialRotation = 0.0\n) {\n if (coordSystem === 'pixel') {\n corner1 = external.cornerstone.pixelToCanvas(element, corner1);\n corner2 = external.cornerstone.pixelToCanvas(element, corner2);\n }\n\n const viewport = external.cornerstone.getViewport(element);\n\n // Calculate the center of the image\n const { clientWidth: width, clientHeight: height } = element;\n const { scale, translation } = viewport;\n const rotation = viewport.rotation - initialRotation;\n\n const centerPoint = {\n x: width / 2 + translation.x * scale,\n y: height / 2 + translation.y * scale,\n };\n\n if (Math.abs(rotation) > 0.05) {\n corner1 = rotatePoint(corner1, centerPoint, -rotation);\n corner2 = rotatePoint(corner2, centerPoint, -rotation);\n }\n const w = Math.abs(corner1.x - corner2.x);\n const h = Math.abs(corner1.y - corner2.y);\n const xMin = Math.min(corner1.x, corner2.x);\n const yMin = Math.min(corner1.y, corner2.y);\n\n let center = {\n x: xMin + w / 2,\n y: yMin + h / 2,\n };\n\n if (Math.abs(rotation) > 0.05) {\n center = rotatePoint(center, centerPoint, rotation);\n }\n const angle = (rotation * Math.PI) / 180;\n\n path(context, options, context => {\n context.ellipse(center.x, center.y, w / 2, h / 2, angle, 0, 2 * Math.PI);\n context.closePath();\n });\n}\n","import external from './../externalModules.js';\nimport toolStyle from './../stateManagement/toolStyle.js';\nimport toolColors from './../stateManagement/toolColors.js';\nimport path from './path.js';\nimport { state } from './../store/index.js';\n\n/**\n * Draws proivded handles to the provided context\n * @public\n * @method drawHandles\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {*} evtDetail - Cornerstone's 'cornerstoneimagerendered' event's `detail`\n * @param {Object[]|Object} handles - An array of handle objects, or an object w/ named handle objects\n * @param {Object} [options={}] - Options object\n * @param {string} [options.color]\n * @param {Boolean} [options.drawHandlesIfActive=false] - Whether the handles should only be drawn if Active (hovered/selected)\n * @param {string} [options.fill]\n * @param {Number} [options.handleRadius=6]\n * @returns {undefined}\n */\nexport default function(context, evtDetail, handles, options = {}) {\n const element = evtDetail.element;\n const defaultColor = toolColors.getToolColor();\n\n context.strokeStyle = options.color || defaultColor;\n\n const handleKeys = Object.keys(handles);\n\n for (let i = 0; i < handleKeys.length; i++) {\n const handleKey = handleKeys[i];\n const handle = handles[handleKey];\n\n if (handle.drawnIndependently === true) {\n continue;\n }\n\n if (options.drawHandlesIfActive === true && !handle.active) {\n continue;\n }\n if (options.hideHandlesIfMoving && handle.moving) {\n continue;\n }\n\n const lineWidth = handle.active\n ? toolStyle.getActiveWidth()\n : toolStyle.getToolWidth();\n const fillStyle = options.fill;\n\n const pathOptions = { lineWidth, fillStyle };\n\n if (options.lineDash) {\n pathOptions.lineDash = options.lineDash;\n }\n\n path(context, pathOptions, context => {\n const handleCanvasCoords = external.cornerstone.pixelToCanvas(\n element,\n handle\n );\n\n // Handle's radisu, then tool's radius, then default radius\n const handleRadius =\n handle.radius || options.handleRadius || state.handleRadius;\n\n context.arc(\n handleCanvasCoords.x,\n handleCanvasCoords.y,\n handleRadius,\n 0,\n 2 * Math.PI\n );\n });\n }\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\n\n/**\n * Draw a series of joined lines, starting at `start` and then going to each point in `points`.\n * @public\n * @method drawJoinedLines\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object} start - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object[]} points - `[{ x, y }]` An array of points in either pixel or canvas coordinates.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n start,\n points,\n options,\n coordSystem = 'pixel'\n) {\n path(context, options, context => {\n if (coordSystem === 'pixel') {\n start = external.cornerstone.pixelToCanvas(element, start);\n points = points.map(p => external.cornerstone.pixelToCanvas(element, p));\n }\n context.moveTo(start.x, start.y);\n points.forEach(({ x, y }) => {\n context.lineTo(x, y);\n });\n });\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\n\n/**\n * Draw a line between `start` and `end`.\n *\n * @public\n * @method drawLine\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object} start - `{ x, y } in either pixel or canvas coordinates.\n * @param {Object} end - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @returns {undefined}\n */\nexport default function drawLine(\n context,\n element,\n start,\n end,\n options,\n coordSystem = 'pixel'\n) {\n path(context, options, context => {\n if (coordSystem === 'pixel') {\n start = external.cornerstone.pixelToCanvas(element, start);\n end = external.cornerstone.pixelToCanvas(element, end);\n }\n\n context.moveTo(start.x, start.y);\n context.lineTo(end.x, end.y);\n });\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\n\n/**\n * Draw multiple lines.\n * @public\n * @method drawJoinedLines\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object[]} lines - `[{ start: {x, y}, end: { x, y }]` An array of `start`, `end` pairs.\n * Each point is `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n lines,\n options,\n coordSystem = 'pixel'\n) {\n path(context, options, context => {\n lines.forEach(line => {\n let start = line.start;\n let end = line.end;\n\n if (coordSystem === 'pixel') {\n const cornerstone = external.cornerstone;\n\n start = cornerstone.pixelToCanvas(element, start);\n end = cornerstone.pixelToCanvas(element, end);\n }\n\n context.moveTo(start.x, start.y);\n context.lineTo(end.x, end.y);\n });\n });\n}\n","import external from '../externalModules.js';\nimport drawLine from './drawLine.js';\n\n/**\n * Draw a link between an annotation to a box.\n * @public\n * @method drawLink\n * @memberof Drawing\n *\n * @param {Object[]} linkAnchorPoints An array of possible anchor points.\n * @param {Object} refPoint A reference point to select the anchor point.\n * @param {Object} boundingBox The bounding box to link.\n * @param {Object} context The canvas context.\n * @param {string} color The link color.\n * @param {number} lineWidth The line width of the link.\n * @returns {undefined}\n */\nexport default function(\n linkAnchorPoints,\n refPoint,\n boundingBox,\n context,\n color,\n lineWidth\n) {\n // Draw a link from \"the closest anchor point to refPoint\" to \"the nearest midpoint on the bounding box\".\n\n // Find the closest anchor point to RefPoint\n const start =\n linkAnchorPoints.length > 0\n ? external.cornerstoneMath.point.findClosestPoint(\n linkAnchorPoints,\n refPoint\n )\n : refPoint;\n\n // Calculate the midpoints of the bounding box\n const boundingBoxPoints = [\n {\n x: boundingBox.left + boundingBox.width / 2,\n y: boundingBox.top,\n },\n {\n x: boundingBox.left,\n y: boundingBox.top + boundingBox.height / 2,\n },\n {\n x: boundingBox.left + boundingBox.width / 2,\n y: boundingBox.top + boundingBox.height,\n },\n {\n x: boundingBox.left + boundingBox.width,\n y: boundingBox.top + boundingBox.height / 2,\n },\n ];\n\n // Calculate the link endpoint by identifying which midpoint of the bounding box\n // Is closest to the start point.\n const end = external.cornerstoneMath.point.findClosestPoint(\n boundingBoxPoints,\n start\n );\n\n // Finally we draw the dashed linking line\n const options = {\n color,\n lineWidth,\n lineDash: [2, 3],\n };\n\n drawLine(context, undefined, start, end, options, 'canvas');\n}\n","import external from '../externalModules.js';\nimport drawTextBox from './drawTextBox.js';\nimport drawLink from './drawLink.js';\n\n/**\n * Draw a link between an annotation to a textBox.\n * @public\n * @method drawLinkedTextBox\n * @memberof Drawing\n *\n * @param {Object} context - The canvas context.\n * @param {HTMLElement} element - The element on which to draw the link.\n * @param {Object} textBox - The textBox to link.\n * @param {Object} text - The text to display in the textbox.\n * @param {Object[]} handles - The handles of the annotation.\n * @param {Object[]} textBoxAnchorPoints - An array of possible anchor points on the textBox.\n * @param {string} color - The link color.\n * @param {number} lineWidth - The line width of the link.\n * @param {number} xOffset - The x offset of the textbox.\n * @param {boolean} yCenter - Vertically centers the text if true.\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n textBox,\n text,\n handles,\n textBoxAnchorPoints,\n color,\n lineWidth,\n xOffset,\n yCenter\n) {\n const cornerstone = external.cornerstone;\n\n // Convert the textbox Image coordinates into Canvas coordinates\n const textCoords = cornerstone.pixelToCanvas(element, textBox);\n\n if (xOffset) {\n textCoords.x += xOffset;\n }\n\n const options = {\n centering: {\n x: false,\n y: yCenter,\n },\n };\n\n // Draw the text box\n textBox.boundingBox = drawTextBox(\n context,\n text,\n textCoords.x,\n textCoords.y,\n color,\n options\n );\n if (textBox.hasMoved) {\n // Identify the possible anchor points for the tool -> text line\n const linkAnchorPoints = textBoxAnchorPoints(handles).map(h =>\n cornerstone.pixelToCanvas(element, h)\n );\n\n // Draw dashed link line between tool and text\n drawLink(\n linkAnchorPoints,\n textCoords,\n textBox.boundingBox,\n context,\n color,\n lineWidth\n );\n }\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\nimport { rotatePoint } from '../util/pointProjector.js';\n\n/**\n * Draw a rectangle defined by `corner1` and `corner2`.\n * @public\n * @method drawRect\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object} corner1 - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} corner2 - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @param {Number} initialRotation - Rectangle initial rotation\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n corner1,\n corner2,\n options,\n coordSystem = 'pixel',\n initialRotation = 0.0\n) {\n if (coordSystem === 'pixel') {\n const cornerstone = external.cornerstone;\n\n corner1 = cornerstone.pixelToCanvas(element, corner1);\n corner2 = cornerstone.pixelToCanvas(element, corner2);\n }\n\n const viewport = external.cornerstone.getViewport(element);\n\n // Calculate the center of the image\n const { clientWidth: width, clientHeight: height } = element;\n const { scale, translation } = viewport;\n const rotation = viewport.rotation - initialRotation;\n\n const centerPoint = {\n x: width / 2 + translation.x * scale,\n y: height / 2 + translation.y * scale,\n };\n\n if (Math.abs(rotation) > 0.05) {\n corner1 = rotatePoint(corner1, centerPoint, -rotation);\n corner2 = rotatePoint(corner2, centerPoint, -rotation);\n }\n\n const w = Math.abs(corner1.x - corner2.x);\n const h = Math.abs(corner1.y - corner2.y);\n\n corner1 = {\n x: Math.min(corner1.x, corner2.x),\n y: Math.min(corner1.y, corner2.y),\n };\n\n corner2 = {\n x: corner1.x + w,\n y: corner1.y + h,\n };\n\n let corner3 = {\n x: corner1.x + w,\n y: corner1.y,\n };\n\n let corner4 = {\n x: corner1.x,\n y: corner1.y + h,\n };\n\n if (Math.abs(rotation) > 0.05) {\n corner1 = rotatePoint(corner1, centerPoint, rotation);\n corner2 = rotatePoint(corner2, centerPoint, rotation);\n corner3 = rotatePoint(corner3, centerPoint, rotation);\n corner4 = rotatePoint(corner4, centerPoint, rotation);\n }\n\n path(context, options, context => {\n context.moveTo(corner1.x, corner1.y);\n context.lineTo(corner3.x, corner3.y);\n context.moveTo(corner3.x, corner3.y);\n context.lineTo(corner2.x, corner2.y);\n context.moveTo(corner2.x, corner2.y);\n context.lineTo(corner4.x, corner4.y);\n context.moveTo(corner4.x, corner4.y);\n context.lineTo(corner1.x, corner1.y);\n });\n}\n","import textStyle from '../stateManagement/textStyle.js';\nimport draw from './draw.js';\nimport fillTextLines from './fillTextLines.js';\nimport fillBox from './fillBox.js';\n\n/**\n * Compute the width of the box required to display the given `text` with a given `padding`.\n * @public\n * @function textBoxWidth\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {String} text - The text to find the width of.\n * @param {Number} padding - The padding to apply on either end of the text.\n * @returns {Number} computed text box width\n */\nexport function textBoxWidth(context, text, padding) {\n const font = textStyle.getFont();\n const origFont = context.font;\n\n if (font && font !== origFont) {\n context.font = font;\n }\n const width = context.measureText(text).width;\n\n if (font && font !== origFont) {\n context.font = origFont;\n }\n\n return width + 2 * padding;\n}\n\n/**\n * Draws a textBox.\n * @public\n * @function drawTextBox\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context The canvas context.\n * @param {string} textLines The text to display.\n * @param {number} x The x position of the textBox.\n * @param {number} y The y position of the textBox.\n * @param {string} color The color of the textBox.\n * @param {Object} options Options for the textBox.\n * @returns {Object} {top, left, width, height} - Bounding box; can be used for pointNearTool\n */\nexport default function(context, textLines, x, y, color, options) {\n if (Object.prototype.toString.call(textLines) !== '[object Array]') {\n textLines = [textLines];\n }\n\n const padding = 5;\n const fontSize = textStyle.getFontSize();\n const backgroundColor = textStyle.getBackgroundColor();\n\n // Find the longest text width in the array of text data\n let maxWidth = 0;\n\n textLines.forEach(function(text) {\n // Get the text width in the current font\n const width = textBoxWidth(context, text, padding);\n\n // Find the maximum with for all the text rows;\n maxWidth = Math.max(maxWidth, width);\n });\n\n // Calculate the bounding box for this text box\n const boundingBox = {\n width: maxWidth,\n height: padding + textLines.length * (fontSize + padding),\n };\n\n draw(context, context => {\n context.strokeStyle = color;\n\n // Draw the background box with padding\n if (options && options.centering && options.centering.x === true) {\n x -= boundingBox.width / 2;\n }\n\n if (options && options.centering && options.centering.y === true) {\n y -= boundingBox.height / 2;\n }\n\n boundingBox.left = x;\n boundingBox.top = y;\n\n const fillStyle =\n options && options.debug === true ? '#FF0000' : backgroundColor;\n\n fillBox(context, boundingBox, fillStyle);\n\n // Draw each of the text lines on top of the background box\n fillTextLines(context, boundingBox, textLines, color, padding);\n });\n\n // Return the bounding box so it can be used for pointNearHandle\n return boundingBox;\n}\n","/**\n * Draw a filled rectangle defined by `boundingBox` using the style defined by `fillStyle`.\n * @public\n * @method fillBox\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {Object} boundingBox - `{ left, top, width, height }` in canvas coordinates.\n * @param {FillStyle} fillStyle - The fillStyle to apply to the region.\n * @returns {undefined}\n */\nexport default function(context, boundingBox, fillStyle) {\n context.fillStyle = fillStyle;\n context.fillRect(\n boundingBox.left,\n boundingBox.top,\n boundingBox.width,\n boundingBox.height\n );\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\n\n/**\n * Fill the region outside a rectangle defined by `corner1` and `corner2`.\n * @public\n * @method fillOutsideRect\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object} corner1 - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} corner2 - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n corner1,\n corner2,\n options,\n coordSystem = 'pixel'\n) {\n if (coordSystem === 'pixel') {\n const cornerstone = external.cornerstone;\n\n corner1 = cornerstone.pixelToCanvas(element, corner1);\n corner2 = cornerstone.pixelToCanvas(element, corner2);\n }\n\n const left = Math.min(corner1.x, corner2.x);\n const top = Math.min(corner1.y, corner2.y);\n const width = Math.abs(corner1.x - corner2.x);\n const height = Math.abs(corner1.y - corner2.y);\n\n path(context, options, context => {\n context.rect(0, 0, context.canvas.clientWidth, context.canvas.clientHeight);\n context.rect(left + width, top, -width, height);\n });\n}\n","import textStyle from './../stateManagement/textStyle.js';\n\n/**\n * Draw multiple lines of text within a bounding box.\n * @public\n * @method fillTextLines\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {Object} boundingBox - `{ left, top }` in canvas coordinates. Only the top-left corner is specified, as the text will take up as much space as it needs.\n * @param {String[]} textLines - The text to be displayed.\n * @param {FillStyle} fillStyle - The fillStyle to apply to the text.\n * @param {Number} padding - The amount of padding above/below each line in canvas units. Note this gives an inter-line spacing of `2*padding`.\n * @returns {undefined}\n */\nexport default function(context, boundingBox, textLines, fillStyle, padding) {\n const fontSize = textStyle.getFontSize();\n\n context.font = textStyle.getFont();\n context.textBaseline = 'top';\n context.fillStyle = fillStyle;\n textLines.forEach(function(text, index) {\n context.fillText(\n text,\n boundingBox.left + padding,\n boundingBox.top + padding + index * (fontSize + padding)\n );\n });\n}\n","/**\n * Create a new {@link CanvasRenderingContext2D|context} object for the given {@link HTMLCanvasElement|canvas}\n * and set the transform to the {@link https://www.w3.org/TR/2dcontext/#transformations|identity transform}.\n *\n * @public\n * @function getNewContext\n * @memberof Drawing\n *\n * @param {HTMLCanvasElement} canvas - Canvas you would like the context for\n * @returns {CanvasRenderingContext2D} - The provided canvas's 2d context\n */\nexport default function(canvas) {\n const context = canvas.getContext('2d');\n\n context.setTransform(1, 0, 0, 1, 0, 0);\n\n return context;\n}\n","/**\n * A {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/fillStyle|color, gradient or pattern} to use inside shapes.\n * @typedef {(String|CanvasGradient|CanvasPattern)} FillStyle\n */\n\n/**\n * A {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/strokeStyle|color, gradient or pattern} to use for the lines around shapes.\n * @typedef {(String|CanvasGradient|CanvasPattern)} StrokeStyle\n */\n\n/**\n * @callback ContextFn\n * @param {CanvasRenderingContext2D} context\n */\n\nimport draw from './draw.js';\nimport drawArrow from './drawArrow.js';\nimport drawCircle from './drawCircle.js';\nimport drawEllipse from './drawEllipse.js';\nimport drawHandles from './drawHandles.js';\nimport drawJoinedLines from './drawJoinedLines.js';\nimport drawLine from './drawLine.js';\nimport drawLines from './drawLines.js';\nimport drawLink from './drawLink.js';\nimport drawLinkedTextBox from './drawLinkedTextBox.js';\nimport drawRect from './drawRect.js';\nimport drawTextBox from './drawTextBox.js';\nimport fillBox from './fillBox.js';\nimport fillOutsideRect from './fillOutsideRect.js';\nimport fillTextLines from './fillTextLines.js';\nimport getNewContext from './getNewContext.js';\nimport path from './path.js';\nimport setShadow from './setShadow.js';\nimport transformCanvasContext from './transformCanvasContext.js';\nimport resetCanvasContextTransform from './resetCanvasContextTransform.js';\n\n// Named exports\nexport {\n draw,\n drawArrow,\n drawCircle,\n drawEllipse,\n drawHandles,\n drawJoinedLines,\n drawLine,\n drawLines,\n drawLink,\n drawLinkedTextBox,\n drawRect,\n drawTextBox,\n fillBox,\n fillOutsideRect,\n fillTextLines,\n getNewContext,\n path,\n setShadow,\n transformCanvasContext,\n resetCanvasContextTransform,\n};\n","import toolStyle from './../stateManagement/toolStyle.js';\n\n/**\n * This function manages the beginPath/stroke pattern for working with\n * {@link https://www.w3.org/TR/2dcontext/#drawing-paths-to-the-canvas|path objects}.\n *\n * @public\n * @function path\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Context to add path to\n * @param {Object} [options={}] - Drawing Options\n * @param {StrokeStyle} [options.color] - The stroke style of the path.\n * @param {number} [options.lineWidth] - The width of lines in the path. If null, no line width is set.\n * If undefined then toolStyle.getToolWidth() is set.\n * @param {FillStyle} [options.fillStyle] - The style to fill the path with. If undefined then no filling is done.\n * @param {Number[]} [options.lineDash] - The {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash|dash pattern}\n * to use on the lines.\n * @param {boolean} [options.shouldDrawLines = true] Whether context.stroke should be evoked.\n * @param {ContextFn} fn - A drawing function to execute with the provided stroke pattern.\n * @returns {undefined}\n */\nexport default function(context, options = {}, fn) {\n const {\n color,\n lineWidth,\n fillStyle,\n lineDash,\n shouldDrawLines = true,\n } = options;\n\n context.beginPath();\n context.strokeStyle = color || context.strokeStyle;\n\n context.lineWidth =\n lineWidth ||\n (lineWidth === undefined && toolStyle.getToolWidth()) ||\n context.lineWidth;\n if (lineDash) {\n context.setLineDash(lineDash);\n }\n\n fn(context);\n\n if (fillStyle) {\n context.fillStyle = fillStyle;\n context.fill();\n }\n\n if (shouldDrawLines) {\n context.stroke();\n }\n\n if (lineDash) {\n context.setLineDash([]);\n }\n}\n","/**\n * Resets the canvas {@link CanvasRenderingContext2D|context} transform to the\n * {@link https://www.w3.org/TR/2dcontext/#transformations|identity transform}.\n *\n * @public\n * @function resetCanvasContextTransform\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - context you wish to transform\n * @returns {void}\n */\nexport default function(context) {\n context.setTransform(1, 0, 0, 1, 0, 0);\n}\n","import getDefault from './../util/getDefault.js';\n\n/**\n * Set the {@link https://www.w3.org/TR/2dcontext/#shadows|shadow} properties of the context.\n * Each property is set on the context object if defined, otherwise a default value is set.\n *\n * @public\n * @method setShadow\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Context to apply shadow options on\n * @param {Object} [options={}] - Options object\n * @param {Boolean} [options.shadow=undefined] - Whether to set any shadow options\n * @param {String} [options.shadowColor=#000000] - Default value: #000000\n * @param {Number} [options.shadowBlur=0] - Default Value: 0\n * @param {Number} [options.shadowOffsetX=1] - Default value: 1\n * @param {Number} [options.shadowOffsetY=1] - Default value: 1\n * @returns {undefined}\n */\nexport default function(context, options = {}) {\n if (options.shadow) {\n context.shadowColor = getDefault(options.shadowColor, '#000000');\n context.shadowBlur = getDefault(options.shadowBlur, 0);\n context.shadowOffsetX = getDefault(options.shadowOffsetX, 1);\n context.shadowOffsetY = getDefault(options.shadowOffsetY, 1);\n }\n}\n","/**\n * Transform the canvas {@link CanvasRenderingContext2D|context} such that it\n * coincides with the orientation of the viewport.\n *\n * @public\n * @function transformCanvasContext\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Context you wish to transform.\n * @param {HTMLCanvasElement} canvas - Canvas the context relates to.\n * @param {*} viewport - The viewport you wish to map on to.\n * @returns {void}\n */\nexport default function(context, canvas, viewport) {\n if (!(viewport.hflip || viewport.vflip || viewport.rotation)) {\n return;\n }\n\n const translation = {\n x: canvas.width / 2 + viewport.translation.x * viewport.scale,\n y: canvas.height / 2 + viewport.translation.y * viewport.scale,\n };\n\n context.translate(translation.x, translation.y);\n\n if (viewport.rotation) {\n context.rotate((viewport.rotation * Math.PI) / 180);\n }\n\n if (viewport.vflip) {\n context.scale(1, -1);\n }\n\n if (viewport.hflip) {\n context.scale(-1, 1);\n }\n\n context.translate(-translation.x, -translation.y);\n}\n","import { state, getModule } from './../store/index.js';\nimport { getToolState } from '../stateManagement/toolState';\nimport onImageRenderedBrushEventHandler from '../eventListeners/onImageRenderedBrushEventHandler.js';\nimport external from './../externalModules.js';\n\nconst segmentationModule = getModule('segmentation');\n\nconst onImageRendered = function(evt) {\n const eventData = evt.detail;\n const element = eventData.element;\n\n // Render Annotation Tools\n const toolsToRender = state.tools.filter(\n tool =>\n tool.element === element &&\n (tool.mode === 'active' ||\n tool.mode === 'passive' ||\n tool.mode === 'enabled')\n );\n\n // Must be using stacks in order to use segmentation tools.\n const stackToolState = getToolState(element, 'stack');\n\n const segmentationConfiguration = segmentationModule.configuration;\n\n if (\n stackToolState &&\n (segmentationConfiguration.renderFill ||\n segmentationConfiguration.renderOutline)\n ) {\n onImageRenderedBrushEventHandler(evt);\n }\n\n toolsToRender.forEach(tool => {\n if (tool.renderToolData) {\n tool.renderToolData(evt);\n }\n });\n};\n\nconst enable = function(element) {\n element.addEventListener(\n external.cornerstone.EVENTS.IMAGE_RENDERED,\n onImageRendered\n );\n};\n\nconst disable = function(element) {\n element.removeEventListener(\n external.cornerstone.EVENTS.IMAGE_RENDERED,\n onImageRendered\n );\n};\n\nexport default {\n enable,\n disable,\n};\n","import imageRenderedEventDispatcher from './imageRenderedEventDispatcher.js';\nimport mouseToolEventDispatcher from './mouseToolEventDispatcher.js';\nimport newImageEventDispatcher from './newImageEventDispatcher.js';\nimport touchToolEventDispatcher from './touchToolEventDispatcher.js';\n\nexport {\n imageRenderedEventDispatcher,\n mouseToolEventDispatcher,\n newImageEventDispatcher,\n touchToolEventDispatcher,\n};\n","import EVENTS from '../../events.js';\nimport external from '../../externalModules.js';\nimport {\n addToolState,\n removeToolState,\n} from '../../stateManagement/toolState.js';\nimport { moveHandle, moveNewHandle } from '../../manipulators/index.js';\nimport { getLogger } from '../../util/logger.js';\nimport triggerEvent from '../../util/triggerEvent.js';\n\nconst logger = getLogger('eventDispatchers:mouseEventHandlers');\n\nexport default function(evt, tool) {\n logger.log('addNewMeasurement');\n\n evt.preventDefault();\n evt.stopPropagation();\n const eventData = evt.detail;\n const element = eventData.element;\n const measurementData = tool.createNewMeasurement(eventData);\n\n if (!measurementData) {\n return;\n }\n\n addToolState(element, tool.name, measurementData);\n\n external.cornerstone.updateImage(element);\n\n const handleMover =\n Object.keys(measurementData.handles).length === 1\n ? moveHandle\n : moveNewHandle;\n\n handleMover(\n eventData,\n tool.name,\n measurementData,\n measurementData.handles.end,\n tool.options,\n 'mouse',\n success => {\n if (measurementData.cancelled) {\n return;\n }\n\n if (success) {\n const eventType = EVENTS.MEASUREMENT_COMPLETED;\n const eventData = {\n toolName: tool.name,\n toolType: tool.name, // Deprecation notice: toolType will be replaced by toolName\n element,\n measurementData,\n };\n\n triggerEvent(element, eventType, eventData);\n } else {\n removeToolState(element, tool.name, measurementData);\n }\n }\n );\n}\n","import customCallbackHandler from './../shared/customCallbackHandler.js';\nimport mouseDown from './mouseDown.js';\nimport mouseDownActivate from './mouseDownActivate.js';\nimport mouseDrag from './mouseDrag.js';\nimport mouseMove from './mouseMove.js';\n\nconst mouseClick = customCallbackHandler.bind(\n null,\n 'Mouse',\n 'mouseClickCallback'\n);\n\nconst mouseDoubleClick = customCallbackHandler.bind(\n null,\n 'Mouse',\n 'doubleClickCallback'\n);\n\nconst mouseUp = customCallbackHandler.bind(null, 'Mouse', 'mouseUpCallback');\n\nconst mouseWheel = customCallbackHandler.bind(\n null,\n 'MouseWheel',\n 'mouseWheelCallback'\n);\n\nexport {\n mouseClick,\n mouseDown,\n mouseDownActivate,\n mouseDoubleClick,\n mouseDrag,\n mouseMove,\n mouseUp,\n mouseWheel,\n};\n","// State\nimport { getters, state } from './../../store/index.js';\nimport { getToolState } from './../../stateManagement/toolState.js';\n// Util\nimport getToolsWithMoveableHandles from '../../store/getToolsWithMoveableHandles.js';\nimport { findHandleDataNearImagePoint } from '../../util/findAndMoveHelpers.js';\nimport getInteractiveToolsForElement from './../../store/getInteractiveToolsForElement.js';\nimport getToolsWithDataForElement from './../../store/getToolsWithDataForElement.js';\nimport filterToolsUseableWithMultiPartTools from './../../store/filterToolsUsableWithMultiPartTools.js';\n\n/**\n * MouseDown is called before MouseDownActivate. If MouseDown\n * finds an existing tool to interact with, it can prevent the\n * event from bubbling to MouseDownActivate.\n *\n * @private\n * @param {mousedown} evt\n * @listens {CornerstoneTools.event:cornerstonetoolsmousedown}\n * @returns {undefined}\n */\nexport default function(evt) {\n if (state.isToolLocked) {\n return;\n }\n\n const eventData = evt.detail;\n const element = evt.detail.element;\n const coords = evt.detail.currentPoints.canvas;\n\n // High level filtering\n const activeAndPassiveTools = getInteractiveToolsForElement(\n element,\n getters.mouseTools()\n );\n\n // ACTIVE TOOL W/ PRE CALLBACK?\n // Note: In theory, this should only ever be a single tool.\n let activeTools = activeAndPassiveTools.filter(\n tool =>\n tool.mode === 'active' &&\n Array.isArray(tool.options.mouseButtonMask) &&\n tool.options.mouseButtonMask.includes(eventData.buttons) &&\n tool.options.isMouseActive\n );\n\n if (state.isMultiPartToolActive) {\n activeTools = filterToolsUseableWithMultiPartTools(activeTools);\n }\n\n // If any tools are active, check if they have a special reason for dealing with the event.\n if (activeTools.length > 0) {\n // TODO: If length > 1, you could assess fitness and select the ideal tool\n // TODO: But because we're locking this to 'active' tools, that should rarely be an issue\n // Super-Meta-TODO: ^ I think we should just take the approach of one active tool per mouse button?\n const firstActiveToolWithCallback = activeTools.find(\n tool => typeof tool.preMouseDownCallback === 'function'\n );\n\n if (firstActiveToolWithCallback) {\n const consumedEvent = firstActiveToolWithCallback.preMouseDownCallback(\n evt\n );\n\n if (consumedEvent) {\n return;\n }\n }\n }\n\n if (state.isMultiPartToolActive) {\n // Don't fire events to Annotation Tools during a multi part loop.\n return;\n }\n\n // Annotation tool specific\n const annotationTools = getToolsWithDataForElement(\n element,\n activeAndPassiveTools\n );\n\n // NEAR HANDLES?\n const annotationToolsWithMoveableHandles = getToolsWithMoveableHandles(\n element,\n annotationTools,\n coords,\n 'mouse'\n );\n\n if (annotationToolsWithMoveableHandles.length > 0) {\n const firstToolWithMoveableHandles = annotationToolsWithMoveableHandles[0];\n const toolState = getToolState(element, firstToolWithMoveableHandles.name);\n\n const { handle, data } = findHandleDataNearImagePoint(\n element,\n toolState,\n firstToolWithMoveableHandles.name,\n coords\n );\n\n firstToolWithMoveableHandles.handleSelectedCallback(\n evt,\n data,\n handle,\n 'mouse'\n );\n\n return;\n }\n\n // NEAR TOOL?\n const annotationToolsWithPointNearClick = activeAndPassiveTools.filter(\n tool => {\n const toolState = getToolState(element, tool.name);\n const isNearPoint =\n toolState &&\n toolState.data &&\n tool.pointNearTool &&\n toolState.data.some(data =>\n tool.pointNearTool(element, data, coords, 'mouse')\n );\n\n return isNearPoint;\n }\n );\n\n if (annotationToolsWithPointNearClick.length > 0) {\n const firstToolNearPoint = annotationToolsWithPointNearClick[0];\n const toolState = getToolState(element, firstToolNearPoint.name);\n const firstAnnotationNearPoint = toolState.data.find(data =>\n firstToolNearPoint.pointNearTool(element, data, coords)\n );\n\n firstToolNearPoint.toolSelectedCallback(\n evt,\n firstAnnotationNearPoint,\n 'mouse'\n );\n\n return;\n }\n\n // ACTIVE TOOL W/ POST CALLBACK?\n // If any tools are active, check if they have a special reason for dealing with the event.\n if (activeTools.length > 0) {\n // TODO: If length > 1, you could assess fitness and select the ideal tool\n // TODO: But because we're locking this to 'active' tools, that should rarely be an issue\n // Super-Meta-TODO: ^ I think we should just take the approach of one active tool per mouse button?\n const firstActiveToolWithCallback = activeTools.find(\n tool => typeof tool.postMouseDownCallback === 'function'\n );\n\n if (firstActiveToolWithCallback) {\n const consumedEvent = firstActiveToolWithCallback.postMouseDownCallback(\n evt\n );\n\n if (consumedEvent) {\n return;\n }\n }\n }\n}\n","import addNewMeasurement from './addNewMeasurement.js';\nimport { state } from './../../store/index.js';\nimport BaseAnnotationTool from './../../tools/base/BaseAnnotationTool.js';\nimport getActiveTool from '../../util/getActiveTool';\n\nexport default function(evt) {\n if (state.isToolLocked) {\n return;\n }\n\n const { element, buttons } = evt.detail;\n const activeTool = getActiveTool(element, buttons, 'mouse');\n\n if (!activeTool) {\n return;\n }\n\n if (typeof activeTool.preMouseDownActivateCallback === 'function') {\n const consumedEvent = activeTool.preMouseDownActivateCallback(evt);\n\n if (consumedEvent) {\n return;\n }\n }\n\n if (state.isMultiPartToolActive) {\n return;\n }\n\n // Note: custom `addNewMeasurement` will need to prevent event bubbling\n if (activeTool.addNewMeasurement) {\n activeTool.addNewMeasurement(evt, 'mouse');\n } else if (activeTool instanceof BaseAnnotationTool) {\n addNewMeasurement(evt, activeTool);\n }\n}\n","import { getters, state } from './../../store/index.js';\nimport getActiveToolsForElement from './../../store/getActiveToolsForElement.js';\nimport filterToolsUseableWithMultiPartTools from './../../store/filterToolsUsableWithMultiPartTools.js';\n\n// Tools like wwwc. Non-annotation tools w/ specific\n// Down + mouse behavior\n// TODO: I don't like filtering in drag because it's such\n// A high frequency event. Anything we can do to reduce\n// Repeat math here would be a big help\nexport default function(evt) {\n if (state.isToolLocked) {\n return;\n }\n\n let tools;\n const eventData = evt.detail;\n const element = eventData.element;\n\n // Filter out disabled, enabled, and passive\n tools = getActiveToolsForElement(element, getters.mouseTools());\n tools = tools.filter(\n tool =>\n Array.isArray(tool.options.mouseButtonMask) &&\n tool.options.mouseButtonMask.includes(eventData.buttons) &&\n tool.options.isMouseActive\n );\n tools = tools.filter(tool => typeof tool.mouseDragCallback === 'function');\n\n if (state.isMultiPartToolActive) {\n tools = filterToolsUseableWithMultiPartTools(tools);\n }\n\n if (tools.length === 0) {\n return;\n }\n\n const activeTool = tools[0];\n\n activeTool.mouseDragCallback(evt);\n}\n","import external from './../../externalModules.js';\n// State\nimport { getters, state } from './../../store/index.js';\nimport getInteractiveToolsForElement from './../../store/getInteractiveToolsForElement.js';\nimport getToolsWithDataForElement from './../../store/getToolsWithDataForElement.js';\n\n/**\n * This is mostly used to update the [un]hover state\n * of a tool.\n *\n * @private\n * @param {*} evt\n * @returns {void}\n */\nexport default function(evt) {\n if (state.isToolLocked || state.isMultiPartToolActive) {\n return;\n }\n\n let tools;\n const { element, currentPoints } = evt.detail;\n\n // Set the mouse position incase any tool needs it.\n state.mousePositionImage = currentPoints.image;\n\n // TODO: instead of filtering these for every interaction, we can change our\n // TODO: State's structure to always know these values.\n // Filter out disabled and enabled\n tools = getInteractiveToolsForElement(element, getters.mouseTools());\n\n const activeTools = tools.filter(\n tool => tool.mode === 'active' && tool.options.isMouseActive\n );\n\n let imageNeedsUpdate = false;\n\n // If any tools are active, check if they have a canvas cursor, and if so update image.\n if (activeTools.length > 0) {\n imageNeedsUpdate = activeTools.some(tool => tool.updateOnMouseMove);\n }\n\n tools = getToolsWithDataForElement(element, tools);\n\n // Iterate over each tool, and each tool's data\n // Activate any handles we're hovering over, or whole tools if we're near the tool\n // If we've changed the state of anything, redrawn the image\n\n for (let t = 0; t < tools.length; t++) {\n const tool = tools[t];\n\n if (typeof tool.mouseMoveCallback === 'function') {\n imageNeedsUpdate = tool.mouseMoveCallback(evt) || imageNeedsUpdate;\n }\n }\n\n // Tool data activation status changed, redraw the image\n if (imageNeedsUpdate === true) {\n external.cornerstone.updateImage(element);\n }\n}\n","import EVENTS from './../events.js';\nimport {\n mouseClick,\n mouseDown,\n mouseDownActivate,\n mouseDoubleClick,\n mouseDrag,\n mouseMove,\n mouseUp,\n mouseWheel,\n} from './mouseEventHandlers/index.js';\n\n/**\n * These listeners are emitted in order, and can be cancelled/prevented from bubbling\n * by any previous event.\n * - mouseMove: used to update the [un]hover state of a tool (highlighting)\n * - mouseDown: check to see if we are close to an existing annotation, grab it\n * - mouseDownActivate: createNewMeasurement (usually)\n * - mouseDrag: update measurement or apply strategy (wwwc)\n * - mouseDoubleClick: usually a one-time apply specialty action\n * - onImageRendered: redraw visible tool data\n * @private\n * @param {*} element\n * @returns {undefined}\n */\nconst enable = function(element) {\n element.addEventListener(EVENTS.MOUSE_CLICK, mouseClick);\n element.addEventListener(EVENTS.MOUSE_DOWN, mouseDown);\n element.addEventListener(EVENTS.MOUSE_DOWN_ACTIVATE, mouseDownActivate);\n element.addEventListener(EVENTS.MOUSE_DOUBLE_CLICK, mouseDoubleClick);\n element.addEventListener(EVENTS.MOUSE_DRAG, mouseDrag);\n element.addEventListener(EVENTS.MOUSE_MOVE, mouseMove);\n element.addEventListener(EVENTS.MOUSE_UP, mouseUp);\n element.addEventListener(EVENTS.MOUSE_WHEEL, mouseWheel);\n};\n\nconst disable = function(element) {\n element.removeEventListener(EVENTS.MOUSE_CLICK, mouseClick);\n element.removeEventListener(EVENTS.MOUSE_DOWN, mouseDown);\n element.removeEventListener(EVENTS.MOUSE_DOWN_ACTIVATE, mouseDownActivate);\n element.removeEventListener(EVENTS.MOUSE_DOUBLE_CLICK, mouseDoubleClick);\n element.removeEventListener(EVENTS.MOUSE_DRAG, mouseDrag);\n element.removeEventListener(EVENTS.MOUSE_MOVE, mouseMove);\n element.removeEventListener(EVENTS.MOUSE_UP, mouseUp);\n element.removeEventListener(EVENTS.MOUSE_WHEEL, mouseWheel);\n};\n\nexport default {\n enable,\n disable,\n};\n","import { state } from './../store/index.js';\nimport external from './../externalModules.js';\n\nconst onNewImage = function(evt) {\n if (state.isToolLocked) {\n return false;\n }\n\n const element = evt.detail.element;\n\n const tools = state.tools.filter(\n tool =>\n tool.element === element &&\n (tool.mode === 'active' ||\n tool.mode === 'passive' ||\n tool.mode === 'enabled')\n );\n\n if (tools.length === 0) {\n return false;\n }\n\n tools.forEach(tool => {\n if (tool.newImageCallback) {\n tool.newImageCallback(evt);\n }\n });\n};\n\nconst enable = function(element) {\n element.addEventListener(external.cornerstone.EVENTS.NEW_IMAGE, onNewImage);\n};\n\nconst disable = function(element) {\n element.removeEventListener(\n external.cornerstone.EVENTS.NEW_IMAGE,\n onNewImage\n );\n};\n\nexport default {\n enable,\n disable,\n};\n","import { state } from './../../store/index.js';\nimport getActiveToolsForElement from './../../store/getActiveToolsForElement.js';\nimport filterToolsUseableWithMultiPartTools from './../../store/filterToolsUsableWithMultiPartTools.js';\n\nexport default function(handlerType, customFunction, evt) {\n if (state.isToolLocked) {\n return false;\n }\n\n // TODO: We sometimes see a null detail for TOUCH_PRESS\n const element = evt.detail.element;\n let tools = state.tools.filter(tool =>\n tool.supportedInteractionTypes.includes(handlerType)\n );\n\n // Tool is active, and specific callback is active\n tools = getActiveToolsForElement(element, tools, handlerType);\n\n // Tool has expected callback custom function\n tools = tools.filter(tool => typeof tool[customFunction] === 'function');\n\n if (state.isMultiPartToolActive) {\n tools = filterToolsUseableWithMultiPartTools(tools);\n }\n\n if (tools.length === 0) {\n return false;\n }\n\n tools[0][customFunction](evt);\n}\n","import EVENTS from '../../events.js';\nimport external from '../../externalModules.js';\nimport { state } from '../../store/index.js';\nimport anyHandlesOutsideImage from './../../manipulators/anyHandlesOutsideImage.js';\nimport { moveNewHandle } from '../../manipulators/index.js';\nimport {\n addToolState,\n removeToolState,\n} from '../../stateManagement/toolState.js';\nimport triggerEvent from '../../util/triggerEvent.js';\nimport { getLogger } from '../../util/logger.js';\n\nconst logger = getLogger('eventDispatchers:touchEventHandlers');\n\nexport default function(evt, tool) {\n logger.log('addNewMeasurement');\n\n evt.preventDefault();\n evt.stopPropagation();\n\n const touchEventData = evt.detail;\n const element = touchEventData.element;\n const measurementData = tool.createNewMeasurement(touchEventData);\n\n if (!measurementData) {\n return;\n }\n\n addToolState(element, tool.name, measurementData);\n\n // Todo: Looks like we're handling the \"up\" of the tap?\n if (\n Object.keys(measurementData.handles).length === 1 &&\n touchEventData.type === EVENTS.TAP\n ) {\n // Todo: bold assumptions about measurement data for all tools?\n measurementData.active = false;\n measurementData.handles.end.active = false;\n measurementData.handles.end.highlight = false;\n measurementData.invalidated = true;\n\n const deleteIfHandleOutsideImage =\n state.deleteIfHandleOutsideImage ||\n tool.options.deleteIfHandleOutsideImage;\n\n if (\n deleteIfHandleOutsideImage &&\n anyHandlesOutsideImage(touchEventData, measurementData.handles)\n ) {\n // Delete the measurement\n removeToolState(element, tool.name, measurementData);\n }\n\n external.cornerstone.updateImage(element);\n\n return;\n }\n\n external.cornerstone.updateImage(element);\n\n moveNewHandle(\n touchEventData,\n tool.name,\n measurementData,\n measurementData.handles.end,\n tool.options,\n 'touch',\n () => {\n const eventType = EVENTS.MEASUREMENT_COMPLETED;\n const eventData = {\n toolName: tool.name,\n toolType: tool.name, // Deprecation notice: toolType will be replaced by toolName\n element,\n measurementData,\n };\n\n triggerEvent(element, eventType, eventData);\n }\n );\n}\n","import customCallbackHandler from './../shared/customCallbackHandler.js';\nimport multiTouchDrag from './multiTouchDrag.js';\nimport tap from './tap.js';\nimport touchStart from './touchStart.js';\nimport touchStartActive from './touchStartActive.js';\n\nconst doubleTap = customCallbackHandler.bind(\n null,\n 'DoubleTap',\n 'doubleTapCallback'\n);\n// TODO: some touchDrag tools don't want to fire on touchStart\n// TODO: Drag tools have an option `fireOnTouchStart` used to filter\n// TODO: Them out of TOUCH_START handler\nconst touchDrag = customCallbackHandler.bind(\n null,\n 'Touch',\n 'touchDragCallback'\n);\nconst touchEnd = customCallbackHandler.bind(null, 'Touch', 'touchEndCallback');\nconst touchPinch = customCallbackHandler.bind(\n null,\n 'TouchPinch',\n 'touchPinchCallback'\n);\nconst touchPress = customCallbackHandler.bind(\n null,\n 'Touch',\n 'touchPressCallback'\n);\nconst touchRotate = customCallbackHandler.bind(\n null,\n 'TouchRotate',\n 'touchRotateCallback'\n);\n\nexport {\n doubleTap,\n multiTouchDrag,\n tap,\n touchDrag,\n touchEnd,\n touchPinch,\n touchPress,\n touchRotate,\n touchStart,\n touchStartActive,\n};\n","import { state } from '../../store/index.js';\nimport getActiveToolsForElement from '../../store/getActiveToolsForElement.js';\nimport filterToolsUseableWithMultiPartTools from './../../store/filterToolsUsableWithMultiPartTools.js';\n\nexport default function(evt) {\n if (state.isToolLocked) {\n return false;\n }\n\n // TODO: We sometimes see a null detail for TOUCH_PRESS\n const { element, numPointers } = evt.detail;\n let tools = state.tools.filter(tool =>\n tool.supportedInteractionTypes.includes('MultiTouch')\n );\n\n // Tool is active, and specific callback is active\n tools = getActiveToolsForElement(element, tools, 'MultiTouch');\n // Tool has expected callback custom function\n tools = tools.filter(\n tool =>\n typeof tool.multiTouchDragCallback === 'function' &&\n numPointers === tool.configuration.touchPointers\n );\n\n if (state.isMultiPartToolActive) {\n tools = filterToolsUseableWithMultiPartTools(tools);\n }\n\n if (tools.length === 0) {\n return false;\n }\n\n const activeTool = tools[0];\n\n activeTool.multiTouchDragCallback(evt);\n}\n","export default function(toolData) {\n if (!toolData) {\n return;\n }\n\n for (let i = 0; i < toolData.data.length; i++) {\n const data = toolData.data[i];\n\n data.active = false;\n if (!data.handles) {\n continue;\n }\n\n deactivateAllHandles(data.handles);\n }\n}\n\nfunction deactivateAllHandles(handles) {\n Object.keys(handles).forEach(function(name) {\n const handle = handles[name];\n\n handle.active = false;\n });\n}\n","import external from '../../externalModules.js';\nimport touchStartActive from './touchStartActive.js';\n// State\nimport { getters, state } from '../../store/index.js';\nimport getActiveToolsForElement from '../../store/getActiveToolsForElement.js';\nimport getToolsWithDataForElement from '../../store/getToolsWithDataForElement.js';\nimport { getToolState } from '../../stateManagement/toolState.js';\n//\nimport getHandleNearImagePoint from '../../manipulators/getHandleNearImagePoint.js';\nimport { moveHandle, moveAllHandles } from '../../manipulators/index.js';\n//\nimport deactivateAllToolInstances from './shared/deactivateAllToolInstances.js';\n\nexport default function(evt) {\n if (state.isToolLocked || state.isMultiPartToolActive) {\n return;\n }\n\n let tools;\n const distanceFromHandle = 28;\n const element = evt.detail.element;\n const coords = evt.detail.currentPoints.canvas;\n\n tools = getActiveToolsForElement(element, getters.touchTools());\n tools = getToolsWithDataForElement(element, tools);\n\n // Deactivate everything\n // DeactivateAllToolInstances(toolData);\n\n // Find all tools w/ handles that we are near\n const toolsWithMoveableHandles = tools.filter(tool => {\n const toolState = getToolState(element, tool.name);\n\n for (let i = 0; i < toolState.data.length; i++) {\n if (\n getHandleNearImagePoint(\n element,\n toolState.data[i].handles,\n coords,\n distanceFromHandle\n ) !== undefined\n ) {\n return true;\n }\n }\n\n return false;\n });\n\n // TODO: More than one? Which one was moved most recently?\n // We'll just grab the first one we encounter for now\n if (toolsWithMoveableHandles.length > 0) {\n // Todo: ignore: touch_start, tap\n\n const firstToolWithMoveableHandles = toolsWithMoveableHandles[0];\n const toolState = getToolState(element, firstToolWithMoveableHandles.name);\n const moveableHandle = toolState.data.find(\n d =>\n getHandleNearImagePoint(\n element,\n d.handles,\n coords,\n distanceFromHandle\n ) !== undefined\n );\n\n toolState.data.active = true;\n moveableHandle.active = true; // Why here, but not touchStart?\n external.cornerstone.updateImage(element);\n\n moveHandle(\n evt.detail,\n firstToolWithMoveableHandles.name,\n toolState.data,\n moveableHandle,\n firstToolWithMoveableHandles.options,\n 'touch',\n () => deactivateAllToolInstances(toolState)\n );\n evt.stopImmediatePropagation();\n evt.preventDefault();\n // Why no stopPropagation?\n\n return;\n }\n\n // Find all tools near our point\n const toolsNearPoint = tools.filter(tool => {\n const toolState = getToolState(element, tool.name);\n const isNearPoint =\n toolState &&\n toolState.data &&\n tool.pointNearTool &&\n toolState.data.some(data => tool.pointNearTool(element, data, coords));\n\n return isNearPoint;\n });\n\n // TODO: More than one? Which one was moved most recently?\n // We'll just grab the first one we encounter for now\n if (toolsNearPoint.length > 0) {\n // Todo: Ignore: TAP, START, PRESS\n const firstToolNearPoint = toolsNearPoint[0];\n const toolState = getToolState(element, firstToolNearPoint.name);\n const firstAnnotationNearPoint = toolState.data.find(data =>\n firstToolNearPoint.pointNearTool(element, data, coords)\n );\n\n // Todo: ignore: touch_start, tap\n firstAnnotationNearPoint.active = true;\n external.cornerstone.updateImage(element);\n\n moveAllHandles(\n evt.detail,\n firstToolNearPoint.name,\n firstAnnotationNearPoint,\n null,\n firstToolNearPoint.options,\n 'touch',\n () => deactivateAllToolInstances(toolState)\n );\n\n evt.stopImmediatePropagation();\n evt.preventDefault();\n // TODO: Why no stop propagation?\n\n return;\n }\n\n // If there is nothing to move, add a new instance of the tool\n // Need to check here to see if activation is allowed!\n // TODO: What would this be? First active tool?\n // Or should _always_ pass through to our larger event handler that checks\n // All tools anyway?\n const allActiveTools = getActiveToolsForElement(\n element,\n getters.touchTools()\n );\n\n if (allActiveTools.length > 0 && allActiveTools[0].touchStartActiveCallback) {\n allActiveTools[0].touchStartActiveCallback(evt);\n } else {\n touchStartActive(evt);\n }\n\n return false;\n}\n","// State\nimport { getters, state } from '../../store/index.js';\nimport { findHandleDataNearImagePoint } from '../../util/findAndMoveHelpers.js';\nimport getToolsWithMoveableHandles from '../../store/getToolsWithMoveableHandles.js';\nimport { getToolState } from './../../stateManagement/toolState.js';\nimport getInteractiveToolsForElement from './../../store/getInteractiveToolsForElement.js';\nimport getToolsWithDataForElement from './../../store/getToolsWithDataForElement.js';\nimport filterToolsUseableWithMultiPartTools from './../../store/filterToolsUsableWithMultiPartTools.js';\n\nexport default function(evt) {\n if (state.isToolLocked) {\n return;\n }\n\n const eventData = evt.detail;\n const element = eventData.element;\n const coords = eventData.startPoints.canvas;\n\n const activeAndPassiveTools = getInteractiveToolsForElement(\n element,\n getters.touchTools()\n );\n\n let activeTools = activeAndPassiveTools.filter(\n tool => tool.mode === 'active' && tool.options.isTouchActive\n );\n\n if (state.isMultiPartToolActive) {\n activeTools = filterToolsUseableWithMultiPartTools(activeTools);\n }\n\n // If any tools are active, check if they have a special reason for dealing with the event.\n if (activeTools.length > 0) {\n // TODO: If length > 1, you could assess fitness and select the ideal tool\n // TODO: But because we're locking this to 'active' tools, that should rarely be an issue\n // Super-Meta-TODO: ^ I think we should just take the approach of one active tool per mouse button?\n const firstActiveToolWithCallback = activeTools.find(\n tool => typeof tool.preTouchStartCallback === 'function'\n );\n\n if (firstActiveToolWithCallback) {\n const consumedEvent = firstActiveToolWithCallback.preTouchStartCallback(\n evt\n );\n\n if (consumedEvent) {\n return;\n }\n }\n }\n\n if (state.isMultiPartToolActive) {\n return;\n }\n\n const annotationTools = getToolsWithDataForElement(\n element,\n activeAndPassiveTools\n );\n\n // NEAR HANDLES?\n const annotationToolsWithMoveableHandles = getToolsWithMoveableHandles(\n element,\n annotationTools,\n coords,\n 'touch'\n );\n\n // TODO: More than one? Which one was moved most recently?\n // We'll just grab the first one we encounter for now\n if (annotationToolsWithMoveableHandles.length > 0) {\n // Todo: Ignore TAP, START, PRESS\n\n const firstToolWithMoveableHandles = annotationToolsWithMoveableHandles[0];\n const toolState = getToolState(element, firstToolWithMoveableHandles.name);\n\n const { handle, data } = findHandleDataNearImagePoint(\n element,\n toolState,\n firstToolWithMoveableHandles.name,\n coords,\n 'touch'\n );\n\n firstToolWithMoveableHandles.handleSelectedCallback(\n evt,\n data,\n handle,\n 'touch'\n );\n\n return;\n }\n\n // NEAR POINT?\n const annotationToolsWithPointNearTouch = annotationTools.filter(tool => {\n const toolState = getToolState(element, tool.name);\n const isNearPoint =\n toolState &&\n toolState.data &&\n tool.pointNearTool &&\n toolState.data.some(data =>\n tool.pointNearTool(element, data, coords, 'touch')\n );\n\n return isNearPoint;\n });\n\n // TODO: More than one? Which one was moved most recently?\n // We'll just grab the first one we encounter for now\n if (annotationToolsWithPointNearTouch.length > 0) {\n // Todo: Ignore: TAP, START, PRESS\n const firstToolNearPoint = annotationToolsWithPointNearTouch[0];\n const toolState = getToolState(element, firstToolNearPoint.name);\n const firstAnnotationNearPoint = toolState.data.find(data =>\n firstToolNearPoint.pointNearTool(element, data, coords)\n );\n\n firstToolNearPoint.toolSelectedCallback(\n evt,\n firstAnnotationNearPoint,\n 'touch'\n );\n\n return;\n }\n\n // If any tools are active, check if they have a special reason for dealing with the event.\n if (activeTools.length > 0) {\n // TODO: If length > 1, you could assess fitness and select the ideal tool\n // TODO: But because we're locking this to 'active' tools, that should rarely be an issue\n // Super-Meta-TODO: ^ I think we should just take the approach of one active tool per mouse button?\n const firstActiveToolWithCallback = activeTools.find(\n tool => typeof tool.postTouchStartCallback === 'function'\n );\n\n if (firstActiveToolWithCallback) {\n const consumedEvent = firstActiveToolWithCallback.postTouchStartCallback(\n evt\n );\n\n if (consumedEvent) {\n return;\n }\n }\n }\n}\n","// State\nimport { state } from './../../store/index.js';\nimport addNewMeasurement from './addNewMeasurement.js';\nimport BaseAnnotationTool from './../../tools/base/BaseAnnotationTool.js';\nimport getActiveTool from '../../util/getActiveTool';\n\nexport default function(evt) {\n if (state.isToolLocked || state.isMultiPartToolActive) {\n return;\n }\n\n const element = evt.detail.element;\n const activeTool = getActiveTool(element, null, 'touch');\n\n // Note: custom `addNewMeasurement` will need to prevent event bubbling\n if (activeTool && activeTool.addNewMeasurement) {\n activeTool.addNewMeasurement(evt, 'touch');\n } else if (activeTool instanceof BaseAnnotationTool) {\n addNewMeasurement(evt, activeTool);\n }\n}\n","import EVENTS from '../events.js';\nimport {\n tap,\n doubleTap,\n multiTouchDrag,\n touchStart,\n touchStartActive,\n touchRotate,\n touchDrag,\n touchEnd,\n touchPress,\n touchPinch,\n} from './touchEventHandlers/index.js';\n\n/**\n * These listeners are emitted in order, and can be cancelled/prevented from bubbling\n * by any previous event.\n * - tap:\n * - touchStart: check to see if we are close to an existing annotation, grab it\n * - touchDrag:\n * - touchStartActive: createNewMeasurement (usually)\n * - touchPress:\n * - touchRotate:\n * - doubleTap: usually a one-time apply specialty action\n * - touchPinch:\n * - onImageRendered: redraw visible tool data\n * @private\n * @param {*} element\n * @returns {void}\n */\nconst enable = function(element) {\n element.addEventListener(EVENTS.TAP, tap);\n element.addEventListener(EVENTS.TOUCH_START, touchStart, { passive: false });\n element.addEventListener(EVENTS.TOUCH_DRAG, touchDrag, { passive: false });\n element.addEventListener(EVENTS.TOUCH_END, touchEnd);\n // Mouse equivelant is `mouse_down_activate`\n // Should the naming pattern here match?\n element.addEventListener(EVENTS.TOUCH_START_ACTIVE, touchStartActive);\n element.addEventListener(EVENTS.TOUCH_PRESS, touchPress);\n element.addEventListener(EVENTS.DOUBLE_TAP, doubleTap);\n element.addEventListener(EVENTS.TOUCH_PINCH, touchPinch);\n element.addEventListener(EVENTS.TOUCH_ROTATE, touchRotate);\n element.addEventListener(EVENTS.MULTI_TOUCH_DRAG, multiTouchDrag);\n};\n\nconst disable = function(element) {\n element.removeEventListener(EVENTS.TAP, tap);\n element.removeEventListener(EVENTS.TOUCH_START, touchStart);\n element.removeEventListener(EVENTS.TOUCH_DRAG, touchDrag);\n element.removeEventListener(EVENTS.TOUCH_END, touchEnd);\n // Mouse equivelant is `mouse_down_activate`\n // Should the naming pattern here match?\n element.removeEventListener(EVENTS.TOUCH_START_ACTIVE, touchStartActive);\n element.removeEventListener(EVENTS.TOUCH_PRESS, touchPress);\n element.removeEventListener(EVENTS.DOUBLE_TAP, doubleTap);\n element.removeEventListener(EVENTS.TOUCH_PINCH, touchPinch);\n element.removeEventListener(EVENTS.TOUCH_ROTATE, touchRotate);\n element.removeEventListener(EVENTS.MULTI_TOUCH_DRAG, multiTouchDrag);\n};\n\nexport default {\n enable,\n disable,\n};\n","import mouseEventListeners from './mouseEventListeners.js';\nimport wheelEventListener from './wheelEventListener.js';\nimport touchEventListeners from './touchEventListeners.js';\n\nexport { mouseEventListeners, wheelEventListener, touchEventListeners };\n","// Reasonable defaults\nconst PIXEL_STEP = 10;\nconst LINE_HEIGHT = 40;\nconst PAGE_HEIGHT = 800;\n\n/**\n * Normalizes wheel events and provides properties that are more\n * consistent and helpful across different browsers\n *\n * @private\n * @function normalizeWheel\n * @param {WheelEvent} event\n * @returns {Object} { spinX, spinY, pixlX, pixelY }\n */\nexport default function(event) {\n let spinX = 0,\n spinY = 0,\n pixelX = 0,\n pixelY = 0;\n\n // Legacy\n if ('detail' in event) {\n spinY = event.detail;\n }\n if ('wheelDelta' in event) {\n spinY = -event.wheelDelta / 120;\n }\n if ('wheelDeltaY' in event) {\n spinY = -event.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in event) {\n spinX = -event.wheelDeltaX / 120;\n }\n\n pixelX = spinX * PIXEL_STEP;\n pixelY = spinY * PIXEL_STEP;\n\n if ('deltaY' in event) {\n pixelY = event.deltaY;\n }\n if ('deltaX' in event) {\n pixelX = event.deltaX;\n }\n\n if ((pixelX || pixelY) && event.deltaMode) {\n if (event.deltaMode === 1) {\n // Delta in LINE units\n pixelX *= LINE_HEIGHT;\n pixelY *= LINE_HEIGHT;\n } else {\n // Delta in PAGE units\n pixelX *= PAGE_HEIGHT;\n pixelY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pixelX && !spinX) {\n spinX = pixelX < 1 ? -1 : 1;\n }\n if (pixelY && !spinY) {\n spinY = pixelY < 1 ? -1 : 1;\n }\n\n return {\n spinX,\n spinY,\n pixelX,\n pixelY,\n };\n}\n","import { getModule } from '../../store/index.js';\nimport renderSegmentationFill from './renderSegmentationFill';\nimport renderSegmentationOutline from './renderSegmentationOutline';\n\nconst segmentationModule = getModule('segmentation');\n\n/**\n * Renders the segmentation based on the brush configuration and\n * the active status of the labelmap.\n * @param {Object} evt The cornerstone event.\n * @param {Labelmap3D} labelmap3D The `Labelmap3D` object.\n * @param {number} labelmapIndex The index of the active label map.\n * @param {Labelmap2D} labelmap2D The `Labelmap2D` object to render.\n * @param {boolean} isActiveLabelMap Whether or not the labelmap is active.\n * @returns {null}\n */\nexport default function renderSegmentation(\n evt,\n labelmap3D,\n labelmapIndex,\n labelmap2D,\n isActiveLabelMap\n) {\n if (shouldRenderFill(isActiveLabelMap)) {\n renderSegmentationFill(\n evt,\n labelmap3D,\n labelmap2D,\n labelmapIndex,\n isActiveLabelMap\n );\n }\n\n if (shouldRenderOutline(isActiveLabelMap)) {\n renderSegmentationOutline(\n evt,\n labelmap3D,\n labelmap2D,\n labelmapIndex,\n isActiveLabelMap\n );\n }\n}\n\n/**\n * ShouldRenderFill - Returns true if `configuration.renderFill`\n * is true , and if the global alpha is not zero.\n *\n * @param {boolean} isActiveLabelMap\n * @returns {boolean} True if the segmentation should be filled.\n */\nfunction shouldRenderFill(isActiveLabelMap) {\n const { configuration } = segmentationModule;\n\n return (\n configuration.renderFill &&\n ((isActiveLabelMap && configuration.fillAlpha !== 0) ||\n (!isActiveLabelMap && configuration.fillAlphaInactive !== 0))\n );\n}\n\n/**\n * ShouldRenderOutline - Returns true if `configuration.renderOutline`\n * is true , and if the global alpha is not zero.\n *\n * @param {boolean} isActiveLabelMap\n * @returns {boolean} True if the segmentation should be outlined.\n */\nfunction shouldRenderOutline(isActiveLabelMap) {\n const { configuration } = segmentationModule;\n\n return (\n configuration.renderOutline &&\n ((isActiveLabelMap && configuration.outlineAlpha !== 0) ||\n (!isActiveLabelMap && configuration.outlineAlphaInactive !== 0))\n );\n}\n","import { getModule } from '../../store/index.js';\nimport {\n getNewContext,\n resetCanvasContextTransform,\n transformCanvasContext,\n} from '../../drawing/index.js';\nimport external from '../../externalModules';\n\nconst segmentationModule = getModule('segmentation');\n\nexport default function renderSegmentationFill(\n evt,\n labelmap3D,\n labelmap2D,\n labelmapIndex,\n isActiveLabelMap\n) {\n const labelmapCanvas = getLabelmapCanvas(evt, labelmap3D, labelmap2D);\n\n renderFill(evt, labelmapCanvas, isActiveLabelMap);\n}\n\n/**\n * Generates a canvas of the `Labelmap2D` data with transparent background, to draw onto the\n * cornerstone canvas. Reduces the number of `putImageData` calls that need to be made by\n * scanning across the labelmap and painting to the canvas in chunks.\n *\n * @param {Object} evt The cornerstone event.\n * @param {Labelmap3D} labelmap3D The `Labelmap3D` object.\n * @param {Labelmap2D} labelmap2D The `Labelmap2D` object containing the pixelData to render.\n * @returns {HTMLCanvasElement}\n */\nexport function getLabelmapCanvas(evt, labelmap3D, labelmap2D) {\n const { state } = segmentationModule;\n const eventData = evt.detail;\n const { image } = eventData;\n const cols = image.width;\n const rows = image.height;\n const { segmentsHidden } = labelmap3D;\n const pixelData = labelmap2D.pixelData;\n const colorLutTable = state.colorLutTables[labelmap3D.colorLUTIndex];\n const canvasElement = document.createElement('canvas');\n\n canvasElement.width = cols;\n canvasElement.height = rows;\n\n const ctx = getNewContext(canvasElement);\n\n // Image data initialized with all transparent black.\n const imageData = new ImageData(cols, rows);\n const data = imageData.data;\n\n for (let i = 0; i < pixelData.length; i++) {\n const segmentIndex = pixelData[i];\n\n if (segmentIndex !== 0 && !segmentsHidden[segmentIndex]) {\n const color = colorLutTable[pixelData[i]];\n\n // Modify ImageData.\n data[4 * i] = color[0]; // R value\n data[4 * i + 1] = color[1]; // G value\n data[4 * i + 2] = color[2]; // B value\n data[4 * i + 3] = color[3]; // A value\n }\n }\n\n // Put this image data onto the labelmapCanvas.\n ctx.putImageData(imageData, 0, 0);\n\n return canvasElement;\n}\n\n/**\n * Renders the filled region of each segment in the segmentation.\n * @param {Object} evt The cornerstone event.\n * @param {HTMLCanvasElement} labelmapCanvas The canvas generated for the labelmap.\n * @param {boolean} isActiveLabelMap Whether or not the labelmap is active.\n * @returns {null}\n */\nexport function renderFill(evt, labelmapCanvas, isActiveLabelMap) {\n const { configuration } = segmentationModule;\n const eventData = evt.detail;\n const context = getNewContext(eventData.canvasContext.canvas);\n\n const canvasTopLeft = external.cornerstone.pixelToCanvas(eventData.element, {\n x: 0,\n y: 0,\n });\n\n const canvasTopRight = external.cornerstone.pixelToCanvas(eventData.element, {\n x: eventData.image.width,\n y: 0,\n });\n\n const canvasBottomRight = external.cornerstone.pixelToCanvas(\n eventData.element,\n {\n x: eventData.image.width,\n y: eventData.image.height,\n }\n );\n\n const cornerstoneCanvasWidth = external.cornerstoneMath.point.distance(\n canvasTopLeft,\n canvasTopRight\n );\n const cornerstoneCanvasHeight = external.cornerstoneMath.point.distance(\n canvasTopRight,\n canvasBottomRight\n );\n\n const canvas = eventData.canvasContext.canvas;\n const viewport = eventData.viewport;\n\n const previousImageSmoothingEnabled = context.imageSmoothingEnabled;\n const previousGlobalAlpha = context.globalAlpha;\n\n context.imageSmoothingEnabled = false;\n context.globalAlpha = isActiveLabelMap\n ? configuration.fillAlpha\n : configuration.fillAlphaInactive;\n\n transformCanvasContext(context, canvas, viewport);\n\n const canvasViewportTranslation = getCanvasViewportTranslation(eventData);\n\n context.drawImage(\n labelmapCanvas,\n canvas.width / 2 - cornerstoneCanvasWidth / 2 + canvasViewportTranslation.x,\n canvas.height / 2 -\n cornerstoneCanvasHeight / 2 +\n canvasViewportTranslation.y,\n cornerstoneCanvasWidth,\n cornerstoneCanvasHeight\n );\n\n context.globalAlpha = previousGlobalAlpha;\n context.imageSmoothingEnabled = previousImageSmoothingEnabled;\n\n resetCanvasContextTransform(context);\n}\n\n/**\n * GetCanvasViewportTranslation - Returns translation coordinations for\n * canvas viewport with calculation of image row/column pixel spacing.\n *\n * @param {Object} eventData The data associated with the event.\n * @returns {Object} The coordinates of the translation.\n */\nfunction getCanvasViewportTranslation(eventData) {\n const { viewport, image } = eventData;\n\n let widthScale = viewport.scale;\n let heightScale = viewport.scale;\n\n if (image.rowPixelSpacing < image.columnPixelSpacing) {\n widthScale *= image.columnPixelSpacing / image.rowPixelSpacing;\n } else if (image.columnPixelSpacing < image.rowPixelSpacing) {\n heightScale *= image.rowPixelSpacing / image.columnPixelSpacing;\n }\n\n return {\n x: viewport.translation.x * widthScale,\n y: viewport.translation.y * heightScale,\n };\n}\n","import { getModule } from '../../store/index.js';\nimport external from '../../externalModules.js';\nimport { getNewContext, draw, drawLines } from '../../drawing/index.js';\nimport { disableLogger } from '../../index.js';\n\nconst segmentationModule = getModule('segmentation');\n\nexport default function renderSegmentationOutline(\n evt,\n labelmap3D,\n labelmap2D,\n labelmapIndex,\n isActiveLabelMap\n) {\n const { configuration } = segmentationModule;\n const outline = getOutline(\n evt,\n labelmap3D,\n labelmap2D,\n configuration.outlineWidth\n );\n\n renderOutline(evt, outline, labelmap3D.colorLUTIndex, isActiveLabelMap);\n}\n\n/**\n * RenderOutline - Renders the outlines of segments to the canvas.\n *\n * @param {Object} evt The cornerstone event.\n * @param {Object} outline The outline to render.\n * @param {number} colorLUTIndex The index of the colorLUT.\n * @param {number} isActiveLabelMap Whether the labelmap is active.\n * @returns {null}\n */\nexport function renderOutline(\n evt,\n outline,\n colorLUTIndex,\n isActiveLabelMap = true\n) {\n const { configuration, state } = segmentationModule;\n const eventData = evt.detail;\n const { element, canvasContext } = eventData;\n\n const lineWidth = configuration.outlineWidth || 1;\n\n const context = getNewContext(canvasContext.canvas);\n const colorLutTable = state.colorLutTables[colorLUTIndex];\n\n const previousAlpha = context.globalAlpha;\n\n context.globalAlpha = isActiveLabelMap\n ? configuration.outlineAlpha\n : configuration.outlineAlphaInactive;\n\n // Draw outlines.\n draw(context, context => {\n for (let i = 1; i < outline.length; i++) {\n if (outline[i]) {\n const color = colorLutTable[i];\n\n drawLines(\n context,\n element,\n outline[i],\n {\n color: `rgba(${color[0]}, ${color[1]}, ${color[2]}, 1.0 )`,\n lineWidth,\n },\n 'canvas'\n );\n }\n }\n });\n\n context.globalAlpha = previousAlpha;\n}\n\n/**\n * GetOutline - Returns an object containing all the line segments to be\n * drawn the canvas.\n *\n * @param {Object} evt The cornerstone event.\n * @param {Labelmap3D} labelmap3D The 3D labelmap.\n * @param {Labelmap2D} labelmap2D The 2D labelmap for this current image.\n * @param {number} lineWidth The width of the outline in canvas pixels.\n *\n * @returns {Object[][]} An array of arrays of lines for each segment.\n */\nexport function getOutline(evt, labelmap3D, labelmap2D, lineWidth) {\n const eventData = evt.detail;\n const { element, image, viewport } = eventData;\n const cols = image.width;\n const rows = image.height;\n\n lineWidth = lineWidth || 1;\n\n const { segmentsHidden } = labelmap3D;\n\n const pixelData = labelmap2D.pixelData;\n const activeSegmentIndex = labelmap3D.activeSegmentIndex;\n const lineSegments = [];\n\n labelmap2D.segmentsOnLabelmap.forEach(segmentIndex => {\n const visible = !segmentsHidden[segmentIndex];\n\n if (visible) {\n lineSegments[segmentIndex] = [];\n }\n });\n\n if (!lineSegments[activeSegmentIndex]) {\n lineSegments[activeSegmentIndex] = [];\n }\n\n const _getPixelCoordinateFromPixelIndex = pixelIndex => ({\n x: pixelIndex % cols,\n y: Math.floor(pixelIndex / cols),\n });\n\n const offset = getOutlineOffset(viewport, lineWidth);\n\n for (let i = 0; i < pixelData.length; i++) {\n const segmentIndex = pixelData[i];\n\n if (segmentIndex === 0) {\n continue;\n }\n\n const visible = !segmentsHidden[segmentIndex];\n\n if (!visible) {\n continue;\n }\n\n const coord = _getPixelCoordinateFromPixelIndex(i);\n const pixels = _getPixelIndiciesAroundPixel(coord, rows, cols);\n\n // Check pixel above\n if (pixels.top === undefined || pixelData[pixels.top] !== segmentIndex) {\n _addTopOutline(lineSegments[segmentIndex], element, coord, offset);\n }\n\n // Check pixel below\n if (\n pixels.bottom === undefined ||\n pixelData[pixels.bottom] !== segmentIndex\n ) {\n _addBottomOutline(lineSegments[segmentIndex], element, coord, offset);\n }\n\n // Check pixel to the left\n if (pixels.left === undefined || pixelData[pixels.left] !== segmentIndex) {\n _addLeftOutline(lineSegments[segmentIndex], element, coord, offset);\n }\n\n // Check pixel to the right\n if (\n pixels.right === undefined ||\n pixelData[pixels.right] !== segmentIndex\n ) {\n _addRightOutline(lineSegments[segmentIndex], element, coord, offset);\n }\n\n // Top left corner\n if (\n pixels.topLeft !== undefined &&\n pixelData[pixels.topLeft] !== segmentIndex &&\n pixelData[pixels.top] === segmentIndex &&\n pixelData[pixels.left] === segmentIndex\n ) {\n _addTopLeftCorner(lineSegments[segmentIndex], element, coord, offset);\n }\n\n // Top right corner\n if (\n pixels.topRight !== undefined &&\n pixelData[pixels.topRight] !== segmentIndex &&\n pixelData[pixels.top] === segmentIndex &&\n pixelData[pixels.right] === segmentIndex\n ) {\n _addTopRightCorner(lineSegments[segmentIndex], element, coord, offset);\n }\n\n // Bottom left corner\n if (\n pixels.bottomLeft !== undefined &&\n pixelData[pixels.bottomLeft] !== segmentIndex &&\n pixelData[pixels.bottom] === segmentIndex &&\n pixelData[pixels.left] === segmentIndex\n ) {\n _addBottomLeftCorner(lineSegments[segmentIndex], element, coord, offset);\n }\n\n // Bottom right corner\n if (\n pixels.bottomRight !== undefined &&\n pixelData[pixels.bottomRight] !== segmentIndex &&\n pixelData[pixels.bottom] === segmentIndex &&\n pixelData[pixels.right] === segmentIndex\n ) {\n _addBottomRightCorner(lineSegments[segmentIndex], element, coord, offset);\n }\n }\n\n return lineSegments;\n}\n\n/**\n * GetOutlineOffset - Returns the outline offset (half line width) in the\n * i (column) and j (row) pixel directions in the viewport's rotated frame.\n * @param {Object} viewport The cornerstone viewport.\n * @param {number} lineWidth The width of the outline.\n * @returns {Object} Two vectors in the i and j pixel directions, with magnitude\n * lineWidth / 2\n */\nfunction getOutlineOffset(viewport, lineWidth) {\n const halfLineWidth = lineWidth / 2;\n let theta = viewport.rotation;\n\n theta *= Math.PI / 180;\n\n const cosTheta = Math.cos(theta);\n const sinTheta = Math.sin(theta);\n\n const unitVectorI = [cosTheta, sinTheta];\n const unitVectorJ = [-sinTheta, cosTheta];\n\n const i = {\n x: halfLineWidth * unitVectorI[0],\n y: halfLineWidth * unitVectorI[1],\n };\n\n const j = {\n x: halfLineWidth * unitVectorJ[0],\n y: halfLineWidth * unitVectorJ[1],\n };\n\n if (viewport.hflip) {\n i.x *= -1;\n i.y *= -1;\n }\n\n if (viewport.vflip) {\n j.x *= -1;\n j.y *= -1;\n }\n\n return {\n i,\n j,\n };\n}\n\n/**\n * _getPixelIndiciesAroundPixel - Returnns the coordinates for up to 8 surrounding\n * pixels, if they within the bounds of the image.\n *\n * @param {Object} coord The coordinate to check.\n * @param {number} rows The number of rows in the image.\n * @param {number} cols The number of cols in the image.\n *\n * @returns {Object} Object containing the position of adjacent pixels.\n */\nfunction _getPixelIndiciesAroundPixel(coord, rows, cols) {\n const pixelIndex = coord.y * cols + coord.x;\n const pixel = {};\n\n const hasPixelToTop = coord.y - 1 >= 0;\n const hasPixelToBotoom = coord.y + 1 < rows;\n const hasPixelToLeft = coord.x - 1 >= 0;\n const hasPixelToRight = coord.x + 1 < cols;\n\n if (hasPixelToTop) {\n pixel.top = pixelIndex - cols;\n\n if (hasPixelToRight) {\n pixel.topRight = pixel.top + 1;\n }\n\n if (hasPixelToLeft) {\n pixel.topLeft = pixel.top - 1;\n }\n }\n\n if (hasPixelToBotoom) {\n pixel.bottom = pixelIndex + cols;\n\n if (hasPixelToRight) {\n pixel.bottomRight = pixel.bottom + 1;\n }\n\n if (hasPixelToLeft) {\n pixel.bottomLeft = pixel.bottom - 1;\n }\n }\n\n if (hasPixelToLeft) {\n pixel.left = pixelIndex - 1;\n }\n\n if (hasPixelToRight) {\n pixel.right = pixelIndex + 1;\n }\n\n return pixel;\n}\n\n/**\n * _addTopLeftCorner - Adds an outline to the top left corner of the pixel.\n *\n * @param {Object[]} lineSegmentsForSegment - The list to append.\n * @param {Object} element - The Cornerstone enabled element.\n * @param {Object} coord - The pixel to add a line to.\n * @param {Object} offset - The x and y offset in the rotated frame.\n *\n * @returns {null}\n */\nfunction _addTopLeftCorner(lineSegmentsForSegment, element, coord, offset) {\n const { pixelToCanvas } = external.cornerstone;\n const start = pixelToCanvas(element, coord);\n\n start.x += offset.j.x;\n start.y += offset.j.y;\n\n const end = {\n x: start.x,\n y: start.y,\n };\n\n end.x += offset.i.x * 2;\n end.y += offset.i.y * 2;\n\n lineSegmentsForSegment.push({\n start,\n end,\n });\n}\n\n/**\n * _addTopRightCorner - Adds an outline to the top right corner of the pixel.\n *\n * @param {Object[]} lineSegmentsForSegment - The list to append.\n * @param {Object} element - The Cornerstone enabled element.\n * @param {Object} coord - The pixel to add a line to.\n * @param {Object} offset - The x and y offset in the rotated frame.\n *\n * @returns {null}\n */\nexport function _addTopRightCorner(\n lineSegmentsForSegment,\n element,\n coord,\n offset\n) {\n const { pixelToCanvas } = external.cornerstone;\n const start = pixelToCanvas(element, { x: coord.x + 1, y: coord.y });\n\n start.x += offset.j.x;\n start.y += offset.j.y;\n\n const end = {\n x: start.x,\n y: start.y,\n };\n\n end.x -= offset.i.x * 2;\n end.y -= offset.i.y * 2;\n\n lineSegmentsForSegment.push({\n start,\n end,\n });\n}\n\n/**\n * _addBottomLeftCorner - Adds an outline to the bottom left corner of the pixel.\n *\n * @param {Object[]} lineSegmentsForSegment - The list to append.\n * @param {Object} element - The Cornerstone enabled element.\n * @param {Object} coord - The pixel to add a line to.\n * @param {Object} offset - The x and y offset in the rotated frame.\n *\n * @returns {null}\n */\nfunction _addBottomLeftCorner(lineSegmentsForSegment, element, coord, offset) {\n const { pixelToCanvas } = external.cornerstone;\n const start = pixelToCanvas(element, { x: coord.x, y: coord.y + 1 });\n\n start.x -= offset.j.x;\n start.y -= offset.j.y;\n\n const end = {\n x: start.x,\n y: start.y,\n };\n\n end.x += offset.i.x * 2;\n end.y += offset.i.y * 2;\n\n lineSegmentsForSegment.push({\n start,\n end,\n });\n}\n\n/**\n * _addBottomRightCorner - Adds an outline to the bottom right corner of the pixel.\n *\n * @param {Object[]} lineSegmentsForSegment - The list to append.\n * @param {Object} element - The Cornerstone enabled element.\n * @param {Object} coord - The pixel to add a line to.\n * @param {Object} offset - The x and y offset in the rotated frame.\n *\n * @returns {null}\n */\nfunction _addBottomRightCorner(lineSegmentsForSegment, element, coord, offset) {\n const { pixelToCanvas } = external.cornerstone;\n const start = pixelToCanvas(element, { x: coord.x + 1, y: coord.y + 1 });\n\n start.x -= offset.j.x;\n start.y -= offset.j.y;\n\n const end = {\n x: start.x,\n y: start.y,\n };\n\n end.x -= offset.i.x * 2;\n end.y -= offset.i.y * 2;\n\n lineSegmentsForSegment.push({\n start,\n end,\n });\n}\n\n/**\n * _addTopOutline - adds an outline at the top of the pixel.\n *\n * @param {Object[]} lineSegmentsForSegment - The list to append.\n * @param {Object} element - The Cornerstone enabled element.\n * @param {Object} coord - The pixel to add a line to.\n * @param {number} halfLineWidth - Half the line width, to place line within the pixel.\n * @param {Object} offset - The x and y offset in the rotated frame.\n *\n * @returns {null}\n */\nfunction _addTopOutline(lineSegmentsForSegment, element, coord, offset) {\n const { pixelToCanvas } = external.cornerstone;\n const start = pixelToCanvas(element, coord);\n const end = pixelToCanvas(element, { x: coord.x + 1, y: coord.y });\n\n // Move the line in the y-direction.\n start.x += offset.j.x;\n start.y += offset.j.y;\n\n end.x += offset.j.x;\n end.y += offset.j.y;\n\n lineSegmentsForSegment.push({\n start,\n end,\n });\n}\n\n/**\n * _addBottomOutline - adds an outline at the bottom of the pixel.\n *\n * @param {Object[]} lineSegmentsForSegment - The list to append.\n * @param {Object} element - The Cornerstone enabled element.\n * @param {Object} coord - The pixel to add a line to.\n * @param {Object} offset - The x and y offset in the rotated frame.\n *\n * @returns {null}\n */\nfunction _addBottomOutline(lineSegmentsForSegment, element, coord, offset) {\n const { pixelToCanvas } = external.cornerstone;\n const start = pixelToCanvas(element, { x: coord.x, y: coord.y + 1 });\n const end = pixelToCanvas(element, { x: coord.x + 1, y: coord.y + 1 });\n\n // Move the line in the negative y-direction.\n start.x -= offset.j.x;\n start.y -= offset.j.y;\n\n end.x -= offset.j.x;\n end.y -= offset.j.y;\n\n lineSegmentsForSegment.push({\n start,\n end,\n });\n}\n\n/**\n * _addLeftOutline - adds an outline at the left side of the pixel.\n *\n * @param {Object[]} lineSegmentsForSegment - The list to append.\n * @param {Object} element - The Cornerstone enabled element.\n * @param {Object} coord - The pixel to add a line to.\n * @param {Object} offset - The x and y offset in the rotated frame.\n *\n * @returns {null}\n */\nfunction _addLeftOutline(lineSegmentsForSegment, element, coord, offset) {\n const { pixelToCanvas } = external.cornerstone;\n const start = pixelToCanvas(element, coord);\n const end = pixelToCanvas(element, { x: coord.x, y: coord.y + 1 });\n\n // Move the line in the x-direction.\n\n start.x += offset.i.x;\n start.y += offset.i.y;\n\n end.x += offset.i.x;\n end.y += offset.i.y;\n\n lineSegmentsForSegment.push({\n start,\n end,\n });\n}\n\n/**\n * _addRightOutline - adds an outline at the right side of the pixel.\n *\n * @param {Object[]} lineSegmentsForSegment - The list to append.\n * @param {Object} element - The Cornerstone enabled element.\n * @param {Object} coord - The pixel to add a line to.\n * @param {Object} offset - The x and y offset in the rotated frame.\n *\n * @returns {null}\n */\nfunction _addRightOutline(lineSegmentsForSegment, element, coord, offset) {\n const { pixelToCanvas } = external.cornerstone;\n const start = pixelToCanvas(element, { x: coord.x + 1, y: coord.y });\n const end = pixelToCanvas(element, { x: coord.x + 1, y: coord.y + 1 });\n\n // Move the line in the negative x-direction.\n\n start.x -= offset.i.x;\n start.y -= offset.i.y;\n\n end.x -= offset.i.x;\n end.y -= offset.i.y;\n\n lineSegmentsForSegment.push({\n start,\n end,\n });\n}\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport copyPoints from '../util/copyPoints.js';\nimport triggerEvent from '../util/triggerEvent.js';\nimport { getLogger } from '../util/logger.js';\n\nconst logger = getLogger('eventListeners:mouseEventListeners');\n\nlet isClickEvent = true;\nlet preventClickTimeout;\nconst clickDelay = 200;\n\nfunction getEventButtons(event) {\n if (typeof event.buttons === 'number') {\n return event.buttons;\n }\n\n switch (event.which) {\n // No button\n case 0:\n return 0;\n // Left\n case 1:\n return 1;\n // Middle\n case 2:\n return 4;\n // Right\n case 3:\n return 2;\n }\n\n return 0;\n}\n\nfunction preventClickHandler() {\n isClickEvent = false;\n}\n\nfunction mouseDoubleClick(e) {\n const element = e.currentTarget;\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n if (!enabledElement.image) {\n return;\n }\n\n const eventType = EVENTS.MOUSE_DOUBLE_CLICK;\n\n const startPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e),\n image: external.cornerstone.pageToPixel(element, e.pageX, e.pageY),\n client: {\n x: e.clientX,\n y: e.clientY,\n },\n };\n\n startPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n const lastPoints = copyPoints(startPoints);\n\n logger.log('double-click: %o', getEventButtons(e));\n const eventData = {\n event: e,\n buttons: getEventButtons(e),\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints: startPoints,\n deltaPoints: {\n x: 0,\n y: 0,\n },\n type: eventType,\n };\n\n triggerEvent(element, eventType, eventData);\n}\n\nfunction mouseDown(e) {\n const element = e.currentTarget;\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n if (!enabledElement.image) {\n return;\n }\n\n preventClickTimeout = setTimeout(preventClickHandler, clickDelay);\n\n // Prevent CornerstoneToolsMouseMove while mouse is down\n element.removeEventListener('mousemove', mouseMove);\n\n const startPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e),\n image: external.cornerstone.pageToPixel(element, e.pageX, e.pageY),\n client: {\n x: e.clientX,\n y: e.clientY,\n },\n };\n\n startPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n let lastPoints = copyPoints(startPoints);\n\n const eventData = {\n event: e,\n buttons: getEventButtons(e),\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints: startPoints,\n deltaPoints: {\n x: 0,\n y: 0,\n },\n type: EVENTS.MOUSE_DOWN,\n };\n\n const eventPropagated = triggerEvent(\n eventData.element,\n EVENTS.MOUSE_DOWN,\n eventData\n );\n\n if (eventPropagated) {\n // No tools responded to this event, create a new tool\n eventData.type = EVENTS.MOUSE_DOWN_ACTIVATE;\n triggerEvent(eventData.element, EVENTS.MOUSE_DOWN_ACTIVATE, eventData);\n }\n\n function onMouseMove(e) {\n // Calculate our current points in page and image coordinates\n const eventType = EVENTS.MOUSE_DRAG;\n const currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e),\n image: external.cornerstone.pageToPixel(element, e.pageX, e.pageY),\n client: {\n x: e.clientX,\n y: e.clientY,\n },\n };\n\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n // Calculate delta values in page and image coordinates\n const deltaPoints = {\n page: external.cornerstoneMath.point.subtract(\n currentPoints.page,\n lastPoints.page\n ),\n image: external.cornerstoneMath.point.subtract(\n currentPoints.image,\n lastPoints.image\n ),\n client: external.cornerstoneMath.point.subtract(\n currentPoints.client,\n lastPoints.client\n ),\n canvas: external.cornerstoneMath.point.subtract(\n currentPoints.canvas,\n lastPoints.canvas\n ),\n };\n\n logger.log('mousemove: %o', getEventButtons(e));\n const eventData = {\n buttons: getEventButtons(e),\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints,\n deltaPoints,\n type: eventType,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n shiftKey: e.shiftKey,\n };\n\n triggerEvent(eventData.element, eventType, eventData);\n\n // Update the last points\n lastPoints = copyPoints(currentPoints);\n }\n\n // Hook mouseup so we can unbind our event listeners\n // When they stop dragging\n function onMouseUp(e) {\n // Cancel the timeout preventing the click event from triggering\n clearTimeout(preventClickTimeout);\n\n let eventType = EVENTS.MOUSE_UP;\n\n if (isClickEvent) {\n eventType = EVENTS.MOUSE_CLICK;\n }\n\n // Calculate our current points in page and image coordinates\n const currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e),\n image: external.cornerstone.pageToPixel(element, e.pageX, e.pageY),\n client: {\n x: e.clientX,\n y: e.clientY,\n },\n };\n\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n // Calculate delta values in page and image coordinates\n const deltaPoints = {\n page: external.cornerstoneMath.point.subtract(\n currentPoints.page,\n lastPoints.page\n ),\n image: external.cornerstoneMath.point.subtract(\n currentPoints.image,\n lastPoints.image\n ),\n client: external.cornerstoneMath.point.subtract(\n currentPoints.client,\n lastPoints.client\n ),\n canvas: external.cornerstoneMath.point.subtract(\n currentPoints.canvas,\n lastPoints.canvas\n ),\n };\n\n logger.log('mouseup: %o', getEventButtons(e));\n const eventData = {\n event: e,\n buttons: getEventButtons(e),\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints,\n deltaPoints,\n type: eventType,\n };\n\n triggerEvent(eventData.element, eventType, eventData);\n\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n\n element.addEventListener('mousemove', mouseMove);\n\n isClickEvent = true;\n }\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n}\n\nfunction mouseMove(e) {\n const element = e.currentTarget;\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n if (!enabledElement.image) {\n return;\n }\n\n const eventType = EVENTS.MOUSE_MOVE;\n\n const startPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e),\n image: external.cornerstone.pageToPixel(element, e.pageX, e.pageY),\n client: {\n x: e.clientX,\n y: e.clientY,\n },\n };\n\n startPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n let lastPoints = copyPoints(startPoints);\n\n // Calculate our current points in page and image coordinates\n const currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e),\n image: external.cornerstone.pageToPixel(element, e.pageX, e.pageY),\n client: {\n x: e.clientX,\n y: e.clientY,\n },\n };\n\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n // Calculate delta values in page and image coordinates\n const deltaPoints = {\n page: external.cornerstoneMath.point.subtract(\n currentPoints.page,\n lastPoints.page\n ),\n image: external.cornerstoneMath.point.subtract(\n currentPoints.image,\n lastPoints.image\n ),\n client: external.cornerstoneMath.point.subtract(\n currentPoints.client,\n lastPoints.client\n ),\n canvas: external.cornerstoneMath.point.subtract(\n currentPoints.canvas,\n lastPoints.canvas\n ),\n };\n\n const eventData = {\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints,\n deltaPoints,\n type: eventType,\n };\n\n triggerEvent(element, eventType, eventData);\n\n // Update the last points\n lastPoints = copyPoints(currentPoints);\n}\n\nfunction disable(element) {\n element.removeEventListener('mousedown', mouseDown);\n element.removeEventListener('mousemove', mouseMove);\n element.removeEventListener('dblclick', mouseDoubleClick);\n}\n\nfunction enable(element) {\n // Prevent handlers from being attached multiple times\n disable(element);\n\n element.addEventListener('mousedown', mouseDown);\n element.addEventListener('mousemove', mouseMove);\n element.addEventListener('dblclick', mouseDoubleClick);\n}\n\nexport default {\n enable,\n disable,\n};\n","import { getModule } from '../store/index.js';\nimport renderSegmentation from './internals/renderSegmentation.js';\n\nconst segmentationModule = getModule('segmentation');\n\n/**\n * Finds which segmentations need to be rendered based on the configuration and\n * presence of `Labelmap2D` data on these frames.\n *\n * @param {Object} evt - The cornerstone event.\n * @returns {null}\n */\nexport default function(evt) {\n const eventData = evt.detail;\n const element = eventData.element;\n const { configuration, getters } = segmentationModule;\n\n const {\n activeLabelmapIndex,\n labelmaps3D,\n currentImageIdIndex,\n } = getters.labelmaps3D(element);\n\n if (!labelmaps3D) {\n return;\n }\n\n if (configuration.shouldRenderInactiveLabelmaps) {\n renderInactiveLabelMaps(\n evt,\n labelmaps3D,\n activeLabelmapIndex,\n currentImageIdIndex\n );\n }\n\n renderActiveLabelMap(\n evt,\n labelmaps3D,\n activeLabelmapIndex,\n currentImageIdIndex\n );\n}\n\n/**\n * RenderActiveLabelMap - Renders the `Labelmap3D` for this element if a `Labelmap2D`\n * view of the `currentImageIdIndex` exists.\n *\n * @param {Object} evt The cornerstone event.\n * @param {Labelmap3D[]} labelmaps3D An array of `Labelmap3D` objects.\n * @param {number} activeLabelmapIndex The index of the active label map.\n * @param {number} currentImageIdIndex The in-stack image position.\n * @returns {null}\n */\nfunction renderActiveLabelMap(\n evt,\n labelmaps3D,\n activeLabelmapIndex,\n currentImageIdIndex\n) {\n const labelmap3D = labelmaps3D[activeLabelmapIndex];\n\n if (!labelmap3D) {\n return;\n }\n\n const labelmap2D = labelmap3D.labelmaps2D[currentImageIdIndex];\n\n if (labelmap2D) {\n renderSegmentation(evt, labelmap3D, activeLabelmapIndex, labelmap2D, true);\n }\n}\n\n/**\n * RenderInactiveLabelMaps - Renders all the inactive `Labelmap3D`s for this element.\n *\n * @param {Object} evt The cornerstone event.\n * @param {Labelmap3D[]} labelmaps3D An array of labelmaps.\n * @param {number} activeLabelmapIndex The index of the active label map.\n * @param {number} currentImageIdIndex The in-stack image position.\n * @returns {null}\n */\nfunction renderInactiveLabelMaps(\n evt,\n labelmaps3D,\n activeLabelmapIndex,\n currentImageIdIndex\n) {\n for (let i = 0; i < labelmaps3D.length; i++) {\n const labelmap3D = labelmaps3D[i];\n\n if (i === activeLabelmapIndex || !labelmap3D) {\n continue;\n }\n\n const labelmap2D = labelmap3D.labelmaps2D[currentImageIdIndex];\n\n if (labelmap2D) {\n renderSegmentation(evt, labelmap3D, i, labelmap2D, false);\n }\n }\n}\n","// Functions to prevent ghost clicks following a touch\n// All credit to @kosich\n// https://gist.github.com/kosich/23188dd86633b6c2efb7\n\nconst antiGhostDelay = 2000,\n pointerType = {\n mouse: 0,\n touch: 1,\n };\n\nlet lastInteractionType, lastInteractionTime;\n\nfunction handleTap(type, e) {\n const now = Date.now();\n\n if (type !== lastInteractionType) {\n if (now - lastInteractionTime <= antiGhostDelay) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n\n return false;\n }\n\n lastInteractionType = type;\n }\n\n lastInteractionTime = now;\n}\n\n// Cacheing the function references\n// Necessary because a new function reference is created after .bind() is called\n// http://stackoverflow.com/questions/11565471/removing-event-listener-which-was-added-with-bind\nconst handleTapMouse = handleTap.bind(null, pointerType.mouse);\nconst handleTapTouch = handleTap.bind(null, pointerType.touch);\n\nfunction attachEvents(element, eventList, interactionType) {\n const tapHandler = interactionType ? handleTapMouse : handleTapTouch;\n\n eventList.forEach(function(eventName) {\n element.addEventListener(eventName, tapHandler, { passive: false });\n });\n}\n\nfunction removeEvents(element, eventList, interactionType) {\n const tapHandler = interactionType ? handleTapMouse : handleTapTouch;\n\n eventList.forEach(function(eventName) {\n element.removeEventListener(eventName, tapHandler);\n });\n}\n\nconst mouseEvents = ['mousedown', 'mouseup'];\nconst touchEvents = ['touchstart', 'touchend'];\n\nfunction disable(element) {\n removeEvents(element, mouseEvents, pointerType.mouse);\n removeEvents(element, touchEvents, pointerType.touch);\n}\n\nfunction enable(element) {\n disable(element);\n attachEvents(element, mouseEvents, pointerType.mouse);\n attachEvents(element, touchEvents, pointerType.touch);\n}\n\nexport default {\n enable,\n disable,\n};\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport copyPoints from '../util/copyPoints.js';\nimport preventGhostClick from './preventGhostClick.js';\nimport triggerEvent from '../util/triggerEvent.js';\nimport { setToolOptions, getToolOptions } from '../toolOptions.js';\n\nlet startPoints,\n currentPoints,\n lastPoints,\n deltaPoints,\n eventData,\n touchStartDelay,\n pressTimeout,\n pageDistanceMoved;\n\nlet lastScale = 1.0,\n lastRotation = 0.0,\n preventNextPinch = false,\n isPress = false,\n lastDelta;\n\nconst pressDelay = 700,\n pressMaxDistance = 5;\n\nconst inputName = 'touchInput';\n\nfunction onTouch(e) {\n const element = e.currentTarget || e.srcEvent.currentTarget;\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n if (!enabledElement.image) {\n return;\n }\n\n let eventType, scaleChange, delta, remainingPointers, rotation;\n\n // Prevent mouse events from occurring alongside touch events\n e.preventDefault();\n\n // If more than one finger is placed on the element, stop the press timeout\n if (\n (e.pointers && e.pointers.length > 1) ||\n (e.touches && e.touches.length > 1)\n ) {\n isPress = false;\n clearTimeout(pressTimeout);\n }\n\n switch (e.type) {\n case 'tap':\n isPress = false;\n clearTimeout(pressTimeout);\n\n // Calculate our current points in page and image coordinates\n currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.pointers[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.pointers[0].pageX,\n e.pointers[0].pageY\n ),\n client: {\n x: e.pointers[0].clientX,\n y: e.pointers[0].clientY,\n },\n };\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n eventType = EVENTS.TAP;\n eventData = {\n event: e,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n currentPoints,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n break;\n\n case 'doubletap':\n isPress = false;\n clearTimeout(pressTimeout);\n\n // Calculate our current points in page and image coordinates\n currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.pointers[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.pointers[0].pageX,\n e.pointers[0].pageY\n ),\n client: {\n x: e.pointers[0].clientX,\n y: e.pointers[0].clientY,\n },\n };\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n eventType = EVENTS.DOUBLE_TAP;\n eventData = {\n event: e,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n currentPoints,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n break;\n\n case 'pinchstart':\n isPress = false;\n clearTimeout(pressTimeout);\n\n lastScale = 1.0;\n break;\n\n case 'pinchmove':\n isPress = false;\n clearTimeout(pressTimeout);\n\n if (preventNextPinch === true) {\n lastScale = e.scale;\n preventNextPinch = false;\n break;\n }\n\n scaleChange = (e.scale - lastScale) / lastScale;\n\n startPoints = {\n page: e.center,\n image: external.cornerstone.pageToPixel(\n element,\n e.center.x,\n e.center.y\n ),\n };\n startPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n eventType = EVENTS.TOUCH_PINCH;\n eventData = {\n event: e,\n startPoints,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n direction: e.scale < 1 ? 1 : -1,\n scaleChange,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n\n lastScale = e.scale;\n break;\n\n case 'touchstart':\n lastScale = 1.0;\n\n clearTimeout(pressTimeout);\n\n clearTimeout(touchStartDelay);\n touchStartDelay = setTimeout(function() {\n startPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.touches[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.touches[0].pageX,\n e.touches[0].pageY\n ),\n client: {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY,\n },\n };\n startPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n eventType = EVENTS.TOUCH_START;\n if (e.touches.length > 1) {\n eventType = EVENTS.MULTI_TOUCH_START;\n }\n\n eventData = {\n event: e,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n currentPoints: startPoints,\n type: eventType,\n isTouchEvent: true,\n };\n\n const eventPropagated = triggerEvent(element, eventType, eventData);\n\n if (eventPropagated === true) {\n // IsPress = false;\n // ClearTimeout(pressTimeout);\n\n // No current tools responded to the drag action.\n // Create new tool measurement\n eventType = EVENTS.TOUCH_START_ACTIVE;\n if (e.touches.length > 1) {\n eventType = EVENTS.MULTI_TOUCH_START_ACTIVE;\n }\n\n eventData.type = eventType;\n triggerEvent(element, eventType, eventData);\n }\n\n // Console.log(eventType);\n lastPoints = copyPoints(startPoints);\n }, 50);\n\n isPress = true;\n pageDistanceMoved = 0;\n pressTimeout = setTimeout(function() {\n if (!isPress) {\n return;\n }\n\n currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.touches[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.touches[0].pageX,\n e.touches[0].pageY\n ),\n client: {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY,\n },\n };\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n eventType = EVENTS.TOUCH_PRESS;\n eventData = {\n event: e,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n currentPoints,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n\n // Console.log(eventType);\n }, pressDelay);\n break;\n\n case 'touchend':\n lastScale = 1.0;\n\n isPress = false;\n clearTimeout(pressTimeout);\n\n setTimeout(function() {\n startPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.changedTouches[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.changedTouches[0].pageX,\n e.changedTouches[0].pageY\n ),\n client: {\n x: e.changedTouches[0].clientX,\n y: e.changedTouches[0].clientY,\n },\n };\n startPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n eventType = EVENTS.TOUCH_END;\n\n eventData = {\n event: e,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n currentPoints: startPoints,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n }, 50);\n break;\n\n case 'panmove':\n // Using the delta-value of HammerJS, because it takes all pointers into account\n // This is very important when using panning in combination with pinch-zooming\n // But HammerJS' delta is relative to the start of the pan event\n // So it needs to be converted to a per-event-delta for CornerstoneTools\n delta = {\n x: e.deltaX - lastDelta.x,\n y: e.deltaY - lastDelta.y,\n };\n\n lastDelta = {\n x: e.deltaX,\n y: e.deltaY,\n };\n\n // Calculate our current points in page and image coordinates\n currentPoints = {\n page: {\n x: lastPoints.page.x + delta.x,\n y: lastPoints.page.y + delta.y,\n },\n image: external.cornerstone.pageToPixel(\n element,\n lastPoints.page.x + delta.x,\n lastPoints.page.y + delta.y\n ),\n client: {\n x: lastPoints.client.x + delta.x,\n y: lastPoints.client.y + delta.y,\n },\n };\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n // Calculate delta values in page and image coordinates\n deltaPoints = {\n page: external.cornerstoneMath.point.subtract(\n currentPoints.page,\n lastPoints.page\n ),\n image: external.cornerstoneMath.point.subtract(\n currentPoints.image,\n lastPoints.image\n ),\n client: external.cornerstoneMath.point.subtract(\n currentPoints.client,\n lastPoints.client\n ),\n canvas: external.cornerstoneMath.point.subtract(\n currentPoints.canvas,\n lastPoints.canvas\n ),\n };\n\n pageDistanceMoved += Math.sqrt(\n deltaPoints.page.x * deltaPoints.page.x +\n deltaPoints.page.y * deltaPoints.page.y\n );\n // Console.log(\"pageDistanceMoved: \" + pageDistanceMoved);\n if (pageDistanceMoved > pressMaxDistance) {\n // Console.log('Press event aborted due to movement');\n isPress = false;\n clearTimeout(pressTimeout);\n }\n\n eventType = EVENTS.TOUCH_DRAG;\n if (e.pointers.length > 1) {\n eventType = EVENTS.MULTI_TOUCH_DRAG;\n }\n\n eventData = {\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints,\n deltaPoints,\n numPointers: e.pointers.length,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n\n lastPoints = copyPoints(currentPoints);\n break;\n\n case 'panstart':\n lastDelta = {\n x: e.deltaX,\n y: e.deltaY,\n };\n\n currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.pointers[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.pointers[0].pageX,\n e.pointers[0].pageY\n ),\n client: {\n x: e.pointers[0].clientX,\n y: e.pointers[0].clientY,\n },\n };\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n lastPoints = copyPoints(currentPoints);\n break;\n\n case 'panend':\n isPress = false;\n clearTimeout(pressTimeout);\n\n // If lastPoints is not yet set, it means panend fired without panstart or pan,\n // So we can ignore this event\n if (!lastPoints) {\n return false;\n }\n\n currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.pointers[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.pointers[0].pageX,\n e.pointers[0].pageY\n ),\n client: {\n x: e.pointers[0].clientX,\n y: e.pointers[0].clientY,\n },\n };\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n // Calculate delta values in page and image coordinates\n deltaPoints = {\n page: external.cornerstoneMath.point.subtract(\n currentPoints.page,\n lastPoints.page\n ),\n image: external.cornerstoneMath.point.subtract(\n currentPoints.image,\n lastPoints.image\n ),\n client: external.cornerstoneMath.point.subtract(\n currentPoints.client,\n lastPoints.client\n ),\n canvas: external.cornerstoneMath.point.subtract(\n currentPoints.canvas,\n lastPoints.canvas\n ),\n };\n\n eventType = EVENTS.TOUCH_DRAG_END;\n\n eventData = {\n event: e.srcEvent,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints,\n deltaPoints,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n\n remainingPointers = e.pointers.length - e.changedPointers.length;\n\n if (remainingPointers === 2) {\n preventNextPinch = true;\n }\n break;\n\n case 'rotatemove':\n isPress = false;\n clearTimeout(pressTimeout);\n\n rotation = e.rotation - lastRotation;\n\n lastRotation = e.rotation;\n\n eventType = EVENTS.TOUCH_ROTATE;\n eventData = {\n event: e.srcEvent,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n rotation,\n type: eventType,\n };\n triggerEvent(element, eventType, eventData);\n break;\n }\n\n return false;\n}\n\nfunction enable(element) {\n disable(element);\n const Hammer = external.Hammer;\n\n const hammerOptions = {\n inputClass: Hammer.SUPPORT_POINTER_EVENTS\n ? Hammer.PointerEventInput\n : Hammer.TouchInput,\n };\n\n const mc = new Hammer.Manager(element, hammerOptions);\n\n const panOptions = {\n pointers: 0,\n direction: Hammer.DIRECTION_ALL,\n threshold: 0,\n };\n\n const pan = new Hammer.Pan(panOptions);\n const pinch = new Hammer.Pinch({\n threshold: 0,\n });\n const rotate = new Hammer.Rotate({\n threshold: 0,\n });\n\n pinch.recognizeWith(pan);\n pinch.recognizeWith(rotate);\n rotate.recognizeWith(pan);\n\n const doubleTap = new Hammer.Tap({\n event: 'doubletap',\n taps: 2,\n interval: 1500,\n threshold: 50,\n posThreshold: 50,\n });\n\n doubleTap.recognizeWith(pan);\n\n // Add to the Manager\n mc.add([doubleTap, pan, rotate, pinch]);\n mc.on(\n 'tap doubletap panstart panmove panend pinchstart pinchmove rotatemove',\n onTouch\n );\n\n preventGhostClick.enable(element);\n\n const touchEvents = ['touchstart', 'touchend'];\n\n touchEvents.forEach(eventType => {\n element.addEventListener(eventType, onTouch, { passive: false });\n });\n\n // TODO: Check why we are using tool options if it's not a tool\n const options = getToolOptions(inputName, element);\n\n options.hammer = mc;\n\n // TODO: Check why we are using tool options if it's not a tool\n setToolOptions(inputName, element, options);\n}\n\nfunction disable(element) {\n preventGhostClick.disable(element);\n\n const touchEvents = ['touchstart', 'touchend'];\n\n touchEvents.forEach(eventType => {\n element.removeEventListener(eventType, onTouch);\n });\n\n // TODO: Check why we are using tool options if it's not a tool\n const options = getToolOptions(inputName, element);\n const mc = options.hammer;\n\n if (mc) {\n mc.off(\n 'tap doubletap panstart panmove panend pinchstart pinchmove rotatemove',\n onTouch\n );\n }\n}\n\n// Module exports\nconst touchInput = {\n enable,\n disable,\n};\n\nexport default touchInput;\n","/**\n * Internal module used to turn on listening, handling, and normalizing of the\n * native `wheel` event\n */\n\nimport EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport triggerEvent from '../util/triggerEvent.js';\nimport normalizeWheel from './internals/normalizeWheel.js';\n\n/**\n *\n * @private\n * @function wheelEventHandler\n * @param {WheelEvent} evt\n * @returns {undefined}\n */\nfunction wheelEventHandler(evt) {\n const element = evt.currentTarget;\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n if (!enabledElement.image) {\n return;\n }\n\n // Prevent triggering MouseWheel events that are not real scroll events:\n // E.g. when clicking the MiddleMouseWheelButton, a deltaY of 0 is emitted.\n // See https://github.com/cornerstonejs/cornerstoneTools/issues/935\n if (evt.deltaY > -1 && evt.deltaY < 1) {\n return;\n }\n\n evt.preventDefault();\n\n const { pageX, pageY } = evt;\n const startingCoords = external.cornerstone.pageToPixel(\n element,\n pageX,\n pageY\n );\n const { spinX, spinY, pixelX, pixelY } = normalizeWheel(evt);\n const direction = spinY < 0 ? -1 : 1;\n\n const mouseWheelData = {\n element,\n viewport: external.cornerstone.getViewport(element),\n detail: evt,\n image: enabledElement.image,\n direction,\n spinX,\n spinY,\n pixelX,\n pixelY,\n pageX,\n pageY,\n imageX: startingCoords.x,\n imageY: startingCoords.y,\n };\n\n triggerEvent(element, EVENTS.MOUSE_WHEEL, mouseWheelData);\n}\n\n/**\n * Listens for the wheel event, and handles it. Handled event\n * will be \"normalized\" and re-emitted as `EVENTS.MOUSE_WHEEL`\n *\n * @private\n * @param {HTMLElement} element\n * @returns {undefined}\n */\nfunction enable(element) {\n disable(element);\n element.addEventListener('wheel', wheelEventHandler, { passive: false });\n}\n\n/**\n * Removes listener and handler for wheel event. `EVENTS.MOUSE_WHEEL`\n * will no longer be emitted.\n *\n * @private\n * @param {HTMLElement} element\n * @returns {undefined}\n */\nfunction disable(element) {\n element.removeEventListener('wheel', wheelEventHandler, { passive: false });\n}\n\nexport default {\n enable,\n disable,\n};\n","import { state } from './../store/index.js';\nimport external from './../externalModules.js';\n\nconst enable = function() {\n disable(); // Clean up any lingering listeners\n window.addEventListener('resize', resizeThrottler, false);\n};\n\nconst disable = function() {\n window.removeEventListener('resize', resizeThrottler, false);\n};\n\nlet resizeTimeout;\n\nfunction resizeThrottler() {\n // Ignore resize events as long as an actualResizeHandler execution is in the queue\n if (!resizeTimeout) {\n resizeTimeout = setTimeout(function() {\n resizeTimeout = null;\n forceEnabledElementResize();\n\n // The actualResizeHandler will execute at a rate of 15fps\n }, 66);\n }\n}\n\nexport const forceEnabledElementResize = function() {\n state.enabledElements.forEach(element => {\n external.cornerstone.resize(element);\n });\n};\n\nexport default {\n enable,\n disable,\n};\n","/**\n * Enumerates the events for CornestoneTools. Native events are captured,\n * normalized, and re-triggered with a `cornerstonetools` prefix. This allows\n * us to handle events consistently across different browsers.\n *\n * @enum {String}\n * @memberof CornerstoneTools\n * @readonly\n */\nconst EVENTS = {\n //\n // MOUSE\n //\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/mousedown\n * @type {String}\n */\n MOUSE_DOWN: 'cornerstonetoolsmousedown',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/mouseup\n * @type {String}\n */\n MOUSE_UP: 'cornerstonetoolsmouseup',\n\n /**\n * Is fired if a handled `MOUSE_DOWN` event does not `stopPropagation`. The hook\n * we use to create new measurement data for mouse events.\n * @type {String}\n */\n MOUSE_DOWN_ACTIVATE: 'cornerstonetoolsmousedownactivate',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/drag\n * @type {String}\n */\n MOUSE_DRAG: 'cornerstonetoolsmousedrag',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/mousemove\n * @type {String}\n */\n MOUSE_MOVE: 'cornerstonetoolsmousemove',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/click\n * @type {String}\n */\n MOUSE_CLICK: 'cornerstonetoolsmouseclick',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/dblclick\n * @type {String}\n */\n MOUSE_DOUBLE_CLICK: 'cornerstonetoolsmousedoubleclick',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/wheel\n * @type {String}\n */\n MOUSE_WHEEL: 'cornerstonetoolsmousewheel',\n\n //\n // TOUCH\n //\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/touchstart\n * @type {String}\n */\n TOUCH_START: 'cornerstonetoolstouchstart',\n\n /**\n * Is fired if a handled `TOUCH_START` event does not `stopPropagation`. The hook\n * we use to create new measurement data for touch events.\n * @type {String}\n */\n TOUCH_START_ACTIVE: 'cornerstonetoolstouchstartactive',\n\n /**\n * @type {String}\n */\n TOUCH_END: 'cornerstonetoolstouchend',\n\n /**\n * @type {String}\n */\n TOUCH_DRAG: 'cornerstonetoolstouchdrag',\n\n /**\n * @type {String}\n */\n TOUCH_DRAG_END: 'cornerstonetoolstouchdragend',\n\n /**\n * http://hammerjs.github.io/recognizer-pinch/\n * @type {String}\n */\n TOUCH_PINCH: 'cornerstonetoolstouchpinch',\n\n /**\n * http://hammerjs.github.io/recognizer-rotate/\n * @type {String}\n */\n TOUCH_ROTATE: 'cornerstonetoolstouchrotate',\n\n /**\n * http://hammerjs.github.io/recognizer-press/\n * @type {String}\n */\n TOUCH_PRESS: 'cornerstonetoolstouchpress',\n\n /**\n * http://hammerjs.github.io/recognizer-tap/\n * @type {String}\n */\n TAP: 'cornerstonetoolstap',\n\n /**\n * @type {String}\n */\n DOUBLE_TAP: 'cornerstonetoolsdoubletap',\n\n /**\n * @type {String}\n */\n MULTI_TOUCH_START: 'cornerstonetoolsmultitouchstart',\n\n /**\n * @type {String}\n */\n MULTI_TOUCH_START_ACTIVE: 'cornerstonetoolsmultitouchstartactive',\n\n /**\n * @type {String}\n */\n MULTI_TOUCH_DRAG: 'cornerstonetoolsmultitouchdrag',\n\n //\n // KEYBOARD\n //\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/keydown\n * @type {String}\n */\n KEY_DOWN: 'cornerstonetoolskeydown',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/keyup\n * @type {String}\n */\n KEY_UP: 'cornerstonetoolskeyup',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/keypress\n * @type {String}\n */\n KEY_PRESS: 'cornerstonetoolskeypress',\n\n //\n // CUSTOM\n //\n\n /**\n * @type {String}\n */\n MEASUREMENT_ADDED: 'cornerstonetoolsmeasurementadded',\n\n /**\n * @type {String}\n */\n MEASUREMENT_MODIFIED: 'cornerstonetoolsmeasurementmodified',\n\n /**\n * @type {String}\n */\n MEASUREMENT_COMPLETED: 'cornerstonetoolsmeasurementcompleted',\n\n /**\n * @type {String}\n */\n MEASUREMENT_REMOVED: 'cornerstonetoolsmeasurementremoved',\n\n /**\n * @type {String}\n */\n TOOL_DEACTIVATED: 'cornerstonetoolstooldeactivated',\n\n /**\n * @type {String}\n */\n CLIP_STOPPED: 'cornerstonetoolsclipstopped',\n\n /**\n * @type {String}\n */\n STACK_SCROLL: 'cornerstonetoolsstackscroll',\n\n /**\n * @type {String}\n */\n STACK_PREFETCH_IMAGE_LOADED: 'cornerstonetoolsstackprefetchimageloaded',\n\n /**\n * @type {String}\n */\n STACK_PREFETCH_DONE: 'cornerstonetoolsstackprefetchdone',\n\n /**\n * @type {String}\n */\n LABELMAP_MODIFIED: 'cornersontetoolslabelmapmodified',\n};\n\nexport default EVENTS;\n","let cornerstone = window.cornerstone;\nlet cornerstoneMath = window.cornerstoneMath;\nlet Hammer = window.Hammer;\n\nexport default {\n set cornerstone(cs) {\n cornerstone = cs;\n },\n get cornerstone() {\n return cornerstone;\n },\n set cornerstoneMath(cm) {\n cornerstoneMath = cm;\n },\n get cornerstoneMath() {\n return cornerstoneMath;\n },\n set Hammer(module) {\n Hammer = module;\n },\n get Hammer() {\n return Hammer;\n },\n};\n","import { lib } from './lib.js';\n\n/**\n * Imports functionality from cornerstoneTools for use in external packages/plugins.\n * @param {string} uri the import path for the entity to import.\n * @returns {Class|Object|Function} The entity requested.\n */\nexport default function(uri) {\n return lib[uri];\n}\n","/**\n * Root\n * @namespace CornerstoneTools\n */\n\n/**\n * Drawing API to assist in consistent annotation creation\n * @namespace Drawing\n */\n\n/**\n * Event dispatchers listen for events from `cornerstone` and `enabledElements`. Dispatchers\n * choose which tool(s) get to handle the event by looking at callbacks, priority, and other factors.\n * @private\n * @namespace EventDispatchers\n */\n\n/**\n * Event listeners normalize events emitted by `cornerstone` and `enabledElements`. The listeners\n * then re-emit events prefixed with `cornerstonetools`. For example, `mousemove` becomes `cornerstonetoolsmousemove`.\n * Most of these events are caught by an `eventDispatcher`, and used to shape tool behavior.\n * @private\n * @namespace EventListeners\n */\n\n/**\n * Manipulators describe a tool's `handle` behavior. Leveraging a small set of manipulators\n * allows us to create a consistent experience when interacting with tools via their handles.\n * @namespace Manipulators\n */\n\n/**\n * Mixins are \"tool beahviors\" that can be added to a tool via its mixin\n * array configuration property\n * @namespace Mixins\n */\n\n/**\n * StateManagement\n * @namespace StateManagement\n */\n\n/**\n * Sync\n * @namespace Synchronization\n */\n\n/**\n * Third party\n * @namespace ThirdParty\n */\n\n/**\n * Tools\n * @namespace Tools\n */\n\n/**\n * Tools that extend the {@link #Tools.Base.BaseAnnotationTool|`BaseAnnotationTool`}\n * @namespace Tools.Annotation\n */\n\n/**\n * The parent (abstract) classes that all tools derive from.\n * @namespace Tools.Base\n */\n\n/**\n * Tools that extend the {@link #Tools.Base.BaseBrushTool|`BaseBrushTool`}\n * @namespace Tools.Brush\n */\n\n/**\n * Util\n * @namespace Util\n */\n\nimport {\n AngleTool,\n ArrowAnnotateTool,\n BidirectionalTool,\n CircleRoiTool,\n CobbAngleTool,\n EllipticalRoiTool,\n FreehandRoiTool,\n LengthTool,\n ProbeTool,\n RectangleRoiTool,\n TextMarkerTool,\n} from './tools/annotation/index.js';\nimport {\n BrushTool,\n SphericalBrushTool,\n FreehandScissorsTool,\n RectangleScissorsTool,\n CircleScissorsTool,\n CorrectionScissorsTool,\n} from './tools/segmentation/index.js';\nimport {\n CrosshairsTool,\n DoubleTapFitToWindowTool,\n DragProbeTool,\n EraserTool,\n FreehandRoiSculptorTool,\n MagnifyTool,\n OverlayTool,\n OrientationMarkersTool,\n PanMultiTouchTool,\n PanTool,\n ReferenceLinesTool,\n RotateTool,\n RotateTouchTool,\n ScaleOverlayTool,\n StackScrollMouseWheelTool,\n StackScrollMultiTouchTool,\n StackScrollTool,\n WwwcRegionTool,\n WwwcTool,\n ZoomMouseWheelTool,\n ZoomTool,\n ZoomTouchPinchTool,\n} from './tools/index.js';\n\nimport { default as init } from './init.js';\n\n// ~~~~~~ STACK TOOLS ~~~~~ //\nimport { default as stackPrefetch } from './stackTools/stackPrefetch.js';\nimport { default as stackRenderers } from './stackTools/stackRenderers.js';\nimport { playClip, stopClip } from './stackTools/playClip.js';\n\n// ~~~~~~ STATE MANAGEMENT ~~~~~ //\nimport { default as store } from './store/index.js';\nimport { getModule } from './store/index.js';\n\nimport { default as getToolForElement } from './store/getToolForElement.js';\nimport { addTool, addToolForElement } from './store/addTool.js';\nimport { removeTool, removeToolForElement } from './store/removeTool.js';\nimport {\n setToolOptions,\n setToolOptionsForElement,\n} from './store/setToolOptions.js';\nimport {\n setToolActive,\n setToolActiveForElement,\n setToolEnabled,\n setToolEnabledForElement,\n setToolDisabled,\n setToolDisabledForElement,\n setToolPassive,\n setToolPassiveForElement,\n} from './store/setToolMode.js';\nimport isToolActiveForElement from './store/isToolActiveForElement';\nimport {\n addToolState,\n getToolState,\n removeToolState,\n clearToolState,\n setElementToolStateManager,\n getElementToolStateManager,\n} from './stateManagement/toolState.js';\nimport { default as textStyle } from './stateManagement/textStyle.js';\nimport { default as toolStyle } from './stateManagement/toolStyle.js';\nimport { default as toolColors } from './stateManagement/toolColors.js';\nimport { default as toolCoordinates } from './stateManagement/toolCoordinates.js';\nimport {\n stackSpecificStateManager,\n newStackSpecificToolStateManager,\n addStackStateManager,\n} from './stateManagement/stackSpecificStateManager.js';\nimport { default as loadHandlerManager } from './stateManagement/loadHandlerManager.js';\nimport {\n newImageIdSpecificToolStateManager,\n globalImageIdSpecificToolStateManager,\n} from './stateManagement/imageIdSpecificStateManager.js';\nimport {\n newFrameOfReferenceSpecificToolStateManager,\n globalFrameOfReferenceSpecificToolStateManager,\n} from './stateManagement/frameOfReferenceStateManager.js';\nimport { forceEnabledElementResize } from './eventListeners/windowResizeHandler.js';\n\n// ~~~~~~ ORIENTATION ~~~~~ //\nimport { default as orientation } from './orientation/index.js';\n\n// ~~~~~~ CANVAS EXPORT ~~~~~ //\nimport { default as SaveAs } from './util/SaveAs.js';\nimport {\n enable as enableLogger,\n disable as disableLogger,\n} from './util/logger.js';\n\n// ~~~~~~ THIRD PARTY SUPPORT ~~~~~ //\nimport { default as register } from './thirdParty/register.js';\nimport { default as registerSome } from './thirdParty/registerSome.js';\n\n// ~~~~~~ SYNCHRONIZERS ~~~~~ //\nimport { default as wwwcSynchronizer } from './synchronization/wwwcSynchronizer.js';\nimport { default as updateImageSynchronizer } from './synchronization/updateImageSynchronizer.js';\nimport { default as Synchronizer } from './synchronization/Synchronizer.js';\nimport { default as stackScrollSynchronizer } from './synchronization/stackScrollSynchronizer.js';\nimport { default as stackImagePositionSynchronizer } from './synchronization/stackImagePositionSynchronizer.js';\nimport { default as stackImagePositionOffsetSynchronizer } from './synchronization/stackImagePositionOffsetSynchronizer.js';\nimport { default as stackImageIndexSynchronizer } from './synchronization/stackImageIndexSynchronizer.js';\nimport { default as panZoomSynchronizer } from './synchronization/panZoomSynchronizer.js';\n\n// ~~~~~~ REQUEST POOL MANAGER ~~~~~ //\nimport { default as requestPoolManager } from './requestPool/requestPoolManager.js';\n\nimport { default as external } from './externalModules.js';\nimport { default as EVENTS } from './events.js';\nimport { default as version } from './version.js';\n\nimport importInternal from './importInternal.js';\n\nconst cornerstoneTools = {\n // ~~~ TOOLS\n // ~ Annotation Tools\n AngleTool,\n ArrowAnnotateTool,\n BidirectionalTool,\n CircleRoiTool,\n CobbAngleTool,\n EllipticalRoiTool,\n FreehandRoiTool,\n LengthTool,\n ProbeTool,\n RectangleRoiTool,\n TextMarkerTool,\n // ~ Segmentation Tools\n BrushTool,\n SphericalBrushTool,\n RectangleScissorsTool,\n FreehandScissorsTool,\n CircleScissorsTool,\n CorrectionScissorsTool,\n // ~ Tools\n CrosshairsTool,\n DoubleTapFitToWindowTool,\n DragProbeTool,\n EraserTool,\n FreehandRoiSculptorTool,\n MagnifyTool,\n OverlayTool,\n OrientationMarkersTool,\n PanMultiTouchTool,\n PanTool,\n ReferenceLinesTool,\n RotateTool,\n RotateTouchTool,\n ScaleOverlayTool,\n StackScrollMouseWheelTool,\n StackScrollMultiTouchTool,\n StackScrollTool,\n WwwcRegionTool,\n WwwcTool,\n ZoomMouseWheelTool,\n ZoomTool,\n ZoomTouchPinchTool,\n init,\n stackPrefetch,\n stackRenderers,\n playClip,\n stopClip,\n store,\n getModule,\n getToolForElement,\n addTool,\n addToolForElement,\n removeTool,\n removeToolForElement,\n setToolOptions,\n setToolOptionsForElement,\n isToolActiveForElement,\n setToolActive,\n setToolActiveForElement,\n setToolEnabled,\n setToolEnabledForElement,\n setToolDisabled,\n setToolDisabledForElement,\n setToolPassive,\n setToolPassiveForElement,\n addToolState,\n getToolState,\n removeToolState,\n clearToolState,\n setElementToolStateManager,\n getElementToolStateManager,\n textStyle,\n toolStyle,\n toolColors,\n toolCoordinates,\n stackSpecificStateManager,\n newStackSpecificToolStateManager,\n addStackStateManager,\n loadHandlerManager,\n newImageIdSpecificToolStateManager,\n globalImageIdSpecificToolStateManager,\n newFrameOfReferenceSpecificToolStateManager,\n globalFrameOfReferenceSpecificToolStateManager,\n forceEnabledElementResize,\n orientation,\n SaveAs,\n enableLogger,\n disableLogger,\n importInternal,\n import: importInternal,\n register,\n registerSome,\n wwwcSynchronizer,\n updateImageSynchronizer,\n Synchronizer,\n stackScrollSynchronizer,\n stackImagePositionSynchronizer,\n stackImagePositionOffsetSynchronizer,\n stackImageIndexSynchronizer,\n panZoomSynchronizer,\n requestPoolManager,\n external,\n EVENTS,\n version,\n};\n\n// Named Exports\nexport {\n // ~~~ TOOLS\n // ~ Annotation Tools\n AngleTool,\n ArrowAnnotateTool,\n BidirectionalTool,\n CircleRoiTool,\n CobbAngleTool,\n EllipticalRoiTool,\n FreehandRoiTool,\n LengthTool,\n ProbeTool,\n RectangleRoiTool,\n TextMarkerTool,\n // ~ Segmentation Tools\n BrushTool,\n SphericalBrushTool,\n RectangleScissorsTool,\n FreehandScissorsTool,\n CircleScissorsTool,\n CorrectionScissorsTool,\n // ~ Tools\n CrosshairsTool,\n DoubleTapFitToWindowTool,\n DragProbeTool,\n EraserTool,\n FreehandRoiSculptorTool,\n MagnifyTool,\n OverlayTool,\n OrientationMarkersTool,\n PanMultiTouchTool,\n PanTool,\n ReferenceLinesTool,\n RotateTool,\n RotateTouchTool,\n ScaleOverlayTool,\n StackScrollMouseWheelTool,\n StackScrollMultiTouchTool,\n StackScrollTool,\n WwwcRegionTool,\n WwwcTool,\n ZoomMouseWheelTool,\n ZoomTool,\n ZoomTouchPinchTool,\n init,\n stackPrefetch,\n stackRenderers,\n playClip,\n stopClip,\n store,\n getModule,\n getToolForElement,\n addTool,\n addToolForElement,\n removeTool,\n removeToolForElement,\n setToolOptions,\n setToolOptionsForElement,\n isToolActiveForElement,\n setToolActive,\n setToolActiveForElement,\n setToolEnabled,\n setToolEnabledForElement,\n setToolDisabled,\n setToolDisabledForElement,\n setToolPassive,\n setToolPassiveForElement,\n addToolState,\n getToolState,\n removeToolState,\n clearToolState,\n setElementToolStateManager,\n getElementToolStateManager,\n textStyle,\n toolStyle,\n toolColors,\n toolCoordinates,\n stackSpecificStateManager,\n newStackSpecificToolStateManager,\n addStackStateManager,\n loadHandlerManager,\n newImageIdSpecificToolStateManager,\n globalImageIdSpecificToolStateManager,\n newFrameOfReferenceSpecificToolStateManager,\n globalFrameOfReferenceSpecificToolStateManager,\n forceEnabledElementResize,\n orientation,\n SaveAs,\n enableLogger,\n disableLogger,\n register,\n registerSome,\n wwwcSynchronizer,\n updateImageSynchronizer,\n Synchronizer,\n stackScrollSynchronizer,\n stackImagePositionSynchronizer,\n stackImagePositionOffsetSynchronizer,\n stackImageIndexSynchronizer,\n panZoomSynchronizer,\n requestPoolManager,\n importInternal,\n external,\n EVENTS,\n version,\n};\n\nexport { default as import } from './importInternal.js';\n\nexport default cornerstoneTools;\n","import external from './externalModules.js';\nimport store, { getModule } from './store/index.js';\nimport addEnabledElement from './store/internals/addEnabledElement.js';\nimport removeEnabledElement from './store/internals/removeEnabledElement.js';\nimport windowResizeHandler from './eventListeners/windowResizeHandler.js';\n\n/**\n * Merges the provided configuration with default values and returns a\n * configured CornerstoneTools instance.\n * @export\n * @public\n * @method\n * @name init\n *\n * @param {Object|Object[]} [defaultConfiguration = {}] The configuration to apply. Assumed globalConfiguration\n * only one value, otherwise moduleName, configuration entires in an array.\n * @returns {Object} A configured CornerstoneTools instance with top level API members.\n */\nexport default function(defaultConfiguration = {}) {\n _addCornerstoneEventListeners();\n _initModules();\n\n const globalConfigurationModule = getModule('globalConfiguration');\n\n if (Array.isArray(defaultConfiguration)) {\n defaultConfiguration.forEach(configurationEntry => {\n const { moduleName, configuration } = configurationEntry;\n\n const module = getModule(moduleName);\n\n if (module) {\n module.configuration = Object.assign(\n {},\n module.configuration,\n configuration\n );\n }\n });\n } else {\n // defaultConfiguration is an object, default to assigning it to globalConfiguration.\n globalConfigurationModule.configuration = Object.assign(\n {},\n globalConfigurationModule.configuration,\n defaultConfiguration\n );\n }\n\n if (globalConfigurationModule.configuration.autoResizeViewports) {\n windowResizeHandler.enable();\n }\n}\n\n/**\n * Wires up event listeners for the Cornerstone#ElementDisabled and\n * Cornerstone#ElementEnabled events.\n * @private\n * @method\n * @returns {void}\n */\nfunction _addCornerstoneEventListeners() {\n // Clear any listeners that may already be set\n _removeCornerstoneEventListeners();\n\n const cornerstone = external.cornerstone;\n const elementEnabledEvent = cornerstone.EVENTS.ELEMENT_ENABLED;\n const elementDisabledEvent = cornerstone.EVENTS.ELEMENT_DISABLED;\n\n cornerstone.events.addEventListener(elementEnabledEvent, addEnabledElement);\n cornerstone.events.addEventListener(\n elementDisabledEvent,\n removeEnabledElement\n );\n}\n\n/**\n * Removes event listeners for the Cornerstone#ElementDisabled and\n * Cornerstone#ElementEnabled events.\n * @private\n * @method\n * @returns {void}\n */\nfunction _removeCornerstoneEventListeners() {\n const cornerstone = external.cornerstone;\n const elementEnabledEvent = cornerstone.EVENTS.ELEMENT_ENABLED;\n const elementDisabledEvent = cornerstone.EVENTS.ELEMENT_DISABLED;\n\n cornerstone.events.removeEventListener(\n elementEnabledEvent,\n addEnabledElement\n );\n cornerstone.events.removeEventListener(\n elementDisabledEvent,\n removeEnabledElement\n );\n}\n\n/*\n * TODO: This could cause issues if the module was already initialized for\n * the store. As there's nothing stopping implementers from calling `init`\n * multiple times. Modules should self-check if they have already been\n * registered to prevent issues.\n */\n\n/**\n * Iterate over our store's modules. If the module has an `onRegisterCallback`\n * call it. This hook can be used to setup any global store requirements per\n * module.\n * @private\n * @method\n * @returns {void}\n */\nfunction _initModules() {\n const modules = store.modules;\n\n Object.keys(modules).forEach(function(key) {\n if (typeof modules[key].onRegisterCallback === 'function') {\n modules[key].onRegisterCallback();\n }\n });\n}\n","import BaseTool from './tools/base/BaseTool.js';\nimport BaseAnnotationTool from './tools/base/BaseAnnotationTool.js';\nimport BaseBrushTool from './tools/base/BaseBrushTool.js';\n\nimport {\n anyHandlesOutsideImage,\n getHandleNearImagePoint,\n handleActivator,\n moveHandle,\n moveAllHandles,\n moveNewHandle,\n} from './manipulators/index.js';\n\nimport {\n moveHandleNearImagePoint,\n findHandleDataNearImagePoint,\n moveAnnotation,\n} from './util/findAndMoveHelpers.js';\n\nimport mixins from './mixins/index.js';\nimport * as cursors from './tools/cursors/index.js';\n\nimport {\n getNewContext,\n draw,\n path,\n setShadow,\n drawLine,\n drawLines,\n drawJoinedLines,\n drawCircle,\n drawEllipse,\n drawRect,\n fillOutsideRect,\n fillBox,\n fillTextLines,\n} from './drawing/index.js';\nimport { clip, clipToBox } from './util/clip.js';\nimport debounce from './util/debounce';\nimport deepmerge from './util/deepmerge';\nimport getDefault from './util/getDefault';\nimport getPixelSpacing from './util/getPixelSpacing';\nimport isEmptyObject from './util/isEmptyObject';\nimport isObject from './util/isObject';\nimport isPointInImage from './util/isPointInImage';\nimport isPointInPolygon from './util/isPointInPolygon';\nimport throttle from './util/throttle';\nimport { wait, waitForEnabledElementImageToLoad } from './util/wait';\nimport getKeyPressData from './util/getKeyPressData';\n\nimport drawTextBox, { textBoxWidth } from './drawing/drawTextBox.js';\nimport drawArrow from './drawing/drawArrow.js';\nimport drawLink from './drawing/drawLink.js';\nimport drawLinkedTextBox from './drawing/drawLinkedTextBox.js';\nimport drawHandles from './drawing/drawHandles.js';\n\nimport getLuminance from './util/getLuminance.js';\nimport getROITextBoxCoords from './util/getROITextBoxCoords';\nimport copyPoints from './util/copyPoints.js';\nimport calculateSUV from './util/calculateSUV.js';\nimport setContextToDisplayFontSize from './util/setContextToDisplayFontSize.js';\nimport scrollToIndex from './util/scrollToIndex.js';\nimport scroll from './util/scroll.js';\nimport roundToDecimal from './util/roundToDecimal.js';\nimport {\n projectPatientPointToImagePlane,\n imagePointToPatientPoint,\n planePlaneIntersection,\n} from './util/pointProjector.js';\nimport lineSegDistance from './util/lineSegDistance.js';\nimport { getLogger } from './util/logger';\n\nimport pointInsideBoundingBox from './util/pointInsideBoundingBox.js';\nimport makeUnselectable from './util/makeUnselectable.js';\nimport getRGBPixels from './util/getRGBPixels.js';\nimport {\n getDefaultSimultaneousRequests,\n getMaxSimultaneousRequests,\n getBrowserInfo,\n isMobileDevice,\n} from './util/getMaxSimultaneousRequests.js';\nimport angleBetweenPoints from './util/angleBetweenPoints.js';\nimport numbersWithCommas from './util/numbersWithCommas.js';\nimport MouseCursor from './tools/cursors/MouseCursor.js';\n\nimport ellipseUtils from './util/ellipse/index.js';\nimport freehandUtils from './util/freehand/index.js';\nimport * as segmentationUtils from './util/segmentation';\nimport zoomUtils from './util/zoom/index.js';\nimport triggerEvent from './util/triggerEvent.js';\nimport convertToVector3 from './util/convertToVector3.js';\n\nexport const lib = {\n 'base/BaseTool': BaseTool,\n 'base/BaseAnnotationTool': BaseAnnotationTool,\n 'base/BaseBrushTool': BaseBrushTool,\n\n 'tools/cursors/MouseCursor': MouseCursor,\n 'tools/cursors': cursors,\n\n 'manipulators/anyHandlesOutsideImage': anyHandlesOutsideImage,\n 'manipulators/getHandleNearImagePoint': getHandleNearImagePoint,\n 'manipulators/handleActivator': handleActivator,\n 'manipulators/moveAllHandles': moveAllHandles,\n 'manipulators/moveHandle': moveHandle,\n 'manipulators/moveNewHandle': moveNewHandle,\n 'manipulators/moveHandleNearImagePoint': moveHandleNearImagePoint,\n 'manipulators/findHandleDataNearImagePoint': findHandleDataNearImagePoint,\n 'manipulators/moveAnnotation': moveAnnotation,\n\n 'mixins/activeOrDisabledBinaryTool': mixins.activeOrDisabledBinaryTool,\n 'mixins/enabledOrDisabledBinaryTool': mixins.enabledOrDisabledBinaryTool,\n\n 'drawing/getNewContext': getNewContext,\n 'drawing/draw': draw,\n 'drawing/path': path,\n 'drawing/setShadow': setShadow,\n 'drawing/drawLine': drawLine,\n 'drawing/drawLines': drawLines,\n 'drawing/drawJoinedLines': drawJoinedLines,\n 'drawing/drawCircle': drawCircle,\n 'drawing/drawEllipse': drawEllipse,\n 'drawing/drawRect': drawRect,\n 'drawing/fillOutsideRect': fillOutsideRect,\n 'drawing/drawTextBox': drawTextBox,\n 'drawing/drawArrow': drawArrow,\n 'drawing/fillBox': fillBox,\n 'drawing/fillTextLines': fillTextLines,\n 'drawing/drawLink': drawLink,\n 'drawing/drawLinkedTextBox': drawLinkedTextBox,\n 'drawing/drawHandles': drawHandles,\n 'drawing/textBoxWidth': textBoxWidth,\n\n 'util/getLuminance': getLuminance,\n 'util/getROITextBoxCoords': getROITextBoxCoords,\n 'util/copyPoints': copyPoints,\n 'util/calculateSUV': calculateSUV,\n 'util/setContextToDisplayFontSize': setContextToDisplayFontSize,\n 'util/scrollToIndex': scrollToIndex,\n 'util/scroll': scroll,\n 'util/roundToDecimal': roundToDecimal,\n 'util/projectPatientPointToImagePlane': projectPatientPointToImagePlane,\n 'util/imagePointToPatientPoint': imagePointToPatientPoint,\n 'util/planePlaneIntersection': planePlaneIntersection,\n 'util/pointInsideBoundingBox': pointInsideBoundingBox,\n 'util/makeUnselectable': makeUnselectable,\n 'util/getRGBPixels': getRGBPixels,\n 'util/getDefaultSimultaneousRequests': getDefaultSimultaneousRequests,\n 'util/getMaxSimultaneousRequests': getMaxSimultaneousRequests,\n 'util/getBrowserInfo': getBrowserInfo,\n 'util/isMobileDevice': isMobileDevice,\n 'util/angleBetweenPoints': angleBetweenPoints,\n 'util/numbersWithCommas': numbersWithCommas,\n 'util/lineSegDistance': lineSegDistance,\n 'util/triggerEvent': triggerEvent,\n 'util/convertToVector3': convertToVector3,\n 'util/clip': clip,\n 'util/clipToBox': clipToBox,\n 'util/debounce': debounce,\n 'util/deepmerge': deepmerge,\n 'util/getDefault': getDefault,\n 'util/getPixelSpacing': getPixelSpacing,\n 'util/isEmptyObject': isEmptyObject,\n 'util/isObject': isObject,\n 'util/isPointInImage': isPointInImage,\n 'util/isPointInPolygon': isPointInPolygon,\n 'util/getLogger': getLogger,\n 'util/throttle': throttle,\n 'util/wait': wait,\n 'util/waitForEnabledElementImageToLoad': waitForEnabledElementImageToLoad,\n 'util/getKeyPressData': getKeyPressData,\n\n // Whole tool specific util packages\n 'util/ellipseUtils': ellipseUtils,\n 'util/freehandUtils': freehandUtils,\n 'util/segmentationUtils': segmentationUtils,\n 'util/zoomUtils': zoomUtils,\n};\n","import external from '../externalModules.js';\n\n/**\n * Determine if a handle is outside the bounds of the rendered image.\n * @public\n * @function anyHandlesOutsideImage\n * @memberof Manipulators\n *\n * @param {*} renderData - Cornerstone Tool's event detail\n * @param {Object} handles - An object containing named handles\n * @returns {Boolean} - True if the handle was placed outside the image\n */\nexport default function(renderData, handles) {\n const image = renderData.image;\n const imageRect = {\n left: 0,\n top: 0,\n width: image.width,\n height: image.height,\n };\n\n let handleOutsideImage = false;\n\n Object.keys(handles).forEach(function(name) {\n const handle = handles[name];\n\n if (handle.allowedOutsideImage === true) {\n return;\n }\n\n if (\n external.cornerstoneMath.point.insideRect(handle, imageRect) === false\n ) {\n handleOutsideImage = true;\n }\n });\n\n return handleOutsideImage;\n}\n","import external from '../externalModules.js';\nimport pointInsideBoundingBox from '../util/pointInsideBoundingBox.js';\n\n/**\n * Returns the first handle found to be near the provided point. Handles to search can be an array of handles, an\n * object of named handles, or an object of named handles AND named arrays of handles.\n *\n * @public\n * @function getHandleNearImagePoint\n * @memberof Manipulators\n *\n * @param {*} element - Target enabledElement\n * @param {(Array|Object)} handles - An arry of handles, object with named handles, or object with named handles AND named arrays of handles\n * @param {Object} coords - The coordinates to measure from when determining distance from handles\n * @param {number} distanceThreshold - minimum distance handle needs to be from provided coords\n * @returns {Object} Handle\n */\nconst getHandleNearImagePoint = function(\n element,\n handles,\n coords,\n distanceThreshold\n) {\n let nearbyHandle;\n\n if (!handles) {\n return;\n }\n\n if (Array.isArray(handles)) {\n const handleKeys = Object.keys(handles);\n\n for (let i = 0; i < handleKeys.length; i++) {\n const key = handleKeys[i];\n const handle = handles[key];\n\n if (\n // Not a true handle\n !handle.hasOwnProperty('x') ||\n !handle.hasOwnProperty('y')\n ) {\n continue;\n }\n\n if (_isHandleNearImagePoint(handle, element, coords, distanceThreshold)) {\n nearbyHandle = handle;\n break;\n }\n }\n } else if (typeof handles === 'object') {\n const handleKeys = Object.keys(handles);\n\n for (let i = 0; i < handleKeys.length; i++) {\n const handleName = handleKeys[i];\n\n if (Array.isArray(handles[handleName])) {\n nearbyHandle = getHandleNearImagePoint(\n element,\n handles[handleName],\n coords,\n distanceThreshold\n );\n if (nearbyHandle) {\n break;\n }\n } else {\n const handle = handles[handleName];\n\n if (\n _isHandleNearImagePoint(handle, element, coords, distanceThreshold)\n ) {\n nearbyHandle = handle;\n break;\n }\n }\n }\n }\n\n return nearbyHandle;\n};\n\n/**\n * Determines if the handle is less than the provided distance from the provided coordinates\n * @private\n * @function _isHandleNearImagePoint\n *\n * @param {*} handle\n * @param {*} element\n * @param {*} coords\n * @param {*} distanceThreshold\n * @returns {boolean} true if handles is near image point\n */\nconst _isHandleNearImagePoint = function(\n handle,\n element,\n coords,\n distanceThreshold\n) {\n if (handle.hasOwnProperty('pointNearHandle')) {\n if (handle.pointNearHandle(element, handle, coords)) {\n return true;\n }\n } else if (handle.hasBoundingBox === true) {\n if (pointInsideBoundingBox(handle, coords)) {\n return true;\n }\n } else {\n const handleCanvas = external.cornerstone.pixelToCanvas(element, handle);\n const distance = external.cornerstoneMath.point.distance(\n handleCanvas,\n coords\n );\n\n if (distance <= distanceThreshold) {\n return true;\n }\n }\n\n return false;\n};\n\nexport default getHandleNearImagePoint;\n","import getHandleNearImagePoint from './getHandleNearImagePoint.js';\n\n/**\n * Update the active handle\n * @public\n * @function handleActivator\n * @memberof Manipulators\n *\n * @param {*} element\n * @param {*} handles\n * @param {*} canvasPoint\n * @param {*} distanceThreshold\n * @returns {Boolean} - True if a handle was activated\n */\nexport default function(element, handles, canvasPoint, distanceThreshold) {\n if (!distanceThreshold) {\n distanceThreshold = 6;\n }\n\n const activeHandle = _getActiveHandle(handles);\n const nearbyHandle = getHandleNearImagePoint(\n element,\n handles,\n canvasPoint,\n distanceThreshold\n );\n\n if (activeHandle !== nearbyHandle) {\n if (nearbyHandle !== undefined) {\n nearbyHandle.active = true;\n }\n\n if (activeHandle !== undefined) {\n activeHandle.active = false;\n }\n\n return true;\n }\n\n return false;\n}\n\n/**\n *\n * @private\n *\n * @param {*} handles\n * @returns {Object} - Activated Handle\n */\nfunction _getActiveHandle(handles) {\n let activeHandle;\n\n Object.keys(handles).forEach(function(name) {\n const handle = handles[name];\n\n if (handle.active === true) {\n activeHandle = handle;\n\n return;\n }\n });\n\n return activeHandle;\n}\n","import anyHandlesOutsideImage from './anyHandlesOutsideImage.js';\nimport getHandleNearImagePoint from './getHandleNearImagePoint.js';\nimport handleActivator from './handleActivator.js';\nimport moveAllHandles from './moveAllHandles.js';\nimport moveHandle from './moveHandle.js';\nimport moveNewHandle from './moveNewHandle.js';\n\nexport {\n anyHandlesOutsideImage,\n getHandleNearImagePoint,\n handleActivator,\n moveAllHandles,\n moveHandle,\n moveNewHandle,\n};\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport anyHandlesOutsideImage from './anyHandlesOutsideImage.js';\nimport { removeToolState } from '../stateManagement/toolState.js';\nimport triggerEvent from '../util/triggerEvent.js';\nimport { clipToBox } from '../util/clip.js';\nimport { state } from './../store/index.js';\nimport getActiveTool from '../util/getActiveTool';\nimport BaseAnnotationTool from '../tools/base/BaseAnnotationTool';\nimport { getLogger } from '../util/logger.js';\nimport { getModule } from '../store';\n\nconst logger = getLogger('manipulators:moveAllHandles');\n\nconst manipulatorStateModule = getModule('manipulatorState');\n\nconst _dragEvents = {\n mouse: [EVENTS.MOUSE_DRAG],\n touch: [EVENTS.TOUCH_DRAG],\n};\n\nconst _upOrEndEvents = {\n mouse: [EVENTS.MOUSE_UP, EVENTS.MOUSE_CLICK],\n touch: [\n EVENTS.TOUCH_END,\n EVENTS.TOUCH_DRAG_END,\n EVENTS.TOUCH_PINCH,\n EVENTS.TOUCH_PRESS,\n EVENTS.TAP,\n ],\n};\n\n/**\n * Manipulator to move all provided handles at the same time\n * @public\n * @function moveAllHandles\n * @memberof Manipulators\n *\n * @param {*} evtDetail\n * @param {*} evtDetail.element\n * @param {String} toolName\n * @param {*} annotation\n * @param {*} [handle=null] - not needed by moveAllHandles, but keeps call signature the same as `moveHandle`\n * @param {Object} [options={}]\n * @param {Boolean} [options.deleteIfHandleOutsideImage]\n * @param {Boolean} [options.preventHandleOutsideImage]\n * @param {string} [interactionType=mouse]\n * @param {function} [doneMovingCallback]\n * @returns {undefined}\n */\nexport default function(\n { element },\n toolName,\n annotation,\n handle,\n options = {},\n interactionType = 'mouse',\n doneMovingCallback\n) {\n // Use global defaults, unless overidden by provided options\n options = Object.assign(\n {\n deleteIfHandleOutsideImage: state.deleteIfHandleOutsideImage,\n preventHandleOutsideImage: state.preventHandleOutsideImage,\n },\n options\n );\n\n const dragHandler = _dragHandler.bind(\n this,\n toolName,\n annotation,\n options,\n interactionType\n );\n // So we don't need to inline the entire `upOrEndHandler` function\n const upOrEndHandler = evt => {\n _upOrEndHandler(\n toolName,\n annotation,\n options,\n interactionType,\n {\n dragHandler,\n upOrEndHandler,\n },\n evt,\n doneMovingCallback\n );\n };\n\n manipulatorStateModule.setters.addActiveManipulatorForElement(\n element,\n _cancelEventHandler.bind(\n null,\n annotation,\n options,\n interactionType,\n {\n dragHandler,\n upOrEndHandler,\n },\n element,\n doneMovingCallback\n )\n );\n\n annotation.active = true;\n state.isToolLocked = true;\n\n // Add Event Listeners\n _dragEvents[interactionType].forEach(eventType => {\n element.addEventListener(eventType, dragHandler);\n });\n _upOrEndEvents[interactionType].forEach(eventType => {\n element.addEventListener(eventType, upOrEndHandler);\n });\n}\n\nfunction _dragHandler(\n toolName,\n annotation,\n options = {},\n interactionType,\n evt\n) {\n const { element, image, buttons } = evt.detail;\n const { x, y } = evt.detail.deltaPoints.image;\n\n annotation.active = true;\n annotation.invalidated = true;\n\n const handleKeys = Object.keys(annotation.handles);\n\n for (let i = 0; i < handleKeys.length; i++) {\n const key = handleKeys[i];\n const handle = annotation.handles[key];\n\n if (\n // Don't move this part of the annotation\n handle.movesIndependently === true ||\n // Not a true handle\n !handle.hasOwnProperty('x') ||\n !handle.hasOwnProperty('y')\n ) {\n continue;\n }\n\n handle.x += x;\n handle.y += y;\n\n if (options.preventHandleOutsideImage) {\n clipToBox(handle, image);\n }\n }\n\n external.cornerstone.updateImage(element);\n\n const activeTool = getActiveTool(element, buttons, interactionType);\n\n if (activeTool instanceof BaseAnnotationTool) {\n activeTool.updateCachedStats(image, element, annotation);\n }\n\n const eventType = EVENTS.MEASUREMENT_MODIFIED;\n const modifiedEventData = {\n toolName,\n toolType: toolName, // Deprecation notice: toolType will be replaced by toolName\n element,\n measurementData: annotation,\n };\n\n triggerEvent(element, eventType, modifiedEventData);\n\n evt.preventDefault();\n evt.stopPropagation();\n}\n\nfunction _cancelEventHandler(\n annotation,\n options = {},\n interactionType,\n { dragHandler, upOrEndHandler },\n element,\n doneMovingCallback\n) {\n _endHandler(\n annotation,\n options,\n interactionType,\n {\n dragHandler,\n upOrEndHandler,\n },\n element,\n doneMovingCallback,\n false\n );\n}\n\nfunction _upOrEndHandler(\n toolName,\n annotation,\n options = {},\n interactionType,\n { dragHandler, upOrEndHandler },\n evt,\n doneMovingCallback\n) {\n const eventData = evt.detail;\n const { element } = eventData;\n\n manipulatorStateModule.setters.removeActiveManipulatorForElement(element);\n\n // If any handle is outside the image, delete the tool data\n if (\n options.deleteIfHandleOutsideImage &&\n anyHandlesOutsideImage(eventData, annotation.handles)\n ) {\n removeToolState(element, toolName, annotation);\n }\n\n _endHandler(\n annotation,\n options,\n interactionType,\n {\n dragHandler,\n upOrEndHandler,\n },\n element,\n doneMovingCallback,\n true\n );\n}\n\nfunction _endHandler(\n annotation,\n options = {},\n interactionType,\n { dragHandler, upOrEndHandler },\n element,\n doneMovingCallback,\n success = true\n) {\n annotation.active = false;\n annotation.invalidated = true;\n state.isToolLocked = false;\n\n // Remove Event Listeners\n _dragEvents[interactionType].forEach(eventType => {\n element.removeEventListener(eventType, dragHandler);\n });\n _upOrEndEvents[interactionType].forEach(eventType => {\n element.removeEventListener(eventType, upOrEndHandler);\n });\n\n if (typeof options.doneMovingCallback === 'function') {\n logger.warn(\n '`options.doneMovingCallback` has been depricated. See https://github.com/cornerstonejs/cornerstoneTools/pull/915 for details.'\n );\n options.doneMovingCallback(success);\n }\n\n if (typeof doneMovingCallback === 'function') {\n doneMovingCallback(success);\n }\n\n external.cornerstone.updateImage(element);\n}\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport anyHandlesOutsideImage from './anyHandlesOutsideImage.js';\nimport { removeToolState } from '../stateManagement/toolState.js';\nimport triggerEvent from '../util/triggerEvent.js';\nimport { clipToBox } from '../util/clip.js';\nimport { state } from './../store/index.js';\nimport getActiveTool from '../util/getActiveTool';\nimport BaseAnnotationTool from '../tools/base/BaseAnnotationTool';\nimport { getLogger } from '../util/logger.js';\nimport { getModule } from '../store';\n\nconst logger = getLogger('manipulators:moveHandle');\n\nconst manipulatorStateModule = getModule('manipulatorState');\n\nconst runAnimation = {\n value: false,\n};\n\nconst _dragEvents = {\n mouse: [EVENTS.MOUSE_DRAG],\n touch: [EVENTS.TOUCH_DRAG],\n};\n\nconst _upOrEndEvents = {\n mouse: [EVENTS.MOUSE_UP, EVENTS.MOUSE_CLICK],\n touch: [\n EVENTS.TOUCH_END,\n EVENTS.TOUCH_DRAG_END,\n EVENTS.TOUCH_PINCH,\n EVENTS.TOUCH_PRESS,\n EVENTS.TAP,\n ],\n};\n\n/**\n * Move the provided handle\n *\n * @public\n * @method moveHandle\n * @memberof Manipulators\n *\n * @param {*} evtDetail\n * @param {*} toolName\n * @param {*} annotation\n * @param {*} handle\n * @param {*} [options={}]\n * @param {Boolean} [options.deleteIfHandleOutsideImage]\n * @param {Boolean} [options.preventHandleOutsideImage]\n * @param {*} [interactionType=mouse]\n * @param {function} doneMovingCallback\n * @returns {undefined}\n */\nexport default function(\n evtDetail,\n toolName,\n annotation,\n handle,\n options = {},\n interactionType = 'mouse',\n doneMovingCallback\n) {\n // Use global defaults, unless overidden by provided options\n options = Object.assign(\n {\n deleteIfHandleOutsideImage: state.deleteIfHandleOutsideImage,\n preventHandleOutsideImage: state.preventHandleOutsideImage,\n },\n options\n );\n\n const element = evtDetail.element;\n const dragHandler = _dragHandler.bind(\n this,\n toolName,\n annotation,\n handle,\n options,\n interactionType\n );\n // So we don't need to inline the entire `upOrEndHandler` function\n const upOrEndHandler = () => {\n _upOrEndHandler(\n toolName,\n evtDetail,\n annotation,\n handle,\n options,\n interactionType,\n {\n dragHandler,\n upOrEndHandler,\n },\n doneMovingCallback\n );\n };\n\n manipulatorStateModule.setters.addActiveManipulatorForElement(\n element,\n _cancelEventHandler.bind(\n null,\n toolName,\n evtDetail,\n annotation,\n handle,\n options,\n interactionType,\n {\n dragHandler,\n upOrEndHandler,\n },\n doneMovingCallback\n )\n );\n\n handle.active = true;\n handle.moving = true;\n annotation.active = true;\n state.isToolLocked = true;\n\n // Add Event Listeners\n _dragEvents[interactionType].forEach(eventType => {\n element.addEventListener(eventType, dragHandler);\n });\n _upOrEndEvents[interactionType].forEach(eventType => {\n element.addEventListener(eventType, upOrEndHandler);\n });\n\n // ==========================\n // ======== TOUCH ==========\n // ==========================\n if (interactionType === 'touch') {\n runAnimation.value = true;\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n // Average pixel width of index finger is 45-57 pixels\n // https://www.smashingmagazine.com/2012/02/finger-friendly-design-ideal-mobile-touchscreen-target-sizes/\n const fingerDistance = -57;\n\n const aboveFinger = {\n x: evtDetail.currentPoints.page.x,\n y: evtDetail.currentPoints.page.y + fingerDistance,\n };\n\n const targetLocation = external.cornerstone.pageToPixel(\n element,\n aboveFinger.x,\n aboveFinger.y\n );\n\n _animate(handle, runAnimation, enabledElement, targetLocation);\n }\n}\n\nfunction _dragHandler(\n toolName,\n annotation,\n handle,\n options,\n interactionType,\n evt\n) {\n const { image, currentPoints, element, buttons } = evt.detail;\n const page = currentPoints.page;\n const fingerOffset = -57;\n const targetLocation = external.cornerstone.pageToPixel(\n element,\n page.x,\n interactionType === 'touch' ? page.y + fingerOffset : page.y\n );\n\n runAnimation.value = false;\n handle.active = true;\n handle.hasMoved = true;\n handle.x = targetLocation.x;\n handle.y = targetLocation.y;\n // TODO: A way to not flip this for textboxes on annotations\n annotation.invalidated = true;\n\n if (options.preventHandleOutsideImage) {\n clipToBox(handle, image);\n }\n\n external.cornerstone.updateImage(element);\n\n const activeTool = getActiveTool(element, buttons, interactionType);\n\n if (activeTool instanceof BaseAnnotationTool) {\n activeTool.updateCachedStats(image, element, annotation);\n }\n\n const eventType = EVENTS.MEASUREMENT_MODIFIED;\n const modifiedEventData = {\n toolName,\n toolType: toolName, // Deprecation notice: toolType will be replaced by toolName\n element,\n measurementData: annotation,\n };\n\n triggerEvent(element, eventType, modifiedEventData);\n}\n\nfunction _cancelEventHandler(\n toolName,\n evtDetail,\n annotation,\n handle,\n options = {},\n interactionType,\n { dragHandler, upOrEndHandler },\n doneMovingCallback\n) {\n _endHandler(\n toolName,\n evtDetail,\n annotation,\n handle,\n options,\n interactionType,\n {\n dragHandler,\n upOrEndHandler,\n },\n doneMovingCallback,\n false\n );\n}\n\nfunction _upOrEndHandler(\n toolName,\n evtDetail,\n annotation,\n handle,\n options = {},\n interactionType,\n { dragHandler, upOrEndHandler },\n doneMovingCallback\n) {\n const { element } = evtDetail;\n\n manipulatorStateModule.setters.removeActiveManipulatorForElement(element);\n\n _endHandler(\n toolName,\n evtDetail,\n annotation,\n handle,\n options,\n interactionType,\n {\n dragHandler,\n upOrEndHandler,\n },\n doneMovingCallback,\n true\n );\n}\n\nfunction _endHandler(\n toolName,\n evtDetail,\n annotation,\n handle,\n options = {},\n interactionType,\n { dragHandler, upOrEndHandler },\n doneMovingCallback,\n success = true\n) {\n const element = evtDetail.element;\n\n handle.active = false;\n handle.moving = false;\n annotation.active = false;\n annotation.invalidated = true;\n runAnimation.value = false;\n state.isToolLocked = false;\n\n // Remove Event Listeners\n _dragEvents[interactionType].forEach(eventType => {\n element.removeEventListener(eventType, dragHandler);\n });\n _upOrEndEvents[interactionType].forEach(eventType => {\n element.removeEventListener(eventType, upOrEndHandler);\n });\n\n // If any handle is outside the image, delete the tool data\n if (\n options.deleteIfHandleOutsideImage &&\n anyHandlesOutsideImage(evtDetail, annotation.handles)\n ) {\n removeToolState(element, toolName, annotation);\n }\n\n // // TODO: What dark magic makes us want to handle TOUCH_PRESS differently?\n // if (evt.type === EVENTS.TOUCH_PRESS) {\n // evt.detail.handlePressed = annotation;\n // handle.x = image.x; // Original Event\n // handle.y = image.y;\n // }\n\n if (typeof options.doneMovingCallback === 'function') {\n logger.warn(\n '`options.doneMovingCallback` has been depricated. See https://github.com/cornerstonejs/cornerstoneTools/pull/915 for details.'\n );\n\n options.doneMovingCallback(success);\n }\n\n if (typeof doneMovingCallback === 'function') {\n doneMovingCallback(success);\n }\n\n external.cornerstone.updateImage(element);\n}\n\n/**\n * Animates the provided handle using `requestAnimationFrame`\n * @private\n * @method _animate\n *\n * @param {*} handle\n * @param {*} runAnimation\n * @param {*} enabledElement\n * @param {*} targetLocation\n * @returns {undefined}\n */\nfunction _animate(handle, runAnimation, enabledElement, targetLocation) {\n if (!runAnimation.value) {\n return;\n }\n\n // Pixels / second\n const distanceRemaining = Math.abs(handle.y - targetLocation.y);\n const linearDistEachFrame = distanceRemaining / 10;\n\n if (distanceRemaining < 1) {\n handle.y = targetLocation.y;\n runAnimation.value = false;\n\n return;\n }\n\n if (handle.y > targetLocation.y) {\n handle.y -= linearDistEachFrame;\n } else if (handle.y < targetLocation.y) {\n handle.y += linearDistEachFrame;\n }\n\n // Update the image\n external.cornerstone.updateImage(enabledElement.element);\n\n // Request a new frame\n external.cornerstone.requestAnimationFrame(function() {\n _animate(handle, runAnimation, enabledElement, targetLocation);\n });\n}\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport anyHandlesOutsideImage from './anyHandlesOutsideImage.js';\nimport { removeToolState } from '../stateManagement/toolState.js';\nimport triggerEvent from '../util/triggerEvent.js';\nimport { clipToBox } from '../util/clip.js';\nimport { state } from './../store/index.js';\nimport getActiveTool from '../util/getActiveTool';\nimport BaseAnnotationTool from '../tools/base/BaseAnnotationTool';\nimport { getLogger } from '../util/logger.js';\nimport { getModule } from '../store/';\n\nconst logger = getLogger('manipulators:moveNewHandle');\n\nconst manipulatorStateModule = getModule('manipulatorState');\n\nconst _moveEvents = {\n mouse: [EVENTS.MOUSE_MOVE, EVENTS.MOUSE_DRAG],\n touch: [EVENTS.TOUCH_DRAG],\n};\n\nconst _moveEndEvents = {\n mouse: [EVENTS.MOUSE_UP, EVENTS.MOUSE_CLICK],\n touch: [EVENTS.TOUCH_END, EVENTS.TOUCH_PINCH, EVENTS.TAP],\n};\n\n/**\n * Move a new handle\n *\n * @public\n * @method moveNewHandle\n * @memberof Manipulators\n *\n * @param {*} eventData\n * @param {*} toolName\n * @param {*} annotation\n * @param {*} handle\n * @param {*} [options={}]\n * @param {Boolean} [options.deleteIfHandleOutsideImage]\n * @param {Boolean} [options.preventHandleOutsideImage]\n * @param {string} [interactionType=mouse]\n * @param {function} [doneMovingCallback]\n * @returns {void}\n */\nexport default function(\n eventData,\n toolName,\n annotation,\n handle,\n options,\n interactionType = 'mouse',\n doneMovingCallback\n) {\n // Use global defaults, unless overidden by provided options\n options = Object.assign(\n {\n deleteIfHandleOutsideImage: state.deleteIfHandleOutsideImage,\n preventHandleOutsideImage: state.preventHandleOutsideImage,\n },\n options\n );\n\n options.hasMoved = false;\n\n const { element } = eventData;\n\n annotation.active = true;\n\n handle.moving = true;\n handle.active = true;\n state.isToolLocked = true;\n\n function moveHandler(evt) {\n _moveHandler(toolName, annotation, handle, options, interactionType, evt);\n }\n // So we don't need to inline the entire `moveEndEventHandler` function\n function moveEndHandler(evt) {\n _moveEndHandler(\n toolName,\n annotation,\n handle,\n options,\n interactionType,\n {\n moveHandler,\n moveEndHandler,\n },\n evt,\n doneMovingCallback\n );\n }\n\n // Factory function\n // begin, end, cancel\n // Or... Handle \"CANCEL\"\n // TODO: SETUP IN all other manipulators\n\n // Add event listeners\n _moveEvents[interactionType].forEach(eventType => {\n element.addEventListener(eventType, moveHandler);\n });\n element.addEventListener(EVENTS.TOUCH_START, _stopImmediatePropagation);\n\n _moveEndEvents[interactionType].forEach(eventType => {\n element.addEventListener(eventType, moveEndHandler);\n });\n\n // When cancelling... What is our active tool?\n // `isToolLocked` ... Track which (annotation) tool is being manipulated\n // If not \"completed\", removeToolState (maybe an `isComplete` flag)\n // 5 locations: MEASUREMENT_COMPLETED\n // Firing event... Sets `isCompleted` flag for annotation uuid\n manipulatorStateModule.setters.addActiveManipulatorForElement(\n element,\n _cancelEventHandler.bind(\n null,\n annotation,\n handle,\n options,\n interactionType,\n {\n moveHandler,\n moveEndHandler,\n },\n element,\n doneMovingCallback\n )\n );\n}\n\n/**\n * Updates annotation as the \"pointer\" is moved/dragged\n * Emits `cornerstonetoolsmeasurementmodified` events\n *\n * @param {string} toolName\n * @param {*} annotation\n * @param {*} handle\n * @param {*} options\n * @param {string} interactionType\n * @param {*} evt\n *\n * @returns {void}\n */\nfunction _moveHandler(\n toolName,\n annotation,\n handle,\n options,\n interactionType,\n evt\n) {\n const { currentPoints, image, element, buttons } = evt.detail;\n\n options.hasMoved = true;\n\n const page = currentPoints.page;\n const fingerOffset = -57;\n const targetLocation = external.cornerstone.pageToPixel(\n element,\n interactionType === 'touch' ? page.x + fingerOffset : page.x,\n interactionType === 'touch' ? page.y + fingerOffset : page.y\n );\n\n annotation.invalidated = true;\n handle.active = true;\n handle.x = targetLocation.x;\n handle.y = targetLocation.y;\n\n if (options && options.preventHandleOutsideImage) {\n clipToBox(handle, image);\n }\n\n external.cornerstone.updateImage(element);\n\n const activeTool = getActiveTool(element, buttons, interactionType);\n\n if (activeTool instanceof BaseAnnotationTool) {\n activeTool.updateCachedStats(image, element, annotation);\n }\n\n const eventType = EVENTS.MEASUREMENT_MODIFIED;\n const modifiedEventData = {\n toolName,\n toolType: toolName, // Deprecation notice: toolType will be replaced by toolName\n element,\n measurementData: annotation,\n };\n\n triggerEvent(element, eventType, modifiedEventData);\n}\n\nfunction _endHandler(\n interactionType,\n options,\n element,\n { moveHandler, moveEndHandler },\n doneMovingCallback,\n success = true\n) {\n // Remove event listeners\n _moveEvents[interactionType].forEach(eventType => {\n element.removeEventListener(eventType, moveHandler);\n });\n _moveEndEvents[interactionType].forEach(eventType => {\n element.removeEventListener(eventType, moveEndHandler);\n });\n element.removeEventListener(EVENTS.TOUCH_START, _stopImmediatePropagation);\n\n state.isToolLocked = false;\n\n if (typeof doneMovingCallback === 'function') {\n doneMovingCallback(success);\n }\n\n if (typeof options.doneMovingCallback === 'function') {\n logger.warn(\n '`options.doneMovingCallback` has been depricated. See https://github.com/cornerstonejs/cornerstoneTools/pull/915 for details.'\n );\n\n options.doneMovingCallback(success);\n }\n\n // Update Image\n external.cornerstone.updateImage(element);\n}\n\nfunction _moveEndHandler(\n toolName,\n annotation,\n handle,\n options,\n interactionType,\n { moveHandler, moveEndHandler },\n evt,\n doneMovingCallback\n) {\n const eventData = evt.detail;\n const { element, currentPoints } = eventData;\n\n if (options.hasMoved === false) {\n return;\n }\n\n const page = currentPoints.page;\n const fingerOffset = -57;\n const targetLocation = external.cornerstone.pageToPixel(\n element,\n interactionType === 'touch' ? page.x + fingerOffset : page.x,\n interactionType === 'touch' ? page.y + fingerOffset : page.y\n );\n\n // \"Release\" the handle\n annotation.active = false;\n annotation.invalidated = true;\n handle.active = false;\n handle.moving = false;\n handle.x = targetLocation.x;\n handle.y = targetLocation.y;\n\n manipulatorStateModule.setters.removeActiveManipulatorForElement(element);\n\n // TODO: WHY?\n // Why would a Touch_Pinch or Touch_Press be associated with a new handle?\n // if (evt.type === EVENTS.TOUCH_PINCH || evt.type === EVENTS.TOUCH_PRESS) {\n // handle.active = false;\n // external.cornerstone.updateImage(element);\n // if (typeof options.doneMovingCallback === 'function') {\n // logger.warn(\n // '`options.doneMovingCallback` has been depricated. See https://github.com/cornerstonejs/cornerstoneTools/pull/915 for details.'\n // );\n\n // options.doneMovingCallback(success);\n // }\n\n // if (typeof doneMovingCallback === 'function') {\n // doneMovingCallback(success);\n // }\n\n // return;\n // }\n\n if (options.preventHandleOutsideImage) {\n clipToBox(handle, evt.detail.image);\n }\n\n // If any handle is outside the image, delete the tool data\n if (\n options.deleteIfHandleOutsideImage &&\n anyHandlesOutsideImage(evt.detail, annotation.handles)\n ) {\n annotation.cancelled = true;\n removeToolState(element, toolName, annotation);\n }\n\n _endHandler(\n interactionType,\n options,\n element,\n {\n moveHandler,\n moveEndHandler,\n },\n doneMovingCallback,\n true\n );\n}\n\nfunction _cancelEventHandler(\n annotation,\n handle,\n options,\n interactionType,\n { moveHandler, moveEndHandler },\n element,\n doneMovingCallback\n) {\n // \"Release\" the handle\n annotation.active = false;\n annotation.invalidated = true;\n handle.active = false;\n\n _endHandler(\n interactionType,\n options,\n element,\n {\n moveHandler,\n moveEndHandler,\n },\n doneMovingCallback,\n false\n );\n}\n\n/**\n * Stop the CornerstoneToolsTouchStart event from\n * Becoming a CornerstoneToolsTouchStartActive event when\n * MoveNewHandle ends\n *\n * @private\n * @function _stopImmediatePropagation\n *\n * @param {*} evt\n * @returns {Boolean} false\n */\nfunction _stopImmediatePropagation(evt) {\n evt.stopImmediatePropagation();\n\n return false;\n}\n","import {\n setToolDisabledForElement,\n setToolActiveForElement,\n} from '../store/setToolMode.js';\n\n/**\n * If one attempts to change mode to 'passive', redirect the tool to 'disabled'.\n *\n * @param {HTMLElement} element The element on which the tool resides.\n * @returns {undefined}\n */\nfunction passiveCallback(element) {\n setToolDisabledForElement(element, this.name);\n}\n\n/**\n * If one attempts to turn the tool 'enabled', redirect the tool to 'active'.\n *\n * @param {HTMLElement} element The element on which the tool resides.\n * @returns {undefined}\n */\nfunction enabledCallback(element) {\n setToolActiveForElement(element, this.name);\n}\n\n/**\n * @mixin activeOrDisabledBinaryTool - Redirect enabled/passive mode changes to active/disabled.\n * @memberof Mixins\n */\nexport default {\n passiveCallback,\n enabledCallback,\n};\n","import {\n setToolDisabledForElement,\n setToolEnabledForElement,\n} from '../store/setToolMode.js';\n\n/**\n * If one attempts to change mode to 'passive', redirect the tool to 'disabled'.\n *\n * @param {HTMLElement} element The element on which the tool resides.\n * @returns {undefined}\n */\nfunction passiveCallback(element) {\n setToolDisabledForElement(element, this.name);\n}\n\n/**\n * If one attempts to change mode to 'active', redirect the tool to 'enabled'.\n *\n * @param {HTMLElement} element The element on which the tool resides.\n * @returns {undefined}\n */\nfunction activeCallback(element) {\n setToolEnabledForElement(element, this.name);\n}\n\n/**\n *\n * @mixin enabledOrDisabledBinaryTool - Redirect active/passive mode changes to enabled/disabled.\n * @memberof Mixins\n */\nexport default {\n passiveCallback,\n activeCallback,\n};\n","import activeOrDisabledBinaryTool from './activeOrDisabledBinaryTool.js';\nimport enabledOrDisabledBinaryTool from './enabledOrDisabledBinaryTool.js';\nimport circleSegmentationMixin from './segmentation/circleSegmentationMixin.js';\nimport polylineSegmentationMixin from './segmentation/polylineSegmentationMixin.js';\nimport freehandSegmentationMixin from './segmentation/freehandSegmentationMixin.js';\nimport rectangleSegmentationMixin from './segmentation/rectangleSegmentationMixin.js';\nimport renderBrushMixin from './segmentation/renderBrushMixin.js';\n\nexport default {\n activeOrDisabledBinaryTool,\n enabledOrDisabledBinaryTool,\n circleSegmentationMixin,\n polylineSegmentationMixin,\n freehandSegmentationMixin,\n rectangleSegmentationMixin,\n renderBrushMixin,\n};\n","import { draw, drawCircle, getNewContext } from '../../drawing';\nimport external from '../../externalModules';\nimport _isEmptyObject from '../../util/isEmptyObject';\nimport { getModule } from '../../store';\nimport { getDiffBetweenPixelData } from '../../util/segmentation';\n\nconst { getters, setters } = getModule('segmentation');\n\n/**\n * Sets the start and end handle points to empty objects\n *\n * @private\n * @method _resetHandles\n * @returns {undefined}\n */\nfunction _resetHandles() {\n this.handles = {\n start: {},\n end: {},\n };\n}\n\n/**\n * Render hook: draws the Scissors's outline, box, or circle\n *\n * @param {Object} evt Cornerstone.event#cornerstoneimagerendered > cornerstoneimagerendered event\n * @memberof Tools.ScissorsTool\n * @returns {void}\n */\nfunction renderToolData(evt) {\n const eventData = evt.detail;\n const { element } = eventData;\n const color = getters.brushColor(element, true);\n const context = getNewContext(eventData.canvasContext.canvas);\n const { distance } = external.cornerstoneMath.point;\n\n draw(context, context => {\n if (!this.handles) {\n return null;\n }\n const startCanvas = external.cornerstone.pixelToCanvas(\n element,\n this.handles.start\n );\n\n const endCanvas = external.cornerstone.pixelToCanvas(\n element,\n this.handles.end\n );\n\n // Calculating the radius where startCanvas is the center of the circle to be drawn\n const radius = distance(startCanvas, endCanvas);\n\n // Draw Circle\n drawCircle(context, element, this.handles.start, radius, { color });\n });\n}\n\n/**\n * Sets the start handle point and claims the eventDispatcher event\n *\n * @private\n * @param {*} evt // mousedown, touchstart, click\n * @returns {Boolean} True\n */\nfunction _startOutliningRegion(evt) {\n const consumeEvent = true;\n const element = evt.detail.element;\n const image = evt.detail.currentPoints.image;\n\n if (_isEmptyObject(this.handles.start)) {\n this.handles.start = image;\n } else {\n this.handles.end = image;\n this._applyStrategy(evt);\n }\n\n external.cornerstone.updateImage(element);\n\n return consumeEvent;\n}\n\n/**\n * This function will update the handles and updateImage to force re-draw\n *\n * @private\n * @method _setHandlesAndUpdate\n * @param {(CornerstoneTools.event#TOUCH_DRAG|CornerstoneTools.event#MOUSE_DRAG|CornerstoneTools.event#MOUSE_MOVE)} evt Interaction event emitted by an enabledElement\n * @returns {void}\n */\nfunction _setHandlesAndUpdate(evt) {\n const { element, currentPoints } = evt.detail;\n const { image } = currentPoints;\n\n this.handles.end = image;\n external.cornerstone.updateImage(element);\n}\n\n/**\n * Event handler for MOUSE_UP/TOUCH_END during handle drag event loop.\n *\n * @private\n * @method _applyStrategy\n * @param {(CornerstoneTools.event#MOUSE_UP|CornerstoneTools.event#TOUCH_END)} evt Interaction event emitted by an enabledElement\n * @returns {void}\n */\nfunction _applyStrategy(evt) {\n evt.detail.handles = this.handles;\n const { element } = evt.detail;\n\n const { labelmap2D, labelmap3D, currentImageIdIndex } = getters.labelmap2D(\n element\n );\n\n const pixelData = labelmap2D.pixelData;\n const previousPixeldata = pixelData.slice();\n\n const points = {\n start: {\n x: this.handles.start.x,\n y: this.handles.start.y,\n },\n end: {\n x: this.handles.end.x,\n y: this.handles.end.y,\n },\n };\n\n const operationData = {\n points,\n pixelData,\n segmentIndex: labelmap3D.activeSegmentIndex,\n segmentationMixinType: `circleSegmentationMixin`,\n };\n\n this.applyActiveStrategy(evt, operationData);\n\n const operation = {\n imageIdIndex: currentImageIdIndex,\n diff: getDiffBetweenPixelData(previousPixeldata, pixelData),\n };\n\n setters.pushState(this.element, [operation]);\n\n // Invalidate the brush tool data so it is redrawn\n setters.updateSegmentsOnLabelmap2D(labelmap2D);\n external.cornerstone.updateImage(element);\n\n this._resetHandles();\n}\n\n/**\n * @mixin circleSegmentationMixin - Segmentation operations for circles.\n * @memberof Mixins\n */\nexport default {\n postTouchStartCallback: _startOutliningRegion,\n postMouseDownCallback: _startOutliningRegion,\n mouseClickCallback: _startOutliningRegion,\n touchDragCallback: _setHandlesAndUpdate,\n mouseDragCallback: _setHandlesAndUpdate,\n mouseMoveCallback: _setHandlesAndUpdate,\n touchEndCallback: _applyStrategy,\n mouseUpCallback: _applyStrategy,\n initializeMixin: _resetHandles,\n renderToolData,\n _resetHandles,\n _applyStrategy,\n};\n","import external from '../../externalModules.js';\nimport { getModule } from '../../store';\nimport { getLogger } from '../../util/logger.js';\nimport { draw, drawJoinedLines, getNewContext } from '../../drawing';\nimport { getDiffBetweenPixelData } from '../../util/segmentation';\n\nconst logger = getLogger('tools:ScissorsTool');\n\nconst { getters, setters } = getModule('segmentation');\n\n/**\n * Render hook: draws the FreehandScissors's outline\n *\n * @param {Object} evt Cornerstone.event#cornerstoneimagerendered > cornerstoneimagerendered event\n * @memberof Tools.ScissorsTool\n * @returns {void}\n */\nfunction renderToolData(evt) {\n const eventData = evt.detail;\n const { element } = eventData;\n const color = getters.brushColor(element, true);\n const context = getNewContext(eventData.canvasContext.canvas);\n const points = this.handles.points;\n\n if (points.length < 2) {\n return;\n }\n\n draw(context, context => {\n for (let j = 0; j < points.length; j++) {\n const lines = [...points[j].lines];\n\n if (j === points.length - 1) {\n // If it's still being actively drawn, keep the last line to\n // The mouse location\n lines.push(points[0]);\n }\n drawJoinedLines(context, element, points[j], lines, {\n color,\n });\n }\n });\n}\n\n/**\n * Sets the start handle point and claims the eventDispatcher event\n *\n * @private\n * @param {*} evt // mousedown, touchstart, click\n * @returns {void|null}\n */\nfunction _startOutliningRegion(evt) {\n const element = evt.detail.element;\n const image = evt.detail.currentPoints.image;\n const points = this.handles.points;\n\n if (!points.length) {\n logger.warn('Something went wrong, empty handles detected.');\n\n return null;\n }\n\n points.push({\n x: image.x,\n y: image.y,\n lines: [],\n });\n\n this.currentHandle += 1;\n\n external.cornerstone.updateImage(element);\n}\n\n/**\n * This function will update the handles and updateImage to force re-draw\n *\n * @private\n * @method _setHandlesAndUpdate\n * @param {(CornerstoneTools.event#TOUCH_DRAG|CornerstoneTools.event#MOUSE_DRAG|CornerstoneTools.event#MOUSE_MOVE)} evt Interaction event emitted by an enabledElement\n * @returns {void}\n */\nfunction _setHandlesAndUpdate(evt) {\n const eventData = evt.detail;\n const element = evt.detail.element;\n\n this._addPoint(eventData);\n external.cornerstone.updateImage(element);\n}\n\n/**\n * Event handler for MOUSE_UP/TOUCH_END during handle drag event loop.\n *\n * @private\n * @method _applyStrategy\n * @param {(CornerstoneTools.event#MOUSE_UP|CornerstoneTools.event#TOUCH_END)} evt Interaction event emitted by an enabledElement\n * @returns {void}\n */\nfunction _applyStrategy(evt) {\n const points = this.handles.points;\n const { element } = evt.detail;\n\n const { labelmap2D, labelmap3D, currentImageIdIndex } = getters.labelmap2D(\n element\n );\n\n const pixelData = labelmap2D.pixelData;\n const previousPixeldata = pixelData.slice();\n\n const operationData = {\n points,\n pixelData,\n segmentIndex: labelmap3D.activeSegmentIndex,\n segmentationMixinType: `freehandSegmentationMixin`,\n };\n\n this.applyActiveStrategy(evt, operationData);\n\n const operation = {\n imageIdIndex: currentImageIdIndex,\n diff: getDiffBetweenPixelData(previousPixeldata, pixelData),\n };\n\n setters.pushState(this.element, [operation]);\n\n // Invalidate the brush tool data so it is redrawn\n setters.updateSegmentsOnLabelmap2D(labelmap2D);\n external.cornerstone.updateImage(element);\n\n this._resetHandles();\n}\n\n/**\n * Sets the start and end handle points to empty objects\n *\n * @private\n * @method _resetHandles\n * @returns {undefined}\n */\nfunction _resetHandles() {\n this.handles = {\n points: [],\n };\n\n this.currentHandle = 0;\n}\n\n/**\n * Adds a point on mouse click in polygon mode.\n *\n * @private\n * @param {Object} evt - data object associated with an event.\n * @returns {void}\n */\nfunction _addPoint(evt) {\n const points = this.handles.points;\n\n if (points.length) {\n // Add the line from the current handle to the new handle\n points[this.currentHandle - 1].lines.push({\n x: evt.currentPoints.image.x,\n y: evt.currentPoints.image.y,\n lines: [],\n });\n }\n\n // Add the new handle\n points.push({\n x: evt.currentPoints.image.x,\n y: evt.currentPoints.image.y,\n lines: [],\n });\n\n // Increment the current handle value\n this.currentHandle += 1;\n\n // Force onImageRendered to fire\n external.cornerstone.updateImage(evt.element);\n}\n\n/**\n * @mixin freehandSegmentationMixin - segmentation operations for freehand\n * @memberof Mixins\n */\nexport default {\n postTouchStartCallback: _startOutliningRegion,\n postMouseDownCallback: _startOutliningRegion,\n mouseClickCallback: _startOutliningRegion,\n touchDragCallback: _setHandlesAndUpdate,\n mouseDragCallback: _setHandlesAndUpdate,\n mouseMoveCallback: _setHandlesAndUpdate,\n touchEndCallback: _applyStrategy,\n mouseUpCallback: _applyStrategy,\n initializeMixin: _resetHandles,\n renderToolData,\n _resetHandles,\n _addPoint,\n _applyStrategy,\n};\n","import { draw, drawJoinedLines, getNewContext } from '../../drawing';\nimport { getModule } from '../../store';\nimport freehandSegmentationMixin from './freehandSegmentationMixin';\n\nconst { getters } = getModule('segmentation');\n\n/**\n * Override for `freehandSegmentationMixin`'s `renderToolData` method to render a polyline instead\n * of a freehand region with the first and last point connected. Apply after the `freehandSegmentationMixin`.\n *\n * @override\n * @param {Object} evt The cornerstone render event.\n * @returns {null}\n */\nfunction renderToolData(evt) {\n const eventData = evt.detail;\n const { element } = eventData;\n const color = getters.brushColor(element, true);\n const context = getNewContext(eventData.canvasContext.canvas);\n const handles = this.handles;\n\n draw(context, context => {\n const isNotTheFirstHandle = handles.points.length > 1;\n\n if (isNotTheFirstHandle) {\n for (let j = 0; j < handles.points.length; j++) {\n const lines = [...handles.points[j].lines];\n\n drawJoinedLines(context, element, this.handles.points[j], lines, {\n color,\n });\n }\n }\n });\n}\n\nconst polylineSegmentationMixin = Object.assign({}, freehandSegmentationMixin, {\n renderToolData,\n});\n\n/**\n * @mixin freehandPolylineRenderOverride - segmentation operations for corrections Polyline\n * @memberof Mixins\n */\nexport default polylineSegmentationMixin;\n","import { draw, drawRect, getNewContext } from '../../drawing';\nimport external from '../../externalModules';\nimport _isEmptyObject from '../../util/isEmptyObject';\nimport { getModule } from '../../store';\nimport { getDiffBetweenPixelData } from '../../util/segmentation';\n\nconst { getters, setters } = getModule('segmentation');\n\n/**\n * Render hook: draws the Scissors's outline, box, or circle\n *\n * @param {Object} evt Cornerstone.event#cornerstoneimagerendered > cornerstoneimagerendered event\n * @memberof Tools.ScissorsTool\n * @returns {void}\n */\nfunction renderToolData(evt) {\n const eventData = evt.detail;\n const { element } = eventData;\n const color = getters.brushColor(element, true);\n const context = getNewContext(eventData.canvasContext.canvas);\n\n draw(context, context => {\n drawRect(context, element, this.handles.start, this.handles.end, {\n color,\n });\n });\n}\n\n/**\n * Sets the start handle point and claims the eventDispatcher event\n *\n * @private\n * @param {*} evt // mousedown, touchstart, click\n * @returns {Boolean} True\n */\nfunction _startOutliningRegion(evt) {\n const consumeEvent = true;\n const element = evt.detail.element;\n const image = evt.detail.currentPoints.image;\n\n if (_isEmptyObject(this.handles.start)) {\n this.handles.start = image;\n } else {\n this.handles.end = image;\n this._applyStrategy(evt);\n }\n\n external.cornerstone.updateImage(element);\n\n return consumeEvent;\n}\n\n/**\n * This function will update the handles and updateImage to force re-draw\n *\n * @private\n * @method _setHandlesAndUpdate\n * @param {(CornerstoneTools.event#TOUCH_DRAG|CornerstoneTools.event#MOUSE_DRAG|CornerstoneTools.event#MOUSE_MOVE)} evt Interaction event emitted by an enabledElement\n * @returns {void}\n */\nfunction _setHandlesAndUpdate(evt) {\n const {\n element,\n currentPoints: { image },\n } = evt.detail;\n\n this.handles.end = image;\n external.cornerstone.updateImage(element);\n}\n\n/**\n * Event handler for MOUSE_UP/TOUCH_END during handle drag event loop.\n *\n * @private\n * @method _applyStrategy\n * @param {(CornerstoneTools.event#MOUSE_UP|CornerstoneTools.event#TOUCH_END)} evt Interaction event emitted by an enabledElement\n * @returns {void}\n */\nfunction _applyStrategy(evt) {\n evt.detail.handles = this.handles;\n\n const { element } = evt.detail;\n\n const { labelmap2D, labelmap3D, currentImageIdIndex } = getters.labelmap2D(\n element\n );\n\n const pixelData = labelmap2D.pixelData;\n const previousPixeldata = pixelData.slice();\n\n const points = [\n {\n x: this.handles.start.x,\n y: this.handles.start.y,\n },\n {\n x: this.handles.end.x,\n y: this.handles.end.y,\n },\n ];\n\n const operationData = {\n points,\n pixelData,\n segmentIndex: labelmap3D.activeSegmentIndex,\n segmentationMixinType: `rectangleSegmentationMixin`,\n };\n\n this.applyActiveStrategy(evt, operationData);\n\n const operation = {\n imageIdIndex: currentImageIdIndex,\n diff: getDiffBetweenPixelData(previousPixeldata, pixelData),\n };\n\n setters.pushState(this.element, [operation]);\n\n // Invalidate the brush tool data so it is redrawn\n setters.updateSegmentsOnLabelmap2D(labelmap2D);\n external.cornerstone.updateImage(element);\n\n this._resetHandles();\n}\n\n/**\n * Sets the start and end handle points to empty objects\n *\n * @private\n * @method _resetHandles\n * @returns {void}\n */\nfunction _resetHandles() {\n this.handles = {\n start: {},\n end: {},\n };\n}\n\n/**\n * @mixin rectangleSegmentationMixin - segmentation operations for rectangles\n * @memberof Mixins\n */\nexport default {\n postTouchStartCallback: _startOutliningRegion,\n postMouseDownCallback: _startOutliningRegion,\n mouseClickCallback: _startOutliningRegion,\n touchDragCallback: _setHandlesAndUpdate,\n mouseDragCallback: _setHandlesAndUpdate,\n mouseMoveCallback: _setHandlesAndUpdate,\n touchEndCallback: _applyStrategy,\n mouseUpCallback: _applyStrategy,\n initializeMixin: _resetHandles,\n renderToolData,\n _resetHandles,\n _applyStrategy,\n};\n","import external from './../../externalModules.js';\nimport store, { getModule } from './../../store/index.js';\n\n/**\n * Called by the event dispatcher to render the image.\n *\n * @param {Object} evt - The event.\n * @returns {void}\n */\nfunction renderBrush(evt) {\n const { cornerstone } = external;\n const { getters, configuration } = getModule('segmentation');\n const eventData = evt.detail;\n const viewport = eventData.viewport;\n\n let mousePosition;\n\n if (this._drawing) {\n mousePosition = this._lastImageCoords;\n } else if (this._mouseUpRender) {\n mousePosition = this._lastImageCoords;\n this._mouseUpRender = false;\n } else {\n mousePosition = store.state.mousePositionImage;\n }\n\n if (!mousePosition) {\n return;\n }\n\n const { rows, columns } = eventData.image;\n const { x, y } = mousePosition;\n\n if (x < 0 || x > columns || y < 0 || y > rows) {\n return;\n }\n\n // Draw the hover overlay on top of the pixel data\n const radius = configuration.radius;\n const context = eventData.canvasContext;\n const element = eventData.element;\n const color = getters.brushColor(element, this._drawing);\n\n context.setTransform(1, 0, 0, 1, 0, 0);\n\n const circleRadius = radius * viewport.scale;\n const mouseCoordsCanvas = cornerstone.pixelToCanvas(element, mousePosition);\n\n context.beginPath();\n context.strokeStyle = color;\n context.ellipse(\n mouseCoordsCanvas.x,\n mouseCoordsCanvas.y,\n circleRadius,\n circleRadius,\n 0,\n 0,\n 2 * Math.PI\n );\n context.stroke();\n}\n\nexport default {\n renderBrush,\n};\n","import external from '../externalModules.js';\nimport convertToVector3 from '../util/convertToVector3.js';\n\n/**\n * Returns the orientation of the vector in the patient coordinate system.\n * @public\n * @function getOrientationString\n *\n * @param {Array|cornerstoneMath.Vector3} vector Input array or Vector3\n * @returns {string} The orientation in the patient coordinate system.\n */\nexport default function(vector) {\n const vec3 = convertToVector3(vector);\n\n // Thanks to David Clunie\n // https://sites.google.com/site/dicomnotes/\n\n let orientation = '';\n const orientationX = vec3.x < 0 ? 'R' : 'L';\n const orientationY = vec3.y < 0 ? 'A' : 'P';\n const orientationZ = vec3.z < 0 ? 'F' : 'H';\n\n // Should probably make this a function vector3.abs\n const abs = new external.cornerstoneMath.Vector3(\n Math.abs(vec3.x),\n Math.abs(vec3.y),\n Math.abs(vec3.z)\n );\n\n const MIN = 0.0001;\n\n for (let i = 0; i < 3; i++) {\n if (abs.x > MIN && abs.x > abs.y && abs.x > abs.z) {\n orientation += orientationX;\n abs.x = 0;\n } else if (abs.y > MIN && abs.y > abs.x && abs.y > abs.z) {\n orientation += orientationY;\n abs.y = 0;\n } else if (abs.z > MIN && abs.z > abs.x && abs.z > abs.y) {\n orientation += orientationZ;\n abs.z = 0;\n } else if (abs.x > MIN && abs.y > MIN && abs.x === abs.y) {\n orientation += orientationX + orientationY;\n abs.x = 0;\n abs.y = 0;\n } else if (abs.x > MIN && abs.z > MIN && abs.x === abs.z) {\n orientation += orientationX + orientationZ;\n abs.x = 0;\n abs.z = 0;\n } else if (abs.y > MIN && abs.z > MIN && abs.y === abs.z) {\n orientation += orientationY + orientationZ;\n abs.y = 0;\n abs.z = 0;\n } else {\n break;\n }\n }\n\n return orientation;\n}\n","import getOrientationString from './getOrientationString.js';\nimport invertOrientationString from './invertOrientationString.js';\n\nconst orientation = {\n getOrientationString,\n invertOrientationString,\n};\n\nexport default orientation;\n","/**\n * Inverts an orientation string.\n * @public\n * @function invertOrientationString\n *\n * @param {string} orientationString The orientation.\n * @returns {string} The inverted orientationString.\n */\nexport default function(orientationString) {\n let inverted = orientationString.replace('H', 'f');\n\n inverted = inverted.replace('F', 'h');\n inverted = inverted.replace('R', 'l');\n inverted = inverted.replace('L', 'r');\n inverted = inverted.replace('A', 'p');\n inverted = inverted.replace('P', 'a');\n inverted = inverted.toUpperCase();\n\n return inverted;\n}\n","import external from '../externalModules.js';\nimport { getMaxSimultaneousRequests } from '../util/getMaxSimultaneousRequests.js';\n\nconst requestPool = {\n interaction: [],\n thumbnail: [],\n prefetch: [],\n};\n\nconst numRequests = {\n interaction: 0,\n thumbnail: 0,\n prefetch: 0,\n};\n\nlet maxNumRequests = {\n interaction: 6,\n thumbnail: 6,\n prefetch: 5,\n};\n\nlet awake = false;\nconst grabDelay = 20;\n\nfunction addRequest(\n element,\n imageId,\n type,\n preventCache,\n doneCallback,\n failCallback,\n addToBeginning\n) {\n if (!requestPool.hasOwnProperty(type)) {\n throw new Error(\n 'Request type must be one of interaction, thumbnail, or prefetch'\n );\n }\n\n if (!element || !imageId) {\n return;\n }\n\n // Describe the request\n const requestDetails = {\n type,\n imageId,\n preventCache,\n doneCallback,\n failCallback,\n };\n\n // If this imageId is in the cache, resolve it immediately\n const imageLoadObject = external.cornerstone.imageCache.getImageLoadObject(\n imageId\n );\n\n if (imageLoadObject) {\n imageLoadObject.promise.then(\n function(image) {\n doneCallback(image);\n },\n function(error) {\n failCallback(error);\n }\n );\n\n return;\n }\n\n if (addToBeginning) {\n // Add it to the beginning of the stack\n requestPool[type].unshift(requestDetails);\n } else {\n // Add it to the end of the stack\n requestPool[type].push(requestDetails);\n }\n\n // Wake up\n awake = true;\n}\n\nfunction clearRequestStack(type) {\n // Console.log('clearRequestStack');\n if (!requestPool.hasOwnProperty(type)) {\n throw new Error(\n 'Request type must be one of interaction, thumbnail, or prefetch'\n );\n }\n\n requestPool[type] = [];\n}\n\nfunction startAgain() {\n if (!awake) {\n return;\n }\n\n setTimeout(function() {\n startGrabbing();\n }, grabDelay);\n}\n\nfunction sendRequest(requestDetails) {\n const cornerstone = external.cornerstone;\n // Increment the number of current requests of this type\n const type = requestDetails.type;\n\n numRequests[type]++;\n\n awake = true;\n const imageId = requestDetails.imageId;\n const doneCallback = requestDetails.doneCallback;\n const failCallback = requestDetails.failCallback;\n\n // Check if we already have this image promise in the cache\n const imageLoadObject = cornerstone.imageCache.getImageLoadObject(imageId);\n\n if (imageLoadObject) {\n // If we do, remove from list (when resolved, as we could have\n // Pending prefetch requests) and stop processing this iteration\n imageLoadObject.promise.then(\n function(image) {\n numRequests[type]--;\n // Console.log(numRequests);\n\n doneCallback(image);\n startAgain();\n },\n function(error) {\n numRequests[type]--;\n // Console.log(numRequests);\n failCallback(error);\n startAgain();\n }\n );\n\n return;\n }\n\n function requestTypeToLoadPriority(requestDetails) {\n if (requestDetails.type === 'prefetch') {\n return -5;\n } else if (requestDetails.type === 'interactive') {\n return 0;\n } else if (requestDetails.type === 'thumbnail') {\n return 5;\n }\n }\n\n const priority = requestTypeToLoadPriority(requestDetails);\n\n let loader;\n\n if (requestDetails.preventCache === true) {\n loader = cornerstone.loadImage(imageId, {\n priority,\n type: requestDetails.type,\n });\n } else {\n loader = cornerstone.loadAndCacheImage(imageId, {\n priority,\n type: requestDetails.type,\n });\n }\n\n // Load and cache the image\n loader.then(\n function(image) {\n numRequests[type]--;\n // Console.log(numRequests);\n doneCallback(image);\n startAgain();\n },\n function(error) {\n numRequests[type]--;\n // Console.log(numRequests);\n failCallback(error);\n startAgain();\n }\n );\n}\n\nfunction startGrabbing() {\n // Begin by grabbing X images\n const maxSimultaneousRequests = getMaxSimultaneousRequests();\n\n maxNumRequests = {\n interaction: Math.max(maxSimultaneousRequests, 1),\n thumbnail: Math.max(maxSimultaneousRequests - 2, 1),\n prefetch: Math.max(maxSimultaneousRequests - 1, 1),\n };\n\n const currentRequests =\n numRequests.interaction + numRequests.thumbnail + numRequests.prefetch;\n const requestsToSend = maxSimultaneousRequests - currentRequests;\n\n for (let i = 0; i < requestsToSend; i++) {\n const requestDetails = getNextRequest();\n\n if (requestDetails) {\n sendRequest(requestDetails);\n }\n }\n}\n\nfunction getNextRequest() {\n if (\n requestPool.interaction.length &&\n numRequests.interaction < maxNumRequests.interaction\n ) {\n return requestPool.interaction.shift();\n }\n\n if (\n requestPool.thumbnail.length &&\n numRequests.thumbnail < maxNumRequests.thumbnail\n ) {\n return requestPool.thumbnail.shift();\n }\n\n if (\n requestPool.prefetch.length &&\n numRequests.prefetch < maxNumRequests.prefetch\n ) {\n return requestPool.prefetch.shift();\n }\n\n if (\n !requestPool.interaction.length &&\n !requestPool.thumbnail.length &&\n !requestPool.prefetch.length\n ) {\n awake = false;\n }\n\n return false;\n}\n\nfunction getRequestPool() {\n return requestPool;\n}\n\nexport default {\n addRequest,\n clearRequestStack,\n startGrabbing,\n getRequestPool,\n};\n","import external from '../externalModules.js';\nimport { getToolState } from '../stateManagement/toolState.js';\n\nexport default class FusionRenderer {\n constructor() {\n this.currentImageIdIndex = 0;\n this.layerIds = [];\n this.findImageFn = undefined;\n }\n\n render(element, imageStacks) {\n // Move this to base Renderer class\n if (!Number.isInteger(this.currentImageIdIndex)) {\n throw new Error(\n 'FusionRenderer: render - Image ID Index is not an integer'\n );\n }\n\n if (!this.findImageFn) {\n throw new Error('No findImage function has been defined');\n }\n\n if (!imageStacks) {\n const toolData = getToolState(element, 'stack');\n\n imageStacks = toolData.data;\n }\n // TODO: Figure out what to do with LoadHandlers in this scenario...\n\n const cornerstone = external.cornerstone;\n\n // For the base layer, go to the currentImageIdIndex\n const baseImageObject = imageStacks[0];\n const currentImageId = baseImageObject.imageIds[this.currentImageIdIndex];\n const overlayImageStacks = imageStacks.slice(1, imageStacks.length);\n\n cornerstone.loadAndCacheImage(currentImageId).then(baseImage => {\n let baseLayerId = this.layerIds[0];\n\n // Get the base layer if one exists\n if (baseLayerId) {\n cornerstone.setLayerImage(element, baseImage, baseLayerId);\n } else {\n // Otherwise, create a new layer with the base layer's image\n baseLayerId = cornerstone.addLayer(\n element,\n baseImage,\n baseImageObject.options\n );\n this.layerIds.push(baseLayerId);\n }\n\n // Display the image immediately while the overlay images are identified\n cornerstone.displayImage(element, baseImage);\n\n // Loop through the remaining 'overlay' image stacks\n overlayImageStacks.forEach((imgObj, overlayLayerIndex) => {\n const imageId = this.findImageFn(imgObj.imageIds, currentImageId);\n const layerIndex = overlayLayerIndex + 1;\n let currentLayerId = this.layerIds[layerIndex];\n\n // If no layer exists yet for this overlaid stack, create\n // One and add it to the layerIds property for this instance\n // Of the fusion renderer.\n if (!currentLayerId) {\n currentLayerId = cornerstone.addLayer(\n element,\n undefined,\n imgObj.options\n );\n this.layerIds.push(currentLayerId);\n }\n\n if (imageId) {\n // If an imageId was returned from the findImage function,\n // Load it, make sure it's visible and update the layer\n // With the new image object.\n cornerstone.loadAndCacheImage(imageId).then(image => {\n cornerstone.setLayerImage(element, image, currentLayerId);\n cornerstone.updateImage(element);\n });\n } else {\n // If no imageId was returned from the findImage function.\n // This means that there is no relevant image to display.\n cornerstone.setLayerImage(element, undefined, currentLayerId);\n cornerstone.setActiveLayer(element, baseLayerId);\n cornerstone.updateImage(element);\n }\n });\n });\n }\n}\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport loadHandlerManager from '../stateManagement/loadHandlerManager.js';\nimport { addToolState, getToolState } from '../stateManagement/toolState.js';\nimport triggerEvent from '../util/triggerEvent.js';\n\nconst toolName = 'playClip';\n\n/**\n * [private] Turns a Frame Time Vector (0018,1065) array into a normalized array of timeouts. Each element\n * ... of the resulting array represents the amount of time each frame will remain on the screen.\n * @param {Array} vector A Frame Time Vector (0018,1065) as specified in section C.7.6.5.1.2 of DICOM standard.\n * @param {Number} speed A speed factor which will be applied to each element of the resulting array.\n * @returns {Array} An array with timeouts for each animation frame.\n */\nfunction getPlayClipTimeouts(vector, speed) {\n let i;\n let sample;\n let delay;\n let sum = 0;\n const limit = vector.length;\n const timeouts = [];\n\n // Initialize time varying to false\n timeouts.isTimeVarying = false;\n\n if (typeof speed !== 'number' || speed <= 0) {\n speed = 1;\n }\n\n // First element of a frame time vector must be discarded\n for (i = 1; i < limit; i++) {\n // eslint-disable-next-line no-bitwise\n delay = (Number(vector[i]) / speed) | 0; // Integral part only\n timeouts.push(delay);\n if (i === 1) {\n // Use first item as a sample for comparison\n sample = delay;\n } else if (delay !== sample) {\n timeouts.isTimeVarying = true;\n }\n\n sum += delay;\n }\n\n if (timeouts.length > 0) {\n if (timeouts.isTimeVarying) {\n // If it's a time varying vector, make the last item an average...\n // eslint-disable-next-line no-bitwise\n delay = (sum / timeouts.length) | 0;\n } else {\n delay = timeouts[0];\n }\n\n timeouts.push(delay);\n }\n\n return timeouts;\n}\n\n/**\n * [private] Performs the heavy lifting of stopping an ongoing animation.\n * @param {Object} playClipData The data from playClip that needs to be stopped.\n * @returns {void}\n */\nfunction stopClipWithData(playClipData) {\n const id = playClipData.intervalId;\n\n if (typeof id !== 'undefined') {\n playClipData.intervalId = undefined;\n if (playClipData.usingFrameTimeVector) {\n clearTimeout(id);\n } else {\n clearInterval(id);\n }\n }\n}\n\n/**\n * [private] Trigger playClip tool stop event.\n * @param {HTMLElement} element\n * @returns {void}\n */\nfunction triggerStopEvent(element) {\n const eventDetail = {\n element,\n };\n\n triggerEvent(element, EVENTS.CLIP_STOPPED, eventDetail);\n}\n\n/**\n * Starts playing a clip or adjusts the frame rate of an already playing clip. framesPerSecond is\n * optional and defaults to 30 if not specified. A negative framesPerSecond will play the clip in reverse.\n * The element must be a stack of images\n * @param {HTMLElement} element\n * @param {number} framesPerSecond\n * @returns {void}\n */\nfunction playClip(element, framesPerSecond) {\n let playClipData;\n let playClipTimeouts;\n\n if (element === undefined) {\n throw new Error('playClip: element must not be undefined');\n }\n\n const stackToolData = getToolState(element, 'stack');\n\n if (!stackToolData || !stackToolData.data || !stackToolData.data.length) {\n return;\n }\n\n const cornerstone = external.cornerstone;\n // If we have more than one stack, check if we have a stack renderer defined\n let stackRenderer;\n\n if (stackToolData.data.length > 1) {\n const stackRendererData = getToolState(element, 'stackRenderer');\n\n if (\n stackRendererData &&\n stackRendererData.data &&\n stackRendererData.data.length\n ) {\n stackRenderer = stackRendererData.data[0];\n }\n }\n\n const stackData = stackToolData.data[0];\n\n const playClipToolData = getToolState(element, toolName);\n\n if (\n !playClipToolData ||\n !playClipToolData.data ||\n !playClipToolData.data.length\n ) {\n playClipData = {\n intervalId: undefined,\n framesPerSecond: 30,\n lastFrameTimeStamp: undefined,\n frameRate: 0,\n frameTimeVector: undefined,\n ignoreFrameTimeVector: false,\n usingFrameTimeVector: false,\n speed: 1,\n reverse: false,\n loop: true,\n };\n addToolState(element, toolName, playClipData);\n } else {\n playClipData = playClipToolData.data[0];\n // Make sure the specified clip is not running before any property update\n stopClipWithData(playClipData);\n }\n\n // If a framesPerSecond is specified and is valid, update the playClipData now\n if (framesPerSecond < 0 || framesPerSecond > 0) {\n playClipData.framesPerSecond = Number(framesPerSecond);\n playClipData.reverse = playClipData.framesPerSecond < 0;\n // If framesPerSecond is given, frameTimeVector will be ignored...\n playClipData.ignoreFrameTimeVector = true;\n }\n\n // Determine if frame time vector should be used instead of a fixed frame rate...\n if (\n playClipData.ignoreFrameTimeVector !== true &&\n playClipData.frameTimeVector &&\n playClipData.frameTimeVector.length === stackData.imageIds.length\n ) {\n playClipTimeouts = getPlayClipTimeouts(\n playClipData.frameTimeVector,\n playClipData.speed\n );\n }\n\n // This function encapsulates the frame rendering logic...\n const playClipAction = () => {\n // Hoisting of context variables\n let loader,\n startLoadingHandler,\n endLoadingHandler,\n errorLoadingHandler,\n newImageIdIndex = stackData.currentImageIdIndex;\n\n const imageCount = stackData.imageIds.length;\n\n if (playClipData.reverse) {\n newImageIdIndex--;\n } else {\n newImageIdIndex++;\n }\n\n if (\n !playClipData.loop &&\n (newImageIdIndex < 0 || newImageIdIndex >= imageCount)\n ) {\n stopClipWithData(playClipData);\n triggerStopEvent(element);\n\n return;\n }\n\n // Loop around if we go outside the stack\n if (newImageIdIndex >= imageCount) {\n newImageIdIndex = 0;\n }\n\n if (newImageIdIndex < 0) {\n newImageIdIndex = imageCount - 1;\n }\n\n if (newImageIdIndex !== stackData.currentImageIdIndex) {\n startLoadingHandler = loadHandlerManager.getStartLoadHandler(element);\n endLoadingHandler = loadHandlerManager.getEndLoadHandler(element);\n errorLoadingHandler = loadHandlerManager.getErrorLoadingHandler(element);\n\n if (startLoadingHandler) {\n startLoadingHandler(element);\n }\n\n if (stackData.preventCache === true) {\n loader = cornerstone.loadImage(stackData.imageIds[newImageIdIndex]);\n } else {\n loader = cornerstone.loadAndCacheImage(\n stackData.imageIds[newImageIdIndex]\n );\n }\n\n loader.then(\n function(image) {\n try {\n stackData.currentImageIdIndex = newImageIdIndex;\n if (stackRenderer) {\n stackRenderer.currentImageIdIndex = newImageIdIndex;\n stackRenderer.render(element, stackToolData.data);\n } else {\n cornerstone.displayImage(element, image);\n }\n if (endLoadingHandler) {\n endLoadingHandler(element, image);\n }\n } catch (error) {\n return;\n }\n },\n function(error) {\n const imageId = stackData.imageIds[newImageIdIndex];\n\n if (errorLoadingHandler) {\n errorLoadingHandler(element, imageId, error);\n }\n }\n );\n }\n };\n\n // If playClipTimeouts array is available, not empty and its elements are NOT uniform ...\n // ... (at least one timeout is different from the others), use alternate setTimeout implementation\n if (\n playClipTimeouts &&\n playClipTimeouts.length > 0 &&\n playClipTimeouts.isTimeVarying\n ) {\n playClipData.usingFrameTimeVector = true;\n playClipData.intervalId = setTimeout(function playClipTimeoutHandler() {\n playClipData.intervalId = setTimeout(\n playClipTimeoutHandler,\n playClipTimeouts[stackData.currentImageIdIndex]\n );\n playClipAction();\n }, 0);\n } else {\n // ... otherwise user setInterval implementation which is much more efficient.\n playClipData.usingFrameTimeVector = false;\n playClipData.intervalId = setInterval(\n playClipAction,\n 1000 / Math.abs(playClipData.framesPerSecond)\n );\n }\n}\n\n/**\n * Stops an already playing clip.\n * @param {HTMLElement} element\n * @returns {void}\n */\nfunction stopClip(element) {\n const playClipToolData = getToolState(element, toolName);\n\n if (\n !playClipToolData ||\n !playClipToolData.data ||\n !playClipToolData.data.length\n ) {\n return;\n }\n\n stopClipWithData(playClipToolData.data[0]);\n}\n\nexport { playClip, stopClip };\n","import external from './../externalModules.js';\nimport requestPoolManager from '../requestPool/requestPoolManager.js';\nimport loadHandlerManager from '../stateManagement/loadHandlerManager.js';\nimport { addToolState, getToolState } from '../stateManagement/toolState.js';\nimport { setMaxSimultaneousRequests } from '../util/getMaxSimultaneousRequests.js';\nimport { getLogger } from '../util/logger.js';\nimport triggerEvent from '../util/triggerEvent';\nimport EVENTS from '../events.js';\n\nconst logger = getLogger('stackTools:stackPrefetch');\n\nconst toolName = 'stackPrefetch';\nconst requestType = 'prefetch';\n\nlet configuration = {\n maxImagesToPrefetch: Infinity,\n preserveExistingPool: false,\n};\n\nlet resetPrefetchTimeout;\nconst resetPrefetchDelay = 10;\n\nfunction range(lowEnd, highEnd) {\n // Javascript version of Python's range function\n // http://stackoverflow.com/questions/3895478/does-javascript-have-a-method-like-range-to-generate-an-array-based-on-suppl\n lowEnd = Math.round(lowEnd) || 0;\n highEnd = Math.round(highEnd) || 0;\n\n const arr = [];\n let c = highEnd - lowEnd + 1;\n\n if (c <= 0) {\n return arr;\n }\n\n while (c--) {\n arr[c] = highEnd--;\n }\n\n return arr;\n}\n\nconst max = function(arr) {\n return Math.max.apply(null, arr);\n};\n\nconst min = function(arr) {\n return Math.min.apply(null, arr);\n};\n\nfunction nearestIndex(arr, x) {\n // Return index of nearest values in array\n // http://stackoverflow.com/questions/25854212/return-index-of-nearest-values-in-an-array\n const l = [];\n const h = [];\n\n arr.forEach(function(v) {\n if (v < x) {\n l.push(v);\n } else if (v > x) {\n h.push(v);\n }\n });\n\n return {\n low: arr.indexOf(max(l)),\n high: arr.indexOf(min(h)),\n };\n}\n\nfunction prefetch(element) {\n // Check to make sure stack data exists\n const stackData = getToolState(element, 'stack');\n\n if (!stackData || !stackData.data || !stackData.data.length) {\n return;\n }\n\n const stack = stackData.data[0];\n\n // Get the stackPrefetch tool data\n const stackPrefetchData = getToolState(element, toolName);\n\n if (!stackPrefetchData) {\n return;\n }\n\n const stackPrefetch = stackPrefetchData.data[0] || {};\n\n // If all the requests are complete, disable the stackPrefetch tool\n if (\n !stackPrefetch.indicesToRequest ||\n !stackPrefetch.indicesToRequest.length\n ) {\n stackPrefetch.enabled = false;\n }\n\n // Make sure the tool is still enabled\n if (stackPrefetch.enabled === false) {\n return;\n }\n\n // Remove an imageIdIndex from the list of indices to request\n // This fires when the individual image loading deferred is resolved\n function removeFromList(imageIdIndex) {\n const index = stackPrefetch.indicesToRequest.indexOf(imageIdIndex);\n\n if (index > -1) {\n // Don't remove last element if imageIdIndex not found\n stackPrefetch.indicesToRequest.splice(index, 1);\n }\n }\n\n // Remove all already cached images from the\n // IndicesToRequest array\n stackPrefetchData.data[0].indicesToRequest.sort((a, b) => a - b);\n const indicesToRequestCopy = stackPrefetch.indicesToRequest.slice();\n\n indicesToRequestCopy.forEach(function(imageIdIndex) {\n const imageId = stack.imageIds[imageIdIndex];\n\n if (!imageId) {\n return;\n }\n\n const imageLoadObject = external.cornerstone.imageCache.getImageLoadObject(\n imageId\n );\n\n if (imageLoadObject) {\n removeFromList(imageIdIndex);\n }\n });\n\n // Stop here if there are no images left to request\n // After those in the cache have been removed\n if (!stackPrefetch.indicesToRequest.length) {\n return;\n }\n\n // Clear the requestPool of prefetch requests, if needed.\n if (!configuration.preserveExistingPool) {\n requestPoolManager.clearRequestStack(requestType);\n }\n\n // Identify the nearest imageIdIndex to the currentImageIdIndex\n const nearest = nearestIndex(\n stackPrefetch.indicesToRequest,\n stack.currentImageIdIndex\n );\n\n let imageId;\n let nextImageIdIndex;\n const preventCache = false;\n\n function doneCallback(image) {\n logger.log('prefetch done: %s', image.imageId);\n const imageIdIndex = stack.imageIds.indexOf(image.imageId);\n\n removeFromList(imageIdIndex);\n\n triggerEvent(element, EVENTS.STACK_PREFETCH_IMAGE_LOADED, {\n element,\n imageId: image.imageId,\n imageIndex: imageIdIndex,\n stackPrefetch,\n stack,\n });\n\n // If there are no more images to fetch\n if (\n !(\n stackPrefetch.indicesToRequest &&\n stackPrefetch.indicesToRequest.length > 0\n )\n ) {\n triggerEvent(element, EVENTS.STACK_PREFETCH_DONE, {\n element,\n stackPrefetch,\n stack,\n });\n }\n }\n\n // Retrieve the errorLoadingHandler if one exists\n const errorLoadingHandler = loadHandlerManager.getErrorLoadingHandler(\n element\n );\n\n function failCallback(error) {\n logger.log('prefetch errored: %o', error);\n if (errorLoadingHandler) {\n errorLoadingHandler(element, imageId, error, 'stackPrefetch');\n }\n }\n\n // Prefetch images around the current image (before and after)\n let lowerIndex = nearest.low;\n let higherIndex = nearest.high;\n const imageIdsToPrefetch = [];\n\n while (\n lowerIndex >= 0 ||\n higherIndex < stackPrefetch.indicesToRequest.length\n ) {\n const currentIndex = stack.currentImageIdIndex;\n const shouldSkipLower =\n currentIndex - stackPrefetch.indicesToRequest[lowerIndex] >\n configuration.maxImagesToPrefetch;\n const shouldSkipHigher =\n stackPrefetch.indicesToRequest[higherIndex] - currentIndex >\n configuration.maxImagesToPrefetch;\n\n const shouldLoadLower = !shouldSkipLower && lowerIndex >= 0;\n const shouldLoadHigher =\n !shouldSkipHigher && higherIndex < stackPrefetch.indicesToRequest.length;\n\n if (!shouldLoadHigher && !shouldLoadLower) {\n break;\n }\n\n if (shouldLoadLower) {\n nextImageIdIndex = stackPrefetch.indicesToRequest[lowerIndex--];\n imageId = stack.imageIds[nextImageIdIndex];\n imageIdsToPrefetch.push(imageId);\n }\n\n if (shouldLoadHigher) {\n nextImageIdIndex = stackPrefetch.indicesToRequest[higherIndex++];\n imageId = stack.imageIds[nextImageIdIndex];\n imageIdsToPrefetch.push(imageId);\n }\n }\n // Load images in reverse order, by adding them at the beginning of the pool.\n for (const imageToLoad of imageIdsToPrefetch.reverse()) {\n requestPoolManager.addRequest(\n element,\n imageToLoad,\n requestType,\n preventCache,\n doneCallback,\n failCallback,\n true\n );\n }\n\n // Try to start the requestPool's grabbing procedure\n // In case it isn't already running\n requestPoolManager.startGrabbing();\n}\n\nfunction getPromiseRemovedHandler(element) {\n return function(e) {\n const eventData = e.detail;\n\n // When an imagePromise has been pushed out of the cache, re-add its index\n // It to the indicesToRequest list so that it will be retrieved later if the\n // CurrentImageIdIndex is changed to an image nearby\n let stackData;\n\n try {\n // It will throw an exception in some cases (eg: thumbnails)\n stackData = getToolState(element, 'stack');\n } catch (error) {\n return;\n }\n\n if (!stackData || !stackData.data || !stackData.data.length) {\n return;\n }\n\n const stack = stackData.data[0];\n const imageIdIndex = stack.imageIds.indexOf(eventData.imageId);\n\n // Make sure the image that was removed is actually in this stack\n // Before adding it to the indicesToRequest array\n if (imageIdIndex < 0) {\n return;\n }\n\n const stackPrefetchData = getToolState(element, toolName);\n\n if (\n !stackPrefetchData ||\n !stackPrefetchData.data ||\n !stackPrefetchData.data.length\n ) {\n return;\n }\n\n stackPrefetchData.data[0].indicesToRequest.push(imageIdIndex);\n };\n}\n\nfunction onImageUpdated(e) {\n // Start prefetching again (after a delay)\n // When the user has scrolled to a new image\n clearTimeout(resetPrefetchTimeout);\n resetPrefetchTimeout = setTimeout(function() {\n const element = e.target;\n\n // If playClip is enabled and the user loads a different series in the viewport\n // An exception will be thrown because the element will not be enabled anymore\n try {\n prefetch(element);\n } catch (error) {\n return;\n }\n }, resetPrefetchDelay);\n}\n\nfunction enable(element) {\n // Clear old prefetch data. Skipping this can cause problems when changing the series inside an element\n const stackPrefetchDataArray = getToolState(element, toolName);\n\n stackPrefetchDataArray.data = [];\n\n // First check that there is stack data available\n const stackData = getToolState(element, 'stack');\n\n if (!stackData || !stackData.data || !stackData.data.length) {\n return;\n }\n\n const stack = stackData.data[0];\n\n // Check if we are allowed to cache images in this stack\n if (stack.preventCache === true) {\n logger.warn(\n 'A stack that should not be cached was given the stackPrefetch'\n );\n\n return;\n }\n\n // Use the currentImageIdIndex from the stack as the initalImageIdIndex\n const stackPrefetchData = {\n indicesToRequest: range(0, stack.imageIds.length - 1),\n enabled: true,\n direction: 1,\n };\n\n // Remove the currentImageIdIndex from the list to request\n const indexOfCurrentImage = stackPrefetchData.indicesToRequest.indexOf(\n stack.currentImageIdIndex\n );\n\n stackPrefetchData.indicesToRequest.splice(indexOfCurrentImage, 1);\n\n addToolState(element, toolName, stackPrefetchData);\n\n prefetch(element);\n\n element.removeEventListener(\n external.cornerstone.EVENTS.NEW_IMAGE,\n onImageUpdated\n );\n element.addEventListener(\n external.cornerstone.EVENTS.NEW_IMAGE,\n onImageUpdated\n );\n\n const promiseRemovedHandler = getPromiseRemovedHandler(element);\n\n external.cornerstone.events.removeEventListener(\n external.cornerstone.EVENTS.IMAGE_CACHE_PROMISE_REMOVED,\n promiseRemovedHandler\n );\n external.cornerstone.events.addEventListener(\n external.cornerstone.EVENTS.IMAGE_CACHE_PROMISE_REMOVED,\n promiseRemovedHandler\n );\n}\n\nfunction disable(element) {\n clearTimeout(resetPrefetchTimeout);\n element.removeEventListener(\n external.cornerstone.EVENTS.NEW_IMAGE,\n onImageUpdated\n );\n\n const promiseRemovedHandler = getPromiseRemovedHandler(element);\n\n external.cornerstone.events.removeEventListener(\n external.cornerstone.EVENTS.IMAGE_CACHE_PROMISE_REMOVED,\n promiseRemovedHandler\n );\n\n const stackPrefetchData = getToolState(element, toolName);\n // If there is actually something to disable, disable it\n\n if (stackPrefetchData && stackPrefetchData.data.length) {\n stackPrefetchData.data[0].enabled = false;\n\n // Clear current prefetch requests from the requestPool\n requestPoolManager.clearRequestStack(requestType);\n }\n}\n\nfunction getConfiguration() {\n return configuration;\n}\n\nfunction setConfiguration(config) {\n configuration = config;\n\n if (config.maxSimultaneousRequests) {\n setMaxSimultaneousRequests(config.maxSimultaneousRequests);\n }\n}\n\n// Module/private exports\nconst stackPrefetch = {\n enable,\n disable,\n getConfiguration,\n setConfiguration,\n};\n\nexport default stackPrefetch;\n","import FusionRenderer from './fusionRenderer.js';\n\nconst stackRenderers = {};\n\nstackRenderers.FusionRenderer = FusionRenderer;\n\nexport default stackRenderers;\n","/**\n * Implements a frame-of-reference specific tool state management strategy. This means that\n * Measurement data are tied to a specific frame of reference UID and only visible to objects using\n * That frame-of-reference UID.\n * @public\n * @constructor newFrameOfReferenceSpecificToolStateManager\n * @memberof StateManagement\n *\n * @returns {Object} A frameOfReferenceSpecificToolStateManager instance.\n */\nfunction newFrameOfReferenceSpecificToolStateManager() {\n const toolState = {};\n\n // Here we add tool state, this is done by tools as well\n // As modules that restore saved state\n function addFrameOfReferenceSpecificToolState(\n frameOfReference,\n toolName,\n data\n ) {\n // If we don't have any tool state for this frameOfReference, add an empty object\n if (toolState.hasOwnProperty(frameOfReference) === false) {\n toolState[frameOfReference] = {};\n }\n\n const frameOfReferenceToolState = toolState[frameOfReference];\n\n // If we don't have tool state for this type of tool, add an empty object\n if (frameOfReferenceToolState.hasOwnProperty(toolName) === false) {\n frameOfReferenceToolState[toolName] = {\n data: [],\n };\n }\n\n const toolData = frameOfReferenceToolState[toolName];\n\n // Finally, add this new tool to the state\n toolData.data.push(data);\n }\n\n // Here you can get state - used by tools as well as modules\n // That save state persistently\n function getFrameOfReferenceSpecificToolState(frameOfReference, toolName) {\n // If we don't have any tool state for this frame of reference, return undefined\n if (toolState.hasOwnProperty(frameOfReference) === false) {\n return;\n }\n\n const frameOfReferenceToolState = toolState[frameOfReference];\n\n // If we don't have tool state for this type of tool, return undefined\n if (frameOfReferenceToolState.hasOwnProperty(toolName) === false) {\n return;\n }\n\n const toolData = frameOfReferenceToolState[toolName];\n\n return toolData;\n }\n\n function removeFrameOfReferenceSpecificToolState(\n frameOfReference,\n toolName,\n data\n ) {\n // If we don't have any tool state for this frame of reference, return undefined\n if (toolState.hasOwnProperty(frameOfReference) === false) {\n return;\n }\n\n const frameOfReferenceToolState = toolState[frameOfReference];\n\n // If we don't have tool state for this type of tool, return undefined\n if (frameOfReferenceToolState.hasOwnProperty(toolName) === false) {\n return;\n }\n\n const toolData = frameOfReferenceToolState[toolName];\n // Find this tool data\n let indexOfData = -1;\n\n for (let i = 0; i < toolData.data.length; i++) {\n if (toolData.data[i] === data) {\n indexOfData = i;\n }\n }\n\n if (indexOfData !== -1) {\n toolData.data.splice(indexOfData, 1);\n }\n }\n\n return {\n get: getFrameOfReferenceSpecificToolState,\n add: addFrameOfReferenceSpecificToolState,\n remove: removeFrameOfReferenceSpecificToolState,\n };\n}\n\n// A global frameOfReferenceSpecificToolStateManager - the most common case is to share 3d information\n// Between stacks of images\nconst globalFrameOfReferenceSpecificToolStateManager = newFrameOfReferenceSpecificToolStateManager();\n\nexport {\n newFrameOfReferenceSpecificToolStateManager,\n globalFrameOfReferenceSpecificToolStateManager,\n};\n","import external from '../externalModules.js';\n\n/**\n * Implements an imageId specific tool state management strategy. This means that\n * Measurements data is tied to a specific imageId and only visible for enabled elements\n * That are displaying that imageId.\n * @public\n * @constructor newImageIdSpecificToolStateManager\n * @memberof StateManagement\n *\n * @returns {Object} An imageIdSpecificToolStateManager instance.\n */\nfunction newImageIdSpecificToolStateManager() {\n let toolState = {};\n\n // Here we add tool state, this is done by tools as well\n // As modules that restore saved state\n\n function saveImageIdToolState(imageId) {\n return toolState[imageId];\n }\n\n function restoreImageIdToolState(imageId, imageIdToolState) {\n toolState[imageId] = imageIdToolState;\n }\n\n function saveToolState() {\n return toolState;\n }\n\n function restoreToolState(savedToolState) {\n toolState = savedToolState;\n }\n\n // Here we add tool state, this is done by tools as well\n // As modules that restore saved state\n function addElementToolState(element, toolName, data) {\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n // If we don't have an image for this element exit early\n if (!enabledElement.image) {\n return;\n }\n addImageIdToolState(enabledElement.image.imageId, toolName, data);\n }\n\n function addImageIdToolState(imageId, toolName, data) {\n // If we don't have any tool state for this imageId, add an empty object\n if (toolState.hasOwnProperty(imageId) === false) {\n toolState[imageId] = {};\n }\n\n const imageIdToolState = toolState[imageId];\n\n // If we don't have tool state for this tool name, add an empty object\n if (imageIdToolState.hasOwnProperty(toolName) === false) {\n imageIdToolState[toolName] = {\n data: [],\n };\n }\n\n const toolData = imageIdToolState[toolName];\n\n // Finally, add this new tool to the state\n toolData.data.push(data);\n }\n\n function getElementToolState(element, toolName) {\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n // If the element does not have an image return undefined.\n if (!enabledElement.image) {\n return;\n }\n\n return getImageIdToolState(enabledElement.image.imageId, toolName);\n }\n\n // Here you can get state - used by tools as well as modules\n // That save state persistently\n function getImageIdToolState(imageId, toolName) {\n // If we don't have any tool state for this imageId, return undefined\n if (toolState.hasOwnProperty(imageId) === false) {\n return;\n }\n\n const imageIdToolState = toolState[imageId];\n\n // If we don't have tool state for this tool name, return undefined\n if (imageIdToolState.hasOwnProperty(toolName) === false) {\n return;\n }\n\n return imageIdToolState[toolName];\n }\n\n // Clears all tool data from this toolStateManager.\n function clearElementToolState(element) {\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n if (!enabledElement.image) {\n return;\n }\n clearImageIdToolState(enabledElement.image.imageId);\n }\n\n function clearImageIdToolState(imageId) {\n if (toolState.hasOwnProperty(imageId) === false) {\n return;\n }\n\n delete toolState[imageId];\n }\n\n return {\n get: getElementToolState,\n add: addElementToolState,\n clear: clearElementToolState,\n getImageIdToolState,\n addImageIdToolState,\n clearImageIdToolState,\n saveImageIdToolState,\n restoreImageIdToolState,\n saveToolState,\n restoreToolState,\n toolState,\n };\n}\n\n// A global imageIdSpecificToolStateManager - the most common case is to share state between all\n// Visible enabled images\nconst globalImageIdSpecificToolStateManager = newImageIdSpecificToolStateManager();\n\nexport {\n newImageIdSpecificToolStateManager,\n globalImageIdSpecificToolStateManager,\n};\n","import external from '../externalModules.js';\n\nconst _DEFAULT_LOAD_HANDLER = 'DEFAULT';\n\nconst defaultStartLoadHandler = {};\nconst defaultEndLoadHandler = {};\nconst defaultErrorLoadingHandler = {};\n\nfunction _getUUIDFromElement(element) {\n if (!element) {\n return _DEFAULT_LOAD_HANDLER;\n }\n const uuid = external.cornerstone.getEnabledElement(element).uuid;\n\n if (!uuid) {\n throw new Error('Something went wrong when getting uuid from element');\n }\n\n return uuid;\n}\n\nfunction setStartLoadHandler(handler, element = undefined) {\n if (!handler) {\n throw new Error('The Handler function must be defined');\n }\n const uuid = _getUUIDFromElement(element);\n\n defaultStartLoadHandler[uuid] = handler;\n}\n\nfunction getStartLoadHandler(element) {\n const uuid = _getUUIDFromElement(element);\n\n return (\n defaultStartLoadHandler[uuid] ||\n defaultStartLoadHandler[_DEFAULT_LOAD_HANDLER]\n );\n}\n\nfunction setEndLoadHandler(handler, element = undefined) {\n if (!handler) {\n throw new Error('The Handler function must be defined');\n }\n const uuid = _getUUIDFromElement(element);\n\n defaultEndLoadHandler[uuid] = handler;\n}\n\nfunction getEndLoadHandler(element) {\n const uuid = _getUUIDFromElement(element);\n\n return (\n defaultEndLoadHandler[uuid] || defaultEndLoadHandler[_DEFAULT_LOAD_HANDLER]\n );\n}\n\nfunction setErrorLoadingHandler(handler, element = undefined) {\n if (!handler) {\n throw new Error('The Handler function must be defined');\n }\n const uuid = _getUUIDFromElement(element);\n\n defaultErrorLoadingHandler[uuid] = handler;\n}\n\nfunction getErrorLoadingHandler(element) {\n const uuid = _getUUIDFromElement(element);\n\n return (\n defaultErrorLoadingHandler[uuid] ||\n defaultErrorLoadingHandler[_DEFAULT_LOAD_HANDLER]\n );\n}\n\nfunction removeHandlers(element) {\n const uuid = _getUUIDFromElement(element);\n\n delete defaultStartLoadHandler[uuid];\n delete defaultEndLoadHandler[uuid];\n delete defaultErrorLoadingHandler[uuid];\n}\n\nconst loadHandlerManager = {\n setStartLoadHandler,\n getStartLoadHandler,\n setEndLoadHandler,\n getEndLoadHandler,\n setErrorLoadingHandler,\n getErrorLoadingHandler,\n removeHandlers,\n};\n\nexport default loadHandlerManager;\n","import { globalImageIdSpecificToolStateManager } from './imageIdSpecificStateManager.js';\nimport {\n getElementToolStateManager,\n setElementToolStateManager,\n} from './toolState.js';\n\n/**\n * Implements an Stack specific tool state management strategy. This means\n * That tool data is shared between all imageIds in a given stack.\n * @public\n * @constructor newStackSpecificToolStateManager\n * @memberof StateManagement\n *\n * @param {string[]} toolNames List of tools that should have state shared across a stack (a display set) of images\n * @param {Object} oldStateManager The imageIdSpecificStateManager.\n * @returns {Object} A stackSpecificToolStateManager instance.\n */\nfunction newStackSpecificToolStateManager(toolNames, oldStateManager) {\n let toolState = {};\n\n function saveToolState() {\n return toolState;\n }\n\n function restoreToolState(stackToolState) {\n toolState = stackToolState;\n }\n\n // Here we add tool state, this is done by tools as well\n // As modules that restore saved state\n function addStackSpecificToolState(element, toolName, data) {\n // If this is a tool type to apply to the stack, do so\n if (toolNames.indexOf(toolName) >= 0) {\n // If we don't have tool state for this tool name, add an empty object\n if (toolState.hasOwnProperty(toolName) === false) {\n toolState[toolName] = {\n data: [],\n };\n }\n\n const toolData = toolState[toolName];\n\n // Finally, add this new tool to the state\n toolData.data.push(data);\n } else {\n // Call the imageId specific tool state manager\n return oldStateManager.add(element, toolName, data);\n }\n }\n\n // Here you can get state - used by tools as well as modules\n // That save state persistently\n function getStackSpecificToolState(element, toolName) {\n // If this is a tool type to apply to the stack, do so\n if (toolNames.indexOf(toolName) >= 0) {\n // If we don't have tool state for this tool name, add an empty object\n if (toolState.hasOwnProperty(toolName) === false) {\n toolState[toolName] = {\n data: [],\n };\n }\n\n return toolState[toolName];\n }\n\n // Call the imageId specific tool state manager\n return oldStateManager.get(element, toolName);\n }\n\n const stackSpecificToolStateManager = {\n get: getStackSpecificToolState,\n add: addStackSpecificToolState,\n saveToolState,\n restoreToolState,\n toolState,\n };\n\n return stackSpecificToolStateManager;\n}\n\nconst stackStateManagers = [];\n\nfunction addStackStateManager(element, otherTools) {\n let oldStateManager = getElementToolStateManager(element);\n\n if (!oldStateManager) {\n oldStateManager = globalImageIdSpecificToolStateManager;\n }\n\n let stackTools = [\n 'stack',\n 'stackPrefetch',\n 'playClip',\n 'volume',\n 'slab',\n 'referenceLines',\n 'crosshairs',\n 'stackRenderer',\n ];\n\n if (otherTools) {\n stackTools = stackTools.concat(otherTools);\n }\n\n const stackSpecificStateManager = newStackSpecificToolStateManager(\n stackTools,\n oldStateManager\n );\n\n stackStateManagers.push(stackSpecificStateManager);\n setElementToolStateManager(element, stackSpecificStateManager);\n}\n\nconst stackSpecificStateManager = {\n newStackSpecificToolStateManager,\n addStackStateManager,\n};\n\nexport {\n stackSpecificStateManager,\n newStackSpecificToolStateManager,\n addStackStateManager,\n};\n","let defaultFontSize = 15,\n defaultFont = `${defaultFontSize}px Arial`,\n defaultBackgroundColor = 'transparent';\n\nfunction setFont(font) {\n defaultFont = font;\n}\n\nfunction getFont() {\n return defaultFont;\n}\n\nfunction setFontSize(fontSize) {\n defaultFontSize = fontSize;\n}\n\nfunction getFontSize() {\n return defaultFontSize;\n}\n\nfunction setBackgroundColor(backgroundColor) {\n defaultBackgroundColor = backgroundColor;\n}\n\nfunction getBackgroundColor() {\n return defaultBackgroundColor;\n}\n\nconst textStyle = {\n setFont,\n getFont,\n setFontSize,\n getFontSize,\n setBackgroundColor,\n getBackgroundColor,\n};\n\nexport default textStyle;\n","let defaultColor = 'white',\n activeColor = 'greenyellow',\n fillColor = 'transparent';\n\nfunction setFillColor(color) {\n fillColor = color;\n}\n\nfunction getFillColor() {\n return fillColor;\n}\n\nfunction setToolColor(color) {\n defaultColor = color;\n}\n\nfunction getToolColor() {\n return defaultColor;\n}\n\nfunction setActiveColor(color) {\n activeColor = color;\n}\n\nfunction getActiveColor() {\n return activeColor;\n}\n\nfunction getColorIfActive(data) {\n if (data.color) {\n return data.color;\n }\n\n return data.active ? activeColor : defaultColor;\n}\n\nconst toolColors = {\n setFillColor,\n getFillColor,\n setToolColor,\n getToolColor,\n setActiveColor,\n getActiveColor,\n getColorIfActive,\n};\n\nexport default toolColors;\n","let coordsData;\n\nfunction setCoords(eventData) {\n coordsData = eventData.currentPoints.canvas;\n}\n\nfunction getCoords() {\n return coordsData;\n}\n\nconst toolCoordinates = {\n setCoords,\n getCoords,\n};\n\nexport default toolCoordinates;\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport { globalImageIdSpecificToolStateManager } from './imageIdSpecificStateManager.js';\nimport triggerEvent from '../util/triggerEvent.js';\nimport uuidv4 from '../util/uuidv4.js';\n\n/**\n * Returns the toolstate for a specific element.\n * @public\n * @function getElementToolStateManager\n *\n * @param {HTMLElement} element The element.\n * @returns {Object} The toolState.\n */\nfunction getElementToolStateManager(element) {\n const enabledElement = external.cornerstone.getEnabledElement(element);\n // If the enabledElement has no toolStateManager, create a default one for it\n // NOTE: This makes state management element specific\n\n if (enabledElement.toolStateManager === undefined) {\n enabledElement.toolStateManager = globalImageIdSpecificToolStateManager;\n }\n\n return enabledElement.toolStateManager;\n}\n\n/**\n * Adds tool state to the toolStateManager, this is done by tools as well\n * as modules that restore saved state.\n * @public\n * @method addToolState\n *\n * @param {HTMLElement} element The element.\n * @param {string} toolName The name of the tool the state belongs to.\n * @param {Object} measurementData The data to store in the state.\n * @returns {undefined}\n */\nfunction addToolState(element, toolName, measurementData) {\n const toolStateManager = getElementToolStateManager(element);\n\n measurementData.uuid = measurementData.uuid || uuidv4();\n toolStateManager.add(element, toolName, measurementData);\n\n const eventType = EVENTS.MEASUREMENT_ADDED;\n const eventData = {\n toolName,\n toolType: toolName, // Deprecation notice: toolType will be replaced by toolName\n element,\n measurementData,\n };\n\n triggerEvent(element, eventType, eventData);\n}\n\n/**\n * Returns tool specific state of an element. Used by tools as well as modules\n * that save state persistently\n * @export\n * @public\n * @method\n * @name getToolState\n *\n * @param {HTMLElement} element The element.\n * @param {string} toolName The name of the tool the state belongs to.\n * @returns {Object} The element's state for the given toolName.\n */\nfunction getToolState(element, toolName) {\n const toolStateManager = getElementToolStateManager(element);\n\n return toolStateManager.get(element, toolName);\n}\n\n/**\n * Removes specific tool state from the toolStateManager.\n * @public\n * @method removeToolState\n *\n * @param {HTMLElement} element The element.\n * @param {string} toolName The name of the tool the state belongs to.\n * @param {Object} data The data to remove from the toolStateManager.\n * @returns {undefined}\n */\nfunction removeToolState(element, toolName, data) {\n const toolStateManager = getElementToolStateManager(element);\n const toolData = toolStateManager.get(element, toolName);\n\n if (!toolData || !toolData.data || !toolData.data.length) {\n return;\n }\n\n // Find this tool data\n let indexOfData = -1;\n\n for (let i = 0; i < toolData.data.length; i++) {\n if (toolData.data[i] === data) {\n indexOfData = i;\n }\n }\n\n if (indexOfData !== -1) {\n toolData.data.splice(indexOfData, 1);\n\n const eventType = EVENTS.MEASUREMENT_REMOVED;\n const eventData = {\n toolName,\n toolType: toolName, // Deprecation notice: toolType will be replaced by toolName\n element,\n measurementData: data,\n };\n\n triggerEvent(element, eventType, eventData);\n }\n}\n\n/**\n * Removes all toolState from the toolStateManager corresponding to\n * the toolName and element.\n * @public\n * @method clearToolState\n *\n * @param {HTMLElement} element The element.\n * @param {string} toolName The name of the tool the state belongs to.\n * @returns {undefined}\n */\nfunction clearToolState(element, toolName) {\n const toolStateManager = getElementToolStateManager(element);\n const toolData = toolStateManager.get(element, toolName);\n\n // If any toolData actually exists, clear it\n if (toolData !== undefined) {\n toolData.data = [];\n }\n}\n\n/**\n * Sets the tool state manager for an element\n * @public\n * @method setElementToolStateManager\n *\n * @param {HTMLElement} element The element.\n * @param {Object} toolStateManager The toolStateManager.\n * @returns {undefined}\n */\nfunction setElementToolStateManager(element, toolStateManager) {\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n enabledElement.toolStateManager = toolStateManager;\n}\n\nexport {\n addToolState,\n getToolState,\n removeToolState,\n clearToolState,\n setElementToolStateManager,\n getElementToolStateManager,\n};\n","let defaultWidth = 1,\n activeWidth = 2;\n\nfunction setToolWidth(width) {\n defaultWidth = width;\n}\n\nfunction getToolWidth() {\n return defaultWidth;\n}\n\nfunction setActiveWidth(width) {\n activeWidth = width;\n}\n\nfunction getActiveWidth() {\n return activeWidth;\n}\n\nconst toolStyle = {\n setToolWidth,\n getToolWidth,\n setActiveWidth,\n getActiveWidth,\n};\n\nexport default toolStyle;\n","import store, { getModule } from './index.js';\nimport getToolForElement from './getToolForElement.js';\nimport { getLogger } from '../util/logger.js';\n\nconst logger = getLogger('addTool');\n\n/**\n * Adds a tool to an enabled element.\n *\n * @public\n * @function addToolForElement\n * @memberof CornerstoneTools\n *\n * @param {HTMLElement} element The element to add the tool to.\n * @param {BaseTool} ApiTool The tool to add to the element.\n * @param {Object} [props] Override the default tool props\n * @returns {undefined}\n */\nconst addToolForElement = function(element, ApiTool, props) {\n // Instantiating the tool here makes it harder to accidentally add\n // The same tool (by reference) for multiple elements (which would reassign the tool\n // To a new element).\n const tool = new ApiTool(props);\n const toolAlreadyAddedToElement = getToolForElement(element, tool.name);\n\n if (toolAlreadyAddedToElement) {\n logger.warn('%s has already been added to the target element', tool.name);\n\n return;\n }\n\n tool.element = element;\n store.state.tools.push(tool);\n};\n\n/**\n * Adds a tool to all enabled element.\n *\n * @public\n * @function addTool\n * @memberof CornerstoneTools\n *\n * @param {BaseTool} ApiTool The tool to add to each element.\n * @param {Object} [props] Override the default tool configuration\n * @returns {undefined}\n */\nconst addTool = function(ApiTool, props) {\n _addToolGlobally(ApiTool, props);\n store.state.enabledElements.forEach(element => {\n addToolForElement(element, ApiTool, props);\n });\n};\n\n/**\n * Adds tool with matching name from globally registered tools.\n * Requires `globalToolSyncEnabled` to be set to true\n *\n * @private\n * @function addToolGlobally\n *\n * @param {BaseTool} ApiTool\n * @param {Object} [props] Override the default tool configuration\n * @returns {undefined}\n */\nconst _addToolGlobally = function(ApiTool, props) {\n const { configuration } = getModule('globalConfiguration');\n\n if (!configuration.globalToolSyncEnabled) {\n return;\n }\n\n const tool = new ApiTool(props);\n const toolAlreadyAddedGlobally =\n store.state.globalTools[tool.name] !== undefined;\n\n if (toolAlreadyAddedGlobally) {\n logger.warn('%s has already been added globally', tool.name);\n\n return;\n }\n\n store.state.globalTools[tool.name] = {\n tool: ApiTool,\n props,\n activeBindings: [],\n };\n};\n\nexport { addTool, addToolForElement };\n","import BaseAnnotationTool from '../tools/base/BaseAnnotationTool.js';\nimport BaseBrushTool from '../tools/base/BaseBrushTool.js';\n\n/**\n * Filters an array of tools, returning only tools which are active or passive.\n * @export\n * @public\n * @method\n * @name filterToolsUseableWithMultiPartTools\n *\n * @param {Object[]} tools The input tool array.\n * @returns {Object[]} The filtered array.\n */\nexport default function(tools) {\n return tools.filter(\n tool =>\n !tool.isMultiPartTool &&\n !(tool instanceof BaseAnnotationTool) &&\n !(tool instanceof BaseBrushTool)\n );\n}\n","/**\n * Filters an array of tools, returning only tools which are active.\n * @export\n * @public\n * @method\n * @name getActiveToolsForElement\n *\n * @param {HTMLElement} element The element.\n * @param {Object[]} tools The input tool array.\n * @param {string} handlerType The input type being queried.\n * @returns {Object[]} The filtered array.\n */\nexport default function(element, tools, handlerType) {\n return tools.filter(\n tool =>\n tool.element === element &&\n tool.mode === 'active' &&\n (handlerType === undefined || tool.options[`is${handlerType}Active`])\n );\n}\n","/**\n * Filters an array of tools, returning only tools which are active or passive.\n * @export\n * @public\n * @method\n * @name getInteractiveToolsForElement\n *\n * @param {HTMLElement} element The element.\n * @param {Object[]} tools The input tool array.\n * @returns {Object[]} The filtered array.\n */\nexport default function(element, tools) {\n return tools.filter(\n tool =>\n tool.element === element &&\n (tool.mode === 'active' || tool.mode === 'passive')\n );\n}\n","import { state } from './index.js';\n\n/**\n * Returns the tool instance attached to the element.\n * @export\n * @public\n * @method\n * @name getToolForElement\n *\n * @param {HTMLElement} element The element.\n * @param {string} name The tool's name.\n * @returns {Object} The tool instance.\n */\nexport default function(element, name) {\n return state.tools.find(\n tool => tool.element === element && tool.name === name\n );\n}\n","import { getToolState } from './../stateManagement/toolState.js';\n\n/**\n * Filters an array of tools, returning only tools which have annotation data.\n * @export\n * @public\n * @method\n * @name getToolsWithDataForElement\n *\n * @param {HTMLElement} element The element.\n * @param {Object[]} tools The input tool array.\n * @returns {Object[]} The filtered array.\n */\nexport default function(element, tools) {\n return tools.filter(tool => {\n const toolState = getToolState(element, tool.name);\n\n return toolState && toolState.data.length > 0;\n });\n}\n","import { state } from './index.js';\nimport { getToolState } from '../stateManagement/toolState.js';\nimport getHandleNearImagePoint from '../manipulators/getHandleNearImagePoint.js';\n\n/**\n * Filters an array of tools, returning only tools with moveable handles at the\n * mouse location.\n *\n * @public\n * @function getToolsWithMoveableHandles\n *\n * @param {HTMLElement} element The element\n * @param {Object[]} tools The input tool array.\n * @param {Object} coords The coordinates of the mouse position.\n * @param {string} [interactionType=mouse]\n * @returns {Object[]} The filtered array.\n */\nexport default function(element, tools, coords, interactionType = 'mouse') {\n const proximity =\n interactionType === 'mouse' ? state.clickProximity : state.touchProximity;\n\n return tools.filter(tool => {\n const toolState = getToolState(element, tool.name);\n\n for (let i = 0; i < toolState.data.length; i++) {\n if (\n getHandleNearImagePoint(\n element,\n toolState.data[i].handles,\n coords,\n proximity\n ) !== undefined\n ) {\n return true;\n }\n }\n\n return false;\n });\n}\n","// Modules\nimport segmentation from './modules/segmentationModule';\nimport manipulatorState from './modules/manipulatorStateModule';\nimport cursor from './modules/cursorModule.js';\nimport globalConfiguration from './modules/globalConfigurationModule.js';\nimport external from '../externalModules.js';\nimport { getLogger } from '../util/logger.js';\n\nconst logger = getLogger('store:modules:storeLogger');\n\nexport const state = {\n // Global\n globalTools: {},\n globalToolChangeHistory: [],\n // Tracking\n enabledElements: [],\n tools: [],\n isToolLocked: false,\n activeMultiPartTool: null,\n mousePositionImage: {},\n // Settings\n clickProximity: 6,\n touchProximity: 10,\n handleRadius: 6,\n deleteIfHandleOutsideImage: true,\n preventHandleOutsideImage: false,\n // Cursor\n svgCursorUrl: null,\n //\n};\n\nexport const getters = {\n mouseTools: () =>\n state.tools.filter(tool =>\n tool.supportedInteractionTypes.includes('Mouse')\n ),\n touchTools: () =>\n state.tools.filter(tool =>\n tool.supportedInteractionTypes.includes('Touch')\n ),\n enabledElementByUID: enabledElementUID =>\n state.enabledElements.find(\n element =>\n external.cornerstone.getEnabledElement(element).uuid ===\n enabledElementUID\n ),\n};\n\nexport const modules = {\n segmentation,\n cursor,\n globalConfiguration,\n manipulatorState,\n};\n\nexport function getModule(moduleName) {\n return modules[moduleName];\n}\n\nexport default {\n modules,\n state,\n getters,\n};\n","import {\n mouseEventListeners,\n wheelEventListener,\n touchEventListeners,\n} from '../../eventListeners/index.js';\nimport {\n imageRenderedEventDispatcher,\n mouseToolEventDispatcher,\n newImageEventDispatcher,\n touchToolEventDispatcher,\n} from '../../eventDispatchers/index.js';\nimport { addToolForElement } from './../addTool.js';\nimport {\n setToolActiveForElement,\n setToolPassiveForElement,\n setToolEnabledForElement,\n setToolDisabledForElement,\n} from './../setToolMode.js';\nimport store, { getModule } from '../index.js';\nimport { getLogger } from '../../util/logger.js';\n\nconst logger = getLogger('internals:addEnabledElement');\n\n/**\n * Element Enabled event.\n *\n * @event Cornerstone#ElementEnabled\n * @type {Object}\n * @property {string} type\n * @property {Object} detail\n * @property {HTMLElement} detail.element - The element being enabled.\n */\n\n/* TODO: It would be nice if this automatically added \"all tools\"\n * To the enabledElement that already exist on all other tools.\n * A half-measure might be a new method to \"duplicate\" the tool\n * Configuration for an existing enabled element\n * We may need to also save/store the original class/constructor per tool\n * To accomplish this\n */\n/**\n * Adds an enabledElement to our store.\n * @export\n * @private\n * @method\n * @name addEnabledElement\n * @param {Cornerstone#ElementEnabled} elementEnabledEvt\n * @listens Cornerstone#ElementEnabled\n * @returns {void}\n */\nexport default function(elementEnabledEvt) {\n logger.log('EVENT:ELEMENT_ENABLED');\n const enabledElement = elementEnabledEvt.detail.element;\n\n // Dispatchers\n imageRenderedEventDispatcher.enable(enabledElement);\n newImageEventDispatcher.enable(enabledElement);\n\n const { configuration } = getModule('globalConfiguration');\n\n // Mouse\n if (configuration.mouseEnabled) {\n mouseEventListeners.enable(enabledElement);\n wheelEventListener.enable(enabledElement);\n mouseToolEventDispatcher.enable(enabledElement);\n }\n\n // Touch\n if (configuration.touchEnabled) {\n touchEventListeners.enable(enabledElement);\n touchToolEventDispatcher.enable(enabledElement);\n }\n\n // State\n _addEnabledElement(enabledElement);\n}\n\n/**\n * Adds the enabled element to the store.\n * @private\n * @method\n * @param {HTMLElement} enabledElement\n * @returns {void}\n */\nconst _addEnabledElement = function(enabledElement) {\n store.state.enabledElements.push(enabledElement);\n if (store.modules) {\n _initModulesOnElement(enabledElement);\n }\n _addGlobalToolsToElement(enabledElement);\n _repeatGlobalToolHistory(enabledElement);\n};\n\n/**\n * Iterate over our store's modules. If the module has an `enabledElementCallback`\n * call it and pass it a reference to our enabled element.\n * @private\n * @method\n * @param {Object} enabledElement\n * @returns {void}\n */\nfunction _initModulesOnElement(enabledElement) {\n const modules = store.modules;\n\n Object.keys(modules).forEach(function(key) {\n if (typeof modules[key].enabledElementCallback === 'function') {\n modules[key].enabledElementCallback(enabledElement);\n }\n });\n}\n\n/**\n * Iterate over our stores globalTools adding each one to `enabledElement`\n * @private\n * @method\n * @param {HTMLElement} enabledElement\n * @returns {void}\n */\nfunction _addGlobalToolsToElement(enabledElement) {\n const { configuration } = getModule('globalConfiguration');\n\n if (!configuration.globalToolSyncEnabled) {\n return;\n }\n\n Object.keys(store.state.globalTools).forEach(function(key) {\n const { tool, props } = store.state.globalTools[key];\n\n addToolForElement(enabledElement, tool, props);\n });\n}\n\n/**\n * Iterate over the globalToolChangeHistory and apply each `historyEvent`\n * to the supplied `enabledElement`.\n * @private\n * @method\n * @param {HTMLElement} enabledElement\n * @returns {void}\n */\nfunction _repeatGlobalToolHistory(enabledElement) {\n const { configuration } = getModule('globalConfiguration');\n\n if (!configuration.globalToolSyncEnabled) {\n return;\n }\n\n const setToolModeFns = {\n active: setToolActiveForElement,\n passive: setToolPassiveForElement,\n enabled: setToolEnabledForElement,\n disabled: setToolDisabledForElement,\n };\n\n store.state.globalToolChangeHistory.forEach(historyEvent => {\n const args = historyEvent.args.slice(0);\n\n args.unshift(enabledElement);\n setToolModeFns[historyEvent.mode].apply(null, args);\n });\n}\n","import {\n mouseEventListeners,\n wheelEventListener,\n touchEventListeners,\n} from '../../eventListeners/index.js';\nimport {\n imageRenderedEventDispatcher,\n mouseToolEventDispatcher,\n newImageEventDispatcher,\n touchToolEventDispatcher,\n} from '../../eventDispatchers/index.js';\nimport store, { getModule } from '../index.js';\nimport { getLogger } from '../../util/logger.js';\nimport loadHandlerManager from '../../stateManagement/loadHandlerManager.js';\n\nconst logger = getLogger('internals:removeEnabledElement');\n\n/**\n * Element Disabled event.\n *\n * @event Cornerstone#ElementDisabled\n * @type {Object}\n * @property {string} type\n * @property {Object} detail\n * @property {HTMLElement} detail.element - The element being disabled.\n */\n\n/**\n * Removes an enabledElement from our store, and all associated tools that were added to it.\n * @export\n * @private\n * @method\n * @name removeEnabledElement\n * @param {Cornerstone#ElementDisabled} elementDisabledEvt\n * @listens Cornerstone#ElementDisabled\n * @returns {void}\n */\nexport default function(elementDisabledEvt) {\n logger.log('EVENT:ELEMENT_DISABLED');\n const enabledElement = elementDisabledEvt.detail.element;\n const { configuration } = getModule('globalConfiguration');\n\n // Dispatchers\n imageRenderedEventDispatcher.disable(enabledElement);\n newImageEventDispatcher.disable(enabledElement);\n\n // Mouse\n if (configuration.mouseEnabled) {\n mouseEventListeners.disable(enabledElement);\n wheelEventListener.disable(enabledElement);\n mouseToolEventDispatcher.disable(enabledElement);\n }\n\n // Touch\n if (configuration.touchEnabled) {\n touchEventListeners.disable(enabledElement);\n touchToolEventDispatcher.disable(enabledElement);\n }\n\n // State\n _removeAllToolsForElement(enabledElement);\n _removeEnabledElement(enabledElement);\n _removeLoadHandlers(enabledElement);\n}\n\n/**\n * Remove all tools associated with enabled element.\n * @private\n * @method\n * @param {HTMLElement} enabledElement\n * @returns {void}\n */\nconst _removeAllToolsForElement = function(enabledElement) {\n // Note: We may want to `setToolDisabled` before removing from store\n // Or take other action to remove any lingering eventListeners/state\n store.state.tools = store.state.tools.filter(\n tool => tool.element !== enabledElement\n );\n};\n\n/**\n * Remove the enabled element from the store if it exists.\n * @private\n * @method\n * @param {HTMLElement} enabledElement\n * @returns {void}\n */\nconst _removeEnabledElement = function(enabledElement) {\n if (store.modules) {\n _cleanModulesOnElement(enabledElement);\n }\n\n const foundElementIndex = store.state.enabledElements.findIndex(\n element => element === enabledElement\n );\n\n if (foundElementIndex > -1) {\n store.state.enabledElements.splice(foundElementIndex, 1);\n } else {\n logger.warn('unable to remove element');\n }\n};\n\n/**\n * Remove load handler for the element\n * @private\n * @method\n * @param {HTMLElement} element\n * @returns {void}\n */\nconst _removeLoadHandlers = function(element) {\n loadHandlerManager.removeHandlers(element);\n};\n\n/**\n * Iterate over our store's modules. If the module has a\n * `removeEnabledElementCallback` call it and clean up unneeded metadata.\n * @private\n * @method\n * @param {Object} enabledElement\n * @returns {void}\n */\nfunction _cleanModulesOnElement(enabledElement) {\n const modules = store.modules;\n\n Object.keys(modules).forEach(function(key) {\n if (typeof modules[key].removeEnabledElementCallback === 'function') {\n modules[key].removeEnabledElementCallback(enabledElement);\n }\n });\n}\n","import getToolForElement from './getToolForElement.js';\n\n/**\n * Queries if a tool is active on the specified element.\n * @export\n * @public\n * @method\n * @name isToolActiveForElement\n *\n * @param {HTMLElement} element The element being queried.\n * @param {string} name The name of the tool.\n * @returns {boolean} True if the tool is active.\n */\nexport default function(element, name) {\n const tool = getToolForElement(element, name);\n\n return tool.mode === 'active';\n}\n","import external from '../../externalModules';\n\nconst configuration = {\n iconSize: 16,\n viewBox: {\n x: 16,\n y: 16,\n },\n mousePoint: {\n x: 8,\n y: 8,\n },\n mousePointerGroupString: `\n