{"version":3,"sources":["webpack:///./node_modules/vue-plotly/dist/vue-plotly.umd.js","webpack:///./node_modules/vuetify/lib/components/VMenu/index.js","webpack:///./node_modules/vuetify/lib/components/VChip/index.js","webpack:///./node_modules/vuetify/lib/components/VThemeProvider/VThemeProvider.js","webpack:///./node_modules/vuetify/lib/components/VCard/index.js","webpack:///./node_modules/vuetify/lib/components/VCheckbox/VSimpleCheckbox.js","webpack:///./src/views/camion_graficos.vue?6123","webpack:///src/views/F:/docker/MOS-fix/sce-front-0.1/src/views/camion_graficos.vue","webpack:///./src/views/camion_graficos.vue?381e","webpack:///./src/views/camion_graficos.vue","webpack:///./node_modules/vuetify/lib/components/VCard/VCard.js","webpack:///./node_modules/vuetify/lib/components/VDivider/index.js","webpack:///./node_modules/vuetify/lib/components/VSubheader/VSubheader.js","webpack:///./node_modules/vuetify/lib/components/VSubheader/index.js","webpack:///./node_modules/vuetify/lib/components/VSelect/VSelectList.js","webpack:///./node_modules/vuetify/lib/mixins/filterable/index.js","webpack:///./node_modules/vuetify/lib/components/VSelect/VSelect.js","webpack:///./node_modules/vuetify/lib/components/VChip/VChip.js","webpack:///./node_modules/vuetify/lib/components/VMenu/VMenu.js","webpack:///./node_modules/vuetify/lib/mixins/returnable/index.js"],"names":["root","factory","module","exports","self","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","0","incrementalConvexHull","orient","compareCell","compareCells","Simplex","vertices","adjacent","boundary","this","lastVisited","GlueFacet","cell","index","compareGlue","a","b","bakeOrient","code","push","proc","Function","join","test","flip","u","BAKED","Triangulation","dimension","simplices","interior","filter","tuple","Array","proto","points","randomSearch","length","Error","initialSimplex","slice","apply","initialCoords","initialCell","list","verts","j","adj","v","k","indexOf","triangles","useRandom","insert","handleBoundaryDegeneracy","point","toVisit","pop","cellAdj","neighbor","nv","vv","walk","random","initIndex","Math","outerLoop","cellVerts","prev","addPeaks","tovisit","glueFacets","indexOfN","indexOfNeg1","na","vverts","vadj","ncell","opposite","uu","nface","nptr","sort","ai","bi","cells","nc","bcell","cv","ptr","parity","tokenize","tokenizeString","str","opt","generator","tokens","concat","orientation","colormodel","rgb","min","max","fmt","suffix","rgba","hsl","hsla","createLinePlot","createBuffer","createVAO","createTexture","unpackFloat","bsearch","ndarray","shaders","createShader","createPickShader","identity","distance","sqrt","filterClipBounds","bounds","result","PickResult","tau","position","dataCoordinate","arcLength","LinePlot","gl","shader","pickShader","buffer","vao","texture","clipBounds","Infinity","vertexCount","pickId","lineWidth","dashScale","opacity","hasAlpha","dirty","pixelRatio","options","scene","attributes","location","nextPosition","color","defaultTexture","data","wrap","REPEAT","linePlot","update","isTransparent","isOpaque","pickSlots","setPickBase","id","drawTransparent","draw","camera","uniforms","model","view","projection","dashTexture","screenShape","drawingBufferWidth","drawingBufferHeight","TRIANGLE_STRIP","unbind","drawPick","connectGaps","arcLengthArray","pointArray","positions","colors","hadGap","fill_loop","acolor","bcolor","w0","isNaN","isFinite","isArray","t0","dashArray","dashes","prefixSum","unshift","set","le","setPixels","dispose","pick","selection","ti","x","dataIndex","colorscaleCalc","gd","trace","surfacecolor","vals","containerStr","cLetter","z","d3","isNumeric","NOTEDATA","text","displayLength","ts","notifierContainer","select","selectAll","enter","append","classed","notes","style","each","thisText","note","html","on","transition","killNote","lines","split","duration","delay","thisIndex","splice","remove","LINKEDFILLS","tonextx","tonexty","tonext","plotinfo","cdscatter","group","prevtrace","groupIndex","groupIndices","needsSort","prevGroupIndex","nextGroupIndex","prevUnstackedGroupIndex","stackgroup","fill","_groupIndex","cdscatterSorted","traceA","traceB","prevtraces","visible","_nexttrace","_prevtrace","_ownfill","substr","moduleType","basePlotModule","categories","meta","supplyDefaults","calc","plot","hoverPoints","selectPoints","clamp","dtype","isInt","Uint8Array","Uint8ClampedArray","type","Ctor","output","normalize","floor","wrapper","INSERT_SORT_CUTOFF","n0","insertionSort","quickSort","left","right","jptr","y","swap","move","rotate","shufflePivot","px","py","compare","comparePivot","sixth","index1","index5","index3","index2","index4","el1","el2","el3","el4","el5","less","great","tmp","pivot1X","pivot1Y","pivot2X","pivot2Y","ptr0","ptr2","ptr4","ptr5","ptr6","ptr7","i1","circle","square","diamond","cross","computeTickMarks","Axes","Lib","AXES_NAMES","centerPoint","contourLevelsFromTicks","ticks","tlevel","clevel","axesOptions","glRange","glplot","axesPixels","sceneLayout","fullSceneLayout","axes","_length","hi","lo","pixelsPerDataUnit","dataScale","abs","_input_range","range","_m","tickModeCached","tickmode","nticks","constrain","autoTicks","dataTicks","calcTicks","replace","contourLevels","assign","Calendars","regionalOptions","invalidCalendar","invalidDate","invalidMonth","invalidYear","differentCalendars","local","calendars","_localCals","CDate","calendar","year","month","day","_calendar","_year","_month","_day","_validateLevel","isValid","_exports","pad","substring","BaseCalendar","shortYearCutoff","GregorianCalendar","language","instance","toLowerCase","cal","newDate","substituteDigits","digits","digit","substituteChineseDigits","powers","localNumber","power","units","arguments","date","leapYear","epoch","formatYear","monthOfYear","weekOfYear","daysInYear","dayOfYear","daysInMonth","dayOfWeek","weekDay","extraInfo","add","offset","period","compareTo","toJD","fromJD","jd","toJSDate","fromJSDate","jsd","toString","today","_validate","Date","minMonth","minDay","epochs","monthsInYear","firstMonth","fromMonthOfYear","ord","daysInWeek","_correctAdd","_add","resyncYearMonth","yearMonths","ymd","e","hasYearZero","w","dir","valid","error","jdEpoch","daysPerMonth","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","dateFormat","firstDay","isRTL","checkDate","setHours","setMinutes","setSeconds","setMilliseconds","getHours","getFullYear","getMonth","getDate","cdate","baseCalendar","gregorian","warp","invert","applyHomography","dest","src","Xi","X","out_c","inp_c","wr","out","pt","cd","pointNumber","cdi","kerning","canvas","document","createElement","ctx","getContext","asciiPairs","createPairs","family","pairs","table","fs","threshold","fontSize","font","pair","width","measureText","kerningWidth","emWidth","leftChar","String","fromCharCode","rightChar","ascii","hover","makeHoverPointText","pointData","xval","yval","hovermode","stash","rArray","thetaArray","theta","scatterPointData","newPointData","undefined","subplot","isPtInside","xLabelVal","yLabelVal","Color","colorScaleAttrs","hovertemplateAttrs","baseAttrs","extendFlat","overrideAll","makeContourProjAttr","axLetter","valType","dflt","makeContourAttr","show","start","editType","end","size","project","defaultLine","usecolormap","highlight","highlightcolor","highlightwidth","attrs","arrayOk","hovertext","hovertemplate","connectgaps","colorAttr","showScaleDflt","autoColorDflt","editTypeOverride","contours","hidesurface","lightposition","lighting","ambient","diffuse","specular","roughness","fresnel","_deprecated","zauto","zmin","zmax","hoverinfo","showlegend","transforms","Plotly","register","fullLayout","labels","_subplot","ax","mockAxis","lonlat","lonLabel","tickText","c2l","latLabel","fullData","tracei","filli","tracej","xaxis","yaxis","clone","Float32Array","aFunction","fn","that","xmlnsNamespaces","LINE_SPACING","getSize","_selection","_dimension","node","getBoundingClientRect","FIND_TEX","convertToTspans","_context","_callback","tex","attr","MathJax","match","parent","parentNode","empty","svgClass","_promises","Promise","resolve","parseInt","config","texToSVG","_svgEl","_glyphDefs","_svgBBox","newSvg","showText","mathjaxGroup","appendChild","insertBefore","cloneNode","firstChild","height","preserveAspectRatio","overflow","g","stroke","newSvgW","newSvgH","newX","middle","textHeight","dy","transform","hasLink","buildSVGText","positionText","LT_MATCH","GT_MATCH","cleanEscapesForTex","_texString","_config","originalRenderer","originalConfig","originalProcessSectionDelay","tmpDiv","Hub","Queue","extendDeepAll","processSectionDelay","Config","messageStyle","tex2jax","inlineMath","displayAlign","menuSettings","renderer","setRenderer","randomID","randstr","visibility","Typeset","glyphDefs","log","svgBBox","TAG_STYLES","sup","sub","span","em","SHIFT_DY","RESET_DY","ZERO_WIDTH_SPACE","PROTOCOLS","NEWLINES","SPLIT_TAGS","ONE_TAG","BR_TAG","BR_TAG_ALL","STYLEMATCH","HREFMATCH","TARGETMATCH","POPUPMATCH","getQuotedMatch","_str","re","convertEntities","COLORMATCH","plainText","opts","len","allowedTags","ellipsis","eLen","oldParts","newParts","prevTag","tagType","pLen","pLen2","entityToUnicode","mu","amp","lt","gt","nbsp","times","plusmn","deg","ENTITY_MATCH","fullMatch","innerMatch","outChar","charAt","fromCodePoint","stringFromCodePoint","stringFromCharCode","containerNode","currentNode","nodeStack","currentLine","newLine","lineNode","createElementNS","svg","class","oldNodeStack","enterNode","nodeSpec","nodeType","nodeAttrs","target","href","popup","onclick","newNode","addTextNode","resetter","createTextNode","exitNode","innerNode","hasLines","parts","parti","tagStyle","extra","css","dummyAnchor","protocol","encodeURI","decodeURI","alignHTMLWith","_base","container","thisRect","getTop","getLeft","alignH","horizontalAlign","alignV","verticalAlign","bRect","cRect","bottom","top","lineCount","setOrGet","val","thisX","thisY","nodeName","makeEditable","context","_delegate","delegate","dispatch","handlerElement","handleClick","appendEditable","mathjaxClass","selectElementContents","_el","el","createRange","selectNodeContents","sel","window","getSelection","removeAllRanges","addRange","focus","plotDiv","div","cStyle","parseFloat","initialText","fontFamily","background","outline","margin","padding","contenteditable","_editing","textContent","edit","editDiv","event","activeElement","blur","which","cancel","input","immediate","rebind","_fullLayout","uid","splomScenes","_splomScenes","reset","first","matrix","selectBatch","unselectBatch","destroy","matrixOptions","eventData","animatable","fillText","makeHoverInfo","loc","flags","hasName","hasLocation","hasZ","hasText","hasIdAsNameLabel","nameOverride","zLabel","extraText","isInside","geo","_polygons","contains","x0","x1","xa","c2p","ct","y0","y1","ya","Drawing","DESELECTDIM","barStyle","resizeText","styleTextPoints","gTrace","di","isBlank","cont","marker","line","dashLine","dash","selectedpoints","selected","connector","lineGroupStyle","scatterAttrs","FORMAT_LINK","impliedEdits","xtype","dx","ytype","transpose","values","zsmooth","hoverongaps","xgap","ygap","zhoverformat","Registry","edits","transitionOpts","makeOnCompleteCallback","onComplete","t1","t2","raf","easeFn","ease","easing","_transitionData","_interruptCallbacks","cancelAnimationFrame","transitionInterrupt","now","requestAnimationFrame","doFrame","unsetSubplotTransform","_defs","clipId","setTranslate","setScale","_offset","traceGroups","setPointGroupScale","setTextPointsScale","hideOutsideRangePoints","updateSubplot","progress","xlen","ylen","editX","xr1","editY","yr1","viewBox","xr0","simpleMap","r2l","dx0","dx1","l2r","yr0","dy0","dy1","drawOne","skipTitle","redrawComponents","_id","xScaleFactor","yScaleFactor","clipDx","clipDy","fracDx","fracDy","plotDx","plotDy","clipRect","zoomScalePts","zoomScaleTxt","transitionComplete","aobj","_name","then","tInterp","isBuffer","obj","constructor","isSlowBuffer","readFloatLE","_isBuffer","rules","Y","selector","fullSelector","addStyleRule","createCamera","createAxes","axesRanges","createSpikes","createSelect","createFBO","drawTriangle","mouseChange","perspective","ortho","isMobile","tablet","MouseSelect","mouse","screen","dataPosition","roundUpPow10","round","base","pow","ceil","defaultBool","createScene","body","glOptions","premultipliedAlpha","antialias","preserveDrawingBuffer","accumBuffer","preferFloat","accumShader","isOrtho","cameraObject","_ortho","cameraOptions","eye","center","up","zoomMin","zoomMax","enable","disable","spikeOptions","spikes","objects","pickBufferIds","pickBufferCount","pickBuffers","pickDirty","cameraParams","viewShape","contextLost","shape","aspect","aspectRatio","pickRadius","zNear","zFar","fovy","PI","clearColor","autoResize","autoBounds","autoScale","autoCenter","clipToBounds","snapToData","onselect","onrender","oncontextloss","mouseListener","_stopped","getAspectratio","setAspectratio","aspectratio","setBounds","axisIndex","setClearColor","clearRGBA","clear","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","pickShape","resizeListener","clientWidth","clientHeight","innerWidth","innerHeight","nextWidth","nextHeight","reallocPickIds","numObjs","numPick","obj_loop","pickCount","nbuffer","checkContextLoss","isContextLost","enabled","renderPick","colorMask","depthMask","BLEND","DEPTH_TEST","depthFunc","LEQUAL","buf","begin","addEventListener","idx","removeEventListener","_mouseRotating","_prevButtons","enableMouseListeners","buttons","prevObj","change","query","objPick","coord","nBounds","prevBounds","redraw","cameraMoved","tick","obb","olo","ohi","boundsChanged","tickSpacing","calcCameraParams","axesBounds","bindFramebuffer","FRAMEBUFFER","viewport","CULL_FACE","hasTransparent","LESS","blendEquation","FUNC_ADD","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","render","maxS","schema","subplots","rangeselector","layoutAttributes","handleDefaults","counter","head","tail","openEnded","matchBeginning","fullTail","startWithPrefix","RegExp","toIndexedObject","nativeGetOwnPropertyNames","f","windowNames","getOwnPropertyNames","getWindowNames","it","pool","array","cube","bitmask","stride","scalar","pointer","delta","step","pcube","qcube","pdelta","vert","createSurfaceExtractor","VERTEX_IDS","PHASES","VERTEX_COUNT","POOL_SIZE","POINTER","TEMPORARY","permBitmask","mask","order","compileSurfaceProcedure","vertexFunc","faceFunc","phaseFunc","scalarArgs","typesig","arrayArgs","funcName","vars","args","ptrStr","stepVal","sizeVariable","cubeDelta","cubeStep","signFlag","jperm","forLoopBegin","forLoopEnd","fillEmptySlice","phaseFuncArgs","processGridCell","vertexPredicate","vertexArgs","corner","subset","edge","faceArgs","createLoop","procedureCode","mallocUint32","freeUint32","msg","arrays","arrayArguments","scalars","scalarArguments","vertex","phase","getters","nodeTextOffsetHorizontal","nodeTextOffsetVertical","nodePadAcross","sankeyIterations","forceIterations","forceTicksPerFrame","cn","sankey","sankeyLinks","sankeyLink","sankeyNodeSet","sankeyNode","nodeRect","nodeCapture","nodeCentered","nodeLabelGuide","nodeLabel","nodeLabelTextPath","histogram2dCalc","convertColumnData","clean2dArray","interp2d","findEmpties","makeBoundArray","binned","getFromId","isContour","traceIs","isHist","isGL2D","_minDtick","zIn","isArray1D","_x","_y","_z","makeCalcdata","_emptypoints","noZsmooth","_input","warn","avgdx","maxErrX","avgdy","maxErrY","maxRowLength","xIn","xArray","yIn","yArray","_extremes","findExtremes","cd0","_text","_hovertext","xCenter","yCenter","xRanges","yRanges","pts","coloring","dummyTrace","xcalendar","ycalendar","xfill","yfill","Plots","svgTextUtils","Titles","axAttrs","cleanTicks","constants","ONEAVGYEAR","ONEAVGMONTH","ONEDAY","ONEHOUR","ONEMIN","ONESEC","MINUS_SIGN","BADNUM","alignmentConstants","MID_SHIFT","CAP_SHIFT","OPPOSITE_SIDE","setConvert","autoType","axisIds","id2name","name2id","cleanId","listIds","getFromTrace","autorange","getAutoRange","coerceRef","containerIn","containerOut","extraOption","axlist","_subplots","refAttr","attrDef","coerce","coercePosition","axRef","cleanPos","pos","ensureNumber","fraction2r","cleanPosition","axIds","_redrawOneComp","moduleName","methodName","stashName","shortCircuit","method","getComponentMethod","indices","ind","getDataConversions","targetArray","d2cTarget","_categories","d2c","c2d","toNum","autoShiftNumericBins","binStart","dataMin","dataMax","edgecount","midcount","intcount","blankCount","nearEdge","dtick","dataCount","binshift","autoShiftMonthBins","stats","findExactDates","exactDays","numMonths","Number","exactYears","tickIncrement","exactMonths","nextBinStart","arrayTicks","tickvals","ticktext","ticksOut","rng","r0expanded","r1expanded","tickMin","tickMax","tickVal2l","d2l_noadd","d2l","vali","tickTextObj","getDataToCoordFunc","counterLetter","minDtick","newDiff","newFirst","allow","_forceTick0","saveRangeInitial","overwrite","axList","hasOneAxisChanged","isNew","_rangeInitial","hasChanged","saveShowSpikeInitial","allSpikesEnabled","_showSpikeInitial","showspikes","_showspikes","_cartesianSpikesEnabled","autoBin","nbins","is2d","dummyAx","aggNums","_dataSpan","c2r","tick0","size0","distinctData","distinctVals","msexp","minDiff","LN10","minSize","roundUp","stdev","binEnd","bincount","finalSize","tickFirst","prepTicks","minPx","nt","tickfont","autoTickRound","_tmin","startTick","endTick","axrev","tickVals","isDLog","xPrevious","maxTicks","minor","isAngular","_tmax","_prevDateHead","_inCalcTicks","roundBase10","roundBase24","roundBase60","roundDays","roundLog1","roundLog2","roundAngles","roundDTick","roughDTick","roundingSet","_tickexponent","_tickround","tick0ms","tick0str","tick0len","tick1len","map","r2d","maxend","rangeexp","isSIFormat","exponentformat","beyondSI","tf","fontColor","formatDate","extraPrecision","tr","hoverformat","getTickFormat","M","S","headStr","dateStr","_dateFormat","_extraFormat","splitIndex","formatLog","hideexp","tickformat","dtChar0","numFormat","mod","absP","exponentFormat","firstChar","formatCategory","tt","formatMultiCategory","cats","tt2","text2","formatLinear","showexponent","formatAngle","thetaunit","num","frac","num2frac","deg2rad","isNeg","almostEq","findGCD","findPrecision","precision","number","gcd","getBase","dateTick0","roughX2","olddtick","axSign","tType","dtSigned","incrementMonth","tickset","x2","sRound","r0","tmin","dtNum","mult","newDTick","cnt","noSuffixPrefix","arrayMode","axType","isHidden","showAttr","firstOrLast","last","tickprefix","showtickprefix","ticksuffix","showticksuffix","tickson","showdividers","inbounds","l2p","xbnd","hoverLabelText","val2","logOffScale","tx","SIPREFIXES","exponent","fmtoverride","tickRound","separatethousands","ah","_numFormat","signedExponent","dp","numSeparate","_separators","getBoundaryVals","_push","bndIndex","xb","getSecondaryLabelVals","lookup","interp","getDividerVals","current","calcLabelLevelBbox","cls","_selections","thisLabel","selectTickLabel","bb","bBox","tickDataFn","axInfo","drawDividers","dividers","layer","exit","dividercolor","crispRound","dividerwidth","transFn","path","approxTitleDepth","title","extraLines","drawTitle","titleStandoff","axId","_depth","standoff","offsetBase","linewidth","side","showticklabels","avoid","getPxPosition","tickLabels","translation","getTranslate","offsetLeft","offsetTop","propContainer","propName","placeholder","_dfltTitle","clipEnds","anyCounterAxLineAtZero","counterAxis","mainCounterAxis","_mainAxis","zeroPosition","_plots","_mainSubplot","mainplotinfo","overlays","lineNearZero","counterLetterAxes","counterAxis2","ax2","showline","tolerance","zerolinewidth","closeEnough","pos2","_mainLinePosition","_mainMirrorPosition","linePositions","_linepositions","hasBarsOrFill","_fullData","gTick","mj","axAutoMarginID","axMirrorAutoMarginID","rangeSliderAutoMarginID","makeAxisGroups","traces","groups","groupsi","xi","yi","groupj","group0","mergeAxisGroups","intoSet","fromSet","swapAxisGroup","xIds","yIds","xFullAxes","yFullAxes","layout","allAxKeys","keys","noSwapAttrs","numericTypes","keyi","xVal","yVal","allEqual","coerceLinearX","coerceLinearY","xVali","yVali","swapAxisAttrs","annotations","ann","xref","yref","swapAttrs","dfltTitle","np","nestedProperty","tickstop","stopi","convertToMs","compareLogTicks","priority","leftPriority","rightPriority","isProperStop","convert","convertFn","leftDtick","rightDtick","isProperLogStop","isLeftDtickNull","isRightDtickNull","isDtickInRangeLeft","isDtickInRangeRight","tickformatstops","dtickrange","getSubplots","subplotObj","allSubplots","cartesian","gl2d","findSubplotsWithAxis","aParts","bParts","axMatch","subplotsWithAx","sp","makeClipPaths","_hasOnlyLargeSploms","fullWidth","fullHeight","xaList","yaList","clipList","axClips","_clips","_uid","arg","_paper","xaxislayer","yaxislayer","gridlayer","zerolinelayer","_infolayer","syncOrAsync","axDone","_r","_rl","mainLinePosition","mainMirrorPosition","mainPlotinfo","mainAxLayer","_vals","mirror","_tickAngles","_prevTickAngles","llbboxes","getLabelLevelBbox","valsClipped","makeTransFn","boundaryVals","gridVals","_gridVals","dividerVals","_subplotsWith","finishedGrids","mainCounterID","gridPath","drawGrid","drawZeroLine","tickSigns","getTickSigns","tickSubplots","mirrorTickPath","fullTickPath","tickPath","mainTickPath","makeTickPath","_anchorAxis","dividerLookup","drawTicks","linepositions","spTickPath","seq","drawLabels","labelFns","makeLabelFns","bboxKey","repositionOnUpdate","secondary","hasRangeSlider","llbbox","mirrorPush","rangeSliderPush","sMirror","outsideTickLen","ticklen","automargin","domainIndices","reverse","rExtra","xr","lExtra","xl","bExtra","yb","tExtra","yt","anchor","domain","_counterDomainMin","_counterDomainMax","autoMargin","sideOpposite","main","shift","sgn","angle","ticksOnOutsideLabels","labelStandoff","labelShift","rad","cos","sin","ff","flipIt","xFn","yFn","anchorFn","heightFn","h","tickangle","crisp","tickcolor","tickwidth","counterAx","showgrid","shouldShowZeroLine","isArrayMode","grid","_gw","gridwidth","gridcolor","zl","da","db","idSort","zerolinecolor","tickAngle","prevAngle","labelsReady","positionLabels","nLines","lineHeight","anchorHeight","mjWidth","mjShift","allLabelsReady","all","newPromise","autoangle","fixLabelOverlaps","maxFontSize","lbbArray","vLen","rotate90","bBoxIntersect","gap","lbb","_redrawFromAutoMarginCount","done","anchorAxis","gs","_size","zeroline","allowAutoMargin","axGroups","v100","kernels","gaussian","exp","makeKDE","calcItem","kernel","bandwidth","factor","sum","getPositionOnKdePath","valuePx","posLetter","valLetter","pointOnPath","findPointOnPath","pathLength","posCenterPx","posOnPath0","posOnPath1","getKdeValue","valueDist","extractVal","kde","posDensityScale","Iterator","callable","autoBind","defineProperties","TypeError","__list__","__context__","__nextIndex__","_onAdd","_onDelete","_onClear","_next","__redo__","_unBind","next","_createResult","_resolve","off","forEach","redo","iterator","_supply","layoutIn","layoutOut","traceType","category","hasTraceType","supplyLayoutDefaults","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","DEFAULT_NORMALS_EPSILON","DEFAULT_FACE_EPSILON","vertexNormals","faces","specifiedEpsilon","N","normals","epsilon","v0","v1","v2","d01","m01","d21","m21","norm","faceNormals","traceIn","traceOut","handleCalendarDefaults","minRowLength","Scene2D","layoutGlobalAttrs","Cartesian","fxAttrs","getSubplotData","idRoot","idRegex","attrRegex","_has","layoutAttrOverrides","baseLayoutAttrOverrides","plot_bgcolor","hoverlabel","subplotIds","subplotId","fullSubplotData","_scene2d","graphDiv","querySelector","staticPlot","plotGlPixelRatio","calcdata","clean","newFullData","newFullLayout","oldFullData","oldFullLayout","oldSceneKeys","oldSubplot","subplotData","drawFramework","toSVG","imageData","toImage","image","_glimages","xmlns","updateFx","dragmode","sprintf","glConstants","shaderName","addLineNumbers","formatCompilerError","errLog","typeName","FRAGMENT_SHADER","longForm","shortForm","errorStrings","errors","errorString","lineNo","trim","long","short","colorscaleDefaults","defaultColor","supplyIsoDefaults","isomin","isomax","dim","capDim","showCap","sliceDim","showSlice","showSpaceframe","showSurface","showContour","prefix","projNames","axesNames","lonaxisSpan","lataxisSpan","scopeDefaults","world","lonaxisRange","lataxisRange","projType","projRotate","usa","europe","projParallels","asia","africa","clipPad","landColor","waterColor","locationmodeToLayer","sphereSVG","fillLayers","ocean","land","lakes","lineLayers","subunits","countries","coastlines","rivers","frame","layers","layersForChoropleth","layerNameToAdjective","doubleBits","SMALLEST_DENORM","UINT_MAX","nextafter","NaN","pack","solid","dot","longdash","dashdot","longdashdot","crossTraceCalc","colorbar","formatLabels","styleOnSelect","countryRegex","turfArea","turfCentroid","turfBbox","loggers","isPlainObject","polygon","countryIds","locationmodeToIdFinder","countryNameToISO3","countryName","iso3","regex","locationToFeature","locationmode","features","filteredFeatures","locationId","properties","gu","feature2polygons","feature","appendPolygon","geometry","coords","coordinates","polygons","doesCrossAntiMerdian","_pts","tester","crossAntiMeridianIndex","stitch","si","getTraceGeojson","geojson","PlotlyGeoAssets","geojsonIn","extractTraceFeature","calcTrace","featuresOut","appendFeature","fIn","featureidkey","fOut","findCentroid","featuresIn","poly","maxArea","polyi","area","default","fetchTraceGeoData","calcData","promises","fetch","url","reject","json","err","status","wait","interval","setInterval","clearInterval","computeBbox","rat","mul","muls","sign","bn2num","words","scaleAndAdd","scale","hasColorscale","calcColorscale","subTypes","hasMarkers","StringIterator","setPrototypeOf","__length__","char","charCodeAt","keyFun","repeat","descend","unwrap","__webpack_exports__","nodes","force","sx","sy","initialize","_","constant","jiggle","add_add","cover","tree","xm","ym","xp","yp","_root","leaf","_x0","_y0","_x1","_y1","addAll","xz","yz","src_data","visit","extent","src_quad","find","radius","y2","q","x3","y3","quads","d2","retainer","previous","removeAll","callback","child","visitAfter","defaultX","src_x","defaultY","src_y","quadtree","Quadtree","leaf_copy","copy","treeProto","collide_x","vx","collide_y","vy","source","collide","radii","strength","iterations","ri","ri2","prepare","quad","rj","link_find","nodeById","nodeId","src_link","links","strengths","distances","count","bias","defaultStrength","link","alpha","initializeStrength","initializeDistance","noop","Dispatch","parseTypenames","typenames","types","typename","T","taskHead","taskTail","src_dispatch","timer_frame","timeout","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","setFrame","setTimeout","clearNow","Timer","_call","_time","timer","time","restart","timerFlush","wake","nap","poke","sleep","clearTimeout","simulation_x","simulation_y","stop","initialRadius","initialAngle","src_simulation","simulation","alphaMin","alphaDecay","alphaTarget","velocityDecay","forces","stepper","fx","fy","initializeNodes","initializeForce","closest","manyBody","distanceMin2","distanceMax2","theta2","accumulate","weight","distanceMin","distanceMax","radial","radiuses","d3_force_src_x","d3_force_src_y","lookupCarpet","setContours","heatmappishCalc","a0","b0","carpet","_carpetTrace","aax","aaxis","bax","baxis","_a","_b","carpetdata","tracedata","_defaultColor","calcMarkerSize","TOO_MANY_POINTS","radialAxis","radialaxis","angularAxis","angularaxis","_theta","ppad","sizeAvg","twoProduct","robustSum","robustDiff","robustScale","NUM_EXPAND","cofactor","generateSum","expr","makeProduct","toks","determinant","makeSquare","terms","neg","posExpr","negExpr","funcArgs","inSphere0","inSphere1","inSphere2","CACHED","slowInSphere","generateInSphereTest","procArgs","linearOK","moreDates","inc","dcnt","ncnt","seen","stri","isDateTime","curvenums","curvecats","cleanNumber","multiCategory","isArrayOrTypedArray","noMultiCategory","gregorianCalendar","TaiwanCalendar","yearsOffset","_t2gYear","_g2tYear","taiwan","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","TAU","mapToEllipse","_ref","rx","ry","cosphi","sinphi","centerx","centery","approxUnitArc","ang1","ang2","tan","vectorAngle","ux","uy","acos","getArcCenter","cx","cy","largeArcFlag","sweepFlag","pxp","pyp","rxsq","rysq","pxpsq","pypsq","radicant","centerxp","centeryp","vx1","vy1","vx2","vy2","arcToBezier","_ref2","_ref2$xAxisRotation","xAxisRotation","_ref2$largeArcFlag","_ref2$sweepFlag","curves","lambda","_getArcCenter","_getArcCenter2","ratio","segments","curve","_mapToEllipse","_mapToEllipse2","_mapToEllipse3","arraysToCalcdata","binFunctions","normFunctions","doAvg","getBinSpanLabelRound","i2","pa","mainData","counterData","cumulativeSpec","cumulative","binsAndPos","calcAllAutoBins","binSpec","pos0","nonuniformBins","binEdges","bins","counts","inputPoints","total","histnorm","func","histfunc","densityNorm","rawCounterData","extremeFunc","sizeInit","binFunc","normFunc","isAvg","pr2c","r2c","roundFn","nMax","uniqueValsPerBin","leftGap","rightGap","ptNumber2cdIndex","posi","findBin","cdf","direction","currentbin","seriesLen","firstNonzero","lastNonzero","ph0","ph1","width1","tagSelected","_overlayEdgeCase","autoVals","binAttr","groupName","binOpts","_histogramBinOpts","isOverlay","barmode","cleanBound","cleanDate","setBound","newBins","allPos","isFirstVisible","has2dMap","hasHist2dContour","mainDatai","dirs","_autoBin","newBinSpec","sizeFound","handleSingleValueOverlays","traceInputBins","traceBinOptsCalc","mainStart","startIn","hasStart","startFound","traceStart","newStart","mainEnd","endIn","hasEnd","endFound","traceEnd","autoBinAttr","overlaidTraceGroup","getConnectedHistograms","pastThisTrace","singleValuedTraces","resulti","binSpeci","isSingleValued","dataVals","xid","yid","currentBin","vi","prevSum","firstHalfPoint","nextHalfPoint","prevRow","thisPt","neighborCount","newNeighborHash","foundNewNeighbors","empties","neighborHash","noNeighborList","nextRow","row","blank","rowLength","handleSampleDefaults","handleContoursDefaults","handleStyleDefaults","coerce2","Colorscale","constHalf","lineColor","cscale","extractOpts","colorscale","cdimage","imageLayer","makeTraceGroups","temp","plotGroup","imageWidth","imageHeight","isOffScreen","noImage","ipx","jpx","ipx0","ipx1","jpx0","jpx1","_scaler","fillStyle","fillRect","image3","toDataURL","getAxisGroup","Sieve","fullTraces","calcTraces","calcTracesHorz","calcTracesVert","fullTrace","barnorm","bargap","groupgap","bargroupgap","setGroupPositions","sa","excluded","included","initBase","setGroupPositionsInOverlayMode","setGroupPositionsInGroupMode","setGroupPositionsInStackOrRelativeMode","collectExtents","scalendar","hasB","hasBase","sieve","sepNegVal","overlapNoMerge","setOffsetAndWidth","sieveBars","normalizeBars","setBaseAndTop","setOffsetAndWidthInGroupMode","unhideBarsWithinTrace","stackBars","bar","isOutmostBar","_outmost","barGroupWidth","barWidthPlusGap","barWidth","offsetFromCenter","barwidth","poffset","bargroupwidth","bardelta","binWidth","applyAttributes","setBarCenterAndWidth","updatePositionAxis","distinctPositions","nTraces","overlap","groupId","alignmentGroups","_alignmentOpts","alignmentGroupOpts","alignmentgroup","nOffsetGroups","offsetGroups","_offsetIndex","newPoffset","calcTrace0","initialPoffset","_width","initialBarwidth","newBarwidth","pLetter","getAxisLetter","poffsetIsArray","barwidthIsArray","calcBar","allowMinDtick","vpad","calcBarOffset","calcBarWidth","padded","sLetter","allBaseAboveZero","tozero","isFunnel","put","inTraceSieve","sTop","sTiny","sMin","l2c","sMax","needsPadding","extents","pMin","pMax","roundFactor","p0","p1","pVal","s0","s1","fails","cellPad","columnExtentOffset","columnTitleOffset","emptyHeaderHeight","latexCheck","goldenRatio","lineBreaker","maxDimensionCount","overdrag","releaseTransitionDuration","releaseTransitionEase","scrollbarCaptureWidth","scrollbarHideDelay","scrollbarHideDuration","scrollbarOffset","scrollbarWidth","transitionDuration","transitionEase","uplift","wrapSpacer","wrapSplitCharacter","tableControlView","scrollBackground","yColumn","columnBlock","scrollAreaClip","scrollAreaClipRect","columnBoundary","columnBoundaryClippath","columnBoundaryRect","columnCells","columnCell","cellRect","cellText","cellTextHolder","scrollbarKit","scrollbar","scrollbarSlider","scrollbarGlyph","scrollbarCaptureZone","twoSum","scaleLinearExpansion","pq","bv","scales","sequential","Reds","sequentialminus","Blues","diverging","RdBu","coloraxis","_isSubplotObj","noColorAxis","barAttrs","lineAttrs","texttemplateAttrs","directionAttrs","dirTxt","measure","eventDataKeys","textinfo","extras","texttemplate","textposition","insidetextanchor","textangle","textfont","insidetextfont","outsidetextfont","constraintext","cliponaxis","increasing","decreasing","totals","offsetgroup","tubex","tubey","tubez","tubeu","traceCoordinate","tubev","tubew","divergence","handleXYDefaults","handleStackDefaults","handleMarkerDefaults","handleLineDefaults","handleLineShapeDefaults","handleTextDefaults","handleFillColorDefaults","stackGroupOpts","defaultMode","PTS_LINESONLY","gradient","dfltHoverOn","fillDflt","markerColor","hoveron","errorBarsSupplyDefaults","axis","inherit","coerceSelectionMarkerOpacity","csr","BN","cmp","1","mergeArray","customdata","mergeArrayCastPositive","symbol","markerLine","markerGradient","fontAttrs","anim","groupnorm","stackgaps","smoothing","simplify","fillcolor","symbolList","maxdisplayed","sizeref","sizemin","sizemode","unselected","colorEditType","getTopojsonFeatures","geoJsonUtils","geoUtils","scatterLayer","frontplot","gTraces","removeBADNUM","lineCoords","calcTraceToLineCoords","lineData","makePolygon","makeLine","calcPt","calcGeoJSON","geoLayout","locations","topojson","lonArray","latArray","fitbounds","bboxGeojson","lon","lonaxis","_ax","lat","lataxis","makeBubbleSizeFn","convertTextOpts","appendArrayPointValue","initContainer","makeBlank","paint","makeCircleOpts","colorFn","sizeFn","opacityFn","arrayColor","arraySize","arrayOpacity","addTraceOpacity","size2radius","makeColorScaleFuncFromTrace","mo","mo2","fns","isBADNUM","props","mcc","mc","mrc","ms","makeSelectedPointStyleFns","selectedOpacityFn","selectedColorFn","selectedSizeFn","makeSymbolGeoJSON","fillSymbol","getFillFunc","blankFillFunc","_module","pointValues","_meta","texttemplateString","_d3locale","mx","isVisible","hasFill","hasCircles","hasSymbols","circleOpts","iconSize","textOpts","choroplethAttrs","below","Template","handleDomainDefaults","defaults","subplotLayoutIn","subplotLayoutOut","subplotType","subplotAttributes","partition","ids","idsLength","baseId","newContainer","uirevision","dfltDomains","filterOps","coerceValue","operation","coercedValue","hasArrayValue","COMPARISON_OPS2","INTERVAL_OPS","SET_OPS","makeRangeSettings","makeInequalitySettings","sampleLetter","aggLetter","hasAggregationData","handleSubplotDefaults","handleTickValueDefaults","handleTickMarkDefaults","handleTickLabelDefaults","handleCategoryOrderDefaults","handleLineGridDefaults","axisNames","contIn","contOut","bgColor","combine","paper_bgcolor","sector","axName","coerceAxis","axIn","axOut","_attr","_traceIndices","_expandedIndex","dataAttr","axisName2dataArray","handleAxisTypeDefaults","axData","dfltColor","dfltFontColor","autoRange","isValidRange","cleanRange","dfltRange","coerceFont","counterclockwise","clockwise","tickSuffixDflt","outerTicks","showTickLabels","blend","showLine","showGrid","noZeroLine","undoCommands","isExecuting","execute","command","action","setCallback","callbackFunc","undo","hasUndo","hasRedo","getCommands","getPreviousCommand","getIndex","Scene","GL3D","SCENE","counterRegex","sceneIds","sceneId","fullSceneData","_scene","viewInitial","oldSceneKey","sceneNum","process","global","objectOrFunction","isFunction","_isArray","vertxNext","customSchedulerFn","asap","queue","flush","scheduleFlush","setScheduler","scheduleFn","setAsap","asapFn","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","importScripts","MessageChannel","useNextTick","nextTick","useVertxTimer","useMutationObserver","observer","observe","characterData","useMessageChannel","channel","port1","onmessage","port2","postMessage","useSetTimeout","globalSetTimeout","attemptVertx","vertx","runOnLoop","runOnContext","onFulfillment","onRejection","_arguments","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","Constructor","promise","PENDING","FULFILLED","REJECTED","GET_THEN_ERROR","ErrorObject","selfFulfillment","cannotReturnOwn","getThen","tryThen","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","reason","_reject","_label","handleOwnThenable","handleMaybeThenable","maybeThenable","then$$","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","TRY_CATCH_ERROR","tryCatch","hasCallback","succeeded","failed","initializePromise","resolver","nextId","Enumerator","_instanceConstructor","_remaining","_enumerate","validationError","entries","race","needsResolver","needsNew","polyfill","promiseToString","cast","_eachEntry","entry","resolve$$","_then","_settledAt","_willSettleAt","state","enumerator","_setScheduler","_setAsap","_asap","versions","getPrototypeOf","d3Hierarchy","makeColorScaleFn","makePullColorFn","generateExtendedColors","ALMOST_EQUAL","sunburstExtendedColorWays","treemapExtendedColorWays","countDescendants","nChild","children","branches","leaves","_values","getId","hasIds","parents","hasValues","parent2children","refs","addToLookup","isValidKey","isValidVal","pid","label","dummyId","hasMultipleRoots","impliedRoots","hasImpliedRoot","stratify","parentId","message","hierarchy","branchvalues","partialSum","reduce","pullColor","scaleColor","hasColors","_hasColorscale","_runCrossTraceCalc","desiredType","colorWay","colorMap","dfltColorCount","pickColor","cursorset","xanchor","yanchor","alias","t3","Icons","modeBarButtons","handleCartesian","ev","button","currentTarget","astr","getAttribute","mag","r1","fixedrange","rangeInitial","rangeNow","rangeNew","_isHoriz","setAttribute","handleDrag3d","gl3d","layoutUpdate","val2d","handleCamera3d","didUpdate","getNextHover3d","_previousVal","currentSpikes","hovermodeAStr","spikeAStr","handleHover3d","handleGeo","geoIds","newScale","resetView","getNextHover","toggleHover","newHover","setSpikelineVisibility","areSpikesOn","handleMapboxZoom","mapbox","aObj","zoom","viewKeys","toImageButtonOptions","format","icon","click","notifier","isIE","filename","catch","sendDataToCloud","disk","editInChartStudio","pencil","zoom2d","zoombox","pan2d","pan","select2d","selectbox","lasso2d","lasso","zoomIn2d","zoom_plus","zoomOut2d","zoom_minus","autoScale2d","autoscale","resetScale2d","home","hoverClosestCartesian","tooltip_basic","gravity","hoverCompareCartesian","tooltip_compare","zoom3d","pan3d","orbitRotation","tableRotation","resetCameraDefault3d","resetCameraLastSave3d","movie","hoverClosest3d","toggle","zoomInGeo","zoomOutGeo","resetGeo","hoverClosestGeo","hoverClosestGl2d","hoverClosestPie","resetViewSankey","_viewInitial","resetViews","toggleSpikelines","spikeline","resetViewMapbox","zoomInMapbox","zoomOutMapbox","$","$reduce","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","forced","callbackfn","multiply","a00","a01","a02","a03","a10","a11","a12","a13","a20","a21","a22","a23","a30","a31","a32","a33","b1","b2","b3","getModuleCalcData","parcatsPlot","PARCATS","cdModuleAndOthers","hadTable","hasTable","_paperdiv","isBrowser","detect","supported","foo","trzy","annAttrs","templatedArray","ay","xshift","yshift","align","valign","bgcolor","bordercolor","borderpad","borderwidth","showarrow","arrowcolor","arrowhead","startarrowhead","arrowside","arrowsize","startarrowsize","arrowwidth","startstandoff","captureevents","classof","regexpExec","R","exec","from","Boolean","findMedian","genPartition","partitionStartLessThan","PARTITION_THRESHOLD","boxes","elemSize","boxPtr","aPtr","bPtr","mid","pivot","pivot0","value0","pivot1","value1","pivot2","value2","histogramAttrs","makeBinAttrs","heatmapAttrs","nbinsx","xbins","nbinsy","ybins","autobinx","autobiny","bingroup","xbingroup","ybingroup","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","axesProperties","getPlanes","splitPoly","cubeParams","m4mul","m4transpose","v4transformMat4","mvp","AxesRange3D","SCRATCH_P","SCRATCH_Q","RANGES","SCRATCH_X","params","ranges","frustum","i_loop","Q","positive","grad","vec3","vec4","GRID_TYPES","streamToTube","stream","maxDivergence","minDistance","maxNorm","velocities","divergences","vectors","previousVerts","currentVerts","intensities","previousIntensity","currentIntensity","currentVector","previousVector","facets","fwd","a1","tmp1","tmp2","tmp3","vertexIntensity","createTubes","streams","colormap","tubes","tube","newCell","findLastSmallerIndex","sampleMeshgrid","vectorField","gridInfo","meshgrid","z0","z1","x0off","x1off","y0off","y1off","z0off","z1off","mX0","mX1","mY0","mY1","mZ0","mZ1","xf","yf","zf","reversedX","reversedY","reversedZ","filled","v000","v001","v010","v011","v101","v110","v111","c00","c01","c10","c11","lerp","c0","c1","findMinSeparation","xs","minSeparation","calculateMinPositionDistance","ys","zs","zi","xSep","ySep","zSep","startingPositions","maxLength","tubeSize","absoluteTubeSize","gridFill","getVelocity","getDivergence","subtract","vz","minX","minY","minZ","maxX","maxY","maxZ","inBounds","boundsSize","maxStepSize","maxStepSizeSq","op","dv","dvLength","sqLen","squaredLength","squaredDistance","tubeScale","createMesh","createTubeMesh","crossTraceDefaults","annIn","annOut","borderColor","borderOpacity","borderWidth","showArrow","annotation","hoverText","globalHoverLabel","hoverBG","hoverBorder","contrast","unique_pred","unique_eq","unique","sorted","robustDot","planeT","plane","lerpW","wa","wb","splitPolygon","negative","classRe","functionToString","$forEach","tablePlot","TABLE","polybool","Fx","throttle","makeEventData","clearGlCanvases","redrawReglTraces","MINSELECT","filteredPolygon","polygonTester","getAxId","prepSelect","startX","startY","dragOptions","filterPoly","selectionTester","mergedPolygons","currentPolygon","searchInfo","zoomLayer","_zoomlayer","dragBBox","element","path0","pw","xaxes","ph","yaxes","allAxes","altKey","coerceSelectionsCache","BENDPX","outlines","fillRangeItems","corners","throttleID","SELECTID","searchTraces","determineSearchTraces","p2r","p2d","axValue","ascending","dataPts","lassoPoints","filtered","moveFn","selectdirection","xmin","xmax","ymin","ymax","addPt","selectionDefs","mergePolygons","multiTester","drawSelection","SELECTDELAY","thisSelection","traceSelection","traceSelections","fillSelectionItem","updateSelectedState","emit","clickFn","numClicks","evt","clickmode","clearSelectionsCache","selectOnClick","doneFn","doneFnCompleted","xAxes","yAxes","polygonOutlines","currentSelectionDef","thisTracesSelection","pointOrBinSelected","hoverData","_hoverdata","sendEvents","isHoverDataSet","clickedPtInfo","extractClickedPtInfo","isBinnedTrace","pointNumbers","isOnlyThisBinSelected","isOnlyOnePointSelected","isPointOrBinSelected","shiftKey","newPointSelectionDef","allSelectionDefs","isPointSelectionDef","newPointNumTester","pointSelectionDef","omitFirstEdge","idxWantedTrace","idxActualTrace","isRect","degenerate","testers","contained","selectingOnSameSubplot","_lastSelectedSubplot","hasModifierKey","clearSelect","xAxisIds","yAxisIds","_xaxes","_yaxes","info","createSearchInfo","sankeyInfo","paths","ppts","hoverOnBox","hoverDatum","binNumber","ptNum","ptNums","ptNumsSet","ptNumToTest","isSameTrace","tracesWithSelectedPts","fullInputTrace","_fullInput","tracePreGUI","_tracePreGUI","pointIndices","pointIndex","hasRegl","node3","nodeRangePlot3","res","difference","regions","inverted","union","zoomlayer","rationalize","handleArrayContainerDefaults","_hasNumber","_hasDelta","_hasGauge","_range","bignumberFontSize","deltaFontSize","gaugeIn","gaugeOut","axisIn","axisOut","auto","coerceGauge","gauge","coerceGaugeAxis","defaultNumberFontSize","relative","_scaleNumbers","isBullet","_isBullet","_isAngular","defaultBarThickness","valueThickness","handleItemDefaults","stepDefaults","stepIn","stepOut","steps","sizeRef","sizeMin","baseFn","baseSize","interactConstants","numStripRE","titleClass","editAttr","prop","traceIndex","containerGroup","isplaceholder","txt","editable","templateString","elShouldExist","ensureSingle","titleLayout","titleEl","scootTitle","transformVal","fontWeight","previousPromises","titleElIn","titleGroup","backside","shiftSign","titlebb","paperbb","maxshift","maxShift","avoidbb","shiftTemplate","setPlaceholder","SHOW_PLACEHOLDER","HIDE_PLACEHOLDER","allBlankCharCodes","original","locationCache","workingPath","workingTextWidth","segmentsIntersect","x4","y4","det","perpDistance2","xab","yab","llab","xac","yac","fcAB","xbc","ybc","crossProduct","segmentDistance","x12","y12","x34","y34","ll12","ll34","dist2","getTextLocation","totalPathLen","positionOnPath","textWidth","getPointAtLength","atan","pCenter","clearLocationCache","getVisibleSegment","pt0","ptTotal","pTotal","getTotalLength","getDistToPlot","distToPlot","isClosed","diff","iterationLimit","handleXYZDefaults","handleConstraintDefaults","isConstraint","convexHull1d","convexHull2d","convexHullnd","convexHull","ms2DateTime","dateTime2ms","numConstants","FP_SAFE","LOG_CLIP","fromLog","isValidCategory","toLog","clip","dt2ms","msecTenths","msRounded","ms2dt","getCategoryName","setCategoryIndex","_categoriesMap","curLength","setMultiCategoryIndex","arrayIn","arrayOut","getCategoryIndex","getCategoryPosition","p2l","p2c","d2r","l2d","d2p","r2p","r2c_just_indices","setupMultiCategory","traceIndices","matchGroups","_axisMatchGroups","axId2","ind0","ind1","rl0","rl1","r2fraction","rangeAttr","DFLTRANGEY","DFLTRANGEX","rangemode","linCenter","MIN_MS","MAX_MS","usePrivateRange","overlaying","_replotting","isTypedArray","subarray","isPtWithinRange","clearCalc","emptyCategories","found","categoriesMap","_initialCategories","sortByInitialCategories","affectedTraces","_matchGroup","locale","timeFormat","utc","separators","numberFormat","TEXTPAD","pi","tauEpsilon","Path","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","arc","ccw","cw","rect","src_path","point_x","point_y","linkSource","linkTarget","link_link","argv","curveHorizontal","linkHorizontal","dragElement","setCursor","makeDragBox","DRAGGERSIZE","initInteractions","mainplot","maindrag","onmousemove","_rehover","_hoversubplot","_lasthover","onmouseout","_dragging","unhover","showAxisDragHandles","hoverLayer","_hoverlayer","onmousedown","cursor","_draggers","az","zOld","rowlen","collen","getCollen","old2new","cleanZvalue","padOld2new","axisMapping","axMapping","traceCategories","xMap","yMap","zNew","getGraphDiv","gdElement","getElementById","isPlotDiv","HTMLElement","removeElement","elParent","removeChild","styleString","addRelatedStyleRule","styleSheet","sheet","insertRule","addRule","deleteRelatedStyleRule","ThaiCalendar","thai","Parser","DOMParser","ModeBar","graphInfo","createModeBar","modeBar","_modebardiv","_privateplot","modeBarId","className","displayModeBar","modebar","bgSelector","activecolor","needsNewButtons","hasButtons","needsNewLogo","hasLogo","displaylogo","needsNewLocale","removeAllButtons","updateButtons","watermark","logoGroup","getLogo","childNodes","updateActiveButton","_this","buttonElements","buttonsNames","buttonGroup","createGroup","buttonConfig","buttonName","createButton","createIcon","question","thisIcon","iconHeight","ascent","descent","svgNS","svgDoc","parseFromString","buttonClicked","dataAttrClicked","thisval","isToggleButton","button3","currentButtons","newplotlylogo","getBuiltIn","subtypes","lonlat2","modHalf","xy","oppAxisAttrs","helpers","rangeslider","calcAutorange","makeData","autoMarginOpts","WeakMapPoly","isValue","ensureValue","randomUniq","getIterator","forOf","toStringTagSymbol","isNative","objHasOwnProperty","iterable","WeakMap","delete","__weakMapData__","handleText","moduleHasSelected","moduleHasUnselected","moduleHasConstrain","moduleHasCliponaxis","moduleHasTextangle","moduleHasInsideanchor","handleGroupingDefaults","posAxId","alignmentOpts","alignmentIndex","offsetGroupOpts","offsetIndex","hasPathbar","hasBoth","hasInside","hasOutside","dfltFont","insideTextFontDefault","isTraceTextfontColorSet","isColorInheritedFromLayoutFont","pathbarTextFontDefault","sizes","isSize","extendDeep","colorAttrs","domainAttrs","axesAttrs","textFontAttrs","gaugeBarAttrs","thickness","items","stepsAttrs","valueformat","reference","INCREASING","SYMBOL","COLOR","DECREASING","float32","float","fract32","fract","narr","compile","CACHE","typeSig","compiled","ops","createTexture2D","linearTypes","filterTypes","wrapTypes","lazyInitLinearTypes","LINEAR","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","NEAREST","NEAREST_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","CLAMP_TO_EDGE","MIRRORED_REPEAT","acceptTextureDOM","HTMLCanvasElement","HTMLImageElement","HTMLVideoElement","ImageData","convertFloatToUint8","inp","reshapeTexture","maxSize","getParameter","MAX_TEXTURE_SIZE","_shape","texImage2D","TEXTURE_2D","_mipLevels","Texture2D","handle","_magFilter","_minFilter","_wrapS","_wrapT","_anisoSamples","wrapVector","wrapS","wrapT","_wrapVector","shapeVector","_shapeVector","isPacked","texSubImageArray","x_off","y_off","mip_level","cformat","ctype","mipLevels","packed","FLOAT","UNSIGNED_BYTE","LUMINANCE","ALPHA","LUMINANCE_ALPHA","RGB","RGBA","needsMip","texSubImage2D","pack_buffer","mallocFloat32","mallocUint8","pack_view","freeFloat32","freeUint8","initTexture","bindTexture","texParameteri","TEXTURE_MIN_FILTER","TEXTURE_MAG_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","createTextureShape","maxTextureSize","getExtension","createTextureDOM","directData","createTextureArray","buf_store","malloc","buf_array","free","raw","minFilter","magFilter","mipSamples","psamples","ext","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","unit","activeTexture","TEXTURE0","ACTIVE_TEXTURE","deleteTexture","generateMipmap","heatmap","_opts","hasArrayRadius","cOpts","scl","reversescale","flipScale","scl01","color0","addOpacity","heatmapColor","zExp","sortAsc","sorterAsc","snapRatio","snapOvershoot","vAdjacent","snapClose","closeToCovering","ordinalScaleSnap","isHigh","existingRanges","overlappingExisting","aHere","aPrev","nextI","aNext","barHorizontalSetup","captureWidth","backgroundBarHorizontalSetup","setHighlight","brush","filterSpecified","sectionHeight","iNext","pixelRanges","unitToPx","getConsolidated","currentGap","unitRanges","pr","getRegion","fPix","handleHeight","clearCursor","styleHighlight","renderHighlight","tweenCallback","barToStyle","snapDuration","getInterval","active","closestInterval","intervals","pixIntervals","hoveredInterval","previousInterval","nextInterval","region","intervalPix","ordinal","unitTickvals","unitLocation","unitToPaddedPx","rangei","clickableOrdinalRange","dragstart","lThis","sourceEvent","stopPropagation","verticalPadding","unitRange","svgBrush","wasDragged","grabbingBar","pixelRange","grabPoint","barLength","stayingIntervals","multiselect","int2","startExtent","inBrushDrag","brushStartCallback","drag","newExtent","brushCallback","dragend","mousemove","grabLocation","brushClear","brushEndCallback","mergeIntervals","hasNewExtent","attachDragBehavior","preventDefault","behavior","startAsc","renderAxisBrush","axisBrush","highlightShadow","strokeWidth","strokeColor","strokeOpacity","fillColor","fillOpacity","ensureAxisBrush","axisOverlays","getBrushExtent","axisBrushMoved","dedupeRealRanges","currentInterval","makeFilter","consolidated","getBounds","makeBrush","rangeSpecified","initialRange","cleanRanges","sortedTickVals","rSnapped","relinkColorAttrs","outerCont","cbOpt","_colorAx","isAuto","autocolorscale","cbOpts","_colorAxes","bindAttribs","VAOEmulated","_elements","_attributes","_elementsType","UNSIGNED_SHORT","createVAOEmulated","elements","elementsType","drawElements","drawArrays","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","dictionary","error2","days","shortDays","months","shortMonths","periods","dateTime","decimal","thousands","grouping","currency","dayMonth","dayMonthYear","scatterMarkerAttrs","scatterMarkerLineAttrs","q1","median","q3","lowerfence","upperfence","notched","notchwidth","notchspan","boxpoints","jitter","pointpos","boxmean","mean","sd","quartilemethod","outliercolor","outlierwidth","whiskerwidth","dup","cwiseCompiler","TEMPLATE_CACHE","GRADIENT_CACHE","EmptyProc","thisVars","localVars","centralDiff","pre","post","lvalue","rvalue","zeroOut","generateTemplate","names","generateGradient","boundaryConditions","token","handleBoundary","facet","cod","loStr","hiStr","pickStr","boundStr","bnd","outStr","cPickStr","dPickStr","aPickStr","bPickStr","sfaces","linkNames","linkArgs","bc","cached","byteLength","toByteArray","fromByteArray","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","objName","hasErrorBars","symmetric","copyAttr","inheritObj","iota","namelength","hasOnlyLines","tinycolor","isValidScale","colorKey","isArrayWithOneNumber","showscale","cmin","cmax","constantAttrs","letterAttrs","colorAx","cont2","k2","_sync","extractScale","sclNew","makeColorScaleFunc","specs","toRgb","sclFunc","_sclFunc","linear","noNumericCheck","returnArray","colorArray2rbga","colorArray","colorObj","toRgbString","function","lineString","_coords","num2bn","numer","denom","snumer","sdenom","cmpn","styleOne","attachFxHandlers","onPathbar","slices","barDifY","viewX","viewY","pathSlice","toMoveInsideSlice","strTransform","hasTransition","handleSlicesExit","makeUpdateSliceInterpolator","makeUpdateTextInterpolator","refRect","eachWidth","_entryDepth","pathIds","listPath","sliceData","packing","inner","descendants","level","getPtId","updateSlices","sliceTop","setSliceCursor","hideOnRoot","hideOnLeaves","isTransitioning","_hoverX","_hoverY","slicePath","attrTween","pt2","transitionTime","CLICK_TRANSITION_TIME","transitionEasing","CLICK_TRANSITION_EASING","_transitioning","hovered","getPtLabel","sliceTextGroup","sliceText","ensureUniformFontSize","determineTextFont","textBB","weakMap","mergeLength","isOpenSymbol","dimensionDefaults","dimIn","dimOut","dimensions","handleAxisDefaults","dimLength","showUpper","showupperhalf","showLower","showlowerhalf","showDiag","diagonal","xAxesDflt","yAxesDflt","diag","_diag","xList","yList","fillAxisStashes","counterAxId","_splomAxes","matches","mustShiftX","mustShiftY","_axesDim","i0","iN","xaId","yaId","_splomSubplots","_splomGridDflt","xside","yside","isOpen","isBubble","getShaderReference","program","createProgram","GLError","SHADER_COUNTER","ShaderReference","programs","cache","ContextCache","deleteProgram","deleteShader","compileShader","shaderSource","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","console","linkProgram","vshader","fshader","attribs","attachShader","bindAttribLocation","getProgramParameter","LINK_STATUS","getProgramInfoLog","getCache","ctxCache","vref","fref","getProgram","isShader","shaderObj","prog","isProgram","containerClassName","bgClassName","rangePlotClassName","maskMinClassName","maskMaxClassName","slideBoxClassName","grabberMinClassName","grabAreaMinClassName","handleMinClassName","grabberMaxClassName","grabAreaMaxClassName","handleMaxClassName","maskMinOppAxisClassName","maskMaxOppAxisClassName","maskColor","maskOppAxisColor","slideBoxFill","slideBoxCursor","grabAreaFill","grabAreaCursor","grabAreaWidth","handleWidth","handleRadius","handleStrokeWidth","extraPad","fromValues","tempA","tempB","cosine","ch","uniq","LiftedPoint","compareLifted","ap","bp","triangulate1D","includePointAtInfinity","lifted","triangulate","upper","dpoints","dindex","hull","arrayEditor","_shapeUpperLayer","_shapeLowerLayer","shapelayer","shapes","drawShape","mainPlot","shapeLayer","getPathString","setClipPath","shapePosition","setupDragElement","shapePath","shapeOptions","clipAxes","setClipUrl","xAnchor","yAnchor","e0","optN","optS","optW","optE","pathIn","dragMode","MINWIDTH","MINHEIGHT","xPixelSized","xsizemode","yPixelSized","ysizemode","isLine","isPath","editHelpers","modifyItem","x2p","getDataToPixel","y2p","p2x","getPixelToData","p2y","sensoryElement","obtainSensoryElement","prepFn","startDrag","endDrag","abortDrag","createLineDragHandles","minSensoryWidth","sensoryWidth","circleStyle","circleRadius","updateDragMode","tagName","clientX","clientY","getCursor","renderVisualCues","deactivateClipPathTemporarily","moveShape","resizeShape","removeVisualCues","getUpdateObj","noOp","moveX","moveY","encodeDate","movePath","newX0","newY0","newX1","newY1","newN","newS","newW","newE","renderAnchor","isNotPath","visualCues","posX","midRange","extractPathCoords","paramIsX","posY","paramIsY","roundPositionForSharpStrokeRendering","crossPath","vBarPath","hBarPath","init","x2r","y2r","shapePositionToRange","decodeDate","convertPath","xAnchorPos","yAnchorPos","rArc","rightPt","topPt","xSizemode","ySizemode","segmentRE","segment","paramNumber","segmentType","xParams","yParams","nParams","numParams","paramString","paramRE","param","micropolar","UndoManager","manager","framework","_gd","previousConfigClone","convertedInput","undoManager","_inputConfig","_container","Axis","adapter","plotly","fillLayout","isPolar","getConfig","getLiveConfig","getLiveScales","angularScale","radialScale","setUndoPoint","configClone","util","cloneJson","_configClone","_previousConfigClone","paperDiv","paper","dflts","toInteger","integer","gapWithPathbar","redefine","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","internalObjectKeys","enumBugKeys","hiddenKeys","PolyBool","BuildLog","Epsilon","Intersecter","SegmentChainer","SegmentSelector","GeoJSON","buildLog","operate","poly1","poly2","seg1","seg2","comb","seg3","bl","addRegion","calculate","segments1","segments2","i3","combined","inverted1","inverted2","selectUnion","selectIntersect","intersect","selectDifference","selectDifferenceRev","differenceRev","selectXor","xor","polygonFromGeoJSON","toPolygon","polygonToGeoJSON","fromPolygon","bits","UnionFind","il","countVertices","vc","jl","cloneCells","ncells","l1","m1","l0","m0","as","bs","compareZipped","zipped","findCell","incidence","from_cells","to_cells","cl","kn","popCount","dual","vertex_count","skeleton","explode","k0","nextCombination","connectedComponents_dense","components","component_labels","ranks","connectedComponents_sparse","vj","connectedComponents","mesh3dAttrs","fromMesh3d","calcSelection","fixNum","prevGoodNum","serieslen","connectToNext","cNext","vTotal","begR","sumR","difR","drawArrowHead","drawRaw","modifyBase","annClipID","annPosPx","annGroup","annTextGroup","editTextPosition","textEvents","annotationText","annTextGroupInner","hoverOptions","hoverFont","bBoxRef","loneHover","outerContainer","loneUnhover","borderfull","annTextBG","isSizeConstrained","annTextClip","_topclips","annText","textLayout","initialEvent","fullAnnotation","drawGraphicalElements","anchor3","wholeLink","hasMathjax","anntextBB","annWidth","annHeight","outerWidth","outerHeight","shiftFraction","annotationIsOffscreen","letters","basePx","textPadShift","alignPosition","autoAlignFraction","textShift","tailRef","dimAngle","annSizeFromWidth","annSizeFromHeight","annSize","overallShift","posPx","posFraction","arrowLength","maxPx","shiftPlus","shiftMinus","xShift","yShift","texty","textx","setRect","baseTextTransform","drawArrow","headX","headY","tailX","tailY","textX","textY","rotationXYMatrix","applyTransform","apply2DTransform","applyTransform2","apply2DTransform2","xLeft","xRight","yTop","yBottom","edges","strokewidth","arrowColor","arrowSide","arrowGroup","arrow","annotationPosition","arrowDragHeadX","arrowDragHeadY","annx0","anny0","arrowDrag","annxy0","xcenter","ycenter","axref","ayref","notesBox","selectedObj","xUpdate","yUpdate","widthFraction","_xsize","_xshift","heightFraction","_ysize","_yshift","validateSymbol","registry","SymbolPolyfill","for","keyFor","subplotsDone","ip","jp","ni","nj","avgSurrounding","dxp","dxm","dap","dam","dbp","dbm","reldiff","overrelaxation","dmax","tol","resid","itermax","iter","d0","d1","j0","boundaryCnt","newVal","resolveException","is","createErrorBars","IDENTITY","ErrorBars","capSize","lineOffset","updateBounds","cz","orthoFix","pixelScaleF","LINES","FACE_TABLE","emitFace","offsets","inverse","rank","permutation","pinv","unrank","nf","transformQuat","qx","qy","qz","qw","ix","iy","iz","iw","gup","svgUtil","raiseToTop","cancelEeaseColumn","cancelTransition","prepareData","splitData","roundHalfWidth","maxLineWidth","scrollAreaBottomClipKey","columnBoundaryClipKey","specIndex","flatData","__data__","renderScrollbarKit","bypassVisibleBar","calcTotalHeight","blocks","rowBlocks","firstRowAnchor","rowsHeight","scrollbarState","totalHeight","scrollableAreaHeight","groupHeight","headerHeight","currentlyVisibleHeight","barWiggleRoom","wiggleRoom","topY","scrollY","bottomY","dragMultiplier","xPosition","columnDragInProgress","bbox","pixelVal","inverseScale","makeDragRow","origin","scrollbarScrollInProgress","renderColumnCellTree","allColumnBlock","renderColumnCells","renderColumnCell","supplyStylingValues","renderCellRect","sizeAndStyleRect","renderCellTextHolder","renderCellText","setFont","populateCellText","setCellHeightAndPositionY","splitToCells","keyWithinBlock","spec","col","column","gridPick","rowNumber","cellBorderWidth","columnWidth","atomicSelection","userSuppliedContent","stringSupplied","hasBreaks","userBrokenText","mayHaveMarkup","latex","isLatex","hasWrapSplitCharacter","textToRender","prefixSuffixedText","wrappingNeeded","wrapped","hasWrapCharacter","cellHeightMayIncrease","needsConvertToTspans","hrefPreservedText","fragments","hrefRestoredFragments","frag","fragment","renderCallback","wrapTextMaker","updateYPositionMaker","content","columnMoved","gdColumnsOriginalOrder","gdColumns","columnorder","easeColumn","cellsBlock","headerBlock","headerBlocks","auxiliaryBlocks","findPagesAndCacheHeights","scrollHeight","pages","pTop","blockIndex","block","blockRows","rows","rowHeight","allRowsHeight","pBottom","windowTop","windowBottom","updateBlockYPosition","cellsColumnBlock","page","yTranslate","conditionalPanelRerender","prevPages","allTableControlView","optionalMultiplier","optionalPosition","eventD","dd","multiplier","initialScrollY","revolverIndex","shouldComponentUpdate","currentRepaint","toRerender","getComputedTextLength","currentAddition","currentAdditionLength","separatorLength","rest","currentRow","currentRowLength","rowLengthLimit","settledY","getBlock","rowIndex","firstRowIndex","declaredRowHeight","requiredHeight","finalHeight","increase","columnCellElement","box","rectBox","currentTransform","baseVal","consolidate","yPosition","optionalWidth","rowAnchor","yOffset","getRow","rowBlock","wrappedTraceHolders","dynamic","wrappedTraceHolder","traceHolder","translateX","translateY","cvEnter","wheeling","newY","deltaY","noChange","vm","columns","movedColumn","sortableColumns","newOrder","xIndex","xScale","splitToPanels","dragHandle","headerColumnBlock","scatterGlAttrs","cartesianIdRegex","markerLineAttrs","markerAttrs","makeAxesValObject","freeLength","hoverOn","bx","by","bz","tickLen","tickWidth","tickColor","showTicks","createLines","Lines","vbo","lineVert","lineFrag","screenBox","drawLine","endX","endY","ctor","superCtor","super_","writable","configurable","TempCtor","createUniformWrapper","createAttributeWrapper","makeReflect","shaderCache","runtime","Shader","lastAttribCount","_vref","_fref","_relink","vertShader","fragShader","compareAttributes","vertSource","fragSource","newAttribCount","ACTIVE_ATTRIBUTES","oldAttribCount","enableVertexAttribArray","disableVertexAttribArray","useProgram","pvref","VERTEX_SHADER","pfref","testProgram","attributeUnpacked","attributeNames","attributeLocations","locVector","curLocation","uniformLocations","relink","getUniformLocation","vectorfield","vertexIntensityBounds","coneOffset","p2","u2","positionVectors","vectorScale","skipIt","minV","maxV","invertedMaxNorm","coneScale","coneSize","absoluteConeSize","intensity","createConeMesh","getDimIndex","visibleDims","_visibleDims","vmin","vmax","createScatter","createLine","createError","Text","prepareRegl","linkTraces","styleTextSelection","getViewport","cdata","success","regl","_glcanvas","error2d","line2d","scatter2d","fill2d","glText","textsToAdd","textsToRemove","removedTexts","textOptions","lineOptions","srcPos","firstptdef","lastptdef","errorBatch","errorXOptions","errorYOptions","markerOptions","fillOrder","fillOptions","fillData","nextTrace","nextOptions","nextPos","xx","yy","prevLinePos","hole","fillmode","selectMode","clickSelectEnabled","selPts","selIndices2selPoints","selDict","unselPts","xpx","ypx","unselOpts","markerUnselectedOptions","markerSelectedOptions","vpRange0","vpRange","bottomText","withColorscale","headerSize","_hovered","pathbar","_sankey","graph","partOfGroup","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","globalWindow","mozRequestAnimationFrame","webkitRequestAnimationFrame","forEachElement","isCollectionTyped","jQuery","Elements","getElementSize","offsetWidth","offsetHeight","setStyle","ResizeSensor","EventQueue","sizeInfo","newQueue","attachResizeEvent","resized","resizedAttached","resizeSensor","pointerEvents","zIndex","maxWidth","styleChild","expand","expandChild","shrink","shrinkChild","rafId","computedStyle","getComputedStyle","getPropertyValue","lastWidth","lastHeight","initialHiddenCheck","lastAnimationFrame","resetExpandShrink","scrollLeft","scrollTop","invisible","resetSensor","onResized","onScroll","addEvent","cb","attachEvent","elem","detach","mutations","addedNodes","childList","subtree","hasHover","matchMedia","version","userAgent","v8","INTERPTHRESHOLD","NEIGHBORSHIFTS","correctionOvershoot","maxFractionalChange","iterateInterp2d","emptyPoints","overshoot","neighborShift","neighborRow","neighborVal","neighborSum","initialVal","minNeighbor","maxNeighbor","negate","PersianCalendar","epBase","epYear","depoch","cycle","cyear","ycycle","aux1","aux2","yday","persian","jalali","PlotSchema","plotAttributes","dfltConfig","mergeTemplates","oldTemplate","newTemplate","oldKeys","mergeOne","oldVal","templater","arrayTemplater","_template","item","oldItem","newItem","defaultItems","templateitemname","getBaseKey","key2","baseKey2","walkStyleKeys","templateOut","getAttributeInfo","basePath","pathAttr","nextPath","getNextPath","nextBasePath","baseKey","_noTemplating","_isLinkedToArray","dfltDone","namedIndex","usedNames","dfltKey","arrayDefaultKey","dfltPath","pathInArray","itemPropInArray","dfltProp","templateProp","getLayoutInfo","getLayoutValObject","getTraceInfo","getTraceValObject","hasPlainObject","templateCount","makeTemplate","figure","_basePlotModules","_modules","template","traceTemplate","typeTemplates","oldTypeTemplates","oldTypeLen","typeLen","oldLayoutTemplate","oldDataTemplate","validateTemplate","figureIn","layoutTemplate","dataTemplate","errorList","layoutPaths","crawlLayoutForContainers","nextPaths","crawlLayoutTemplateForContainers","typeCount","crawlForMissingTemplates","stringifyFont","defaultChars","atlas","chars","newchars","textAlign","textBaseline","colorway","compressExpansion","attributeTextFont","attributeInsideTextFont","attributeOutsideTextFont","barcount","stylePoints","pointStyle","determineFont","stylePointsInSelectionMode","selectedPointStyle","styleTextInSelectionMode","txs","selectedFontColor","selectedTextStyle","layoutFont","textFont","barColor","getBarColor","getInsideTextFont","getOutsideTextFont","getTextFont","defaultValue","getFontValue","defaultFont","wouldFallBackToLayoutFont","attributeDefinition","attributeValue","familyValue","getValue","sizeValue","colorValue","coerceString","coerceNumber","coerceColor","sankeyCircular","justify","d3_array__WEBPACK_IMPORTED_MODULE_0__","d3_collection__WEBPACK_IMPORTED_MODULE_1__","d3_shape__WEBPACK_IMPORTED_MODULE_2__","elementary_circuits_directed_graph__WEBPACK_IMPORTED_MODULE_3__","elementary_circuits_directed_graph__WEBPACK_IMPORTED_MODULE_3___default","targetDepth","depth","sourceLinks","targetLinks","_typeof","ascendingSourceBreadth","ascendingBreadth","ascendingTargetBreadth","partOfCycle","circularLinkType","nodeCenter","linkSourceCenter","linkTargetCenter","defaultId","defaultNodes","defaultLinks","getNodeID","verticalMargin","baseRadius","paddingRatio","circularLinkGap","sortNodes","computeNodeLinks","identifyCircles","computeNodeValues","computeNodeDepths","selectCircularLinkTypes","computeNodeBreadths","computeLinkBreadths","linkSortingIterations","iteration","sortSourceLinks","sortTargetLinks","resolveNodeLinkOverlaps","fillHeight","addCircularPathData","circular","getCircleMargins","totalTopLinksWidth","totalBottomLinksWidth","totalRightLinksWidth","totalLeftLinksWidth","maxColumn","scaleSankeySize","currentWidth","currentHeight","newWidth","newHeight","scaleX","scaleY","sortKeys","initializeNodeBreadth","resolveCollisions","relaxLeftAndRight","thisPadding","ky","nodesLength","numberOfNonSelfLinkingCycles","columnsLength","nodeHeight","avg","avgTargetY","avgSourceY","y0cycle","y1cycle","nodeAlign","nodeWidth","nodePadding","nodePaddingRatio","circularLinkID","adjList","cycles","circularLinks","numberOfTops","numberOfBottoms","selfLinking","linkAngle","circularLinksCross","link1","link2","sourceCount","targetCount","onlyCircularLink","nodeSourceLinks","nodeTargetLinks","calcVerticalBuffer","sortLinkColumnAscending","circularPathData","verticalBuffer","bufferOverThisLink","topLinks","bottomLinks","arcRadius","leftNodeBuffer","rightNodeBuffer","sourceWidth","sourceX","targetX","sourceY","targetY","leftSmallArcRadius","leftLargeArcRadius","rightSmallArcRadius","rightLargeArcRadius","verticalFullExtent","verticalLeftInnerExtent","verticalRightInnerExtent","thisColumn","thisCircularLinkType","sameColumnLinks","sortLinkSourceYDescending","sortLinkSourceYAscending","radiusOffset","sortLinkTargetYDescending","sortLinkTargetYAscending","leftInnerExtent","rightInnerExtent","leftFullExtent","rightFullExtent","createCircularPathString","normalPath","pathString","linkColumnDistance","linkXLength","linkPerpendicularYToLinkSource","longerLink","shorterLink","heightFromY1ToPependicular","yPerpendicular","incline","linkPerpendicularYToLinkTarget","columnToTest","maxColumnToTest","numberOfColumnsToTest","B0_t","B1_t","B2_t","B3_t","py_t","linkY0AtColumn","linkY1AtColumn","adjustNodeHeight","otherNode","nodesOverlap","nodeA","nodeB","sankeyY0","sankeyY1","moveNodes","nodesSourceLinks","nodeSourceLinksLength","sameInclines","link2Adj","link1Adj","ySourceOffset","offsetFromBottom","nodesTargetLinks","nodesTargetLinksLength","yTargetOffset","minY0","maxY1","chartHeight","ASCEND","SIMPLEATTR","baseAttr","relativeAttr","compileSearch","predicate","reversed","extraArgs","useNdarray","earlyOut","compileBoundsSearch","ge","eq","convertTypedArray","isOrdinal","ses","ok","weakMapPermitHostObjects","doubleWeakMapCheckSilentFailure","HostWeakMap","navigator","testMap","testObject","freeze","gopn","defProp","isExtensible","HIDDEN_NAME_PREFIX","HIDDEN_NAME","crypto","getRandomValues","ArrayBuffer","ab","u8s","u8","isNotHiddenName","originalGetPropertyNames","getPropertyNames","oldFreeze","getHiddenRecord","oldSeal","seal","oldPreventExtensions","preventExtensions","calledAsFunctionWarningDone","OurWeakMap","calledAsFunctionWarning","get___","opt_default","hiddenRecord","has___","set___","delete___","lastIndex","constFunc","DoubleWeakMap","dset","hmap","omap","enableSwitching","dget","dhas","ddelete","permitHostObjects___","Proxy","mapLegacy","oldAttr","newAttr","_xlength","_ylength","surfaceColor","dims","contourDim","getOwnPropertyDescriptors","descriptors","formatRegExp","isString","inspect","JSON","stringify","isNull","isObject","deprecate","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","debugEnviron","debugs","stylize","stylizeNoColor","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","styles","arrayToHash","hash","recurseTimes","ret","primitive","formatPrimitive","visibleKeys","isError","formatError","isRegExp","isDate","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","isNumber","desc","cur","numLinesEst","ar","isNullOrUndefined","isSymbol","objectToString","isPrimitive","debuglog","NODE_DEBUG","toUpperCase","timestamp","getMinutes","getSeconds","inherits","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","callbackify","callbackified","maybeCb","rej","promisify","promiseResolve","promiseReject","custom","solveIntersection","ratMul","ratDiv","ratSub","ratSign","rvSub","rvAdd","rvMuls","ratPerp","ba","dc","baXdc","ac","dcXac","contourAttrs","contourContourAttrs","atype","btype","autocontour","ncontours","showlines","showlabels","labelfont","labelformat","reg","compareAngle","robustProduct","testInterior","bcd","sabc","sabd","ic","abc","abd","createBackgroundCube","bg","BackgroundCube","Uint16Array","ELEMENT_ARRAY_BUFFER","normal","needsBG","POLYGON_OFFSET_FILL","polygonOffset","TRIANGLES","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","shouldUseNative","test1","test2","order2","test3","letter","symbols","to","drawModule","includeBasePlot","rs","rd","rc","rc2","ne","se","sw","nw","rt","r2","pentagon","hexagon","hexagon2","octagon","star","y5","hexagram","aPart","rp","hourglass","noDot","bowtie","needLine","noFill","asterisk","str2RGBArray","SpikeOptions","drawSides","createSpikeOptions","merge","spikecolor","spikesides","spikethickness","isIterable","histogram2dAttrs","GeoPoly","LineString","ls","eps","regionInsideRegion","pointInsideRegion","roots","addChild","forceWinding","winding","last_x","last_y","curr_x","curr_y","isclockwise","geopolys","addExterior","getInterior","barPlot","clearMinTextSize","plotConnectorRegions","cdModule","traceLayer","isHorizontal","connectors","getXY","layerClipId","plotConnectorLines","sAxis","pAxis","nextS0","nextP0","nextS1","nextP1","funnelmode","funnelgap","funnelgroupgap","hasClickToShow","sets","getToggleSets","explicitOff","onClick","toggleSets","onSet","offSet","annotationsOut","anni","showMode","pointj","toggleType","explicitOffSet","hoverLen","clicktoshow","clickData2r","_xclick","_yclick","constraintMapping","endPlus","contoursFinal","_operation","cs","pathinfo","basePathinfo","ci","crossings","starts","edgepaths","toLogRange","newType","doExtra","attrPrefix","currentVal","boxIntersectIter","bruteForce","bruteForcePartial","partial","bruteForceFull","full","sweep","BRUTE_FORCE_CUTOFF","SCAN_CUTOFF","SCAN_COMPLETE_CUTOFF","partitionInteriorContainsInterval","partitionStartEqual","partitionEndLessThanEqual","partitionContainsPoint","partitionContainsPointProper","IFRAME_SIZE","DFRAME_SIZE","INIT_CAPACITY","BOX_ISTACK","mallocInt32","BOX_DSTACK","mallocDouble","iterInit","levels","log2","maxInts","nextPow2","maxDoubles","iterPush","redStart","redEnd","blueStart","blueEnd","iptr","dptr","onePointPartial","red","redIndex","blueOffset","blue","blueId","bluePtr","blueX","red_loop","redPtr","retval","redId","onePointFull","initFull","xSize","xBoxes","ySize","yBoxes","yIndex","blueIndex","redCount","blueCount","scanComplete","scanBipartite","red0","sweepBipartite","blue0","blue1","red1","redX","sweepComplete","generateSolver","robustLinearSolve0d","robustLinearSolve1d","A","generateDispatch","toNumber","normalized","fromNumber","plotConnectors","isSum","waterfallmode","waterfallgap","waterfallgroupgap","boxLayoutAttrs","violinmode","boxmode","violingap","boxgap","violingroupgap","boxgroupgap","Loggers","pushUnique","ExtendModule","basePlotAttributes","baseLayoutAttributes","registerTraceModule","thisType","categoriesIn","subplotsRegistry","registerSubplot","categoryObj","allCategories","componentName","allTypes","componentsRegistry","mergeComponentAttrsToTrace","traceLayoutAttributes","bpmName","styleRules","plotType","findArrayRegexps","mergeComponentAttrsToSubplot","registerComponentModule","layoutArrayContainers","subplotName","transformType","transformsRegistry","mergeComponentAttrsToTransform","registerTransformModule","hasTransform","hasCalcTransform","calcTransform","registerLocale","baseLocale","newDict","newFormat","hasDict","hasFormat","locales","localeRegistry","localeObj","baseLocaleObj","arrayAttrRegexps","_arrayAttrRegexps","layoutArrayRegexes","componentSchema","traceAttrs","transformAttrs","subplotModule","subplotAttrs","subplotAttr","componentLayoutAttrs","getTraceType","apiMethodRegistry","collectableSubplotTypes","newModule","getModule","getTransformIndices","appVersion","hasX","hasY","_cheater","flattenVertexData","dstLength","containerArrayName","cartesianList","hasCartesianOrGL2D","itemi","hasXref","hasYref","newAxis","definePropertyModule","anObject","objectKeys","Properties","inheritColorFromMarker","markerLineColor","glslify","triVertSrc","triFragSrc","edgeVertSrc","edgeFragSrc","pointVertSrc","pointFragSrc","pickVertSrc","pickFragSrc","pickPointVertSrc","contourVertSrc","contourFragSrc","meshShader","wireShader","pointShader","pointPickShader","contourShader","getTraceColor","minRad","kink","dxRaw","dyRaw","dxy","distfn","getDistanceFunction","getClosest","xc","yc","sizeVal","sNorm","spikeDistance","xCross","polygonsIn","inside","yAvg","maxHoverDistance","pieCalc","assert","endian","isBN","_init","Buffer","wordSize","parseHex","parseBase","_initNumber","_initArray","_parseHex","_parseBase","strip","toArray","limbLen","limbPow","word","imuln","_iaddn","_expand","_normSign","zeros","groupSizes","groupBases","toBitArray","bitLength","bit","wbit","smallMulTo","carry","ncarry","rword","maxJ","groupSize","groupBase","isZero","modn","idivn","toJSON","toBuffer","toArrayLike","ArrayType","reqLength","littleEndian","andln","iushrn","clz32","_countBits","_zeroBits","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","uxor","bytesNeeded","bitsLeft","setn","iadd","isub","comb10MulTo","al0","ah0","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","bl0","bh0","bl1","bh1","bl2","bh2","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","fftm","FFTM","mulp","mulTo","makeRBT","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","itwdf","rtwdf_","itwdf_","ie","ro","io","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","iushln","carryMask","newCarry","ishln","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","bhiBits","qj","divmod","divn","umod","divRound","dm","half","acc","egcd","B","C","D","isEven","im","isOdd","jm","_invmp","invm","bincn","ucmp","gtn","gten","gte","ltn","lten","lte","eqn","Red","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","outLen","mod3","one","nOne","lpow","inv","windowSize","wnd","currentLen","mont","resetOpts","textSelectedOptions","textUnselectedOptions","initOpts","findZeroCrossings","core","µ","inputConfig","liveConfig","axisConfig","datum","_data","_index","dataOriginal","colorIndex","defaultColorRange","darker","strokeDash","strokeSize","isStacked","dataWithGroupId","grouped","nest","dataYStack","stacked","prevArray","yStack","sumArrays","chartCenter","highestStackedValue","arrayLast","flattenArray","DATAEXTENT","angularDataMerged","deduplicate","hasOnlyLineOrDotPlot","needsEndSpacing","useProvidedDomain","angularDomain","angularDomainStep","angularDomainWithPadding","tickCount","ticksCount","ticksStep","angularTicksStep","minorTicks","angularAxisRange","toPrecision","endPadding","doc","ownerDocument","importNode","documentElement","legendContainer","chartGroup","lineStyle","fontStyle","outlineColor","showLegend","display","datumClone","dotType","visibleInLegend","Legend","legendConfig","defaultConfig","reverseOrder","legend","legendBBox","getBBox","centeringOffset","titleBBox","gridLinesVisible","gridCircles","backgroundCircle","backgroundColor","currentAngle","tickSize","ticksSuffix","tickOrientation","angularAxisEnter","minorTickColor","tickLength","ticksText","labelOffset","labelsVisible","rewriteTicks","rightmostTickEndX","getCTM","hasGeometry","geometryContainer","geometryConfigs","geometryConfig","dB","iB","geometryConfigsGrouped","geometryConfigsGrouped2","finalGeometryConfig","angularValue","radialValue","guides","tooltipContainer","angularTooltip","tooltipPanel","radialTooltip","geometryTooltip","hasTick","angularGuideLine","mouseAngle","getMousePos","angleWithOriginOffset","convertToCartesian","angularGuideCircle","hide","newColor","textData","xClone","getinputConfig","category10","AREA","LINE","DOT","BAR","_override","_objA","_objB","_rndSnd","dataFromEquation2","_equation","_step","dataFromEquation","ensureArray","_val","_count","fillArrays","_obj","_valueNames","parse","validateKeys","objHasKeys","zip","arrayEqual","thetaRadians","_value","_digits","_referenceElement","mousePos","mouseX","mouseY","atan2","duplicatesCount","uniques","dups","duplicates","translator","sourceBranch","targetBranch","targetBranchCopy","previousValue","currentValue","PolyChart","colorScale","isStack","domainMin","pI","dataConfig","stackTop","stackedData","dotSize","getPolarCoordinates","interpolate","lineInterpolation","dotVisible","markStyle","lineSelection","angularRange","triangleAngle","startAngle","endAngle","innerRadius","outerRadius","geometryLayer","polarCoordinates","geometryType","getColorScale","category20","BarChart","AreaChart","DotPlot","flattenData","isContinuous","legendContainerGroup","svgEnter","dataNumbered","shapeGenerator","_type","squareSize","symbolTypes","colorBandWidth","legendElement","symbolType","legendAxis","textColor","tooltipEl","tooltipTextEl","backgroundEl","tooltipEnter","boxStyle","backGroundW","backGroundH","_pos","outputConfig","toTranslate","traceorder","funnels","funnelsVert","funnelsHorz","funnelnorm","minVal","maxVal","vertexShaderSource","fragmentShaderSource","maxDim","depthLimitEpsilon","maskHeight","dummyPixel","dataPixel","paletteTextureConfig","ensureDraw","read","_gl","SCISSOR_TEST","scissor","renderBlock","glAes","renderState","blockLineCount","sampleCount","rafKey","blockNumber","currentRafs","scissorX","scissorY","scissorWidth","viewBoxSize","clearOnly","drawCompleted","adjustDepth","palette","unitToColor","calcPickColor","rgbIndex","makePoints","paddedUnitValues","makeVecAttr","vecIndex","pointPairs","pad2","getAttrName","setAttributes","emptyAttributes","usage","makeItem","leftmost","rightmost","itemNumber","panelSizeX","panelSizeY","crossfilterDimensionIndex","drwLayer","constraints","canvasOverdrag","canvasWidth","canvasHeight","deselectedLinesColor","deselectedLines","itemModel","resolution","viewBoxPos","dim0A","dim0B","dim0C","dim0D","dim1A","dim1B","dim1C","dim1D","contextColor","layoutWidth","layoutHeight","scissorHeight","viewportX","viewportY","viewportWidth","viewportHeight","expandedPixelRange","dh","canvasGL","initialDims","maskTexture","isContext","isPick","paletteTexture","prevAxisOrder","profile","srcRGB","dstRGB","srcAlpha","dstAlpha","equation","cull","face","dither","loA","hiA","loB","hiB","loC","hiC","loD","hiD","dNew","viewModel","makeConstraints","limits","bitMask","prevEnd","nextRange","textureData","renderGLParcoords","panels","setChanged","panelCount","lowestX","highestX","dim0","canvasX","dim1","canvasY","nextX","readPixel","readPixels","pixelArray","meta_1","RADIUS","geomReduce","geom","calculateArea","polygonArea","ringArea","p3","lowerIndex","middleIndex","upperIndex","coordsLength","AX_ID_PATTERN","axNum","AX_NAME_PATTERN","only2d","idList","idi","sceneIds3D","zaxis","subplotLists","id1","id2","letter1","letter2","makeComputeErrorValue","dataPt","arrayminus","valMinus","computeErrorValue","computeErrorValueMinus","valueminus","scatterFormatLabels","headerGroupClassName","headerClassName","headerArrowClassName","dropdownButtonGroupClassName","dropdownButtonClassName","buttonClassName","itemRectClassName","itemTextClassName","menuIndexAttrName","autoMarginIdRoot","blankHeaderOpts","minWidth","minHeight","textPadX","arrowPadX","textOffsetX","textOffsetY","arrowOffsetX","gapButtonHeader","gapButton","activeColor","hoverColor","arrowSymbol","down","vectorizeText","getGlyph","GLYPH_CACHE","fontCache","lineSpacing","styletags","breaklines","bolds","italics","subscripts","superscripts","triSymbol","lineSymbol","bnsign","parseRect","parcats","parcatsModels","IslamicCalendar","islamic","treemapcolorway","extendtreemapcolors","crawl","objIn","objOut","valIn","valOut","nestedSchema","getNestedSchema","isInfoArray","isColorscale","isInSchema","valInPart","valOutPart","arrayItems","validate","_p","_nestedSchema","indexList","valInj","valOutj","fillLayoutSchema","dataOut","layoutSchema","traceSchema","traceLayoutAttr","dataIn","transformsIn","transformsOut","transformSchema","code2msgFunc","inBase","unused","convertPathToAttributeString","splitKey","keyMinusId","idMatch","mapboxgl","createMapboxLayer","Mapbox","_glcontainer","isStatic","createFramework","accessToken","styleObj","traceHash","layerList","belowLookup","dragging","accesstoken","updateMap","createMap","getStyleObj","Map","convertCenter","bearing","pitch","interactive","doubleClickZoom","boxZoom","attributionControl","addControl","AttributionControl","compact","_canvas","rejectOnError","initFx","once","fillBelowLookup","updateData","updateLayout","resolveOnRender","hasTraceAtTop","getBelow","val2list","traceType2orderIndex","choroplethmapbox","densitymapbox","scattermapbox","styleValuesMapbox","convertStyleVal","stylesNonMapbox","styleValueDflt","styleUrlPrefix","styleUrlSuffix","traceObj","calcDataSorted","idLoop","setCenter","setZoom","setBearing","setPitch","updateLayers","updateFramework","resize","_scrollZoom","scrollZoom","onRender","loaded","handler","mapOnErrorMsg","emitUpdate","viewNow","getView","getViewEditsWithDerived","fullLayoutNow","originalEvent","optsNow","_preGUI","getViewEdits","lngLat","lng","onClickInPanFn","clickMode","oldDragOptions","onClickInPanHandler","dragPan","pxpy","unproject","getCanvas","setOptions","getMapLayers","getStyle","addLayer","mapLayers","LngLat","mapCenter","getCenter","getZoom","getBearing","getPitch","_derived","open","high","low","close","configAttributes","plotlyServerURL","annotationTail","axisTitleText","colorbarPosition","colorbarTitleText","legendPosition","legendText","titleText","autosizable","responsive","fillFrame","frameMargins","doubleClick","doubleClickDelay","showAxisRangeEntryBoxes","showTips","showLink","linkText","noBlank","sendData","showSources","showSendToCloud","showEditInChartStudio","modeBarButtonsToRemove","modeBarButtonsToAdd","setBackground","topojsonURL","mapboxAccessToken","logging","notifyOnLogging","queueLength","globalTransforms","SHADERS","Pointcloud2D","offsetBuffer","pickBuffer","sizeMinCap","sizeMax","areaRatio","pointCount","pickOffset","createPointcloud2D","dataBox","visiblePointCountEstimate","pointVertex","pointFragment","pickVertex","pickFragment","addObject","removeObject","dataStraightThrough","idStraightThrough","idToIndex","Int32Array","packedId","unifiedDraw","MATRIX","PICK_VEC4","dataX","dataY","basicPointSize","pickPixelRatio","pointCloud","pointSize","centerFraction","DITHER","POINTS","pointId","dataCoord","calcHover","maxDistance","minDist","ptx","pty","dist","coordEach","bardir","createThunk","Procedure","argTypes","shimArgs","arrayBlockIndices","offsetArgs","offsetArgIndex","indexArgs","shapeArgs","debug","compileCwise","user_args","proc_args","arg_type","blockIndices","printCode","blockSize","m4interp","invert44","rotateX","rotateY","rotateZ","lookAt","translate","DEFAULT_CENTER","MatrixCameraController","initialMatrix","_components","prevMatrix","nextMatrix","computedMatrix","computedInverse","computedEye","computedUp","computedCenter","computedRadius","_limits","createMatrixCameraController","recalcMatrix","tidx","mat","comps","dt","imat","idle","lastT","setMatrix","yaw","roll","tvec","dz","setDistance","setDistanceLimits","lim","getDistanceLimits","hasColorbar","colorbarDefaults","npMaybe","parentCont","colorScaleDefaults","parentContIn","parentContOut","inTrace","thisFn","colorAxes","colorbarVisuals","minIn","maxIn","validMinMax","autoColorscaleDflt","sclIn","sclTemplate","showScale","handleABDefaults","_clipPathId","validData","coordDefaults","coordStr","coordType","isValidZ","allRowsAreArrays","oneRowIsFilled","hasOneNumber","xName","yName","handleLabelDefaults","showLines","_dfltShowLegend","pz","sc","cc","getDelay","getRedrawFunc","hasPolar","hasLegacyPolar","encodeSVG","encodeURIComponent","DOM_URL","URL","webkitURL","fixBinary","createObjectURL","blob","revokeObjectURL","createBlob","Blob","binary","atob","octetStream","IMAGE_URL_PREFIX","MSG_IE_BAD_FORMAT","initial","IntersectionObserver","isIntersecting","disconnect","leading","trailing","maxWait","modifiers","$el","$once","offsetParent","__visibility__listener__","debounce","inserted","__e","__g","F","G","W","virtual","U","valueOf","rootBounds","boundingClientRect","intersectionRect","intersectionRatio","_checkForIntersections","THROTTLE_TIMEOUT","_observationTargets","_queuedEntries","_rootMarginValues","_parseRootMargin","rootMargin","thresholds","_initThresholds","detatchEvent","host","IntersectionObserverEntry","POLL_INTERVAL","USE_MUTATION_OBSERVER","some","_registerInstance","_monitorIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","takeRecords","_monitoringIntersections","_monitoringInterval","_domObserver","_rootIsInDom","_getRootRect","_rootContainsTarget","_computeTargetAndRootIntersection","_hasCrossedThreshold","_expandRectByRootMargin","padAttrs","buttonsAttrs","args2","showactive","borderLine","insertBlank","hasAnyBlanks","posAttr","newEntry","prevEntry","getInterp","pt1","subplotStackOpts","_scatterStackOpts","posj","sumj","groupOpts","valAttr","stackGroup","allPositions","_rawLength","cdj","arrayPad","ppadRaw","calcAxisExpansion","relinkPrivateKeys","toContainer","fromContainer","fromVal","toVal","minLen","platform","arch","execPath","browser","env","binding","cwd","chdir","kill","umask","dlopen","uptime","memoryUsage","uvCounters","NOT_FOUND","SUCCESS","EMPTY","IntervalTreeNode","leftPoints","rightPoints","createWrapper","rebuild","ntree","createIntervalTree","rebuildWithInterval","rebuildWithoutInterval","reportLeftRange","reportRightRange","reportRange","compareNumbers","compareBegin","compareEnd","leftIntervals","rightIntervals","centerIntervals","IntervalTree","rw","lw","queryPoint","queryInterval","tproto","Events","FROM_TL","FROM_BR","getLegendData","clickOrDoubleClick","legendItem","evtData","curveNumber","expandedIndex","frames","_frames","_group","clickVal","triggerHandler","_clickTimeout","_legendMouseDownTime","dblClickVal","drawTexts","isPieLike","isEditable","maxNameLength","_maxNameLength","textEl","ensureLength","textGap","newName","fullInput","groupbyIndices","kcont","keyedContainer","constructUpdate","targetLength","setupTraceToggle","newMouseDownTime","traceToggle","getTime","_dragged","computeTextDimensions","mathjaxNode","bw","mathjaxBB","textLines","textNode","titlePad","_titleWidth","_titleHeight","getTitleSize","computeLegendDimensions","isVertical","isGrouped","bw2","itemGap","endPad","getYanchor","isBelowPlotArea","isAbovePlotArea","_maxHeight","toggleRectWidth","_height","titleSize","tracegroupgap","_lgroupsLength","getXanchor","isLeftOfPlotArea","isRightOfPlotArea","isBeyondPlotAreaY","hw","_maxWidth","maxItemWidth","combinedItemWidth","maxRowWidth","maxGroupHeightInRow","groupOffsetX","groupOffsetY","maxWidthInGroup","offsetY","oneRowLegend","maxItemHeightInRow","offsetX","rowWidth","_effHeight","expandMargin","isRightAnchor","isCenterAnchor","isBottomAnchor","isMiddleAnchor","legendData","hiddenSlices","hiddenlabels","_topdefs","clipPath","ensureSingleById","scrollBox","scrollBar","scrollBarEnterAttrs","scrollBarColor","lx","ly","autoexpand","lx0","ly0","_scrollY","eventY0","eventY1","scrollBoxY0","scrollBarHeight","scrollBarMinHeight","scrollBarYMax","scrollBarMargin","scrollBoxYMax","scrollRatio","scrollBoxY","scrollBarWidth","scrollHandler","getScrollBarDragY","getNaturalDragY","scrollBarDrag","changedTouches","ctrlKey","scrollBoxTouchDrag","clickedTrace","scatterLineAttrs","newPlot","restyle","relayout","_guiRestyle","_guiRelayout","_guiUpdate","_storeDirectGUIEdit","react","extendTraces","prependTraces","addTraces","deleteTraces","moveTraces","purge","addFrames","deleteFrames","animate","setPlotConfig","downloadImage","templateApi","FRAMEBUFFER_UNSUPPORTED","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","colorAttachmentArrays","saveFBOState","fbo","FRAMEBUFFER_BINDING","rbo","RENDERBUFFER_BINDING","TEXTURE_BINDING_2D","restoreFBOState","bindRenderbuffer","RENDERBUFFER","lazyInitColorAttachments","maxColorAttachments","MAX_COLOR_ATTACHMENTS_WEBGL","COLOR_ATTACHMENT0","NONE","throwFBOError","attachment","framebufferTexture2D","initRenderBuffer","component","createRenderbuffer","renderbufferStorage","framebufferRenderbuffer","rebuildFBO","createFramebuffer","numColors","_ext","useStencil","_useStencil","useDepth","_useDepth","colorType","_colorType","_color_rb","RGBA4","drawBuffersWEBGL","WEBGL_depth_texture","UNSIGNED_INT_24_8_WEBGL","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","DEPTH_COMPONENT","DEPTH_ATTACHMENT","_depth_rb","DEPTH_COMPONENT16","STENCIL_INDEX","STENCIL_ATTACHMENT","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","_destroyed","deleteFramebuffer","deleteRenderbuffer","Framebuffer","reshapeFBO","maxFBOSize","MAX_RENDERBUFFER_SIZE","WEBGL_draw_buffers","OES_texture_float","stencil","ternaryAxesAttrs","linecolor","titlefont","caxis","geoAxesAttrs","lightLine","scope","rotation","parallels","showcoastlines","coastlinecolor","coastlinewidth","showland","landcolor","showocean","oceancolor","showlakes","lakecolor","showrivers","rivercolor","riverwidth","showcountries","countrycolor","countrywidth","showsubunits","subunitcolor","subunitwidth","showframe","framecolor","framewidth","thisArg","targetObj","bindingValueHasChanged","changed","computeAnimateBindings","computeLayoutBindings","bindings","attrName","computeDataBindings","thisTraces","nAttr","thisPath","manageCommandObserver","commandList","onchange","_commandObserver","lookupTable","hasSimpleAPICommandBindings","check","checkEvents","_internalOn","_removeInternalListener","bindingsByValue","refBinding","computeAPICommandBindings","executeAPICommand","_method","allArgs","inCircle","testFlip","triangulation","stack","delaunayRefine","numPoints","stars","refDxy","dpdx","dpdy","offsetMultiplier","l2","offsetMultplier","defaultScale","getScale","parseScale","isValidScaleArray","highestVal","MAJOR_AXIS","MINOR_AXIS","SCREEN_AXIS","OFFSET_VEC","SHAPE","zeroVec","copyVec","vertBuffer","tickOffset","gridCount","gridOffset","vertBuf","drawAxisLine","minorAxis","majorAxis","noffset","screenAxis","drawAxisTicks","drawZero","createSlabDecomposition","createRBTree","orderSegments","SlabDecomposition","slabs","horizontal","compareHorizontal","searchBucket","lastNode","seg","IntervalSegment","closed","Event","numSegments","numEvents","events","horiz","castUp","bucket","hitNode","lastHit","lastSegment","otherHitNode","hbucket","compareInt","aw","bulletNumberDomainSize","bulletPadding","titlePadding","horizontalPadding","boxDefaults","spanmodeDflt","handlePointsDefaults","boxWidth","boxFillColor","boxLineColor","boxLineWidth","boxVisible","meanLineColor","meanLineWidth","meanLineVisible","meanline","exactEquals","isSvgPath","pathBounds","preprocessPolygon","makeSlabs","makeIntervalTree","visitInterval","intervalSearch","buildVerticalIndex","intervalTable","segs","buildSlabSearch","lastOrientation","classifyEmpty","createClassifyVertical","testVertical","createClassifyPointDegen","testNormal","loops","numLoops","vsegments","loop","numVertices","testSlab","imageDefaults","imageIn","imageOut","gdMock","axLetters","_imgIndices","addProjectionsToD3","d3_geo_projectFeature","d3_geo_projectGeometry","geometries","d3_geo_projectGeometryType","sink","d3_geo_projectObjectType","Feature","FeatureCollection","d3_geo_projectPoints","d3_geo_projectLines","d3_geo_projectPoint","d3_geo_projectLine","lineStart","d3_geo_projectNoop","lineEnd","d3_geo_projectPolygon","polygonStart","polygonEnd","holes","ring","d3_geo_projectClockwise","d3_geo_projectContains","Point","MultiPoint","MultiLineString","Polygon","MultiPolygon","Sphere","pj","xj","yj","ε","ε2","π","halfπ","radians","degrees","sinci","asin","projectionMutator","eckert4","λ","φ","δ","cosφ","interrupt","lobes","forward","hemilobes","lobe","hemibounds","pointEqual","stream_","sphere","λ0","φ0","φ1","λ2","φ2","resample","resampled","rotateStream","sphereStream","hammerAzimuthalEqualArea","azimuthalEqualArea","hammer","hammerQuarticAuthalic","hammerProjection","coefficient","kavrayskiy7","miller","mollweideBromleyθ","Cp","θ","Cpsinθ","mollweideBromley","Cx","Cy","mollweide","SQRT2","naturalEarth","φ4","robinsonConstants","robinson","sinusoidal","aitoff","sinciα","winkel3","sinλ","sinλ_2","cosλ_2","sinφ","sin_2φ","sin2φ","cos2φ","sin2λ_2","E","δxδλ","δxδφ","δyδλ","δyδφ","denominator","δλ","δφ","innerFill","nargs","has_index","pidx","outerFill","matched","indexStr","countMatches","orders","processBlock","dtypes","carg","arrNum","offArgIndex","offArg","localStr","arrStr","reStrArr","ptrStrArr","typeSummary","summary","generateCWiseOp","blockBegin","blockEnd","loopBegin","loopEnd","loopOrders","arglist","off_arg","init_string","loopName","axisIDs","rangeSlider","rangeSliderData","_offsetShift","_rangeSliderData","bottomDepth","titleHeight","listAxes","RELATIVE_CULL_TOLERANCE","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","includes","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","EventEmitter","svgToImg","emitter","Image","ieSvgError","svgBlob","h0","h1","img","isIE9orBelow","isSafari","onload","imgData","drawImage","errorMsg","onerror","cheaterslope","ascal","bscal","aval","bval","nb","adata","bdata","slope","mouseOffset","supportsPassive","coverSlip","pointerOffset","unhoverRaw","dragCover","initialTarget","rightClick","_clampFn","minDrag","_mouseDownTime","onStart","_ontouchstart","passive","ontouchstart","clampFn","onDone","onMove","MINDRAG","dxdy","_dragdata","e2","MouseEvent","createEvent","initMouseEvent","bubbles","cancelable","screenX","screenY","metaKey","relatedTarget","dispatchEvent","extractPlanes","handlePrefixSuffix","showAttrDflt","getShowAttrDflt","tickPrefix","tickSuffix","handleOtherDefaults","contColor","tickFormat","tickformatStops","inclusionAttr","tickformatstopDefaults","showAttrsAll","showAttrs","sameVal","every","valueIn","valueOut","pass","defaultMLC","noSelect","noLine","gradientType","argument","OPEN_RE","isDotSymbol","DOT_RE","heatmapHoverPoints","hoverPt","createIsosurfaceTrace","styleText","fillGroupStyle","textPointStyle","fixRegExpWellKnownSymbolLogic","requireObjectCoercible","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","nativeReplace","maybeCallNative","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","regexp","functionalReplace","fullUnicode","unicode","results","matchStr","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","capture","vertSrc","fragSrc","isosurfaceAttrs","surface","spaceframe","caps","opacityscale","flatshading","contour","scatterMapboxAttrs","choroplethLayer","backplot","bboxFeature","stronglyConnectedComponents","lowValue","scc","sccLinks","sccAdjList","strongConnect","linkCount","allLinks","adjacencyList","alphaShape","parseColorScale","str2RgbaArray","zip3","Mesh3DTrace","mesh","parseColorArray","toDataCoords","toRoundIndex","delaunayCells","delaunayaxis","hasValidIndices","createMesh3DTrace","_trace","handlePick","selectIndex","textLabel","zcalendar","alphahull","lightPosition","vertexNormalsEpsilon","vertexnormalsepsilon","faceNormalsEpsilon","facenormalsepsilon","contourEnable","contourColor","contourWidth","useFacetNormals","intensitymode","vertexcolor","vertexColors","facecolor","cellColors","meshColor","invalidArguments","invalidFormat","missingNumberAt","unknownNameAt","unexpectedLiteralAt","unexpectedText","settings","UNIX_EPOCH","SECS_PER_DAY","TICKS_EPOCH","TICKS_PER_DAY","ATOM","COOKIE","FULL","ISO_8601","JULIAN","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","monthNumbers","doubled","calculateWeek","iFormat","formatNumber","formatName","shortNames","longNames","formatMonth","localiseNumbers","formatMonthName","useLongName","localNumbers","literal","parseDate","parseMonth","doy","shortYear","getNumber","isDoubled","iValue","getMonthNumber","getName","getMonthName","checkLiteral","iSave","determineDate","dateSpec","defaultDate","currentDate","offsetString","pattern","Polar","DEFAULT_VERTEX_NORMALS_EPSILON","DEFAULT_FACE_NORMALS_EPSILON","getContour","closestPoint","SimplicialMesh","triShader","lineShader","trianglePositions","triangleIds","triangleColors","triangleUVs","triangleNormals","triangleVAO","edgePositions","edgeIds","edgeColors","edgeUVs","edgeVAO","pointPositions","pointIds","pointColors","pointUVs","pointSizes","pointVAO","contourPositions","contourVAO","triangleCount","edgeCount","contourLineWidth","contourCount","ambientLight","diffuseLight","specularLight","_model","_view","_projection","_resolution","getOpacityFromScale","genColormap","nshades","unpackIntensity","numVerts","cellIntensity","numCells","takeZComponent","createMeshShader","uv","createWireShader","createPointShader","createPointPickShader","createContourShader","createSimplicialMesh","meshTexture","vertexIds","vertexWeights","wi","pb","tPos","tCol","tNor","tUVs","tIds","ePos","eCol","eUVs","eIds","pPos","pCol","pUVs","pSiz","pIds","cellNormals","vertexUVs","cellUVs","intensityLo","intensityHi","cellIntensityBounds","meshPointSize","Uint32Array","inverseModel","kambient","kdiffuse","kspecular","eyePosition","invCameraMatrix","pickData","cellId","simplex","weights","interpIntensity","errorCoords","yh","noYS","xh","noXS","hasAnimation","keyFunc","xObj","error_x","yObj","error_y","sparse","errorbars","errorbar","vis","yerror","yw","xerror","xw","copy_ystyle","earcut","holeIndices","invSize","hasHoles","outerLen","outerNode","linkedList","eliminateHoles","earcutLinked","signedArea","insertNode","equals","removeNode","filterPoints","again","steiner","ear","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","zOrder","prevZ","nextZ","intersects","locallyInside","isValidDiagonal","getLeftmost","compareX","eliminateHole","findHoleBridge","hx","hy","my","tanMin","sectorContainsSector","sortLinked","numMerges","pSize","qSize","inSize","intersectsPolygon","middleInside","q2","o1","o2","o3","o4","onSegment","Node","an","deviation","trianglesArea","flatten","holeIndex","sz","handleShapeDefaults","shapeIn","shapeOut","dfltType","shapeType","xSizeMode","ySizeMode","pos2r","r2pos","attrAnchor","sizeMode","_shapeIndices","rangeToShapePosition","dflt0","dflt1","attr0","attr1","in0","in1","inAnchor","noneOrAll","IS_PURE","store","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","colorAttributes","asmoothing","bsmoothing","imax","jmax","f0","f1","f2","f3","ak","u3","ou","ou2","ou3","v3","ov","ov2","ov3","str2BN","createSelectBuffer","selectRange","SelectResult","SelectBuffer","_readTimeout","_readCallback","c2","c3","toMoveInsideBar","uniformText","recordMinTextSize","drawDescendants","drawAncestors","getKey","isHierarchyRoot","plotOne","findEntryWithLevel","selAncestors","selDescendants","isRoot","uniformtext","maxDepth","getMaxDepth","hasVisibleDepth","vpw","vph","barW","barH","barPad","pathbarOrigin","findClosestEdge","ref","tiling","isLeftOfRect","isRightOfRect","isBottomOfRect","isTopOfRect","prevLookupPathbar","prevLookupSlices","nextOfPrevEntry","getPrev","getOrigin","_maxDepth","_backgroundColor","_atRootLevel","cenX","cenY","viewMapX","viewMapY","barY0","barX0","viewBarX","viewBarY","xStart","limitX0","edgeshape","pathAncestor","halfH","pL","pR","pA","pB","pC","pD","pathDescendant","FILLET","hasFlag","hasBottom","hasTop","isHeader","hasRight","hasLeft","leftToRight","limY","constrained","anchorX","anchorY","interpFromParent","parentPrev","makeExitSliceInterpolator","entryPrev","prev0","getTextTransform","isEntry","cdmodule","_treemaplayer","isFullReplot","oneYear","oneMonth","oneDay","oneHour","oneMin","oneSec","biggestDigitChanged","biggestGuaranteedDigitChanged","nextDigit","didDigitChange","dateParts1","dateParts","dateParts2","disambiguateEdges","dv0","dv1","dv2","edge0","edge1","leftDigit","rightDigit","dashExclude","increment","isRightEdge","dashPos","roundedV","nextV","fromQuat","z2","yx","zx","zy","zz","wx","wy","wz","createColormap","indicies","fromrgba","torgba","nsteps","cmap","amt","rgb2hex","rgbaStr","rgb2float","dig","hex","lineColorDflt","noDash","setConvertCartesian","setConvertPolar","doAutoRange","dragBox","rad2deg","_hasClipOnAxisFalse","vangles","radialAxisAngle","clipPaths","clipIds","clipIdBase","forTraces","_polarlayer","radialTickLayout","angularTickLayout","strTickLayout","axLayout","computeSectorBBox","ax0","ay0","ax1","ay1","snapToVertexAngle","angleDist","findIndexOfMin","updateElement","strTranslate","strRotate","polarCalcData","polarLayout","generalUpdatePerTraceModule","radialLayout","angularLayout","layerNames","frontPlotIndex","layerData","isAngularAxisBelowTraces","isRadialAxisBelowTraces","xDomain","yDomain","xOffset","xLength","yLength","sectorInRad","xLength2","yLength2","xDomain2","yDomain2","sectorBBox","dxSectorBBox","dySectorBBox","arDomain","arSector","xOffset2","yOffset2","cxx","cyy","updateAngularAxis","updateRadialAxis","updateRadialAxisTitle","mockCartesianAxis","dPath","pathSubplot","bboxIndices","setRange","rl","drl","hasRoomForIt","fillViewInitialKey","setGeometry","gridPathFn","pathArc","newTickLayout","tickSign","tLayer","tLayer2","_angle","angleRad","cosa","sina","t2g","_transFn","transFn2","cosRad","sinRad","gridshape","angleDelta","isAngleInsideSector","updateAngularDrag","updateRadialDrag","updateMainDrag","MINZOOM","OFFEDGE","clampTiny","findXYatLength","findEnclosingVertexAngles","chw","cornerHalfWidth","chl","cornerLen","mainDrag","makeDragger","dimmed","lum","zb","dragOpts","xy2r","xy2a","ra2xy","pathCorner","pathSector","am","rm","pathCornerForPolygons","va0","va1","innerPts","outerPts","xy0","xy1","mperp","midPts","zoomPrep","polarLayoutNow","getLuminance","makeZoombox","makeCorners","clampAndSetR0R1","rr0","rr1","applyZoomMove","path1","cpath","transitionZoombox","updateObj","computeZoomUpdates","zoomMove","findPolygonRadius","findIntersectionXY","zoomMoveForPolygons","vangles0","vangles1","zoomDone","removeZoombox","showDoubleClickNotifier","newRng","zoomClick","dragModeNow","findPolygonOffset","rngIndex","radialDragBoxSize","ty","angle0","rbase","moveFn2","angle1","rprime","radialDrag","makeRectDragger","dvec","rvec","comp","rotateMove","rerangeMove","computeRadialAxisUpdates","dr","moduleCalcData","moduleCalcDataVisible","filterVisible","dbs","angularDragBoxSize","angularDrag","pathAnnulus","rot0","rot1","rrot1","scatterTraces","scatterPoints","scatterTextPoints","trans","trans2","isFullCircle","computeRotationUpdates","thetag","c2g","isPtInsidePolygon","isPtInsideSector","pathPolygon","pathPolygonAnnulus","formatPiePercent","vRounded","lastIndexOf","formatPieValue","getFirstFilled","castOption","itemStr","ARROWPATHS","ends","startRot","endRot","headStyle","startHeadStyle","startScale","doStart","doEnd","backOff","backoff","startBackOff","hideLine","backOffX","backOffY","startBackOffX","startbackOffY","pathlen","start0","dstart","end0","dend","shortening","drawhead","arrowHeadStyle","rot","arrowScale","noRotate","ctz","roundRat","iv","ir","ybits","lastReading","_lastValue","secondLastReading","deltaRef","lastY","relativeDelta","fromcurrent","ordering","final","columnwidth","header","bitmap","Ternary","makeFramework","aTickLayout","bTickLayout","cTickLayout","_ternarylayer","defs","layoutId","ternaryCalcData","ternaryLayout","graphSize","adjustLayout","plotbg","clipIdRelative","clipDef","clipDefRelative","plotContainer","grids","plotLayers","toplevel","whRatio","xDomainFinal","yDomainFinal","xDomainCenter","yDomainCenter","wmax","hmax","amin","bmin","yDomain0","triangleClip","triangleClipRelative","plotTransform","bTransform","bgrid","aTransform","agrid","cTransform","cgrid","drawAxes","aline","bline","cline","doTitles","titlesuffix","drawAx","apad","bpad","axLayer","counterAngle","stashKey","caRad","CLEN","BLPATH","BRPATH","TOPPATH","STARTMARKER","SHOWZOOMOUTTIP","mins0","span0","mins","dragger","clickZoomPan","plotDrag","dragDone","panPrep","makeUpdate","_mins","getAFrac","getBFrac","getCFrac","afrac","bfrac","cfrac","xSpan","dxScaled","dyScaled","minsorted","minindices","plotTransform2","mouseButtons","mouseElement","srcElement","mouseRelativeX","mouseRelativeY","handleRThetaDefaults","createGLPlot2D","createPick","createGrid","createText","createBox","GLPlot2D","gridLineEnable","gridLineWidth","gridLineColor","tickMarkLength","tickMarkWidth","tickMarkColor","tickPad","tickEnable","labelPad","labelAngle","labelEnable","labelColor","titleCenter","titleEnable","titleAngle","titleColor","zeroLineEnable","zeroLineWidth","zeroLineColor","borderLineEnable","borderLineWidth","borderLineColor","_tickBounds","static","pickDelay","_pickTimeout","_drawPick","_depthCounter","deepClone","compareTicks","setDirty","setOverlayDirty","nextDepthValue","viewPixels","zeroIntercept","drawTickMarks","scrX","scrY","pickResult","pickValue","setScreenBox","nbox","setDataBox","different","setViewBox","axisTicks","labelSize","labelFont","titleFont","addOverlay","removeOverlay","SIMPLE_PROPERTY_REGEX","NAME","VALUE","BOTH","UNSET","baseObj","keyName","valueName","baseProp","changeTypes","indexLookup","isSimpleValueProp","changeType","newValue","rename","createBoxes","Boxes","boxVert","drawBox","loX","loY","hiX","hiY","scatterPolarFormatLabels","possibleTypes","tarjan","isIndex","convertToD3Sankey","linkSpec","hasLinkColorArray","linkedNodes","componentCount","colorscales","maxNodeId","nodeCount","groupLookup","nodeIndex","groupedLinks","concentrationscale","totalCount","hasNodeColorArray","childrenNodes","circularityPresent","nodeLen","sources","targets","init2dArray","_nodes","_links","_groups","_groupLookup","GLSpikes2D","createSpikes2D","spikeEnable","spikeWidth","spikeColor","spikeCenter","centerX","centerY","ArrayIterator","kind","__kind__","prettyPrint","spacing","stepStr","sigFigs","xstr","xis","defaultTicks","ticksEqual","ticksA","ticksB","equal","IndexedObject","nativeAssign","alphabet","chr","argumentsLength","createTextElements","getText","TextElements","tickX","labelCount","textVert","textFrag","DATA_AXIS","SCREEN_OFFSET","ZERO_2","textAngle","screenScale","dataAxis","screenOffset","titleCount","titleOffset","DATA_SHIFT","DATA_SCALE","TEXT_SCALE","boundScale","dataCenter","dataWidth","viewLo","viewHi","viewScale","screenLo","screenHi","dataShift","textScale","textCoordinate","axesTicks","coordScale","coordShift","divide","images","currentPos","currentSize","newPos","newSize","createOrbitController","filterVector","mat4FromQuat","quatFromFrame","len3","len4","normalize4","al","OrbitCameraController","initQuat","initCenter","initRadius","computedRotation","quat","rr","getMatrix","uz","ul","rz","ru","fz","fu","fr","fl","fromJSON","transformMat4","pickSrc","createPickContourShader","_undefined","fixup","pcompile","makeOp","assign_ops","band","bor","bxor","lshift","rshift","rrshift","unary_ops","not","bnot","recip","binary_ops","neq","leq","geq","math_unary","math_comm","math_noncomm","any","prod","norm2squared","norm2","norminf","norm1","inf","argmin","argmax","assigns","webpackPolyfill","isPrototype","FROM_BL","plots","plotBasePlot","cleanBasePlot","OHLCattrs","boxAttrs","lineColorDefault","showLabels","globalFont","CONVERT_TO_STRING","second","codeAt","generated","originalArray","EPOCHJD","utcFormat","DATETIME_REGEXP","DATETIME_REGEXP_CN","YFIRST","isWorldCalendar","lpad","sunday","isJSDate","tzOffset","getTimezoneOffset","offsetTweak","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","getMilliseconds","isWorld","isChinese","H","cDate","calInstance","isIntercalary","toMonthIndex","UTC","setUTCFullYear","getUTCMonth","getUTCDate","NINETYDAYS","THREEHOURS","FIVEMIN","includeTime","msec10","dateJD","timeMs","getUTCHours","ms2DateTimeLocal","fracMatch","modDateFormat","formatter","fracSecs","toFixed","MAXSECONDS","formatTime","timePart","timeStr","sec","secStr","extraFormat","THREEDAYS","dMonth","setUTCMonth","hiddenStore","createStore","INCREASING_COLOR","DECREASING_COLOR","baseTraceAttrs","valObjectDef","valObjectMeta","validateFunction","propMock","coerceFunction","data_array","propOut","enumerated","string","okToCoerce","strict","colorlist","isColor","subplotid","flaglist","vParts","info_array","coercePart","propPart","twoD","vNew","vOut","arrayItems2D","innerItemsOnly","attribute","propIn","dfltObj","coerceHoverinfo","moduleAttrs","valObj","_dataLength","smoDflt","usmoDflt","bnsub","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","inputToRGB","_originalInput","_g","_roundA","_format","_gradientType","_ok","_tc_id","stringInputToObject","isValidCSSUnit","rgbToRgb","convertToPercentage","hsvToRgb","hslToRgb","boundAlpha","bound01","rgbToHsl","hue2rgb","rgbToHsv","rgbToHex","allow3Char","rgbaToHex","allow4Char","convertDecimalToHex","rgbaToArgbHex","desaturate","amount","toHsl","clamp01","saturate","greyscale","lighten","brighten","darken","spin","hue","complement","triad","tetrad","splitcomplement","analogous","part","monochromatic","hsv","toHsv","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","toHex8String","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","needsAlphaFormat","_applyModification","_applyCombination","fromRatio","color1","color2","mix","rgb1","rgb2","readability","isReadable","wcag2","wcag2Parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","isOnePointZero","processPercent","isPercentage","parseIntFromHex","convertHexToDecimal","matchers","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","hsva","hex3","hex6","hex4","hex8","named","parms","brackets","escape","flat","bracket","pRE","replaceToken","refId","prevStr","replaceRef","curr","parenthesis","thicknessmode","lenmode","xpad","ypad","outlinecolor","outlinewidth","titleside","handleLonLatDefaults","isOutOfBounds","coerceEnumerated","arrayOrScalar","getLineWidth","mlw","baseAttributes","frameAttributes","animationAttributes","polarAreaAttrs","polarAxisAttrs","editTypes","IS_SUBPLOT_OBJ","IS_LINKED_TO_ARRAY","ARRAY_ATTR_REGEXPS","DEPRECATED","UNDERSCORE_ATTRS","layoutHeadAttr","basePlotModules","baseOverrides","recurseIntoValObject","valObject","newValObject","getTraceAttributes","copyBaseAttributes","copyModuleAttributes","fullAttrString","legendgroup","formatAttributes","isValObject","getLayoutAttributes","handleBasePlotModule","assignPolarLayoutAttrs","xkey","insertAttrs","getTransformAttributes","getFramesAttributes","mergeValTypeAndRole","formatArrayContainers","makeSrcAttr","role","itemName","newAttrs","valObjects","metaKeys","animation","specifiedLevel","attrString","findArrayAttributes","baseContainer","baseAttrName","arrayAttributes","isArrayStack","splittableAttr","crawlIntoTrace","astrPartial","newAstrPartial","tNum","objToString","heatmapPlot","makeCrossings","findAllPaths","emptyPathinfo","convertToConstraints","closeBoundaries","costConstants","LABELOPTIMIZER","makeBackground","plotgroup","perimeter","bggroup","bgfill","makeFills","hasFills","boundaryPath","fillgroup","fillitems","fullpath","prefixBoundary","joinAllPaths","endpt","newendpt","nexti","possiblei","addpath","startsleft","newloop","istop","isbottom","isleft","isright","smoothopen","ptNew","smoothclosed","makeLinesAndLabels","lineContainer","clipLinesForLabels","linegroup","lineClip","createLineClip","labelGroup","labelClipPathData","labelData","contourFormat","labelFormatter","dummyText","xLen","yLen","xRng","yRng","xMin","xMax","yMin","yMax","plotDiagonal","normLength","LABELDISTANCE","LABELINCREASE","calcTextOpts","LABELMIN","maxLabels","LABELMAX","findBestTextLocation","addLabelData","locationCost","halfWidth","halfHeight","normX","normY","cost","EDGECOST","ANGLECOST","labeli","dxd","dyd","sameLevel","distOffset","SAMELEVELDISTANCE","distFactor","NEIGHBORCOST","SAMELEVELFACTOR","clipGaps","clips","clipPathInfo","makeClipMask","emptyPoint","zmask","cdcontours","contourLayer","heatmapColoringLayer","cdheatmaps","leftedge","rightedge","bottomedge","topedge","fillPathinfo","makeLines","opencontourlines","pedgepaths","closedcontourlines","ppaths","formatAxis","_axis","plotBounds","INITIALSEARCHPOINTS","ITERATIONS","newLocation","newCost","MAXCOST","dxw","dxh","dyw","dyh","bBoxPts","lineClipPath","pieHelpers","parentString","isSunburst","isTreemap","_hasHoverLabel","_hasHoverEvent","onMouseOver","traceNow","ptNumber","getParent","_cast","castHoverinfo","hoverCenterX","hoverCenterY","pxmid","rInscribed","flag","valueLabel","currentPath","getPath","allPercents","insertPercent","percentParent","formatPercent","percentEntry","percentRoot","isValidTextValue","hoverItems","nameLength","hovertemplateLabels","rpx1","idealAlign","onMouseOut","noTransition","isLeaf","nextEntry","findEntryWithChild","nextLevel","typeClickEvtData","animOpts","g_ln","p_ln","lngamma","gamma","NATIVE_WEAK_MAP","objectHas","sharedKey","enforce","getterFor","TYPE","wmget","wmhas","wmset","metadata","STATE","filterUnique","createParcatsModel","maxCats","createDimensionModel","dimensionInd","containerInd","displayInd","dimensionLabel","dragX","createCategoryModel","categoryInd","categoryValue","categoryLabel","valueInds","dragY","updateCategoryModel","categoryModel","valueInd","createPathModel","categoryInds","rawColor","updatePathModel","pathModel","getUniqueInfo","uniqueValues","uniqueValueCounts","uniqueValueInds","inds","uniqueVal","valInd","itemInd","uniqueCounts","validateDimensionDisplayInds","displayInds","displayindex","isRangePermutation","_displayindex","validateCategoryProperties","uniqueInfoDim","_categoryarray","_ticktext","indsSpecified","uniqueInfoDims","categoryValues","categoryorder","categoryarray","dimInd","markerColorscale","getMarkerColorInfo","tryColorscale","numValues","pathModels","categoryIndsDims","categoryIndsPath","pathColorInfo","pathKey","dimensionModels","catInd","catValue","catLabel","getPos","posAxis","hasPosArray","hasPos0","hasPosStep","pos0c","makeBins","initNestedArray","valAxis","numKey","boxVals","posArray","posDistinct","dPos","ptFilterFn","lf","uf","_hasPreCompStats","valArrayRaw","med","sortByVal","computeLowerFence","computeUpperFence","computeLowerOutlierBound","uo","computeUpperOutlierBound","computeNotchSpan","ln","un","imin","pts2","valArray","posBins","ptsPerBin","minLowerNotch","maxUpperNotch","usesExclusive","usesInclusive","lower","mci","TRACE_TO_CALC","scaleZoom","makePadFn","concatExtremes","getConstraintOpts","thisID","allAxisIds","idj","axj","doesNotConstrainRange","linkableAxes","counterAxj","thisGroup","linkableAxesNoLoops","updateConstraintGroups","constraintGroups","scaleanchor","scaleratio","groupi","keyj","thisGroupIndex","thisGroupKeys","baseScale","updateDomain","inputDomain","_inputDomain","constraintoward","matchOpts","scaleOpts","scaleanchorDflt","constrainDflt","_axisConstraintGroups","splomStash","axisID","normScale","minScale","maxScale","matchScale","normScales","hasAnyDomainConstraint","_inputRange","_constraintShrinkable","domainShrunk","rangeShrunk","rangeCenter","rangeMin","rangeMax","halfRange","outerMin","outerMax","getPad","extremes","minArray","maxArray","domainExpand","isConstrained","isView","DataView","_rowLength","len0","_constructor","arg0","argi","leni","allArray","totalLen","_requestRangeslider","rangeContainerIn","rangeContainerOut","yNames","rangemodeDflt","yAxOut","rangeMode","coerceRange","isCanvas","isElement","createCanvas","VectorMesh","triangleVectors","vector","createVectorMesh","tVec","velocity","surfaceAttrs","perStackAttrs","stackOpts","firstTrace","attrFound","traceHasAttr","isOrientation","trace2","heatmapCalc","zOut","cVals","min0","max0","isLeftAnchor","isTopAnchor","COMPARISON_OPS","CONSTRAINT_REDUCTION","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","hr","checkCollinear","modModule","twoPI","aBnds","rBnds","_path","aStart","aMid","aEnd","rStart","rEnd","isCircle","largeArc","d3_arraySlice","d3_array","d3_document","d3_documentElement","d3_window","defaultView","setProperty","d3_element_prototype","Element","d3_element_setAttribute","d3_element_setAttributeNS","setAttributeNS","d3_style_prototype","CSSStyleDeclaration","d3_style_setProperty","space","d3_ascending","d3_number","d3_numeric","d3_bisector","descending","quantile","numbers","variance","d3_bisect","d3_transposeLength","bisectLeft","bisect","bisectRight","bisector","shuffle","indexes","permutes","merged","d3_range_integerScale","d3_class","d3_Map","d3_map_proto","d3_map_zero","d3_map_escape","d3_map_unescape","d3_map_has","d3_map_remove","d3_map_keys","d3_map_size","d3_map_empty","d3_Set","d3_identity","d3_rebind","d3_vendorSymbol","d3_vendorPrefixes","prefixName","sortValues","rollup","mapType","keyValue","setter","valuesByKey","sortKey","keyMap","d3_noop","d3_dispatch","d3_dispatch_event","listeners","listenerByName","listener","d3_eventPreventDefault","d3_eventSource","d3_eventDispatch","of","thiz","argumentz","e1","requote","d3_requote_re","d3_subclass","__proto__","d3_selection","d3_selectionPrototype","d3_select","d3_selectAll","querySelectorAll","d3_selectMatches","d3_selectMatcher","Sizzle","matchesSelector","d3_selection_selector","d3_selection_selectorAll","subgroup","subnode","subgroups","d3_nsXhtml","d3_nsPrefix","xhtml","xlink","xml","d3_selection_attr","attrNull","removeAttribute","attrNullNS","removeAttributeNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","qualify","d3_collapse","d3_selection_classedRe","d3_selection_classes","d3_selection_classed","d3_selection_classedName","classedConstant","classedFunction","classList","d3_selection_style","styleNull","removeProperty","styleConstant","styleFunction","d3_selection_property","propertyNull","propertyConstant","propertyFunction","d3_selection_creator","namespace","namespaceURI","createNS","d3_selectionRemove","d3_selection_dataNode","d3_selection_filter","d3_selection_sortComparator","comparator","d3_selection_each","d3_selection_enter","d3_selection_enterPrototype","getAttributeNS","innerHTML","before","groupData","nodeData","updateNodes","enterNodes","exitNodes","nodeByKeyValue","keyValues","nextSibling","d3_selection_enterInsertBefore","d3_selection_on","d3_selection_onListener","d3_selection_onFilters","onRemove","onAdd","d3_selection_onFilter","upgroup","mouseenter","mouseleave","related","compareDocumentPosition","d3_event_dragSelect","d3_event_dragId","d3_event_dragSuppress","suppressClick","d3_mousePoint","d3_mouse_bug44083","ownerSVGElement","createSVGPoint","scrollX","border","ctm","getScreenCTM","pageX","pageY","matrixTransform","clientLeft","clientTop","d3_behavior_dragTouchId","identifier","touch","touches","mousedown","touchstart","subject","dragOffset","correspondingElement","dragged","dragId","dragName","dragSubject","moved","ended","dragRestore","position0","position1","τ","τε","d3_radians","d3_degrees","d3_sgn","d3_cross2d","d3_acos","d3_asin","d3_sinh","d3_cosh","d3_tanh","d3_haversin","ρ","ρ2","ρ4","interpolateZoom","ux0","uy0","ux1","uy1","coshr0","translate0","center0","mousewheelTimer","touchtime","scaleExtent","d3_behavior_zoomInfinity","zooming","mouseup","mousedowned","d3_behavior_zoomWheel","mousewheeled","dblclicked","touchstarted","scaleTo","translateTo","zoomTo","__chart__","rescale","zoomstarted","zoomed","zoomended","location0","d3_selection_interrupt","scale0","locations0","distance0","zoomName","touchmove","touchend","relocate","started","LN2","distance1","scale1","d3_behavior_zoomDelta","deltaMode","wheelDelta","view1","d3_transitionInheritId","tween","d3_color","d3_hsl","d3_rgb_parse","d3_rgb_hsl","d3_hslPrototype","d3_hsl_rgb","m2","d3_rgb","d3_hcl","d3_lab_hcl","d3_lab","d3_rgb_lab","brighter","hcl","d3_hclPrototype","d3_hcl_lab","d3_lab_K","lab","d3_lab_X","d3_lab_Y","d3_lab_Z","d3_labPrototype","d3_lab_rgb","d3_lab_xyz","d3_xyz_rgb","d3_xyz_lab","d3_rgbNumber","d3_rgbString","d3_rgbPrototype","d3_rgb_hex","d3_rgb_parseNumber","d3_rgb_names","d3_rgb_xyz","d3_functor","d3_xhrType","response","mimeType","d3_xhr","xhr","headers","request","XMLHttpRequest","responseType","respond","d3_xhrHasResponse","load","XDomainRequest","onreadystatechange","readyState","onprogress","send","setRequestHeader","overrideMimeType","beforesend","abort","d3_xhr_fixCallback","responseText","functor","dsv","delimiter","reFormat","delimiterCode","typedResponse","formatRow","parseRows","eol","EOL","EOF","I","formatRows","fieldSet","fields","field","csv","tsv","d3_timer_queueHead","d3_timer_queueTail","d3_timer_interval","d3_timer_timeout","d3_timer_frame","d3_timer","d3_timer_step","d3_timer_mark","d3_timer_sweep","d3_format_precision","d3_formatPrefixes","d3_formatPrefix","d3_locale_numberFormat","locale_decimal","locale_thousands","locale_grouping","locale_currency","formatGroup","specifier","d3_format_re","zfill","comma","d3_format_types","d3_format_typeDefault","zcomma","fullSuffix","formatPrefix","after","toExponential","d3_time","d3_date","d3_date_utc","getDay","getUTCDay","getUTCFullYear","setDate","d3_time_prototype","setUTCDate","setDay","setUTCDay","setFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setMonth","setUTCSeconds","setTime","d3_time_interval","range_utc","d3_time_interval_utc","d3_locale_timeFormat","locale_dateTime","locale_date","locale_time","locale_periods","locale_days","locale_shortDays","locale_months","locale_shortMonths","d3_time_format","d3_time_formatPads","d3_time_formats","L","Z","d3_time_parse","localZ","d3_time_parsers","multi","d3_time_formatMulti","d3_time_periodLookup","d3_time_dayRe","d3_time_formatRe","d3_time_dayLookup","d3_time_formatLookup","d3_time_dayAbbrevRe","d3_time_dayAbbrevLookup","d3_time_monthRe","d3_time_monthLookup","d3_time_monthAbbrevRe","d3_time_monthAbbrevLookup","d3_time_formatPad","sundayOfYear","mondayOfYear","d3_time_zone","d3_time_parseWeekdayAbbrev","d3_time_parseWeekday","d3_time_parseMonthAbbrev","d3_time_parseMonth","d3_time_parseLocaleFull","d3_time_parseDay","d3_time_parseHour24","d3_time_parseDayOfYear","d3_time_parseMilliseconds","d3_time_parseMonthNumber","d3_time_parseMinutes","d3_time_parseAmPm","d3_time_parseSeconds","d3_time_parseWeekNumberSunday","d3_time_parseWeekdayNumber","d3_time_parseWeekNumberMonday","d3_time_parseLocaleDate","d3_time_parseLocaleTime","d3_time_parseYear","d3_time_parseFullYear","d3_time_parseZone","d3_time_parseLiteralPercent","years","week","weeks","d3_time_numberRe","d3_time_percentRe","d3_time_expandYear","zh","zm","formats","d3_locale_enUS","d3_adder","d3_adderSum","d3_adderTemp","av","d3_geo_streamGeometry","d3_geo_streamGeometryType","d3_geo_streamObjectType","d3_geo_streamLine","d3_geo_streamPolygon","GeometryCollection","coordinate","d3_geo_areaSum","d3_geo_area","d3_geo_centroidW0","d3_geo_centroidW1","d3_geo_centroidX0","d3_geo_centroidY0","d3_geo_centroidZ0","d3_geo_centroidX1","d3_geo_centroidY1","d3_geo_centroidZ1","d3_geo_centroidX2","d3_geo_centroidY2","d3_geo_centroidZ2","d3_geo_areaRingSum","d3_geo_areaRingStart","λ00","φ00","cosφ0","sinφ0","nextPoint","dλ","sdλ","adλ","d3_geo_cartesian","spherical","d3_geo_cartesianDot","d3_geo_cartesianCross","d3_geo_cartesianAdd","d3_geo_cartesianScale","d3_geo_cartesianNormalize","d3_geo_spherical","d3_geo_sphericalEqual","λ1","λ_","λ__","φ__","dλSum","bound","ringPoint","ringStart","ringEnd","linePoint","equatorial","inflection","λi","antimeridian","φi","compareRanges","withinRange","best","centroid","d3_geo_centroid","d3_geo_centroidPoint","d3_geo_centroidLineStart","d3_geo_centroidLineEnd","d3_geo_centroidRingStart","d3_geo_centroidPointXYZ","d3_geo_compose","compose","d3_true","d3_geo_clipPolygon","clipStartInside","d3_geo_clipPolygonIntersection","d3_geo_clipPolygonLinkCircular","isSubject","other","d3_geo_clip","pointVisible","clipLine","clipStart","rotatedClipStart","pointRing","d3_geo_pointInPolygon","polygonStarted","d3_geo_clipSort","pointLine","d3_geo_clipBufferListener","ringListener","ringSegments","d3_geo_clipSegmentLength1","rejoin","d3_geo_clipAntimeridian","d3_geo_clipAntimeridianLine","d3_geo_clipAntimeridianInterpolate","sλ0","sλ1","d3_geo_clipAntimeridianIntersect","cosφ1","sinλ0_λ1","meridian","parallel","meridianNormal","polarAngle","point0","intersection","φarc","d3_geo_clipCircle","cr","smallRadius","notHemisphere","d3_geo_circleInterpolate","v00","point2","point1","two","n1","n2","n2n2","n1n2","n1xn2","polar","d3_geom_clipLine","d3_geo_clipExtentMAX","d3_geo_clipExtent","x__","y__","v__","x_","y_","v_","listener_","bufferListener","insidePolygon","wn","comparePoints","ca","d3_geo_conic","projectAt","d3_geo_projectionMutator","d3_geo_conicEqualArea","ρ0","ρ0_y","clipExtent","conicEqualArea","albers","albersUsa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","lower48Stream","alaskaStream","hawaiiStream","d3_geo_pathAreaSum","d3_geo_pathAreaPolygon","d3_geo_pathBoundsX0","d3_geo_pathBoundsY0","d3_geo_pathBoundsX1","d3_geo_pathBoundsY1","d3_geo_pathArea","d3_geo_pathAreaRingStart","x00","y00","d3_geo_pathBounds","d3_geo_pathBoundsPoint","d3_geo_pathBuffer","pointCircle","d3_geo_pathBufferCircle","pointLineStart","lineEndPolygon","pointRadius","d3_geo_lengthSum","d3_geo_pathCentroid","d3_geo_pathCentroidPoint","d3_geo_pathCentroidLineStart","d3_geo_pathCentroidLineEnd","d3_geo_pathCentroidRingStart","d3_geo_pathContext","d3_geo_resample","δ2","cosMinDistance","resampleRecursive","resampleNone","d3_geo_transformPoint","b00","resampleLineTo","dx2","dy2","d3_geo_pathProjectStream","d3_geo_projectionRadians","d3_geo_transform","d3_geo_projection","projectRotate","δx","δy","projectResample","δγ","preclip","postclip","clipAngle","d3_geo_rotation","invalidate","d3_geo_equirectangular","d3_geo_identityRotation","d3_geo_rotationλ","d3_geo_rotationφγ","d3_geo_forwardRotationλ","cosδφ","sinδφ","cosδγ","sinδγ","sr","d3_geo_circleAngle","d3_geo_graticuleX","d3_geo_graticuleY","d3_source","d3_target","d3_geo_interpolate","cy0","sy0","cy1","sy1","kx0","ky0","kx1","ky1","projectStream","contextStream","cacheStream","methods","equirectangular","Δλ","sinΔλ","cosΔλ","sinφ1","graticule","X1","X0","Y1","Y0","DX","DY","majorExtent","minorExtent","majorStep","minorStep","greatArc","source_","target_","d3_geo_length","d3_geo_lengthLineStart","d3_geo_azimuthal","azimuthal","cosλ","sinc","cosc","d3_geo_azimuthalEqualArea","cosλcosφ","d3_geo_azimuthalEquidistant","d3_geo_conicConformal","d3_geo_mercator","d3_geo_conicEquidistant","azimuthalEquidistant","conicConformal","conicEquidistant","d3_geo_gnomonic","d3_geo_mercatorProjection","clipAuto","gnomonic","mercator","d3_geo_orthographic","orthographic","d3_geo_stereographic","d3_geo_transverseMercator","d3_geom_pointX","d3_geom_pointY","d3_geom_hullUpper","hs","d3_geom_hullOrder","stereographic","transverseMercator","flippedPoints","skipLeft","skipRight","d3_geom_polygonPrototype","d3_geom_polygonInside","d3_geom_polygonIntersect","x43","y43","ua","d3_geom_polygonClosed","d3_geom_voronoiEdges","d3_geom_voronoiCells","d3_geom_voronoiBeaches","d3_geom_voronoiFirstCircle","d3_geom_voronoiCircles","d3_geom_voronoiBeachPool","d3_geom_voronoiCirclePool","d3_geom_voronoiBeach","d3_geom_voronoiRedBlackNode","site","d3_geom_voronoiCreateBeach","beach","d3_geom_voronoiDetachBeach","d3_geom_voronoiDetachCircle","d3_geom_voronoiRemoveBeach","disappearing","lArc","iArc","nArcs","d3_geom_voronoiSetEdgeEnd","d3_geom_voronoiCreateEdge","d3_geom_voronoiAttachCircle","d3_geom_voronoiAddBeach","dxl","dxr","directrix","d3_geom_voronoiLeftBreakPoint","d3_geom_voronoiRightBreakPoint","newArc","lSite","rSite","hb","hc","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","d3_geom_voronoiCell","d3_geom_voronoiCloseCells","iHalfEdge","halfEdges","nHalfEdges","iCell","d3_geom_voronoiHalfEdge","d3_geom_voronoiCreateBorderEdge","d3_geom_voronoiHalfEdgeOrder","d3_geom_voronoiCircle","cSite","ha","d3_geom_voronoiClipEdges","d3_geom_voronoiConnectEdge","vb","fm","fb","va","d3_geom_voronoiEdge","d3_geom_voronoiRedBlackTree","d3_geom_voronoiRedBlackRotateLeft","d3_geom_voronoiRedBlackRotateRight","d3_geom_voronoiRedBlackFirst","d3_geom_voronoi","sites","d3_geom_voronoiVertexOrder","diagram","grandpa","uncle","sibling","voronoi","d3_geom_voronoiClipExtent","d3_geom_voronoiTriangleArea","d3_geom_quadtreeCompatX","d3_geom_quadtreeCompatY","d3_geom_quadtreeNode","d3_geom_quadtreeVisit","d3_geom_quadtreeFind","minDistance2","distance2","d3_interpolateRgb","ag","br","d3_interpolateObject","d3_interpolate","d3_interpolateNumber","d3_interpolateString","bm","d3_interpolate_numberA","d3_interpolate_numberB","delaunay","compat","x1_","y1_","x2_","y2_","nx","ny","insertChild","nPoint","interpolateRgb","interpolateObject","interpolateNumber","interpolateString","interpolators","d3_interpolateArray","interpolateArray","d3_ease_default","d3_ease","d3_ease_poly","d3_ease_quad","cubic","d3_ease_cubic","d3_ease_sin","d3_ease_exp","d3_ease_circle","elastic","d3_ease_elastic","back","d3_ease_back","bounce","d3_ease_bounce","d3_ease_mode","d3_ease_reverse","d3_ease_reflect","d3_ease_clamp","d3_ease_cubicInOut","d3_interpolateHcl","bh","d3_interpolateHsl","d3_interpolateLab","aa","d3_interpolateRound","d3_transform","kx","d3_transformNormalize","kz","d3_transformDot","d3_transformCombine","skew","interpolateHcl","interpolateHsl","interpolateLab","interpolateRound","d3_transformIdentity","d3_interpolateTransformPop","d3_interpolateTranslate","ta","tb","d3_interpolateRotate","ra","d3_interpolateSkew","d3_interpolateScale","ka","kb","d3_interpolateTransform","d3_uninterpolateNumber","d3_uninterpolateClamp","d3_layout_bundlePath","lca","d3_layout_bundleLeastCommonAncestor","d3_layout_bundleAncestors","ancestors","aNodes","bNodes","aNode","bNode","sharedNode","d3_layout_forceDragstart","fixed","d3_layout_forceDragend","d3_layout_forceMouseover","d3_layout_forceMouseout","d3_layout_forceAccumulate","charges","charge","pointCharge","interpolateTransform","bundle","chord","chords","sortGroups","sortSubgroups","sortChords","groupSums","subgroupIndex","dj","subindex","resort","friction","linkDistance","d3_layout_forceLinkDistance","linkStrength","d3_layout_forceLinkStrength","chargeDistance2","d3_layout_forceChargeDistance2","repulse","dw","dn","dragmove","resume","chargeDistance","neighbors","candidates","d3_layout_hierarchyRebind","d3_layout_hierarchyLinks","d3_layout_hierarchyVisitBefore","d3_layout_hierarchyVisitAfter","nodes2","d3_layout_hierarchyChildren","d3_layout_hierarchyValue","d3_layout_hierarchySort","childs","revalue","pie","d3_layout_pieSortByValue","padAngle","arcs","d3_layout_stackX","d3_layout_stackY","d3_layout_stackOut","d3_layout_stackOrderDefault","d3_layout_stackOffsetZero","series","d3_layout_stackOrders","d3_layout_stackOffsets","d3_layout_stackMaxIndex","sums","d3_layout_stackReduceSum","tops","bottoms","silhouette","wiggle","s2","s3","o0","zero","d3_layout_stackSum","d3_layout_histogramBinSturges","d3_layout_histogramBinFixed","d3_layout_histogramRange","d3_layout_packSort","d3_layout_packInsert","_pack_next","_pack_prev","d3_layout_packSplice","d3_layout_packIntersects","d3_layout_packSiblings","d3_layout_packLink","d3_layout_packPlace","isect","d3_layout_packUnlink","d3_layout_packTransform","d3_layout_treeSeparation","d3_layout_treeLeft","d3_layout_treeRight","d3_layout_treeMove","wm","wp","d3_layout_treeShift","d3_layout_treeAncestor","vim","ancestor","d3_layout_clusterY","d3_layout_clusterX","d3_layout_clusterLeft","d3_layout_clusterRight","d3_layout_treemapPadNull","d3_layout_treemapPad","d3_scaleExtent","d3_scaleRange","rangeExtent","d3_scale_bilinear","uninterpolate","d3_scale_nice","nice","d3_scale_niceStep","d3_scale_niceIdentity","histogram","frequency","valuer","ranger","binner","bin","separation","nodeSize","root0","root1","wrapTree","firstWalk","secondWalk","sizeNode","node1","siblings","midpoint","apportion","vip","vop","vom","sip","sop","sim","som","cluster","previousNode","treemap","stickies","sticky","squarify","score","remaining","worst","stickify","rmax","rmin","padFunction","padConstant","σ","logNormal","bates","irwinHall","d3_scale_polylinear","d3_scale_linear","rangeRound","d3_scale_linearTicks","d3_scale_linearTickFormat","d3_scale_linearNice","d3_scale_linearRebind","d3_scale_linearTickRange","d3_scale_linearPrecision","d3_scale_linearFormatPrecision","d3_scale_linearFormatSignificant","d3_scale_log","niced","d3_scale_logNiceNegative","d3_scale_logFormat","d3_scale_pow","powp","d3_scale_powPow","powb","d3_scale_ordinal","rangeBand","rangePoints","rangeRoundPoints","rangeBands","outerPadding","rangeRoundBands","d3_category10","d3_category20","category20b","d3_category20b","category20c","d3_category20c","d3_scale_quantile","quantiles","invertExtent","d3_scale_quantize","d3_scale_threshold","d3_scale_identity","d3_zero","quantize","d3_svg_arcInnerRadius","d3_svg_arcOuterRadius","cornerRadius","padRadius","d3_svg_arcAuto","d3_svg_arcStartAngle","d3_svg_arcEndAngle","d3_svg_arcPadAngle","circleSegment","d3_svg_arcSweep","rc1","rc0","oc","kc","lc","t30","d3_svg_arcCornerTangents","t12","t03","ox","oy","cx0","cx1","d3_svg_line","defined","d3_svg_lineLinear","interpolateKey","tension","d3_svg_lineInterpolators","d3_svg_lineLinearClosed","d3_svg_lineStep","d3_svg_lineStepBefore","d3_svg_lineStepAfter","basis","d3_svg_lineBasis","d3_svg_lineBasisOpen","d3_svg_lineBasisClosed","d3_svg_lineBundle","cardinal","d3_svg_lineCardinal","d3_svg_lineCardinalOpen","d3_svg_lineCardinalClosed","monotone","d3_svg_lineMonotone","d3_svg_lineHermite","d3_svg_lineCardinalTangents","tangents","lp","d3_svg_lineDot4","d3_svg_lineBasisBezier3","d3_svg_lineBasisBezier","d3_svg_lineBasisBezier1","d3_svg_lineBasisBezier2","d3_svg_lineSlope","d3_svg_lineFiniteDifferences","d3_svg_lineMonotoneTangents","d3_svg_lineRadial","d3_svg_area","interpolateReverse","points0","points1","fx0","fy0","fx1","fy1","d3_svg_chordRadius","d3_svg_diagonalProjection","d3_svg_diagonalRadialProjection","d3_svg_symbolSize","d3_svg_symbolType","d3_svg_symbolCircle","projection_","d3_svg_symbols","d3_svg_symbolTan30","d3_svg_symbolSqrt3","d3_transitionId","d3_transitionNamespace","d3_transitionInherit","d3_transitionNode","d3_transition","d3_selection_interruptNS","lock","activeId","d3_transitionPrototype","d3_transition_tween","d3_transition_text","tweens","schedule","elapsed","cancelId","subnodes","nameNS","attrTweenNS","styleTween","inheritId","id0","tickFormat_","d3_svg_axisDefaultOrient","innerTickSize","outerTickSize","tickPadding","tickArguments_","tickValues","tickTransform","tickEnter","tickExit","tickUpdate","pathUpdate","lineEnter","lineUpdate","textEnter","textUpdate","d3_svg_axisX","d3_svg_axisY","d3_svg_axisOrients","tickSubdivide","xExtentDomain","yExtentDomain","xExtent","yExtent","xClamp","yClamp","resizes","d3_svg_brushResizes","brushstart","d3_svg_brushCursor","gUpdate","backgroundUpdate","redrawX","redrawY","eventTarget","event_","resizing","resizingX","resizingY","keydown","keyup","brushmove","brushend","ex","ey","keyCode","move1","extent1","extent0","d3_time_formatUtc","d3_time_formatIso","d3_time_formatIsoNative","toISOString","d3_time_scale","tickMethod","d3_time_scaleSteps","d3_time_scaleMilliseconds","d3_time_scaleDate","skip","skipped","iso","seconds","minute","minutes","hour","timezone","hours","d3_time_scaleLocalMethods","d3_time_scaleLocalFormat","d3_time_scaleUtcMethods","d3_time_scaleUtcFormat","d3_json","d3_html","selectNode","createContextualFragment","responseXML","inspectSource","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","src_map","src_nest","createResult","setResult","createObject","setObject","setMap","Set","zLabelVal","_indexToPoints","percentInitial","percentPrevious","percentTotal","findNearestOnAxis","generateIsoMeshes","VolumeTrace","createVolumeTrace","rawId","_meshX","_meshY","_meshZ","_Ys","_Zs","_Xs","_meshI","_meshJ","_meshK","_meshIntensity","baseFilter","calcDataFilter","isCalcData","filterFn","getCentroid","isFunctionStringTag","isV","getStackOpts","interpolateGaps","setFirstScatter","xAttr","yAttr","xValid","yValid","xId","yId","firstScatter","_firstScatter","firstScatterGroup","stackOrientation","xOptions","yOptions","markerTrans","sizeOut","stackAx","clickModule","convertCoords","visibleDflt","autorangeDflt","reverseDflt","noHover","ticksonDflt","isMultiCategory","noTickson","showDividers","excludeWrapCoord","stopG","geometryMaybeCollection","isGeometryCollection","wrapShrink","coordIndex","isFeatureCollection","isFeature","featureIndex","geomIndex","multiFeatureIndex","geometryIndex","geomType","coordReduce","initialValue","currentCoord","propEach","propReduce","currentProperties","featureEach","featureReduce","currentFeature","coordAll","geomEach","featureProperties","featureBBox","featureId","currentGeometry","flattenEach","flattenReduce","segmentEach","segmentIndex","previousCoords","previousFeatureIndex","previousMultiIndex","prevGeomIndex","featureIndexCoord","multiPartIndexCoord","currentSegment","segmentReduce","lineEach","lineReduce","findSegment","findPoint","stepAttrs","sliderDefaults","sliderIn","sliderOut","stepCount","_stepCount","visSteps","_visibleSteps","currentValueIsVisible","countTrailingZeros","ctzNumber","BINATTRS","aStr","BINDIRECTIONS","binDir","allBinOpts","histTraces","mustMatchTracesLookup","otherTracesList","orientation2binDir","getAxisType","fillBinOpts","fallbackGroupName","needsNewItem","_xautoBinFinished","_yautoBinFinished","aGroupId","binGroupFound","bingroupIn","binGroup","binGroupInDir","attrSpec","nbinsFound","_pielayer","isRat","colorAxIn","colorAxOut","coerceAx","svgAttrs","colorMix","lightFraction","gridColorDflt","gridColor","gridWidth","showGridLines","showZeroLine","wrappedWellKnownSymbolModule","scatterGeoAttrs","mapboxAttrs","npGet","curPart","allSame","curCont","propStr","indexed","propParts","badContainer","npSet","ARGS_PATTERN","isDeletable","containerLevels","toDelete","setArrayAll","checkNewContainer","joinPropStr","newPart","toAdd","containerArray","innerParts","arrayVal","allSet","thisVal","thisPropStr","deleteThis","firstPart","nextPart","_sunburstlayer","colorDflt","colorDfltRgba","opacityDflt","calculateColor","colorIn","opacityIn","colorOut","validateColor","validateOpacity","formatColor","getColor","getOpacity","colori","opacityi","isArrayColorIn","isArrayOpacityIn","globalConfig","PlotlyConfig","MathJaxConfig","skipStartupTypeset","Configured","AxesOptions","tickFont","lineEnable","lineMirror","lineTickEnable","lineTickMirror","lineTickLength","lineTickWidth","lineTickColor","gridEnable","zeroEnable","backgroundEnable","_defaultTickPad","_defaultLabelPad","_defaultLineTickLength","createAxesOptions","showbackground","backgroundcolor","makeSet","yr","xd","yd","rowFromTo","rowFrom","rowTo","headerPanel","headerCells","headerRowBlocks","revolverPanel1","revolverPanel2","fromTo","buster","Int8Array","Int16Array","Float64Array","affineHull","linearlyIndependent","nhull","piecolorway","extendpiecolors","DATE_FORMAT_LINK","handleAxisPositionDefaults","axisLayoutAttrs","SI_PREFIX","drawBulletGauge","bullet","axisLayer","gaugeBg","gaugeOutline","bulletHeight","innerBulletHeight","bulletLeft","bulletRight","drawRect","bgBullet","styleShape","fgBullet","bulletOutline","drawAngularGauge","gaugePosition","valueToAngle","arcPathGenerator","drawArc","bgArc","valueArcPathGenerator","valueArc","valueArcPath","arcTween","thresholdArc","gaugeBorder","drawNumbers","bignumberbBox","deltabBox","numbersbBox","numbersX","numbersY","numbersAlign","numbersAnchor","transitionFormat","transitionValueFormat","transitionAx","drawBignumber","bignumberAx","bignumberSuffix","bignumberPrefix","writeNumber","interpolator","transitionFmt","drawDelta","deltaAx","deltaFmt","deltaValue","deltaFormatText","numberFmt","deltaFill","_deltaLastValue","writeDelta","bignumberCenter","deltaCenter","numbersScaler","scaleRatio","_numbersTop","newAngle","zrange","axisOptions","fitTextInsideBox","fitTextInsideCircle","elRadius","textAnchor","_indicatorlayer","hasGauge","angularGauge","angularaxisLayer","bulletGauge","bulletaxisLayer","titleY","titleX","titlebBox","scatterPolarAttrs","theta0","dtheta","AxisSpikes","OUTER_FACE","INNER_FACE","lastCubeProps","outerFace","innerFace","gridAttrs","roworder","noGridCell","getAxes","gridVal","splomVal","sizeDefaults","gridIn","dfltRows","dfltColumns","hasSubplotGrid","hasXaxes","hasYaxes","isSplomGenerated","gridOut","useDefaultSubplots","_hasSubplotGrid","dfltSideX","dfltSideY","rowOrder","dfltGapX","dfltGapY","_domains","fillGridPositions","dfltGap","dfltSide","dirGap","cellDomain","cellStart","contentDefaults","subplotsOut","yPos","axisMap","_axisMap","subplotsIn","rowOut","rowIn","fillGridAxes","anchors","_anchors","axisId","iFinal","axesIn","axesAllowed","fillOneAxis","parcoords","newIndex","visibleIndices","orig","origIndex","currentIndex","sorter","currentDims","fullIndices","inputIndices","iIn","filterChanged","initialDimIndex","newRanges","newConstraints","preGUI","constraintrange","fullDimension","restyleData","axesMoved","legendLayout","isReversed","minMax","setConvertRadial","rFilter","g2c","g2p","toRadians","fromRadians","setConvertAngular","_d2c","_c2d","coord0","dcoord","rad2c","c2rad","rad2t","t2rad","rad2g","g2rad","catLen","_period","g2t","applyOrigin","tittle","clearRect","topPx","firstTop","getImageData","bottomPx","baselinePx","baseline","alphabetic","medianPx","hangingPx","hanging","ideographicPx","ideographic","capHeight","xHeight","firstBottom","overshootPx","iData","UmmAlQuraCalendar","daysCount","mcjdn","ummalqura_dat","lunation","ii","ummalqura","near","far","mappers","dict","sunburstcolorway","extendsunburstcolors","alphaComplex","circumradius","scalegroup","scalemode","spanmode","piePlot","determineInsideTextFont","layoutAreas","prerenderTitles","positionTitleOutside","formatSliceLabel","getBetween","setCoords","baseratio","h2","totalValues","sumSteps","allPoints","getPoint","hidden","lastX","rY","prevLeft","prevRight","TL","TR","BL","BR","calcPos","_funnelarealayer","textPosition","titleTextGroup","globalThis","permutationSign","visited","_120","bezierX","bezierY","quadX","quadY","quadratic","large_arc_flag","sweep_flag","recursive","rx2","ry2","f2old","x2old","y2old","degress","activeXDocument","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","NullProtoObject","ActiveXObject","safeToString","reNewLine","ia","Ab","Za","Bb","Cb","onDestroy","Db","$a","Eb","devicePixelRatio","extensions","optionalExtensions","Fb","restore","J","alloc","allocType","freeType","ma","eb","Ha","Ia","gb","Gb","persistentData","bufferData","Qa","bufferCount","deleteBuffer","bindBuffer","getTotalBufferSize","jb","Ra","ja","_reglType","_buffer","subdata","bufferSubData","createStream","destroyStream","getBuffer","_initBuffer","Hb","primType","vertCount","oes_element_index_uint","elementsCount","uint16","uint32","Sa","getElements","lb","Ib","Ea","mb","Ta","Jb","ob","Ja","qa","Kb","internalformat","flipY","premultiplyAlpha","compressed","unpackAlignment","colorSpace","channels","alignment","Lb","La","pixelStorei","needsFree","needsCopy","fa","ga","Ua","qb","naturalWidth","naturalHeight","sb","videoWidth","videoHeight","Ma","compressedTexSubImage2D","copyTexSubImage2D","genMipmaps","mipmapHint","mipmask","mipmap","compressedTexImage2D","copyTexImage2D","ib","anisotropic","Va","Mb","V","K","ext_texture_filter_anisotropic","refCount","bindCount","texInfo","Aa","pixels","textureCount","fast","nearest","none","rgba4","rgb565","luminance","ext_srgb","srgb","srgba","oes_texture_float","oes_texture_half_float","float16","webgl_depth_texture","webgl_compressed_texture_s3tc","webgl_compressed_texture_atc","webgl_compressed_texture_pvrtc","webgl_compressed_texture_etc1","Nb","textureFormats","oa","za","ea","maxTextureUnits","decRef","getTotalTextureSize","create2D","subimage","_texture","createCube","cubeCount","getTexture","Ob","renderbuffer","_renderbuffer","framebuffer","colorAttachments","depthStencilAttachment","stencilAttachment","depthAttachment","framebufferCount","getError","colorCount","colorTexture","colorFormat","depthTexture","depthStencilTexture","depthStencil","Wa","Na","_framebuffer","use","setFBO","ext_color_buffer_half_float","webgl_color_buffer_float","getFramebuffer","ub","divisor","Pb","maxAttributes","Record","Qb","fragId","vertId","uniformsCount","attributesCount","getActiveUniform","getActiveAttrib","getAttribLocation","getMaxUniformsCount","getMaxAttributesCount","shaderCount","Rb","framebufferWidth","framebufferHeight","Ba","Ca","Sb","def","save","cond","Oa","thisDep","contextDep","propDep","Tb","Ka","Fa","batchId","shared","invoke","attribCache","scopeAttrib","scissor_box","strings","progVar","OFFSET","ELEMENTS","isBufferArgs","primTypes","instances","Xa","compareFuncs","Ga","dst","blendFuncs","blendEquations","Pa","fail","zfail","zpass","stencilOps","Da","isStream","glTypes","drawBuffer","backBuffer","instancing","contextDynamic","needsContext","needsFramebuffer","la","isDynamic","unbox","DynamicVariable","ext_blend_minmax","angle_instanced_arrays","webgl_draw_buffers","orientationType","maxDrawbuffers","procs","Ub","define","accessor","Ya","Vb","colorBits","depthBits","stencilBits","subpixelBits","maxAnisotropic","pointSizeDims","lineWidthDims","maxViewportDims","maxCombinedTextureUnits","maxCubeMapSize","maxRenderbufferSize","maxVertexUniforms","maxVertexTextureUnits","maxVaryingVectors","maxFragmentUniforms","glsl","vendor","readFloat","npotTextureCube","int8","int16","int32","triangle","Wb","renderbufferCount","rgba16f","rgb16f","rgba32f","getTotalRenderbufferSize","never","lequal","greater","notequal","gequal","always","keep","decrement","Xb","endQueryIndex","startQueryIndex","ext_disjoint_timer_query","beginQuery","createQueryEXT","beginQueryEXT","endQuery","endQueryEXT","pushScopeStats","getQueryObjectEXT","gpuTime","getNumPendingQueries","deleteQueryEXT","refresh","opBack","opFront","cpuTime","batch","poll","clearDepth","clearStencil","getContextAttributes","framebuffer_reglType","framebufferCube","hasExtension","_refresh","timerCache","_clearTimeout","minInterval","previousOnDone","ReflectOwnKeys","Reflect","ReflectApply","receiver","ProcessEmitWarning","warning","ownKeys","NumberIsNaN","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","existing","newListener","onceWrapper","fired","removeListener","wrapFn","_onceWrap","_listeners","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","RangeError","setMaxListeners","getMaxListeners","doError","er","addListener","prependListener","prependOnceListener","originalListener","removeAllListeners","rawListeners","eventNames","circuits","blocked","Ak","unblock","circuit","subgraph","minId","adjacencyStructureSCC","leastVertexComponent","sccs","ccs","leastVertex","vertexId","ShaderAttribute","_wrapper","_locations","_constFunc","addVectorAttribute","constFuncArgs","varNames","addMatrixAttribute","vertexAttribPointer","scratch","vertexAttrib","locs","mockGd","xLabel","yLabel","xyAttrs","copy_zstyle","xyzAttrs","error_z","hoverInfo","calcPoint","hoverPoint","yerr","yerrneg","xerr","xerrneg","scatter","scatter3d","scattergl","makeComputeError","parsed","do_convert","createShaderWrapper","perspectiveVertSrc","orthographicVertSrc","projectionVertSrc","drawFragSrc","ATTRIBUTES","pickPerspective","pickOrtho","pickProject","glyph","createPerspective","createOrtho","createProject","createPickPerspective","createPickOrtho","createPickProject","makeIncrements","nonuniform","binsToCalc","getRanges","uniqueVals","gapLow","gapHigh","xr2c","yr2c","xc2r","yc2r","xBinsAndPos","xBinSpec","xPos0","yBinsAndPos","yBinSpec","yPos0","onecol","zerocol","nonuniformBinsX","nonuniformBinsY","xEdges","yEdges","densitynorm","extremefunc","sizeinit","binfunc","normfunc","doavg","xinc","yinc","xBinSize","xBinStart","xBinEnd","yBinSize","yBinStart","yBinEnd","ipCol","uniqueValsPerX","uniqueValsPerY","xVals","yVals","xGapLow","xGapHigh","yGapLow","yGapHigh","YANGLE","HOVERARROWSIZE","HOVERTEXTPAD","HOVERFONTSIZE","HOVERFONT","HOVERMINTIME","HOVERID","axisLetter","crossAxisLetter","j1","gridlines","_gridlines","minorgridlines","_minorgridlines","boundarylines","_boundarylines","crossData","crossAxis","xcp","_xctrl","ycp","_yctrl","nea","neb","constructValueGridline","tj","pxy","dxydi0","dxydi1","dxydj0","dxydj1","xpoints","ypoints","b2j","crossLength","evalxy","dxydi","a2i","dxydj","constvar","constructArrayGridline","arraytick0","arraydtick","minorgridcount","minorgridcolor","minorgridwidth","startline","startlinecolor","startlinewidth","endline","endlinecolor","endlinewidth","annotationsDone","emitClick","stopImmediatePropagation","isAbsolute","isTotal","previousSum","hasTotals","rawS","mlc","els","unels","matrixOpts","unselectedOptions","selectedOptions","viewOpts","description","dfltX","dfltY","calcMarkerColorscale","isNonBlankString","isValidLoc","hasLocationData","scatterPlot","mlayer","rg","boxPlot","linePoints","cdViolins","violinLayer","makePath","baseTolerance","linearized","bPos","bdPos","hasBothSides","hasPositiveSide","hasNegativeSide","violins","pathPos","pathNeg","pathSel","density","posCenter","maxKDE","groupStats","_violinScaleGroupStats","maxCount","startPt","endPt","bdPosScaled","bPosPxOffset","plotBoxAndWhiskers","plotBoxMean","meanPaths","plotPoints","paste","traceAttr","cdAttr","makeCoerceHoverInfo","fillFn","fillArray","valuesuffix","arrangement","basePlotLayoutAttributes","handleTypeDefaults","handlePositionDefaults","appendList","ax2traces","xaMayHide","yaMayHide","xaMustDisplay","yaMustDisplay","yaMustNotReverse","yaMayReverse","axHasImage","noGrids","xaName","yaName","positionAxis","xNames","axNames","plotBgColor","axLayoutIn","axLayoutOut","getCounterAxes","counterAxes","getOverlayableAxes","axName2","_annIndices","_counterAxes","overlayableAxes","defaultOptions","spikedash","spikemode","spikesnap","showSpikes","rangeSliderDefaults","rangeSelectorDefaults","anchoredAxis","fixedRangeDflt","group2","layerName","getExtraText","isAll","hasLon","hasLat","lonShift","xval2","distFn","lonlatShifted","drawing","setPosition","setSize","translatePoint","translatePoints","hideOutsideRangePoint","singleLineStyle","ld","lw1","dashStyle","dlw","singleFillStyle","SYMBOLDEFS","symbolNames","symbolFuncs","symbolNeedLines","symbolNoDot","symbolNoFill","symDef","MAXSYMBOL","DOTPATH","makePointPath","symbolNumber","vbase","HORZGRADIENT","VERTGRADIENT","stopFormatter","gradientInfo","radialreversed","horizontalreversed","vertical","verticalreversed","gradientID","colorStops","fullID","stops","tc","tinyRGB","getFullUrl","className2query","_gradientUrlQueryParts","initGradients","gradientsGroup","makePointStyleFns","singlePointStyle","ms2mrc","om","perPointGradient","so","markerLineWidth","mlcc","lineScale","markerScale","mgt","gradientColor","mgc","selectedAttrs","unselectedAttrs","selectedMarker","unselectedMarker","smo","usmo","smoIsDefined","usmoIsDefined","smc","usmc","sms","usms","smsIsDefined","usmsIsDefined","makeSelectedTextStyleFns","selectedTextFont","unselectedTextFont","stc","selectedTextColorFn","mrc2","TEXTOFFSETSIGN","textPointPosition","markerRadius","numLines","extracTextFontSize","extractOption","tp","CatmullRomExp","makeTangent","prevpt","thispt","nextpt","smoothness","d1x","d1y","d2x","d2y","d1a","d2a","numx","numy","denom1","denom2","pLast","STEPPATH","hv","vh","hvh","vhv","STEPLINEAR","onestep","makeTester","testref","savedBBoxes","savedBBoxesCount","maxSavedBBoxes","nodeHash","inputText","localId","baseUrl","_exportedPlot","_baseUrl","inTester","testNode","innerBB","testRect","SCALE_RE","yScale","TEXT_POINT_LAST_TRANSLATION_RE","existingTransform","propertyKey","copyPathinfo","pi0","pi1","op0","op1","dupe_array","dupe_number","dupe","stringCoerce","toShortString","resolveMessage","defaultMessage","inputOptions","isOptional","errorMessage","SHOWISOLATETIP","itemClick","itemclick","itemDoubleClick","itemdoubleclick","attrUpdate","attrIndices","carrs","carrIdx","thisLabelIndex","hasLegendgroup","traceIndicesInGroup","nextVisibility","setVisibility","isClicked","isInGroup","notInLegend","otherState","isIsolated","updateKeys","insertUpdate","attrIndex","valueArray","lastGroupbyIndex","curState","hoverConstants","oldhoverdata","calcCommon","ptFunc","_numBoxes","literals100","operators","builtins100","literals300es","builtins300es","NORMAL","TOKEN","BLOCK_COMMENT","LINE_COMMENT","PREPROCESSOR","OPERATOR","INTEGER","IDENT","BUILTIN","KEYWORD","WHITESPACE","HEX","isnum","isoperator","allBuiltins","allLiterals","builtinsDict","literalsDict","chunk","block_comment","line_comment","preprocessor","operator","readtoken","whitespace","determine_operator","is_composite_operator","contentstr","getSubplotCalcData","MAPBOX","findAccessToken","mapboxIds","tokensUseful","tokensListed","hasOneSetMapboxStyle","wontWork","isMapboxStyle","noAccessTokenErrorMsg","missingStyleErrorMsg","multipleTokensErrorMsg","requiredVersion","wrongVersionErrorMsg","subplotCalcData","oldMapboxKeys","oldMapboxKey","subplotDiv","logo","mapboxLogo","path2","attributions","attributionGroup","attributionText","multilineAttributions","SANKEY","subplotUpdateFx","bgRect","_bgRect","newGroups","oldGroups","newGroup","findNode","hadPlot","hasPlot","circumcenter","avgDist","extendedColorWayList","hiddenLabels","_hasValues","dlabel","label0","allThisTraceLabels","isAggregated","shouldSort","extendedColorWays","colorString","cm","zminDesc","zmaxDesc","do_warp","do_warp_1","do_warp_2","do_warp_3","handleConstraintValueDefaults","zvalue","lineDfltColor","boxLayoutDefaults","plotObj","_ev","internalEv","_internalEv","_internalOnce","_removeAllInternalListeners","trigger","jQueryHandlerValue","nodeEventHandlerValue","handlers","arrayMax","maybeArray","squareStringMatrix","matrixIn","maxLen","padLen","emptyStrings","padArray","makeRowBlock","anchorToRowBlock","auxiliary","blockAnchorKeys","makeAnchorToRowBlock","rowHeights","minimumFillHeight","currentRowHeight","currentAnchor","currentBlockHeight","currentBlock","makeIdentity","currentFirstRowIndex","blockCounter","lastRowIndex","cellsValues","slicer","headerValuesIn","headerValues","groupWidth","headerRowHeights","anchorToHeaderRowBlock","uniqueKeys","columnOrder","columnWidths","totalColumnWidths","foundKey","compareOrientedCells","createTriangulation","removePair","compareLex","removeTriangle","addTriangle","ChineseCalendar","MONTH_NUMBER_REGEXP","_validateYear","monthIndex","toChineseMonth","isIntercalaryMonth","MONTH_NAME_REGEXP","monthName","MONTH_SHORT_NAME_REGEXP","monthString","intercalaryMonth","invalidIntercalaryMonth","maxMonthIndex","monthDaysTable","LUNAR_MONTH_DAYS","firstThursday","validatedYear","invalidyear","packedDate","CHINESE_NEW_YEAR","solar","toSolar","lunar","toLunar","fromString","dateString","DATE_REGEXP","resultYear","resultMonthIndex","resultCanBeIntercalaryMonth","correctedMonthIndex","chinese","yearOrDate","monthOrResult","solarDate","lunarDate","isValidYear","isValidMonth","isValidDay","chineseNewYearPackedDate","daysFromNewYear","chineseNewYearJSDate","jsDate","isIntercalaryOrResult","monthsFromNewYear","getUpdateObject","makeSelectorData","selectorKeyFunc","isActive","axisLayout","drawButtonRect","selectorLayout","getFillColor","_isActive","_isHovered","drawButtonText","getLabel","reposition","tHeight","hEff","tWidth","tLines","wEff","minButtonWidth","selectors","appendArrayMultiPointValues","percent","hoverOnBars","DIRSYMBOL","vAxis","deltaLabel","finalLabel","initialLabel","_glTrace","updateOnSelect","layerId","hr_name","NanakshahiCalendar","nanakshahi","isArguments","iteratorSymbol","autoContours","inputContours","isLonLatOverEdges","aLabel","bLabel","cLabel","axisOpts","slideBox","grabAreaMin","grabAreaMax","mouseMove","pixelMin","pixelMax","_pixelMin","_pixelMax","setDataRange","mouseUp","setPixelRange","oppAxisOpts","oppAxisRangeOpts","hw2","clampOppAxis","clampHandle","pixelMinOppAxis","d2pOppAxis","pixelMaxOppAxis","drawBg","borderCorrect","offsetShift","addClipPath","_clipId","drawRangePlot","rangePlots","isMainPlot","oppAxisName","mockFigure","isRangePlot","rangePlot","filterRangePlotCalcData","drawMasks","maskMin","maskMax","maskMinOppAxis","maskMaxOppAxis","maskOppBorder","drawSlideBox","drawGrabbers","grabberMin","grabberMax","handleFixAttrs","handleDynamicAttrs","handleMin","handleMax","grabAreaFixAttrs","keyFunction","rangeSliders","axRng","range0","range1","range0OppAxis","range1OppAxis","distOppAxis","recompose","decompose","slerp","state0","state1","quaternion","oldValue","tobj","gridline","_labels","endAnchor","isFirst","isLast","rootPosition","mouseEventOffset","getBoundingClientOffset","scatterGeoMarkerLineAttrs","createScatterPlot","DASH_PATTERNS","MARKER_SYMBOLS","calculateError","LineWithMarkers","errorBars","textMarkers","delaunayMesh","dataPoints","textLabels","constructDelaunay","filteredPoints","filteredIds","calculateErrorParams","parseAlignmentX","parseAlignmentY","calculateTextOffset","defaultAlignmentX","defaultAlignmentY","textOffset","calculateSize","sizeIn","calculateSymbol","symbolIn","formatParam","paramIn","extraFn","paramOut","convertPlotlyOptions","zc","scaleFactor","d3locale","lineDashes","scatterColor","scatterSize","scatterMarker","scatterLineWidth","scatterLineColor","scatterAngle","textSize","projectScale","projectOpacity","errorBounds","errorParams","errorColor","errorLineWidth","errorCapSize","delaunayAxis","surfaceaxis","delaunayColor","arrayToColor","createLineWithMarkers","scatterOptions","errorOptions","dashPattern","scatterOpacity","highlightScale","delaunayOptions","traceref","tracerefminus","doBind","nattribs","MAX_VERTEX_ATTRIBS","attrib","vertexAttrib1f","vertexAttrib2f","vertexAttrib3f","vertexAttrib4f","ARRAY_BUFFER","dimi","mimickAxisDefaults","axesList","helpers_1","xSum","ySum","colorBars","makeColorBarData","cbbg","cbfills","cblines","cbaxis","cbtitleunshift","cbtitle","cboutline","drawColorBar","_fillcolor","_line","_levels","_filllevels","_fillgradient","_zrange","calcOpts","moduleOpts","allowsMultiplotCbs","contName","_traceIndex","_propPrefix","colorAxOpts","titleSide","lineColormap","fillColormap","levelsIn","levelsOut","calcLevels","fillLevels","lineLevels","thickPx","thickFrac","lenPx","lenFrac","xpadFrac","yExtraPx","ypadFrac","xLeftFrac","yBottomFrac","yBottomPx","yTopPx","_lenFrac","_thickFrac","_xLeftFrac","_yBottomFrac","mockColorBarAxis","titlex","titley","autoNtick","dtFactor","dtexp","titleCont","titleOpts","dfltTitleOpts","otherClass","drawDummyTitle","drawCbTitle","drawAxis","titleTrans","mathJaxNode","lineSize","jsPlaceholder","nlines","fills","cbfill","zBounds","fillEl","cbline","positionCB","titleWidth","outerwidth","outerheight","xoffset","marginOpts","tFrac","bFrac","lFrac","rFrac","extraThickness","zr0","zr1","fillLevelsIn","cbAxisIn","cbAxisOut","mobileRE","tabletRE","BOTTOMSTART","TOPSTART","LEFTSTART","RIGHTSTART","NEWDELTA","CHOOSESADDLE","104","208","713","1114","SADDLEREMAINDER","2","4","7","8","11","13","14","scatterglPlot","sceneUpdate","subRArray","subThetaArray","markerSel","markerUnsel","textSel","textUnsel","rawx","rawy","fargs","reads","sizeLetter","percentInitialLabel","percentPreviousLabel","percentTotalLabel","colorbarOut","colorbarIn","createFilteredVector","cubicHermite","FilteredVector","velocity0","_velocity","_scratch","getZero","initState","initVelocity","initTime","steady","dcurve","derivative","stable","jump","sf","statePtr","toPosInt","validValue","arrayLike","Context","mapFn","ScrollBox","hbar","vbar","barRadius","boxL","boxR","boxT","boxB","isDown","isLeft","isRight","isUp","boxW","boxH","_box","needsHorizontalScrollBar","hbarW","hbarH","hbarL","hbarT","_hbarXMin","_hbarTranslateMax","needsVerticalScrollBar","vbarW","vbarH","vbarL","vbarT","_vbarYMin","_vbarTranslateMax","clipL","clipR","clipT","clipB","_clipRect","onBoxDrag","_onBoxDrag","_onBoxWheel","onBarDrag","_onBarDrag","translateXMax","translateYMax","convexHull2D","monotoneHull","DASHES","makeProjectionAttr","primitivesLoopSplice","inputs","isDeep","keepAllKeys","noArrayCopies","copyIsArray","allPrimitives","extendDeepNoArrays","postfix","padLeft","delim","totalDigits","handleOHLC","handleDirection","isLE","mLen","nBytes","eMax","eBias","nBits","insidetextorientation","pull","titleposition","mouseListen","buttonState","mods","alt","control","attached","updateMods","handleEvent","nextButtons","nextY","clearState","handleBlur","handleMods","handleMouseMove","handleMouseDown","handleMouseUp","attachListeners","detachListeners","ensureSingleAndAddDatum","cdSubplot","traceLayerClasses","zoomScaleQueryParts","plotMethod","zoomScale","clipOnAxisFalseQuery","clipOnAxisFalseTraces","makeSubplotData","regulars","xa2","ya2","makeSubplotLayer","xLayer","layerValue2layerClass","yLayer","hasOnlyLargeSploms","mainplotgroup","overlinesBelow","overaxesBelow","overplot","overlinesAbove","overaxesAbove","xlines","ylines","backLayer","imagelayer","purgeSubplotLayers","overlayIdsToRemove","removeSubplotExtras","subplotInfo","overlayInfo","transitionAxes","finalizeSubplots","spSVG","spAll","allX","allY","ki","pcd","oldPlots","newPlots","oldSubplotList","hadGl","hasGl","oldAxIDs","oldAxId","hadCartesian","hasCartesian","_cartesianlayer","oldSubplotId","subplotLayers","draglayer","imageRoot","canvases","canvasToImage","heatmapHover","xRange","yRange","regexpFlags","stickyHelpers","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","charsAdded","strCopy","multiline","hoverdistance","spikedistance","robustSubtract","EPSILON","ERRBOUND3","ERRBOUND4","orientation3Exact","orientation4Exact","adx","bdx","cdx","ady","bdy","cdy","adz","bdz","cdz","bdxcdy","cdxbdy","cdxady","adxcdy","adxbdy","bdxady","permanent","slowOrient","generateOrientationProc","b01","b02","b03","b04","b05","b06","b07","b08","b09","b10","b11","createView","mouseWheel","hasPassive","distanceLimits","pmatrix","keyBindingMode","enableWheel","rotateSpeed","zoomSpeed","translateSpeed","flipX","modes","ctime","sizeChanged","getMode","curUp","curEye","curCenter","setMode","_active","ncenter","neye","nup","_lastX","_lastY","_lastMods","handleInteraction","ctrl","drot","kzoom","wheelListener","shouldHide","minKey","getMinKey","minsize","pointsAccessorFunction","transformOne","srcArray","newTrace","arrayLookup","groupNameObj","transformIndex","originalPointsAccessor","groupNames","newData","arrayAttrs","styleLookup","indexCnts","suppliedName","nameformat","indexToPoints","clearExpandedTraceDefaultColors","_compareAsJSON","transformIn","transformOut","styleIn","styleOut","thisStyle","newTraces","compareOrientedCell","reduceCellComplex","detection","POLYFILL","NATIVE","describeVariables","descPart","quotedKeys","HiddenSymbol","isNativeSafe","NativeSymbol","generateName","setupStandardSymbols","setupSymbolRegistry","ignore","__description__","__name__","manage","AxisIDs","scatterCalc","expandForErrorBars","errExt","_bnds","sceneOptions","errorX","errorY","errorBarPositions","hasTooManyPoints","snap","monotoneTriangulate","makeIndex","delaunayFlip","filterTriangulation","canonicalizeEdge","compareEdge","canonicalizeEdges","getDefault","cdt2d","exterior","infinity","objPrototype","created","ie11BugWorkaround","textGet","globals","__TEXT_CACHE","shapeX","tri","fontcache","bufferSize","ew","xa0","ya0","xaHash","yaHash","xActive","yActive","allFixedRanges","hasScatterGl","hasSplom","hasSVG","updates","isMainDrag","singleEnd","recomputeAxisLists","hashValues","isDirectionActive","calcLinks","isSubplotConstrained","getDragCursor","zoomMode","zoomDragged","clearAndResetSelect","attrStr","getEndText","hAlign","vAlign","_hmpixcount","_hmlumcount","_transitioningWithDuration","noZoom","xyCorners","xCorners","yCorners","updateZoombox","zoomAxRanges","updateMatchedAxRange","dragTail","dragModePrev","isSelectOrLasso","_redrag","dragDataNow","updateSubplots","scrollViewBox","redrawTimer","REDRAWDELAY","zoomWheel","_enablescrollzoom","gbb","xfrac","yfrac","zoomWheelOneAxis","ticksAndAnnotations","axRange","doZoom","dragAxList","dxySign","dxyFraction","yStart","axArray","movedAx","newLinearizedEnd","otherEnd","axi","dZoom","newEnd","matchedAxes","constrainedAxes","xLinks","yLinks","activeAxIds","pushActiveAxIds","doubleClickConfig","plotinfos","splom","xrng","yrng","xScaleFactor2","yScaleFactor2","editX2","editY2","getShift","getLinkedScaleFactor","scaleAndGetShift","attachWheelEventHandler","dragClass","dragger3","activeVal","r0Fraction","r1Fraction","linkedAxes","axRangeLinear0","axRangeLinearSpan","linkedR0Fraction","pix","nsew","clen","xID","yID","xLinkID","yLinkID","xaHashLinked","xaxesLinked","yaHashLinked","yaxesLinked","wheelEventName","onwheel","_onwheel","onmousewheel","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","arr2","colorId","extend","updateDiff","f32","Scatter","paletteIds","markerTextures","markerCache","maxColors","tooManyColors","shaderOptions","paletteSize","scaleFract","translateFract","positionBuffer","xFract","positionFractBuffer","yFract","sizeBuffer","borderSize","colorBuffer","borderColorId","activation","drawMarker","circleOptions","drawCircle","pixelSize","_this2","_len","_key","drawItem","getMarkerDrawOptions","markerId","selectionBuffer","markerTexture","lod","markerActivation","_lod$l","_this3","_len2","_key2","ondraw","hasSize","hasColor","updateColor","_bounds","_positions","markers","markerMasks","addMarker","_id2","vp","_i2","_group2","_i3","_colorId","_i4","sdf","distArr","_i5","_i6","updatePalette","extend$1","reglScatter2d","scatter$$1","float2rat","rangeLinear","createHeatmap2D","GLHeatmap2D","weightBuffer","idBuffer","xData","yData","WEIGHTS","boundX","boundY","viewTransform","PICK_VECTOR","colorLevels","colorValues","lox","loy","hix","hiy","numX","numY","yc0","yc1","xc0","xc1","colorIdx","pieAttrs","sunburstAttrs","maxdepth","squarifyratio","depthfade","sqInit","isort","BLUE_FLAG","RED_SWEEP_QUEUE","RED_SWEEP_INDEX","BLUE_SWEEP_QUEUE","BLUE_SWEEP_INDEX","COMMON_SWEEP_QUEUE","COMMON_SWEEP_INDEX","SWEEP_EVENTS","rcount","eventLength","sqPop","sqPush","istart","iend","redOffset","redActive","blueActive","commonActive","redShift","blueShift","isRed","oidx","ensurePlainFunction","normalizeOptions","dgs","overwriteDefinition","resolveContext","yl","htx","hbg","hbc","hts","htc","htf","hnl","ht","fakeCd","pointData2","rVal","rLabel","thetaVal","thetaLabel","planarDual","numEdges","cut","noCut","nextCell","nextVertex","nextDir","nbhd","extractCycle","shouldGlue","pcycle","ncycle","LinkedList","selfIntersection","segmentNew","segmentId","myFill","above","otherFill","segmentCopy","event_root","eventCompare","p1_isStart","p1_1","p1_2","p2_isStart","p2_1","p2_2","pointsCompare","pointsSame","pointAboveOrOnLine","eventAdd","other_pt","here","isStart","eventAddSegmentStart","primary","ev_start","eventAddSegmentEnd","ev_end","eventAddSegment","eventUpdateEnd","segmentChop","eventDivide","primaryPolyInverted","secondaryPolyInverted","status_root","statusCompare","ev1","ev2","pointsCollinear","statusFindSurrounding","findTransition","checkIntersection","linesIntersect","a1_equ_b1","a2_equ_b2","a1_between","pointBetween","a2_between","alongA","alongB","isEmpty","getHead","surrounding","checkBothIntersections","eve","tempStatus","segmentUpdate","rewind","st","exists","statusRemove","b12","b20","b21","b22","createProperty","arraySpeciesCreate","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","dimensionIn","dimensionOut","orderDefault","isValidArray","labelfontDflt","categoryfontDefault","handleTraceDefaults","CANONICAL_TICK","coptic","discworld","ethiopian","hebrew","julian","mayan","nepali","CANONICAL_SUNDAY","DFLTRANGE","UNKNOWN","d3ToWorldCalendars","worldCalFmt","modifier","directive","directiveLen","directiveObj","replacementPart","getCal","allCals","calendarObj","makeAttrs","makeTraceAttrsDescription","xAttrs","axisAttrs","histogram2d","histogram2dcontour","mesh3d","ohlc","candlestick","valuecalendar","targetcalendar","decodeFloat","UINT8_VIEW","FLOAT_VIEW","arrRange","SPLOM","passes","passId","getBox","iloy","ihiy","jlox","jhix","iitem","jitem","this$1","planned","updateItem","i$1","tracePasses","passOffset","multirange","multipadding","ih","i$2","ref$1","ref$2","passes$1","passOffset$1","firstAxis","maybeCarpet","nativeDefineProperty","Attributes","commonList","animationAttrs","currentvalue","activebgcolor","gripBgActiveColor","railBgColor","railBorderColor","railBorderWidth","minorticklen","minorTickLength","LOG_CLIP_PLUS","LOG_CLIP_MINUS","clusterStartPt","clusterEndPt","clusterHighPt","clusterLowPt","clusterHighFirst","clusterUnitVector","thisVector","clusterRefDist","clusterHighVal","clusterLowVal","clusterMinDeviation","clusterMaxDeviation","thisDeviation","latestXFrac","latestYFrac","xLog","yLog","minTolerance","pti","getPt","crossesViewport","xFrac0","yFrac0","xFrac1","yFrac1","getTolerance","nextPt","xFrac","yFrac","offScreenFraction","toleranceGrowth","ptDist","xEdge","yEdge","lastXEdge","lastYEdge","lastFarPt","edgePt","getEdgeIntersections","maxScreensAway","xEdge0","xEdge1","yEdge0","yEdge1","getLinearEdgeIntersections","ptCount","ptInt","onlyConstrainedPoint","sameEdge","getHVEdgeIntersections","ptInt1","ptInt2","getABAEdgeIntersections","limit0","limit1","ptToAlter","midShift","getClosestCorner","updateEdge","xSame","ySame","xSame2","ySame2","updateEdgesForReentry","intersections","lastPt","horizontalOrder","alo","ahi","blo","getXRange","buttonLayout","currentRange","stepmode","base2","xrange","createMatrix","visibleLength","domains","dmn","needsBaseUpdate","commonLength","selOpts","splomCalcData","plainObject","customCreate","createGeo","GEO","plotGeo","geoId","geoCalcData","_geolayer","oldGeoKeys","oldGeoKey","oldGeo","subplotLayout","supplyGl3dAxisLayoutDefaults","handleGl3dDefaults","sceneLayoutIn","sceneLayoutOut","bgColorCombined","cameraKeys","hasAspect","defaultAspectMode","aspectMode","aspectmode","fullGl3dData","getDfltFromLayout","hasNon3D","RE","SelectBox","boxBuffer","boxShader","selectBox","innerColor","outerColor","createSelectBox","boxVertex","boxFragment","screenWidth","screenHeight","numArr","scalarScalar","linearExpansionSum","eptr","fptr","ei","fi","_bv","_av","_br","_ar","q0","boxIntersectWrapper","RESULT","boxEmpty","convertBoxes","boxIntersect","redList","redIds","blueList","blueIds","appendItem","intersectFullArray","intersectBipartiteArray","arg1","arg2","meshAttrs","makeSliceAttr","makeCapAttr","_responsiveChartHandler","bundlecolors","sortpaths","plotApi","imageDataOnly","isImpliedOrValid","fullOpts","clonedGd","layoutImage","configImage","redrawFunc","urlToImageData","_carpet","ij","ab2ij","interp1d","w00","w01","interp3d","u0","u1","w000","w010","w100","w110","w001","w011","w101","w111","interpNd","isHoriz","hovermodeDflt","hoverMode","hasMapbox","hasGeo","axisConstraints","enforceAxisConstraints","cleanAxisConstraints","SVG_TEXT_ANCHOR_START","SVG_TEXT_ANCHOR_MIDDLE","SVG_TEXT_ANCHOR_END","overlappingDomain","existingX","existingY","lsInner","autosize","_hasZeroWidth","_hasZeroHeight","drawMainTitle","getLinePosition","lwHalf","_lw","lowerBackgroundIDs","backgroundIds","lowerDomains","noNeedForBg","pgNode","plotgroupBg","xLinesXLeft","xLinesXRight","xLinesYBottom","xLinesYTop","leftYLineWidth","rightYLineWidth","yLinesYBottom","yLinesYTop","yLinesXLeft","yLinesXRight","connectYBottom","connectYTop","extraSubplot","lowerBackgrounds","_bgLayer","plotClipId","plotClip","xLinePath","xLinePathFree","yLinePath","yLinePathFree","mainPath","pathFn","pathFnFree","xPath","shouldShowLinesOrTicks","findCounterAxisLineWidth","yPath","shouldShowLineThisSide","anchorAx","sideIndex","getMainTitleX","hPadShift","getMainTitleY","vPadShift","getMainTitleTextAnchor","getMainTitleDy","layoutStyles","doAutoMargin","doTraceStyle","editStyleCalls","editStyle","doColorBars","layoutReplot","doLegend","doTicksRelayout","updateGrid","doModeBar","doCamera","setViewport","drawData","cartesianIds","polarIds","_splomGrid","doAutoRangeAndConstraints","groupLoop","finalDraw","drawMarginPushers","rawError","shortMessage","longMessage","definition","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","color_formatHex","formatHex","color_formatHsl","hslConvert","formatHsl","color_formatRgb","formatRgb","color_color","rgbn","Rgb","rgbConvert","color_rgb","rgb_formatHex","rgb_formatRgb","Hsl","hsl2rgb","displayable","src_basis","basisClosed","exponential","color_hue","nogamma","src_rgb","rgbGamma","rgbSpline","spline","rgbBasis","rgbBasisClosed","numberArray","isNumberArray","genericArray","src_value","reA","reB","cssNode","cssRoot","cssView","svgNode","discrete","src_hue","skewX","parseCss","parseSvg","pxComma","pxParen","degParen","interpolateTransformCss","interpolateTransformSvg","rho","rho2","rho4","epsilon2","zoom_cosh","zoom_sinh","tanh","hsl_hsl","src_hsl","hslLong","Xn","Yn","Zn","labConvert","Lab","Hcl","hcl2lab","rgb2lrgb","xyz2lab","lab2xyz","lrgb2rgb","hclConvert","lab_lab","hcl_hcl","src_hcl","hclLong","ED","EB","BC_DA","cubehelixConvert","Cubehelix","cubehelix_cubehelix","src_cubehelix_cubehelix","cubehelixGamma","cubehelix","cosh","sinh","src_cubehelix","cubehelixLong","piecewise","samples","hoverLabelAttrs","INT_BITS","INT_MAX","INT_MIN","isPow2","log10","prevPow2","REVERSE_TABLE","tab","interleave2","deinterleave2","interleave3","deinterleave3","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineWellKnownSymbol","setToStringTag","HIDDEN","TO_PRIMITIVE","setInternalState","ObjectPrototype","$Symbol","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","tag","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","$replacer","getCubeEdges","pCubeVerts","cubeVerts","zero3","transformHg","FRUSTUM_PLANES","CUBE_EDGES","CUBE_AXIS","CUBE_RESULT","cubeEdges","farthest","cutCorner","cdOHLC","ohlcLayer","xo","yo","hoverModule","containerOrSelection","isD3Selection","castHoverOption","_coerce","supplyLayoutGlobalDefaults","inbox","quadrature","toPX","mouseWheelListen","noScroll","deltaX","deltaZ","makeColorMap","isColorbar","conePlot","Cone","ww","axisName2scaleIndex","anchor2coneOffset","tip","anchor2coneSpan","coneOpts","axisName","_normMax","meshData","_pad","createConeTrace","cone","polygonIn","polygonOut","xpyp","xstar","ystar","dsin","dcos","tanA","cotanA","del","makeRegularPolygon","makeClippedPolygon","a2xy","findXY","cycleIndex","xyN","minFn","adelta","transformForSVG","pts0","pts1","outer","chains","chainStart","first_match","matches_head","matches_pt1","second_match","next_match","chain","setMatch","chainNew","chainMatch","addToHead","grow","grow2","oppo","oppo2","chainRemoveHead","chainRemoveTail","chainClose","chainAddHead","chainAddTail","chainConnect","reverseF","reverseChain","appendChain","chainReverse","chain1","chain2","tail2","head2","chainJoin","TEMPLATEITEMNAME","templateAttrs","validItemName","lastChar","traceTemplater","traceCounts","typei","baseName","defaultsTemplate","templateItems","itemIn","templateItemName","templateItem","outi","_templateitemname","parentIn","itemOut","lengthIn","resetUpdate","updateOut","applyUpdate","updateToApply","hidesources","datarevision","editrevision","selectionrevision","nextSegmentId","curVert","segmentRemove","MayanCalendar","amod","haabMonths","tzolkinMonths","baktun","katun","forYear","haab","_toHaab","tzolkin","_toTzolkin","haabMonthName","haabMonth","haabDay","tzolkinDayName","tzolkinDay","tzolkinTrecena","arrayStr","rootContainers","regexpContainers","rootPart","maxpoints","TriangleCache","createABigTriangle","_triangleBuffer","barycentric","solve","baseframe","handleLabelsAndValues","hasLabels","hasPositive","_hasLabels","textInfo","textTemplate","titlePosition","scatterSubTypes","getButtonGroups","buttonsToRemove","buttonsToAdd","hasGL3D","hasPie","hasFunnelarea","hasGL2D","hasTernary","hasSankey","allAxesFixed","areAllAxesFixed","addGroup","commonGroup","zoomGroup","hoverGroup","resetGroup","dragModeGroup","hasNoHover","isSelectable","appendButtonsToGroups","selectable","fillCustomButton","customButtons","_modeBar","buttonGroups","convertOnSelect","LAYER_PREFIX","traceLayerPrefix","ChoroplethMapbox","sourceId","_update","optsAll","getSource","setData","_removeLayers","_addLayers","removeLayer","removeSource","choroplethMapbox","addSource","createSurfacePlot","surfaceNets","SURFACE_VERTEX_SIZE","QUAD","PERMUTATIONS","SurfacePickResult","N_COLORS","divseq","SurfacePlot","contourPickShader","contourBuffer","dynamicBuffer","dynamicVAO","objectOffset","intensityBounds","_shader","_pickShader","_coordinateBuffer","_vao","_colorMap","_contourShader","_contourPickShader","_contourBuffer","_contourVAO","_contourOffsets","_contourCounts","_vertexCount","_pickResult","_dynamicBuffer","_dynamicVAO","_dynamicOffsets","_dynamicCounts","contourTint","enableHighlight","highlightColor","highlightTint","highlightLevel","enableDynamic","dynamicLevel","dynamicColor","dynamicTint","dynamicWidth","surfaceProject","contourProject","colorBounds","_field","mallocFloat","vertexColor","ZERO_VEC","PROJECT_DATA","projections","computeProjectionData","cubeAxis","axisSquish","nclipBounds","UNIFORMS","lowerBound","upperBound","zOffset","MATRIX_INVERSE","DEFAULT_PERM","drawCore","transparent","clipClamped","projectData","PICK_UNIFORMS","handleArray","toColor","handleColor","coordinateBuffer","nparams","levelIndex","padField","dstField","srcField","srcShape","dstShape","levelsChanged","fsize","freeFloat","tick2","dfields","dxdu","dxdv","dydu","dydv","dzdu","dzdv","nz","nl","lo_intensity","hi_intensity","tverts","tptr","j_loop","vf","change_test","contourVerts","contourLevel","levelOffsets","levelCounts","edge_loop","axis_loop","iu","floatBuffer","dyanamicLevel","scratchBuffer","jx","jy","cu","scatterHover","yFracUp","textPart","_hovertitle","parcoordsPlot","hadParcoords","hasParcoords","JulianCalendar","posOffset","hasTypedArrays","DOUBLE_VIEW","UINT_VIEW","toDoubleLE","lowUintLE","highUintLE","toDoubleBE","lowUintBE","highUintBE","toDouble","writeUInt32LE","readDoubleLE","lowUint","writeDoubleLE","readUInt32LE","highUint","fraction","denormalized","hasPreCompStats","boxmeanDflt","notchedDflt","getDims","sLen","defaultOrientation","yDims","xDims","setInX","setInY","hasCategories","outlierColorDflt","lineoutliercolor","modeDflt","ORDER","ScatterMapbox","sourceIds","layerIds","setSourceData","scatterMapbox","barPointData","posVal","pRangeCalc","isClosest","isWaterfall","maxSpikeDistance","thisBarMinPos","thisBarMaxPos","minPos","maxPos","_positionFn","_minPos","_maxPos","positionFn","thisBarPositionFn","labelLabel","CopticCalendar","SUBPLOT_PATTERN","remainingCalcData","subplotX","subplotY","spmatch","Font","createRegl","createGl","fontAtlas","isObj","parseUnit","metrics","isStretchSupported","fontStretch","GlText","isRegl","charBuffer","charOffset","atlasSize","atlasDim","cols","charStep","positionOffset","normalViewport","viewportArray","baseFontSize","newAtlasChars","newFont","newFontSize","baseString","stretch","variant","fonts","fontString","textArray","textOffsets","atlasContext","baseChar","positionData","j$1","charIds","sizeData","i$3","ptr$1","count$1","j$2","prevChar","prevWidth","currWidth","prevOffset","kerning$1","maxCols","maxAtlasSize","atlasWidth","atlasHeight","atlasCanvas","alignOffset","baselineOffset","colorData","i$4","l$1","i$5","isBatch","i$6","ignoreCase","dotAll","fileSaver","_snapshotInProgress","messages","3","5","6","256","512","513","514","515","516","517","518","519","768","769","770","771","772","773","774","775","776","1024","1028","1029","1032","1280","1281","1282","1285","1286","2304","2305","2849","2884","2885","2886","2928","2929","2930","2931","2932","2960","2961","2962","2963","2964","2965","2966","2967","2968","2978","3024","3042","3088","3089","3106","3107","3317","3333","3379","3386","3408","3410","3411","3412","3413","3414","3415","3553","4352","4353","4354","5120","5121","5122","5123","5124","5125","5126","5386","5890","6401","6402","6406","6407","6408","6409","6410","7680","7681","7682","7683","7936","7937","7938","9728","9729","9984","9985","9986","9987","10240","10241","10242","10243","10497","10752","16384","32769","32770","32771","32772","32773","32774","32777","32778","32779","32819","32820","32823","32824","32854","32855","32873","32926","32928","32936","32937","32938","32939","32968","32969","32970","32971","33071","33170","33189","33306","33635","33648","33901","33902","33984","33985","33986","33987","33988","33989","33990","33991","33992","33993","33994","33995","33996","33997","33998","33999","34000","34001","34002","34003","34004","34005","34006","34007","34008","34009","34010","34011","34012","34013","34014","34015","34016","34024","34041","34055","34056","34067","34068","34069","34070","34071","34072","34073","34074","34076","34338","34339","34340","34341","34342","34373","34466","34467","34660","34661","34816","34817","34818","34819","34877","34921","34922","34930","34962","34963","34964","34965","34975","35040","35044","35048","35632","35633","35660","35661","35663","35664","35665","35666","35667","35668","35669","35670","35671","35672","35673","35674","35675","35676","35678","35680","35712","35713","35714","35715","35716","35717","35718","35719","35720","35721","35722","35724","35725","36003","36004","36005","36006","36007","36048","36049","36050","36051","36053","36054","36055","36057","36061","36064","36096","36128","36160","36161","36162","36163","36164","36168","36176","36177","36178","36179","36180","36181","36194","36336","36337","36338","36339","36340","36341","36346","36347","36348","36349","37440","37441","37442","37443","37444","thrower","ACCESSORS","argument0","argument1","TERNARY","ternaryIds","ternaryId","ternary","oldTernaryKeys","oldTernaryKey","oldTernary","EVENT_POINT","EVENT_END","EVENT_START","PartialHull","lowerIds","upperIds","compareEvent","testPoint","addPoint","hulls","findSplit","splitHulls","splitIdx","mergeHulls","mergeIdx","map1dArray","makepath","orientText","drawClipPath","clipsegments","bicubic","clipPathData","drawGridLines","lineClass","gridJoin","drawAxisLabels","labelClass","labelJoin","maxExtent","labelOrientation","labelEl","labelpadding","drawAxisTitles","labelOrientationA","labelOrientationB","aMin","aMax","bMin","bMax","ab2xy","dxyda_rough","dxydb_rough","drawAxisTitle","cdcarpet","carpetLayer","clipLayer","minorLayer","majorLayer","boundaryLayer","labelLayer","titleJoin","labelNorm","angleDiff","reverseTitle","vecNormalize","vecScale","generateContourExtractor","triangulateCube","zeroCrossings","buildSurfaceNets","cubeArgs","maskStr","extraFuncs","currentFunc","efName","denoms","crossingCount","totalCrossings","vertexStr","cStr","mesh1D","npos","ncel","dirLine","Error2D","drawErrors","errorBuffer","meshBuffer","positionFract","capOffset","drawGroup","errorCount","errorData","yPad","lightAmount","darkAmount","prevIndexToPoints","handleGeoDefaults","geoLayoutIn","geoLayoutOut","scopeParams","isAlbersUsa","_isAlbersUsa","isScoped","_isScoped","isConic","_isConic","isClipped","_isClipped","rangeDflt","dtickDflt","dfltSpans","hSpan","lonRange","latRange","lon0","lon1","projLon","centerLonDflt","centerLatDflt","centerLon","dfltProjRotate","dfltProjParallels","fitBounds","createVAONative","ExtensionShim","bindVertexArrayOES","bindVertexArray","createVertexArrayOES","createVertexArray","deleteVertexArrayOES","deleteVertexArray","SYMBOL_SIZE","SYMBOL_SDF_SIZE","SYMBOL_STROKE","gl10","containerArrayMatch","isAddVal","isRemoveVal","applyContainerArrayChanges","_nestedProperty","componentType","supplyComponentDefaults","replotLater","replot","recalc","fullVal","componentNum","objEdits","objKeys","objVal","adding","componentNums","componentArrayIn","componentArray","componentArrayFull","deletes","firstIndexChange","maxIndex","indicesToDraw","FRAGMENT","gridVert","gridFrag","tickVert","styleBox","boxSel","allBoxes","boxData","thisBox","waterfalls","waterfallsVert","waterfallsHorz","waterfallnorm","compare1st","compileConstructor","useGetters","procedure","CACHED_CONSTRUCTORS","index_str","shapeArg","strideArg","a_vars","c_vars","tShape","tStride","arrayDType","wrappedNDArrayCtor","ctor_list","setAutoType","getFirstNonEmptyTrace","calAttr","isBoxWithoutPositionCoords","getBoxPosLetter","boxPositions","isBox","isCandlestick","manageArrays","subroutines","numericNameWarningCount","numericNameWarningCountLimit","okToPlot","setPlotContext","graphWasEmpty","cleanData","cleanLayout","plotLegacyPolar","makePlotFramework","doCalcdata","clearResponsive","oldMargins","drawFrameworkCalls","cleanPlot","marginPushers","clearAutoMarginIds","marginPushersAgain","didMarginChange","positionAndAutorange","addLinks","rehover","redrag","plotDone","emitAfterPlot","opaqueSetBackground","plot3dPixelRatio","szIn","szOut","polarPlotSVG","placeholderText","setContenteditable","positivifyIndices","parentLength","positiveIndices","assertIndexArray","arrayName","checkMoveTracesArgs","currentIndices","newIndices","checkAddTracesArgs","assertExtendTracesArgs","maxPoints","maxPointsIsObject","getExtendProperties","maxp","updateProps","spliceTraces","updateArray","undoUpdate","undoPoints","concatTypedArray","arr0","arr1","newArray","remainder","both","numberOfItemsFromInsert","numberOfItemsFromTarget","targetBegin","undoArgs","undoFunc","redoFunc","redoArgs","startSequence","stopSequence","deletedTrace","sorterDes","movingTraceMap","_traces","clearPromiseQueue","coerceTraceIndices","_restyle","clearAxisTypes","fullReplot","markerSize","addAxRangeSequence","colorbars","undoit","redoit","undefinedToNull","makeNP","guiEditFlag","fullAttr","storeCurrent","arrayNew","objNew","objBoth","_guiEditing","layoutNP","cleanDeprecatedAttributeKeys","traceFlags","addToAxlist","axid","autorangeAttr","getFullTrace","doextra","hasParent","extraparam","allBins","arrayBins","vij","contFull","finalPart","prefixDot","innerContFull","impliedKey","labelsTo","valuesTo","topOrBottom","thicknorm","lennorm","swapXYData","dataArrayContainers","manageArrayContainers","oldAxisTitleRegex","colorbarRegex","oldAttrStr","newAttrStr","_relayout","axRangeSupplyDefaultsByPass","layoutstyle","axrange","rangesAltered","AX_RANGE_RE","AX_AUTORANGE_RE","AX_DOMAIN_RE","arrayEdits","axisAttr","newkey","layoutFlags","recordAlteredAxis","pleafPlus","plen","pend","pleaf","ptrunk","parentFull","vOld","oppositeAttr","_initialAutoSize","axFull","fullProp","updateValObject","finished","groupAxId","updateAutosize","oldWidth","oldHeight","plotAutoSize","traceUpdate","restyleSpecs","restyleFlags","relayoutSpecs","relayoutFlags","guiEdit","layoutUIControlPatterns","traceUIControlPatterns","findUIPattern","patternSpecs","getNewRev","revAttr","newRev","getFullTraceIndexFromUid","getTraceIndexFromUid","valsMatch","v1IsObj","v1IsArray","applyUIRevisions","oldRev","preGUIVal","newNP","layoutPreGUI","bothInheritAutorange","newRangeAccepted","axAttr","newAx","allTracePreGUI","fulli","newTracei","configChanged","oldConfig","diffConfig","skipUpdateCalc","immutable","diffLayout","newDataRevision","diffData","supplyDefaultsUpdateCalc","createTransitionData","transitionFromReact","_skipDefaults","sameTraceLength","nChanges","nChangesAnim","diffOpts","getValObject","seenUIDs","hasMakesDataTransform","getDiffFlags","oldContainer","outerparts","inArray","arrayIndex","valObjectCanBeDataArray","tickMode","canBeDataArray","wasArray","nowArray","inputKey","oldValIn","newValIn","arrayEditIndices","extraIndices","newConfig","frameOrGroupNameOrFrameList","animationOpts","_frameQueue","supplyAnimationDefaults","frameOpts","getTransitionOpts","getFrameOpts","callbackOnNthTime","_frameWaitingCnt","discardExistingFrames","onInterrupt","queueFrames","frameList","computedFrame","computeFrame","nextFrame","_lastFrameAt","_animationRaf","beginAnimationLoop","stopAnimationLoop","_currentFrame","newFrame","stringName","_timeToNext","_runningTransitions","configCounter","setTransitionConfig","allFrames","isFrameArray","isSingleFrame","frameOrName","_frameHash","currentFrame","filteredFrameList","bigIndex","insertions","_frameHashLocal","lookupName","collisionPresent","supplyFrameDefaults","revops","frameCount","_counter","modifyFrames","gd3","_toppaper","_hoverpaper","otherUids","layerBelow","_imageLowerLayer","layerAbove","_imageUpperLayer","_menulayer","attribution","tiles","tileSize","minzoom","maxzoom","styleValuesNonMapbox","layoutLayerPrefix","createWellKnownSymbol","withoutSetter","base64","ieee754","typedArraySupport","kMaxLength","TYPED_ARRAY_SUPPORT","encodingOrOffset","allocUnsafe","fromArrayBuffer","fromObject","assertSize","encoding","checked","isEncoding","actual","fromArrayLike","byteOffset","isnan","SlowBuffer","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","MAX_ARGUMENTS_LENGTH","codePoints","bytes","checkOffset","checkInt","objectWriteUInt16","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatBE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","leadSurrogate","byteArray","nativeKeys","FAILS_ON_PRIMITIVES","ptsIn","rectFirstEdgeTest","rectContains","xmini","ycross","isSegmentBent","partParallel","segmentSquared","segmentLen","unitPerp","ptsFiltered","doneRawIndex","doneFilteredIndex","prevFilterLen","iLast","readComponents","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","boundFunction","findIndex","lineColorFn","lineWidthFn","fc","opacitySetting","deprecationWarning","domainAttr","mergeAttrs","nonCommonAttrs","commonAttrs","tickorientation","endpadding","keepRest","toList","occupied","aliases","extractContour","ndsort","contourAlgorithm","getDimension","getSigns","vertexSigns","getEdges","maxEdges","ePtr","nedges","getCrossingWeights","signs","edata","getCascade","lastV","unpackEdges","vcascade","uedges","uweights","closestPointToTriangle","xformMatrix","projectVertex","barycentricCoord","closestPointToPickLocation","pixelCoord","simplex2D","closestIndex","closestDist","DIMENSION","AXIS","VISIT","FLIP","ELEM_SIZE","RED_START","RED_END","RED_BOXES","RED_INDEX","RED_PTR","BLUE_START","BLUE_END","BLUE_BOXES","BLUE_INDEX","BLUE_PTR","RETVAL","INNER_LABEL","ARGS","generateBruteForce","redMajor","redLoop","blueLoop","bruteForcePlanner","codeStr","vec","plotinfoproxy","boxCalc","silvermanRule","ssd","iqr","calcBandwidth","calcSpan","spanOut","spanIn","spanTight","spanLoose","calcSpanItem","spanMin","spanMax","violinScaleGroupStats","scaleGroup","PIXELS_PER_INCH","getSizeBrutal","getPropertyInPX","testDIV","defaultCanvas","defaultContext","shim","nullObject","polyProps","validTypes","invert2","invert3","invert4","createSurface","homography","SurfaceTrace","contourStart","contourEnd","contourSize","minValues","maxValues","dataScaleX","dataScaleY","refineData","isColormapCircular","getXat","getYat","getZat","_interpolatedZ","xRatio","yRatio","shortPrimes","getPow","getFactors","smallestDivisor","leastCommonMultiple","arrayLCM","calcXnums","nums","totalDist","calcYnums","highlyComposites","MIN_RESOLUTION","MAX_RESOLUTION","insertIfNewLevel","createSurfaceTrace","estimateScale","resSrc","resDst","refineCoords","scaleW","scaleH","padWidth","padHeight","padImg","scaledImg","setContourLevels","newLevels","useNewLevels","needsUpdate","allLevels","rawCoords","highlightEnable","contourParams","supportsTransparency","getFilterFunc","targetCalendar","isOperationIn","d2cValue","preservegaps","getTargetArray","_arrayAttrs","attrTargetCalendar","initFn","filterFunc","originalArrays","forAllAttrs","passed","lineLayerMaker","findExtreme","fixExtremes","dimensionExtent","toText","texts","domainScale","unitVal","domainToPaddedUnitScale","padFraction","ordinalScale","unitToColorScale","colorTuples","polylinearUnitScales","someFiltersActive","deselectedLineColor","labelangle","labelSide","labelside","rangeFont","rangefont","canvasPixelRatio","rowContentWidth","colCount","tickDistance","callbacks","unitPad","_unitToPaddedPx","domainToPaddedUnit","specifiedConstraint","filterRangeSpecified","filterRange","brushMove","focusLayer","filtersActive","contextShown","contextLayer","truncatedValues","makeTickItem","sortTickItem","tickItems","visibleIndex","linePickActive","pickLayer","invScale","styleExtentTexts","axisExtentText","parcoordsInteractionState","calcTilt","updatePanelLayout","yAxis","calcAllTicks","linearFormat","extremeText","isTop","glContainer","glLayers","lastHovered","lineLayer","pixel","controlOverlay","parcoordsControlView","wantedTickCount","sdom","axisHeading","axisTitle","tilt","axisTitleOffset","axisExtent","axisExtentTop","axisExtentOffset","axisExtentTopText","axisExtentBottom","axisExtentBottomText","convertTickWidth","_minDiff","_xcalc","wHover","hasTextArray","hasHovertextArray","cPrev","oi","li","ohlcTracesOnThisXaxis","xcalc","cartesianConstants","xclick","yclick","handleAnnotationCommonDefaults","handleAnnotationDefaults","clickToShow","arrowPosDflt","arrowPosAttr","aaxRef","aDflt","xClick","yClick","frameAttrs","commandModule","positionPlayWithData","pathname","search","redrawText","resolveLastResize","_redrawTimer","_resolveResize","oldchanged","autoplay","linkContainer","toolspan","spacespan","sourcespan","PLOTLYENV","BASE_URL","hiddenformDiv","hiddenform","hiddenformInput","graphJson","submit","d3FormatKeys","extraFormatKeys","getTraceUids","prevFullInput","oldFullInput","thisFullInput","oldLen","seenUids","setUid","tryUid","newUid","emptySubplotLists","getFormatObj","formatKeys","formatDone","formatObj","includeFormat","formatFinished","formatKey","formatj","en","getFormatter","fillMetaTextHelpers","meta4data","findMainSubplot","isX","mainSubplotID","nextBestMainSubplotID","anchorID","counterIDs","counterPart","makesData","applyTransforms","initMargins","_pushmargin","_pushmarginIds","newLayout","oldCalcdata","_traceWord","_mapboxAccessToken","_initialAutoSizeIsDone","sanitizeMargins","missingWidthOrHeight","initialAutoSize","_visibleModules","splomAxes","splomSubplots","_traceUids","_globalTransforms","supplyDataDefaults","splomXa","splomYa","_hasPlotType","supplyLayoutModuleDefaults","crossTraceDefaultsFuncs","funci","_hasCartesian","_hasGeo","_hasGL3D","_hasGL2D","_hasTernary","_hasPie","linkSubplots","uids","oldTrace","_hasCalcTransform","oldArrayVal","hasInfoLayer","oldLoop","oldUid","oldSubplots","newSubplots","newSubplotList","mainAx","subplotSort","locateColorAttrs","_colorAttrs","origprop","visibleModules","colorCnt","pushModule","_transformModules","carpetIndex","carpetDependents","supplyTraceDefaults","sdInvisible","expandedTraces","expandedTrace","fullExpandedTrace","_expandedInput","carpetAxis","optsOut","supplyAnimationFrameDefaults","supplyAnimationTransitionDefaults","frameIn","frameOut","traceInIndex","attri","supplyTransformDefaults","transformModules","transformList","isFirstStage","doLaterStages","_dataTemplate","uniformtextMode","modebarDefaultColor","maxHeight","widthHasChanged","heightHasChanged","transitionData","clearThrottle","fid","undoqueue","undonum","styleModules","correction","plotWidth","plotHeight","pushMargin","pushMarginIds","ml","mr","mt","k1","pushleft","pushbottom","pl","newL","newR","ft","newB","newT","maxNumberOfRedraws","marginKeys","_transition","aborted","executeCallbacks","flushCallbacks","executeTransitions","numCallbacks","numCompleted","makeCallback","completeTransition","runFn","interruptPreviousTransitions","prepareFn","transitionStarting","margin0","margin1","dataonly","useDefaults","stripObj","fit","operations","oldName","frameName","destIndex","frameLookup","framePtr","frameStack","frameNameStack","extendLayout","extendTrace","recomputeFrameHash","extendObjectWithContainers","containerPaths","containerProp","containerVal","srcProp","destProp","srcContainer","destContainer","expandedObj","expandObjectPaths","containerObj","srcObj","destTrace","srcTrace","destLayout","srcLayout","transitionedTraces","axEdits","dataLength","traceIdx","axisAttrRe","traceTransitionOpts","hasAxisTransition","axisTransitionOpts","allTraceIndices","transitionTraces","_numViolins","_piecolormap","_sunburstcolormap","_treemapcolormap","_funnelareacolormap","cauto","transformCalci","calci","isContainer","setupAxisCategories","doCrossTraceCalc","sortAxisCategoriesByValue","sortAxisCategoriesByValueRegex","zMapCategory","counterAxLetter","xCategorical","yCategorical","aggFn","aggregator","categoriesValue","cat","catIndex","currentDimensionIndex","associatedXAxisID","mapping","_categoriesValue","categoriesAggregatedValue","_categoriesAggregatedValue","spType","spInfo","traceHashOld","moduleNameOld","fakeCalcTrace","fakeTrace","had","handleHoverLabelDefaults","STATIC_CANVAS","STATIC_CONTEXT","glPlot3d","createPlot","passiveSupported","str2RGBAarray","showNoWebGlMsg","svgContainer","clientRect","oldEventData","lastPicked","pdata","hoverinfoParts","isHoverinfoAll","vectorTx","uLabel","vLabel","wLabel","normLabel","divergenceLabel","drawAnnotations","tryCreatePlot","glplotOptions","staticMode","initializeGLPlot","initializeGLCamera","isCameraChanged","getCamera","isAspectChanged","relayoutCallback","saveLayout","recoverContext","make4thDimension","sceneContainer","plotArgs","convertAnnotations","cameraData","tryRecover","axisProperties","computeTraceBounds","computeAnnotationBounds","getCameraArrays","getLayoutCamera","sceneData","axisType","glplotLayout","dataBounds","traceIds","traceIdLoop","sceneBounds","axisDataRange","axisTypeRatios","objBounds","_lowerLogErrorBound","axesScaleRatio","axisRatio","axisAutoScaleFactor","userRatio","containerStyle","newOrtho","oldOrtho","cameraNestedProp","cameraDataLastSave","same","aspectData","aspectNestedProp","aspectDataLastSave","cameraChanged","aspectChanged","cameraFullNP","aspectFullNP","fullCamera","zUp","dataURL","createImageData","putImageData","ascendingComparator","ascendingBisect","array_array","src_max","valueof","src_mean","src_min","src_sum","zmin0","zmax0","zRange","gridLightness","mat4","fromRotationTranslation","zoomstartStyle","zoomendStyle","createGeoZoom","zoomConstructor","zoomScoped","zoomClipped","zoomNonClipped","initZoom","sync","userOpts","fullNp","fitScale","handleZoomstart","handleZoom","midPt","syncCb","handleZoomend","mouse0","rotate0","lastRotate","zoomPoint","mouse1","rotate1","didZoom","INSIDETOLORANCEPXS","outside","d3eventDispatch","zoomOn","_rotate","quaternionFromEuler","between","rotateBetween","newEuler","eulerFromQuaternion","rotateAngles","unRoll","euler","phi","sinLambda","cosLambda","sinPhi","cosPhi","sinGamma","cosGamma","halfgamma","ptRotated","rotateCartesian","newYaw1","newYaw2","newPitch1","newPitch2","dist1","angleDistance","yaw0","pitch0","yaw1","pitch1","dYaw","angleMod","dPitch","angleRads","vectorOut","HebrewCalendar","_leapYear","yearType","adjYear","_delay1","_delay2","present","showaxeslabels","noRoomForHeader","allData","minVisibleDepth","maxVisibleDepth","_maxVisibleLayers","prevEntryId","getRefRect","probability","SPLITTER","abig","bbig","err1","err2","err3","PREFERRED_STRING","closestPoint2d","V0","V1","V2","sqrDistance","tmp0","invDet","createPolar","oldIds","mustCleanScene","plotGroups","quadrants","hasOutsideText","cxFinal","cyFinal","outerCircle","px0","outerArc","px1","rim","determineOutsideTextFont","transformOutsideText","transformInsideText","textPosAngle","textXY","getCoords","rCenter","computeTransform","yLabelMin","yLabelMid","yLabelMax","labelExtraX","labelExtraY","finish","positionTitleInside","scootLabels","plotTextLines","traceBbox","lineStartX","lineStartY","textLinePath","finalX","yFromX","yNet","fullLayout2","percentLabel","hoverLabel","customColor","dummyTitle","titleBox","textDiameter","halfAngle","halfangle","midAngle","midangle","isTangential","isRadial","startangle","stopangle","allTransforms","considerCrossing","isCrossing","dStart","dStop","closestEdge","calcTanTransform","calcRadTransform","calcMaxHalfSize","calcRCenter","calcRotate","getInscribedRadiusFraction","plotSize","maxPull","topMiddle","getMaxPull","applyAspectRatio","getTitleSpace","pieBoxHeight","xHalf","yHalf","equatorFirst","farthestX","farthestY","xDiffSign","yDiffSign","thisQuad","oppositeQuad","wholeSide","thisQuadOutside","firstOppositeOutsidePt","topFirst","bottomFirst","scootOneLabel","prevPt","xBuffer","otherPt","otherOuterY","otherOuterX","newExtraX","prevOuterY","thisInnerY","thisOuterY","thisSliceOuterY","newExtraY","scaleGroups","groupScale","currentCoords","angleFactor","firstPt","hasLabel","hasValue","hasPercent","makeTemplateVariables","ptTx","cosA","sinA","midX","midY","noCenter","NepaliCalendar","daysPerYear","NEPALI_CALENDAR_DATA","month_number","nepaliYear","nepaliMonth","nepaliDay","gregorianDayOfYear","nepaliMonthToCheck","nepaliYearToCheck","_createMissingCalendarData","gregorianYear","gregorianDate","dayOfFirstJanInPaush","daysSinceJanFirstToEndOfNepaliMonth","nepaliDayOfMonth","tmp_calendar_data","nepaliYearToCreate","1970","1971","1972","1973","1974","1975","1976","1977","1978","1979","1980","1981","1982","1983","1984","1985","1986","1987","1988","1989","1990","1991","1992","1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035","2036","2037","2038","2039","2040","2041","2042","2043","2044","2045","2046","2047","2048","2049","2050","2051","2052","2053","2054","2055","2056","2057","2058","2059","2060","2061","2062","2063","2064","2065","2066","2067","2068","2069","2070","2071","2072","2073","2074","2075","2076","2077","2078","2079","2080","2081","2082","2083","2084","2085","2086","2087","2088","2089","2090","2091","2092","2093","2094","2095","2096","2097","2098","2099","2100","bgVert","bgFrag","VertexAttribute","VAONative","_attribs","_useElements","a2o","systems","stretches","variants","fams","verify","system","naiveFallback","__global__","absolutize","compress","NUM_EXPANDED","compileDeterminant","doBreak","broken","getIndices","sortedArray","getSortFunc","arrayOld","DensityMapbox","densityMapbox","topojsonUtils","topojsonFeature","getTopojsonName","getTopojsonPath","topojsonName","vendors","caf","frameDuration","_now","cp","cancelled","boxLine","meanLineStyle","m4FromQuat","AxisIds","cleanAxRef","cleanTitle","titleContainer","rewireAttr","oldAttrName","newAttrName","oldAttrSet","newAttrSet","cleanFinanceDir","dirContainer","dirName","commonPrefix","name1","name2","show1","show2","cleanTextPosition","emptyContainer","innerStr","xaxis1","yaxis1","scene1","axisAttrRegex","polarAttrRegex","ternaryAttrRegex","sceneAttrRegex","isdate","islog","autotick","cameraposition","annotationsLen","shapesLen","yeColor","reversescl","containerName","highlightWidth","increasingShowlegend","decreasingShowlegend","increasingName","decreasingName","filtersrc","prevStyles","styleKeys","copyYstyle","hoverInfoParts","traceIndicesOut","pLength","pLastIsNumber","contPath","ATTR_TAIL_RE","attrParent","sceneName","typeAttr","getSubplot","isTraceInSubplots","newDistance","passVal","getPointKey","pointVal","getPointData","keyVal","pointKeyMap","methodNames","PlotlyLocales","Snapshot","zref","INSERTION_SORT_THRESHOLD","getMallocFree","mallocUint16","freeUint16","mallocInt8","freeInt8","mallocInt16","freeInt16","freeInt32","freeDouble","createInsertionSort","allocator","scratch_shape","dataRead","dataWrite","createQuickSort","labelCounter","ele_size","toPointer","cacheLoop","ptrs","usePivot","lexicoLoop","cleanUp","compareSwap","a_id","b_id","lbl","moveElement","swapElements","tripleSwap","swapAndDecrement","storePivot","mem_dest","pivot_dest","doSort","walkPointer","compileSort","scratch_stride","nprod","sortArgs","edgeToAdjacency","createPointCloudRenderer","Pointcloud","pickXData","pickYData","pointcloudOptions","sizemax","pointcloud","createPointcloud","traceCoord","pickXYData","updateFast","userBounds","xbounds","ybounds","markerSizeMin","markerSizeMax","arearatio","copyArgArray","queueObj","queueIndex","undoQueue","sequence","inSequence","beginSequence","calls","plotDo","SHARED","perm","dfactorial","TIME_FORMAT_LINK","cheatertype","labelprefix","labelsuffix","titleoffset","attributeText","attributeTextPosition","getKeyFunc","dirSign","bartraces","isBar","shouldDisplayZeros","adjustPixel","pointGroup","bars","roundWithLine","expandToVisible","fixpx","styleFns","appendBarText","hasClipOnAxisFalse","appendTextNode","textSelection","getTextPosition","inStackOrRelativeMode","insideTextFont","outsideTextFont","barHeight","textHasSize","fitsInside","fitsInsideIfRotated","fitsInsideIfShrunk","toMoveOutsideBar","getRotateFromAngle","getRotatedTextSize","absSin","absCos","isEnd","toRight","toLeft","textpad","extrapad","calcTexttemplate","calcTextinfo","vLetter","formatLabel","percenTotalLabel","nPercent","hasMultiplePercents","svgSdf","convertStyle","convertTextStyle","convertTextSelection","convertMarkerStyle","convertMarkerSelection","overlay","convertErrorBarStyle","textfontIn","textpositionIn","textPos","tfc","tfs","tff","fonti","optsIn","multiSymbol","multiColor","multiLineColor","multiOpacity","multiSize","multiLineWidth","borderColors","getSymbolSdf","markerSizeFunc","borderSizes","sizeTotal","SYMBOL_SDF","SYMBOL_SVG_CIRCLE","symbolPath","symbolSdf","symbolFunc","isDot","convertLinePositions","midPtX","midPtY","hasNaN","convertErrorBarPositions","convertOneAxis","computeError","pOffset","eOffset","minShoe","maxHat","dl","lv","shoe","hat","convertTextPosition","markerOpts","fontOpts","hSign","vSign","xPad","markerStyle","markerSelection","RED","BLACK","RBNode","_color","repaint","recount","RedBlackTree","_compare","doVisitFull","doVisitHalf","doVisit","RedBlackTreeIterator","_stack","n_stack","d_stack","pp","ppp","at","last_ptr","iproto","swapNode","fixDoubleBlack","defaultCompare","cstack","getTilingMethod","treemapSquarify","treemapBinary","treemapDice","treemapSlice","treemapSliceDice","flipTree","swapXY","tile","paddingInner","paddingLeft","paddingRight","paddingTop","paddingBottom","defaultSeparation","meanX","meanXReduce","maxYReduce","leafLeft","leafRight","eachAfter","hierarchy_count","eachBefore","leastCommonAncestor","valued","defaultChildren","computeHeight","node_copy","copyData","enclose","circles","enclosesWeak","encloseBasis","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","encloseBasis1","r21","r3","place","siblings_Node","packEnclose","sj","sk","optional","required","constantZero","defaultRadius","src_pack","radiusLeaf","packChildren","translateChild","treemap_round","dice","src_partition","positionNode","keyPrefix","preroot","ambiguous","defaultParentId","src_stratify","nodeKey","nodeByKey","tree_defaultSeparation","nextLeft","nextRight","moveSubtree","executeShifts","nextAncestor","TreeNode","treeRoot","treemap_slice","squarifyRatio","nodeValue","sumValue","minValue","maxValue","newRatio","minRatio","beta","src_treemap","paddingStack","paddingOuter","valueOffset","valueTarget","valueLeft","valueRight","xk","yk","sliceDice","treemap_resquarify","resquarify","_squarify","STASHATTR","NO_CURSOR","savedCursor","classes","edgeVal2","boundaryMax","boundaryMin","contoursValue","includeGL3D","renderableValuePresent","ownTrace","traceId","makeTranslucent","makeTextContrasty","relatedLinks","relatedNodes","nodeHoveredStyle","linkHoveredStyle","nodeNonHoveredStyle","linkNonHoveredStyle","visitNodes","tinyColorAlpha","labelOpts","linkSelect","linkHover","sourceLabel","targetLabel","concentrationLabel","incomingLabel","outgoingLabel","linkHoverFollow","anchorIndex","flow","hoverCenter","hoverCenterPosition","valueFormat","valueSuffix","labelConcentration","tooltips","tooltip","linkUnhover","nodeSelect","nodeHover","nodeHoverFollow","rootBBox","boundingBox","hoverCenterX0","hoverCenterX1","tinyColorHue","nodeUnhover","linkEvents","follow","nodeEvents","monotoneConvexHull2D","convexHullnD","ich","aff","front","npoints","invPermute","boxHoverPoints","closePtData","violinLineAttrs","hasHoveronViolins","hasHoveronKDE","closeData","closeBoxData","hoverOnBoxes","vVal","kdePointData","vValPx","kdeVal","pOnPath","paOffset","paLength","spikePosAttr","hoverOnPoints","violinLine","distRatio","IsosurfaceTrace","beginVertextLength","allXs","allYs","allZs","allVs","activeFill","surfaceFill","spaceframeFill","drawingSurface","drawingSpaceframe","numFaces","Xs","Ys","Zs","_gridFill","_minValues","_maxValues","vMin","_vMin","vMax","_vMax","findVertexId","beginGroup","emptyVertices","addVertex","addFace","setFill","createOpenTri","xyzv","styleIncludes","mapValue","drawTri","allXYZVs","allABCs","openTri","pnts","drawQuad","abcd","makeTri","drawTetra","calcIntersection","pointOut","pointIn","inRange","almostInFinalRange","vErr","getXYZV","indecies","MAX_PASS","tryCreateTri","nPass","tryDrawTri","interpolated","tryCreateTetra","p4","addCube","p000","p001","p010","p011","p100","p101","p110","p111","addRect","previousResult","begin2dCell","p00","p01","p10","p11","beginSection","distRatios","makeSection","rX","rZ","begin3dCell","cellStyle","draw2dX","draw2dY","draw2dZ","draw3d","drawSpaceframe","drawSurface","drawSectionX","drawSectionY","drawSectionZ","insertGridPoints","drawAll","activeStyle","surfacePattern","surfaceCount","setupMinMax","preRes","activeMin","activeMax","exactIndices","ceilIndices","cap","connectorVisible","defaultFillColor","connectorLineWidth","cBase","DOUBLEQUOTE_REGEX","DUMMY_SUB","DUMMY_REGEX","htmlEntityDecode","hiddenDiv","replaced","xmlEntityEncode","toppaper","topGroups","topGroup","queryParts","XMLSerializer","serializeToString","traceOpts","layoutOpts","traceEditTypeFlags","layoutEditTypeFlags","falseObj","overrideContainers","overrideOne","editTypeParts","scatterglAttrs","MIN","createWave","minOpacity","fmtColor","colorstring","robustDotProduct","EXISTS","annAutorange","apos","aref","padplus","padminus","headSize","headPlus","headMinus","startHeadSize","startHeadPlus","startHeadMinus","extremeArrowHead","ppadplus","ppadminus","annotationList","sArray","pArray","barPolarCd","rAxis","aAxis","newRange","minmin","maxmax","axReverse","minpt","maxpt","minbest","maxbest","toZero","nonNegative","axLen","minSpan","mbest","getMaxPad","maxPad","rangeEnd","extrappad","_concat","collapseMinArray","collapseMaxArray","axeRangeOpts","dmin","ppadiplus","ppadiminus","isLog","hasArrayOption","vpadLinearized","makePadAccessor","vpadplus","vpadminus","collapseOpts","addItem","goodNumber","iMax","newPad","collapseArray","lessOrEqual","greaterOrEqual","atLeastAsExtreme","includeThis","clipAtZero","trimLeaves","e2a","live","dead","npositions","__TYPEDARRAY_POOL","UINT8","UINT16","UINT32","BIGUINT64","INT8","INT16","INT32","BIGINT64","DOUBLE","DATA","UINT8C","BUFFER","hasUint8C","hasBigUint64","BigUint64Array","hasBigInt64","BigInt64Array","POOL","freeArrayBuffer","log_n","freeTypedArray","mallocArrayBuffer","mallocUint8Clamped","mallocBigUint64","mallocBigInt64","mallocDataView","mallocBuffer","freeBigUint64","freeBigInt64","freeFloat64","freeUint8Clamped","freeDataView","freeBuffer","mallocFloat64","clearCache","scatterStyle","styleTrace","AFG","ALA","ALB","DZA","ASM","AND","AGO","AIA","ATA","ATG","ARG","ARM","ABW","AUS","AUT","AZE","BHS","BHR","BGD","BRB","BLR","BEL","BLZ","BEN","BMU","BTN","BOL","BES","BIH","BWA","BVT","BRA","IOT","BRN","BGR","BFA","BDI","CPV","KHM","CMR","CAN","CYM","CAF","TCD","CHL","CHN","CXR","CCK","COL","COM","COG","COK","CRI","CIV","HRV","CUB","CUW","CYP","CSK","CZE","COD","DNK","DJI","DMA","DOM","ECU","EGY","SLV","GNQ","ERI","EST","ETH","FLK","FRO","FJI","FIN","FRA","GUF","PYF","ATF","GAB","GMB","DDR","DEU","GHA","GIB","GRC","GRL","GRD","GLP","GUM","GTM","GGY","GIN","GNB","GUY","HTI","HMD","VAT","HND","HKG","HUN","ISL","IND","IDN","IRN","IRQ","IRL","IMN","ISR","ITA","JAM","JPN","JEY","JOR","KAZ","KEN","KIR","PRK","KWT","KGZ","LAO","LVA","LBN","LSO","LBR","LBY","LIE","LTU","LUX","MAC","MDG","MWI","MYS","MDV","MLI","MLT","MHL","MTQ","MRT","MUS","MYT","MEX","FSM","MCO","MNG","MNE","MSR","MAR","MOZ","MMR","NAM","NRU","NPL","NLD","ANT","NCL","NZL","NIC","NER","NGA","NIU","NFK","MNP","NOR","OMN","PAK","PLW","PSE","PAN","PNG","PRY","PER","PHL","PCN","POL","PRT","PRI","QAT","KOR","MDA","REU","ROU","RUS","RWA","BLM","SHN","KNA","LCA","MAF","SPM","VCT","WSM","SMR","STP","SAU","SEN","SRB","SYC","SLE","SGP","SXM","SVK","SVN","SLB","SOM","ZAF","SGS","SSD","ESP","LKA","SDN","SUR","SJM","SWZ","SWE","CHE","SYR","TWN","TJK","THA","MKD","TLS","TGO","TKL","TON","TTO","TUN","TUR","TKM","TCA","TUV","UGA","UKR","ARE","GBR","TZA","USA","UMI","URY","UZB","VUT","VEN","VNM","VGB","VIR","WLF","ESH","YEM","YMD","YUG","ZMB","EAZ","ZWE","objPropertyIsEnumerable","defVal","compareFn","simplifyPolygon","errorWeight","perim","minArea","outv","computeWeight","heapSwap","heap","heapWeight","heapParent","heapDown","tw","heapCount","heapUp","heapPop","heapUpdate","hmin","tortoiseHare","nh","tin","tout","cin","cout","calcXPaddingOptions","calcPaddingOptions","calcYPaddingOptions","isYAxis","axisDirectionReverted","beforePad","afterPad","shapeBounds","paramsToUse","convertVal","drawnParam","drawn","shapeList","vx0","vy0","performPlot","viewModels","createParcatsViewModel","layerSelection","traceEnter","pathsSelection","pathSelection","pathSelectionEnter","stylePathsNoHover","svgD","compareRawColor","mouseoverPath","mouseoutPath","clickPath","dimensionsSelection","dimensionSelection","categorySelection","categoryGroupEnterSelection","styleCategoriesNoHover","bandSelection","catViewModel","bands","bandsSelectionEnter","bandModel","parcatsViewModel","styleBandsNoHover","paperColor","catInRightDim","catModel","categorylabelfont","mouseoverCategoryBand","mouseoutCategory","dragDimensionStart","dragDimension","dragDimensionEnd","numDims","leftDimInd","hoverinfoItems","stylePathsHover","buildPointsArrayForPath","buildConstraintsForPath","pathCenterX","pathCenterY","hoverX","graphDivBBox","leftXs","dimWidths","leftDim","rightDim","topYs","prob","countLabel","probabilityLabel","hovertextParts","getTraceIndex","styleCategoryHover","styleBandsHover","bandsSelection","selectPathsThroughCategoryBandColor","catBandViewModel","allPaths","categoryViewModel","pathViewModel","styleForCategoryHovermode","bandElement","bandSel","bvm","styleForColorHovermode","bandViewModel","catPaths","emitPointsEventCategoryHovermode","eventName","emitPointsEventColorHovermode","createHoverLabelForCategoryHovermode","hoverLabelIdealAlign","rectSelection","rectBoundingBox","dimensionModel","createHoverLabelForDimensionHovermode","allHoverlabels","bandNode","createHoverLabelForColorHovermode","bandBoundingBox","bandColorCount","catCount","pColorAndCat","pCatGivenColor","pColorGivenCat","categorycount","colorcount","bandcolorcount","dragDimensionDisplayInd","initialDragDimensionDisplayInds","dragHasMoved","dragCategoryDisplayInd","catMouseX","catMouseY","initialDragCategoryDisplayInds","potentialClickBand","dragDimInd","prevDimInd","nextDimInd","dragCategory","categoryY","catDisplayInd","dimCategoryViews","catAbove","catBelow","prevDimension","nextDimension","updateDimensionViewModels","updatePathViewModels","updateSvgCategories","updateSvgPaths","traceInd","finalDragDimensionDisplayInds","anyDimsReordered","initDimDisplay","finalDimDisplay","anyCatsReordered","finalDragCategoryDisplayInds","initCatDisplay","sortedCategoryModels","newCategoryArray","newCategoryLabels","allTraces","dimLabelSelection","catLabelSelection","newAnchor","wrappedParcatsModel","parcatsModel","figureWidth","figureHeight","traceWidth","traceHeight","traceX","traceY","pathShape","buildSvgPath","leftXPositions","pathYs","pathHeight","curvature","refInterpolator","xRefPoints1","xRefPoints2","dimensionViewModels","nextYPositions","catToDisplayIndPerDim","dimToDisplayInd","displayToDimInd","pathDisplayCategoryInds","dimensionInds","sortArray1","sortArray2","pathViewModels","pathNumber","dimDisplayInd","catViewModle","numBands","lastCatBand","bandY","currentBand","dimensionsIndInfo","dimModel","createDimensionViewModel","dimDx","dimX0","dimX","categoryLabelPad","dimWidth","numDimensions","nextCatHeight","nextCatModel","nextCat","numCats","catSpacing","nextCatY","categoryIndInfo","var1Name","var2Name","arrayVarNames","colLen","col1","col2","textCol","hasColumnText","hoverTextCol","hasColumnHoverText","col1dv","col1vals","col2dv","col2vals","newArrays","after2before","arrayVarName","arrayVar","_after2before","coallesceUniforms","makeVector","makeGetter","makePropSetter","vidx","enumerateIndices","tprefix","makeSetter","storeProperty","processObject","coallesced","variable","_zlength","vPos","hPos","xInc","yInc","anchorVals","MapboxLayer","idSource","idLayer","sourceType","layerType","convertOpts","iconsize","placement","convertSourceOpts","sourcetype","sourceOpts","sourceattribution","needsNewImage","updateImage","needsNewSource","updateSource","updateLayer","needsNewLayer","updateStyle","_below","convertedOpts","sourcelayer","getLayer","mapboxLayer","cleanOne","valTrim","rgbStr","cstr","bcflat","fcflat","el0","findCategories","cloneLayoutOverride","tileClass","override","keyIsAxis","graphObj","oldData","oldLayout","axesImageOverride","linetickenable","plotTile","td","defaultLayout","fastTwoSum","NASHORN_BUG","buttonAttrs","xAxisMatch","yAxisMatch","JITTERCOUNT","JITTERSPREAD","cdbox","boxLayer","wdPos","bdPos0","bdPos1","whiskerWidth","lcenter","posc","pos1","posw0","posw1","posm0","posm1","useExtremes","seedPseudoRandom","gPoints","newJitter","typicalSpread","minSpread","spreadLimit","jitterFactors","maxJitterFactor","pmin","pmax","jitterFactor","jitterOffset","pseudoRandom","sl","sh","thunkName","string_typesig","shapeLengthConditions","shapeConditions","thunk","dcubicHermite","dh00","dh10","dh01","dh11","ti2","h00","h10","h01","h11","Axes2DOptions","AXES","createAxes2D","axTitle","axMirror","hasAxisInDfltPos","hasAxisInAltrPos","hasSharedAxis","mirrorLines","mirrorTicks","getLabelPad","getTickPad","getTickMarkLength","axSide","DiscworldCalendar","dow","century","centuries","20","21","runtimeUniforms","runtimeAttributes","GL_TO_GLSL_TYPES","GL_TABLE","getType","typeNames","tn","numUniforms","ACTIVE_UNIFORMS","numAttributes","TO_STRING_TAG","TAG","parentOut","constraintRange","dimensionsIn","fontDflt","xctrl","yctrl","nea1","neb1","IS_RIGHT","memo","createTextSprites","VERTEX_SIZE","TextSprites","tryVectorizeText","pixelScale","alignDir","alignOpt","drawLabel","autoContour","missingEnd","aFrom","propertyNames","propertyName","ensure","arcToCurve","makeControlPoints","inferCubicControlPoint","p2e0","p2e1","xe","ye","je","xej","yej","zVal","v0In","dvIn","numbricks","isArrayOfTwoItemsOrMore","sizex","sizey","sizing","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","forceStringMethod","stringMethod","regexMethod","Camera2D","lastInputTime","lastPos","boxEnabled","boxInited","boxStart","boxEnd","dragStart","mouseContainer","unSetAutoRange","getSubplotConstraint","calcDataBox","updateRange","setRanges","smallDx","smallDy","dydx","panning","handleAnnotations","path2DSupported","parsePath","drawPath","bitmapSdf","pathSdf","viewbox","strokeStyle","isPath2DSupported","path2d","Path2D","setTransform","cutoff","idata","$map","tickmodeDefault","hoverSplit","getClosestPoint","hoverPseudoDistance","spikePseudoDistance","minAttr","maxAttr","centerShift","shiftPos","displayHalfWidth","hoverHalfWidth","pseudoDistance","xSpike","cdIndex","hoverParts","usedVals","valPx","getLabelLine","textParts","FaceIndex","constraint","classifyFaces","indexCells","locate","filterCells","isCat","dtickNum","getMarchingIndex","mi","startIndices","ystartIndices","twoWide","fadedColor","calcOneAxis","calcCoord","baseExtremes","Geo","hasChoropleth","basePaths","dataPaths","getProjection","projLayout","dummyFn","maxAngle","fitExtent","makeGraticule","oppRng","coordFn","makeRangeBox","lat0","lat1","dlon4","geoPromises","needsTopojson","topojsonNameNew","fetchTopojson","topojsonPath","hasInvalidBounds","updateProjection","saveViewInitial","updateBaseLayers","updateDims","choropleth","axLon","axLat","midLon","midLat","lonHalfSpan","latHalfSpan","rangeBox","attrToUnset","centerPx","isAxisLayer","isLineLayer","isFillLayer","allLayers","hFrameWidth","zoomReset","lonlatPx","hideShowPoints","createBackground","getCubeProperties","Ticks","copyVec3","tickAlign","labelAlign","_firstInit","_lines","_background","OffsetInfo","primalOffset","primalMinor","mirrorOffset","mirrorMinor","parseOption","cons","nextTicks","NUMBER","BOOLEAN","STRING","ticksUpdate","labelUpdate","LINE_OFFSET","computeLineOffset","dualOffset","dualMinor","CUBE_ENABLE","DEFAULT_PARAMS","ALIGN_OPTION_AUTO","PRIMAL_MINOR","MIRROR_MINOR","PRIMAL_OFFSET","cubeEnable","enableAlign","hv_ratio","alignTo","solveTickAlignments","major","roundingError","lessThan","greaterThan","linelow","binSize","valsIn","errDiff","dlow","dhigh","rounded","sortFn","notOrdered","notReversed","pairOrder","markerSymbols","menuDefaults","menuIn","menuOut","buttonDefaults","buttonIn","buttonOut","calcSDF","INF","intData","CanvasRenderingContext2D","gridOuter","gridInner","edt","edt1d","axisLineGridAttr","axisTickAttrs","radialAxisAttrs","angularAxisAttrs","mockAnnAxes","_xa","_pdata","_ya","anns","makeScaler","_sArray","ck","yrange","processPixels","cleanPSLG","toPolygonCrappy","TAG_bold","CHR_bold","TAG_italic","CHR_italic","TAG_super","CHR_super0","CHR_super","TAG_sub","CHR_sub0","CHR_sub","parseTag","TAG_CHR","opnTag","clsTag","nOPN","nCLS","isRecursive","remainingStr","transformPositions","getPixels","rawString","allStyles","xPos","zPos","allTexts","numberOfLines","nDone","writeBuffer","getTextFontSize","changeStyle","oldStyle","newStyle","ctxFont","oldIndex_Sub","newIndex_Sub","oldSub","newSub","oldIndex_Super","newIndex_Super","oldSuper","newSuper","wasBold","is_Bold","wasItalic","is_Italic","xCut","yCut","doSimplify","processPixelsImpl","polyline","nresult","nloops","nloop","fontVariant","unquote","globalKeywords","systemFontKeywords","fontWeightKeywords","fontStyleKeywords","fontStretchKeywords","splitBy","parseFont","parseLineHeight","normalizeArray","allowAboveRoot","basename","matchedSlash","resolvedPath","resolvedAbsolute","trailingSlash","fromParts","toParts","samePartsLength","outputParts","sep","dirname","hasRoot","extname","startDot","startPart","preDotState","computeControlPoints","createSplineEvaluator","createIDerivativeEvaluator","createJDerivativeEvaluator","amax","bmax","arange","brange","atol","btol","isOccluded","i2a","j2b","ij2ab","i2c","extrapolate","iex","jex","der","dadi","dbdj","dxyda","dxydb","plus","minus","createViewController","createTurntable","createOrbit","ViewController","controllers","_controllerNames","_controllerList","_mode","turntable","COMMON_METHODS","orbit","argNames","getDistance","src_transform","topology","src_bbox","bboxPoint","bboxGeometry","feature_feature","feature_object","transformPoint","stitchedArcs","fragmentByStart","fragmentByEnd","emptyIndex","fg","gf","meshArcs","extractArcs","geomsByArc","extract0","extract1","extract2","extract3","geoms","planarRingArea","mergeArcs","polygonsByArc","extract","src_neighbors","indexesByArc","ik","quantizePoint","quantizeGeometry","untransform","hasInstance","unscopables","paren","separator","cleanParts","beginPath","TOTALS_COLOR","rMax","prevLookup","rpx0","y2rpx","rx2px","getTargetX","getTextXY","getTargetY","nextX1ofPrevEntry","parentChildren","interpX0X1FromParent","textPosAngleFn","rpx1Fn","x0Fn","x1Fn","scaleFn","rotateFn","_rCenterFn","rCenterFn","xmid","addPercent","percentParentLabel","percentEntryLabel","percentRootLabel","worker","workerBundleString","sharedChunk","workerUrl","p1x","p1y","sampleCurveX","sampleCurveY","sampleCurveDerivativeX","solveCurveX","_sub","multByPoint","_multByPoint","divByPoint","_divByPoint","_mult","_div","rotateAround","_rotateAround","matMult","_matMult","_unit","perp","_perp","_round","distSqr","angleTo","angleWith","angleWithSep","setItem","removeItem","msRequestAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","msCancelAnimationFrame","resolveURL","hardwareConcurrency","API_URL","FEEDBACK_URL","REQUIRE_ACCESS_TOKEN","ACCESS_TOKEN","MAX_PARALLEL_IMAGE_REQUESTS","testSupport","_transformRequestFn","_customAccessToken","_createSkuToken","tokenExpiresAt","_skuToken","_skuTokenExpiresAt","_isSkuTokenExpired","transformRequest","normalizeStyleURL","_makeAPIURL","normalizeGlyphsURL","normalizeSourceURL","authority","normalizeSpriteURL","normalizeTileURL","canonicalizeTileURL","canonicalizeTileset","decodeURIComponent","anonId","pendingRequest","getStorageKey","btoa","fetchEventData","localStorage","getItem","saveEventData","processRequests","postEvent","EVENTS_URL","sdkIdentifier","sdkVersion","skuId","userId","vt","queueRequest","skuToken","postMapLoadEvent","postTurnstileEvent","lastSuccess","tokenU","et","ot","caches","statusText","Headers","Response","ReadableStream","ut","Unknown","Style","Source","Tile","Glyphs","SpriteImage","SpriteJSON","WorkerGlobalScope","referrer","AbortController","Request","credentials","signal","arrayBuffer","xt","actor","withCredentials","getResponseHeader","bt","requestParameters","cacheControl","expires","_t","wt","At","kt","St","_oneTimeListeners","fire","listens","_eventedParent","_eventedParentData","setEventedParent","zt","$version","$root","light","sprite","glyphs","source_vector","scheme","xyz","tms","source_raster","raster","source_raster_dem","terrarium","source_geojson","maximum","minimum","clusterRadius","clusterMaxZoom","clusterProperties","lineMetrics","generateId","source_video","video","urls","source_image","hillshade","layout_background","layout_fill","expression","parameters","layout_circle","layout_heatmap","layout_line","butt","bevel","miter","requires","layout_symbol","uppercase","lowercase","layout_raster","layout_hillshade","filter_operator","in","geometry_type","categorical","function_stop","expression_name","let","var","case","coalesce","ln2","typeof","boolean","collator","accumulated","upcase","downcase","paint_fill","paint_line","paint_circle","paint_heatmap","paint_symbol","overridable","paint_raster","paint_hillshade","paint_background","It","__line__","Ct","Bt","Et","Mt","Pt","Tt","Vt","Ft","Ot","Lt","Dt","Ut","Rt","jt","qt","Nt","Kt","itemType","Zt","Xt","Gt","Jt","parseCSSColor","Ht","Yt","sensitivity","Intl","Collator","resolvedLocale","resolvedOptions","$t","fontStack","Wt","sections","Qt","te","ee","serialize","expectedType","evaluate","eachChild","possibleOutputs","ae","oe","ue","parseColor","pe","featureState","formattedSection","_parseColorCache","ce","_evaluate","definitions","overloads","ve","checkSubtype","he","caseSensitive","diacriticSensitive","fe","de","me","boundExpression","_parse","typeAnnotation","outputs","be","we","Ae","ke","Se","ze","Ie","Ce","Be","Ee","Me","Pe","Te","Ve","Fe","Oe","Le","De","Ue","Re","interpolation","qe","interpolationFactor","controlPoints","Ne","Ke","Ze","Xe","inputType","cases","otherwise","outputIndex$1","Ge","Je","He","Ye","lhs","rhs","hasUntypedArgument","$e","We","Qe","nr","minFractionDigits","maxFractionDigits","NumberFormat","minimumFractionDigits","maximumFractionDigits","ur","lr","vr","gr","heatmapDensity","lineProgress","isSupportedScript","Ar","_warningHistory","_evaluator","_defaultValue","_enumValues","kr","Sr","enum","formatted","evaluateWithoutErrorHandling","zr","_styleExpression","isStateDependent","Ir","zoomStops","interpolationType","Cr","Br","_parameters","_specification","Er","valueSpec","objectElementValidators","styleSpec","objectKey","Mr","arrayElementValidator","Pr","Tr","Vr","expressionContext","propertyType","Fr","Or","deserialize","Lr","Dr","Rr","Ur","jr","Kr","qr","Nr","Zr","Xr","Gr","Jr","Hr","Yr","$r","Wr","Qr","rn","nn","paintProperty","layoutProperty","sn","pn","hn","bboxes","_insertReadonly","_forEachCell","_insertCell","_queryCell","_convertToCellCoord","_convertFromCellCoord","toArrayBuffer","yn","mn","writeable","klass","omit","shallow","vn","_classRegistryKey","gn","$name","xn","bn","lastIntegerZoom","lastIntegerZoomTime","lastZoom","lastFloorZoom","Arabic","Khmer","Hiragana","Katakana","Bopomofo","Kanbun","An","Sn","zn","In","Cn","Bn","En","Mn","Pn","applyArabicShaping","processBidirectionalText","processStyledBidirectionalText","isLoaded","Tn","fadeDuration","zoomHistory","crossFadingFactor","getCrossfadeParameters","fromScale","toScale","Vn","specification","isDataDriven","possiblyEvaluate","Fn","transitioned","Ln","untransitioned","On","_properties","defaultTransitionablePropertyValues","setValue","getTransition","setTransition","Dn","prior","defaultTransitioningPropertyValues","jn","Un","defaultPropertyValues","Rn","isConstant","constantOr","defaultPossiblyEvaluatedValues","qn","Nn","overrides","Kn","_calculate","Gn","overridableProperties","Jn","_featureFilter","sourceLayer","_unevaluatedLayout","_transitionablePaint","setPaintProperty","setLayoutProperty","_transitioningPaint","_crossfadeParameters","getLayoutProperty","getPaintProperty","_handleSpecialPaintPropertyUpdate","_handleOverridablePaintPropertyUpdate","updateTransitions","recalculate","is3D","isTileClipped","hasOffscreenPass","Hn","Int8","Uint8","Int16","Uint16","Int32","Uint32","Float32","_structArray","_pos1","_pos2","_pos4","_pos8","$n","isTransferred","capacity","Wn","members","BYTES_PER_ELEMENT","Qn","_trim","bytesPerElement","_refreshViews","reserve","emplaceBack","emplace","ui","gi","anchorPointX","anchorPointY","sourceLayerIndex","bucketIndex","signedDistanceFromAnchor","anchorPoint","Ai","glyphStartIndex","numGlyphs","vertexStartIndex","lineStartIndex","lineLength","lowerSize","upperSize","lineOffsetX","lineOffsetY","writingMode","placedOrientation","crossTileID","Si","rightJustifiedTextSymbolIndex","centerJustifiedTextSymbolIndex","leftJustifiedTextSymbolIndex","verticalPlacedTextSymbolIndex","textBoxStartIndex","textBoxEndIndex","verticalTextBoxStartIndex","verticalTextBoxEndIndex","iconBoxStartIndex","iconBoxEndIndex","numHorizontalGlyphVertices","numVerticalGlyphVertices","numIconVertices","textBoxScale","radialTextOffset","Ii","Ci","getoffsetX","Bi","tileUnitDistanceFromAnchor","Ei","getx","gety","gettileUnitDistanceFromAnchor","Mi","Pi","Ti","Vi","Fi","prepareSegment","MAX_VERTEX_ARRAY_LENGTH","vertexLength","vertexOffset","primitiveOffset","primitiveLength","vaos","simpleSegment","Oi","Li","getPositions","Di","Ui","uniform1i","Ri","uniform1f","ji","uniform2f","qi","uniform3f","Ni","uniform4f","Ki","Zi","uniformMatrix4fv","Gi","Ji","uniformNames","defines","setConstantPatternPositions","populatePaintArray","updatePaintArray","upload","setUniforms","getBinding","Hi","patternPositions","patternTo","patternFrom","tlbr","Yi","paintVertexAttributes","paintVertexArray","paintVertexBuffer","createVertexBuffer","$i","useIntegerZoom","Wi","zoomInPaintVertexArray","zoomOutPaintVertexArray","patterns","tl","zoomInPaintVertexBuffer","zoomOutPaintVertexBuffer","Qi","binders","cacheKey","_buffers","_featureMap","_bufferOffset","createDynamic","populatePaintArrays","updatePaintArrays","getPaintVertexBuffers","getUniforms","updatePatternPaintBuffers","programConfigurations","needsUpload","composite","loadGeometry","overscaling","hasPattern","layoutVertexArray","indexArray","stateDependentLayerIds","populate","addFeature","stateDependentLayers","uploadPending","uploaded","layoutVertexBuffer","indexBuffer","createIndexBuffer","hypot","createBucket","queryRadius","queryIntersectsFeature","cameraToCenterDistance","_updateColorRamp","colorRamp","colorRampTexture","heatmapFbo","no","vo","fo","oo","co","ao","ho","eo","po","go","bo","_o","wo","Ao","patternDependencies","ko","So","patternFeatures","indexArray2","addFeatures","indexBuffer2","zo","Io","Co","Bo","Eo","Mo","_pbf","_geometry","_keys","readFields","Po","readVarint","To","readSVarint","toGeoJSON","Vo","Fo","_features","Oo","readString","readDouble","readVarint64","readBoolean","Lo","Do","VectorTile","VectorTileFeature","VectorTileLayer","Uo","Ro","jo","qo","No","Ko","Zo","Xo","Jo","Go","Ho","Yo","$o","Wo","Qo","addLine","scaledDistance","totalDistance","mapbox_clip_start","clipEnd","mapbox_clip_end","updateDistance","addCurrentVertex","addHalfVertex","es","_updateGradient","gradientTexture","os","ss","us","ps","toLocaleUpperCase","toLocaleLowerCase","horizontalOnly","sectionIndex","ds","fromFeature","verticalizePunctuation","positionedGlyphs","getMaxScale","getSection","getSectionIndex","getCharCode","advance","As","9","10","12","32","vs","badness","priorBreak","ks","Ss","layoutSize","minZoom","maxZoom","Is","uSize","uSizeT","Cs","Bs","getSizeData","evaluateSizeForFeature","evaluateSizeForZoom","SIZE_PACK_FACTOR","Es","Ms","Ps","Ts","Vs","dynamicLayoutVertexArray","opacityVertexArray","placedSymbolArray","dynamicLayoutVertexBuffer","opacityVertexBuffer","itemSize","Fs","collisionVertexArray","collisionVertexBuffer","Os","collisionBoxArray","hasPaintOverrides","textSizeData","iconSizeData","sortFeaturesByKey","sortFeaturesByY","writingModes","sourceID","createArrays","Rs","collisionBox","collisionCircle","glyphOffsetArray","lineVertexArray","symbolInstances","calculateGlyphDependencies","iconDependencies","glyphDependencies","getValueAndResolveTokens","allowVerticalPlacement","addToLineVertexArray","addSymbols","glyphOffset","_addCollisionDebugVertex","addCollisionDebugVertices","addDebugCollisionBoxes","generateCollisionDebugBuffers","_deserializeCollisionBoxesForSymbol","textBox","textFeatureIndex","textCircles","verticalTextBox","verticalTextFeatureIndex","iconBox","iconFeatureIndex","deserializeCollisionBoxes","collisionArrays","hasTextData","hasIconData","hasCollisionBoxData","hasCollisionCircleData","addIndicesForPlacedTextSymbol","getSortedSymbolIndexes","sortedAngle","symbolInstanceIndexes","sortFeatures","featureSortOrder","MAX_GLYPHS","addDynamicAttributes","Ls","Ds","runtimeType","getOverride","hasOverride","Us","_setPaintOverrides","hasPaintOverride","_interpolationType","js","qs","Ns","Ks","implementation","renderingMode","prerender","painter","Gs","Js","paddedRect","Hs","displaySize","haveRenderCallbacks","addImages","iconPositions","hasRenderCallback","patchUpdatedImages","dispatchRenderCallbacks","updatedImages","patchUpdatedImage","getImage","$s","Ws","Qs","tu","eu","useMipmap","pixelStoreUnpackFlipY","pixelStoreUnpack","pixelStoreUnpackPremultiplyAlpha","premultiply","isSizePowerOfTwo","nu","au","Bytes","su","realloc","lu","writeVarint","pu","writeSVarint","hu","writeBoolean","yu","writeFixed32","du","writeSFixed32","writeFixed64","vu","writeSFixed64","xu","bu","Varint","Fixed64","Fixed32","readMessage","readFixed32","readSFixed32","readFixed64","readSFixed64","readBytes","readPackedVarint","readPackedSVarint","readPackedBoolean","readPackedFloat","readPackedDouble","readPackedFixed32","readPackedSFixed32","readPackedFixed64","readPackedSFixed64","writeTag","writeString","writeBytes","writeRawMessage","writeMessage","writePackedVarint","writePackedSVarint","writePackedBoolean","writePackedFloat","writePackedDouble","writePackedFixed32","writePackedSFixed32","writePackedFixed64","writePackedSFixed64","writeBytesField","writeFixed32Field","writeSFixed32Field","writeFixed64Field","writeSFixed64Field","writeVarintField","writeSVarintField","writeStringField","writeFloatField","writeDoubleField","writeBooleanField","_u","wu","Au","ku","Su","zu","_triggered","_channel","Iu","mapId","tasks","taskQueue","cancelCallbacks","invoker","receive","Cu","targetMapId","sourceMapId","getWorkerSource","Bu","setSouthWest","setNorthEast","_ne","Eu","_sw","getSouthWest","getNorthEast","getNorthWest","getWest","getNorth","getSouthEast","getEast","getSouth","toBounds","Mu","Pu","Tu","Vu","Fu","Ou","Lu","fromLngLat","toLngLat","toAltitude","meterInMercatorCoordinateUnits","Du","ju","getTilePoint","Uu","canonical","Ru","overscaledZ","scaledTo","isChildOf","isLessThan","unwrapTo","overscaleFactor","toUnwrapped","qu","_unpackTerrarium","_unpackMapbox","_idx","backfillBorder","Nu","Ku","_stringToNumber","_numberToString","encode","decode","Zu","_vectorTileFeature","Xu","Gu","stateChanges","deletedStates","updateState","removeFeatureState","getState","initializeTileState","setFeatureState","coalesceChanges","Ju","tileID","grid3D","featureIndexArray","Hu","Yu","loadVTLayers","vtLayers","rawTileData","sourceLayerCoder","queryGeometry","queryPadding","cameraQueryGeometry","loadMatchingFeature","pixelPosMatrix","bucketLayerIDs","intersectionZ","lookupSymbolFeatures","hasLayer","$u","uses","buckets","expirationTime","hasSymbolBuckets","expiredRequestCount","Wu","Qu","registerFadeDuration","timeAdded","fadeEndTime","wasRequested","loadVectorData","hasData","unloadVectorData","latestFeatureIndex","latestRawTileData","justReloaded","imageAtlas","glyphAtlasImage","imageAtlasTexture","glyphAtlasTexture","unloadDEMData","dem","neighboringTiles","getBucket","queryRenderedFeatures","querySourceFeatures","_geojsonTileLayer","clearMask","maskedBoundsBuffer","maskedIndexBuffer","setMask","patternsLoaded","setExpiryData","getExpiryTimeout","holdingForFade","symbolFadeHoldUntil","symbolFadeFinished","clearFadeHold","setHoldDuration","boxStartIndex","_addLineCollisionCircles","boxEndIndex","ol","_down","ll","_up","peek","murmur3","murmur2","vl","compositeTextSizes","_l","compareText","Actor","AlphaImage","CanonicalTileID","CollisionBoxArray","DEMData","DataConstantProperty","DictionaryCoder","EXTENT","ErrorEvent","EvaluationParameters","Evented","FeatureIndex","FillBucket","FillExtrusionBucket","ImageAtlas","ImagePosition","LineBucket","LngLatBounds","MercatorCoordinate","ONE_EM","OverscaledTileID","Point$1","ProgramConfiguration","Protobuf","RGBAImage","RequestManager","ResourceType","SegmentVector","SourceFeatureState","StructArrayLayout1ui2","StructArrayLayout2i4","StructArrayLayout2ui4","StructArrayLayout3ui6","StructArrayLayout4i8","SymbolBucket","Texture","Transitionable","Uniform1f","Uniform1i","Uniform2f","Uniform3f","Uniform4f","UniformColor","UniformMatrix4f","UnwrappedTileID","ValidationError","WritingMode","ZoomHistory","asyncAll","bezier","bindAll","cacheEntryPossiblyAdded","getActor","clearTileCache","clone$1","create$1","create$2","createCommonjsModule","createExpression","createLayout","createStyleLayer","deepEqual","emitValidationErrors","endsWith","enforceCacheSizeLimit","evaluateRadialOffset","evented","featureFilter","filterObject","fromRotation","getAnchorAlignment","getAnchorJustification","getArrayBuffer","getJSON","getReferrer","getVideo","muted","onloadstart","crossOrigin","isChar","isMapboxURL","keysDifference","makeRequest","mapObject","mercatorXfromLng","mercatorYfromLat","mercatorZfromAltitude","mvt","parseGlyphPBF","pbf","performSymbolLayout","tilePixelRatio","iconsNeedLinear","compositeIconSizes","layoutTextSize","layoutIconSize","textMaxSize","sdfIcons","plugin","polygonIntersectsPolygon","potpack","rasterBoundsAttributes","refProperties","registerForPluginAvailability","pluginURL","completionCallback","setCacheLimits","setRTLTextPlugin","sphericalToCartesian","symbolSize","transformMat3","uniqueId","validateCustomStyleLayer","validateLight","validateStyle","vectorTile","warnOnce","webpSupported","keyCache","_layerConfigs","_layers","familiesBySource","showCollisionBoxes","collectResourceTiming","returnDependencies","stacks","icons","glyphMap","iconMap","glyphPositions","getEntriesByName","mark","clearMarks","clearMeasures","_marks","rawData","Performance","layerIndex","loading","loadTile","resourceTiming","reloadTile","reloadCallback","abortTile","removeTile","rawImageData","FLATTENING","POLAR_RADIUS","_feature","tags","rawGeometry","keycache","valuecache","fromVectorTileJs","fromGeojsonVt","GeoJSONWrapper","within","trees","cluster_id","point_count","point_count_abbreviated","promoteId","transformed","numSimplified","numFeatures","tileCoords","timeEnd","indexMaxZoom","indexMaxPoints","splitTile","_geoJSONIndex","getTile","_cluster","getClusters","_limitZoom","getChildren","getLeaves","_appendLeaves","_addTileFeatures","getClusterExpansionZoom","_map","loadGeoJSON","loadData","_pendingCallback","abandoned","_pendingLoadDataParams","_loadData","superclusterOptions","geojsonVtOptions","clusterId","getClusterChildren","getClusterLeaves","layerIndexes","workerSourceTypes","workerSources","demWorkerSources","registerWorkerSource","registerRTLTextPlugin","setReferrer","setLayers","getLayerIndex","removedIds","loadDEMTile","getDEMWorkerSource","removeDEMTile","loadWorkerSource","loadRTLTextPlugin","reduceRight","isSealed","isFrozen","Worker","terminate","webGLContextAttributes","failIfMajorPerformanceCaveat","probablySupportsContext","supportsContext","disableDrag","enableDrag","userImage","TouchEvent","touchPos","mouseButton","InstallTrigger","callbackDispatchedThisFrame","requestors","atlasImage","setLoaded","_notify","addImage","removeImage","listImages","getImages","getPixelSize","getPattern","_updatePatternAtlas","atlasTexture","beginFrame","requestManager","localIdeographFontFamily","setURL","getGlyphs","requests","_tinySDF","loadGlyphRange","_doesCharSupportLocalGlyph","tinySDF","TinySDF","_transitionable","setLight","getLight","getDash","addDash","workerPool","actors","currentActor","acquire","vector_layers","vectorLayers","vectorLayerIds","broadcast","release","validateBounds","dispatcher","reparseOverscaled","_loaded","_options","_collectResourceTiming","dataType","_tileJSONRequest","_requestManager","tileBounds","_getMapId","sourceDataType","hasTile","_refreshExpiredTiles","unloadTile","roundZoom","getTileTexture","extTextureFilterAnisotropic","extTextureFilterAnisotropicMax","saveTileTexture","needsHillshadePrepare","_getNeighboringTiles","backfilled","demTexture","_removed","_resourceTiming","workerOptions","_updateWorkerData","_finishLoading","setCoordinates","_boundsArray","boundsBuffer","boundsSegments","triggerRepaint","play","pause","seek","seekable","currentTime","paused","_hasInvalidDimensions","_playing","calculatePosMatrix","maxPitchScaleFactor","tilesIn","wrappedTileID","queryResults","getFeatureState","_getAndRemoveByKey","getAndRemove","setMaxSize","dynamicDraw","unbindVAO","bindElementBuffer","DYNAMIC_DRAW","STATIC_DRAW","bindVertexBuffer","enableAttributes","setVertexAttribPointers","setDefault","stencilMask","ALWAYS","stencilFunc","KEEP","stencilOp","STENCIL_TEST","depthRange","ZERO","blendColor","BACK","cullFace","CCW","frontFace","extVertexArrayObject","UNPACK_ALIGNMENT","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_FLIP_Y_WEBGL","colorAttachment","ReadOnly","ReadWrite","disabled","depthFail","blendFunction","Replace","unblended","alphaBlended","backCCW","stencilTest","depthTest","cullFaceSide","MAX_TEXTURE_MAX_ANISOTROPY_EXT","extTextureHalfFloat","setCullFace","setDepthMode","setStencilMode","setColorMode","_sourceLoaded","_paused","reload","_sourceErrored","_source","_tiles","_cache","_unloadTile","_timers","_cacheTimers","_maxTileCacheSize","_coveredTiles","_shouldReloadOnResume","_loadTile","_abortTile","imageManager","getIds","getRenderableIds","_isIdRenderable","hasRenderableParent","findLoadedParent","_reloadTile","_tileLoaded","refreshedUponExpiration","_setTileReloadTimer","_backfillDEM","getTileByID","_retainLoadedChildren","updateCacheSize","handleWrapJump","_prevLng","used","getVisibleUnwrappedCoordinates","coveringTiles","maxOverzooming","maxUnderzooming","_updateRetainedTiles","_addTile","_fadeDuration","_removeTile","releaseSymbolFadeTiles","clearTiles","getCameraQueryGeometry","pointCoordinate","getVisibleCoordinates","posMatrix","workers","workerCount","setFilter","setGeoJSONSourceData","setLayerZoomRange","setLayerProperty","setSprite","setGlyphs","boxCells","circleCells","xCellCount","yCellCount","circleKeys","boxKeys","boxUid","circleUid","labelPlaneMatrix","glCoordMatrix","signedDistanceFromCamera","useVertical","notEnoughRoom","needsFlipping","tileDistance","prevTileDistance","lastSegmentViewportDistance","keysLength","_insertBoxCell","insertCircle","_insertCircleCell","_query","hitTest","_queryCircle","_queryCellCircle","hitTestCircle","_circleAndRectCollide","_circlesCollide","_convertToXCellCoord","_convertToYCellCoord","ignoredGrid","pitchfactor","_pitch","screenRightBoundary","screenBottomBoundary","gridRightBoundary","gridBottomBoundary","placeCollisionBox","projectAndGetPerspectiveRatio","perspectiveRatio","isInsideGrid","offscreen","isOffscreen","approximateTileDistance","placeCollisionCircles","projectAnchor","cameraDistance","projectPoint","queryRenderedSymbols","bucketInstanceId","insertCollisionBox","collisionGroupID","insertCollisionCircles","placed","skipFade","crossSourceCollisions","maxGroupID","collisionGroups","ID","collisionIndex","placements","opacities","variableOffsets","stale","commitTime","retainedQueryData","prevPlacement","placedOrientations","placeLayerTile","placeLayerBucket","attemptAnchorPlacement","radialOffset","prevAnchor","markUsedJustification","markUsedOrientation","commit","lastPlacementChangeTime","updateLayerOpacities","updateBucketOpacities","symbolFadeChange","hasTransitions","stillRecent","setStale","_currentTileIndex","_seenCrossTileIDs","continuePlacement","_currentPlacementIndex","_forceFullPlacement","_showCollisionBoxes","_done","isDone","_inProgressLayer","indexedSymbolInstances","getScaledCoordinates","findMatches","maxCrossTileID","generate","usedCrossTileIDs","addBucket","removeBucketCrossTileIDs","removeStaleBuckets","crossTileIDs","maxBucketInstanceId","bucketsInCurrentPlacement","pruneUnusedLayers","glyphManager","lineAtlas","crossTileSymbolIndex","_order","sourceCaches","_resetUpdates","_rtlTextPluginCallback","_validateLayer","loadURL","_request","_load","loadJSON","stylesheet","_spriteRequest","_serializeLayers","_updatedSources","_checkLoaded","_changed","_updatedLayers","_removedLayers","_updateWorkerLayers","_reloadSource","_clearSource","_updatedPaintProps","setState","isSourceLoaded","_layerOrderChanged","_updateLayer","moveLayer","getFilter","_flattenAndSortRenderedFeatures","addSourceType","getSourceType","setSourceType","workerSourceURL","_remove","_updateSources","_generateCollisionBoxes","_updatePlacement","pauseablePlacement","_releaseSymbolFadeTiles","getResource","fragmentSource","vertexSource","prelude","backgroundPattern","clippingMask","heatmapTexture","fillOutline","fillOutlinePattern","fillPattern","fillExtrusion","fillExtrusionPattern","hillshadePrepare","lineGradient","linePattern","lineSDF","symbolIcon","symbolSDF","boundProgram","boundLayoutVertexBuffer","boundPaintVertexBuffers","boundIndexBuffer","boundVertexOffset","boundDynamicVertexBuffer","boundDynamicVertexBuffer2","freshBind","currentNumAttributes","fixedUniforms","binderUniforms","tileZoom","u_image","u_texsize","u_scale","u_fade","u_pixel_coord_upper","u_pixel_coord_lower","LINE_STRIP","u_matrix","u_lightpos","u_lightintensity","u_lightcolor","u_vertical_gradient","u_opacity","u_height_factor","u_world","pixelsToGLUnits","u_camera_to_center_distance","u_scale_with_map","translatePosMatrix","u_pitch_with_map","u_device_pixel_ratio","u_extrude_scale","u_pixels_to_tile_units","u_overscale_factor","u_color","u_intensity","u_color_ramp","moving","u_latrange","u_light","u_shadow","u_highlight","u_accent","u_dimension","u_zoom","u_maxzoom","u_ratio","u_units_to_pixels","u_patternscale_a","u_patternscale_b","u_sdfgamma","u_tex_y_a","u_tex_y_b","u_mix","u_tl_parent","u_scale_parent","u_buffer_scale","u_fade_t","u_image0","u_image1","u_brightness_low","u_brightness_high","u_saturation_factor","u_contrast_factor","u_spin_weights","u_is_size_zoom_constant","u_is_size_feature_constant","u_size_t","u_size","u_pitch","u_rotate_symbol","u_aspect_ratio","u_fade_change","u_label_plane_matrix","u_coord_matrix","u_is_text","u_texture","u_gamma_scale","u_is_halo","u_pattern_tl_a","u_pattern_br_a","u_pattern_tl_b","u_pattern_br_b","u_pattern_size_a","u_pattern_size_b","u_scale_a","u_scale_b","u_tile_units_to_pixels","colorModeForRenderPass","depthModeForSublayer","rotating","buffers","uniformValues","atlasInterpolation","isSDF","hasHalo","stencilModeForClipping","rasterBoundsBuffer","quadTriangleIndexBuffer","rasterBoundsSegments","TEXTURE1","coveringZoomLevel","debugBuffer","tileBorderIndexBuffer","debugSegments","renderPass","programConfiguration","HALF_FLOAT_OES","viewportBuffer","viewportSegments","opaquePassEnabledForLayer","depthRangeFor3D","stencilModeFor3D","isPatternMissing","tileExtentBuffer","tileExtentSegments","setCustomLayerDefaults","customLayerMatrix","setBaseState","_tileTextures","setup","numSublayers","depthEpsilon","depthRboNeedsClear","emptyProgramConfiguration","depthRbo","stencilClearMode","nextStencilID","currentStencilSource","_renderTileClippingMasks","_tileClippingMaskIDs","NOTEQUAL","EQUAL","_showOverdrawInspector","CONSTANT_COLOR","currentLayer","opaquePassCutoff","renderLayer","showOverdrawInspector","showTileBoundaries","setupOffscreenDepthRenderbuffer","maxValidLatitude","_renderWorldCopies","_minZoom","_maxZoom","setMaxBounds","_center","_fov","_unmodified","_posMatrixCache","_alignedPosMatrixCache","renderWorldCopies","worldSize","fov","unmodified","_calcMatrices","rotationMatrix","_zoom","zoomFraction","_constrain","setLocationAtPoint","locationCoordinate","coordinateLocation","locationPoint","coordinatePoint","pointLocation","pixelMatrixInverse","pixelMatrix","getMaxBounds","lngRange","alignedProjMatrix","projMatrix","mercatorMatrix","_constraining","getCameraPoint","_updateHash","_updateHashUnthrottled","addTo","_onHashChange","getHashString","jumpTo","history","replaceState","getCanvasContainer","_defaultPrevented","defaultPrevented","lngLats","_delta","_defaultZoomRate","_wheelZoomRate","setZoomRate","setWheelZoomRate","isEnabled","_enabled","isZooming","_zooming","_aroundCenter","around","onWheel","WheelEvent","DOM_DELTA_LINE","_lastWheelEventTime","_timeout","_onTimeout","_lastWheelEvent","_start","_frameId","_cancelRenderFrame","_finishTimeout","_around","_aroundPoint","_requestRenderFrame","_onScrollFrame","_targetZoom","_startZoom","_easing","_smoothOutEasing","_prevEase","getContainer","_clickTolerance","clickTolerance","onMouseDown","_onMouseMove","_onKeyDown","_onMouseUp","_startPos","_lastPos","_fireEvent","_finish","fitScreenCoordinates","_button","_bearingSnap","bearingSnap","_pitchWithRotate","pitchWithRotate","_unbind","_deactivate","_startTime","_eventButton","_onBlur","_inertia","_prevPos","_lastMoveEvent","_onDragFrame","_drainInertiaBuffer","_normalizeBearing","_inertialRotate","resetNorth","noMoveStart","rotateTo","_onMove","onTouchStart","_onTouchEnd","_mouseDownPos","_inertialPan","panBy","delayEndEvents","easeTo","_tapped","_tappedPoint","_resetTapped","onDblClick","_onZoomEnd","disableRotation","_rotationDisabled","enableRotation","_startVec","_startAround","_gestureIntent","_onEnd","_getTouchEventData","_lastTouchEvent","_onTouchFrame","_startScale","_startBearing","snapToNorth","dragRotate","keyboard","touchZoomRotate","_moving","panTo","zoomIn","zoomOut","resetNorthPitch","cameraForBounds","_cameraForBoxAndBearing","_fitInternal","flyTo","prefersReducedMotion","_normalizeCenter","_rotating","_pitching","_prepareEase","_easeEndTimeoutID","_ease","_fireMoveEvents","_afterEase","speed","screenSpeed","maxDuration","isEasing","_easeFrameId","_onEaseFrame","_onEaseEnd","_easeStart","_easeOptions","_renderFrameCallback","getDefaultPosition","_innerContainer","_updateAttributions","_updateEditLink","_updateData","_updateCompact","_editLink","styleOwner","styleId","_hash","rel","customAttribution","owner","_attribHTML","_updateLogo","_logoRequired","mapbox_logo","_queue","_cleared","_currentlyRunning","run","trackResize","refreshExpiredTiles","maxTileCacheSize","_interactive","_failIfMajorPerformanceCaveat","_preserveDrawingBuffer","_antialias","_trackResize","_crossSourceCollisions","_crossFadingFactor","_renderTaskQueue","_controls","_mapId","maxBounds","_setupContainer","_setupPainter","_onWindowOnline","_onWindowResize","fitBoundsOptions","_localIdeographFontFamily","logoPosition","_controlPositions","removeControl","_containerDimensions","_resizeCanvas","setMinZoom","getMinZoom","setMaxZoom","getRenderWorldCopies","setRenderWorldCopies","getMaxZoom","isMoving","isRotating","delegates","mouseout","_delegatedListeners","_diffStyle","_updateStyle","_updateDiff","isStyleLoaded","areTilesLoaded","hasImage","loadImage","_canvasContainer","_detectMissingCSS","_missingCSSCanary","_contextLost","_contextRestored","_controlContainer","_frame","_styleDirty","_sourcesDirty","_render","_placementDirty","_repaint","loseContext","_showTileBoundaries","_vertices","_setCacheLimits","showCompass","showZoom","visualizePitch","_zoomInButton","_createButton","_zoomOutButton","_compass","_compassArrow","_updateZoomButtons","_rotateCompassArrow","_handler","_anchor","_draggable","draggable","_element","_defaultMarker","_popup","setDraggable","_onMapClick","_addDragHandler","_onUp","getLngLat","_lngLat","setLngLat","getElement","setPopup","togglePopup","getPopup","getOffset","setOffset","_positionDelta","isDraggable","positionOptions","enableHighAccuracy","maximumAge","trackUserLocation","showUserLocation","_setupUI","permissions","geolocation","_geolocationWatchID","clearWatch","_userLocationDotMarker","_onSuccess","_lastKnownPosition","_watchState","_geolocateButton","_updateMarker","_updateCamera","_dotElement","longitude","latitude","accuracy","geolocateSource","_onError","_clearWatch","_timeoutId","_setup","watchPosition","getCurrentPosition","setUnit","_fullscreen","_fullscreenchange","_className","_checkFullscreenSupport","_changeIcon","fullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","webkitFullscreenEnabled","_fullscreenButton","_updateTitle","_onClickFullscreen","_isFullscreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","exitFullscreen","mozCancelFullScreen","msExitFullscreen","webkitCancelFullScreen","requestFullscreen","mozRequestFullScreen","msRequestFullscreen","webkitRequestFullscreen","closeButton","closeOnClick","_onClickClose","_trackPointer","_content","trackPointer","setText","setDOMContent","setHTML","createDocumentFragment","getMaxWidth","setMaxWidth","_createContent","_closeButton","_tip","NavigationControl","GeolocateControl","ScaleControl","FullscreenControl","Popup","Marker","clearStorage","objIsPrototypeOf","isPrototypeOf","nullDesc","isNullBase","nullPolyfill","tmpObj1","tmpObj2","not_string","not_bool","not_type","not_primitive","numeric_arg","not_json","modulo","key_access","index_access","sprintf_format","sprintf_parse","vsprintf","parse_tree","pad_character","pad_length","is_positive","tree_length","param_no","pad_char","sprintf_cache","_fmt","arg_names","SyntaxError","field_list","replacement_field","field_match","_v","_w","processGrid","startx","starty","startz","slen","_startsX","_startsY","_startsZ","normMax","normMin","zMax","zMin","_slen","_xbnds","_ybnds","_zbnds","filledX","filledY","filledZ","firstX","firstY","firstZ","lastZ","getArray","getVals","getDir","arrK","arrJ","arrI","nk","arbitrary","_j","_k","dirK","dirJ","dirI","q000","q001","q010","q100","createPlot2D","createOptions","updateRefs","stopped","lastButtonState","isMouseOver","aticks","bticks","liveCanvas","updateSize","pickCanvas","pixelWidth","pixelHeight","xaxisName","yaxisName","xaIn","yaIn","curTicks","updateTraces","mockGraphDiv","domainX","domainY","xr2l","yr2l","xl2r","yl2r","emitPointAction","nextSelection","eventType","lastPickResult","traceUid","screenCoord","hoverFormatter","concentrationscalesDefaults","Out","hoverlabelDefault","nodeIn","nodeOut","coerceNode","defaultNodePalette","linkIn","linkOut","coerceLink","dfltArrangement","defaultLinkColor","baseOpts","hasArrayBase","basej","calculateAxisErrors","_lowerErrorBound","calculateErrors","aggregations","funcmode","aggAttrs","aggregateOneArray","groupings","aggregation","targetNP","conversions","getAggregateFunction","sortCalc","maxCnt","counti","total2","arrayAttrArray","aggregationOut","aggregationsIn","aggregationsOut","coercei","enabledi","groupArray","newGrouping","locationmodeDflt","locationMode","parseValues","ldata","ccol","vcalendar","bnadd","eyex","eyey","eyez","upx","upy","upz","centerz","defaultColumnOrder","specifiedColumnOrder","truncated","oneStepped","parentObjIn","parentObjOut","previousContOut","omega","cosom","sinom","Heatmap","zData","convertColorscale","createHeatmap","rowLen","colorOptions","barHover","hovermplate","groupClassName","inputAreaClass","railRectClass","railTouchRectClass","gripRectClass","tickRectClass","inputProxyClass","labelsClass","labelGroupClass","currentValueClass","railHeight","railRadius","railWidth","railBorder","railInset","stepInset","gripRadius","gripWidth","gripHeight","gripBorder","gripBorderWidth","gripBorderColor","gripBgColor","labelPadding","minorTickOffset","currentValuePadding","currentValueInset","planarGraphToPolyline","makeArray","makeArrayOfArrays","t00","t10","t11","containment","loopVertices","pmc","fadj","edgeAdjacency","internalVertices","sharedBoundary","nnbhr","scatterMapboxHoverPoints","carpetFont","baseHues","isShort","isRGB","saturation","lightness","brightness","MAX_VALUE","overrideCursor","YA_RADIANS","YFACTOR","YSHIFTX","YSHIFTY","_hover","noHoverEvent","overlayedSubplots","xaArray","yaArray","supportsCompare","spId","xvalArray","yvalArray","itemnum","curvenum","subploti","closedataPreviousLength","searchData","spikePoints","hLinePoint","vLinePoint","hasOneHorizontalTrace","hasUserCalledHover","dbb","pointerX","pointerY","ySpike","newPoints","newPoint","newPointNum","cleanPoint","closestPoints","tmpPoint","closestVPoints","closestVPt","fillSpikePoint","closestHPoints","closestHPt","selectClosestPoint","pointsData","thisSpikeDistance","resultPoint","spikelineOpts","oldspikepoints","_spikepoints","newspikepoints","tmpHPointData","tmpHPoint","tmpVPointData","tmpVPoint","spikesChanged","createSpikelines","newhoverdata","rotateLabels","commonLabelOpts","hoverLabels","createHoverText","hoverAvoidOverlaps","alignHoverText","hoverChanged","xvals","yvals","multiHover","hoverItem","container3","outerContainer3","tooltipSpacing","lastBottomY","EXTRA_STRING_REGEX","commonAttr","outerContainerBB","outerTop","showCommonLabel","traceHoverinfo","allHaveZ","commonLabel","lpath","ltext","commonBgColor","commonStroke","contrastColor","commonLabelFont","tbb","topsign","leftsign","lty","ltx","dummy","dummyBB","textClip","numsColor","nameColor","hovertemplateString","tx2","tx2width","tx2height","t2bb","anchorStartOK","anchorEndOK","hty","txTotalWidth","ty0","txwidth","txHalfWidth","overflowR","overflowL","axKey","donepositioning","topOverlap","bottomOverlap","sumdp","nummoves","nLabels","pointgroups","constrainGroup","grp","minPt","maxPt","deleteCount","axIsX","posref","g0","g1","horzSign","alignShift","txx","tx2x","getVal","calcKey","traceKey","xeText","yeText","infomode","showY","showX","hLinePointX","hLinePointY","ySnap","xBase","xEndSpike","dfltHLineColor","yMode","yThickness","yColor","xAcross0","xAcross1","vLinePointX","vLinePointY","xSnap","yBase","yEndSpike","dfltVLineColor","xMode","xThickness","xColor","yAcross0","yAcross1","oldPt","newPt","legendTraceCount","legendReallyHasATrace","defaultOrder","defaultYAnchor","itemsizing","saveLink","canUseSaveLink","objectUrl","msSaveBlob","download","Line2D","createShaders","dashMult","maxPatternLength","precisionThreshold","maxLines","drawMiterLine","miterMode","miterLimit","dashSize","drawRectLine","lineTop","aCoord","bCoord","aCoordFract","bCoordFract","aColor","bColor","prevCoord","nextCoord","drawFill","dashLength","lastId","bounds$1","boundsW","boundsH","rangeW","rangeH","dashData","l$2","i$7","c$1","d3_collection_src","weightedSource","weightedTarget","src_sankey","maxPaddedSpace","relaxRightToLeft","relaxLeftToRight","maxNodePadding","horizontalSource","horizontalTarget","sankeyLinkHorizontal","exprs","setPositionOffset","orientations","violinList","getPolygonizer","createMSTable","createCellPolygonizer","maxCellSize","tables","generateCase","alg","valueToString","makeReflectTypes","useIndex","handleTernaryDefaults","ternaryLayoutIn","ternaryLayoutOut","letterUpper","makePathFn","_a0","_a1","vaBar","cdbar","barLayer","rp0","rp1","thetag0","thetag1","rg1","thetagMid","colLength","transposeRagged","maxlen","zlen","yTranspose","translationMatrix","xys","createTurntableController","rotateM","normalize3","dot3","clamp1","findOrthoPair","TurntableController","computedRight","computedAngle","computedToward","maxDist","toward","ctheta","stheta","cphi","sphi","zAxis","dphi","droll","noSnap","ushift","vshift","ez","cf","tz","angleState","lastTheta","lastPhi","dataArrays","arraysToFill","dataArray","fillArray1","fillArray2","displaySum","normSum","hasBars","shouldBeGapless","gappedAnyway","usedSubplots","Grid","tickShader","compareTickNum","X_AXIS","Y_AXIS","SCR_OFFSET","TICK_SCALE","viewWidth","viewHeight","xTicksOffset","yTicksOffset","xEnd","xCount","yEnd","yCount","tickScale","OFFSET_X","OFFSET_Y","gridTicks","localTicks","m44","heatmapStyle","isConstraintType","colorLines","colorFills","firstFill","stylePie","pieCastOption","CST_MARKER_SIZE","CST_LINE_WIDTH","CST_MARKER_LINE_WIDTH","MAX_LINE_WIDTH","MAX_MARKER_LINE_WIDTH","getGradientDirection","constantItemSizing","boundLineWidth","cst","styleLines","dMod","tMod","showFill","showGradientLine","showGradientFill","fillGradient","markersOrText","anyFill","anyLine","pathStart","this3","minExtend","showMarkers","boundVal","attrIn","arrayToValFn","valToBound","pickFirst","dEdit","tEdit","ptgroup","styleWaterfalls","ptsData","styleBars","styleBarLike","styleFunnels","barpath","styleBoxes","styleCandles","styleOHLC","stylePies","stylePieLike","styleFunnelareas","d0Mod","styleSpatial","useGradient","traceGroup","markerOffsetY","clonePlot","cheaterBasis","arrayMinmax","calcGridlines","calcLabels","calcClipPath","smoothFill2dArray","avals","bvals","isBicubic","SUPPORTED_TYPES","GLBuffer","updateTypeArray","dataLen","makeScratchTypeArray","STREAM_DRAW","ndt","carpetAttrs","startLineColor","startLineWidth","showStartLine","endLineColor","endLineWidth","showEndLine","ouu2","autoMarginId","sliderOpts","makeSliderData","contOpts","sliderData","findDimensions","sliderLabels","maxLabelWidth","labelHeight","stepOpts","_dims","inputAreaWidth","outerLength","inputAreaStart","inputAreaLength","textableInputLength","availableSpacePerLabel","computedSpacePerLabel","labelStride","currentValueMaxWidth","currentValueHeight","currentValueTotalHeight","currentValueMaxLines","dummyGroup","curValPrefix","drawCurrentValue","curValSize","drawSlider","sliderGroup","drawRail","drawLabelGroup","drawTouchRect","drawGrip","setGripPosition","valueOverride","curVal","grip","attachGripEvents","labelItems","labelSteps","normalizedValueToPosition","handleInput","normalizedPosition","doTransition","quantizedPosition","quantizedIndex","setActive","doCallback","previousActive","slider","interaction","_nextMethod","_nextMethodRaf","$gd","getSliderOpts","positionToNormalizedValue","isMajor","computeLabelSteps","_invokingCommand","computedLength","sliders","clearSlider","sliderGroups","gSlider","createFills","traceJoin","fillJoin","cdscatterAll","selectMarkers","errorBarGroup","ownFillEl3","ownFillDir","thispath","thisrevpath","prevRevpath","prevPolygons","_prevRevpath","_nextFill","pathfn","revpathbase","revpathfn","thisPolygons","revpath","_ownFill","isEnter","lineJoin","clearFill","_prevPolygons","clipUrl","visFilter","visFilterWithGaps","gapFilter","hideFilter","hasNode","markerFilter","textFilter","showFilter","isInferZero","_needsCull","mnum","tnum","inboxFn","_cdi","segseg","ratCmp","ratToFloat","ratVec","boundRat","boundEdges","boundPoints","getCrossings","edgeBounds","getTJunctions","vertBounds","cutEdges","floatPoints","junctions","useColor","ratPoints","crossing","ef","junction","dedupPoints","floatBounds","noDupes","compareLex2","compareLex3","dedupEdges","preRound","snapRound","tjunctions","prevEdges","augEdges","modified","perspectiveMatrix","tmpVec4","pdum3","vec4multMat4","mat3from4","mat4x4","scale2","dragOne","splomGrid","makeGridData","fullView","lcolor","lwidth","gridBatches","zScale","lgroupToTraces","lgroups","hasOneNonBlankGroup","slicesShown","lgroupi","addOneItem","legendGroup","uniqueGroup","lgroup","labelj","ltraces","lgroupsLength","JUNK","invertPermutation","dfltAnchor","dfltDomain","dfltPosition","createTable","chull","constructVertex","constructCell","opts1","funnelareacolorway","extendfunnelareacolors","gl3dAxisAttrs","makeCameraVector","boxList","pointList","shownPts","boxdv","dPos0","numTotal","groupFraction","groupGapFraction","pushplus","pushminus","edgeplus","edgeminus","hasPts","pm","colorbarAttrs","palettes","noScale","onlyIfNumerical","colorscaleDflt","contextHead","autoImpliedEdits","minmaxImpliedEdits","isPlainFunction","normalizeOpts","dscr","equalPts","xtol","ytol","edgeflag","locStr","marchStep","getStartStep","getInterpPx","startLoc","startStep","atEdge","closedLoop","distgroup","cnt2","cnt3","newpt","ptcnt","ptavg","thisdist","edgepathi","edgepathj","closedpath","totaldist","distThresholdFactor","alldists","cropstart","distThreshold","getpt","doublemerged","locx","locy","zxy","handleLayerDefaults","layerIn","layerOut","typeDflt","mustBeRasterLayer","ovv2","d3Sankey","d3SankeyCircular","d3Force","sankeyModel","nodePad","nodeThickness","nodePointNumber","groupingNode","computeLinkConcentrations","flowKey","flows","flowLinks","totalPerLabel","concentration","totalOutflow","concentrationOut","totalInflow","concenrationIn","resolveCollisionsTopToBottom","snapToColumns","colX","orderedNodes","colNumber","guid","nodeLineColor","nodeLineWidth","linkLineColor","linkLineWidth","dragParallel","dragPerpendicular","forceLayouts","interactionState","dragInProgress","linkModel","basicKey","linkPath","createCircularClosedPathString","y0a","y0b","y1a","y1b","nodeModel","zoneThicknessPad","zoneLengthPad","visibleThickness","visibleWidth","visibleHeight","zoneX","zoneY","zoneWidth","zoneHeight","labelY","originalLayer","sizeAcross","darkBackground","uniqueNodeLabelPathId","updateNodePositions","updateNodeShapes","updateShapes","salientEnough","sankeyTransform","nodeCentering","textGuidePath","sankeyInverseTransform","textFlip","nodeTextColor","nodeTextOffset","attachPointerEvents","eventSet","attachDragHandler","dragBehavior","_dragCover","saveCurrentDragPosition","forceKey","attachForce","startForce","sameLayer","persistFinalNodePositions","switchToForceFormat","originalX","forceSimulation","forceCollide","snappingForce","faster","switchToSankeyFormat","maxVelocity","lastDraggedX","lastDraggedY","nodeX","nodeY","persistOriginalPlace","distinctLayerPositions","originalY","originalLayerIndex","firstRender","dragcover","styledData","dragboxClassName","objectAssign","hasOwn","pSlice","functionsHaveNames","pToString","arrbuf","truncate","something","rawname","getMessage","expected","stackStartFunction","AssertionError","_deepEqual","memos","actualIndex","objEquiv","actualVisitedObjects","aIsArgs","bIsArgs","notDeepStrictEqual","expectedException","_tryBlock","_throws","shouldThrow","userProvidedMessage","isUnwantedException","isUnexpectedException","generatedMessage","captureStackTrace","fn_name","next_line","notEqual","deepStrictEqual","notDeepEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","MAX_GROUP_ID","srcPoints","sublevels","levelItems","nextOffset","diam","levelGroups","sublevel","lolo","lohi","hilo","hihi","x$1","y$1","nminX","nminY","nmaxX","nmaxY","maxLevel","off0","off1","off2","off3","levelGroupStart","levelGroupEnd","startOffset","endOffset","contourPlot","axisAlignedLine","mapPathinfo","pedgepath","ppath","pathData","constrainToCarpet","levelData","pathABData","startVector","getUnitVector","endVector","minStart","maxEnd","abPt","pathVector","edgeVector","dAB","normalizeVector","vectorTan","ab2p","carpetcd","pathto","startpt","contourcarpetLayer","isAllBlank","mat4mult","getSimpleString","ScatterPlotPickResult","fixOpacity","PointCloud","orthoShader","projectShader","pointBuffer","glyphBuffer","pickPerspectiveShader","pickOrthoShader","pickProjectShader","lineVertexCount","projectHasAlpha","_selectResult","useOrtho","axesProject","highlightId","createPointCloud","pickBase","VIEW_SHAPE","U_VEC","V_VEC","MU_VEC","MV_VEC","SCRATCH_MATRIX","SCRATCH_VEC","CLIP_BOUNDS","augment","hg","af","setComponent","getClipBounds","drawProject","screenSize","pickGroup","pmodel","mdu","mdv","sv","fragClipBounds","NEG_INFINITY3","POS_INFINITY3","CLIP_GROUP","drawFull","pshader","forceDraw","get_glyphData","alignmentX","alignmentY","angles","lineColors","pickCounter","triVertexCount","count_loop","glyphData","glyphMesh","glyphLines","glyphBounds","positionArray","glyphArray","idArray","triOffset","isColorArray","isLineColorArray","glyphVisible","currentScript","scripts","getElementsByTagName","handleOpacity","handleOverlap","parcoordsLineLayers","parcoordsLineLayer","filterBarPattern","str2bn","makeRational","selectorOut","getPosDflt","anchoredList","selectorIn","posDflt","fontAttr","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","objectProto","nativeMax","nativeMin","lastArgs","lastThis","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","debounced","isInvoking","isObjectLike","isBinary","Ax","Ay","Bx","By","d_py_ly","d_rx_lx","d_px_lx","d_ry_ly","sqlen","pointsSameX","pointsSameY","pt3","axb","searchString","sqrDist","sqrLen","boxDeltaPos","boxDeltaNeg","dVal","isViolin","boxDelta","posAcceptance","xPx","yPx","ijClosest","tangent","tanIsoIdx","tanIsoPar","refidx","toIdx","isoIdx","vstart","vend","dirfloor","dirceil","dirmin","dirmax","idx0","idx1","findInterp","pixArray","maxBin","pix0","pix1","bin0","bin1","findInterpFromCenters","centerPixArray","putColor","pxIndex","heatmapLayer","xrev","yrev","canvasW","canvasH","xbi","ybi","pixcount","gcount","bcount","yinterp","xForPx","yForPx","xPixArray","yPixArray","xinterpArray","findInterpX","findInterpY","interpColor","setColor","pxArray","dlen","xGap","yGap","xGapLeft","yGapTop","avgColor","pixsize","xinterp","z00","z01","z10","z11","setPublicPath_i","_vm","_h","$createElement","_c","_self","directives","rawName","staticRenderFns","_defineProperty","lib","lib_default","eventsName","completeName","$emit","components_events","plotlyFunctions","functionName","components_methods","hit","camelize","enumerableOnly","_objectSpread","Plotlyvue_type_script_lang_js_","inheritAttrs","scheduled","innerLayout","mounted","watch","deep","old","_layout","computed","optionsFromAttrs","$attrs","beforeDestroy","onResize","_this4","$nextTick","allOptions","getPrintOptions","components_Plotlyvue_type_script_lang_js_","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$options","shadowRoot","_injectStyles","originalRender","beforeCreate","getOutsideTextFontKey","getInsideTextFontKey","getParentId","childId","keyStr","isOutsideText","tube2mesh","Streamtube","getDfltStartingPositions","getBoundPads","tubeOpts","meshx","meshy","meshz","xbnds","ybnds","zbnds","xpads","ypads","zpads","createStreamtubeTrace","streamtube","fromDataScale","uvx","arrayModule","coerceModule","datesModule","searchModule","statsModule","matrixModule","anglesModule","anchorUtils","geom2dModule","extendModule","loggersModule","regexModule","throttleModule","throttleDone","domModule","makePtIndex2PtNumber","ptIndex2ptNumber","attrList","part1","part2","_recursion","rem","OptionControl","optname","optObj","optionList","smooth","FWHM","alen","alen2","wlen","finalStep","fni","continueAsync","promiseError","stripTrailingSlash","hasAny","hasAll","hasFn","traceVal","isCdIndexValid","ptIndex","transformOpts","obj1","obj2","arrayLen","titleCase","containsAny","IS_IE9_OR_BELOW_REGEX","IS_SAFARI_REGEX","enterFn","objectFromPath","tmpObj","dottedPropertyRegex","indexedPropertyRegex","trailingPath","thousandsRe","decimalSep","thouSep","TEMPLATE_STRING_REGEX","getterCache","hovertemplateWarnings","templateFormatString","texttemplateWarnings","TEMPLATE_STRING_FORMAT_SEPARATOR","char0","char9","numA","numB","charA","charB","isNumA","isNumB","randSeed","lastVal","baseFont","needsCull","privates","fallback","forwardFrag","pickFrag","EthiopianCalendar","LOG2E","menuOpts","isFolded","gButton","buttonOpts","gHeader","buttonIndex","isSilentUpdate","drawButtons","drawHeader","headerOpts","posOpts","positionOverrides","headerWidth","setItemPosition","styleOnMouseOver","styleOnMouseOut","buttonData","openHeight","openWidth","scrollBoxPosition","menu","styleButtons","drawScrollBox","hideScrollBox","heights","widths","hasHBar","hasVBar","itemOpts","drawItemRect","drawItemText","height1","totalWidth","fakeButtons","paddedWidth","paddedHeight","overrideOpts","spanOffset","newMenuIndexAttr","menuData","clearAutoMargin","menus","headerGroups","scrollBoxId","_gButton","getCanvasContext","CSSRuleList","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","convertToPx","convertToDate","extractedCoordinates","relevantParamIdx","dataToPixel","pixelToData","strokeWidthIsOdd","posValAsInt","barycentricCircumcenter","barycenetric","feat","multiPoint","multiLineString","multiPolygon","featureCollection","coordinates_1","lineStrings","geometryCollection","radiansToLength","factors","lengthToRadians","lengthToDegrees","radiansToDegrees","bearingToAzimuth","degreesToRadians","convertLength","originalUnit","finalUnit","convertArea","startFactor","areaFactors","finalFactor","validateBBox","validateId","radians2degrees","degrees2radians","distanceToDegrees","distanceToRadians","radiansToDistance","bearingToAngle","convertDistance","earthRadius","centimeters","centimetres","feet","inches","kilometers","kilometres","meters","metres","miles","millimeters","millimetres","nauticalmiles","yards","unitsFactors","acres","imageDataAbove","imageDataSubplot","imageDataBelow","setImage","thisImage","_imgSrc","imagePromise","errorHandler","imagesBelow","imagesAbove","imagesOnSubplot","VMenu","VChip","Themeable","rootIsDark","$slots","isComment","VCardActions","createSimpleFunctional","VCardSubtitle","VCardText","VCardTitle","VCard","Vue","ripple","Colorable","indeterminate","indeterminateIcon","onIcon","offIcon","VIcon","setTextColor","dark","staticClass","mergeData","wrapInArray","staticStyle","$store","truck","truckid","get_error","faena","data1","layout1","select_vars","$event","onChangeVar","scopedSlots","domProps","$$v","var_1","time_base","onChangeTimeBase","time_base_1","data2","layout2","var_2","time_base_2","peopleSelected","people","divider","graph_sensors","$util","$router","loader","$axios","spread","samplelast_resp","ecu","record","getSamplesHistory","samplelast_err","setYAxisTitle","var_n","samplehistory_1_resp","samplehistory_2_resp","samplehistory_1_err","samplehistory_2_err","VAlert","VCol","VRow","VSelect","mixins","Loadable","Routable","VSheet","loaderHeight","raised","isClickable","genProgress","generateRouteLink","tabindex","setBackgroundColor","VDivider","inset","themeClasses","$listeners","VSubheader","dense","hideSelected","itemDisabled","itemText","itemValue","noDataText","noFilter","searchInput","selectedItems","parsedItems","tileActiveClass","staticNoDataTile","VListItem","genTileContent","genAction","inputValue","VListItemAction","VSimpleCheckbox","genDivider","genFilteredText","escapeHTML","getMaskedCharacters","genHighlight","genHeader","genTile","hasItem","getDisabled","activeClass","$scopedSlots","scopedSlot","needsTile","VListItemContent","VListItemTitle","slot","componentOptions","getPropertyFromItem","itemsLength","VList","defaultMenuProps","closeOnContentClick","disableKeys","openOnClick","baseMixins","VTextField","Comparable","Dependent","Filterable","ClickOutside","appendIcon","attach","cacheItems","chips","clearable","deletableChips","disableLookup","eager","itemColor","menuProps","multiple","openOnClear","returnObject","smallChips","cachedItems","menuIsBooted","isMenuActive","lastItem","lazyValue","selectedIndex","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","hasChips","computedItems","computedOwns","computedCounterValue","counterValue","isFocused","closeConditional","include","getOpenDependentElements","dynamicHeight","hasSlot","isDirty","listData","virtualizedItems","$vuetify","lang","selectItem","staticList","consoleError","VSelectList","$_menuProps","menuCanShow","normalisedProps","nudgeBottom","internalValue","setSelectedItems","onMenuActiveChange","setMenuIndex","activateMenu","isInteractive","clearableCallback","$refs","_isDestroyed","getContent","findExistingIndex","valueComparator","genChipSelection","isDisabled","small","onChipInput","genCommaSelection","computedColor","genDefaultSlot","selections","genSelections","genInput","genFieldset","genLabel","genAffix","genClearIcon","genIconSlot","genHiddenInput","genMenu","genIcon","extraData","VInput","readonly","isReadonly","getObjectValueByPath","autocomplete","persistentPlaceholder","keypress","onKeyPress","attrs$","genInputSlot","genList","genListWithSlot","slots","slotName","activator","scroll","genSelection","genSlotSelection","getMenuIndex","listIndex","onBlur","isAppendInner","onEscDown","KEYBOARD_LOOKUP_THRESHOLD","startsWith","getTiles","onKeyDown","keyCodes","changeListIndex","onUpDown","esc","onTabDown","onSpaceDown","onMouseUp","hasMouseDown","showMoreItems","activeTile","isBooted","hasClickableTiles","prevTile","nextTile","firstTile","lastTile","updateDimensions","appendInner","Sizeable","GroupableFactory","ToggleableFactory","chipGroup","closeIcon","closeLabel","filterIcon","outlined","pill","proxyClass","isLink","hasClose","sizeableClasses","groupClasses","breakingProps","breaking","genFilter","VExpandXTransition","genClose","genContent","Delayable","Menuable","Returnable","Roundable","Toggleable","Resize","provide","isInMenu","theme","openOnHover","calculatedTopAuto","defaultOffset","hasJustFocused","resizeTimeout","calculatedLeft","menuWidth","calculatedMinWidth","convertToUnit","calcXOverflow","calcLeftAuto","calcLeft","calculatedMaxHeight","calculatedMaxWidth","nudgeWidth","pageWidth","calculatedTop","calcYOverflow","calcTop","tabIndex","transformOrigin","activeZIndex","isContentActive","contentHeight","goTo","appOffset","removed","callActivate","activate","startTransition","calcTopAuto","calcScrollPosition","maxScrollTop","computedTop","tileDistanceFromMenuTop","firstTileOffsetTop","genActivatorAttributes","Activatable","genActivatorListeners","genTransition","genDirectives","getScopeIdAttrs","rootThemeClasses","roundedClasses","activatorFixed","menuable__content__active","contentClass","mouseEnterHandler","mouseLeaveHandler","getContentSlot","runDelay","_this$$refs$content","callDeactivate","getActivator","genActivator","showLazyContent","VThemeProvider","returnValue","originalValue"],"mappings":"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,MAAQ,UAE3CuT,EAAIq2E,6BAA6BtzB,EAAUtmB,QAjDvCsmB,EAASvnD,SAAU,IAuDrB,KACA,SAAU3S,EAAQC,GAExBD,EAAOC,QAAU,CAEb,YACA,QACA,UACA,OACA,YACA,QACA,UACA,UACA,QACA,WACA,KACA,MACA,QACA,KACA,OACA,KACA,MACA,QACA,QACA,MACA,OACA,OACA,OACA,OACA,QACA,UACA,SACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,YACA,YACA,YACA,cACA,kBACA,kBACA,SAGA,MACA,QACA,QACA,OACA,UACA,WACA,OACA,SACA,OACA,SACA,UACA,SACA,WACA,WACA,SACA,SACA,SACA,WACA,YACA,OACA,QACA,SACA,OACA,QACA,WACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,gBACA,gBACA,sBACA,SACA,OACA,YACA,UAME,KACA,SAAUD,EAAQC,EAASI,GAEjC,aAYA,IAAIsP,EAAYtP,EAAoB,QAKpCL,EAAOC,QAAU,SAA0BmP,GACvC,IAAI4pB,EAAS5pB,EAAM4pB,OACf0rF,EAAU1rF,EAAO41D,SAAW,EAC5B+1B,EAAU3rF,EAAO61D,SAAW,EAM5B+1B,EAA8B,SAApB5rF,EAAO81D,SACjB,SAASxpF,GAAK,OAAOiB,KAAKuD,KAAKxE,EAAIo/G,IACnC,SAASp/G,GAAK,OAAOA,EAAIo/G,GAI7B,OAAO,SAASp/G,GACZ,IAAIu/G,EAAWD,EAAOt/G,EAAI,GAG1B,OAAQqK,EAAUk1G,IAAcA,EAAW,EACvCt+G,KAAKqC,IAAIi8G,EAAUF,GACnB,KAON,KACA,SAAU3kH,EAAQC,EAASI,GAEjC,aAYA,IAAIqP,EAAKrP,EAAoB,QACzBsP,EAAYtP,EAAoB,QAEhCmxC,EAAQnxC,EAAoB,QAC5Bg6B,EAAWh6B,EAAoB,QAC/B8W,EAAM9W,EAAoB,QAC1Bk4B,EAAUl4B,EAAoB,QAC9BojB,EAAQpjB,EAAoB,QAC5BoxC,EAAepxC,EAAoB,QACnCykH,EAAoBzkH,EA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AAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KACrI,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAEjD,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACrI,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,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AI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,IAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvDC,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI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,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAIxnG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAKsrF,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI84T,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI6mD,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI5mD,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI6mD,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI7mD,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,KAAKC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK44L,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI1mZ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI6V,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAA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GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI93P,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAKlkE,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAIC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI3C,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAIC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAIwd,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAA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AC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,IAAIgZ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,IAAItP,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI2F,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAIlF,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE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","file":"js/chunk-b32d8f9e.7bf3b472.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([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-plotly\"] = factory();\n\telse\n\t\troot[\"vue-plotly\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn /******/ (function(modules) { // webpackBootstrap\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};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fae3\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n\n/***/ \"0000\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n//High level idea:\n// 1. Use Clarkson's incremental construction to find convex hull\n// 2. Point location in triangulation by jump and walk\n\nmodule.exports = incrementalConvexHull\n\nvar orient = __webpack_require__(\"92ba\")\nvar compareCell = __webpack_require__(\"24ad\").compareCells\n\nfunction compareInt(a, b) {\n return a - b\n}\n\nfunction Simplex(vertices, adjacent, boundary) {\n this.vertices = vertices\n this.adjacent = adjacent\n this.boundary = boundary\n this.lastVisited = -1\n}\n\nSimplex.prototype.flip = function() {\n var t = this.vertices[0]\n this.vertices[0] = this.vertices[1]\n this.vertices[1] = t\n var u = this.adjacent[0]\n this.adjacent[0] = this.adjacent[1]\n this.adjacent[1] = u\n}\n\nfunction GlueFacet(vertices, cell, index) {\n this.vertices = vertices\n this.cell = cell\n this.index = index\n}\n\nfunction compareGlue(a, b) {\n return compareCell(a.vertices, b.vertices)\n}\n\nfunction bakeOrient(d) {\n var code = [\"function orient(){var tuple=this.tuple;return test(\"]\n for(var i=0; i<=d; ++i) {\n if(i > 0) {\n code.push(\",\")\n }\n code.push(\"tuple[\", i, \"]\")\n }\n code.push(\")}return orient\")\n var proc = new Function(\"test\", code.join(\"\"))\n var test = orient[d+1]\n if(!test) {\n test = orient\n }\n return proc(test)\n}\n\nvar BAKED = []\n\nfunction Triangulation(dimension, vertices, simplices) {\n this.dimension = dimension\n this.vertices = vertices\n this.simplices = simplices\n this.interior = simplices.filter(function(c) {\n return !c.boundary\n })\n\n this.tuple = new Array(dimension+1)\n for(var i=0; i<=dimension; ++i) {\n this.tuple[i] = this.vertices[i]\n }\n\n var o = BAKED[dimension]\n if(!o) {\n o = BAKED[dimension] = bakeOrient(dimension)\n }\n this.orient = o\n}\n\nvar proto = Triangulation.prototype\n\n//Degenerate situation where we are on boundary, but coplanar to face\nproto.handleBoundaryDegeneracy = function(cell, point) {\n var d = this.dimension\n var n = this.vertices.length - 1\n var tuple = this.tuple\n var verts = this.vertices\n\n //Dumb solution: Just do dfs from boundary cell until we find any peak, or terminate\n var toVisit = [ cell ]\n cell.lastVisited = -n\n while(toVisit.length > 0) {\n cell = toVisit.pop()\n var cellVerts = cell.vertices\n var cellAdj = cell.adjacent\n for(var i=0; i<=d; ++i) {\n var neighbor = cellAdj[i]\n if(!neighbor.boundary || neighbor.lastVisited <= -n) {\n continue\n }\n var nv = neighbor.vertices\n for(var j=0; j<=d; ++j) {\n var vv = nv[j]\n if(vv < 0) {\n tuple[j] = point\n } else {\n tuple[j] = verts[vv]\n }\n }\n var o = this.orient()\n if(o > 0) {\n return neighbor\n }\n neighbor.lastVisited = -n\n if(o === 0) {\n toVisit.push(neighbor)\n }\n }\n }\n return null\n}\n\nproto.walk = function(point, random) {\n //Alias local properties\n var n = this.vertices.length - 1\n var d = this.dimension\n var verts = this.vertices\n var tuple = this.tuple\n\n //Compute initial jump cell\n var initIndex = random ? (this.interior.length * Math.random())|0 : (this.interior.length-1)\n var cell = this.interior[ initIndex ]\n\n //Start walking\nouterLoop:\n while(!cell.boundary) {\n var cellVerts = cell.vertices\n var cellAdj = cell.adjacent\n\n for(var i=0; i<=d; ++i) {\n tuple[i] = verts[cellVerts[i]]\n }\n cell.lastVisited = n\n\n //Find farthest adjacent cell\n for(var i=0; i<=d; ++i) {\n var neighbor = cellAdj[i]\n if(neighbor.lastVisited >= n) {\n continue\n }\n var prev = tuple[i]\n tuple[i] = point\n var o = this.orient()\n tuple[i] = prev\n if(o < 0) {\n cell = neighbor\n continue outerLoop\n } else {\n if(!neighbor.boundary) {\n neighbor.lastVisited = n\n } else {\n neighbor.lastVisited = -n\n }\n }\n }\n return\n }\n\n return cell\n}\n\nproto.addPeaks = function(point, cell) {\n var n = this.vertices.length - 1\n var d = this.dimension\n var verts = this.vertices\n var tuple = this.tuple\n var interior = this.interior\n var simplices = this.simplices\n\n //Walking finished at boundary, time to add peaks\n var tovisit = [ cell ]\n\n //Stretch initial boundary cell into a peak\n cell.lastVisited = n\n cell.vertices[cell.vertices.indexOf(-1)] = n\n cell.boundary = false\n interior.push(cell)\n\n //Record a list of all new boundaries created by added peaks so we can glue them together when we are all done\n var glueFacets = []\n\n //Do a traversal of the boundary walking outward from starting peak\n while(tovisit.length > 0) {\n //Pop off peak and walk over adjacent cells\n var cell = tovisit.pop()\n var cellVerts = cell.vertices\n var cellAdj = cell.adjacent\n var indexOfN = cellVerts.indexOf(n)\n if(indexOfN < 0) {\n continue\n }\n\n for(var i=0; i<=d; ++i) {\n if(i === indexOfN) {\n continue\n }\n\n //For each boundary neighbor of the cell\n var neighbor = cellAdj[i]\n if(!neighbor.boundary || neighbor.lastVisited >= n) {\n continue\n }\n\n var nv = neighbor.vertices\n\n //Test if neighbor is a peak\n if(neighbor.lastVisited !== -n) { \n //Compute orientation of p relative to each boundary peak\n var indexOfNeg1 = 0\n for(var j=0; j<=d; ++j) {\n if(nv[j] < 0) {\n indexOfNeg1 = j\n tuple[j] = point\n } else {\n tuple[j] = verts[nv[j]]\n }\n }\n var o = this.orient()\n\n //Test if neighbor cell is also a peak\n if(o > 0) {\n nv[indexOfNeg1] = n\n neighbor.boundary = false\n interior.push(neighbor)\n tovisit.push(neighbor)\n neighbor.lastVisited = n\n continue\n } else {\n neighbor.lastVisited = -n\n }\n }\n\n var na = neighbor.adjacent\n\n //Otherwise, replace neighbor with new face\n var vverts = cellVerts.slice()\n var vadj = cellAdj.slice()\n var ncell = new Simplex(vverts, vadj, true)\n simplices.push(ncell)\n\n //Connect to neighbor\n var opposite = na.indexOf(cell)\n if(opposite < 0) {\n continue\n }\n na[opposite] = ncell\n vadj[indexOfN] = neighbor\n\n //Connect to cell\n vverts[i] = -1\n vadj[i] = cell\n cellAdj[i] = ncell\n\n //Flip facet\n ncell.flip()\n\n //Add to glue list\n for(var j=0; j<=d; ++j) {\n var uu = vverts[j]\n if(uu < 0 || uu === n) {\n continue\n }\n var nface = new Array(d-1)\n var nptr = 0\n for(var k=0; k<=d; ++k) {\n var vv = vverts[k]\n if(vv < 0 || k === j) {\n continue\n }\n nface[nptr++] = vv\n }\n glueFacets.push(new GlueFacet(nface, ncell, j))\n }\n }\n }\n\n //Glue boundary facets together\n glueFacets.sort(compareGlue)\n\n for(var i=0; i+1= 0) {\n bcell[ptr++] = cv[j]\n } else {\n parity = j&1\n }\n }\n if(parity === (d&1)) {\n var t = bcell[0]\n bcell[0] = bcell[1]\n bcell[1] = t\n }\n boundary.push(bcell)\n }\n }\n return boundary\n}\n\nfunction incrementalConvexHull(points, randomSearch) {\n var n = points.length\n if(n === 0) {\n throw new Error(\"Must have at least d+1 points\")\n }\n var d = points[0].length\n if(n <= d) {\n throw new Error(\"Must input at least d+1 points\")\n }\n\n //FIXME: This could be degenerate, but need to select d+1 non-coplanar points to bootstrap process\n var initialSimplex = points.slice(0, d+1)\n\n //Make sure initial simplex is positively oriented\n var o = orient.apply(void 0, initialSimplex)\n if(o === 0) {\n throw new Error(\"Input not in general position\")\n }\n var initialCoords = new Array(d+1)\n for(var i=0; i<=d; ++i) {\n initialCoords[i] = i\n }\n if(o < 0) {\n initialCoords[0] = 1\n initialCoords[1] = 0\n }\n\n //Create initial topological index, glue pointers together (kind of messy)\n var initialCell = new Simplex(initialCoords, new Array(d+1), false)\n var boundary = initialCell.adjacent\n var list = new Array(d+2)\n for(var i=0; i<=d; ++i) {\n var verts = initialCoords.slice()\n for(var j=0; j<=d; ++j) {\n if(j === i) {\n verts[j] = -1\n }\n }\n var t = verts[0]\n verts[0] = verts[1]\n verts[1] = t\n var cell = new Simplex(verts, new Array(d+1), true)\n boundary[i] = cell\n list[i] = cell\n }\n list[d+1] = initialCell\n for(var i=0; i<=d; ++i) {\n var verts = boundary[i].vertices\n var adj = boundary[i].adjacent\n for(var j=0; j<=d; ++j) {\n var v = verts[j]\n if(v < 0) {\n adj[j] = initialCell\n continue\n }\n for(var k=0; k<=d; ++k) {\n if(boundary[k].vertices.indexOf(v) < 0) {\n adj[j] = boundary[k]\n }\n }\n }\n }\n\n //Initialize triangles\n var triangles = new Triangulation(d, initialSimplex, list)\n\n //Insert remaining points\n var useRandom = !!randomSearch\n for(var i=d+1; i 0) {\n for (var k = 0; k < 24; ++k) {\n buffer.push(buffer[buffer.length - 12])\n }\n vertexCount += 2\n hadGap = true\n }\n\n continue fill_loop\n }\n bounds[0][j] = Math.min(bounds[0][j], a[j], b[j])\n bounds[1][j] = Math.max(bounds[1][j], a[j], b[j])\n }\n\n var acolor, bcolor\n if (Array.isArray(colors[0])) {\n acolor = (colors.length > i - 1) ? colors[i - 1] : // using index value\n (colors.length > 0) ? colors[colors.length - 1] : // using last item\n [0, 0, 0, 1]; // using black\n\n bcolor = (colors.length > i) ? colors[i] : // using index value\n (colors.length > 0) ? colors[colors.length - 1] : // using last item\n [0, 0, 0, 1]; // using black\n } else {\n acolor = bcolor = colors\n }\n\n if (acolor.length === 3) {\n acolor = [acolor[0], acolor[1], acolor[2], 1]\n }\n if (bcolor.length === 3) {\n bcolor = [bcolor[0], bcolor[1], bcolor[2], 1]\n }\n\n if(!this.hasAlpha && acolor[3] < 1) this.hasAlpha = true\n\n var w0\n if (Array.isArray(lineWidth)) {\n w0 = (lineWidth.length > i - 1) ? lineWidth[i - 1] : // using index value\n (lineWidth.length > 0) ? lineWidth[lineWidth.length - 1] : // using last item\n [0, 0, 0, 1]; // using black\n } else {\n w0 = lineWidth\n }\n\n var t0 = arcLength\n arcLength += distance(a, b)\n\n if (hadGap) {\n for (j = 0; j < 2; ++j) {\n buffer.push(\n a[0], a[1], a[2], b[0], b[1], b[2], t0, w0, acolor[0], acolor[1], acolor[2], acolor[3])\n }\n vertexCount += 2\n hadGap = false\n }\n\n buffer.push(\n a[0], a[1], a[2], b[0], b[1], b[2], t0, w0, acolor[0], acolor[1], acolor[2], acolor[3],\n a[0], a[1], a[2], b[0], b[1], b[2], t0, -w0, acolor[0], acolor[1], acolor[2], acolor[3],\n b[0], b[1], b[2], a[0], a[1], a[2], arcLength, -w0, bcolor[0], bcolor[1], bcolor[2], bcolor[3],\n b[0], b[1], b[2], a[0], a[1], a[2], arcLength, w0, bcolor[0], bcolor[1], bcolor[2], bcolor[3])\n\n vertexCount += 4\n }\n }\n this.buffer.update(buffer)\n\n arcLengthArray.push(arcLength)\n pointArray.push(positions[positions.length - 1].slice())\n\n this.bounds = bounds\n\n this.vertexCount = vertexCount\n\n this.points = pointArray\n this.arcLength = arcLengthArray\n\n if ('dashes' in options) {\n var dashArray = options.dashes\n\n // Calculate prefix sum\n var prefixSum = dashArray.slice()\n prefixSum.unshift(0)\n for (i = 1; i < prefixSum.length; ++i) {\n prefixSum[i] = prefixSum[i - 1] + prefixSum[i]\n }\n\n var dashTexture = ndarray(new Array(256 * 4), [256, 1, 4])\n for (i = 0; i < 256; ++i) {\n for (j = 0; j < 4; ++j) {\n dashTexture.set(i, 0, j, 0)\n }\n if (bsearch.le(prefixSum, prefixSum[prefixSum.length - 1] * i / 255.0) & 1) {\n dashTexture.set(i, 0, 0, 0)\n } else {\n dashTexture.set(i, 0, 0, 255)\n }\n }\n\n this.texture.setPixels(dashTexture)\n }\n}\n\nproto.dispose = function () {\n this.shader.dispose()\n this.vao.dispose()\n this.buffer.dispose()\n}\n\nproto.pick = function (selection) {\n if (!selection) {\n return null\n }\n if (selection.id !== this.pickId) {\n return null\n }\n var tau = unpackFloat(\n selection.value[0],\n selection.value[1],\n selection.value[2],\n 0)\n var index = bsearch.le(this.arcLength, tau)\n if (index < 0) {\n return null\n }\n if (index === this.arcLength.length - 1) {\n return new PickResult(\n this.arcLength[this.arcLength.length - 1],\n this.points[this.points.length - 1].slice(),\n index)\n }\n var a = this.points[index]\n var b = this.points[Math.min(index + 1, this.points.length - 1)]\n var t = (tau - this.arcLength[index]) / (this.arcLength[index + 1] - this.arcLength[index])\n var ti = 1.0 - t\n var x = [0, 0, 0]\n for (var i = 0; i < 3; ++i) {\n x[i] = ti * a[i] + t * b[i]\n }\n var dataIndex = Math.min((t < 0.5) ? index : (index + 1), this.points.length - 1)\n return new PickResult(\n tau,\n x,\n dataIndex,\n this.points[dataIndex])\n}\n\nfunction createLinePlot (options) {\n var gl = options.gl || (options.scene && options.scene.gl)\n\n var shader = createShader(gl)\n shader.attributes.position.location = 0\n shader.attributes.nextPosition.location = 1\n shader.attributes.arcLength.location = 2\n shader.attributes.lineWidth.location = 3\n shader.attributes.color.location = 4\n\n var pickShader = createPickShader(gl)\n pickShader.attributes.position.location = 0\n pickShader.attributes.nextPosition.location = 1\n pickShader.attributes.arcLength.location = 2\n pickShader.attributes.lineWidth.location = 3\n pickShader.attributes.color.location = 4\n\n var buffer = createBuffer(gl)\n var vao = createVAO(gl, [\n {\n 'buffer': buffer,\n 'size': 3,\n 'offset': 0,\n 'stride': 48\n },\n {\n 'buffer': buffer,\n 'size': 3,\n 'offset': 12,\n 'stride': 48\n },\n {\n 'buffer': buffer,\n 'size': 1,\n 'offset': 24,\n 'stride': 48\n },\n {\n 'buffer': buffer,\n 'size': 1,\n 'offset': 28,\n 'stride': 48\n },\n {\n 'buffer': buffer,\n 'size': 4,\n 'offset': 32,\n 'stride': 48\n }\n ])\n\n // Create texture for dash pattern\n var defaultTexture = ndarray(new Array(256 * 4), [256, 1, 4])\n for (var i = 0; i < 256 * 4; ++i) {\n defaultTexture.data[i] = 255\n }\n var texture = createTexture(gl, defaultTexture)\n texture.wrap = gl.REPEAT\n\n var linePlot = new LinePlot(gl, shader, pickShader, buffer, vao, texture)\n linePlot.update(options)\n return linePlot\n}\n\n\n/***/ }),\n\n/***/ \"0054\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar colorscaleCalc = __webpack_require__(\"3aa8\");\n\n\n// Compute auto-z and autocolorscale if applicable\nmodule.exports = function calc(gd, trace) {\n if(trace.surfacecolor) {\n colorscaleCalc(gd, trace, {\n vals: trace.surfacecolor,\n containerStr: '',\n cLetter: 'c'\n });\n } else {\n colorscaleCalc(gd, trace, {\n vals: trace.z,\n containerStr: '',\n cLetter: 'c'\n });\n }\n};\n\n\n/***/ }),\n\n/***/ \"0082\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar NOTEDATA = [];\n\n/**\n * notifier\n * @param {String} text The person's user name\n * @param {Number} [delay=1000] The delay time in milliseconds\n * or 'long' which provides 2000 ms delay time.\n * @return {undefined} this function does not return a value\n */\nmodule.exports = function(text, displayLength) {\n if(NOTEDATA.indexOf(text) !== -1) return;\n\n NOTEDATA.push(text);\n\n var ts = 1000;\n if(isNumeric(displayLength)) ts = displayLength;\n else if(displayLength === 'long') ts = 3000;\n\n var notifierContainer = d3.select('body')\n .selectAll('.plotly-notifier')\n .data([0]);\n notifierContainer.enter()\n .append('div')\n .classed('plotly-notifier', true);\n\n var notes = notifierContainer.selectAll('.notifier-note').data(NOTEDATA);\n\n function killNote(transition) {\n transition\n .duration(700)\n .style('opacity', 0)\n .each('end', function(thisText) {\n var thisIndex = NOTEDATA.indexOf(thisText);\n if(thisIndex !== -1) NOTEDATA.splice(thisIndex, 1);\n d3.select(this).remove();\n });\n }\n\n notes.enter().append('div')\n .classed('notifier-note', true)\n .style('opacity', 0)\n .each(function(thisText) {\n var note = d3.select(this);\n\n note.append('button')\n .classed('notifier-close', true)\n .html('×')\n .on('click', function() {\n note.transition().call(killNote);\n });\n\n var p = note.append('p');\n var lines = thisText.split(//g);\n for(var i = 0; i < lines.length; i++) {\n if(i) p.append('br');\n p.append('span').text(lines[i]);\n }\n\n if(displayLength === 'stick') {\n note.transition()\n .duration(350)\n .style('opacity', 1);\n } else {\n note.transition()\n .duration(700)\n .style('opacity', 1)\n .transition()\n .delay(ts)\n .call(killNote);\n }\n });\n};\n\n\n/***/ }),\n\n/***/ \"00bd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar LINKEDFILLS = {tonextx: 1, tonexty: 1, tonext: 1};\n\nmodule.exports = function linkTraces(gd, plotinfo, cdscatter) {\n var trace, i, group, prevtrace, groupIndex;\n\n // first sort traces to keep stacks & filled-together groups together\n var groupIndices = {};\n var needsSort = false;\n var prevGroupIndex = -1;\n var nextGroupIndex = 0;\n var prevUnstackedGroupIndex = -1;\n for(i = 0; i < cdscatter.length; i++) {\n trace = cdscatter[i][0].trace;\n group = trace.stackgroup || '';\n if(group) {\n if(group in groupIndices) {\n groupIndex = groupIndices[group];\n } else {\n groupIndex = groupIndices[group] = nextGroupIndex;\n nextGroupIndex++;\n }\n } else if(trace.fill in LINKEDFILLS && prevUnstackedGroupIndex >= 0) {\n groupIndex = prevUnstackedGroupIndex;\n } else {\n groupIndex = prevUnstackedGroupIndex = nextGroupIndex;\n nextGroupIndex++;\n }\n\n if(groupIndex < prevGroupIndex) needsSort = true;\n trace._groupIndex = prevGroupIndex = groupIndex;\n }\n\n var cdscatterSorted = cdscatter.slice();\n if(needsSort) {\n cdscatterSorted.sort(function(a, b) {\n var traceA = a[0].trace;\n var traceB = b[0].trace;\n return (traceA._groupIndex - traceB._groupIndex) ||\n (traceA.index - traceB.index);\n });\n }\n\n // now link traces to each other\n var prevtraces = {};\n for(i = 0; i < cdscatterSorted.length; i++) {\n trace = cdscatterSorted[i][0].trace;\n group = trace.stackgroup || '';\n\n // Note: The check which ensures all cdscatter here are for the same axis and\n // are either cartesian or scatterternary has been removed. This code assumes\n // the passed scattertraces have been filtered to the proper plot types and\n // the proper subplots.\n if(trace.visible === true) {\n trace._nexttrace = null;\n\n if(trace.fill in LINKEDFILLS) {\n prevtrace = prevtraces[group];\n trace._prevtrace = prevtrace || null;\n\n if(prevtrace) {\n prevtrace._nexttrace = trace;\n }\n }\n\n trace._ownfill = (trace.fill && (\n trace.fill.substr(0, 6) === 'tozero' ||\n trace.fill === 'toself' ||\n (trace.fill.substr(0, 2) === 'to' && !trace._prevtrace)\n ));\n\n prevtraces[group] = trace;\n } else {\n trace._prevtrace = trace._nexttrace = trace._ownfill = null;\n }\n }\n\n return cdscatterSorted;\n};\n\n\n/***/ }),\n\n/***/ \"00fe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n moduleType: 'trace',\n name: 'ohlc',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['cartesian', 'svg', 'showLegend'],\n meta: {\n \n },\n\n attributes: __webpack_require__(\"6657\"),\n supplyDefaults: __webpack_require__(\"9143\"),\n calc: __webpack_require__(\"bb14\").calc,\n plot: __webpack_require__(\"a56d\"),\n style: __webpack_require__(\"b0f1\"),\n hoverPoints: __webpack_require__(\"d945\").hoverPoints,\n selectPoints: __webpack_require__(\"ab9c\")\n};\n\n\n/***/ }),\n\n/***/ \"0103\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @module color-normalize */\r\n\r\n\r\n\r\nvar rgba = __webpack_require__(\"7f20\")\r\nvar clamp = __webpack_require__(\"53a5\")\r\nvar dtype = __webpack_require__(\"7831\")\r\n\r\nmodule.exports = function normalize (color, type) {\r\n\tif (type === 'float' || !type) type = 'array'\r\n\tif (type === 'uint') type = 'uint8'\r\n\tif (type === 'uint_clamped') type = 'uint8_clamped'\r\n\tvar Ctor = dtype(type)\r\n\tvar output = new Ctor(4)\r\n\r\n\tvar normalize = type !== 'uint8' && type !== 'uint8_clamped'\r\n\r\n\t// attempt to parse non-array arguments\r\n\tif (!color.length || typeof color === 'string') {\r\n\t\tcolor = rgba(color)\r\n\t\tcolor[0] /= 255\r\n\t\tcolor[1] /= 255\r\n\t\tcolor[2] /= 255\r\n\t}\r\n\r\n\t// 0, 1 are possible contradictory values for Arrays:\r\n\t// [1,1,1] input gives [1,1,1] output instead of [1/255,1/255,1/255], which may be collision if input is meant to be uint.\r\n\t// converting [1,1,1] to [1/255,1/255,1/255] in case of float input gives larger mistake since [1,1,1] float is frequent edge value, whereas [0,1,1], [1,1,1] etc. uint inputs are relatively rare\r\n\tif (isInt(color)) {\r\n\t\toutput[0] = color[0]\r\n\t\toutput[1] = color[1]\r\n\t\toutput[2] = color[2]\r\n\t\toutput[3] = color[3] != null ? color[3] : 255\r\n\r\n\t\tif (normalize) {\r\n\t\t\toutput[0] /= 255\r\n\t\t\toutput[1] /= 255\r\n\t\t\toutput[2] /= 255\r\n\t\t\toutput[3] /= 255\r\n\t\t}\r\n\r\n\t\treturn output\r\n\t}\r\n\r\n\tif (!normalize) {\r\n\t\toutput[0] = clamp(Math.floor(color[0] * 255), 0, 255)\r\n\t\toutput[1] = clamp(Math.floor(color[1] * 255), 0, 255)\r\n\t\toutput[2] = clamp(Math.floor(color[2] * 255), 0, 255)\r\n\t\toutput[3] = color[3] == null ? 255 : clamp(Math.floor(color[3] * 255), 0, 255)\r\n\t} else {\r\n\t\toutput[0] = color[0]\r\n\t\toutput[1] = color[1]\r\n\t\toutput[2] = color[2]\r\n\t\toutput[3] = color[3] != null ? color[3] : 1\r\n\t}\r\n\r\n\treturn output\r\n}\r\n\r\nfunction isInt(color) {\r\n\tif (color instanceof Uint8Array || color instanceof Uint8ClampedArray) return true\r\n\r\n\tif (Array.isArray(color) &&\r\n\t\t(color[0] > 1 || color[0] === 0) &&\r\n\t\t(color[1] > 1 || color[1] === 0) &&\r\n\t\t(color[2] > 1 || color[2] === 0) &&\r\n\t\t(!color[3] || color[3] > 1)\r\n\t) return true\r\n\r\n\treturn false\r\n}\r\n\n\n/***/ }),\n\n/***/ \"0119\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n//This code is extracted from ndarray-sort\n//It is inlined here as a temporary workaround\n\nmodule.exports = wrapper;\n\nvar INSERT_SORT_CUTOFF = 32\n\nfunction wrapper(data, n0) {\n if (n0 <= 4*INSERT_SORT_CUTOFF) {\n insertionSort(0, n0 - 1, data);\n } else {\n quickSort(0, n0 - 1, data);\n }\n}\n\nfunction insertionSort(left, right, data) {\n var ptr = 2*(left+1)\n for(var i=left+1; i<=right; ++i) {\n var a = data[ptr++]\n var b = data[ptr++]\n var j = i\n var jptr = ptr-2\n while(j-- > left) {\n var x = data[jptr-2]\n var y = data[jptr-1]\n if(x < a) {\n break\n } else if(x === a && y < b) {\n break\n }\n data[jptr] = x\n data[jptr+1] = y\n jptr -= 2\n }\n data[jptr] = a\n data[jptr+1] = b\n }\n}\n\nfunction swap(i, j, data) {\n i *= 2\n j *= 2\n var x = data[i]\n var y = data[i+1]\n data[i] = data[j]\n data[i+1] = data[j+1]\n data[j] = x\n data[j+1] = y\n}\n\nfunction move(i, j, data) {\n i *= 2\n j *= 2\n data[i] = data[j]\n data[i+1] = data[j+1]\n}\n\nfunction rotate(i, j, k, data) {\n i *= 2\n j *= 2\n k *= 2\n var x = data[i]\n var y = data[i+1]\n data[i] = data[j]\n data[i+1] = data[j+1]\n data[j] = data[k]\n data[j+1] = data[k+1]\n data[k] = x\n data[k+1] = y\n}\n\nfunction shufflePivot(i, j, px, py, data) {\n i *= 2\n j *= 2\n data[i] = data[j]\n data[j] = px\n data[i+1] = data[j+1]\n data[j+1] = py\n}\n\nfunction compare(i, j, data) {\n i *= 2\n j *= 2\n var x = data[i],\n y = data[j]\n if(x < y) {\n return false\n } else if(x === y) {\n return data[i+1] > data[j+1]\n }\n return true\n}\n\nfunction comparePivot(i, y, b, data) {\n i *= 2\n var x = data[i]\n if(x < y) {\n return true\n } else if(x === y) {\n return data[i+1] < b\n }\n return false\n}\n\nfunction quickSort(left, right, data) {\n var sixth = (right - left + 1) / 6 | 0, \n index1 = left + sixth, \n index5 = right - sixth, \n index3 = left + right >> 1, \n index2 = index3 - sixth, \n index4 = index3 + sixth, \n el1 = index1, \n el2 = index2, \n el3 = index3, \n el4 = index4, \n el5 = index5, \n less = left + 1, \n great = right - 1, \n tmp = 0\n if(compare(el1, el2, data)) {\n tmp = el1\n el1 = el2\n el2 = tmp\n }\n if(compare(el4, el5, data)) {\n tmp = el4\n el4 = el5\n el5 = tmp\n }\n if(compare(el1, el3, data)) {\n tmp = el1\n el1 = el3\n el3 = tmp\n }\n if(compare(el2, el3, data)) {\n tmp = el2\n el2 = el3\n el3 = tmp\n }\n if(compare(el1, el4, data)) {\n tmp = el1\n el1 = el4\n el4 = tmp\n }\n if(compare(el3, el4, data)) {\n tmp = el3\n el3 = el4\n el4 = tmp\n }\n if(compare(el2, el5, data)) {\n tmp = el2\n el2 = el5\n el5 = tmp\n }\n if(compare(el2, el3, data)) {\n tmp = el2\n el2 = el3\n el3 = tmp\n }\n if(compare(el4, el5, data)) {\n tmp = el4\n el4 = el5\n el5 = tmp\n }\n\n var pivot1X = data[2*el2]\n var pivot1Y = data[2*el2+1]\n var pivot2X = data[2*el4]\n var pivot2Y = data[2*el4+1]\n\n var ptr0 = 2 * el1;\n var ptr2 = 2 * el3;\n var ptr4 = 2 * el5;\n var ptr5 = 2 * index1;\n var ptr6 = 2 * index3;\n var ptr7 = 2 * index5;\n for (var i1 = 0; i1 < 2; ++i1) {\n var x = data[ptr0+i1];\n var y = data[ptr2+i1];\n var z = data[ptr4+i1];\n data[ptr5+i1] = x;\n data[ptr6+i1] = y;\n data[ptr7+i1] = z;\n }\n\n move(index2, left, data)\n move(index4, right, data)\n for (var k = less; k <= great; ++k) {\n if (comparePivot(k, pivot1X, pivot1Y, data)) {\n if (k !== less) {\n swap(k, less, data)\n }\n ++less;\n } else {\n if (!comparePivot(k, pivot2X, pivot2Y, data)) {\n while (true) {\n if (!comparePivot(great, pivot2X, pivot2Y, data)) {\n if (--great < k) {\n break;\n }\n continue;\n } else {\n if (comparePivot(great, pivot1X, pivot1Y, data)) {\n rotate(k, less, great, data)\n ++less;\n --great;\n } else {\n swap(k, great, data)\n --great;\n }\n break;\n }\n }\n }\n }\n }\n shufflePivot(left, less-1, pivot1X, pivot1Y, data)\n shufflePivot(right, great+1, pivot2X, pivot2Y, data)\n if (less - 2 - left <= INSERT_SORT_CUTOFF) {\n insertionSort(left, less - 2, data);\n } else {\n quickSort(left, less - 2, data);\n }\n if (right - (great + 2) <= INSERT_SORT_CUTOFF) {\n insertionSort(great + 2, right, data);\n } else {\n quickSort(great + 2, right, data);\n }\n if (great - less <= INSERT_SORT_CUTOFF) {\n insertionSort(less, great, data);\n } else {\n quickSort(less, great, data);\n }\n}\n\n/***/ }),\n\n/***/ \"014c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nmodule.exports = {\n circle: '●',\n 'circle-open': '○',\n square: '■',\n 'square-open': '□',\n diamond: '◆',\n 'diamond-open': '◇',\n cross: '+',\n x: '❌'\n};\n\n\n/***/ }),\n\n/***/ \"019a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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/* eslint block-scoped-var: 0*/\n/* eslint no-redeclare: 0*/\n\n\n\nmodule.exports = computeTickMarks;\n\nvar Axes = __webpack_require__(\"0642\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar AXES_NAMES = ['xaxis', 'yaxis', 'zaxis'];\n\nvar centerPoint = [0, 0, 0];\n\nfunction contourLevelsFromTicks(ticks) {\n var result = new Array(3);\n for(var i = 0; i < 3; ++i) {\n var tlevel = ticks[i];\n var clevel = new Array(tlevel.length);\n for(var j = 0; j < tlevel.length; ++j) {\n clevel[j] = tlevel[j].x;\n }\n result[i] = clevel;\n }\n return result;\n}\n\nfunction computeTickMarks(scene) {\n var axesOptions = scene.axesOptions;\n var glRange = scene.glplot.axesPixels;\n var sceneLayout = scene.fullSceneLayout;\n\n var ticks = [[], [], []];\n\n for(var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n\n axes._length = (glRange[i].hi - glRange[i].lo) *\n glRange[i].pixelsPerDataUnit / scene.dataScale[i];\n\n if(Math.abs(axes._length) === Infinity ||\n isNaN(axes._length)) {\n ticks[i] = [];\n } else {\n axes._input_range = axes.range.slice();\n axes.range[0] = (glRange[i].lo) / scene.dataScale[i];\n axes.range[1] = (glRange[i].hi) / scene.dataScale[i];\n axes._m = 1.0 / (scene.dataScale[i] * glRange[i].pixelsPerDataUnit);\n\n if(axes.range[0] === axes.range[1]) {\n axes.range[0] -= 1;\n axes.range[1] += 1;\n }\n // this is necessary to short-circuit the 'y' handling\n // in autotick part of calcTicks... Treating all axes as 'y' in this case\n // running the autoticks here, then setting\n // autoticks to false to get around the 2D handling in calcTicks.\n var tickModeCached = axes.tickmode;\n if(axes.tickmode === 'auto') {\n axes.tickmode = 'linear';\n var nticks = axes.nticks || Lib.constrain((axes._length / 40), 4, 9);\n Axes.autoTicks(axes, Math.abs(axes.range[1] - axes.range[0]) / nticks);\n }\n var dataTicks = Axes.calcTicks(axes);\n for(var j = 0; j < dataTicks.length; ++j) {\n dataTicks[j].x = dataTicks[j].x * scene.dataScale[i];\n\n if(axes.type === 'date') {\n dataTicks[j].text =\n dataTicks[j].text.replace(/\\/g, ' ');\n }\n }\n ticks[i] = dataTicks;\n\n\n axes.tickmode = tickModeCached;\n }\n }\n\n axesOptions.ticks = ticks;\n\n // Calculate tick lengths dynamically\n for(var i = 0; i < 3; ++i) {\n centerPoint[i] = 0.5 * (scene.glplot.bounds[0][i] + scene.glplot.bounds[1][i]);\n for(var j = 0; j < 2; ++j) {\n axesOptions.bounds[j][i] = scene.glplot.bounds[j][i];\n }\n }\n\n scene.contourLevels = contourLevelsFromTicks(ticks);\n}\n\n\n/***/ }),\n\n/***/ \"01db\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"b964\");\n\n\n/***/ }),\n\n/***/ \"0230\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\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/* http://keith-wood.name/calendars.html\n Calendars for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar assign = __webpack_require__(\"320c\");\n\n\nfunction Calendars() {\n this.regionalOptions = [];\n this.regionalOptions[''] = {\n invalidCalendar: 'Calendar {0} not found',\n invalidDate: 'Invalid {0} date',\n invalidMonth: 'Invalid {0} month',\n invalidYear: 'Invalid {0} year',\n differentCalendars: 'Cannot mix {0} and {1} dates'\n };\n this.local = this.regionalOptions[''];\n this.calendars = {};\n this._localCals = {};\n}\n\n/** Create the calendars plugin.\n

Provides support for various world calendars in a consistent manner.

\n @class Calendars\n @example _exports.instance('julian').newDate(2014, 12, 25) */\nassign(Calendars.prototype, {\n\n /** Obtain a calendar implementation and localisation.\n @memberof Calendars\n @param [name='gregorian'] {string} The name of the calendar, e.g. 'gregorian', 'persian', 'islamic'.\n @param [language=''] {string} The language code to use for localisation (default is English).\n @return {Calendar} The calendar and localisation.\n @throws Error if calendar not found. */\n instance: function(name, language) {\n name = (name || 'gregorian').toLowerCase();\n language = language || '';\n var cal = this._localCals[name + '-' + language];\n if (!cal && this.calendars[name]) {\n cal = new this.calendars[name](language);\n this._localCals[name + '-' + language] = cal;\n }\n if (!cal) {\n throw (this.local.invalidCalendar || this.regionalOptions[''].invalidCalendar).\n replace(/\\{0\\}/, name);\n }\n return cal;\n },\n\n /** Create a new date - for today if no other parameters given.\n @memberof Calendars\n @param year {CDate|number} The date to copy or the year for the date.\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @param [calendar='gregorian'] {BaseCalendar|string} The underlying calendar or the name of the calendar.\n @param [language=''] {string} The language to use for localisation (default English).\n @return {CDate} The new date.\n @throws Error if an invalid date. */\n newDate: function(year, month, day, calendar, language) {\n calendar = (year != null && year.year ? year.calendar() : (typeof calendar === 'string' ?\n this.instance(calendar, language) : calendar)) || this.instance();\n return calendar.newDate(year, month, day);\n },\n \n /** A simple digit substitution function for localising numbers via the Calendar digits option.\n @member Calendars\n @param digits {string[]} The substitute digits, for 0 through 9.\n @return {function} The substitution function. */\n substituteDigits: function(digits) {\n return function(value) {\n return (value + '').replace(/[0-9]/g, function(digit) {\n return digits[digit];\n });\n }\n },\n \n /** Digit substitution function for localising Chinese style numbers via the Calendar digits option.\n @member Calendars\n @param digits {string[]} The substitute digits, for 0 through 9.\n @param powers {string[]} The characters denoting powers of 10, i.e. 1, 10, 100, 1000.\n @return {function} The substitution function. */\n substituteChineseDigits: function(digits, powers) {\n return function(value) {\n var localNumber = '';\n var power = 0;\n while (value > 0) {\n var units = value % 10;\n localNumber = (units === 0 ? '' : digits[units] + powers[power]) + localNumber;\n power++;\n value = Math.floor(value / 10);\n }\n if (localNumber.indexOf(digits[1] + powers[1]) === 0) {\n localNumber = localNumber.substr(1);\n }\n return localNumber || digits[0];\n }\n }\n});\n\n/** Generic date, based on a particular calendar.\n @class CDate\n @param calendar {BaseCalendar} The underlying calendar implementation.\n @param year {number} The year for this date.\n @param month {number} The month for this date.\n @param day {number} The day for this date.\n @return {CDate} The date object.\n @throws Error if an invalid date. */\nfunction CDate(calendar, year, month, day) {\n this._calendar = calendar;\n this._year = year;\n this._month = month;\n this._day = day;\n if (this._calendar._validateLevel === 0 &&\n !this._calendar.isValid(this._year, this._month, this._day)) {\n throw (_exports.local.invalidDate || _exports.regionalOptions[''].invalidDate).\n replace(/\\{0\\}/, this._calendar.local.name);\n }\n}\n\n/** Pad a numeric value with leading zeroes.\n @private\n @param value {number} The number to format.\n @param length {number} The minimum length.\n @return {string} The formatted number. */\nfunction pad(value, length) {\n value = '' + value;\n return '000000'.substring(0, length - value.length) + value;\n}\n\nassign(CDate.prototype, {\n\n /** Create a new date.\n @memberof CDate\n @param [year] {CDate|number} The date to copy or the year for the date (default this date).\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @return {CDate} The new date.\n @throws Error if an invalid date. */\n newDate: function(year, month, day) {\n return this._calendar.newDate((year == null ? this : year), month, day);\n },\n\n /** Set or retrieve the year for this date.\n @memberof CDate\n @param [year] {number} The year for the date.\n @return {number|CDate} The date's year (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n year: function(year) {\n return (arguments.length === 0 ? this._year : this.set(year, 'y'));\n },\n\n /** Set or retrieve the month for this date.\n @memberof CDate\n @param [month] {number} The month for the date.\n @return {number|CDate} The date's month (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n month: function(month) {\n return (arguments.length === 0 ? this._month : this.set(month, 'm'));\n },\n\n /** Set or retrieve the day for this date.\n @memberof CDate\n @param [day] {number} The day for the date.\n @return {number|CData} The date's day (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n day: function(day) {\n return (arguments.length === 0 ? this._day : this.set(day, 'd'));\n },\n\n /** Set new values for this date.\n @memberof CDate\n @param year {number} The year for the date.\n @param month {number} The month for the date.\n @param day {number} The day for the date.\n @return {CDate} The updated date.\n @throws Error if an invalid date. */\n date: function(year, month, day) {\n if (!this._calendar.isValid(year, month, day)) {\n throw (_exports.local.invalidDate || _exports.regionalOptions[''].invalidDate).\n replace(/\\{0\\}/, this._calendar.local.name);\n }\n this._year = year;\n this._month = month;\n this._day = day;\n return this;\n },\n\n /** Determine whether this date is in a leap year.\n @memberof CDate\n @return {boolean} true if this is a leap year, false if not. */\n leapYear: function() {\n return this._calendar.leapYear(this);\n },\n\n /** Retrieve the epoch designator for this date, e.g. BCE or CE.\n @memberof CDate\n @return {string} The current epoch. */\n epoch: function() {\n return this._calendar.epoch(this);\n },\n\n /** Format the year, if not a simple sequential number.\n @memberof CDate\n @return {string} The formatted year. */\n formatYear: function() {\n return this._calendar.formatYear(this);\n },\n\n /** Retrieve the month of the year for this date,\n i.e. the month's position within a numbered year.\n @memberof CDate\n @return {number} The month of the year: minMonth to months per year. */\n monthOfYear: function() {\n return this._calendar.monthOfYear(this);\n },\n\n /** Retrieve the week of the year for this date.\n @memberof CDate\n @return {number} The week of the year: 1 to weeks per year. */\n weekOfYear: function() {\n return this._calendar.weekOfYear(this);\n },\n\n /** Retrieve the number of days in the year for this date.\n @memberof CDate\n @return {number} The number of days in this year. */\n daysInYear: function() {\n return this._calendar.daysInYear(this);\n },\n\n /** Retrieve the day of the year for this date.\n @memberof CDate\n @return {number} The day of the year: 1 to days per year. */\n dayOfYear: function() {\n return this._calendar.dayOfYear(this);\n },\n\n /** Retrieve the number of days in the month for this date.\n @memberof CDate\n @return {number} The number of days. */\n daysInMonth: function() {\n return this._calendar.daysInMonth(this);\n },\n\n /** Retrieve the day of the week for this date.\n @memberof CDate\n @return {number} The day of the week: 0 to number of days - 1. */\n dayOfWeek: function() {\n return this._calendar.dayOfWeek(this);\n },\n\n /** Determine whether this date is a week day.\n @memberof CDate\n @return {boolean} true if a week day, false if not. */\n weekDay: function() {\n return this._calendar.weekDay(this);\n },\n\n /** Retrieve additional information about this date.\n @memberof CDate\n @return {object} Additional information - contents depends on calendar. */\n extraInfo: function() {\n return this._calendar.extraInfo(this);\n },\n\n /** Add period(s) to a date.\n @memberof CDate\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n add: function(offset, period) {\n return this._calendar.add(this, offset, period);\n },\n\n /** Set a portion of the date.\n @memberof CDate\n @param value {number} The new value for the period.\n @param period {string} One of 'y' for year, 'm' for month, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if not a valid date. */\n set: function(value, period) {\n return this._calendar.set(this, value, period);\n },\n\n /** Compare this date to another date.\n @memberof CDate\n @param date {CDate} The other date.\n @return {number} -1 if this date is before the other date,\n 0 if they are equal, or +1 if this date is after the other date. */\n compareTo: function(date) {\n if (this._calendar.name !== date._calendar.name) {\n throw (_exports.local.differentCalendars || _exports.regionalOptions[''].differentCalendars).\n replace(/\\{0\\}/, this._calendar.local.name).replace(/\\{1\\}/, date._calendar.local.name);\n }\n var c = (this._year !== date._year ? this._year - date._year :\n this._month !== date._month ? this.monthOfYear() - date.monthOfYear() :\n this._day - date._day);\n return (c === 0 ? 0 : (c < 0 ? -1 : +1));\n },\n\n /** Retrieve the calendar backing this date.\n @memberof CDate\n @return {BaseCalendar} The calendar implementation. */\n calendar: function() {\n return this._calendar;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof CDate\n @return {number} The equivalent Julian date. */\n toJD: function() {\n return this._calendar.toJD(this);\n },\n\n /** Create a new date from a Julian date.\n @memberof CDate\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n return this._calendar.fromJD(jd);\n },\n\n /** Convert this date to a standard (Gregorian) JavaScript Date.\n @memberof CDate\n @return {Date} The equivalent JavaScript date. */\n toJSDate: function() {\n return this._calendar.toJSDate(this);\n },\n\n /** Create a new date from a standard (Gregorian) JavaScript Date.\n @memberof CDate\n @param jsd {Date} The JavaScript date to convert.\n @return {CDate} The equivalent date. */\n fromJSDate: function(jsd) {\n return this._calendar.fromJSDate(jsd);\n },\n\n /** Convert to a string for display.\n @memberof CDate\n @return {string} This date as a string. */\n toString: function() {\n return (this.year() < 0 ? '-' : '') + pad(Math.abs(this.year()), 4) +\n '-' + pad(this.month(), 2) + '-' + pad(this.day(), 2);\n }\n});\n\n/** Basic functionality for all calendars.\n Other calendars should extend this:\n
OtherCalendar.prototype = new BaseCalendar;
\n @class BaseCalendar */\nfunction BaseCalendar() {\n this.shortYearCutoff = '+10';\n}\n\nassign(BaseCalendar.prototype, {\n _validateLevel: 0, // \"Stack\" to turn validation on/off\n\n /** Create a new date within this calendar - today if no parameters given.\n @memberof BaseCalendar\n @param year {CDate|number} The date to duplicate or the year for the date.\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @return {CDate} The new date.\n @throws Error if not a valid date or a different calendar used. */\n newDate: function(year, month, day) {\n if (year == null) {\n return this.today();\n }\n if (year.year) {\n this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n day = year.day();\n month = year.month();\n year = year.year();\n }\n return new CDate(this, year, month, day);\n },\n\n /** Create a new date for today.\n @memberof BaseCalendar\n @return {CDate} Today's date. */\n today: function() {\n return this.fromJSDate(new Date());\n },\n\n /** Retrieve the epoch designator for this date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {string} The current epoch.\n @throws Error if an invalid year or a different calendar used. */\n epoch: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n return (date.year() < 0 ? this.local.epochs[0] : this.local.epochs[1]);\n },\n\n /** Format the year, if not a simple sequential number\n @memberof BaseCalendar\n @param year {CDate|number} The date to format or the year to format.\n @return {string} The formatted year.\n @throws Error if an invalid year or a different calendar used. */\n formatYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n return (date.year() < 0 ? '-' : '') + pad(Math.abs(date.year()), 4)\n },\n\n /** Retrieve the number of months in a year.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n return 12;\n },\n\n /** Calculate the month's ordinal position within the year -\n for those calendars that don't start at month 1!\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param month {number} The month to examine.\n @return {number} The ordinal position, starting from minMonth.\n @throws Error if an invalid year/month or a different calendar used. */\n monthOfYear: function(year, month) {\n var date = this._validate(year, month, this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[''].invalidMonth);\n return (date.month() + this.monthsInYear(date) - this.firstMonth) %\n this.monthsInYear(date) + this.minMonth;\n },\n\n /** Calculate actual month from ordinal position, starting from minMonth.\n @memberof BaseCalendar\n @param year {number} The year to examine.\n @param ord {number} The month's ordinal position.\n @return {number} The month's number.\n @throws Error if an invalid year/month. */\n fromMonthOfYear: function(year, ord) {\n var m = (ord + this.firstMonth - 2 * this.minMonth) %\n this.monthsInYear(year) + this.minMonth;\n this._validate(year, m, this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[''].invalidMonth);\n return m;\n },\n\n /** Retrieve the number of days in a year.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n return (this.leapYear(date) ? 366 : 365);\n },\n\n /** Retrieve the day of the year for a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The day of the year.\n @throws Error if an invalid date or a different calendar used. */\n dayOfYear: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return date.toJD() - this.newDate(date.year(),\n this.fromMonthOfYear(date.year(), this.minMonth), this.minDay).toJD() + 1;\n },\n\n /** Retrieve the number of days in a week.\n @memberof BaseCalendar\n @return {number} The number of days. */\n daysInWeek: function() {\n return 7;\n },\n\n /** Retrieve the day of the week for a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The day of the week: 0 to number of days - 1.\n @throws Error if an invalid date or a different calendar used. */\n dayOfWeek: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return (Math.floor(this.toJD(date)) + 2) % this.daysInWeek();\n },\n\n /** Retrieve additional information about a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {object} Additional information - contents depends on calendar.\n @throws Error if an invalid date or a different calendar used. */\n extraInfo: function(year, month, day) {\n this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return {};\n },\n\n /** Add period(s) to a date.\n Cater for no year zero.\n @memberof BaseCalendar\n @param date {CDate} The starting date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if a different calendar used. */\n add: function(date, offset, period) {\n this._validate(date, this.minMonth, this.minDay,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return this._correctAdd(date, this._add(date, offset, period), offset, period);\n },\n\n /** Add period(s) to a date.\n @memberof BaseCalendar\n @private\n @param date {CDate} The starting date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n _add: function(date, offset, period) {\n this._validateLevel++;\n if (period === 'd' || period === 'w') {\n var jd = date.toJD() + offset * (period === 'w' ? this.daysInWeek() : 1);\n var d = date.calendar().fromJD(jd);\n this._validateLevel--;\n return [d.year(), d.month(), d.day()];\n }\n try {\n var y = date.year() + (period === 'y' ? offset : 0);\n var m = date.monthOfYear() + (period === 'm' ? offset : 0);\n var d = date.day();// + (period === 'd' ? offset : 0) +\n //(period === 'w' ? offset * this.daysInWeek() : 0);\n var resyncYearMonth = function(calendar) {\n while (m < calendar.minMonth) {\n y--;\n m += calendar.monthsInYear(y);\n }\n var yearMonths = calendar.monthsInYear(y);\n while (m > yearMonths - 1 + calendar.minMonth) {\n y++;\n m -= yearMonths;\n yearMonths = calendar.monthsInYear(y);\n }\n };\n if (period === 'y') {\n if (date.month() !== this.fromMonthOfYear(y, m)) { // Hebrew\n m = this.newDate(y, date.month(), this.minDay).monthOfYear();\n }\n m = Math.min(m, this.monthsInYear(y));\n d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m)));\n }\n else if (period === 'm') {\n resyncYearMonth(this);\n d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m)));\n }\n var ymd = [y, this.fromMonthOfYear(y, m), d];\n this._validateLevel--;\n return ymd;\n }\n catch (e) {\n this._validateLevel--;\n throw e;\n }\n },\n\n /** Correct a candidate date after adding period(s) to a date.\n Handle no year zero if necessary.\n @memberof BaseCalendar\n @private\n @param date {CDate} The starting date.\n @param ymd {number[]} The added date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n _correctAdd: function(date, ymd, offset, period) {\n if (!this.hasYearZero && (period === 'y' || period === 'm')) {\n if (ymd[0] === 0 || // In year zero\n (date.year() > 0) !== (ymd[0] > 0)) { // Crossed year zero\n var adj = {y: [1, 1, 'y'], m: [1, this.monthsInYear(-1), 'm'],\n w: [this.daysInWeek(), this.daysInYear(-1), 'd'],\n d: [1, this.daysInYear(-1), 'd']}[period];\n var dir = (offset < 0 ? -1 : +1);\n ymd = this._add(date, offset * adj[0] + dir * adj[1], adj[2]);\n }\n }\n return date.date(ymd[0], ymd[1], ymd[2]);\n },\n\n /** Set a portion of the date.\n @memberof BaseCalendar\n @param date {CDate} The starting date.\n @param value {number} The new value for the period.\n @param period {string} One of 'y' for year, 'm' for month, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if an invalid date or a different calendar used. */\n set: function(date, value, period) {\n this._validate(date, this.minMonth, this.minDay,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n var y = (period === 'y' ? value : date.year());\n var m = (period === 'm' ? value : date.month());\n var d = (period === 'd' ? value : date.day());\n if (period === 'y' || period === 'm') {\n d = Math.min(d, this.daysInMonth(y, m));\n }\n return date.date(y, m, d);\n },\n\n /** Determine whether a date is valid for this calendar.\n @memberof BaseCalendar\n @param year {number} The year to examine.\n @param month {number} The month to examine.\n @param day {number} The day to examine.\n @return {boolean} true if a valid date, false if not. */\n isValid: function(year, month, day) {\n this._validateLevel++;\n var valid = (this.hasYearZero || year !== 0);\n if (valid) {\n var date = this.newDate(year, month, this.minDay);\n valid = (month >= this.minMonth && month - this.minMonth < this.monthsInYear(date)) &&\n (day >= this.minDay && day - this.minDay < this.daysInMonth(date));\n }\n this._validateLevel--;\n return valid;\n },\n\n /** Convert the date to a standard (Gregorian) JavaScript Date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {Date} The equivalent JavaScript date.\n @throws Error if an invalid date or a different calendar used. */\n toJSDate: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n return _exports.instance().fromJD(this.toJD(date)).toJSDate();\n },\n\n /** Convert the date from a standard (Gregorian) JavaScript Date.\n @memberof BaseCalendar\n @param jsd {Date} The JavaScript date.\n @return {CDate} The equivalent calendar date. */\n fromJSDate: function(jsd) {\n return this.fromJD(_exports.instance().fromJSDate(jsd).toJD());\n },\n\n /** Check that a candidate date is from the same calendar and is valid.\n @memberof BaseCalendar\n @private\n @param year {CDate|number} The date to validate or the year to validate.\n @param [month] {number} The month to validate.\n @param [day] {number} The day to validate.\n @param error {string} Rrror message if invalid.\n @throws Error if different calendars used or invalid date. */\n _validate: function(year, month, day, error) {\n if (year.year) {\n if (this._validateLevel === 0 && this.name !== year.calendar().name) {\n throw (_exports.local.differentCalendars || _exports.regionalOptions[''].differentCalendars).\n replace(/\\{0\\}/, this.local.name).replace(/\\{1\\}/, year.calendar().local.name);\n }\n return year;\n }\n try {\n this._validateLevel++;\n if (this._validateLevel === 1 && !this.isValid(year, month, day)) {\n throw error.replace(/\\{0\\}/, this.local.name);\n }\n var date = this.newDate(year, month, day);\n this._validateLevel--;\n return date;\n }\n catch (e) {\n this._validateLevel--;\n throw e;\n }\n }\n});\n\n/** Implementation of the Proleptic Gregorian Calendar.\n See http://en.wikipedia.org/wiki/Gregorian_calendar\n and http://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar.\n @class GregorianCalendar\n @augments BaseCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction GregorianCalendar(language) {\n this.local = this.regionalOptions[language] || this.regionalOptions[''];\n}\n\nGregorianCalendar.prototype = new BaseCalendar;\n\nassign(GregorianCalendar.prototype, {\n /** The calendar name.\n @memberof GregorianCalendar */\n name: 'Gregorian',\n /** Julian date of start of Gregorian epoch: 1 January 0001 CE.\n @memberof GregorianCalendar */\n jdEpoch: 1721425.5,\n /** Days per month in a common year.\n @memberof GregorianCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof GregorianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof GregorianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof GregorianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof GregorianCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof GregorianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Gregorian',\n epochs: ['BCE', 'CE'],\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n digits: null,\n dateFormat: 'mm/dd/yyyy',\n firstDay: 0,\n isRTL: false\n }\n },\n \n /** Determine whether this date is in a leap year.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear);\n var year = date.year() + (date.year() < 0 ? 1 : 0); // No year zero\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n },\n\n /** Determine the week of the year for a date - ISO 8601.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year, starting from 1.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n // Find Thursday of this week starting on Monday\n var checkDate = this.newDate(year, month, day);\n checkDate.add(4 - (checkDate.dayOfWeek() || 7), 'd');\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n\n /** Retrieve the number of days in a month.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[''].invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n if (year < 0) { year++; } // No year zero\n // Jean Meeus algorithm, \"Astronomical Algorithms\", 1991\n if (month < 3) {\n month += 12;\n year--;\n }\n var a = Math.floor(year / 100);\n var b = 2 - a + Math.floor(a / 4);\n return Math.floor(365.25 * (year + 4716)) +\n Math.floor(30.6001 * (month + 1)) + day + b - 1524.5;\n },\n\n /** Create a new date from a Julian date.\n @memberof GregorianCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n // Jean Meeus algorithm, \"Astronomical Algorithms\", 1991\n var z = Math.floor(jd + 0.5);\n var a = Math.floor((z - 1867216.25) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var day = b - d - Math.floor(e * 30.6001);\n var month = e - (e > 13.5 ? 13 : 1);\n var year = c - (month > 2.5 ? 4716 : 4715);\n if (year <= 0) { year--; } // No year zero\n return this.newDate(year, month, day);\n },\n\n /** Convert this date to a standard (Gregorian) JavaScript Date.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {Date} The equivalent JavaScript date.\n @throws Error if an invalid date or a different calendar used. */\n toJSDate: function(year, month, day) {\n var date = this._validate(year, month, day,\n _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate);\n var jsd = new Date(date.year(), date.month() - 1, date.day());\n jsd.setHours(0);\n jsd.setMinutes(0);\n jsd.setSeconds(0);\n jsd.setMilliseconds(0);\n // Hours may be non-zero on daylight saving cut-over:\n // > 12 when midnight changeover, but then cannot generate\n // midnight datetime, so jump to 1AM, otherwise reset.\n jsd.setHours(jsd.getHours() > 12 ? jsd.getHours() + 2 : 0);\n return jsd;\n },\n\n /** Create a new date from a standard (Gregorian) JavaScript Date.\n @memberof GregorianCalendar\n @param jsd {Date} The JavaScript date to convert.\n @return {CDate} The equivalent date. */\n fromJSDate: function(jsd) {\n return this.newDate(jsd.getFullYear(), jsd.getMonth() + 1, jsd.getDate());\n }\n});\n\n// Singleton manager\nvar _exports = module.exports = new Calendars();\n\n// Date template\n_exports.cdate = CDate;\n\n// Base calendar template\n_exports.baseCalendar = BaseCalendar;\n\n// Gregorian calendar implementation\n_exports.calendars.gregorian = GregorianCalendar;\n\n\n\n/***/ }),\n\n/***/ \"0248\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar warp = __webpack_require__(\"86d9\")\nvar invert = __webpack_require__(\"ba76\")\n\nmodule.exports = applyHomography\n\nfunction applyHomography(dest, src, Xi) {\n var n = src.dimension\n var X = invert([], Xi)\n warp(dest, src, function(out_c, inp_c) {\n for(var i=0; i fs * threshold) {\r\n\t\t\tvar emWidth = (kerningWidth - width) / fs\r\n\t\t\ttable[pair] = emWidth * 1000\r\n\t\t}\r\n\t}\r\n\r\n\treturn table\r\n}\r\n\r\n\r\nfunction createPairs (range) {\r\n\tvar pairs = []\r\n\r\n for (var i = range[0]; i <= range[1]; i++) {\r\n\t\tvar leftChar = String.fromCharCode(i)\r\n\t\tfor (var j = range[0]; j < range[1]; j++) {\r\n\t\t\tvar rightChar = String.fromCharCode(j)\r\n\t\t\tvar pair = leftChar + rightChar\r\n\r\n\t\t\tpairs.push(pair)\r\n\t\t}\r\n\t}\r\n\r\n\treturn pairs\r\n}\r\n\n\n/***/ }),\n\n/***/ \"02e4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar hover = __webpack_require__(\"98e7\");\nvar makeHoverPointText = __webpack_require__(\"efcd\").makeHoverPointText;\n\nfunction hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var stash = cd[0].t;\n var rArray = stash.r;\n var thetaArray = stash.theta;\n\n var scatterPointData = hover.hoverPoints(pointData, xval, yval, hovermode);\n if(!scatterPointData || scatterPointData[0].index === false) return;\n\n var newPointData = scatterPointData[0];\n\n if(newPointData.index === undefined) {\n return scatterPointData;\n }\n\n var subplot = pointData.subplot;\n var cdi = newPointData.cd[newPointData.index];\n var trace = newPointData.trace;\n\n // augment pointData with r/theta param\n cdi.r = rArray[newPointData.index];\n cdi.theta = thetaArray[newPointData.index];\n\n if(!subplot.isPtInside(cdi)) return;\n\n newPointData.xLabelVal = undefined;\n newPointData.yLabelVal = undefined;\n makeHoverPointText(cdi, trace, subplot, newPointData);\n\n return scatterPointData;\n}\n\nmodule.exports = {\n hoverPoints: hoverPoints\n};\n\n\n/***/ }),\n\n/***/ \"02ea\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Color = __webpack_require__(\"d115\");\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar baseAttrs = __webpack_require__(\"a876\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nfunction makeContourProjAttr(axLetter) {\n return {\n valType: 'boolean',\n \n dflt: false,\n \n };\n}\n\nfunction makeContourAttr(axLetter) {\n return {\n show: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n start: {\n valType: 'number',\n dflt: null,\n \n editType: 'plot',\n // impliedEdits: {'^autocontour': false},\n \n },\n end: {\n valType: 'number',\n dflt: null,\n \n editType: 'plot',\n // impliedEdits: {'^autocontour': false},\n \n },\n size: {\n valType: 'number',\n dflt: null,\n min: 0,\n \n editType: 'plot',\n // impliedEdits: {'^autocontour': false},\n \n },\n project: {\n x: makeContourProjAttr('x'),\n y: makeContourProjAttr('y'),\n z: makeContourProjAttr('z')\n },\n color: {\n valType: 'color',\n \n dflt: Color.defaultLine,\n \n },\n usecolormap: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n width: {\n valType: 'number',\n \n min: 1,\n max: 16,\n dflt: 2,\n \n },\n highlight: {\n valType: 'boolean',\n \n dflt: true,\n \n },\n highlightcolor: {\n valType: 'color',\n \n dflt: Color.defaultLine,\n \n },\n highlightwidth: {\n valType: 'number',\n \n min: 1,\n max: 16,\n dflt: 2,\n \n }\n };\n}\n\nvar attrs = module.exports = overrideAll(extendFlat({\n z: {\n valType: 'data_array',\n \n },\n x: {\n valType: 'data_array',\n \n },\n y: {\n valType: 'data_array',\n \n },\n\n text: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n \n },\n hovertext: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n \n },\n hovertemplate: hovertemplateAttrs(),\n\n connectgaps: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'calc',\n \n },\n\n surfacecolor: {\n valType: 'data_array',\n \n },\n},\n\ncolorScaleAttrs('', {\n colorAttr: 'z or surfacecolor',\n showScaleDflt: true,\n autoColorDflt: false,\n editTypeOverride: 'calc'\n}), {\n contours: {\n x: makeContourAttr('x'),\n y: makeContourAttr('y'),\n z: makeContourAttr('z')\n },\n hidesurface: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n\n lightposition: {\n x: {\n valType: 'number',\n \n min: -1e5,\n max: 1e5,\n dflt: 10,\n \n },\n y: {\n valType: 'number',\n \n min: -1e5,\n max: 1e5,\n dflt: 1e4,\n \n },\n z: {\n valType: 'number',\n \n min: -1e5,\n max: 1e5,\n dflt: 0,\n \n }\n },\n\n lighting: {\n ambient: {\n valType: 'number',\n \n min: 0.00,\n max: 1.0,\n dflt: 0.8,\n \n },\n diffuse: {\n valType: 'number',\n \n min: 0.00,\n max: 1.00,\n dflt: 0.8,\n \n },\n specular: {\n valType: 'number',\n \n min: 0.00,\n max: 2.00,\n dflt: 0.05,\n \n },\n roughness: {\n valType: 'number',\n \n min: 0.00,\n max: 1.00,\n dflt: 0.5,\n \n },\n fresnel: {\n valType: 'number',\n \n min: 0.00,\n max: 5.00,\n dflt: 0.2,\n \n }\n },\n\n opacity: {\n valType: 'number',\n \n min: 0,\n max: 1,\n dflt: 1,\n \n },\n\n _deprecated: {\n zauto: extendFlat({}, colorScaleAttrs.zauto, {\n \n }),\n zmin: extendFlat({}, colorScaleAttrs.zmin, {\n \n }),\n zmax: extendFlat({}, colorScaleAttrs.zmax, {\n \n })\n },\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false}),\n}), 'calc', 'nested');\n\nattrs.x.editType = attrs.y.editType = attrs.z.editType = 'calc+clearAxisTypes';\nattrs.transforms = undefined;\n\n\n/***/ }),\n\n/***/ \"030a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Plotly = __webpack_require__(\"c17d\");\n\n// traces\nPlotly.register([\n __webpack_require__(\"f725\"),\n __webpack_require__(\"b7e7\"),\n __webpack_require__(\"3eab\"),\n __webpack_require__(\"4fc7\"),\n __webpack_require__(\"90a6\"),\n __webpack_require__(\"b905\"),\n __webpack_require__(\"5cc5\"),\n __webpack_require__(\"664d\"),\n __webpack_require__(\"6578\"),\n __webpack_require__(\"3efe\"),\n __webpack_require__(\"6ca5\"),\n __webpack_require__(\"831f\"),\n\n __webpack_require__(\"4746\"),\n __webpack_require__(\"21dd\"),\n __webpack_require__(\"6d0a\"),\n __webpack_require__(\"f36e\"),\n\n __webpack_require__(\"a8b9\"),\n __webpack_require__(\"372f\"),\n __webpack_require__(\"f17e\"),\n __webpack_require__(\"6626\"),\n __webpack_require__(\"0eb8\"),\n __webpack_require__(\"f522\"),\n __webpack_require__(\"2781\"),\n\n __webpack_require__(\"388d\"),\n __webpack_require__(\"c80f\"),\n\n __webpack_require__(\"46c1\"),\n __webpack_require__(\"2f68\"),\n\n __webpack_require__(\"b7bb\"),\n __webpack_require__(\"f3ca\"),\n\n __webpack_require__(\"44d4\"),\n\n __webpack_require__(\"f366\"),\n\n __webpack_require__(\"01db\"),\n __webpack_require__(\"7016\"),\n __webpack_require__(\"d47b\"),\n\n __webpack_require__(\"f846\"),\n __webpack_require__(\"aa2c\"),\n\n __webpack_require__(\"82e4\"),\n\n __webpack_require__(\"f2a9\"),\n __webpack_require__(\"bd75\"),\n __webpack_require__(\"e2f4\"),\n\n __webpack_require__(\"dff2\"),\n __webpack_require__(\"75ac\"),\n\n __webpack_require__(\"1cfc\"),\n __webpack_require__(\"ff5b\"),\n __webpack_require__(\"2d12\")\n]);\n\n// transforms\n//\n// Please note that all *transform* methods are executed before\n// all *calcTransform* methods - which could possibly lead to\n// unexpected results when applying multiple transforms of different types\n// to a given trace.\n//\n// For more info, see:\n// https://github.com/plotly/plotly.js/pull/978#pullrequestreview-2403353\n//\nPlotly.register([\n __webpack_require__(\"2594\"),\n __webpack_require__(\"4b14\"),\n __webpack_require__(\"9633\"),\n __webpack_require__(\"d2d4\")\n]);\n\n// components\nPlotly.register([\n __webpack_require__(\"e1f5\")\n]);\n\nmodule.exports = Plotly;\n\n\n/***/ }),\n\n/***/ \"0316\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Axes = __webpack_require__(\"0642\");\n\nmodule.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n\n var subplot = fullLayout[trace.subplot]._subplot;\n var ax = subplot.mockAxis;\n\n var lonlat = cdi.lonlat;\n labels.lonLabel = Axes.tickText(ax, ax.c2l(lonlat[0]), true).text;\n labels.latLabel = Axes.tickText(ax, ax.c2l(lonlat[1]), true).text;\n\n return labels;\n};\n\n\n/***/ }),\n\n/***/ \"0324\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\n\n// remove opacity for any trace that has a fill or is filled to\nmodule.exports = function crossTraceDefaults(fullData) {\n for(var i = 0; i < fullData.length; i++) {\n var tracei = fullData[i];\n if(tracei.type !== 'scatter') continue;\n\n var filli = tracei.fill;\n if(filli === 'none' || filli === 'toself') continue;\n\n tracei.opacity = undefined;\n\n if(filli === 'tonexty' || filli === 'tonextx') {\n for(var j = i - 1; j >= 0; j--) {\n var tracej = fullData[j];\n\n if((tracej.type === 'scatter') &&\n (tracej.xaxis === tracei.xaxis) &&\n (tracej.yaxis === tracei.yaxis)) {\n tracej.opacity = undefined;\n break;\n }\n }\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"0365\":\n/***/ (function(module, exports) {\n\nmodule.exports = clone;\n\n/**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {vec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\nfunction clone(a) {\n var out = new Float32Array(3)\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n return out\n}\n\n/***/ }),\n\n/***/ \"0366\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(\"1c0b\");\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"0379\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\n/* global MathJax:false */\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar xmlnsNamespaces = __webpack_require__(\"73c9\");\nvar LINE_SPACING = __webpack_require__(\"63dc\").LINE_SPACING;\n\n// text converter\n\nfunction getSize(_selection, _dimension) {\n return _selection.node().getBoundingClientRect()[_dimension];\n}\n\nvar FIND_TEX = /([^$]*)([$]+[^$]*[$]+)([^$]*)/;\n\nexports.convertToTspans = function(_context, gd, _callback) {\n var str = _context.text();\n\n // Until we get tex integrated more fully (so it can be used along with non-tex)\n // allow some elements to prohibit it by attaching 'data-notex' to the original\n var tex = (!_context.attr('data-notex')) &&\n (typeof MathJax !== 'undefined') &&\n str.match(FIND_TEX);\n\n var parent = d3.select(_context.node().parentNode);\n if(parent.empty()) return;\n var svgClass = (_context.attr('class')) ? _context.attr('class').split(' ')[0] : 'text';\n svgClass += '-math';\n parent.selectAll('svg.' + svgClass).remove();\n parent.selectAll('g.' + svgClass + '-group').remove();\n _context.style('display', null)\n .attr({\n // some callers use data-unformatted *from the element* in 'cancel'\n // so we need it here even if we're going to turn it into math\n // these two (plus style and text-anchor attributes) form the key we're\n // going to use for Drawing.bBox\n 'data-unformatted': str,\n 'data-math': 'N'\n });\n\n function showText() {\n if(!parent.empty()) {\n svgClass = _context.attr('class') + '-math';\n parent.select('svg.' + svgClass).remove();\n }\n _context.text('')\n .style('white-space', 'pre');\n\n var hasLink = buildSVGText(_context.node(), str);\n\n if(hasLink) {\n // at least in Chrome, pointer-events does not seem\n // to be honored in children of elements\n // so if we have an anchor, we have to make the\n // whole element respond\n _context.style('pointer-events', 'all');\n }\n\n exports.positionText(_context);\n\n if(_callback) _callback.call(_context);\n }\n\n if(tex) {\n ((gd && gd._promises) || []).push(new Promise(function(resolve) {\n _context.style('display', 'none');\n var fontSize = parseInt(_context.node().style.fontSize, 10);\n var config = {fontSize: fontSize};\n\n texToSVG(tex[2], config, function(_svgEl, _glyphDefs, _svgBBox) {\n parent.selectAll('svg.' + svgClass).remove();\n parent.selectAll('g.' + svgClass + '-group').remove();\n\n var newSvg = _svgEl && _svgEl.select('svg');\n if(!newSvg || !newSvg.node()) {\n showText();\n resolve();\n return;\n }\n\n var mathjaxGroup = parent.append('g')\n .classed(svgClass + '-group', true)\n .attr({\n 'pointer-events': 'none',\n 'data-unformatted': str,\n 'data-math': 'Y'\n });\n\n mathjaxGroup.node().appendChild(newSvg.node());\n\n // stitch the glyph defs\n if(_glyphDefs && _glyphDefs.node()) {\n newSvg.node().insertBefore(_glyphDefs.node().cloneNode(true),\n newSvg.node().firstChild);\n }\n\n newSvg.attr({\n 'class': svgClass,\n height: _svgBBox.height,\n preserveAspectRatio: 'xMinYMin meet'\n })\n .style({overflow: 'visible', 'pointer-events': 'none'});\n\n var fill = _context.node().style.fill || 'black';\n var g = newSvg.select('g');\n g.attr({fill: fill, stroke: fill});\n\n var newSvgW = getSize(g, 'width');\n var newSvgH = getSize(g, 'height');\n var newX = +_context.attr('x') - newSvgW *\n {start: 0, middle: 0.5, end: 1}[_context.attr('text-anchor') || 'start'];\n // font baseline is about 1/4 fontSize below centerline\n var textHeight = fontSize || getSize(_context, 'height');\n var dy = -textHeight / 4;\n\n if(svgClass[0] === 'y') {\n mathjaxGroup.attr({\n transform: 'rotate(' + [-90, +_context.attr('x'), +_context.attr('y')] +\n ') translate(' + [-newSvgW / 2, dy - newSvgH / 2] + ')'\n });\n newSvg.attr({x: +_context.attr('x'), y: +_context.attr('y')});\n } else if(svgClass[0] === 'l') {\n newSvg.attr({x: _context.attr('x'), y: dy - (newSvgH / 2)});\n } else if(svgClass[0] === 'a' && svgClass.indexOf('atitle') !== 0) {\n newSvg.attr({x: 0, y: dy});\n } else {\n newSvg.attr({x: newX, y: (+_context.attr('y') + dy - newSvgH / 2)});\n }\n\n if(_callback) _callback.call(_context, mathjaxGroup);\n resolve(mathjaxGroup);\n });\n }));\n } else showText();\n\n return _context;\n};\n\n\n// MathJax\n\nvar LT_MATCH = /(<|<|<)/g;\nvar GT_MATCH = /(>|>|>)/g;\n\nfunction cleanEscapesForTex(s) {\n return s.replace(LT_MATCH, '\\\\lt ')\n .replace(GT_MATCH, '\\\\gt ');\n}\n\nfunction texToSVG(_texString, _config, _callback) {\n var originalRenderer,\n originalConfig,\n originalProcessSectionDelay,\n tmpDiv;\n\n MathJax.Hub.Queue(\n function() {\n originalConfig = Lib.extendDeepAll({}, MathJax.Hub.config);\n\n originalProcessSectionDelay = MathJax.Hub.processSectionDelay;\n if(MathJax.Hub.processSectionDelay !== undefined) {\n // MathJax 2.5+\n MathJax.Hub.processSectionDelay = 0;\n }\n\n return MathJax.Hub.Config({\n messageStyle: 'none',\n tex2jax: {\n inlineMath: [['$', '$'], ['\\\\(', '\\\\)']]\n },\n displayAlign: 'left',\n });\n },\n function() {\n // Get original renderer\n originalRenderer = MathJax.Hub.config.menuSettings.renderer;\n if(originalRenderer !== 'SVG') {\n return MathJax.Hub.setRenderer('SVG');\n }\n },\n function() {\n var randomID = 'math-output-' + Lib.randstr({}, 64);\n tmpDiv = d3.select('body').append('div')\n .attr({id: randomID})\n .style({visibility: 'hidden', position: 'absolute'})\n .style({'font-size': _config.fontSize + 'px'})\n .text(cleanEscapesForTex(_texString));\n\n return MathJax.Hub.Typeset(tmpDiv.node());\n },\n function() {\n var glyphDefs = d3.select('body').select('#MathJax_SVG_glyphs');\n\n if(tmpDiv.select('.MathJax_SVG').empty() || !tmpDiv.select('svg').node()) {\n Lib.log('There was an error in the tex syntax.', _texString);\n _callback();\n } else {\n var svgBBox = tmpDiv.select('svg').node().getBoundingClientRect();\n _callback(tmpDiv.select('.MathJax_SVG'), glyphDefs, svgBBox);\n }\n\n tmpDiv.remove();\n\n if(originalRenderer !== 'SVG') {\n return MathJax.Hub.setRenderer(originalRenderer);\n }\n },\n function() {\n if(originalProcessSectionDelay !== undefined) {\n MathJax.Hub.processSectionDelay = originalProcessSectionDelay;\n }\n return MathJax.Hub.Config(originalConfig);\n });\n}\n\nvar TAG_STYLES = {\n // would like to use baseline-shift for sub/sup but FF doesn't support it\n // so we need to use dy along with the uber hacky shift-back-to\n // baseline below\n sup: 'font-size:70%',\n sub: 'font-size:70%',\n b: 'font-weight:bold',\n i: 'font-style:italic',\n a: 'cursor:pointer',\n span: '',\n em: 'font-style:italic;font-weight:bold'\n};\n\n// baseline shifts for sub and sup\nvar SHIFT_DY = {\n sub: '0.3em',\n sup: '-0.6em'\n};\n// reset baseline by adding a tspan (empty except for a zero-width space)\n// with dy of -70% * SHIFT_DY (because font-size=70%)\nvar RESET_DY = {\n sub: '-0.21em',\n sup: '0.42em'\n};\nvar ZERO_WIDTH_SPACE = '\\u200b';\n\n/*\n * Whitelist of protocols in user-supplied urls. Mostly we want to avoid javascript\n * and related attack vectors. The empty items are there for IE, that in various\n * versions treats relative paths as having different flavors of no protocol, while\n * other browsers have these explicitly inherit the protocol of the page they're in.\n */\nvar PROTOCOLS = ['http:', 'https:', 'mailto:', '', undefined, ':'];\n\nvar NEWLINES = exports.NEWLINES = /(\\r\\n?|\\n)/g;\n\nvar SPLIT_TAGS = /(<[^<>]*>)/;\n\nvar ONE_TAG = /<(\\/?)([^ >]*)(\\s+(.*))?>/i;\n\nvar BR_TAG = //i;\nexports.BR_TAG_ALL = //gi;\n\n/*\n * style and href: pull them out of either single or double quotes. Also\n * - target: (_blank|_self|_parent|_top|framename)\n * note that you can't use target to get a popup but if you use popup,\n * a `framename` will be passed along as the name of the popup window.\n * per the spec, cannot contain whitespace.\n * for backward compatibility we default to '_blank'\n * - popup: a custom one for us to enable popup (new window) links. String\n * for window.open -> strWindowFeatures, like 'menubar=yes,width=500,height=550'\n * note that at least in Chrome, you need to give at least one property\n * in this string or the page will open in a new tab anyway. We follow this\n * convention and will not make a popup if this string is empty.\n * per the spec, cannot contain whitespace.\n *\n * Because we hack in other attributes with style (sub & sup), drop any trailing\n * semicolon in user-supplied styles so we can consistently append the tag-dependent style\n *\n * These are for tag attributes; Chrome anyway will convert entities in\n * attribute values, but not in attribute names\n * you can test this by for example:\n * > p = document.createElement('p')\n * > p.innerHTML = 'Hi'\n * > p.innerHTML\n * <- 'Hi'\n */\nvar STYLEMATCH = /(^|[\\s\"'])style\\s*=\\s*(\"([^\"]*);?\"|'([^']*);?')/i;\nvar HREFMATCH = /(^|[\\s\"'])href\\s*=\\s*(\"([^\"]*)\"|'([^']*)')/i;\nvar TARGETMATCH = /(^|[\\s\"'])target\\s*=\\s*(\"([^\"\\s]*)\"|'([^'\\s]*)')/i;\nvar POPUPMATCH = /(^|[\\s\"'])popup\\s*=\\s*(\"([\\w=,]*)\"|'([\\w=,]*)')/i;\n\n// dedicated matcher for these quoted regexes, that can return their results\n// in two different places\nfunction getQuotedMatch(_str, re) {\n if(!_str) return null;\n var match = _str.match(re);\n var result = match && (match[3] || match[4]);\n return result && convertEntities(result);\n}\n\nvar COLORMATCH = /(^|;)\\s*color:/;\n\n/**\n * Strip string of tags\n *\n * @param {string} _str : input string\n * @param {object} opts :\n * - len {number} max length of output string\n * - allowedTags {array} list of pseudo-html tags to NOT strip\n * @return {string}\n */\nexports.plainText = function(_str, opts) {\n opts = opts || {};\n\n var len = (opts.len !== undefined && opts.len !== -1) ? opts.len : Infinity;\n var allowedTags = opts.allowedTags !== undefined ? opts.allowedTags : ['br'];\n\n var ellipsis = '...';\n var eLen = ellipsis.length;\n\n var oldParts = _str.split(SPLIT_TAGS);\n var newParts = [];\n var prevTag = '';\n var l = 0;\n\n for(var i = 0; i < oldParts.length; i++) {\n var p = oldParts[i];\n var match = p.match(ONE_TAG);\n var tagType = match && match[2].toLowerCase();\n\n if(tagType) {\n // N.B. tags do not count towards string length\n if(allowedTags.indexOf(tagType) !== -1) {\n newParts.push(p);\n prevTag = tagType;\n }\n } else {\n var pLen = p.length;\n\n if((l + pLen) < len) {\n newParts.push(p);\n l += pLen;\n } else if(l < len) {\n var pLen2 = len - l;\n\n if(prevTag && (prevTag !== 'br' || pLen2 <= eLen || pLen <= eLen)) {\n newParts.pop();\n }\n\n if(len > eLen) {\n newParts.push(p.substr(0, pLen2 - eLen) + ellipsis);\n } else {\n newParts.push(p.substr(0, pLen2));\n }\n break;\n }\n\n prevTag = '';\n }\n }\n\n return newParts.join('');\n};\n\n/*\n * N.B. HTML entities are listed without the leading '&' and trailing ';'\n * https://www.freeformatter.com/html-entities.html\n *\n * FWIW if we wanted to support the full set, it has 2261 entries:\n * https://www.w3.org/TR/html5/entities.json\n * though I notice that some of these are duplicates and/or are missing \";\"\n * eg: \"&\", \"&\", \"&\", and \"&\" all map to \"&\"\n * We no longer need to include numeric entities here, these are now handled\n * by String.fromCodePoint/fromCharCode\n *\n * Anyway the only ones that are really important to allow are the HTML special\n * chars <, >, and &, because these ones can trigger special processing if not\n * replaced by the corresponding entity.\n */\nvar entityToUnicode = {\n mu: 'μ',\n amp: '&',\n lt: '<',\n gt: '>',\n nbsp: ' ',\n times: '×',\n plusmn: '±',\n deg: '°'\n};\n\n// NOTE: in general entities can contain uppercase too (so [a-zA-Z]) but all the\n// ones we support use only lowercase. If we ever change that, update the regex.\nvar ENTITY_MATCH = /&(#\\d+|#x[\\da-fA-F]+|[a-z]+);/g;\nfunction convertEntities(_str) {\n return _str.replace(ENTITY_MATCH, function(fullMatch, innerMatch) {\n var outChar;\n if(innerMatch.charAt(0) === '#') {\n // cannot use String.fromCodePoint in IE\n outChar = fromCodePoint(\n innerMatch.charAt(1) === 'x' ?\n parseInt(innerMatch.substr(2), 16) :\n parseInt(innerMatch.substr(1), 10)\n );\n } else outChar = entityToUnicode[innerMatch];\n\n // as in regular HTML, if we didn't decode the entity just\n // leave the raw text in place.\n return outChar || fullMatch;\n });\n}\nexports.convertEntities = convertEntities;\n\nfunction fromCodePoint(code) {\n // Don't allow overflow. In Chrome this turns into � but I feel like it's\n // more useful to just not convert it at all.\n if(code > 0x10FFFF) return;\n var stringFromCodePoint = String.fromCodePoint;\n if(stringFromCodePoint) return stringFromCodePoint(code);\n\n // IE doesn't have String.fromCodePoint\n // see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint\n var stringFromCharCode = String.fromCharCode;\n if(code <= 0xFFFF) return stringFromCharCode(code);\n return stringFromCharCode(\n (code >> 10) + 0xD7C0,\n (code % 0x400) + 0xDC00\n );\n}\n\n/*\n * buildSVGText: convert our pseudo-html into SVG tspan elements, and attach these\n * to containerNode\n *\n * @param {svg text element} containerNode: the node to insert this text into\n * @param {string} str: the pseudo-html string to convert to svg\n *\n * @returns {bool}: does the result contain any links? We need to handle the text element\n * somewhat differently if it does, so just keep track of this when it happens.\n */\nfunction buildSVGText(containerNode, str) {\n /*\n * Normalize behavior between IE and others wrt newlines and whitespace:pre\n * this combination makes IE barf https://github.com/plotly/plotly.js/issues/746\n * Chrome and FF display \\n, \\r, or \\r\\n as a space in this mode.\n * I feel like at some point we turned these into
but currently we don't so\n * I'm just going to cement what we do now in Chrome and FF\n */\n str = str.replace(NEWLINES, ' ');\n\n var hasLink = false;\n\n // as we're building the text, keep track of what elements we're nested inside\n // nodeStack will be an array of {node, type, style, href, target, popup}\n // where only type: 'a' gets the last 3 and node is only added when it's created\n var nodeStack = [];\n var currentNode;\n var currentLine = -1;\n\n function newLine() {\n currentLine++;\n\n var lineNode = document.createElementNS(xmlnsNamespaces.svg, 'tspan');\n d3.select(lineNode).attr({\n class: 'line',\n dy: (currentLine * LINE_SPACING) + 'em'\n });\n containerNode.appendChild(lineNode);\n\n currentNode = lineNode;\n\n var oldNodeStack = nodeStack;\n nodeStack = [{node: lineNode}];\n\n if(oldNodeStack.length > 1) {\n for(var i = 1; i < oldNodeStack.length; i++) {\n enterNode(oldNodeStack[i]);\n }\n }\n }\n\n function enterNode(nodeSpec) {\n var type = nodeSpec.type;\n var nodeAttrs = {};\n var nodeType;\n\n if(type === 'a') {\n nodeType = 'a';\n var target = nodeSpec.target;\n var href = nodeSpec.href;\n var popup = nodeSpec.popup;\n if(href) {\n nodeAttrs = {\n 'xlink:xlink:show': (target === '_blank' || target.charAt(0) !== '_') ? 'new' : 'replace',\n target: target,\n 'xlink:xlink:href': href\n };\n if(popup) {\n // security: href and target are not inserted as code but\n // as attributes. popup is, but limited to /[A-Za-z0-9_=,]/\n nodeAttrs.onclick = 'window.open(this.href.baseVal,this.target.baseVal,\"' +\n popup + '\");return false;';\n }\n }\n } else nodeType = 'tspan';\n\n if(nodeSpec.style) nodeAttrs.style = nodeSpec.style;\n\n var newNode = document.createElementNS(xmlnsNamespaces.svg, nodeType);\n\n if(type === 'sup' || type === 'sub') {\n addTextNode(currentNode, ZERO_WIDTH_SPACE);\n currentNode.appendChild(newNode);\n\n var resetter = document.createElementNS(xmlnsNamespaces.svg, 'tspan');\n addTextNode(resetter, ZERO_WIDTH_SPACE);\n d3.select(resetter).attr('dy', RESET_DY[type]);\n nodeAttrs.dy = SHIFT_DY[type];\n\n currentNode.appendChild(newNode);\n currentNode.appendChild(resetter);\n } else {\n currentNode.appendChild(newNode);\n }\n\n d3.select(newNode).attr(nodeAttrs);\n\n currentNode = nodeSpec.node = newNode;\n nodeStack.push(nodeSpec);\n }\n\n function addTextNode(node, text) {\n node.appendChild(document.createTextNode(text));\n }\n\n function exitNode(type) {\n // A bare closing tag can't close the root node. If we encounter this it\n // means there's an extra closing tag that can just be ignored:\n if(nodeStack.length === 1) {\n Lib.log('Ignoring unexpected end tag .', str);\n return;\n }\n\n var innerNode = nodeStack.pop();\n\n if(type !== innerNode.type) {\n Lib.log('Start tag <' + innerNode.type + '> doesnt match end tag <' +\n type + '>. Pretending it did match.', str);\n }\n currentNode = nodeStack[nodeStack.length - 1].node;\n }\n\n var hasLines = BR_TAG.test(str);\n\n if(hasLines) newLine();\n else {\n currentNode = containerNode;\n nodeStack = [{node: containerNode}];\n }\n\n var parts = str.split(SPLIT_TAGS);\n for(var i = 0; i < parts.length; i++) {\n var parti = parts[i];\n var match = parti.match(ONE_TAG);\n var tagType = match && match[2].toLowerCase();\n var tagStyle = TAG_STYLES[tagType];\n\n if(tagType === 'br') {\n newLine();\n } else if(tagStyle === undefined) {\n addTextNode(currentNode, convertEntities(parti));\n } else {\n // tag - open or close\n if(match[1]) {\n exitNode(tagType);\n } else {\n var extra = match[4];\n\n var nodeSpec = {type: tagType};\n\n // now add style, from both the tag name and any extra css\n // Most of the svg css that users will care about is just like html,\n // but font color is different (uses fill). Let our users ignore this.\n var css = getQuotedMatch(extra, STYLEMATCH);\n if(css) {\n css = css.replace(COLORMATCH, '$1 fill:');\n if(tagStyle) css += ';' + tagStyle;\n } else if(tagStyle) css = tagStyle;\n\n if(css) nodeSpec.style = css;\n\n if(tagType === 'a') {\n hasLink = true;\n\n var href = getQuotedMatch(extra, HREFMATCH);\n\n if(href) {\n // check safe protocols\n var dummyAnchor = document.createElement('a');\n dummyAnchor.href = href;\n if(PROTOCOLS.indexOf(dummyAnchor.protocol) !== -1) {\n // Decode href to allow both already encoded and not encoded\n // URIs. Without decoding prior encoding, an already encoded\n // URI would be encoded twice producing a semantically different URI.\n nodeSpec.href = encodeURI(decodeURI(href));\n nodeSpec.target = getQuotedMatch(extra, TARGETMATCH) || '_blank';\n nodeSpec.popup = getQuotedMatch(extra, POPUPMATCH);\n }\n }\n }\n\n enterNode(nodeSpec);\n }\n }\n }\n\n return hasLink;\n}\n\nexports.lineCount = function lineCount(s) {\n return s.selectAll('tspan.line').size() || 1;\n};\n\nexports.positionText = function positionText(s, x, y) {\n return s.each(function() {\n var text = d3.select(this);\n\n function setOrGet(attr, val) {\n if(val === undefined) {\n val = text.attr(attr);\n if(val === null) {\n text.attr(attr, 0);\n val = 0;\n }\n } else text.attr(attr, val);\n return val;\n }\n\n var thisX = setOrGet('x', x);\n var thisY = setOrGet('y', y);\n\n if(this.nodeName === 'text') {\n text.selectAll('tspan.line').attr({x: thisX, y: thisY});\n }\n });\n};\n\nfunction alignHTMLWith(_base, container, options) {\n var alignH = options.horizontalAlign;\n var alignV = options.verticalAlign || 'top';\n var bRect = _base.node().getBoundingClientRect();\n var cRect = container.node().getBoundingClientRect();\n var thisRect;\n var getTop;\n var getLeft;\n\n if(alignV === 'bottom') {\n getTop = function() { return bRect.bottom - thisRect.height; };\n } else if(alignV === 'middle') {\n getTop = function() { return bRect.top + (bRect.height - thisRect.height) / 2; };\n } else { // default: top\n getTop = function() { return bRect.top; };\n }\n\n if(alignH === 'right') {\n getLeft = function() { return bRect.right - thisRect.width; };\n } else if(alignH === 'center') {\n getLeft = function() { return bRect.left + (bRect.width - thisRect.width) / 2; };\n } else { // default: left\n getLeft = function() { return bRect.left; };\n }\n\n return function() {\n thisRect = this.node().getBoundingClientRect();\n this.style({\n top: (getTop() - cRect.top) + 'px',\n left: (getLeft() - cRect.left) + 'px',\n 'z-index': 1000\n });\n return this;\n };\n}\n\n/*\n * Editable title\n * @param {d3.selection} context: the element being edited. Normally text,\n * but if it isn't, you should provide the styling options\n * @param {object} options:\n * @param {div} options.gd: graphDiv\n * @param {d3.selection} options.delegate: item to bind events to if not this\n * @param {boolean} options.immediate: start editing now (true) or on click (false, default)\n * @param {string} options.fill: font color if not as shown\n * @param {string} options.background: background color if not as shown\n * @param {string} options.text: initial text, if not as shown\n * @param {string} options.horizontalAlign: alignment of the edit box wrt. the bound element\n * @param {string} options.verticalAlign: alignment of the edit box wrt. the bound element\n */\n\nexports.makeEditable = function(context, options) {\n var gd = options.gd;\n var _delegate = options.delegate;\n var dispatch = d3.dispatch('edit', 'input', 'cancel');\n var handlerElement = _delegate || context;\n\n context.style({'pointer-events': _delegate ? 'none' : 'all'});\n\n if(context.size() !== 1) throw new Error('boo');\n\n function handleClick() {\n appendEditable();\n context.style({opacity: 0});\n // also hide any mathjax svg\n var svgClass = handlerElement.attr('class');\n var mathjaxClass;\n if(svgClass) mathjaxClass = '.' + svgClass.split(' ')[0] + '-math-group';\n else mathjaxClass = '[class*=-math-group]';\n if(mathjaxClass) {\n d3.select(context.node().parentNode).select(mathjaxClass).style({opacity: 0});\n }\n }\n\n function selectElementContents(_el) {\n var el = _el.node();\n var range = document.createRange();\n range.selectNodeContents(el);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n el.focus();\n }\n\n function appendEditable() {\n var plotDiv = d3.select(gd);\n var container = plotDiv.select('.svg-container');\n var div = container.append('div');\n var cStyle = context.node().style;\n var fontSize = parseFloat(cStyle.fontSize || 12);\n\n var initialText = options.text;\n if(initialText === undefined) initialText = context.attr('data-unformatted');\n\n div.classed('plugin-editable editable', true)\n .style({\n position: 'absolute',\n 'font-family': cStyle.fontFamily || 'Arial',\n 'font-size': fontSize,\n color: options.fill || cStyle.fill || 'black',\n opacity: 1,\n 'background-color': options.background || 'transparent',\n outline: '#ffffff33 1px solid',\n margin: [-fontSize / 8 + 1, 0, 0, -1].join('px ') + 'px',\n padding: '0',\n 'box-sizing': 'border-box'\n })\n .attr({contenteditable: true})\n .text(initialText)\n .call(alignHTMLWith(context, container, options))\n .on('blur', function() {\n gd._editing = false;\n context.text(this.textContent)\n .style({opacity: 1});\n var svgClass = d3.select(this).attr('class');\n var mathjaxClass;\n if(svgClass) mathjaxClass = '.' + svgClass.split(' ')[0] + '-math-group';\n else mathjaxClass = '[class*=-math-group]';\n if(mathjaxClass) {\n d3.select(context.node().parentNode).select(mathjaxClass).style({opacity: 0});\n }\n var text = this.textContent;\n d3.select(this).transition().duration(0).remove();\n d3.select(document).on('mouseup', null);\n dispatch.edit.call(context, text);\n })\n .on('focus', function() {\n var editDiv = this;\n gd._editing = true;\n d3.select(document).on('mouseup', function() {\n if(d3.event.target === editDiv) return false;\n if(document.activeElement === div.node()) div.node().blur();\n });\n })\n .on('keyup', function() {\n if(d3.event.which === 27) {\n gd._editing = false;\n context.style({opacity: 1});\n d3.select(this)\n .style({opacity: 0})\n .on('blur', function() { return false; })\n .transition().remove();\n dispatch.cancel.call(context, this.textContent);\n } else {\n dispatch.input.call(context, this.textContent);\n d3.select(this).call(alignHTMLWith(context, container, options));\n }\n })\n .on('keydown', function() {\n if(d3.event.which === 13) this.blur();\n })\n .call(selectElementContents);\n }\n\n if(options.immediate) handleClick();\n else handlerElement.on('click', handleClick);\n\n return d3.rebind(context, dispatch, 'on');\n};\n\n\n/***/ }),\n\n/***/ \"037d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\nmodule.exports = function sceneUpdate(gd, trace) {\n var fullLayout = gd._fullLayout;\n var uid = trace.uid;\n\n // must place ref to 'scene' in fullLayout, so that:\n // - it can be relinked properly on updates\n // - it can be destroyed properly when needed\n var splomScenes = fullLayout._splomScenes;\n if(!splomScenes) splomScenes = fullLayout._splomScenes = {};\n\n var reset = {dirty: true};\n\n var first = {\n matrix: false,\n selectBatch: [],\n unselectBatch: []\n };\n\n var scene = splomScenes[trace.uid];\n\n if(!scene) {\n scene = splomScenes[uid] = Lib.extendFlat({}, reset, first);\n\n scene.draw = function draw() {\n if(scene.matrix && scene.matrix.draw) {\n if(scene.selectBatch.length || scene.unselectBatch.length) {\n scene.matrix.draw(scene.unselectBatch, scene.selectBatch);\n } else {\n scene.matrix.draw();\n }\n }\n\n scene.dirty = false;\n };\n\n // remove scene resources\n scene.destroy = function destroy() {\n if(scene.matrix && scene.matrix.destroy) {\n scene.matrix.destroy();\n }\n scene.matrixOptions = null;\n scene.selectBatch = null;\n scene.unselectBatch = null;\n scene = null;\n };\n }\n\n // In case if we have scene from the last calc - reset data\n if(!scene.dirty) {\n Lib.extendFlat(scene, reset);\n }\n\n return scene;\n};\n\n\n/***/ }),\n\n/***/ \"0382\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n attributes: __webpack_require__(\"86d2\"),\n supplyDefaults: __webpack_require__(\"447e\"),\n calc: __webpack_require__(\"de229\"),\n plot: __webpack_require__(\"0cc1\"),\n style: __webpack_require__(\"464d\"),\n hoverPoints: __webpack_require__(\"cbb8\"),\n eventData: __webpack_require__(\"3e97\"),\n\n moduleType: 'trace',\n name: 'image',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['cartesian', 'svg', '2dMap', 'noSortingByValue'],\n animatable: false,\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"038d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Axes = __webpack_require__(\"0642\");\nvar attributes = __webpack_require__(\"8bd8\");\nvar fillText = __webpack_require__(\"fc26\").fillText;\n\nmodule.exports = function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var geo = pointData.subplot;\n\n var pt, i, j, isInside;\n\n for(i = 0; i < cd.length; i++) {\n pt = cd[i];\n isInside = false;\n\n if(pt._polygons) {\n for(j = 0; j < pt._polygons.length; j++) {\n if(pt._polygons[j].contains([xval, yval])) {\n isInside = !isInside;\n }\n // for polygons that cross antimeridian as xval is in [-180, 180]\n if(pt._polygons[j].contains([xval + 360, yval])) {\n isInside = !isInside;\n }\n }\n\n if(isInside) break;\n }\n }\n\n if(!isInside || !pt) return;\n\n pointData.x0 = pointData.x1 = pointData.xa.c2p(pt.ct);\n pointData.y0 = pointData.y1 = pointData.ya.c2p(pt.ct);\n\n pointData.index = pt.index;\n pointData.location = pt.loc;\n pointData.z = pt.z;\n pointData.zLabel = Axes.tickText(geo.mockAxis, geo.mockAxis.c2l(pt.z), 'hover').text;\n pointData.hovertemplate = pt.hovertemplate;\n\n makeHoverInfo(pointData, trace, pt, geo.mockAxis);\n\n return [pointData];\n};\n\nfunction makeHoverInfo(pointData, trace, pt) {\n if(trace.hovertemplate) return;\n\n var hoverinfo = pt.hi || trace.hoverinfo;\n var loc = String(pt.loc);\n\n var parts = (hoverinfo === 'all') ?\n attributes.hoverinfo.flags :\n hoverinfo.split('+');\n\n var hasName = (parts.indexOf('name') !== -1);\n var hasLocation = (parts.indexOf('location') !== -1);\n var hasZ = (parts.indexOf('z') !== -1);\n var hasText = (parts.indexOf('text') !== -1);\n var hasIdAsNameLabel = !hasName && hasLocation;\n\n var text = [];\n\n if(hasIdAsNameLabel) {\n pointData.nameOverride = loc;\n } else {\n if(hasName) pointData.nameOverride = trace.name;\n if(hasLocation) text.push(loc);\n }\n\n if(hasZ) {\n text.push(pointData.zLabel);\n }\n if(hasText) {\n fillText(pt, trace, text);\n }\n\n pointData.extraText = text.join('
');\n}\n\n\n/***/ }),\n\n/***/ \"03d7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Drawing = __webpack_require__(\"83d1\");\nvar Color = __webpack_require__(\"d115\");\nvar DESELECTDIM = __webpack_require__(\"72a4\").DESELECTDIM;\nvar barStyle = __webpack_require__(\"2df3\");\nvar resizeText = __webpack_require__(\"93a6\").resizeText;\nvar styleTextPoints = barStyle.styleTextPoints;\n\nfunction style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll('g.waterfalllayer').selectAll('g.trace');\n resizeText(gd, s, 'waterfall');\n\n s.style('opacity', function(d) { return d[0].trace.opacity; });\n\n s.each(function(d) {\n var gTrace = d3.select(this);\n var trace = d[0].trace;\n\n gTrace.selectAll('.point > path').each(function(di) {\n if(!di.isBlank) {\n var cont = trace[di.dir].marker;\n\n d3.select(this)\n .call(Color.fill, cont.color)\n .call(Color.stroke, cont.line.color)\n .call(Drawing.dashLine, cont.line.dash, cont.line.width)\n .style('opacity', trace.selectedpoints && !di.selected ? DESELECTDIM : 1);\n }\n });\n\n styleTextPoints(gTrace, trace, gd);\n\n gTrace.selectAll('.lines').each(function() {\n var cont = trace.connector.line;\n\n Drawing.lineGroupStyle(\n d3.select(this).selectAll('path'),\n cont.width,\n cont.color,\n cont.dash\n );\n });\n });\n}\n\nmodule.exports = {\n style: style\n};\n\n\n/***/ }),\n\n/***/ \"0435\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar baseAttrs = __webpack_require__(\"a876\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar FORMAT_LINK = __webpack_require__(\"78df\").FORMAT_LINK;\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nmodule.exports = extendFlat({\n z: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n x: extendFlat({}, scatterAttrs.x, {impliedEdits: {xtype: 'array'}}),\n x0: extendFlat({}, scatterAttrs.x0, {impliedEdits: {xtype: 'scaled'}}),\n dx: extendFlat({}, scatterAttrs.dx, {impliedEdits: {xtype: 'scaled'}}),\n y: extendFlat({}, scatterAttrs.y, {impliedEdits: {ytype: 'array'}}),\n y0: extendFlat({}, scatterAttrs.y0, {impliedEdits: {ytype: 'scaled'}}),\n dy: extendFlat({}, scatterAttrs.dy, {impliedEdits: {ytype: 'scaled'}}),\n\n text: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n hovertext: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n transpose: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'calc',\n \n },\n xtype: {\n valType: 'enumerated',\n values: ['array', 'scaled'],\n \n editType: 'calc+clearAxisTypes',\n \n },\n ytype: {\n valType: 'enumerated',\n values: ['array', 'scaled'],\n \n editType: 'calc+clearAxisTypes',\n \n },\n zsmooth: {\n valType: 'enumerated',\n values: ['fast', 'best', false],\n dflt: false,\n \n editType: 'calc',\n \n },\n hoverongaps: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'none',\n \n },\n connectgaps: {\n valType: 'boolean',\n \n editType: 'calc',\n \n },\n xgap: {\n valType: 'number',\n dflt: 0,\n min: 0,\n \n editType: 'plot',\n \n },\n ygap: {\n valType: 'number',\n dflt: 0,\n min: 0,\n \n editType: 'plot',\n \n },\n zhoverformat: {\n valType: 'string',\n dflt: '',\n \n editType: 'none',\n \n },\n hovertemplate: hovertemplateAttrs(),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})\n}, {\n transforms: undefined\n},\n colorScaleAttrs('', {cLetter: 'z', autoColorDflt: false})\n);\n\n\n/***/ }),\n\n/***/ \"0446\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar Axes = __webpack_require__(\"0642\");\n\n/**\n * transitionAxes\n *\n * transition axes from one set of ranges to another, using a svg\n * transformations, similar to during panning.\n *\n * @param {DOM element | object} gd\n * @param {array} edits : array of 'edits', each item with\n * - plotinfo {object} subplot object\n * - xr0 {array} initial x-range\n * - xr1 {array} end x-range\n * - yr0 {array} initial y-range\n * - yr1 {array} end y-range\n * @param {object} transitionOpts\n * @param {function} makeOnCompleteCallback\n */\nmodule.exports = function transitionAxes(gd, edits, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n\n // special case for redraw:false Plotly.animate that relies on this\n // to update axis-referenced layout components\n if(edits.length === 0) {\n Axes.redrawComponents(gd);\n return;\n }\n\n function unsetSubplotTransform(subplot) {\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n\n fullLayout._defs.select('#' + subplot.clipId + '> rect')\n .call(Drawing.setTranslate, 0, 0)\n .call(Drawing.setScale, 1, 1);\n\n subplot.plot\n .call(Drawing.setTranslate, xa._offset, ya._offset)\n .call(Drawing.setScale, 1, 1);\n\n var traceGroups = subplot.plot.selectAll('.scatterlayer .trace');\n\n // This is specifically directed at scatter traces, applying an inverse\n // scale to individual points to counteract the scale of the trace\n // as a whole:\n traceGroups.selectAll('.point')\n .call(Drawing.setPointGroupScale, 1, 1);\n traceGroups.selectAll('.textpoint')\n .call(Drawing.setTextPointsScale, 1, 1);\n traceGroups\n .call(Drawing.hideOutsideRangePoints, subplot);\n }\n\n function updateSubplot(edit, progress) {\n var plotinfo = edit.plotinfo;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var xlen = xa._length;\n var ylen = ya._length;\n var editX = !!edit.xr1;\n var editY = !!edit.yr1;\n var viewBox = [];\n\n if(editX) {\n var xr0 = Lib.simpleMap(edit.xr0, xa.r2l);\n var xr1 = Lib.simpleMap(edit.xr1, xa.r2l);\n var dx0 = xr0[1] - xr0[0];\n var dx1 = xr1[1] - xr1[0];\n viewBox[0] = (xr0[0] * (1 - progress) + progress * xr1[0] - xr0[0]) / (xr0[1] - xr0[0]) * xlen;\n viewBox[2] = xlen * ((1 - progress) + progress * dx1 / dx0);\n xa.range[0] = xa.l2r(xr0[0] * (1 - progress) + progress * xr1[0]);\n xa.range[1] = xa.l2r(xr0[1] * (1 - progress) + progress * xr1[1]);\n } else {\n viewBox[0] = 0;\n viewBox[2] = xlen;\n }\n\n if(editY) {\n var yr0 = Lib.simpleMap(edit.yr0, ya.r2l);\n var yr1 = Lib.simpleMap(edit.yr1, ya.r2l);\n var dy0 = yr0[1] - yr0[0];\n var dy1 = yr1[1] - yr1[0];\n viewBox[1] = (yr0[1] * (1 - progress) + progress * yr1[1] - yr0[1]) / (yr0[0] - yr0[1]) * ylen;\n viewBox[3] = ylen * ((1 - progress) + progress * dy1 / dy0);\n ya.range[0] = xa.l2r(yr0[0] * (1 - progress) + progress * yr1[0]);\n ya.range[1] = ya.l2r(yr0[1] * (1 - progress) + progress * yr1[1]);\n } else {\n viewBox[1] = 0;\n viewBox[3] = ylen;\n }\n\n Axes.drawOne(gd, xa, {skipTitle: true});\n Axes.drawOne(gd, ya, {skipTitle: true});\n Axes.redrawComponents(gd, [xa._id, ya._id]);\n\n var xScaleFactor = editX ? xlen / viewBox[2] : 1;\n var yScaleFactor = editY ? ylen / viewBox[3] : 1;\n var clipDx = editX ? viewBox[0] : 0;\n var clipDy = editY ? viewBox[1] : 0;\n var fracDx = editX ? (viewBox[0] / viewBox[2] * xlen) : 0;\n var fracDy = editY ? (viewBox[1] / viewBox[3] * ylen) : 0;\n var plotDx = xa._offset - fracDx;\n var plotDy = ya._offset - fracDy;\n\n plotinfo.clipRect\n .call(Drawing.setTranslate, clipDx, clipDy)\n .call(Drawing.setScale, 1 / xScaleFactor, 1 / yScaleFactor);\n\n plotinfo.plot\n .call(Drawing.setTranslate, plotDx, plotDy)\n .call(Drawing.setScale, xScaleFactor, yScaleFactor);\n\n // apply an inverse scale to individual points to counteract\n // the scale of the trace group.\n Drawing.setPointGroupScale(plotinfo.zoomScalePts, 1 / xScaleFactor, 1 / yScaleFactor);\n Drawing.setTextPointsScale(plotinfo.zoomScaleTxt, 1 / xScaleFactor, 1 / yScaleFactor);\n }\n\n var onComplete;\n if(makeOnCompleteCallback) {\n // This module makes the choice whether or not it notifies Plotly.transition\n // about completion:\n onComplete = makeOnCompleteCallback();\n }\n\n function transitionComplete() {\n var aobj = {};\n\n for(var i = 0; i < edits.length; i++) {\n var edit = edits[i];\n var xa = edit.plotinfo.xaxis;\n var ya = edit.plotinfo.yaxis;\n if(edit.xr1) aobj[xa._name + '.range'] = edit.xr1.slice();\n if(edit.yr1) aobj[ya._name + '.range'] = edit.yr1.slice();\n }\n\n // Signal that this transition has completed:\n onComplete && onComplete();\n\n return Registry.call('relayout', gd, aobj).then(function() {\n for(var i = 0; i < edits.length; i++) {\n unsetSubplotTransform(edits[i].plotinfo);\n }\n });\n }\n\n function transitionInterrupt() {\n var aobj = {};\n\n for(var i = 0; i < edits.length; i++) {\n var edit = edits[i];\n var xa = edit.plotinfo.xaxis;\n var ya = edit.plotinfo.yaxis;\n if(edit.xr0) aobj[xa._name + '.range'] = edit.xr0.slice();\n if(edit.yr0) aobj[ya._name + '.range'] = edit.yr0.slice();\n }\n\n return Registry.call('relayout', gd, aobj).then(function() {\n for(var i = 0; i < edits.length; i++) {\n unsetSubplotTransform(edits[i].plotinfo);\n }\n });\n }\n\n var t1, t2, raf;\n var easeFn = d3.ease(transitionOpts.easing);\n\n gd._transitionData._interruptCallbacks.push(function() {\n window.cancelAnimationFrame(raf);\n raf = null;\n return transitionInterrupt();\n });\n\n function doFrame() {\n t2 = Date.now();\n\n var tInterp = Math.min(1, (t2 - t1) / transitionOpts.duration);\n var progress = easeFn(tInterp);\n\n for(var i = 0; i < edits.length; i++) {\n updateSubplot(edits[i], progress);\n }\n\n if(t2 - t1 > transitionOpts.duration) {\n transitionComplete();\n raf = window.cancelAnimationFrame(doFrame);\n } else {\n raf = window.requestAnimationFrame(doFrame);\n }\n }\n\n t1 = Date.now();\n raf = window.requestAnimationFrame(doFrame);\n\n return Promise.resolve();\n};\n\n\n/***/ }),\n\n/***/ \"044b\":\n/***/ (function(module, exports) {\n\n/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n\n\n/***/ }),\n\n/***/ \"046b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar rules = {\n \"X,X div\": \"direction:ltr;font-family:'Open Sans', verdana, arial, sans-serif;margin:0;padding:0;\",\n \"X input,X button\": \"font-family:'Open Sans', verdana, arial, sans-serif;\",\n \"X input:focus,X button:focus\": \"outline:none;\",\n \"X a\": \"text-decoration:none;\",\n \"X a:hover\": \"text-decoration:none;\",\n \"X .crisp\": \"shape-rendering:crispEdges;\",\n \"X .user-select-none\": \"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;\",\n \"X svg\": \"overflow:hidden;\",\n \"X svg a\": \"fill:#447adb;\",\n \"X svg a:hover\": \"fill:#3c6dc5;\",\n \"X .main-svg\": \"position:absolute;top:0;left:0;pointer-events:none;\",\n \"X .main-svg .draglayer\": \"pointer-events:all;\",\n \"X .cursor-default\": \"cursor:default;\",\n \"X .cursor-pointer\": \"cursor:pointer;\",\n \"X .cursor-crosshair\": \"cursor:crosshair;\",\n \"X .cursor-move\": \"cursor:move;\",\n \"X .cursor-col-resize\": \"cursor:col-resize;\",\n \"X .cursor-row-resize\": \"cursor:row-resize;\",\n \"X .cursor-ns-resize\": \"cursor:ns-resize;\",\n \"X .cursor-ew-resize\": \"cursor:ew-resize;\",\n \"X .cursor-sw-resize\": \"cursor:sw-resize;\",\n \"X .cursor-s-resize\": \"cursor:s-resize;\",\n \"X .cursor-se-resize\": \"cursor:se-resize;\",\n \"X .cursor-w-resize\": \"cursor:w-resize;\",\n \"X .cursor-e-resize\": \"cursor:e-resize;\",\n \"X .cursor-nw-resize\": \"cursor:nw-resize;\",\n \"X .cursor-n-resize\": \"cursor:n-resize;\",\n \"X .cursor-ne-resize\": \"cursor:ne-resize;\",\n \"X .cursor-grab\": \"cursor:-webkit-grab;cursor:grab;\",\n \"X .modebar\": \"position:absolute;top:2px;right:2px;\",\n \"X .ease-bg\": \"-webkit-transition:background-color 0.3s ease 0s;-moz-transition:background-color 0.3s ease 0s;-ms-transition:background-color 0.3s ease 0s;-o-transition:background-color 0.3s ease 0s;transition:background-color 0.3s ease 0s;\",\n \"X .modebar--hover>:not(.watermark)\": \"opacity:0;-webkit-transition:opacity 0.3s ease 0s;-moz-transition:opacity 0.3s ease 0s;-ms-transition:opacity 0.3s ease 0s;-o-transition:opacity 0.3s ease 0s;transition:opacity 0.3s ease 0s;\",\n \"X:hover .modebar--hover .modebar-group\": \"opacity:1;\",\n \"X .modebar-group\": \"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;\",\n \"X .modebar-btn\": \"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;\",\n \"X .modebar-btn svg\": \"position:relative;top:2px;\",\n \"X .modebar.vertical\": \"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;\",\n \"X .modebar.vertical svg\": \"top:-1px;\",\n \"X .modebar.vertical .modebar-group\": \"display:block;float:none;padding-left:0px;padding-bottom:8px;\",\n \"X .modebar.vertical .modebar-group .modebar-btn\": \"display:block;text-align:center;\",\n \"X [data-title]:before,X [data-title]:after\": \"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;\",\n \"X [data-title]:hover:before,X [data-title]:hover:after\": \"display:block;opacity:1;\",\n \"X [data-title]:before\": \"content:'';position:absolute;background:transparent;border:6px solid transparent;z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;\",\n \"X [data-title]:after\": \"content:attr(data-title);background:#69738a;color:white;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;\",\n \"X .vertical [data-title]:before,X .vertical [data-title]:after\": \"top:0%;right:200%;\",\n \"X .vertical [data-title]:before\": \"border:6px solid transparent;border-left-color:#69738a;margin-top:8px;margin-right:-30px;\",\n \"X .select-outline\": \"fill:none;stroke-width:1;shape-rendering:crispEdges;\",\n \"X .select-outline-1\": \"stroke:white;\",\n \"X .select-outline-2\": \"stroke:black;stroke-dasharray:2px 2px;\",\n Y: \"font-family:'Open Sans';position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;\",\n \"Y p\": \"margin:0;\",\n \"Y .notifier-note\": \"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,0.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;\",\n \"Y .notifier-close\": \"color:#fff;opacity:0.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;\",\n \"Y .notifier-close:hover\": \"color:#444;text-decoration:none;cursor:pointer;\"\n};\n\nfor(var selector in rules) {\n var fullSelector = selector.replace(/^,/,' ,')\n .replace(/X/g, '.js-plotly-plot .plotly')\n .replace(/Y/g, '.plotly-notifier');\n Lib.addStyleRule(fullSelector, rules[selector]);\n}\n\n\n/***/ }),\n\n/***/ \"04a4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createCamera = __webpack_require__(\"9351\")\nvar createAxes = __webpack_require__(\"dbd1\")\nvar axesRanges = __webpack_require__(\"15dd\")\nvar createSpikes = __webpack_require__(\"794e\")\nvar createSelect = __webpack_require__(\"578f\")\nvar createFBO = __webpack_require__(\"44c3\")\nvar drawTriangle = __webpack_require__(\"a92a\")\nvar mouseChange = __webpack_require__(\"91b8\")\nvar perspective = __webpack_require__(\"7ad0\")\nvar ortho = __webpack_require__(\"f889\")\nvar createShader = __webpack_require__(\"5ccc\")\nvar isMobile = __webpack_require__(\"8df8\")({ tablet: true })\n\nmodule.exports = {\n createScene: createScene,\n createCamera: createCamera\n}\n\nfunction MouseSelect() {\n this.mouse = [-1,-1]\n this.screen = null\n this.distance = Infinity\n this.index = null\n this.dataCoordinate = null\n this.dataPosition = null\n this.object = null\n this.data = null\n}\n\nfunction getContext(canvas, options) {\n var gl = null\n try {\n gl = canvas.getContext('webgl', options)\n if(!gl) {\n gl = canvas.getContext('experimental-webgl', options)\n }\n } catch(e) {\n return null\n }\n return gl\n}\n\nfunction roundUpPow10(x) {\n var y = Math.round(Math.log(Math.abs(x)) / Math.log(10))\n if(y < 0) {\n var base = Math.round(Math.pow(10, -y))\n return Math.ceil(x*base) / base\n } else if(y > 0) {\n var base = Math.round(Math.pow(10, y))\n return Math.ceil(x/base) * base\n }\n return Math.ceil(x)\n}\n\nfunction defaultBool(x) {\n if(typeof x === 'boolean') {\n return x\n }\n return true\n}\n\nfunction createScene(options) {\n options = options || {}\n options.camera = options.camera || {}\n\n var canvas = options.canvas\n if(!canvas) {\n canvas = document.createElement('canvas')\n if(options.container) {\n var container = options.container\n container.appendChild(canvas)\n } else {\n document.body.appendChild(canvas)\n }\n }\n\n var gl = options.gl\n if(!gl) {\n gl = getContext(canvas,\n options.glOptions || {\n premultipliedAlpha: true,\n antialias: true,\n preserveDrawingBuffer: isMobile\n })\n }\n if(!gl) {\n throw new Error('webgl not supported')\n }\n\n //Initial bounds\n var bounds = options.bounds || [[-10,-10,-10], [10,10,10]]\n\n //Create selection\n var selection = new MouseSelect()\n\n //Accumulation buffer\n var accumBuffer = createFBO(gl,\n [gl.drawingBufferWidth, gl.drawingBufferHeight], {\n preferFloat: !isMobile\n })\n\n var accumShader = createShader(gl)\n\n var isOrtho =\n (options.cameraObject && options.cameraObject._ortho === true) ||\n (options.camera.projection && options.camera.projection.type === 'orthographic') ||\n false\n\n //Create a camera\n var cameraOptions = {\n eye: options.camera.eye || [2,0,0],\n center: options.camera.center || [0,0,0],\n up: options.camera.up || [0,1,0],\n zoomMin: options.camera.zoomMax || 0.1,\n zoomMax: options.camera.zoomMin || 100,\n mode: options.camera.mode || 'turntable',\n _ortho: isOrtho\n }\n\n //Create axes\n var axesOptions = options.axes || {}\n var axes = createAxes(gl, axesOptions)\n axes.enable = !axesOptions.disable\n\n //Create spikes\n var spikeOptions = options.spikes || {}\n var spikes = createSpikes(gl, spikeOptions)\n\n //Object list is empty initially\n var objects = []\n var pickBufferIds = []\n var pickBufferCount = []\n var pickBuffers = []\n\n //Dirty flag, skip redraw if scene static\n var dirty = true\n var pickDirty = true\n\n var projection = new Array(16)\n var model = new Array(16)\n\n var cameraParams = {\n view: null,\n projection: projection,\n model: model,\n _ortho: false\n }\n\n var pickDirty = true\n\n var viewShape = [ gl.drawingBufferWidth, gl.drawingBufferHeight ]\n\n var camera = options.cameraObject || createCamera(canvas, cameraOptions)\n\n //Create scene object\n var scene = {\n gl: gl,\n contextLost: false,\n pixelRatio: options.pixelRatio || 1,\n canvas: canvas,\n selection: selection,\n camera: camera,\n axes: axes,\n axesPixels: null,\n spikes: spikes,\n bounds: bounds,\n objects: objects,\n shape: viewShape,\n aspect: options.aspectRatio || [1,1,1],\n pickRadius: options.pickRadius || 10,\n zNear: options.zNear || 0.01,\n zFar: options.zFar || 1000,\n fovy: options.fovy || Math.PI/4,\n clearColor: options.clearColor || [0,0,0,0],\n autoResize: defaultBool(options.autoResize),\n autoBounds: defaultBool(options.autoBounds),\n autoScale: !!options.autoScale,\n autoCenter: defaultBool(options.autoCenter),\n clipToBounds: defaultBool(options.clipToBounds),\n snapToData: !!options.snapToData,\n onselect: options.onselect || null,\n onrender: options.onrender || null,\n onclick: options.onclick || null,\n cameraParams: cameraParams,\n oncontextloss: null,\n mouseListener: null,\n _stopped: false,\n\n getAspectratio: function() {\n return {\n x: this.aspect[0],\n y: this.aspect[1],\n z: this.aspect[2]\n }\n },\n\n setAspectratio: function(aspectratio) {\n this.aspect[0] = aspectratio.x\n this.aspect[1] = aspectratio.y\n this.aspect[2] = aspectratio.z\n },\n\n setBounds: function(axisIndex, range) {\n this.bounds[0][axisIndex] = range.min\n this.bounds[1][axisIndex] = range.max\n },\n\n setClearColor: function(clearColor) {\n this.clearColor = clearColor\n },\n\n clearRGBA: function() {\n this.gl.clearColor(\n this.clearColor[0],\n this.clearColor[1],\n this.clearColor[2],\n this.clearColor[3]\n )\n\n this.gl.clear(\n this.gl.COLOR_BUFFER_BIT |\n this.gl.DEPTH_BUFFER_BIT\n )\n }\n }\n\n var pickShape = [ (gl.drawingBufferWidth/scene.pixelRatio)|0, (gl.drawingBufferHeight/scene.pixelRatio)|0 ]\n\n function resizeListener() {\n if(scene._stopped) {\n return\n }\n if(!scene.autoResize) {\n return\n }\n var parent = canvas.parentNode\n var width = 1\n var height = 1\n if(parent && parent !== document.body) {\n width = parent.clientWidth\n height = parent.clientHeight\n } else {\n width = window.innerWidth\n height = window.innerHeight\n }\n var nextWidth = Math.ceil(width * scene.pixelRatio)|0\n var nextHeight = Math.ceil(height * scene.pixelRatio)|0\n if(nextWidth !== canvas.width || nextHeight !== canvas.height) {\n canvas.width = nextWidth\n canvas.height = nextHeight\n var style = canvas.style\n style.position = style.position || 'absolute'\n style.left = '0px'\n style.top = '0px'\n style.width = width + 'px'\n style.height = height + 'px'\n dirty = true\n }\n }\n if(scene.autoResize) {\n resizeListener()\n }\n window.addEventListener('resize', resizeListener)\n\n function reallocPickIds() {\n var numObjs = objects.length\n var numPick = pickBuffers.length\n for(var i=0; i 0 && pickBufferCount[numPick-1] === 0) {\n pickBufferCount.pop()\n pickBuffers.pop().dispose()\n }\n }\n\n scene.update = function(options) {\n\n if(scene._stopped) {\n return\n }\n options = options || {}\n dirty = true\n pickDirty = true\n }\n\n scene.add = function(obj) {\n if(scene._stopped) {\n return\n }\n obj.axes = axes\n objects.push(obj)\n pickBufferIds.push(-1)\n dirty = true\n pickDirty = true\n reallocPickIds()\n }\n\n scene.remove = function(obj) {\n if(scene._stopped) {\n return\n }\n var idx = objects.indexOf(obj)\n if(idx < 0) {\n return\n }\n objects.splice(idx, 1)\n pickBufferIds.pop()\n dirty = true\n pickDirty = true\n reallocPickIds()\n }\n\n scene.dispose = function() {\n if(scene._stopped) {\n return\n }\n\n scene._stopped = true\n\n window.removeEventListener('resize', resizeListener)\n canvas.removeEventListener('webglcontextlost', checkContextLoss)\n scene.mouseListener.enabled = false\n\n if(scene.contextLost) {\n return\n }\n\n //Destroy objects\n axes.dispose()\n spikes.dispose()\n for(var i=0; i selection.distance) {\n continue\n }\n for(var j=0; j 0) {\n stepVal.push(stride(i, order[j-1]) + \"*\" + shape(order[j-1]) )\n }\n vars.push(step(i,order[j]) + \"=(\" + stepVal.join(\"-\") + \")|0\")\n }\n }\n //Create index variables\n for(var i=0; i=0; --i) {\n sizeVariable.push(shape(order[i]))\n }\n //Previous phases and vertex_ids\n vars.push(POOL_SIZE + \"=(\" + sizeVariable.join(\"*\") + \")|0\",\n PHASES + \"=mallocUint32(\" + POOL_SIZE + \")\",\n VERTEX_IDS + \"=mallocUint32(\" + POOL_SIZE + \")\",\n POINTER + \"=0\")\n //Create cube variables for phases\n vars.push(pcube(0) + \"=0\")\n for(var j=1; j<(1<=0; --i) {\n forLoopBegin(i, 0) \n }\n var phaseFuncArgs = []\n for(var i=0; i0; k=(k-1)&subset) {\n faceArgs.push(VERTEX_IDS + \"[\" + POINTER + \"+\" + pdelta(k) + \"]\")\n }\n faceArgs.push(vert(0))\n for(var k=0; k0){\",\n index(order[i]), \"=1;\")\n createLoop(i-1, mask|(1< 0\")\n }\n if(typeof args.vertex !== \"function\") {\n error(\"Must specify vertex creation function\")\n }\n if(typeof args.cell !== \"function\") {\n error(\"Must specify cell creation function\")\n }\n if(typeof args.phase !== \"function\") {\n error(\"Must specify phase function\")\n }\n var getters = args.getters || []\n var typesig = new Array(arrays)\n for(var i=0; i= 0) {\n typesig[i] = true\n } else {\n typesig[i] = false\n }\n }\n return compileSurfaceProcedure(\n args.vertex,\n args.cell,\n args.phase,\n scalars,\n order,\n typesig)\n}\n\n/***/ }),\n\n/***/ \"05d6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n nodeTextOffsetHorizontal: 4,\n nodeTextOffsetVertical: 3,\n nodePadAcross: 10,\n sankeyIterations: 50,\n forceIterations: 5,\n forceTicksPerFrame: 10,\n duration: 500,\n ease: 'linear',\n cn: {\n sankey: 'sankey',\n sankeyLinks: 'sankey-links',\n sankeyLink: 'sankey-link',\n sankeyNodeSet: 'sankey-node-set',\n sankeyNode: 'sankey-node',\n nodeRect: 'node-rect',\n nodeCapture: 'node-capture',\n nodeCentered: 'node-entered',\n nodeLabelGuide: 'node-label-guide',\n nodeLabel: 'node-label',\n nodeLabelTextPath: 'node-label-text-path'\n }\n};\n\n\n/***/ }),\n\n/***/ \"0625\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Axes = __webpack_require__(\"0642\");\n\nvar histogram2dCalc = __webpack_require__(\"7f9e\");\nvar colorscaleCalc = __webpack_require__(\"3aa8\");\nvar convertColumnData = __webpack_require__(\"d064\");\nvar clean2dArray = __webpack_require__(\"1b6a\");\nvar interp2d = __webpack_require__(\"2d0e\");\nvar findEmpties = __webpack_require__(\"0c3a\");\nvar makeBoundArray = __webpack_require__(\"d706\");\n\nmodule.exports = function calc(gd, trace) {\n // prepare the raw data\n // run makeCalcdata on x and y even for heatmaps, in case of category mappings\n var xa = Axes.getFromId(gd, trace.xaxis || 'x');\n var ya = Axes.getFromId(gd, trace.yaxis || 'y');\n var isContour = Registry.traceIs(trace, 'contour');\n var isHist = Registry.traceIs(trace, 'histogram');\n var isGL2D = Registry.traceIs(trace, 'gl2d');\n var zsmooth = isContour ? 'best' : trace.zsmooth;\n var x;\n var x0;\n var dx;\n var y;\n var y0;\n var dy;\n var z;\n var i;\n var binned;\n\n // cancel minimum tick spacings (only applies to bars and boxes)\n xa._minDtick = 0;\n ya._minDtick = 0;\n\n if(isHist) {\n binned = histogram2dCalc(gd, trace);\n x = binned.x;\n x0 = binned.x0;\n dx = binned.dx;\n y = binned.y;\n y0 = binned.y0;\n dy = binned.dy;\n z = binned.z;\n } else {\n var zIn = trace.z;\n if(Lib.isArray1D(zIn)) {\n convertColumnData(trace, xa, ya, 'x', 'y', ['z']);\n x = trace._x;\n y = trace._y;\n zIn = trace._z;\n } else {\n x = trace._x = trace.x ? xa.makeCalcdata(trace, 'x') : [];\n y = trace._y = trace.y ? ya.makeCalcdata(trace, 'y') : [];\n }\n\n x0 = trace.x0;\n dx = trace.dx;\n y0 = trace.y0;\n dy = trace.dy;\n\n z = clean2dArray(zIn, trace, xa, ya);\n\n if(isContour || trace.connectgaps) {\n trace._emptypoints = findEmpties(z);\n interp2d(z, trace._emptypoints);\n }\n }\n\n function noZsmooth(msg) {\n zsmooth = trace._input.zsmooth = trace.zsmooth = false;\n Lib.warn('cannot use zsmooth: \"fast\": ' + msg);\n }\n\n // check whether we really can smooth (ie all boxes are about the same size)\n if(zsmooth === 'fast') {\n if(xa.type === 'log' || ya.type === 'log') {\n noZsmooth('log axis found');\n } else if(!isHist) {\n if(x.length) {\n var avgdx = (x[x.length - 1] - x[0]) / (x.length - 1);\n var maxErrX = Math.abs(avgdx / 100);\n for(i = 0; i < x.length - 1; i++) {\n if(Math.abs(x[i + 1] - x[i] - avgdx) > maxErrX) {\n noZsmooth('x scale is not linear');\n break;\n }\n }\n }\n if(y.length && zsmooth === 'fast') {\n var avgdy = (y[y.length - 1] - y[0]) / (y.length - 1);\n var maxErrY = Math.abs(avgdy / 100);\n for(i = 0; i < y.length - 1; i++) {\n if(Math.abs(y[i + 1] - y[i] - avgdy) > maxErrY) {\n noZsmooth('y scale is not linear');\n break;\n }\n }\n }\n }\n }\n\n // create arrays of brick boundaries, to be used by autorange and heatmap.plot\n var xlen = Lib.maxRowLength(z);\n var xIn = trace.xtype === 'scaled' ? '' : x;\n var xArray = makeBoundArray(trace, xIn, x0, dx, xlen, xa);\n var yIn = trace.ytype === 'scaled' ? '' : y;\n var yArray = makeBoundArray(trace, yIn, y0, dy, z.length, ya);\n\n // handled in gl2d convert step\n if(!isGL2D) {\n trace._extremes[xa._id] = Axes.findExtremes(xa, xArray);\n trace._extremes[ya._id] = Axes.findExtremes(ya, yArray);\n }\n\n var cd0 = {\n x: xArray,\n y: yArray,\n z: z,\n text: trace._text || trace.text,\n hovertext: trace._hovertext || trace.hovertext\n };\n\n if(xIn && xIn.length === xArray.length - 1) cd0.xCenter = xIn;\n if(yIn && yIn.length === yArray.length - 1) cd0.yCenter = yIn;\n\n if(isHist) {\n cd0.xRanges = binned.xRanges;\n cd0.yRanges = binned.yRanges;\n cd0.pts = binned.pts;\n }\n\n if(!isContour) {\n colorscaleCalc(gd, trace, {vals: z, cLetter: 'z'});\n }\n\n if(isContour && trace.contours && trace.contours.coloring === 'heatmap') {\n var dummyTrace = {\n type: trace.type === 'contour' ? 'heatmap' : 'histogram2d',\n xcalendar: trace.xcalendar,\n ycalendar: trace.ycalendar\n };\n cd0.xfill = makeBoundArray(dummyTrace, xIn, x0, dx, xlen, xa);\n cd0.yfill = makeBoundArray(dummyTrace, yIn, y0, dy, z.length, ya);\n }\n\n return [cd0];\n};\n\n\n/***/ }),\n\n/***/ \"0642\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\nvar Plots = __webpack_require__(\"bb71\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar svgTextUtils = __webpack_require__(\"0379\");\nvar Titles = __webpack_require__(\"1999\");\nvar Color = __webpack_require__(\"d115\");\nvar Drawing = __webpack_require__(\"83d1\");\n\nvar axAttrs = __webpack_require__(\"d798\");\nvar cleanTicks = __webpack_require__(\"da6a\");\n\nvar constants = __webpack_require__(\"e806\");\nvar ONEAVGYEAR = constants.ONEAVGYEAR;\nvar ONEAVGMONTH = constants.ONEAVGMONTH;\nvar ONEDAY = constants.ONEDAY;\nvar ONEHOUR = constants.ONEHOUR;\nvar ONEMIN = constants.ONEMIN;\nvar ONESEC = constants.ONESEC;\nvar MINUS_SIGN = constants.MINUS_SIGN;\nvar BADNUM = constants.BADNUM;\n\nvar alignmentConstants = __webpack_require__(\"63dc\");\nvar MID_SHIFT = alignmentConstants.MID_SHIFT;\nvar CAP_SHIFT = alignmentConstants.CAP_SHIFT;\nvar LINE_SPACING = alignmentConstants.LINE_SPACING;\nvar OPPOSITE_SIDE = alignmentConstants.OPPOSITE_SIDE;\n\nvar axes = module.exports = {};\n\naxes.setConvert = __webpack_require__(\"1a40\");\nvar autoType = __webpack_require__(\"0b77\");\n\nvar axisIds = __webpack_require__(\"3c1c\");\naxes.id2name = axisIds.id2name;\naxes.name2id = axisIds.name2id;\naxes.cleanId = axisIds.cleanId;\naxes.list = axisIds.list;\naxes.listIds = axisIds.listIds;\naxes.getFromId = axisIds.getFromId;\naxes.getFromTrace = axisIds.getFromTrace;\n\nvar autorange = __webpack_require__(\"ce56\");\naxes.getAutoRange = autorange.getAutoRange;\naxes.findExtremes = autorange.findExtremes;\n\n/*\n * find the list of possible axes to reference with an xref or yref attribute\n * and coerce it to that list\n *\n * attr: the attribute we're generating a reference for. Should end in 'x' or 'y'\n * but can be prefixed, like 'ax' for annotation's arrow x\n * dflt: the default to coerce to, or blank to use the first axis (falling back on\n * extraOption if there is no axis)\n * extraOption: aside from existing axes with this letter, what non-axis value is allowed?\n * Only required if it's different from `dflt`\n */\naxes.coerceRef = function(containerIn, containerOut, gd, attr, dflt, extraOption) {\n var axLetter = attr.charAt(attr.length - 1);\n var axlist = gd._fullLayout._subplots[axLetter + 'axis'];\n var refAttr = attr + 'ref';\n var attrDef = {};\n\n if(!dflt) dflt = axlist[0] || extraOption;\n if(!extraOption) extraOption = dflt;\n\n // data-ref annotations are not supported in gl2d yet\n\n attrDef[refAttr] = {\n valType: 'enumerated',\n values: axlist.concat(extraOption ? [extraOption] : []),\n dflt: dflt\n };\n\n // xref, yref\n return Lib.coerce(containerIn, containerOut, attrDef, refAttr);\n};\n\n/*\n * coerce position attributes (range-type) that can be either on axes or absolute\n * (paper or pixel) referenced. The biggest complication here is that we don't know\n * before looking at the axis whether the value must be a number or not (it may be\n * a date string), so we can't use the regular valType='number' machinery\n *\n * axRef (string): the axis this position is referenced to, or:\n * paper: fraction of the plot area\n * pixel: pixels relative to some starting position\n * attr (string): the attribute in containerOut we are coercing\n * dflt (number): the default position, as a fraction or pixels. If the attribute\n * is to be axis-referenced, this will be converted to an axis data value\n *\n * Also cleans the values, since the attribute definition itself has to say\n * valType: 'any' to handle date axes. This allows us to accept:\n * - for category axes: category names, and convert them here into serial numbers.\n * Note that this will NOT work for axis range endpoints, because we don't know\n * the category list yet (it's set by ax.makeCalcdata during calc)\n * but it works for component (note, shape, images) positions.\n * - for date axes: JS Dates or milliseconds, and convert to date strings\n * - for other types: coerce them to numbers\n */\naxes.coercePosition = function(containerOut, gd, coerce, axRef, attr, dflt) {\n var cleanPos, pos;\n\n if(axRef === 'paper' || axRef === 'pixel') {\n cleanPos = Lib.ensureNumber;\n pos = coerce(attr, dflt);\n } else {\n var ax = axes.getFromId(gd, axRef);\n dflt = ax.fraction2r(dflt);\n pos = coerce(attr, dflt);\n cleanPos = ax.cleanPos;\n }\n\n containerOut[attr] = cleanPos(pos);\n};\n\naxes.cleanPosition = function(pos, gd, axRef) {\n var cleanPos = (axRef === 'paper' || axRef === 'pixel') ?\n Lib.ensureNumber :\n axes.getFromId(gd, axRef).cleanPos;\n\n return cleanPos(pos);\n};\n\naxes.redrawComponents = function(gd, axIds) {\n axIds = axIds ? axIds : axes.listIds(gd);\n\n var fullLayout = gd._fullLayout;\n\n function _redrawOneComp(moduleName, methodName, stashName, shortCircuit) {\n var method = Registry.getComponentMethod(moduleName, methodName);\n var stash = {};\n\n for(var i = 0; i < axIds.length; i++) {\n var ax = fullLayout[axes.id2name(axIds[i])];\n var indices = ax[stashName];\n\n for(var j = 0; j < indices.length; j++) {\n var ind = indices[j];\n\n if(!stash[ind]) {\n method(gd, ind);\n stash[ind] = 1;\n // once is enough for images (which doesn't use the `i` arg anyway)\n if(shortCircuit) return;\n }\n }\n }\n }\n\n // annotations and shapes 'draw' method is slow,\n // use the finer-grained 'drawOne' method instead\n _redrawOneComp('annotations', 'drawOne', '_annIndices');\n _redrawOneComp('shapes', 'drawOne', '_shapeIndices');\n _redrawOneComp('images', 'draw', '_imgIndices', true);\n};\n\nvar getDataConversions = axes.getDataConversions = function(gd, trace, target, targetArray) {\n var ax;\n\n // If target points to an axis, use the type we already have for that\n // axis to find the data type. Otherwise use the values to autotype.\n var d2cTarget = (target === 'x' || target === 'y' || target === 'z') ?\n target :\n targetArray;\n\n // In the case of an array target, make a mock data array\n // and call supplyDefaults to the data type and\n // setup the data-to-calc method.\n if(Array.isArray(d2cTarget)) {\n ax = {\n type: autoType(targetArray),\n _categories: []\n };\n axes.setConvert(ax);\n\n // build up ax._categories (usually done during ax.makeCalcdata()\n if(ax.type === 'category') {\n for(var i = 0; i < targetArray.length; i++) {\n ax.d2c(targetArray[i]);\n }\n }\n // TODO what to do for transforms?\n } else {\n ax = axes.getFromTrace(gd, trace, d2cTarget);\n }\n\n // if 'target' has corresponding axis\n // -> use setConvert method\n if(ax) return {d2c: ax.d2c, c2d: ax.c2d};\n\n // special case for 'ids'\n // -> cast to String\n if(d2cTarget === 'ids') return {d2c: toString, c2d: toString};\n\n // otherwise (e.g. numeric-array of 'marker.color' or 'marker.size')\n // -> cast to Number\n\n return {d2c: toNum, c2d: toNum};\n};\n\nfunction toNum(v) { return +v; }\nfunction toString(v) { return String(v); }\n\naxes.getDataToCoordFunc = function(gd, trace, target, targetArray) {\n return getDataConversions(gd, trace, target, targetArray).d2c;\n};\n\n// get counteraxis letter for this axis (name or id)\n// this can also be used as the id for default counter axis\naxes.counterLetter = function(id) {\n var axLetter = id.charAt(0);\n if(axLetter === 'x') return 'y';\n if(axLetter === 'y') return 'x';\n};\n\n// incorporate a new minimum difference and first tick into\n// forced\n// note that _forceTick0 is linearized, so needs to be turned into\n// a range value for setting tick0\naxes.minDtick = function(ax, newDiff, newFirst, allow) {\n // doesn't make sense to do forced min dTick on log or category axes,\n // and the plot itself may decide to cancel (ie non-grouped bars)\n if(['log', 'category', 'multicategory'].indexOf(ax.type) !== -1 || !allow) {\n ax._minDtick = 0;\n } else if(ax._minDtick === undefined) {\n // undefined means there's nothing there yet\n\n ax._minDtick = newDiff;\n ax._forceTick0 = newFirst;\n } else if(ax._minDtick) {\n if((ax._minDtick / newDiff + 1e-6) % 1 < 2e-6 &&\n // existing minDtick is an integer multiple of newDiff\n // (within rounding err)\n // and forceTick0 can be shifted to newFirst\n\n (((newFirst - ax._forceTick0) / newDiff % 1) +\n 1.000001) % 1 < 2e-6) {\n ax._minDtick = newDiff;\n ax._forceTick0 = newFirst;\n } else if((newDiff / ax._minDtick + 1e-6) % 1 > 2e-6 ||\n // if the converse is true (newDiff is a multiple of minDtick and\n // newFirst can be shifted to forceTick0) then do nothing - same\n // forcing stands. Otherwise, cancel forced minimum\n\n (((newFirst - ax._forceTick0) / ax._minDtick % 1) +\n 1.000001) % 1 > 2e-6) {\n ax._minDtick = 0;\n }\n }\n};\n\n// save a copy of the initial axis ranges in fullLayout\n// use them in mode bar and dblclick events\naxes.saveRangeInitial = function(gd, overwrite) {\n var axList = axes.list(gd, '', true);\n var hasOneAxisChanged = false;\n\n for(var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n var isNew = (ax._rangeInitial === undefined);\n var hasChanged = isNew || !(\n ax.range[0] === ax._rangeInitial[0] &&\n ax.range[1] === ax._rangeInitial[1]\n );\n\n if((isNew && ax.autorange === false) || (overwrite && hasChanged)) {\n ax._rangeInitial = ax.range.slice();\n hasOneAxisChanged = true;\n }\n }\n\n return hasOneAxisChanged;\n};\n\n// save a copy of the initial spike visibility\naxes.saveShowSpikeInitial = function(gd, overwrite) {\n var axList = axes.list(gd, '', true);\n var hasOneAxisChanged = false;\n var allSpikesEnabled = 'on';\n\n for(var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n var isNew = (ax._showSpikeInitial === undefined);\n var hasChanged = isNew || !(ax.showspikes === ax._showspikes);\n\n if(isNew || (overwrite && hasChanged)) {\n ax._showSpikeInitial = ax.showspikes;\n hasOneAxisChanged = true;\n }\n\n if(allSpikesEnabled === 'on' && !ax.showspikes) {\n allSpikesEnabled = 'off';\n }\n }\n gd._fullLayout._cartesianSpikesEnabled = allSpikesEnabled;\n return hasOneAxisChanged;\n};\n\naxes.autoBin = function(data, ax, nbins, is2d, calendar, size) {\n var dataMin = Lib.aggNums(Math.min, null, data);\n var dataMax = Lib.aggNums(Math.max, null, data);\n\n if(ax.type === 'category' || ax.type === 'multicategory') {\n return {\n start: dataMin - 0.5,\n end: dataMax + 0.5,\n size: Math.max(1, Math.round(size) || 1),\n _dataSpan: dataMax - dataMin,\n };\n }\n\n if(!calendar) calendar = ax.calendar;\n\n // piggyback off tick code to make \"nice\" bin sizes and edges\n var dummyAx;\n if(ax.type === 'log') {\n dummyAx = {\n type: 'linear',\n range: [dataMin, dataMax]\n };\n } else {\n dummyAx = {\n type: ax.type,\n range: Lib.simpleMap([dataMin, dataMax], ax.c2r, 0, calendar),\n calendar: calendar\n };\n }\n axes.setConvert(dummyAx);\n\n size = size && cleanTicks.dtick(size, dummyAx.type);\n\n if(size) {\n dummyAx.dtick = size;\n dummyAx.tick0 = cleanTicks.tick0(undefined, dummyAx.type, calendar);\n } else {\n var size0;\n if(nbins) size0 = ((dataMax - dataMin) / nbins);\n else {\n // totally auto: scale off std deviation so the highest bin is\n // somewhat taller than the total number of bins, but don't let\n // the size get smaller than the 'nice' rounded down minimum\n // difference between values\n var distinctData = Lib.distinctVals(data);\n var msexp = Math.pow(10, Math.floor(\n Math.log(distinctData.minDiff) / Math.LN10));\n var minSize = msexp * Lib.roundUp(\n distinctData.minDiff / msexp, [0.9, 1.9, 4.9, 9.9], true);\n size0 = Math.max(minSize, 2 * Lib.stdev(data) /\n Math.pow(data.length, is2d ? 0.25 : 0.4));\n\n // fallback if ax.d2c output BADNUMs\n // e.g. when user try to plot categorical bins\n // on a layout.xaxis.type: 'linear'\n if(!isNumeric(size0)) size0 = 1;\n }\n\n axes.autoTicks(dummyAx, size0);\n }\n\n var finalSize = dummyAx.dtick;\n var binStart = axes.tickIncrement(\n axes.tickFirst(dummyAx), finalSize, 'reverse', calendar);\n var binEnd, bincount;\n\n // check for too many data points right at the edges of bins\n // (>50% within 1% of bin edges) or all data points integral\n // and offset the bins accordingly\n if(typeof finalSize === 'number') {\n binStart = autoShiftNumericBins(binStart, data, dummyAx, dataMin, dataMax);\n\n bincount = 1 + Math.floor((dataMax - binStart) / finalSize);\n binEnd = binStart + bincount * finalSize;\n } else {\n // month ticks - should be the only nonlinear kind we have at this point.\n // dtick (as supplied by axes.autoTick) only has nonlinear values on\n // date and log axes, but even if you display a histogram on a log axis\n // we bin it on a linear axis (which one could argue against, but that's\n // a separate issue)\n if(dummyAx.dtick.charAt(0) === 'M') {\n binStart = autoShiftMonthBins(binStart, data, finalSize, dataMin, calendar);\n }\n\n // calculate the endpoint for nonlinear ticks - you have to\n // just increment until you're done\n binEnd = binStart;\n bincount = 0;\n while(binEnd <= dataMax) {\n binEnd = axes.tickIncrement(binEnd, finalSize, false, calendar);\n bincount++;\n }\n }\n\n return {\n start: ax.c2r(binStart, 0, calendar),\n end: ax.c2r(binEnd, 0, calendar),\n size: finalSize,\n _dataSpan: dataMax - dataMin\n };\n};\n\n\nfunction autoShiftNumericBins(binStart, data, ax, dataMin, dataMax) {\n var edgecount = 0;\n var midcount = 0;\n var intcount = 0;\n var blankCount = 0;\n\n function nearEdge(v) {\n // is a value within 1% of a bin edge?\n return (1 + (v - binStart) * 100 / ax.dtick) % 100 < 2;\n }\n\n for(var i = 0; i < data.length; i++) {\n if(data[i] % 1 === 0) intcount++;\n else if(!isNumeric(data[i])) blankCount++;\n\n if(nearEdge(data[i])) edgecount++;\n if(nearEdge(data[i] + ax.dtick / 2)) midcount++;\n }\n var dataCount = data.length - blankCount;\n\n if(intcount === dataCount && ax.type !== 'date') {\n if(ax.dtick < 1) {\n // all integers: if bin size is <1, it's because\n // that was specifically requested (large nbins)\n // so respect that... but center the bins containing\n // integers on those integers\n\n binStart = dataMin - 0.5 * ax.dtick;\n } else {\n // otherwise start half an integer down regardless of\n // the bin size, just enough to clear up endpoint\n // ambiguity about which integers are in which bins.\n\n binStart -= 0.5;\n if(binStart + ax.dtick < dataMin) binStart += ax.dtick;\n }\n } else if(midcount < dataCount * 0.1) {\n if(edgecount > dataCount * 0.3 ||\n nearEdge(dataMin) || nearEdge(dataMax)) {\n // lots of points at the edge, not many in the middle\n // shift half a bin\n var binshift = ax.dtick / 2;\n binStart += (binStart + binshift < dataMin) ? binshift : -binshift;\n }\n }\n return binStart;\n}\n\n\nfunction autoShiftMonthBins(binStart, data, dtick, dataMin, calendar) {\n var stats = Lib.findExactDates(data, calendar);\n // number of data points that needs to be an exact value\n // to shift that increment to (near) the bin center\n var threshold = 0.8;\n\n if(stats.exactDays > threshold) {\n var numMonths = Number(dtick.substr(1));\n\n if((stats.exactYears > threshold) && (numMonths % 12 === 0)) {\n // The exact middle of a non-leap-year is 1.5 days into July\n // so if we start the bins here, all but leap years will\n // get hover-labeled as exact years.\n binStart = axes.tickIncrement(binStart, 'M6', 'reverse') + ONEDAY * 1.5;\n } else if(stats.exactMonths > threshold) {\n // Months are not as clean, but if we shift half the *longest*\n // month (31/2 days) then 31-day months will get labeled exactly\n // and shorter months will get labeled with the correct month\n // but shifted 12-36 hours into it.\n binStart = axes.tickIncrement(binStart, 'M1', 'reverse') + ONEDAY * 15.5;\n } else {\n // Shifting half a day is exact, but since these are month bins it\n // will always give a somewhat odd-looking label, until we do something\n // smarter like showing the bin boundaries (or the bounds of the actual\n // data in each bin)\n binStart -= ONEDAY / 2;\n }\n var nextBinStart = axes.tickIncrement(binStart, dtick);\n\n if(nextBinStart <= dataMin) return nextBinStart;\n }\n return binStart;\n}\n\n// ----------------------------------------------------\n// Ticks and grids\n// ----------------------------------------------------\n\n// ensure we have tick0, dtick, and tick rounding calculated\naxes.prepTicks = function(ax) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n\n // calculate max number of (auto) ticks to display based on plot size\n if(ax.tickmode === 'auto' || !ax.dtick) {\n var nt = ax.nticks;\n var minPx;\n\n if(!nt) {\n if(ax.type === 'category' || ax.type === 'multicategory') {\n minPx = ax.tickfont ? (ax.tickfont.size || 12) * 1.2 : 15;\n nt = ax._length / minPx;\n } else {\n minPx = ax._id.charAt(0) === 'y' ? 40 : 80;\n nt = Lib.constrain(ax._length / minPx, 4, 9) + 1;\n }\n\n // radial axes span half their domain,\n // multiply nticks value by two to get correct number of auto ticks.\n if(ax._name === 'radialaxis') nt *= 2;\n }\n\n // add a couple of extra digits for filling in ticks when we\n // have explicit tickvals without tick text\n if(ax.tickmode === 'array') nt *= 100;\n\n axes.autoTicks(ax, Math.abs(rng[1] - rng[0]) / nt);\n // check for a forced minimum dtick\n if(ax._minDtick > 0 && ax.dtick < ax._minDtick * 2) {\n ax.dtick = ax._minDtick;\n ax.tick0 = ax.l2r(ax._forceTick0);\n }\n }\n\n // check for missing tick0\n if(!ax.tick0) {\n ax.tick0 = (ax.type === 'date') ? '2000-01-01' : 0;\n }\n\n // ensure we don't try to make ticks below our minimum precision\n // see https://github.com/plotly/plotly.js/issues/2892\n if(ax.type === 'date' && ax.dtick < 0.1) ax.dtick = 0.1;\n\n // now figure out rounding of tick values\n autoTickRound(ax);\n};\n\n// calculate the ticks: text, values, positioning\n// if ticks are set to automatic, determine the right values (tick0,dtick)\n// in any case, set tickround to # of digits to round tick labels to,\n// or codes to this effect for log and date scales\naxes.calcTicks = function calcTicks(ax) {\n axes.prepTicks(ax);\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n\n // now that we've figured out the auto values for formatting\n // in case we're missing some ticktext, we can break out for array ticks\n if(ax.tickmode === 'array') return arrayTicks(ax);\n\n // find the first tick\n ax._tmin = axes.tickFirst(ax);\n\n // add a tiny bit so we get ticks which may have rounded out\n var startTick = rng[0] * 1.0001 - rng[1] * 0.0001;\n var endTick = rng[1] * 1.0001 - rng[0] * 0.0001;\n // check for reversed axis\n var axrev = (rng[1] < rng[0]);\n\n // No visible ticks? Quit.\n // I've only seen this on category axes with all categories off the edge.\n if((ax._tmin < startTick) !== axrev) return [];\n\n // return the full set of tick vals\n var tickVals = [];\n if(ax.type === 'category' || ax.type === 'multicategory') {\n endTick = (axrev) ? Math.max(-0.5, endTick) :\n Math.min(ax._categories.length - 0.5, endTick);\n }\n\n var isDLog = (ax.type === 'log') && !(isNumeric(ax.dtick) || ax.dtick.charAt(0) === 'L');\n\n var xPrevious = null;\n var maxTicks = Math.max(1000, ax._length || 0);\n for(var x = ax._tmin;\n (axrev) ? (x >= endTick) : (x <= endTick);\n x = axes.tickIncrement(x, ax.dtick, axrev, ax.calendar)) {\n // prevent infinite loops - no more than one tick per pixel,\n // and make sure each value is different from the previous\n if(tickVals.length > maxTicks || x === xPrevious) break;\n xPrevious = x;\n\n var minor = false;\n if(isDLog && (x !== (x | 0))) {\n minor = true;\n }\n\n tickVals.push({\n minor: minor,\n value: x\n });\n }\n\n // If same angle over a full circle, the last tick vals is a duplicate.\n // TODO must do something similar for angular date axes.\n if(isAngular(ax) && Math.abs(rng[1] - rng[0]) === 360) {\n tickVals.pop();\n }\n\n // save the last tick as well as first, so we can\n // show the exponent only on the last one\n ax._tmax = (tickVals[tickVals.length - 1] || {}).value;\n\n // for showing the rest of a date when the main tick label is only the\n // latter part: ax._prevDateHead holds what we showed most recently.\n // Start with it cleared and mark that we're in calcTicks (ie calculating a\n // whole string of these so we should care what the previous date head was!)\n ax._prevDateHead = '';\n ax._inCalcTicks = true;\n\n var ticksOut = new Array(tickVals.length);\n for(var i = 0; i < tickVals.length; i++) {\n ticksOut[i] = axes.tickText(\n ax,\n tickVals[i].value,\n false, // hover\n tickVals[i].minor // noSuffixPrefix\n );\n }\n\n ax._inCalcTicks = false;\n\n return ticksOut;\n};\n\nfunction arrayTicks(ax) {\n var vals = ax.tickvals;\n var text = ax.ticktext;\n var ticksOut = new Array(vals.length);\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n var r0expanded = rng[0] * 1.0001 - rng[1] * 0.0001;\n var r1expanded = rng[1] * 1.0001 - rng[0] * 0.0001;\n var tickMin = Math.min(r0expanded, r1expanded);\n var tickMax = Math.max(r0expanded, r1expanded);\n var j = 0;\n\n // without a text array, just format the given values as any other ticks\n // except with more precision to the numbers\n if(!Array.isArray(text)) text = [];\n\n // make sure showing ticks doesn't accidentally add new categories\n // TODO multicategory, if we allow ticktext / tickvals\n var tickVal2l = ax.type === 'category' ? ax.d2l_noadd : ax.d2l;\n\n // array ticks on log axes always show the full number\n // (if no explicit ticktext overrides it)\n if(ax.type === 'log' && String(ax.dtick).charAt(0) !== 'L') {\n ax.dtick = 'L' + Math.pow(10, Math.floor(Math.min(ax.range[0], ax.range[1])) - 1);\n }\n\n for(var i = 0; i < vals.length; i++) {\n var vali = tickVal2l(vals[i]);\n if(vali > tickMin && vali < tickMax) {\n if(text[i] === undefined) ticksOut[j] = axes.tickText(ax, vali);\n else ticksOut[j] = tickTextObj(ax, vali, String(text[i]));\n j++;\n }\n }\n\n if(j < vals.length) ticksOut.splice(j, vals.length - j);\n\n return ticksOut;\n}\n\nvar roundBase10 = [2, 5, 10];\nvar roundBase24 = [1, 2, 3, 6, 12];\nvar roundBase60 = [1, 2, 5, 10, 15, 30];\n// 2&3 day ticks are weird, but need something btwn 1&7\nvar roundDays = [1, 2, 3, 7, 14];\n// approx. tick positions for log axes, showing all (1) and just 1, 2, 5 (2)\n// these don't have to be exact, just close enough to round to the right value\nvar roundLog1 = [-0.046, 0, 0.301, 0.477, 0.602, 0.699, 0.778, 0.845, 0.903, 0.954, 1];\nvar roundLog2 = [-0.301, 0, 0.301, 0.699, 1];\n// N.B. `thetaunit; 'radians' angular axes must be converted to degrees\nvar roundAngles = [15, 30, 45, 90, 180];\n\nfunction roundDTick(roughDTick, base, roundingSet) {\n return base * Lib.roundUp(roughDTick / base, roundingSet);\n}\n\n// autoTicks: calculate best guess at pleasant ticks for this axis\n// inputs:\n// ax - an axis object\n// roughDTick - rough tick spacing (to be turned into a nice round number)\n// outputs (into ax):\n// tick0: starting point for ticks (not necessarily on the graph)\n// usually 0 for numeric (=10^0=1 for log) or jan 1, 2000 for dates\n// dtick: the actual, nice round tick spacing, usually a little larger than roughDTick\n// if the ticks are spaced linearly (linear scale, categories,\n// log with only full powers, date ticks < month),\n// this will just be a number\n// months: M#\n// years: M# where # is 12*number of years\n// log with linear ticks: L# where # is the linear tick spacing\n// log showing powers plus some intermediates:\n// D1 shows all digits, D2 shows 2 and 5\naxes.autoTicks = function(ax, roughDTick) {\n var base;\n\n function getBase(v) {\n return Math.pow(v, Math.floor(Math.log(roughDTick) / Math.LN10));\n }\n\n if(ax.type === 'date') {\n ax.tick0 = Lib.dateTick0(ax.calendar);\n // the criteria below are all based on the rough spacing we calculate\n // being > half of the final unit - so precalculate twice the rough val\n var roughX2 = 2 * roughDTick;\n\n if(roughX2 > ONEAVGYEAR) {\n roughDTick /= ONEAVGYEAR;\n base = getBase(10);\n ax.dtick = 'M' + (12 * roundDTick(roughDTick, base, roundBase10));\n } else if(roughX2 > ONEAVGMONTH) {\n roughDTick /= ONEAVGMONTH;\n ax.dtick = 'M' + roundDTick(roughDTick, 1, roundBase24);\n } else if(roughX2 > ONEDAY) {\n ax.dtick = roundDTick(roughDTick, ONEDAY, roundDays);\n // get week ticks on sunday\n // this will also move the base tick off 2000-01-01 if dtick is\n // 2 or 3 days... but that's a weird enough case that we'll ignore it.\n ax.tick0 = Lib.dateTick0(ax.calendar, true);\n } else if(roughX2 > ONEHOUR) {\n ax.dtick = roundDTick(roughDTick, ONEHOUR, roundBase24);\n } else if(roughX2 > ONEMIN) {\n ax.dtick = roundDTick(roughDTick, ONEMIN, roundBase60);\n } else if(roughX2 > ONESEC) {\n ax.dtick = roundDTick(roughDTick, ONESEC, roundBase60);\n } else {\n // milliseconds\n base = getBase(10);\n ax.dtick = roundDTick(roughDTick, base, roundBase10);\n }\n } else if(ax.type === 'log') {\n ax.tick0 = 0;\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n\n if(roughDTick > 0.7) {\n // only show powers of 10\n ax.dtick = Math.ceil(roughDTick);\n } else if(Math.abs(rng[1] - rng[0]) < 1) {\n // span is less than one power of 10\n var nt = 1.5 * Math.abs((rng[1] - rng[0]) / roughDTick);\n\n // ticks on a linear scale, labeled fully\n roughDTick = Math.abs(Math.pow(10, rng[1]) -\n Math.pow(10, rng[0])) / nt;\n base = getBase(10);\n ax.dtick = 'L' + roundDTick(roughDTick, base, roundBase10);\n } else {\n // include intermediates between powers of 10,\n // labeled with small digits\n // ax.dtick = \"D2\" (show 2 and 5) or \"D1\" (show all digits)\n ax.dtick = (roughDTick > 0.3) ? 'D2' : 'D1';\n }\n } else if(ax.type === 'category' || ax.type === 'multicategory') {\n ax.tick0 = 0;\n ax.dtick = Math.ceil(Math.max(roughDTick, 1));\n } else if(isAngular(ax)) {\n ax.tick0 = 0;\n base = 1;\n ax.dtick = roundDTick(roughDTick, base, roundAngles);\n } else {\n // auto ticks always start at 0\n ax.tick0 = 0;\n base = getBase(10);\n ax.dtick = roundDTick(roughDTick, base, roundBase10);\n }\n\n // prevent infinite loops\n if(ax.dtick === 0) ax.dtick = 1;\n\n // TODO: this is from log axis histograms with autorange off\n if(!isNumeric(ax.dtick) && typeof ax.dtick !== 'string') {\n var olddtick = ax.dtick;\n ax.dtick = 1;\n throw 'ax.dtick error: ' + String(olddtick);\n }\n};\n\n// after dtick is already known, find tickround = precision\n// to display in tick labels\n// for numeric ticks, integer # digits after . to round to\n// for date ticks, the last date part to show (y,m,d,H,M,S)\n// or an integer # digits past seconds\nfunction autoTickRound(ax) {\n var dtick = ax.dtick;\n\n ax._tickexponent = 0;\n if(!isNumeric(dtick) && typeof dtick !== 'string') {\n dtick = 1;\n }\n\n if(ax.type === 'category' || ax.type === 'multicategory') {\n ax._tickround = null;\n }\n if(ax.type === 'date') {\n // If tick0 is unusual, give tickround a bit more information\n // not necessarily *all* the information in tick0 though, if it's really odd\n // minimal string length for tick0: 'd' is 10, 'M' is 16, 'S' is 19\n // take off a leading minus (year < 0) and i (intercalary month) so length is consistent\n var tick0ms = ax.r2l(ax.tick0);\n var tick0str = ax.l2r(tick0ms).replace(/(^-|i)/g, '');\n var tick0len = tick0str.length;\n\n if(String(dtick).charAt(0) === 'M') {\n // any tick0 more specific than a year: alway show the full date\n if(tick0len > 10 || tick0str.substr(5) !== '01-01') ax._tickround = 'd';\n // show the month unless ticks are full multiples of a year\n else ax._tickround = (+(dtick.substr(1)) % 12 === 0) ? 'y' : 'm';\n } else if((dtick >= ONEDAY && tick0len <= 10) || (dtick >= ONEDAY * 15)) ax._tickround = 'd';\n else if((dtick >= ONEMIN && tick0len <= 16) || (dtick >= ONEHOUR)) ax._tickround = 'M';\n else if((dtick >= ONESEC && tick0len <= 19) || (dtick >= ONEMIN)) ax._tickround = 'S';\n else {\n // tickround is a number of digits of fractional seconds\n // of any two adjacent ticks, at least one will have the maximum fractional digits\n // of all possible ticks - so take the max. length of tick0 and the next one\n var tick1len = ax.l2r(tick0ms + dtick).replace(/^-/, '').length;\n ax._tickround = Math.max(tick0len, tick1len) - 20;\n\n // We shouldn't get here... but in case there's a situation I'm\n // not thinking of where tick0str and tick1str are identical or\n // something, fall back on maximum precision\n if(ax._tickround < 0) ax._tickround = 4;\n }\n } else if(isNumeric(dtick) || dtick.charAt(0) === 'L') {\n // linear or log (except D1, D2)\n var rng = ax.range.map(ax.r2d || Number);\n if(!isNumeric(dtick)) dtick = Number(dtick.substr(1));\n // 2 digits past largest digit of dtick\n ax._tickround = 2 - Math.floor(Math.log(dtick) / Math.LN10 + 0.01);\n\n var maxend = Math.max(Math.abs(rng[0]), Math.abs(rng[1]));\n var rangeexp = Math.floor(Math.log(maxend) / Math.LN10 + 0.01);\n if(Math.abs(rangeexp) > 3) {\n if(isSIFormat(ax.exponentformat) && !beyondSI(rangeexp)) {\n ax._tickexponent = 3 * Math.round((rangeexp - 1) / 3);\n } else ax._tickexponent = rangeexp;\n }\n } else {\n // D1 or D2 (log)\n ax._tickround = null;\n }\n}\n\n// months and years don't have constant millisecond values\n// (but a year is always 12 months so we only need months)\n// log-scale ticks are also not consistently spaced, except\n// for pure powers of 10\n// numeric ticks always have constant differences, other datetime ticks\n// can all be calculated as constant number of milliseconds\naxes.tickIncrement = function(x, dtick, axrev, calendar) {\n var axSign = axrev ? -1 : 1;\n\n // includes linear, all dates smaller than month, and pure 10^n in log\n if(isNumeric(dtick)) return x + axSign * dtick;\n\n // everything else is a string, one character plus a number\n var tType = dtick.charAt(0);\n var dtSigned = axSign * Number(dtick.substr(1));\n\n // Dates: months (or years - see Lib.incrementMonth)\n if(tType === 'M') return Lib.incrementMonth(x, dtSigned, calendar);\n\n // Log scales: Linear, Digits\n else if(tType === 'L') return Math.log(Math.pow(10, x) + dtSigned) / Math.LN10;\n\n // log10 of 2,5,10, or all digits (logs just have to be\n // close enough to round)\n else if(tType === 'D') {\n var tickset = (dtick === 'D2') ? roundLog2 : roundLog1;\n var x2 = x + axSign * 0.01;\n var frac = Lib.roundUp(Lib.mod(x2, 1), tickset, axrev);\n\n return Math.floor(x2) +\n Math.log(d3.round(Math.pow(10, frac), 1)) / Math.LN10;\n } else throw 'unrecognized dtick ' + String(dtick);\n};\n\n// calculate the first tick on an axis\naxes.tickFirst = function(ax) {\n var r2l = ax.r2l || Number;\n var rng = Lib.simpleMap(ax.range, r2l);\n var axrev = rng[1] < rng[0];\n var sRound = axrev ? Math.floor : Math.ceil;\n // add a tiny extra bit to make sure we get ticks\n // that may have been rounded out\n var r0 = rng[0] * 1.0001 - rng[1] * 0.0001;\n var dtick = ax.dtick;\n var tick0 = r2l(ax.tick0);\n\n if(isNumeric(dtick)) {\n var tmin = sRound((r0 - tick0) / dtick) * dtick + tick0;\n\n // make sure no ticks outside the category list\n if(ax.type === 'category' || ax.type === 'multicategory') {\n tmin = Lib.constrain(tmin, 0, ax._categories.length - 1);\n }\n return tmin;\n }\n\n var tType = dtick.charAt(0);\n var dtNum = Number(dtick.substr(1));\n\n // Dates: months (or years)\n if(tType === 'M') {\n var cnt = 0;\n var t0 = tick0;\n var t1, mult, newDTick;\n\n // This algorithm should work for *any* nonlinear (but close to linear!)\n // tick spacing. Limit to 10 iterations, for gregorian months it's normally <=3.\n while(cnt < 10) {\n t1 = axes.tickIncrement(t0, dtick, axrev, ax.calendar);\n if((t1 - r0) * (t0 - r0) <= 0) {\n // t1 and t0 are on opposite sides of r0! we've succeeded!\n if(axrev) return Math.min(t0, t1);\n return Math.max(t0, t1);\n }\n mult = (r0 - ((t0 + t1) / 2)) / (t1 - t0);\n newDTick = tType + ((Math.abs(Math.round(mult)) || 1) * dtNum);\n t0 = axes.tickIncrement(t0, newDTick, mult < 0 ? !axrev : axrev, ax.calendar);\n cnt++;\n }\n Lib.error('tickFirst did not converge', ax);\n return t0;\n } else if(tType === 'L') {\n // Log scales: Linear, Digits\n\n return Math.log(sRound(\n (Math.pow(10, r0) - tick0) / dtNum) * dtNum + tick0) / Math.LN10;\n } else if(tType === 'D') {\n var tickset = (dtick === 'D2') ? roundLog2 : roundLog1;\n var frac = Lib.roundUp(Lib.mod(r0, 1), tickset, axrev);\n\n return Math.floor(r0) +\n Math.log(d3.round(Math.pow(10, frac), 1)) / Math.LN10;\n } else throw 'unrecognized dtick ' + String(dtick);\n};\n\n// draw the text for one tick.\n// px,py are the location on gd.paper\n// prefix is there so the x axis ticks can be dropped a line\n// ax is the axis layout, x is the tick value\n// hover is a (truthy) flag for whether to show numbers with a bit\n// more precision for hovertext\naxes.tickText = function(ax, x, hover, noSuffixPrefix) {\n var out = tickTextObj(ax, x);\n var arrayMode = ax.tickmode === 'array';\n var extraPrecision = hover || arrayMode;\n var axType = ax.type;\n // TODO multicategory, if we allow ticktext / tickvals\n var tickVal2l = axType === 'category' ? ax.d2l_noadd : ax.d2l;\n var i;\n\n if(arrayMode && Array.isArray(ax.ticktext)) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n var minDiff = Math.abs(rng[1] - rng[0]) / 10000;\n\n for(i = 0; i < ax.ticktext.length; i++) {\n if(Math.abs(x - tickVal2l(ax.tickvals[i])) < minDiff) break;\n }\n if(i < ax.ticktext.length) {\n out.text = String(ax.ticktext[i]);\n return out;\n }\n }\n\n function isHidden(showAttr) {\n if(showAttr === undefined) return true;\n if(hover) return showAttr === 'none';\n\n var firstOrLast = {\n first: ax._tmin,\n last: ax._tmax\n }[showAttr];\n\n return showAttr !== 'all' && x !== firstOrLast;\n }\n\n var hideexp = hover ?\n 'never' :\n ax.exponentformat !== 'none' && isHidden(ax.showexponent) ? 'hide' : '';\n\n if(axType === 'date') formatDate(ax, out, hover, extraPrecision);\n else if(axType === 'log') formatLog(ax, out, hover, extraPrecision, hideexp);\n else if(axType === 'category') formatCategory(ax, out);\n else if(axType === 'multicategory') formatMultiCategory(ax, out, hover);\n else if(isAngular(ax)) formatAngle(ax, out, hover, extraPrecision, hideexp);\n else formatLinear(ax, out, hover, extraPrecision, hideexp);\n\n // add prefix and suffix\n if(!noSuffixPrefix) {\n if(ax.tickprefix && !isHidden(ax.showtickprefix)) out.text = ax.tickprefix + out.text;\n if(ax.ticksuffix && !isHidden(ax.showticksuffix)) out.text += ax.ticksuffix;\n }\n\n // Setup ticks and grid lines boundaries\n // at 1/2 a 'category' to the left/bottom\n if(ax.tickson === 'boundaries' || ax.showdividers) {\n var inbounds = function(v) {\n var p = ax.l2p(v);\n return p >= 0 && p <= ax._length ? v : null;\n };\n\n out.xbnd = [\n inbounds(out.x - 0.5),\n inbounds(out.x + ax.dtick - 0.5)\n ];\n }\n\n return out;\n};\n\n/**\n * create text for a hover label on this axis, with special handling of\n * log axes (where negative values can't be displayed but can appear in hover text)\n *\n * @param {object} ax: the axis to format text for\n * @param {number} val: calcdata value to format\n * @param {Optional(number)} val2: a second value to display\n *\n * @returns {string} `val` formatted as a string appropriate to this axis, or\n * `val` and `val2` as a range (ie ' - ') if `val2` is provided and\n * it's different from `val`.\n */\naxes.hoverLabelText = function(ax, val, val2) {\n if(val2 !== BADNUM && val2 !== val) {\n return axes.hoverLabelText(ax, val) + ' - ' + axes.hoverLabelText(ax, val2);\n }\n\n var logOffScale = (ax.type === 'log' && val <= 0);\n var tx = axes.tickText(ax, ax.c2l(logOffScale ? -val : val), 'hover').text;\n\n if(logOffScale) {\n return val === 0 ? '0' : MINUS_SIGN + tx;\n }\n\n // TODO: should we do something special if the axis calendar and\n // the data calendar are different? Somehow display both dates with\n // their system names? Right now it will just display in the axis calendar\n // but users could add the other one as text.\n return tx;\n};\n\nfunction tickTextObj(ax, x, text) {\n var tf = ax.tickfont || {};\n\n return {\n x: x,\n dx: 0,\n dy: 0,\n text: text || '',\n fontSize: tf.size,\n font: tf.family,\n fontColor: tf.color\n };\n}\n\nfunction formatDate(ax, out, hover, extraPrecision) {\n var tr = ax._tickround;\n var fmt = (hover && ax.hoverformat) || axes.getTickFormat(ax);\n\n if(extraPrecision) {\n // second or sub-second precision: extra always shows max digits.\n // for other fields, extra precision just adds one field.\n if(isNumeric(tr)) tr = 4;\n else tr = {y: 'm', m: 'd', d: 'M', M: 'S', S: 4}[tr];\n }\n\n var dateStr = Lib.formatDate(out.x, fmt, tr, ax._dateFormat, ax.calendar, ax._extraFormat);\n var headStr;\n\n var splitIndex = dateStr.indexOf('\\n');\n if(splitIndex !== -1) {\n headStr = dateStr.substr(splitIndex + 1);\n dateStr = dateStr.substr(0, splitIndex);\n }\n\n if(extraPrecision) {\n // if extraPrecision led to trailing zeros, strip them off\n // actually, this can lead to removing even more zeros than\n // in the original rounding, but that's fine because in these\n // contexts uniformity is not so important (if there's even\n // anything to be uniform with!)\n\n // can we remove the whole time part?\n if(dateStr === '00:00:00' || dateStr === '00:00') {\n dateStr = headStr;\n headStr = '';\n } else if(dateStr.length === 8) {\n // strip off seconds if they're zero (zero fractional seconds\n // are already omitted)\n // but we never remove minutes and leave just hours\n dateStr = dateStr.replace(/:00$/, '');\n }\n }\n\n if(headStr) {\n if(hover) {\n // hover puts it all on one line, so headPart works best up front\n // except for year headPart: turn this into \"Jan 1, 2000\" etc.\n if(tr === 'd') dateStr += ', ' + headStr;\n else dateStr = headStr + (dateStr ? ', ' + dateStr : '');\n } else if(!ax._inCalcTicks || (headStr !== ax._prevDateHead)) {\n dateStr += '
' + headStr;\n ax._prevDateHead = headStr;\n }\n }\n\n out.text = dateStr;\n}\n\nfunction formatLog(ax, out, hover, extraPrecision, hideexp) {\n var dtick = ax.dtick;\n var x = out.x;\n var tickformat = ax.tickformat;\n var dtChar0 = typeof dtick === 'string' && dtick.charAt(0);\n\n if(hideexp === 'never') {\n // If this is a hover label, then we must *never* hide the exponent\n // for the sake of display, which could give the wrong value by\n // potentially many orders of magnitude. If hideexp was 'never', then\n // it's now succeeded by preventing the other condition from automating\n // this choice. Thus we can unset it so that the axis formatting takes\n // precedence.\n hideexp = '';\n }\n\n if(extraPrecision && (dtChar0 !== 'L')) {\n dtick = 'L3';\n dtChar0 = 'L';\n }\n\n if(tickformat || (dtChar0 === 'L')) {\n out.text = numFormat(Math.pow(10, x), ax, hideexp, extraPrecision);\n } else if(isNumeric(dtick) || ((dtChar0 === 'D') && (Lib.mod(x + 0.01, 1) < 0.1))) {\n var p = Math.round(x);\n var absP = Math.abs(p);\n var exponentFormat = ax.exponentformat;\n if(exponentFormat === 'power' || (isSIFormat(exponentFormat) && beyondSI(p))) {\n if(p === 0) out.text = 1;\n else if(p === 1) out.text = '10';\n else out.text = '10' + (p > 1 ? '' : MINUS_SIGN) + absP + '';\n\n out.fontSize *= 1.25;\n } else if((exponentFormat === 'e' || exponentFormat === 'E') && absP > 2) {\n out.text = '1' + exponentFormat + (p > 0 ? '+' : MINUS_SIGN) + absP;\n } else {\n out.text = numFormat(Math.pow(10, x), ax, '', 'fakehover');\n if(dtick === 'D1' && ax._id.charAt(0) === 'y') {\n out.dy -= out.fontSize / 6;\n }\n }\n } else if(dtChar0 === 'D') {\n out.text = String(Math.round(Math.pow(10, Lib.mod(x, 1))));\n out.fontSize *= 0.75;\n } else throw 'unrecognized dtick ' + String(dtick);\n\n // if 9's are printed on log scale, move the 10's away a bit\n if(ax.dtick === 'D1') {\n var firstChar = String(out.text).charAt(0);\n if(firstChar === '0' || firstChar === '1') {\n if(ax._id.charAt(0) === 'y') {\n out.dx -= out.fontSize / 4;\n } else {\n out.dy += out.fontSize / 2;\n out.dx += (ax.range[1] > ax.range[0] ? 1 : -1) *\n out.fontSize * (x < 0 ? 0.5 : 0.25);\n }\n }\n }\n}\n\nfunction formatCategory(ax, out) {\n var tt = ax._categories[Math.round(out.x)];\n if(tt === undefined) tt = '';\n out.text = String(tt);\n}\n\nfunction formatMultiCategory(ax, out, hover) {\n var v = Math.round(out.x);\n var cats = ax._categories[v] || [];\n var tt = cats[1] === undefined ? '' : String(cats[1]);\n var tt2 = cats[0] === undefined ? '' : String(cats[0]);\n\n if(hover) {\n // TODO is this what we want?\n out.text = tt2 + ' - ' + tt;\n } else {\n // setup for secondary labels\n out.text = tt;\n out.text2 = tt2;\n }\n}\n\nfunction formatLinear(ax, out, hover, extraPrecision, hideexp) {\n if(hideexp === 'never') {\n // If this is a hover label, then we must *never* hide the exponent\n // for the sake of display, which could give the wrong value by\n // potentially many orders of magnitude. If hideexp was 'never', then\n // it's now succeeded by preventing the other condition from automating\n // this choice. Thus we can unset it so that the axis formatting takes\n // precedence.\n hideexp = '';\n } else if(ax.showexponent === 'all' && Math.abs(out.x / ax.dtick) < 1e-6) {\n // don't add an exponent to zero if we're showing all exponents\n // so the only reason you'd show an exponent on zero is if it's the\n // ONLY tick to get an exponent (first or last)\n hideexp = 'hide';\n }\n out.text = numFormat(out.x, ax, hideexp, extraPrecision);\n}\n\nfunction formatAngle(ax, out, hover, extraPrecision, hideexp) {\n if(ax.thetaunit === 'radians' && !hover) {\n var num = out.x / 180;\n\n if(num === 0) {\n out.text = '0';\n } else {\n var frac = num2frac(num);\n\n if(frac[1] >= 100) {\n out.text = numFormat(Lib.deg2rad(out.x), ax, hideexp, extraPrecision);\n } else {\n var isNeg = out.x < 0;\n\n if(frac[1] === 1) {\n if(frac[0] === 1) out.text = 'π';\n else out.text = frac[0] + 'π';\n } else {\n out.text = [\n '', frac[0], '',\n '⁄',\n '', frac[1], '',\n 'π'\n ].join('');\n }\n\n if(isNeg) out.text = MINUS_SIGN + out.text;\n }\n }\n } else {\n out.text = numFormat(out.x, ax, hideexp, extraPrecision);\n }\n}\n\n// inspired by\n// https://github.com/yisibl/num2fraction/blob/master/index.js\nfunction num2frac(num) {\n function almostEq(a, b) {\n return Math.abs(a - b) <= 1e-6;\n }\n\n function findGCD(a, b) {\n return almostEq(b, 0) ? a : findGCD(b, a % b);\n }\n\n function findPrecision(n) {\n var e = 1;\n while(!almostEq(Math.round(n * e) / e, n)) {\n e *= 10;\n }\n return e;\n }\n\n var precision = findPrecision(num);\n var number = num * precision;\n var gcd = Math.abs(findGCD(number, precision));\n\n return [\n // numerator\n Math.round(number / gcd),\n // denominator\n Math.round(precision / gcd)\n ];\n}\n\n// format a number (tick value) according to the axis settings\n// new, more reliable procedure than d3.round or similar:\n// add half the rounding increment, then stringify and truncate\n// also automatically switch to sci. notation\nvar SIPREFIXES = ['f', 'p', 'n', 'μ', 'm', '', 'k', 'M', 'G', 'T'];\n\nfunction isSIFormat(exponentFormat) {\n return exponentFormat === 'SI' || exponentFormat === 'B';\n}\n\n// are we beyond the range of common SI prefixes?\n// 10^-16 -> 1x10^-16\n// 10^-15 -> 1f\n// ...\n// 10^14 -> 100T\n// 10^15 -> 1x10^15\n// 10^16 -> 1x10^16\nfunction beyondSI(exponent) {\n return exponent > 14 || exponent < -15;\n}\n\nfunction numFormat(v, ax, fmtoverride, hover) {\n var isNeg = v < 0;\n // max number of digits past decimal point to show\n var tickRound = ax._tickround;\n var exponentFormat = fmtoverride || ax.exponentformat || 'B';\n var exponent = ax._tickexponent;\n var tickformat = axes.getTickFormat(ax);\n var separatethousands = ax.separatethousands;\n\n // special case for hover: set exponent just for this value, and\n // add a couple more digits of precision over tick labels\n if(hover) {\n // make a dummy axis obj to get the auto rounding and exponent\n var ah = {\n exponentformat: exponentFormat,\n dtick: ax.showexponent === 'none' ? ax.dtick :\n (isNumeric(v) ? Math.abs(v) || 1 : 1),\n // if not showing any exponents, don't change the exponent\n // from what we calculate\n range: ax.showexponent === 'none' ? ax.range.map(ax.r2d) : [0, v || 1]\n };\n autoTickRound(ah);\n tickRound = (Number(ah._tickround) || 0) + 4;\n exponent = ah._tickexponent;\n if(ax.hoverformat) tickformat = ax.hoverformat;\n }\n\n if(tickformat) return ax._numFormat(tickformat)(v).replace(/-/g, MINUS_SIGN);\n\n // 'epsilon' - rounding increment\n var e = Math.pow(10, -tickRound) / 2;\n\n // exponentFormat codes:\n // 'e' (1.2e+6, default)\n // 'E' (1.2E+6)\n // 'SI' (1.2M)\n // 'B' (same as SI except 10^9=B not G)\n // 'none' (1200000)\n // 'power' (1.2x10^6)\n // 'hide' (1.2, use 3rd argument=='hide' to eg\n // only show exponent on last tick)\n if(exponentFormat === 'none') exponent = 0;\n\n // take the sign out, put it back manually at the end\n // - makes cases easier\n v = Math.abs(v);\n if(v < e) {\n // 0 is just 0, but may get exponent if it's the last tick\n v = '0';\n isNeg = false;\n } else {\n v += e;\n // take out a common exponent, if any\n if(exponent) {\n v *= Math.pow(10, -exponent);\n tickRound += exponent;\n }\n // round the mantissa\n if(tickRound === 0) v = String(Math.floor(v));\n else if(tickRound < 0) {\n v = String(Math.round(v));\n v = v.substr(0, v.length + tickRound);\n for(var i = tickRound; i < 0; i++) v += '0';\n } else {\n v = String(v);\n var dp = v.indexOf('.') + 1;\n if(dp) v = v.substr(0, dp + tickRound).replace(/\\.?0+$/, '');\n }\n // insert appropriate decimal point and thousands separator\n v = Lib.numSeparate(v, ax._separators, separatethousands);\n }\n\n // add exponent\n if(exponent && exponentFormat !== 'hide') {\n if(isSIFormat(exponentFormat) && beyondSI(exponent)) exponentFormat = 'power';\n\n var signedExponent;\n if(exponent < 0) signedExponent = MINUS_SIGN + -exponent;\n else if(exponentFormat !== 'power') signedExponent = '+' + exponent;\n else signedExponent = String(exponent);\n\n if(exponentFormat === 'e' || exponentFormat === 'E') {\n v += exponentFormat + signedExponent;\n } else if(exponentFormat === 'power') {\n v += '×10' + signedExponent + '';\n } else if(exponentFormat === 'B' && exponent === 9) {\n v += 'B';\n } else if(isSIFormat(exponentFormat)) {\n v += SIPREFIXES[exponent / 3 + 5];\n }\n }\n\n // put sign back in and return\n // replace standard minus character (which is technically a hyphen)\n // with a true minus sign\n if(isNeg) return MINUS_SIGN + v;\n return v;\n}\n\naxes.getTickFormat = function(ax) {\n var i;\n\n function convertToMs(dtick) {\n return typeof dtick !== 'string' ? dtick : Number(dtick.replace('M', '')) * ONEAVGMONTH;\n }\n\n function compareLogTicks(left, right) {\n var priority = ['L', 'D'];\n if(typeof left === typeof right) {\n if(typeof left === 'number') {\n return left - right;\n } else {\n var leftPriority = priority.indexOf(left.charAt(0));\n var rightPriority = priority.indexOf(right.charAt(0));\n if(leftPriority === rightPriority) {\n return Number(left.replace(/(L|D)/g, '')) - Number(right.replace(/(L|D)/g, ''));\n } else {\n return leftPriority - rightPriority;\n }\n }\n } else {\n return typeof left === 'number' ? 1 : -1;\n }\n }\n\n function isProperStop(dtick, range, convert) {\n var convertFn = convert || function(x) { return x;};\n var leftDtick = range[0];\n var rightDtick = range[1];\n return ((!leftDtick && typeof leftDtick !== 'number') || convertFn(leftDtick) <= convertFn(dtick)) &&\n ((!rightDtick && typeof rightDtick !== 'number') || convertFn(rightDtick) >= convertFn(dtick));\n }\n\n function isProperLogStop(dtick, range) {\n var isLeftDtickNull = range[0] === null;\n var isRightDtickNull = range[1] === null;\n var isDtickInRangeLeft = compareLogTicks(dtick, range[0]) >= 0;\n var isDtickInRangeRight = compareLogTicks(dtick, range[1]) <= 0;\n return (isLeftDtickNull || isDtickInRangeLeft) && (isRightDtickNull || isDtickInRangeRight);\n }\n\n var tickstop, stopi;\n if(ax.tickformatstops && ax.tickformatstops.length > 0) {\n switch(ax.type) {\n case 'date':\n case 'linear': {\n for(i = 0; i < ax.tickformatstops.length; i++) {\n stopi = ax.tickformatstops[i];\n if(stopi.enabled && isProperStop(ax.dtick, stopi.dtickrange, convertToMs)) {\n tickstop = stopi;\n break;\n }\n }\n break;\n }\n case 'log': {\n for(i = 0; i < ax.tickformatstops.length; i++) {\n stopi = ax.tickformatstops[i];\n if(stopi.enabled && isProperLogStop(ax.dtick, stopi.dtickrange)) {\n tickstop = stopi;\n break;\n }\n }\n break;\n }\n default:\n }\n }\n return tickstop ? tickstop.value : ax.tickformat;\n};\n\n// getSubplots - extract all subplot IDs we need\n// as an array of items like 'xy', 'x2y', 'x2y2'...\n// sorted by x (x,x2,x3...) then y\n// optionally restrict to only subplots containing axis object ax\n//\n// NOTE: this is currently only used OUTSIDE plotly.js (toolpanel, webapp)\n// ideally we get rid of it there (or just copy this there) and remove it here\naxes.getSubplots = function(gd, ax) {\n var subplotObj = gd._fullLayout._subplots;\n var allSubplots = subplotObj.cartesian.concat(subplotObj.gl2d || []);\n\n var out = ax ? axes.findSubplotsWithAxis(allSubplots, ax) : allSubplots;\n\n out.sort(function(a, b) {\n var aParts = a.substr(1).split('y');\n var bParts = b.substr(1).split('y');\n\n if(aParts[0] === bParts[0]) return +aParts[1] - +bParts[1];\n return +aParts[0] - +bParts[0];\n });\n\n return out;\n};\n\n// find all subplots with axis 'ax'\n// NOTE: this is only used in axes.getSubplots (only used outside plotly.js) and\n// gl2d/convert (where it restricts axis subplots to only those with gl2d)\naxes.findSubplotsWithAxis = function(subplots, ax) {\n var axMatch = new RegExp(\n (ax._id.charAt(0) === 'x') ? ('^' + ax._id + 'y') : (ax._id + '$')\n );\n var subplotsWithAx = [];\n\n for(var i = 0; i < subplots.length; i++) {\n var sp = subplots[i];\n if(axMatch.test(sp)) subplotsWithAx.push(sp);\n }\n\n return subplotsWithAx;\n};\n\n// makeClipPaths: prepare clipPaths for all single axes and all possible xy pairings\naxes.makeClipPaths = function(gd) {\n var fullLayout = gd._fullLayout;\n\n // for more info: https://github.com/plotly/plotly.js/issues/2595\n if(fullLayout._hasOnlyLargeSploms) return;\n\n var fullWidth = {_offset: 0, _length: fullLayout.width, _id: ''};\n var fullHeight = {_offset: 0, _length: fullLayout.height, _id: ''};\n var xaList = axes.list(gd, 'x', true);\n var yaList = axes.list(gd, 'y', true);\n var clipList = [];\n var i, j;\n\n for(i = 0; i < xaList.length; i++) {\n clipList.push({x: xaList[i], y: fullHeight});\n for(j = 0; j < yaList.length; j++) {\n if(i === 0) clipList.push({x: fullWidth, y: yaList[j]});\n clipList.push({x: xaList[i], y: yaList[j]});\n }\n }\n\n // selectors don't work right with camelCase tags,\n // have to use class instead\n // https://groups.google.com/forum/#!topic/d3-js/6EpAzQ2gU9I\n var axClips = fullLayout._clips.selectAll('.axesclip')\n .data(clipList, function(d) { return d.x._id + d.y._id; });\n\n axClips.enter().append('clipPath')\n .classed('axesclip', true)\n .attr('id', function(d) { return 'clip' + fullLayout._uid + d.x._id + d.y._id; })\n .append('rect');\n\n axClips.exit().remove();\n\n axClips.each(function(d) {\n d3.select(this).select('rect').attr({\n x: d.x._offset || 0,\n y: d.y._offset || 0,\n width: d.x._length || 1,\n height: d.y._length || 1\n });\n });\n};\n\n/**\n * Main multi-axis drawing routine!\n *\n * @param {DOM element} gd : graph div\n * @param {string or array of strings} arg : polymorphic argument\n * @param {object} opts:\n * - @param {boolean} skipTitle : optional flag to skip axis title draw/update\n *\n * Signature 1: Axes.draw(gd, 'redraw')\n * use this to clear and redraw all axes on graph\n *\n * Signature 2: Axes.draw(gd, '')\n * use this to draw all axes on graph w/o the selectAll().remove()\n * of the 'redraw' signature\n *\n * Signature 3: Axes.draw(gd, [axId, axId2, ...])\n * where the items are axis id string,\n * use this to update multiple axes in one call\n *\n * N.B draw updates:\n * - ax._r (stored range for use by zoom/pan)\n * - ax._rl (stored linearized range for use by zoom/pan)\n */\naxes.draw = function(gd, arg, opts) {\n var fullLayout = gd._fullLayout;\n\n if(arg === 'redraw') {\n fullLayout._paper.selectAll('g.subplot').each(function(d) {\n var id = d[0];\n var plotinfo = fullLayout._plots[id];\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n plotinfo.xaxislayer.selectAll('.' + xa._id + 'tick').remove();\n plotinfo.yaxislayer.selectAll('.' + ya._id + 'tick').remove();\n plotinfo.xaxislayer.selectAll('.' + xa._id + 'tick2').remove();\n plotinfo.yaxislayer.selectAll('.' + ya._id + 'tick2').remove();\n plotinfo.xaxislayer.selectAll('.' + xa._id + 'divider').remove();\n plotinfo.yaxislayer.selectAll('.' + ya._id + 'divider').remove();\n\n if(plotinfo.gridlayer) plotinfo.gridlayer.selectAll('path').remove();\n if(plotinfo.zerolinelayer) plotinfo.zerolinelayer.selectAll('path').remove();\n\n fullLayout._infolayer.select('.g-' + xa._id + 'title').remove();\n fullLayout._infolayer.select('.g-' + ya._id + 'title').remove();\n });\n }\n\n var axList = (!arg || arg === 'redraw') ? axes.listIds(gd) : arg;\n\n return Lib.syncOrAsync(axList.map(function(axId) {\n return function() {\n if(!axId) return;\n\n var ax = axes.getFromId(gd, axId);\n var axDone = axes.drawOne(gd, ax, opts);\n\n ax._r = ax.range.slice();\n ax._rl = Lib.simpleMap(ax._r, ax.r2l);\n\n return axDone;\n };\n }));\n};\n\n/**\n * Draw one cartesian axis\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * @param {object} opts\n * - @param {boolean} skipTitle (set to true to skip axis title draw call)\n *\n * Depends on:\n * - ax._mainSubplot (from linkSubplots)\n * - ax._mainAxis\n * - ax._anchorAxis\n * - ax._subplotsWith\n * - ax._counterDomainMin, ax._counterDomainMax (optionally, from linkSubplots)\n * - ax._tickAngles (on redraw only, old value relinked during supplyDefaults)\n * - ax._mainLinePosition (from lsInner)\n * - ax._mainMirrorPosition\n * - ax._linepositions\n *\n * Fills in:\n * - ax._vals:\n * - ax._gridVals:\n * - ax._selections:\n * - ax._tickAngles:\n * - ax._depth (when required only):\n * - and calls ax.setScale\n */\naxes.drawOne = function(gd, ax, opts) {\n opts = opts || {};\n\n var i, sp, plotinfo;\n\n ax.setScale();\n\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var counterLetter = axes.counterLetter(axId);\n var mainLinePosition = ax._mainLinePosition;\n var mainMirrorPosition = ax._mainMirrorPosition;\n var mainPlotinfo = fullLayout._plots[ax._mainSubplot];\n var mainAxLayer = mainPlotinfo[axLetter + 'axislayer'];\n\n var vals = ax._vals = axes.calcTicks(ax);\n\n // Add a couple of axis properties that should cause us to recreate\n // elements. Used in d3 data function.\n var axInfo = [ax.mirror, mainLinePosition, mainMirrorPosition].join('_');\n for(i = 0; i < vals.length; i++) {\n vals[i].axInfo = axInfo;\n }\n\n // stash selections to avoid DOM queries e.g.\n // - stash tickLabels selection, so that drawTitle can use it to scoot title\n ax._selections = {};\n // stash tick angle (including the computed 'auto' values) per tick-label class\n // linkup 'previous' tick angles on redraws\n if(ax._tickAngles) ax._prevTickAngles = ax._tickAngles;\n ax._tickAngles = {};\n // measure [in px] between axis position and outward-most part of bounding box\n // (touching either the tick label or ticks)\n // depth can be expansive to compute, so we only do so when required\n ax._depth = null;\n\n // calcLabelLevelBbox can be expensive,\n // so make sure to not call it twice during the same Axes.drawOne call\n // by stashing label-level bounding boxes per tick-label class\n var llbboxes = {};\n function getLabelLevelBbox(suffix) {\n var cls = axId + (suffix || 'tick');\n if(!llbboxes[cls]) llbboxes[cls] = calcLabelLevelBbox(ax, cls);\n return llbboxes[cls];\n }\n\n if(!ax.visible) return;\n\n var transFn = axes.makeTransFn(ax);\n var tickVals;\n // We remove zero lines, grid lines, and inside ticks if they're within 1px of the end\n // The key case here is removing zero lines when the axis bound is zero\n var valsClipped;\n\n if(ax.tickson === 'boundaries') {\n var boundaryVals = getBoundaryVals(ax, vals);\n valsClipped = axes.clipEnds(ax, boundaryVals);\n tickVals = ax.ticks === 'inside' ? valsClipped : boundaryVals;\n } else {\n valsClipped = axes.clipEnds(ax, vals);\n tickVals = ax.ticks === 'inside' ? valsClipped : vals;\n }\n\n var gridVals = ax._gridVals = valsClipped;\n var dividerVals = getDividerVals(ax, vals);\n\n if(!fullLayout._hasOnlyLargeSploms) {\n var subplotsWithAx = ax._subplotsWith;\n\n // keep track of which subplots (by main counter axis) we've already\n // drawn grids for, so we don't overdraw overlaying subplots\n var finishedGrids = {};\n\n for(i = 0; i < subplotsWithAx.length; i++) {\n sp = subplotsWithAx[i];\n plotinfo = fullLayout._plots[sp];\n\n var counterAxis = plotinfo[counterLetter + 'axis'];\n var mainCounterID = counterAxis._mainAxis._id;\n if(finishedGrids[mainCounterID]) continue;\n finishedGrids[mainCounterID] = 1;\n\n var gridPath = axLetter === 'x' ?\n 'M0,' + counterAxis._offset + 'v' + counterAxis._length :\n 'M' + counterAxis._offset + ',0h' + counterAxis._length;\n\n axes.drawGrid(gd, ax, {\n vals: gridVals,\n counterAxis: counterAxis,\n layer: plotinfo.gridlayer.select('.' + axId),\n path: gridPath,\n transFn: transFn\n });\n axes.drawZeroLine(gd, ax, {\n counterAxis: counterAxis,\n layer: plotinfo.zerolinelayer,\n path: gridPath,\n transFn: transFn\n });\n }\n }\n\n var tickSigns = axes.getTickSigns(ax);\n var tickSubplots = [];\n\n if(ax.ticks) {\n var mainTickPath = axes.makeTickPath(ax, mainLinePosition, tickSigns[2]);\n var mirrorTickPath;\n var fullTickPath;\n if(ax._anchorAxis && ax.mirror && ax.mirror !== true) {\n mirrorTickPath = axes.makeTickPath(ax, mainMirrorPosition, tickSigns[3]);\n fullTickPath = mainTickPath + mirrorTickPath;\n } else {\n mirrorTickPath = '';\n fullTickPath = mainTickPath;\n }\n\n var tickPath;\n if(ax.showdividers && ax.ticks === 'outside' && ax.tickson === 'boundaries') {\n var dividerLookup = {};\n for(i = 0; i < dividerVals.length; i++) {\n dividerLookup[dividerVals[i].x] = 1;\n }\n tickPath = function(d) {\n return dividerLookup[d.x] ? mirrorTickPath : fullTickPath;\n };\n } else {\n tickPath = fullTickPath;\n }\n\n axes.drawTicks(gd, ax, {\n vals: tickVals,\n layer: mainAxLayer,\n path: tickPath,\n transFn: transFn\n });\n\n if(ax.mirror === 'allticks') {\n tickSubplots = Object.keys(ax._linepositions || {});\n }\n }\n\n for(i = 0; i < tickSubplots.length; i++) {\n sp = tickSubplots[i];\n plotinfo = fullLayout._plots[sp];\n // [bottom or left, top or right], free and main are handled above\n var linepositions = ax._linepositions[sp] || [];\n var spTickPath = axes.makeTickPath(ax, linepositions[0], tickSigns[0]) +\n axes.makeTickPath(ax, linepositions[1], tickSigns[1]);\n\n axes.drawTicks(gd, ax, {\n vals: tickVals,\n layer: plotinfo[axLetter + 'axislayer'],\n path: spTickPath,\n transFn: transFn\n });\n }\n\n var seq = [];\n\n // tick labels - for now just the main labels.\n // TODO: mirror labels, esp for subplots\n\n seq.push(function() {\n return axes.drawLabels(gd, ax, {\n vals: vals,\n layer: mainAxLayer,\n transFn: transFn,\n labelFns: axes.makeLabelFns(ax, mainLinePosition)\n });\n });\n\n if(ax.type === 'multicategory') {\n var pad = {x: 2, y: 10}[axLetter];\n\n seq.push(function() {\n var bboxKey = {x: 'height', y: 'width'}[axLetter];\n var standoff = getLabelLevelBbox()[bboxKey] + pad +\n (ax._tickAngles[axId + 'tick'] ? ax.tickfont.size * LINE_SPACING : 0);\n\n return axes.drawLabels(gd, ax, {\n vals: getSecondaryLabelVals(ax, vals),\n layer: mainAxLayer,\n cls: axId + 'tick2',\n repositionOnUpdate: true,\n secondary: true,\n transFn: transFn,\n labelFns: axes.makeLabelFns(ax, mainLinePosition + standoff * tickSigns[4])\n });\n });\n\n seq.push(function() {\n ax._depth = tickSigns[4] * (getLabelLevelBbox('tick2')[ax.side] - mainLinePosition);\n\n return drawDividers(gd, ax, {\n vals: dividerVals,\n layer: mainAxLayer,\n path: axes.makeTickPath(ax, mainLinePosition, tickSigns[4], ax._depth),\n transFn: transFn\n });\n });\n } else if(ax.title.hasOwnProperty('standoff')) {\n seq.push(function() {\n ax._depth = tickSigns[4] * (getLabelLevelBbox()[ax.side] - mainLinePosition);\n });\n }\n\n var hasRangeSlider = Registry.getComponentMethod('rangeslider', 'isVisible')(ax);\n\n seq.push(function() {\n var s = ax.side.charAt(0);\n var sMirror = OPPOSITE_SIDE[ax.side].charAt(0);\n var pos = axes.getPxPosition(gd, ax);\n var outsideTickLen = ax.ticks === 'outside' ? ax.ticklen : 0;\n var llbbox;\n\n var push;\n var mirrorPush;\n var rangeSliderPush;\n\n if(ax.automargin || hasRangeSlider) {\n if(ax.type === 'multicategory') {\n llbbox = getLabelLevelBbox('tick2');\n } else {\n llbbox = getLabelLevelBbox();\n if(axLetter === 'x' && s === 'b') {\n ax._depth = Math.max(llbbox.width > 0 ? llbbox.bottom - pos : 0, outsideTickLen);\n }\n }\n }\n\n if(ax.automargin) {\n push = {x: 0, y: 0, r: 0, l: 0, t: 0, b: 0};\n var domainIndices = [0, 1];\n\n if(axLetter === 'x') {\n if(s === 'b') {\n push[s] = ax._depth;\n } else {\n push[s] = ax._depth = Math.max(llbbox.width > 0 ? pos - llbbox.top : 0, outsideTickLen);\n domainIndices.reverse();\n }\n\n if(llbbox.width > 0) {\n var rExtra = llbbox.right - (ax._offset + ax._length);\n if(rExtra > 0) {\n push.xr = 1;\n push.r = rExtra;\n }\n var lExtra = ax._offset - llbbox.left;\n if(lExtra > 0) {\n push.xl = 0;\n push.l = lExtra;\n }\n }\n } else {\n if(s === 'l') {\n push[s] = ax._depth = Math.max(llbbox.height > 0 ? pos - llbbox.left : 0, outsideTickLen);\n } else {\n push[s] = ax._depth = Math.max(llbbox.height > 0 ? llbbox.right - pos : 0, outsideTickLen);\n domainIndices.reverse();\n }\n\n if(llbbox.height > 0) {\n var bExtra = llbbox.bottom - (ax._offset + ax._length);\n if(bExtra > 0) {\n push.yb = 0;\n push.b = bExtra;\n }\n var tExtra = ax._offset - llbbox.top;\n if(tExtra > 0) {\n push.yt = 1;\n push.t = tExtra;\n }\n }\n }\n\n push[counterLetter] = ax.anchor === 'free' ?\n ax.position :\n ax._anchorAxis.domain[domainIndices[0]];\n\n if(ax.title.text !== fullLayout._dfltTitle[axLetter]) {\n push[s] += approxTitleDepth(ax) + (ax.title.standoff || 0);\n }\n\n if(ax.mirror && ax.anchor !== 'free') {\n mirrorPush = {x: 0, y: 0, r: 0, l: 0, t: 0, b: 0};\n\n mirrorPush[sMirror] = ax.linewidth;\n if(ax.mirror && ax.mirror !== true) mirrorPush[sMirror] += outsideTickLen;\n\n if(ax.mirror === true || ax.mirror === 'ticks') {\n mirrorPush[counterLetter] = ax._anchorAxis.domain[domainIndices[1]];\n } else if(ax.mirror === 'all' || ax.mirror === 'allticks') {\n mirrorPush[counterLetter] = [ax._counterDomainMin, ax._counterDomainMax][domainIndices[1]];\n }\n }\n }\n\n if(hasRangeSlider) {\n rangeSliderPush = Registry.getComponentMethod('rangeslider', 'autoMarginOpts')(gd, ax);\n }\n\n Plots.autoMargin(gd, axAutoMarginID(ax), push);\n Plots.autoMargin(gd, axMirrorAutoMarginID(ax), mirrorPush);\n Plots.autoMargin(gd, rangeSliderAutoMarginID(ax), rangeSliderPush);\n });\n\n if(!opts.skipTitle &&\n !(hasRangeSlider && ax.side === 'bottom')\n ) {\n seq.push(function() { return drawTitle(gd, ax); });\n }\n\n return Lib.syncOrAsync(seq);\n};\n\nfunction getBoundaryVals(ax, vals) {\n var out = [];\n var i;\n\n // boundaryVals are never used for labels;\n // no need to worry about the other tickTextObj keys\n var _push = function(d, bndIndex) {\n var xb = d.xbnd[bndIndex];\n if(xb !== null) {\n out.push(Lib.extendFlat({}, d, {x: xb}));\n }\n };\n\n if(vals.length) {\n for(i = 0; i < vals.length; i++) {\n _push(vals[i], 0);\n }\n _push(vals[i - 1], 1);\n }\n\n return out;\n}\n\nfunction getSecondaryLabelVals(ax, vals) {\n var out = [];\n var lookup = {};\n\n for(var i = 0; i < vals.length; i++) {\n var d = vals[i];\n if(lookup[d.text2]) {\n lookup[d.text2].push(d.x);\n } else {\n lookup[d.text2] = [d.x];\n }\n }\n\n for(var k in lookup) {\n out.push(tickTextObj(ax, Lib.interp(lookup[k], 0.5), k));\n }\n\n return out;\n}\n\nfunction getDividerVals(ax, vals) {\n var out = [];\n var i, current;\n\n // never used for labels;\n // no need to worry about the other tickTextObj keys\n var _push = function(d, bndIndex) {\n var xb = d.xbnd[bndIndex];\n if(xb !== null) {\n out.push(Lib.extendFlat({}, d, {x: xb}));\n }\n };\n\n if(ax.showdividers && vals.length) {\n for(i = 0; i < vals.length; i++) {\n var d = vals[i];\n if(d.text2 !== current) {\n _push(d, 0);\n }\n current = d.text2;\n }\n _push(vals[i - 1], 1);\n }\n\n return out;\n}\n\nfunction calcLabelLevelBbox(ax, cls) {\n var top, bottom;\n var left, right;\n\n if(ax._selections[cls].size()) {\n top = Infinity;\n bottom = -Infinity;\n left = Infinity;\n right = -Infinity;\n ax._selections[cls].each(function() {\n var thisLabel = selectTickLabel(this);\n // Use parent node , to make Drawing.bBox\n // retrieve a bbox computed with transform info\n //\n // To improve perf, it would be nice to use `thisLabel.node()`\n // (like in fixLabelOverlaps) instead and use Axes.getPxPosition\n // together with the makeLabelFns outputs and `tickangle`\n // to compute one bbox per (tick value x tick style)\n var bb = Drawing.bBox(thisLabel.node().parentNode);\n top = Math.min(top, bb.top);\n bottom = Math.max(bottom, bb.bottom);\n left = Math.min(left, bb.left);\n right = Math.max(right, bb.right);\n });\n } else {\n top = 0;\n bottom = 0;\n left = 0;\n right = 0;\n }\n\n return {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n height: bottom - top,\n width: right - left\n };\n}\n\n/**\n * Which direction do the 'ax.side' values, and free ticks go?\n *\n * @param {object} ax (full) axis object\n * - {string} _id (starting with 'x' or 'y')\n * - {string} side\n * - {string} ticks\n * @return {array} all entries are either -1 or 1\n * - [0]: sign for top/right ticks (i.e. negative SVG direction)\n * - [1]: sign for bottom/left ticks (i.e. positive SVG direction)\n * - [2]: sign for ticks corresponding to 'ax.side'\n * - [3]: sign for ticks mirroring 'ax.side'\n * - [4]: sign of arrow starting at axis pointing towards margin\n */\naxes.getTickSigns = function(ax) {\n var axLetter = ax._id.charAt(0);\n var sideOpposite = {x: 'top', y: 'right'}[axLetter];\n var main = ax.side === sideOpposite ? 1 : -1;\n var out = [-1, 1, main, -main];\n // then we flip if outside XOR y axis\n if((ax.ticks !== 'inside') === (axLetter === 'x')) {\n out = out.map(function(v) { return -v; });\n }\n // independent of `ticks`; do not flip this one\n if(ax.side) {\n out.push({l: -1, t: -1, r: 1, b: 1}[ax.side.charAt(0)]);\n }\n return out;\n};\n\n/**\n * Make axis translate transform function\n *\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {number} _offset\n * - {fn} l2p\n * @return {fn} function of calcTicks items\n */\naxes.makeTransFn = function(ax) {\n var axLetter = ax._id.charAt(0);\n var offset = ax._offset;\n return axLetter === 'x' ?\n function(d) { return 'translate(' + (offset + ax.l2p(d.x)) + ',0)'; } :\n function(d) { return 'translate(0,' + (offset + ax.l2p(d.x)) + ')'; };\n};\n\n/**\n * Make axis tick path string\n *\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {number} ticklen\n * - {number} linewidth\n * @param {number} shift along direction of ticklen\n * @param {1 or -1} sgn tick sign\n * @param {number (optional)} len tick length\n * @return {string}\n */\naxes.makeTickPath = function(ax, shift, sgn, len) {\n len = len !== undefined ? len : ax.ticklen;\n\n var axLetter = ax._id.charAt(0);\n var pad = (ax.linewidth || 1) / 2;\n\n return axLetter === 'x' ?\n 'M0,' + (shift + pad * sgn) + 'v' + (len * sgn) :\n 'M' + (shift + pad * sgn) + ',0h' + (len * sgn);\n};\n\n/**\n * Make axis tick label x, y and anchor functions\n *\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} ticks\n * - {number} ticklen\n * - {string} side\n * - {number} linewidth\n * - {number} tickfont.size\n * - {boolean} showline\n * @param {number} shift\n * @param {number} angle [in degrees] ...\n * @return {object}\n * - {fn} xFn\n * - {fn} yFn\n * - {fn} anchorFn\n * - {fn} heightFn\n * - {number} labelStandoff (gap parallel to ticks)\n * - {number} labelShift (gap perpendicular to ticks)\n */\naxes.makeLabelFns = function(ax, shift, angle) {\n var axLetter = ax._id.charAt(0);\n var ticksOnOutsideLabels = ax.tickson !== 'boundaries' && ax.ticks === 'outside';\n\n var labelStandoff = 0;\n var labelShift = 0;\n\n if(ticksOnOutsideLabels) {\n labelStandoff += ax.ticklen;\n }\n if(angle && ax.ticks === 'outside') {\n var rad = Lib.deg2rad(angle);\n labelStandoff = ax.ticklen * Math.cos(rad) + 1;\n labelShift = ax.ticklen * Math.sin(rad);\n }\n if(ax.showticklabels && (ticksOnOutsideLabels || ax.showline)) {\n labelStandoff += 0.2 * ax.tickfont.size;\n }\n labelStandoff += (ax.linewidth || 1) / 2;\n\n var out = {\n labelStandoff: labelStandoff,\n labelShift: labelShift\n };\n\n var x0, y0, ff, flipIt;\n\n if(axLetter === 'x') {\n flipIt = ax.side === 'bottom' ? 1 : -1;\n x0 = labelShift * flipIt;\n y0 = shift + labelStandoff * flipIt;\n ff = ax.side === 'bottom' ? 1 : -0.2;\n\n out.xFn = function(d) { return d.dx + x0; };\n out.yFn = function(d) { return d.dy + y0 + d.fontSize * ff; };\n out.anchorFn = function(d, a) {\n if(!isNumeric(a) || a === 0 || a === 180) {\n return 'middle';\n }\n return (a * flipIt < 0) ? 'end' : 'start';\n };\n out.heightFn = function(d, a, h) {\n return (a < -60 || a > 60) ? -0.5 * h :\n ax.side === 'top' ? -h :\n 0;\n };\n } else if(axLetter === 'y') {\n flipIt = ax.side === 'right' ? 1 : -1;\n x0 = labelStandoff;\n y0 = -labelShift * flipIt;\n ff = Math.abs(ax.tickangle) === 90 ? 0.5 : 0;\n\n out.xFn = function(d) { return d.dx + shift + (x0 + d.fontSize * ff) * flipIt; };\n out.yFn = function(d) { return d.dy + y0 + d.fontSize * MID_SHIFT; };\n out.anchorFn = function(d, a) {\n if(isNumeric(a) && Math.abs(a) === 90) {\n return 'middle';\n }\n return ax.side === 'right' ? 'start' : 'end';\n };\n out.heightFn = function(d, a, h) {\n a *= ax.side === 'left' ? 1 : -1;\n return a < -30 ? -h :\n a < 30 ? -0.5 * h :\n 0;\n };\n }\n\n return out;\n};\n\nfunction tickDataFn(d) {\n return [d.text, d.x, d.axInfo, d.font, d.fontSize, d.fontColor].join('_');\n}\n\n/**\n * Draw axis ticks\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} ticks\n * - {number} linewidth\n * - {string} tickcolor\n * @param {object} opts\n * - {array of object} vals (calcTicks output-like)\n * - {d3 selection} layer\n * - {string or fn} path\n * - {fn} transFn\n * - {boolean} crisp (set to false to unset crisp-edge SVG rendering)\n */\naxes.drawTicks = function(gd, ax, opts) {\n opts = opts || {};\n\n var cls = ax._id + 'tick';\n\n var ticks = opts.layer.selectAll('path.' + cls)\n .data(ax.ticks ? opts.vals : [], tickDataFn);\n\n ticks.exit().remove();\n\n ticks.enter().append('path')\n .classed(cls, 1)\n .classed('ticks', 1)\n .classed('crisp', opts.crisp !== false)\n .call(Color.stroke, ax.tickcolor)\n .style('stroke-width', Drawing.crispRound(gd, ax.tickwidth, 1) + 'px')\n .attr('d', opts.path);\n\n ticks.attr('transform', opts.transFn);\n};\n\n/**\n * Draw axis grid\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {boolean} showgrid\n * - {string} gridcolor\n * - {string} gridwidth\n * - {boolean} zeroline\n * - {string} type\n * - {string} dtick\n * @param {object} opts\n * - {array of object} vals (calcTicks output-like)\n * - {d3 selection} layer\n * - {object} counterAxis (full axis object corresponding to counter axis)\n * optional - only required if this axis supports zero lines\n * - {string or fn} path\n * - {fn} transFn\n * - {boolean} crisp (set to false to unset crisp-edge SVG rendering)\n */\naxes.drawGrid = function(gd, ax, opts) {\n opts = opts || {};\n\n var cls = ax._id + 'grid';\n var vals = opts.vals;\n var counterAx = opts.counterAxis;\n if(ax.showgrid === false) {\n vals = [];\n } else if(counterAx && axes.shouldShowZeroLine(gd, ax, counterAx)) {\n var isArrayMode = ax.tickmode === 'array';\n for(var i = 0; i < vals.length; i++) {\n var xi = vals[i].x;\n if(isArrayMode ? !xi : (Math.abs(xi) < ax.dtick / 100)) {\n vals = vals.slice(0, i).concat(vals.slice(i + 1));\n // In array mode you can in principle have multiple\n // ticks at 0, so test them all. Otherwise once we found\n // one we can stop.\n if(isArrayMode) i--;\n else break;\n }\n }\n }\n\n var grid = opts.layer.selectAll('path.' + cls)\n .data(vals, tickDataFn);\n\n grid.exit().remove();\n\n grid.enter().append('path')\n .classed(cls, 1)\n .classed('crisp', opts.crisp !== false);\n\n ax._gw = Drawing.crispRound(gd, ax.gridwidth, 1);\n\n grid.attr('transform', opts.transFn)\n .attr('d', opts.path)\n .call(Color.stroke, ax.gridcolor || '#ddd')\n .style('stroke-width', ax._gw + 'px');\n\n if(typeof opts.path === 'function') grid.attr('d', opts.path);\n};\n\n/**\n * Draw axis zero-line\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {boolean} zeroline\n * - {number} zerolinewidth\n * - {string} zerolinecolor\n * - {number (optional)} _gridWidthCrispRound\n * @param {object} opts\n * - {d3 selection} layer\n * - {object} counterAxis (full axis object corresponding to counter axis)\n * - {string or fn} path\n * - {fn} transFn\n * - {boolean} crisp (set to false to unset crisp-edge SVG rendering)\n */\naxes.drawZeroLine = function(gd, ax, opts) {\n opts = opts || opts;\n\n var cls = ax._id + 'zl';\n var show = axes.shouldShowZeroLine(gd, ax, opts.counterAxis);\n\n var zl = opts.layer.selectAll('path.' + cls)\n .data(show ? [{x: 0, id: ax._id}] : []);\n\n zl.exit().remove();\n\n zl.enter().append('path')\n .classed(cls, 1)\n .classed('zl', 1)\n .classed('crisp', opts.crisp !== false)\n .each(function() {\n // use the fact that only one element can enter to trigger a sort.\n // If several zerolines enter at the same time we will sort once per,\n // but generally this should be a minimal overhead.\n opts.layer.selectAll('path').sort(function(da, db) {\n return axisIds.idSort(da.id, db.id);\n });\n });\n\n zl.attr('transform', opts.transFn)\n .attr('d', opts.path)\n .call(Color.stroke, ax.zerolinecolor || Color.defaultLine)\n .style('stroke-width', Drawing.crispRound(gd, ax.zerolinewidth, ax._gw || 1) + 'px');\n};\n\n/**\n * Draw axis tick labels\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {boolean} showticklabels\n * - {number} tickangle\n * - {object (optional)} _selections\n * - {object} (optional)} _tickAngles\n * - {object} (optional)} _prevTickAngles\n * @param {object} opts\n * - {array of object} vals (calcTicks output-like)\n * - {d3 selection} layer\n * - {string (optional)} cls (node className)\n * - {boolean} repositionOnUpdate (set to true to reposition update selection)\n * - {boolean} secondary\n * - {fn} transFn\n * - {object} labelFns\n * + {fn} xFn\n * + {fn} yFn\n * + {fn} anchorFn\n * + {fn} heightFn\n */\naxes.drawLabels = function(gd, ax, opts) {\n opts = opts || {};\n\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var cls = opts.cls || axId + 'tick';\n var vals = opts.vals;\n var labelFns = opts.labelFns;\n var tickAngle = opts.secondary ? 0 : ax.tickangle;\n var prevAngle = (ax._prevTickAngles || {})[cls];\n\n var tickLabels = opts.layer.selectAll('g.' + cls)\n .data(ax.showticklabels ? vals : [], tickDataFn);\n\n var labelsReady = [];\n\n tickLabels.enter().append('g')\n .classed(cls, 1)\n .append('text')\n // only so tex has predictable alignment that we can\n // alter later\n .attr('text-anchor', 'middle')\n .each(function(d) {\n var thisLabel = d3.select(this);\n var newPromise = gd._promises.length;\n\n thisLabel\n .call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d))\n .call(Drawing.font, d.font, d.fontSize, d.fontColor)\n .text(d.text)\n .call(svgTextUtils.convertToTspans, gd);\n\n if(gd._promises[newPromise]) {\n // if we have an async label, we'll deal with that\n // all here so take it out of gd._promises and\n // instead position the label and promise this in\n // labelsReady\n labelsReady.push(gd._promises.pop().then(function() {\n positionLabels(thisLabel, tickAngle);\n }));\n } else {\n // sync label: just position it now.\n positionLabels(thisLabel, tickAngle);\n }\n });\n\n tickLabels.exit().remove();\n\n if(opts.repositionOnUpdate) {\n tickLabels.each(function(d) {\n d3.select(this).select('text')\n .call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d));\n });\n }\n\n function positionLabels(s, angle) {\n s.each(function(d) {\n var thisLabel = d3.select(this);\n var mathjaxGroup = thisLabel.select('.text-math-group');\n var anchor = labelFns.anchorFn(d, angle);\n\n var transform = opts.transFn.call(thisLabel.node(), d) +\n ((isNumeric(angle) && +angle !== 0) ?\n (' rotate(' + angle + ',' + labelFns.xFn(d) + ',' +\n (labelFns.yFn(d) - d.fontSize / 2) + ')') :\n '');\n\n // how much to shift a multi-line label to center it vertically.\n var nLines = svgTextUtils.lineCount(thisLabel);\n var lineHeight = LINE_SPACING * d.fontSize;\n var anchorHeight = labelFns.heightFn(d, isNumeric(angle) ? +angle : 0, (nLines - 1) * lineHeight);\n\n if(anchorHeight) {\n transform += ' translate(0, ' + anchorHeight + ')';\n }\n\n if(mathjaxGroup.empty()) {\n thisLabel.select('text').attr({\n transform: transform,\n 'text-anchor': anchor\n });\n } else {\n var mjWidth = Drawing.bBox(mathjaxGroup.node()).width;\n var mjShift = mjWidth * {end: -0.5, start: 0.5}[anchor];\n mathjaxGroup.attr('transform', transform + (mjShift ? 'translate(' + mjShift + ',0)' : ''));\n }\n });\n }\n\n // make sure all labels are correctly positioned at their base angle\n // the positionLabels call above is only for newly drawn labels.\n // do this without waiting, using the last calculated angle to\n // minimize flicker, then do it again when we know all labels are\n // there, putting back the prescribed angle to check for overlaps.\n positionLabels(tickLabels, (prevAngle + 1) ? prevAngle : tickAngle);\n\n function allLabelsReady() {\n return labelsReady.length && Promise.all(labelsReady);\n }\n\n var autoangle = null;\n\n function fixLabelOverlaps() {\n positionLabels(tickLabels, tickAngle);\n\n // check for auto-angling if x labels overlap\n // don't auto-angle at all for log axes with\n // base and digit format\n if(vals.length && axLetter === 'x' && !isNumeric(tickAngle) &&\n (ax.type !== 'log' || String(ax.dtick).charAt(0) !== 'D')\n ) {\n autoangle = 0;\n\n var maxFontSize = 0;\n var lbbArray = [];\n var i;\n\n tickLabels.each(function(d) {\n maxFontSize = Math.max(maxFontSize, d.fontSize);\n\n var x = ax.l2p(d.x);\n var thisLabel = selectTickLabel(this);\n var bb = Drawing.bBox(thisLabel.node());\n\n lbbArray.push({\n // ignore about y, just deal with x overlaps\n top: 0,\n bottom: 10,\n height: 10,\n left: x - bb.width / 2,\n // impose a 2px gap\n right: x + bb.width / 2 + 2,\n width: bb.width + 2\n });\n });\n\n if((ax.tickson === 'boundaries' || ax.showdividers) && !opts.secondary) {\n var gap = 2;\n if(ax.ticks) gap += ax.tickwidth / 2;\n\n // TODO should secondary labels also fall into this fix-overlap regime?\n\n for(i = 0; i < lbbArray.length; i++) {\n var xbnd = vals[i].xbnd;\n var lbb = lbbArray[i];\n if(\n (xbnd[0] !== null && (lbb.left - ax.l2p(xbnd[0])) < gap) ||\n (xbnd[1] !== null && (ax.l2p(xbnd[1]) - lbb.right) < gap)\n ) {\n autoangle = 90;\n break;\n }\n }\n } else {\n var vLen = vals.length;\n var tickSpacing = Math.abs((vals[vLen - 1].x - vals[0].x) * ax._m) / (vLen - 1);\n var rotate90 = (tickSpacing < maxFontSize * 2.5) || ax.type === 'multicategory';\n\n // any overlap at all - set 30 degrees or 90 degrees\n for(i = 0; i < lbbArray.length - 1; i++) {\n if(Lib.bBoxIntersect(lbbArray[i], lbbArray[i + 1])) {\n autoangle = rotate90 ? 90 : 30;\n break;\n }\n }\n }\n\n if(autoangle) {\n positionLabels(tickLabels, autoangle);\n }\n }\n }\n\n if(ax._selections) {\n ax._selections[cls] = tickLabels;\n }\n\n var seq = [allLabelsReady];\n\n // N.B. during auto-margin redraws, if the axis fixed its label overlaps\n // by rotating 90 degrees, do not attempt to re-fix its label overlaps\n // as this can lead to infinite redraw loops!\n if(ax.automargin && fullLayout._redrawFromAutoMarginCount && prevAngle === 90) {\n autoangle = 90;\n seq.push(function() {\n positionLabels(tickLabels, prevAngle);\n });\n } else {\n seq.push(fixLabelOverlaps);\n }\n\n // save current tick angle for future redraws\n if(ax._tickAngles) {\n seq.push(function() {\n ax._tickAngles[cls] = autoangle === null ?\n (isNumeric(tickAngle) ? tickAngle : 0) :\n autoangle;\n });\n }\n\n var done = Lib.syncOrAsync(seq);\n if(done && done.then) gd._promises.push(done);\n return done;\n};\n\n/**\n * Draw axis dividers\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} showdividers\n * - {number} dividerwidth\n * - {string} dividercolor\n * @param {object} opts\n * - {array of object} vals (calcTicks output-like)\n * - {d3 selection} layer\n * - {fn} path\n * - {fn} transFn\n */\nfunction drawDividers(gd, ax, opts) {\n var cls = ax._id + 'divider';\n var vals = opts.vals;\n\n var dividers = opts.layer.selectAll('path.' + cls)\n .data(vals, tickDataFn);\n\n dividers.exit().remove();\n\n dividers.enter().insert('path', ':first-child')\n .classed(cls, 1)\n .classed('crisp', 1)\n .call(Color.stroke, ax.dividercolor)\n .style('stroke-width', Drawing.crispRound(gd, ax.dividerwidth, 1) + 'px');\n\n dividers\n .attr('transform', opts.transFn)\n .attr('d', opts.path);\n}\n\n/**\n * Get axis position in px, that is the distance for the graph's\n * top (left) edge for x (y) axes.\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} side\n * if anchored:\n * - {object} _anchorAxis\n * Otherwise:\n * - {number} position\n * @return {number}\n */\naxes.getPxPosition = function(gd, ax) {\n var gs = gd._fullLayout._size;\n var axLetter = ax._id.charAt(0);\n var side = ax.side;\n var anchorAxis;\n\n if(ax.anchor !== 'free') {\n anchorAxis = ax._anchorAxis;\n } else if(axLetter === 'x') {\n anchorAxis = {\n _offset: gs.t + (1 - (ax.position || 0)) * gs.h,\n _length: 0\n };\n } else if(axLetter === 'y') {\n anchorAxis = {\n _offset: gs.l + (ax.position || 0) * gs.w,\n _length: 0\n };\n }\n\n if(side === 'top' || side === 'left') {\n return anchorAxis._offset;\n } else if(side === 'bottom' || side === 'right') {\n return anchorAxis._offset + anchorAxis._length;\n }\n};\n\n/**\n * Approximate axis title depth (w/o computing its bounding box)\n *\n * @param {object} ax (full) axis object\n * - {string} title.text\n * - {number} title.font.size\n * - {number} title.standoff\n * @return {number} (in px)\n */\nfunction approxTitleDepth(ax) {\n var fontSize = ax.title.font.size;\n var extraLines = (ax.title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n if(ax.title.hasOwnProperty('standoff')) {\n return extraLines ?\n fontSize * (CAP_SHIFT + (extraLines * LINE_SPACING)) :\n fontSize * CAP_SHIFT;\n } else {\n return extraLines ?\n fontSize * (extraLines + 1) * LINE_SPACING :\n fontSize;\n }\n}\n\n/**\n * Draw axis title, compute default standoff if necessary\n *\n * @param {DOM element} gd\n * @param {object} ax (full) axis object\n * - {string} _id\n * - {string} _name\n * - {string} side\n * - {number} title.font.size\n * - {object} _selections\n *\n * - {number} _depth\n * - {number} title.standoff\n * OR\n * - {number} linewidth\n * - {boolean} showticklabels\n */\nfunction drawTitle(gd, ax) {\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var fontSize = ax.title.font.size;\n\n var titleStandoff;\n\n if(ax.title.hasOwnProperty('standoff')) {\n titleStandoff = ax._depth + ax.title.standoff + approxTitleDepth(ax);\n } else {\n if(ax.type === 'multicategory') {\n titleStandoff = ax._depth;\n } else {\n var offsetBase = 1.5;\n titleStandoff = 10 + fontSize * offsetBase + (ax.linewidth ? ax.linewidth - 1 : 0);\n }\n\n if(axLetter === 'x') {\n titleStandoff += ax.side === 'top' ?\n fontSize * (ax.showticklabels ? 1 : 0) :\n fontSize * (ax.showticklabels ? 1.5 : 0.5);\n } else {\n titleStandoff += ax.side === 'right' ?\n fontSize * (ax.showticklabels ? 1 : 0.5) :\n fontSize * (ax.showticklabels ? 0.5 : 0);\n }\n }\n\n var pos = axes.getPxPosition(gd, ax);\n var transform, x, y;\n\n if(axLetter === 'x') {\n x = ax._offset + ax._length / 2;\n y = (ax.side === 'top') ? pos - titleStandoff : pos + titleStandoff;\n } else {\n y = ax._offset + ax._length / 2;\n x = (ax.side === 'right') ? pos + titleStandoff : pos - titleStandoff;\n transform = {rotate: '-90', offset: 0};\n }\n\n var avoid;\n\n if(ax.type !== 'multicategory') {\n var tickLabels = ax._selections[ax._id + 'tick'];\n\n avoid = {\n selection: tickLabels,\n side: ax.side\n };\n\n if(tickLabels && tickLabels.node() && tickLabels.node().parentNode) {\n var translation = Drawing.getTranslate(tickLabels.node().parentNode);\n avoid.offsetLeft = translation.x;\n avoid.offsetTop = translation.y;\n }\n\n if(ax.title.hasOwnProperty('standoff')) {\n avoid.pad = 0;\n }\n }\n\n return Titles.draw(gd, axId + 'title', {\n propContainer: ax,\n propName: ax._name + '.title.text',\n placeholder: fullLayout._dfltTitle[axLetter],\n avoid: avoid,\n transform: transform,\n attributes: {x: x, y: y, 'text-anchor': 'middle'}\n });\n}\n\naxes.shouldShowZeroLine = function(gd, ax, counterAxis) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n return (\n (rng[0] * rng[1] <= 0) &&\n ax.zeroline &&\n (ax.type === 'linear' || ax.type === '-') &&\n (\n clipEnds(ax, 0) ||\n !anyCounterAxLineAtZero(gd, ax, counterAxis, rng) ||\n hasBarsOrFill(gd, ax)\n )\n );\n};\n\naxes.clipEnds = function(ax, vals) {\n return vals.filter(function(d) { return clipEnds(ax, d.x); });\n};\n\nfunction clipEnds(ax, l) {\n var p = ax.l2p(l);\n return (p > 1 && p < ax._length - 1);\n}\n\nfunction anyCounterAxLineAtZero(gd, ax, counterAxis, rng) {\n var mainCounterAxis = counterAxis._mainAxis;\n if(!mainCounterAxis) return;\n\n var fullLayout = gd._fullLayout;\n var axLetter = ax._id.charAt(0);\n var counterLetter = axes.counterLetter(ax._id);\n\n var zeroPosition = ax._offset + (\n ((Math.abs(rng[0]) < Math.abs(rng[1])) === (axLetter === 'x')) ?\n 0 : ax._length\n );\n\n function lineNearZero(ax2) {\n if(!ax2.showline || !ax2.linewidth) return false;\n var tolerance = Math.max((ax2.linewidth + ax.zerolinewidth) / 2, 1);\n\n function closeEnough(pos2) {\n return typeof pos2 === 'number' && Math.abs(pos2 - zeroPosition) < tolerance;\n }\n\n if(closeEnough(ax2._mainLinePosition) || closeEnough(ax2._mainMirrorPosition)) {\n return true;\n }\n var linePositions = ax2._linepositions || {};\n for(var k in linePositions) {\n if(closeEnough(linePositions[k][0]) || closeEnough(linePositions[k][1])) {\n return true;\n }\n }\n }\n\n var plotinfo = fullLayout._plots[counterAxis._mainSubplot];\n if(!(plotinfo.mainplotinfo || plotinfo).overlays.length) {\n return lineNearZero(counterAxis, zeroPosition);\n }\n\n var counterLetterAxes = axes.list(gd, counterLetter);\n for(var i = 0; i < counterLetterAxes.length; i++) {\n var counterAxis2 = counterLetterAxes[i];\n if(\n counterAxis2._mainAxis === mainCounterAxis &&\n lineNearZero(counterAxis2, zeroPosition)\n ) {\n return true;\n }\n }\n}\n\nfunction hasBarsOrFill(gd, ax) {\n var fullData = gd._fullData;\n var subplot = ax._mainSubplot;\n var axLetter = ax._id.charAt(0);\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n\n if(trace.visible === true && (trace.xaxis + trace.yaxis) === subplot) {\n if(\n Registry.traceIs(trace, 'bar-like') &&\n trace.orientation === {x: 'h', y: 'v'}[axLetter]\n ) return true;\n\n if(\n trace.fill &&\n trace.fill.charAt(trace.fill.length - 1) === axLetter\n ) return true;\n }\n }\n return false;\n}\n\nfunction selectTickLabel(gTick) {\n var s = d3.select(gTick);\n var mj = s.select('.text-math-group');\n return mj.empty() ? s.select('text') : mj;\n}\n\n/**\n * Find all margin pushers for 2D axes and reserve them for later use\n * Both label and rangeslider automargin calculations happen later so\n * we need to explicitly allow their ids in order to not delete them.\n *\n * TODO: can we pull the actual automargin calls forward to avoid this hack?\n * We're probably also doing multiple redraws in this case, would be faster\n * if we can just do the whole calculation ahead of time and draw once.\n */\naxes.allowAutoMargin = function(gd) {\n var axList = axes.list(gd, '', true);\n for(var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n if(ax.automargin) {\n Plots.allowAutoMargin(gd, axAutoMarginID(ax));\n if(ax.mirror) {\n Plots.allowAutoMargin(gd, axMirrorAutoMarginID(ax));\n }\n }\n if(Registry.getComponentMethod('rangeslider', 'isVisible')(ax)) {\n Plots.allowAutoMargin(gd, rangeSliderAutoMarginID(ax));\n }\n }\n};\n\nfunction axAutoMarginID(ax) { return ax._id + '.automargin'; }\nfunction axMirrorAutoMarginID(ax) { return axAutoMarginID(ax) + '.mirror'; }\nfunction rangeSliderAutoMarginID(ax) { return ax._id + '.rangeslider'; }\n\n// swap all the presentation attributes of the axes showing these traces\naxes.swap = function(gd, traces) {\n var axGroups = makeAxisGroups(gd, traces);\n\n for(var i = 0; i < axGroups.length; i++) {\n swapAxisGroup(gd, axGroups[i].x, axGroups[i].y);\n }\n};\n\nfunction makeAxisGroups(gd, traces) {\n var groups = [];\n var i, j;\n\n for(i = 0; i < traces.length; i++) {\n var groupsi = [];\n var xi = gd._fullData[traces[i]].xaxis;\n var yi = gd._fullData[traces[i]].yaxis;\n if(!xi || !yi) continue; // not a 2D cartesian trace?\n\n for(j = 0; j < groups.length; j++) {\n if(groups[j].x.indexOf(xi) !== -1 || groups[j].y.indexOf(yi) !== -1) {\n groupsi.push(j);\n }\n }\n\n if(!groupsi.length) {\n groups.push({x: [xi], y: [yi]});\n continue;\n }\n\n var group0 = groups[groupsi[0]];\n var groupj;\n\n if(groupsi.length > 1) {\n for(j = 1; j < groupsi.length; j++) {\n groupj = groups[groupsi[j]];\n mergeAxisGroups(group0.x, groupj.x);\n mergeAxisGroups(group0.y, groupj.y);\n }\n }\n mergeAxisGroups(group0.x, [xi]);\n mergeAxisGroups(group0.y, [yi]);\n }\n\n return groups;\n}\n\nfunction mergeAxisGroups(intoSet, fromSet) {\n for(var i = 0; i < fromSet.length; i++) {\n if(intoSet.indexOf(fromSet[i]) === -1) intoSet.push(fromSet[i]);\n }\n}\n\nfunction swapAxisGroup(gd, xIds, yIds) {\n var xFullAxes = [];\n var yFullAxes = [];\n var layout = gd.layout;\n var i, j;\n\n for(i = 0; i < xIds.length; i++) xFullAxes.push(axes.getFromId(gd, xIds[i]));\n for(i = 0; i < yIds.length; i++) yFullAxes.push(axes.getFromId(gd, yIds[i]));\n\n var allAxKeys = Object.keys(axAttrs);\n\n var noSwapAttrs = [\n 'anchor', 'domain', 'overlaying', 'position', 'side', 'tickangle', 'editType'\n ];\n var numericTypes = ['linear', 'log'];\n\n for(i = 0; i < allAxKeys.length; i++) {\n var keyi = allAxKeys[i];\n var xVal = xFullAxes[0][keyi];\n var yVal = yFullAxes[0][keyi];\n var allEqual = true;\n var coerceLinearX = false;\n var coerceLinearY = false;\n if(keyi.charAt(0) === '_' || typeof xVal === 'function' ||\n noSwapAttrs.indexOf(keyi) !== -1) {\n continue;\n }\n for(j = 1; j < xFullAxes.length && allEqual; j++) {\n var xVali = xFullAxes[j][keyi];\n if(keyi === 'type' && numericTypes.indexOf(xVal) !== -1 &&\n numericTypes.indexOf(xVali) !== -1 && xVal !== xVali) {\n // type is special - if we find a mixture of linear and log,\n // coerce them all to linear on flipping\n coerceLinearX = true;\n } else if(xVali !== xVal) allEqual = false;\n }\n for(j = 1; j < yFullAxes.length && allEqual; j++) {\n var yVali = yFullAxes[j][keyi];\n if(keyi === 'type' && numericTypes.indexOf(yVal) !== -1 &&\n numericTypes.indexOf(yVali) !== -1 && yVal !== yVali) {\n // type is special - if we find a mixture of linear and log,\n // coerce them all to linear on flipping\n coerceLinearY = true;\n } else if(yFullAxes[j][keyi] !== yVal) allEqual = false;\n }\n if(allEqual) {\n if(coerceLinearX) layout[xFullAxes[0]._name].type = 'linear';\n if(coerceLinearY) layout[yFullAxes[0]._name].type = 'linear';\n swapAxisAttrs(layout, keyi, xFullAxes, yFullAxes, gd._fullLayout._dfltTitle);\n }\n }\n\n // now swap x&y for any annotations anchored to these x & y\n for(i = 0; i < gd._fullLayout.annotations.length; i++) {\n var ann = gd._fullLayout.annotations[i];\n if(xIds.indexOf(ann.xref) !== -1 &&\n yIds.indexOf(ann.yref) !== -1) {\n Lib.swapAttrs(layout.annotations[i], ['?']);\n }\n }\n}\n\nfunction swapAxisAttrs(layout, key, xFullAxes, yFullAxes, dfltTitle) {\n // in case the value is the default for either axis,\n // look at the first axis in each list and see if\n // this key's value is undefined\n var np = Lib.nestedProperty;\n var xVal = np(layout[xFullAxes[0]._name], key).get();\n var yVal = np(layout[yFullAxes[0]._name], key).get();\n var i;\n\n if(key === 'title') {\n // special handling of placeholder titles\n if(xVal && xVal.text === dfltTitle.x) {\n xVal.text = dfltTitle.y;\n }\n if(yVal && yVal.text === dfltTitle.y) {\n yVal.text = dfltTitle.x;\n }\n }\n\n for(i = 0; i < xFullAxes.length; i++) {\n np(layout, xFullAxes[i]._name + '.' + key).set(yVal);\n }\n for(i = 0; i < yFullAxes.length; i++) {\n np(layout, yFullAxes[i]._name + '.' + key).set(xVal);\n }\n}\n\nfunction isAngular(ax) {\n return ax._id === 'angularaxis';\n}\n\n\n/***/ }),\n\n/***/ \"0648\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 300es builtins/reserved words that were previously valid in v100\r\nvar v100 = __webpack_require__(\"5ecd\")\r\n\r\n// The texture2D|Cube functions have been removed\r\n// And the gl_ features are updated\r\nv100 = v100.slice().filter(function (b) {\r\n return !/^(gl\\_|texture)/.test(b)\r\n})\r\n\r\nmodule.exports = v100.concat([\r\n // the updated gl_ constants\r\n 'gl_VertexID'\r\n , 'gl_InstanceID'\r\n , 'gl_Position'\r\n , 'gl_PointSize'\r\n , 'gl_FragCoord'\r\n , 'gl_FrontFacing'\r\n , 'gl_FragDepth'\r\n , 'gl_PointCoord'\r\n , 'gl_MaxVertexAttribs'\r\n , 'gl_MaxVertexUniformVectors'\r\n , 'gl_MaxVertexOutputVectors'\r\n , 'gl_MaxFragmentInputVectors'\r\n , 'gl_MaxVertexTextureImageUnits'\r\n , 'gl_MaxCombinedTextureImageUnits'\r\n , 'gl_MaxTextureImageUnits'\r\n , 'gl_MaxFragmentUniformVectors'\r\n , 'gl_MaxDrawBuffers'\r\n , 'gl_MinProgramTexelOffset'\r\n , 'gl_MaxProgramTexelOffset'\r\n , 'gl_DepthRangeParameters'\r\n , 'gl_DepthRange'\r\n\r\n // other builtins\r\n , 'trunc'\r\n , 'round'\r\n , 'roundEven'\r\n , 'isnan'\r\n , 'isinf'\r\n , 'floatBitsToInt'\r\n , 'floatBitsToUint'\r\n , 'intBitsToFloat'\r\n , 'uintBitsToFloat'\r\n , 'packSnorm2x16'\r\n , 'unpackSnorm2x16'\r\n , 'packUnorm2x16'\r\n , 'unpackUnorm2x16'\r\n , 'packHalf2x16'\r\n , 'unpackHalf2x16'\r\n , 'outerProduct'\r\n , 'transpose'\r\n , 'determinant'\r\n , 'inverse'\r\n , 'texture'\r\n , 'textureSize'\r\n , 'textureProj'\r\n , 'textureLod'\r\n , 'textureOffset'\r\n , 'texelFetch'\r\n , 'texelFetchOffset'\r\n , 'textureProjOffset'\r\n , 'textureLodOffset'\r\n , 'textureProjLod'\r\n , 'textureProjLodOffset'\r\n , 'textureGrad'\r\n , 'textureGradOffset'\r\n , 'textureProjGrad'\r\n , 'textureProjGradOffset'\r\n])\r\n\n\n/***/ }),\n\n/***/ \"0681\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\n// Maybe add kernels more down the road,\n// but note that the default `spanmode: 'soft'` bounds might have\n// to become kernel-dependent\nvar kernels = {\n gaussian: function(v) {\n return (1 / Math.sqrt(2 * Math.PI)) * Math.exp(-0.5 * v * v);\n }\n};\n\nexports.makeKDE = function(calcItem, trace, vals) {\n var len = vals.length;\n var kernel = kernels.gaussian;\n var bandwidth = calcItem.bandwidth;\n var factor = 1 / (len * bandwidth);\n\n // don't use Lib.aggNums to skip isNumeric checks\n return function(x) {\n var sum = 0;\n for(var i = 0; i < len; i++) {\n sum += kernel((x - vals[i]) / bandwidth);\n }\n return factor * sum;\n };\n};\n\nexports.getPositionOnKdePath = function(calcItem, trace, valuePx) {\n var posLetter, valLetter;\n\n if(trace.orientation === 'h') {\n posLetter = 'y';\n valLetter = 'x';\n } else {\n posLetter = 'x';\n valLetter = 'y';\n }\n\n var pointOnPath = Lib.findPointOnPath(\n calcItem.path,\n valuePx,\n valLetter,\n {pathLength: calcItem.pathLength}\n );\n\n var posCenterPx = calcItem.posCenterPx;\n var posOnPath0 = pointOnPath[posLetter];\n var posOnPath1 = trace.side === 'both' ?\n 2 * posCenterPx - posOnPath0 :\n posCenterPx;\n\n return [posOnPath0, posOnPath1];\n};\n\nexports.getKdeValue = function(calcItem, trace, valueDist) {\n var vals = calcItem.pts.map(exports.extractVal);\n var kde = exports.makeKDE(calcItem, trace, vals);\n return kde(valueDist) / calcItem.posDensityScale;\n};\n\nexports.extractVal = function(o) { return o.v; };\n\n\n/***/ }),\n\n/***/ \"06a2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar clear = __webpack_require__(\"a671d\")\n , assign = __webpack_require__(\"2031\")\n , callable = __webpack_require__(\"1a94\")\n , value = __webpack_require__(\"96ae\")\n , d = __webpack_require__(\"f508\")\n , autoBind = __webpack_require__(\"986b\")\n , Symbol = __webpack_require__(\"1c4a\");\n\nvar defineProperty = Object.defineProperty, defineProperties = Object.defineProperties, Iterator;\n\nmodule.exports = Iterator = function (list, context) {\n\tif (!(this instanceof Iterator)) throw new TypeError(\"Constructor requires 'new'\");\n\tdefineProperties(this, {\n\t\t__list__: d(\"w\", value(list)),\n\t\t__context__: d(\"w\", context),\n\t\t__nextIndex__: d(\"w\", 0)\n\t});\n\tif (!context) return;\n\tcallable(context.on);\n\tcontext.on(\"_add\", this._onAdd);\n\tcontext.on(\"_delete\", this._onDelete);\n\tcontext.on(\"_clear\", this._onClear);\n};\n\n// Internal %IteratorPrototype% doesn't expose its constructor\ndelete Iterator.prototype.constructor;\n\ndefineProperties(\n\tIterator.prototype,\n\tassign(\n\t\t{\n\t\t\t_next: d(function () {\n\t\t\t\tvar i;\n\t\t\t\tif (!this.__list__) return undefined;\n\t\t\t\tif (this.__redo__) {\n\t\t\t\t\ti = this.__redo__.shift();\n\t\t\t\t\tif (i !== undefined) return i;\n\t\t\t\t}\n\t\t\t\tif (this.__nextIndex__ < this.__list__.length) return this.__nextIndex__++;\n\t\t\t\tthis._unBind();\n\t\t\t\treturn undefined;\n\t\t\t}),\n\t\t\tnext: d(function () {\n\t\t\t\treturn this._createResult(this._next());\n\t\t\t}),\n\t\t\t_createResult: d(function (i) {\n\t\t\t\tif (i === undefined) return { done: true, value: undefined };\n\t\t\t\treturn { done: false, value: this._resolve(i) };\n\t\t\t}),\n\t\t\t_resolve: d(function (i) {\n\t\t\t\treturn this.__list__[i];\n\t\t\t}),\n\t\t\t_unBind: d(function () {\n\t\t\t\tthis.__list__ = null;\n\t\t\t\tdelete this.__redo__;\n\t\t\t\tif (!this.__context__) return;\n\t\t\t\tthis.__context__.off(\"_add\", this._onAdd);\n\t\t\t\tthis.__context__.off(\"_delete\", this._onDelete);\n\t\t\t\tthis.__context__.off(\"_clear\", this._onClear);\n\t\t\t\tthis.__context__ = null;\n\t\t\t}),\n\t\t\ttoString: d(function () {\n\t\t\t\treturn \"[object \" + (this[Symbol.toStringTag] || \"Object\") + \"]\";\n\t\t\t})\n\t\t},\n\t\tautoBind({\n\t\t\t_onAdd: d(function (index) {\n\t\t\t\tif (index >= this.__nextIndex__) return;\n\t\t\t\t++this.__nextIndex__;\n\t\t\t\tif (!this.__redo__) {\n\t\t\t\t\tdefineProperty(this, \"__redo__\", d(\"c\", [index]));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.__redo__.forEach(function (redo, i) {\n\t\t\t\t\tif (redo >= index) this.__redo__[i] = ++redo;\n\t\t\t\t}, this);\n\t\t\t\tthis.__redo__.push(index);\n\t\t\t}),\n\t\t\t_onDelete: d(function (index) {\n\t\t\t\tvar i;\n\t\t\t\tif (index >= this.__nextIndex__) return;\n\t\t\t\t--this.__nextIndex__;\n\t\t\t\tif (!this.__redo__) return;\n\t\t\t\ti = this.__redo__.indexOf(index);\n\t\t\t\tif (i !== -1) this.__redo__.splice(i, 1);\n\t\t\t\tthis.__redo__.forEach(function (redo, j) {\n\t\t\t\t\tif (redo > index) this.__redo__[j] = --redo;\n\t\t\t\t}, this);\n\t\t\t}),\n\t\t\t_onClear: d(function () {\n\t\t\t\tif (this.__redo__) clear.call(this.__redo__);\n\t\t\t\tthis.__nextIndex__ = 0;\n\t\t\t})\n\t\t})\n\t)\n);\n\ndefineProperty(\n\tIterator.prototype,\n\tSymbol.iterator,\n\td(function () {\n\t\treturn this;\n\t})\n);\n\n\n/***/ }),\n\n/***/ \"06ad\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar layoutAttributes = __webpack_require__(\"60dc\");\n\nfunction _supply(layoutIn, layoutOut, fullData, coerce, traceType) {\n var category = traceType + 'Layout';\n var hasTraceType = false;\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n\n if(Registry.traceIs(trace, category)) {\n hasTraceType = true;\n break;\n }\n }\n if(!hasTraceType) return;\n\n coerce(traceType + 'mode');\n coerce(traceType + 'gap');\n coerce(traceType + 'groupgap');\n}\n\nfunction supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n _supply(layoutIn, layoutOut, fullData, coerce, 'box');\n}\n\nmodule.exports = {\n supplyLayoutDefaults: supplyLayoutDefaults,\n _supply: _supply\n};\n\n\n/***/ }),\n\n/***/ \"06cf\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar propertyIsEnumerableModule = __webpack_require__(\"d1e7\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar has = __webpack_require__(\"5135\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"0cfb\");\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ \"075f\":\n/***/ (function(module, exports) {\n\nvar DEFAULT_NORMALS_EPSILON = 1e-6;\nvar DEFAULT_FACE_EPSILON = 1e-6;\n\n//Estimate the vertex normals of a mesh\nexports.vertexNormals = function(faces, positions, specifiedEpsilon) {\n\n var N = positions.length;\n var normals = new Array(N);\n var epsilon = specifiedEpsilon === void(0) ? DEFAULT_NORMALS_EPSILON : specifiedEpsilon;\n\n //Initialize normal array\n for(var i=0; i epsilon) {\n var norm = normals[c];\n var w = 1.0 / Math.sqrt(m01 * m21);\n for(var k=0; k<3; ++k) {\n var u = (k+1)%3;\n var v = (k+2)%3;\n norm[k] += w * (d21[u] * d01[v] - d21[v] * d01[u]);\n }\n }\n }\n }\n\n //Scale all normals to unit length\n for(var i=0; i epsilon) {\n var w = 1.0 / Math.sqrt(m);\n for(var k=0; k<3; ++k) {\n norm[k] *= w;\n }\n } else {\n for(var k=0; k<3; ++k) {\n norm[k] = 0.0;\n }\n }\n }\n\n //Return the resulting set of patches\n return normals;\n}\n\n//Compute face normals of a mesh\nexports.faceNormals = function(faces, positions, specifiedEpsilon) {\n\n var N = faces.length;\n var normals = new Array(N);\n var epsilon = specifiedEpsilon === void(0) ? DEFAULT_FACE_EPSILON : specifiedEpsilon;\n\n for(var i=0; i epsilon) {\n l = 1.0 / Math.sqrt(l);\n } else {\n l = 0.0;\n }\n for(var j=0; j<3; ++j) {\n n[j] *= l;\n }\n normals[i] = n;\n }\n return normals;\n}\n\n\n\n\n/***/ }),\n\n/***/ \"076f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\n\nmodule.exports = function handleXYDefaults(traceIn, traceOut, layout, coerce) {\n var x = coerce('x');\n var y = coerce('y');\n var len;\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);\n\n if(x) {\n var xlen = Lib.minRowLength(x);\n if(y) {\n len = Math.min(xlen, Lib.minRowLength(y));\n } else {\n len = xlen;\n coerce('y0');\n coerce('dy');\n }\n } else {\n if(!y) return 0;\n\n len = Lib.minRowLength(y);\n coerce('x0');\n coerce('dx');\n }\n\n traceOut._length = len;\n\n return len;\n};\n\n\n/***/ }),\n\n/***/ \"078e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar Scene2D = __webpack_require__(\"e212\");\nvar layoutGlobalAttrs = __webpack_require__(\"a685\");\nvar xmlnsNamespaces = __webpack_require__(\"73c9\");\nvar constants = __webpack_require__(\"d301\");\nvar Cartesian = __webpack_require__(\"91cd\");\nvar fxAttrs = __webpack_require__(\"927d\");\nvar getSubplotData = __webpack_require__(\"ad62\").getSubplotData;\n\nexports.name = 'gl2d';\n\nexports.attr = ['xaxis', 'yaxis'];\n\nexports.idRoot = ['x', 'y'];\n\nexports.idRegex = constants.idRegex;\n\nexports.attrRegex = constants.attrRegex;\n\nexports.attributes = __webpack_require__(\"3ff7\");\n\nexports.supplyLayoutDefaults = function(layoutIn, layoutOut, fullData) {\n if(!layoutOut._has('cartesian')) {\n Cartesian.supplyLayoutDefaults(layoutIn, layoutOut, fullData);\n }\n};\n\n// gl2d uses svg axis attributes verbatim, but overrides editType\n// this could potentially be just `layoutAttributes` but it would\n// still need special handling somewhere to give it precedence over\n// the svg version when both are in use on one plot\nexports.layoutAttrOverrides = overrideAll(Cartesian.layoutAttributes, 'plot', 'from-root');\n\n// similar overrides for base plot attributes (and those added by components)\nexports.baseLayoutAttrOverrides = overrideAll({\n plot_bgcolor: layoutGlobalAttrs.plot_bgcolor,\n hoverlabel: fxAttrs.hoverlabel\n // dragmode needs calc but only when transitioning TO lasso or select\n // so for now it's left inside _relayout\n // dragmode: fxAttrs.dragmode\n}, 'plot', 'nested');\n\nexports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var subplotIds = fullLayout._subplots.gl2d;\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplotId = subplotIds[i];\n var subplotObj = fullLayout._plots[subplotId];\n var fullSubplotData = getSubplotData(fullData, 'gl2d', subplotId);\n\n // ref. to corresp. Scene instance\n var scene = subplotObj._scene2d;\n\n // If Scene is not instantiated, create one!\n if(scene === undefined) {\n scene = new Scene2D({\n id: subplotId,\n graphDiv: gd,\n container: gd.querySelector('.gl-container'),\n staticPlot: gd._context.staticPlot,\n plotGlPixelRatio: gd._context.plotGlPixelRatio\n },\n fullLayout\n );\n\n // set ref to Scene instance\n subplotObj._scene2d = scene;\n }\n\n scene.plot(fullSubplotData, gd.calcdata, fullLayout, gd.layout);\n }\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldSceneKeys = oldFullLayout._subplots.gl2d || [];\n\n for(var i = 0; i < oldSceneKeys.length; i++) {\n var id = oldSceneKeys[i];\n var oldSubplot = oldFullLayout._plots[id];\n\n // old subplot wasn't gl2d; nothing to do\n if(!oldSubplot._scene2d) continue;\n\n // if no traces are present, delete gl2d subplot\n var subplotData = getSubplotData(newFullData, 'gl2d', id);\n if(subplotData.length === 0) {\n oldSubplot._scene2d.destroy();\n delete oldFullLayout._plots[id];\n }\n }\n\n // since we use cartesian interactions, do cartesian clean\n Cartesian.clean.apply(this, arguments);\n};\n\nexports.drawFramework = function(gd) {\n if(!gd._context.staticPlot) {\n Cartesian.drawFramework(gd);\n }\n};\n\nexports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots.gl2d;\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplot = fullLayout._plots[subplotIds[i]];\n var scene = subplot._scene2d;\n\n var imageData = scene.toImage('png');\n var image = fullLayout._glimages.append('svg:image');\n\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n 'xlink:href': imageData,\n x: 0,\n y: 0,\n width: '100%',\n height: '100%',\n preserveAspectRatio: 'none'\n });\n\n scene.destroy();\n }\n};\n\nexports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots.gl2d;\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout._plots[subplotIds[i]]._scene2d;\n subplotObj.updateFx(fullLayout.dragmode);\n }\n};\n\n\n/***/ }),\n\n/***/ \"07db\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\nvar sprintf = __webpack_require__(\"e19f\").sprintf;\nvar glConstants = __webpack_require__(\"b42a\");\nvar shaderName = __webpack_require__(\"b2dd\");\nvar addLineNumbers = __webpack_require__(\"911e\");\n\nmodule.exports = formatCompilerError;\n\nfunction formatCompilerError(errLog, src, type) {\n \"use strict\";\n\n var name = shaderName(src) || 'of unknown name (see npm glsl-shader-name)';\n\n var typeName = 'unknown type';\n if (type !== undefined) {\n typeName = type === glConstants.FRAGMENT_SHADER ? 'fragment' : 'vertex'\n }\n\n var longForm = sprintf('Error compiling %s shader %s:\\n', typeName, name);\n var shortForm = sprintf(\"%s%s\", longForm, errLog);\n\n var errorStrings = errLog.split('\\n');\n var errors = {};\n\n for (var i = 0; i < errorStrings.length; i++) {\n var errorString = errorStrings[i];\n if (errorString === '' || errorString === \"\\0\") continue;\n var lineNo = parseInt(errorString.split(':')[2]);\n if (isNaN(lineNo)) {\n throw new Error(sprintf('Could not parse error: %s', errorString));\n }\n errors[lineNo] = errorString;\n }\n\n var lines = addLineNumbers(src).split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n if (!errors[i+3] && !errors[i+2] && !errors[i+1]) continue;\n var line = lines[i];\n longForm += line + '\\n';\n if (errors[i+1]) {\n var e = errors[i+1];\n e = e.substr(e.split(':', 3).join(':').length + 1).trim();\n longForm += sprintf('^^^ %s\\n\\n', e);\n }\n }\n\n return {\n long: longForm.trim(),\n short: shortForm.trim()\n };\n}\n\n\n\n/***/ }),\n\n/***/ \"07dd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\nvar attributes = __webpack_require__(\"a08c\");\nvar colorscaleDefaults = __webpack_require__(\"4183\");\n\nfunction supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n}\n\nfunction supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce) {\n var isomin = coerce('isomin');\n var isomax = coerce('isomax');\n\n if(isomax !== undefined && isomax !== null &&\n isomin !== undefined && isomin !== null &&\n isomin > isomax) {\n // applying default values in this case:\n traceOut.isomin = null;\n traceOut.isomax = null;\n }\n\n var x = coerce('x');\n var y = coerce('y');\n var z = coerce('z');\n var value = coerce('value');\n\n if(\n !x || !x.length ||\n !y || !y.length ||\n !z || !z.length ||\n !value || !value.length\n ) {\n traceOut.visible = false;\n return;\n }\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y', 'z'], layout);\n\n ['x', 'y', 'z'].forEach(function(dim) {\n var capDim = 'caps.' + dim;\n var showCap = coerce(capDim + '.show');\n if(showCap) {\n coerce(capDim + '.fill');\n }\n\n var sliceDim = 'slices.' + dim;\n var showSlice = coerce(sliceDim + '.show');\n if(showSlice) {\n coerce(sliceDim + '.fill');\n coerce(sliceDim + '.locations');\n }\n });\n\n var showSpaceframe = coerce('spaceframe.show');\n if(showSpaceframe) {\n coerce('spaceframe.fill');\n }\n\n var showSurface = coerce('surface.show');\n if(showSurface) {\n coerce('surface.count');\n coerce('surface.fill');\n coerce('surface.pattern');\n }\n\n var showContour = coerce('contour.show');\n if(showContour) {\n coerce('contour.color');\n coerce('contour.width');\n }\n\n // Coerce remaining properties\n [\n 'text',\n 'hovertext',\n 'hovertemplate',\n 'lighting.ambient',\n 'lighting.diffuse',\n 'lighting.specular',\n 'lighting.roughness',\n 'lighting.fresnel',\n 'lighting.vertexnormalsepsilon',\n 'lighting.facenormalsepsilon',\n 'lightposition.x',\n 'lightposition.y',\n 'lightposition.z',\n 'flatshading',\n 'opacity'\n ].forEach(function(x) { coerce(x); });\n\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});\n\n // disable 1D transforms (for now)\n traceOut._length = null;\n}\n\nmodule.exports = {\n supplyDefaults: supplyDefaults,\n supplyIsoDefaults: supplyIsoDefaults\n};\n\n\n/***/ }),\n\n/***/ \"0804\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n// projection names to d3 function name\nexports.projNames = {\n // d3.geo.projection\n 'equirectangular': 'equirectangular',\n 'mercator': 'mercator',\n 'orthographic': 'orthographic',\n 'natural earth': 'naturalEarth',\n 'kavrayskiy7': 'kavrayskiy7',\n 'miller': 'miller',\n 'robinson': 'robinson',\n 'eckert4': 'eckert4',\n 'azimuthal equal area': 'azimuthalEqualArea',\n 'azimuthal equidistant': 'azimuthalEquidistant',\n 'conic equal area': 'conicEqualArea',\n 'conic conformal': 'conicConformal',\n 'conic equidistant': 'conicEquidistant',\n 'gnomonic': 'gnomonic',\n 'stereographic': 'stereographic',\n 'mollweide': 'mollweide',\n 'hammer': 'hammer',\n 'transverse mercator': 'transverseMercator',\n 'albers usa': 'albersUsa',\n 'winkel tripel': 'winkel3',\n 'aitoff': 'aitoff',\n 'sinusoidal': 'sinusoidal'\n};\n\n// name of the axes\nexports.axesNames = ['lonaxis', 'lataxis'];\n\n// max longitudinal angular span (EXPERIMENTAL)\nexports.lonaxisSpan = {\n 'orthographic': 180,\n 'azimuthal equal area': 360,\n 'azimuthal equidistant': 360,\n 'conic conformal': 180,\n 'gnomonic': 160,\n 'stereographic': 180,\n 'transverse mercator': 180,\n '*': 360\n};\n\n// max latitudinal angular span (EXPERIMENTAL)\nexports.lataxisSpan = {\n 'conic conformal': 150,\n 'stereographic': 179.5,\n '*': 180\n};\n\n// defaults for each scope\nexports.scopeDefaults = {\n world: {\n lonaxisRange: [-180, 180],\n lataxisRange: [-90, 90],\n projType: 'equirectangular',\n projRotate: [0, 0, 0]\n },\n usa: {\n lonaxisRange: [-180, -50],\n lataxisRange: [15, 80],\n projType: 'albers usa'\n },\n europe: {\n lonaxisRange: [-30, 60],\n lataxisRange: [30, 85],\n projType: 'conic conformal',\n projRotate: [15, 0, 0],\n projParallels: [0, 60]\n },\n asia: {\n lonaxisRange: [22, 160],\n lataxisRange: [-15, 55],\n projType: 'mercator',\n projRotate: [0, 0, 0]\n },\n africa: {\n lonaxisRange: [-30, 60],\n lataxisRange: [-40, 40],\n projType: 'mercator',\n projRotate: [0, 0, 0]\n },\n 'north america': {\n lonaxisRange: [-180, -45],\n lataxisRange: [5, 85],\n projType: 'conic conformal',\n projRotate: [-100, 0, 0],\n projParallels: [29.5, 45.5]\n },\n 'south america': {\n lonaxisRange: [-100, -30],\n lataxisRange: [-60, 15],\n projType: 'mercator',\n projRotate: [0, 0, 0]\n }\n};\n\n// angular pad to avoid rounding error around clip angles\nexports.clipPad = 1e-3;\n\n// map projection precision\nexports.precision = 0.1;\n\n// default land and water fill colors\nexports.landColor = '#F0DC82';\nexports.waterColor = '#3399FF';\n\n// locationmode to layer name\nexports.locationmodeToLayer = {\n 'ISO-3': 'countries',\n 'USA-states': 'subunits',\n 'country names': 'countries'\n};\n\n// SVG element for a sphere (use to frame maps)\nexports.sphereSVG = {type: 'Sphere'};\n\n// N.B. base layer names must be the same as in the topojson files\n\n// base layer with a fill color\nexports.fillLayers = {\n ocean: 1,\n land: 1,\n lakes: 1\n};\n\n// base layer with a only a line color\nexports.lineLayers = {\n subunits: 1,\n countries: 1,\n coastlines: 1,\n rivers: 1,\n frame: 1\n};\n\nexports.layers = [\n 'bg',\n 'ocean', 'land', 'lakes',\n 'subunits', 'countries', 'coastlines', 'rivers',\n 'lataxis', 'lonaxis', 'frame',\n 'backplot',\n 'frontplot'\n];\n\nexports.layersForChoropleth = [\n 'bg',\n 'ocean', 'land',\n 'subunits', 'countries', 'coastlines',\n 'lataxis', 'lonaxis', 'frame',\n 'backplot',\n 'rivers', 'lakes',\n 'frontplot'\n];\n\nexports.layerNameToAdjective = {\n ocean: 'ocean',\n land: 'land',\n lakes: 'lake',\n subunits: 'subunit',\n countries: 'country',\n coastlines: 'coastline',\n rivers: 'river',\n frame: 'frame'\n};\n\n\n/***/ }),\n\n/***/ \"085f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar doubleBits = __webpack_require__(\"abc0\")\n\nvar SMALLEST_DENORM = Math.pow(2, -1074)\nvar UINT_MAX = (-1)>>>0\n\nmodule.exports = nextafter\n\nfunction nextafter(x, y) {\n if(isNaN(x) || isNaN(y)) {\n return NaN\n }\n if(x === y) {\n return x\n }\n if(x === 0) {\n if(y < 0) {\n return -SMALLEST_DENORM\n } else {\n return SMALLEST_DENORM\n }\n }\n var hi = doubleBits.hi(x)\n var lo = doubleBits.lo(x)\n if((y > x) === (x > 0)) {\n if(lo === UINT_MAX) {\n hi += 1\n lo = 0\n } else {\n lo += 1\n }\n } else {\n if(lo === 0) {\n lo = UINT_MAX\n hi -= 1\n } else {\n lo -= 1\n }\n }\n return doubleBits.pack(lo, hi)\n}\n\n/***/ }),\n\n/***/ \"089c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nmodule.exports = {\n solid: [[], 0],\n dot: [[0.5, 1], 200],\n dash: [[0.5, 1], 50],\n longdash: [[0.5, 1], 10],\n dashdot: [[0.5, 0.625, 0.875, 1], 50],\n longdashdot: [[0.5, 0.7, 0.8, 1], 10]\n};\n\n\n/***/ }),\n\n/***/ \"08ed\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n moduleType: 'trace',\n name: 'barpolar',\n basePlotModule: __webpack_require__(\"c07c\"),\n categories: ['polar', 'bar', 'showLegend'],\n\n attributes: __webpack_require__(\"792f\"),\n layoutAttributes: __webpack_require__(\"4ce7\"),\n supplyDefaults: __webpack_require__(\"5da2\"),\n supplyLayoutDefaults: __webpack_require__(\"25f3\"),\n\n calc: __webpack_require__(\"ce20\").calc,\n crossTraceCalc: __webpack_require__(\"ce20\").crossTraceCalc,\n\n plot: __webpack_require__(\"ec16\"),\n colorbar: __webpack_require__(\"f3cf\"),\n formatLabels: __webpack_require__(\"98e74\"),\n\n style: __webpack_require__(\"2df3\").style,\n styleOnSelect: __webpack_require__(\"2df3\").styleOnSelect,\n\n hoverPoints: __webpack_require__(\"f11b\"),\n selectPoints: __webpack_require__(\"7000\"),\n\n meta: {\n \n \n }\n};\n\n\n/***/ }),\n\n/***/ \"0919\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\nvar countryRegex = __webpack_require__(\"cec7\");\nvar turfArea = __webpack_require__(\"3b74\");\nvar turfCentroid = __webpack_require__(\"8dde\");\nvar turfBbox = __webpack_require__(\"409f\");\n\nvar identity = __webpack_require__(\"306c\");\nvar loggers = __webpack_require__(\"ae13\");\nvar isPlainObject = __webpack_require__(\"1385\");\nvar nestedProperty = __webpack_require__(\"74d6\");\nvar polygon = __webpack_require__(\"b68b\");\n\n// make list of all country iso3 ids from at runtime\nvar countryIds = Object.keys(countryRegex);\n\nvar locationmodeToIdFinder = {\n 'ISO-3': identity,\n 'USA-states': identity,\n 'country names': countryNameToISO3\n};\n\nfunction countryNameToISO3(countryName) {\n for(var i = 0; i < countryIds.length; i++) {\n var iso3 = countryIds[i];\n var regex = new RegExp(countryRegex[iso3]);\n\n if(regex.test(countryName.trim().toLowerCase())) return iso3;\n }\n\n loggers.log('Unrecognized country name: ' + countryName + '.');\n\n return false;\n}\n\nfunction locationToFeature(locationmode, location, features) {\n if(!location || typeof location !== 'string') return false;\n\n var locationId = locationmodeToIdFinder[locationmode](location);\n var filteredFeatures;\n var f, i;\n\n if(locationId) {\n if(locationmode === 'USA-states') {\n // Filter out features out in USA\n //\n // This is important as the Natural Earth files\n // include state/provinces from USA, Canada, Australia and Brazil\n // which have some overlay in their two-letter ids. For example,\n // 'WA' is used for both Washington state and Western Australia.\n filteredFeatures = [];\n for(i = 0; i < features.length; i++) {\n f = features[i];\n if(f.properties && f.properties.gu && f.properties.gu === 'USA') {\n filteredFeatures.push(f);\n }\n }\n } else {\n filteredFeatures = features;\n }\n\n for(i = 0; i < filteredFeatures.length; i++) {\n f = filteredFeatures[i];\n if(f.id === locationId) return f;\n }\n\n loggers.log([\n 'Location with id', locationId,\n 'does not have a matching topojson feature at this resolution.'\n ].join(' '));\n }\n\n return false;\n}\n\nfunction feature2polygons(feature) {\n var geometry = feature.geometry;\n var coords = geometry.coordinates;\n var loc = feature.id;\n\n var polygons = [];\n var appendPolygon, j, k, m;\n\n function doesCrossAntiMerdian(pts) {\n for(var l = 0; l < pts.length - 1; l++) {\n if(pts[l][0] > 0 && pts[l + 1][0] < 0) return l;\n }\n return null;\n }\n\n if(loc === 'RUS' || loc === 'FJI') {\n // Russia and Fiji have landmasses that cross the antimeridian,\n // we need to add +360 to their longitude coordinates, so that\n // polygon 'contains' doesn't get confused when crossing the antimeridian.\n //\n // Note that other countries have polygons on either side of the antimeridian\n // (e.g. some Aleutian island for the USA), but those don't confuse\n // the 'contains' method; these are skipped here.\n appendPolygon = function(_pts) {\n var pts;\n\n if(doesCrossAntiMerdian(_pts) === null) {\n pts = _pts;\n } else {\n pts = new Array(_pts.length);\n for(m = 0; m < _pts.length; m++) {\n // do not mutate calcdata[i][j].geojson !!\n pts[m] = [\n _pts[m][0] < 0 ? _pts[m][0] + 360 : _pts[m][0],\n _pts[m][1]\n ];\n }\n }\n\n polygons.push(polygon.tester(pts));\n };\n } else if(loc === 'ATA') {\n // Antarctica has a landmass that wraps around every longitudes which\n // confuses the 'contains' methods.\n appendPolygon = function(pts) {\n var crossAntiMeridianIndex = doesCrossAntiMerdian(pts);\n\n // polygon that do not cross anti-meridian need no special handling\n if(crossAntiMeridianIndex === null) {\n return polygons.push(polygon.tester(pts));\n }\n\n // stitch polygon by adding pt over South Pole,\n // so that it covers the projected region covers all latitudes\n //\n // Note that the algorithm below only works for polygons that\n // start and end on longitude -180 (like the ones built by\n // https://github.com/etpinard/sane-topojson).\n var stitch = new Array(pts.length + 1);\n var si = 0;\n\n for(m = 0; m < pts.length; m++) {\n if(m > crossAntiMeridianIndex) {\n stitch[si++] = [pts[m][0] + 360, pts[m][1]];\n } else if(m === crossAntiMeridianIndex) {\n stitch[si++] = pts[m];\n stitch[si++] = [pts[m][0], -90];\n } else {\n stitch[si++] = pts[m];\n }\n }\n\n // polygon.tester by default appends pt[0] to the points list,\n // we must remove it here, to avoid a jump in longitude from 180 to -180,\n // that would confuse the 'contains' method\n var tester = polygon.tester(stitch);\n tester.pts.pop();\n polygons.push(tester);\n };\n } else {\n // otherwise using same array ref is fine\n appendPolygon = function(pts) {\n polygons.push(polygon.tester(pts));\n };\n }\n\n switch(geometry.type) {\n case 'MultiPolygon':\n for(j = 0; j < coords.length; j++) {\n for(k = 0; k < coords[j].length; k++) {\n appendPolygon(coords[j][k]);\n }\n }\n break;\n case 'Polygon':\n for(j = 0; j < coords.length; j++) {\n appendPolygon(coords[j]);\n }\n break;\n }\n\n return polygons;\n}\n\nfunction getTraceGeojson(trace) {\n var g = trace.geojson;\n var PlotlyGeoAssets = window.PlotlyGeoAssets || {};\n var geojsonIn = typeof g === 'string' ? PlotlyGeoAssets[g] : g;\n\n // This should not happen, but just in case something goes\n // really wrong when fetching the GeoJSON\n if(!isPlainObject(geojsonIn)) {\n loggers.error('Oops ... something went wrong when fetching ' + g);\n return false;\n }\n\n return geojsonIn;\n}\n\nfunction extractTraceFeature(calcTrace) {\n var trace = calcTrace[0].trace;\n\n var geojsonIn = getTraceGeojson(trace);\n if(!geojsonIn) return false;\n\n var lookup = {};\n var featuresOut = [];\n var i;\n\n for(i = 0; i < trace._length; i++) {\n var cdi = calcTrace[i];\n if(cdi.loc || cdi.loc === 0) {\n lookup[cdi.loc] = cdi;\n }\n }\n\n function appendFeature(fIn) {\n var id = nestedProperty(fIn, trace.featureidkey || 'id').get();\n var cdi = lookup[id];\n\n if(cdi) {\n var geometry = fIn.geometry;\n\n if(geometry.type === 'Polygon' || geometry.type === 'MultiPolygon') {\n var fOut = {\n type: 'Feature',\n id: id,\n geometry: geometry,\n properties: {}\n };\n\n // Compute centroid, add it to the properties\n fOut.properties.ct = findCentroid(fOut);\n\n // Mutate in in/out features into calcdata\n cdi.fIn = fIn;\n cdi.fOut = fOut;\n\n featuresOut.push(fOut);\n } else {\n loggers.log([\n 'Location', cdi.loc, 'does not have a valid GeoJSON geometry.',\n 'Traces with locationmode *geojson-id* only support',\n '*Polygon* and *MultiPolygon* geometries.'\n ].join(' '));\n }\n }\n\n // remove key from lookup, so that we can track (if any)\n // the locations that did not have a corresponding GeoJSON feature\n delete lookup[id];\n }\n\n switch(geojsonIn.type) {\n case 'FeatureCollection':\n var featuresIn = geojsonIn.features;\n for(i = 0; i < featuresIn.length; i++) {\n appendFeature(featuresIn[i]);\n }\n break;\n case 'Feature':\n appendFeature(geojsonIn);\n break;\n default:\n loggers.warn([\n 'Invalid GeoJSON type', (geojsonIn.type || 'none') + '.',\n 'Traces with locationmode *geojson-id* only support',\n '*FeatureCollection* and *Feature* types.'\n ].join(' '));\n return false;\n }\n\n for(var loc in lookup) {\n loggers.log([\n 'Location *' + loc + '*',\n 'does not have a matching feature with id-key',\n '*' + trace.featureidkey + '*.'\n ].join(' '));\n }\n\n return featuresOut;\n}\n\n// TODO this find the centroid of the polygon of maxArea\n// (just like we currently do for geo choropleth polygons),\n// maybe instead it would make more sense to compute the centroid\n// of each polygon and consider those on hover/select\nfunction findCentroid(feature) {\n var geometry = feature.geometry;\n var poly;\n\n if(geometry.type === 'MultiPolygon') {\n var coords = geometry.coordinates;\n var maxArea = 0;\n\n for(var i = 0; i < coords.length; i++) {\n var polyi = {type: 'Polygon', coordinates: coords[i]};\n var area = turfArea.default(polyi);\n if(area > maxArea) {\n maxArea = area;\n poly = polyi;\n }\n }\n } else {\n poly = geometry;\n }\n\n return turfCentroid.default(poly).geometry.coordinates;\n}\n\nfunction fetchTraceGeoData(calcData) {\n var PlotlyGeoAssets = window.PlotlyGeoAssets || {};\n var promises = [];\n\n function fetch(url) {\n return new Promise(function(resolve, reject) {\n d3.json(url, function(err, d) {\n if(err) {\n delete PlotlyGeoAssets[url];\n var msg = err.status === 404 ?\n ('GeoJSON at URL \"' + url + '\" does not exist.') :\n ('Unexpected error while fetching from ' + url);\n return reject(new Error(msg));\n }\n\n PlotlyGeoAssets[url] = d;\n return resolve(d);\n });\n });\n }\n\n function wait(url) {\n return new Promise(function(resolve, reject) {\n var cnt = 0;\n var interval = setInterval(function() {\n if(PlotlyGeoAssets[url] && PlotlyGeoAssets[url] !== 'pending') {\n clearInterval(interval);\n return resolve(PlotlyGeoAssets[url]);\n }\n if(cnt > 100) {\n clearInterval(interval);\n return reject('Unexpected error while fetching from ' + url);\n }\n cnt++;\n }, 50);\n });\n }\n\n for(var i = 0; i < calcData.length; i++) {\n var trace = calcData[i][0].trace;\n var url = trace.geojson;\n\n if(typeof url === 'string') {\n if(!PlotlyGeoAssets[url]) {\n PlotlyGeoAssets[url] = 'pending';\n promises.push(fetch(url));\n } else if(PlotlyGeoAssets[url] === 'pending') {\n promises.push(wait(url));\n }\n }\n }\n\n return promises;\n}\n\n// TODO `turf/bbox` gives wrong result when the input feature/geometry\n// crosses the anti-meridian. We should try to implement our own bbox logic.\nfunction computeBbox(d) {\n return turfBbox.default(d);\n}\n\nmodule.exports = {\n locationToFeature: locationToFeature,\n feature2polygons: feature2polygons,\n getTraceGeojson: getTraceGeojson,\n extractTraceFeature: extractTraceFeature,\n fetchTraceGeoData: fetchTraceGeoData,\n computeBbox: computeBbox\n};\n\n\n/***/ }),\n\n/***/ \"093d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar rat = __webpack_require__(\"f7bf\")\nvar mul = __webpack_require__(\"3bd6\")\n\nmodule.exports = muls\n\nfunction muls(a, x) {\n var s = rat(x)\n var n = a.length\n var r = new Array(n)\n for(var i=0; i= 0xd800 && code <= 0xdbff) return char + this.__list__[this.__nextIndex__++];\n\t\treturn char;\n\t})\n});\ndefineProperty(StringIterator.prototype, Symbol.toStringTag, d(\"c\", \"String Iterator\"));\n\n\n/***/ }),\n\n/***/ \"0a3e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar identity = __webpack_require__(\"306c\");\n\nfunction wrap(d) {return [d];}\n\nmodule.exports = {\n\n // The D3 data binding concept and the General Update Pattern promotes the idea of\n // traversing into the scenegraph by using the `.data(fun, keyFun)` call.\n // The `fun` is most often a `repeat`, ie. the elements beneath a `` element need\n // access to the same data, or a `descend`, which fans a scenegraph node into a bunch of\n // of elements, e.g. points, lines, rows, requiring an array as input.\n // The role of the `keyFun` is to identify what elements are being entered/exited/updated,\n // otherwise D3 reverts to using a plain index which would screw up `transition`s.\n keyFun: function(d) {return d.key;},\n repeat: wrap,\n descend: identity,\n\n // Plotly.js uses a convention of storing the actual contents of the `calcData` as the\n // element zero of a container array. These helpers are just used for clarity as a\n // newcomer to the codebase may not know what the `[0]` is, and whether there can be further\n // elements (not atm).\n wrap: wrap,\n unwrap: function(d) {return d[0];}\n};\n\n\n/***/ }),\n\n/***/ \"0a4a\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/center.js\n/* harmony default export */ var center = (function(x, y) {\n var nodes;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/constant.js\n/* harmony default export */ var constant = (function(x) {\n return function() {\n return x;\n };\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/jiggle.js\n/* harmony default export */ var jiggle = (function() {\n return (Math.random() - 0.5) * 1e-6;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/add.js\n/* harmony default export */ var add = (function(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add_add(this.cover(x, y), x, y, d);\n});\n\nfunction add_add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nfunction addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add_add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/cover.js\n/* harmony default export */ var cover = (function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/data.js\n/* harmony default export */ var src_data = (function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/extent.js\n/* harmony default export */ var extent = (function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/quad.js\n/* harmony default export */ var src_quad = (function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/find.js\n\n\n/* harmony default export */ var find = (function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new src_quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new src_quad(node[3], xm, ym, x2, y2),\n new src_quad(node[2], x1, ym, xm, y2),\n new src_quad(node[1], xm, y1, x2, ym),\n new src_quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/remove.js\n/* harmony default export */ var remove = (function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n});\n\nfunction removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/root.js\n/* harmony default export */ var root = (function() {\n return this._root;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/size.js\n/* harmony default export */ var size = (function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/visit.js\n\n\n/* harmony default export */ var visit = (function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new src_quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new src_quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new src_quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new src_quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new src_quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/visitAfter.js\n\n\n/* harmony default export */ var visitAfter = (function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new src_quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new src_quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new src_quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new src_quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new src_quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/x.js\nfunction defaultX(d) {\n return d[0];\n}\n\n/* harmony default export */ var src_x = (function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/y.js\nfunction defaultY(d) {\n return d[1];\n}\n\n/* harmony default export */ var src_y = (function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-quadtree/src/quadtree.js\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = add;\ntreeProto.addAll = addAll;\ntreeProto.cover = cover;\ntreeProto.data = src_data;\ntreeProto.extent = extent;\ntreeProto.find = find;\ntreeProto.remove = remove;\ntreeProto.removeAll = removeAll;\ntreeProto.root = root;\ntreeProto.size = size;\ntreeProto.visit = visit;\ntreeProto.visitAfter = visitAfter;\ntreeProto.x = src_x;\ntreeProto.y = src_y;\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/collide.js\n\n\n\n\nfunction collide_x(d) {\n return d.x + d.vx;\n}\n\nfunction collide_y(d) {\n return d.y + d.vy;\n}\n\n/* harmony default export */ var collide = (function(radius) {\n var nodes,\n radii,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, collide_x, collide_y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n});\n\n// EXTERNAL MODULE: ./node_modules/d3-collection/src/index.js + 6 modules\nvar src = __webpack_require__(\"6f04\");\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/link.js\n\n\n\n\nfunction index(d) {\n return d.index;\n}\n\nfunction link_find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"missing: \" + nodeId);\n return node;\n}\n\n/* harmony default export */ var src_link = (function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle();\n y = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = Object(src[\"a\" /* map */])(nodes, id),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = link_find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = link_find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-dispatch/src/dispatch.js\nvar noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\n/* harmony default export */ var src_dispatch = (dispatch);\n\n// CONCATENATED MODULE: ./node_modules/d3-timer/src/timer.js\nvar timer_frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nfunction now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nfunction Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nfunction timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nfunction timerFlush() {\n now(); // Get the current time, if not already set.\n ++timer_frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --timer_frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n timer_frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n timer_frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (timer_frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n timer_frame = 1, setFrame(wake);\n }\n}\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/simulation.js\n\n\n\n\nfunction simulation_x(d) {\n return d.x;\n}\n\nfunction simulation_y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\n/* harmony default export */ var src_simulation = (function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = Object(src[\"a\" /* map */])(),\n stepper = timer(step),\n event = src_dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/manyBody.js\n\n\n\n\n\n/* harmony default export */ var manyBody = (function() {\n var nodes,\n node,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, simulation_x, simulation_y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/radial.js\n\n\n/* harmony default export */ var radial = (function(radius, x, y) {\n var nodes,\n strength = constant(0.1),\n strengths,\n radiuses;\n\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i],\n dx = node.x - x || 1e-6,\n dy = node.y - y || 1e-6,\n r = Math.sqrt(dx * dx + dy * dy),\n k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n node.vy += dy * k;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _, initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/x.js\n\n\n/* harmony default export */ var d3_force_src_x = (function(x) {\n var strength = constant(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x;\n };\n\n return force;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/y.js\n\n\n/* harmony default export */ var d3_force_src_y = (function(y) {\n var strength = constant(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y;\n };\n\n return force;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-force/src/index.js\n/* concated harmony reexport forceCenter */__webpack_require__.d(__webpack_exports__, \"forceCenter\", function() { return center; });\n/* concated harmony reexport forceCollide */__webpack_require__.d(__webpack_exports__, \"forceCollide\", function() { return collide; });\n/* concated harmony reexport forceLink */__webpack_require__.d(__webpack_exports__, \"forceLink\", function() { return src_link; });\n/* concated harmony reexport forceManyBody */__webpack_require__.d(__webpack_exports__, \"forceManyBody\", function() { return manyBody; });\n/* concated harmony reexport forceRadial */__webpack_require__.d(__webpack_exports__, \"forceRadial\", function() { return radial; });\n/* concated harmony reexport forceSimulation */__webpack_require__.d(__webpack_exports__, \"forceSimulation\", function() { return src_simulation; });\n/* concated harmony reexport forceX */__webpack_require__.d(__webpack_exports__, \"forceX\", function() { return d3_force_src_x; });\n/* concated harmony reexport forceY */__webpack_require__.d(__webpack_exports__, \"forceY\", function() { return d3_force_src_y; });\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"0adf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar colorscaleCalc = __webpack_require__(\"3aa8\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar convertColumnData = __webpack_require__(\"d064\");\nvar clean2dArray = __webpack_require__(\"1b6a\");\nvar interp2d = __webpack_require__(\"2d0e\");\nvar findEmpties = __webpack_require__(\"0c3a\");\nvar makeBoundArray = __webpack_require__(\"d706\");\nvar supplyDefaults = __webpack_require__(\"eb12\");\nvar lookupCarpet = __webpack_require__(\"9b68\");\nvar setContours = __webpack_require__(\"8a7d\");\n\n// most is the same as heatmap calc, then adjust it\n// though a few things inside heatmap calc still look for\n// contour maps, because the makeBoundArray calls are too entangled\nmodule.exports = function calc(gd, trace) {\n var carpet = trace._carpetTrace = lookupCarpet(gd, trace);\n if(!carpet || !carpet.visible || carpet.visible === 'legendonly') return;\n\n if(!trace.a || !trace.b) {\n // Look up the original incoming carpet data:\n var carpetdata = gd.data[carpet.index];\n\n // Look up the incoming trace data, *except* perform a shallow\n // copy so that we're not actually modifying it when we use it\n // to supply defaults:\n var tracedata = gd.data[trace.index];\n // var tracedata = extendFlat({}, gd.data[trace.index]);\n\n // If the data is not specified\n if(!tracedata.a) tracedata.a = carpetdata.a;\n if(!tracedata.b) tracedata.b = carpetdata.b;\n\n supplyDefaults(tracedata, trace, trace._defaultColor, gd._fullLayout);\n }\n\n var cd = heatmappishCalc(gd, trace);\n setContours(trace, trace._z);\n\n return cd;\n};\n\nfunction heatmappishCalc(gd, trace) {\n // prepare the raw data\n // run makeCalcdata on x and y even for heatmaps, in case of category mappings\n var carpet = trace._carpetTrace;\n var aax = carpet.aaxis;\n var bax = carpet.baxis;\n var a,\n a0,\n da,\n b,\n b0,\n db,\n z;\n\n // cancel minimum tick spacings (only applies to bars and boxes)\n aax._minDtick = 0;\n bax._minDtick = 0;\n\n if(Lib.isArray1D(trace.z)) convertColumnData(trace, aax, bax, 'a', 'b', ['z']);\n a = trace._a = trace._a || trace.a;\n b = trace._b = trace._b || trace.b;\n\n a = a ? aax.makeCalcdata(trace, '_a') : [];\n b = b ? bax.makeCalcdata(trace, '_b') : [];\n a0 = trace.a0 || 0;\n da = trace.da || 1;\n b0 = trace.b0 || 0;\n db = trace.db || 1;\n\n z = trace._z = clean2dArray(trace._z || trace.z, trace.transpose);\n\n trace._emptypoints = findEmpties(z);\n interp2d(z, trace._emptypoints);\n\n // create arrays of brick boundaries, to be used by autorange and heatmap.plot\n var xlen = Lib.maxRowLength(z);\n var xIn = trace.xtype === 'scaled' ? '' : a;\n var xArray = makeBoundArray(trace, xIn, a0, da, xlen, aax);\n var yIn = trace.ytype === 'scaled' ? '' : b;\n var yArray = makeBoundArray(trace, yIn, b0, db, z.length, bax);\n\n var cd0 = {\n a: xArray,\n b: yArray,\n z: z,\n };\n\n if(trace.contours.type === 'levels' && trace.contours.coloring !== 'none') {\n // auto-z and autocolorscale if applicable\n colorscaleCalc(gd, trace, {\n vals: z,\n containerStr: '',\n cLetter: 'z'\n });\n }\n\n return [cd0];\n}\n\n\n/***/ }),\n\n/***/ \"0af2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar calcColorscale = __webpack_require__(\"09bd\");\nvar calcMarkerSize = __webpack_require__(\"70b4\").calcMarkerSize;\nvar convert = __webpack_require__(\"c879\");\nvar Axes = __webpack_require__(\"0642\");\nvar TOO_MANY_POINTS = __webpack_require__(\"b326\").TOO_MANY_POINTS;\n\nmodule.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var subplotId = trace.subplot;\n var radialAxis = fullLayout[subplotId].radialaxis;\n var angularAxis = fullLayout[subplotId].angularaxis;\n var rArray = trace._r = radialAxis.makeCalcdata(trace, 'r');\n var thetaArray = trace._theta = angularAxis.makeCalcdata(trace, 'theta');\n var len = trace._length;\n var stash = {};\n\n if(len < rArray.length) rArray = rArray.slice(0, len);\n if(len < thetaArray.length) thetaArray = thetaArray.slice(0, len);\n\n stash.r = rArray;\n stash.theta = thetaArray;\n\n calcColorscale(gd, trace);\n\n // only compute 'style' options in calc, as position options\n // depend on the radial range and must be set in plot\n var opts = stash.opts = convert.style(gd, trace);\n\n // For graphs with very large number of points and array marker.size,\n // use average marker size instead to speed things up.\n var ppad;\n if(len < TOO_MANY_POINTS) {\n ppad = calcMarkerSize(trace, len);\n } else if(opts.marker) {\n ppad = 2 * (opts.marker.sizeAvg || Math.max(opts.marker.size, 3));\n }\n trace._extremes.x = Axes.findExtremes(radialAxis, rArray, {ppad: ppad});\n\n return [{x: false, y: false, t: stash, trace: trace}];\n};\n\n\n/***/ }),\n\n/***/ \"0b1d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar twoProduct = __webpack_require__(\"c01c\")\nvar robustSum = __webpack_require__(\"a026\")\nvar robustDiff = __webpack_require__(\"e100\")\nvar robustScale = __webpack_require__(\"0dd1\")\n\nvar NUM_EXPAND = 6\n\nfunction cofactor(m, c) {\n var result = new Array(m.length-1)\n for(var i=1; i>1\n return [\"sum(\", generateSum(expr.slice(0, m)), \",\", generateSum(expr.slice(m)), \")\"].join(\"\")\n }\n}\n\nfunction makeProduct(a, b) {\n if(a.charAt(0) === \"m\") {\n if(b.charAt(0) === \"w\") {\n var toks = a.split(\"[\")\n return [\"w\", b.substr(1), \"m\", toks[0].substr(1)].join(\"\")\n } else {\n return [\"prod(\", a, \",\", b, \")\"].join(\"\")\n }\n } else {\n return makeProduct(b, a)\n }\n}\n\nfunction sign(s) {\n if(s & 1 !== 0) {\n return \"-\"\n }\n return \"\"\n}\n\nfunction determinant(m) {\n if(m.length === 2) {\n return [[\"diff(\", makeProduct(m[0][0], m[1][1]), \",\", makeProduct(m[1][0], m[0][1]), \")\"].join(\"\")]\n } else {\n var expr = []\n for(var i=0; i ncnt * 2);\n}\n\n// are the (x,y)-values in gd.data mostly text?\n// require twice as many DISTINCT categories as distinct numbers\nfunction category(a) {\n // test at most 1000 points\n var inc = Math.max(1, (a.length - 1) / 1000);\n var curvenums = 0;\n var curvecats = 0;\n var seen = {};\n\n for(var i = 0; i < a.length; i += inc) {\n var ai = a[Math.round(i)];\n var stri = String(ai);\n if(seen[stri]) continue;\n seen[stri] = 1;\n\n if(typeof ai === 'boolean') curvecats++;\n else if(Lib.cleanNumber(ai) !== BADNUM) curvenums++;\n else if(typeof ai === 'string') curvecats++;\n }\n\n return curvecats > curvenums * 2;\n}\n\n// very-loose requirements for multicategory,\n// trace modules that should never auto-type to multicategory\n// should be declared with 'noMultiCategory'\nfunction multiCategory(a) {\n return Lib.isArrayOrTypedArray(a[0]) && Lib.isArrayOrTypedArray(a[1]);\n}\n\n\n/***/ }),\n\n/***/ \"0b79\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\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/* http://keith-wood.name/calendars.html\n Taiwanese (Minguo) calendar for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) February 2010.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = __webpack_require__(\"0230\");\nvar assign = __webpack_require__(\"320c\");\n\n\nvar gregorianCalendar = main.instance();\n\n/** Implementation of the Taiwanese calendar.\n See http://en.wikipedia.org/wiki/Minguo_calendar.\n @class TaiwanCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction TaiwanCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nTaiwanCalendar.prototype = new main.baseCalendar;\n\nassign(TaiwanCalendar.prototype, {\n /** The calendar name.\n @memberof TaiwanCalendar */\n name: 'Taiwan',\n /** Julian date of start of Taiwan epoch: 1 January 1912 CE (Gregorian).\n @memberof TaiwanCalendar */\n jdEpoch: 2419402.5,\n /** Difference in years between Taiwan and Gregorian calendars.\n @memberof TaiwanCalendar */\n yearsOffset: 1911,\n /** Days per month in a common year.\n @memberof TaiwanCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof TaiwanCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof TaiwanCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof TaiwanCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof TaiwanCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof TaiwanCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Taiwan',\n epochs: ['BROC', 'ROC'],\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n digits: null,\n dateFormat: 'yyyy/mm/dd',\n firstDay: 1,\n isRTL: false\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.leapYear(year);\n },\n\n /** Determine the week of the year for a date - ISO 8601.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.weekOfYear(year, date.month(), date.day());\n },\n\n /** Retrieve the number of days in a month.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.toJD(year, date.month(), date.day());\n },\n\n /** Create a new date from a Julian date.\n @memberof TaiwanCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var date = gregorianCalendar.fromJD(jd);\n var year = this._g2tYear(date.year());\n return this.newDate(year, date.month(), date.day());\n },\n\n /** Convert Taiwanese to Gregorian year.\n @memberof TaiwanCalendar\n @private\n @param year {number} The Taiwanese year.\n @return {number} The corresponding Gregorian year. */\n _t2gYear: function(year) {\n return year + this.yearsOffset + (year >= -this.yearsOffset && year <= -1 ? 1 : 0);\n },\n\n /** Convert Gregorian to Taiwanese year.\n @memberof TaiwanCalendar\n @private\n @param year {number} The Gregorian year.\n @return {number} The corresponding Taiwanese year. */\n _g2tYear: function(year) {\n return year - this.yearsOffset - (year >= 1 && year <= this.yearsOffset ? 1 : 0);\n }\n});\n\n// Taiwan calendar implementation\nmain.calendars.taiwan = TaiwanCalendar;\n\n\n\n/***/ }),\n\n/***/ \"0b89\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar TAU = Math.PI * 2;\n\nvar mapToEllipse = function mapToEllipse(_ref, rx, ry, cosphi, sinphi, centerx, centery) {\n var x = _ref.x,\n y = _ref.y;\n\n x *= rx;\n y *= ry;\n\n var xp = cosphi * x - sinphi * y;\n var yp = sinphi * x + cosphi * y;\n\n return {\n x: xp + centerx,\n y: yp + centery\n };\n};\n\nvar approxUnitArc = function approxUnitArc(ang1, ang2) {\n // If 90 degree circular arc, use a constant\n // as derived from http://spencermortensen.com/articles/bezier-circle\n var a = ang2 === 1.5707963267948966 ? 0.551915024494 : ang2 === -1.5707963267948966 ? -0.551915024494 : 4 / 3 * Math.tan(ang2 / 4);\n\n var x1 = Math.cos(ang1);\n var y1 = Math.sin(ang1);\n var x2 = Math.cos(ang1 + ang2);\n var y2 = Math.sin(ang1 + ang2);\n\n return [{\n x: x1 - y1 * a,\n y: y1 + x1 * a\n }, {\n x: x2 + y2 * a,\n y: y2 - x2 * a\n }, {\n x: x2,\n y: y2\n }];\n};\n\nvar vectorAngle = function vectorAngle(ux, uy, vx, vy) {\n var sign = ux * vy - uy * vx < 0 ? -1 : 1;\n\n var dot = ux * vx + uy * vy;\n\n if (dot > 1) {\n dot = 1;\n }\n\n if (dot < -1) {\n dot = -1;\n }\n\n return sign * Math.acos(dot);\n};\n\nvar getArcCenter = function getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp) {\n var rxsq = Math.pow(rx, 2);\n var rysq = Math.pow(ry, 2);\n var pxpsq = Math.pow(pxp, 2);\n var pypsq = Math.pow(pyp, 2);\n\n var radicant = rxsq * rysq - rxsq * pypsq - rysq * pxpsq;\n\n if (radicant < 0) {\n radicant = 0;\n }\n\n radicant /= rxsq * pypsq + rysq * pxpsq;\n radicant = Math.sqrt(radicant) * (largeArcFlag === sweepFlag ? -1 : 1);\n\n var centerxp = radicant * rx / ry * pyp;\n var centeryp = radicant * -ry / rx * pxp;\n\n var centerx = cosphi * centerxp - sinphi * centeryp + (px + cx) / 2;\n var centery = sinphi * centerxp + cosphi * centeryp + (py + cy) / 2;\n\n var vx1 = (pxp - centerxp) / rx;\n var vy1 = (pyp - centeryp) / ry;\n var vx2 = (-pxp - centerxp) / rx;\n var vy2 = (-pyp - centeryp) / ry;\n\n var ang1 = vectorAngle(1, 0, vx1, vy1);\n var ang2 = vectorAngle(vx1, vy1, vx2, vy2);\n\n if (sweepFlag === 0 && ang2 > 0) {\n ang2 -= TAU;\n }\n\n if (sweepFlag === 1 && ang2 < 0) {\n ang2 += TAU;\n }\n\n return [centerx, centery, ang1, ang2];\n};\n\nvar arcToBezier = function arcToBezier(_ref2) {\n var px = _ref2.px,\n py = _ref2.py,\n cx = _ref2.cx,\n cy = _ref2.cy,\n rx = _ref2.rx,\n ry = _ref2.ry,\n _ref2$xAxisRotation = _ref2.xAxisRotation,\n xAxisRotation = _ref2$xAxisRotation === undefined ? 0 : _ref2$xAxisRotation,\n _ref2$largeArcFlag = _ref2.largeArcFlag,\n largeArcFlag = _ref2$largeArcFlag === undefined ? 0 : _ref2$largeArcFlag,\n _ref2$sweepFlag = _ref2.sweepFlag,\n sweepFlag = _ref2$sweepFlag === undefined ? 0 : _ref2$sweepFlag;\n\n var curves = [];\n\n if (rx === 0 || ry === 0) {\n return [];\n }\n\n var sinphi = Math.sin(xAxisRotation * TAU / 360);\n var cosphi = Math.cos(xAxisRotation * TAU / 360);\n\n var pxp = cosphi * (px - cx) / 2 + sinphi * (py - cy) / 2;\n var pyp = -sinphi * (px - cx) / 2 + cosphi * (py - cy) / 2;\n\n if (pxp === 0 && pyp === 0) {\n return [];\n }\n\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n\n var lambda = Math.pow(pxp, 2) / Math.pow(rx, 2) + Math.pow(pyp, 2) / Math.pow(ry, 2);\n\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n\n var _getArcCenter = getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp),\n _getArcCenter2 = _slicedToArray(_getArcCenter, 4),\n centerx = _getArcCenter2[0],\n centery = _getArcCenter2[1],\n ang1 = _getArcCenter2[2],\n ang2 = _getArcCenter2[3];\n\n // If 'ang2' == 90.0000000001, then `ratio` will evaluate to\n // 1.0000000001. This causes `segments` to be greater than one, which is an\n // unecessary split, and adds extra points to the bezier curve. To alleviate\n // this issue, we round to 1.0 when the ratio is close to 1.0.\n\n\n var ratio = Math.abs(ang2) / (TAU / 4);\n if (Math.abs(1.0 - ratio) < 0.0000001) {\n ratio = 1.0;\n }\n\n var segments = Math.max(Math.ceil(ratio), 1);\n\n ang2 /= segments;\n\n for (var i = 0; i < segments; i++) {\n curves.push(approxUnitArc(ang1, ang2));\n ang1 += ang2;\n }\n\n return curves.map(function (curve) {\n var _mapToEllipse = mapToEllipse(curve[0], rx, ry, cosphi, sinphi, centerx, centery),\n x1 = _mapToEllipse.x,\n y1 = _mapToEllipse.y;\n\n var _mapToEllipse2 = mapToEllipse(curve[1], rx, ry, cosphi, sinphi, centerx, centery),\n x2 = _mapToEllipse2.x,\n y2 = _mapToEllipse2.y;\n\n var _mapToEllipse3 = mapToEllipse(curve[2], rx, ry, cosphi, sinphi, centerx, centery),\n x = _mapToEllipse3.x,\n y = _mapToEllipse3.y;\n\n return { x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y };\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (arcToBezier);\n\n/***/ }),\n\n/***/ \"0c39\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\nvar Axes = __webpack_require__(\"0642\");\n\nvar arraysToCalcdata = __webpack_require__(\"424b\");\nvar binFunctions = __webpack_require__(\"6dcc\");\nvar normFunctions = __webpack_require__(\"c005\");\nvar doAvg = __webpack_require__(\"9547\");\nvar getBinSpanLabelRound = __webpack_require__(\"5913\");\n\nfunction calc(gd, trace) {\n var pos = [];\n var size = [];\n var pa = Axes.getFromId(gd, trace.orientation === 'h' ? trace.yaxis : trace.xaxis);\n var mainData = trace.orientation === 'h' ? 'y' : 'x';\n var counterData = {x: 'y', y: 'x'}[mainData];\n var calendar = trace[mainData + 'calendar'];\n var cumulativeSpec = trace.cumulative;\n var i;\n\n var binsAndPos = calcAllAutoBins(gd, trace, pa, mainData);\n var binSpec = binsAndPos[0];\n var pos0 = binsAndPos[1];\n\n var nonuniformBins = typeof binSpec.size === 'string';\n var binEdges = [];\n var bins = nonuniformBins ? binEdges : binSpec;\n // make the empty bin array\n var inc = [];\n var counts = [];\n var inputPoints = [];\n var total = 0;\n var norm = trace.histnorm;\n var func = trace.histfunc;\n var densityNorm = norm.indexOf('density') !== -1;\n var i2, binEnd, n;\n\n if(cumulativeSpec.enabled && densityNorm) {\n // we treat \"cumulative\" like it means \"integral\" if you use a density norm,\n // which in the end means it's the same as without \"density\"\n norm = norm.replace(/ ?density$/, '');\n densityNorm = false;\n }\n\n var extremeFunc = func === 'max' || func === 'min';\n var sizeInit = extremeFunc ? null : 0;\n var binFunc = binFunctions.count;\n var normFunc = normFunctions[norm];\n var isAvg = false;\n var pr2c = function(v) { return pa.r2c(v, 0, calendar); };\n var rawCounterData;\n\n if(Lib.isArrayOrTypedArray(trace[counterData]) && func !== 'count') {\n rawCounterData = trace[counterData];\n isAvg = func === 'avg';\n binFunc = binFunctions[func];\n }\n\n // create the bins (and any extra arrays needed)\n // assume more than 1e6 bins is an error, so we don't crash the browser\n i = pr2c(binSpec.start);\n\n // decrease end a little in case of rounding errors\n binEnd = pr2c(binSpec.end) + (i - Axes.tickIncrement(i, binSpec.size, false, calendar)) / 1e6;\n\n while(i < binEnd && pos.length < 1e6) {\n i2 = Axes.tickIncrement(i, binSpec.size, false, calendar);\n pos.push((i + i2) / 2);\n size.push(sizeInit);\n inputPoints.push([]);\n // nonuniform bins (like months) we need to search,\n // rather than straight calculate the bin we're in\n binEdges.push(i);\n // nonuniform bins also need nonuniform normalization factors\n if(densityNorm) inc.push(1 / (i2 - i));\n if(isAvg) counts.push(0);\n // break to avoid infinite loops\n if(i2 <= i) break;\n i = i2;\n }\n binEdges.push(i);\n\n // for date axes we need bin bounds to be calcdata. For nonuniform bins\n // we already have this, but uniform with start/end/size they're still strings.\n if(!nonuniformBins && pa.type === 'date') {\n bins = {\n start: pr2c(bins.start),\n end: pr2c(bins.end),\n size: bins.size\n };\n }\n\n // bin the data\n // and make histogram-specific pt-number-to-cd-index map object\n var nMax = size.length;\n var uniqueValsPerBin = true;\n var leftGap = Infinity;\n var rightGap = Infinity;\n var ptNumber2cdIndex = {};\n for(i = 0; i < pos0.length; i++) {\n var posi = pos0[i];\n n = Lib.findBin(posi, bins);\n if(n >= 0 && n < nMax) {\n total += binFunc(n, i, size, rawCounterData, counts);\n if(uniqueValsPerBin && inputPoints[n].length && posi !== pos0[inputPoints[n][0]]) {\n uniqueValsPerBin = false;\n }\n inputPoints[n].push(i);\n ptNumber2cdIndex[i] = n;\n\n leftGap = Math.min(leftGap, posi - binEdges[n]);\n rightGap = Math.min(rightGap, binEdges[n + 1] - posi);\n }\n }\n\n var roundFn;\n if(!uniqueValsPerBin) {\n roundFn = getBinSpanLabelRound(leftGap, rightGap, binEdges, pa, calendar);\n }\n\n // average and/or normalize the data, if needed\n if(isAvg) total = doAvg(size, counts);\n if(normFunc) normFunc(size, total, inc);\n\n // after all normalization etc, now we can accumulate if desired\n if(cumulativeSpec.enabled) cdf(size, cumulativeSpec.direction, cumulativeSpec.currentbin);\n\n var seriesLen = Math.min(pos.length, size.length);\n var cd = [];\n var firstNonzero = 0;\n var lastNonzero = seriesLen - 1;\n\n // look for empty bins at the ends to remove, so autoscale omits them\n for(i = 0; i < seriesLen; i++) {\n if(size[i]) {\n firstNonzero = i;\n break;\n }\n }\n for(i = seriesLen - 1; i >= firstNonzero; i--) {\n if(size[i]) {\n lastNonzero = i;\n break;\n }\n }\n\n // create the \"calculated data\" to plot\n for(i = firstNonzero; i <= lastNonzero; i++) {\n if((isNumeric(pos[i]) && isNumeric(size[i]))) {\n var cdi = {\n p: pos[i],\n s: size[i],\n b: 0\n };\n\n // setup hover and event data fields,\n // N.B. pts and \"hover\" positions ph0/ph1 don't seem to make much sense\n // for cumulative distributions\n if(!cumulativeSpec.enabled) {\n cdi.pts = inputPoints[i];\n if(uniqueValsPerBin) {\n cdi.ph0 = cdi.ph1 = (inputPoints[i].length) ? pos0[inputPoints[i][0]] : pos[i];\n } else {\n cdi.ph0 = roundFn(binEdges[i]);\n cdi.ph1 = roundFn(binEdges[i + 1], true);\n }\n }\n cd.push(cdi);\n }\n }\n\n if(cd.length === 1) {\n // when we collapse to a single bin, calcdata no longer describes bin size\n // so we need to explicitly specify it\n cd[0].width1 = Axes.tickIncrement(cd[0].p, binSpec.size, false, calendar) - cd[0].p;\n }\n\n arraysToCalcdata(cd, trace);\n\n if(Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n Lib.tagSelected(cd, trace, ptNumber2cdIndex);\n }\n\n return cd;\n}\n\n/*\n * calcAllAutoBins: we want all histograms inside the same bingroup\n * (see logic in Histogram.crossTraceDefaults) to share bin specs\n *\n * If the user has explicitly specified differing\n * bin specs, there's nothing we can do, but if possible we will try to use the\n * smallest bins of any of the auto values for all histograms inside the same\n * bingroup.\n */\nfunction calcAllAutoBins(gd, trace, pa, mainData, _overlayEdgeCase) {\n var binAttr = mainData + 'bins';\n var fullLayout = gd._fullLayout;\n var groupName = trace['_' + mainData + 'bingroup'];\n var binOpts = fullLayout._histogramBinOpts[groupName];\n var isOverlay = fullLayout.barmode === 'overlay';\n var i, traces, tracei, calendar, pos0, autoVals, cumulativeSpec;\n\n var r2c = function(v) { return pa.r2c(v, 0, calendar); };\n var c2r = function(v) { return pa.c2r(v, 0, calendar); };\n\n var cleanBound = pa.type === 'date' ?\n function(v) { return (v || v === 0) ? Lib.cleanDate(v, null, calendar) : null; } :\n function(v) { return isNumeric(v) ? Number(v) : null; };\n\n function setBound(attr, bins, newBins) {\n if(bins[attr + 'Found']) {\n bins[attr] = cleanBound(bins[attr]);\n if(bins[attr] === null) bins[attr] = newBins[attr];\n } else {\n autoVals[attr] = bins[attr] = newBins[attr];\n Lib.nestedProperty(traces[0], binAttr + '.' + attr).set(newBins[attr]);\n }\n }\n\n // all but the first trace in this group has already been marked finished\n // clear this flag, so next time we run calc we will run autobin again\n if(trace['_' + mainData + 'autoBinFinished']) {\n delete trace['_' + mainData + 'autoBinFinished'];\n } else {\n traces = binOpts.traces;\n var allPos = [];\n\n // Note: we're including `legendonly` traces here for autobin purposes,\n // so that showing & hiding from the legend won't affect bins.\n // But this complicates things a bit since those traces don't `calc`,\n // hence `isFirstVisible`.\n var isFirstVisible = true;\n var has2dMap = false;\n var hasHist2dContour = false;\n for(i = 0; i < traces.length; i++) {\n tracei = traces[i];\n\n if(tracei.visible) {\n var mainDatai = binOpts.dirs[i];\n pos0 = tracei['_' + mainDatai + 'pos0'] = pa.makeCalcdata(tracei, mainDatai);\n\n allPos = Lib.concat(allPos, pos0);\n delete tracei['_' + mainData + 'autoBinFinished'];\n\n if(trace.visible === true) {\n if(isFirstVisible) {\n isFirstVisible = false;\n } else {\n delete tracei._autoBin;\n tracei['_' + mainData + 'autoBinFinished'] = 1;\n }\n if(Registry.traceIs(tracei, '2dMap')) {\n has2dMap = true;\n }\n if(tracei.type === 'histogram2dcontour') {\n hasHist2dContour = true;\n }\n }\n }\n }\n\n calendar = traces[0][mainData + 'calendar'];\n var newBinSpec = Axes.autoBin(allPos, pa, binOpts.nbins, has2dMap, calendar, binOpts.sizeFound && binOpts.size);\n\n var autoBin = traces[0]._autoBin = {};\n autoVals = autoBin[binOpts.dirs[0]] = {};\n\n if(hasHist2dContour) {\n // the \"true\" 2nd argument reverses the tick direction (which we can't\n // just do with a minus sign because of month bins)\n if(!binOpts.size) {\n newBinSpec.start = c2r(Axes.tickIncrement(\n r2c(newBinSpec.start), newBinSpec.size, true, calendar));\n }\n if(binOpts.end === undefined) {\n newBinSpec.end = c2r(Axes.tickIncrement(\n r2c(newBinSpec.end), newBinSpec.size, false, calendar));\n }\n }\n\n // Edge case: single-valued histogram overlaying others\n // Use them all together to calculate the bin size for the single-valued one\n if(isOverlay && !Registry.traceIs(trace, '2dMap') && newBinSpec._dataSpan === 0 &&\n pa.type !== 'category' && pa.type !== 'multicategory') {\n // Several single-valued histograms! Stop infinite recursion,\n // just return an extra flag that tells handleSingleValueOverlays\n // to sort out this trace too\n if(_overlayEdgeCase) return [newBinSpec, pos0, true];\n\n newBinSpec = handleSingleValueOverlays(gd, trace, pa, mainData, binAttr);\n }\n\n // adjust for CDF edge cases\n cumulativeSpec = tracei.cumulative || {};\n if(cumulativeSpec.enabled && (cumulativeSpec.currentbin !== 'include')) {\n if(cumulativeSpec.direction === 'decreasing') {\n newBinSpec.start = c2r(Axes.tickIncrement(\n r2c(newBinSpec.start), newBinSpec.size, true, calendar));\n } else {\n newBinSpec.end = c2r(Axes.tickIncrement(\n r2c(newBinSpec.end), newBinSpec.size, false, calendar));\n }\n }\n\n binOpts.size = newBinSpec.size;\n if(!binOpts.sizeFound) {\n autoVals.size = newBinSpec.size;\n Lib.nestedProperty(traces[0], binAttr + '.size').set(newBinSpec.size);\n }\n\n setBound('start', binOpts, newBinSpec);\n setBound('end', binOpts, newBinSpec);\n }\n\n pos0 = trace['_' + mainData + 'pos0'];\n delete trace['_' + mainData + 'pos0'];\n\n // Each trace can specify its own start/end, or if omitted\n // we ensure they're beyond the bounds of this trace's data,\n // and we need to make sure start is aligned with the main start\n var traceInputBins = trace._input[binAttr] || {};\n var traceBinOptsCalc = Lib.extendFlat({}, binOpts);\n var mainStart = binOpts.start;\n var startIn = pa.r2l(traceInputBins.start);\n var hasStart = startIn !== undefined;\n if((binOpts.startFound || hasStart) && startIn !== pa.r2l(mainStart)) {\n // We have an explicit start to reconcile across traces\n // if this trace has an explicit start, shift it down to a bin edge\n // if another trace had an explicit start, shift it down to a\n // bin edge past our data\n var traceStart = hasStart ?\n startIn :\n Lib.aggNums(Math.min, null, pos0);\n\n var dummyAx = {\n type: (pa.type === 'category' || pa.type === 'multicategory') ? 'linear' : pa.type,\n r2l: pa.r2l,\n dtick: binOpts.size,\n tick0: mainStart,\n calendar: calendar,\n range: ([traceStart, Axes.tickIncrement(traceStart, binOpts.size, false, calendar)]).map(pa.l2r)\n };\n var newStart = Axes.tickFirst(dummyAx);\n if(newStart > pa.r2l(traceStart)) {\n newStart = Axes.tickIncrement(newStart, binOpts.size, true, calendar);\n }\n traceBinOptsCalc.start = pa.l2r(newStart);\n if(!hasStart) Lib.nestedProperty(trace, binAttr + '.start').set(traceBinOptsCalc.start);\n }\n\n var mainEnd = binOpts.end;\n var endIn = pa.r2l(traceInputBins.end);\n var hasEnd = endIn !== undefined;\n if((binOpts.endFound || hasEnd) && endIn !== pa.r2l(mainEnd)) {\n // Reconciling an explicit end is easier, as it doesn't need to\n // match bin edges\n var traceEnd = hasEnd ?\n endIn :\n Lib.aggNums(Math.max, null, pos0);\n\n traceBinOptsCalc.end = pa.l2r(traceEnd);\n if(!hasEnd) Lib.nestedProperty(trace, binAttr + '.start').set(traceBinOptsCalc.end);\n }\n\n // Backward compatibility for one-time autobinning.\n // autobin: true is handled in cleanData, but autobin: false\n // needs to be here where we have determined the values.\n var autoBinAttr = 'autobin' + mainData;\n if(trace._input[autoBinAttr] === false) {\n trace._input[binAttr] = Lib.extendFlat({}, trace[binAttr] || {});\n delete trace._input[autoBinAttr];\n delete trace[autoBinAttr];\n }\n\n return [traceBinOptsCalc, pos0];\n}\n\n/*\n * Adjust single-value histograms in overlay mode to make as good a\n * guess as we can at autobin values the user would like.\n *\n * Returns the binSpec for the trace that sparked all this\n */\nfunction handleSingleValueOverlays(gd, trace, pa, mainData, binAttr) {\n var fullLayout = gd._fullLayout;\n var overlaidTraceGroup = getConnectedHistograms(gd, trace);\n var pastThisTrace = false;\n var minSize = Infinity;\n var singleValuedTraces = [trace];\n var i, tracei, binOpts;\n\n // first collect all the:\n // - min bin size from all multi-valued traces\n // - single-valued traces\n for(i = 0; i < overlaidTraceGroup.length; i++) {\n tracei = overlaidTraceGroup[i];\n\n if(tracei === trace) {\n pastThisTrace = true;\n } else if(!pastThisTrace) {\n // This trace has already had its autobins calculated, so either:\n // - it is part of a bingroup\n // - it is NOT a single-valued trace\n binOpts = fullLayout._histogramBinOpts[tracei['_' + mainData + 'bingroup']];\n minSize = Math.min(minSize, binOpts.size || tracei[binAttr].size);\n } else {\n var resulti = calcAllAutoBins(gd, tracei, pa, mainData, true);\n var binSpeci = resulti[0];\n var isSingleValued = resulti[2];\n\n // so we can use this result when we get to tracei in the normal\n // course of events, mark it as done and put _pos0 back\n tracei['_' + mainData + 'autoBinFinished'] = 1;\n tracei['_' + mainData + 'pos0'] = resulti[1];\n\n if(isSingleValued) {\n singleValuedTraces.push(tracei);\n } else {\n minSize = Math.min(minSize, binSpeci.size);\n }\n }\n }\n\n // find the real data values for each single-valued trace\n // hunt through pos0 for the first valid value\n var dataVals = new Array(singleValuedTraces.length);\n for(i = 0; i < singleValuedTraces.length; i++) {\n var pos0 = singleValuedTraces[i]['_' + mainData + 'pos0'];\n for(var j = 0; j < pos0.length; j++) {\n if(pos0[j] !== undefined) {\n dataVals[i] = pos0[j];\n break;\n }\n }\n }\n\n // are ALL traces are single-valued? use the min difference between\n // all of their values (which defaults to 1 if there's still only one)\n if(!isFinite(minSize)) {\n minSize = Lib.distinctVals(dataVals).minDiff;\n }\n\n // now apply the min size we found to all single-valued traces\n for(i = 0; i < singleValuedTraces.length; i++) {\n tracei = singleValuedTraces[i];\n var calendar = tracei[mainData + 'calendar'];\n\n var newBins = {\n start: pa.c2r(dataVals[i] - minSize / 2, 0, calendar),\n end: pa.c2r(dataVals[i] + minSize / 2, 0, calendar),\n size: minSize\n };\n\n tracei._input[binAttr] = tracei[binAttr] = newBins;\n\n binOpts = fullLayout._histogramBinOpts[tracei['_' + mainData + 'bingroup']];\n if(binOpts) Lib.extendFlat(binOpts, newBins);\n }\n\n return trace[binAttr];\n}\n\n/*\n * Return an array of histograms that share axes and orientation.\n *\n * Only considers histograms. In principle we could include bars in a\n * similar way to how we do manually binned histograms, though this\n * would have tons of edge cases and value judgments to make.\n */\nfunction getConnectedHistograms(gd, trace) {\n var xid = trace.xaxis;\n var yid = trace.yaxis;\n var orientation = trace.orientation;\n\n var out = [];\n var fullData = gd._fullData;\n for(var i = 0; i < fullData.length; i++) {\n var tracei = fullData[i];\n if(tracei.type === 'histogram' &&\n tracei.visible === true &&\n tracei.orientation === orientation &&\n tracei.xaxis === xid && tracei.yaxis === yid\n ) {\n out.push(tracei);\n }\n }\n\n return out;\n}\n\nfunction cdf(size, direction, currentBin) {\n var i, vi, prevSum;\n\n function firstHalfPoint(i) {\n prevSum = size[i];\n size[i] /= 2;\n }\n\n function nextHalfPoint(i) {\n vi = size[i];\n size[i] = prevSum + vi / 2;\n prevSum += vi;\n }\n\n if(currentBin === 'half') {\n if(direction === 'increasing') {\n firstHalfPoint(0);\n for(i = 1; i < size.length; i++) {\n nextHalfPoint(i);\n }\n } else {\n firstHalfPoint(size.length - 1);\n for(i = size.length - 2; i >= 0; i--) {\n nextHalfPoint(i);\n }\n }\n } else if(direction === 'increasing') {\n for(i = 1; i < size.length; i++) {\n size[i] += size[i - 1];\n }\n\n // 'exclude' is identical to 'include' just shifted one bin over\n if(currentBin === 'exclude') {\n size.unshift(0);\n size.pop();\n }\n } else {\n for(i = size.length - 2; i >= 0; i--) {\n size[i] += size[i + 1];\n }\n\n if(currentBin === 'exclude') {\n size.push(0);\n size.shift();\n }\n }\n}\n\nmodule.exports = {\n calc: calc,\n calcAllAutoBins: calcAllAutoBins\n};\n\n\n/***/ }),\n\n/***/ \"0c3a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar maxRowLength = __webpack_require__(\"fc26\").maxRowLength;\n\n/* Return a list of empty points in 2D array z\n * each empty point z[i][j] gives an array [i, j, neighborCount]\n * neighborCount is the count of 4 nearest neighbors that DO exist\n * this is to give us an order of points to evaluate for interpolation.\n * if no neighbors exist, we iteratively look for neighbors that HAVE\n * neighbors, and add a fractional neighborCount\n */\nmodule.exports = function findEmpties(z) {\n var empties = [];\n var neighborHash = {};\n var noNeighborList = [];\n var nextRow = z[0];\n var row = [];\n var blank = [0, 0, 0];\n var rowLength = maxRowLength(z);\n var prevRow;\n var i;\n var j;\n var thisPt;\n var p;\n var neighborCount;\n var newNeighborHash;\n var foundNewNeighbors;\n\n for(i = 0; i < z.length; i++) {\n prevRow = row;\n row = nextRow;\n nextRow = z[i + 1] || [];\n for(j = 0; j < rowLength; j++) {\n if(row[j] === undefined) {\n neighborCount = (row[j - 1] !== undefined ? 1 : 0) +\n (row[j + 1] !== undefined ? 1 : 0) +\n (prevRow[j] !== undefined ? 1 : 0) +\n (nextRow[j] !== undefined ? 1 : 0);\n\n if(neighborCount) {\n // for this purpose, don't count off-the-edge points\n // as undefined neighbors\n if(i === 0) neighborCount++;\n if(j === 0) neighborCount++;\n if(i === z.length - 1) neighborCount++;\n if(j === row.length - 1) neighborCount++;\n\n // if all neighbors that could exist do, we don't\n // need this for finding farther neighbors\n if(neighborCount < 4) {\n neighborHash[[i, j]] = [i, j, neighborCount];\n }\n\n empties.push([i, j, neighborCount]);\n } else noNeighborList.push([i, j]);\n }\n }\n }\n\n while(noNeighborList.length) {\n newNeighborHash = {};\n foundNewNeighbors = false;\n\n // look for cells that now have neighbors but didn't before\n for(p = noNeighborList.length - 1; p >= 0; p--) {\n thisPt = noNeighborList[p];\n i = thisPt[0];\n j = thisPt[1];\n\n neighborCount = ((neighborHash[[i - 1, j]] || blank)[2] +\n (neighborHash[[i + 1, j]] || blank)[2] +\n (neighborHash[[i, j - 1]] || blank)[2] +\n (neighborHash[[i, j + 1]] || blank)[2]) / 20;\n\n if(neighborCount) {\n newNeighborHash[thisPt] = [i, j, neighborCount];\n noNeighborList.splice(p, 1);\n foundNewNeighbors = true;\n }\n }\n\n if(!foundNewNeighbors) {\n throw 'findEmpties iterated with no new neighbors';\n }\n\n // put these new cells into the main neighbor list\n for(thisPt in newNeighborHash) {\n neighborHash[thisPt] = newNeighborHash[thisPt];\n empties.push(newNeighborHash[thisPt]);\n }\n }\n\n // sort the full list in descending order of neighbor count\n return empties.sort(function(a, b) { return b[2] - a[2]; });\n};\n\n\n/***/ }),\n\n/***/ \"0c5d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar handleSampleDefaults = __webpack_require__(\"8173\");\nvar handleContoursDefaults = __webpack_require__(\"d61b\");\nvar handleStyleDefaults = __webpack_require__(\"41f8\");\nvar attributes = __webpack_require__(\"348d\");\n\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n function coerce2(attr) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr);\n }\n\n handleSampleDefaults(traceIn, traceOut, coerce, layout);\n if(traceOut.visible === false) return;\n\n handleContoursDefaults(traceIn, traceOut, coerce, coerce2);\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n coerce('hovertemplate');\n};\n\n\n/***/ }),\n\n/***/ \"0c85\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\nvar Colorscale = __webpack_require__(\"c258\");\nvar wrap = __webpack_require__(\"0a3e\").wrap;\n\nmodule.exports = function calc(gd, trace) {\n var lineColor;\n var cscale;\n\n if(Colorscale.hasColorscale(trace, 'line') && isArrayOrTypedArray(trace.line.color)) {\n lineColor = trace.line.color;\n cscale = Colorscale.extractOpts(trace.line).colorscale;\n\n Colorscale.calc(gd, trace, {\n vals: lineColor,\n containerStr: 'line',\n cLetter: 'c'\n });\n } else {\n lineColor = constHalf(trace._length);\n cscale = [[0, trace.line.color], [1, trace.line.color]];\n }\n\n return wrap({lineColor: lineColor, cscale: cscale});\n};\n\nfunction constHalf(len) {\n var out = new Array(len);\n for(var i = 0; i < len; i++) {\n out[i] = 0.5;\n }\n return out;\n}\n\n\n/***/ }),\n\n/***/ \"0cc1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar xmlnsNamespaces = __webpack_require__(\"73c9\");\nvar constants = __webpack_require__(\"000c\");\n\nmodule.exports = function plot(gd, plotinfo, cdimage, imageLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(imageLayer, cdimage, 'im').each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n\n var z = cd0.z;\n var x0 = cd0.x0;\n var y0 = cd0.y0;\n var w = cd0.w;\n var h = cd0.h;\n var dx = trace.dx;\n var dy = trace.dy;\n\n var left, right, temp, top, bottom, i;\n // in case of log of a negative\n i = 0;\n while(left === undefined && i < w) {\n left = xa.c2p(x0 + i * dx);\n i++;\n }\n i = w;\n while(right === undefined && i > 0) {\n right = xa.c2p(x0 + i * dx);\n i--;\n }\n i = 0;\n while(top === undefined && i < h) {\n top = ya.c2p(y0 + i * dy);\n i++;\n }\n i = h;\n while(bottom === undefined && i > 0) {\n bottom = ya.c2p(y0 + i * dy);\n i--;\n }\n\n if(right < left) {\n temp = right;\n right = left;\n left = temp;\n }\n\n if(bottom < top) {\n temp = top;\n top = bottom;\n bottom = temp;\n }\n\n // Reduce image size when zoomed in to save memory\n var extra = 0.5; // half the axis size\n left = Math.max(-extra * xa._length, left);\n right = Math.min((1 + extra) * xa._length, right);\n top = Math.max(-extra * ya._length, top);\n bottom = Math.min((1 + extra) * ya._length, bottom);\n var imageWidth = Math.round(right - left);\n var imageHeight = Math.round(bottom - top);\n\n // if image is entirely off-screen, don't even draw it\n var isOffScreen = (imageWidth <= 0 || imageHeight <= 0);\n if(isOffScreen) {\n var noImage = plotGroup.selectAll('image').data([]);\n noImage.exit().remove();\n return;\n }\n\n // Draw each pixel\n var canvas = document.createElement('canvas');\n canvas.width = imageWidth;\n canvas.height = imageHeight;\n var context = canvas.getContext('2d');\n\n var ipx = function(i) {return Lib.constrain(Math.round(xa.c2p(x0 + i * dx) - left), 0, imageWidth);};\n var jpx = function(j) {return Lib.constrain(Math.round(ya.c2p(y0 + j * dy) - top), 0, imageHeight);};\n\n var fmt = constants.colormodel[trace.colormodel].fmt;\n var c;\n for(i = 0; i < cd0.w; i++) {\n var ipx0 = ipx(i); var ipx1 = ipx(i + 1);\n if(ipx1 === ipx0 || isNaN(ipx1) || isNaN(ipx0)) continue;\n for(var j = 0; j < cd0.h; j++) {\n var jpx0 = jpx(j); var jpx1 = jpx(j + 1);\n if(jpx1 === jpx0 || isNaN(jpx1) || isNaN(jpx0) || !z[j][i]) continue;\n c = trace._scaler(z[j][i]);\n if(c) {\n context.fillStyle = trace.colormodel + '(' + fmt(c).join(',') + ')';\n } else {\n // Return a transparent pixel\n context.fillStyle = 'rgba(0,0,0,0)';\n }\n context.fillRect(ipx0, jpx0, ipx1 - ipx0, jpx1 - jpx0);\n }\n }\n\n var image3 = plotGroup.selectAll('image')\n .data(cd);\n\n image3.enter().append('svg:image').attr({\n xmlns: xmlnsNamespaces.svg,\n preserveAspectRatio: 'none'\n });\n\n image3.attr({\n height: imageHeight,\n width: imageWidth,\n x: left,\n y: top,\n 'xlink:href': canvas.toDataURL('image/png')\n });\n });\n};\n\n\n/***/ }),\n\n/***/ \"0cec\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nvar Registry = __webpack_require__(\"371e\");\nvar Axes = __webpack_require__(\"0642\");\nvar getAxisGroup = __webpack_require__(\"3c1c\").getAxisGroup;\nvar Sieve = __webpack_require__(\"8b25\");\n\n/*\n * Bar chart stacking/grouping positioning and autoscaling calculations\n * for each direction separately calculate the ranges and positions\n * note that this handles histograms too\n * now doing this one subplot at a time\n */\n\nfunction crossTraceCalc(gd, plotinfo) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n var fullLayout = gd._fullLayout;\n var fullTraces = gd._fullData;\n var calcTraces = gd.calcdata;\n var calcTracesHorz = [];\n var calcTracesVert = [];\n\n for(var i = 0; i < fullTraces.length; i++) {\n var fullTrace = fullTraces[i];\n if(\n fullTrace.visible === true &&\n Registry.traceIs(fullTrace, 'bar') &&\n fullTrace.xaxis === xa._id &&\n fullTrace.yaxis === ya._id\n ) {\n if(fullTrace.orientation === 'h') {\n calcTracesHorz.push(calcTraces[i]);\n } else {\n calcTracesVert.push(calcTraces[i]);\n }\n }\n }\n\n var opts = {\n mode: fullLayout.barmode,\n norm: fullLayout.barnorm,\n gap: fullLayout.bargap,\n groupgap: fullLayout.bargroupgap\n };\n\n setGroupPositions(gd, xa, ya, calcTracesVert, opts);\n setGroupPositions(gd, ya, xa, calcTracesHorz, opts);\n}\n\nfunction setGroupPositions(gd, pa, sa, calcTraces, opts) {\n if(!calcTraces.length) return;\n\n var excluded;\n var included;\n var i, calcTrace, fullTrace;\n\n initBase(sa, calcTraces);\n\n switch(opts.mode) {\n case 'overlay':\n setGroupPositionsInOverlayMode(pa, sa, calcTraces, opts);\n break;\n\n case 'group':\n // exclude from the group those traces for which the user set an offset\n excluded = [];\n included = [];\n for(i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n\n if(fullTrace.offset === undefined) included.push(calcTrace);\n else excluded.push(calcTrace);\n }\n\n if(included.length) {\n setGroupPositionsInGroupMode(gd, pa, sa, included, opts);\n }\n if(excluded.length) {\n setGroupPositionsInOverlayMode(pa, sa, excluded, opts);\n }\n break;\n\n case 'stack':\n case 'relative':\n // exclude from the stack those traces for which the user set a base\n excluded = [];\n included = [];\n for(i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n\n if(fullTrace.base === undefined) included.push(calcTrace);\n else excluded.push(calcTrace);\n }\n\n if(included.length) {\n setGroupPositionsInStackOrRelativeMode(gd, pa, sa, included, opts);\n }\n if(excluded.length) {\n setGroupPositionsInOverlayMode(pa, sa, excluded, opts);\n }\n break;\n }\n\n collectExtents(calcTraces, pa);\n}\n\nfunction initBase(sa, calcTraces) {\n var i, j;\n\n for(i = 0; i < calcTraces.length; i++) {\n var cd = calcTraces[i];\n var trace = cd[0].trace;\n var base = (trace.type === 'funnel') ? trace._base : trace.base;\n var b;\n\n // not sure if it really makes sense to have dates for bar size data...\n // ideally if we want to make gantt charts or something we'd treat\n // the actual size (trace.x or y) as time delta but base as absolute\n // time. But included here for completeness.\n var scalendar = trace.orientation === 'h' ? trace.xcalendar : trace.ycalendar;\n\n // 'base' on categorical axes makes no sense\n var d2c = sa.type === 'category' || sa.type === 'multicategory' ?\n function() { return null; } :\n sa.d2c;\n\n if(isArrayOrTypedArray(base)) {\n for(j = 0; j < Math.min(base.length, cd.length); j++) {\n b = d2c(base[j], 0, scalendar);\n if(isNumeric(b)) {\n cd[j].b = +b;\n cd[j].hasB = 1;\n } else cd[j].b = 0;\n }\n for(; j < cd.length; j++) {\n cd[j].b = 0;\n }\n } else {\n b = d2c(base, 0, scalendar);\n var hasBase = isNumeric(b);\n b = hasBase ? b : 0;\n for(j = 0; j < cd.length; j++) {\n cd[j].b = b;\n if(hasBase) cd[j].hasB = 1;\n }\n }\n }\n}\n\nfunction setGroupPositionsInOverlayMode(pa, sa, calcTraces, opts) {\n // update position axis and set bar offsets and widths\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n\n var sieve = new Sieve([calcTrace], {\n sepNegVal: false,\n overlapNoMerge: !opts.norm\n });\n\n // set bar offsets and widths, and update position axis\n setOffsetAndWidth(pa, sieve, opts);\n\n // set bar bases and sizes, and update size axis\n //\n // (note that `setGroupPositionsInOverlayMode` handles the case barnorm\n // is defined, because this function is also invoked for traces that\n // can't be grouped or stacked)\n if(opts.norm) {\n sieveBars(sieve);\n normalizeBars(sa, sieve, opts);\n } else {\n setBaseAndTop(sa, sieve);\n }\n }\n}\n\nfunction setGroupPositionsInGroupMode(gd, pa, sa, calcTraces, opts) {\n var sieve = new Sieve(calcTraces, {\n sepNegVal: false,\n overlapNoMerge: !opts.norm\n });\n\n // set bar offsets and widths, and update position axis\n setOffsetAndWidthInGroupMode(gd, pa, sieve, opts);\n\n // relative-stack bars within the same trace that would otherwise\n // be hidden\n unhideBarsWithinTrace(sieve);\n\n // set bar bases and sizes, and update size axis\n if(opts.norm) {\n sieveBars(sieve);\n normalizeBars(sa, sieve, opts);\n } else {\n setBaseAndTop(sa, sieve);\n }\n}\n\nfunction setGroupPositionsInStackOrRelativeMode(gd, pa, sa, calcTraces, opts) {\n var sieve = new Sieve(calcTraces, {\n sepNegVal: opts.mode === 'relative',\n overlapNoMerge: !(opts.norm || opts.mode === 'stack' || opts.mode === 'relative')\n });\n\n // set bar offsets and widths, and update position axis\n setOffsetAndWidth(pa, sieve, opts);\n\n // set bar bases and sizes, and update size axis\n stackBars(sa, sieve, opts);\n\n // flag the outmost bar (for text display purposes)\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n var isOutmostBar = ((bar.b + bar.s) === sieve.get(bar.p, bar.s));\n if(isOutmostBar) bar._outmost = true;\n }\n }\n }\n\n // Note that marking the outmost bars has to be done\n // before `normalizeBars` changes `bar.b` and `bar.s`.\n if(opts.norm) normalizeBars(sa, sieve, opts);\n}\n\nfunction setOffsetAndWidth(pa, sieve, opts) {\n var minDiff = sieve.minDiff;\n var calcTraces = sieve.traces;\n\n // set bar offsets and widths\n var barGroupWidth = minDiff * (1 - opts.gap);\n var barWidthPlusGap = barGroupWidth;\n var barWidth = barWidthPlusGap * (1 - (opts.groupgap || 0));\n\n // computer bar group center and bar offset\n var offsetFromCenter = -barWidth / 2;\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var t = calcTrace[0].t;\n\n // store bar width and offset for this trace\n t.barwidth = barWidth;\n t.poffset = offsetFromCenter;\n t.bargroupwidth = barGroupWidth;\n t.bardelta = minDiff;\n }\n\n // stack bars that only differ by rounding\n sieve.binWidth = calcTraces[0][0].t.barwidth / 100;\n\n // if defined, apply trace offset and width\n applyAttributes(sieve);\n\n // store the bar center in each calcdata item\n setBarCenterAndWidth(pa, sieve);\n\n // update position axes\n updatePositionAxis(pa, sieve);\n}\n\nfunction setOffsetAndWidthInGroupMode(gd, pa, sieve, opts) {\n var fullLayout = gd._fullLayout;\n var positions = sieve.positions;\n var distinctPositions = sieve.distinctPositions;\n var minDiff = sieve.minDiff;\n var calcTraces = sieve.traces;\n var nTraces = calcTraces.length;\n\n // if there aren't any overlapping positions,\n // let them have full width even if mode is group\n var overlap = (positions.length !== distinctPositions.length);\n var barGroupWidth = minDiff * (1 - opts.gap);\n\n var groupId = getAxisGroup(fullLayout, pa._id) + calcTraces[0][0].trace.orientation;\n var alignmentGroups = fullLayout._alignmentOpts[groupId] || {};\n\n for(var i = 0; i < nTraces; i++) {\n var calcTrace = calcTraces[i];\n var trace = calcTrace[0].trace;\n\n var alignmentGroupOpts = alignmentGroups[trace.alignmentgroup] || {};\n var nOffsetGroups = Object.keys(alignmentGroupOpts.offsetGroups || {}).length;\n\n var barWidthPlusGap;\n if(nOffsetGroups) {\n barWidthPlusGap = barGroupWidth / nOffsetGroups;\n } else {\n barWidthPlusGap = overlap ? barGroupWidth / nTraces : barGroupWidth;\n }\n\n var barWidth = barWidthPlusGap * (1 - (opts.groupgap || 0));\n\n var offsetFromCenter;\n if(nOffsetGroups) {\n offsetFromCenter = ((2 * trace._offsetIndex + 1 - nOffsetGroups) * barWidthPlusGap - barWidth) / 2;\n } else {\n offsetFromCenter = overlap ?\n ((2 * i + 1 - nTraces) * barWidthPlusGap - barWidth) / 2 :\n -barWidth / 2;\n }\n\n var t = calcTrace[0].t;\n t.barwidth = barWidth;\n t.poffset = offsetFromCenter;\n t.bargroupwidth = barGroupWidth;\n t.bardelta = minDiff;\n }\n\n // stack bars that only differ by rounding\n sieve.binWidth = calcTraces[0][0].t.barwidth / 100;\n\n // if defined, apply trace width\n applyAttributes(sieve);\n\n // store the bar center in each calcdata item\n setBarCenterAndWidth(pa, sieve);\n\n // update position axes\n updatePositionAxis(pa, sieve, overlap);\n}\n\nfunction applyAttributes(sieve) {\n var calcTraces = sieve.traces;\n var i, j;\n\n for(i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var calcTrace0 = calcTrace[0];\n var fullTrace = calcTrace0.trace;\n var t = calcTrace0.t;\n var offset = fullTrace._offset || fullTrace.offset;\n var initialPoffset = t.poffset;\n var newPoffset;\n\n if(isArrayOrTypedArray(offset)) {\n // if offset is an array, then clone it into t.poffset.\n newPoffset = Array.prototype.slice.call(offset, 0, calcTrace.length);\n\n // guard against non-numeric items\n for(j = 0; j < newPoffset.length; j++) {\n if(!isNumeric(newPoffset[j])) {\n newPoffset[j] = initialPoffset;\n }\n }\n\n // if the length of the array is too short,\n // then extend it with the initial value of t.poffset\n for(j = newPoffset.length; j < calcTrace.length; j++) {\n newPoffset.push(initialPoffset);\n }\n\n t.poffset = newPoffset;\n } else if(offset !== undefined) {\n t.poffset = offset;\n }\n\n var width = fullTrace._width || fullTrace.width;\n var initialBarwidth = t.barwidth;\n\n if(isArrayOrTypedArray(width)) {\n // if width is an array, then clone it into t.barwidth.\n var newBarwidth = Array.prototype.slice.call(width, 0, calcTrace.length);\n\n // guard against non-numeric items\n for(j = 0; j < newBarwidth.length; j++) {\n if(!isNumeric(newBarwidth[j])) newBarwidth[j] = initialBarwidth;\n }\n\n // if the length of the array is too short,\n // then extend it with the initial value of t.barwidth\n for(j = newBarwidth.length; j < calcTrace.length; j++) {\n newBarwidth.push(initialBarwidth);\n }\n\n t.barwidth = newBarwidth;\n\n // if user didn't set offset,\n // then correct t.poffset to ensure bars remain centered\n if(offset === undefined) {\n newPoffset = [];\n for(j = 0; j < calcTrace.length; j++) {\n newPoffset.push(\n initialPoffset + (initialBarwidth - newBarwidth[j]) / 2\n );\n }\n t.poffset = newPoffset;\n }\n } else if(width !== undefined) {\n t.barwidth = width;\n\n // if user didn't set offset,\n // then correct t.poffset to ensure bars remain centered\n if(offset === undefined) {\n t.poffset = initialPoffset + (initialBarwidth - width) / 2;\n }\n }\n }\n}\n\nfunction setBarCenterAndWidth(pa, sieve) {\n var calcTraces = sieve.traces;\n var pLetter = getAxisLetter(pa);\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var t = calcTrace[0].t;\n var poffset = t.poffset;\n var poffsetIsArray = Array.isArray(poffset);\n var barwidth = t.barwidth;\n var barwidthIsArray = Array.isArray(barwidth);\n\n for(var j = 0; j < calcTrace.length; j++) {\n var calcBar = calcTrace[j];\n\n // store the actual bar width and position, for use by hover\n var width = calcBar.w = barwidthIsArray ? barwidth[j] : barwidth;\n calcBar[pLetter] = calcBar.p + (poffsetIsArray ? poffset[j] : poffset) + width / 2;\n }\n }\n}\n\nfunction updatePositionAxis(pa, sieve, allowMinDtick) {\n var calcTraces = sieve.traces;\n var minDiff = sieve.minDiff;\n var vpad = minDiff / 2;\n\n Axes.minDtick(pa, sieve.minDiff, sieve.distinctPositions[0], allowMinDtick);\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var calcTrace0 = calcTrace[0];\n var fullTrace = calcTrace0.trace;\n var pts = [];\n var bar, l, r, j;\n\n for(j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n l = bar.p - vpad;\n r = bar.p + vpad;\n pts.push(l, r);\n }\n\n if(fullTrace.width || fullTrace.offset) {\n var t = calcTrace0.t;\n var poffset = t.poffset;\n var barwidth = t.barwidth;\n var poffsetIsArray = Array.isArray(poffset);\n var barwidthIsArray = Array.isArray(barwidth);\n\n for(j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n var calcBarOffset = poffsetIsArray ? poffset[j] : poffset;\n var calcBarWidth = barwidthIsArray ? barwidth[j] : barwidth;\n l = bar.p + calcBarOffset;\n r = l + calcBarWidth;\n pts.push(l, r);\n }\n }\n\n fullTrace._extremes[pa._id] = Axes.findExtremes(pa, pts, {padded: false});\n }\n}\n\n// store these bar bases and tops in calcdata\n// and make sure the size axis includes zero,\n// along with the bases and tops of each bar.\nfunction setBaseAndTop(sa, sieve) {\n var calcTraces = sieve.traces;\n var sLetter = getAxisLetter(sa);\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var fullTrace = calcTrace[0].trace;\n var pts = [];\n var allBaseAboveZero = true;\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n var base = bar.b;\n var top = base + bar.s;\n\n bar[sLetter] = top;\n pts.push(top);\n if(bar.hasB) pts.push(base);\n\n if(!bar.hasB || !(bar.b > 0 && bar.s > 0)) {\n allBaseAboveZero = false;\n }\n }\n\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n tozero: !allBaseAboveZero,\n padded: true\n });\n }\n}\n\nfunction stackBars(sa, sieve, opts) {\n var sLetter = getAxisLetter(sa);\n var calcTraces = sieve.traces;\n var calcTrace;\n var fullTrace;\n var isFunnel;\n var i, j;\n var bar;\n\n for(i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n\n if(fullTrace.type === 'funnel') {\n for(j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n // create base of funnels\n sieve.put(bar.p, -0.5 * bar.s);\n }\n }\n }\n }\n\n for(i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n\n isFunnel = (fullTrace.type === 'funnel');\n\n var pts = [];\n\n for(j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n // stack current bar and get previous sum\n var value;\n if(isFunnel) {\n value = bar.s;\n } else {\n value = bar.s + bar.b;\n }\n\n var base = sieve.put(bar.p, value);\n\n var top = base + value;\n\n // store the bar base and top in each calcdata item\n bar.b = base;\n bar[sLetter] = top;\n\n if(!opts.norm) {\n pts.push(top);\n if(bar.hasB) {\n pts.push(base);\n }\n }\n }\n }\n\n // if barnorm is set, let normalizeBars update the axis range\n if(!opts.norm) {\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n // N.B. we don't stack base with 'base',\n // so set tozero:true always!\n tozero: true,\n padded: true\n });\n }\n }\n}\n\nfunction sieveBars(sieve) {\n var calcTraces = sieve.traces;\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n sieve.put(bar.p, bar.b + bar.s);\n }\n }\n }\n}\n\nfunction unhideBarsWithinTrace(sieve) {\n var calcTraces = sieve.traces;\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var fullTrace = calcTrace[0].trace;\n\n if(fullTrace.base === undefined) {\n var inTraceSieve = new Sieve([calcTrace], {\n sepNegVal: true,\n overlapNoMerge: true\n });\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n\n if(bar.p !== BADNUM) {\n // stack current bar and get previous sum\n var base = inTraceSieve.put(bar.p, bar.b + bar.s);\n\n // if previous sum if non-zero, this means:\n // multiple bars have same starting point are potentially hidden,\n // shift them vertically so that all bars are visible by default\n if(base) bar.b = base;\n }\n }\n }\n }\n}\n\n// Note:\n//\n// normalizeBars requires that either sieveBars or stackBars has been\n// previously invoked.\nfunction normalizeBars(sa, sieve, opts) {\n var calcTraces = sieve.traces;\n var sLetter = getAxisLetter(sa);\n var sTop = opts.norm === 'fraction' ? 1 : 100;\n var sTiny = sTop / 1e9; // in case of rounding error in sum\n var sMin = sa.l2c(sa.c2l(0));\n var sMax = opts.mode === 'stack' ? sTop : sMin;\n\n function needsPadding(v) {\n return (\n isNumeric(sa.c2l(v)) &&\n ((v < sMin - sTiny) || (v > sMax + sTiny) || !isNumeric(sMin))\n );\n }\n\n for(var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var fullTrace = calcTrace[0].trace;\n var pts = [];\n var allBaseAboveZero = true;\n var padded = false;\n\n for(var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n\n if(bar.s !== BADNUM) {\n var scale = Math.abs(sTop / sieve.get(bar.p, bar.s));\n bar.b *= scale;\n bar.s *= scale;\n\n var base = bar.b;\n var top = base + bar.s;\n\n bar[sLetter] = top;\n pts.push(top);\n padded = padded || needsPadding(top);\n\n if(bar.hasB) {\n pts.push(base);\n padded = padded || needsPadding(base);\n }\n\n if(!bar.hasB || !(bar.b > 0 && bar.s > 0)) {\n allBaseAboveZero = false;\n }\n }\n }\n\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n tozero: !allBaseAboveZero,\n padded: padded\n });\n }\n}\n\n// find the full position span of bars at each position\n// for use by hover, to ensure labels move in if bars are\n// narrower than the space they're in.\n// run once per trace group (subplot & direction) and\n// the same mapping is attached to all calcdata traces\nfunction collectExtents(calcTraces, pa) {\n var pLetter = getAxisLetter(pa);\n var extents = {};\n var i, j, cd;\n\n var pMin = Infinity;\n var pMax = -Infinity;\n\n for(i = 0; i < calcTraces.length; i++) {\n cd = calcTraces[i];\n for(j = 0; j < cd.length; j++) {\n var p = cd[j].p;\n if(isNumeric(p)) {\n pMin = Math.min(pMin, p);\n pMax = Math.max(pMax, p);\n }\n }\n }\n\n // this is just for positioning of hover labels, and nobody will care if\n // the label is 1px too far out; so round positions to 1/10K in case\n // position values don't exactly match from trace to trace\n var roundFactor = 10000 / (pMax - pMin);\n var round = extents.round = function(p) {\n return String(Math.round(roundFactor * (p - pMin)));\n };\n\n for(i = 0; i < calcTraces.length; i++) {\n cd = calcTraces[i];\n cd[0].t.extents = extents;\n\n var poffset = cd[0].t.poffset;\n var poffsetIsArray = Array.isArray(poffset);\n\n for(j = 0; j < cd.length; j++) {\n var di = cd[j];\n var p0 = di[pLetter] - di.w / 2;\n\n if(isNumeric(p0)) {\n var p1 = di[pLetter] + di.w / 2;\n var pVal = round(di.p);\n if(extents[pVal]) {\n extents[pVal] = [Math.min(p0, extents[pVal][0]), Math.max(p1, extents[pVal][1])];\n } else {\n extents[pVal] = [p0, p1];\n }\n }\n\n di.p0 = di.p + (poffsetIsArray ? poffset[j] : poffset);\n di.p1 = di.p0 + di.w;\n di.s0 = di.b;\n di.s1 = di.s0 + di.s;\n }\n }\n}\n\nfunction getAxisLetter(ax) {\n return ax._id.charAt(0);\n}\n\nmodule.exports = {\n crossTraceCalc: crossTraceCalc,\n setGroupPositions: setGroupPositions\n};\n\n\n/***/ }),\n\n/***/ \"0cfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar fails = __webpack_require__(\"d039\");\nvar createElement = __webpack_require__(\"cc12\");\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"0d59\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n cellPad: 8,\n columnExtentOffset: 10,\n columnTitleOffset: 28,\n emptyHeaderHeight: 16,\n latexCheck: /^\\$.*\\$$/,\n goldenRatio: 1.618,\n lineBreaker: '
',\n maxDimensionCount: 60,\n overdrag: 45,\n releaseTransitionDuration: 120,\n releaseTransitionEase: 'cubic-out',\n scrollbarCaptureWidth: 18,\n scrollbarHideDelay: 1000,\n scrollbarHideDuration: 1000,\n scrollbarOffset: 5,\n scrollbarWidth: 8,\n transitionDuration: 100,\n transitionEase: 'cubic-out',\n uplift: 5,\n wrapSpacer: ' ',\n wrapSplitCharacter: ' ',\n cn: {\n // general class names\n table: 'table',\n tableControlView: 'table-control-view',\n scrollBackground: 'scroll-background',\n yColumn: 'y-column',\n columnBlock: 'column-block',\n scrollAreaClip: 'scroll-area-clip',\n scrollAreaClipRect: 'scroll-area-clip-rect',\n columnBoundary: 'column-boundary',\n columnBoundaryClippath: 'column-boundary-clippath',\n columnBoundaryRect: 'column-boundary-rect',\n columnCells: 'column-cells',\n columnCell: 'column-cell',\n cellRect: 'cell-rect',\n cellText: 'cell-text',\n cellTextHolder: 'cell-text-holder',\n\n // scroll related class names\n scrollbarKit: 'scrollbar-kit',\n scrollbar: 'scrollbar',\n scrollbarSlider: 'scrollbar-slider',\n scrollbarGlyph: 'scrollbar-glyph',\n scrollbarCaptureZone: 'scrollbar-capture-zone'\n }\n};\n\n\n/***/ }),\n\n/***/ \"0dd1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar twoProduct = __webpack_require__(\"c01c\")\nvar twoSum = __webpack_require__(\"d1bd\")\n\nmodule.exports = scaleLinearExpansion\n\nfunction scaleLinearExpansion(e, scale) {\n var n = e.length\n if(n === 1) {\n var ts = twoProduct(e[0], scale)\n if(ts[0]) {\n return ts\n }\n return [ ts[1] ]\n }\n var g = new Array(2 * n)\n var q = [0.1, 0.1]\n var t = [0.1, 0.1]\n var count = 0\n twoProduct(e[0], scale, q)\n if(q[0]) {\n g[count++] = q[0]\n }\n for(var i=1; i': makeInequalitySettings('>'),\n '<': makeInequalitySettings('<'),\n '=': makeInequalitySettings('=')\n};\n\n// This does not in any way shape or form support calendars. It's adapted from\n// transforms/filter.js.\nfunction coerceValue(operation, value) {\n var hasArrayValue = Array.isArray(value);\n\n var coercedValue;\n\n function coerce(value) {\n return isNumeric(value) ? (+value) : null;\n }\n\n if(filterOps.COMPARISON_OPS2.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ? coerce(value[0]) : coerce(value);\n } else if(filterOps.INTERVAL_OPS.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ?\n [coerce(value[0]), coerce(value[1])] :\n [coerce(value), coerce(value)];\n } else if(filterOps.SET_OPS.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ? value.map(coerce) : [coerce(value)];\n }\n\n return coercedValue;\n}\n\n// Returns a parabola scaled so that the min/max is either +/- 1 and zero at the two values\n// provided. The data is mapped by this function when constructing intervals so that it's\n// very easy to construct contours as normal.\nfunction makeRangeSettings(operation) {\n return function(value) {\n value = coerceValue(operation, value);\n\n // Ensure proper ordering:\n var min = Math.min(value[0], value[1]);\n var max = Math.max(value[0], value[1]);\n\n return {\n start: min,\n end: max,\n size: max - min\n };\n };\n}\n\nfunction makeInequalitySettings(operation) {\n return function(value) {\n value = coerceValue(operation, value);\n\n return {\n start: value,\n end: Infinity,\n size: Infinity\n };\n };\n}\n\n\n/***/ }),\n\n/***/ \"11e1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\n\nvar handleStyleDefaults = __webpack_require__(\"9103\");\nvar attributes = __webpack_require__(\"40c0\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var x = coerce('x');\n var y = coerce('y');\n\n var cumulative = coerce('cumulative.enabled');\n if(cumulative) {\n coerce('cumulative.direction');\n coerce('cumulative.currentbin');\n }\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n var orientation = coerce('orientation', (y && !x) ? 'h' : 'v');\n var sampleLetter = orientation === 'v' ? 'x' : 'y';\n var aggLetter = orientation === 'v' ? 'y' : 'x';\n\n var len = (x && y) ?\n Math.min(Lib.minRowLength(x) && Lib.minRowLength(y)) :\n Lib.minRowLength(traceOut[sampleLetter] || []);\n\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = len;\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);\n\n var hasAggregationData = traceOut[aggLetter];\n if(hasAggregationData) coerce('histfunc');\n coerce('histnorm');\n\n // Note: bin defaults are now handled in Histogram.crossTraceDefaults\n // autobin(x|y) are only included here to appease Plotly.validate\n coerce('autobin' + sampleLetter);\n\n handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n\n var lineColor = (traceOut.marker.line || {}).color;\n\n // override defaultColor for error bars with defaultLine\n var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'});\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});\n};\n\n\n/***/ }),\n\n/***/ \"122d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\nvar Template = __webpack_require__(\"a651\");\n\nvar handleSubplotDefaults = __webpack_require__(\"119e\");\nvar getSubplotData = __webpack_require__(\"ad62\").getSubplotData;\n\nvar handleTickValueDefaults = __webpack_require__(\"d92f\");\nvar handleTickMarkDefaults = __webpack_require__(\"27e3\");\nvar handleTickLabelDefaults = __webpack_require__(\"5008\");\nvar handleCategoryOrderDefaults = __webpack_require__(\"d18b\");\nvar handleLineGridDefaults = __webpack_require__(\"743b\");\nvar autoType = __webpack_require__(\"0b77\");\n\nvar layoutAttributes = __webpack_require__(\"ddde\");\nvar setConvert = __webpack_require__(\"7a52\");\nvar constants = __webpack_require__(\"f510\");\nvar axisNames = constants.axisNames;\n\nfunction handleDefaults(contIn, contOut, coerce, opts) {\n var bgColor = coerce('bgcolor');\n opts.bgColor = Color.combine(bgColor, opts.paper_bgcolor);\n\n var sector = coerce('sector');\n coerce('hole');\n\n // could optimize, subplotData is not always needed!\n var subplotData = getSubplotData(opts.fullData, constants.name, opts.id);\n var layoutOut = opts.layoutOut;\n var axName;\n\n function coerceAxis(attr, dflt) {\n return coerce(axName + '.' + attr, dflt);\n }\n\n for(var i = 0; i < axisNames.length; i++) {\n axName = axisNames[i];\n\n if(!Lib.isPlainObject(contIn[axName])) {\n contIn[axName] = {};\n }\n\n var axIn = contIn[axName];\n var axOut = Template.newContainer(contOut, axName);\n axOut._id = axOut._name = axName;\n axOut._attr = opts.id + '.' + axName;\n axOut._traceIndices = subplotData.map(function(t) { return t._expandedIndex; });\n\n var dataAttr = constants.axisName2dataArray[axName];\n var axType = handleAxisTypeDefaults(axIn, axOut, coerceAxis, subplotData, dataAttr);\n\n handleCategoryOrderDefaults(axIn, axOut, coerceAxis, {\n axData: subplotData,\n dataAttr: dataAttr\n });\n\n var visible = coerceAxis('visible');\n setConvert(axOut, contOut, layoutOut);\n\n coerceAxis('uirevision', contOut.uirevision);\n\n var dfltColor;\n var dfltFontColor;\n\n if(visible) {\n dfltColor = coerceAxis('color');\n dfltFontColor = (dfltColor === axIn.color) ? dfltColor : opts.font.color;\n }\n\n // We don't want to make downstream code call ax.setScale,\n // as both radial and angular axes don't have a set domain.\n // Furthermore, angular axes don't have a set range.\n //\n // Mocked domains and ranges are set by the polar subplot instances,\n // but Axes.findExtremes uses the sign of _m to determine which padding value\n // to use.\n //\n // By setting, _m to 1 here, we make Axes.findExtremes think that\n // range[1] > range[0], and vice-versa for `autorange: 'reversed'` below.\n axOut._m = 1;\n\n switch(axName) {\n case 'radialaxis':\n var autoRange = coerceAxis('autorange', !axOut.isValidRange(axIn.range));\n axIn.autorange = autoRange;\n if(autoRange && (axType === 'linear' || axType === '-')) coerceAxis('rangemode');\n if(autoRange === 'reversed') axOut._m = -1;\n\n coerceAxis('range');\n axOut.cleanRange('range', {dfltRange: [0, 1]});\n\n if(visible) {\n coerceAxis('side');\n coerceAxis('angle', sector[0]);\n\n coerceAxis('title.text');\n Lib.coerceFont(coerceAxis, 'title.font', {\n family: opts.font.family,\n size: Math.round(opts.font.size * 1.2),\n color: dfltFontColor\n });\n }\n break;\n\n case 'angularaxis':\n // We do not support 'true' date angular axes yet,\n // users can still plot dates on angular axes by setting\n // `angularaxis.type: 'category'`.\n //\n // Here, if a date angular axes is detected, we make\n // all its corresponding traces invisible, so that\n // when we do add support for data angular axes, the new\n // behavior won't conflict with existing behavior\n if(axType === 'date') {\n Lib.log('Polar plots do not support date angular axes yet.');\n\n for(var j = 0; j < subplotData.length; j++) {\n subplotData[j].visible = false;\n }\n\n // turn this into a 'dummy' linear axis so that\n // the subplot still renders ok\n axType = axIn.type = axOut.type = 'linear';\n }\n\n if(axType === 'linear') {\n coerceAxis('thetaunit');\n } else {\n coerceAxis('period');\n }\n\n var direction = coerceAxis('direction');\n coerceAxis('rotation', {counterclockwise: 0, clockwise: 90}[direction]);\n break;\n }\n\n if(visible) {\n handleTickValueDefaults(axIn, axOut, coerceAxis, axOut.type);\n handleTickLabelDefaults(axIn, axOut, coerceAxis, axOut.type, {\n tickSuffixDflt: axOut.thetaunit === 'degrees' ? '°' : undefined\n });\n handleTickMarkDefaults(axIn, axOut, coerceAxis, {outerTicks: true});\n\n var showTickLabels = coerceAxis('showticklabels');\n if(showTickLabels) {\n Lib.coerceFont(coerceAxis, 'tickfont', {\n family: opts.font.family,\n size: opts.font.size,\n color: dfltFontColor\n });\n coerceAxis('tickangle');\n coerceAxis('tickformat');\n }\n\n handleLineGridDefaults(axIn, axOut, coerceAxis, {\n dfltColor: dfltColor,\n bgColor: opts.bgColor,\n // default grid color is darker here (60%, vs cartesian default ~91%)\n // because the grid is not square so the eye needs heavier cues to follow\n blend: 60,\n showLine: true,\n showGrid: true,\n noZeroLine: true,\n attributes: layoutAttributes[axName]\n });\n\n coerceAxis('layer');\n }\n\n if(axType !== 'category') coerceAxis('hoverformat');\n\n axOut._input = axIn;\n }\n\n if(contOut.angularaxis.type === 'category') {\n coerce('gridshape');\n }\n}\n\nfunction handleAxisTypeDefaults(axIn, axOut, coerce, subplotData, dataAttr) {\n var axType = coerce('type');\n\n if(axType === '-') {\n var trace;\n\n for(var i = 0; i < subplotData.length; i++) {\n if(subplotData[i].visible) {\n trace = subplotData[i];\n break;\n }\n }\n\n if(trace && trace[dataAttr]) {\n axOut.type = autoType(trace[dataAttr], 'gregorian');\n }\n\n if(axOut.type === '-') {\n axOut.type = 'linear';\n } else {\n // copy autoType back to input axis\n // note that if this object didn't exist\n // in the input layout, we have to put it in\n // this happens in the main supplyDefaults function\n axIn.type = axOut.type;\n }\n }\n\n return axOut.type;\n}\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: constants.name,\n attributes: layoutAttributes,\n handleDefaults: handleDefaults,\n font: layoutOut.font,\n paper_bgcolor: layoutOut.paper_bgcolor,\n fullData: fullData,\n layoutOut: layoutOut\n });\n};\n\n\n/***/ }),\n\n/***/ \"12c1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n// Modified from https://github.com/ArthurClemens/Javascript-Undo-Manager\n// Copyright (c) 2010-2013 Arthur Clemens, arthur@visiblearea.com\nmodule.exports = function UndoManager() {\n var undoCommands = [];\n var index = -1;\n var isExecuting = false;\n var callback;\n\n function execute(command, action) {\n if(!command) return this;\n\n isExecuting = true;\n command[action]();\n isExecuting = false;\n\n return this;\n }\n\n return {\n add: function(command) {\n if(isExecuting) return this;\n undoCommands.splice(index + 1, undoCommands.length - index);\n undoCommands.push(command);\n index = undoCommands.length - 1;\n return this;\n },\n setCallback: function(callbackFunc) { callback = callbackFunc; },\n undo: function() {\n var command = undoCommands[index];\n if(!command) return this;\n execute(command, 'undo');\n index -= 1;\n if(callback) callback(command.undo);\n return this;\n },\n redo: function() {\n var command = undoCommands[index + 1];\n if(!command) return this;\n execute(command, 'redo');\n index += 1;\n if(callback) callback(command.redo);\n return this;\n },\n clear: function() {\n undoCommands = [];\n index = -1;\n },\n hasUndo: function() { return index !== -1; },\n hasRedo: function() { return index < (undoCommands.length - 1); },\n getCommands: function() { return undoCommands; },\n getPreviousCommand: function() { return undoCommands[index - 1]; },\n getIndex: function() { return index; }\n };\n};\n\n\n/***/ }),\n\n/***/ \"12e0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n// a trimmed down version of:\n// https://github.com/alexcjohnson/world-calendars/blob/master/dist/index.js\n\nmodule.exports = __webpack_require__(\"0230\");\n\n__webpack_require__(\"54ea\");\n\n__webpack_require__(\"87d2\");\n__webpack_require__(\"ad2d\");\n__webpack_require__(\"d402\");\n__webpack_require__(\"fd3b\");\n__webpack_require__(\"becc\");\n__webpack_require__(\"3e43\");\n__webpack_require__(\"aaa9\");\n__webpack_require__(\"a7c5\");\n__webpack_require__(\"8a0e\");\n__webpack_require__(\"c107\");\n__webpack_require__(\"2d7d\");\n__webpack_require__(\"0b79\");\n__webpack_require__(\"1bbd\");\n__webpack_require__(\"7abc\");\n\n\n/***/ }),\n\n/***/ \"134c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\nvar fxAttrs = __webpack_require__(\"927d\");\n\nvar Scene = __webpack_require__(\"bb88\");\nvar getSubplotData = __webpack_require__(\"ad62\").getSubplotData;\nvar Lib = __webpack_require__(\"fc26\");\nvar xmlnsNamespaces = __webpack_require__(\"73c9\");\n\nvar GL3D = 'gl3d';\nvar SCENE = 'scene';\n\n\nexports.name = GL3D;\n\nexports.attr = SCENE;\n\nexports.idRoot = SCENE;\n\nexports.idRegex = exports.attrRegex = Lib.counterRegex('scene');\n\nexports.attributes = __webpack_require__(\"cdaf\");\n\nexports.layoutAttributes = __webpack_require__(\"f409\");\n\nexports.baseLayoutAttrOverrides = overrideAll({\n hoverlabel: fxAttrs.hoverlabel\n}, 'plot', 'nested');\n\nexports.supplyLayoutDefaults = __webpack_require__(\"9f41\");\n\nexports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var sceneIds = fullLayout._subplots[GL3D];\n\n for(var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var fullSceneData = getSubplotData(fullData, GL3D, sceneId);\n var sceneLayout = fullLayout[sceneId];\n var camera = sceneLayout.camera;\n var scene = sceneLayout._scene;\n\n if(!scene) {\n scene = new Scene({\n id: sceneId,\n graphDiv: gd,\n container: gd.querySelector('.gl-container'),\n staticPlot: gd._context.staticPlot,\n plotGlPixelRatio: gd._context.plotGlPixelRatio,\n camera: camera\n },\n fullLayout\n );\n\n // set ref to Scene instance\n sceneLayout._scene = scene;\n }\n\n // save 'initial' camera view settings for modebar button\n if(!scene.viewInitial) {\n scene.viewInitial = {\n up: {\n x: camera.up.x,\n y: camera.up.y,\n z: camera.up.z\n },\n eye: {\n x: camera.eye.x,\n y: camera.eye.y,\n z: camera.eye.z\n },\n center: {\n x: camera.center.x,\n y: camera.center.y,\n z: camera.center.z\n }\n };\n }\n\n scene.plot(fullSceneData, fullLayout, gd.layout);\n }\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldSceneKeys = oldFullLayout._subplots[GL3D] || [];\n\n for(var i = 0; i < oldSceneKeys.length; i++) {\n var oldSceneKey = oldSceneKeys[i];\n\n if(!newFullLayout[oldSceneKey] && !!oldFullLayout[oldSceneKey]._scene) {\n oldFullLayout[oldSceneKey]._scene.destroy();\n\n if(oldFullLayout._infolayer) {\n oldFullLayout._infolayer\n .selectAll('.annotation-' + oldSceneKey)\n .remove();\n }\n }\n }\n};\n\nexports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots[GL3D];\n var size = fullLayout._size;\n\n for(var i = 0; i < sceneIds.length; i++) {\n var sceneLayout = fullLayout[sceneIds[i]];\n var domain = sceneLayout.domain;\n var scene = sceneLayout._scene;\n\n var imageData = scene.toImage('png');\n var image = fullLayout._glimages.append('svg:image');\n\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n 'xlink:href': imageData,\n x: size.l + size.w * domain.x[0],\n y: size.t + size.h * (1 - domain.y[1]),\n width: size.w * (domain.x[1] - domain.x[0]),\n height: size.h * (domain.y[1] - domain.y[0]),\n preserveAspectRatio: 'none'\n });\n\n scene.destroy();\n }\n};\n\n// clean scene ids, 'scene1' -> 'scene'\nexports.cleanId = function cleanId(id) {\n if(!id.match(/^scene[0-9]*$/)) return;\n\n var sceneNum = id.substr(5);\n if(sceneNum === '1') sceneNum = '';\n\n return SCENE + sceneNum;\n};\n\nexports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[GL3D];\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout[subplotIds[i]]._scene;\n subplotObj.updateFx(fullLayout.dragmode, fullLayout.hovermode);\n }\n};\n\n\n/***/ }),\n\n/***/ \"1368\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process, global) {var require;/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 3.3.1\n */\n\n(function (global, factory) {\n true ? module.exports = factory() :\n undefined;\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n return typeof x === 'function' || typeof x === 'object' && x !== null;\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nvar _isArray = undefined;\nif (!Array.isArray) {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n} else {\n _isArray = Array.isArray;\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n return function () {\n vertxNext(flush);\n };\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = __webpack_require__(0);\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && \"function\" === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n _resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n _reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n _reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n _reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return _resolve(promise, value);\n }, function (reason) {\n return _reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$) {\n if (maybeThenable.constructor === promise.constructor && then$$ === then && maybeThenable.constructor.resolve === resolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$ === GET_THEN_ERROR) {\n _reject(promise, GET_THEN_ERROR.error);\n } else if (then$$ === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$)) {\n handleForeignThenable(promise, maybeThenable, then$$);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction _resolve(promise, value) {\n if (promise === value) {\n _reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction _reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n _reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n _resolve(promise, value);\n } else if (failed) {\n _reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n _reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n _resolve(promise, value);\n }, function rejectPromise(reason) {\n _reject(promise, reason);\n });\n } catch (e) {\n _reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n _reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function () {\n var length = this.length;\n var _input = this._input;\n\n for (var i = 0; this._state === PENDING && i < length; i++) {\n this._eachEntry(_input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve$$ = c.resolve;\n\n if (resolve$$ === resolve) {\n var _then = getThen(entry);\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$) {\n return resolve$$(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n _reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = resolve;\nPromise.reject = reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}\n\npolyfill();\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\n\nreturn Promise;\n\n})));\n//# sourceMappingURL=es6-promise.map\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"4362\"), __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"1385\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\n// more info: http://stackoverflow.com/questions/18531624/isplainobject-thing\nmodule.exports = function isPlainObject(obj) {\n // We need to be a little less strict in the `imagetest` container because\n // of how async image requests are handled.\n //\n // N.B. isPlainObject(new Constructor()) will return true in `imagetest`\n if(window && window.process && window.process.versions) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n }\n\n return (\n Object.prototype.toString.call(obj) === '[object Object]' &&\n Object.getPrototypeOf(obj) === Object.prototype\n );\n};\n\n\n/***/ }),\n\n/***/ \"13a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3Hierarchy = __webpack_require__(\"c947\");\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar makeColorScaleFn = __webpack_require__(\"c258\").makeColorScaleFuncFromTrace;\nvar makePullColorFn = __webpack_require__(\"86b8\").makePullColorFn;\nvar generateExtendedColors = __webpack_require__(\"86b8\").generateExtendedColors;\nvar colorscaleCalc = __webpack_require__(\"c258\").calc;\n\nvar ALMOST_EQUAL = __webpack_require__(\"e806\").ALMOST_EQUAL;\n\nvar sunburstExtendedColorWays = {};\nvar treemapExtendedColorWays = {};\n\nexports.calc = function(gd, trace) {\n var fullLayout = gd._fullLayout;\n var ids = trace.ids;\n var hasIds = Lib.isArrayOrTypedArray(ids);\n var labels = trace.labels;\n var parents = trace.parents;\n var values = trace.values;\n var hasValues = Lib.isArrayOrTypedArray(values);\n var cd = [];\n\n var parent2children = {};\n var refs = {};\n var addToLookup = function(parent, v) {\n if(parent2children[parent]) parent2children[parent].push(v);\n else parent2children[parent] = [v];\n refs[v] = 1;\n };\n\n // treat number `0` as valid\n var isValidKey = function(k) {\n return k || typeof k === 'number';\n };\n\n var isValidVal = function(i) {\n return !hasValues || (isNumeric(values[i]) && values[i] >= 0);\n };\n\n var len;\n var isValid;\n var getId;\n\n if(hasIds) {\n len = Math.min(ids.length, parents.length);\n isValid = function(i) { return isValidKey(ids[i]) && isValidVal(i); };\n getId = function(i) { return String(ids[i]); };\n } else {\n len = Math.min(labels.length, parents.length);\n isValid = function(i) { return isValidKey(labels[i]) && isValidVal(i); };\n // TODO We could allow some label / parent duplication\n //\n // From AJ:\n // It would work OK for one level\n // (multiple rows with the same name and different parents -\n // or even the same parent) but if that name is then used as a parent\n // which one is it?\n getId = function(i) { return String(labels[i]); };\n }\n\n if(hasValues) len = Math.min(len, values.length);\n\n for(var i = 0; i < len; i++) {\n if(isValid(i)) {\n var id = getId(i);\n var pid = isValidKey(parents[i]) ? String(parents[i]) : '';\n\n var cdi = {\n i: i,\n id: id,\n pid: pid,\n label: isValidKey(labels[i]) ? String(labels[i]) : ''\n };\n\n if(hasValues) cdi.v = +values[i];\n cd.push(cdi);\n addToLookup(pid, id);\n }\n }\n\n if(!parent2children['']) {\n var impliedRoots = [];\n var k;\n for(k in parent2children) {\n if(!refs[k]) {\n impliedRoots.push(k);\n }\n }\n\n // if an `id` has no ref in the `parents` array,\n // take it as being the root node\n\n if(impliedRoots.length === 1) {\n k = impliedRoots[0];\n cd.unshift({\n hasImpliedRoot: true,\n id: k,\n pid: '',\n label: k\n });\n } else {\n return Lib.warn('Multiple implied roots, cannot build ' + trace.type + ' hierarchy.');\n }\n } else if(parent2children[''].length > 1) {\n var dummyId = Lib.randstr();\n\n // if multiple rows linked to the root node,\n // add dummy \"root of roots\" node to make d3 build the hierarchy successfully\n\n for(var j = 0; j < cd.length; j++) {\n if(cd[j].pid === '') {\n cd[j].pid = dummyId;\n }\n }\n\n cd.unshift({\n hasMultipleRoots: true,\n id: dummyId,\n pid: '',\n label: ''\n });\n }\n\n // TODO might be better to replace stratify() with our own algorithm\n var root;\n try {\n root = d3Hierarchy.stratify()\n .id(function(d) { return d.id; })\n .parentId(function(d) { return d.pid; })(cd);\n } catch(e) {\n return Lib.warn('Failed to build ' + trace.type + ' hierarchy. Error: ' + e.message);\n }\n\n var hierarchy = d3Hierarchy.hierarchy(root);\n var failed = false;\n\n if(hasValues) {\n switch(trace.branchvalues) {\n case 'remainder':\n hierarchy.sum(function(d) { return d.data.v; });\n break;\n case 'total':\n hierarchy.each(function(d) {\n var cdi = d.data.data;\n var v = cdi.v;\n\n if(d.children) {\n var partialSum = d.children.reduce(function(a, c) {\n return a + c.data.data.v;\n }, 0);\n\n // N.B. we must fill in `value` for generated sectors\n // with the partialSum to compute the correct partition\n if(cdi.hasImpliedRoot || cdi.hasMultipleRoots) {\n v = partialSum;\n }\n\n if(v < partialSum * ALMOST_EQUAL) {\n failed = true;\n return Lib.warn([\n 'Total value for node', d.data.data.id,\n 'is smaller than the sum of its children.',\n '\\nparent value =', v,\n '\\nchildren sum =', partialSum\n ].join(' '));\n }\n }\n\n d.value = v;\n });\n break;\n }\n } else {\n countDescendants(hierarchy, trace, {\n branches: trace.count.indexOf('branches') !== -1,\n leaves: trace.count.indexOf('leaves') !== -1\n });\n }\n\n if(failed) return;\n\n // TODO add way to sort by height also?\n hierarchy.sort(function(a, b) { return b.value - a.value; });\n\n var pullColor;\n var scaleColor;\n var colors = trace.marker.colors || [];\n var hasColors = !!colors.length;\n\n if(trace._hasColorscale) {\n if(!hasColors) {\n colors = hasValues ? trace.values : trace._values;\n }\n\n colorscaleCalc(gd, trace, {\n vals: colors,\n containerStr: 'marker',\n cLetter: 'c'\n });\n\n scaleColor = makeColorScaleFn(trace.marker);\n } else {\n pullColor = makePullColorFn(fullLayout['_' + trace.type + 'colormap']);\n }\n\n // TODO keep track of 'root-children' (i.e. branch) for hover info etc.\n\n hierarchy.each(function(d) {\n var cdi = d.data.data;\n // N.B. this mutates items in `cd`\n cdi.color = trace._hasColorscale ?\n scaleColor(colors[cdi.i]) :\n pullColor(colors[cdi.i], cdi.id);\n });\n\n cd[0].hierarchy = hierarchy;\n\n return cd;\n};\n\n/*\n * `calc` filled in (and collated) explicit colors.\n * Now we need to propagate these explicit colors to other traces,\n * and fill in default colors.\n * This is done after sorting, so we pick defaults\n * in the order slices will be displayed\n */\nexports._runCrossTraceCalc = function(desiredType, gd) {\n var fullLayout = gd._fullLayout;\n var calcdata = gd.calcdata;\n var colorWay = fullLayout[desiredType + 'colorway'];\n var colorMap = fullLayout['_' + desiredType + 'colormap'];\n\n if(fullLayout['extend' + desiredType + 'colors']) {\n colorWay = generateExtendedColors(colorWay,\n desiredType === 'treemap' ? treemapExtendedColorWays : sunburstExtendedColorWays\n );\n }\n var dfltColorCount = 0;\n\n function pickColor(d) {\n var cdi = d.data.data;\n var id = cdi.id;\n\n if(cdi.color === false) {\n if(colorMap[id]) {\n // have we seen this label and assigned a color to it in a previous trace?\n cdi.color = colorMap[id];\n } else if(d.parent) {\n if(d.parent.parent) {\n // from third-level on, inherit from parent\n cdi.color = d.parent.data.data.color;\n } else {\n // pick new color for second level\n colorMap[id] = cdi.color = colorWay[dfltColorCount % colorWay.length];\n dfltColorCount++;\n }\n } else {\n // root gets no coloring by default\n cdi.color = 'rgba(0,0,0,0)';\n }\n }\n }\n\n for(var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var cd0 = cd[0];\n if(cd0.trace.type === desiredType && cd0.hierarchy) {\n cd0.hierarchy.each(pickColor);\n }\n }\n};\n\nexports.crossTraceCalc = function(gd) {\n return exports._runCrossTraceCalc('sunburst', gd);\n};\n\nfunction countDescendants(node, trace, opts) {\n var nChild = 0;\n\n var children = node.children;\n if(children) {\n var len = children.length;\n\n for(var i = 0; i < len; i++) {\n nChild += countDescendants(children[i], trace, opts);\n }\n\n if(opts.branches) nChild++; // count this branch\n } else {\n if(opts.leaves) nChild++; // count this leaf\n }\n\n // save to the node\n node.value = node.data.data.value = nChild;\n\n // save to the trace\n if(!trace._values) trace._values = [];\n trace._values[node.data.data.i] = nChild;\n\n return nChild;\n}\n\n\n/***/ }),\n\n/***/ \"13a4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\n\n// set cursors pointing toward the closest corner/side,\n// to indicate alignment\n// x and y are 0-1, fractions of the plot area\nvar cursorset = [\n ['sw-resize', 's-resize', 'se-resize'],\n ['w-resize', 'move', 'e-resize'],\n ['nw-resize', 'n-resize', 'ne-resize']\n];\n\nmodule.exports = function getCursor(x, y, xanchor, yanchor) {\n if(xanchor === 'left') x = 0;\n else if(xanchor === 'center') x = 1;\n else if(xanchor === 'right') x = 2;\n else x = Lib.constrain(Math.floor(x * 3), 0, 2);\n\n if(yanchor === 'bottom') y = 0;\n else if(yanchor === 'middle') y = 1;\n else if(yanchor === 'top') y = 2;\n else y = Lib.constrain(Math.floor(y * 3), 0, 2);\n\n return cursorset[y][x];\n};\n\n\n/***/ }),\n\n/***/ \"13c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @module color-space/hsl\n */\n\n\nvar rgb = __webpack_require__(\"1bea\");\n\nmodule.exports = {\n\tname: 'hsl',\n\tmin: [0,0,0],\n\tmax: [360,100,100],\n\tchannel: ['hue', 'saturation', 'lightness'],\n\talias: ['HSL'],\n\n\trgb: function(hsl) {\n\t\tvar h = hsl[0] / 360,\n\t\t\t\ts = hsl[1] / 100,\n\t\t\t\tl = hsl[2] / 100,\n\t\t\t\tt1, t2, t3, rgb, val;\n\n\t\tif (s === 0) {\n\t\t\tval = l * 255;\n\t\t\treturn [val, val, val];\n\t\t}\n\n\t\tif (l < 0.5) {\n\t\t\tt2 = l * (1 + s);\n\t\t}\n\t\telse {\n\t\t\tt2 = l + s - l * s;\n\t\t}\n\t\tt1 = 2 * l - t2;\n\n\t\trgb = [0, 0, 0];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\tt3 = h + 1 / 3 * - (i - 1);\n\t\t\tif (t3 < 0) {\n\t\t\t\tt3++;\n\t\t\t}\n\t\t\telse if (t3 > 1) {\n\t\t\t\tt3--;\n\t\t\t}\n\n\t\t\tif (6 * t3 < 1) {\n\t\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t\t}\n\t\t\telse if (2 * t3 < 1) {\n\t\t\t\tval = t2;\n\t\t\t}\n\t\t\telse if (3 * t3 < 2) {\n\t\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tval = t1;\n\t\t\t}\n\n\t\t\trgb[i] = val * 255;\n\t\t}\n\n\t\treturn rgb;\n\t}\n};\n\n\n//extend rgb\nrgb.hsl = function(rgb) {\n\tvar r = rgb[0]/255,\n\t\t\tg = rgb[1]/255,\n\t\t\tb = rgb[2]/255,\n\t\t\tmin = Math.min(r, g, b),\n\t\t\tmax = Math.max(r, g, b),\n\t\t\tdelta = max - min,\n\t\t\th, s, l;\n\n\tif (max === min) {\n\t\th = 0;\n\t}\n\telse if (r === max) {\n\t\th = (g - b) / delta;\n\t}\n\telse if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t}\n\telse if (b === max) {\n\t\th = 4 + (r - g)/ delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t}\n\telse if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t}\n\telse {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\n\n/***/ }),\n\n/***/ \"13c4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Registry = __webpack_require__(\"371e\");\nvar Plots = __webpack_require__(\"bb71\");\nvar axisIds = __webpack_require__(\"3c1c\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Icons = __webpack_require__(\"7559\");\n\nvar _ = Lib._;\n\nvar modeBarButtons = module.exports = {};\n\n/**\n * ModeBar buttons configuration\n *\n * @param {string} name\n * name / id of the buttons (for tracking)\n * @param {string} title\n * text that appears while hovering over the button,\n * enter null, false or '' for no hover text\n * @param {string} icon\n * svg icon object associated with the button\n * can be linked to Plotly.Icons to use the default plotly icons\n * @param {string} [gravity]\n * icon positioning\n * @param {function} click\n * click handler associated with the button, a function of\n * 'gd' (the main graph object) and\n * 'ev' (the event object)\n * @param {string} [attr]\n * attribute associated with button,\n * use this with 'val' to keep track of the state\n * @param {*} [val]\n * initial 'attr' value, can be a function of gd\n * @param {boolean} [toggle]\n * is the button a toggle button?\n */\nmodeBarButtons.toImage = {\n name: 'toImage',\n title: function(gd) {\n var opts = gd._context.toImageButtonOptions || {};\n var format = opts.format || 'png';\n return format === 'png' ?\n _(gd, 'Download plot as a png') : // legacy text\n _(gd, 'Download plot'); // generic non-PNG text\n },\n icon: Icons.camera,\n click: function(gd) {\n var toImageButtonOptions = gd._context.toImageButtonOptions;\n var opts = {format: toImageButtonOptions.format || 'png'};\n\n Lib.notifier(_(gd, 'Taking snapshot - this may take a few seconds'), 'long');\n\n if(opts.format !== 'svg' && Lib.isIE()) {\n Lib.notifier(_(gd, 'IE only supports svg. Changing format to svg.'), 'long');\n opts.format = 'svg';\n }\n\n ['filename', 'width', 'height', 'scale'].forEach(function(key) {\n if(key in toImageButtonOptions) {\n opts[key] = toImageButtonOptions[key];\n }\n });\n\n Registry.call('downloadImage', gd, opts)\n .then(function(filename) {\n Lib.notifier(_(gd, 'Snapshot succeeded') + ' - ' + filename, 'long');\n })\n .catch(function() {\n Lib.notifier(_(gd, 'Sorry, there was a problem downloading your snapshot!'), 'long');\n });\n }\n};\n\nmodeBarButtons.sendDataToCloud = {\n name: 'sendDataToCloud',\n title: function(gd) { return _(gd, 'Edit in Chart Studio'); },\n icon: Icons.disk,\n click: function(gd) {\n Plots.sendDataToCloud(gd);\n }\n};\n\nmodeBarButtons.editInChartStudio = {\n name: 'editInChartStudio',\n title: function(gd) { return _(gd, 'Edit in Chart Studio'); },\n icon: Icons.pencil,\n click: function(gd) {\n Plots.sendDataToCloud(gd);\n }\n};\n\nmodeBarButtons.zoom2d = {\n name: 'zoom2d',\n title: function(gd) { return _(gd, 'Zoom'); },\n attr: 'dragmode',\n val: 'zoom',\n icon: Icons.zoombox,\n click: handleCartesian\n};\n\nmodeBarButtons.pan2d = {\n name: 'pan2d',\n title: function(gd) { return _(gd, 'Pan'); },\n attr: 'dragmode',\n val: 'pan',\n icon: Icons.pan,\n click: handleCartesian\n};\n\nmodeBarButtons.select2d = {\n name: 'select2d',\n title: function(gd) { return _(gd, 'Box Select'); },\n attr: 'dragmode',\n val: 'select',\n icon: Icons.selectbox,\n click: handleCartesian\n};\n\nmodeBarButtons.lasso2d = {\n name: 'lasso2d',\n title: function(gd) { return _(gd, 'Lasso Select'); },\n attr: 'dragmode',\n val: 'lasso',\n icon: Icons.lasso,\n click: handleCartesian\n};\n\nmodeBarButtons.zoomIn2d = {\n name: 'zoomIn2d',\n title: function(gd) { return _(gd, 'Zoom in'); },\n attr: 'zoom',\n val: 'in',\n icon: Icons.zoom_plus,\n click: handleCartesian\n};\n\nmodeBarButtons.zoomOut2d = {\n name: 'zoomOut2d',\n title: function(gd) { return _(gd, 'Zoom out'); },\n attr: 'zoom',\n val: 'out',\n icon: Icons.zoom_minus,\n click: handleCartesian\n};\n\nmodeBarButtons.autoScale2d = {\n name: 'autoScale2d',\n title: function(gd) { return _(gd, 'Autoscale'); },\n attr: 'zoom',\n val: 'auto',\n icon: Icons.autoscale,\n click: handleCartesian\n};\n\nmodeBarButtons.resetScale2d = {\n name: 'resetScale2d',\n title: function(gd) { return _(gd, 'Reset axes'); },\n attr: 'zoom',\n val: 'reset',\n icon: Icons.home,\n click: handleCartesian\n};\n\nmodeBarButtons.hoverClosestCartesian = {\n name: 'hoverClosestCartesian',\n title: function(gd) { return _(gd, 'Show closest data on hover'); },\n attr: 'hovermode',\n val: 'closest',\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: handleCartesian\n};\n\nmodeBarButtons.hoverCompareCartesian = {\n name: 'hoverCompareCartesian',\n title: function(gd) { return _(gd, 'Compare data on hover'); },\n attr: 'hovermode',\n val: function(gd) {\n return gd._fullLayout._isHoriz ? 'y' : 'x';\n },\n icon: Icons.tooltip_compare,\n gravity: 'ne',\n click: handleCartesian\n};\n\nfunction handleCartesian(gd, ev) {\n var button = ev.currentTarget;\n var astr = button.getAttribute('data-attr');\n var val = button.getAttribute('data-val') || true;\n var fullLayout = gd._fullLayout;\n var aobj = {};\n var axList = axisIds.list(gd, null, true);\n var allSpikesEnabled = fullLayout._cartesianSpikesEnabled;\n\n var ax, i;\n\n if(astr === 'zoom') {\n var mag = (val === 'in') ? 0.5 : 2;\n var r0 = (1 + mag) / 2;\n var r1 = (1 - mag) / 2;\n var axName;\n\n for(i = 0; i < axList.length; i++) {\n ax = axList[i];\n\n if(!ax.fixedrange) {\n axName = ax._name;\n if(val === 'auto') {\n aobj[axName + '.autorange'] = true;\n } else if(val === 'reset') {\n if(ax._rangeInitial === undefined) {\n aobj[axName + '.autorange'] = true;\n } else {\n var rangeInitial = ax._rangeInitial.slice();\n aobj[axName + '.range[0]'] = rangeInitial[0];\n aobj[axName + '.range[1]'] = rangeInitial[1];\n }\n\n // N.B. \"reset\" also resets showspikes\n if(ax._showSpikeInitial !== undefined) {\n aobj[axName + '.showspikes'] = ax._showSpikeInitial;\n if(allSpikesEnabled === 'on' && !ax._showSpikeInitial) {\n allSpikesEnabled = 'off';\n }\n }\n } else {\n var rangeNow = [\n ax.r2l(ax.range[0]),\n ax.r2l(ax.range[1]),\n ];\n\n var rangeNew = [\n r0 * rangeNow[0] + r1 * rangeNow[1],\n r0 * rangeNow[1] + r1 * rangeNow[0]\n ];\n\n aobj[axName + '.range[0]'] = ax.l2r(rangeNew[0]);\n aobj[axName + '.range[1]'] = ax.l2r(rangeNew[1]);\n }\n }\n }\n } else {\n // if ALL traces have orientation 'h', 'hovermode': 'x' otherwise: 'y'\n if(astr === 'hovermode' && (val === 'x' || val === 'y')) {\n val = fullLayout._isHoriz ? 'y' : 'x';\n button.setAttribute('data-val', val);\n }\n\n aobj[astr] = val;\n }\n\n fullLayout._cartesianSpikesEnabled = allSpikesEnabled;\n\n Registry.call('_guiRelayout', gd, aobj);\n}\n\nmodeBarButtons.zoom3d = {\n name: 'zoom3d',\n title: function(gd) { return _(gd, 'Zoom'); },\n attr: 'scene.dragmode',\n val: 'zoom',\n icon: Icons.zoombox,\n click: handleDrag3d\n};\n\nmodeBarButtons.pan3d = {\n name: 'pan3d',\n title: function(gd) { return _(gd, 'Pan'); },\n attr: 'scene.dragmode',\n val: 'pan',\n icon: Icons.pan,\n click: handleDrag3d\n};\n\nmodeBarButtons.orbitRotation = {\n name: 'orbitRotation',\n title: function(gd) { return _(gd, 'Orbital rotation'); },\n attr: 'scene.dragmode',\n val: 'orbit',\n icon: Icons['3d_rotate'],\n click: handleDrag3d\n};\n\nmodeBarButtons.tableRotation = {\n name: 'tableRotation',\n title: function(gd) { return _(gd, 'Turntable rotation'); },\n attr: 'scene.dragmode',\n val: 'turntable',\n icon: Icons['z-axis'],\n click: handleDrag3d\n};\n\nfunction handleDrag3d(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute('data-attr');\n var val = button.getAttribute('data-val') || true;\n var sceneIds = gd._fullLayout._subplots.gl3d || [];\n var layoutUpdate = {};\n\n var parts = attr.split('.');\n\n for(var i = 0; i < sceneIds.length; i++) {\n layoutUpdate[sceneIds[i] + '.' + parts[1]] = val;\n }\n\n // for multi-type subplots\n var val2d = (val === 'pan') ? val : 'zoom';\n layoutUpdate.dragmode = val2d;\n\n Registry.call('_guiRelayout', gd, layoutUpdate);\n}\n\nmodeBarButtons.resetCameraDefault3d = {\n name: 'resetCameraDefault3d',\n title: function(gd) { return _(gd, 'Reset camera to default'); },\n attr: 'resetDefault',\n icon: Icons.home,\n click: handleCamera3d\n};\n\nmodeBarButtons.resetCameraLastSave3d = {\n name: 'resetCameraLastSave3d',\n title: function(gd) { return _(gd, 'Reset camera to last save'); },\n attr: 'resetLastSave',\n icon: Icons.movie,\n click: handleCamera3d\n};\n\nfunction handleCamera3d(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute('data-attr');\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots.gl3d || [];\n var aobj = {};\n\n for(var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var camera = sceneId + '.camera';\n var aspectratio = sceneId + '.aspectratio';\n var scene = fullLayout[sceneId]._scene;\n var didUpdate;\n\n if(attr === 'resetLastSave') {\n aobj[camera + '.up'] = scene.viewInitial.up;\n aobj[camera + '.eye'] = scene.viewInitial.eye;\n aobj[camera + '.center'] = scene.viewInitial.center;\n didUpdate = true;\n } else if(attr === 'resetDefault') {\n aobj[camera + '.up'] = null;\n aobj[camera + '.eye'] = null;\n aobj[camera + '.center'] = null;\n didUpdate = true;\n }\n\n if(didUpdate) {\n aobj[aspectratio + '.x'] = scene.viewInitial.aspectratio.x;\n aobj[aspectratio + '.y'] = scene.viewInitial.aspectratio.y;\n aobj[aspectratio + '.z'] = scene.viewInitial.aspectratio.z;\n }\n }\n\n Registry.call('_guiRelayout', gd, aobj);\n}\n\nmodeBarButtons.hoverClosest3d = {\n name: 'hoverClosest3d',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: handleHover3d\n};\n\nfunction getNextHover3d(gd, ev) {\n var button = ev.currentTarget;\n var val = button._previousVal;\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots.gl3d || [];\n\n var axes = ['xaxis', 'yaxis', 'zaxis'];\n\n // initialize 'current spike' object to be stored in the DOM\n var currentSpikes = {};\n var layoutUpdate = {};\n\n if(val) {\n layoutUpdate = val;\n button._previousVal = null;\n } else {\n for(var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var sceneLayout = fullLayout[sceneId];\n\n var hovermodeAStr = sceneId + '.hovermode';\n currentSpikes[hovermodeAStr] = sceneLayout.hovermode;\n layoutUpdate[hovermodeAStr] = false;\n\n // copy all the current spike attrs\n for(var j = 0; j < 3; j++) {\n var axis = axes[j];\n var spikeAStr = sceneId + '.' + axis + '.showspikes';\n layoutUpdate[spikeAStr] = false;\n currentSpikes[spikeAStr] = sceneLayout[axis].showspikes;\n }\n }\n\n button._previousVal = currentSpikes;\n }\n return layoutUpdate;\n}\n\nfunction handleHover3d(gd, ev) {\n var layoutUpdate = getNextHover3d(gd, ev);\n Registry.call('_guiRelayout', gd, layoutUpdate);\n}\n\nmodeBarButtons.zoomInGeo = {\n name: 'zoomInGeo',\n title: function(gd) { return _(gd, 'Zoom in'); },\n attr: 'zoom',\n val: 'in',\n icon: Icons.zoom_plus,\n click: handleGeo\n};\n\nmodeBarButtons.zoomOutGeo = {\n name: 'zoomOutGeo',\n title: function(gd) { return _(gd, 'Zoom out'); },\n attr: 'zoom',\n val: 'out',\n icon: Icons.zoom_minus,\n click: handleGeo\n};\n\nmodeBarButtons.resetGeo = {\n name: 'resetGeo',\n title: function(gd) { return _(gd, 'Reset'); },\n attr: 'reset',\n val: null,\n icon: Icons.autoscale,\n click: handleGeo\n};\n\nmodeBarButtons.hoverClosestGeo = {\n name: 'hoverClosestGeo',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: toggleHover\n};\n\nfunction handleGeo(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute('data-attr');\n var val = button.getAttribute('data-val') || true;\n var fullLayout = gd._fullLayout;\n var geoIds = fullLayout._subplots.geo || [];\n\n for(var i = 0; i < geoIds.length; i++) {\n var id = geoIds[i];\n var geoLayout = fullLayout[id];\n\n if(attr === 'zoom') {\n var scale = geoLayout.projection.scale;\n var newScale = (val === 'in') ? 2 * scale : 0.5 * scale;\n\n Registry.call('_guiRelayout', gd, id + '.projection.scale', newScale);\n }\n }\n\n if(attr === 'reset') {\n resetView(gd, 'geo');\n }\n}\n\nmodeBarButtons.hoverClosestGl2d = {\n name: 'hoverClosestGl2d',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: toggleHover\n};\n\nmodeBarButtons.hoverClosestPie = {\n name: 'hoverClosestPie',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: 'closest',\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: toggleHover\n};\n\nfunction getNextHover(gd) {\n var fullLayout = gd._fullLayout;\n\n if(fullLayout.hovermode) return false;\n\n if(fullLayout._has('cartesian')) {\n return fullLayout._isHoriz ? 'y' : 'x';\n }\n return 'closest';\n}\n\nfunction toggleHover(gd) {\n var newHover = getNextHover(gd);\n Registry.call('_guiRelayout', gd, 'hovermode', newHover);\n}\n\nmodeBarButtons.resetViewSankey = {\n name: 'resetSankeyGroup',\n title: function(gd) { return _(gd, 'Reset view'); },\n icon: Icons.home,\n click: function(gd) {\n var aObj = {\n 'node.groups': [],\n 'node.x': [],\n 'node.y': []\n };\n for(var i = 0; i < gd._fullData.length; i++) {\n var viewInitial = gd._fullData[i]._viewInitial;\n aObj['node.groups'].push(viewInitial.node.groups.slice());\n aObj['node.x'].push(viewInitial.node.x.slice());\n aObj['node.y'].push(viewInitial.node.y.slice());\n }\n Registry.call('restyle', gd, aObj);\n }\n};\n\n// buttons when more then one plot types are present\n\nmodeBarButtons.toggleHover = {\n name: 'toggleHover',\n title: function(gd) { return _(gd, 'Toggle show closest data on hover'); },\n attr: 'hovermode',\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: 'ne',\n click: function(gd, ev) {\n var layoutUpdate = getNextHover3d(gd, ev);\n layoutUpdate.hovermode = getNextHover(gd);\n\n Registry.call('_guiRelayout', gd, layoutUpdate);\n }\n};\n\nmodeBarButtons.resetViews = {\n name: 'resetViews',\n title: function(gd) { return _(gd, 'Reset views'); },\n icon: Icons.home,\n click: function(gd, ev) {\n var button = ev.currentTarget;\n\n button.setAttribute('data-attr', 'zoom');\n button.setAttribute('data-val', 'reset');\n handleCartesian(gd, ev);\n\n button.setAttribute('data-attr', 'resetLastSave');\n handleCamera3d(gd, ev);\n\n resetView(gd, 'geo');\n resetView(gd, 'mapbox');\n }\n};\n\nmodeBarButtons.toggleSpikelines = {\n name: 'toggleSpikelines',\n title: function(gd) { return _(gd, 'Toggle Spike Lines'); },\n icon: Icons.spikeline,\n attr: '_cartesianSpikesEnabled',\n val: 'on',\n click: function(gd) {\n var fullLayout = gd._fullLayout;\n var allSpikesEnabled = fullLayout._cartesianSpikesEnabled;\n\n fullLayout._cartesianSpikesEnabled = allSpikesEnabled === 'on' ? 'off' : 'on';\n Registry.call('_guiRelayout', gd, setSpikelineVisibility(gd));\n }\n};\n\nfunction setSpikelineVisibility(gd) {\n var fullLayout = gd._fullLayout;\n var areSpikesOn = fullLayout._cartesianSpikesEnabled === 'on';\n var axList = axisIds.list(gd, null, true);\n var aobj = {};\n\n for(var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n aobj[ax._name + '.showspikes'] = areSpikesOn ? true : ax._showSpikeInitial;\n }\n\n return aobj;\n}\n\nmodeBarButtons.resetViewMapbox = {\n name: 'resetViewMapbox',\n title: function(gd) { return _(gd, 'Reset view'); },\n attr: 'reset',\n icon: Icons.home,\n click: function(gd) {\n resetView(gd, 'mapbox');\n }\n};\n\nmodeBarButtons.zoomInMapbox = {\n name: 'zoomInMapbox',\n title: function(gd) { return _(gd, 'Zoom in'); },\n attr: 'zoom',\n val: 'in',\n icon: Icons.zoom_plus,\n click: handleMapboxZoom\n};\n\nmodeBarButtons.zoomOutMapbox = {\n name: 'zoomOutMapbox',\n title: function(gd) { return _(gd, 'Zoom out'); },\n attr: 'zoom',\n val: 'out',\n icon: Icons.zoom_minus,\n click: handleMapboxZoom\n};\n\nfunction handleMapboxZoom(gd, ev) {\n var button = ev.currentTarget;\n var val = button.getAttribute('data-val');\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots.mapbox || [];\n var scalar = 1.05;\n var aObj = {};\n\n for(var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var current = fullLayout[id].zoom;\n var next = (val === 'in') ? scalar * current : current / scalar;\n aObj[id + '.zoom'] = next;\n }\n\n Registry.call('_guiRelayout', gd, aObj);\n}\n\nfunction resetView(gd, subplotType) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[subplotType] || [];\n var aObj = {};\n\n for(var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var subplotObj = fullLayout[id]._subplot;\n var viewInitial = subplotObj.viewInitial;\n var viewKeys = Object.keys(viewInitial);\n\n for(var j = 0; j < viewKeys.length; j++) {\n var key = viewKeys[j];\n aObj[id + '.' + key] = viewInitial[key];\n }\n }\n\n Registry.call('_guiRelayout', gd, aObj);\n}\n\n\n/***/ }),\n\n/***/ \"13d5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $reduce = __webpack_require__(\"d58f\").left;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"1417\":\n/***/ (function(module, exports) {\n\nmodule.exports = multiply;\n\n/**\n * Multiplies two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the first operand\n * @param {mat4} b the second operand\n * @returns {mat4} out\n */\nfunction multiply(out, a, b) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3],\n a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7],\n a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11],\n a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n\n // Cache only the current line of the second matrix\n var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3]; \n out[0] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\n out[1] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\n out[2] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\n out[3] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\n\n b0 = b[4]; b1 = b[5]; b2 = b[6]; b3 = b[7];\n out[4] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\n out[5] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\n out[6] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\n out[7] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\n\n b0 = b[8]; b1 = b[9]; b2 = b[10]; b3 = b[11];\n out[8] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\n out[9] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\n out[10] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\n out[11] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\n\n b0 = b[12]; b1 = b[13]; b2 = b[14]; b3 = b[15];\n out[12] = b0*a00 + b1*a10 + b2*a20 + b3*a30;\n out[13] = b0*a01 + b1*a11 + b2*a21 + b3*a31;\n out[14] = b0*a02 + b1*a12 + b2*a22 + b3*a32;\n out[15] = b0*a03 + b1*a13 + b2*a23 + b3*a33;\n return out;\n};\n\n/***/ }),\n\n/***/ \"145a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar getModuleCalcData = __webpack_require__(\"ad62\").getModuleCalcData;\nvar parcatsPlot = __webpack_require__(\"3e11\");\n\nvar PARCATS = 'parcats';\nexports.name = PARCATS;\n\nexports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n var cdModuleAndOthers = getModuleCalcData(gd.calcdata, PARCATS);\n\n if(cdModuleAndOthers.length) {\n var calcData = cdModuleAndOthers[0];\n parcatsPlot(gd, calcData, transitionOpts, makeOnCompleteCallback);\n }\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadTable = (oldFullLayout._has && oldFullLayout._has('parcats'));\n var hasTable = (newFullLayout._has && newFullLayout._has('parcats'));\n\n if(hadTable && !hasTable) {\n oldFullLayout._paperdiv.selectAll('.parcats').remove();\n }\n};\n\n\n/***/ }),\n\n/***/ \"1477\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nvar isBrowser = __webpack_require__(\"dcf3\")\r\n\r\nfunction detect() {\r\n\tvar supported = false\r\n\r\n\ttry {\r\n\t\tvar opts = Object.defineProperty({}, 'passive', {\r\n\t\t\tget: function() {\r\n\t\t\t\tsupported = true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\twindow.addEventListener('test', null, opts)\r\n\t\twindow.removeEventListener('test', null, opts)\r\n\t} catch(e) {\r\n\t\tsupported = false\r\n\t}\r\n\r\n\treturn supported\r\n}\r\n\r\nmodule.exports = isBrowser && detect()\r\n\n\n/***/ }),\n\n/***/ \"14ab\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function () {\n\tvar assign = Object.assign, obj;\n\tif (typeof assign !== \"function\") return false;\n\tobj = { foo: \"raz\" };\n\tassign(obj, { bar: \"dwa\" }, { trzy: \"trzy\" });\n\treturn obj.foo + obj.bar + obj.trzy === \"razdwatrzy\";\n};\n\n\n/***/ }),\n\n/***/ \"14b6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar annAttrs = __webpack_require__(\"bb4a\");\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\nvar templatedArray = __webpack_require__(\"a651\").templatedArray;\n\nmodule.exports = overrideAll(templatedArray('annotation', {\n visible: annAttrs.visible,\n x: {\n valType: 'any',\n \n \n },\n y: {\n valType: 'any',\n \n \n },\n z: {\n valType: 'any',\n \n \n },\n ax: {\n valType: 'number',\n \n \n },\n ay: {\n valType: 'number',\n \n \n },\n\n xanchor: annAttrs.xanchor,\n xshift: annAttrs.xshift,\n yanchor: annAttrs.yanchor,\n yshift: annAttrs.yshift,\n\n text: annAttrs.text,\n textangle: annAttrs.textangle,\n font: annAttrs.font,\n width: annAttrs.width,\n height: annAttrs.height,\n opacity: annAttrs.opacity,\n align: annAttrs.align,\n valign: annAttrs.valign,\n bgcolor: annAttrs.bgcolor,\n bordercolor: annAttrs.bordercolor,\n borderpad: annAttrs.borderpad,\n borderwidth: annAttrs.borderwidth,\n showarrow: annAttrs.showarrow,\n arrowcolor: annAttrs.arrowcolor,\n arrowhead: annAttrs.arrowhead,\n startarrowhead: annAttrs.startarrowhead,\n arrowside: annAttrs.arrowside,\n arrowsize: annAttrs.arrowsize,\n startarrowsize: annAttrs.startarrowsize,\n arrowwidth: annAttrs.arrowwidth,\n standoff: annAttrs.standoff,\n startstandoff: annAttrs.startstandoff,\n hovertext: annAttrs.hovertext,\n hoverlabel: annAttrs.hoverlabel,\n captureevents: annAttrs.captureevents,\n\n // maybes later?\n // clicktoshow: annAttrs.clicktoshow,\n // xclick: annAttrs.xclick,\n // yclick: annAttrs.yclick,\n\n // not needed!\n // axref: 'pixel'\n // ayref: 'pixel'\n // xref: 'x'\n // yref: 'y\n // zref: 'z'\n}), 'calc', 'from-root');\n\n\n/***/ }),\n\n/***/ \"14c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(\"c6b6\");\nvar regexpExec = __webpack_require__(\"9263\");\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n\n\n/***/ }),\n\n/***/ \"14cf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function () {\n\tvar from = Array.from, arr, result;\n\tif (typeof from !== \"function\") return false;\n\tarr = [\"raz\", \"dwa\"];\n\tresult = from(arr);\n\treturn Boolean(result && result !== arr && result[1] === \"dwa\");\n};\n\n\n/***/ }),\n\n/***/ \"158b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = findMedian\n\nvar genPartition = __webpack_require__(\"8e58\")\n\nvar partitionStartLessThan = genPartition('lostart && boxes[ptr+axis] > x; \n --j, ptr-=elemSize) {\n //Swap\n var aPtr = ptr\n var bPtr = ptr+elemSize\n for(var k=0; k>> 1)\n var elemSize = 2*d\n var pivot = mid\n var value = boxes[elemSize*mid+axis]\n \n while(lo < hi) {\n if(hi - lo < PARTITION_THRESHOLD) {\n insertionSort(d, axis, lo, hi, boxes, ids)\n value = boxes[elemSize*mid+axis]\n break\n }\n \n //Select pivot using median-of-3\n var count = hi - lo\n var pivot0 = (Math.random()*count+lo)|0\n var value0 = boxes[elemSize*pivot0 + axis]\n var pivot1 = (Math.random()*count+lo)|0\n var value1 = boxes[elemSize*pivot1 + axis]\n var pivot2 = (Math.random()*count+lo)|0\n var value2 = boxes[elemSize*pivot2 + axis]\n if(value0 <= value1) {\n if(value2 >= value1) {\n pivot = pivot1\n value = value1\n } else if(value0 >= value2) {\n pivot = pivot0\n value = value0\n } else {\n pivot = pivot2\n value = value2\n }\n } else {\n if(value1 >= value2) {\n pivot = pivot1\n value = value1\n } else if(value2 >= value0) {\n pivot = pivot0\n value = value0\n } else {\n pivot = pivot2\n value = value2\n }\n }\n\n //Swap pivot to end of array\n var aPtr = elemSize * (hi-1)\n var bPtr = elemSize * pivot\n for(var i=0; i 0) {\n\t\t\tfor (var a = 0; a < facets; a++) {\n\t\t\t\tvar a1 = (a+1) % facets;\n\t\t\t\tverts.push(\n\t\t\t\t\tpreviousVerts[a],\n\t\t\t\t\tcurrentVerts[a],\n\t\t\t\t\tcurrentVerts[a1],\n\n\t\t\t\t\tcurrentVerts[a1],\n\t\t\t\t\tpreviousVerts[a1],\n\t\t\t\t\tpreviousVerts[a]\n\t\t\t\t);\n\t\t\t\tvectors.push(\n\t\t\t\t\tpreviousVector,\n\t\t\t\t\tcurrentVector,\n\t\t\t\t\tcurrentVector,\n\n\t\t\t\t\tcurrentVector,\n\t\t\t\t\tpreviousVector,\n\t\t\t\t\tpreviousVector\n\t\t\t\t);\n\t\t\t\tintensities.push(\n\t\t\t\t\tpreviousIntensity,\n\t\t\t\t\tcurrentIntensity,\n\t\t\t\t\tcurrentIntensity,\n\n\t\t\t\t\tcurrentIntensity,\n\t\t\t\t\tpreviousIntensity,\n\t\t\t\t\tpreviousIntensity\n\t\t\t\t);\n\n\t\t\t\tvar len = verts.length;\n\t\t\t\tfaces.push(\n\t\t\t\t\t[len-6, len-5, len-4],\n\t\t\t\t\t[len-3, len-2, len-1]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tvar tmp1 = previousVerts;\n\t\tpreviousVerts = currentVerts;\n\t\tcurrentVerts = tmp1;\n\n\t\tvar tmp2 = previousVector;\n\t\tpreviousVector = currentVector;\n\t\tcurrentVector = tmp2;\n\n\t\tvar tmp3 = previousIntensity;\n\t\tpreviousIntensity = currentIntensity;\n\t\tcurrentIntensity = tmp3;\n\t}\n\treturn {\n\t\tpositions: verts,\n\t\tcells: faces,\n\t\tvectors: vectors,\n\t\tvertexIntensity: intensities\n\t};\n};\n\nvar createTubes = function(streams, colormap, maxDivergence, minDistance) {\n\n\tvar maxNorm = 0;\n\tfor (var i=0; i v) return i-1;\n }\n return i;\n};\n\nvar clamp = function(v, min, max) {\n\treturn v < min ? min : (v > max ? max : v);\n};\n\nvar sampleMeshgrid = function(point, vectorField, gridInfo) {\n\tvar vectors = vectorField.vectors;\n\tvar meshgrid = vectorField.meshgrid;\n\n\tvar x = point[0];\n\tvar y = point[1];\n\tvar z = point[2];\n\n\tvar w = meshgrid[0].length;\n\tvar h = meshgrid[1].length;\n\tvar d = meshgrid[2].length;\n\n\t// Find the index of the nearest smaller value in the meshgrid for each coordinate of (x,y,z).\n\t// The nearest smaller value index for x is the index x0 such that\n\t// meshgrid[0][x0] < x and for all x1 > x0, meshgrid[0][x1] >= x.\n\tvar x0 = findLastSmallerIndex(meshgrid[0], x);\n\tvar y0 = findLastSmallerIndex(meshgrid[1], y);\n\tvar z0 = findLastSmallerIndex(meshgrid[2], z);\n\n\t// Get the nearest larger meshgrid value indices.\n\t// From the above \"nearest smaller value\", we know that\n\t// meshgrid[0][x0] < x\n\t// meshgrid[0][x0+1] >= x\n\tvar x1 = x0 + 1;\n\tvar y1 = y0 + 1;\n\tvar z1 = z0 + 1;\n\n\tx0 = clamp(x0, 0, w-1);\n\tx1 = clamp(x1, 0, w-1);\n\ty0 = clamp(y0, 0, h-1);\n\ty1 = clamp(y1, 0, h-1);\n\tz0 = clamp(z0, 0, d-1);\n\tz1 = clamp(z1, 0, d-1);\n\n\t// Reject points outside the meshgrid, return a zero vector.\n\tif (x0 < 0 || y0 < 0 || z0 < 0 || x1 > w-1 || y1 > h-1 || z1 > d-1) {\n\t\treturn vec3.create();\n\t}\n\n\t// Normalize point coordinates to 0..1 scaling factor between x0 and x1.\n\tvar mX0 = meshgrid[0][x0];\n\tvar mX1 = meshgrid[0][x1];\n\tvar mY0 = meshgrid[1][y0];\n\tvar mY1 = meshgrid[1][y1];\n\tvar mZ0 = meshgrid[2][z0];\n\tvar mZ1 = meshgrid[2][z1];\n\tvar xf = (x - mX0) / (mX1 - mX0);\n\tvar yf = (y - mY0) / (mY1 - mY0);\n\tvar zf = (z - mZ0) / (mZ1 - mZ0);\n\n\tif (!isFinite(xf)) xf = 0.5;\n\tif (!isFinite(yf)) yf = 0.5;\n\tif (!isFinite(zf)) zf = 0.5;\n\n\tvar x0off;\n\tvar x1off;\n\tvar y0off;\n\tvar y1off;\n\tvar z0off;\n\tvar z1off;\n\n\tif(gridInfo.reversedX) {\n\t\tx0 = w - 1 - x0;\n\t\tx1 = w - 1 - x1;\n\t}\n\n\tif(gridInfo.reversedY) {\n\t\ty0 = h - 1 - y0;\n\t\ty1 = h - 1 - y1;\n\t}\n\n\tif(gridInfo.reversedZ) {\n\t\tz0 = d - 1 - z0;\n\t\tz1 = d - 1 - z1;\n\t}\n\n\tswitch(gridInfo.filled) {\n\t\tcase 5: // 'zyx'\n\t\t\tz0off = z0;\n\t\t\tz1off = z1;\n\t\t\ty0off = y0*d;\n\t\t\ty1off = y1*d;\n\t\t\tx0off = x0*d*h;\n\t\t\tx1off = x1*d*h;\n\t\t\tbreak;\n\n\t\tcase 4: // 'zxy'\n\t\t\tz0off = z0;\n\t\t\tz1off = z1;\n\t\t\tx0off = x0*d;\n\t\t\tx1off = x1*d;\n\t\t\ty0off = y0*d*w;\n\t\t\ty1off = y1*d*w;\n\t\t\tbreak;\n\n\t\tcase 3: // 'yzx'\n\t\t\ty0off = y0;\n\t\t\ty1off = y1;\n\t\t\tz0off = z0*h;\n\t\t\tz1off = z1*h;\n\t\t\tx0off = x0*h*d;\n\t\t\tx1off = x1*h*d;\n\t\t\tbreak;\n\n\t\tcase 2: // 'yxz'\n\t\t\ty0off = y0;\n\t\t\ty1off = y1;\n\t\t\tx0off = x0*h;\n\t\t\tx1off = x1*h;\n\t\t\tz0off = z0*h*w;\n\t\t\tz1off = z1*h*w;\n\t\t\tbreak;\n\n\t\tcase 1: // 'xzy'\n\t\t\tx0off = x0;\n\t\t\tx1off = x1;\n\t\t\tz0off = z0*w;\n\t\t\tz1off = z1*w;\n\t\t\ty0off = y0*w*d;\n\t\t\ty1off = y1*w*d;\n\t\t\tbreak;\n\n\t\tdefault: // case 0: // 'xyz'\n\t\t\tx0off = x0;\n\t\t\tx1off = x1;\n\t\t\ty0off = y0*w;\n\t\t\ty1off = y1*w;\n\t\t\tz0off = z0*w*h;\n\t\t\tz1off = z1*w*h;\n\t\t\tbreak;\n\t}\n\n\t// Sample data vectors around the (x,y,z) point.\n\tvar v000 = vectors[x0off + y0off + z0off];\n\tvar v001 = vectors[x0off + y0off + z1off];\n\tvar v010 = vectors[x0off + y1off + z0off];\n\tvar v011 = vectors[x0off + y1off + z1off];\n\tvar v100 = vectors[x1off + y0off + z0off];\n\tvar v101 = vectors[x1off + y0off + z1off];\n\tvar v110 = vectors[x1off + y1off + z0off];\n\tvar v111 = vectors[x1off + y1off + z1off];\n\n\tvar c00 = vec3.create();\n\tvar c01 = vec3.create();\n\tvar c10 = vec3.create();\n\tvar c11 = vec3.create();\n\n\tvec3.lerp(c00, v000, v100, xf);\n\tvec3.lerp(c01, v001, v101, xf);\n\tvec3.lerp(c10, v010, v110, xf);\n\tvec3.lerp(c11, v011, v111, xf);\n\n\tvar c0 = vec3.create();\n\tvar c1 = vec3.create();\n\n\tvec3.lerp(c0, c00, c10, yf);\n\tvec3.lerp(c1, c01, c11, yf);\n\n\tvar c = vec3.create();\n\n\tvec3.lerp(c, c0, c1, zf);\n\n\treturn c;\n};\n\n\nvar vabs = function(dst, v) {\n\tvar x = v[0];\n\tvar y = v[1];\n\tvar z = v[2];\n\tdst[0] = x < 0 ? -x : x;\n\tdst[1] = y < 0 ? -y : y;\n\tdst[2] = z < 0 ? -z : z;\n\treturn dst;\n};\n\nvar findMinSeparation = function(xs) {\n\tvar minSeparation = Infinity;\n\txs.sort(function(a, b) { return a - b; });\n\tvar len = xs.length;\n\tfor (var i=1; i maxX ||\n\t\t\ty < minY || y > maxY ||\n\t\t\tz < minZ || z > maxZ\n\t\t);\n\t};\n\n\tvar boundsSize = vec3.distance(bounds[0], bounds[1]);\n\tvar maxStepSize = 10 * boundsSize / maxLength;\n\tvar maxStepSizeSq = maxStepSize * maxStepSize;\n\n\tvar minDistance = 1;\n\tvar maxDivergence = 0; // For component-wise divergence vec3.create();\n\n\t// In case we need to do component-wise divergence visualization\n\t// var tmp = vec3.create();\n\n\tvar len = positions.length;\n\tif (len > 1) {\n\t\tminDistance = calculateMinPositionDistance(positions);\n\t}\n\n\tfor (var i = 0; i < len; i++) {\n\t\tvar p = vec3.create();\n\t\tvec3.copy(p, positions[i]);\n\n\t\tvar stream = [p];\n\t\tvar velocities = [];\n\t\tvar v = getVelocity(p);\n\t\tvar op = p;\n\t\tvelocities.push(v);\n\n\t\tvar divergences = [];\n\n\t\tvar dv = getDivergence(p, v);\n\t\tvar dvLength = vec3.length(dv);\n\t\tif (isFinite(dvLength) && dvLength > maxDivergence) {\n\t\t\tmaxDivergence = dvLength;\n\t\t}\n\t\t// In case we need to do component-wise divergence visualization\n\t\t// vec3.max(maxDivergence, maxDivergence, vabs(tmp, dv));\n\t\tdivergences.push(dvLength);\n\n\t\tstreams.push({points: stream, velocities: velocities, divergences: divergences});\n\n\t\tvar j = 0;\n\n\t\twhile (j < maxLength * 100 && stream.length < maxLength && inBounds(p)) {\n\t\t\tj++;\n\t\t\tvar np = vec3.clone(v);\n\t\t\tvar sqLen = vec3.squaredLength(np);\n\t\t\tif (sqLen === 0) {\n\t\t\t\tbreak;\n\t\t\t} else if (sqLen > maxStepSizeSq) {\n\t\t\t\tvec3.scale(np, np, maxStepSize / Math.sqrt(sqLen));\n\t\t\t}\n\t\t\tvec3.add(np, np, p);\n\n\t\t\tv = getVelocity(np);\n\n\t\t\tif (vec3.squaredDistance(op, np) - maxStepSizeSq > -0.0001 * maxStepSizeSq) {\n\t\t\t\tstream.push(np);\n\t\t\t\top = np;\n\t\t\t\tvelocities.push(v);\n\t\t\t\tvar dv = getDivergence(np, v);\n\t\t\t\tvar dvLength = vec3.length(dv);\n\t\t\t\tif (isFinite(dvLength) && dvLength > maxDivergence) {\n\t\t\t\t\tmaxDivergence = dvLength;\n\t\t\t\t}\n\t\t\t\t// In case we need to do component-wise divergence visualization\n\t\t\t\t//vec3.max(maxDivergence, maxDivergence, vabs(tmp, dv));\n\t\t\t\tdivergences.push(dvLength);\n\t\t\t}\n\n\t\t\tp = np;\n\t\t}\n\t}\n\n\tvar tubes = createTubes(streams, vectorField.colormap, maxDivergence, minDistance);\n\n\tif (absoluteTubeSize) {\n\t\ttubes.tubeScale = absoluteTubeSize;\n\t} else {\n\t\t// Avoid division by zero.\n\t\tif (maxDivergence === 0) {\n\t\t\tmaxDivergence = 1;\n\t\t}\n\t\ttubes.tubeScale = tubeSize * 0.5 * minDistance / maxDivergence;\n\t}\n\n\treturn tubes;\n};\n\nvar shaders = __webpack_require__(\"aee4\");\nvar createMesh = __webpack_require__(\"2969\").createMesh;\nmodule.exports.createTubeMesh = function(gl, params) {\n\treturn createMesh(gl, params, {\n\t\tshaders: shaders,\n\t\ttraceType: 'streamtube'\n\t});\n}\n\n\n/***/ }),\n\n/***/ \"16ef\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n attributes: __webpack_require__(\"7c39\"),\n layoutAttributes: __webpack_require__(\"36fc\"),\n supplyDefaults: __webpack_require__(\"49d8\"),\n crossTraceDefaults: __webpack_require__(\"abc9\").crossTraceDefaults,\n supplyLayoutDefaults: __webpack_require__(\"870c\"),\n calc: __webpack_require__(\"b8c0\"),\n crossTraceCalc: __webpack_require__(\"e9d4\"),\n plot: __webpack_require__(\"8298\"),\n style: __webpack_require__(\"c451\"),\n styleOnSelect: __webpack_require__(\"52e8\").styleOnSelect,\n hoverPoints: __webpack_require__(\"ca92\"),\n selectPoints: __webpack_require__(\"71b1\"),\n\n moduleType: 'trace',\n name: 'violin',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['cartesian', 'svg', 'symbols', 'oriented', 'box-violin', 'showLegend', 'violinLayout', 'zoomScale'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"1729\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\n\n// defaults common to 'annotations' and 'annotations3d'\nmodule.exports = function handleAnnotationCommonDefaults(annIn, annOut, fullLayout, coerce) {\n coerce('opacity');\n var bgColor = coerce('bgcolor');\n\n var borderColor = coerce('bordercolor');\n var borderOpacity = Color.opacity(borderColor);\n\n coerce('borderpad');\n\n var borderWidth = coerce('borderwidth');\n var showArrow = coerce('showarrow');\n\n coerce('text', showArrow ? ' ' : fullLayout._dfltTitle.annotation);\n coerce('textangle');\n Lib.coerceFont(coerce, 'font', fullLayout.font);\n\n coerce('width');\n coerce('align');\n\n var h = coerce('height');\n if(h) coerce('valign');\n\n if(showArrow) {\n var arrowside = coerce('arrowside');\n var arrowhead;\n var arrowsize;\n\n if(arrowside.indexOf('end') !== -1) {\n arrowhead = coerce('arrowhead');\n arrowsize = coerce('arrowsize');\n }\n\n if(arrowside.indexOf('start') !== -1) {\n coerce('startarrowhead', arrowhead);\n coerce('startarrowsize', arrowsize);\n }\n coerce('arrowcolor', borderOpacity ? annOut.bordercolor : Color.defaultLine);\n coerce('arrowwidth', ((borderOpacity && borderWidth) || 1) * 2);\n coerce('standoff');\n coerce('startstandoff');\n }\n\n var hoverText = coerce('hovertext');\n var globalHoverLabel = fullLayout.hoverlabel || {};\n\n if(hoverText) {\n var hoverBG = coerce('hoverlabel.bgcolor', globalHoverLabel.bgcolor ||\n (Color.opacity(bgColor) ? Color.rgb(bgColor) : Color.defaultLine)\n );\n\n var hoverBorder = coerce('hoverlabel.bordercolor', globalHoverLabel.bordercolor ||\n Color.contrast(hoverBG)\n );\n\n Lib.coerceFont(coerce, 'hoverlabel.font', {\n family: globalHoverLabel.font.family,\n size: globalHoverLabel.font.size,\n color: globalHoverLabel.font.color || hoverBorder\n });\n }\n\n coerce('captureevents', !!hoverText);\n};\n\n\n/***/ }),\n\n/***/ \"1735\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n attributes: __webpack_require__(\"02ea\"),\n supplyDefaults: __webpack_require__(\"2ff0\"),\n colorbar: {\n min: 'cmin',\n max: 'cmax'\n },\n calc: __webpack_require__(\"0054\"),\n plot: __webpack_require__(\"baab\"),\n\n moduleType: 'trace',\n name: 'surface',\n basePlotModule: __webpack_require__(\"134c\"),\n categories: ['gl3d', '2dMap', 'showLegend'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"175e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction unique_pred(list, compare) {\n var ptr = 1\n , len = list.length\n , a=list[0], b=list[0]\n for(var i=1; i 1.0) {\n t = 1.0\n }\n var ti = 1.0 - t\n var n = a.length\n var r = new Array(n)\n for(var i=0; i 0) || (a > 0 && b < 0)) {\n var p = lerpW(s, b, t, a)\n pos.push(p)\n neg.push(p.slice())\n }\n if(b < 0) {\n neg.push(t.slice())\n } else if(b > 0) {\n pos.push(t.slice())\n } else {\n pos.push(t.slice())\n neg.push(t.slice())\n }\n a = b\n }\n return { positive: pos, negative: neg }\n}\n\nfunction positive(points, plane) {\n var pos = []\n var a = planeT(points[points.length-1], plane)\n for(var s=points[points.length-1], t=points[0], i=0; i 0) || (a > 0 && b < 0)) {\n pos.push(lerpW(s, b, t, a))\n }\n if(b >= 0) {\n pos.push(t.slice())\n }\n a = b\n }\n return pos\n}\n\nfunction negative(points, plane) {\n var neg = []\n var a = planeT(points[points.length-1], plane)\n for(var s=points[points.length-1], t=points[0], i=0; i 0) || (a > 0 && b < 0)) {\n neg.push(lerpW(s, b, t, a))\n }\n if(b <= 0) {\n neg.push(t.slice())\n }\n a = b\n }\n return neg\n}\n\n/***/ }),\n\n/***/ \"1793\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isFunction = __webpack_require__(\"6321\");\n\nvar classRe = /^\\s*class[\\s{/}]/, functionToString = Function.prototype.toString;\n\nmodule.exports = function (value) {\n\tif (!isFunction(value)) return false;\n\tif (classRe.test(functionToString.call(value))) return false;\n\treturn true;\n};\n\n\n/***/ }),\n\n/***/ \"17c2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $forEach = __webpack_require__(\"b727\").forEach;\nvar arrayMethodIsStrict = __webpack_require__(\"a640\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n\n\n/***/ }),\n\n/***/ \"182a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar getModuleCalcData = __webpack_require__(\"ad62\").getModuleCalcData;\nvar tablePlot = __webpack_require__(\"26dd\");\n\nvar TABLE = 'table';\n\nexports.name = TABLE;\n\nexports.plot = function(gd) {\n var calcData = getModuleCalcData(gd.calcdata, TABLE)[0];\n if(calcData.length) tablePlot(gd, calcData);\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadTable = (oldFullLayout._has && oldFullLayout._has(TABLE));\n var hasTable = (newFullLayout._has && newFullLayout._has(TABLE));\n\n if(hadTable && !hasTable) {\n oldFullLayout._paperdiv.selectAll('.table').remove();\n }\n};\n\n\n/***/ }),\n\n/***/ \"1876\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar polybool = __webpack_require__(\"2441\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Color = __webpack_require__(\"d115\");\nvar Fx = __webpack_require__(\"a5c4\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar polygon = __webpack_require__(\"b68b\");\nvar throttle = __webpack_require__(\"7df2\");\nvar makeEventData = __webpack_require__(\"c4c7\").makeEventData;\nvar getFromId = __webpack_require__(\"3c1c\").getFromId;\nvar clearGlCanvases = __webpack_require__(\"821b\");\n\nvar redrawReglTraces = __webpack_require__(\"a392\").redrawReglTraces;\n\nvar constants = __webpack_require__(\"d301\");\nvar MINSELECT = constants.MINSELECT;\n\nvar filteredPolygon = polygon.filter;\nvar polygonTester = polygon.tester;\n\nfunction getAxId(ax) { return ax._id; }\n\nfunction prepSelect(e, startX, startY, dragOptions, mode) {\n var gd = dragOptions.gd;\n var fullLayout = gd._fullLayout;\n var zoomLayer = fullLayout._zoomlayer;\n var dragBBox = dragOptions.element.getBoundingClientRect();\n var plotinfo = dragOptions.plotinfo;\n var xs = plotinfo.xaxis._offset;\n var ys = plotinfo.yaxis._offset;\n var x0 = startX - dragBBox.left;\n var y0 = startY - dragBBox.top;\n var x1 = x0;\n var y1 = y0;\n var path0 = 'M' + x0 + ',' + y0;\n var pw = dragOptions.xaxes[0]._length;\n var ph = dragOptions.yaxes[0]._length;\n var allAxes = dragOptions.xaxes.concat(dragOptions.yaxes);\n var subtract = e.altKey;\n\n var filterPoly, selectionTester, mergedPolygons, currentPolygon;\n var i, searchInfo, eventData;\n\n coerceSelectionsCache(e, gd, dragOptions);\n\n if(mode === 'lasso') {\n filterPoly = filteredPolygon([[x0, y0]], constants.BENDPX);\n }\n\n var outlines = zoomLayer.selectAll('path.select-outline-' + plotinfo.id).data([1, 2]);\n\n outlines.enter()\n .append('path')\n .attr('class', function(d) { return 'select-outline select-outline-' + d + ' select-outline-' + plotinfo.id; })\n .attr('transform', 'translate(' + xs + ', ' + ys + ')')\n .attr('d', path0 + 'Z');\n\n var corners = zoomLayer.append('path')\n .attr('class', 'zoombox-corners')\n .style({\n fill: Color.background,\n stroke: Color.defaultLine,\n 'stroke-width': 1\n })\n .attr('transform', 'translate(' + xs + ', ' + ys + ')')\n .attr('d', 'M0,0Z');\n\n\n var throttleID = fullLayout._uid + constants.SELECTID;\n var selection = [];\n\n // find the traces to search for selection points\n var searchTraces = determineSearchTraces(gd, dragOptions.xaxes,\n dragOptions.yaxes, dragOptions.subplot);\n\n // in v2 (once log ranges are fixed),\n // we'll be able to p2r here for all axis types\n function p2r(ax, v) {\n return ax.type === 'log' ? ax.p2d(v) : ax.p2r(v);\n }\n\n function axValue(ax) {\n var index = (ax._id.charAt(0) === 'y') ? 1 : 0;\n return function(v) { return p2r(ax, v[index]); };\n }\n\n function ascending(a, b) { return a - b; }\n\n // allow subplots to override fillRangeItems routine\n var fillRangeItems;\n\n if(plotinfo.fillRangeItems) {\n fillRangeItems = plotinfo.fillRangeItems;\n } else {\n if(mode === 'select') {\n fillRangeItems = function(eventData, poly) {\n var ranges = eventData.range = {};\n\n for(i = 0; i < allAxes.length; i++) {\n var ax = allAxes[i];\n var axLetter = ax._id.charAt(0);\n\n ranges[ax._id] = [\n p2r(ax, poly[axLetter + 'min']),\n p2r(ax, poly[axLetter + 'max'])\n ].sort(ascending);\n }\n };\n } else {\n fillRangeItems = function(eventData, poly, filterPoly) {\n var dataPts = eventData.lassoPoints = {};\n\n for(i = 0; i < allAxes.length; i++) {\n var ax = allAxes[i];\n dataPts[ax._id] = filterPoly.filtered.map(axValue(ax));\n }\n };\n }\n }\n\n dragOptions.moveFn = function(dx0, dy0) {\n x1 = Math.max(0, Math.min(pw, dx0 + x0));\n y1 = Math.max(0, Math.min(ph, dy0 + y0));\n\n var dx = Math.abs(x1 - x0);\n var dy = Math.abs(y1 - y0);\n\n if(mode === 'select') {\n var direction = fullLayout.selectdirection;\n\n if(fullLayout.selectdirection === 'any') {\n if(dy < Math.min(dx * 0.6, MINSELECT)) direction = 'h';\n else if(dx < Math.min(dy * 0.6, MINSELECT)) direction = 'v';\n else direction = 'd';\n } else {\n direction = fullLayout.selectdirection;\n }\n\n if(direction === 'h') {\n // horizontal motion: make a vertical box\n currentPolygon = [[x0, 0], [x0, ph], [x1, ph], [x1, 0]];\n currentPolygon.xmin = Math.min(x0, x1);\n currentPolygon.xmax = Math.max(x0, x1);\n currentPolygon.ymin = Math.min(0, ph);\n currentPolygon.ymax = Math.max(0, ph);\n // extras to guide users in keeping a straight selection\n corners.attr('d', 'M' + currentPolygon.xmin + ',' + (y0 - MINSELECT) +\n 'h-4v' + (2 * MINSELECT) + 'h4Z' +\n 'M' + (currentPolygon.xmax - 1) + ',' + (y0 - MINSELECT) +\n 'h4v' + (2 * MINSELECT) + 'h-4Z');\n } else if(direction === 'v') {\n // vertical motion: make a horizontal box\n currentPolygon = [[0, y0], [0, y1], [pw, y1], [pw, y0]];\n currentPolygon.xmin = Math.min(0, pw);\n currentPolygon.xmax = Math.max(0, pw);\n currentPolygon.ymin = Math.min(y0, y1);\n currentPolygon.ymax = Math.max(y0, y1);\n corners.attr('d', 'M' + (x0 - MINSELECT) + ',' + currentPolygon.ymin +\n 'v-4h' + (2 * MINSELECT) + 'v4Z' +\n 'M' + (x0 - MINSELECT) + ',' + (currentPolygon.ymax - 1) +\n 'v4h' + (2 * MINSELECT) + 'v-4Z');\n } else if(direction === 'd') {\n // diagonal motion\n currentPolygon = [[x0, y0], [x0, y1], [x1, y1], [x1, y0]];\n currentPolygon.xmin = Math.min(x0, x1);\n currentPolygon.xmax = Math.max(x0, x1);\n currentPolygon.ymin = Math.min(y0, y1);\n currentPolygon.ymax = Math.max(y0, y1);\n corners.attr('d', 'M0,0Z');\n }\n } else if(mode === 'lasso') {\n filterPoly.addPt([x1, y1]);\n currentPolygon = filterPoly.filtered;\n }\n\n // create outline & tester\n if(dragOptions.selectionDefs && dragOptions.selectionDefs.length) {\n mergedPolygons = mergePolygons(dragOptions.mergedPolygons, currentPolygon, subtract);\n currentPolygon.subtract = subtract;\n selectionTester = multiTester(dragOptions.selectionDefs.concat([currentPolygon]));\n } else {\n mergedPolygons = [currentPolygon];\n selectionTester = polygonTester(currentPolygon);\n }\n\n // draw selection\n drawSelection(mergedPolygons, outlines);\n\n\n throttle.throttle(\n throttleID,\n constants.SELECTDELAY,\n function() {\n selection = [];\n\n var thisSelection;\n var traceSelections = [];\n var traceSelection;\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n\n traceSelection = searchInfo._module.selectPoints(searchInfo, selectionTester);\n traceSelections.push(traceSelection);\n\n thisSelection = fillSelectionItem(traceSelection, searchInfo);\n\n if(selection.length) {\n for(var j = 0; j < thisSelection.length; j++) {\n selection.push(thisSelection[j]);\n }\n } else selection = thisSelection;\n }\n\n eventData = {points: selection};\n updateSelectedState(gd, searchTraces, eventData);\n fillRangeItems(eventData, currentPolygon, filterPoly);\n dragOptions.gd.emit('plotly_selecting', eventData);\n }\n );\n };\n\n dragOptions.clickFn = function(numClicks, evt) {\n var clickmode = fullLayout.clickmode;\n\n corners.remove();\n\n throttle.done(throttleID).then(function() {\n throttle.clear(throttleID);\n if(numClicks === 2) {\n // clear selection on doubleclick\n outlines.remove();\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n searchInfo._module.selectPoints(searchInfo, false);\n }\n\n updateSelectedState(gd, searchTraces);\n\n clearSelectionsCache(dragOptions);\n\n gd.emit('plotly_deselect', null);\n } else {\n if(clickmode.indexOf('select') > -1) {\n selectOnClick(evt, gd, dragOptions.xaxes, dragOptions.yaxes,\n dragOptions.subplot, dragOptions, outlines);\n }\n\n if(clickmode === 'event') {\n // TODO: remove in v2 - this was probably never intended to work as it does,\n // but in case anyone depends on it we don't want to break it now.\n // Note that click-to-select introduced pre v2 also emitts proper\n // event data when clickmode is having 'select' in its flag list.\n gd.emit('plotly_selected', undefined);\n }\n }\n\n Fx.click(gd, evt);\n }).catch(Lib.error);\n };\n\n dragOptions.doneFn = function() {\n corners.remove();\n\n throttle.done(throttleID).then(function() {\n throttle.clear(throttleID);\n dragOptions.gd.emit('plotly_selected', eventData);\n\n if(currentPolygon && dragOptions.selectionDefs) {\n // save last polygons\n currentPolygon.subtract = subtract;\n dragOptions.selectionDefs.push(currentPolygon);\n\n // we have to keep reference to arrays container\n dragOptions.mergedPolygons.length = 0;\n [].push.apply(dragOptions.mergedPolygons, mergedPolygons);\n }\n\n if(dragOptions.doneFnCompleted) {\n dragOptions.doneFnCompleted(selection);\n }\n }).catch(Lib.error);\n };\n}\n\nfunction selectOnClick(evt, gd, xAxes, yAxes, subplot, dragOptions, polygonOutlines) {\n var hoverData = gd._hoverdata;\n var clickmode = gd._fullLayout.clickmode;\n var sendEvents = clickmode.indexOf('event') > -1;\n var selection = [];\n var searchTraces, searchInfo, currentSelectionDef, selectionTester, traceSelection;\n var thisTracesSelection, pointOrBinSelected, subtract, eventData, i;\n\n if(isHoverDataSet(hoverData)) {\n coerceSelectionsCache(evt, gd, dragOptions);\n searchTraces = determineSearchTraces(gd, xAxes, yAxes, subplot);\n var clickedPtInfo = extractClickedPtInfo(hoverData, searchTraces);\n var isBinnedTrace = clickedPtInfo.pointNumbers.length > 0;\n\n\n // Note: potentially costly operation isPointOrBinSelected is\n // called as late as possible through the use of an assignment\n // in an if condition.\n if(isBinnedTrace ?\n isOnlyThisBinSelected(searchTraces, clickedPtInfo) :\n isOnlyOnePointSelected(searchTraces) &&\n (pointOrBinSelected = isPointOrBinSelected(clickedPtInfo))) {\n if(polygonOutlines) polygonOutlines.remove();\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n searchInfo._module.selectPoints(searchInfo, false);\n }\n\n updateSelectedState(gd, searchTraces);\n\n clearSelectionsCache(dragOptions);\n\n if(sendEvents) {\n gd.emit('plotly_deselect', null);\n }\n } else {\n subtract = evt.shiftKey &&\n (pointOrBinSelected !== undefined ?\n pointOrBinSelected :\n isPointOrBinSelected(clickedPtInfo));\n currentSelectionDef = newPointSelectionDef(clickedPtInfo.pointNumber, clickedPtInfo.searchInfo, subtract);\n\n var allSelectionDefs = dragOptions.selectionDefs.concat([currentSelectionDef]);\n selectionTester = multiTester(allSelectionDefs);\n\n for(i = 0; i < searchTraces.length; i++) {\n traceSelection = searchTraces[i]._module.selectPoints(searchTraces[i], selectionTester);\n thisTracesSelection = fillSelectionItem(traceSelection, searchTraces[i]);\n\n if(selection.length) {\n for(var j = 0; j < thisTracesSelection.length; j++) {\n selection.push(thisTracesSelection[j]);\n }\n } else selection = thisTracesSelection;\n }\n\n eventData = {points: selection};\n updateSelectedState(gd, searchTraces, eventData);\n\n if(currentSelectionDef && dragOptions) {\n dragOptions.selectionDefs.push(currentSelectionDef);\n }\n\n if(polygonOutlines) drawSelection(dragOptions.mergedPolygons, polygonOutlines);\n\n if(sendEvents) {\n gd.emit('plotly_selected', eventData);\n }\n }\n }\n}\n\n/**\n * Constructs a new point selection definition object.\n */\nfunction newPointSelectionDef(pointNumber, searchInfo, subtract) {\n return {\n pointNumber: pointNumber,\n searchInfo: searchInfo,\n subtract: subtract\n };\n}\n\nfunction isPointSelectionDef(o) {\n return 'pointNumber' in o && 'searchInfo' in o;\n}\n\n/*\n * Constructs a new point number tester.\n */\nfunction newPointNumTester(pointSelectionDef) {\n return {\n xmin: 0,\n xmax: 0,\n ymin: 0,\n ymax: 0,\n pts: [],\n contains: function(pt, omitFirstEdge, pointNumber, searchInfo) {\n var idxWantedTrace = pointSelectionDef.searchInfo.cd[0].trace._expandedIndex;\n var idxActualTrace = searchInfo.cd[0].trace._expandedIndex;\n return idxActualTrace === idxWantedTrace &&\n pointNumber === pointSelectionDef.pointNumber;\n },\n isRect: false,\n degenerate: false,\n subtract: pointSelectionDef.subtract\n };\n}\n\n/**\n * Wraps multiple selection testers.\n *\n * @param {Array} list - An array of selection testers.\n *\n * @return a selection tester object with a contains function\n * that can be called to evaluate a point against all wrapped\n * selection testers that were passed in list.\n */\nfunction multiTester(list) {\n var testers = [];\n var xmin = isPointSelectionDef(list[0]) ? 0 : list[0][0][0];\n var xmax = xmin;\n var ymin = isPointSelectionDef(list[0]) ? 0 : list[0][0][1];\n var ymax = ymin;\n\n for(var i = 0; i < list.length; i++) {\n if(isPointSelectionDef(list[i])) {\n testers.push(newPointNumTester(list[i]));\n } else {\n var tester = polygon.tester(list[i]);\n tester.subtract = list[i].subtract;\n testers.push(tester);\n xmin = Math.min(xmin, tester.xmin);\n xmax = Math.max(xmax, tester.xmax);\n ymin = Math.min(ymin, tester.ymin);\n ymax = Math.max(ymax, tester.ymax);\n }\n }\n\n /**\n * Tests if the given point is within this tester.\n *\n * @param {Array} pt - [0] is the x coordinate, [1] is the y coordinate of the point.\n * @param {*} arg - An optional parameter to pass down to wrapped testers.\n * @param {number} pointNumber - The point number of the point within the underlying data array.\n * @param {number} searchInfo - An object identifying the trace the point is contained in.\n *\n * @return {boolean} true if point is considered to be selected, false otherwise.\n */\n function contains(pt, arg, pointNumber, searchInfo) {\n var contained = false;\n for(var i = 0; i < testers.length; i++) {\n if(testers[i].contains(pt, arg, pointNumber, searchInfo)) {\n // if contained by subtract tester - exclude the point\n contained = testers[i].subtract === false;\n }\n }\n\n return contained;\n }\n\n return {\n xmin: xmin,\n xmax: xmax,\n ymin: ymin,\n ymax: ymax,\n pts: [],\n contains: contains,\n isRect: false,\n degenerate: false\n };\n}\n\nfunction coerceSelectionsCache(evt, gd, dragOptions) {\n var fullLayout = gd._fullLayout;\n var plotinfo = dragOptions.plotinfo;\n\n var selectingOnSameSubplot = (\n fullLayout._lastSelectedSubplot &&\n fullLayout._lastSelectedSubplot === plotinfo.id\n );\n var hasModifierKey = evt.shiftKey || evt.altKey;\n\n if(selectingOnSameSubplot && hasModifierKey &&\n (plotinfo.selection && plotinfo.selection.selectionDefs) && !dragOptions.selectionDefs) {\n // take over selection definitions from prev mode, if any\n dragOptions.selectionDefs = plotinfo.selection.selectionDefs;\n dragOptions.mergedPolygons = plotinfo.selection.mergedPolygons;\n } else if(!hasModifierKey || !plotinfo.selection) {\n clearSelectionsCache(dragOptions);\n }\n\n // clear selection outline when selecting a different subplot\n if(!selectingOnSameSubplot) {\n clearSelect(gd);\n fullLayout._lastSelectedSubplot = plotinfo.id;\n }\n}\n\nfunction clearSelectionsCache(dragOptions) {\n var plotinfo = dragOptions.plotinfo;\n\n plotinfo.selection = {};\n plotinfo.selection.selectionDefs = dragOptions.selectionDefs = [];\n plotinfo.selection.mergedPolygons = dragOptions.mergedPolygons = [];\n}\n\nfunction determineSearchTraces(gd, xAxes, yAxes, subplot) {\n var searchTraces = [];\n var xAxisIds = xAxes.map(getAxId);\n var yAxisIds = yAxes.map(getAxId);\n var cd, trace, i;\n\n for(i = 0; i < gd.calcdata.length; i++) {\n cd = gd.calcdata[i];\n trace = cd[0].trace;\n\n if(trace.visible !== true || !trace._module || !trace._module.selectPoints) continue;\n\n if(subplot && (trace.subplot === subplot || trace.geo === subplot)) {\n searchTraces.push(createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]));\n } else if(\n trace.type === 'splom' &&\n // FIXME: make sure we don't have more than single axis for splom\n trace._xaxes[xAxisIds[0]] && trace._yaxes[yAxisIds[0]]\n ) {\n var info = createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]);\n info.scene = gd._fullLayout._splomScenes[trace.uid];\n searchTraces.push(info);\n } else if(\n trace.type === 'sankey'\n ) {\n var sankeyInfo = createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]);\n searchTraces.push(sankeyInfo);\n } else {\n if(xAxisIds.indexOf(trace.xaxis) === -1) continue;\n if(yAxisIds.indexOf(trace.yaxis) === -1) continue;\n\n searchTraces.push(createSearchInfo(trace._module, cd,\n getFromId(gd, trace.xaxis), getFromId(gd, trace.yaxis)));\n }\n }\n\n return searchTraces;\n\n function createSearchInfo(module, calcData, xaxis, yaxis) {\n return {\n _module: module,\n cd: calcData,\n xaxis: xaxis,\n yaxis: yaxis\n };\n }\n}\n\nfunction drawSelection(polygons, outlines) {\n var paths = [];\n var i, d;\n\n for(i = 0; i < polygons.length; i++) {\n var ppts = polygons[i];\n paths.push(ppts.join('L') + 'L' + ppts[0]);\n }\n\n d = polygons.length > 0 ?\n 'M' + paths.join('M') + 'Z' :\n 'M0,0Z';\n outlines.attr('d', d);\n}\n\nfunction isHoverDataSet(hoverData) {\n return hoverData &&\n Array.isArray(hoverData) &&\n hoverData[0].hoverOnBox !== true;\n}\n\nfunction extractClickedPtInfo(hoverData, searchTraces) {\n var hoverDatum = hoverData[0];\n var pointNumber = -1;\n var pointNumbers = [];\n var searchInfo, i;\n\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n if(hoverDatum.fullData._expandedIndex === searchInfo.cd[0].trace._expandedIndex) {\n // Special case for box (and violin)\n if(hoverDatum.hoverOnBox === true) {\n break;\n }\n\n // Hint: in some traces like histogram, one graphical element\n // doesn't correspond to one particular data point, but to\n // bins of data points. Thus, hoverDatum can have a binNumber\n // property instead of pointNumber.\n if(hoverDatum.pointNumber !== undefined) {\n pointNumber = hoverDatum.pointNumber;\n } else if(hoverDatum.binNumber !== undefined) {\n pointNumber = hoverDatum.binNumber;\n pointNumbers = hoverDatum.pointNumbers;\n }\n\n break;\n }\n }\n\n return {\n pointNumber: pointNumber,\n pointNumbers: pointNumbers,\n searchInfo: searchInfo\n };\n}\n\nfunction isPointOrBinSelected(clickedPtInfo) {\n var trace = clickedPtInfo.searchInfo.cd[0].trace;\n var ptNum = clickedPtInfo.pointNumber;\n var ptNums = clickedPtInfo.pointNumbers;\n var ptNumsSet = ptNums.length > 0;\n\n // When pointsNumbers is set (e.g. histogram's binning),\n // it is assumed that when the first point of\n // a bin is selected, all others are as well\n var ptNumToTest = ptNumsSet ? ptNums[0] : ptNum;\n\n // TODO potential performance improvement\n // Primarily we need this function to determine if a click adds\n // or subtracts from a selection.\n // In cases `trace.selectedpoints` is a huge array, indexOf\n // might be slow. One remedy would be to introduce a hash somewhere.\n return trace.selectedpoints ? trace.selectedpoints.indexOf(ptNumToTest) > -1 : false;\n}\n\nfunction isOnlyThisBinSelected(searchTraces, clickedPtInfo) {\n var tracesWithSelectedPts = [];\n var searchInfo, trace, isSameTrace, i;\n\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n if(searchInfo.cd[0].trace.selectedpoints && searchInfo.cd[0].trace.selectedpoints.length > 0) {\n tracesWithSelectedPts.push(searchInfo);\n }\n }\n\n if(tracesWithSelectedPts.length === 1) {\n isSameTrace = tracesWithSelectedPts[0] === clickedPtInfo.searchInfo;\n if(isSameTrace) {\n trace = clickedPtInfo.searchInfo.cd[0].trace;\n if(trace.selectedpoints.length === clickedPtInfo.pointNumbers.length) {\n for(i = 0; i < clickedPtInfo.pointNumbers.length; i++) {\n if(trace.selectedpoints.indexOf(clickedPtInfo.pointNumbers[i]) < 0) {\n return false;\n }\n }\n return true;\n }\n }\n }\n\n return false;\n}\n\nfunction isOnlyOnePointSelected(searchTraces) {\n var len = 0;\n var searchInfo, trace, i;\n\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n trace = searchInfo.cd[0].trace;\n if(trace.selectedpoints) {\n if(trace.selectedpoints.length > 1) return false;\n\n len += trace.selectedpoints.length;\n if(len > 1) return false;\n }\n }\n\n return len === 1;\n}\n\nfunction updateSelectedState(gd, searchTraces, eventData) {\n var i, searchInfo, cd, trace;\n\n // before anything else, update preGUI if necessary\n for(i = 0; i < searchTraces.length; i++) {\n var fullInputTrace = searchTraces[i].cd[0].trace._fullInput;\n var tracePreGUI = gd._fullLayout._tracePreGUI[fullInputTrace.uid] || {};\n if(tracePreGUI.selectedpoints === undefined) {\n tracePreGUI.selectedpoints = fullInputTrace._input.selectedpoints || null;\n }\n }\n\n if(eventData) {\n var pts = eventData.points || [];\n\n for(i = 0; i < searchTraces.length; i++) {\n trace = searchTraces[i].cd[0].trace;\n trace._input.selectedpoints = trace._fullInput.selectedpoints = [];\n if(trace._fullInput !== trace) trace.selectedpoints = [];\n }\n\n for(i = 0; i < pts.length; i++) {\n var pt = pts[i];\n var data = pt.data;\n var fullData = pt.fullData;\n\n if(pt.pointIndices) {\n [].push.apply(data.selectedpoints, pt.pointIndices);\n if(trace._fullInput !== trace) {\n [].push.apply(fullData.selectedpoints, pt.pointIndices);\n }\n } else {\n data.selectedpoints.push(pt.pointIndex);\n if(trace._fullInput !== trace) {\n fullData.selectedpoints.push(pt.pointIndex);\n }\n }\n }\n } else {\n for(i = 0; i < searchTraces.length; i++) {\n trace = searchTraces[i].cd[0].trace;\n delete trace.selectedpoints;\n delete trace._input.selectedpoints;\n if(trace._fullInput !== trace) {\n delete trace._fullInput.selectedpoints;\n }\n }\n }\n\n var hasRegl = false;\n\n for(i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n cd = searchInfo.cd;\n trace = cd[0].trace;\n\n if(Registry.traceIs(trace, 'regl')) {\n hasRegl = true;\n }\n\n var _module = searchInfo._module;\n var fn = _module.styleOnSelect || _module.style;\n if(fn) {\n fn(gd, cd, cd[0].node3);\n if(cd[0].nodeRangePlot3) fn(gd, cd, cd[0].nodeRangePlot3);\n }\n }\n\n if(hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n}\n\nfunction mergePolygons(list, poly, subtract) {\n var res;\n\n if(subtract) {\n res = polybool.difference({\n regions: list,\n inverted: false\n }, {\n regions: [poly],\n inverted: false\n });\n\n return res.regions;\n }\n\n res = polybool.union({\n regions: list,\n inverted: false\n }, {\n regions: [poly],\n inverted: false\n });\n\n return res.regions;\n}\n\nfunction fillSelectionItem(selection, searchInfo) {\n if(Array.isArray(selection)) {\n var cd = searchInfo.cd;\n var trace = searchInfo.cd[0].trace;\n\n for(var i = 0; i < selection.length; i++) {\n selection[i] = makeEventData(selection[i], trace, cd);\n }\n }\n\n return selection;\n}\n\n// until we get around to persistent selections, remove the outline\n// here. The selection itself will be removed when the plot redraws\n// at the end.\nfunction clearSelect(gd) {\n var fullLayout = gd._fullLayout || {};\n var zoomlayer = fullLayout._zoomlayer;\n if(zoomlayer) {\n zoomlayer.selectAll('.select-outline').remove();\n }\n}\n\nmodule.exports = {\n prepSelect: prepSelect,\n clearSelect: clearSelect,\n selectOnClick: selectOnClick\n};\n\n\n/***/ }),\n\n/***/ \"18a2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar rationalize = __webpack_require__(\"2195\")\n\nmodule.exports = div\n\nfunction div(a, b) {\n return rationalize(a[0].mul(b[1]), a[1].mul(b[0]))\n}\n\n\n/***/ }),\n\n/***/ \"18bb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar attributes = __webpack_require__(\"1c82\");\nvar handleDomainDefaults = __webpack_require__(\"81f0\").defaults;\nvar Template = __webpack_require__(\"a651\");\nvar handleArrayContainerDefaults = __webpack_require__(\"e5ac\");\nvar cn = __webpack_require__(\"49b4\");\n\nvar handleTickValueDefaults = __webpack_require__(\"d92f\");\nvar handleTickMarkDefaults = __webpack_require__(\"27e3\");\nvar handleTickLabelDefaults = __webpack_require__(\"5008\");\n\nfunction supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n handleDomainDefaults(traceOut, layout, coerce);\n\n // Mode\n coerce('mode');\n traceOut._hasNumber = traceOut.mode.indexOf('number') !== -1;\n traceOut._hasDelta = traceOut.mode.indexOf('delta') !== -1;\n traceOut._hasGauge = traceOut.mode.indexOf('gauge') !== -1;\n\n var value = coerce('value');\n traceOut._range = [0, (typeof value === 'number' ? 1.5 * value : 1)];\n\n // Number attributes\n var auto = new Array(2);\n var bignumberFontSize;\n if(traceOut._hasNumber) {\n coerce('number.valueformat');\n coerce('number.font.color', layout.font.color);\n coerce('number.font.family', layout.font.family);\n coerce('number.font.size');\n if(traceOut.number.font.size === undefined) {\n traceOut.number.font.size = cn.defaultNumberFontSize;\n auto[0] = true;\n }\n coerce('number.prefix');\n coerce('number.suffix');\n bignumberFontSize = traceOut.number.font.size;\n }\n\n // delta attributes\n var deltaFontSize;\n if(traceOut._hasDelta) {\n coerce('delta.font.color', layout.font.color);\n coerce('delta.font.family', layout.font.family);\n coerce('delta.font.size');\n if(traceOut.delta.font.size === undefined) {\n traceOut.delta.font.size = (traceOut._hasNumber ? 0.5 : 1) * (bignumberFontSize || cn.defaultNumberFontSize);\n auto[1] = true;\n }\n coerce('delta.reference', traceOut.value);\n coerce('delta.relative');\n coerce('delta.valueformat', traceOut.delta.relative ? '2%' : '');\n coerce('delta.increasing.symbol');\n coerce('delta.increasing.color');\n coerce('delta.decreasing.symbol');\n coerce('delta.decreasing.color');\n coerce('delta.position');\n deltaFontSize = traceOut.delta.font.size;\n }\n traceOut._scaleNumbers = (!traceOut._hasNumber || auto[0]) && (!traceOut._hasDelta || auto[1]) || false;\n\n // Title attributes\n coerce('title.font.color', layout.font.color);\n coerce('title.font.family', layout.font.family);\n coerce('title.font.size', 0.25 * (bignumberFontSize || deltaFontSize || cn.defaultNumberFontSize));\n coerce('title.text');\n\n // Gauge attributes\n var gaugeIn, gaugeOut, axisIn, axisOut;\n function coerceGauge(attr, dflt) {\n return Lib.coerce(gaugeIn, gaugeOut, attributes.gauge, attr, dflt);\n }\n function coerceGaugeAxis(attr, dflt) {\n return Lib.coerce(axisIn, axisOut, attributes.gauge.axis, attr, dflt);\n }\n\n if(traceOut._hasGauge) {\n gaugeIn = traceIn.gauge;\n if(!gaugeIn) gaugeIn = {};\n gaugeOut = Template.newContainer(traceOut, 'gauge');\n coerceGauge('shape');\n var isBullet = traceOut._isBullet = traceOut.gauge.shape === 'bullet';\n if(!isBullet) {\n coerce('title.align', 'center');\n }\n var isAngular = traceOut._isAngular = traceOut.gauge.shape === 'angular';\n if(!isAngular) {\n coerce('align', 'center');\n }\n\n // gauge background\n coerceGauge('bgcolor', layout.paper_bgcolor);\n coerceGauge('borderwidth');\n coerceGauge('bordercolor');\n\n // gauge bar indicator\n coerceGauge('bar.color');\n coerceGauge('bar.line.color');\n coerceGauge('bar.line.width');\n var defaultBarThickness = cn.valueThickness * (traceOut.gauge.shape === 'bullet' ? 0.5 : 1);\n coerceGauge('bar.thickness', defaultBarThickness);\n\n // Gauge steps\n handleArrayContainerDefaults(gaugeIn, gaugeOut, {\n name: 'steps',\n handleItemDefaults: stepDefaults\n });\n\n // Gauge threshold\n coerceGauge('threshold.value');\n coerceGauge('threshold.thickness');\n coerceGauge('threshold.line.width');\n coerceGauge('threshold.line.color');\n\n // Gauge axis\n axisIn = {};\n if(gaugeIn) axisIn = gaugeIn.axis || {};\n axisOut = Template.newContainer(gaugeOut, 'axis');\n coerceGaugeAxis('visible');\n traceOut._range = coerceGaugeAxis('range', traceOut._range);\n\n var opts = {outerTicks: true};\n handleTickValueDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear');\n handleTickLabelDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear', opts);\n handleTickMarkDefaults(axisIn, axisOut, coerceGaugeAxis, opts);\n } else {\n coerce('title.align', 'center');\n coerce('align', 'center');\n traceOut._isAngular = traceOut._isBullet = false;\n }\n\n // disable 1D transforms\n traceOut._length = null;\n}\n\nfunction stepDefaults(stepIn, stepOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(stepIn, stepOut, attributes.gauge.steps, attr, dflt);\n }\n\n coerce('color');\n coerce('line.color');\n coerce('line.width');\n coerce('range');\n coerce('thickness');\n}\n\nmodule.exports = {\n supplyDefaults: supplyDefaults\n};\n\n\n/***/ }),\n\n/***/ \"18ec\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar str = \"razdwatrzy\";\n\nmodule.exports = function () {\n\tif (typeof str.contains !== \"function\") return false;\n\treturn str.contains(\"dwa\") === true && str.contains(\"foo\") === false;\n};\n\n\n/***/ }),\n\n/***/ \"191c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar constants = __webpack_require__(\"de69\");\nvar subTypes = __webpack_require__(\"de81\");\nvar handleMarkerDefaults = __webpack_require__(\"5047\");\nvar handleLineDefaults = __webpack_require__(\"59be\");\nvar handleLineShapeDefaults = __webpack_require__(\"eb07\");\nvar handleTextDefaults = __webpack_require__(\"e9f7\");\nvar handleFillColorDefaults = __webpack_require__(\"3802\");\n\nvar attributes = __webpack_require__(\"ce65\");\n\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var a = coerce('a');\n var b = coerce('b');\n var c = coerce('c');\n var len;\n\n // allow any one array to be missing, len is the minimum length of those\n // present. Note that after coerce data_array's are either Arrays (which\n // are truthy even if empty) or undefined. As in scatter, an empty array\n // is different from undefined, because it can signify that this data is\n // not known yet but expected in the future\n if(a) {\n len = a.length;\n if(b) {\n len = Math.min(len, b.length);\n if(c) len = Math.min(len, c.length);\n } else if(c) len = Math.min(len, c.length);\n else len = 0;\n } else if(b && c) {\n len = Math.min(b.length, c.length);\n }\n\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = len;\n\n coerce('sum');\n\n coerce('text');\n coerce('hovertext');\n if(traceOut.hoveron !== 'fills') coerce('hovertemplate');\n\n var defaultMode = len < constants.PTS_LINESONLY ? 'lines+markers' : 'lines';\n coerce('mode', defaultMode);\n\n if(subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce('connectgaps');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});\n }\n\n if(subTypes.hasText(traceOut)) {\n coerce('texttemplate');\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n\n var dfltHoverOn = [];\n\n if(subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce('cliponaxis');\n coerce('marker.maxdisplayed');\n dfltHoverOn.push('points');\n }\n\n coerce('fill');\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n\n if(traceOut.fill === 'tonext' || traceOut.fill === 'toself') {\n dfltHoverOn.push('fills');\n }\n coerce('hoveron', dfltHoverOn.join('+') || 'points');\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n\n\n/***/ }),\n\n/***/ \"1936\":\n/***/ (function(module, exports) {\n\nmodule.exports = [\r\n // current\r\n 'precision'\r\n , 'highp'\r\n , 'mediump'\r\n , 'lowp'\r\n , 'attribute'\r\n , 'const'\r\n , 'uniform'\r\n , 'varying'\r\n , 'break'\r\n , 'continue'\r\n , 'do'\r\n , 'for'\r\n , 'while'\r\n , 'if'\r\n , 'else'\r\n , 'in'\r\n , 'out'\r\n , 'inout'\r\n , 'float'\r\n , 'int'\r\n , 'uint'\r\n , 'void'\r\n , 'bool'\r\n , 'true'\r\n , 'false'\r\n , 'discard'\r\n , 'return'\r\n , 'mat2'\r\n , 'mat3'\r\n , 'mat4'\r\n , 'vec2'\r\n , 'vec3'\r\n , 'vec4'\r\n , 'ivec2'\r\n , 'ivec3'\r\n , 'ivec4'\r\n , 'bvec2'\r\n , 'bvec3'\r\n , 'bvec4'\r\n , 'sampler1D'\r\n , 'sampler2D'\r\n , 'sampler3D'\r\n , 'samplerCube'\r\n , 'sampler1DShadow'\r\n , 'sampler2DShadow'\r\n , 'struct'\r\n\r\n // future\r\n , 'asm'\r\n , 'class'\r\n , 'union'\r\n , 'enum'\r\n , 'typedef'\r\n , 'template'\r\n , 'this'\r\n , 'packed'\r\n , 'goto'\r\n , 'switch'\r\n , 'default'\r\n , 'inline'\r\n , 'noinline'\r\n , 'volatile'\r\n , 'public'\r\n , 'static'\r\n , 'extern'\r\n , 'external'\r\n , 'interface'\r\n , 'long'\r\n , 'short'\r\n , 'double'\r\n , 'half'\r\n , 'fixed'\r\n , 'unsigned'\r\n , 'input'\r\n , 'output'\r\n , 'hvec2'\r\n , 'hvec3'\r\n , 'hvec4'\r\n , 'dvec2'\r\n , 'dvec3'\r\n , 'dvec4'\r\n , 'fvec2'\r\n , 'fvec3'\r\n , 'fvec4'\r\n , 'sampler2DRect'\r\n , 'sampler3DRect'\r\n , 'sampler2DRectShadow'\r\n , 'sizeof'\r\n , 'cast'\r\n , 'namespace'\r\n , 'using'\r\n]\r\n\n\n/***/ }),\n\n/***/ \"1978\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\n\n// used in the drawing step for 'scatter' and 'scattegeo' and\n// in the convert step for 'scatter3d'\nmodule.exports = function makeBubbleSizeFn(trace) {\n var marker = trace.marker;\n var sizeRef = marker.sizeref || 1;\n var sizeMin = marker.sizemin || 0;\n\n // for bubble charts, allow scaling the provided value linearly\n // and by area or diameter.\n // Note this only applies to the array-value sizes\n\n var baseFn = (marker.sizemode === 'area') ?\n function(v) { return Math.sqrt(v / sizeRef); } :\n function(v) { return v / sizeRef; };\n\n // TODO add support for position/negative bubbles?\n // TODO add 'sizeoffset' attribute?\n return function(v) {\n var baseSize = baseFn(v / 2);\n\n // don't show non-numeric and negative sizes\n return (isNumeric(baseSize) && (baseSize > 0)) ?\n Math.max(baseSize, sizeMin) :\n 0;\n };\n};\n\n\n/***/ }),\n\n/***/ \"1999\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Plots = __webpack_require__(\"bb71\");\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar Color = __webpack_require__(\"d115\");\nvar svgTextUtils = __webpack_require__(\"0379\");\nvar interactConstants = __webpack_require__(\"72a4\");\n\nvar OPPOSITE_SIDE = __webpack_require__(\"63dc\").OPPOSITE_SIDE;\nvar numStripRE = / [XY][0-9]* /;\n\n/**\n * Titles - (re)draw titles on the axes and plot:\n * @param {DOM element} gd - the graphDiv\n * @param {string} titleClass - the css class of this title\n * @param {object} options - how and what to draw\n * propContainer - the layout object containing `title` and `titlefont`\n * attributes that apply to this title\n * propName - the full name of the title property (for Plotly.relayout)\n * [traceIndex] - include only if this property applies to one trace\n * (such as a colorbar title) - then editing pipes to Plotly.restyle\n * instead of Plotly.relayout\n * placeholder - placeholder text for an empty editable title\n * [avoid] {object} - include if this title should move to avoid other elements\n * selection - d3 selection of elements to avoid\n * side - which direction to move if there is a conflict\n * [offsetLeft] - if these elements are subject to a translation\n * wrt the title element\n * [offsetTop]\n * attributes {object} - position and alignment attributes\n * x - pixels\n * y - pixels\n * text-anchor - start|middle|end\n * transform {object} - how to transform the title after positioning\n * rotate - degrees\n * offset - shift up/down in the rotated frame (unused?)\n * containerGroup - if an svg element already exists to hold this\n * title, include here. Otherwise it will go in fullLayout._infolayer\n * _meta {object (optional} - meta key-value to for title with\n * Lib.templateString, default to fullLayout._meta, if not provided\n *\n * @return {selection} d3 selection of title container group\n */\nfunction draw(gd, titleClass, options) {\n var cont = options.propContainer;\n var prop = options.propName;\n var placeholder = options.placeholder;\n var traceIndex = options.traceIndex;\n var avoid = options.avoid || {};\n var attributes = options.attributes;\n var transform = options.transform;\n var group = options.containerGroup;\n\n var fullLayout = gd._fullLayout;\n\n var opacity = 1;\n var isplaceholder = false;\n var title = cont.title;\n var txt = (title && title.text ? title.text : '').trim();\n\n var font = title && title.font ? title.font : {};\n var fontFamily = font.family;\n var fontSize = font.size;\n var fontColor = font.color;\n\n // only make this title editable if we positively identify its property\n // as one that has editing enabled.\n var editAttr;\n if(prop === 'title.text') editAttr = 'titleText';\n else if(prop.indexOf('axis') !== -1) editAttr = 'axisTitleText';\n else if(prop.indexOf('colorbar' !== -1)) editAttr = 'colorbarTitleText';\n var editable = gd._context.edits[editAttr];\n\n if(txt === '') opacity = 0;\n // look for placeholder text while stripping out numbers from eg X2, Y3\n // this is just for backward compatibility with the old version that had\n // \"Click to enter X2 title\" and may have gotten saved in some old plots,\n // we don't want this to show up when these are displayed.\n else if(txt.replace(numStripRE, ' % ') === placeholder.replace(numStripRE, ' % ')) {\n opacity = 0.2;\n isplaceholder = true;\n if(!editable) txt = '';\n }\n\n if(options._meta) {\n txt = Lib.templateString(txt, options._meta);\n } else if(fullLayout._meta) {\n txt = Lib.templateString(txt, fullLayout._meta);\n }\n\n var elShouldExist = txt || editable;\n\n if(!group) {\n group = Lib.ensureSingle(fullLayout._infolayer, 'g', 'g-' + titleClass);\n }\n\n var el = group.selectAll('text')\n .data(elShouldExist ? [0] : []);\n el.enter().append('text');\n el.text(txt)\n // this is hacky, but convertToTspans uses the class\n // to determine whether to rotate mathJax...\n // so we need to clear out any old class and put the\n // correct one (only relevant for colorbars, at least\n // for now) - ie don't use .classed\n .attr('class', titleClass);\n el.exit().remove();\n\n if(!elShouldExist) return group;\n\n function titleLayout(titleEl) {\n Lib.syncOrAsync([drawTitle, scootTitle], titleEl);\n }\n\n function drawTitle(titleEl) {\n var transformVal;\n\n if(transform) {\n transformVal = '';\n if(transform.rotate) {\n transformVal += 'rotate(' + [transform.rotate, attributes.x, attributes.y] + ')';\n }\n if(transform.offset) {\n transformVal += 'translate(0, ' + transform.offset + ')';\n }\n } else {\n transformVal = null;\n }\n\n titleEl.attr('transform', transformVal);\n\n titleEl.style({\n 'font-family': fontFamily,\n 'font-size': d3.round(fontSize, 2) + 'px',\n fill: Color.rgb(fontColor),\n opacity: opacity * Color.opacity(fontColor),\n 'font-weight': Plots.fontWeight\n })\n .attr(attributes)\n .call(svgTextUtils.convertToTspans, gd);\n\n return Plots.previousPromises(gd);\n }\n\n function scootTitle(titleElIn) {\n var titleGroup = d3.select(titleElIn.node().parentNode);\n\n if(avoid && avoid.selection && avoid.side && txt) {\n titleGroup.attr('transform', null);\n\n // move toward avoid.side (= left, right, top, bottom) if needed\n // can include pad (pixels, default 2)\n var backside = OPPOSITE_SIDE[avoid.side];\n var shiftSign = (avoid.side === 'left' || avoid.side === 'top') ? -1 : 1;\n var pad = isNumeric(avoid.pad) ? avoid.pad : 2;\n\n var titlebb = Drawing.bBox(titleGroup.node());\n var paperbb = {\n left: 0,\n top: 0,\n right: fullLayout.width,\n bottom: fullLayout.height\n };\n\n var maxshift = avoid.maxShift ||\n shiftSign * (paperbb[avoid.side] - titlebb[avoid.side]);\n var shift = 0;\n\n // Prevent the title going off the paper\n if(maxshift < 0) {\n shift = maxshift;\n } else {\n // so we don't have to offset each avoided element,\n // give the title the opposite offset\n var offsetLeft = avoid.offsetLeft || 0;\n var offsetTop = avoid.offsetTop || 0;\n titlebb.left -= offsetLeft;\n titlebb.right -= offsetLeft;\n titlebb.top -= offsetTop;\n titlebb.bottom -= offsetTop;\n\n // iterate over a set of elements (avoid.selection)\n // to avoid collisions with\n avoid.selection.each(function() {\n var avoidbb = Drawing.bBox(this);\n\n if(Lib.bBoxIntersect(titlebb, avoidbb, pad)) {\n shift = Math.max(shift, shiftSign * (\n avoidbb[avoid.side] - titlebb[backside]) + pad);\n }\n });\n shift = Math.min(maxshift, shift);\n }\n\n if(shift > 0 || maxshift < 0) {\n var shiftTemplate = {\n left: [-shift, 0],\n right: [shift, 0],\n top: [0, -shift],\n bottom: [0, shift]\n }[avoid.side];\n titleGroup.attr('transform', 'translate(' + shiftTemplate + ')');\n }\n }\n }\n\n el.call(titleLayout);\n\n function setPlaceholder() {\n opacity = 0;\n isplaceholder = true;\n el.text(placeholder)\n .on('mouseover.opacity', function() {\n d3.select(this).transition()\n .duration(interactConstants.SHOW_PLACEHOLDER).style('opacity', 1);\n })\n .on('mouseout.opacity', function() {\n d3.select(this).transition()\n .duration(interactConstants.HIDE_PLACEHOLDER).style('opacity', 0);\n });\n }\n\n if(editable) {\n if(!txt) setPlaceholder();\n else el.on('.opacity', null);\n\n el.call(svgTextUtils.makeEditable, {gd: gd})\n .on('edit', function(text) {\n if(traceIndex !== undefined) {\n Registry.call('_guiRestyle', gd, prop, text, traceIndex);\n } else {\n Registry.call('_guiRelayout', gd, prop, text);\n }\n })\n .on('cancel', function() {\n this.text(this.attr('data-unformatted'))\n .call(titleLayout);\n })\n .on('input', function(d) {\n this.text(d || ' ')\n .call(svgTextUtils.positionText, attributes.x, attributes.y);\n });\n }\n el.classed('js-placeholder', isplaceholder);\n\n return group;\n}\n\nmodule.exports = {\n draw: draw\n};\n\n\n/***/ }),\n\n/***/ \"19b2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * inspired by is-number \n * but significantly simplified and sped up by ignoring number and string constructors\n * ie these return false:\n * new Number(1)\n * new String('1')\n */\n\n\n\nvar allBlankCharCodes = __webpack_require__(\"e9b4\");\n\nmodule.exports = function(n) {\n var type = typeof n;\n if(type === 'string') {\n var original = n;\n n = +n;\n // whitespace strings cast to zero - filter them out\n if(n===0 && allBlankCharCodes(original)) return false;\n }\n else if(type !== 'number') return false;\n\n return n - n < 1;\n};\n\n\n/***/ }),\n\n/***/ \"19e1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar mod = __webpack_require__(\"d3dc\").mod;\n\n/*\n * look for intersection of two line segments\n * (1->2 and 3->4) - returns array [x,y] if they do, null if not\n */\nexports.segmentsIntersect = segmentsIntersect;\nfunction segmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n var a = x2 - x1;\n var b = x3 - x1;\n var c = x4 - x3;\n var d = y2 - y1;\n var e = y3 - y1;\n var f = y4 - y3;\n var det = a * f - c * d;\n // parallel lines? intersection is undefined\n // ignore the case where they are colinear\n if(det === 0) return null;\n var t = (b * f - c * e) / det;\n var u = (b * d - a * e) / det;\n // segments do not intersect?\n if(u < 0 || u > 1 || t < 0 || t > 1) return null;\n\n return {x: x1 + a * t, y: y1 + d * t};\n}\n\n/*\n * find the minimum distance between two line segments (1->2 and 3->4)\n */\nexports.segmentDistance = function segmentDistance(x1, y1, x2, y2, x3, y3, x4, y4) {\n if(segmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4)) return 0;\n\n // the two segments and their lengths squared\n var x12 = x2 - x1;\n var y12 = y2 - y1;\n var x34 = x4 - x3;\n var y34 = y4 - y3;\n var ll12 = x12 * x12 + y12 * y12;\n var ll34 = x34 * x34 + y34 * y34;\n\n // calculate distance squared, then take the sqrt at the very end\n var dist2 = Math.min(\n perpDistance2(x12, y12, ll12, x3 - x1, y3 - y1),\n perpDistance2(x12, y12, ll12, x4 - x1, y4 - y1),\n perpDistance2(x34, y34, ll34, x1 - x3, y1 - y3),\n perpDistance2(x34, y34, ll34, x2 - x3, y2 - y3)\n );\n\n return Math.sqrt(dist2);\n};\n\n/*\n * distance squared from segment ab to point c\n * [xab, yab] is the vector b-a\n * [xac, yac] is the vector c-a\n * llab is the length squared of (b-a), just to simplify calculation\n */\nfunction perpDistance2(xab, yab, llab, xac, yac) {\n var fcAB = (xac * xab + yac * yab);\n if(fcAB < 0) {\n // point c is closer to point a\n return xac * xac + yac * yac;\n } else if(fcAB > llab) {\n // point c is closer to point b\n var xbc = xac - xab;\n var ybc = yac - yab;\n return xbc * xbc + ybc * ybc;\n } else {\n // perpendicular distance is the shortest\n var crossProduct = xac * yab - yac * xab;\n return crossProduct * crossProduct / llab;\n }\n}\n\n// a very short-term cache for getTextLocation, just because\n// we're often looping over the same locations multiple times\n// invalidated as soon as we look at a different path\nvar locationCache, workingPath, workingTextWidth;\n\n// turn a path and position along it into x, y, and angle for the given text\nexports.getTextLocation = function getTextLocation(path, totalPathLen, positionOnPath, textWidth) {\n if(path !== workingPath || textWidth !== workingTextWidth) {\n locationCache = {};\n workingPath = path;\n workingTextWidth = textWidth;\n }\n if(locationCache[positionOnPath]) {\n return locationCache[positionOnPath];\n }\n\n // for the angle, use points on the path separated by the text width\n // even though due to curvature, the text will cover a bit more than that\n var p0 = path.getPointAtLength(mod(positionOnPath - textWidth / 2, totalPathLen));\n var p1 = path.getPointAtLength(mod(positionOnPath + textWidth / 2, totalPathLen));\n // note: atan handles 1/0 nicely\n var theta = Math.atan((p1.y - p0.y) / (p1.x - p0.x));\n // center the text at 2/3 of the center position plus 1/3 the p0/p1 midpoint\n // that's the average position of this segment, assuming it's roughly quadratic\n var pCenter = path.getPointAtLength(mod(positionOnPath, totalPathLen));\n var x = (pCenter.x * 4 + p0.x + p1.x) / 6;\n var y = (pCenter.y * 4 + p0.y + p1.y) / 6;\n\n var out = {x: x, y: y, theta: theta};\n locationCache[positionOnPath] = out;\n return out;\n};\n\nexports.clearLocationCache = function() {\n workingPath = null;\n};\n\n/*\n * Find the segment of `path` that's within the visible area\n * given by `bounds` {left, right, top, bottom}, to within a\n * precision of `buffer` px\n *\n * returns: undefined if nothing is visible, else object:\n * {\n * min: position where the path first enters bounds, or 0 if it\n * starts within bounds\n * max: position where the path last exits bounds, or the path length\n * if it finishes within bounds\n * len: max - min, ie the length of visible path\n * total: the total path length - just included so the caller doesn't\n * need to call path.getTotalLength() again\n * isClosed: true iff the start and end points of the path are both visible\n * and are at the same point\n * }\n *\n * Works by starting from either end and repeatedly finding the distance from\n * that point to the plot area, and if it's outside the plot, moving along the\n * path by that distance (because the plot must be at least that far away on\n * the path). Note that if a path enters, exits, and re-enters the plot, we\n * will not capture this behavior.\n */\nexports.getVisibleSegment = function getVisibleSegment(path, bounds, buffer) {\n var left = bounds.left;\n var right = bounds.right;\n var top = bounds.top;\n var bottom = bounds.bottom;\n\n var pMin = 0;\n var pTotal = path.getTotalLength();\n var pMax = pTotal;\n\n var pt0, ptTotal;\n\n function getDistToPlot(len) {\n var pt = path.getPointAtLength(len);\n\n // hold on to the start and end points for `closed`\n if(len === 0) pt0 = pt;\n else if(len === pTotal) ptTotal = pt;\n\n var dx = (pt.x < left) ? left - pt.x : (pt.x > right ? pt.x - right : 0);\n var dy = (pt.y < top) ? top - pt.y : (pt.y > bottom ? pt.y - bottom : 0);\n return Math.sqrt(dx * dx + dy * dy);\n }\n\n var distToPlot = getDistToPlot(pMin);\n while(distToPlot) {\n pMin += distToPlot + buffer;\n if(pMin > pMax) return;\n distToPlot = getDistToPlot(pMin);\n }\n\n distToPlot = getDistToPlot(pMax);\n while(distToPlot) {\n pMax -= distToPlot + buffer;\n if(pMin > pMax) return;\n distToPlot = getDistToPlot(pMax);\n }\n\n return {\n min: pMin,\n max: pMax,\n len: pMax - pMin,\n total: pTotal,\n isClosed: pMin === 0 && pMax === pTotal &&\n Math.abs(pt0.x - ptTotal.x) < 0.1 &&\n Math.abs(pt0.y - ptTotal.y) < 0.1\n };\n};\n\n/**\n * Find point on SVG path corresponding to a given constraint coordinate\n *\n * @param {SVGPathElement} path\n * @param {Number} val : constraint coordinate value\n * @param {String} coord : 'x' or 'y' the constraint coordinate\n * @param {Object} opts :\n * - {Number} pathLength : supply total path length before hand\n * - {Number} tolerance\n * - {Number} iterationLimit\n * @return {SVGPoint}\n */\nexports.findPointOnPath = function findPointOnPath(path, val, coord, opts) {\n opts = opts || {};\n\n var pathLength = opts.pathLength || path.getTotalLength();\n var tolerance = opts.tolerance || 1e-3;\n var iterationLimit = opts.iterationLimit || 30;\n\n // if path starts at a val greater than the path tail (like on vertical violins),\n // we must flip the sign of the computed diff.\n var mul = path.getPointAtLength(0)[coord] > path.getPointAtLength(pathLength)[coord] ? -1 : 1;\n\n var i = 0;\n var b0 = 0;\n var b1 = pathLength;\n var mid;\n var pt;\n var diff;\n\n while(i < iterationLimit) {\n mid = (b0 + b1) / 2;\n pt = path.getPointAtLength(mid);\n diff = pt[coord] - val;\n\n if(Math.abs(diff) < tolerance) {\n return pt;\n } else {\n if(mul * diff > 0) {\n b1 = mid;\n } else {\n b0 = mid;\n }\n i++;\n }\n }\n return pt;\n};\n\n\n/***/ }),\n\n/***/ \"1a06\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar handleXYZDefaults = __webpack_require__(\"41e0\");\nvar handleConstraintDefaults = __webpack_require__(\"86df\");\nvar handleContoursDefaults = __webpack_require__(\"d61b\");\nvar handleStyleDefaults = __webpack_require__(\"41f8\");\nvar attributes = __webpack_require__(\"43ef\");\n\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n function coerce2(attr) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr);\n }\n\n var len = handleXYZDefaults(traceIn, traceOut, coerce, layout);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n coerce('hoverongaps');\n\n var isConstraint = (coerce('contours.type') === 'constraint');\n coerce('connectgaps', Lib.isArray1D(traceOut.z));\n\n if(isConstraint) {\n handleConstraintDefaults(traceIn, traceOut, coerce, layout, defaultColor);\n } else {\n handleContoursDefaults(traceIn, traceOut, coerce, coerce2);\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n }\n};\n\n\n/***/ }),\n\n/***/ \"1a3f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar convexHull1d = __webpack_require__(\"1f25\")\nvar convexHull2d = __webpack_require__(\"8ff7\")\nvar convexHullnd = __webpack_require__(\"ca39\")\n\nmodule.exports = convexHull\n\nfunction convexHull(points) {\n var n = points.length\n if(n === 0) {\n return []\n } else if(n === 1) {\n return [[0]]\n }\n var d = points[0].length\n if(d === 0) {\n return []\n } else if(d === 1) {\n return convexHull1d(points)\n } else if(d === 2) {\n return convexHull2d(points)\n }\n return convexHullnd(points, d)\n}\n\n/***/ }),\n\n/***/ \"1a40\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar cleanNumber = Lib.cleanNumber;\nvar ms2DateTime = Lib.ms2DateTime;\nvar dateTime2ms = Lib.dateTime2ms;\nvar ensureNumber = Lib.ensureNumber;\nvar isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n\nvar numConstants = __webpack_require__(\"e806\");\nvar FP_SAFE = numConstants.FP_SAFE;\nvar BADNUM = numConstants.BADNUM;\nvar LOG_CLIP = numConstants.LOG_CLIP;\n\nvar constants = __webpack_require__(\"d301\");\nvar axisIds = __webpack_require__(\"3c1c\");\n\nfunction fromLog(v) {\n return Math.pow(10, v);\n}\n\nfunction isValidCategory(v) {\n return v !== null && v !== undefined;\n}\n\n/**\n * Define the conversion functions for an axis data is used in 5 ways:\n *\n * d: data, in whatever form it's provided\n * c: calcdata: turned into numbers, but not linearized\n * l: linearized - same as c except for log axes (and other nonlinear\n * mappings later?) this is used when we need to know if it's\n * *possible* to show some data on this axis, without caring about\n * the current range\n * p: pixel value - mapped to the screen with current size and zoom\n * r: ranges, tick0, and annotation positions match one of the above\n * but are handled differently for different types:\n * - linear and date: data format (d)\n * - category: calcdata format (c), and will stay that way because\n * the data format has no continuous mapping\n * - log: linearized (l) format\n * TODO: in v2.0 we plan to change it to data format. At that point\n * shapes will work the same way as ranges, tick0, and annotations\n * so they can use this conversion too.\n *\n * Creates/updates these conversion functions, and a few more utilities\n * like cleanRange, and makeCalcdata\n *\n * also clears the autotick constraints ._minDtick, ._forceTick0\n */\nmodule.exports = function setConvert(ax, fullLayout) {\n fullLayout = fullLayout || {};\n\n var axId = (ax._id || 'x');\n var axLetter = axId.charAt(0);\n\n function toLog(v, clip) {\n if(v > 0) return Math.log(v) / Math.LN10;\n\n else if(v <= 0 && clip && ax.range && ax.range.length === 2) {\n // clip NaN (ie past negative infinity) to LOG_CLIP axis\n // length past the negative edge\n var r0 = ax.range[0];\n var r1 = ax.range[1];\n return 0.5 * (r0 + r1 - 2 * LOG_CLIP * Math.abs(r0 - r1));\n } else return BADNUM;\n }\n\n /*\n * wrapped dateTime2ms that:\n * - accepts ms numbers for backward compatibility\n * - inserts a dummy arg so calendar is the 3rd arg (see notes below).\n * - defaults to ax.calendar\n */\n function dt2ms(v, _, calendar) {\n // NOTE: Changed this behavior: previously we took any numeric value\n // to be a ms, even if it was a string that could be a bare year.\n // Now we convert it as a date if at all possible, and only try\n // as (local) ms if that fails.\n var ms = dateTime2ms(v, calendar || ax.calendar);\n if(ms === BADNUM) {\n if(isNumeric(v)) {\n v = +v;\n // keep track of tenths of ms, that `new Date` will drop\n // same logic as in Lib.ms2DateTime\n var msecTenths = Math.floor(Lib.mod(v + 0.05, 1) * 10);\n var msRounded = Math.round(v - msecTenths / 10);\n ms = dateTime2ms(new Date(msRounded)) + msecTenths / 10;\n } else return BADNUM;\n }\n return ms;\n }\n\n // wrapped ms2DateTime to insert default ax.calendar\n function ms2dt(v, r, calendar) {\n return ms2DateTime(v, r, calendar || ax.calendar);\n }\n\n function getCategoryName(v) {\n return ax._categories[Math.round(v)];\n }\n\n /*\n * setCategoryIndex: return the index of category v,\n * inserting it in the list if it's not already there\n *\n * this will enter the categories in the order it\n * encounters them, ie all the categories from the\n * first data set, then all the ones from the second\n * that aren't in the first etc.\n *\n * it is assumed that this function is being invoked in the\n * already sorted category order; otherwise there would be\n * a disconnect between the array and the index returned\n */\n function setCategoryIndex(v) {\n if(isValidCategory(v)) {\n if(ax._categoriesMap === undefined) {\n ax._categoriesMap = {};\n }\n\n if(ax._categoriesMap[v] !== undefined) {\n return ax._categoriesMap[v];\n } else {\n ax._categories.push(typeof v === 'number' ? String(v) : v);\n\n var curLength = ax._categories.length - 1;\n ax._categoriesMap[v] = curLength;\n\n return curLength;\n }\n }\n return BADNUM;\n }\n\n function setMultiCategoryIndex(arrayIn, len) {\n var arrayOut = new Array(len);\n\n for(var i = 0; i < len; i++) {\n var v0 = (arrayIn[0] || [])[i];\n var v1 = (arrayIn[1] || [])[i];\n arrayOut[i] = getCategoryIndex([v0, v1]);\n }\n\n return arrayOut;\n }\n\n function getCategoryIndex(v) {\n if(ax._categoriesMap) {\n return ax._categoriesMap[v];\n }\n }\n\n function getCategoryPosition(v) {\n // d2l/d2c variant that that won't add categories but will also\n // allow numbers to be mapped to the linearized axis positions\n var index = getCategoryIndex(v);\n if(index !== undefined) return index;\n if(isNumeric(v)) return +v;\n }\n\n function l2p(v) {\n if(!isNumeric(v)) return BADNUM;\n\n // include 2 fractional digits on pixel, for PDF zooming etc\n return d3.round(ax._b + ax._m * v, 2);\n }\n\n function p2l(px) { return (px - ax._b) / ax._m; }\n\n // conversions among c/l/p are fairly simple - do them together for all axis types\n ax.c2l = (ax.type === 'log') ? toLog : ensureNumber;\n ax.l2c = (ax.type === 'log') ? fromLog : ensureNumber;\n\n ax.l2p = l2p;\n ax.p2l = p2l;\n\n ax.c2p = (ax.type === 'log') ? function(v, clip) { return l2p(toLog(v, clip)); } : l2p;\n ax.p2c = (ax.type === 'log') ? function(px) { return fromLog(p2l(px)); } : p2l;\n\n /*\n * now type-specific conversions for **ALL** other combinations\n * they're all written out, instead of being combinations of each other, for\n * both clarity and speed.\n */\n if(['linear', '-'].indexOf(ax.type) !== -1) {\n // all are data vals, but d and r need cleaning\n ax.d2r = ax.r2d = ax.d2c = ax.r2c = ax.d2l = ax.r2l = cleanNumber;\n ax.c2d = ax.c2r = ax.l2d = ax.l2r = ensureNumber;\n\n ax.d2p = ax.r2p = function(v) { return ax.l2p(cleanNumber(v)); };\n ax.p2d = ax.p2r = p2l;\n\n ax.cleanPos = ensureNumber;\n } else if(ax.type === 'log') {\n // d and c are data vals, r and l are logged (but d and r need cleaning)\n ax.d2r = ax.d2l = function(v, clip) { return toLog(cleanNumber(v), clip); };\n ax.r2d = ax.r2c = function(v) { return fromLog(cleanNumber(v)); };\n\n ax.d2c = ax.r2l = cleanNumber;\n ax.c2d = ax.l2r = ensureNumber;\n\n ax.c2r = toLog;\n ax.l2d = fromLog;\n\n ax.d2p = function(v, clip) { return ax.l2p(ax.d2r(v, clip)); };\n ax.p2d = function(px) { return fromLog(p2l(px)); };\n\n ax.r2p = function(v) { return ax.l2p(cleanNumber(v)); };\n ax.p2r = p2l;\n\n ax.cleanPos = ensureNumber;\n } else if(ax.type === 'date') {\n // r and d are date strings, l and c are ms\n\n /*\n * Any of these functions with r and d on either side, calendar is the\n * **3rd** argument. log has reserved the second argument.\n *\n * Unless you need the special behavior of the second arg (ms2DateTime\n * uses this to limit precision, toLog uses true to clip negatives\n * to offscreen low rather than undefined), it's safe to pass 0.\n */\n ax.d2r = ax.r2d = Lib.identity;\n\n ax.d2c = ax.r2c = ax.d2l = ax.r2l = dt2ms;\n ax.c2d = ax.c2r = ax.l2d = ax.l2r = ms2dt;\n\n ax.d2p = ax.r2p = function(v, _, calendar) { return ax.l2p(dt2ms(v, 0, calendar)); };\n ax.p2d = ax.p2r = function(px, r, calendar) { return ms2dt(p2l(px), r, calendar); };\n\n ax.cleanPos = function(v) { return Lib.cleanDate(v, BADNUM, ax.calendar); };\n } else if(ax.type === 'category') {\n // d is categories (string)\n // c and l are indices (numbers)\n // r is categories or numbers\n\n ax.d2c = ax.d2l = setCategoryIndex;\n ax.r2d = ax.c2d = ax.l2d = getCategoryName;\n\n ax.d2r = ax.d2l_noadd = getCategoryPosition;\n\n ax.r2c = function(v) {\n var index = getCategoryPosition(v);\n return index !== undefined ? index : ax.fraction2r(0.5);\n };\n\n ax.l2r = ax.c2r = ensureNumber;\n ax.r2l = getCategoryPosition;\n\n ax.d2p = function(v) { return ax.l2p(ax.r2c(v)); };\n ax.p2d = function(px) { return getCategoryName(p2l(px)); };\n ax.r2p = ax.d2p;\n ax.p2r = p2l;\n\n ax.cleanPos = function(v) {\n if(typeof v === 'string' && v !== '') return v;\n return ensureNumber(v);\n };\n } else if(ax.type === 'multicategory') {\n // N.B. multicategory axes don't define d2c and d2l,\n // as 'data-to-calcdata' conversion needs to take into\n // account all data array items as in ax.makeCalcdata.\n\n ax.r2d = ax.c2d = ax.l2d = getCategoryName;\n ax.d2r = ax.d2l_noadd = getCategoryPosition;\n\n ax.r2c = function(v) {\n var index = getCategoryPosition(v);\n return index !== undefined ? index : ax.fraction2r(0.5);\n };\n\n ax.r2c_just_indices = getCategoryIndex;\n\n ax.l2r = ax.c2r = ensureNumber;\n ax.r2l = getCategoryPosition;\n\n ax.d2p = function(v) { return ax.l2p(ax.r2c(v)); };\n ax.p2d = function(px) { return getCategoryName(p2l(px)); };\n ax.r2p = ax.d2p;\n ax.p2r = p2l;\n\n ax.cleanPos = function(v) {\n if(Array.isArray(v) || (typeof v === 'string' && v !== '')) return v;\n return ensureNumber(v);\n };\n\n ax.setupMultiCategory = function(fullData) {\n var traceIndices = ax._traceIndices;\n var i, j;\n\n var matchGroups = fullLayout._axisMatchGroups;\n if(matchGroups && matchGroups.length && ax._categories.length === 0) {\n for(i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n if(group[axId]) {\n for(var axId2 in group) {\n if(axId2 !== axId) {\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n traceIndices = traceIndices.concat(ax2._traceIndices);\n }\n }\n }\n }\n }\n\n // [ [cnt, {$cat: index}], for 1,2 ]\n var seen = [[0, {}], [0, {}]];\n // [ [arrayIn[0][i], arrayIn[1][i]], for i .. N ]\n var list = [];\n\n for(i = 0; i < traceIndices.length; i++) {\n var trace = fullData[traceIndices[i]];\n\n if(axLetter in trace) {\n var arrayIn = trace[axLetter];\n var len = trace._length || Lib.minRowLength(arrayIn);\n\n if(isArrayOrTypedArray(arrayIn[0]) && isArrayOrTypedArray(arrayIn[1])) {\n for(j = 0; j < len; j++) {\n var v0 = arrayIn[0][j];\n var v1 = arrayIn[1][j];\n\n if(isValidCategory(v0) && isValidCategory(v1)) {\n list.push([v0, v1]);\n\n if(!(v0 in seen[0][1])) {\n seen[0][1][v0] = seen[0][0]++;\n }\n if(!(v1 in seen[1][1])) {\n seen[1][1][v1] = seen[1][0]++;\n }\n }\n }\n }\n }\n }\n\n list.sort(function(a, b) {\n var ind0 = seen[0][1];\n var d = ind0[a[0]] - ind0[b[0]];\n if(d) return d;\n\n var ind1 = seen[1][1];\n return ind1[a[1]] - ind1[b[1]];\n });\n\n for(i = 0; i < list.length; i++) {\n setCategoryIndex(list[i]);\n }\n };\n }\n\n // find the range value at the specified (linear) fraction of the axis\n ax.fraction2r = function(v) {\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n return ax.l2r(rl0 + v * (rl1 - rl0));\n };\n\n // find the fraction of the range at the specified range value\n ax.r2fraction = function(v) {\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n return (ax.r2l(v) - rl0) / (rl1 - rl0);\n };\n\n /*\n * cleanRange: make sure range is a couplet of valid & distinct values\n * keep numbers away from the limits of floating point numbers,\n * and dates away from the ends of our date system (+/- 9999 years)\n *\n * optional param rangeAttr: operate on a different attribute, like\n * ax._r, rather than ax.range\n */\n ax.cleanRange = function(rangeAttr, opts) {\n if(!opts) opts = {};\n if(!rangeAttr) rangeAttr = 'range';\n\n var range = Lib.nestedProperty(ax, rangeAttr).get();\n var i, dflt;\n\n if(ax.type === 'date') dflt = Lib.dfltRange(ax.calendar);\n else if(axLetter === 'y') dflt = constants.DFLTRANGEY;\n else dflt = opts.dfltRange || constants.DFLTRANGEX;\n\n // make sure we don't later mutate the defaults\n dflt = dflt.slice();\n\n if(ax.rangemode === 'tozero' || ax.rangemode === 'nonnegative') {\n dflt[0] = 0;\n }\n\n if(!range || range.length !== 2) {\n Lib.nestedProperty(ax, rangeAttr).set(dflt);\n return;\n }\n\n if(ax.type === 'date' && !ax.autorange) {\n // check if milliseconds or js date objects are provided for range\n // and convert to date strings\n range[0] = Lib.cleanDate(range[0], BADNUM, ax.calendar);\n range[1] = Lib.cleanDate(range[1], BADNUM, ax.calendar);\n }\n\n for(i = 0; i < 2; i++) {\n if(ax.type === 'date') {\n if(!Lib.isDateTime(range[i], ax.calendar)) {\n ax[rangeAttr] = dflt;\n break;\n }\n\n if(ax.r2l(range[0]) === ax.r2l(range[1])) {\n // split by +/- 1 second\n var linCenter = Lib.constrain(ax.r2l(range[0]),\n Lib.MIN_MS + 1000, Lib.MAX_MS - 1000);\n range[0] = ax.l2r(linCenter - 1000);\n range[1] = ax.l2r(linCenter + 1000);\n break;\n }\n } else {\n if(!isNumeric(range[i])) {\n if(isNumeric(range[1 - i])) {\n range[i] = range[1 - i] * (i ? 10 : 0.1);\n } else {\n ax[rangeAttr] = dflt;\n break;\n }\n }\n\n if(range[i] < -FP_SAFE) range[i] = -FP_SAFE;\n else if(range[i] > FP_SAFE) range[i] = FP_SAFE;\n\n if(range[0] === range[1]) {\n // somewhat arbitrary: split by 1 or 1ppm, whichever is bigger\n var inc = Math.max(1, Math.abs(range[0] * 1e-6));\n range[0] -= inc;\n range[1] += inc;\n }\n }\n }\n };\n\n // set scaling to pixels\n ax.setScale = function(usePrivateRange) {\n var gs = fullLayout._size;\n\n // make sure we have a domain (pull it in from the axis\n // this one is overlaying if necessary)\n if(ax.overlaying) {\n var ax2 = axisIds.getFromId({ _fullLayout: fullLayout }, ax.overlaying);\n ax.domain = ax2.domain;\n }\n\n // While transitions are occuring, occurring, we get a double-transform\n // issue if we transform the drawn layer *and* use the new axis range to\n // draw the data. This allows us to construct setConvert using the pre-\n // interaction values of the range:\n var rangeAttr = (usePrivateRange && ax._r) ? '_r' : 'range';\n var calendar = ax.calendar;\n ax.cleanRange(rangeAttr);\n\n var rl0 = ax.r2l(ax[rangeAttr][0], calendar);\n var rl1 = ax.r2l(ax[rangeAttr][1], calendar);\n\n if(axLetter === 'y') {\n ax._offset = gs.t + (1 - ax.domain[1]) * gs.h;\n ax._length = gs.h * (ax.domain[1] - ax.domain[0]);\n ax._m = ax._length / (rl0 - rl1);\n ax._b = -ax._m * rl1;\n } else {\n ax._offset = gs.l + ax.domain[0] * gs.w;\n ax._length = gs.w * (ax.domain[1] - ax.domain[0]);\n ax._m = ax._length / (rl1 - rl0);\n ax._b = -ax._m * rl0;\n }\n\n if(!isFinite(ax._m) || !isFinite(ax._b) || ax._length < 0) {\n fullLayout._replotting = false;\n throw new Error('Something went wrong with axis scaling');\n }\n };\n\n // makeCalcdata: takes an x or y array and converts it\n // to a position on the axis object \"ax\"\n // inputs:\n // trace - a data object from gd.data\n // axLetter - a string, either 'x' or 'y', for which item\n // to convert (TODO: is this now always the same as\n // the first letter of ax._id?)\n // in case the expected data isn't there, make a list of\n // integers based on the opposite data\n ax.makeCalcdata = function(trace, axLetter) {\n var arrayIn, arrayOut, i, len;\n\n var axType = ax.type;\n var cal = axType === 'date' && trace[axLetter + 'calendar'];\n\n if(axLetter in trace) {\n arrayIn = trace[axLetter];\n len = trace._length || Lib.minRowLength(arrayIn);\n\n if(Lib.isTypedArray(arrayIn) && (axType === 'linear' || axType === 'log')) {\n if(len === arrayIn.length) {\n return arrayIn;\n } else if(arrayIn.subarray) {\n return arrayIn.subarray(0, len);\n }\n }\n\n if(axType === 'multicategory') {\n return setMultiCategoryIndex(arrayIn, len);\n }\n\n arrayOut = new Array(len);\n for(i = 0; i < len; i++) {\n arrayOut[i] = ax.d2c(arrayIn[i], 0, cal);\n }\n } else {\n var v0 = ((axLetter + '0') in trace) ? ax.d2c(trace[axLetter + '0'], 0, cal) : 0;\n var dv = (trace['d' + axLetter]) ? Number(trace['d' + axLetter]) : 1;\n\n // the opposing data, for size if we have x and dx etc\n arrayIn = trace[{x: 'y', y: 'x'}[axLetter]];\n len = trace._length || arrayIn.length;\n arrayOut = new Array(len);\n\n for(i = 0; i < len; i++) {\n arrayOut[i] = v0 + i * dv;\n }\n }\n\n return arrayOut;\n };\n\n ax.isValidRange = function(range) {\n return (\n Array.isArray(range) &&\n range.length === 2 &&\n isNumeric(ax.r2l(range[0])) &&\n isNumeric(ax.r2l(range[1]))\n );\n };\n\n ax.isPtWithinRange = function(d, calendar) {\n var coord = ax.c2l(d[axLetter], null, calendar);\n var r0 = ax.r2l(ax.range[0]);\n var r1 = ax.r2l(ax.range[1]);\n\n if(r0 < r1) {\n return r0 <= coord && coord <= r1;\n } else {\n // Reversed axis case.\n return r1 <= coord && coord <= r0;\n }\n };\n\n // should skip if not category nor multicategory\n ax.clearCalc = function() {\n var emptyCategories = function() {\n ax._categories = [];\n ax._categoriesMap = {};\n };\n\n var matchGroups = fullLayout._axisMatchGroups;\n\n if(matchGroups && matchGroups.length) {\n var found = false;\n\n for(var i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n\n if(group[axId]) {\n found = true;\n var categories = null;\n var categoriesMap = null;\n\n for(var axId2 in group) {\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n if(ax2._categories) {\n categories = ax2._categories;\n categoriesMap = ax2._categoriesMap;\n break;\n }\n }\n\n if(categories && categoriesMap) {\n ax._categories = categories;\n ax._categoriesMap = categoriesMap;\n } else {\n emptyCategories();\n }\n break;\n }\n }\n if(!found) emptyCategories();\n } else {\n emptyCategories();\n }\n\n if(ax._initialCategories) {\n for(var j = 0; j < ax._initialCategories.length; j++) {\n setCategoryIndex(ax._initialCategories[j]);\n }\n }\n };\n\n // sort the axis (and all the matching ones) by _initialCategories\n // returns the indices of the traces affected by the reordering\n ax.sortByInitialCategories = function() {\n var affectedTraces = [];\n var emptyCategories = function() {\n ax._categories = [];\n ax._categoriesMap = {};\n };\n\n emptyCategories();\n\n if(ax._initialCategories) {\n for(var j = 0; j < ax._initialCategories.length; j++) {\n setCategoryIndex(ax._initialCategories[j]);\n }\n }\n\n affectedTraces = affectedTraces.concat(ax._traceIndices);\n\n // Propagate to matching axes\n var group = ax._matchGroup;\n for(var axId2 in group) {\n if(axId === axId2) continue;\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n ax2._categories = ax._categories;\n ax2._categoriesMap = ax._categoriesMap;\n affectedTraces = affectedTraces.concat(ax2._traceIndices);\n }\n return affectedTraces;\n };\n\n // Propagate localization into the axis so that\n // methods in Axes can use it w/o having to pass fullLayout\n // Default (non-d3) number formatting uses separators directly\n // dates and d3-formatted numbers use the d3 locale\n // Fall back on default format for dummy axes that don't care about formatting\n var locale = fullLayout._d3locale;\n if(ax.type === 'date') {\n ax._dateFormat = locale ? locale.timeFormat.utc : d3.time.format.utc;\n ax._extraFormat = fullLayout._extraFormat;\n }\n // occasionally we need _numFormat to pass through\n // even though it won't be needed by this axis\n ax._separators = fullLayout.separators;\n ax._numFormat = locale ? locale.numberFormat : d3.format;\n\n // and for bar charts and box plots: reset forced minimum tick spacing\n delete ax._minDtick;\n delete ax._forceTick0;\n};\n\n\n/***/ }),\n\n/***/ \"1a5e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nmodule.exports = {\n // padding in pixels around text\n TEXTPAD: 3,\n // 'value' and 'label' are not really necessary for bar traces,\n // but they were made available to `texttemplate` (maybe by accident)\n // via tokens `%{value}` and `%{label}` starting in 1.50.0,\n // so let's include them in the event data also.\n eventDataKeys: ['value', 'label']\n};\n\n\n/***/ }),\n\n/***/ \"1a88\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// CONCATENATED MODULE: ./node_modules/d3-path/src/path.js\nvar pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\n/* harmony default export */ var src_path = (path);\n\n// CONCATENATED MODULE: ./node_modules/d3-shape/src/array.js\nvar slice = Array.prototype.slice;\n\n// CONCATENATED MODULE: ./node_modules/d3-shape/src/constant.js\n/* harmony default export */ var constant = (function(x) {\n return function constant() {\n return x;\n };\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-shape/src/point.js\nfunction point_x(p) {\n return p[0];\n}\n\nfunction point_y(p) {\n return p[1];\n}\n\n// CONCATENATED MODULE: ./node_modules/d3-shape/src/pointRadial.js\n/* harmony default export */ var pointRadial = (function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-shape/src/link/index.js\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return linkHorizontal; });\n/* unused harmony export linkVertical */\n/* unused harmony export linkRadial */\n\n\n\n\n\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link_link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = point_x,\n y = point_y,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = src_path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nfunction linkHorizontal() {\n return link_link(curveHorizontal);\n}\n\nfunction linkVertical() {\n return link_link(curveVertical);\n}\n\nfunction linkRadial() {\n var l = link_link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n\n\n/***/ }),\n\n/***/ \"1a94\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (fn) {\n\tif (typeof fn !== \"function\") throw new TypeError(fn + \" is not a function\");\n\treturn fn;\n};\n\n\n/***/ }),\n\n/***/ \"1aea\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Fx = __webpack_require__(\"a5c4\");\nvar dragElement = __webpack_require__(\"4efe\");\nvar setCursor = __webpack_require__(\"0f37\");\n\nvar makeDragBox = __webpack_require__(\"9676\").makeDragBox;\nvar DRAGGERSIZE = __webpack_require__(\"d301\").DRAGGERSIZE;\n\nexports.initInteractions = function initInteractions(gd) {\n var fullLayout = gd._fullLayout;\n\n if(gd._context.staticPlot) {\n // this sweeps up more than just cartesian drag elements...\n d3.select(gd).selectAll('.drag').remove();\n return;\n }\n\n if(!fullLayout._has('cartesian') && !fullLayout._has('splom')) return;\n\n var subplots = Object.keys(fullLayout._plots || {}).sort(function(a, b) {\n // sort overlays last, then by x axis number, then y axis number\n if((fullLayout._plots[a].mainplot && true) ===\n (fullLayout._plots[b].mainplot && true)) {\n var aParts = a.split('y');\n var bParts = b.split('y');\n return (aParts[0] === bParts[0]) ?\n (Number(aParts[1] || 1) - Number(bParts[1] || 1)) :\n (Number(aParts[0] || 1) - Number(bParts[0] || 1));\n }\n return fullLayout._plots[a].mainplot ? 1 : -1;\n });\n\n subplots.forEach(function(subplot) {\n var plotinfo = fullLayout._plots[subplot];\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n // main and corner draggers need not be repeated for\n // overlaid subplots - these draggers drag them all\n if(!plotinfo.mainplot) {\n // main dragger goes over the grids and data, so we use its\n // mousemove events for all data hover effects\n var maindrag = makeDragBox(gd, plotinfo, xa._offset, ya._offset,\n xa._length, ya._length, 'ns', 'ew');\n\n maindrag.onmousemove = function(evt) {\n // This is on `gd._fullLayout`, *not* fullLayout because the reference\n // changes by the time this is called again.\n gd._fullLayout._rehover = function() {\n if((gd._fullLayout._hoversubplot === subplot) && gd._fullLayout._plots[subplot]) {\n Fx.hover(gd, evt, subplot);\n }\n };\n\n Fx.hover(gd, evt, subplot);\n\n // Note that we have *not* used the cached fullLayout variable here\n // since that may be outdated when this is called as a callback later on\n gd._fullLayout._lasthover = maindrag;\n gd._fullLayout._hoversubplot = subplot;\n };\n\n /*\n * IMPORTANT:\n * We must check for the presence of the drag cover here.\n * If we don't, a 'mouseout' event is triggered on the\n * maindrag before each 'click' event, which has the effect\n * of clearing the hoverdata; thus, cancelling the click event.\n */\n maindrag.onmouseout = function(evt) {\n if(gd._dragging) return;\n\n // When the mouse leaves this maindrag, unset the hovered subplot.\n // This may cause problems if it leaves the subplot directly *onto*\n // another subplot, but that's a tiny corner case at the moment.\n gd._fullLayout._hoversubplot = null;\n\n dragElement.unhover(gd, evt);\n };\n\n // corner draggers\n if(gd._context.showAxisDragHandles) {\n makeDragBox(gd, plotinfo, xa._offset - DRAGGERSIZE, ya._offset - DRAGGERSIZE,\n DRAGGERSIZE, DRAGGERSIZE, 'n', 'w');\n makeDragBox(gd, plotinfo, xa._offset + xa._length, ya._offset - DRAGGERSIZE,\n DRAGGERSIZE, DRAGGERSIZE, 'n', 'e');\n makeDragBox(gd, plotinfo, xa._offset - DRAGGERSIZE, ya._offset + ya._length,\n DRAGGERSIZE, DRAGGERSIZE, 's', 'w');\n makeDragBox(gd, plotinfo, xa._offset + xa._length, ya._offset + ya._length,\n DRAGGERSIZE, DRAGGERSIZE, 's', 'e');\n }\n }\n if(gd._context.showAxisDragHandles) {\n // x axis draggers - if you have overlaid plots,\n // these drag each axis separately\n if(subplot === xa._mainSubplot) {\n // the y position of the main x axis line\n var y0 = xa._mainLinePosition;\n if(xa.side === 'top') y0 -= DRAGGERSIZE;\n makeDragBox(gd, plotinfo, xa._offset + xa._length * 0.1, y0,\n xa._length * 0.8, DRAGGERSIZE, '', 'ew');\n makeDragBox(gd, plotinfo, xa._offset, y0,\n xa._length * 0.1, DRAGGERSIZE, '', 'w');\n makeDragBox(gd, plotinfo, xa._offset + xa._length * 0.9, y0,\n xa._length * 0.1, DRAGGERSIZE, '', 'e');\n }\n // y axis draggers\n if(subplot === ya._mainSubplot) {\n // the x position of the main y axis line\n var x0 = ya._mainLinePosition;\n if(ya.side !== 'right') x0 -= DRAGGERSIZE;\n makeDragBox(gd, plotinfo, x0, ya._offset + ya._length * 0.1,\n DRAGGERSIZE, ya._length * 0.8, 'ns', '');\n makeDragBox(gd, plotinfo, x0, ya._offset + ya._length * 0.9,\n DRAGGERSIZE, ya._length * 0.1, 's', '');\n makeDragBox(gd, plotinfo, x0, ya._offset,\n DRAGGERSIZE, ya._length * 0.1, 'n', '');\n }\n }\n });\n\n // In case you mousemove over some hovertext, send it to Fx.hover too\n // we do this so that we can put the hover text in front of everything,\n // but still be able to interact with everything as if it isn't there\n var hoverLayer = fullLayout._hoverlayer.node();\n\n hoverLayer.onmousemove = function(evt) {\n evt.target = gd._fullLayout._lasthover;\n Fx.hover(gd, evt, fullLayout._hoversubplot);\n };\n\n hoverLayer.onclick = function(evt) {\n evt.target = gd._fullLayout._lasthover;\n Fx.click(gd, evt);\n };\n\n // also delegate mousedowns... TODO: does this actually work?\n hoverLayer.onmousedown = function(evt) {\n gd._fullLayout._lasthover.onmousedown(evt);\n };\n\n exports.updateFx(gd);\n};\n\n// Minimal set of update needed on 'modebar' edits.\n// We only need to update the cursor style.\n//\n// Note that changing the axis configuration and/or the fixedrange attribute\n// should trigger a full initInteractions.\nexports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var cursor = fullLayout.dragmode === 'pan' ? 'move' : 'crosshair';\n setCursor(fullLayout._draggers, cursor);\n};\n\n\n/***/ }),\n\n/***/ \"1b06\":\n/***/ (function(module, exports) {\n\nmodule.exports = lerp;\n\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {vec3} out\n */\nfunction lerp(out, a, b, t) {\n var ax = a[0],\n ay = a[1],\n az = a[2]\n out[0] = ax + t * (b[0] - ax)\n out[1] = ay + t * (b[1] - ay)\n out[2] = az + t * (b[2] - az)\n return out\n}\n\n/***/ }),\n\n/***/ \"1b6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar Lib = __webpack_require__(\"fc26\");\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nmodule.exports = function clean2dArray(zOld, trace, xa, ya) {\n var rowlen, collen, getCollen, old2new, i, j;\n\n function cleanZvalue(v) {\n if(!isNumeric(v)) return undefined;\n return +v;\n }\n\n if(trace && trace.transpose) {\n rowlen = 0;\n for(i = 0; i < zOld.length; i++) rowlen = Math.max(rowlen, zOld[i].length);\n if(rowlen === 0) return false;\n getCollen = function(zOld) { return zOld.length; };\n old2new = function(zOld, i, j) { return (zOld[j] || [])[i]; };\n } else {\n rowlen = zOld.length;\n getCollen = function(zOld, i) { return zOld[i].length; };\n old2new = function(zOld, i, j) { return (zOld[i] || [])[j]; };\n }\n\n var padOld2new = function(zOld, i, j) {\n if(i === BADNUM || j === BADNUM) return BADNUM;\n return old2new(zOld, i, j);\n };\n\n function axisMapping(ax) {\n if(trace && trace.type !== 'carpet' && trace.type !== 'contourcarpet' &&\n ax && ax.type === 'category' && trace['_' + ax._id.charAt(0)].length) {\n var axLetter = ax._id.charAt(0);\n var axMapping = {};\n var traceCategories = trace['_' + axLetter + 'CategoryMap'] || trace[axLetter];\n for(i = 0; i < traceCategories.length; i++) {\n axMapping[traceCategories[i]] = i;\n }\n return function(i) {\n var ind = axMapping[ax._categories[i]];\n return ind + 1 ? ind : BADNUM;\n };\n } else {\n return Lib.identity;\n }\n }\n\n var xMap = axisMapping(xa);\n var yMap = axisMapping(ya);\n\n if(ya && ya.type === 'category') rowlen = ya._categories.length;\n var zNew = new Array(rowlen);\n\n for(i = 0; i < rowlen; i++) {\n if(xa && xa.type === 'category') {\n collen = xa._categories.length;\n } else {\n collen = getCollen(zOld, i);\n }\n zNew[i] = new Array(collen);\n for(j = 0; j < collen; j++) zNew[i][j] = cleanZvalue(padOld2new(zOld, yMap(i), xMap(j)));\n }\n\n return zNew;\n};\n\n\n/***/ }),\n\n/***/ \"1b88\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\nvar loggers = __webpack_require__(\"ae13\");\n\n/**\n * Allow referencing a graph DOM element either directly\n * or by its id string\n *\n * @param {HTMLDivElement|string} gd: a graph element or its id\n *\n * @returns {HTMLDivElement} the DOM element of the graph\n */\nfunction getGraphDiv(gd) {\n var gdElement;\n\n if(typeof gd === 'string') {\n gdElement = document.getElementById(gd);\n\n if(gdElement === null) {\n throw new Error('No DOM element with id \\'' + gd + '\\' exists on the page.');\n }\n\n return gdElement;\n } else if(gd === null || gd === undefined) {\n throw new Error('DOM element provided is null or undefined');\n }\n\n // otherwise assume that gd is a DOM element\n return gd;\n}\n\nfunction isPlotDiv(el) {\n var el3 = d3.select(el);\n return el3.node() instanceof HTMLElement &&\n el3.size() &&\n el3.classed('js-plotly-plot');\n}\n\nfunction removeElement(el) {\n var elParent = el && el.parentNode;\n if(elParent) elParent.removeChild(el);\n}\n\n/**\n * for dynamically adding style rules\n * makes one stylesheet that contains all rules added\n * by all calls to this function\n */\nfunction addStyleRule(selector, styleString) {\n addRelatedStyleRule('global', selector, styleString);\n}\n\n/**\n * for dynamically adding style rules\n * to a stylesheet uniquely identified by a uid\n */\nfunction addRelatedStyleRule(uid, selector, styleString) {\n var id = 'plotly.js-style-' + uid;\n var style = document.getElementById(id);\n if(!style) {\n style = document.createElement('style');\n style.setAttribute('id', id);\n // WebKit hack :(\n style.appendChild(document.createTextNode(''));\n document.head.appendChild(style);\n }\n var styleSheet = style.sheet;\n\n if(styleSheet.insertRule) {\n styleSheet.insertRule(selector + '{' + styleString + '}', 0);\n } else if(styleSheet.addRule) {\n styleSheet.addRule(selector, styleString, 0);\n } else loggers.warn('addStyleRule failed');\n}\n\n/**\n * to remove from the page a stylesheet identified by a given uid\n */\nfunction deleteRelatedStyleRule(uid) {\n var id = 'plotly.js-style-' + uid;\n var style = document.getElementById(id);\n if(style) removeElement(style);\n}\n\nmodule.exports = {\n getGraphDiv: getGraphDiv,\n isPlotDiv: isPlotDiv,\n removeElement: removeElement,\n addStyleRule: addStyleRule,\n addRelatedStyleRule: addRelatedStyleRule,\n deleteRelatedStyleRule: deleteRelatedStyleRule\n};\n\n\n/***/ }),\n\n/***/ \"1bbd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\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/* http://keith-wood.name/calendars.html\n Thai calendar for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) February 2010.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = __webpack_require__(\"0230\");\nvar assign = __webpack_require__(\"320c\");\n\n\nvar gregorianCalendar = main.instance();\n\n/** Implementation of the Thai calendar.\n See http://en.wikipedia.org/wiki/Thai_calendar.\n @class ThaiCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction ThaiCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nThaiCalendar.prototype = new main.baseCalendar;\n\nassign(ThaiCalendar.prototype, {\n /** The calendar name.\n @memberof ThaiCalendar */\n name: 'Thai',\n /** Julian date of start of Thai epoch: 1 January 543 BCE (Gregorian).\n @memberof ThaiCalendar */\n jdEpoch: 1523098.5,\n /** Difference in years between Thai and Gregorian calendars.\n @memberof ThaiCalendar */\n yearsOffset: 543, \n /** Days per month in a common year.\n @memberof ThaiCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof ThaiCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof ThaiCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof ThaiCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof ThaiCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof ThaiCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Thai',\n epochs: ['BBE', 'BE'],\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n digits: null,\n dateFormat: 'dd/mm/yyyy',\n firstDay: 0,\n isRTL: false\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.leapYear(year);\n },\n\n /** Determine the week of the year for a date - ISO 8601.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.weekOfYear(year, date.month(), date.day());\n },\n\n /** Retrieve the number of days in a month.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.toJD(year, date.month(), date.day());\n },\n\n /** Create a new date from a Julian date.\n @memberof ThaiCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var date = gregorianCalendar.fromJD(jd);\n var year = this._g2tYear(date.year());\n return this.newDate(year, date.month(), date.day());\n },\n\n /** Convert Thai to Gregorian year.\n @memberof ThaiCalendar\n @private\n @param year {number} The Thai year.\n @return {number} The corresponding Gregorian year. */\n _t2gYear: function(year) {\n return year - this.yearsOffset - (year >= 1 && year <= this.yearsOffset ? 1 : 0);\n },\n\n /** Convert Gregorian to Thai year.\n @memberof ThaiCalendar\n @private\n @param year {number} The Gregorian year.\n @return {number} The corresponding Thai year. */\n _g2tYear: function(year) {\n return year + this.yearsOffset + (year >= -this.yearsOffset && year <= -1 ? 1 : 0);\n }\n});\n\n// Thai calendar implementation\nmain.calendars.thai = ThaiCalendar;\n\n\n\n/***/ }),\n\n/***/ \"1bbe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Icons = __webpack_require__(\"7559\");\nvar Parser = new DOMParser();\n\n/**\n * UI controller for interactive plots\n * @Class\n * @Param {object} opts\n * @Param {object} opts.buttons nested arrays of grouped buttons config objects\n * @Param {object} opts.container container div to append modeBar\n * @Param {object} opts.graphInfo primary plot object containing data and layout\n */\nfunction ModeBar(opts) {\n this.container = opts.container;\n this.element = document.createElement('div');\n\n this.update(opts.graphInfo, opts.buttons);\n\n this.container.appendChild(this.element);\n}\n\nvar proto = ModeBar.prototype;\n\n/**\n * Update modeBar (buttons and logo)\n *\n * @param {object} graphInfo primary plot object containing data and layout\n * @param {array of arrays} buttons nested arrays of grouped buttons to initialize\n *\n */\nproto.update = function(graphInfo, buttons) {\n this.graphInfo = graphInfo;\n\n var context = this.graphInfo._context;\n var fullLayout = this.graphInfo._fullLayout;\n var modeBarId = 'modebar-' + fullLayout._uid;\n\n this.element.setAttribute('id', modeBarId);\n this._uid = modeBarId;\n\n this.element.className = 'modebar';\n if(context.displayModeBar === 'hover') this.element.className += ' modebar--hover ease-bg';\n\n if(fullLayout.modebar.orientation === 'v') {\n this.element.className += ' vertical';\n buttons = buttons.reverse();\n }\n\n var style = fullLayout.modebar;\n var bgSelector = context.displayModeBar === 'hover' ? '.js-plotly-plot .plotly:hover ' : '';\n\n Lib.deleteRelatedStyleRule(modeBarId);\n Lib.addRelatedStyleRule(modeBarId, bgSelector + '#' + modeBarId + ' .modebar-group', 'background-color: ' + style.bgcolor);\n Lib.addRelatedStyleRule(modeBarId, '#' + modeBarId + ' .modebar-btn .icon path', 'fill: ' + style.color);\n Lib.addRelatedStyleRule(modeBarId, '#' + modeBarId + ' .modebar-btn:hover .icon path', 'fill: ' + style.activecolor);\n Lib.addRelatedStyleRule(modeBarId, '#' + modeBarId + ' .modebar-btn.active .icon path', 'fill: ' + style.activecolor);\n\n // if buttons or logo have changed, redraw modebar interior\n var needsNewButtons = !this.hasButtons(buttons);\n var needsNewLogo = (this.hasLogo !== context.displaylogo);\n var needsNewLocale = (this.locale !== context.locale);\n\n this.locale = context.locale;\n\n if(needsNewButtons || needsNewLogo || needsNewLocale) {\n this.removeAllButtons();\n\n this.updateButtons(buttons);\n\n if(context.watermark || context.displaylogo) {\n var logoGroup = this.getLogo();\n if(context.watermark) {\n logoGroup.className = logoGroup.className + ' watermark';\n }\n\n if(fullLayout.modebar.orientation === 'v') {\n this.element.insertBefore(logoGroup, this.element.childNodes[0]);\n } else {\n this.element.appendChild(logoGroup);\n }\n\n this.hasLogo = true;\n }\n }\n\n this.updateActiveButton();\n};\n\nproto.updateButtons = function(buttons) {\n var _this = this;\n\n this.buttons = buttons;\n this.buttonElements = [];\n this.buttonsNames = [];\n\n this.buttons.forEach(function(buttonGroup) {\n var group = _this.createGroup();\n\n buttonGroup.forEach(function(buttonConfig) {\n var buttonName = buttonConfig.name;\n if(!buttonName) {\n throw new Error('must provide button \\'name\\' in button config');\n }\n if(_this.buttonsNames.indexOf(buttonName) !== -1) {\n throw new Error('button name \\'' + buttonName + '\\' is taken');\n }\n _this.buttonsNames.push(buttonName);\n\n var button = _this.createButton(buttonConfig);\n _this.buttonElements.push(button);\n group.appendChild(button);\n });\n\n _this.element.appendChild(group);\n });\n};\n\n/**\n * Empty div for containing a group of buttons\n * @Return {HTMLelement}\n */\nproto.createGroup = function() {\n var group = document.createElement('div');\n group.className = 'modebar-group';\n return group;\n};\n\n/**\n * Create a new button div and set constant and configurable attributes\n * @Param {object} config (see ./buttons.js for more info)\n * @Return {HTMLelement}\n */\nproto.createButton = function(config) {\n var _this = this;\n var button = document.createElement('a');\n\n button.setAttribute('rel', 'tooltip');\n button.className = 'modebar-btn';\n\n var title = config.title;\n if(title === undefined) title = config.name;\n // for localization: allow title to be a callable that takes gd as arg\n else if(typeof title === 'function') title = title(this.graphInfo);\n\n if(title || title === 0) button.setAttribute('data-title', title);\n\n if(config.attr !== undefined) button.setAttribute('data-attr', config.attr);\n\n var val = config.val;\n if(val !== undefined) {\n if(typeof val === 'function') val = val(this.graphInfo);\n button.setAttribute('data-val', val);\n }\n\n var click = config.click;\n if(typeof click !== 'function') {\n throw new Error('must provide button \\'click\\' function in button config');\n } else {\n button.addEventListener('click', function(ev) {\n config.click(_this.graphInfo, ev);\n\n // only needed for 'hoverClosestGeo' which does not call relayout\n _this.updateActiveButton(ev.currentTarget);\n });\n }\n\n button.setAttribute('data-toggle', config.toggle || false);\n if(config.toggle) d3.select(button).classed('active', true);\n\n var icon = config.icon;\n if(typeof icon === 'function') {\n button.appendChild(icon());\n } else {\n button.appendChild(this.createIcon(icon || Icons.question));\n }\n button.setAttribute('data-gravity', config.gravity || 'n');\n\n return button;\n};\n\n/**\n * Add an icon to a button\n * @Param {object} thisIcon\n * @Param {number} thisIcon.width\n * @Param {string} thisIcon.path\n * @Param {string} thisIcon.color\n * @Return {HTMLelement}\n */\nproto.createIcon = function(thisIcon) {\n var iconHeight = isNumeric(thisIcon.height) ?\n Number(thisIcon.height) :\n thisIcon.ascent - thisIcon.descent;\n var svgNS = 'http://www.w3.org/2000/svg';\n var icon;\n\n if(thisIcon.path) {\n icon = document.createElementNS(svgNS, 'svg');\n icon.setAttribute('viewBox', [0, 0, thisIcon.width, iconHeight].join(' '));\n icon.setAttribute('class', 'icon');\n\n var path = document.createElementNS(svgNS, 'path');\n path.setAttribute('d', thisIcon.path);\n\n if(thisIcon.transform) {\n path.setAttribute('transform', thisIcon.transform);\n } else if(thisIcon.ascent !== undefined) {\n // Legacy icon transform calculation\n path.setAttribute('transform', 'matrix(1 0 0 -1 0 ' + thisIcon.ascent + ')');\n }\n\n icon.appendChild(path);\n }\n\n if(thisIcon.svg) {\n var svgDoc = Parser.parseFromString(thisIcon.svg, 'application/xml');\n icon = svgDoc.childNodes[0];\n }\n\n icon.setAttribute('height', '1em');\n icon.setAttribute('width', '1em');\n\n return icon;\n};\n\n/**\n * Updates active button with attribute specified in layout\n * @Param {object} graphInfo plot object containing data and layout\n * @Return {HTMLelement}\n */\nproto.updateActiveButton = function(buttonClicked) {\n var fullLayout = this.graphInfo._fullLayout;\n var dataAttrClicked = (buttonClicked !== undefined) ?\n buttonClicked.getAttribute('data-attr') :\n null;\n\n this.buttonElements.forEach(function(button) {\n var thisval = button.getAttribute('data-val') || true;\n var dataAttr = button.getAttribute('data-attr');\n var isToggleButton = (button.getAttribute('data-toggle') === 'true');\n var button3 = d3.select(button);\n\n // Use 'data-toggle' and 'buttonClicked' to toggle buttons\n // that have no one-to-one equivalent in fullLayout\n if(isToggleButton) {\n if(dataAttr === dataAttrClicked) {\n button3.classed('active', !button3.classed('active'));\n }\n } else {\n var val = (dataAttr === null) ?\n dataAttr :\n Lib.nestedProperty(fullLayout, dataAttr).get();\n\n button3.classed('active', val === thisval);\n }\n });\n};\n\n/**\n * Check if modeBar is configured as button configuration argument\n *\n * @Param {object} buttons 2d array of grouped button config objects\n * @Return {boolean}\n */\nproto.hasButtons = function(buttons) {\n var currentButtons = this.buttons;\n\n if(!currentButtons) return false;\n\n if(buttons.length !== currentButtons.length) return false;\n\n for(var i = 0; i < buttons.length; ++i) {\n if(buttons[i].length !== currentButtons[i].length) return false;\n for(var j = 0; j < buttons[i].length; j++) {\n if(buttons[i][j].name !== currentButtons[i][j].name) return false;\n }\n }\n\n return true;\n};\n\n/**\n * @return {HTMLDivElement} The logo image wrapped in a group\n */\nproto.getLogo = function() {\n var group = this.createGroup();\n var a = document.createElement('a');\n\n a.href = 'https://plot.ly/';\n a.target = '_blank';\n a.setAttribute('data-title', Lib._(this.graphInfo, 'Produced with Plotly'));\n a.className = 'modebar-btn plotlyjsicon modebar-btn--logo';\n\n a.appendChild(this.createIcon(Icons.newplotlylogo));\n\n group.appendChild(a);\n return group;\n};\n\nproto.removeAllButtons = function() {\n while(this.element.firstChild) {\n this.element.removeChild(this.element.firstChild);\n }\n\n this.hasLogo = false;\n};\n\nproto.destroy = function() {\n Lib.removeElement(this.container.querySelector('.modebar'));\n Lib.deleteRelatedStyleRule(this._uid);\n};\n\nfunction createModeBar(gd, buttons) {\n var fullLayout = gd._fullLayout;\n\n var modeBar = new ModeBar({\n graphInfo: gd,\n container: fullLayout._modebardiv.node(),\n buttons: buttons\n });\n\n if(fullLayout._privateplot) {\n d3.select(modeBar.element).append('span')\n .classed('badge-private float--left', true)\n .text('PRIVATE');\n }\n\n return modeBar;\n}\n\nmodule.exports = createModeBar;\n\n\n/***/ }),\n\n/***/ \"1be4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ \"1bea\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * RGB space.\n *\n * @module color-space/rgb\n */\n\n\nmodule.exports = {\n\tname: 'rgb',\n\tmin: [0,0,0],\n\tmax: [255,255,255],\n\tchannel: ['red', 'green', 'blue'],\n\talias: ['RGB']\n};\n\n\n/***/ }),\n\n/***/ \"1bef\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar subtypes = __webpack_require__(\"de81\");\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nmodule.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var trace = cd[0].trace;\n var i;\n\n if(!subtypes.hasMarkers(trace)) return [];\n\n if(selectionTester === false) {\n for(i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for(i = 0; i < cd.length; i++) {\n var di = cd[i];\n var lonlat = di.lonlat;\n\n if(lonlat[0] !== BADNUM) {\n var lonlat2 = [Lib.modHalf(lonlat[0], 360), lonlat[1]];\n var xy = [xa.c2p(lonlat2), ya.c2p(lonlat2)];\n\n if(selectionTester.contains(xy, null, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n lon: lonlat[0],\n lat: lonlat[1]\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n }\n\n return selection;\n};\n\n\n/***/ }),\n\n/***/ \"1c0b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"1c0b8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar attrs = __webpack_require__(\"8f38\");\nvar oppAxisAttrs = __webpack_require__(\"5844\");\nvar helpers = __webpack_require__(\"4c66\");\n\nmodule.exports = {\n moduleType: 'component',\n name: 'rangeslider',\n\n schema: {\n subplots: {\n xaxis: {\n rangeslider: Lib.extendFlat({}, attrs, {\n yaxis: oppAxisAttrs\n })\n }\n }\n },\n\n layoutAttributes: __webpack_require__(\"8f38\"),\n handleDefaults: __webpack_require__(\"6b10\"),\n calcAutorange: __webpack_require__(\"4cd2\"),\n draw: __webpack_require__(\"8b1d\"),\n isVisible: helpers.isVisible,\n makeData: helpers.makeData,\n autoMarginOpts: helpers.autoMarginOpts\n};\n\n\n/***/ }),\n\n/***/ \"1c1a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isValue = __webpack_require__(\"62c4\")\n , setPrototypeOf = __webpack_require__(\"e0f6\")\n , object = __webpack_require__(\"68e6\")\n , ensureValue = __webpack_require__(\"96ae\")\n , randomUniq = __webpack_require__(\"6599\")\n , d = __webpack_require__(\"f508\")\n , getIterator = __webpack_require__(\"8a50\")\n , forOf = __webpack_require__(\"c351\")\n , toStringTagSymbol = __webpack_require__(\"1c4a\").toStringTag\n , isNative = __webpack_require__(\"7d72\")\n\n , isArray = Array.isArray, defineProperty = Object.defineProperty\n , objHasOwnProperty = Object.prototype.hasOwnProperty, getPrototypeOf = Object.getPrototypeOf\n , WeakMapPoly;\n\nmodule.exports = WeakMapPoly = function (/* Iterable*/) {\n\tvar iterable = arguments[0], self;\n\n\tif (!(this instanceof WeakMapPoly)) throw new TypeError(\"Constructor requires 'new'\");\n\tself = isNative && setPrototypeOf && (WeakMap !== WeakMapPoly)\n\t\t? setPrototypeOf(new WeakMap(), getPrototypeOf(this)) : this;\n\n\tif (isValue(iterable)) {\n\t\tif (!isArray(iterable)) iterable = getIterator(iterable);\n\t}\n\tdefineProperty(self, \"__weakMapData__\", d(\"c\", \"$weakMap$\" + randomUniq()));\n\tif (!iterable) return self;\n\tforOf(iterable, function (val) {\n\t\tensureValue(val);\n\t\tself.set(val[0], val[1]);\n\t});\n\treturn self;\n};\n\nif (isNative) {\n\tif (setPrototypeOf) setPrototypeOf(WeakMapPoly, WeakMap);\n\tWeakMapPoly.prototype = Object.create(WeakMap.prototype, { constructor: d(WeakMapPoly) });\n}\n\nObject.defineProperties(WeakMapPoly.prototype, {\n\tdelete: d(function (key) {\n\t\tif (objHasOwnProperty.call(object(key), this.__weakMapData__)) {\n\t\t\tdelete key[this.__weakMapData__];\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}),\n\tget: d(function (key) {\n\t\tif (!objHasOwnProperty.call(object(key), this.__weakMapData__)) return undefined;\n\t\treturn key[this.__weakMapData__];\n\t}),\n\thas: d(function (key) {\n\t\treturn objHasOwnProperty.call(object(key), this.__weakMapData__);\n\t}),\n\tset: d(function (key, value) {\n\t\tdefineProperty(object(key), this.__weakMapData__, d(\"c\", value));\n\t\treturn this;\n\t}),\n\ttoString: d(function () {\n\t\treturn \"[object WeakMap]\";\n\t})\n});\ndefineProperty(WeakMapPoly.prototype, toStringTagSymbol, d(\"c\", \"WeakMap\"));\n\n\n/***/ }),\n\n/***/ \"1c1c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\nvar Registry = __webpack_require__(\"371e\");\n\nvar handleXYDefaults = __webpack_require__(\"076f\");\nvar handleStyleDefaults = __webpack_require__(\"9103\");\nvar getAxisGroup = __webpack_require__(\"3c1c\").getAxisGroup;\nvar attributes = __webpack_require__(\"fb5a\");\n\nvar coerceFont = Lib.coerceFont;\n\nfunction supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n coerce('orientation', (traceOut.x && !traceOut.y) ? 'h' : 'v');\n coerce('base');\n coerce('offset');\n coerce('width');\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n var textposition = coerce('textposition');\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: true,\n moduleHasUnselected: true,\n moduleHasConstrain: true,\n moduleHasCliponaxis: true,\n moduleHasTextangle: true,\n moduleHasInsideanchor: true\n });\n\n handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);\n\n var lineColor = (traceOut.marker.line || {}).color;\n\n // override defaultColor for error bars with defaultLine\n var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'});\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n}\n\nfunction handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce) {\n var orientation = traceOut.orientation;\n // N.B. grouping is done across all trace types that support it\n var posAxId = traceOut[{v: 'x', h: 'y'}[orientation] + 'axis'];\n var groupId = getAxisGroup(fullLayout, posAxId) + orientation;\n\n var alignmentOpts = fullLayout._alignmentOpts || {};\n var alignmentgroup = coerce('alignmentgroup');\n\n var alignmentGroups = alignmentOpts[groupId];\n if(!alignmentGroups) alignmentGroups = alignmentOpts[groupId] = {};\n\n var alignmentGroupOpts = alignmentGroups[alignmentgroup];\n\n if(alignmentGroupOpts) {\n alignmentGroupOpts.traces.push(traceOut);\n } else {\n alignmentGroupOpts = alignmentGroups[alignmentgroup] = {\n traces: [traceOut],\n alignmentIndex: Object.keys(alignmentGroups).length,\n offsetGroups: {}\n };\n }\n\n var offsetgroup = coerce('offsetgroup');\n var offsetGroups = alignmentGroupOpts.offsetGroups;\n var offsetGroupOpts = offsetGroups[offsetgroup];\n\n if(offsetgroup) {\n if(!offsetGroupOpts) {\n offsetGroupOpts = offsetGroups[offsetgroup] = {\n offsetIndex: Object.keys(offsetGroups).length\n };\n }\n\n traceOut._offsetIndex = offsetGroupOpts.offsetIndex;\n }\n}\n\nfunction crossTraceDefaults(fullData, fullLayout) {\n var traceIn, traceOut;\n\n function coerce(attr) {\n return Lib.coerce(traceOut._input, traceOut, attributes, attr);\n }\n\n if(fullLayout.barmode === 'group') {\n for(var i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n\n if(traceOut.type === 'bar') {\n traceIn = traceOut._input;\n handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce);\n }\n }\n }\n}\n\nfunction handleText(traceIn, traceOut, layout, coerce, textposition, opts) {\n opts = opts || {};\n var moduleHasSelected = !(opts.moduleHasSelected === false);\n var moduleHasUnselected = !(opts.moduleHasUnselected === false);\n var moduleHasConstrain = !(opts.moduleHasConstrain === false);\n var moduleHasCliponaxis = !(opts.moduleHasCliponaxis === false);\n var moduleHasTextangle = !(opts.moduleHasTextangle === false);\n var moduleHasInsideanchor = !(opts.moduleHasInsideanchor === false);\n var hasPathbar = !!opts.hasPathbar;\n\n var hasBoth = Array.isArray(textposition) || textposition === 'auto';\n var hasInside = hasBoth || textposition === 'inside';\n var hasOutside = hasBoth || textposition === 'outside';\n\n if(hasInside || hasOutside) {\n var dfltFont = coerceFont(coerce, 'textfont', layout.font);\n\n // Note that coercing `insidetextfont` is always needed –\n // even if `textposition` is `outside` for each trace – since\n // an outside label can become an inside one, for example because\n // of a bar being stacked on top of it.\n var insideTextFontDefault = Lib.extendFlat({}, dfltFont);\n var isTraceTextfontColorSet = traceIn.textfont && traceIn.textfont.color;\n var isColorInheritedFromLayoutFont = !isTraceTextfontColorSet;\n if(isColorInheritedFromLayoutFont) {\n delete insideTextFontDefault.color;\n }\n coerceFont(coerce, 'insidetextfont', insideTextFontDefault);\n\n if(hasPathbar) {\n var pathbarTextFontDefault = Lib.extendFlat({}, dfltFont);\n if(isColorInheritedFromLayoutFont) {\n delete pathbarTextFontDefault.color;\n }\n coerceFont(coerce, 'pathbar.textfont', pathbarTextFontDefault);\n }\n\n if(hasOutside) coerceFont(coerce, 'outsidetextfont', dfltFont);\n\n if(moduleHasSelected) coerce('selected.textfont.color');\n if(moduleHasUnselected) coerce('unselected.textfont.color');\n if(moduleHasConstrain) coerce('constraintext');\n if(moduleHasCliponaxis) coerce('cliponaxis');\n if(moduleHasTextangle) coerce('textangle');\n\n coerce('texttemplate');\n }\n\n if(hasInside) {\n if(moduleHasInsideanchor) coerce('insidetextanchor');\n }\n}\n\nmodule.exports = {\n supplyDefaults: supplyDefaults,\n crossTraceDefaults: crossTraceDefaults,\n handleGroupingDefaults: handleGroupingDefaults,\n handleText: handleText\n};\n\n\n/***/ }),\n\n/***/ \"1c4a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(\"ba61\")()\n\t? __webpack_require__(\"7c4a\").Symbol\n\t: __webpack_require__(\"94ee\");\n\n\n/***/ }),\n\n/***/ \"1c4d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nvar sizes = __webpack_require__(\"fde6\")\r\n\r\nmodule.exports = {\r\n\tisSize: function isSize(value) {\r\n\t\treturn /^[\\d\\.]/.test(value)\r\n\t\t\t|| value.indexOf('/') !== -1\r\n\t\t\t|| sizes.indexOf(value) !== -1\r\n\t}\r\n}\r\n\n\n/***/ }),\n\n/***/ \"1c82\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar extendDeep = __webpack_require__(\"9092\").extendDeep;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\nvar fontAttrs = __webpack_require__(\"9845\");\nvar colorAttrs = __webpack_require__(\"dfb3\");\nvar domainAttrs = __webpack_require__(\"81f0\").attributes;\nvar axesAttrs = __webpack_require__(\"d798\");\nvar templatedArray = __webpack_require__(\"a651\").templatedArray;\nvar delta = __webpack_require__(\"b8ce\");\nvar FORMAT_LINK = __webpack_require__(\"78df\").FORMAT_LINK;\n\nvar textFontAttrs = fontAttrs({\n editType: 'plot',\n colorEditType: 'plot'\n});\n\nvar gaugeBarAttrs = {\n color: {\n valType: 'color',\n editType: 'plot',\n \n \n },\n line: {\n color: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n editType: 'plot',\n \n },\n width: {\n valType: 'number',\n \n min: 0,\n dflt: 0,\n editType: 'plot',\n \n },\n editType: 'calc'\n },\n thickness: {\n valType: 'number',\n \n min: 0,\n max: 1,\n dflt: 1,\n editType: 'plot',\n \n },\n editType: 'calc'\n};\n\nvar rangeAttr = {\n valType: 'info_array',\n \n items: [\n {valType: 'number', editType: 'plot'},\n {valType: 'number', editType: 'plot'}\n ],\n editType: 'plot',\n \n};\n\nvar stepsAttrs = templatedArray('step', extendDeep({}, gaugeBarAttrs, {\n range: rangeAttr\n}));\n\nmodule.exports = {\n mode: {\n valType: 'flaglist',\n editType: 'calc',\n \n flags: ['number', 'delta', 'gauge'],\n dflt: 'number',\n \n },\n value: {\n valType: 'number',\n editType: 'calc',\n \n anim: true,\n \n },\n align: {\n valType: 'enumerated',\n values: ['left', 'center', 'right'],\n \n editType: 'plot',\n \n },\n // position\n domain: domainAttrs({name: 'indicator', trace: true, editType: 'calc'}),\n\n title: {\n text: {\n valType: 'string',\n \n editType: 'plot',\n \n },\n align: {\n valType: 'enumerated',\n values: ['left', 'center', 'right'],\n \n editType: 'plot',\n \n },\n font: extendFlat({}, textFontAttrs, {\n \n }),\n editType: 'plot'\n },\n number: {\n valueformat: {\n valType: 'string',\n dflt: '',\n \n editType: 'plot',\n \n },\n font: extendFlat({}, textFontAttrs, {\n \n }),\n prefix: {\n valType: 'string',\n dflt: '',\n \n editType: 'plot',\n \n },\n suffix: {\n valType: 'string',\n dflt: '',\n \n editType: 'plot',\n \n },\n editType: 'plot'\n },\n delta: {\n reference: {\n valType: 'number',\n \n editType: 'calc',\n \n },\n position: {\n valType: 'enumerated',\n values: ['top', 'bottom', 'left', 'right'],\n \n dflt: 'bottom',\n editType: 'plot',\n \n },\n relative: {\n valType: 'boolean',\n editType: 'plot',\n \n dflt: false,\n \n },\n valueformat: {\n valType: 'string',\n \n editType: 'plot',\n \n },\n increasing: {\n symbol: {\n valType: 'string',\n \n dflt: delta.INCREASING.SYMBOL,\n editType: 'plot',\n \n },\n color: {\n valType: 'color',\n \n dflt: delta.INCREASING.COLOR,\n editType: 'plot',\n \n },\n // TODO: add attribute to show sign\n editType: 'plot'\n },\n decreasing: {\n symbol: {\n valType: 'string',\n \n dflt: delta.DECREASING.SYMBOL,\n editType: 'plot',\n \n },\n color: {\n valType: 'color',\n \n dflt: delta.DECREASING.COLOR,\n editType: 'plot',\n \n },\n // TODO: add attribute to hide sign\n editType: 'plot'\n },\n font: extendFlat({}, textFontAttrs, {\n \n }),\n editType: 'calc'\n },\n gauge: {\n shape: {\n valType: 'enumerated',\n editType: 'plot',\n \n dflt: 'angular',\n values: ['angular', 'bullet'],\n \n },\n bar: extendDeep({}, gaugeBarAttrs, {\n color: {dflt: 'green'},\n \n }),\n // Background of the gauge\n bgcolor: {\n valType: 'color',\n \n editType: 'plot',\n \n },\n bordercolor: {\n valType: 'color',\n dflt: colorAttrs.defaultLine,\n \n editType: 'plot',\n \n },\n borderwidth: {\n valType: 'number',\n min: 0,\n dflt: 1,\n \n editType: 'plot',\n \n },\n axis: overrideAll({\n range: rangeAttr,\n visible: extendFlat({}, axesAttrs.visible, {\n dflt: true\n }),\n // tick and title properties named and function exactly as in axes\n tickmode: axesAttrs.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: extendFlat({}, axesAttrs.ticks, {dflt: 'outside'}),\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n showticklabels: axesAttrs.showticklabels,\n tickfont: fontAttrs({\n \n }),\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n tickprefix: axesAttrs.tickprefix,\n showtickprefix: axesAttrs.showtickprefix,\n ticksuffix: axesAttrs.ticksuffix,\n showticksuffix: axesAttrs.showticksuffix,\n separatethousands: axesAttrs.separatethousands,\n exponentformat: axesAttrs.exponentformat,\n showexponent: axesAttrs.showexponent,\n editType: 'plot'\n }, 'plot'),\n // Steps (or ranges) and thresholds\n steps: stepsAttrs,\n threshold: {\n line: {\n color: extendFlat({}, gaugeBarAttrs.line.color, {\n \n }),\n width: extendFlat({}, gaugeBarAttrs.line.width, {\n dflt: 1,\n \n }),\n editType: 'plot'\n },\n thickness: extendFlat({}, gaugeBarAttrs.thickness, {\n dflt: 0.85,\n \n }),\n value: {\n valType: 'number',\n editType: 'calc',\n dflt: false,\n \n \n },\n editType: 'plot'\n },\n \n editType: 'plot'\n // TODO: in future version, add marker: (bar|needle)\n }\n};\n\n\n/***/ }),\n\n/***/ \"1cfc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"6386\");\n\n\n/***/ }),\n\n/***/ \"1d19\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* @module to-float32 */\r\n\r\n\r\n\r\nmodule.exports = float32\r\nmodule.exports.float32 =\r\nmodule.exports.float = float32\r\nmodule.exports.fract32 =\r\nmodule.exports.fract = fract32\r\n\r\nvar narr = new Float32Array(1)\r\n\r\n// return fractional part of float32 array\r\nfunction fract32 (arr) {\r\n\tif (arr.length) {\r\n\t\tvar fract = float32(arr)\r\n\t\tfor (var i = 0, l = fract.length; i < l; i++) {\r\n\t\t\tfract[i] = arr[i] - fract[i]\r\n\t\t}\r\n\t\treturn fract\r\n\t}\r\n\r\n\t// number\r\n\treturn float32(arr - float32(arr))\r\n}\r\n\r\n// make sure data is float32 array\r\nfunction float32 (arr) {\r\n\tif (arr.length) {\r\n\t\tif (arr instanceof Float32Array) return arr\r\n\t\tvar float = new Float32Array(arr)\r\n\t\tfloat.set(arr)\r\n\t\treturn float\r\n\t}\r\n\r\n\t// number\r\n\tnarr[0] = arr\r\n\treturn narr[0]\r\n}\r\n\n\n/***/ }),\n\n/***/ \"1d4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar compile = __webpack_require__(\"c535\")\nvar CACHE = {}\n\nfunction sort(array) {\n var order = array.order\n var dtype = array.dtype\n var typeSig = [order, dtype ]\n var typeName = typeSig.join(\":\")\n var compiled = CACHE[typeName]\n if(!compiled) {\n CACHE[typeName] = compiled = compile(order, dtype)\n }\n compiled(array)\n return array\n}\n\nmodule.exports = sort\n\n/***/ }),\n\n/***/ \"1d5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ndarray = __webpack_require__(\"b5bb\")\nvar ops = __webpack_require__(\"62d6\")\nvar pool = __webpack_require__(\"cea5\")\n\nmodule.exports = createTexture2D\n\nvar linearTypes = null\nvar filterTypes = null\nvar wrapTypes = null\n\nfunction lazyInitLinearTypes(gl) {\n linearTypes = [\n gl.LINEAR,\n gl.NEAREST_MIPMAP_LINEAR,\n gl.LINEAR_MIPMAP_NEAREST,\n gl.LINEAR_MIPMAP_NEAREST\n ]\n filterTypes = [\n gl.NEAREST,\n gl.LINEAR,\n gl.NEAREST_MIPMAP_NEAREST,\n gl.NEAREST_MIPMAP_LINEAR,\n gl.LINEAR_MIPMAP_NEAREST,\n gl.LINEAR_MIPMAP_LINEAR\n ]\n wrapTypes = [\n gl.REPEAT,\n gl.CLAMP_TO_EDGE,\n gl.MIRRORED_REPEAT\n ]\n}\n\nfunction acceptTextureDOM (obj) {\n return (\n ('undefined' != typeof HTMLCanvasElement && obj instanceof HTMLCanvasElement) ||\n ('undefined' != typeof HTMLImageElement && obj instanceof HTMLImageElement) ||\n ('undefined' != typeof HTMLVideoElement && obj instanceof HTMLVideoElement) ||\n ('undefined' != typeof ImageData && obj instanceof ImageData))\n}\n\nvar convertFloatToUint8 = function(out, inp) {\n ops.muls(out, inp, 255.0)\n}\n\nfunction reshapeTexture(tex, w, h) {\n var gl = tex.gl\n var maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE)\n if(w < 0 || w > maxSize || h < 0 || h > maxSize) {\n throw new Error('gl-texture2d: Invalid texture size')\n }\n tex._shape = [w, h]\n tex.bind()\n gl.texImage2D(gl.TEXTURE_2D, 0, tex.format, w, h, 0, tex.format, tex.type, null)\n tex._mipLevels = [0]\n return tex\n}\n\nfunction Texture2D(gl, handle, width, height, format, type) {\n this.gl = gl\n this.handle = handle\n this.format = format\n this.type = type\n this._shape = [width, height]\n this._mipLevels = [0]\n this._magFilter = gl.NEAREST\n this._minFilter = gl.NEAREST\n this._wrapS = gl.CLAMP_TO_EDGE\n this._wrapT = gl.CLAMP_TO_EDGE\n this._anisoSamples = 1\n\n var parent = this\n var wrapVector = [this._wrapS, this._wrapT]\n Object.defineProperties(wrapVector, [\n {\n get: function() {\n return parent._wrapS\n },\n set: function(v) {\n return parent.wrapS = v\n }\n },\n {\n get: function() {\n return parent._wrapT\n },\n set: function(v) {\n return parent.wrapT = v\n }\n }\n ])\n this._wrapVector = wrapVector\n\n var shapeVector = [this._shape[0], this._shape[1]]\n Object.defineProperties(shapeVector, [\n {\n get: function() {\n return parent._shape[0]\n },\n set: function(v) {\n return parent.width = v\n }\n },\n {\n get: function() {\n return parent._shape[1]\n },\n set: function(v) {\n return parent.height = v\n }\n }\n ])\n this._shapeVector = shapeVector\n}\n\nvar proto = Texture2D.prototype\n\nObject.defineProperties(proto, {\n minFilter: {\n get: function() {\n return this._minFilter\n },\n set: function(v) {\n this.bind()\n var gl = this.gl\n if(this.type === gl.FLOAT && linearTypes.indexOf(v) >= 0) {\n if(!gl.getExtension('OES_texture_float_linear')) {\n v = gl.NEAREST\n }\n }\n if(filterTypes.indexOf(v) < 0) {\n throw new Error('gl-texture2d: Unknown filter mode ' + v)\n }\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, v)\n return this._minFilter = v\n }\n },\n magFilter: {\n get: function() {\n return this._magFilter\n },\n set: function(v) {\n this.bind()\n var gl = this.gl\n if(this.type === gl.FLOAT && linearTypes.indexOf(v) >= 0) {\n if(!gl.getExtension('OES_texture_float_linear')) {\n v = gl.NEAREST\n }\n }\n if(filterTypes.indexOf(v) < 0) {\n throw new Error('gl-texture2d: Unknown filter mode ' + v)\n }\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, v)\n return this._magFilter = v\n }\n },\n mipSamples: {\n get: function() {\n return this._anisoSamples\n },\n set: function(i) {\n var psamples = this._anisoSamples\n this._anisoSamples = Math.max(i, 1)|0\n if(psamples !== this._anisoSamples) {\n var ext = this.gl.getExtension('EXT_texture_filter_anisotropic')\n if(ext) {\n this.gl.texParameterf(this.gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, this._anisoSamples)\n }\n }\n return this._anisoSamples\n }\n },\n wrapS: {\n get: function() {\n return this._wrapS\n },\n set: function(v) {\n this.bind()\n if(wrapTypes.indexOf(v) < 0) {\n throw new Error('gl-texture2d: Unknown wrap mode ' + v)\n }\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, v)\n return this._wrapS = v\n }\n },\n wrapT: {\n get: function() {\n return this._wrapT\n },\n set: function(v) {\n this.bind()\n if(wrapTypes.indexOf(v) < 0) {\n throw new Error('gl-texture2d: Unknown wrap mode ' + v)\n }\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, v)\n return this._wrapT = v\n }\n },\n wrap: {\n get: function() {\n return this._wrapVector\n },\n set: function(v) {\n if(!Array.isArray(v)) {\n v = [v,v]\n }\n if(v.length !== 2) {\n throw new Error('gl-texture2d: Must specify wrap mode for rows and columns')\n }\n for(var i=0; i<2; ++i) {\n if(wrapTypes.indexOf(v[i]) < 0) {\n throw new Error('gl-texture2d: Unknown wrap mode ' + v)\n }\n }\n this._wrapS = v[0]\n this._wrapT = v[1]\n\n var gl = this.gl\n this.bind()\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, this._wrapS)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, this._wrapT)\n\n return v\n }\n },\n shape: {\n get: function() {\n return this._shapeVector\n },\n set: function(x) {\n if(!Array.isArray(x)) {\n x = [x|0,x|0]\n } else {\n if(x.length !== 2) {\n throw new Error('gl-texture2d: Invalid texture shape')\n }\n }\n reshapeTexture(this, x[0]|0, x[1]|0)\n return [x[0]|0, x[1]|0]\n }\n },\n width: {\n get: function() {\n return this._shape[0]\n },\n set: function(w) {\n w = w|0\n reshapeTexture(this, w, this._shape[1])\n return w\n }\n },\n height: {\n get: function() {\n return this._shape[1]\n },\n set: function(h) {\n h = h|0\n reshapeTexture(this, this._shape[0], h)\n return h\n }\n }\n})\n\nproto.bind = function(unit) {\n var gl = this.gl\n if(unit !== undefined) {\n gl.activeTexture(gl.TEXTURE0 + (unit|0))\n }\n gl.bindTexture(gl.TEXTURE_2D, this.handle)\n if(unit !== undefined) {\n return (unit|0)\n }\n return gl.getParameter(gl.ACTIVE_TEXTURE) - gl.TEXTURE0\n}\n\nproto.dispose = function() {\n this.gl.deleteTexture(this.handle)\n}\n\nproto.generateMipmap = function() {\n this.bind()\n this.gl.generateMipmap(this.gl.TEXTURE_2D)\n\n //Update mip levels\n var l = Math.min(this._shape[0], this._shape[1])\n for(var i=0; l>0; ++i, l>>>=1) {\n if(this._mipLevels.indexOf(i) < 0) {\n this._mipLevels.push(i)\n }\n }\n}\n\nproto.setPixels = function(data, x_off, y_off, mip_level) {\n var gl = this.gl\n this.bind()\n if(Array.isArray(x_off)) {\n mip_level = y_off\n y_off = x_off[1]|0\n x_off = x_off[0]|0\n } else {\n x_off = x_off || 0\n y_off = y_off || 0\n }\n mip_level = mip_level || 0\n var directData = acceptTextureDOM(data) ? data : data.raw\n if(directData) {\n var needsMip = this._mipLevels.indexOf(mip_level) < 0\n if(needsMip) {\n gl.texImage2D(gl.TEXTURE_2D, 0, this.format, this.format, this.type, directData)\n this._mipLevels.push(mip_level)\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, this.format, this.type, directData)\n }\n } else if(data.shape && data.stride && data.data) {\n if(data.shape.length < 2 ||\n x_off + data.shape[1] > this._shape[1]>>>mip_level ||\n y_off + data.shape[0] > this._shape[0]>>>mip_level ||\n x_off < 0 ||\n y_off < 0) {\n throw new Error('gl-texture2d: Texture dimensions are out of bounds')\n }\n texSubImageArray(gl, x_off, y_off, mip_level, this.format, this.type, this._mipLevels, data)\n } else {\n throw new Error('gl-texture2d: Unsupported data type')\n }\n}\n\n\nfunction isPacked(shape, stride) {\n if(shape.length === 3) {\n return (stride[2] === 1) &&\n (stride[1] === shape[0]*shape[2]) &&\n (stride[0] === shape[2])\n }\n return (stride[0] === 1) &&\n (stride[1] === shape[0])\n}\n\nfunction texSubImageArray(gl, x_off, y_off, mip_level, cformat, ctype, mipLevels, array) {\n var dtype = array.dtype\n var shape = array.shape.slice()\n if(shape.length < 2 || shape.length > 3) {\n throw new Error('gl-texture2d: Invalid ndarray, must be 2d or 3d')\n }\n var type = 0, format = 0\n var packed = isPacked(shape, array.stride.slice())\n if(dtype === 'float32') {\n type = gl.FLOAT\n } else if(dtype === 'float64') {\n type = gl.FLOAT\n packed = false\n dtype = 'float32'\n } else if(dtype === 'uint8') {\n type = gl.UNSIGNED_BYTE\n } else {\n type = gl.UNSIGNED_BYTE\n packed = false\n dtype = 'uint8'\n }\n var channels = 1\n if(shape.length === 2) {\n format = gl.LUMINANCE\n shape = [shape[0], shape[1], 1]\n array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset)\n } else if(shape.length === 3) {\n if(shape[2] === 1) {\n format = gl.ALPHA\n } else if(shape[2] === 2) {\n format = gl.LUMINANCE_ALPHA\n } else if(shape[2] === 3) {\n format = gl.RGB\n } else if(shape[2] === 4) {\n format = gl.RGBA\n } else {\n throw new Error('gl-texture2d: Invalid shape for pixel coords')\n }\n channels = shape[2]\n } else {\n throw new Error('gl-texture2d: Invalid shape for texture')\n }\n //For 1-channel textures allow conversion between formats\n if((format === gl.LUMINANCE || format === gl.ALPHA) &&\n (cformat === gl.LUMINANCE || cformat === gl.ALPHA)) {\n format = cformat\n }\n if(format !== cformat) {\n throw new Error('gl-texture2d: Incompatible texture format for setPixels')\n }\n var size = array.size\n var needsMip = mipLevels.indexOf(mip_level) < 0\n if(needsMip) {\n mipLevels.push(mip_level)\n }\n if(type === ctype && packed) {\n //Array data types are compatible, can directly copy into texture\n if(array.offset === 0 && array.data.length === size) {\n if(needsMip) {\n gl.texImage2D(gl.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, array.data)\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, array.data)\n }\n } else {\n if(needsMip) {\n gl.texImage2D(gl.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, array.data.subarray(array.offset, array.offset+size))\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, array.data.subarray(array.offset, array.offset+size))\n }\n }\n } else {\n //Need to do type conversion to pack data into buffer\n var pack_buffer\n if(ctype === gl.FLOAT) {\n pack_buffer = pool.mallocFloat32(size)\n } else {\n pack_buffer = pool.mallocUint8(size)\n }\n var pack_view = ndarray(pack_buffer, shape, [shape[2], shape[2]*shape[0], 1])\n if(type === gl.FLOAT && ctype === gl.UNSIGNED_BYTE) {\n convertFloatToUint8(pack_view, array)\n } else {\n ops.assign(pack_view, array)\n }\n if(needsMip) {\n gl.texImage2D(gl.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, pack_buffer.subarray(0, size))\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, pack_buffer.subarray(0, size))\n }\n if(ctype === gl.FLOAT) {\n pool.freeFloat32(pack_buffer)\n } else {\n pool.freeUint8(pack_buffer)\n }\n }\n}\n\nfunction initTexture(gl) {\n var tex = gl.createTexture()\n gl.bindTexture(gl.TEXTURE_2D, tex)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE)\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE)\n return tex\n}\n\nfunction createTextureShape(gl, width, height, format, type) {\n var maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE)\n if(width < 0 || width > maxTextureSize || height < 0 || height > maxTextureSize) {\n throw new Error('gl-texture2d: Invalid texture shape')\n }\n if(type === gl.FLOAT && !gl.getExtension('OES_texture_float')) {\n throw new Error('gl-texture2d: Floating point textures not supported on this platform')\n }\n var tex = initTexture(gl)\n gl.texImage2D(gl.TEXTURE_2D, 0, format, width, height, 0, format, type, null)\n return new Texture2D(gl, tex, width, height, format, type)\n}\n\nfunction createTextureDOM(gl, directData, width, height, format, type) {\n var tex = initTexture(gl)\n gl.texImage2D(gl.TEXTURE_2D, 0, format, format, type, directData)\n return new Texture2D(gl, tex, width, height, format, type)\n}\n\n//Creates a texture from an ndarray\nfunction createTextureArray(gl, array) {\n var dtype = array.dtype\n var shape = array.shape.slice()\n var maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE)\n if(shape[0] < 0 || shape[0] > maxSize || shape[1] < 0 || shape[1] > maxSize) {\n throw new Error('gl-texture2d: Invalid texture size')\n }\n var packed = isPacked(shape, array.stride.slice())\n var type = 0\n if(dtype === 'float32') {\n type = gl.FLOAT\n } else if(dtype === 'float64') {\n type = gl.FLOAT\n packed = false\n dtype = 'float32'\n } else if(dtype === 'uint8') {\n type = gl.UNSIGNED_BYTE\n } else {\n type = gl.UNSIGNED_BYTE\n packed = false\n dtype = 'uint8'\n }\n var format = 0\n if(shape.length === 2) {\n format = gl.LUMINANCE\n shape = [shape[0], shape[1], 1]\n array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset)\n } else if(shape.length === 3) {\n if(shape[2] === 1) {\n format = gl.ALPHA\n } else if(shape[2] === 2) {\n format = gl.LUMINANCE_ALPHA\n } else if(shape[2] === 3) {\n format = gl.RGB\n } else if(shape[2] === 4) {\n format = gl.RGBA\n } else {\n throw new Error('gl-texture2d: Invalid shape for pixel coords')\n }\n } else {\n throw new Error('gl-texture2d: Invalid shape for texture')\n }\n if(type === gl.FLOAT && !gl.getExtension('OES_texture_float')) {\n type = gl.UNSIGNED_BYTE\n packed = false\n }\n var buffer, buf_store\n var size = array.size\n if(!packed) {\n var stride = [shape[2], shape[2]*shape[0], 1]\n buf_store = pool.malloc(size, dtype)\n var buf_array = ndarray(buf_store, shape, stride, 0)\n if((dtype === 'float32' || dtype === 'float64') && type === gl.UNSIGNED_BYTE) {\n convertFloatToUint8(buf_array, array)\n } else {\n ops.assign(buf_array, array)\n }\n buffer = buf_store.subarray(0, size)\n } else if (array.offset === 0 && array.data.length === size) {\n buffer = array.data\n } else {\n buffer = array.data.subarray(array.offset, array.offset + size)\n }\n var tex = initTexture(gl)\n gl.texImage2D(gl.TEXTURE_2D, 0, format, shape[0], shape[1], 0, format, type, buffer)\n if(!packed) {\n pool.free(buf_store)\n }\n return new Texture2D(gl, tex, shape[0], shape[1], format, type)\n}\n\nfunction createTexture2D(gl) {\n if(arguments.length <= 1) {\n throw new Error('gl-texture2d: Missing arguments for texture2d constructor')\n }\n if(!linearTypes) {\n lazyInitLinearTypes(gl)\n }\n if(typeof arguments[1] === 'number') {\n return createTextureShape(gl, arguments[1], arguments[2], arguments[3]||gl.RGBA, arguments[4]||gl.UNSIGNED_BYTE)\n }\n if(Array.isArray(arguments[1])) {\n return createTextureShape(gl, arguments[1][0]|0, arguments[1][1]|0, arguments[2]||gl.RGBA, arguments[3]||gl.UNSIGNED_BYTE)\n }\n if(typeof arguments[1] === 'object') {\n var obj = arguments[1]\n var directData = acceptTextureDOM(obj) ? obj : obj.raw\n if (directData) {\n return createTextureDOM(gl, directData, obj.width|0, obj.height|0, arguments[2]||gl.RGBA, arguments[3]||gl.UNSIGNED_BYTE)\n } else if(obj.shape && obj.data && obj.stride) {\n return createTextureArray(gl, obj)\n }\n }\n throw new Error('gl-texture2d: Invalid arguments for texture2d constructor')\n}\n\n\n/***/ }),\n\n/***/ \"1d80\":\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"1d9e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\nvar Colorscale = __webpack_require__(\"c258\");\n\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\nvar makeBlank = __webpack_require__(\"2169\").makeBlank;\n\nmodule.exports = function convert(calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = (trace.visible === true && trace._length !== 0);\n\n var heatmap = {\n layout: {visibility: 'none'},\n paint: {}\n };\n\n var opts = trace._opts = {\n heatmap: heatmap,\n geojson: makeBlank()\n };\n\n // early return if not visible or placeholder\n if(!isVisible) return opts;\n\n var features = [];\n var i;\n\n var z = trace.z;\n var radius = trace.radius;\n var hasZ = Lib.isArrayOrTypedArray(z) && z.length;\n var hasArrayRadius = Lib.isArrayOrTypedArray(radius);\n\n for(i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n var lonlat = cdi.lonlat;\n\n if(lonlat[0] !== BADNUM) {\n var props = {};\n\n if(hasZ) {\n var zi = cdi.z;\n props.z = zi !== BADNUM ? zi : 0;\n }\n if(hasArrayRadius) {\n props.r = (isNumeric(radius[i]) && radius[i] > 0) ? +radius[i] : 0;\n }\n\n features.push({\n type: 'Feature',\n geometry: {type: 'Point', coordinates: lonlat},\n properties: props\n });\n }\n }\n\n var cOpts = Colorscale.extractOpts(trace);\n var scl = cOpts.reversescale ?\n Colorscale.flipScale(cOpts.colorscale) :\n cOpts.colorscale;\n\n // Add alpha channel to first colorscale step.\n // If not, we would essentially color the entire map.\n // See https://docs.mapbox.com/mapbox-gl-js/example/heatmap-layer/\n var scl01 = scl[0][1];\n var color0 = Color.opacity(scl01) < 1 ? scl01 : Color.addOpacity(scl01, 0);\n\n var heatmapColor = [\n 'interpolate', ['linear'],\n ['heatmap-density'],\n 0, color0\n ];\n for(i = 1; i < scl.length; i++) {\n heatmapColor.push(scl[i][0], scl[i][1]);\n }\n\n // Those \"weights\" have to be in [0, 1], we can do this either:\n // - as here using a mapbox-gl expression\n // - or, scale the 'z' property in the feature loop\n var zExp = [\n 'interpolate', ['linear'],\n ['get', 'z'],\n cOpts.min, 0,\n cOpts.max, 1\n ];\n\n Lib.extendFlat(opts.heatmap.paint, {\n 'heatmap-weight': hasZ ? zExp : 1 / (cOpts.max - cOpts.min),\n\n 'heatmap-color': heatmapColor,\n\n 'heatmap-radius': hasArrayRadius ?\n {type: 'identity', property: 'r'} :\n trace.radius,\n\n 'heatmap-opacity': trace.opacity\n });\n\n opts.geojson = {type: 'FeatureCollection', features: features};\n opts.heatmap.layout.visibility = 'visible';\n\n return opts;\n};\n\n\n/***/ }),\n\n/***/ \"1db7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar c = __webpack_require__(\"f7a4\");\nvar d3 = __webpack_require__(\"6e58\");\nvar keyFun = __webpack_require__(\"0a3e\").keyFun;\nvar repeat = __webpack_require__(\"0a3e\").repeat;\nvar sortAsc = __webpack_require__(\"fc26\").sorterAsc;\n\nvar snapRatio = c.bar.snapRatio;\nfunction snapOvershoot(v, vAdjacent) { return v * (1 - snapRatio) + vAdjacent * snapRatio; }\n\nvar snapClose = c.bar.snapClose;\nfunction closeToCovering(v, vAdjacent) { return v * (1 - snapClose) + vAdjacent * snapClose; }\n\n// snap for the low end of a range on an ordinal scale\n// on an ordinal scale, always show some overshoot from the exact value,\n// so it's clear we're covering it\n// find the interval we're in, and snap to 1/4 the distance to the next\n// these two could be unified at a slight loss of readability / perf\nfunction ordinalScaleSnap(isHigh, a, v, existingRanges) {\n if(overlappingExisting(v, existingRanges)) return v;\n\n var dir = isHigh ? -1 : 1;\n\n var first = 0;\n var last = a.length - 1;\n if(dir < 0) {\n var tmp = first;\n first = last;\n last = tmp;\n }\n\n var aHere = a[first];\n var aPrev = aHere;\n for(var i = first; dir * i < dir * last; i += dir) {\n var nextI = i + dir;\n var aNext = a[nextI];\n\n // very close to the previous - snap down to it\n if(dir * v < dir * closeToCovering(aHere, aNext)) return snapOvershoot(aHere, aPrev);\n if(dir * v < dir * aNext || nextI === last) return snapOvershoot(aNext, aHere);\n\n aPrev = aHere;\n aHere = aNext;\n }\n}\n\nfunction overlappingExisting(v, existingRanges) {\n for(var i = 0; i < existingRanges.length; i++) {\n if(v >= existingRanges[i][0] && v <= existingRanges[i][1]) return true;\n }\n return false;\n}\n\nfunction barHorizontalSetup(selection) {\n selection\n .attr('x', -c.bar.captureWidth / 2)\n .attr('width', c.bar.captureWidth);\n}\n\nfunction backgroundBarHorizontalSetup(selection) {\n selection\n .attr('visibility', 'visible')\n .style('visibility', 'visible')\n .attr('fill', 'yellow')\n .attr('opacity', 0);\n}\n\nfunction setHighlight(d) {\n if(!d.brush.filterSpecified) {\n return '0,' + d.height;\n }\n\n var pixelRanges = unitToPx(d.brush.filter.getConsolidated(), d.height);\n var dashArray = [0]; // we start with a 0 length selection as filter ranges are inclusive, not exclusive\n var p, sectionHeight, iNext;\n var currentGap = pixelRanges.length ? pixelRanges[0][0] : null;\n for(var i = 0; i < pixelRanges.length; i++) {\n p = pixelRanges[i];\n sectionHeight = p[1] - p[0];\n dashArray.push(currentGap);\n dashArray.push(sectionHeight);\n iNext = i + 1;\n if(iNext < pixelRanges.length) {\n currentGap = pixelRanges[iNext][0] - p[1];\n }\n }\n dashArray.push(d.height);\n // d.height is added at the end to ensure that (1) we have an even number of dasharray points, MDN page says\n // \"If an odd number of values is provided, then the list of values is repeated to yield an even number of values.\"\n // and (2) it's _at least_ as long as the full height (even if range is minuscule and at the bottom) though this\n // may not be necessary, maybe duplicating the last point would do too. But no harm in a longer dasharray than line.\n return dashArray;\n}\n\nfunction unitToPx(unitRanges, height) {\n return unitRanges.map(function(pr) {\n return pr.map(function(v) { return Math.max(0, v * height); }).sort(sortAsc);\n });\n}\n\n// is the cursor over the north, middle, or south of a bar?\n// the end handles extend over the last 10% of the bar\nfunction getRegion(fPix, y) {\n var pad = c.bar.handleHeight;\n if(y > fPix[1] + pad || y < fPix[0] - pad) return;\n if(y >= 0.9 * fPix[1] + 0.1 * fPix[0]) return 'n';\n if(y <= 0.9 * fPix[0] + 0.1 * fPix[1]) return 's';\n return 'ns';\n}\n\nfunction clearCursor() {\n d3.select(document.body)\n .style('cursor', null);\n}\n\nfunction styleHighlight(selection) {\n // stroke-dasharray is used to minimize the number of created DOM nodes, because the requirement calls for up to\n // 1000 individual selections on an axis, and there can be 60 axes per parcoords, and multiple parcoords per\n // dashboard. The technique is similar to https://codepen.io/monfera/pen/rLYqWR and using a `polyline` with\n // multiple sections, or a `path` element via its `d` attribute would also be DOM-sparing alternatives.\n selection.attr('stroke-dasharray', setHighlight);\n}\n\nfunction renderHighlight(root, tweenCallback) {\n var bar = d3.select(root).selectAll('.highlight, .highlight-shadow');\n var barToStyle = tweenCallback ? bar.transition().duration(c.bar.snapDuration).each('end', tweenCallback) : bar;\n styleHighlight(barToStyle);\n}\n\nfunction getInterval(d, y) {\n var b = d.brush;\n var active = b.filterSpecified;\n var closestInterval = NaN;\n var out = {};\n var i;\n\n if(active) {\n var height = d.height;\n var intervals = b.filter.getConsolidated();\n var pixIntervals = unitToPx(intervals, height);\n var hoveredInterval = NaN;\n var previousInterval = NaN;\n var nextInterval = NaN;\n for(i = 0; i <= pixIntervals.length; i++) {\n var p = pixIntervals[i];\n if(p && p[0] <= y && y <= p[1]) {\n // over a bar\n hoveredInterval = i;\n break;\n } else {\n // between bars, or before/after the first/last bar\n previousInterval = i ? i - 1 : NaN;\n if(p && p[0] > y) {\n nextInterval = i;\n break; // no point continuing as intervals are non-overlapping and sorted; could use log search\n }\n }\n }\n\n closestInterval = hoveredInterval;\n if(isNaN(closestInterval)) {\n if(isNaN(previousInterval) || isNaN(nextInterval)) {\n closestInterval = isNaN(previousInterval) ? nextInterval : previousInterval;\n } else {\n closestInterval = (y - pixIntervals[previousInterval][1] < pixIntervals[nextInterval][0] - y) ?\n previousInterval : nextInterval;\n }\n }\n\n if(!isNaN(closestInterval)) {\n var fPix = pixIntervals[closestInterval];\n var region = getRegion(fPix, y);\n\n if(region) {\n out.interval = intervals[closestInterval];\n out.intervalPix = fPix;\n out.region = region;\n }\n }\n }\n\n if(d.ordinal && !out.region) {\n var a = d.unitTickvals;\n var unitLocation = d.unitToPaddedPx.invert(y);\n for(i = 0; i < a.length; i++) {\n var rangei = [\n a[Math.max(i - 1, 0)] * 0.25 + a[i] * 0.75,\n a[Math.min(i + 1, a.length - 1)] * 0.25 + a[i] * 0.75\n ];\n if(unitLocation >= rangei[0] && unitLocation <= rangei[1]) {\n out.clickableOrdinalRange = rangei;\n break;\n }\n }\n }\n\n return out;\n}\n\nfunction dragstart(lThis, d) {\n d3.event.sourceEvent.stopPropagation();\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var unitLocation = d.unitToPaddedPx.invert(y);\n var b = d.brush;\n var interval = getInterval(d, y);\n var unitRange = interval.interval;\n var s = b.svgBrush;\n s.wasDragged = false; // we start assuming there won't be a drag - useful for reset\n s.grabbingBar = interval.region === 'ns';\n if(s.grabbingBar) {\n var pixelRange = unitRange.map(d.unitToPaddedPx);\n s.grabPoint = y - pixelRange[0] - c.verticalPadding;\n s.barLength = pixelRange[1] - pixelRange[0];\n }\n s.clickableOrdinalRange = interval.clickableOrdinalRange;\n s.stayingIntervals = (d.multiselect && b.filterSpecified) ? b.filter.getConsolidated() : [];\n if(unitRange) {\n s.stayingIntervals = s.stayingIntervals.filter(function(int2) {\n return int2[0] !== unitRange[0] && int2[1] !== unitRange[1];\n });\n }\n s.startExtent = interval.region ? unitRange[interval.region === 's' ? 1 : 0] : unitLocation;\n d.parent.inBrushDrag = true;\n s.brushStartCallback();\n}\n\nfunction drag(lThis, d) {\n d3.event.sourceEvent.stopPropagation();\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var s = d.brush.svgBrush;\n s.wasDragged = true;\n s._dragging = true;\n\n if(s.grabbingBar) { // moving the bar\n s.newExtent = [y - s.grabPoint, y + s.barLength - s.grabPoint].map(d.unitToPaddedPx.invert);\n } else { // south/north drag or new bar creation\n s.newExtent = [s.startExtent, d.unitToPaddedPx.invert(y)].sort(sortAsc);\n }\n\n d.brush.filterSpecified = true;\n s.extent = s.stayingIntervals.concat([s.newExtent]);\n s.brushCallback(d);\n renderHighlight(lThis.parentNode);\n}\n\nfunction dragend(lThis, d) {\n var brush = d.brush;\n var filter = brush.filter;\n var s = brush.svgBrush;\n\n if(!s._dragging) { // i.e. click\n // mock zero drag\n mousemove(lThis, d);\n drag(lThis, d);\n // remember it is a click not a drag\n d.brush.svgBrush.wasDragged = false;\n }\n s._dragging = false;\n\n var e = d3.event;\n e.sourceEvent.stopPropagation();\n var grabbingBar = s.grabbingBar;\n s.grabbingBar = false;\n s.grabLocation = undefined;\n d.parent.inBrushDrag = false;\n clearCursor(); // instead of clearing, a nicer thing would be to set it according to current location\n if(!s.wasDragged) { // a click+release on the same spot (ie. w/o dragging) means a bar or full reset\n s.wasDragged = undefined; // logic-wise unneeded, just shows `wasDragged` has no longer a meaning\n if(s.clickableOrdinalRange) {\n if(brush.filterSpecified && d.multiselect) {\n s.extent.push(s.clickableOrdinalRange);\n } else {\n s.extent = [s.clickableOrdinalRange];\n brush.filterSpecified = true;\n }\n } else if(grabbingBar) {\n s.extent = s.stayingIntervals;\n if(s.extent.length === 0) {\n brushClear(brush);\n }\n } else {\n brushClear(brush);\n }\n s.brushCallback(d);\n renderHighlight(lThis.parentNode);\n s.brushEndCallback(brush.filterSpecified ? filter.getConsolidated() : []);\n return; // no need to fuse intervals or snap to ordinals, so we can bail early\n }\n\n var mergeIntervals = function() {\n // Key piece of logic: once the button is released, possibly overlapping intervals will be fused:\n // Here it's done immediately on click release while on ordinal snap transition it's done at the end\n filter.set(filter.getConsolidated());\n };\n\n if(d.ordinal) {\n var a = d.unitTickvals;\n if(a[a.length - 1] < a[0]) a.reverse();\n s.newExtent = [\n ordinalScaleSnap(0, a, s.newExtent[0], s.stayingIntervals),\n ordinalScaleSnap(1, a, s.newExtent[1], s.stayingIntervals)\n ];\n var hasNewExtent = s.newExtent[1] > s.newExtent[0];\n s.extent = s.stayingIntervals.concat(hasNewExtent ? [s.newExtent] : []);\n if(!s.extent.length) {\n brushClear(brush);\n }\n s.brushCallback(d);\n if(hasNewExtent) {\n // merging intervals post the snap tween\n renderHighlight(lThis.parentNode, mergeIntervals);\n } else {\n // if no new interval, don't animate, just redraw the highlight immediately\n mergeIntervals();\n renderHighlight(lThis.parentNode);\n }\n } else {\n mergeIntervals(); // merging intervals immediately\n }\n s.brushEndCallback(brush.filterSpecified ? filter.getConsolidated() : []);\n}\n\nfunction mousemove(lThis, d) {\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var interval = getInterval(d, y);\n\n var cursor = 'crosshair';\n if(interval.clickableOrdinalRange) cursor = 'pointer';\n else if(interval.region) cursor = interval.region + '-resize';\n d3.select(document.body)\n .style('cursor', cursor);\n}\n\nfunction attachDragBehavior(selection) {\n // There's some fiddling with pointer cursor styling so that the cursor preserves its shape while dragging a brush\n // even if the cursor strays from the interacting bar, which is bound to happen as bars are thin and the user\n // will inevitably leave the hotspot strip. In this regard, it does something similar to what the D3 brush would do.\n selection\n .on('mousemove', function(d) {\n d3.event.preventDefault();\n if(!d.parent.inBrushDrag) mousemove(this, d);\n })\n .on('mouseleave', function(d) {\n if(!d.parent.inBrushDrag) clearCursor();\n })\n .call(d3.behavior.drag()\n .on('dragstart', function(d) { dragstart(this, d); })\n .on('drag', function(d) { drag(this, d); })\n .on('dragend', function(d) { dragend(this, d); })\n );\n}\n\nfunction startAsc(a, b) { return a[0] - b[0]; }\n\nfunction renderAxisBrush(axisBrush) {\n var background = axisBrush.selectAll('.background').data(repeat);\n\n background.enter()\n .append('rect')\n .classed('background', true)\n .call(barHorizontalSetup)\n .call(backgroundBarHorizontalSetup)\n .style('pointer-events', 'auto') // parent pointer events are disabled; we must have it to register events\n .attr('transform', 'translate(0 ' + c.verticalPadding + ')');\n\n background\n .call(attachDragBehavior)\n .attr('height', function(d) {\n return d.height - c.verticalPadding;\n });\n\n var highlightShadow = axisBrush.selectAll('.highlight-shadow').data(repeat); // we have a set here, can't call it `extent`\n\n highlightShadow.enter()\n .append('line')\n .classed('highlight-shadow', true)\n .attr('x', -c.bar.width / 2)\n .attr('stroke-width', c.bar.width + c.bar.strokeWidth)\n .attr('stroke', c.bar.strokeColor)\n .attr('opacity', c.bar.strokeOpacity)\n .attr('stroke-linecap', 'butt');\n\n highlightShadow\n .attr('y1', function(d) { return d.height; })\n .call(styleHighlight);\n\n var highlight = axisBrush.selectAll('.highlight').data(repeat); // we have a set here, can't call it `extent`\n\n highlight.enter()\n .append('line')\n .classed('highlight', true)\n .attr('x', -c.bar.width / 2)\n .attr('stroke-width', c.bar.width - c.bar.strokeWidth)\n .attr('stroke', c.bar.fillColor)\n .attr('opacity', c.bar.fillOpacity)\n .attr('stroke-linecap', 'butt');\n\n highlight\n .attr('y1', function(d) { return d.height; })\n .call(styleHighlight);\n}\n\nfunction ensureAxisBrush(axisOverlays) {\n var axisBrush = axisOverlays.selectAll('.' + c.cn.axisBrush)\n .data(repeat, keyFun);\n\n axisBrush.enter()\n .append('g')\n .classed(c.cn.axisBrush, true);\n\n renderAxisBrush(axisBrush);\n}\n\nfunction getBrushExtent(brush) {\n return brush.svgBrush.extent.map(function(e) {return e.slice();});\n}\n\nfunction brushClear(brush) {\n brush.filterSpecified = false;\n brush.svgBrush.extent = [[-Infinity, Infinity]];\n}\n\nfunction axisBrushMoved(callback) {\n return function axisBrushMoved(dimension) {\n var brush = dimension.brush;\n var extent = getBrushExtent(brush);\n var newExtent = extent.slice();\n brush.filter.set(newExtent);\n callback();\n };\n}\n\nfunction dedupeRealRanges(intervals) {\n // Fuses elements of intervals if they overlap, yielding discontiguous intervals, results.length <= intervals.length\n // Currently uses closed intervals, ie. dedupeRealRanges([[400, 800], [300, 400]]) -> [300, 800]\n var queue = intervals.slice();\n var result = [];\n var currentInterval;\n var current = queue.shift();\n while(current) { // [].shift === undefined, so we don't descend into an empty array\n currentInterval = current.slice();\n while((current = queue.shift()) && current[0] <= /* right-open interval would need `<` */ currentInterval[1]) {\n currentInterval[1] = Math.max(currentInterval[1], current[1]);\n }\n result.push(currentInterval);\n }\n return result;\n}\n\nfunction makeFilter() {\n var filter = [];\n var consolidated;\n var bounds;\n return {\n set: function(a) {\n filter = a\n .map(function(d) { return d.slice().sort(sortAsc); })\n .sort(startAsc);\n\n // handle unselected case\n if(filter.length === 1 &&\n filter[0][0] === -Infinity &&\n filter[0][1] === Infinity) {\n filter = [[0, -1]];\n }\n\n consolidated = dedupeRealRanges(filter);\n bounds = filter.reduce(function(p, n) {\n return [Math.min(p[0], n[0]), Math.max(p[1], n[1])];\n }, [Infinity, -Infinity]);\n },\n get: function() { return filter.slice(); },\n getConsolidated: function() { return consolidated; },\n getBounds: function() { return bounds; }\n };\n}\n\nfunction makeBrush(state, rangeSpecified, initialRange, brushStartCallback, brushCallback, brushEndCallback) {\n var filter = makeFilter();\n filter.set(initialRange);\n return {\n filter: filter,\n filterSpecified: rangeSpecified, // there's a difference between not filtering and filtering a non-proper subset\n svgBrush: {\n extent: [], // this is where the svgBrush writes contents into\n brushStartCallback: brushStartCallback,\n brushCallback: axisBrushMoved(brushCallback),\n brushEndCallback: brushEndCallback\n }\n };\n}\n\n// for use by supplyDefaults, but it needed tons of pieces from here so\n// seemed to make more sense just to put the whole routine here\nfunction cleanRanges(ranges, dimension) {\n if(Array.isArray(ranges[0])) {\n ranges = ranges.map(function(ri) { return ri.sort(sortAsc); });\n\n if(!dimension.multiselect) ranges = [ranges[0]];\n else ranges = dedupeRealRanges(ranges.sort(startAsc));\n } else ranges = [ranges.sort(sortAsc)];\n\n // ordinal snapping\n if(dimension.tickvals) {\n var sortedTickVals = dimension.tickvals.slice().sort(sortAsc);\n ranges = ranges.map(function(ri) {\n var rSnapped = [\n ordinalScaleSnap(0, sortedTickVals, ri[0], []),\n ordinalScaleSnap(1, sortedTickVals, ri[1], [])\n ];\n if(rSnapped[1] > rSnapped[0]) return rSnapped;\n })\n .filter(function(ri) { return ri; });\n\n if(!ranges.length) return;\n }\n return ranges.length > 1 ? ranges : ranges[0];\n}\n\nmodule.exports = {\n makeBrush: makeBrush,\n ensureAxisBrush: ensureAxisBrush,\n cleanRanges: cleanRanges\n};\n\n\n/***/ }),\n\n/***/ \"1db7e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar hasColorscale = __webpack_require__(\"215c\").hasColorscale;\nvar extractOpts = __webpack_require__(\"215c\").extractOpts;\n\nmodule.exports = function crossTraceDefaults(fullData, fullLayout) {\n function replace(cont, k) {\n var val = cont['_' + k];\n if(val !== undefined) {\n cont[k] = val;\n }\n }\n\n function relinkColorAttrs(outerCont, cbOpt) {\n var cont = cbOpt.container ?\n Lib.nestedProperty(outerCont, cbOpt.container).get() :\n outerCont;\n\n if(cont) {\n if(cont.coloraxis) {\n // stash ref to color axis\n cont._colorAx = fullLayout[cont.coloraxis];\n } else {\n var cOpts = extractOpts(cont);\n var isAuto = cOpts.auto;\n\n if(isAuto || cOpts.min === undefined) {\n replace(cont, cbOpt.min);\n }\n if(isAuto || cOpts.max === undefined) {\n replace(cont, cbOpt.max);\n }\n if(cOpts.autocolorscale) {\n replace(cont, 'colorscale');\n }\n }\n }\n }\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n var cbOpts = trace._module.colorbar;\n\n if(cbOpts) {\n if(Array.isArray(cbOpts)) {\n for(var j = 0; j < cbOpts.length; j++) {\n relinkColorAttrs(trace, cbOpts[j]);\n }\n } else {\n relinkColorAttrs(trace, cbOpts);\n }\n }\n\n if(hasColorscale(trace, 'marker.line')) {\n relinkColorAttrs(trace, {\n container: 'marker.line',\n min: 'cmin',\n max: 'cmax'\n });\n }\n }\n\n for(var k in fullLayout._colorAxes) {\n relinkColorAttrs(fullLayout[k], {min: 'cmin', max: 'cmax'});\n }\n};\n\n\n/***/ }),\n\n/***/ \"1ddb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bindAttribs = __webpack_require__(\"8c75\")\n\nfunction VAOEmulated(gl) {\n this.gl = gl\n this._elements = null\n this._attributes = null\n this._elementsType = gl.UNSIGNED_SHORT\n}\n\nVAOEmulated.prototype.bind = function() {\n bindAttribs(this.gl, this._elements, this._attributes)\n}\n\nVAOEmulated.prototype.update = function(attributes, elements, elementsType) {\n this._elements = elements\n this._attributes = attributes\n this._elementsType = elementsType || this.gl.UNSIGNED_SHORT\n}\n\nVAOEmulated.prototype.dispose = function() { }\nVAOEmulated.prototype.unbind = function() { }\n\nVAOEmulated.prototype.draw = function(mode, count, offset) {\n offset = offset || 0\n var gl = this.gl\n if(this._elements) {\n gl.drawElements(mode, count, this._elementsType, offset)\n } else {\n gl.drawArrays(mode, offset, count)\n }\n}\n\nfunction createVAOEmulated(gl) {\n return new VAOEmulated(gl)\n}\n\nmodule.exports = createVAOEmulated\n\n/***/ }),\n\n/***/ \"1dde\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\nvar V8_VERSION = __webpack_require__(\"2d00\");\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n\n\n/***/ }),\n\n/***/ \"1e03\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n moduleType: 'locale',\n name: 'en-US',\n dictionary: {\n 'Click to enter Colorscale title': 'Click to enter Colorscale title'\n },\n format: {\n date: '%m/%d/%Y'\n }\n};\n\n\n/***/ }),\n\n/***/ \"1e0a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (value) {\n\ttry {\n\t\treturn value.toString();\n\t} catch (error) {\n\t\ttry { return String(value); }\n\t\tcatch (error2) { return null; }\n\t}\n};\n\n\n/***/ }),\n\n/***/ \"1ea6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n moduleType: 'locale',\n name: 'en',\n dictionary: {\n 'Click to enter Colorscale title': 'Click to enter Colourscale title'\n },\n format: {\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n months: [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'\n ],\n shortMonths: [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ],\n periods: ['AM', 'PM'],\n dateTime: '%a %b %e %X %Y',\n date: '%d/%m/%Y',\n time: '%H:%M:%S',\n decimal: '.',\n thousands: ',',\n grouping: [3],\n currency: ['$', ''],\n year: '%Y',\n month: '%b %Y',\n dayMonth: '%b %-d',\n dayMonthYear: '%b %-d, %Y'\n }\n};\n\n\n/***/ }),\n\n/***/ \"1ebf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar barAttrs = __webpack_require__(\"fb5a\");\nvar colorAttrs = __webpack_require__(\"dfb3\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nvar scatterMarkerAttrs = scatterAttrs.marker;\nvar scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n\nmodule.exports = {\n y: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n x: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n x0: {\n valType: 'any',\n \n editType: 'calc+clearAxisTypes',\n \n },\n y0: {\n valType: 'any',\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n dx: {\n valType: 'number',\n \n editType: 'calc',\n \n },\n dy: {\n valType: 'number',\n \n editType: 'calc',\n \n },\n\n name: {\n valType: 'string',\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n q1: {\n valType: 'data_array',\n \n editType: 'calc+clearAxisTypes',\n \n },\n median: {\n valType: 'data_array',\n \n editType: 'calc+clearAxisTypes',\n \n },\n q3: {\n valType: 'data_array',\n \n editType: 'calc+clearAxisTypes',\n \n },\n lowerfence: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n upperfence: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n\n notched: {\n valType: 'boolean',\n \n editType: 'calc',\n \n },\n notchwidth: {\n valType: 'number',\n min: 0,\n max: 0.5,\n dflt: 0.25,\n \n editType: 'calc',\n \n },\n notchspan: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n\n // TODO\n // maybe add\n // - loweroutlierbound / upperoutlierbound\n // - lowersuspectedoutlierbound / uppersuspectedoutlierbound\n\n boxpoints: {\n valType: 'enumerated',\n values: ['all', 'outliers', 'suspectedoutliers', false],\n \n editType: 'calc',\n \n },\n jitter: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'calc',\n \n },\n pointpos: {\n valType: 'number',\n min: -2,\n max: 2,\n \n editType: 'calc',\n \n },\n\n boxmean: {\n valType: 'enumerated',\n values: [true, 'sd', false],\n \n editType: 'calc',\n \n },\n mean: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n sd: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n\n orientation: {\n valType: 'enumerated',\n values: ['v', 'h'],\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n quartilemethod: {\n valType: 'enumerated',\n values: ['linear', 'exclusive', 'inclusive'],\n dflt: 'linear',\n \n editType: 'calc',\n \n },\n\n width: {\n valType: 'number',\n min: 0,\n \n dflt: 0,\n editType: 'calc',\n \n },\n\n marker: {\n outliercolor: {\n valType: 'color',\n dflt: 'rgba(0, 0, 0, 0)',\n \n editType: 'style',\n \n },\n symbol: extendFlat({}, scatterMarkerAttrs.symbol,\n {arrayOk: false, editType: 'plot'}),\n opacity: extendFlat({}, scatterMarkerAttrs.opacity,\n {arrayOk: false, dflt: 1, editType: 'style'}),\n size: extendFlat({}, scatterMarkerAttrs.size,\n {arrayOk: false, editType: 'calc'}),\n color: extendFlat({}, scatterMarkerAttrs.color,\n {arrayOk: false, editType: 'style'}),\n line: {\n color: extendFlat({}, scatterMarkerLineAttrs.color,\n {arrayOk: false, dflt: colorAttrs.defaultLine, editType: 'style'}\n ),\n width: extendFlat({}, scatterMarkerLineAttrs.width,\n {arrayOk: false, dflt: 0, editType: 'style'}\n ),\n outliercolor: {\n valType: 'color',\n \n editType: 'style',\n \n },\n outlierwidth: {\n valType: 'number',\n min: 0,\n dflt: 1,\n \n editType: 'style',\n \n },\n editType: 'style'\n },\n editType: 'plot'\n },\n\n line: {\n color: {\n valType: 'color',\n \n editType: 'style',\n \n },\n width: {\n valType: 'number',\n \n min: 0,\n dflt: 2,\n editType: 'style',\n \n },\n editType: 'plot'\n },\n\n fillcolor: scatterAttrs.fillcolor,\n\n whiskerwidth: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0.5,\n \n editType: 'calc',\n \n },\n\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n\n selected: {\n marker: scatterAttrs.selected.marker,\n editType: 'style'\n },\n unselected: {\n marker: scatterAttrs.unselected.marker,\n editType: 'style'\n },\n\n text: extendFlat({}, scatterAttrs.text, {\n \n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {\n \n }),\n hovertemplate: hovertemplateAttrs({\n \n }),\n\n hoveron: {\n valType: 'flaglist',\n flags: ['boxes', 'points'],\n dflt: 'boxes+points',\n \n editType: 'style',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"1f25\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = convexHull1d\n\nfunction convexHull1d(points) {\n var lo = 0\n var hi = 0\n for(var i=1; i points[hi][0]) {\n hi = i\n }\n }\n if(lo < hi) {\n return [[lo], [hi]]\n } else if(lo > hi) {\n return [[hi], [lo]]\n } else {\n return [[lo]]\n }\n}\n\n/***/ }),\n\n/***/ \"1fac\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = gradient\n\nvar dup = __webpack_require__(\"84af\")\nvar cwiseCompiler = __webpack_require__(\"40ce\")\n\nvar TEMPLATE_CACHE = {}\nvar GRADIENT_CACHE = {}\n\nvar EmptyProc = {\n body: \"\",\n args: [],\n thisVars: [],\n localVars: []\n}\n\nvar centralDiff = cwiseCompiler({\n args: [ 'array', 'array', 'array' ],\n pre: EmptyProc,\n post: EmptyProc,\n body: {\n args: [ {\n name: 'out', \n lvalue: true,\n rvalue: false,\n count: 1\n }, {\n name: 'left', \n lvalue: false,\n rvalue: true,\n count: 1\n }, {\n name: 'right', \n lvalue: false,\n rvalue: true,\n count: 1\n }],\n body: \"out=0.5*(left-right)\",\n thisVars: [],\n localVars: []\n },\n funcName: 'cdiff'\n})\n\nvar zeroOut = cwiseCompiler({\n args: [ 'array' ],\n pre: EmptyProc,\n post: EmptyProc,\n body: {\n args: [ {\n name: 'out', \n lvalue: true,\n rvalue: false,\n count: 1\n }],\n body: \"out=0\",\n thisVars: [],\n localVars: []\n },\n funcName: 'zero'\n})\n\nfunction generateTemplate(d) {\n if(d in TEMPLATE_CACHE) {\n return TEMPLATE_CACHE[d]\n }\n var code = []\n for(var i=0; i= 0) {\n pickStr.push('0')\n } else if(facet.indexOf(-(i+1)) >= 0) {\n pickStr.push('s['+i+']-1')\n } else {\n pickStr.push('-1')\n loStr.push('1')\n hiStr.push('s['+i+']-2')\n }\n }\n var boundStr = '.lo(' + loStr.join() + ').hi(' + hiStr.join() + ')'\n if(loStr.length === 0) {\n boundStr = ''\n }\n \n if(cod > 0) {\n code.push('if(1') \n for(var i=0; i= 0 || facet.indexOf(-(i+1)) >= 0) {\n continue\n }\n code.push('&&s[', i, ']>2')\n }\n code.push('){grad', cod, '(src.pick(', pickStr.join(), ')', boundStr)\n for(var i=0; i= 0 || facet.indexOf(-(i+1)) >= 0) {\n continue\n }\n code.push(',dst.pick(', pickStr.join(), ',', i, ')', boundStr)\n }\n code.push(');')\n }\n\n for(var i=0; i1){dst.set(',\n pickStr.join(), ',', bnd, ',0.5*(src.get(',\n cPickStr.join(), ')-src.get(',\n dPickStr.join(), ')))}else{dst.set(',\n pickStr.join(), ',', bnd, ',0)};')\n } else {\n code.push('if(s[', bnd, ']>1){diff(', outStr, \n ',src.pick(', cPickStr.join(), ')', boundStr, \n ',src.pick(', dPickStr.join(), ')', boundStr, \n ');}else{zero(', outStr, ');};')\n }\n break\n\n case 'mirror':\n if(cod === 0) {\n code.push('dst.set(', pickStr.join(), ',', bnd, ',0);')\n } else {\n code.push('zero(', outStr, ');')\n }\n break\n\n case 'wrap':\n var aPickStr = pickStr.slice()\n var bPickStr = pickStr.slice()\n if(facet[i] < 0) {\n aPickStr[bnd] = 's[' + bnd + ']-2'\n bPickStr[bnd] = '0'\n \n } else {\n aPickStr[bnd] = 's[' + bnd + ']-1'\n bPickStr[bnd] = '1'\n }\n if(cod === 0) {\n code.push('if(s[', bnd, ']>2){dst.set(',\n pickStr.join(), ',', bnd, ',0.5*(src.get(',\n aPickStr.join(), ')-src.get(',\n bPickStr.join(), ')))}else{dst.set(',\n pickStr.join(), ',', bnd, ',0)};')\n } else {\n code.push('if(s[', bnd, ']>2){diff(', outStr, \n ',src.pick(', aPickStr.join(), ')', boundStr, \n ',src.pick(', bPickStr.join(), ')', boundStr, \n ');}else{zero(', outStr, ');};')\n }\n break\n\n default:\n throw new Error('ndarray-gradient: Invalid boundary condition')\n }\n }\n\n if(cod > 0) {\n code.push('};')\n }\n }\n\n //Enumerate ridges, facets, etc. of hypercube\n for(var i=0; i<(1< 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n\n/***/ }),\n\n/***/ \"2015\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Template = __webpack_require__(\"a651\");\n\nvar attributes = __webpack_require__(\"8c2d\");\n\n\nmodule.exports = function(traceIn, traceOut, defaultColor, opts) {\n var objName = 'error_' + opts.axis;\n var containerOut = Template.newContainer(traceOut, objName);\n var containerIn = traceIn[objName] || {};\n\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n\n var hasErrorBars = (\n containerIn.array !== undefined ||\n containerIn.value !== undefined ||\n containerIn.type === 'sqrt'\n );\n\n var visible = coerce('visible', hasErrorBars);\n\n if(visible === false) return;\n\n var type = coerce('type', 'array' in containerIn ? 'data' : 'percent');\n var symmetric = true;\n\n if(type !== 'sqrt') {\n symmetric = coerce('symmetric',\n !((type === 'data' ? 'arrayminus' : 'valueminus') in containerIn));\n }\n\n if(type === 'data') {\n coerce('array');\n coerce('traceref');\n if(!symmetric) {\n coerce('arrayminus');\n coerce('tracerefminus');\n }\n } else if(type === 'percent' || type === 'constant') {\n coerce('value');\n if(!symmetric) coerce('valueminus');\n }\n\n var copyAttr = 'copy_' + opts.inherit + 'style';\n if(opts.inherit) {\n var inheritObj = traceOut['error_' + opts.inherit];\n if((inheritObj || {}).visible) {\n coerce(copyAttr, !(containerIn.color ||\n isNumeric(containerIn.thickness) ||\n isNumeric(containerIn.width)));\n }\n }\n if(!opts.inherit || !containerOut[copyAttr]) {\n coerce('color', defaultColor);\n coerce('thickness');\n coerce('width', Registry.traceIs(traceOut, 'gl3d') ? 0 : 4);\n }\n};\n\n\n/***/ }),\n\n/***/ \"2031\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(\"14ab\")() ? Object.assign : __webpack_require__(\"f60e\");\n\n\n/***/ }),\n\n/***/ \"20314\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction iota(n) {\n var result = new Array(n)\n for(var i=0; i= 0; i--, j++) {\n var si = scl[i];\n sclNew[j] = [1 - si[0], si[1]];\n }\n return sclNew;\n}\n\n/**\n * General colorscale function generator.\n *\n * @param {object} specs output of Colorscale.extractScale or precomputed domain, range.\n * - domain {array}\n * - range {array}\n *\n * @param {object} opts\n * - noNumericCheck {boolean} if true, scale func bypasses numeric checks\n * - returnArray {boolean} if true, scale func return 4-item array instead of color strings\n *\n * @return {function}\n */\nfunction makeColorScaleFunc(specs, opts) {\n opts = opts || {};\n\n var domain = specs.domain;\n var range = specs.range;\n var N = range.length;\n var _range = new Array(N);\n\n for(var i = 0; i < N; i++) {\n var rgba = tinycolor(range[i]).toRgb();\n _range[i] = [rgba.r, rgba.g, rgba.b, rgba.a];\n }\n\n var _sclFunc = d3.scale.linear()\n .domain(domain)\n .range(_range)\n .clamp(true);\n\n var noNumericCheck = opts.noNumericCheck;\n var returnArray = opts.returnArray;\n var sclFunc;\n\n if(noNumericCheck && returnArray) {\n sclFunc = _sclFunc;\n } else if(noNumericCheck) {\n sclFunc = function(v) {\n return colorArray2rbga(_sclFunc(v));\n };\n } else if(returnArray) {\n sclFunc = function(v) {\n if(isNumeric(v)) return _sclFunc(v);\n else if(tinycolor(v).isValid()) return v;\n else return Color.defaultLine;\n };\n } else {\n sclFunc = function(v) {\n if(isNumeric(v)) return colorArray2rbga(_sclFunc(v));\n else if(tinycolor(v).isValid()) return v;\n else return Color.defaultLine;\n };\n }\n\n // colorbar draw looks into the d3 scale closure for domain and range\n sclFunc.domain = _sclFunc.domain;\n sclFunc.range = function() { return range; };\n\n return sclFunc;\n}\n\nfunction makeColorScaleFuncFromTrace(trace, opts) {\n return makeColorScaleFunc(extractScale(trace), opts);\n}\n\nfunction colorArray2rbga(colorArray) {\n var colorObj = {\n r: colorArray[0],\n g: colorArray[1],\n b: colorArray[2],\n a: colorArray[3]\n };\n\n return tinycolor(colorObj).toRgbString();\n}\n\nmodule.exports = {\n hasColorscale: hasColorscale,\n extractOpts: extractOpts,\n extractScale: extractScale,\n flipScale: flipScale,\n makeColorScaleFunc: makeColorScaleFunc,\n makeColorScaleFuncFromTrace: makeColorScaleFuncFromTrace\n};\n\n\n/***/ }),\n\n/***/ \"2160\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isValue = __webpack_require__(\"62c4\");\n\nvar map = { function: true, object: true };\n\nmodule.exports = function (value) { return (isValue(value) && map[typeof value]) || false; };\n\n\n/***/ }),\n\n/***/ \"2169\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\n/**\n * Convert calcTrace to GeoJSON 'MultiLineString' coordinate arrays\n *\n * @param {object} calcTrace\n * gd.calcdata item.\n * Note that calcTrace[i].lonlat is assumed to be defined\n *\n * @return {array}\n * return line coords array (or array of arrays)\n *\n */\nexports.calcTraceToLineCoords = function(calcTrace) {\n var trace = calcTrace[0].trace;\n var connectgaps = trace.connectgaps;\n\n var coords = [];\n var lineString = [];\n\n for(var i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n var lonlat = calcPt.lonlat;\n\n if(lonlat[0] !== BADNUM) {\n lineString.push(lonlat);\n } else if(!connectgaps && lineString.length > 0) {\n coords.push(lineString);\n lineString = [];\n }\n }\n\n if(lineString.length > 0) {\n coords.push(lineString);\n }\n\n return coords;\n};\n\n\n/**\n * Make line ('LineString' or 'MultiLineString') GeoJSON\n *\n * @param {array} coords\n * results form calcTraceToLineCoords\n * @return {object} out\n * GeoJSON object\n *\n */\nexports.makeLine = function(coords) {\n if(coords.length === 1) {\n return {\n type: 'LineString',\n coordinates: coords[0]\n };\n } else {\n return {\n type: 'MultiLineString',\n coordinates: coords\n };\n }\n};\n\n/**\n * Make polygon ('Polygon' or 'MultiPolygon') GeoJSON\n *\n * @param {array} coords\n * results form calcTraceToLineCoords\n * @return {object} out\n * GeoJSON object\n */\nexports.makePolygon = function(coords) {\n if(coords.length === 1) {\n return {\n type: 'Polygon',\n coordinates: coords\n };\n } else {\n var _coords = new Array(coords.length);\n\n for(var i = 0; i < coords.length; i++) {\n _coords[i] = [coords[i]];\n }\n\n return {\n type: 'MultiPolygon',\n coordinates: _coords\n };\n }\n};\n\n/**\n * Make blank GeoJSON\n *\n * @return {object}\n * Blank GeoJSON object\n *\n */\nexports.makeBlank = function() {\n return {\n type: 'Point',\n coordinates: []\n };\n};\n\n\n/***/ }),\n\n/***/ \"2195\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar num2bn = __webpack_require__(\"def6\")\nvar sign = __webpack_require__(\"0fba\")\n\nmodule.exports = rationalize\n\nfunction rationalize(numer, denom) {\n var snumer = sign(numer)\n var sdenom = sign(denom)\n if(snumer === 0) {\n return [num2bn(0), num2bn(1)]\n }\n if(sdenom === 0) {\n return [num2bn(0), num2bn(0)]\n }\n if(sdenom < 0) {\n numer = numer.neg()\n denom = denom.neg()\n }\n var d = numer.gcd(denom)\n if(d.cmpn(1)) {\n return [ numer.div(d), denom.div(d) ]\n }\n return [ numer, denom ]\n}\n\n\n/***/ }),\n\n/***/ \"21d9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = boundary\n\nvar bnd = __webpack_require__(\"566e\")\nvar reduce = __webpack_require__(\"941b\")\n\nfunction boundary(cells) {\n return reduce(bnd(cells))\n}\n\n\n/***/ }),\n\n/***/ \"21dd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"f657\");\n\n\n/***/ }),\n\n/***/ \"223c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar svgTextUtils = __webpack_require__(\"0379\");\n\nvar partition = __webpack_require__(\"c8b8\");\nvar styleOne = __webpack_require__(\"da8c\").styleOne;\nvar constants = __webpack_require__(\"23cc\");\nvar helpers = __webpack_require__(\"fb56\");\nvar attachFxHandlers = __webpack_require__(\"6962\");\n\nvar onPathbar = true; // for Ancestors\n\nmodule.exports = function drawAncestors(gd, cd, entry, slices, opts) {\n var barDifY = opts.barDifY;\n var width = opts.width;\n var height = opts.height;\n var viewX = opts.viewX;\n var viewY = opts.viewY;\n var pathSlice = opts.pathSlice;\n var toMoveInsideSlice = opts.toMoveInsideSlice;\n var strTransform = opts.strTransform;\n var hasTransition = opts.hasTransition;\n var handleSlicesExit = opts.handleSlicesExit;\n var makeUpdateSliceInterpolator = opts.makeUpdateSliceInterpolator;\n var makeUpdateTextInterpolator = opts.makeUpdateTextInterpolator;\n var refRect = {};\n\n var fullLayout = gd._fullLayout;\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hierarchy = cd0.hierarchy;\n\n var eachWidth = width / trace._entryDepth;\n\n var pathIds = helpers.listPath(entry.data, 'id');\n\n var sliceData = partition(hierarchy.copy(), [width, height], {\n packing: 'dice',\n pad: {\n inner: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }\n }).descendants();\n\n // edit slices that show up on graph\n sliceData = sliceData.filter(function(pt) {\n var level = pathIds.indexOf(pt.data.id);\n if(level === -1) return false;\n\n pt.x0 = eachWidth * level;\n pt.x1 = eachWidth * (level + 1);\n pt.y0 = barDifY;\n pt.y1 = barDifY + height;\n\n pt.onPathbar = true;\n\n return true;\n });\n\n sliceData.reverse();\n\n slices = slices.data(sliceData, helpers.getPtId);\n\n slices.enter().append('g')\n .classed('pathbar', true);\n\n handleSlicesExit(slices, onPathbar, refRect, [width, height], pathSlice);\n\n slices.order();\n\n var updateSlices = slices;\n if(hasTransition) {\n updateSlices = updateSlices.transition().each('end', function() {\n // N.B. gd._transitioning is (still) *true* by the time\n // transition updates get here\n var sliceTop = d3.select(this);\n helpers.setSliceCursor(sliceTop, gd, {\n hideOnRoot: false,\n hideOnLeaves: false,\n isTransitioning: false\n });\n });\n }\n\n updateSlices.each(function(pt) {\n pt._hoverX = viewX(pt.x1 - Math.min(width, height) / 2);\n pt._hoverY = viewY(pt.y1 - height / 2);\n\n var sliceTop = d3.select(this);\n\n var slicePath = Lib.ensureSingle(sliceTop, 'path', 'surface', function(s) {\n s.style('pointer-events', 'all');\n });\n\n if(hasTransition) {\n slicePath.transition().attrTween('d', function(pt2) {\n var interp = makeUpdateSliceInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) { return pathSlice(interp(t)); };\n });\n } else {\n slicePath.attr('d', pathSlice);\n }\n\n sliceTop\n .call(attachFxHandlers, entry, gd, cd, {\n styleOne: styleOne,\n eventDataKeys: constants.eventDataKeys,\n transitionTime: constants.CLICK_TRANSITION_TIME,\n transitionEasing: constants.CLICK_TRANSITION_EASING\n })\n .call(helpers.setSliceCursor, gd, {\n hideOnRoot: false,\n hideOnLeaves: false,\n isTransitioning: gd._transitioning\n });\n\n slicePath.call(styleOne, pt, trace, {\n hovered: false\n });\n\n pt._text = (helpers.getPtLabel(pt) || '').split('
').join(' ') || '';\n\n var sliceTextGroup = Lib.ensureSingle(sliceTop, 'g', 'slicetext');\n var sliceText = Lib.ensureSingle(sliceTextGroup, 'text', '', function(s) {\n // prohibit tex interpretation until we can handle\n // tex and regular text together\n s.attr('data-notex', 1);\n });\n\n var font = Lib.ensureUniformFontSize(gd, helpers.determineTextFont(trace, pt, fullLayout.font, {\n onPathbar: true\n }));\n\n sliceText.text(pt._text || ' ') // use one space character instead of a blank string to avoid jumps during transition\n .classed('slicetext', true)\n .attr('text-anchor', 'start')\n .call(Drawing.font, font)\n .call(svgTextUtils.convertToTspans, gd);\n\n pt.textBB = Drawing.bBox(sliceText.node());\n pt.transform = toMoveInsideSlice(pt, {\n fontSize: font.size,\n onPathbar: true\n });\n pt.transform.fontSize = font.size;\n\n if(hasTransition) {\n sliceText.transition().attrTween('transform', function(pt2) {\n var interp = makeUpdateTextInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) { return strTransform(interp(t)); };\n });\n } else {\n sliceText.attr('transform', strTransform(pt));\n }\n });\n};\n\n\n/***/ }),\n\n/***/ \"2244\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar layoutAttributes = __webpack_require__(\"91ce\");\n\nmodule.exports = function(layoutIn, layoutOut, fullData) {\n var hasTraceType = false;\n\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n\n if(trace.visible && trace.type === 'waterfall') {\n hasTraceType = true;\n break;\n }\n }\n\n if(hasTraceType) {\n coerce('waterfallmode');\n coerce('waterfallgap', 0.2);\n coerce('waterfallgroupgap');\n }\n};\n\n\n/***/ }),\n\n/***/ \"2292\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function () {\n\tvar weakMap, obj;\n\n\tif (typeof WeakMap !== \"function\") return false;\n\ttry {\n\t\t// WebKit doesn't support arguments and crashes\n\t\tweakMap = new WeakMap([[obj = {}, \"one\"], [{}, \"two\"], [{}, \"three\"]]);\n\t} catch (e) {\n\t\treturn false;\n\t}\n\tif (String(weakMap) !== \"[object WeakMap]\") return false;\n\tif (typeof weakMap.set !== \"function\") return false;\n\tif (weakMap.set({}, 1) !== weakMap) return false;\n\tif (typeof weakMap.delete !== \"function\") return false;\n\tif (typeof weakMap.has !== \"function\") return false;\n\tif (weakMap.get(obj) !== \"one\") return false;\n\n\treturn true;\n};\n\n\n/***/ }),\n\n/***/ \"22926\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar handleArrayContainerDefaults = __webpack_require__(\"e5ac\");\n\nvar attributes = __webpack_require__(\"26e4\");\nvar subTypes = __webpack_require__(\"de81\");\nvar handleMarkerDefaults = __webpack_require__(\"5047\");\nvar mergeLength = __webpack_require__(\"8cdc\");\nvar isOpenSymbol = __webpack_require__(\"50da\").isOpenSymbol;\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var dimensions = handleArrayContainerDefaults(traceIn, traceOut, {\n name: 'dimensions',\n handleItemDefaults: dimensionDefaults\n });\n\n var showDiag = coerce('diagonal.visible');\n var showUpper = coerce('showupperhalf');\n var showLower = coerce('showlowerhalf');\n\n var dimLength = mergeLength(traceOut, dimensions, 'values');\n\n if(!dimLength || (!showDiag && !showUpper && !showLower)) {\n traceOut.visible = false;\n return;\n }\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n\n var isOpen = isOpenSymbol(traceOut.marker.symbol);\n var isBubble = subTypes.isBubble(traceOut);\n coerce('marker.line.width', isOpen || isBubble ? 1 : 0);\n\n handleAxisDefaults(traceIn, traceOut, layout, coerce);\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n\nfunction dimensionDefaults(dimIn, dimOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(dimIn, dimOut, attributes.dimensions, attr, dflt);\n }\n\n coerce('label');\n var values = coerce('values');\n\n if(!(values && values.length)) dimOut.visible = false;\n else coerce('visible');\n\n coerce('axis.type');\n coerce('axis.matches');\n}\n\nfunction handleAxisDefaults(traceIn, traceOut, layout, coerce) {\n var dimensions = traceOut.dimensions;\n var dimLength = dimensions.length;\n var showUpper = traceOut.showupperhalf;\n var showLower = traceOut.showlowerhalf;\n var showDiag = traceOut.diagonal.visible;\n var i, j;\n\n var xAxesDflt = new Array(dimLength);\n var yAxesDflt = new Array(dimLength);\n\n for(i = 0; i < dimLength; i++) {\n var suffix = i ? i + 1 : '';\n xAxesDflt[i] = 'x' + suffix;\n yAxesDflt[i] = 'y' + suffix;\n }\n\n var xaxes = coerce('xaxes', xAxesDflt);\n var yaxes = coerce('yaxes', yAxesDflt);\n\n // build list of [x,y] axis corresponding to each dimensions[i],\n // very useful for passing options to regl-splom\n var diag = traceOut._diag = new Array(dimLength);\n\n // lookup for 'drawn' x|y axes, to avoid costly indexOf downstream\n traceOut._xaxes = {};\n traceOut._yaxes = {};\n\n // list of 'drawn' x|y axes, use to generate list of subplots\n var xList = [];\n var yList = [];\n\n function fillAxisStashes(axId, counterAxId, dim, list) {\n if(!axId) return;\n\n var axLetter = axId.charAt(0);\n var stash = layout._splomAxes[axLetter];\n\n traceOut['_' + axLetter + 'axes'][axId] = 1;\n list.push(axId);\n\n if(!(axId in stash)) {\n var s = stash[axId] = {};\n if(dim) {\n s.label = dim.label || '';\n if(dim.visible && dim.axis) {\n if(dim.axis.type) s.type = dim.axis.type;\n if(dim.axis.matches) s.matches = counterAxId;\n }\n }\n }\n }\n\n // cases where showDiag and showLower or showUpper are false\n // no special treatment as the 'drawn' x-axes and y-axes no longer match\n // the dimensions items and xaxes|yaxes 1-to-1\n var mustShiftX = !showDiag && !showLower;\n var mustShiftY = !showDiag && !showUpper;\n\n traceOut._axesDim = {};\n for(i = 0; i < dimLength; i++) {\n var dim = dimensions[i];\n var i0 = i === 0;\n var iN = i === dimLength - 1;\n\n var xaId = (i0 && mustShiftX) || (iN && mustShiftY) ?\n undefined :\n xaxes[i];\n\n var yaId = (i0 && mustShiftY) || (iN && mustShiftX) ?\n undefined :\n yaxes[i];\n\n fillAxisStashes(xaId, yaId, dim, xList);\n fillAxisStashes(yaId, xaId, dim, yList);\n diag[i] = [xaId, yaId];\n traceOut._axesDim[xaId] = i;\n traceOut._axesDim[yaId] = i;\n }\n\n // fill in splom subplot keys\n for(i = 0; i < xList.length; i++) {\n for(j = 0; j < yList.length; j++) {\n var id = xList[i] + yList[j];\n\n if(i > j && showUpper) {\n layout._splomSubplots[id] = 1;\n } else if(i < j && showLower) {\n layout._splomSubplots[id] = 1;\n } else if(i === j && (showDiag || !showLower || !showUpper)) {\n // need to include diagonal subplots when\n // hiding one half and the diagonal\n layout._splomSubplots[id] = 1;\n }\n }\n }\n\n // when lower half is omitted, or when just the diagonal is gone,\n // override grid default to make sure axes remain on\n // the left/bottom of the plot area\n if(!showLower || (!showDiag && showUpper && showLower)) {\n layout._splomGridDflt.xside = 'bottom';\n layout._splomGridDflt.yside = 'left';\n }\n}\n\n\n/***/ }),\n\n/***/ \"22b4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.shader = getShaderReference\nexports.program = createProgram\n\nvar GLError = __webpack_require__(\"a3fd\")\nvar formatCompilerError = __webpack_require__(\"07db\");\n\nvar weakMap = typeof WeakMap === 'undefined' ? __webpack_require__(\"fcc5\") : WeakMap\nvar CACHE = new weakMap()\n\nvar SHADER_COUNTER = 0\n\nfunction ShaderReference(id, src, type, shader, programs, count, cache) {\n this.id = id\n this.src = src\n this.type = type\n this.shader = shader\n this.count = count\n this.programs = []\n this.cache = cache\n}\n\nShaderReference.prototype.dispose = function() {\n if(--this.count === 0) {\n var cache = this.cache\n var gl = cache.gl\n\n //Remove program references\n var programs = this.programs\n for(var i=0, n=programs.length; i 1.0){\n return 0\n } else {\n return Math.acos(cosine)\n } \n}\n\n\n/***/ }),\n\n/***/ \"2335\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n/***/ }),\n\n/***/ \"2357\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ch = __webpack_require__(\"0000\")\nvar uniq = __webpack_require__(\"175e\")\n\nmodule.exports = triangulate\n\nfunction LiftedPoint(p, i) {\n this.point = p\n this.index = i\n}\n\nfunction compareLifted(a, b) {\n var ap = a.point\n var bp = b.point\n var d = ap.length\n for(var i=0; i= 2) {\n return false\n }\n }\n cell[j] = v\n }\n return true\n })\n } else {\n hull = hull.filter(function(cell) {\n for(var i=0; i<=d; ++i) {\n var v = dindex[cell[i]]\n if(v < 0) {\n return false\n }\n cell[i] = v\n }\n return true\n })\n }\n\n if(d & 1) {\n for(var i=0; i minSensoryWidth ? sensoryWidth / 2 : minSensoryWidth;\n\n g.append('circle')\n .attr({\n 'data-line-point': 'start-point',\n 'cx': xPixelSized ? x2p(shapeOptions.xanchor) + shapeOptions.x0 : x2p(shapeOptions.x0),\n 'cy': yPixelSized ? y2p(shapeOptions.yanchor) - shapeOptions.y0 : y2p(shapeOptions.y0),\n 'r': circleRadius\n })\n .style(circleStyle)\n .classed('cursor-grab', true);\n\n g.append('circle')\n .attr({\n 'data-line-point': 'end-point',\n 'cx': xPixelSized ? x2p(shapeOptions.xanchor) + shapeOptions.x1 : x2p(shapeOptions.x1),\n 'cy': yPixelSized ? y2p(shapeOptions.yanchor) - shapeOptions.y1 : y2p(shapeOptions.y1),\n 'r': circleRadius\n })\n .style(circleStyle)\n .classed('cursor-grab', true);\n\n return g;\n }\n\n function updateDragMode(evt) {\n if(isLine) {\n if(evt.target.tagName === 'path') {\n dragMode = 'move';\n } else {\n dragMode = evt.target.attributes['data-line-point'].value === 'start-point' ?\n 'resize-over-start-point' : 'resize-over-end-point';\n }\n } else {\n // element might not be on screen at time of setup,\n // so obtain bounding box here\n var dragBBox = dragOptions.element.getBoundingClientRect();\n\n // choose 'move' or 'resize'\n // based on initial position of cursor within the drag element\n var w = dragBBox.right - dragBBox.left;\n var h = dragBBox.bottom - dragBBox.top;\n var x = evt.clientX - dragBBox.left;\n var y = evt.clientY - dragBBox.top;\n var cursor = (!isPath && w > MINWIDTH && h > MINHEIGHT && !evt.shiftKey) ?\n dragElement.getCursor(x / w, 1 - y / h) :\n 'move';\n\n setCursor(shapePath, cursor);\n\n // possible values 'move', 'sw', 'w', 'se', 'e', 'ne', 'n', 'nw' and 'w'\n dragMode = cursor.split('-')[0];\n }\n }\n\n function startDrag(evt) {\n // setup update strings and initial values\n if(xPixelSized) {\n xAnchor = x2p(shapeOptions.xanchor);\n }\n if(yPixelSized) {\n yAnchor = y2p(shapeOptions.yanchor);\n }\n\n if(shapeOptions.type === 'path') {\n pathIn = shapeOptions.path;\n } else {\n x0 = xPixelSized ? shapeOptions.x0 : x2p(shapeOptions.x0);\n y0 = yPixelSized ? shapeOptions.y0 : y2p(shapeOptions.y0);\n x1 = xPixelSized ? shapeOptions.x1 : x2p(shapeOptions.x1);\n y1 = yPixelSized ? shapeOptions.y1 : y2p(shapeOptions.y1);\n }\n\n if(x0 < x1) {\n w0 = x0;\n optW = 'x0';\n e0 = x1;\n optE = 'x1';\n } else {\n w0 = x1;\n optW = 'x1';\n e0 = x0;\n optE = 'x0';\n }\n\n // For fixed size shapes take opposing direction of y-axis into account.\n // Hint: For data sized shapes this is done by the y2p function.\n if((!yPixelSized && y0 < y1) || (yPixelSized && y0 > y1)) {\n n0 = y0;\n optN = 'y0';\n s0 = y1;\n optS = 'y1';\n } else {\n n0 = y1;\n optN = 'y1';\n s0 = y0;\n optS = 'y0';\n }\n\n // setup dragMode and the corresponding handler\n updateDragMode(evt);\n renderVisualCues(shapeLayer, shapeOptions);\n deactivateClipPathTemporarily(shapePath, shapeOptions, gd);\n dragOptions.moveFn = (dragMode === 'move') ? moveShape : resizeShape;\n }\n\n function endDrag() {\n setCursor(shapePath);\n removeVisualCues(shapeLayer);\n\n // Don't rely on clipPath being activated during re-layout\n setClipPath(shapePath, gd, shapeOptions);\n Registry.call('_guiRelayout', gd, editHelpers.getUpdateObj());\n }\n\n function abortDrag() {\n removeVisualCues(shapeLayer);\n }\n\n function moveShape(dx, dy) {\n if(shapeOptions.type === 'path') {\n var noOp = function(coord) { return coord; };\n var moveX = noOp;\n var moveY = noOp;\n\n if(xPixelSized) {\n modifyItem('xanchor', shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n moveX = function moveX(x) { return p2x(x2p(x) + dx); };\n if(xa && xa.type === 'date') moveX = helpers.encodeDate(moveX);\n }\n\n if(yPixelSized) {\n modifyItem('yanchor', shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n moveY = function moveY(y) { return p2y(y2p(y) + dy); };\n if(ya && ya.type === 'date') moveY = helpers.encodeDate(moveY);\n }\n\n modifyItem('path', shapeOptions.path = movePath(pathIn, moveX, moveY));\n } else {\n if(xPixelSized) {\n modifyItem('xanchor', shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n modifyItem('x0', shapeOptions.x0 = p2x(x0 + dx));\n modifyItem('x1', shapeOptions.x1 = p2x(x1 + dx));\n }\n\n if(yPixelSized) {\n modifyItem('yanchor', shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n modifyItem('y0', shapeOptions.y0 = p2y(y0 + dy));\n modifyItem('y1', shapeOptions.y1 = p2y(y1 + dy));\n }\n }\n\n shapePath.attr('d', getPathString(gd, shapeOptions));\n renderVisualCues(shapeLayer, shapeOptions);\n }\n\n function resizeShape(dx, dy) {\n if(isPath) {\n // TODO: implement path resize, don't forget to update dragMode code\n var noOp = function(coord) { return coord; };\n var moveX = noOp;\n var moveY = noOp;\n\n if(xPixelSized) {\n modifyItem('xanchor', shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n moveX = function moveX(x) { return p2x(x2p(x) + dx); };\n if(xa && xa.type === 'date') moveX = helpers.encodeDate(moveX);\n }\n\n if(yPixelSized) {\n modifyItem('yanchor', shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n moveY = function moveY(y) { return p2y(y2p(y) + dy); };\n if(ya && ya.type === 'date') moveY = helpers.encodeDate(moveY);\n }\n\n modifyItem('path', shapeOptions.path = movePath(pathIn, moveX, moveY));\n } else if(isLine) {\n if(dragMode === 'resize-over-start-point') {\n var newX0 = x0 + dx;\n var newY0 = yPixelSized ? y0 - dy : y0 + dy;\n modifyItem('x0', shapeOptions.x0 = xPixelSized ? newX0 : p2x(newX0));\n modifyItem('y0', shapeOptions.y0 = yPixelSized ? newY0 : p2y(newY0));\n } else if(dragMode === 'resize-over-end-point') {\n var newX1 = x1 + dx;\n var newY1 = yPixelSized ? y1 - dy : y1 + dy;\n modifyItem('x1', shapeOptions.x1 = xPixelSized ? newX1 : p2x(newX1));\n modifyItem('y1', shapeOptions.y1 = yPixelSized ? newY1 : p2y(newY1));\n }\n } else {\n var newN = (~dragMode.indexOf('n')) ? n0 + dy : n0;\n var newS = (~dragMode.indexOf('s')) ? s0 + dy : s0;\n var newW = (~dragMode.indexOf('w')) ? w0 + dx : w0;\n var newE = (~dragMode.indexOf('e')) ? e0 + dx : e0;\n\n // Do things in opposing direction for y-axis.\n // Hint: for data-sized shapes the reversal of axis direction is done in p2y.\n if(~dragMode.indexOf('n') && yPixelSized) newN = n0 - dy;\n if(~dragMode.indexOf('s') && yPixelSized) newS = s0 - dy;\n\n // Update shape eventually. Again, be aware of the\n // opposing direction of the y-axis of fixed size shapes.\n if((!yPixelSized && newS - newN > MINHEIGHT) ||\n (yPixelSized && newN - newS > MINHEIGHT)) {\n modifyItem(optN, shapeOptions[optN] = yPixelSized ? newN : p2y(newN));\n modifyItem(optS, shapeOptions[optS] = yPixelSized ? newS : p2y(newS));\n }\n if(newE - newW > MINWIDTH) {\n modifyItem(optW, shapeOptions[optW] = xPixelSized ? newW : p2x(newW));\n modifyItem(optE, shapeOptions[optE] = xPixelSized ? newE : p2x(newE));\n }\n }\n\n shapePath.attr('d', getPathString(gd, shapeOptions));\n renderVisualCues(shapeLayer, shapeOptions);\n }\n\n function renderVisualCues(shapeLayer, shapeOptions) {\n if(xPixelSized || yPixelSized) {\n renderAnchor();\n }\n\n function renderAnchor() {\n var isNotPath = shapeOptions.type !== 'path';\n\n // d3 join with dummy data to satisfy d3 data-binding\n var visualCues = shapeLayer.selectAll('.visual-cue').data([0]);\n\n // Enter\n var strokeWidth = 1;\n visualCues.enter()\n .append('path')\n .attr({\n 'fill': '#fff',\n 'fill-rule': 'evenodd',\n 'stroke': '#000',\n 'stroke-width': strokeWidth\n })\n .classed('visual-cue', true);\n\n // Update\n var posX = x2p(\n xPixelSized ?\n shapeOptions.xanchor :\n Lib.midRange(\n isNotPath ?\n [shapeOptions.x0, shapeOptions.x1] :\n helpers.extractPathCoords(shapeOptions.path, constants.paramIsX))\n );\n var posY = y2p(\n yPixelSized ?\n shapeOptions.yanchor :\n Lib.midRange(\n isNotPath ?\n [shapeOptions.y0, shapeOptions.y1] :\n helpers.extractPathCoords(shapeOptions.path, constants.paramIsY))\n );\n\n posX = helpers.roundPositionForSharpStrokeRendering(posX, strokeWidth);\n posY = helpers.roundPositionForSharpStrokeRendering(posY, strokeWidth);\n\n if(xPixelSized && yPixelSized) {\n var crossPath = 'M' + (posX - 1 - strokeWidth) + ',' + (posY - 1 - strokeWidth) +\n 'h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z';\n visualCues.attr('d', crossPath);\n } else if(xPixelSized) {\n var vBarPath = 'M' + (posX - 1 - strokeWidth) + ',' + (posY - 9 - strokeWidth) +\n 'v18 h2 v-18 Z';\n visualCues.attr('d', vBarPath);\n } else {\n var hBarPath = 'M' + (posX - 9 - strokeWidth) + ',' + (posY - 1 - strokeWidth) +\n 'h18 v2 h-18 Z';\n visualCues.attr('d', hBarPath);\n }\n }\n }\n\n function removeVisualCues(shapeLayer) {\n shapeLayer.selectAll('.visual-cue').remove();\n }\n\n function deactivateClipPathTemporarily(shapePath, shapeOptions, gd) {\n var xref = shapeOptions.xref;\n var yref = shapeOptions.yref;\n var xa = Axes.getFromId(gd, xref);\n var ya = Axes.getFromId(gd, yref);\n\n var clipAxes = '';\n if(xref !== 'paper' && !xa.autorange) clipAxes += xref;\n if(yref !== 'paper' && !ya.autorange) clipAxes += yref;\n\n Drawing.setClipUrl(\n shapePath,\n clipAxes ? 'clip' + gd._fullLayout._uid + clipAxes : null,\n gd\n );\n }\n}\n\nfunction getPathString(gd, options) {\n var type = options.type;\n var xa = Axes.getFromId(gd, options.xref);\n var ya = Axes.getFromId(gd, options.yref);\n var gs = gd._fullLayout._size;\n var x2r, x2p, y2r, y2p;\n var x0, x1, y0, y1;\n\n if(xa) {\n x2r = helpers.shapePositionToRange(xa);\n x2p = function(v) { return xa._offset + xa.r2p(x2r(v, true)); };\n } else {\n x2p = function(v) { return gs.l + gs.w * v; };\n }\n\n if(ya) {\n y2r = helpers.shapePositionToRange(ya);\n y2p = function(v) { return ya._offset + ya.r2p(y2r(v, true)); };\n } else {\n y2p = function(v) { return gs.t + gs.h * (1 - v); };\n }\n\n if(type === 'path') {\n if(xa && xa.type === 'date') x2p = helpers.decodeDate(x2p);\n if(ya && ya.type === 'date') y2p = helpers.decodeDate(y2p);\n return convertPath(options, x2p, y2p);\n }\n\n if(options.xsizemode === 'pixel') {\n var xAnchorPos = x2p(options.xanchor);\n x0 = xAnchorPos + options.x0;\n x1 = xAnchorPos + options.x1;\n } else {\n x0 = x2p(options.x0);\n x1 = x2p(options.x1);\n }\n\n if(options.ysizemode === 'pixel') {\n var yAnchorPos = y2p(options.yanchor);\n y0 = yAnchorPos - options.y0;\n y1 = yAnchorPos - options.y1;\n } else {\n y0 = y2p(options.y0);\n y1 = y2p(options.y1);\n }\n\n if(type === 'line') return 'M' + x0 + ',' + y0 + 'L' + x1 + ',' + y1;\n if(type === 'rect') return 'M' + x0 + ',' + y0 + 'H' + x1 + 'V' + y1 + 'H' + x0 + 'Z';\n\n // circle\n var cx = (x0 + x1) / 2;\n var cy = (y0 + y1) / 2;\n var rx = Math.abs(cx - x0);\n var ry = Math.abs(cy - y0);\n var rArc = 'A' + rx + ',' + ry;\n var rightPt = (cx + rx) + ',' + cy;\n var topPt = cx + ',' + (cy - ry);\n return 'M' + rightPt + rArc + ' 0 1,1 ' + topPt +\n rArc + ' 0 0,1 ' + rightPt + 'Z';\n}\n\n\nfunction convertPath(options, x2p, y2p) {\n var pathIn = options.path;\n var xSizemode = options.xsizemode;\n var ySizemode = options.ysizemode;\n var xAnchor = options.xanchor;\n var yAnchor = options.yanchor;\n\n return pathIn.replace(constants.segmentRE, function(segment) {\n var paramNumber = 0;\n var segmentType = segment.charAt(0);\n var xParams = constants.paramIsX[segmentType];\n var yParams = constants.paramIsY[segmentType];\n var nParams = constants.numParams[segmentType];\n\n var paramString = segment.substr(1).replace(constants.paramRE, function(param) {\n if(xParams[paramNumber]) {\n if(xSizemode === 'pixel') param = x2p(xAnchor) + Number(param);\n else param = x2p(param);\n } else if(yParams[paramNumber]) {\n if(ySizemode === 'pixel') param = y2p(yAnchor) - Number(param);\n else param = y2p(param);\n }\n paramNumber++;\n\n if(paramNumber > nParams) param = 'X';\n return param;\n });\n\n if(paramNumber > nParams) {\n paramString = paramString.replace(/[\\s,]*X.*/, '');\n Lib.log('Ignoring extra params in segment ' + segment);\n }\n\n return segmentType + paramString;\n });\n}\n\nfunction movePath(pathIn, moveX, moveY) {\n return pathIn.replace(constants.segmentRE, function(segment) {\n var paramNumber = 0;\n var segmentType = segment.charAt(0);\n var xParams = constants.paramIsX[segmentType];\n var yParams = constants.paramIsY[segmentType];\n var nParams = constants.numParams[segmentType];\n\n var paramString = segment.substr(1).replace(constants.paramRE, function(param) {\n if(paramNumber >= nParams) return param;\n\n if(xParams[paramNumber]) param = moveX(param);\n else if(yParams[paramNumber]) param = moveY(param);\n\n paramNumber++;\n\n return param;\n });\n\n return segmentType + paramString;\n });\n}\n\n\n/***/ }),\n\n/***/ \"2381\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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/* eslint-disable new-cap */\n\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\n\nvar micropolar = __webpack_require__(\"3a99\");\nvar UndoManager = __webpack_require__(\"12c1\");\nvar extendDeepAll = Lib.extendDeepAll;\n\nvar manager = module.exports = {};\n\nmanager.framework = function(_gd) {\n var config, previousConfigClone, plot, convertedInput, container;\n var undoManager = new UndoManager();\n\n function exports(_inputConfig, _container) {\n if(_container) container = _container;\n d3.select(d3.select(container).node().parentNode).selectAll('.svg-container>*:not(.chart-root)').remove();\n\n config = (!config) ?\n _inputConfig :\n extendDeepAll(config, _inputConfig);\n\n if(!plot) plot = micropolar.Axis();\n convertedInput = micropolar.adapter.plotly().convert(config);\n plot.config(convertedInput).render(container);\n _gd.data = config.data;\n _gd.layout = config.layout;\n manager.fillLayout(_gd);\n return config;\n }\n exports.isPolar = true;\n exports.svg = function() { return plot.svg(); };\n exports.getConfig = function() { return config; };\n exports.getLiveConfig = function() {\n return micropolar.adapter.plotly().convert(plot.getLiveConfig(), true);\n };\n exports.getLiveScales = function() { return {t: plot.angularScale(), r: plot.radialScale()}; };\n exports.setUndoPoint = function() {\n var that = this;\n var configClone = micropolar.util.cloneJson(config);\n (function(_configClone, _previousConfigClone) {\n undoManager.add({\n undo: function() {\n if(_previousConfigClone) that(_previousConfigClone);\n },\n redo: function() {\n that(_configClone);\n }\n });\n })(configClone, previousConfigClone);\n previousConfigClone = micropolar.util.cloneJson(configClone);\n };\n exports.undo = function() { undoManager.undo(); };\n exports.redo = function() { undoManager.redo(); };\n return exports;\n};\n\nmanager.fillLayout = function(_gd) {\n var container = d3.select(_gd).selectAll('.plot-container');\n var paperDiv = container.selectAll('.svg-container');\n var paper = _gd.framework && _gd.framework.svg && _gd.framework.svg();\n var dflts = {\n width: 800,\n height: 600,\n paper_bgcolor: Color.background,\n _container: container,\n _paperdiv: paperDiv,\n _paper: paper\n };\n\n _gd._fullLayout = extendDeepAll(dflts, _gd.layout);\n};\n\n\n/***/ }),\n\n/***/ \"23cb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n\n/***/ \"23cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n CLICK_TRANSITION_TIME: 750,\n CLICK_TRANSITION_EASING: 'poly',\n eventDataKeys: [\n // string\n 'currentPath',\n 'root',\n 'entry',\n // no need to add 'parent' here\n\n // percentages i.e. ratios\n 'percentRoot',\n 'percentEntry',\n 'percentParent'\n ],\n gapWithPathbar: 1 // i.e. one pixel\n};\n\n\n/***/ }),\n\n/***/ \"23e7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar getOwnPropertyDescriptor = __webpack_require__(\"06cf\").f;\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar redefine = __webpack_require__(\"6eeb\");\nvar setGlobal = __webpack_require__(\"ce4e\");\nvar copyConstructorProperties = __webpack_require__(\"e893\");\nvar isForced = __webpack_require__(\"94ca\");\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n\n/***/ \"241c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(\"ca84\");\nvar enumBugKeys = __webpack_require__(\"7839\");\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ \"2441\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * @copyright 2016 Sean Connelly (@voidqk), http://syntheti.cc\n * @license MIT\n * @preserve Project Home: https://github.com/voidqk/polybooljs\n */\n\nvar BuildLog = __webpack_require__(\"a6dc\");\nvar Epsilon = __webpack_require__(\"f8a5\");\nvar Intersecter = __webpack_require__(\"9935\");\nvar SegmentChainer = __webpack_require__(\"a626\");\nvar SegmentSelector = __webpack_require__(\"b924\");\nvar GeoJSON = __webpack_require__(\"34cc\");\n\nvar buildLog = false;\nvar epsilon = Epsilon();\n\nvar PolyBool;\nPolyBool = {\n\t// getter/setter for buildLog\n\tbuildLog: function(bl){\n\t\tif (bl === true)\n\t\t\tbuildLog = BuildLog();\n\t\telse if (bl === false)\n\t\t\tbuildLog = false;\n\t\treturn buildLog === false ? false : buildLog.list;\n\t},\n\t// getter/setter for epsilon\n\tepsilon: function(v){\n\t\treturn epsilon.epsilon(v);\n\t},\n\n\t// core API\n\tsegments: function(poly){\n\t\tvar i = Intersecter(true, epsilon, buildLog);\n\t\tpoly.regions.forEach(i.addRegion);\n\t\treturn {\n\t\t\tsegments: i.calculate(poly.inverted),\n\t\t\tinverted: poly.inverted\n\t\t};\n\t},\n\tcombine: function(segments1, segments2){\n\t\tvar i3 = Intersecter(false, epsilon, buildLog);\n\t\treturn {\n\t\t\tcombined: i3.calculate(\n\t\t\t\tsegments1.segments, segments1.inverted,\n\t\t\t\tsegments2.segments, segments2.inverted\n\t\t\t),\n\t\t\tinverted1: segments1.inverted,\n\t\t\tinverted2: segments2.inverted\n\t\t};\n\t},\n\tselectUnion: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.union(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 || combined.inverted2\n\t\t}\n\t},\n\tselectIntersect: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.intersect(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 && combined.inverted2\n\t\t}\n\t},\n\tselectDifference: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.difference(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 && !combined.inverted2\n\t\t}\n\t},\n\tselectDifferenceRev: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.differenceRev(combined.combined, buildLog),\n\t\t\tinverted: !combined.inverted1 && combined.inverted2\n\t\t}\n\t},\n\tselectXor: function(combined){\n\t\treturn {\n\t\t\tsegments: SegmentSelector.xor(combined.combined, buildLog),\n\t\t\tinverted: combined.inverted1 !== combined.inverted2\n\t\t}\n\t},\n\tpolygon: function(segments){\n\t\treturn {\n\t\t\tregions: SegmentChainer(segments.segments, epsilon, buildLog),\n\t\t\tinverted: segments.inverted\n\t\t};\n\t},\n\n\t// GeoJSON converters\n\tpolygonFromGeoJSON: function(geojson){\n\t\treturn GeoJSON.toPolygon(PolyBool, geojson);\n\t},\n\tpolygonToGeoJSON: function(poly){\n\t\treturn GeoJSON.fromPolygon(PolyBool, epsilon, poly);\n\t},\n\n\t// helper functions for common operations\n\tunion: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectUnion);\n\t},\n\tintersect: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectIntersect);\n\t},\n\tdifference: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectDifference);\n\t},\n\tdifferenceRev: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectDifferenceRev);\n\t},\n\txor: function(poly1, poly2){\n\t\treturn operate(poly1, poly2, PolyBool.selectXor);\n\t}\n};\n\nfunction operate(poly1, poly2, selector){\n\tvar seg1 = PolyBool.segments(poly1);\n\tvar seg2 = PolyBool.segments(poly2);\n\tvar comb = PolyBool.combine(seg1, seg2);\n\tvar seg3 = selector(comb);\n\treturn PolyBool.polygon(seg3);\n}\n\nif (typeof window === 'object')\n\twindow.PolyBool = PolyBool;\n\nmodule.exports = PolyBool;\n\n\n/***/ }),\n\n/***/ \"2456\":\n/***/ (function(module, exports) {\n\nmodule.exports = squaredLength;\n\n/**\n * Calculates the squared length of a vec3\n *\n * @param {vec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nfunction squaredLength(a) {\n var x = a[0],\n y = a[1],\n z = a[2]\n return x*x + y*y + z*z\n}\n\n/***/ }),\n\n/***/ \"24ad\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n \"use restrict\";\n\nvar bits = __webpack_require__(\"a48a\")\n , UnionFind = __webpack_require__(\"dca5\")\n\n//Returns the dimension of a cell complex\nfunction dimension(cells) {\n var d = 0\n , max = Math.max\n for(var i=0, il=cells.length; i> 1\n , s = compareCells(cells[mid], c)\n if(s <= 0) {\n if(s === 0) {\n r = mid\n }\n lo = mid + 1\n } else if(s > 0) {\n hi = mid - 1\n }\n }\n return r\n}\nexports.findCell = findCell;\n\n//Builds an index for an n-cell. This is more general than dual, but less efficient\nfunction incidence(from_cells, to_cells) {\n var index = new Array(from_cells.length)\n for(var i=0, il=index.length; i= from_cells.length || compareCells(from_cells[idx], b) !== 0) {\n break\n }\n }\n }\n }\n return index\n}\nexports.incidence = incidence\n\n//Computes the dual of the mesh. This is basically an optimized version of buildIndex for the situation where from_cells is just the list of vertices\nfunction dual(cells, vertex_count) {\n if(!vertex_count) {\n return incidence(unique(skeleton(cells, 0)), cells, 0)\n }\n var res = new Array(vertex_count)\n for(var i=0; i>> k) & 1) {\n b.push(c[k])\n }\n }\n result.push(b)\n }\n }\n return normalize(result)\n}\nexports.explode = explode\n\n//Enumerates all of the n-cells of a cell complex\nfunction skeleton(cells, n) {\n if(n < 0) {\n return []\n }\n var result = []\n , k0 = (1<<(n+1))-1\n for(var i=0; i 2 / 3) anchor = 'right';\n else anchor = 'center';\n }\n return {\n center: 0,\n middle: 0,\n left: 0.5,\n bottom: -0.5,\n right: -0.5,\n top: 0.5\n }[anchor];\n }\n\n var annotationIsOffscreen = false;\n var letters = ['x', 'y'];\n\n for(var i = 0; i < letters.length; i++) {\n var axLetter = letters[i];\n var axRef = options[axLetter + 'ref'] || axLetter;\n var tailRef = options['a' + axLetter + 'ref'];\n var ax = {x: xa, y: ya}[axLetter];\n var dimAngle = (textangle + (axLetter === 'x' ? 0 : -90)) * Math.PI / 180;\n // note that these two can be either positive or negative\n var annSizeFromWidth = outerWidth * Math.cos(dimAngle);\n var annSizeFromHeight = outerHeight * Math.sin(dimAngle);\n // but this one is the positive total size\n var annSize = Math.abs(annSizeFromWidth) + Math.abs(annSizeFromHeight);\n var anchor = options[axLetter + 'anchor'];\n var overallShift = options[axLetter + 'shift'] * (axLetter === 'x' ? 1 : -1);\n var posPx = annPosPx[axLetter];\n var basePx;\n var textPadShift;\n var alignPosition;\n var autoAlignFraction;\n var textShift;\n\n /*\n * calculate the *primary* pixel position\n * which is the arrowhead if there is one,\n * otherwise the text anchor point\n */\n if(ax) {\n // check if annotation is off screen, to bypass DOM manipulations\n var posFraction = ax.r2fraction(options[axLetter]);\n if(posFraction < 0 || posFraction > 1) {\n if(tailRef === axRef) {\n posFraction = ax.r2fraction(options['a' + axLetter]);\n if(posFraction < 0 || posFraction > 1) {\n annotationIsOffscreen = true;\n }\n } else {\n annotationIsOffscreen = true;\n }\n }\n basePx = ax._offset + ax.r2p(options[axLetter]);\n autoAlignFraction = 0.5;\n } else {\n if(axLetter === 'x') {\n alignPosition = options[axLetter];\n basePx = gs.l + gs.w * alignPosition;\n } else {\n alignPosition = 1 - options[axLetter];\n basePx = gs.t + gs.h * alignPosition;\n }\n autoAlignFraction = options.showarrow ? 0.5 : alignPosition;\n }\n\n // now translate this into pixel positions of head, tail, and text\n // as well as paddings for autorange\n if(options.showarrow) {\n posPx.head = basePx;\n\n var arrowLength = options['a' + axLetter];\n\n // with an arrow, the text rotates around the anchor point\n textShift = annSizeFromWidth * shiftFraction(0.5, options.xanchor) -\n annSizeFromHeight * shiftFraction(0.5, options.yanchor);\n\n if(tailRef === axRef) {\n posPx.tail = ax._offset + ax.r2p(arrowLength);\n // tail is data-referenced: autorange pads the text in px from the tail\n textPadShift = textShift;\n } else {\n posPx.tail = basePx + arrowLength;\n // tail is specified in px from head, so autorange also pads vs head\n textPadShift = textShift + arrowLength;\n }\n\n posPx.text = posPx.tail + textShift;\n\n // constrain pixel/paper referenced so the draggers are at least\n // partially visible\n var maxPx = fullLayout[(axLetter === 'x') ? 'width' : 'height'];\n if(axRef === 'paper') {\n posPx.head = Lib.constrain(posPx.head, 1, maxPx - 1);\n }\n if(tailRef === 'pixel') {\n var shiftPlus = -Math.max(posPx.tail - 3, posPx.text);\n var shiftMinus = Math.min(posPx.tail + 3, posPx.text) - maxPx;\n if(shiftPlus > 0) {\n posPx.tail += shiftPlus;\n posPx.text += shiftPlus;\n } else if(shiftMinus > 0) {\n posPx.tail -= shiftMinus;\n posPx.text -= shiftMinus;\n }\n }\n\n posPx.tail += overallShift;\n posPx.head += overallShift;\n } else {\n // with no arrow, the text rotates and *then* we put the anchor\n // relative to the new bounding box\n textShift = annSize * shiftFraction(autoAlignFraction, anchor);\n textPadShift = textShift;\n posPx.text = basePx + textShift;\n }\n\n posPx.text += overallShift;\n textShift += overallShift;\n textPadShift += overallShift;\n\n // padplus/minus are used by autorange\n options['_' + axLetter + 'padplus'] = (annSize / 2) + textPadShift;\n options['_' + axLetter + 'padminus'] = (annSize / 2) - textPadShift;\n\n // size/shift are used during dragging\n options['_' + axLetter + 'size'] = annSize;\n options['_' + axLetter + 'shift'] = textShift;\n }\n\n if(annotationIsOffscreen) {\n annTextGroupInner.remove();\n return;\n }\n\n var xShift = 0;\n var yShift = 0;\n\n if(options.align !== 'left') {\n xShift = (annWidth - textWidth) * (options.align === 'center' ? 0.5 : 1);\n }\n if(options.valign !== 'top') {\n yShift = (annHeight - textHeight) * (options.valign === 'middle' ? 0.5 : 1);\n }\n\n if(hasMathjax) {\n mathjaxGroup.select('svg').attr({\n x: borderfull + xShift - 1,\n y: borderfull + yShift\n })\n .call(Drawing.setClipUrl, isSizeConstrained ? annClipID : null, gd);\n } else {\n var texty = borderfull + yShift - anntextBB.top;\n var textx = borderfull + xShift - anntextBB.left;\n\n annText.call(svgTextUtils.positionText, textx, texty)\n .call(Drawing.setClipUrl, isSizeConstrained ? annClipID : null, gd);\n }\n\n annTextClip.select('rect').call(Drawing.setRect, borderfull, borderfull,\n annWidth, annHeight);\n\n annTextBG.call(Drawing.setRect, borderwidth / 2, borderwidth / 2,\n outerWidth - borderwidth, outerHeight - borderwidth);\n\n annTextGroupInner.call(Drawing.setTranslate,\n Math.round(annPosPx.x.text - outerWidth / 2),\n Math.round(annPosPx.y.text - outerHeight / 2));\n\n /*\n * rotate text and background\n * we already calculated the text center position *as rotated*\n * because we needed that for autoranging anyway, so now whether\n * we have an arrow or not, we rotate about the text center.\n */\n annTextGroup.attr({transform: 'rotate(' + textangle + ',' +\n annPosPx.x.text + ',' + annPosPx.y.text + ')'});\n\n /*\n * add the arrow\n * uses options[arrowwidth,arrowcolor,arrowhead] for styling\n * dx and dy are normally zero, but when you are dragging the textbox\n * while the head stays put, dx and dy are the pixel offsets\n */\n var drawArrow = function(dx, dy) {\n annGroup\n .selectAll('.annotation-arrow-g')\n .remove();\n\n var headX = annPosPx.x.head;\n var headY = annPosPx.y.head;\n var tailX = annPosPx.x.tail + dx;\n var tailY = annPosPx.y.tail + dy;\n var textX = annPosPx.x.text + dx;\n var textY = annPosPx.y.text + dy;\n\n // find the edge of the text box, where we'll start the arrow:\n // create transform matrix to rotate the text box corners\n var transform = Lib.rotationXYMatrix(textangle, textX, textY);\n var applyTransform = Lib.apply2DTransform(transform);\n var applyTransform2 = Lib.apply2DTransform2(transform);\n\n // calculate and transform bounding box\n var width = +annTextBG.attr('width');\n var height = +annTextBG.attr('height');\n var xLeft = textX - 0.5 * width;\n var xRight = xLeft + width;\n var yTop = textY - 0.5 * height;\n var yBottom = yTop + height;\n var edges = [\n [xLeft, yTop, xLeft, yBottom],\n [xLeft, yBottom, xRight, yBottom],\n [xRight, yBottom, xRight, yTop],\n [xRight, yTop, xLeft, yTop]\n ].map(applyTransform2);\n\n // Remove the line if it ends inside the box. Use ray\n // casting for rotated boxes: see which edges intersect a\n // line from the arrowhead to far away and reduce with xor\n // to get the parity of the number of intersections.\n if(edges.reduce(function(a, x) {\n return a ^\n !!Lib.segmentsIntersect(headX, headY, headX + 1e6, headY + 1e6,\n x[0], x[1], x[2], x[3]);\n }, false)) {\n // no line or arrow - so quit drawArrow now\n return;\n }\n\n edges.forEach(function(x) {\n var p = Lib.segmentsIntersect(tailX, tailY, headX, headY,\n x[0], x[1], x[2], x[3]);\n if(p) {\n tailX = p.x;\n tailY = p.y;\n }\n });\n\n var strokewidth = options.arrowwidth;\n var arrowColor = options.arrowcolor;\n var arrowSide = options.arrowside;\n\n var arrowGroup = annGroup.append('g')\n .style({opacity: Color.opacity(arrowColor)})\n .classed('annotation-arrow-g', true);\n\n var arrow = arrowGroup.append('path')\n .attr('d', 'M' + tailX + ',' + tailY + 'L' + headX + ',' + headY)\n .style('stroke-width', strokewidth + 'px')\n .call(Color.stroke, Color.rgb(arrowColor));\n\n drawArrowHead(arrow, arrowSide, options);\n\n // the arrow dragger is a small square right at the head, then a line to the tail,\n // all expanded by a stroke width of 6px plus the arrow line width\n if(edits.annotationPosition && arrow.node().parentNode && !subplotId) {\n var arrowDragHeadX = headX;\n var arrowDragHeadY = headY;\n if(options.standoff) {\n var arrowLength = Math.sqrt(Math.pow(headX - tailX, 2) + Math.pow(headY - tailY, 2));\n arrowDragHeadX += options.standoff * (tailX - headX) / arrowLength;\n arrowDragHeadY += options.standoff * (tailY - headY) / arrowLength;\n }\n var arrowDrag = arrowGroup.append('path')\n .classed('annotation-arrow', true)\n .classed('anndrag', true)\n .classed('cursor-move', true)\n .attr({\n d: 'M3,3H-3V-3H3ZM0,0L' + (tailX - arrowDragHeadX) + ',' + (tailY - arrowDragHeadY),\n transform: 'translate(' + arrowDragHeadX + ',' + arrowDragHeadY + ')'\n })\n .style('stroke-width', (strokewidth + 6) + 'px')\n .call(Color.stroke, 'rgba(0,0,0,0)')\n .call(Color.fill, 'rgba(0,0,0,0)');\n\n var annx0, anny0;\n\n // dragger for the arrow & head: translates the whole thing\n // (head/tail/text) all together\n dragElement.init({\n element: arrowDrag.node(),\n gd: gd,\n prepFn: function() {\n var pos = Drawing.getTranslate(annTextGroupInner);\n\n annx0 = pos.x;\n anny0 = pos.y;\n if(xa && xa.autorange) {\n modifyBase(xa._name + '.autorange', true);\n }\n if(ya && ya.autorange) {\n modifyBase(ya._name + '.autorange', true);\n }\n },\n moveFn: function(dx, dy) {\n var annxy0 = applyTransform(annx0, anny0);\n var xcenter = annxy0[0] + dx;\n var ycenter = annxy0[1] + dy;\n annTextGroupInner.call(Drawing.setTranslate, xcenter, ycenter);\n\n modifyItem('x', xa ?\n xa.p2r(xa.r2p(options.x) + dx) :\n (options.x + (dx / gs.w)));\n modifyItem('y', ya ?\n ya.p2r(ya.r2p(options.y) + dy) :\n (options.y - (dy / gs.h)));\n\n if(options.axref === options.xref) {\n modifyItem('ax', xa.p2r(xa.r2p(options.ax) + dx));\n }\n\n if(options.ayref === options.yref) {\n modifyItem('ay', ya.p2r(ya.r2p(options.ay) + dy));\n }\n\n arrowGroup.attr('transform', 'translate(' + dx + ',' + dy + ')');\n annTextGroup.attr({\n transform: 'rotate(' + textangle + ',' +\n xcenter + ',' + ycenter + ')'\n });\n },\n doneFn: function() {\n Registry.call('_guiRelayout', gd, getUpdateObj());\n var notesBox = document.querySelector('.js-notes-box-panel');\n if(notesBox) notesBox.redraw(notesBox.selectedObj);\n }\n });\n }\n };\n\n if(options.showarrow) drawArrow(0, 0);\n\n // user dragging the annotation (text, not arrow)\n if(editTextPosition) {\n var baseTextTransform;\n\n // dragger for the textbox: if there's an arrow, just drag the\n // textbox and tail, leave the head untouched\n dragElement.init({\n element: annTextGroupInner.node(),\n gd: gd,\n prepFn: function() {\n baseTextTransform = annTextGroup.attr('transform');\n },\n moveFn: function(dx, dy) {\n var csr = 'pointer';\n if(options.showarrow) {\n if(options.axref === options.xref) {\n modifyItem('ax', xa.p2r(xa.r2p(options.ax) + dx));\n } else {\n modifyItem('ax', options.ax + dx);\n }\n\n if(options.ayref === options.yref) {\n modifyItem('ay', ya.p2r(ya.r2p(options.ay) + dy));\n } else {\n modifyItem('ay', options.ay + dy);\n }\n\n drawArrow(dx, dy);\n } else if(!subplotId) {\n var xUpdate, yUpdate;\n if(xa) {\n xUpdate = xa.p2r(xa.r2p(options.x) + dx);\n } else {\n var widthFraction = options._xsize / gs.w;\n var xLeft = options.x + (options._xshift - options.xshift) / gs.w - widthFraction / 2;\n\n xUpdate = dragElement.align(xLeft + dx / gs.w,\n widthFraction, 0, 1, options.xanchor);\n }\n\n if(ya) {\n yUpdate = ya.p2r(ya.r2p(options.y) + dy);\n } else {\n var heightFraction = options._ysize / gs.h;\n var yBottom = options.y - (options._yshift + options.yshift) / gs.h - heightFraction / 2;\n\n yUpdate = dragElement.align(yBottom - dy / gs.h,\n heightFraction, 0, 1, options.yanchor);\n }\n modifyItem('x', xUpdate);\n modifyItem('y', yUpdate);\n if(!xa || !ya) {\n csr = dragElement.getCursor(\n xa ? 0.5 : xUpdate,\n ya ? 0.5 : yUpdate,\n options.xanchor, options.yanchor\n );\n }\n } else return;\n\n annTextGroup.attr({\n transform: 'translate(' + dx + ',' + dy + ')' + baseTextTransform\n });\n\n setCursor(annTextGroupInner, csr);\n },\n clickFn: function(_, initialEvent) {\n if(options.captureevents) {\n gd.emit('plotly_clickannotation', makeEventData(initialEvent));\n }\n },\n doneFn: function() {\n setCursor(annTextGroupInner);\n Registry.call('_guiRelayout', gd, getUpdateObj());\n var notesBox = document.querySelector('.js-notes-box-panel');\n if(notesBox) notesBox.redraw(notesBox.selectedObj);\n }\n });\n }\n }\n\n if(edits.annotationText) {\n annText.call(svgTextUtils.makeEditable, {delegate: annTextGroupInner, gd: gd})\n .call(textLayout)\n .on('edit', function(_text) {\n options.text = _text;\n\n this.call(textLayout);\n\n modifyItem('text', _text);\n\n if(xa && xa.autorange) {\n modifyBase(xa._name + '.autorange', true);\n }\n if(ya && ya.autorange) {\n modifyBase(ya._name + '.autorange', true);\n }\n\n Registry.call('_guiRelayout', gd, getUpdateObj());\n });\n } else annText.call(textLayout);\n}\n\n\n/***/ }),\n\n/***/ \"25be\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar d = __webpack_require__(\"f508\")\n , validateSymbol = __webpack_require__(\"b380\");\n\nvar registry = Object.create(null);\n\nmodule.exports = function (SymbolPolyfill) {\n\treturn Object.defineProperties(SymbolPolyfill, {\n\t\tfor: d(function (key) {\n\t\t\tif (registry[key]) return registry[key];\n\t\t\treturn (registry[key] = SymbolPolyfill(String(key)));\n\t\t}),\n\t\tkeyFor: d(function (symbol) {\n\t\t\tvar key;\n\t\t\tvalidateSymbol(symbol);\n\t\t\tfor (key in registry) {\n\t\t\t\tif (registry[key] === symbol) return key;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t})\n\t});\n};\n\n\n/***/ }),\n\n/***/ \"25f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar attrs = __webpack_require__(\"4ce7\");\n\nmodule.exports = function(layoutIn, layoutOut, fullData) {\n var subplotsDone = {};\n var sp;\n\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn[sp] || {}, layoutOut[sp], attrs, attr, dflt);\n }\n\n for(var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if(trace.type === 'barpolar' && trace.visible === true) {\n sp = trace.subplot;\n if(!subplotsDone[sp]) {\n coerce('barmode');\n coerce('bargap');\n subplotsDone[sp] = 1;\n }\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"25f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\n/*\n * Given a 2D array as well as a basis in either direction, this function fills in the\n * 2D array using a combination of smoothing and extrapolation. This is rather important\n * for carpet plots since it's used for layout so that we can't simply omit or blank out\n * points. We need a reasonable guess so that the interpolation puts points somewhere\n * even if we were to somehow represent that the data was missing later on.\n *\n * input:\n * - data: 2D array of arrays\n * - a: array such that a.length === data[0].length\n * - b: array such that b.length === data.length\n */\nmodule.exports = function smoothFill2dArray(data, a, b) {\n var i, j, k;\n var ip = [];\n var jp = [];\n // var neighborCnts = [];\n\n var ni = data[0].length;\n var nj = data.length;\n\n function avgSurrounding(i, j) {\n // As a low-quality start, we can simply average surrounding points (in a not\n // non-uniform grid aware manner):\n var sum = 0.0;\n var val;\n var cnt = 0;\n if(i > 0 && (val = data[j][i - 1]) !== undefined) {\n cnt++;\n sum += val;\n }\n if(i < ni - 1 && (val = data[j][i + 1]) !== undefined) {\n cnt++;\n sum += val;\n }\n if(j > 0 && (val = data[j - 1][i]) !== undefined) {\n cnt++;\n sum += val;\n }\n if(j < nj - 1 && (val = data[j + 1][i]) !== undefined) {\n cnt++;\n sum += val;\n }\n return sum / Math.max(1, cnt);\n }\n\n // This loop iterates over all cells. Any cells that are null will be noted and those\n // are the only points we will loop over and update via laplace's equation. Points with\n // any neighbors will receive the average. If there are no neighboring points, then they\n // will be set to zero. Also as we go, track the maximum magnitude so that we can scale\n // our tolerance accordingly.\n var dmax = 0.0;\n for(i = 0; i < ni; i++) {\n for(j = 0; j < nj; j++) {\n if(data[j][i] === undefined) {\n ip.push(i);\n jp.push(j);\n\n data[j][i] = avgSurrounding(i, j);\n // neighborCnts.push(result.neighbors);\n }\n dmax = Math.max(dmax, Math.abs(data[j][i]));\n }\n }\n\n if(!ip.length) return data;\n\n // The tolerance doesn't need to be excessive. It's just for display positioning\n var dxp, dxm, dap, dam, dbp, dbm, c, d, diff, reldiff, overrelaxation;\n var tol = 1e-5;\n var resid = 0;\n var itermax = 100;\n var iter = 0;\n var n = ip.length;\n do {\n resid = 0;\n // Normally we'd loop in two dimensions, but not all points are blank and need\n // an update, so we instead loop only over the points that were tabulated above\n for(k = 0; k < n; k++) {\n i = ip[k];\n j = jp[k];\n // neighborCnt = neighborCnts[k];\n\n // Track a counter for how many contributions there are. We'll use this counter\n // to average at the end, which reduces to laplace's equation with neumann boundary\n // conditions on the first derivative (second derivative is zero so that we get\n // a nice linear extrapolation at the boundaries).\n var boundaryCnt = 0;\n var newVal = 0;\n\n var d0, d1, x0, x1, i0, j0;\n if(i === 0) {\n // If this lies along the i = 0 boundary, extrapolate from the two points\n // to the right of this point. Note that the finite differences take into\n // account non-uniform grid spacing:\n i0 = Math.min(ni - 1, 2);\n x0 = a[i0];\n x1 = a[1];\n d0 = data[j][i0];\n d1 = data[j][1];\n newVal += d1 + (d1 - d0) * (a[0] - x1) / (x1 - x0);\n boundaryCnt++;\n } else if(i === ni - 1) {\n // If along the high i boundary, extrapolate from the two points to the\n // left of this point\n i0 = Math.max(0, ni - 3);\n x0 = a[i0];\n x1 = a[ni - 2];\n d0 = data[j][i0];\n d1 = data[j][ni - 2];\n newVal += d1 + (d1 - d0) * (a[ni - 1] - x1) / (x1 - x0);\n boundaryCnt++;\n }\n\n if((i === 0 || i === ni - 1) && (j > 0 && j < nj - 1)) {\n // If along the min(i) or max(i) boundaries, also smooth vertically as long\n // as we're not in a corner. Note that the finite differences used here\n // are also aware of nonuniform grid spacing:\n dxp = b[j + 1] - b[j];\n dxm = b[j] - b[j - 1];\n newVal += (dxm * data[j + 1][i] + dxp * data[j - 1][i]) / (dxm + dxp);\n boundaryCnt++;\n }\n\n if(j === 0) {\n // If along the j = 0 boundary, extrpolate this point from the two points\n // above it\n j0 = Math.min(nj - 1, 2);\n x0 = b[j0];\n x1 = b[1];\n d0 = data[j0][i];\n d1 = data[1][i];\n newVal += d1 + (d1 - d0) * (b[0] - x1) / (x1 - x0);\n boundaryCnt++;\n } else if(j === nj - 1) {\n // Same for the max j boundary from the cells below it:\n j0 = Math.max(0, nj - 3);\n x0 = b[j0];\n x1 = b[nj - 2];\n d0 = data[j0][i];\n d1 = data[nj - 2][i];\n newVal += d1 + (d1 - d0) * (b[nj - 1] - x1) / (x1 - x0);\n boundaryCnt++;\n }\n\n if((j === 0 || j === nj - 1) && (i > 0 && i < ni - 1)) {\n // Now average points to the left/right as long as not in a corner:\n dxp = a[i + 1] - a[i];\n dxm = a[i] - a[i - 1];\n newVal += (dxm * data[j][i + 1] + dxp * data[j][i - 1]) / (dxm + dxp);\n boundaryCnt++;\n }\n\n if(!boundaryCnt) {\n // If none of the above conditions were triggered, then this is an interior\n // point and we can just do a laplace equation update. As above, these differences\n // are aware of nonuniform grid spacing:\n dap = a[i + 1] - a[i];\n dam = a[i] - a[i - 1];\n dbp = b[j + 1] - b[j];\n dbm = b[j] - b[j - 1];\n\n // These are just some useful constants for the iteration, which is perfectly\n // straightforward but a little long to derive from f_xx + f_yy = 0.\n c = dap * dam * (dap + dam);\n d = dbp * dbm * (dbp + dbm);\n\n newVal = (c * (dbm * data[j + 1][i] + dbp * data[j - 1][i]) +\n d * (dam * data[j][i + 1] + dap * data[j][i - 1])) /\n (d * (dam + dap) + c * (dbm + dbp));\n } else {\n // If we did have contributions from the boundary conditions, then average\n // the result from the various contributions:\n newVal /= boundaryCnt;\n }\n\n // Jacobi updates are ridiculously slow to converge, so this approach uses a\n // Gauss-seidel iteration which is dramatically faster.\n diff = newVal - data[j][i];\n reldiff = diff / dmax;\n resid += reldiff * reldiff;\n\n // Gauss-Seidel-ish iteration, omega chosen based on heuristics and some\n // quick tests.\n //\n // NB: Don't overrelax the boundarie. Otherwise set an overrelaxation factor\n // which is a little low but safely optimal-ish:\n overrelaxation = boundaryCnt ? 0 : 0.85;\n\n // If there are four non-null neighbors, then we want a simple average without\n // overrelaxation. If all the surrouding points are null, then we want the full\n // overrelaxation\n //\n // Based on experiments, this actually seems to slow down convergence just a bit.\n // I'll leave it here for reference in case this needs to be revisited, but\n // it seems to work just fine without this.\n // if (overrelaxation) overrelaxation *= (4 - neighborCnt) / 4;\n\n data[j][i] += diff * (1 + overrelaxation);\n }\n\n resid = Math.sqrt(resid);\n } while(iter++ < itermax && resid > tol);\n\n Lib.log('Smoother converged to', resid, 'after', iter, 'iterations');\n\n return data;\n};\n\n\n/***/ }),\n\n/***/ \"262a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar resolveException = __webpack_require__(\"84d3\")\n , is = __webpack_require__(\"936a\");\n\nmodule.exports = function (value/*, options*/) {\n\tif (is(value)) return value;\n\treturn resolveException(value, \"Cannot use %v\", arguments[1]);\n};\n\n\n/***/ }),\n\n/***/ \"2638\":\n/***/ (function(module, exports) {\n\nmodule.exports = create\n\n/**\n * Creates a new, empty vec4\n *\n * @returns {vec4} a new 4D vector\n */\nfunction create () {\n var out = new Float32Array(4)\n out[0] = 0\n out[1] = 0\n out[2] = 0\n out[3] = 0\n return out\n}\n\n\n/***/ }),\n\n/***/ \"265e\":\n/***/ (function(module, exports) {\n\nmodule.exports = copy\n\n/**\n * Copy the values from one vec4 to another\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the source vector\n * @returns {vec4} out\n */\nfunction copy (out, a) {\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n out[3] = a[3]\n return out\n}\n\n\n/***/ }),\n\n/***/ \"26a7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createErrorBars\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createVAO = __webpack_require__(\"b205\")\nvar createShader = __webpack_require__(\"531f\")\n\nvar IDENTITY = [1,0,0,0,\n 0,1,0,0,\n 0,0,1,0,\n 0,0,0,1]\n\nfunction ErrorBars(gl, buffer, vao, shader) {\n this.gl = gl\n this.shader = shader\n this.buffer = buffer\n this.vao = vao\n this.pixelRatio = 1\n this.bounds = [[ Infinity, Infinity, Infinity], [-Infinity,-Infinity,-Infinity]]\n this.clipBounds = [[-Infinity,-Infinity,-Infinity], [ Infinity, Infinity, Infinity]]\n this.lineWidth = [1,1,1]\n this.capSize = [10,10,10]\n this.lineCount = [0,0,0]\n this.lineOffset = [0,0,0]\n this.opacity = 1\n this.hasAlpha = false\n}\n\nvar proto = ErrorBars.prototype\n\nproto.isOpaque = function() {\n return !this.hasAlpha\n}\n\nproto.isTransparent = function() {\n return this.hasAlpha\n}\n\nproto.drawTransparent = proto.draw = function(cameraParams) {\n var gl = this.gl\n var uniforms = this.shader.uniforms\n\n this.shader.bind()\n var view = uniforms.view = cameraParams.view || IDENTITY\n var projection = uniforms.projection = cameraParams.projection || IDENTITY\n uniforms.model = cameraParams.model || IDENTITY\n uniforms.clipBounds = this.clipBounds\n uniforms.opacity = this.opacity\n\n\n var cx = view[12]\n var cy = view[13]\n var cz = view[14]\n var cw = view[15]\n\n var isOrtho = cameraParams._ortho || false\n var orthoFix = (isOrtho) ? 2 : 1 // double up padding for orthographic ticks & labels\n var pixelScaleF = orthoFix * this.pixelRatio * (projection[3]*cx + projection[7]*cy + projection[11]*cz + projection[15]*cw) / gl.drawingBufferHeight\n\n this.vao.bind()\n for(var i=0; i<3; ++i) {\n gl.lineWidth(this.lineWidth[i] * this.pixelRatio)\n uniforms.capSize = this.capSize[i] * pixelScaleF\n if (this.lineCount[i]) {\n gl.drawArrays(gl.LINES, this.lineOffset[i], this.lineCount[i])\n }\n }\n this.vao.unbind()\n}\n\nfunction updateBounds(bounds, point) {\n for(var i=0; i<3; ++i) {\n bounds[0][i] = Math.min(bounds[0][i], point[i])\n bounds[1][i] = Math.max(bounds[1][i], point[i])\n }\n}\n\nvar FACE_TABLE = (function(){\n var table = new Array(3)\n for(var d=0; d<3; ++d) {\n var row = []\n for(var j=1; j<=2; ++j) {\n for(var s=-1; s<=1; s+=2) {\n var u = (j+d) % 3\n var y = [0,0,0]\n y[u] = s\n row.push(y)\n }\n }\n table[d] = row\n }\n return table\n})()\n\n\nfunction emitFace(verts, x, c, d) {\n var offsets = FACE_TABLE[d]\n for(var i=0; i 0) {\n var x = p.slice()\n x[j] += e[1][j]\n verts.push(p[0], p[1], p[2],\n c[0], c[1], c[2], c[3],\n 0, 0, 0,\n x[0], x[1], x[2],\n c[0], c[1], c[2], c[3],\n 0, 0, 0)\n updateBounds(this.bounds, x)\n vertexCount += 2 + emitFace(verts, x, c, j)\n }\n }\n this.lineCount[j] = vertexCount - this.lineOffset[j]\n }\n this.buffer.update(verts)\n }\n}\n\nproto.dispose = function() {\n this.shader.dispose()\n this.buffer.dispose()\n this.vao.dispose()\n}\n\nfunction createErrorBars(options) {\n var gl = options.gl\n var buffer = createBuffer(gl)\n var vao = createVAO(gl, [\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 3,\n offset: 0,\n stride: 40\n },\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 4,\n offset: 12,\n stride: 40\n },\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 3,\n offset: 28,\n stride: 40\n }\n ])\n\n var shader = createShader(gl)\n shader.attributes.position.location = 0\n shader.attributes.color.location = 1\n shader.attributes.offset.location = 2\n\n var result = new ErrorBars(gl, buffer, vao, shader)\n result.update(options)\n return result\n}\n\n\n/***/ }),\n\n/***/ \"26cf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar pool = __webpack_require__(\"cea5\")\nvar inverse = __webpack_require__(\"f31e\")\n\nfunction rank(permutation) {\n var n = permutation.length\n switch(n) {\n case 0:\n case 1:\n return 0\n case 2:\n return permutation[1]\n default:\n break\n }\n var p = pool.mallocUint32(n)\n var pinv = pool.mallocUint32(n)\n var r = 0, s, t, i\n inverse(permutation, pinv)\n for(i=0; i0; --i) {\n t = pinv[i]\n s = p[i]\n p[i] = p[t]\n p[t] = s\n pinv[i] = pinv[s]\n pinv[s] = t\n r = (r + s) * i\n }\n pool.freeUint32(pinv)\n pool.freeUint32(p)\n return r\n}\n\nfunction unrank(n, r, p) {\n switch(n) {\n case 0:\n if(p) { return p }\n return []\n case 1:\n if(p) {\n p[0] = 0\n return p\n } else {\n return [0]\n }\n case 2:\n if(p) {\n if(r) {\n p[0] = 0\n p[1] = 1\n } else {\n p[0] = 1\n p[1] = 0\n }\n return p\n } else {\n return r ? [0,1] : [1,0]\n }\n default:\n break\n }\n p = p || new Array(n)\n var s, t, i, nf=1\n p[0] = 0\n for(i=1; i0; --i) {\n s = (r / nf)|0\n r = (r - s * nf)|0\n nf = (nf / i)|0\n t = p[i]|0\n p[i] = p[s]|0\n p[s] = t|0\n }\n return p\n}\n\nexports.rank = rank\nexports.unrank = unrank\n\n\n/***/ }),\n\n/***/ \"26d1\":\n/***/ (function(module, exports) {\n\nmodule.exports = transformQuat;\n\n/**\n * Transforms the vec3 with a quat\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to transform\n * @param {quat} q quaternion to transform with\n * @returns {vec3} out\n */\nfunction transformQuat(out, a, q) {\n // benchmarks: http://jsperf.com/quaternion-transform-vec3-implementations\n\n var x = a[0], y = a[1], z = a[2],\n qx = q[0], qy = q[1], qz = q[2], qw = q[3],\n\n // calculate quat * vec\n ix = qw * x + qy * z - qz * y,\n iy = qw * y + qz * x - qx * z,\n iz = qw * z + qx * y - qy * x,\n iw = -qx * x - qy * y - qz * z\n\n // calculate result * inverse quat\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx\n return out\n}\n\n/***/ }),\n\n/***/ \"26dd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar c = __webpack_require__(\"0d59\");\nvar d3 = __webpack_require__(\"6e58\");\nvar gup = __webpack_require__(\"0a3e\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar svgUtil = __webpack_require__(\"0379\");\nvar raiseToTop = __webpack_require__(\"fc26\").raiseToTop;\nvar cancelEeaseColumn = __webpack_require__(\"fc26\").cancelTransition;\nvar prepareData = __webpack_require__(\"8766\");\nvar splitData = __webpack_require__(\"7815\");\nvar Color = __webpack_require__(\"d115\");\n\nmodule.exports = function plot(gd, wrappedTraceHolders) {\n var dynamic = !gd._context.staticPlot;\n\n var table = gd._fullLayout._paper.selectAll('.' + c.cn.table)\n .data(wrappedTraceHolders.map(function(wrappedTraceHolder) {\n var traceHolder = gup.unwrap(wrappedTraceHolder);\n var trace = traceHolder.trace;\n return prepareData(gd, trace);\n }), gup.keyFun);\n\n table.exit().remove();\n\n table.enter()\n .append('g')\n .classed(c.cn.table, true)\n .attr('overflow', 'visible')\n .style('box-sizing', 'content-box')\n .style('position', 'absolute')\n .style('left', 0)\n .style('overflow', 'visible')\n .style('shape-rendering', 'crispEdges')\n .style('pointer-events', 'all');\n\n table\n .attr('width', function(d) {return d.width + d.size.l + d.size.r;})\n .attr('height', function(d) {return d.height + d.size.t + d.size.b;})\n .attr('transform', function(d) {\n return 'translate(' + d.translateX + ',' + d.translateY + ')';\n });\n\n var tableControlView = table.selectAll('.' + c.cn.tableControlView)\n .data(gup.repeat, gup.keyFun);\n\n var cvEnter = tableControlView.enter()\n .append('g')\n .classed(c.cn.tableControlView, true)\n .style('box-sizing', 'content-box');\n if(dynamic) {\n cvEnter\n .on('mousemove', function(d) {\n tableControlView\n .filter(function(dd) {return d === dd;})\n .call(renderScrollbarKit, gd);\n })\n .on('mousewheel', function(d) {\n if(d.scrollbarState.wheeling) return;\n d.scrollbarState.wheeling = true;\n var newY = d.scrollY + d3.event.deltaY;\n var noChange = makeDragRow(gd, tableControlView, null, newY)(d);\n if(!noChange) {\n d3.event.stopPropagation();\n d3.event.preventDefault();\n }\n d.scrollbarState.wheeling = false;\n })\n .call(renderScrollbarKit, gd, true);\n }\n\n tableControlView\n .attr('transform', function(d) {return 'translate(' + d.size.l + ' ' + d.size.t + ')';});\n\n // scrollBackground merely ensures that mouse events are captured even on crazy fast scrollwheeling\n // otherwise rendering glitches may occur\n var scrollBackground = tableControlView.selectAll('.' + c.cn.scrollBackground)\n .data(gup.repeat, gup.keyFun);\n\n scrollBackground.enter()\n .append('rect')\n .classed(c.cn.scrollBackground, true)\n .attr('fill', 'none');\n\n scrollBackground\n .attr('width', function(d) {return d.width;})\n .attr('height', function(d) {return d.height;});\n\n tableControlView.each(function(d) {\n Drawing.setClipUrl(d3.select(this), scrollAreaBottomClipKey(gd, d), gd);\n });\n\n var yColumn = tableControlView.selectAll('.' + c.cn.yColumn)\n .data(function(vm) {return vm.columns;}, gup.keyFun);\n\n yColumn.enter()\n .append('g')\n .classed(c.cn.yColumn, true);\n\n yColumn.exit().remove();\n\n yColumn.attr('transform', function(d) {return 'translate(' + d.x + ' 0)';});\n\n if(dynamic) {\n yColumn.call(d3.behavior.drag()\n .origin(function(d) {\n var movedColumn = d3.select(this);\n easeColumn(movedColumn, d, -c.uplift);\n raiseToTop(this);\n d.calcdata.columnDragInProgress = true;\n renderScrollbarKit(tableControlView.filter(function(dd) {return d.calcdata.key === dd.key;}), gd);\n return d;\n })\n .on('drag', function(d) {\n var movedColumn = d3.select(this);\n var getter = function(dd) {return (d === dd ? d3.event.x : dd.x) + dd.columnWidth / 2;};\n d.x = Math.max(-c.overdrag, Math.min(d.calcdata.width + c.overdrag - d.columnWidth, d3.event.x));\n\n var sortableColumns = flatData(yColumn).filter(function(dd) {return dd.calcdata.key === d.calcdata.key;});\n var newOrder = sortableColumns.sort(function(a, b) {return getter(a) - getter(b);});\n newOrder.forEach(function(dd, i) {\n dd.xIndex = i;\n dd.x = d === dd ? dd.x : dd.xScale(dd);\n });\n\n yColumn.filter(function(dd) {return d !== dd;})\n .transition()\n .ease(c.transitionEase)\n .duration(c.transitionDuration)\n .attr('transform', function(d) {return 'translate(' + d.x + ' 0)';});\n movedColumn\n .call(cancelEeaseColumn)\n .attr('transform', 'translate(' + d.x + ' -' + c.uplift + ' )');\n })\n .on('dragend', function(d) {\n var movedColumn = d3.select(this);\n var p = d.calcdata;\n d.x = d.xScale(d);\n d.calcdata.columnDragInProgress = false;\n easeColumn(movedColumn, d, 0);\n columnMoved(gd, p, p.columns.map(function(dd) {return dd.xIndex;}));\n })\n );\n }\n\n yColumn.each(function(d) {\n Drawing.setClipUrl(d3.select(this), columnBoundaryClipKey(gd, d), gd);\n });\n\n var columnBlock = yColumn.selectAll('.' + c.cn.columnBlock)\n .data(splitData.splitToPanels, gup.keyFun);\n\n columnBlock.enter()\n .append('g')\n .classed(c.cn.columnBlock, true)\n .attr('id', function(d) {return d.key;});\n\n columnBlock\n .style('cursor', function(d) {\n return d.dragHandle ? 'ew-resize' : d.calcdata.scrollbarState.barWiggleRoom ? 'ns-resize' : 'default';\n });\n\n var headerColumnBlock = columnBlock.filter(headerBlock);\n var cellsColumnBlock = columnBlock.filter(cellsBlock);\n\n if(dynamic) {\n cellsColumnBlock.call(d3.behavior.drag()\n .origin(function(d) {\n d3.event.stopPropagation();\n return d;\n })\n .on('drag', makeDragRow(gd, tableControlView, -1))\n .on('dragend', function() {\n // fixme emit plotly notification\n })\n );\n }\n\n // initial rendering: header is rendered first, as it may may have async LaTeX (show header first)\n // but blocks are _entered_ the way they are due to painter's algo (header on top)\n renderColumnCellTree(gd, tableControlView, headerColumnBlock, columnBlock);\n renderColumnCellTree(gd, tableControlView, cellsColumnBlock, columnBlock);\n\n var scrollAreaClip = tableControlView.selectAll('.' + c.cn.scrollAreaClip)\n .data(gup.repeat, gup.keyFun);\n\n scrollAreaClip.enter()\n .append('clipPath')\n .classed(c.cn.scrollAreaClip, true)\n .attr('id', function(d) {return scrollAreaBottomClipKey(gd, d);});\n\n var scrollAreaClipRect = scrollAreaClip.selectAll('.' + c.cn.scrollAreaClipRect)\n .data(gup.repeat, gup.keyFun);\n\n scrollAreaClipRect.enter()\n .append('rect')\n .classed(c.cn.scrollAreaClipRect, true)\n .attr('x', -c.overdrag)\n .attr('y', -c.uplift)\n .attr('fill', 'none');\n\n scrollAreaClipRect\n .attr('width', function(d) {return d.width + 2 * c.overdrag;})\n .attr('height', function(d) {return d.height + c.uplift;});\n\n var columnBoundary = yColumn.selectAll('.' + c.cn.columnBoundary)\n .data(gup.repeat, gup.keyFun);\n\n columnBoundary.enter()\n .append('g')\n .classed(c.cn.columnBoundary, true);\n\n var columnBoundaryClippath = yColumn.selectAll('.' + c.cn.columnBoundaryClippath)\n .data(gup.repeat, gup.keyFun);\n\n // SVG spec doesn't mandate wrapping into a and doesn't seem to cause a speed difference\n columnBoundaryClippath.enter()\n .append('clipPath')\n .classed(c.cn.columnBoundaryClippath, true);\n\n columnBoundaryClippath\n .attr('id', function(d) {return columnBoundaryClipKey(gd, d);});\n\n var columnBoundaryRect = columnBoundaryClippath.selectAll('.' + c.cn.columnBoundaryRect)\n .data(gup.repeat, gup.keyFun);\n\n columnBoundaryRect.enter()\n .append('rect')\n .classed(c.cn.columnBoundaryRect, true)\n .attr('fill', 'none');\n\n columnBoundaryRect\n .attr('width', function(d) { return d.columnWidth + 2 * roundHalfWidth(d); })\n .attr('height', function(d) {return d.calcdata.height + 2 * roundHalfWidth(d) + c.uplift;})\n .attr('x', function(d) { return -roundHalfWidth(d); })\n .attr('y', function(d) { return -roundHalfWidth(d); });\n\n updateBlockYPosition(null, cellsColumnBlock, tableControlView);\n};\n\nfunction roundHalfWidth(d) {\n return Math.ceil(d.calcdata.maxLineWidth / 2);\n}\n\nfunction scrollAreaBottomClipKey(gd, d) {\n return 'clip' + gd._fullLayout._uid + '_scrollAreaBottomClip_' + d.key;\n}\n\nfunction columnBoundaryClipKey(gd, d) {\n return 'clip' + gd._fullLayout._uid + '_columnBoundaryClippath_' + d.calcdata.key + '_' + d.specIndex;\n}\n\nfunction flatData(selection) {\n return [].concat.apply([], selection.map(function(g) {return g;}))\n .map(function(g) {return g.__data__;});\n}\n\nfunction renderScrollbarKit(tableControlView, gd, bypassVisibleBar) {\n function calcTotalHeight(d) {\n var blocks = d.rowBlocks;\n return firstRowAnchor(blocks, blocks.length - 1) + (blocks.length ? rowsHeight(blocks[blocks.length - 1], Infinity) : 1);\n }\n\n var scrollbarKit = tableControlView.selectAll('.' + c.cn.scrollbarKit)\n .data(gup.repeat, gup.keyFun);\n\n scrollbarKit.enter()\n .append('g')\n .classed(c.cn.scrollbarKit, true)\n .style('shape-rendering', 'geometricPrecision');\n\n scrollbarKit\n .each(function(d) {\n var s = d.scrollbarState;\n s.totalHeight = calcTotalHeight(d);\n s.scrollableAreaHeight = d.groupHeight - headerHeight(d);\n s.currentlyVisibleHeight = Math.min(s.totalHeight, s.scrollableAreaHeight);\n s.ratio = s.currentlyVisibleHeight / s.totalHeight;\n s.barLength = Math.max(s.ratio * s.currentlyVisibleHeight, c.goldenRatio * c.scrollbarWidth);\n s.barWiggleRoom = s.currentlyVisibleHeight - s.barLength;\n s.wiggleRoom = Math.max(0, s.totalHeight - s.scrollableAreaHeight);\n s.topY = s.barWiggleRoom === 0 ? 0 : (d.scrollY / s.wiggleRoom) * s.barWiggleRoom;\n s.bottomY = s.topY + s.barLength;\n s.dragMultiplier = s.wiggleRoom / s.barWiggleRoom;\n })\n .attr('transform', function(d) {\n var xPosition = d.width + c.scrollbarWidth / 2 + c.scrollbarOffset;\n return 'translate(' + xPosition + ' ' + headerHeight(d) + ')';\n });\n\n var scrollbar = scrollbarKit.selectAll('.' + c.cn.scrollbar)\n .data(gup.repeat, gup.keyFun);\n\n scrollbar.enter()\n .append('g')\n .classed(c.cn.scrollbar, true);\n\n var scrollbarSlider = scrollbar.selectAll('.' + c.cn.scrollbarSlider)\n .data(gup.repeat, gup.keyFun);\n\n scrollbarSlider.enter()\n .append('g')\n .classed(c.cn.scrollbarSlider, true);\n\n scrollbarSlider\n .attr('transform', function(d) {\n return 'translate(0 ' + (d.scrollbarState.topY || 0) + ')';\n });\n\n var scrollbarGlyph = scrollbarSlider.selectAll('.' + c.cn.scrollbarGlyph)\n .data(gup.repeat, gup.keyFun);\n\n scrollbarGlyph.enter()\n .append('line')\n .classed(c.cn.scrollbarGlyph, true)\n .attr('stroke', 'black')\n .attr('stroke-width', c.scrollbarWidth)\n .attr('stroke-linecap', 'round')\n .attr('y1', c.scrollbarWidth / 2);\n\n scrollbarGlyph\n .attr('y2', function(d) {\n return d.scrollbarState.barLength - c.scrollbarWidth / 2;\n })\n .attr('stroke-opacity', function(d) {\n return d.columnDragInProgress || !d.scrollbarState.barWiggleRoom || bypassVisibleBar ? 0 : 0.4;\n });\n\n // cancel transition: possible pending (also, delayed) transition\n scrollbarGlyph\n .transition().delay(0).duration(0);\n\n scrollbarGlyph\n .transition().delay(c.scrollbarHideDelay).duration(c.scrollbarHideDuration)\n .attr('stroke-opacity', 0);\n\n var scrollbarCaptureZone = scrollbar.selectAll('.' + c.cn.scrollbarCaptureZone)\n .data(gup.repeat, gup.keyFun);\n\n scrollbarCaptureZone.enter()\n .append('line')\n .classed(c.cn.scrollbarCaptureZone, true)\n .attr('stroke', 'white')\n .attr('stroke-opacity', 0.01) // some browser might get rid of a 0 opacity element\n .attr('stroke-width', c.scrollbarCaptureWidth)\n .attr('stroke-linecap', 'butt')\n .attr('y1', 0)\n .on('mousedown', function(d) {\n var y = d3.event.y;\n var bbox = this.getBoundingClientRect();\n var s = d.scrollbarState;\n var pixelVal = y - bbox.top;\n var inverseScale = d3.scale.linear().domain([0, s.scrollableAreaHeight]).range([0, s.totalHeight]).clamp(true);\n if(!(s.topY <= pixelVal && pixelVal <= s.bottomY)) {\n makeDragRow(gd, tableControlView, null, inverseScale(pixelVal - s.barLength / 2))(d);\n }\n })\n .call(d3.behavior.drag()\n .origin(function(d) {\n d3.event.stopPropagation();\n d.scrollbarState.scrollbarScrollInProgress = true;\n return d;\n })\n .on('drag', makeDragRow(gd, tableControlView))\n .on('dragend', function() {\n // fixme emit Plotly event\n })\n );\n\n scrollbarCaptureZone\n .attr('y2', function(d) {\n return d.scrollbarState.scrollableAreaHeight;\n });\n\n // Remove scroll glyph and capture zone on static plots\n // as they don't render properly when converted to PDF\n // in the Chrome PDF viewer\n // https://github.com/plotly/streambed/issues/11618\n if(gd._context.staticPlot) {\n scrollbarGlyph.remove();\n scrollbarCaptureZone.remove();\n }\n}\n\nfunction renderColumnCellTree(gd, tableControlView, columnBlock, allColumnBlock) {\n // fixme this perf hotspot\n // this is performance critical code as scrolling calls it on every revolver switch\n // it appears sufficiently fast but there are plenty of low-hanging fruits for performance optimization\n\n var columnCells = renderColumnCells(columnBlock);\n\n var columnCell = renderColumnCell(columnCells);\n\n supplyStylingValues(columnCell);\n\n var cellRect = renderCellRect(columnCell);\n\n sizeAndStyleRect(cellRect);\n\n var cellTextHolder = renderCellTextHolder(columnCell);\n\n var cellText = renderCellText(cellTextHolder);\n\n setFont(cellText);\n populateCellText(cellText, tableControlView, allColumnBlock, gd);\n\n // doing this at the end when text, and text stlying are set\n setCellHeightAndPositionY(columnCell);\n}\n\nfunction renderColumnCells(columnBlock) {\n var columnCells = columnBlock.selectAll('.' + c.cn.columnCells)\n .data(gup.repeat, gup.keyFun);\n\n columnCells.enter()\n .append('g')\n .classed(c.cn.columnCells, true);\n\n columnCells.exit()\n .remove();\n\n return columnCells;\n}\n\nfunction renderColumnCell(columnCells) {\n var columnCell = columnCells.selectAll('.' + c.cn.columnCell)\n .data(splitData.splitToCells, function(d) {return d.keyWithinBlock;});\n\n columnCell.enter()\n .append('g')\n .classed(c.cn.columnCell, true);\n\n columnCell.exit()\n .remove();\n\n return columnCell;\n}\n\nfunction renderCellRect(columnCell) {\n var cellRect = columnCell.selectAll('.' + c.cn.cellRect)\n .data(gup.repeat, function(d) {return d.keyWithinBlock;});\n\n cellRect.enter()\n .append('rect')\n .classed(c.cn.cellRect, true);\n\n return cellRect;\n}\n\nfunction renderCellText(cellTextHolder) {\n var cellText = cellTextHolder.selectAll('.' + c.cn.cellText)\n .data(gup.repeat, function(d) {return d.keyWithinBlock;});\n\n cellText.enter()\n .append('text')\n .classed(c.cn.cellText, true)\n .style('cursor', function() {return 'auto';})\n .on('mousedown', function() {d3.event.stopPropagation();});\n\n return cellText;\n}\n\nfunction renderCellTextHolder(columnCell) {\n var cellTextHolder = columnCell.selectAll('.' + c.cn.cellTextHolder)\n .data(gup.repeat, function(d) {return d.keyWithinBlock;});\n\n cellTextHolder.enter()\n .append('g')\n .classed(c.cn.cellTextHolder, true)\n .style('shape-rendering', 'geometricPrecision');\n\n return cellTextHolder;\n}\n\nfunction supplyStylingValues(columnCell) {\n columnCell\n .each(function(d, i) {\n var spec = d.calcdata.cells.font;\n var col = d.column.specIndex;\n var font = {\n size: gridPick(spec.size, col, i),\n color: gridPick(spec.color, col, i),\n family: gridPick(spec.family, col, i)\n };\n d.rowNumber = d.key;\n d.align = gridPick(d.calcdata.cells.align, col, i);\n d.cellBorderWidth = gridPick(d.calcdata.cells.line.width, col, i);\n d.font = font;\n });\n}\n\nfunction setFont(cellText) {\n cellText\n .each(function(d) {\n Drawing.font(d3.select(this), d.font);\n });\n}\n\nfunction sizeAndStyleRect(cellRect) {\n cellRect\n .attr('width', function(d) {return d.column.columnWidth;})\n .attr('stroke-width', function(d) {return d.cellBorderWidth;})\n .each(function(d) {\n var atomicSelection = d3.select(this);\n Color.stroke(atomicSelection, gridPick(d.calcdata.cells.line.color, d.column.specIndex, d.rowNumber));\n Color.fill(atomicSelection, gridPick(d.calcdata.cells.fill.color, d.column.specIndex, d.rowNumber));\n });\n}\n\nfunction populateCellText(cellText, tableControlView, allColumnBlock, gd) {\n cellText\n .text(function(d) {\n var col = d.column.specIndex;\n var row = d.rowNumber;\n\n var userSuppliedContent = d.value;\n var stringSupplied = (typeof userSuppliedContent === 'string');\n var hasBreaks = stringSupplied && userSuppliedContent.match(/
/i);\n var userBrokenText = !stringSupplied || hasBreaks;\n d.mayHaveMarkup = stringSupplied && userSuppliedContent.match(/[<&>]/);\n\n var latex = isLatex(userSuppliedContent);\n d.latex = latex;\n\n var prefix = latex ? '' : gridPick(d.calcdata.cells.prefix, col, row) || '';\n var suffix = latex ? '' : gridPick(d.calcdata.cells.suffix, col, row) || '';\n var format = latex ? null : gridPick(d.calcdata.cells.format, col, row) || null;\n\n var prefixSuffixedText = prefix + (format ? d3.format(format)(d.value) : d.value) + suffix;\n\n var hasWrapSplitCharacter;\n d.wrappingNeeded = !d.wrapped && !userBrokenText && !latex && (hasWrapSplitCharacter = hasWrapCharacter(prefixSuffixedText));\n d.cellHeightMayIncrease = hasBreaks || latex || d.mayHaveMarkup || (hasWrapSplitCharacter === void(0) ? hasWrapCharacter(prefixSuffixedText) : hasWrapSplitCharacter);\n d.needsConvertToTspans = d.mayHaveMarkup || d.wrappingNeeded || d.latex;\n\n var textToRender;\n if(d.wrappingNeeded) {\n var hrefPreservedText = c.wrapSplitCharacter === ' ' ? prefixSuffixedText.replace(/ pTop) {\n pages.push(blockIndex);\n }\n pTop += rowsHeight;\n\n // consider this nice final optimization; put it in `for` condition - caveat, currently the\n // block.allRowsHeight relies on being invalidated, so enabling this opt may not be safe\n // if(pages.length > 1) break;\n }\n\n return pages;\n}\n\nfunction updateBlockYPosition(gd, cellsColumnBlock, tableControlView) {\n var d = flatData(cellsColumnBlock)[0];\n if(d === undefined) return;\n var blocks = d.rowBlocks;\n var calcdata = d.calcdata;\n\n var bottom = firstRowAnchor(blocks, blocks.length);\n var scrollHeight = d.calcdata.groupHeight - headerHeight(d);\n var scrollY = calcdata.scrollY = Math.max(0, Math.min(bottom - scrollHeight, calcdata.scrollY));\n\n var pages = findPagesAndCacheHeights(blocks, scrollY, scrollHeight);\n if(pages.length === 1) {\n if(pages[0] === blocks.length - 1) {\n pages.unshift(pages[0] - 1);\n } else {\n pages.push(pages[0] + 1);\n }\n }\n\n // make phased out page jump by 2 while leaving stationary page intact\n if(pages[0] % 2) {\n pages.reverse();\n }\n\n cellsColumnBlock\n .each(function(d, i) {\n // these values will also be needed when a block is translated again due to growing cell height\n d.page = pages[i];\n d.scrollY = scrollY;\n });\n\n cellsColumnBlock\n .attr('transform', function(d) {\n var yTranslate = firstRowAnchor(d.rowBlocks, d.page) - d.scrollY;\n return 'translate(0 ' + yTranslate + ')';\n });\n\n // conditionally rerendering panel 0 and 1\n if(gd) {\n conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, d.prevPages, d, 0);\n conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, d.prevPages, d, 1);\n renderScrollbarKit(tableControlView, gd);\n }\n}\n\nfunction makeDragRow(gd, allTableControlView, optionalMultiplier, optionalPosition) {\n return function dragRow(eventD) {\n // may come from whichever DOM event target: drag, wheel, bar... eventD corresponds to event target\n var d = eventD.calcdata ? eventD.calcdata : eventD;\n var tableControlView = allTableControlView.filter(function(dd) {return d.key === dd.key;});\n var multiplier = optionalMultiplier || d.scrollbarState.dragMultiplier;\n\n var initialScrollY = d.scrollY;\n\n d.scrollY = optionalPosition === void(0) ? d.scrollY + multiplier * d3.event.dy : optionalPosition;\n var cellsColumnBlock = tableControlView.selectAll('.' + c.cn.yColumn).selectAll('.' + c.cn.columnBlock).filter(cellsBlock);\n updateBlockYPosition(gd, cellsColumnBlock, tableControlView);\n\n // return false if we've \"used\" the scroll, ie it did something,\n // so the event shouldn't bubble (if appropriate)\n return d.scrollY === initialScrollY;\n };\n}\n\nfunction conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, prevPages, d, revolverIndex) {\n var shouldComponentUpdate = pages[revolverIndex] !== prevPages[revolverIndex];\n if(shouldComponentUpdate) {\n clearTimeout(d.currentRepaint[revolverIndex]);\n d.currentRepaint[revolverIndex] = setTimeout(function() {\n // setTimeout might lag rendering but yields a smoother scroll, because fast scrolling makes\n // some repaints invisible ie. wasteful (DOM work blocks the main thread)\n var toRerender = cellsColumnBlock.filter(function(d, i) {return i === revolverIndex && pages[i] !== prevPages[i];});\n renderColumnCellTree(gd, tableControlView, toRerender, cellsColumnBlock);\n prevPages[revolverIndex] = pages[revolverIndex];\n });\n }\n}\n\nfunction wrapTextMaker(columnBlock, element, tableControlView, gd) {\n return function wrapText() {\n var cellTextHolder = d3.select(element.parentNode);\n cellTextHolder\n .each(function(d) {\n var fragments = d.fragments;\n cellTextHolder.selectAll('tspan.line').each(function(dd, i) {\n fragments[i].width = this.getComputedTextLength();\n });\n // last element is only for measuring the separator character, so it's ignored:\n var separatorLength = fragments[fragments.length - 1].width;\n var rest = fragments.slice(0, -1);\n var currentRow = [];\n var currentAddition, currentAdditionLength;\n var currentRowLength = 0;\n var rowLengthLimit = d.column.columnWidth - 2 * c.cellPad;\n d.value = '';\n while(rest.length) {\n currentAddition = rest.shift();\n currentAdditionLength = currentAddition.width + separatorLength;\n if(currentRowLength + currentAdditionLength > rowLengthLimit) {\n d.value += currentRow.join(c.wrapSpacer) + c.lineBreaker;\n currentRow = [];\n currentRowLength = 0;\n }\n currentRow.push(currentAddition.text);\n currentRowLength += currentAdditionLength;\n }\n if(currentRowLength) {\n d.value += currentRow.join(c.wrapSpacer);\n }\n d.wrapped = true;\n });\n\n // the pre-wrapped text was rendered only for the text measurements\n cellTextHolder.selectAll('tspan.line').remove();\n\n // resupply text, now wrapped\n populateCellText(cellTextHolder.select('.' + c.cn.cellText), tableControlView, columnBlock, gd);\n d3.select(element.parentNode.parentNode).call(setCellHeightAndPositionY);\n };\n}\n\nfunction updateYPositionMaker(columnBlock, element, tableControlView, gd, d) {\n return function updateYPosition() {\n if(d.settledY) return;\n var cellTextHolder = d3.select(element.parentNode);\n var l = getBlock(d);\n var rowIndex = d.key - l.firstRowIndex;\n\n var declaredRowHeight = l.rows[rowIndex].rowHeight;\n\n var requiredHeight = d.cellHeightMayIncrease ? element.parentNode.getBoundingClientRect().height + 2 * c.cellPad : declaredRowHeight;\n\n var finalHeight = Math.max(requiredHeight, declaredRowHeight);\n var increase = finalHeight - l.rows[rowIndex].rowHeight;\n\n if(increase) {\n // current row height increased\n l.rows[rowIndex].rowHeight = finalHeight;\n\n columnBlock\n .selectAll('.' + c.cn.columnCell)\n .call(setCellHeightAndPositionY);\n\n updateBlockYPosition(null, columnBlock.filter(cellsBlock), 0);\n\n // if d.column.type === 'header', then the scrollbar has to be pushed downward to the scrollable area\n // if d.column.type === 'cells', it can still be relevant if total scrolling content height is less than the\n // scrollable window, as increases to row heights may need scrollbar updates\n renderScrollbarKit(tableControlView, gd, true);\n }\n\n cellTextHolder\n .attr('transform', function() {\n // this code block is only invoked for items where d.cellHeightMayIncrease is truthy\n var element = this;\n var columnCellElement = element.parentNode;\n var box = columnCellElement.getBoundingClientRect();\n var rectBox = d3.select(element.parentNode).select('.' + c.cn.cellRect).node().getBoundingClientRect();\n var currentTransform = element.transform.baseVal.consolidate();\n var yPosition = rectBox.top - box.top + (currentTransform ? currentTransform.matrix.f : c.cellPad);\n return 'translate(' + xPosition(d, d3.select(element.parentNode).select('.' + c.cn.cellTextHolder).node().getBoundingClientRect().width) + ' ' + yPosition + ')';\n });\n\n d.settledY = true;\n };\n}\n\nfunction xPosition(d, optionalWidth) {\n switch(d.align) {\n case 'left': return c.cellPad;\n case 'right': return d.column.columnWidth - (optionalWidth || 0) - c.cellPad;\n case 'center': return (d.column.columnWidth - (optionalWidth || 0)) / 2;\n default: return c.cellPad;\n }\n}\n\nfunction setCellHeightAndPositionY(columnCell) {\n columnCell\n .attr('transform', function(d) {\n var headerHeight = d.rowBlocks[0].auxiliaryBlocks.reduce(function(p, n) {return p + rowsHeight(n, Infinity);}, 0);\n var l = getBlock(d);\n var rowAnchor = rowsHeight(l, d.key);\n var yOffset = rowAnchor + headerHeight;\n return 'translate(0 ' + yOffset + ')';\n })\n .selectAll('.' + c.cn.cellRect)\n .attr('height', function(d) {return getRow(getBlock(d), d.key).rowHeight;});\n}\n\nfunction firstRowAnchor(blocks, page) {\n var total = 0;\n for(var i = page - 1; i >= 0; i--) {\n total += allRowsHeight(blocks[i]);\n }\n return total;\n}\n\nfunction rowsHeight(rowBlock, key) {\n var total = 0;\n for(var i = 0; i < rowBlock.rows.length && rowBlock.rows[i].rowIndex < key; i++) {\n total += rowBlock.rows[i].rowHeight;\n }\n return total;\n}\n\nfunction allRowsHeight(rowBlock) {\n var cached = rowBlock.allRowsHeight;\n\n if(cached !== void(0)) {\n return cached;\n }\n\n var total = 0;\n for(var i = 0; i < rowBlock.rows.length; i++) {\n total += rowBlock.rows[i].rowHeight;\n }\n rowBlock.allRowsHeight = total;\n\n return total;\n}\n\nfunction getBlock(d) {return d.rowBlocks[d.page];}\nfunction getRow(l, i) {return l.rows[i - l.firstRowIndex];}\n\n\n/***/ }),\n\n/***/ \"26e4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar scatterGlAttrs = __webpack_require__(\"c20e\");\nvar cartesianIdRegex = __webpack_require__(\"d301\").idRegex;\nvar templatedArray = __webpack_require__(\"a651\").templatedArray;\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nvar scatterMarkerAttrs = scatterAttrs.marker;\nvar scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n\nvar markerLineAttrs = extendFlat(colorScaleAttrs('marker.line', {editTypeOverride: 'calc'}), {\n width: extendFlat({}, scatterMarkerLineAttrs.width, {editType: 'calc'}),\n editType: 'calc'\n});\n\nvar markerAttrs = extendFlat(colorScaleAttrs('marker'), {\n symbol: scatterMarkerAttrs.symbol,\n size: extendFlat({}, scatterMarkerAttrs.size, {editType: 'markerSize'}),\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n opacity: scatterMarkerAttrs.opacity,\n colorbar: scatterMarkerAttrs.colorbar,\n line: markerLineAttrs,\n editType: 'calc'\n});\n\nmarkerAttrs.color.editType = markerAttrs.cmin.editType = markerAttrs.cmax.editType = 'style';\n\nfunction makeAxesValObject(axLetter) {\n return {\n valType: 'info_array',\n freeLength: true,\n \n editType: 'calc',\n items: {\n valType: 'subplotid',\n regex: cartesianIdRegex[axLetter],\n editType: 'plot'\n },\n \n };\n}\n\nmodule.exports = {\n dimensions: templatedArray('dimension', {\n visible: {\n valType: 'boolean',\n \n dflt: true,\n editType: 'calc',\n \n },\n label: {\n valType: 'string',\n \n editType: 'calc',\n \n },\n values: {\n valType: 'data_array',\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n axis: {\n type: {\n valType: 'enumerated',\n values: ['linear', 'log', 'date', 'category'],\n \n editType: 'calc+clearAxisTypes',\n \n },\n\n // TODO make 'true' the default in v2?\n matches: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'calc',\n \n },\n\n editType: 'calc+clearAxisTypes'\n },\n\n // TODO should add an attribute to pin down x only vars and y only vars\n // like https://seaborn.pydata.org/generated/seaborn.pairplot.html\n // x_vars and y_vars\n\n // maybe more axis defaulting option e.g. `showgrid: false`\n\n editType: 'calc+clearAxisTypes'\n }),\n\n // mode: {}, (only 'markers' for now)\n\n text: extendFlat({}, scatterGlAttrs.text, {\n \n }),\n hovertext: extendFlat({}, scatterGlAttrs.hovertext, {\n \n }),\n\n hovertemplate: hovertemplateAttrs(),\n\n marker: markerAttrs,\n\n xaxes: makeAxesValObject('x'),\n yaxes: makeAxesValObject('y'),\n\n diagonal: {\n visible: {\n valType: 'boolean',\n \n dflt: true,\n editType: 'calc',\n \n },\n\n // type: 'scattergl' | 'histogram' | 'box' | 'violin'\n // ...\n // more options\n\n editType: 'calc'\n },\n\n showupperhalf: {\n valType: 'boolean',\n \n dflt: true,\n editType: 'calc',\n \n },\n showlowerhalf: {\n valType: 'boolean',\n \n dflt: true,\n editType: 'calc',\n \n },\n\n selected: {\n marker: scatterGlAttrs.selected.marker,\n editType: 'calc'\n },\n unselected: {\n marker: scatterGlAttrs.unselected.marker,\n editType: 'calc'\n },\n\n opacity: scatterGlAttrs.opacity\n};\n\n\n/***/ }),\n\n/***/ \"2705\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar constants = __webpack_require__(\"de69\");\nvar subTypes = __webpack_require__(\"de81\");\nvar handleMarkerDefaults = __webpack_require__(\"5047\");\nvar handleLineDefaults = __webpack_require__(\"59be\");\nvar handleLineShapeDefaults = __webpack_require__(\"eb07\");\nvar handleTextDefaults = __webpack_require__(\"e9f7\");\nvar handleFillColorDefaults = __webpack_require__(\"3802\");\n\nvar attributes = __webpack_require__(\"5aae\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n coerce('carpet');\n\n // XXX: Don't hard code this\n traceOut.xaxis = 'x';\n traceOut.yaxis = 'y';\n\n var a = coerce('a');\n var b = coerce('b');\n var len = Math.min(a.length, b.length);\n\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = len;\n\n coerce('text');\n coerce('texttemplate');\n coerce('hovertext');\n\n var defaultMode = len < constants.PTS_LINESONLY ? 'lines+markers' : 'lines';\n coerce('mode', defaultMode);\n\n if(subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce('connectgaps');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});\n }\n\n if(subTypes.hasText(traceOut)) {\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n\n var dfltHoverOn = [];\n\n if(subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce('marker.maxdisplayed');\n dfltHoverOn.push('points');\n }\n\n coerce('fill');\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n\n if(traceOut.fill === 'tonext' || traceOut.fill === 'toself') {\n dfltHoverOn.push('fills');\n }\n\n var hoverOn = coerce('hoveron', dfltHoverOn.join('+') || 'points');\n if(hoverOn !== 'fills') coerce('hovertemplate');\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n\n\n/***/ }),\n\n/***/ \"2781\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"0e9a\");\n\n\n/***/ }),\n\n/***/ \"27a4\":\n/***/ (function(module, exports) {\n\nmodule.exports = cross;\n\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @returns {vec3} out\n */\nfunction cross(out, a, b) {\n var ax = a[0], ay = a[1], az = a[2],\n bx = b[0], by = b[1], bz = b[2]\n\n out[0] = ay * bz - az * by\n out[1] = az * bx - ax * bz\n out[2] = ax * by - ay * bx\n return out\n}\n\n/***/ }),\n\n/***/ \"27c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\n\nvar helpers = __webpack_require__(\"50da\");\nvar attributes = __webpack_require__(\"c20e\");\nvar constants = __webpack_require__(\"de69\");\nvar subTypes = __webpack_require__(\"de81\");\nvar handleXYDefaults = __webpack_require__(\"076f\");\nvar handleMarkerDefaults = __webpack_require__(\"5047\");\nvar handleLineDefaults = __webpack_require__(\"59be\");\nvar handleFillColorDefaults = __webpack_require__(\"3802\");\nvar handleTextDefaults = __webpack_require__(\"e9f7\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var isOpen = traceIn.marker ? helpers.isOpenSymbol(traceIn.marker.symbol) : false;\n var isBubble = subTypes.isBubble(traceIn);\n\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n var defaultMode = len < constants.PTS_LINESONLY ? 'lines+markers' : 'lines';\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n coerce('mode', defaultMode);\n\n if(subTypes.hasLines(traceOut)) {\n coerce('connectgaps');\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n coerce('line.shape');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n coerce('marker.line.width', isOpen || isBubble ? 1 : 0);\n }\n\n if(subTypes.hasText(traceOut)) {\n coerce('texttemplate');\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n\n var lineColor = (traceOut.line || {}).color;\n var markerColor = (traceOut.marker || {}).color;\n\n coerce('fill');\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n\n var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y'});\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'y'});\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n\n\n/***/ }),\n\n/***/ \"27e3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar layoutAttributes = __webpack_require__(\"d798\");\n\n\n/**\n * options: inherits outerTicks from axes.handleAxisDefaults\n */\nmodule.exports = function handleTickDefaults(containerIn, containerOut, coerce, options) {\n var tickLen = Lib.coerce2(containerIn, containerOut, layoutAttributes, 'ticklen');\n var tickWidth = Lib.coerce2(containerIn, containerOut, layoutAttributes, 'tickwidth');\n var tickColor = Lib.coerce2(containerIn, containerOut, layoutAttributes, 'tickcolor', containerOut.color);\n var showTicks = coerce('ticks', (options.outerTicks || tickLen || tickWidth || tickColor) ? 'outside' : '');\n\n if(!showTicks) {\n delete containerOut.ticklen;\n delete containerOut.tickwidth;\n delete containerOut.tickcolor;\n }\n};\n\n\n/***/ }),\n\n/***/ \"283e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createLines\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createShader = __webpack_require__(\"28dd\")\n\nvar shaders = __webpack_require__(\"b44d\")\n\nfunction Lines(plot, vbo, shader) {\n this.plot = plot\n this.vbo = vbo\n this.shader = shader\n}\n\nvar proto = Lines.prototype\n\nproto.bind = function() {\n var shader = this.shader\n this.vbo.bind()\n this.shader.bind()\n shader.attributes.coord.pointer()\n shader.uniforms.screenBox = this.plot.screenBox\n}\n\nproto.drawLine = (function() {\n var start = [0,0]\n var end = [0,0]\n return function(startX, startY, endX, endY, width, color) {\n var plot = this.plot\n var shader = this.shader\n var gl = plot.gl\n\n start[0] = startX\n start[1] = startY\n end[0] = endX\n end[1] = endY\n\n shader.uniforms.start = start\n shader.uniforms.end = end\n shader.uniforms.width = width * plot.pixelRatio\n shader.uniforms.color = color\n\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4)\n }\n}())\n\nproto.dispose = function() {\n this.vbo.dispose()\n this.shader.dispose()\n}\n\nfunction createLines(plot) {\n var gl = plot.gl\n var vbo = createBuffer(gl, [\n -1,-1,\n -1,1,\n 1,-1,\n 1,1])\n var shader = createShader(gl, shaders.lineVert, shaders.lineFrag)\n var lines = new Lines(plot, vbo, shader)\n return lines\n}\n\n\n/***/ }),\n\n/***/ \"28a0\":\n/***/ (function(module, exports) {\n\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n\n/***/ }),\n\n/***/ \"28dd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createUniformWrapper = __webpack_require__(\"d064b\")\nvar createAttributeWrapper = __webpack_require__(\"7e91\")\nvar makeReflect = __webpack_require__(\"eb73\")\nvar shaderCache = __webpack_require__(\"22b4\")\nvar runtime = __webpack_require__(\"d41a\")\nvar GLError = __webpack_require__(\"a3fd\")\n\n//Shader object\nfunction Shader(gl) {\n this.gl = gl\n this.gl.lastAttribCount = 0 // fixme where else should we store info, safe but not nice on the gl object\n\n //Default initialize these to null\n this._vref =\n this._fref =\n this._relink =\n this.vertShader =\n this.fragShader =\n this.program =\n this.attributes =\n this.uniforms =\n this.types = null\n}\n\nvar proto = Shader.prototype\n\nproto.bind = function() {\n if(!this.program) {\n this._relink()\n }\n\n // ensuring that we have the right number of enabled vertex attributes\n var i\n var newAttribCount = this.gl.getProgramParameter(this.program, this.gl.ACTIVE_ATTRIBUTES) // more robust approach\n //var newAttribCount = Object.keys(this.attributes).length // avoids the probably immaterial introspection slowdown\n var oldAttribCount = this.gl.lastAttribCount\n if(newAttribCount > oldAttribCount) {\n for(i = oldAttribCount; i < newAttribCount; i++) {\n this.gl.enableVertexAttribArray(i)\n }\n } else if(oldAttribCount > newAttribCount) {\n for(i = newAttribCount; i < oldAttribCount; i++) {\n this.gl.disableVertexAttribArray(i)\n }\n }\n\n this.gl.lastAttribCount = newAttribCount\n\n this.gl.useProgram(this.program)\n}\n\nproto.dispose = function() {\n\n // disabling vertex attributes so new shader starts with zero\n // and it's also useful if all shaders are disposed but the\n // gl context is reused for subsequent replotting\n var oldAttribCount = this.gl.lastAttribCount\n for (var i = 0; i < oldAttribCount; i++) {\n this.gl.disableVertexAttribArray(i)\n }\n this.gl.lastAttribCount = 0\n\n if(this._fref) {\n this._fref.dispose()\n }\n if(this._vref) {\n this._vref.dispose()\n }\n this.attributes =\n this.types =\n this.vertShader =\n this.fragShader =\n this.program =\n this._relink =\n this._fref =\n this._vref = null\n}\n\nfunction compareAttributes(a, b) {\n if(a.name < b.name) {\n return -1\n }\n return 1\n}\n\n//Update export hook for glslify-live\nproto.update = function(\n vertSource\n , fragSource\n , uniforms\n , attributes) {\n\n //If only one object passed, assume glslify style output\n if(!fragSource || arguments.length === 1) {\n var obj = vertSource\n vertSource = obj.vertex\n fragSource = obj.fragment\n uniforms = obj.uniforms\n attributes = obj.attributes\n }\n\n var wrapper = this\n var gl = wrapper.gl\n\n //Compile vertex and fragment shaders\n var pvref = wrapper._vref\n wrapper._vref = shaderCache.shader(gl, gl.VERTEX_SHADER, vertSource)\n if(pvref) {\n pvref.dispose()\n }\n wrapper.vertShader = wrapper._vref.shader\n var pfref = this._fref\n wrapper._fref = shaderCache.shader(gl, gl.FRAGMENT_SHADER, fragSource)\n if(pfref) {\n pfref.dispose()\n }\n wrapper.fragShader = wrapper._fref.shader\n\n //If uniforms/attributes is not specified, use RT reflection\n if(!uniforms || !attributes) {\n\n //Create initial test program\n var testProgram = gl.createProgram()\n gl.attachShader(testProgram, wrapper.fragShader)\n gl.attachShader(testProgram, wrapper.vertShader)\n gl.linkProgram(testProgram)\n if(!gl.getProgramParameter(testProgram, gl.LINK_STATUS)) {\n var errLog = gl.getProgramInfoLog(testProgram)\n throw new GLError(errLog, 'Error linking program:' + errLog)\n }\n\n //Load data from runtime\n uniforms = uniforms || runtime.uniforms(gl, testProgram)\n attributes = attributes || runtime.attributes(gl, testProgram)\n\n //Release test program\n gl.deleteProgram(testProgram)\n }\n\n //Sort attributes lexicographically\n // overrides undefined WebGL behavior for attribute locations\n attributes = attributes.slice()\n attributes.sort(compareAttributes)\n\n //Convert attribute types, read out locations\n var attributeUnpacked = []\n var attributeNames = []\n var attributeLocations = []\n var i\n for(i=0; i= 0) {\n var size = attr.type.charAt(attr.type.length-1)|0\n var locVector = new Array(size)\n for(var j=0; j= 0) {\n curLocation += 1\n }\n attributeLocations[i] = curLocation\n }\n }\n\n //Rebuild program and recompute all uniform locations\n var uniformLocations = new Array(uniforms.length)\n function relink() {\n wrapper.program = shaderCache.program(\n gl\n , wrapper._vref\n , wrapper._fref\n , attributeNames\n , attributeLocations)\n\n for(var i=0; i maxNorm) {\n\t\t\tmaxNorm = vec3.length(u);\n\t\t}\n\t\tif (i) {\n\t\t\t// Find vector scale [w/ units of time] using \"successive\" positions\n\t\t\t// (not \"adjacent\" with would be O(n^2)),\n\t\t\t//\n\t\t\t// The vector scale corresponds to the minimum \"time\" to travel across two\n\t\t\t// two adjacent positions at the average velocity of those two adjacent positions\n\n\t\t\tvar q = (2 * vec3.distance(p2, p) / (vec3.length(u2) + vec3.length(u)));\n\t\t\tif(q) {\n\t\t\t\tvectorScale = Math.min(vectorScale, q);\n\t\t\t\tskipIt = false;\n\t\t\t} else {\n\t\t\t\tskipIt = true;\n\t\t\t}\n\t\t}\n\t\tif(!skipIt) {\n\t\t\tp2 = p;\n\t\t\tu2 = u;\n\t\t}\n\t\tpositionVectors.push(u);\n\t}\n\tvar minV = [minX, minY, minZ];\n\tvar maxV = [maxX, maxY, maxZ];\n\tif (bounds) {\n\t\tbounds[0] = minV;\n\t\tbounds[1] = maxV;\n\t}\n\tif (maxNorm === 0) {\n\t\tmaxNorm = 1;\n\t}\n\n\t// Inverted max norm would map vector with norm maxNorm to 1 coord space units in length\n\tvar invertedMaxNorm = 1 / maxNorm;\n\n\tif (!isFinite(vectorScale)) {\n\t\tvectorScale = 1.0;\n\t}\n\tgeo.vectorScale = vectorScale;\n\n\tvar coneScale = vectorfield.coneSize || 0.5;\n\n\tif (vectorfield.absoluteConeSize) {\n\t\tconeScale = vectorfield.absoluteConeSize * invertedMaxNorm;\n\t}\n\n\tgeo.coneScale = coneScale;\n\n\t// Build the cone model.\n\tfor (var i = 0, j = 0; i < positions.length; i++) {\n\t\tvar p = positions[i];\n\t\tvar x = p[0], y = p[1], z = p[2];\n\t\tvar d = positionVectors[i];\n\t\tvar intensity = vec3.length(d) * invertedMaxNorm;\n\t\tfor (var k = 0, l = 8; k < l; k++) {\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\t\t\tgeo.positions.push([x, y, z, j++]);\n\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\t\t\tgeo.vectors.push(d);\n\n\t\t\tgeo.vertexIntensity.push(intensity, intensity, intensity);\n\t\t\tgeo.vertexIntensity.push(intensity, intensity, intensity);\n\n\t\t\tvar m = geo.positions.length;\n\t\t\tgeo.cells.push([m-6, m-5, m-4], [m-3, m-2, m-1]);\n\t\t}\n\t}\n\n\treturn geo;\n};\n\nvar shaders = __webpack_require__(\"f280\");\nmodule.exports.createMesh = __webpack_require__(\"6b3c\");\nmodule.exports.createConeMesh = function(gl, params) {\n\treturn module.exports.createMesh(gl, params, {\n\t\tshaders: shaders,\n\t\ttraceType: 'cone'\n\t});\n}\n\n\n/***/ }),\n\n/***/ \"2969f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nexports.getDimIndex = function getDimIndex(trace, ax) {\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var ind = {x: 0, y: 1}[axLetter];\n var visibleDims = trace._visibleDims;\n\n for(var k = 0; k < visibleDims.length; k++) {\n var i = visibleDims[k];\n if(trace._diag[i][ind] === axId) return k;\n }\n return false;\n};\n\n\n/***/ }),\n\n/***/ \"296e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\n\n// for automatic alignment on dragging, <1/3 means left align,\n// >2/3 means right, and between is center. Pick the right fraction\n// based on where you are, and return the fraction corresponding to\n// that position on the object\nmodule.exports = function align(v, dv, v0, v1, anchor) {\n var vmin = (v - v0) / (v1 - v0);\n var vmax = vmin + dv / (v1 - v0);\n var vc = (vmin + vmax) / 2;\n\n // explicitly specified anchor\n if(anchor === 'left' || anchor === 'bottom') return vmin;\n if(anchor === 'center' || anchor === 'middle') return vc;\n if(anchor === 'right' || anchor === 'top') return vmax;\n\n // automatic based on position\n if(vmin < (2 / 3) - vc) return vmin;\n if(vmax > (4 / 3) - vc) return vmax;\n return vc;\n};\n\n\n/***/ }),\n\n/***/ \"299d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar createScatter = __webpack_require__(\"96e3\");\nvar createLine = __webpack_require__(\"e8ee\");\nvar createError = __webpack_require__(\"b113\");\nvar Text = __webpack_require__(\"ad68\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar prepareRegl = __webpack_require__(\"cf42\");\n\nvar subTypes = __webpack_require__(\"de81\");\nvar linkTraces = __webpack_require__(\"00bd\");\n\nvar styleTextSelection = __webpack_require__(\"e38a\").styleTextSelection;\n\nfunction getViewport(fullLayout, xaxis, yaxis) {\n var gs = fullLayout._size;\n var width = fullLayout.width;\n var height = fullLayout.height;\n return [\n gs.l + xaxis.domain[0] * gs.w,\n gs.b + yaxis.domain[0] * gs.h,\n (width - gs.r) - (1 - xaxis.domain[1]) * gs.w,\n (height - gs.t) - (1 - yaxis.domain[1]) * gs.h\n ];\n}\n\nmodule.exports = function plot(gd, subplot, cdata) {\n if(!cdata.length) return;\n\n var fullLayout = gd._fullLayout;\n var scene = subplot._scene;\n var xaxis = subplot.xaxis;\n var yaxis = subplot.yaxis;\n var i, j;\n\n // we may have more subplots than initialized data due to Axes.getSubplots method\n if(!scene) return;\n\n var success = prepareRegl(gd, ['ANGLE_instanced_arrays', 'OES_element_index_uint']);\n if(!success) {\n scene.init();\n return;\n }\n\n var count = scene.count;\n var regl = fullLayout._glcanvas.data()[0].regl;\n\n // that is needed for fills\n linkTraces(gd, subplot, cdata);\n\n if(scene.dirty) {\n // make sure scenes are created\n if(scene.error2d === true) {\n scene.error2d = createError(regl);\n }\n if(scene.line2d === true) {\n scene.line2d = createLine(regl);\n }\n if(scene.scatter2d === true) {\n scene.scatter2d = createScatter(regl);\n }\n if(scene.fill2d === true) {\n scene.fill2d = createLine(regl);\n }\n if(scene.glText === true) {\n scene.glText = new Array(count);\n for(i = 0; i < count; i++) {\n scene.glText[i] = new Text(regl);\n }\n }\n\n // update main marker options\n if(scene.glText) {\n if(count > scene.glText.length) {\n // add gl text marker\n var textsToAdd = count - scene.glText.length;\n for(i = 0; i < textsToAdd; i++) {\n scene.glText.push(new Text(regl));\n }\n } else if(count < scene.glText.length) {\n // remove gl text marker\n var textsToRemove = scene.glText.length - count;\n var removedTexts = scene.glText.splice(count, textsToRemove);\n removedTexts.forEach(function(text) { text.destroy(); });\n }\n\n for(i = 0; i < count; i++) {\n scene.glText[i].update(scene.textOptions[i]);\n }\n }\n if(scene.line2d) {\n scene.line2d.update(scene.lineOptions);\n scene.lineOptions = scene.lineOptions.map(function(lineOptions) {\n if(lineOptions && lineOptions.positions) {\n var srcPos = lineOptions.positions;\n\n var firstptdef = 0;\n while(firstptdef < srcPos.length && (isNaN(srcPos[firstptdef]) || isNaN(srcPos[firstptdef + 1]))) {\n firstptdef += 2;\n }\n var lastptdef = srcPos.length - 2;\n while(lastptdef > firstptdef && (isNaN(srcPos[lastptdef]) || isNaN(srcPos[lastptdef + 1]))) {\n lastptdef -= 2;\n }\n lineOptions.positions = srcPos.slice(firstptdef, lastptdef + 2);\n }\n return lineOptions;\n });\n scene.line2d.update(scene.lineOptions);\n }\n if(scene.error2d) {\n var errorBatch = (scene.errorXOptions || []).concat(scene.errorYOptions || []);\n scene.error2d.update(errorBatch);\n }\n if(scene.scatter2d) {\n scene.scatter2d.update(scene.markerOptions);\n }\n\n // fill requires linked traces, so we generate it's positions here\n scene.fillOrder = Lib.repeat(null, count);\n if(scene.fill2d) {\n scene.fillOptions = scene.fillOptions.map(function(fillOptions, i) {\n var cdscatter = cdata[i];\n if(!fillOptions || !cdscatter || !cdscatter[0] || !cdscatter[0].trace) return;\n var cd = cdscatter[0];\n var trace = cd.trace;\n var stash = cd.t;\n var lineOptions = scene.lineOptions[i];\n var last, j;\n\n var fillData = [];\n if(trace._ownfill) fillData.push(i);\n if(trace._nexttrace) fillData.push(i + 1);\n if(fillData.length) scene.fillOrder[i] = fillData;\n\n var pos = [];\n var srcPos = (lineOptions && lineOptions.positions) || stash.positions;\n var firstptdef, lastptdef;\n\n if(trace.fill === 'tozeroy') {\n firstptdef = 0;\n while(firstptdef < srcPos.length && isNaN(srcPos[firstptdef + 1])) {\n firstptdef += 2;\n }\n lastptdef = srcPos.length - 2;\n while(lastptdef > firstptdef && isNaN(srcPos[lastptdef + 1])) {\n lastptdef -= 2;\n }\n if(srcPos[firstptdef + 1] !== 0) {\n pos = [srcPos[firstptdef], 0];\n }\n pos = pos.concat(srcPos.slice(firstptdef, lastptdef + 2));\n if(srcPos[lastptdef + 1] !== 0) {\n pos = pos.concat([srcPos[lastptdef], 0]);\n }\n } else if(trace.fill === 'tozerox') {\n firstptdef = 0;\n while(firstptdef < srcPos.length && isNaN(srcPos[firstptdef])) {\n firstptdef += 2;\n }\n lastptdef = srcPos.length - 2;\n while(lastptdef > firstptdef && isNaN(srcPos[lastptdef])) {\n lastptdef -= 2;\n }\n if(srcPos[firstptdef] !== 0) {\n pos = [0, srcPos[firstptdef + 1]];\n }\n pos = pos.concat(srcPos.slice(firstptdef, lastptdef + 2));\n if(srcPos[lastptdef] !== 0) {\n pos = pos.concat([ 0, srcPos[lastptdef + 1]]);\n }\n } else if(trace.fill === 'toself' || trace.fill === 'tonext') {\n pos = [];\n last = 0;\n for(j = 0; j < srcPos.length; j += 2) {\n if(isNaN(srcPos[j]) || isNaN(srcPos[j + 1])) {\n pos = pos.concat(srcPos.slice(last, j));\n pos.push(srcPos[last], srcPos[last + 1]);\n last = j + 2;\n }\n }\n pos = pos.concat(srcPos.slice(last));\n if(last) {\n pos.push(srcPos[last], srcPos[last + 1]);\n }\n } else {\n var nextTrace = trace._nexttrace;\n\n if(nextTrace) {\n var nextOptions = scene.lineOptions[i + 1];\n\n if(nextOptions) {\n var nextPos = nextOptions.positions;\n if(trace.fill === 'tonexty') {\n pos = srcPos.slice();\n\n for(i = Math.floor(nextPos.length / 2); i--;) {\n var xx = nextPos[i * 2];\n var yy = nextPos[i * 2 + 1];\n if(isNaN(xx) || isNaN(yy)) continue;\n pos.push(xx, yy);\n }\n fillOptions.fill = nextTrace.fillcolor;\n }\n }\n }\n }\n\n // detect prev trace positions to exclude from current fill\n if(trace._prevtrace && trace._prevtrace.fill === 'tonext') {\n var prevLinePos = scene.lineOptions[i - 1].positions;\n\n // FIXME: likely this logic should be tested better\n var offset = pos.length / 2;\n last = offset;\n var hole = [last];\n for(j = 0; j < prevLinePos.length; j += 2) {\n if(isNaN(prevLinePos[j]) || isNaN(prevLinePos[j + 1])) {\n hole.push(j / 2 + offset + 1);\n last = j + 2;\n }\n }\n\n pos = pos.concat(prevLinePos);\n fillOptions.hole = hole;\n }\n fillOptions.fillmode = trace.fill;\n fillOptions.opacity = trace.opacity;\n fillOptions.positions = pos;\n\n return fillOptions;\n });\n\n scene.fill2d.update(scene.fillOptions);\n }\n }\n\n // form batch arrays, and check for selected points\n var dragmode = fullLayout.dragmode;\n var selectMode = dragmode === 'lasso' || dragmode === 'select';\n var clickSelectEnabled = fullLayout.clickmode.indexOf('select') > -1;\n\n for(i = 0; i < count; i++) {\n var cd0 = cdata[i][0];\n var trace = cd0.trace;\n var stash = cd0.t;\n var index = stash.index;\n var len = trace._length;\n var x = stash.x;\n var y = stash.y;\n\n if(trace.selectedpoints || selectMode || clickSelectEnabled) {\n if(!selectMode) selectMode = true;\n\n // regenerate scene batch, if traces number changed during selection\n if(trace.selectedpoints) {\n var selPts = scene.selectBatch[index] = Lib.selIndices2selPoints(trace);\n\n var selDict = {};\n for(j = 0; j < selPts.length; j++) {\n selDict[selPts[j]] = 1;\n }\n var unselPts = [];\n for(j = 0; j < len; j++) {\n if(!selDict[j]) unselPts.push(j);\n }\n scene.unselectBatch[index] = unselPts;\n }\n\n // precalculate px coords since we are not going to pan during select\n // TODO, could do better here e.g.\n // - spin that in a webworker\n // - compute selection from polygons in data coordinates\n // (maybe just for linear axes)\n var xpx = stash.xpx = new Array(len);\n var ypx = stash.ypx = new Array(len);\n for(j = 0; j < len; j++) {\n xpx[j] = xaxis.c2p(x[j]);\n ypx[j] = yaxis.c2p(y[j]);\n }\n } else {\n stash.xpx = stash.ypx = null;\n }\n }\n\n if(selectMode) {\n // create scatter instance by cloning scatter2d\n if(!scene.select2d) {\n scene.select2d = createScatter(fullLayout._glcanvas.data()[1].regl);\n }\n\n // use unselected styles on 'context' canvas\n if(scene.scatter2d) {\n var unselOpts = new Array(count);\n for(i = 0; i < count; i++) {\n unselOpts[i] = scene.selectBatch[i].length || scene.unselectBatch[i].length ?\n scene.markerUnselectedOptions[i] :\n {};\n }\n scene.scatter2d.update(unselOpts);\n }\n\n // use selected style on 'focus' canvas\n if(scene.select2d) {\n scene.select2d.update(scene.markerOptions);\n scene.select2d.update(scene.markerSelectedOptions);\n }\n\n if(scene.glText) {\n cdata.forEach(function(cdscatter) {\n var trace = ((cdscatter || [])[0] || {}).trace || {};\n if(subTypes.hasText(trace)) {\n styleTextSelection(cdscatter);\n }\n });\n }\n } else {\n // reset 'context' scatter2d opts to base opts,\n // thus unsetting markerUnselectedOptions from selection\n if(scene.scatter2d) {\n scene.scatter2d.update(scene.markerOptions);\n }\n }\n\n // provide viewport and range\n var vpRange0 = {\n viewport: getViewport(fullLayout, xaxis, yaxis),\n // TODO do we need those fallbacks?\n range: [\n (xaxis._rl || xaxis.range)[0],\n (yaxis._rl || yaxis.range)[0],\n (xaxis._rl || xaxis.range)[1],\n (yaxis._rl || yaxis.range)[1]\n ]\n };\n var vpRange = Lib.repeat(vpRange0, scene.count);\n\n // upload viewport/range data to GPU\n if(scene.fill2d) {\n scene.fill2d.update(vpRange);\n }\n if(scene.line2d) {\n scene.line2d.update(vpRange);\n }\n if(scene.error2d) {\n scene.error2d.update(vpRange.concat(vpRange));\n }\n if(scene.scatter2d) {\n scene.scatter2d.update(vpRange);\n }\n if(scene.select2d) {\n scene.select2d.update(vpRange);\n }\n if(scene.glText) {\n scene.glText.forEach(function(text) { text.update(vpRange0); });\n }\n};\n\n\n/***/ }),\n\n/***/ \"2a16\":\n/***/ (function(module, exports) {\n\nmodule.exports = scale;\n\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\nfunction scale(out, a, b) {\n out[0] = a[0] * b\n out[1] = a[1] * b\n out[2] = a[2] * b\n return out\n}\n\n/***/ }),\n\n/***/ \"2a27\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar attributes = __webpack_require__(\"97d1\");\nvar Color = __webpack_require__(\"d115\");\nvar handleDomainDefaults = __webpack_require__(\"81f0\").defaults;\nvar handleText = __webpack_require__(\"1c1c\").handleText;\nvar TEXTPAD = __webpack_require__(\"1a5e\").TEXTPAD;\n\nvar Colorscale = __webpack_require__(\"c258\");\nvar hasColorscale = Colorscale.hasColorscale;\nvar colorscaleDefaults = Colorscale.handleDefaults;\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var labels = coerce('labels');\n var parents = coerce('parents');\n\n if(!labels || !labels.length || !parents || !parents.length) {\n traceOut.visible = false;\n return;\n }\n\n var vals = coerce('values');\n if(vals && vals.length) {\n coerce('branchvalues');\n } else {\n coerce('count');\n }\n\n coerce('level');\n coerce('maxdepth');\n\n var packing = coerce('tiling.packing');\n if(packing === 'squarify') {\n coerce('tiling.squarifyratio');\n }\n\n coerce('tiling.flip');\n coerce('tiling.pad');\n\n var text = coerce('text');\n coerce('texttemplate');\n if(!traceOut.texttemplate) coerce('textinfo', Array.isArray(text) ? 'text+label' : 'label');\n\n coerce('hovertext');\n coerce('hovertemplate');\n\n var hasPathbar = coerce('pathbar.visible');\n\n var textposition = 'auto';\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n hasPathbar: hasPathbar,\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: false,\n moduleHasCliponaxis: false,\n moduleHasTextangle: false,\n moduleHasInsideanchor: false\n });\n coerce('textposition');\n var bottomText = traceOut.textposition.indexOf('bottom') !== -1;\n\n var lineWidth = coerce('marker.line.width');\n if(lineWidth) coerce('marker.line.color', layout.paper_bgcolor);\n\n var colors = coerce('marker.colors');\n var withColorscale = traceOut._hasColorscale = (\n hasColorscale(traceIn, 'marker', 'colors') ||\n (traceIn.marker || {}).coloraxis // N.B. special logic to consider \"values\" colorscales\n );\n if(withColorscale) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});\n } else {\n coerce('marker.depthfade', !(colors || []).length);\n }\n\n var headerSize = traceOut.textfont.size * 2;\n\n coerce('marker.pad.t', bottomText ? headerSize / 4 : headerSize);\n coerce('marker.pad.l', headerSize / 4);\n coerce('marker.pad.r', headerSize / 4);\n coerce('marker.pad.b', bottomText ? headerSize : headerSize / 4);\n\n if(withColorscale) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});\n }\n\n traceOut._hovered = {\n marker: {\n line: {\n width: 2,\n color: Color.contrast(layout.paper_bgcolor)\n }\n }\n };\n\n if(hasPathbar) {\n // This works even for multi-line labels as treemap pathbar trim out line breaks\n coerce('pathbar.thickness', traceOut.pathbar.textfont.size + 2 * TEXTPAD);\n\n coerce('pathbar.side');\n coerce('pathbar.edgeshape');\n }\n\n handleDomainDefaults(traceOut, layout, coerce);\n\n // do not support transforms for now\n traceOut._length = null;\n};\n\n\n/***/ }),\n\n/***/ \"2aa9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var selection = [];\n var fullData = cd[0].trace;\n\n var nodes = fullData._sankey.graph.nodes;\n\n for(var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n if(node.partOfGroup) continue; // Those are invisible\n\n // Position of node's centroid\n var pos = [(node.x0 + node.x1) / 2, (node.y0 + node.y1) / 2];\n\n // Swap x and y if trace is vertical\n if(fullData.orientation === 'v') pos.reverse();\n\n if(selectionTester && selectionTester.contains(pos, false, i, searchInfo)) {\n selection.push({\n pointNumber: node.pointNumber\n // TODO: add eventData\n });\n }\n }\n return selection;\n};\n\n\n/***/ }),\n\n/***/ \"2ad6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\n/**\n * Copyright Marc J. Schmidt. See the LICENSE file at the top-level\n * directory of this distribution and at\n * https://github.com/marcj/css-element-queries/blob/master/LICENSE.\n */\n(function (root, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n}(typeof window !== 'undefined' ? window : this, function () {\n\n // Make sure it does not throw in a SSR (Server Side Rendering) situation\n if (typeof window === \"undefined\") {\n return null;\n }\n // https://github.com/Semantic-Org/Semantic-UI/issues/3855\n // https://github.com/marcj/css-element-queries/issues/257\n var globalWindow = typeof window != 'undefined' && window.Math == Math\n ? window\n : typeof self != 'undefined' && self.Math == Math\n ? self\n : Function('return this')();\n // Only used for the dirty checking, so the event callback count is limited to max 1 call per fps per sensor.\n // In combination with the event based resize sensor this saves cpu time, because the sensor is too fast and\n // would generate too many unnecessary events.\n var requestAnimationFrame = globalWindow.requestAnimationFrame ||\n globalWindow.mozRequestAnimationFrame ||\n globalWindow.webkitRequestAnimationFrame ||\n function (fn) {\n return globalWindow.setTimeout(fn, 20);\n };\n\n /**\n * Iterate over each of the provided element(s).\n *\n * @param {HTMLElement|HTMLElement[]} elements\n * @param {Function} callback\n */\n function forEachElement(elements, callback){\n var elementsType = Object.prototype.toString.call(elements);\n var isCollectionTyped = ('[object Array]' === elementsType\n || ('[object NodeList]' === elementsType)\n || ('[object HTMLCollection]' === elementsType)\n || ('[object Object]' === elementsType)\n || ('undefined' !== typeof jQuery && elements instanceof jQuery) //jquery\n || ('undefined' !== typeof Elements && elements instanceof Elements) //mootools\n );\n var i = 0, j = elements.length;\n if (isCollectionTyped) {\n for (; i < j; i++) {\n callback(elements[i]);\n }\n } else {\n callback(elements);\n }\n }\n\n /**\n * Get element size\n * @param {HTMLElement} element\n * @returns {Object} {width, height}\n */\n function getElementSize(element) {\n if (!element.getBoundingClientRect) {\n return {\n width: element.offsetWidth,\n height: element.offsetHeight\n }\n }\n\n var rect = element.getBoundingClientRect();\n return {\n width: Math.round(rect.width),\n height: Math.round(rect.height)\n }\n }\n\n /**\n * Apply CSS styles to element.\n *\n * @param {HTMLElement} element\n * @param {Object} style\n */\n function setStyle(element, style) {\n Object.keys(style).forEach(function(key) {\n element.style[key] = style[key];\n });\n }\n\n /**\n * Class for dimension change detection.\n *\n * @param {Element|Element[]|Elements|jQuery} element\n * @param {Function} callback\n *\n * @constructor\n */\n var ResizeSensor = function(element, callback) {\n /**\n *\n * @constructor\n */\n function EventQueue() {\n var q = [];\n this.add = function(ev) {\n q.push(ev);\n };\n\n var i, j;\n this.call = function(sizeInfo) {\n for (i = 0, j = q.length; i < j; i++) {\n q[i].call(this, sizeInfo);\n }\n };\n\n this.remove = function(ev) {\n var newQueue = [];\n for(i = 0, j = q.length; i < j; i++) {\n if(q[i] !== ev) newQueue.push(q[i]);\n }\n q = newQueue;\n };\n\n this.length = function() {\n return q.length;\n }\n }\n\n /**\n *\n * @param {HTMLElement} element\n * @param {Function} resized\n */\n function attachResizeEvent(element, resized) {\n if (!element) return;\n if (element.resizedAttached) {\n element.resizedAttached.add(resized);\n return;\n }\n\n element.resizedAttached = new EventQueue();\n element.resizedAttached.add(resized);\n\n element.resizeSensor = document.createElement('div');\n element.resizeSensor.dir = 'ltr';\n element.resizeSensor.className = 'resize-sensor';\n\n var style = {\n pointerEvents: 'none',\n position: 'absolute',\n left: '0px',\n top: '0px',\n right: '0px',\n bottom: '0px',\n overflow: 'hidden',\n zIndex: '-1',\n visibility: 'hidden',\n maxWidth: '100%'\n };\n var styleChild = {\n position: 'absolute',\n left: '0px',\n top: '0px',\n transition: '0s',\n };\n\n setStyle(element.resizeSensor, style);\n\n var expand = document.createElement('div');\n expand.className = 'resize-sensor-expand';\n setStyle(expand, style);\n\n var expandChild = document.createElement('div');\n setStyle(expandChild, styleChild);\n expand.appendChild(expandChild);\n\n var shrink = document.createElement('div');\n shrink.className = 'resize-sensor-shrink';\n setStyle(shrink, style);\n\n var shrinkChild = document.createElement('div');\n setStyle(shrinkChild, styleChild);\n setStyle(shrinkChild, { width: '200%', height: '200%' });\n shrink.appendChild(shrinkChild);\n\n element.resizeSensor.appendChild(expand);\n element.resizeSensor.appendChild(shrink);\n element.appendChild(element.resizeSensor);\n\n var computedStyle = window.getComputedStyle(element);\n var position = computedStyle ? computedStyle.getPropertyValue('position') : null;\n if ('absolute' !== position && 'relative' !== position && 'fixed' !== position) {\n element.style.position = 'relative';\n }\n\n var dirty, rafId;\n var size = getElementSize(element);\n var lastWidth = 0;\n var lastHeight = 0;\n var initialHiddenCheck = true;\n var lastAnimationFrame = 0;\n\n var resetExpandShrink = function () {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n expandChild.style.width = (width + 10) + 'px';\n expandChild.style.height = (height + 10) + 'px';\n\n expand.scrollLeft = width + 10;\n expand.scrollTop = height + 10;\n\n shrink.scrollLeft = width + 10;\n shrink.scrollTop = height + 10;\n };\n\n var reset = function() {\n // Check if element is hidden\n if (initialHiddenCheck) {\n var invisible = element.offsetWidth === 0 && element.offsetHeight === 0;\n if (invisible) {\n // Check in next frame\n if (!lastAnimationFrame){\n lastAnimationFrame = requestAnimationFrame(function(){\n lastAnimationFrame = 0;\n\n reset();\n });\n }\n\n return;\n } else {\n // Stop checking\n initialHiddenCheck = false;\n }\n }\n\n resetExpandShrink();\n };\n element.resizeSensor.resetSensor = reset;\n\n var onResized = function() {\n rafId = 0;\n\n if (!dirty) return;\n\n lastWidth = size.width;\n lastHeight = size.height;\n\n if (element.resizedAttached) {\n element.resizedAttached.call(size);\n }\n };\n\n var onScroll = function() {\n size = getElementSize(element);\n dirty = size.width !== lastWidth || size.height !== lastHeight;\n\n if (dirty && !rafId) {\n rafId = requestAnimationFrame(onResized);\n }\n\n reset();\n };\n\n var addEvent = function(el, name, cb) {\n if (el.attachEvent) {\n el.attachEvent('on' + name, cb);\n } else {\n el.addEventListener(name, cb);\n }\n };\n\n addEvent(expand, 'scroll', onScroll);\n addEvent(shrink, 'scroll', onScroll);\n\n // Fix for custom Elements\n requestAnimationFrame(reset);\n }\n\n forEachElement(element, function(elem){\n attachResizeEvent(elem, callback);\n });\n\n this.detach = function(ev) {\n ResizeSensor.detach(element, ev);\n };\n\n this.reset = function() {\n element.resizeSensor.resetSensor();\n };\n };\n\n ResizeSensor.reset = function(element) {\n forEachElement(element, function(elem){\n elem.resizeSensor.resetSensor();\n });\n };\n\n ResizeSensor.detach = function(element, ev) {\n forEachElement(element, function(elem){\n if (!elem) return;\n if(elem.resizedAttached && typeof ev === \"function\"){\n elem.resizedAttached.remove(ev);\n if(elem.resizedAttached.length()) return;\n }\n if (elem.resizeSensor) {\n if (elem.contains(elem.resizeSensor)) {\n elem.removeChild(elem.resizeSensor);\n }\n delete elem.resizeSensor;\n delete elem.resizedAttached;\n }\n });\n };\n\n if (typeof MutationObserver !== \"undefined\") {\n var observer = new MutationObserver(function (mutations) {\n for (var i in mutations) {\n if (mutations.hasOwnProperty(i)) {\n var items = mutations[i].addedNodes;\n for (var j = 0; j < items.length; j++) {\n if (items[j].resizeSensor) {\n ResizeSensor.reset(items[j]);\n }\n }\n }\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", function (event) {\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n });\n });\n }\n\n return ResizeSensor;\n\n}));\n\n\n/***/ }),\n\n/***/ \"2c66\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"2456\")\n\n\n/***/ }),\n\n/***/ \"2c8d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\r\n\r\nvar isBrowser = __webpack_require__(\"dcf3\")\r\nvar hasHover\r\n\r\nif (typeof global.matchMedia === 'function') {\r\n\thasHover = !global.matchMedia('(hover: none)').matches\r\n}\r\nelse {\r\n\thasHover = isBrowser\r\n}\r\n\r\nmodule.exports = hasHover\r\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar userAgent = __webpack_require__(\"342f\");\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n\n/***/ \"2d0e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar INTERPTHRESHOLD = 1e-2;\nvar NEIGHBORSHIFTS = [[-1, 0], [1, 0], [0, -1], [0, 1]];\n\nfunction correctionOvershoot(maxFractionalChange) {\n // start with less overshoot, until we know it's converging,\n // then ramp up the overshoot for faster convergence\n return 0.5 - 0.25 * Math.min(1, maxFractionalChange * 0.5);\n}\n\n/*\n * interp2d: Fill in missing data from a 2D array using an iterative\n * poisson equation solver with zero-derivative BC at edges.\n * Amazingly, this just amounts to repeatedly averaging all the existing\n * nearest neighbors, at least if we don't take x/y scaling into account,\n * which is the right approach here where x and y may not even have the\n * same units.\n *\n * @param {array of arrays} z\n * The 2D array to fill in. Will be mutated here. Assumed to already be\n * cleaned, so all entries are numbers except gaps, which are `undefined`.\n * @param {array of arrays} emptyPoints\n * Each entry [i, j, neighborCount] for empty points z[i][j] and the number\n * of neighbors that are *not* missing. Assumed to be sorted from most to\n * least neighbors, as produced by heatmap/find_empties.\n */\nmodule.exports = function interp2d(z, emptyPoints) {\n var maxFractionalChange = 1;\n var i;\n\n // one pass to fill in a starting value for all the empties\n iterateInterp2d(z, emptyPoints);\n\n // we're don't need to iterate lone empties - remove them\n for(i = 0; i < emptyPoints.length; i++) {\n if(emptyPoints[i][2] < 4) break;\n }\n // but don't remove these points from the original array,\n // we'll use them for masking, so make a copy.\n emptyPoints = emptyPoints.slice(i);\n\n for(i = 0; i < 100 && maxFractionalChange > INTERPTHRESHOLD; i++) {\n maxFractionalChange = iterateInterp2d(z, emptyPoints,\n correctionOvershoot(maxFractionalChange));\n }\n if(maxFractionalChange > INTERPTHRESHOLD) {\n Lib.log('interp2d didn\\'t converge quickly', maxFractionalChange);\n }\n\n return z;\n};\n\nfunction iterateInterp2d(z, emptyPoints, overshoot) {\n var maxFractionalChange = 0;\n var thisPt;\n var i;\n var j;\n var p;\n var q;\n var neighborShift;\n var neighborRow;\n var neighborVal;\n var neighborCount;\n var neighborSum;\n var initialVal;\n var minNeighbor;\n var maxNeighbor;\n\n for(p = 0; p < emptyPoints.length; p++) {\n thisPt = emptyPoints[p];\n i = thisPt[0];\n j = thisPt[1];\n initialVal = z[i][j];\n neighborSum = 0;\n neighborCount = 0;\n\n for(q = 0; q < 4; q++) {\n neighborShift = NEIGHBORSHIFTS[q];\n neighborRow = z[i + neighborShift[0]];\n if(!neighborRow) continue;\n neighborVal = neighborRow[j + neighborShift[1]];\n if(neighborVal !== undefined) {\n if(neighborSum === 0) {\n minNeighbor = maxNeighbor = neighborVal;\n } else {\n minNeighbor = Math.min(minNeighbor, neighborVal);\n maxNeighbor = Math.max(maxNeighbor, neighborVal);\n }\n neighborCount++;\n neighborSum += neighborVal;\n }\n }\n\n if(neighborCount === 0) {\n throw 'iterateInterp2d order is wrong: no defined neighbors';\n }\n\n // this is the laplace equation interpolation:\n // each point is just the average of its neighbors\n // note that this ignores differential x/y scaling\n // which I think is the right approach, since we\n // don't know what that scaling means\n z[i][j] = neighborSum / neighborCount;\n\n if(initialVal === undefined) {\n if(neighborCount < 4) maxFractionalChange = 1;\n } else {\n // we can make large empty regions converge faster\n // if we overshoot the change vs the previous value\n z[i][j] = (1 + overshoot) * z[i][j] - overshoot * initialVal;\n\n if(maxNeighbor > minNeighbor) {\n maxFractionalChange = Math.max(maxFractionalChange,\n Math.abs(z[i][j] - initialVal) / (maxNeighbor - minNeighbor));\n }\n }\n }\n\n return maxFractionalChange;\n}\n\n\n/***/ }),\n\n/***/ \"2d12\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"08ed\");\n\n\n/***/ }),\n\n/***/ \"2d1c\":\n/***/ (function(module, exports) {\n\nmodule.exports = negate;\n\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to negate\n * @returns {vec3} out\n */\nfunction negate(out, a) {\n out[0] = -a[0]\n out[1] = -a[1]\n out[2] = -a[2]\n return out\n}\n\n/***/ }),\n\n/***/ \"2d7d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\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/* http://keith-wood.name/calendars.html\n Persian calendar for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = __webpack_require__(\"0230\");\nvar assign = __webpack_require__(\"320c\");\n\n\n/** Implementation of the Persian or Jalali calendar.\n Based on code from http://www.iranchamber.com/calendar/converter/iranian_calendar_converter.php.\n See also http://en.wikipedia.org/wiki/Iranian_calendar.\n @class PersianCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction PersianCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nPersianCalendar.prototype = new main.baseCalendar;\n\nassign(PersianCalendar.prototype, {\n /** The calendar name.\n @memberof PersianCalendar */\n name: 'Persian',\n /** Julian date of start of Persian epoch: 19 March 622 CE.\n @memberof PersianCalendar */\n jdEpoch: 1948320.5,\n /** Days per month in a common year.\n @memberof PersianCalendar */\n daysPerMonth: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29],\n /** true if has a year zero, false if not.\n @memberof PersianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof PersianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof PersianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof PersianCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof PersianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Persian',\n epochs: ['BP', 'AP'],\n monthNames: ['Farvardin', 'Ordibehesht', 'Khordad', 'Tir', 'Mordad', 'Shahrivar',\n 'Mehr', 'Aban', 'Azar', 'Day', 'Bahman', 'Esfand'],\n monthNamesShort: ['Far', 'Ord', 'Kho', 'Tir', 'Mor', 'Sha', 'Meh', 'Aba', 'Aza', 'Day', 'Bah', 'Esf'],\n dayNames: ['Yekshambe', 'Doshambe', 'Seshambe', 'Chæharshambe', 'Panjshambe', 'Jom\\'e', 'Shambe'],\n dayNamesShort: ['Yek', 'Do', 'Se', 'Chæ', 'Panj', 'Jom', 'Sha'],\n dayNamesMin: ['Ye','Do','Se','Ch','Pa','Jo','Sh'],\n digits: null,\n dateFormat: 'yyyy/mm/dd',\n firstDay: 6,\n isRTL: false\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return (((((date.year() - (date.year() > 0 ? 474 : 473)) % 2820) +\n 474 + 38) * 682) % 2816) < 682;\n },\n\n /** Determine the week of the year for a date.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n // Find Saturday of this week starting on Saturday\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-((checkDate.dayOfWeek() + 1) % 7), 'd');\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n\n /** Retrieve the number of days in a month.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof PersianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n var epBase = year - (year >= 0 ? 474 : 473);\n var epYear = 474 + mod(epBase, 2820);\n return day + (month <= 7 ? (month - 1) * 31 : (month - 1) * 30 + 6) +\n Math.floor((epYear * 682 - 110) / 2816) + (epYear - 1) * 365 +\n Math.floor(epBase / 2820) * 1029983 + this.jdEpoch - 1;\n },\n\n /** Create a new date from a Julian date.\n @memberof PersianCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5;\n var depoch = jd - this.toJD(475, 1, 1);\n var cycle = Math.floor(depoch / 1029983);\n var cyear = mod(depoch, 1029983);\n var ycycle = 2820;\n if (cyear !== 1029982) {\n var aux1 = Math.floor(cyear / 366);\n var aux2 = mod(cyear, 366);\n ycycle = Math.floor(((2134 * aux1) + (2816 * aux2) + 2815) / 1028522) + aux1 + 1;\n }\n var year = ycycle + (2820 * cycle) + 474;\n year = (year <= 0 ? year - 1 : year);\n var yday = jd - this.toJD(year, 1, 1) + 1;\n var month = (yday <= 186 ? Math.ceil(yday / 31) : Math.ceil((yday - 6) / 30));\n var day = jd - this.toJD(year, month, 1) + 1;\n return this.newDate(year, month, day);\n }\n});\n\n// Modulus function which works for non-integers.\nfunction mod(a, b) {\n return a - (b * Math.floor(a / b));\n}\n\n// Persian (Jalali) calendar implementation\nmain.calendars.persian = PersianCalendar;\nmain.calendars.jalali = PersianCalendar;\n\n\n\n/***/ }),\n\n/***/ \"2d9a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar isPlainObject = Lib.isPlainObject;\nvar PlotSchema = __webpack_require__(\"6921\");\nvar Plots = __webpack_require__(\"bb71\");\nvar plotAttributes = __webpack_require__(\"a876\");\nvar Template = __webpack_require__(\"a651\");\nvar dfltConfig = __webpack_require__(\"3ff5\").dfltConfig;\n\n/**\n * Plotly.makeTemplate: create a template off an existing figure to reuse\n * style attributes on other figures.\n *\n * Note: separated from the rest of templates because otherwise we get circular\n * references due to PlotSchema.\n *\n * @param {object|DOM element|string} figure: The figure to base the template on\n * should contain a trace array `figure.data`\n * and a layout object `figure.layout`\n * @returns {object} template: the extracted template - can then be used as\n * `layout.template` in another figure.\n */\nexports.makeTemplate = function(figure) {\n figure = Lib.isPlainObject(figure) ? figure : Lib.getGraphDiv(figure);\n figure = Lib.extendDeep({_context: dfltConfig}, {data: figure.data, layout: figure.layout});\n Plots.supplyDefaults(figure);\n var data = figure.data || [];\n var layout = figure.layout || {};\n // copy over a few items to help follow the schema\n layout._basePlotModules = figure._fullLayout._basePlotModules;\n layout._modules = figure._fullLayout._modules;\n\n var template = {\n data: {},\n layout: {}\n };\n\n /*\n * Note: we do NOT validate template values, we just take what's in the\n * user inputs data and layout, not the validated values in fullData and\n * fullLayout. Even if we were to validate here, there's no guarantee that\n * these values would still be valid when applied to a new figure, which\n * may contain different trace modes, different axes, etc. So it's\n * important that when applying a template we still validate the template\n * values, rather than just using them as defaults.\n */\n\n data.forEach(function(trace) {\n // TODO: What if no style info is extracted for this trace. We may\n // not want an empty object as the null value.\n // TODO: allow transforms to contribute to templates?\n // as it stands they are ignored, which may be for the best...\n\n var traceTemplate = {};\n walkStyleKeys(trace, traceTemplate, getTraceInfo.bind(null, trace));\n\n var traceType = Lib.coerce(trace, {}, plotAttributes, 'type');\n var typeTemplates = template.data[traceType];\n if(!typeTemplates) typeTemplates = template.data[traceType] = [];\n typeTemplates.push(traceTemplate);\n });\n\n walkStyleKeys(layout, template.layout, getLayoutInfo.bind(null, layout));\n\n /*\n * Compose the new template with an existing one to the same effect\n *\n * NOTE: there's a possibility of slightly different behavior: if the plot\n * has an invalid value and the old template has a valid value for the same\n * attribute, the plot will use the old template value but this routine\n * will pull the invalid value (resulting in the original default).\n * In the general case it's not possible to solve this with a single value,\n * since valid options can be context-dependent. It could be solved with\n * a *list* of values, but that would be huge complexity for little gain.\n */\n delete template.layout.template;\n var oldTemplate = layout.template;\n if(isPlainObject(oldTemplate)) {\n var oldLayoutTemplate = oldTemplate.layout;\n\n var i, traceType, oldTypeTemplates, oldTypeLen, typeTemplates, typeLen;\n\n if(isPlainObject(oldLayoutTemplate)) {\n mergeTemplates(oldLayoutTemplate, template.layout);\n }\n var oldDataTemplate = oldTemplate.data;\n if(isPlainObject(oldDataTemplate)) {\n for(traceType in template.data) {\n oldTypeTemplates = oldDataTemplate[traceType];\n if(Array.isArray(oldTypeTemplates)) {\n typeTemplates = template.data[traceType];\n typeLen = typeTemplates.length;\n oldTypeLen = oldTypeTemplates.length;\n for(i = 0; i < typeLen; i++) {\n mergeTemplates(oldTypeTemplates[i % oldTypeLen], typeTemplates[i]);\n }\n for(i = typeLen; i < oldTypeLen; i++) {\n typeTemplates.push(Lib.extendDeep({}, oldTypeTemplates[i]));\n }\n }\n }\n for(traceType in oldDataTemplate) {\n if(!(traceType in template.data)) {\n template.data[traceType] = Lib.extendDeep([], oldDataTemplate[traceType]);\n }\n }\n }\n }\n\n return template;\n};\n\nfunction mergeTemplates(oldTemplate, newTemplate) {\n // we don't care about speed here, just make sure we have a totally\n // distinct object from the previous template\n oldTemplate = Lib.extendDeep({}, oldTemplate);\n\n // sort keys so we always get annotationdefaults before annotations etc\n // so arrayTemplater will work right\n var oldKeys = Object.keys(oldTemplate).sort();\n var i, j;\n\n function mergeOne(oldVal, newVal, key) {\n if(isPlainObject(newVal) && isPlainObject(oldVal)) {\n mergeTemplates(oldVal, newVal);\n } else if(Array.isArray(newVal) && Array.isArray(oldVal)) {\n // Note: omitted `inclusionAttr` from arrayTemplater here,\n // it's irrelevant as we only want the resulting `_template`.\n var templater = Template.arrayTemplater({_template: oldTemplate}, key);\n for(j = 0; j < newVal.length; j++) {\n var item = newVal[j];\n var oldItem = templater.newItem(item)._template;\n if(oldItem) mergeTemplates(oldItem, item);\n }\n var defaultItems = templater.defaultItems();\n for(j = 0; j < defaultItems.length; j++) newVal.push(defaultItems[j]._template);\n\n // templateitemname only applies to receiving plots\n for(j = 0; j < newVal.length; j++) delete newVal[j].templateitemname;\n }\n }\n\n for(i = 0; i < oldKeys.length; i++) {\n var key = oldKeys[i];\n var oldVal = oldTemplate[key];\n if(key in newTemplate) {\n mergeOne(oldVal, newTemplate[key], key);\n } else newTemplate[key] = oldVal;\n\n // if this is a base key from the old template (eg xaxis), look for\n // extended keys (eg xaxis2) in the new template to merge into\n if(getBaseKey(key) === key) {\n for(var key2 in newTemplate) {\n var baseKey2 = getBaseKey(key2);\n if(key2 !== baseKey2 && baseKey2 === key && !(key2 in oldTemplate)) {\n mergeOne(oldVal, newTemplate[key2], key);\n }\n }\n }\n }\n}\n\nfunction getBaseKey(key) {\n return key.replace(/[0-9]+$/, '');\n}\n\nfunction walkStyleKeys(parent, templateOut, getAttributeInfo, path, basePath) {\n var pathAttr = basePath && getAttributeInfo(basePath);\n for(var key in parent) {\n var child = parent[key];\n var nextPath = getNextPath(parent, key, path);\n var nextBasePath = getNextPath(parent, key, basePath);\n var attr = getAttributeInfo(nextBasePath);\n if(!attr) {\n var baseKey = getBaseKey(key);\n if(baseKey !== key) {\n nextBasePath = getNextPath(parent, baseKey, basePath);\n attr = getAttributeInfo(nextBasePath);\n }\n }\n\n // we'll get an attr if path starts with a valid part, then has an\n // invalid ending. Make sure we got all the way to the end.\n if(pathAttr && (pathAttr === attr)) continue;\n\n if(!attr || attr._noTemplating ||\n attr.valType === 'data_array' ||\n (attr.arrayOk && Array.isArray(child))\n ) {\n continue;\n }\n\n if(!attr.valType && isPlainObject(child)) {\n walkStyleKeys(child, templateOut, getAttributeInfo, nextPath, nextBasePath);\n } else if(attr._isLinkedToArray && Array.isArray(child)) {\n var dfltDone = false;\n var namedIndex = 0;\n var usedNames = {};\n for(var i = 0; i < child.length; i++) {\n var item = child[i];\n if(isPlainObject(item)) {\n var name = item.name;\n if(name) {\n if(!usedNames[name]) {\n // named array items: allow all attributes except data arrays\n walkStyleKeys(item, templateOut, getAttributeInfo,\n getNextPath(child, namedIndex, nextPath),\n getNextPath(child, namedIndex, nextBasePath));\n namedIndex++;\n usedNames[name] = 1;\n }\n } else if(!dfltDone) {\n var dfltKey = Template.arrayDefaultKey(key);\n var dfltPath = getNextPath(parent, dfltKey, path);\n\n // getAttributeInfo will fail if we try to use dfltKey directly.\n // Instead put this item into the next array element, then\n // pull it out and move it to dfltKey.\n var pathInArray = getNextPath(child, namedIndex, nextPath);\n walkStyleKeys(item, templateOut, getAttributeInfo, pathInArray,\n getNextPath(child, namedIndex, nextBasePath));\n var itemPropInArray = Lib.nestedProperty(templateOut, pathInArray);\n var dfltProp = Lib.nestedProperty(templateOut, dfltPath);\n dfltProp.set(itemPropInArray.get());\n itemPropInArray.set(null);\n\n dfltDone = true;\n }\n }\n }\n } else {\n var templateProp = Lib.nestedProperty(templateOut, nextPath);\n templateProp.set(child);\n }\n }\n}\n\nfunction getLayoutInfo(layout, path) {\n return PlotSchema.getLayoutValObject(\n layout, Lib.nestedProperty({}, path).parts\n );\n}\n\nfunction getTraceInfo(trace, path) {\n return PlotSchema.getTraceValObject(\n trace, Lib.nestedProperty({}, path).parts\n );\n}\n\nfunction getNextPath(parent, key, path) {\n var nextPath;\n if(!path) nextPath = key;\n else if(Array.isArray(parent)) nextPath = path + '[' + key + ']';\n else nextPath = path + '.' + key;\n\n return nextPath;\n}\n\n/**\n * validateTemplate: Test for consistency between the given figure and\n * a template, either already included in the figure or given separately.\n * Note that not every issue we identify here is necessarily a problem,\n * it depends on what you're using the template for.\n *\n * @param {object|DOM element} figure: the plot, with {data, layout} members,\n * to test the template against\n * @param {Optional(object)} template: the template, with its own {data, layout},\n * to test. If omitted, we will look for a template already attached as the\n * plot's `layout.template` attribute.\n *\n * @returns {array} array of error objects each containing:\n * - {string} code\n * error code ('missing', 'unused', 'reused', 'noLayout', 'noData')\n * - {string} msg\n * a full readable description of the issue.\n */\nexports.validateTemplate = function(figureIn, template) {\n var figure = Lib.extendDeep({}, {\n _context: dfltConfig,\n data: figureIn.data,\n layout: figureIn.layout\n });\n var layout = figure.layout || {};\n if(!isPlainObject(template)) template = layout.template || {};\n var layoutTemplate = template.layout;\n var dataTemplate = template.data;\n var errorList = [];\n\n figure.layout = layout;\n figure.layout.template = template;\n Plots.supplyDefaults(figure);\n\n var fullLayout = figure._fullLayout;\n var fullData = figure._fullData;\n\n var layoutPaths = {};\n function crawlLayoutForContainers(obj, paths) {\n for(var key in obj) {\n if(key.charAt(0) !== '_' && isPlainObject(obj[key])) {\n var baseKey = getBaseKey(key);\n var nextPaths = [];\n var i;\n for(i = 0; i < paths.length; i++) {\n nextPaths.push(getNextPath(obj, key, paths[i]));\n if(baseKey !== key) nextPaths.push(getNextPath(obj, baseKey, paths[i]));\n }\n for(i = 0; i < nextPaths.length; i++) {\n layoutPaths[nextPaths[i]] = 1;\n }\n crawlLayoutForContainers(obj[key], nextPaths);\n }\n }\n }\n\n function crawlLayoutTemplateForContainers(obj, path) {\n for(var key in obj) {\n if(key.indexOf('defaults') === -1 && isPlainObject(obj[key])) {\n var nextPath = getNextPath(obj, key, path);\n if(layoutPaths[nextPath]) {\n crawlLayoutTemplateForContainers(obj[key], nextPath);\n } else {\n errorList.push({code: 'unused', path: nextPath});\n }\n }\n }\n }\n\n if(!isPlainObject(layoutTemplate)) {\n errorList.push({code: 'layout'});\n } else {\n crawlLayoutForContainers(fullLayout, ['layout']);\n crawlLayoutTemplateForContainers(layoutTemplate, 'layout');\n }\n\n if(!isPlainObject(dataTemplate)) {\n errorList.push({code: 'data'});\n } else {\n var typeCount = {};\n var traceType;\n for(var i = 0; i < fullData.length; i++) {\n var fullTrace = fullData[i];\n traceType = fullTrace.type;\n typeCount[traceType] = (typeCount[traceType] || 0) + 1;\n if(!fullTrace._fullInput._template) {\n // this takes care of the case of traceType in the data but not\n // the template\n errorList.push({\n code: 'missing',\n index: fullTrace._fullInput.index,\n traceType: traceType\n });\n }\n }\n for(traceType in dataTemplate) {\n var templateCount = dataTemplate[traceType].length;\n var dataCount = typeCount[traceType] || 0;\n if(templateCount > dataCount) {\n errorList.push({\n code: 'unused',\n traceType: traceType,\n templateCount: templateCount,\n dataCount: dataCount\n });\n } else if(dataCount > templateCount) {\n errorList.push({\n code: 'reused',\n traceType: traceType,\n templateCount: templateCount,\n dataCount: dataCount\n });\n }\n }\n }\n\n // _template: false is when someone tried to modify an array item\n // but there was no template with matching name\n function crawlForMissingTemplates(obj, path) {\n for(var key in obj) {\n if(key.charAt(0) === '_') continue;\n var val = obj[key];\n var nextPath = getNextPath(obj, key, path);\n if(isPlainObject(val)) {\n if(Array.isArray(obj) && val._template === false && val.templateitemname) {\n errorList.push({\n code: 'missing',\n path: nextPath,\n templateitemname: val.templateitemname\n });\n }\n crawlForMissingTemplates(val, nextPath);\n } else if(Array.isArray(val) && hasPlainObject(val)) {\n crawlForMissingTemplates(val, nextPath);\n }\n }\n }\n crawlForMissingTemplates({data: fullData, layout: fullLayout}, '');\n\n if(errorList.length) return errorList.map(format);\n};\n\nfunction hasPlainObject(arr) {\n for(var i = 0; i < arr.length; i++) {\n if(isPlainObject(arr[i])) return true;\n }\n}\n\nfunction format(opts) {\n var msg;\n switch(opts.code) {\n case 'data':\n msg = 'The template has no key data.';\n break;\n case 'layout':\n msg = 'The template has no key layout.';\n break;\n case 'missing':\n if(opts.path) {\n msg = 'There are no templates for item ' + opts.path +\n ' with name ' + opts.templateitemname;\n } else {\n msg = 'There are no templates for trace ' + opts.index +\n ', of type ' + opts.traceType + '.';\n }\n break;\n case 'unused':\n if(opts.path) {\n msg = 'The template item at ' + opts.path +\n ' was not used in constructing the plot.';\n } else if(opts.dataCount) {\n msg = 'Some of the templates of type ' + opts.traceType +\n ' were not used. The template has ' + opts.templateCount +\n ' traces, the data only has ' + opts.dataCount +\n ' of this type.';\n } else {\n msg = 'The template has ' + opts.templateCount +\n ' traces of type ' + opts.traceType +\n ' but there are none in the data.';\n }\n break;\n case 'reused':\n msg = 'Some of the templates of type ' + opts.traceType +\n ' were used more than once. The template has ' +\n opts.templateCount + ' traces, the data has ' +\n opts.dataCount + ' of this type.';\n break;\n }\n opts.msg = msg;\n\n return opts;\n}\n\n\n/***/ }),\n\n/***/ \"2dbe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nvar stringifyFont = __webpack_require__(\"c243\")\r\nvar defaultChars = [32, 126]\r\n\r\nmodule.exports = atlas\r\n\r\nfunction atlas(options) {\r\n options = options || {}\r\n\r\n var shape = options.shape ? options.shape : options.canvas ? [options.canvas.width, options.canvas.height] : [512, 512]\r\n var canvas = options.canvas || document.createElement('canvas')\r\n var font = options.font\r\n var step = typeof options.step === 'number' ? [options.step, options.step] : options.step || [32, 32]\r\n var chars = options.chars || defaultChars\r\n\r\n if (font && typeof font !== 'string') font = stringifyFont(font)\r\n\r\n if (!Array.isArray(chars)) {\r\n chars = String(chars).split('')\r\n } else\r\n if (chars.length === 2\r\n && typeof chars[0] === 'number'\r\n && typeof chars[1] === 'number'\r\n ) {\r\n var newchars = []\r\n\r\n for (var i = chars[0], j = 0; i <= chars[1]; i++) {\r\n newchars[j++] = String.fromCharCode(i)\r\n }\r\n\r\n chars = newchars\r\n }\r\n\r\n shape = shape.slice()\r\n canvas.width = shape[0]\r\n canvas.height = shape[1]\r\n\r\n var ctx = canvas.getContext('2d')\r\n\r\n ctx.fillStyle = '#000'\r\n ctx.fillRect(0, 0, canvas.width, canvas.height)\r\n\r\n ctx.font = font\r\n ctx.textAlign = 'center'\r\n ctx.textBaseline = 'middle'\r\n ctx.fillStyle = '#fff'\r\n\r\n var x = step[0] / 2\r\n var y = step[1] / 2\r\n for (var i = 0; i < chars.length; i++) {\r\n ctx.fillText(chars[i], x, y)\r\n if ((x += step[0]) > shape[0] - step[0]/2) (x = step[0]/2), (y += step[1])\r\n }\r\n\r\n return canvas\r\n}\r\n\n\n/***/ }),\n\n/***/ \"2dd7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar layoutAttributes = __webpack_require__(\"7ba3\");\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce('sunburstcolorway', layoutOut.colorway);\n coerce('extendsunburstcolors');\n};\n\n\n/***/ }),\n\n/***/ \"2dd9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = compressExpansion\n\nfunction compressExpansion(e) {\n var m = e.length\n var Q = e[e.length-1]\n var bottom = m\n for(var i=m-2; i>=0; --i) {\n var a = Q\n var b = e[i]\n Q = a + b\n var bv = Q - a\n var q = b - bv\n if(q) {\n e[--bottom] = Q\n Q = q\n }\n }\n var top = 0\n for(var i=bottom; i 1) ||\n (fullLayout.bargap === 0 &&\n fullLayout.bargroupgap === 0 &&\n !d[0].trace.marker.line.width)) {\n d3.select(this).attr('shape-rendering', 'crispEdges');\n }\n });\n\n s.selectAll('g.points').each(function(d) {\n var sel = d3.select(this);\n var trace = d[0].trace;\n stylePoints(sel, trace, gd);\n });\n\n Registry.getComponentMethod('errorbars', 'style')(s);\n}\n\nfunction stylePoints(sel, trace, gd) {\n Drawing.pointStyle(sel.selectAll('path'), trace, gd);\n styleTextPoints(sel, trace, gd);\n}\n\nfunction styleTextPoints(sel, trace, gd) {\n sel.selectAll('text').each(function(d) {\n var tx = d3.select(this);\n var font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));\n\n Drawing.font(tx, font);\n });\n}\n\nfunction styleOnSelect(gd, cd, sel) {\n var trace = cd[0].trace;\n\n if(trace.selectedpoints) {\n stylePointsInSelectionMode(sel, trace, gd);\n } else {\n stylePoints(sel, trace, gd);\n Registry.getComponentMethod('errorbars', 'style')(sel);\n }\n}\n\nfunction stylePointsInSelectionMode(s, trace, gd) {\n Drawing.selectedPointStyle(s.selectAll('path'), trace);\n styleTextInSelectionMode(s.selectAll('text'), trace, gd);\n}\n\nfunction styleTextInSelectionMode(txs, trace, gd) {\n txs.each(function(d) {\n var tx = d3.select(this);\n var font;\n\n if(d.selected) {\n font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));\n\n var selectedFontColor = trace.selected.textfont && trace.selected.textfont.color;\n if(selectedFontColor) {\n font.color = selectedFontColor;\n }\n\n Drawing.font(tx, font);\n } else {\n Drawing.selectedTextStyle(tx, trace);\n }\n });\n}\n\nfunction determineFont(tx, d, trace, gd) {\n var layoutFont = gd._fullLayout.font;\n var textFont = trace.textfont;\n\n if(tx.classed('bartext-inside')) {\n var barColor = getBarColor(d, trace);\n textFont = getInsideTextFont(trace, d.i, layoutFont, barColor);\n } else if(tx.classed('bartext-outside')) {\n textFont = getOutsideTextFont(trace, d.i, layoutFont);\n }\n\n return textFont;\n}\n\nfunction getTextFont(trace, index, defaultValue) {\n return getFontValue(\n attributeTextFont, trace.textfont, index, defaultValue);\n}\n\nfunction getInsideTextFont(trace, index, layoutFont, barColor) {\n var defaultFont = getTextFont(trace, index, layoutFont);\n\n var wouldFallBackToLayoutFont =\n (trace._input.textfont === undefined || trace._input.textfont.color === undefined) ||\n (Array.isArray(trace.textfont.color) && trace.textfont.color[index] === undefined);\n if(wouldFallBackToLayoutFont) {\n defaultFont = {\n color: Color.contrast(barColor),\n family: defaultFont.family,\n size: defaultFont.size\n };\n }\n\n return getFontValue(\n attributeInsideTextFont, trace.insidetextfont, index, defaultFont);\n}\n\nfunction getOutsideTextFont(trace, index, layoutFont) {\n var defaultFont = getTextFont(trace, index, layoutFont);\n return getFontValue(\n attributeOutsideTextFont, trace.outsidetextfont, index, defaultFont);\n}\n\nfunction getFontValue(attributeDefinition, attributeValue, index, defaultValue) {\n attributeValue = attributeValue || {};\n\n var familyValue = helpers.getValue(attributeValue.family, index);\n var sizeValue = helpers.getValue(attributeValue.size, index);\n var colorValue = helpers.getValue(attributeValue.color, index);\n\n return {\n family: helpers.coerceString(\n attributeDefinition.family, familyValue, defaultValue.family),\n size: helpers.coerceNumber(\n attributeDefinition.size, sizeValue, defaultValue.size),\n color: helpers.coerceColor(\n attributeDefinition.color, colorValue, defaultValue.color)\n };\n}\n\nfunction getBarColor(cd, trace) {\n if(trace.type === 'waterfall') {\n return trace[cd.dir].marker.color;\n }\n return cd.mc || trace.marker.color;\n}\n\nmodule.exports = {\n style: style,\n styleTextPoints: styleTextPoints,\n styleOnSelect: styleOnSelect,\n getInsideTextFont: getInsideTextFont,\n getOutsideTextFont: getOutsideTextFont,\n getBarColor: getBarColor,\n resizeText: resizeText\n};\n\n\n/***/ }),\n\n/***/ \"2e22\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sankeyCircular\", function() { return sankeyCircular; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sankeyCenter\", function() { return center; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sankeyLeft\", function() { return left; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sankeyRight\", function() { return right; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sankeyJustify\", function() { return justify; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"bc17\");\n/* harmony import */ var d3_collection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"6f04\");\n/* harmony import */ var d3_shape__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"1a88\");\n/* harmony import */ var elementary_circuits_directed_graph__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"7e55\");\n/* harmony import */ var elementary_circuits_directed_graph__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(elementary_circuits_directed_graph__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n\n// For a given link, return the target node's depth\nfunction targetDepth(d) {\n return d.target.depth;\n}\n\n// The depth of a node when the nodeAlign (align) is set to 'left'\nfunction left(node) {\n return node.depth;\n}\n\n// The depth of a node when the nodeAlign (align) is set to 'right'\nfunction right(node, n) {\n return n - 1 - node.height;\n}\n\n// The depth of a node when the nodeAlign (align) is set to 'justify'\nfunction justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\n\n// The depth of a node when the nodeAlign (align) is set to 'center'\nfunction center(node) {\n return node.targetLinks.length ? node.depth : node.sourceLinks.length ? Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* min */ \"d\"])(node.sourceLinks, targetDepth) - 1 : 0;\n}\n\n// returns a function, using the parameter given to the sankey setting\nfunction constant(x) {\n return function () {\n return x;\n };\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n/// https://github.com/tomshanley/d3-sankeyCircular-circular\n\n// sort links' breadth (ie top to bottom in a column), based on their source nodes' breadths\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\n// sort links' breadth (ie top to bottom in a column), based on their target nodes' breadths\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\n// sort nodes' breadth (ie top to bottom in a column)\n// if both nodes have circular links, or both don't have circular links, then sort by the top (y0) of the node\n// else push nodes that have top circular links to the top, and nodes that have bottom circular links to the bottom\nfunction ascendingBreadth(a, b) {\n if (a.partOfCycle === b.partOfCycle) {\n return a.y0 - b.y0;\n } else {\n if (a.circularLinkType === 'top' || b.circularLinkType === 'bottom') {\n return -1;\n } else {\n return 1;\n }\n }\n}\n\n// return the value of a node or link\nfunction value(d) {\n return d.value;\n}\n\n// return the vertical center of a node\nfunction nodeCenter(node) {\n return (node.y0 + node.y1) / 2;\n}\n\n// return the vertical center of a link's source node\nfunction linkSourceCenter(link) {\n return nodeCenter(link.source);\n}\n\n// return the vertical center of a link's target node\nfunction linkTargetCenter(link) {\n return nodeCenter(link.target);\n}\n\n// Return the default value for ID for node, d.index\nfunction defaultId(d) {\n return d.index;\n}\n\n// Return the default object the graph's nodes, graph.nodes\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\n\n// Return the default object the graph's nodes, graph.links\nfunction defaultLinks(graph) {\n return graph.links;\n}\n\n// Return the node from the collection that matches the provided ID, or throw an error if no match\nfunction find(nodeById, id) {\n var node = nodeById.get(id);\n if (!node) throw new Error('missing: ' + id);\n return node;\n}\n\nfunction getNodeID(node, id) {\n return id(node);\n}\n\n// The main sankeyCircular functions\n\n// Some constants for circular link calculations\nvar verticalMargin = 25;\nvar baseRadius = 10;\nvar scale = 0.3; //Possibly let user control this, although anything over 0.5 starts to get too cramped\n\nfunction sankeyCircular () {\n // Set the default values\n var x0 = 0,\n y0 = 0,\n x1 = 1,\n y1 = 1,\n // extent\n dx = 24,\n // nodeWidth\n py,\n // nodePadding, for vertical postioning\n id = defaultId,\n align = justify,\n nodes = defaultNodes,\n links = defaultLinks,\n iterations = 32,\n circularLinkGap = 2,\n paddingRatio,\n sortNodes = null;\n\n function sankeyCircular() {\n var graph = {\n nodes: nodes.apply(null, arguments),\n links: links.apply(null, arguments)\n\n // Process the graph's nodes and links, setting their positions\n\n // 1. Associate the nodes with their respective links, and vice versa\n };computeNodeLinks(graph);\n\n // 2. Determine which links result in a circular path in the graph\n identifyCircles(graph, id, sortNodes);\n\n // 4. Calculate the nodes' values, based on the values of the incoming and outgoing links\n computeNodeValues(graph);\n\n // 5. Calculate the nodes' depth based on the incoming and outgoing links\n // Sets the nodes':\n // - depth: the depth in the graph\n // - column: the depth (0, 1, 2, etc), as is relates to visual position from left to right\n // - x0, x1: the x coordinates, as is relates to visual position from left to right\n computeNodeDepths(graph);\n\n // 3. Determine how the circular links will be drawn,\n // either travelling back above the main chart (\"top\")\n // or below the main chart (\"bottom\")\n selectCircularLinkTypes(graph, id);\n\n // 6. Calculate the nodes' and links' vertical position within their respective column\n // Also readjusts sankeyCircular size if circular links are needed, and node x's\n computeNodeBreadths(graph, iterations, id);\n computeLinkBreadths(graph);\n\n // 7. Sort links per node, based on the links' source/target nodes' breadths\n // 8. Adjust nodes that overlap links that span 2+ columns\n var linkSortingIterations = 4; //Possibly let user control this number, like the iterations over node placement\n for (var iteration = 0; iteration < linkSortingIterations; iteration++) {\n\n sortSourceLinks(graph, y1, id);\n sortTargetLinks(graph, y1, id);\n resolveNodeLinkOverlaps(graph, y0, y1, id);\n sortSourceLinks(graph, y1, id);\n sortTargetLinks(graph, y1, id);\n }\n\n // 8.1 Adjust node and link positions back to fill height of chart area if compressed\n fillHeight(graph, y0, y1);\n\n // 9. Calculate visually appealling path for the circular paths, and create the \"d\" string\n addCircularPathData(graph, circularLinkGap, y1, id);\n\n return graph;\n } // end of sankeyCircular function\n\n\n // Set the sankeyCircular parameters\n // nodeID, nodeAlign, nodeWidth, nodePadding, nodes, links, size, extent, iterations, nodePaddingRatio, circularLinkGap\n sankeyCircular.nodeId = function (_) {\n return arguments.length ? (id = typeof _ === 'function' ? _ : constant(_), sankeyCircular) : id;\n };\n\n sankeyCircular.nodeAlign = function (_) {\n return arguments.length ? (align = typeof _ === 'function' ? _ : constant(_), sankeyCircular) : align;\n };\n\n sankeyCircular.nodeWidth = function (_) {\n return arguments.length ? (dx = +_, sankeyCircular) : dx;\n };\n\n sankeyCircular.nodePadding = function (_) {\n return arguments.length ? (py = +_, sankeyCircular) : py;\n };\n\n sankeyCircular.nodes = function (_) {\n return arguments.length ? (nodes = typeof _ === 'function' ? _ : constant(_), sankeyCircular) : nodes;\n };\n\n sankeyCircular.links = function (_) {\n return arguments.length ? (links = typeof _ === 'function' ? _ : constant(_), sankeyCircular) : links;\n };\n\n sankeyCircular.size = function (_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankeyCircular) : [x1 - x0, y1 - y0];\n };\n\n sankeyCircular.extent = function (_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankeyCircular) : [[x0, y0], [x1, y1]];\n };\n\n sankeyCircular.iterations = function (_) {\n return arguments.length ? (iterations = +_, sankeyCircular) : iterations;\n };\n\n sankeyCircular.circularLinkGap = function (_) {\n return arguments.length ? (circularLinkGap = +_, sankeyCircular) : circularLinkGap;\n };\n\n sankeyCircular.nodePaddingRatio = function (_) {\n return arguments.length ? (paddingRatio = +_, sankeyCircular) : paddingRatio;\n };\n\n sankeyCircular.sortNodes = function (_) {\n return arguments.length ? (sortNodes = _, sankeyCircular) : sortNodes;\n };\n\n sankeyCircular.update = function (graph) {\n // 5. Calculate the nodes' depth based on the incoming and outgoing links\n // Sets the nodes':\n // - depth: the depth in the graph\n // - column: the depth (0, 1, 2, etc), as is relates to visual position from left to right\n // - x0, x1: the x coordinates, as is relates to visual position from left to right\n // computeNodeDepths(graph)\n\n // 3. Determine how the circular links will be drawn,\n // either travelling back above the main chart (\"top\")\n // or below the main chart (\"bottom\")\n selectCircularLinkTypes(graph, id);\n\n // 6. Calculate the nodes' and links' vertical position within their respective column\n // Also readjusts sankeyCircular size if circular links are needed, and node x's\n // computeNodeBreadths(graph, iterations, id)\n computeLinkBreadths(graph);\n\n // Force position of circular link type based on position\n graph.links.forEach(function (link) {\n if (link.circular) {\n link.circularLinkType = link.y0 + link.y1 < y1 ? 'top' : 'bottom';\n\n link.source.circularLinkType = link.circularLinkType;\n link.target.circularLinkType = link.circularLinkType;\n }\n });\n\n sortSourceLinks(graph, y1, id, false); // Sort links but do not move nodes\n sortTargetLinks(graph, y1, id);\n\n // 7. Sort links per node, based on the links' source/target nodes' breadths\n // 8. Adjust nodes that overlap links that span 2+ columns\n // var linkSortingIterations = 4; //Possibly let user control this number, like the iterations over node placement\n // for (var iteration = 0; iteration < linkSortingIterations; iteration++) {\n //\n // sortSourceLinks(graph, y1, id)\n // sortTargetLinks(graph, y1, id)\n // resolveNodeLinkOverlaps(graph, y0, y1, id)\n // sortSourceLinks(graph, y1, id)\n // sortTargetLinks(graph, y1, id)\n //\n // }\n\n // 8.1 Adjust node and link positions back to fill height of chart area if compressed\n // fillHeight(graph, y0, y1)\n\n // 9. Calculate visually appealling path for the circular paths, and create the \"d\" string\n addCircularPathData(graph, circularLinkGap, y1, id);\n return graph;\n };\n\n // Populate the sourceLinks and targetLinks for each node.\n // Also, if the source and target are not objects, assume they are indices.\n function computeNodeLinks(graph) {\n graph.nodes.forEach(function (node, i) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n });\n var nodeById = Object(d3_collection__WEBPACK_IMPORTED_MODULE_1__[/* map */ \"a\"])(graph.nodes, id);\n graph.links.forEach(function (link, i) {\n link.index = i;\n var source = link.source;\n var target = link.target;\n if ((typeof source === \"undefined\" ? \"undefined\" : _typeof(source)) !== 'object') {\n source = link.source = find(nodeById, source);\n }\n if ((typeof target === \"undefined\" ? \"undefined\" : _typeof(target)) !== 'object') {\n target = link.target = find(nodeById, target);\n }\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n });\n return graph;\n }\n\n // Compute the value (size) and cycleness of each node by summing the associated links.\n function computeNodeValues(graph) {\n graph.nodes.forEach(function (node) {\n node.partOfCycle = false;\n node.value = Math.max(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* sum */ \"e\"])(node.sourceLinks, value), Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* sum */ \"e\"])(node.targetLinks, value));\n node.sourceLinks.forEach(function (link) {\n if (link.circular) {\n node.partOfCycle = true;\n node.circularLinkType = link.circularLinkType;\n }\n });\n node.targetLinks.forEach(function (link) {\n if (link.circular) {\n node.partOfCycle = true;\n node.circularLinkType = link.circularLinkType;\n }\n });\n });\n }\n\n function getCircleMargins(graph) {\n var totalTopLinksWidth = 0,\n totalBottomLinksWidth = 0,\n totalRightLinksWidth = 0,\n totalLeftLinksWidth = 0;\n\n var maxColumn = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* max */ \"b\"])(graph.nodes, function (node) {\n return node.column;\n });\n\n graph.links.forEach(function (link) {\n if (link.circular) {\n if (link.circularLinkType == 'top') {\n totalTopLinksWidth = totalTopLinksWidth + link.width;\n } else {\n totalBottomLinksWidth = totalBottomLinksWidth + link.width;\n }\n\n if (link.target.column == 0) {\n totalLeftLinksWidth = totalLeftLinksWidth + link.width;\n }\n\n if (link.source.column == maxColumn) {\n totalRightLinksWidth = totalRightLinksWidth + link.width;\n }\n }\n });\n\n //account for radius of curves and padding between links\n totalTopLinksWidth = totalTopLinksWidth > 0 ? totalTopLinksWidth + verticalMargin + baseRadius : totalTopLinksWidth;\n totalBottomLinksWidth = totalBottomLinksWidth > 0 ? totalBottomLinksWidth + verticalMargin + baseRadius : totalBottomLinksWidth;\n totalRightLinksWidth = totalRightLinksWidth > 0 ? totalRightLinksWidth + verticalMargin + baseRadius : totalRightLinksWidth;\n totalLeftLinksWidth = totalLeftLinksWidth > 0 ? totalLeftLinksWidth + verticalMargin + baseRadius : totalLeftLinksWidth;\n\n return { \"top\": totalTopLinksWidth, \"bottom\": totalBottomLinksWidth, \"left\": totalLeftLinksWidth, \"right\": totalRightLinksWidth };\n }\n\n // Update the x0, y0, x1 and y1 for the sankeyCircular, to allow space for any circular links\n function scaleSankeySize(graph, margin) {\n\n var maxColumn = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* max */ \"b\"])(graph.nodes, function (node) {\n return node.column;\n });\n\n var currentWidth = x1 - x0;\n var currentHeight = y1 - y0;\n\n var newWidth = currentWidth + margin.right + margin.left;\n var newHeight = currentHeight + margin.top + margin.bottom;\n\n var scaleX = currentWidth / newWidth;\n var scaleY = currentHeight / newHeight;\n\n x0 = x0 * scaleX + margin.left;\n x1 = margin.right == 0 ? x1 : x1 * scaleX;\n y0 = y0 * scaleY + margin.top;\n y1 = y1 * scaleY;\n\n graph.nodes.forEach(function (node) {\n node.x0 = x0 + node.column * ((x1 - x0 - dx) / maxColumn);\n node.x1 = node.x0 + dx;\n });\n\n return scaleY;\n }\n\n // Iteratively assign the depth for each node.\n // Nodes are assigned the maximum depth of incoming neighbors plus one;\n // nodes with no incoming links are assigned depth zero, while\n // nodes with no outgoing links are assigned the maximum depth.\n function computeNodeDepths(graph) {\n var nodes, next, x;\n\n for (nodes = graph.nodes, next = [], x = 0; nodes.length; ++x, nodes = next, next = []) {\n nodes.forEach(function (node) {\n node.depth = x;\n node.sourceLinks.forEach(function (link) {\n if (next.indexOf(link.target) < 0 && !link.circular) {\n next.push(link.target);\n }\n });\n });\n }\n\n for (nodes = graph.nodes, next = [], x = 0; nodes.length; ++x, nodes = next, next = []) {\n nodes.forEach(function (node) {\n node.height = x;\n node.targetLinks.forEach(function (link) {\n if (next.indexOf(link.source) < 0 && !link.circular) {\n next.push(link.source);\n }\n });\n });\n }\n\n // assign column numbers, and get max value\n graph.nodes.forEach(function (node) {\n node.column = Math.floor(align.call(null, node, x));\n });\n }\n\n // Assign nodes' breadths, and then shift nodes that overlap (resolveCollisions)\n function computeNodeBreadths(graph, iterations, id) {\n var columns = Object(d3_collection__WEBPACK_IMPORTED_MODULE_1__[/* nest */ \"b\"])().key(function (d) {\n return d.column;\n }).sortKeys(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* ascending */ \"a\"]).entries(graph.nodes).map(function (d) {\n return d.values;\n });\n\n initializeNodeBreadth(id);\n resolveCollisions();\n\n for (var alpha = 1, n = iterations; n > 0; --n) {\n relaxLeftAndRight(alpha *= 0.99, id);\n resolveCollisions();\n }\n\n function initializeNodeBreadth(id) {\n\n //override py if nodePadding has been set\n if (paddingRatio) {\n var padding = Infinity;\n columns.forEach(function (nodes) {\n var thisPadding = y1 * paddingRatio / (nodes.length + 1);\n padding = thisPadding < padding ? thisPadding : padding;\n });\n py = padding;\n }\n\n var ky = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* min */ \"d\"])(columns, function (nodes) {\n return (y1 - y0 - (nodes.length - 1) * py) / Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* sum */ \"e\"])(nodes, value);\n });\n\n //calculate the widths of the links\n ky = ky * scale;\n\n graph.links.forEach(function (link) {\n link.width = link.value * ky;\n });\n\n //determine how much to scale down the chart, based on circular links\n var margin = getCircleMargins(graph);\n var ratio = scaleSankeySize(graph, margin);\n\n //re-calculate widths\n ky = ky * ratio;\n\n graph.links.forEach(function (link) {\n link.width = link.value * ky;\n });\n\n columns.forEach(function (nodes) {\n var nodesLength = nodes.length;\n nodes.forEach(function (node, i) {\n if (node.depth == columns.length - 1 && nodesLength == 1) {\n node.y0 = y1 / 2 - node.value * ky;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.depth == 0 && nodesLength == 1) {\n node.y0 = y1 / 2 - node.value * ky;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.partOfCycle) {\n if (numberOfNonSelfLinkingCycles(node, id) == 0) {\n node.y0 = y1 / 2 + i;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.circularLinkType == 'top') {\n node.y0 = y0 + i;\n node.y1 = node.y0 + node.value * ky;\n } else {\n node.y0 = y1 - node.value * ky - i;\n node.y1 = node.y0 + node.value * ky;\n }\n } else {\n if (margin.top == 0 || margin.bottom == 0) {\n node.y0 = (y1 - y0) / nodesLength * i;\n node.y1 = node.y0 + node.value * ky;\n } else {\n node.y0 = (y1 - y0) / 2 - nodesLength / 2 + i;\n node.y1 = node.y0 + node.value * ky;\n }\n }\n });\n });\n }\n\n // For each node in each column, check the node's vertical position in relation to its targets and sources vertical position\n // and shift up/down to be closer to the vertical middle of those targets and sources\n function relaxLeftAndRight(alpha, id) {\n var columnsLength = columns.length;\n\n columns.forEach(function (nodes) {\n var n = nodes.length;\n var depth = nodes[0].depth;\n\n nodes.forEach(function (node) {\n // check the node is not an orphan\n var nodeHeight;\n if (node.sourceLinks.length || node.targetLinks.length) {\n if (node.partOfCycle && numberOfNonSelfLinkingCycles(node, id) > 0) ; else if (depth == 0 && n == 1) {\n nodeHeight = node.y1 - node.y0;\n\n node.y0 = y1 / 2 - nodeHeight / 2;\n node.y1 = y1 / 2 + nodeHeight / 2;\n } else if (depth == columnsLength - 1 && n == 1) {\n nodeHeight = node.y1 - node.y0;\n\n node.y0 = y1 / 2 - nodeHeight / 2;\n node.y1 = y1 / 2 + nodeHeight / 2;\n } else {\n var avg = 0;\n\n var avgTargetY = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* mean */ \"c\"])(node.sourceLinks, linkTargetCenter);\n var avgSourceY = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* mean */ \"c\"])(node.targetLinks, linkSourceCenter);\n\n if (avgTargetY && avgSourceY) {\n avg = (avgTargetY + avgSourceY) / 2;\n } else {\n avg = avgTargetY || avgSourceY;\n }\n\n var dy = (avg - nodeCenter(node)) * alpha;\n // positive if it node needs to move down\n node.y0 += dy;\n node.y1 += dy;\n }\n }\n });\n });\n }\n\n // For each column, check if nodes are overlapping, and if so, shift up/down\n function resolveCollisions() {\n columns.forEach(function (nodes) {\n var node,\n dy,\n y = y0,\n n = nodes.length,\n i;\n\n // Push any overlapping nodes down.\n nodes.sort(ascendingBreadth);\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dy = y - node.y0;\n\n if (dy > 0) {\n node.y0 += dy;\n node.y1 += dy;\n }\n y = node.y1 + py;\n }\n\n // If the bottommost node goes outside the bounds, push it back up.\n dy = y - py - y1;\n if (dy > 0) {\n y = node.y0 -= dy, node.y1 -= dy;\n\n // Push any overlapping nodes back up.\n for (i = n - 2; i >= 0; --i) {\n node = nodes[i];\n dy = node.y1 + py - y;\n if (dy > 0) node.y0 -= dy, node.y1 -= dy;\n y = node.y0;\n }\n }\n });\n }\n }\n\n // Assign the links y0 and y1 based on source/target nodes position,\n // plus the link's relative position to other links to the same node\n function computeLinkBreadths(graph) {\n graph.nodes.forEach(function (node) {\n node.sourceLinks.sort(ascendingTargetBreadth);\n node.targetLinks.sort(ascendingSourceBreadth);\n });\n graph.nodes.forEach(function (node) {\n var y0 = node.y0;\n var y1 = y0;\n\n // start from the bottom of the node for cycle links\n var y0cycle = node.y1;\n var y1cycle = y0cycle;\n\n node.sourceLinks.forEach(function (link) {\n if (link.circular) {\n link.y0 = y0cycle - link.width / 2;\n y0cycle = y0cycle - link.width;\n } else {\n link.y0 = y0 + link.width / 2;\n y0 += link.width;\n }\n });\n node.targetLinks.forEach(function (link) {\n if (link.circular) {\n link.y1 = y1cycle - link.width / 2;\n y1cycle = y1cycle - link.width;\n } else {\n link.y1 = y1 + link.width / 2;\n y1 += link.width;\n }\n });\n });\n }\n\n return sankeyCircular;\n}\n\n/// /////////////////////////////////////////////////////////////////////////////////\n// Cycle functions\n// portion of code to detect circular links based on Colin Fergus' bl.ock https://gist.github.com/cfergus/3956043\n\n// Identify circles in the link objects\nfunction identifyCircles(graph, id, sortNodes) {\n var circularLinkID = 0;\n if (sortNodes === null) {\n\n // Building adjacency graph\n var adjList = [];\n for (var i = 0; i < graph.links.length; i++) {\n var link = graph.links[i];\n var source = link.source.index;\n var target = link.target.index;\n if (!adjList[source]) adjList[source] = [];\n if (!adjList[target]) adjList[target] = [];\n\n // Add links if not already in set\n if (adjList[source].indexOf(target) === -1) adjList[source].push(target);\n }\n\n // Find all elementary circuits\n var cycles = elementary_circuits_directed_graph__WEBPACK_IMPORTED_MODULE_3___default()(adjList);\n\n // Sort by circuits length\n cycles.sort(function (a, b) {\n return a.length - b.length;\n });\n\n var circularLinks = {};\n for (i = 0; i < cycles.length; i++) {\n var cycle = cycles[i];\n var last = cycle.slice(-2);\n if (!circularLinks[last[0]]) circularLinks[last[0]] = {};\n circularLinks[last[0]][last[1]] = true;\n }\n\n graph.links.forEach(function (link) {\n var target = link.target.index;\n var source = link.source.index;\n // If self-linking or a back-edge\n if (target === source || circularLinks[source] && circularLinks[source][target]) {\n link.circular = true;\n link.circularLinkID = circularLinkID;\n circularLinkID = circularLinkID + 1;\n } else {\n link.circular = false;\n }\n });\n } else {\n graph.links.forEach(function (link) {\n if (link.source[sortNodes] < link.target[sortNodes]) {\n link.circular = false;\n } else {\n link.circular = true;\n link.circularLinkID = circularLinkID;\n circularLinkID = circularLinkID + 1;\n }\n });\n }\n}\n\n// Assign a circular link type (top or bottom), based on:\n// - if the source/target node already has circular links, then use the same type\n// - if not, choose the type with fewer links\nfunction selectCircularLinkTypes(graph, id) {\n var numberOfTops = 0;\n var numberOfBottoms = 0;\n graph.links.forEach(function (link) {\n if (link.circular) {\n // if either souce or target has type already use that\n if (link.source.circularLinkType || link.target.circularLinkType) {\n // default to source type if available\n link.circularLinkType = link.source.circularLinkType ? link.source.circularLinkType : link.target.circularLinkType;\n } else {\n link.circularLinkType = numberOfTops < numberOfBottoms ? 'top' : 'bottom';\n }\n\n if (link.circularLinkType == 'top') {\n numberOfTops = numberOfTops + 1;\n } else {\n numberOfBottoms = numberOfBottoms + 1;\n }\n\n graph.nodes.forEach(function (node) {\n if (getNodeID(node, id) == getNodeID(link.source, id) || getNodeID(node, id) == getNodeID(link.target, id)) {\n node.circularLinkType = link.circularLinkType;\n }\n });\n }\n });\n\n //correct self-linking links to be same direction as node\n graph.links.forEach(function (link) {\n if (link.circular) {\n //if both source and target node are same type, then link should have same type\n if (link.source.circularLinkType == link.target.circularLinkType) {\n link.circularLinkType = link.source.circularLinkType;\n }\n //if link is selflinking, then link should have same type as node\n if (selfLinking(link, id)) {\n link.circularLinkType = link.source.circularLinkType;\n }\n }\n });\n}\n\n// Return the angle between a straight line between the source and target of the link, and the vertical plane of the node\nfunction linkAngle(link) {\n var adjacent = Math.abs(link.y1 - link.y0);\n var opposite = Math.abs(link.target.x0 - link.source.x1);\n\n return Math.atan(opposite / adjacent);\n}\n\n// Check if two circular links potentially overlap\nfunction circularLinksCross(link1, link2) {\n if (link1.source.column < link2.target.column) {\n return false;\n } else if (link1.target.column > link2.source.column) {\n return false;\n } else {\n return true;\n }\n}\n\n// Return the number of circular links for node, not including self linking links\nfunction numberOfNonSelfLinkingCycles(node, id) {\n var sourceCount = 0;\n node.sourceLinks.forEach(function (l) {\n sourceCount = l.circular && !selfLinking(l, id) ? sourceCount + 1 : sourceCount;\n });\n\n var targetCount = 0;\n node.targetLinks.forEach(function (l) {\n targetCount = l.circular && !selfLinking(l, id) ? targetCount + 1 : targetCount;\n });\n\n return sourceCount + targetCount;\n}\n\n// Check if a circular link is the only circular link for both its source and target node\nfunction onlyCircularLink(link) {\n var nodeSourceLinks = link.source.sourceLinks;\n var sourceCount = 0;\n nodeSourceLinks.forEach(function (l) {\n sourceCount = l.circular ? sourceCount + 1 : sourceCount;\n });\n\n var nodeTargetLinks = link.target.targetLinks;\n var targetCount = 0;\n nodeTargetLinks.forEach(function (l) {\n targetCount = l.circular ? targetCount + 1 : targetCount;\n });\n\n if (sourceCount > 1 || targetCount > 1) {\n return false;\n } else {\n return true;\n }\n}\n\n// creates vertical buffer values per set of top/bottom links\nfunction calcVerticalBuffer(links, circularLinkGap, id) {\n links.sort(sortLinkColumnAscending);\n links.forEach(function (link, i) {\n var buffer = 0;\n\n if (selfLinking(link, id) && onlyCircularLink(link)) {\n link.circularPathData.verticalBuffer = buffer + link.width / 2;\n } else {\n var j = 0;\n for (j; j < i; j++) {\n if (circularLinksCross(links[i], links[j])) {\n var bufferOverThisLink = links[j].circularPathData.verticalBuffer + links[j].width / 2 + circularLinkGap;\n buffer = bufferOverThisLink > buffer ? bufferOverThisLink : buffer;\n }\n }\n\n link.circularPathData.verticalBuffer = buffer + link.width / 2;\n }\n });\n\n return links;\n}\n\n// calculate the optimum path for a link to reduce overlaps\nfunction addCircularPathData(graph, circularLinkGap, y1, id) {\n //var baseRadius = 10\n var buffer = 5;\n //var verticalMargin = 25\n\n var minY = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* min */ \"d\"])(graph.links, function (link) {\n return link.source.y0;\n });\n\n // create object for circular Path Data\n graph.links.forEach(function (link) {\n if (link.circular) {\n link.circularPathData = {};\n }\n });\n\n // calc vertical offsets per top/bottom links\n var topLinks = graph.links.filter(function (l) {\n return l.circularLinkType == 'top';\n });\n /* topLinks = */calcVerticalBuffer(topLinks, circularLinkGap, id);\n\n var bottomLinks = graph.links.filter(function (l) {\n return l.circularLinkType == 'bottom';\n });\n /* bottomLinks = */calcVerticalBuffer(bottomLinks, circularLinkGap, id);\n\n // add the base data for each link\n graph.links.forEach(function (link) {\n if (link.circular) {\n link.circularPathData.arcRadius = link.width + baseRadius;\n link.circularPathData.leftNodeBuffer = buffer;\n link.circularPathData.rightNodeBuffer = buffer;\n link.circularPathData.sourceWidth = link.source.x1 - link.source.x0;\n link.circularPathData.sourceX = link.source.x0 + link.circularPathData.sourceWidth;\n link.circularPathData.targetX = link.target.x0;\n link.circularPathData.sourceY = link.y0;\n link.circularPathData.targetY = link.y1;\n\n // for self linking paths, and that the only circular link in/out of that node\n if (selfLinking(link, id) && onlyCircularLink(link)) {\n link.circularPathData.leftSmallArcRadius = baseRadius + link.width / 2;\n link.circularPathData.leftLargeArcRadius = baseRadius + link.width / 2;\n link.circularPathData.rightSmallArcRadius = baseRadius + link.width / 2;\n link.circularPathData.rightLargeArcRadius = baseRadius + link.width / 2;\n\n if (link.circularLinkType == 'bottom') {\n link.circularPathData.verticalFullExtent = link.source.y1 + verticalMargin + link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.rightLargeArcRadius;\n } else {\n // top links\n link.circularPathData.verticalFullExtent = link.source.y0 - verticalMargin - link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.rightLargeArcRadius;\n }\n } else {\n // else calculate normally\n // add left extent coordinates, based on links with same source column and circularLink type\n var thisColumn = link.source.column;\n var thisCircularLinkType = link.circularLinkType;\n var sameColumnLinks = graph.links.filter(function (l) {\n return l.source.column == thisColumn && l.circularLinkType == thisCircularLinkType;\n });\n\n if (link.circularLinkType == 'bottom') {\n sameColumnLinks.sort(sortLinkSourceYDescending);\n } else {\n sameColumnLinks.sort(sortLinkSourceYAscending);\n }\n\n var radiusOffset = 0;\n sameColumnLinks.forEach(function (l, i) {\n if (l.circularLinkID == link.circularLinkID) {\n link.circularPathData.leftSmallArcRadius = baseRadius + link.width / 2 + radiusOffset;\n link.circularPathData.leftLargeArcRadius = baseRadius + link.width / 2 + i * circularLinkGap + radiusOffset;\n }\n radiusOffset = radiusOffset + l.width;\n });\n\n // add right extent coordinates, based on links with same target column and circularLink type\n thisColumn = link.target.column;\n sameColumnLinks = graph.links.filter(function (l) {\n return l.target.column == thisColumn && l.circularLinkType == thisCircularLinkType;\n });\n if (link.circularLinkType == 'bottom') {\n sameColumnLinks.sort(sortLinkTargetYDescending);\n } else {\n sameColumnLinks.sort(sortLinkTargetYAscending);\n }\n\n radiusOffset = 0;\n sameColumnLinks.forEach(function (l, i) {\n if (l.circularLinkID == link.circularLinkID) {\n link.circularPathData.rightSmallArcRadius = baseRadius + link.width / 2 + radiusOffset;\n link.circularPathData.rightLargeArcRadius = baseRadius + link.width / 2 + i * circularLinkGap + radiusOffset;\n }\n radiusOffset = radiusOffset + l.width;\n });\n\n // bottom links\n if (link.circularLinkType == 'bottom') {\n link.circularPathData.verticalFullExtent = Math.max(y1, link.source.y1, link.target.y1) + verticalMargin + link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.rightLargeArcRadius;\n } else {\n // top links\n link.circularPathData.verticalFullExtent = minY - verticalMargin - link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.rightLargeArcRadius;\n }\n }\n\n // all links\n link.circularPathData.leftInnerExtent = link.circularPathData.sourceX + link.circularPathData.leftNodeBuffer;\n link.circularPathData.rightInnerExtent = link.circularPathData.targetX - link.circularPathData.rightNodeBuffer;\n link.circularPathData.leftFullExtent = link.circularPathData.sourceX + link.circularPathData.leftLargeArcRadius + link.circularPathData.leftNodeBuffer;\n link.circularPathData.rightFullExtent = link.circularPathData.targetX - link.circularPathData.rightLargeArcRadius - link.circularPathData.rightNodeBuffer;\n }\n\n if (link.circular) {\n link.path = createCircularPathString(link);\n } else {\n var normalPath = Object(d3_shape__WEBPACK_IMPORTED_MODULE_2__[/* linkHorizontal */ \"a\"])().source(function (d) {\n var x = d.source.x0 + (d.source.x1 - d.source.x0);\n var y = d.y0;\n return [x, y];\n }).target(function (d) {\n var x = d.target.x0;\n var y = d.y1;\n return [x, y];\n });\n link.path = normalPath(link);\n }\n });\n}\n\n// create a d path using the addCircularPathData\nfunction createCircularPathString(link) {\n var pathString = '';\n // 'pathData' is assigned a value but never used\n // var pathData = {}\n\n if (link.circularLinkType == 'top') {\n pathString =\n // start at the right of the source node\n 'M' + link.circularPathData.sourceX + ' ' + link.circularPathData.sourceY + ' ' +\n // line right to buffer point\n 'L' + link.circularPathData.leftInnerExtent + ' ' + link.circularPathData.sourceY + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.leftLargeArcRadius + ' ' + link.circularPathData.leftSmallArcRadius + ' 0 0 0 ' +\n // End of arc X //End of arc Y\n link.circularPathData.leftFullExtent + ' ' + (link.circularPathData.sourceY - link.circularPathData.leftSmallArcRadius) + ' ' + // End of arc X\n // line up to buffer point\n 'L' + link.circularPathData.leftFullExtent + ' ' + link.circularPathData.verticalLeftInnerExtent + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.leftLargeArcRadius + ' ' + link.circularPathData.leftLargeArcRadius + ' 0 0 0 ' +\n // End of arc X //End of arc Y\n link.circularPathData.leftInnerExtent + ' ' + link.circularPathData.verticalFullExtent + ' ' + // End of arc X\n // line left to buffer point\n 'L' + link.circularPathData.rightInnerExtent + ' ' + link.circularPathData.verticalFullExtent + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.rightLargeArcRadius + ' ' + link.circularPathData.rightLargeArcRadius + ' 0 0 0 ' +\n // End of arc X //End of arc Y\n link.circularPathData.rightFullExtent + ' ' + link.circularPathData.verticalRightInnerExtent + ' ' + // End of arc X\n // line down\n 'L' + link.circularPathData.rightFullExtent + ' ' + (link.circularPathData.targetY - link.circularPathData.rightSmallArcRadius) + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.rightLargeArcRadius + ' ' + link.circularPathData.rightSmallArcRadius + ' 0 0 0 ' +\n // End of arc X //End of arc Y\n link.circularPathData.rightInnerExtent + ' ' + link.circularPathData.targetY + ' ' + // End of arc X\n // line to end\n 'L' + link.circularPathData.targetX + ' ' + link.circularPathData.targetY;\n } else {\n // bottom path\n pathString =\n // start at the right of the source node\n 'M' + link.circularPathData.sourceX + ' ' + link.circularPathData.sourceY + ' ' +\n // line right to buffer point\n 'L' + link.circularPathData.leftInnerExtent + ' ' + link.circularPathData.sourceY + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.leftLargeArcRadius + ' ' + link.circularPathData.leftSmallArcRadius + ' 0 0 1 ' +\n // End of arc X //End of arc Y\n link.circularPathData.leftFullExtent + ' ' + (link.circularPathData.sourceY + link.circularPathData.leftSmallArcRadius) + ' ' + // End of arc X\n // line down to buffer point\n 'L' + link.circularPathData.leftFullExtent + ' ' + link.circularPathData.verticalLeftInnerExtent + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.leftLargeArcRadius + ' ' + link.circularPathData.leftLargeArcRadius + ' 0 0 1 ' +\n // End of arc X //End of arc Y\n link.circularPathData.leftInnerExtent + ' ' + link.circularPathData.verticalFullExtent + ' ' + // End of arc X\n // line left to buffer point\n 'L' + link.circularPathData.rightInnerExtent + ' ' + link.circularPathData.verticalFullExtent + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.rightLargeArcRadius + ' ' + link.circularPathData.rightLargeArcRadius + ' 0 0 1 ' +\n // End of arc X //End of arc Y\n link.circularPathData.rightFullExtent + ' ' + link.circularPathData.verticalRightInnerExtent + ' ' + // End of arc X\n // line up\n 'L' + link.circularPathData.rightFullExtent + ' ' + (link.circularPathData.targetY + link.circularPathData.rightSmallArcRadius) + ' ' +\n // Arc around: Centre of arc X and //Centre of arc Y\n 'A' + link.circularPathData.rightLargeArcRadius + ' ' + link.circularPathData.rightSmallArcRadius + ' 0 0 1 ' +\n // End of arc X //End of arc Y\n link.circularPathData.rightInnerExtent + ' ' + link.circularPathData.targetY + ' ' + // End of arc X\n // line to end\n 'L' + link.circularPathData.targetX + ' ' + link.circularPathData.targetY;\n }\n\n return pathString;\n}\n\n// sort links based on the distance between the source and tartget node columns\n// if the same, then use Y position of the source node\nfunction sortLinkColumnAscending(link1, link2) {\n if (linkColumnDistance(link1) == linkColumnDistance(link2)) {\n return link1.circularLinkType == 'bottom' ? sortLinkSourceYDescending(link1, link2) : sortLinkSourceYAscending(link1, link2);\n } else {\n return linkColumnDistance(link2) - linkColumnDistance(link1);\n }\n}\n\n// sort ascending links by their source vertical position, y0\nfunction sortLinkSourceYAscending(link1, link2) {\n return link1.y0 - link2.y0;\n}\n\n// sort descending links by their source vertical position, y0\nfunction sortLinkSourceYDescending(link1, link2) {\n return link2.y0 - link1.y0;\n}\n\n// sort ascending links by their target vertical position, y1\nfunction sortLinkTargetYAscending(link1, link2) {\n return link1.y1 - link2.y1;\n}\n\n// sort descending links by their target vertical position, y1\nfunction sortLinkTargetYDescending(link1, link2) {\n return link2.y1 - link1.y1;\n}\n\n// return the distance between the link's target and source node, in terms of the nodes' column\nfunction linkColumnDistance(link) {\n return link.target.column - link.source.column;\n}\n\n// return the distance between the link's target and source node, in terms of the nodes' X coordinate\nfunction linkXLength(link) {\n return link.target.x0 - link.source.x1;\n}\n\n// Return the Y coordinate on the longerLink path * which is perpendicular shorterLink's source.\n// * approx, based on a straight line from target to source, when in fact the path is a bezier\nfunction linkPerpendicularYToLinkSource(longerLink, shorterLink) {\n // get the angle for the longer link\n var angle = linkAngle(longerLink);\n\n // get the adjacent length to the other link's x position\n var heightFromY1ToPependicular = linkXLength(shorterLink) / Math.tan(angle);\n\n // add or subtract from longer link1's original y1, depending on the slope\n var yPerpendicular = incline(longerLink) == 'up' ? longerLink.y1 + heightFromY1ToPependicular : longerLink.y1 - heightFromY1ToPependicular;\n\n return yPerpendicular;\n}\n\n// Return the Y coordinate on the longerLink path * which is perpendicular shorterLink's source.\n// * approx, based on a straight line from target to source, when in fact the path is a bezier\nfunction linkPerpendicularYToLinkTarget(longerLink, shorterLink) {\n // get the angle for the longer link\n var angle = linkAngle(longerLink);\n\n // get the adjacent length to the other link's x position\n var heightFromY1ToPependicular = linkXLength(shorterLink) / Math.tan(angle);\n\n // add or subtract from longer link's original y1, depending on the slope\n var yPerpendicular = incline(longerLink) == 'up' ? longerLink.y1 - heightFromY1ToPependicular : longerLink.y1 + heightFromY1ToPependicular;\n\n return yPerpendicular;\n}\n\n// Move any nodes that overlap links which span 2+ columns\nfunction resolveNodeLinkOverlaps(graph, y0, y1, id) {\n\n graph.links.forEach(function (link) {\n if (link.circular) {\n return;\n }\n\n if (link.target.column - link.source.column > 1) {\n var columnToTest = link.source.column + 1;\n var maxColumnToTest = link.target.column - 1;\n\n var i = 1;\n var numberOfColumnsToTest = maxColumnToTest - columnToTest + 1;\n\n for (i = 1; columnToTest <= maxColumnToTest; columnToTest++, i++) {\n graph.nodes.forEach(function (node) {\n if (node.column == columnToTest) {\n var t = i / (numberOfColumnsToTest + 1);\n\n // Find all the points of a cubic bezier curve in javascript\n // https://stackoverflow.com/questions/15397596/find-all-the-points-of-a-cubic-bezier-curve-in-javascript\n\n var B0_t = Math.pow(1 - t, 3);\n var B1_t = 3 * t * Math.pow(1 - t, 2);\n var B2_t = 3 * Math.pow(t, 2) * (1 - t);\n var B3_t = Math.pow(t, 3);\n\n var py_t = B0_t * link.y0 + B1_t * link.y0 + B2_t * link.y1 + B3_t * link.y1;\n\n var linkY0AtColumn = py_t - link.width / 2;\n var linkY1AtColumn = py_t + link.width / 2;\n var dy;\n\n // If top of link overlaps node, push node up\n if (linkY0AtColumn > node.y0 && linkY0AtColumn < node.y1) {\n\n dy = node.y1 - linkY0AtColumn + 10;\n dy = node.circularLinkType == 'bottom' ? dy : -dy;\n\n node = adjustNodeHeight(node, dy, y0, y1);\n\n // check if other nodes need to move up too\n graph.nodes.forEach(function (otherNode) {\n // don't need to check itself or nodes at different columns\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (nodesOverlap(node, otherNode)) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n } else if (linkY1AtColumn > node.y0 && linkY1AtColumn < node.y1) {\n // If bottom of link overlaps node, push node down\n dy = linkY1AtColumn - node.y0 + 10;\n\n node = adjustNodeHeight(node, dy, y0, y1);\n\n // check if other nodes need to move down too\n graph.nodes.forEach(function (otherNode) {\n // don't need to check itself or nodes at different columns\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (otherNode.y0 < node.y1 && otherNode.y1 > node.y1) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n } else if (linkY0AtColumn < node.y0 && linkY1AtColumn > node.y1) {\n // if link completely overlaps node\n dy = linkY1AtColumn - node.y0 + 10;\n\n node = adjustNodeHeight(node, dy, y0, y1);\n\n graph.nodes.forEach(function (otherNode) {\n // don't need to check itself or nodes at different columns\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (otherNode.y0 < node.y1 && otherNode.y1 > node.y1) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n }\n }\n });\n }\n }\n });\n}\n\n// check if two nodes overlap\nfunction nodesOverlap(nodeA, nodeB) {\n // test if nodeA top partially overlaps nodeB\n if (nodeA.y0 > nodeB.y0 && nodeA.y0 < nodeB.y1) {\n return true;\n } else if (nodeA.y1 > nodeB.y0 && nodeA.y1 < nodeB.y1) {\n // test if nodeA bottom partially overlaps nodeB\n return true;\n } else if (nodeA.y0 < nodeB.y0 && nodeA.y1 > nodeB.y1) {\n // test if nodeA covers nodeB\n return true;\n } else {\n return false;\n }\n}\n\n// update a node, and its associated links, vertical positions (y0, y1)\nfunction adjustNodeHeight(node, dy, sankeyY0, sankeyY1) {\n if (node.y0 + dy >= sankeyY0 && node.y1 + dy <= sankeyY1) {\n node.y0 = node.y0 + dy;\n node.y1 = node.y1 + dy;\n\n node.targetLinks.forEach(function (l) {\n l.y1 = l.y1 + dy;\n });\n\n node.sourceLinks.forEach(function (l) {\n l.y0 = l.y0 + dy;\n });\n }\n return node;\n}\n\n// sort and set the links' y0 for each node\nfunction sortSourceLinks(graph, y1, id, moveNodes) {\n graph.nodes.forEach(function (node) {\n // move any nodes up which are off the bottom\n if (moveNodes && node.y + (node.y1 - node.y0) > y1) {\n node.y = node.y - (node.y + (node.y1 - node.y0) - y1);\n }\n\n var nodesSourceLinks = graph.links.filter(function (l) {\n return getNodeID(l.source, id) == getNodeID(node, id);\n });\n\n var nodeSourceLinksLength = nodesSourceLinks.length;\n\n // if more than 1 link then sort\n if (nodeSourceLinksLength > 1) {\n nodesSourceLinks.sort(function (link1, link2) {\n // if both are not circular...\n if (!link1.circular && !link2.circular) {\n // if the target nodes are the same column, then sort by the link's target y\n if (link1.target.column == link2.target.column) {\n return link1.y1 - link2.y1;\n } else if (!sameInclines(link1, link2)) {\n // if the links slope in different directions, then sort by the link's target y\n return link1.y1 - link2.y1;\n\n // if the links slope in same directions, then sort by any overlap\n } else {\n if (link1.target.column > link2.target.column) {\n var link2Adj = linkPerpendicularYToLinkTarget(link2, link1);\n return link1.y1 - link2Adj;\n }\n if (link2.target.column > link1.target.column) {\n var link1Adj = linkPerpendicularYToLinkTarget(link1, link2);\n return link1Adj - link2.y1;\n }\n }\n }\n\n // if only one is circular, the move top links up, or bottom links down\n if (link1.circular && !link2.circular) {\n return link1.circularLinkType == 'top' ? -1 : 1;\n } else if (link2.circular && !link1.circular) {\n return link2.circularLinkType == 'top' ? 1 : -1;\n }\n\n // if both links are circular...\n if (link1.circular && link2.circular) {\n // ...and they both loop the same way (both top)\n if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == 'top') {\n // ...and they both connect to a target with same column, then sort by the target's y\n if (link1.target.column === link2.target.column) {\n return link1.target.y1 - link2.target.y1;\n } else {\n // ...and they connect to different column targets, then sort by how far back they\n return link2.target.column - link1.target.column;\n }\n } else if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == 'bottom') {\n // ...and they both loop the same way (both bottom)\n // ...and they both connect to a target with same column, then sort by the target's y\n if (link1.target.column === link2.target.column) {\n return link2.target.y1 - link1.target.y1;\n } else {\n // ...and they connect to different column targets, then sort by how far back they\n return link1.target.column - link2.target.column;\n }\n } else {\n // ...and they loop around different ways, the move top up and bottom down\n return link1.circularLinkType == 'top' ? -1 : 1;\n }\n }\n });\n }\n\n // update y0 for links\n var ySourceOffset = node.y0;\n\n nodesSourceLinks.forEach(function (link) {\n link.y0 = ySourceOffset + link.width / 2;\n ySourceOffset = ySourceOffset + link.width;\n });\n\n // correct any circular bottom links so they are at the bottom of the node\n nodesSourceLinks.forEach(function (link, i) {\n if (link.circularLinkType == 'bottom') {\n var j = i + 1;\n var offsetFromBottom = 0;\n // sum the widths of any links that are below this link\n for (j; j < nodeSourceLinksLength; j++) {\n offsetFromBottom = offsetFromBottom + nodesSourceLinks[j].width;\n }\n link.y0 = node.y1 - offsetFromBottom - link.width / 2;\n }\n });\n });\n}\n\n// sort and set the links' y1 for each node\nfunction sortTargetLinks(graph, y1, id) {\n graph.nodes.forEach(function (node) {\n var nodesTargetLinks = graph.links.filter(function (l) {\n return getNodeID(l.target, id) == getNodeID(node, id);\n });\n\n var nodesTargetLinksLength = nodesTargetLinks.length;\n\n if (nodesTargetLinksLength > 1) {\n nodesTargetLinks.sort(function (link1, link2) {\n // if both are not circular, the base on the source y position\n if (!link1.circular && !link2.circular) {\n if (link1.source.column == link2.source.column) {\n return link1.y0 - link2.y0;\n } else if (!sameInclines(link1, link2)) {\n return link1.y0 - link2.y0;\n } else {\n // get the angle of the link to the further source node (ie the smaller column)\n if (link2.source.column < link1.source.column) {\n var link2Adj = linkPerpendicularYToLinkSource(link2, link1);\n\n return link1.y0 - link2Adj;\n }\n if (link1.source.column < link2.source.column) {\n var link1Adj = linkPerpendicularYToLinkSource(link1, link2);\n\n return link1Adj - link2.y0;\n }\n }\n }\n\n // if only one is circular, the move top links up, or bottom links down\n if (link1.circular && !link2.circular) {\n return link1.circularLinkType == 'top' ? -1 : 1;\n } else if (link2.circular && !link1.circular) {\n return link2.circularLinkType == 'top' ? 1 : -1;\n }\n\n // if both links are circular...\n if (link1.circular && link2.circular) {\n // ...and they both loop the same way (both top)\n if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == 'top') {\n // ...and they both connect to a target with same column, then sort by the target's y\n if (link1.source.column === link2.source.column) {\n return link1.source.y1 - link2.source.y1;\n } else {\n // ...and they connect to different column targets, then sort by how far back they\n return link1.source.column - link2.source.column;\n }\n } else if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == 'bottom') {\n // ...and they both loop the same way (both bottom)\n // ...and they both connect to a target with same column, then sort by the target's y\n if (link1.source.column === link2.source.column) {\n return link1.source.y1 - link2.source.y1;\n } else {\n // ...and they connect to different column targets, then sort by how far back they\n return link2.source.column - link1.source.column;\n }\n } else {\n // ...and they loop around different ways, the move top up and bottom down\n return link1.circularLinkType == 'top' ? -1 : 1;\n }\n }\n });\n }\n\n // update y1 for links\n var yTargetOffset = node.y0;\n\n nodesTargetLinks.forEach(function (link) {\n link.y1 = yTargetOffset + link.width / 2;\n yTargetOffset = yTargetOffset + link.width;\n });\n\n // correct any circular bottom links so they are at the bottom of the node\n nodesTargetLinks.forEach(function (link, i) {\n if (link.circularLinkType == 'bottom') {\n var j = i + 1;\n var offsetFromBottom = 0;\n // sum the widths of any links that are below this link\n for (j; j < nodesTargetLinksLength; j++) {\n offsetFromBottom = offsetFromBottom + nodesTargetLinks[j].width;\n }\n link.y1 = node.y1 - offsetFromBottom - link.width / 2;\n }\n });\n });\n}\n\n// test if links both slope up, or both slope down\nfunction sameInclines(link1, link2) {\n return incline(link1) == incline(link2);\n}\n\n// returns the slope of a link, from source to target\n// up => slopes up from source to target\n// down => slopes down from source to target\nfunction incline(link) {\n return link.y0 - link.y1 > 0 ? 'up' : 'down';\n}\n\n// check if link is self linking, ie links a node to the same node\nfunction selfLinking(link, id) {\n return getNodeID(link.source, id) == getNodeID(link.target, id);\n}\n\nfunction fillHeight(graph, y0, y1) {\n\n var nodes = graph.nodes;\n var links = graph.links;\n\n var top = false;\n var bottom = false;\n\n links.forEach(function (link) {\n if (link.circularLinkType == \"top\") {\n top = true;\n } else if (link.circularLinkType == \"bottom\") {\n bottom = true;\n }\n });\n\n if (top == false || bottom == false) {\n var minY0 = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* min */ \"d\"])(nodes, function (node) {\n return node.y0;\n });\n var maxY1 = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[/* max */ \"b\"])(nodes, function (node) {\n return node.y1;\n });\n var currentHeight = maxY1 - minY0;\n var chartHeight = y1 - y0;\n var ratio = chartHeight / currentHeight;\n\n nodes.forEach(function (node) {\n var nodeHeight = (node.y1 - node.y0) * ratio;\n node.y0 = (node.y0 - minY0) * ratio;\n node.y1 = node.y0 + nodeHeight;\n });\n\n links.forEach(function (link) {\n link.y0 = (link.y0 - minY0) * ratio;\n link.y1 = (link.y1 - minY0) * ratio;\n link.width = link.width * ratio;\n });\n }\n}\n\n\n\n\n/***/ }),\n\n/***/ \"2e3d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\n// ASCEND: chop off the last nesting level - either [] or . - to ascend\n// the attribute tree. the remaining attrString is in match[1]\nvar ASCEND = /^(.*)(\\.[^\\.\\[\\]]+|\\[\\d\\])$/;\n\n// SIMPLEATTR: is this an un-nested attribute? (no dots or brackets)\nvar SIMPLEATTR = /^[^\\.\\[\\]]+$/;\n\n/*\n * calculate a relative attribute string, similar to a relative path\n *\n * @param {string} baseAttr:\n * an attribute string, such as 'annotations[3].x'. The \"current location\"\n * is the attribute string minus the last component ('annotations[3]')\n * @param {string} relativeAttr:\n * a route to the desired attribute string, using '^' to ascend\n *\n * @return {string} attrString:\n * for example:\n * relativeAttr('annotations[3].x', 'y') = 'annotations[3].y'\n * relativeAttr('annotations[3].x', '^[2].z') = 'annotations[2].z'\n * relativeAttr('annotations[3].x', '^^margin') = 'margin'\n * relativeAttr('annotations[3].x', '^^margin.r') = 'margin.r'\n */\nmodule.exports = function(baseAttr, relativeAttr) {\n while(relativeAttr) {\n var match = baseAttr.match(ASCEND);\n\n if(match) baseAttr = match[1];\n else if(baseAttr.match(SIMPLEATTR)) baseAttr = '';\n else throw new Error('bad relativeAttr call:' + [baseAttr, relativeAttr]);\n\n if(relativeAttr.charAt(0) === '^') relativeAttr = relativeAttr.slice(1);\n else break;\n }\n\n if(baseAttr && relativeAttr.charAt(0) !== '[') {\n return baseAttr + '.' + relativeAttr;\n }\n return baseAttr + relativeAttr;\n};\n\n\n/***/ }),\n\n/***/ \"2e46\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction compileSearch(funcName, predicate, reversed, extraArgs, useNdarray, earlyOut) {\n var code = [\n \"function \", funcName, \"(a,l,h,\", extraArgs.join(\",\"), \"){\",\nearlyOut ? \"\" : \"var i=\", (reversed ? \"l-1\" : \"h+1\"),\n\";while(l<=h){\\\nvar m=(l+h)>>>1,x=a\", useNdarray ? \".get(m)\" : \"[m]\"]\n if(earlyOut) {\n if(predicate.indexOf(\"c\") < 0) {\n code.push(\";if(x===y){return m}else if(x<=y){\")\n } else {\n code.push(\";var p=c(x,y);if(p===0){return m}else if(p<=0){\")\n }\n } else {\n code.push(\";if(\", predicate, \"){i=m;\")\n }\n if(reversed) {\n code.push(\"l=m+1}else{h=m-1}\")\n } else {\n code.push(\"h=m-1}else{l=m+1}\")\n }\n code.push(\"}\")\n if(earlyOut) {\n code.push(\"return -1};\")\n } else {\n code.push(\"return i};\")\n }\n return code.join(\"\")\n}\n\nfunction compileBoundsSearch(predicate, reversed, suffix, earlyOut) {\n var result = new Function([\n compileSearch(\"A\", \"x\" + predicate + \"y\", reversed, [\"y\"], false, earlyOut),\n compileSearch(\"B\", \"x\" + predicate + \"y\", reversed, [\"y\"], true, earlyOut),\n compileSearch(\"P\", \"c(x,y)\" + predicate + \"0\", reversed, [\"y\", \"c\"], false, earlyOut),\n compileSearch(\"Q\", \"c(x,y)\" + predicate + \"0\", reversed, [\"y\", \"c\"], true, earlyOut),\n\"function dispatchBsearch\", suffix, \"(a,y,c,l,h){\\\nif(a.shape){\\\nif(typeof(c)==='function'){\\\nreturn Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)\\\n}else{\\\nreturn B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)\\\n}}else{\\\nif(typeof(c)==='function'){\\\nreturn P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)\\\n}else{\\\nreturn A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)\\\n}}}\\\nreturn dispatchBsearch\", suffix].join(\"\"))\n return result()\n}\n\nmodule.exports = {\n ge: compileBoundsSearch(\">=\", false, \"GE\"),\n gt: compileBoundsSearch(\">\", false, \"GT\"),\n lt: compileBoundsSearch(\"<\", true, \"LT\"),\n le: compileBoundsSearch(\"<=\", true, \"LE\"),\n eq: compileBoundsSearch(\"-\", true, \"EQ\", true)\n}\n\n\n/***/ }),\n\n/***/ \"2ee6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isTypedArray = __webpack_require__(\"fc26\").isTypedArray;\n\nexports.convertTypedArray = function(a) {\n return isTypedArray(a) ? Array.prototype.slice.call(a) : a;\n};\n\nexports.isOrdinal = function(dimension) {\n return !!dimension.tickvals;\n};\n\nexports.isVisible = function(dimension) {\n return dimension.visible || !('visible' in dimension);\n};\n\n\n/***/ }),\n\n/***/ \"2f03\":\n/***/ (function(module, exports) {\n\n// Copyright (C) 2011 Google Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * @fileoverview Install a leaky WeakMap emulation on platforms that\n * don't provide a built-in one.\n *\n *

Assumes that an ES5 platform where, if {@code WeakMap} is\n * already present, then it conforms to the anticipated ES6\n * specification. To run this file on an ES5 or almost ES5\n * implementation where the {@code WeakMap} specification does not\n * quite conform, run repairES5.js first.\n *\n *

Even though WeakMapModule is not global, the linter thinks it\n * is, which is why it is in the overrides list below.\n *\n *

NOTE: Before using this WeakMap emulation in a non-SES\n * environment, see the note below about hiddenRecord.\n *\n * @author Mark S. Miller\n * @requires crypto, ArrayBuffer, Uint8Array, navigator, console\n * @overrides WeakMap, ses, Proxy\n * @overrides WeakMapModule\n */\n\n/**\n * This {@code WeakMap} emulation is observably equivalent to the\n * ES-Harmony WeakMap, but with leakier garbage collection properties.\n *\n *

As with true WeakMaps, in this emulation, a key does not\n * retain maps indexed by that key and (crucially) a map does not\n * retain the keys it indexes. A map by itself also does not retain\n * the values associated with that map.\n *\n *

However, the values associated with a key in some map are\n * retained so long as that key is retained and those associations are\n * not overridden. For example, when used to support membranes, all\n * values exported from a given membrane will live for the lifetime\n * they would have had in the absence of an interposed membrane. Even\n * when the membrane is revoked, all objects that would have been\n * reachable in the absence of revocation will still be reachable, as\n * far as the GC can tell, even though they will no longer be relevant\n * to ongoing computation.\n *\n *

The API implemented here is approximately the API as implemented\n * in FF6.0a1 and agreed to by MarkM, Andreas Gal, and Dave Herman,\n * rather than the offially approved proposal page. TODO(erights):\n * upgrade the ecmascript WeakMap proposal page to explain this API\n * change and present to EcmaScript committee for their approval.\n *\n *

The first difference between the emulation here and that in\n * FF6.0a1 is the presence of non enumerable {@code get___, has___,\n * set___, and delete___} methods on WeakMap instances to represent\n * what would be the hidden internal properties of a primitive\n * implementation. Whereas the FF6.0a1 WeakMap.prototype methods\n * require their {@code this} to be a genuine WeakMap instance (i.e.,\n * an object of {@code [[Class]]} \"WeakMap}), since there is nothing\n * unforgeable about the pseudo-internal method names used here,\n * nothing prevents these emulated prototype methods from being\n * applied to non-WeakMaps with pseudo-internal methods of the same\n * names.\n *\n *

Another difference is that our emulated {@code\n * WeakMap.prototype} is not itself a WeakMap. A problem with the\n * current FF6.0a1 API is that WeakMap.prototype is itself a WeakMap\n * providing ambient mutability and an ambient communications\n * channel. Thus, if a WeakMap is already present and has this\n * problem, repairES5.js wraps it in a safe wrappper in order to\n * prevent access to this channel. (See\n * PATCH_MUTABLE_FROZEN_WEAKMAP_PROTO in repairES5.js).\n */\n\n/**\n * If this is a full secureable ES5 platform and the ES-Harmony {@code WeakMap} is\n * absent, install an approximate emulation.\n *\n *

If WeakMap is present but cannot store some objects, use our approximate\n * emulation as a wrapper.\n *\n *

If this is almost a secureable ES5 platform, then WeakMap.js\n * should be run after repairES5.js.\n *\n *

See {@code WeakMap} for documentation of the garbage collection\n * properties of this WeakMap emulation.\n */\n(function WeakMapModule() {\n \"use strict\";\n\n if (typeof ses !== 'undefined' && ses.ok && !ses.ok()) {\n // already too broken, so give up\n return;\n }\n\n /**\n * In some cases (current Firefox), we must make a choice betweeen a\n * WeakMap which is capable of using all varieties of host objects as\n * keys and one which is capable of safely using proxies as keys. See\n * comments below about HostWeakMap and DoubleWeakMap for details.\n *\n * This function (which is a global, not exposed to guests) marks a\n * WeakMap as permitted to do what is necessary to index all host\n * objects, at the cost of making it unsafe for proxies.\n *\n * Do not apply this function to anything which is not a genuine\n * fresh WeakMap.\n */\n function weakMapPermitHostObjects(map) {\n // identity of function used as a secret -- good enough and cheap\n if (map.permitHostObjects___) {\n map.permitHostObjects___(weakMapPermitHostObjects);\n }\n }\n if (typeof ses !== 'undefined') {\n ses.weakMapPermitHostObjects = weakMapPermitHostObjects;\n }\n\n // IE 11 has no Proxy but has a broken WeakMap such that we need to patch\n // it using DoubleWeakMap; this flag tells DoubleWeakMap so.\n var doubleWeakMapCheckSilentFailure = false;\n\n // Check if there is already a good-enough WeakMap implementation, and if so\n // exit without replacing it.\n if (typeof WeakMap === 'function') {\n var HostWeakMap = WeakMap;\n // There is a WeakMap -- is it good enough?\n if (typeof navigator !== 'undefined' &&\n /Firefox/.test(navigator.userAgent)) {\n // We're now *assuming not*, because as of this writing (2013-05-06)\n // Firefox's WeakMaps have a miscellany of objects they won't accept, and\n // we don't want to make an exhaustive list, and testing for just one\n // will be a problem if that one is fixed alone (as they did for Event).\n\n // If there is a platform that we *can* reliably test on, here's how to\n // do it:\n // var problematic = ... ;\n // var testHostMap = new HostWeakMap();\n // try {\n // testHostMap.set(problematic, 1); // Firefox 20 will throw here\n // if (testHostMap.get(problematic) === 1) {\n // return;\n // }\n // } catch (e) {}\n\n } else {\n // IE 11 bug: WeakMaps silently fail to store frozen objects.\n var testMap = new HostWeakMap();\n var testObject = Object.freeze({});\n testMap.set(testObject, 1);\n if (testMap.get(testObject) !== 1) {\n doubleWeakMapCheckSilentFailure = true;\n // Fall through to installing our WeakMap.\n } else {\n module.exports = WeakMap;\n return;\n }\n }\n }\n\n var hop = Object.prototype.hasOwnProperty;\n var gopn = Object.getOwnPropertyNames;\n var defProp = Object.defineProperty;\n var isExtensible = Object.isExtensible;\n\n /**\n * Security depends on HIDDEN_NAME being both unguessable and\n * undiscoverable by untrusted code.\n *\n *

Given the known weaknesses of Math.random() on existing\n * browsers, it does not generate unguessability we can be confident\n * of.\n *\n *

It is the monkey patching logic in this file that is intended\n * to ensure undiscoverability. The basic idea is that there are\n * three fundamental means of discovering properties of an object:\n * The for/in loop, Object.keys(), and Object.getOwnPropertyNames(),\n * as well as some proposed ES6 extensions that appear on our\n * whitelist. The first two only discover enumerable properties, and\n * we only use HIDDEN_NAME to name a non-enumerable property, so the\n * only remaining threat should be getOwnPropertyNames and some\n * proposed ES6 extensions that appear on our whitelist. We monkey\n * patch them to remove HIDDEN_NAME from the list of properties they\n * returns.\n *\n *

TODO(erights): On a platform with built-in Proxies, proxies\n * could be used to trap and thereby discover the HIDDEN_NAME, so we\n * need to monkey patch Proxy.create, Proxy.createFunction, etc, in\n * order to wrap the provided handler with the real handler which\n * filters out all traps using HIDDEN_NAME.\n *\n *

TODO(erights): Revisit Mike Stay's suggestion that we use an\n * encapsulated function at a not-necessarily-secret name, which\n * uses the Stiegler shared-state rights amplification pattern to\n * reveal the associated value only to the WeakMap in which this key\n * is associated with that value. Since only the key retains the\n * function, the function can also remember the key without causing\n * leakage of the key, so this doesn't violate our general gc\n * goals. In addition, because the name need not be a guarded\n * secret, we could efficiently handle cross-frame frozen keys.\n */\n var HIDDEN_NAME_PREFIX = 'weakmap:';\n var HIDDEN_NAME = HIDDEN_NAME_PREFIX + 'ident:' + Math.random() + '___';\n\n if (typeof crypto !== 'undefined' &&\n typeof crypto.getRandomValues === 'function' &&\n typeof ArrayBuffer === 'function' &&\n typeof Uint8Array === 'function') {\n var ab = new ArrayBuffer(25);\n var u8s = new Uint8Array(ab);\n crypto.getRandomValues(u8s);\n HIDDEN_NAME = HIDDEN_NAME_PREFIX + 'rand:' +\n Array.prototype.map.call(u8s, function(u8) {\n return (u8 % 36).toString(36);\n }).join('') + '___';\n }\n\n function isNotHiddenName(name) {\n return !(\n name.substr(0, HIDDEN_NAME_PREFIX.length) == HIDDEN_NAME_PREFIX &&\n name.substr(name.length - 3) === '___');\n }\n\n /**\n * Monkey patch getOwnPropertyNames to avoid revealing the\n * HIDDEN_NAME.\n *\n *

The ES5.1 spec requires each name to appear only once, but as\n * of this writing, this requirement is controversial for ES6, so we\n * made this code robust against this case. If the resulting extra\n * search turns out to be expensive, we can probably relax this once\n * ES6 is adequately supported on all major browsers, iff no browser\n * versions we support at that time have relaxed this constraint\n * without providing built-in ES6 WeakMaps.\n */\n defProp(Object, 'getOwnPropertyNames', {\n value: function fakeGetOwnPropertyNames(obj) {\n return gopn(obj).filter(isNotHiddenName);\n }\n });\n\n /**\n * getPropertyNames is not in ES5 but it is proposed for ES6 and\n * does appear in our whitelist, so we need to clean it too.\n */\n if ('getPropertyNames' in Object) {\n var originalGetPropertyNames = Object.getPropertyNames;\n defProp(Object, 'getPropertyNames', {\n value: function fakeGetPropertyNames(obj) {\n return originalGetPropertyNames(obj).filter(isNotHiddenName);\n }\n });\n }\n\n /**\n *

To treat objects as identity-keys with reasonable efficiency\n * on ES5 by itself (i.e., without any object-keyed collections), we\n * need to add a hidden property to such key objects when we\n * can. This raises several issues:\n *

    \n *
  • Arranging to add this property to objects before we lose the\n * chance, and\n *
  • Hiding the existence of this new property from most\n * JavaScript code.\n *
  • Preventing certification theft, where one object is\n * created falsely claiming to be the key of an association\n * actually keyed by another object.\n *
  • Preventing value theft, where untrusted code with\n * access to a key object but not a weak map nevertheless\n * obtains access to the value associated with that key in that\n * weak map.\n *
\n * We do so by\n *
    \n *
  • Making the name of the hidden property unguessable, so \"[]\"\n * indexing, which we cannot intercept, cannot be used to access\n * a property without knowing the name.\n *
  • Making the hidden property non-enumerable, so we need not\n * worry about for-in loops or {@code Object.keys},\n *
  • monkey patching those reflective methods that would\n * prevent extensions, to add this hidden property first,\n *
  • monkey patching those methods that would reveal this\n * hidden property.\n *
\n * Unfortunately, because of same-origin iframes, we cannot reliably\n * add this hidden property before an object becomes\n * non-extensible. Instead, if we encounter a non-extensible object\n * without a hidden record that we can detect (whether or not it has\n * a hidden record stored under a name secret to us), then we just\n * use the key object itself to represent its identity in a brute\n * force leaky map stored in the weak map, losing all the advantages\n * of weakness for these.\n */\n function getHiddenRecord(key) {\n if (key !== Object(key)) {\n throw new TypeError('Not an object: ' + key);\n }\n var hiddenRecord = key[HIDDEN_NAME];\n if (hiddenRecord && hiddenRecord.key === key) { return hiddenRecord; }\n if (!isExtensible(key)) {\n // Weak map must brute force, as explained in doc-comment above.\n return void 0;\n }\n\n // The hiddenRecord and the key point directly at each other, via\n // the \"key\" and HIDDEN_NAME properties respectively. The key\n // field is for quickly verifying that this hidden record is an\n // own property, not a hidden record from up the prototype chain.\n //\n // NOTE: Because this WeakMap emulation is meant only for systems like\n // SES where Object.prototype is frozen without any numeric\n // properties, it is ok to use an object literal for the hiddenRecord.\n // This has two advantages:\n // * It is much faster in a performance critical place\n // * It avoids relying on Object.create(null), which had been\n // problematic on Chrome 28.0.1480.0. See\n // https://code.google.com/p/google-caja/issues/detail?id=1687\n hiddenRecord = { key: key };\n\n // When using this WeakMap emulation on platforms where\n // Object.prototype might not be frozen and Object.create(null) is\n // reliable, use the following two commented out lines instead.\n // hiddenRecord = Object.create(null);\n // hiddenRecord.key = key;\n\n // Please contact us if you need this to work on platforms where\n // Object.prototype might not be frozen and\n // Object.create(null) might not be reliable.\n\n try {\n defProp(key, HIDDEN_NAME, {\n value: hiddenRecord,\n writable: false,\n enumerable: false,\n configurable: false\n });\n return hiddenRecord;\n } catch (error) {\n // Under some circumstances, isExtensible seems to misreport whether\n // the HIDDEN_NAME can be defined.\n // The circumstances have not been isolated, but at least affect\n // Node.js v0.10.26 on TravisCI / Linux, but not the same version of\n // Node.js on OS X.\n return void 0;\n }\n }\n\n /**\n * Monkey patch operations that would make their argument\n * non-extensible.\n *\n *

The monkey patched versions throw a TypeError if their\n * argument is not an object, so it should only be done to functions\n * that should throw a TypeError anyway if their argument is not an\n * object.\n */\n (function(){\n var oldFreeze = Object.freeze;\n defProp(Object, 'freeze', {\n value: function identifyingFreeze(obj) {\n getHiddenRecord(obj);\n return oldFreeze(obj);\n }\n });\n var oldSeal = Object.seal;\n defProp(Object, 'seal', {\n value: function identifyingSeal(obj) {\n getHiddenRecord(obj);\n return oldSeal(obj);\n }\n });\n var oldPreventExtensions = Object.preventExtensions;\n defProp(Object, 'preventExtensions', {\n value: function identifyingPreventExtensions(obj) {\n getHiddenRecord(obj);\n return oldPreventExtensions(obj);\n }\n });\n })();\n\n function constFunc(func) {\n func.prototype = null;\n return Object.freeze(func);\n }\n\n var calledAsFunctionWarningDone = false;\n function calledAsFunctionWarning() {\n // Future ES6 WeakMap is currently (2013-09-10) expected to reject WeakMap()\n // but we used to permit it and do it ourselves, so warn only.\n if (!calledAsFunctionWarningDone && typeof console !== 'undefined') {\n calledAsFunctionWarningDone = true;\n console.warn('WeakMap should be invoked as new WeakMap(), not ' +\n 'WeakMap(). This will be an error in the future.');\n }\n }\n\n var nextId = 0;\n\n var OurWeakMap = function() {\n if (!(this instanceof OurWeakMap)) { // approximate test for new ...()\n calledAsFunctionWarning();\n }\n\n // We are currently (12/25/2012) never encountering any prematurely\n // non-extensible keys.\n var keys = []; // brute force for prematurely non-extensible keys.\n var values = []; // brute force for corresponding values.\n var id = nextId++;\n\n function get___(key, opt_default) {\n var index;\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n return id in hiddenRecord ? hiddenRecord[id] : opt_default;\n } else {\n index = keys.indexOf(key);\n return index >= 0 ? values[index] : opt_default;\n }\n }\n\n function has___(key) {\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n return id in hiddenRecord;\n } else {\n return keys.indexOf(key) >= 0;\n }\n }\n\n function set___(key, value) {\n var index;\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n hiddenRecord[id] = value;\n } else {\n index = keys.indexOf(key);\n if (index >= 0) {\n values[index] = value;\n } else {\n // Since some browsers preemptively terminate slow turns but\n // then continue computing with presumably corrupted heap\n // state, we here defensively get keys.length first and then\n // use it to update both the values and keys arrays, keeping\n // them in sync.\n index = keys.length;\n values[index] = value;\n // If we crash here, values will be one longer than keys.\n keys[index] = key;\n }\n }\n return this;\n }\n\n function delete___(key) {\n var hiddenRecord = getHiddenRecord(key);\n var index, lastIndex;\n if (hiddenRecord) {\n return id in hiddenRecord && delete hiddenRecord[id];\n } else {\n index = keys.indexOf(key);\n if (index < 0) {\n return false;\n }\n // Since some browsers preemptively terminate slow turns but\n // then continue computing with potentially corrupted heap\n // state, we here defensively get keys.length first and then use\n // it to update both the keys and the values array, keeping\n // them in sync. We update the two with an order of assignments,\n // such that any prefix of these assignments will preserve the\n // key/value correspondence, either before or after the delete.\n // Note that this needs to work correctly when index === lastIndex.\n lastIndex = keys.length - 1;\n keys[index] = void 0;\n // If we crash here, there's a void 0 in the keys array, but\n // no operation will cause a \"keys.indexOf(void 0)\", since\n // getHiddenRecord(void 0) will always throw an error first.\n values[index] = values[lastIndex];\n // If we crash here, values[index] cannot be found here,\n // because keys[index] is void 0.\n keys[index] = keys[lastIndex];\n // If index === lastIndex and we crash here, then keys[index]\n // is still void 0, since the aliasing killed the previous key.\n keys.length = lastIndex;\n // If we crash here, keys will be one shorter than values.\n values.length = lastIndex;\n return true;\n }\n }\n\n return Object.create(OurWeakMap.prototype, {\n get___: { value: constFunc(get___) },\n has___: { value: constFunc(has___) },\n set___: { value: constFunc(set___) },\n delete___: { value: constFunc(delete___) }\n });\n };\n\n OurWeakMap.prototype = Object.create(Object.prototype, {\n get: {\n /**\n * Return the value most recently associated with key, or\n * opt_default if none.\n */\n value: function get(key, opt_default) {\n return this.get___(key, opt_default);\n },\n writable: true,\n configurable: true\n },\n\n has: {\n /**\n * Is there a value associated with key in this WeakMap?\n */\n value: function has(key) {\n return this.has___(key);\n },\n writable: true,\n configurable: true\n },\n\n set: {\n /**\n * Associate value with key in this WeakMap, overwriting any\n * previous association if present.\n */\n value: function set(key, value) {\n return this.set___(key, value);\n },\n writable: true,\n configurable: true\n },\n\n 'delete': {\n /**\n * Remove any association for key in this WeakMap, returning\n * whether there was one.\n *\n *

Note that the boolean return here does not work like the\n * {@code delete} operator. The {@code delete} operator returns\n * whether the deletion succeeds at bringing about a state in\n * which the deleted property is absent. The {@code delete}\n * operator therefore returns true if the property was already\n * absent, whereas this {@code delete} method returns false if\n * the association was already absent.\n */\n value: function remove(key) {\n return this.delete___(key);\n },\n writable: true,\n configurable: true\n }\n });\n\n if (typeof HostWeakMap === 'function') {\n (function() {\n // If we got here, then the platform has a WeakMap but we are concerned\n // that it may refuse to store some key types. Therefore, make a map\n // implementation which makes use of both as possible.\n\n // In this mode we are always using double maps, so we are not proxy-safe.\n // This combination does not occur in any known browser, but we had best\n // be safe.\n if (doubleWeakMapCheckSilentFailure && typeof Proxy !== 'undefined') {\n Proxy = undefined;\n }\n\n function DoubleWeakMap() {\n if (!(this instanceof OurWeakMap)) { // approximate test for new ...()\n calledAsFunctionWarning();\n }\n\n // Preferable, truly weak map.\n var hmap = new HostWeakMap();\n\n // Our hidden-property-based pseudo-weak-map. Lazily initialized in the\n // 'set' implementation; thus we can avoid performing extra lookups if\n // we know all entries actually stored are entered in 'hmap'.\n var omap = undefined;\n\n // Hidden-property maps are not compatible with proxies because proxies\n // can observe the hidden name and either accidentally expose it or fail\n // to allow the hidden property to be set. Therefore, we do not allow\n // arbitrary WeakMaps to switch to using hidden properties, but only\n // those which need the ability, and unprivileged code is not allowed\n // to set the flag.\n //\n // (Except in doubleWeakMapCheckSilentFailure mode in which case we\n // disable proxies.)\n var enableSwitching = false;\n\n function dget(key, opt_default) {\n if (omap) {\n return hmap.has(key) ? hmap.get(key)\n : omap.get___(key, opt_default);\n } else {\n return hmap.get(key, opt_default);\n }\n }\n\n function dhas(key) {\n return hmap.has(key) || (omap ? omap.has___(key) : false);\n }\n\n var dset;\n if (doubleWeakMapCheckSilentFailure) {\n dset = function(key, value) {\n hmap.set(key, value);\n if (!hmap.has(key)) {\n if (!omap) { omap = new OurWeakMap(); }\n omap.set(key, value);\n }\n return this;\n };\n } else {\n dset = function(key, value) {\n if (enableSwitching) {\n try {\n hmap.set(key, value);\n } catch (e) {\n if (!omap) { omap = new OurWeakMap(); }\n omap.set___(key, value);\n }\n } else {\n hmap.set(key, value);\n }\n return this;\n };\n }\n\n function ddelete(key) {\n var result = !!hmap['delete'](key);\n if (omap) { return omap.delete___(key) || result; }\n return result;\n }\n\n return Object.create(OurWeakMap.prototype, {\n get___: { value: constFunc(dget) },\n has___: { value: constFunc(dhas) },\n set___: { value: constFunc(dset) },\n delete___: { value: constFunc(ddelete) },\n permitHostObjects___: { value: constFunc(function(token) {\n if (token === weakMapPermitHostObjects) {\n enableSwitching = true;\n } else {\n throw new Error('bogus call to permitHostObjects___');\n }\n })}\n });\n }\n DoubleWeakMap.prototype = OurWeakMap.prototype;\n module.exports = DoubleWeakMap;\n\n // define .constructor to hide OurWeakMap ctor\n Object.defineProperty(WeakMap.prototype, 'constructor', {\n value: WeakMap,\n enumerable: false, // as default .constructor is\n configurable: true,\n writable: true\n });\n })();\n } else {\n // There is no host WeakMap, so we must use the emulation.\n\n // Emulated WeakMaps are incompatible with native proxies (because proxies\n // can observe the hidden name), so we must disable Proxy usage (in\n // ArrayLike and Domado, currently).\n if (typeof Proxy !== 'undefined') {\n Proxy = undefined;\n }\n\n module.exports = OurWeakMap;\n }\n})();\n\n\n/***/ }),\n\n/***/ \"2f68\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"f1c3\");\n\n\n/***/ }),\n\n/***/ \"2ff0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar colorscaleDefaults = __webpack_require__(\"4183\");\nvar attributes = __webpack_require__(\"02ea\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n var i, j;\n\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var x = coerce('x');\n var y = coerce('y');\n\n var z = coerce('z');\n if(!z || !z.length ||\n (x ? (x.length < 1) : false) ||\n (y ? (y.length < 1) : false)\n ) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._xlength = (Array.isArray(x) && Lib.isArrayOrTypedArray(x[0])) ? z.length : z[0].length;\n traceOut._ylength = z.length;\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y', 'z'], layout);\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n // Coerce remaining properties\n [\n 'lighting.ambient',\n 'lighting.diffuse',\n 'lighting.specular',\n 'lighting.roughness',\n 'lighting.fresnel',\n 'lightposition.x',\n 'lightposition.y',\n 'lightposition.z',\n 'hidesurface',\n 'connectgaps',\n 'opacity'\n ].forEach(function(x) { coerce(x); });\n\n var surfaceColor = coerce('surfacecolor');\n\n var dims = ['x', 'y', 'z'];\n for(i = 0; i < 3; ++i) {\n var contourDim = 'contours.' + dims[i];\n var show = coerce(contourDim + '.show');\n var highlight = coerce(contourDim + '.highlight');\n\n if(show || highlight) {\n for(j = 0; j < 3; ++j) {\n coerce(contourDim + '.project.' + dims[j]);\n }\n }\n\n if(show) {\n coerce(contourDim + '.color');\n coerce(contourDim + '.width');\n coerce(contourDim + '.usecolormap');\n }\n\n if(highlight) {\n coerce(contourDim + '.highlightcolor');\n coerce(contourDim + '.highlightwidth');\n }\n\n coerce(contourDim + '.start');\n coerce(contourDim + '.end');\n coerce(contourDim + '.size');\n }\n\n // backward compatibility block\n if(!surfaceColor) {\n mapLegacy(traceIn, 'zmin', 'cmin');\n mapLegacy(traceIn, 'zmax', 'cmax');\n mapLegacy(traceIn, 'zauto', 'cauto');\n }\n\n // TODO if contours.?.usecolormap are false and hidesurface is true\n // the colorbar shouldn't be shown by default\n\n colorscaleDefaults(\n traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'}\n );\n\n // disable 1D transforms - currently surface does NOT support column data like heatmap does\n // you can use mesh3d for this use case, but not surface\n traceOut._length = null;\n};\n\nfunction mapLegacy(traceIn, oldAttr, newAttr) {\n if(oldAttr in traceIn && !(newAttr in traceIn)) {\n traceIn[newAttr] = traceIn[oldAttr];\n }\n}\n\n\n/***/ }),\n\n/***/ \"3022\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = Object({\"NODE_ENV\":\"production\",\"BASE_URL\":\"\"}).NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = __webpack_require__(\"d60a\");\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = __webpack_require__(\"28a0\");\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"4362\")))\n\n/***/ }),\n\n/***/ \"3029\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = solveIntersection\n\nvar ratMul = __webpack_require__(\"3bd6\")\nvar ratDiv = __webpack_require__(\"18a2\")\nvar ratSub = __webpack_require__(\"9c7c\")\nvar ratSign = __webpack_require__(\"3dac\")\nvar rvSub = __webpack_require__(\"66ac\")\nvar rvAdd = __webpack_require__(\"e56e\")\nvar rvMuls = __webpack_require__(\"093d\")\n\nfunction ratPerp (a, b) {\n return ratSub(ratMul(a[0], b[1]), ratMul(a[1], b[0]))\n}\n\n// Solve for intersection\n// x = a + t (b-a)\n// (x - c) ^ (d-c) = 0\n// (t * (b-a) + (a-c) ) ^ (d-c) = 0\n// t * (b-a)^(d-c) = (d-c)^(a-c)\n// t = (d-c)^(a-c) / (b-a)^(d-c)\n\nfunction solveIntersection (a, b, c, d) {\n var ba = rvSub(b, a)\n var dc = rvSub(d, c)\n\n var baXdc = ratPerp(ba, dc)\n\n if (ratSign(baXdc) === 0) {\n return null\n }\n\n var ac = rvSub(a, c)\n var dcXac = ratPerp(dc, ac)\n\n var t = ratDiv(dcXac, baXdc)\n var s = rvMuls(ba, t)\n var r = rvAdd(a, s)\n\n return r\n}\n\n\n/***/ }),\n\n/***/ \"3044\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar heatmapAttrs = __webpack_require__(\"0435\");\nvar contourAttrs = __webpack_require__(\"43ef\");\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nvar contourContourAttrs = contourAttrs.contours;\n\nmodule.exports = extendFlat({\n carpet: {\n valType: 'string',\n \n editType: 'calc',\n \n },\n z: heatmapAttrs.z,\n a: heatmapAttrs.x,\n a0: heatmapAttrs.x0,\n da: heatmapAttrs.dx,\n b: heatmapAttrs.y,\n b0: heatmapAttrs.y0,\n db: heatmapAttrs.dy,\n text: heatmapAttrs.text,\n hovertext: heatmapAttrs.hovertext,\n transpose: heatmapAttrs.transpose,\n atype: heatmapAttrs.xtype,\n btype: heatmapAttrs.ytype,\n\n fillcolor: contourAttrs.fillcolor,\n\n autocontour: contourAttrs.autocontour,\n ncontours: contourAttrs.ncontours,\n\n contours: {\n type: contourContourAttrs.type,\n start: contourContourAttrs.start,\n end: contourContourAttrs.end,\n size: contourContourAttrs.size,\n coloring: {\n // from contourAttrs.contours.coloring but no 'heatmap' option\n valType: 'enumerated',\n values: ['fill', 'lines', 'none'],\n dflt: 'fill',\n \n editType: 'calc',\n \n },\n showlines: contourContourAttrs.showlines,\n showlabels: contourContourAttrs.showlabels,\n labelfont: contourContourAttrs.labelfont,\n labelformat: contourContourAttrs.labelformat,\n operation: contourContourAttrs.operation,\n value: contourContourAttrs.value,\n editType: 'calc',\n impliedEdits: {'autocontour': false}\n },\n\n line: {\n color: contourAttrs.line.color,\n width: contourAttrs.line.width,\n dash: contourAttrs.line.dash,\n smoothing: contourAttrs.line.smoothing,\n editType: 'plot'\n },\n\n transforms: undefined\n},\n\n colorScaleAttrs('', {\n cLetter: 'z',\n autoColorDflt: false\n })\n);\n\n\n/***/ }),\n\n/***/ \"3068\":\n/***/ (function(module, exports) {\n\nvar reg = /[\\'\\\"]/\n\nmodule.exports = function unquote(str) {\n if (!str) {\n return ''\n }\n if (reg.test(str.charAt(0))) {\n str = str.substr(1)\n }\n if (reg.test(str.charAt(str.length - 1))) {\n str = str.substr(0, str.length - 1)\n }\n return str\n}\n\n\n/***/ }),\n\n/***/ \"306c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n// Simple helper functions\n// none of these need any external deps\n\nmodule.exports = function identity(d) { return d; };\n\n\n/***/ }),\n\n/***/ \"3122\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = compareAngle\n\nvar orient = __webpack_require__(\"92ba\")\nvar sgn = __webpack_require__(\"79d9\")\nvar twoSum = __webpack_require__(\"d1bd\")\nvar robustProduct = __webpack_require__(\"91e1\")\nvar robustSum = __webpack_require__(\"a026\")\n\nfunction testInterior(a, b, c) {\n var x0 = twoSum(a[0], -b[0])\n var y0 = twoSum(a[1], -b[1])\n var x1 = twoSum(c[0], -b[0])\n var y1 = twoSum(c[1], -b[1])\n\n var d = robustSum(\n robustProduct(x0, x1),\n robustProduct(y0, y1))\n\n return d[d.length-1] >= 0\n}\n\nfunction compareAngle(a, b, c, d) {\n var bcd = orient(b, c, d)\n if(bcd === 0) {\n //Handle degenerate cases\n var sabc = sgn(orient(a, b, c))\n var sabd = sgn(orient(a, b, d))\n if(sabc === sabd) {\n if(sabc === 0) {\n var ic = testInterior(a, b, c)\n var id = testInterior(a, b, d)\n if(ic === id) {\n return 0\n } else if(ic) {\n return 1\n } else {\n return -1\n }\n }\n return 0\n } else if(sabd === 0) {\n if(sabc > 0) {\n return -1\n } else if(testInterior(a, b, d)) {\n return -1\n } else {\n return 1\n }\n } else if(sabc === 0) {\n if(sabd > 0) {\n return 1\n } else if(testInterior(a, b, c)) {\n return 1\n } else {\n return -1\n }\n }\n return sgn(sabd - sabc)\n }\n var abc = orient(a, b, c)\n if(abc > 0) {\n if(bcd > 0 && orient(a, b, d) > 0) {\n return 1\n }\n return -1\n } else if(abc < 0) {\n if(bcd > 0 || orient(a, b, d) > 0) {\n return 1\n }\n return -1\n } else {\n var abd = orient(a, b, d)\n if(abd > 0) {\n return 1\n } else {\n if(testInterior(a, b, c)) {\n return 1\n } else {\n return -1\n }\n }\n }\n}\n\n/***/ }),\n\n/***/ \"3146\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createBackgroundCube\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createVAO = __webpack_require__(\"b205\")\nvar createShader = __webpack_require__(\"c185\").bg\n\nfunction BackgroundCube(gl, buffer, vao, shader) {\n this.gl = gl\n this.buffer = buffer\n this.vao = vao\n this.shader = shader\n}\n\nvar proto = BackgroundCube.prototype\n\nproto.draw = function(model, view, projection, bounds, enable, colors) {\n var needsBG = false\n for(var i=0; i<3; ++i) {\n needsBG = needsBG || enable[i]\n }\n if(!needsBG) {\n return\n }\n\n var gl = this.gl\n\n gl.enable(gl.POLYGON_OFFSET_FILL)\n gl.polygonOffset(1, 2)\n\n this.shader.bind()\n this.shader.uniforms = {\n model: model,\n view: view,\n projection: projection,\n bounds: bounds,\n enable: enable,\n colors: colors\n }\n this.vao.bind()\n this.vao.draw(this.gl.TRIANGLES, 36)\n this.vao.unbind()\n\n gl.disable(gl.POLYGON_OFFSET_FILL)\n}\n\nproto.dispose = function() {\n this.vao.dispose()\n this.buffer.dispose()\n this.shader.dispose()\n}\n\nfunction createBackgroundCube(gl) {\n //Create cube vertices\n var vertices = []\n var indices = []\n var ptr = 0\n for(var d=0; d<3; ++d) {\n var u = (d+1) % 3\n var v = (d+2) % 3\n var x = [0,0,0]\n var c = [0,0,0]\n for(var s=-1; s<=1; s+=2) {\n indices.push(ptr, ptr+2, ptr+1,\n ptr+1, ptr+2, ptr+3)\n x[d] = s\n c[d] = s\n for(var i=-1; i<=1; i+=2) {\n x[u] = i\n for(var j=-1; j<=1; j+=2) {\n x[v] = j\n vertices.push(x[0], x[1], x[2],\n c[0], c[1], c[2])\n ptr += 1\n }\n }\n //Swap u and v\n var tt = u\n u = v\n v = tt\n }\n }\n\n //Allocate buffer and vertex array\n var buffer = createBuffer(gl, new Float32Array(vertices))\n var elements = createBuffer(gl, new Uint16Array(indices), gl.ELEMENT_ARRAY_BUFFER)\n var vao = createVAO(gl, [\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 3,\n offset: 0,\n stride: 24\n },\n {\n buffer: buffer,\n type: gl.FLOAT,\n size: 3,\n offset: 12,\n stride: 24\n }\n ], elements)\n\n //Create shader object\n var shader = createShader(gl)\n shader.attributes.position.location = 0\n shader.attributes.normal.location = 1\n\n return new BackgroundCube(gl, buffer, vao, shader)\n}\n\n\n/***/ }),\n\n/***/ \"320c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n/***/ }),\n\n/***/ \"3273\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar drawModule = __webpack_require__(\"236d\");\n\nmodule.exports = {\n moduleType: 'component',\n name: 'shapes',\n\n layoutAttributes: __webpack_require__(\"a5cc\"),\n supplyLayoutDefaults: __webpack_require__(\"567e\"),\n includeBasePlot: __webpack_require__(\"37d1\")('shapes'),\n\n calcAutorange: __webpack_require__(\"cef0\"),\n draw: drawModule.draw,\n drawOne: drawModule.drawOne\n};\n\n\n/***/ }),\n\n/***/ \"3350\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\n/** Marker symbol definitions\n * users can specify markers either by number or name\n * add 100 (or '-open') and you get an open marker\n * open markers have no fill and use line color as the stroke color\n * add 200 (or '-dot') and you get a dot in the middle\n * add both and you get both\n */\n\nmodule.exports = {\n circle: {\n n: 0,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',0A' + rs + ',' + rs + ' 0 1,1 0,-' + rs +\n 'A' + rs + ',' + rs + ' 0 0,1 ' + rs + ',0Z';\n }\n },\n square: {\n n: 1,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',' + rs + 'H-' + rs + 'V-' + rs + 'H' + rs + 'Z';\n }\n },\n diamond: {\n n: 2,\n f: function(r) {\n var rd = d3.round(r * 1.3, 2);\n return 'M' + rd + ',0L0,' + rd + 'L-' + rd + ',0L0,-' + rd + 'Z';\n }\n },\n cross: {\n n: 3,\n f: function(r) {\n var rc = d3.round(r * 0.4, 2);\n var rc2 = d3.round(r * 1.2, 2);\n return 'M' + rc2 + ',' + rc + 'H' + rc + 'V' + rc2 + 'H-' + rc +\n 'V' + rc + 'H-' + rc2 + 'V-' + rc + 'H-' + rc + 'V-' + rc2 +\n 'H' + rc + 'V-' + rc + 'H' + rc2 + 'Z';\n }\n },\n x: {\n n: 4,\n f: function(r) {\n var rx = d3.round(r * 0.8 / Math.sqrt(2), 2);\n var ne = 'l' + rx + ',' + rx;\n var se = 'l' + rx + ',-' + rx;\n var sw = 'l-' + rx + ',-' + rx;\n var nw = 'l-' + rx + ',' + rx;\n return 'M0,' + rx + ne + se + sw + se + sw + nw + sw + nw + ne + nw + ne + 'Z';\n }\n },\n 'triangle-up': {\n n: 5,\n f: function(r) {\n var rt = d3.round(r * 2 / Math.sqrt(3), 2);\n var r2 = d3.round(r / 2, 2);\n var rs = d3.round(r, 2);\n return 'M-' + rt + ',' + r2 + 'H' + rt + 'L0,-' + rs + 'Z';\n }\n },\n 'triangle-down': {\n n: 6,\n f: function(r) {\n var rt = d3.round(r * 2 / Math.sqrt(3), 2);\n var r2 = d3.round(r / 2, 2);\n var rs = d3.round(r, 2);\n return 'M-' + rt + ',-' + r2 + 'H' + rt + 'L0,' + rs + 'Z';\n }\n },\n 'triangle-left': {\n n: 7,\n f: function(r) {\n var rt = d3.round(r * 2 / Math.sqrt(3), 2);\n var r2 = d3.round(r / 2, 2);\n var rs = d3.round(r, 2);\n return 'M' + r2 + ',-' + rt + 'V' + rt + 'L-' + rs + ',0Z';\n }\n },\n 'triangle-right': {\n n: 8,\n f: function(r) {\n var rt = d3.round(r * 2 / Math.sqrt(3), 2);\n var r2 = d3.round(r / 2, 2);\n var rs = d3.round(r, 2);\n return 'M-' + r2 + ',-' + rt + 'V' + rt + 'L' + rs + ',0Z';\n }\n },\n 'triangle-ne': {\n n: 9,\n f: function(r) {\n var r1 = d3.round(r * 0.6, 2);\n var r2 = d3.round(r * 1.2, 2);\n return 'M-' + r2 + ',-' + r1 + 'H' + r1 + 'V' + r2 + 'Z';\n }\n },\n 'triangle-se': {\n n: 10,\n f: function(r) {\n var r1 = d3.round(r * 0.6, 2);\n var r2 = d3.round(r * 1.2, 2);\n return 'M' + r1 + ',-' + r2 + 'V' + r1 + 'H-' + r2 + 'Z';\n }\n },\n 'triangle-sw': {\n n: 11,\n f: function(r) {\n var r1 = d3.round(r * 0.6, 2);\n var r2 = d3.round(r * 1.2, 2);\n return 'M' + r2 + ',' + r1 + 'H-' + r1 + 'V-' + r2 + 'Z';\n }\n },\n 'triangle-nw': {\n n: 12,\n f: function(r) {\n var r1 = d3.round(r * 0.6, 2);\n var r2 = d3.round(r * 1.2, 2);\n return 'M-' + r1 + ',' + r2 + 'V-' + r1 + 'H' + r2 + 'Z';\n }\n },\n pentagon: {\n n: 13,\n f: function(r) {\n var x1 = d3.round(r * 0.951, 2);\n var x2 = d3.round(r * 0.588, 2);\n var y0 = d3.round(-r, 2);\n var y1 = d3.round(r * -0.309, 2);\n var y2 = d3.round(r * 0.809, 2);\n return 'M' + x1 + ',' + y1 + 'L' + x2 + ',' + y2 + 'H-' + x2 +\n 'L-' + x1 + ',' + y1 + 'L0,' + y0 + 'Z';\n }\n },\n hexagon: {\n n: 14,\n f: function(r) {\n var y0 = d3.round(r, 2);\n var y1 = d3.round(r / 2, 2);\n var x = d3.round(r * Math.sqrt(3) / 2, 2);\n return 'M' + x + ',-' + y1 + 'V' + y1 + 'L0,' + y0 +\n 'L-' + x + ',' + y1 + 'V-' + y1 + 'L0,-' + y0 + 'Z';\n }\n },\n hexagon2: {\n n: 15,\n f: function(r) {\n var x0 = d3.round(r, 2);\n var x1 = d3.round(r / 2, 2);\n var y = d3.round(r * Math.sqrt(3) / 2, 2);\n return 'M-' + x1 + ',' + y + 'H' + x1 + 'L' + x0 +\n ',0L' + x1 + ',-' + y + 'H-' + x1 + 'L-' + x0 + ',0Z';\n }\n },\n octagon: {\n n: 16,\n f: function(r) {\n var a = d3.round(r * 0.924, 2);\n var b = d3.round(r * 0.383, 2);\n return 'M-' + b + ',-' + a + 'H' + b + 'L' + a + ',-' + b + 'V' + b +\n 'L' + b + ',' + a + 'H-' + b + 'L-' + a + ',' + b + 'V-' + b + 'Z';\n }\n },\n star: {\n n: 17,\n f: function(r) {\n var rs = r * 1.4;\n var x1 = d3.round(rs * 0.225, 2);\n var x2 = d3.round(rs * 0.951, 2);\n var x3 = d3.round(rs * 0.363, 2);\n var x4 = d3.round(rs * 0.588, 2);\n var y0 = d3.round(-rs, 2);\n var y1 = d3.round(rs * -0.309, 2);\n var y3 = d3.round(rs * 0.118, 2);\n var y4 = d3.round(rs * 0.809, 2);\n var y5 = d3.round(rs * 0.382, 2);\n return 'M' + x1 + ',' + y1 + 'H' + x2 + 'L' + x3 + ',' + y3 +\n 'L' + x4 + ',' + y4 + 'L0,' + y5 + 'L-' + x4 + ',' + y4 +\n 'L-' + x3 + ',' + y3 + 'L-' + x2 + ',' + y1 + 'H-' + x1 +\n 'L0,' + y0 + 'Z';\n }\n },\n hexagram: {\n n: 18,\n f: function(r) {\n var y = d3.round(r * 0.66, 2);\n var x1 = d3.round(r * 0.38, 2);\n var x2 = d3.round(r * 0.76, 2);\n return 'M-' + x2 + ',0l-' + x1 + ',-' + y + 'h' + x2 +\n 'l' + x1 + ',-' + y + 'l' + x1 + ',' + y + 'h' + x2 +\n 'l-' + x1 + ',' + y + 'l' + x1 + ',' + y + 'h-' + x2 +\n 'l-' + x1 + ',' + y + 'l-' + x1 + ',-' + y + 'h-' + x2 + 'Z';\n }\n },\n 'star-triangle-up': {\n n: 19,\n f: function(r) {\n var x = d3.round(r * Math.sqrt(3) * 0.8, 2);\n var y1 = d3.round(r * 0.8, 2);\n var y2 = d3.round(r * 1.6, 2);\n var rc = d3.round(r * 4, 2);\n var aPart = 'A ' + rc + ',' + rc + ' 0 0 1 ';\n return 'M-' + x + ',' + y1 + aPart + x + ',' + y1 +\n aPart + '0,-' + y2 + aPart + '-' + x + ',' + y1 + 'Z';\n }\n },\n 'star-triangle-down': {\n n: 20,\n f: function(r) {\n var x = d3.round(r * Math.sqrt(3) * 0.8, 2);\n var y1 = d3.round(r * 0.8, 2);\n var y2 = d3.round(r * 1.6, 2);\n var rc = d3.round(r * 4, 2);\n var aPart = 'A ' + rc + ',' + rc + ' 0 0 1 ';\n return 'M' + x + ',-' + y1 + aPart + '-' + x + ',-' + y1 +\n aPart + '0,' + y2 + aPart + x + ',-' + y1 + 'Z';\n }\n },\n 'star-square': {\n n: 21,\n f: function(r) {\n var rp = d3.round(r * 1.1, 2);\n var rc = d3.round(r * 2, 2);\n var aPart = 'A ' + rc + ',' + rc + ' 0 0 1 ';\n return 'M-' + rp + ',-' + rp + aPart + '-' + rp + ',' + rp +\n aPart + rp + ',' + rp + aPart + rp + ',-' + rp +\n aPart + '-' + rp + ',-' + rp + 'Z';\n }\n },\n 'star-diamond': {\n n: 22,\n f: function(r) {\n var rp = d3.round(r * 1.4, 2);\n var rc = d3.round(r * 1.9, 2);\n var aPart = 'A ' + rc + ',' + rc + ' 0 0 1 ';\n return 'M-' + rp + ',0' + aPart + '0,' + rp +\n aPart + rp + ',0' + aPart + '0,-' + rp +\n aPart + '-' + rp + ',0' + 'Z';\n }\n },\n 'diamond-tall': {\n n: 23,\n f: function(r) {\n var x = d3.round(r * 0.7, 2);\n var y = d3.round(r * 1.4, 2);\n return 'M0,' + y + 'L' + x + ',0L0,-' + y + 'L-' + x + ',0Z';\n }\n },\n 'diamond-wide': {\n n: 24,\n f: function(r) {\n var x = d3.round(r * 1.4, 2);\n var y = d3.round(r * 0.7, 2);\n return 'M0,' + y + 'L' + x + ',0L0,-' + y + 'L-' + x + ',0Z';\n }\n },\n hourglass: {\n n: 25,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',' + rs + 'H-' + rs + 'L' + rs + ',-' + rs + 'H-' + rs + 'Z';\n },\n noDot: true\n },\n bowtie: {\n n: 26,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',' + rs + 'V-' + rs + 'L-' + rs + ',' + rs + 'V-' + rs + 'Z';\n },\n noDot: true\n },\n 'circle-cross': {\n n: 27,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M0,' + rs + 'V-' + rs + 'M' + rs + ',0H-' + rs +\n 'M' + rs + ',0A' + rs + ',' + rs + ' 0 1,1 0,-' + rs +\n 'A' + rs + ',' + rs + ' 0 0,1 ' + rs + ',0Z';\n },\n needLine: true,\n noDot: true\n },\n 'circle-x': {\n n: 28,\n f: function(r) {\n var rs = d3.round(r, 2);\n var rc = d3.round(r / Math.sqrt(2), 2);\n return 'M' + rc + ',' + rc + 'L-' + rc + ',-' + rc +\n 'M' + rc + ',-' + rc + 'L-' + rc + ',' + rc +\n 'M' + rs + ',0A' + rs + ',' + rs + ' 0 1,1 0,-' + rs +\n 'A' + rs + ',' + rs + ' 0 0,1 ' + rs + ',0Z';\n },\n needLine: true,\n noDot: true\n },\n 'square-cross': {\n n: 29,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M0,' + rs + 'V-' + rs + 'M' + rs + ',0H-' + rs +\n 'M' + rs + ',' + rs + 'H-' + rs + 'V-' + rs + 'H' + rs + 'Z';\n },\n needLine: true,\n noDot: true\n },\n 'square-x': {\n n: 30,\n f: function(r) {\n var rs = d3.round(r, 2);\n return 'M' + rs + ',' + rs + 'L-' + rs + ',-' + rs +\n 'M' + rs + ',-' + rs + 'L-' + rs + ',' + rs +\n 'M' + rs + ',' + rs + 'H-' + rs + 'V-' + rs + 'H' + rs + 'Z';\n },\n needLine: true,\n noDot: true\n },\n 'diamond-cross': {\n n: 31,\n f: function(r) {\n var rd = d3.round(r * 1.3, 2);\n return 'M' + rd + ',0L0,' + rd + 'L-' + rd + ',0L0,-' + rd + 'Z' +\n 'M0,-' + rd + 'V' + rd + 'M-' + rd + ',0H' + rd;\n },\n needLine: true,\n noDot: true\n },\n 'diamond-x': {\n n: 32,\n f: function(r) {\n var rd = d3.round(r * 1.3, 2);\n var r2 = d3.round(r * 0.65, 2);\n return 'M' + rd + ',0L0,' + rd + 'L-' + rd + ',0L0,-' + rd + 'Z' +\n 'M-' + r2 + ',-' + r2 + 'L' + r2 + ',' + r2 +\n 'M-' + r2 + ',' + r2 + 'L' + r2 + ',-' + r2;\n },\n needLine: true,\n noDot: true\n },\n 'cross-thin': {\n n: 33,\n f: function(r) {\n var rc = d3.round(r * 1.4, 2);\n return 'M0,' + rc + 'V-' + rc + 'M' + rc + ',0H-' + rc;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'x-thin': {\n n: 34,\n f: function(r) {\n var rx = d3.round(r, 2);\n return 'M' + rx + ',' + rx + 'L-' + rx + ',-' + rx +\n 'M' + rx + ',-' + rx + 'L-' + rx + ',' + rx;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n asterisk: {\n n: 35,\n f: function(r) {\n var rc = d3.round(r * 1.2, 2);\n var rs = d3.round(r * 0.85, 2);\n return 'M0,' + rc + 'V-' + rc + 'M' + rc + ',0H-' + rc +\n 'M' + rs + ',' + rs + 'L-' + rs + ',-' + rs +\n 'M' + rs + ',-' + rs + 'L-' + rs + ',' + rs;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n hash: {\n n: 36,\n f: function(r) {\n var r1 = d3.round(r / 2, 2);\n var r2 = d3.round(r, 2);\n return 'M' + r1 + ',' + r2 + 'V-' + r2 +\n 'm-' + r2 + ',0V' + r2 +\n 'M' + r2 + ',' + r1 + 'H-' + r2 +\n 'm0,-' + r2 + 'H' + r2;\n },\n needLine: true,\n noFill: true\n },\n 'y-up': {\n n: 37,\n f: function(r) {\n var x = d3.round(r * 1.2, 2);\n var y0 = d3.round(r * 1.6, 2);\n var y1 = d3.round(r * 0.8, 2);\n return 'M-' + x + ',' + y1 + 'L0,0M' + x + ',' + y1 + 'L0,0M0,-' + y0 + 'L0,0';\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'y-down': {\n n: 38,\n f: function(r) {\n var x = d3.round(r * 1.2, 2);\n var y0 = d3.round(r * 1.6, 2);\n var y1 = d3.round(r * 0.8, 2);\n return 'M-' + x + ',-' + y1 + 'L0,0M' + x + ',-' + y1 + 'L0,0M0,' + y0 + 'L0,0';\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'y-left': {\n n: 39,\n f: function(r) {\n var y = d3.round(r * 1.2, 2);\n var x0 = d3.round(r * 1.6, 2);\n var x1 = d3.round(r * 0.8, 2);\n return 'M' + x1 + ',' + y + 'L0,0M' + x1 + ',-' + y + 'L0,0M-' + x0 + ',0L0,0';\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'y-right': {\n n: 40,\n f: function(r) {\n var y = d3.round(r * 1.2, 2);\n var x0 = d3.round(r * 1.6, 2);\n var x1 = d3.round(r * 0.8, 2);\n return 'M-' + x1 + ',' + y + 'L0,0M-' + x1 + ',-' + y + 'L0,0M' + x0 + ',0L0,0';\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'line-ew': {\n n: 41,\n f: function(r) {\n var rc = d3.round(r * 1.4, 2);\n return 'M' + rc + ',0H-' + rc;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'line-ns': {\n n: 42,\n f: function(r) {\n var rc = d3.round(r * 1.4, 2);\n return 'M0,' + rc + 'V-' + rc;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'line-ne': {\n n: 43,\n f: function(r) {\n var rx = d3.round(r, 2);\n return 'M' + rx + ',-' + rx + 'L-' + rx + ',' + rx;\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n 'line-nw': {\n n: 44,\n f: function(r) {\n var rx = d3.round(r, 2);\n return 'M' + rx + ',' + rx + 'L-' + rx + ',-' + rx;\n },\n needLine: true,\n noDot: true,\n noFill: true\n }\n};\n\n\n/***/ }),\n\n/***/ \"33ae\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar str2RGBArray = __webpack_require__(\"f977\");\n\nvar AXES_NAMES = ['xaxis', 'yaxis', 'zaxis'];\n\nfunction SpikeOptions() {\n this.enabled = [true, true, true];\n this.colors = [[0, 0, 0, 1],\n [0, 0, 0, 1],\n [0, 0, 0, 1]];\n this.drawSides = [true, true, true];\n this.lineWidth = [1, 1, 1];\n}\n\nvar proto = SpikeOptions.prototype;\n\nproto.merge = function(sceneLayout) {\n for(var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n\n if(!axes.visible) {\n this.enabled[i] = false;\n this.drawSides[i] = false;\n continue;\n }\n\n this.enabled[i] = axes.showspikes;\n this.colors[i] = str2RGBArray(axes.spikecolor);\n this.drawSides[i] = axes.spikesides;\n this.lineWidth[i] = axes.spikethickness;\n }\n};\n\nfunction createSpikeOptions(layout) {\n var result = new SpikeOptions();\n result.merge(layout);\n return result;\n}\n\nmodule.exports = createSpikeOptions;\n\n\n/***/ }),\n\n/***/ \"342f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n\n/***/ \"3473\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isIterable = __webpack_require__(\"91e3\");\n\nmodule.exports = function (value) {\n\tif (!isIterable(value)) throw new TypeError(value + \" is not iterable\");\n\treturn value;\n};\n\n\n/***/ }),\n\n/***/ \"348d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar histogram2dAttrs = __webpack_require__(\"1590\");\nvar contourAttrs = __webpack_require__(\"43ef\");\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nmodule.exports = extendFlat({\n x: histogram2dAttrs.x,\n y: histogram2dAttrs.y,\n z: histogram2dAttrs.z,\n marker: histogram2dAttrs.marker,\n\n histnorm: histogram2dAttrs.histnorm,\n histfunc: histogram2dAttrs.histfunc,\n nbinsx: histogram2dAttrs.nbinsx,\n xbins: histogram2dAttrs.xbins,\n nbinsy: histogram2dAttrs.nbinsy,\n ybins: histogram2dAttrs.ybins,\n autobinx: histogram2dAttrs.autobinx,\n autobiny: histogram2dAttrs.autobiny,\n\n bingroup: histogram2dAttrs.bingroup,\n xbingroup: histogram2dAttrs.xbingroup,\n ybingroup: histogram2dAttrs.ybingroup,\n\n autocontour: contourAttrs.autocontour,\n ncontours: contourAttrs.ncontours,\n contours: contourAttrs.contours,\n line: {\n color: contourAttrs.line.color,\n width: extendFlat({}, contourAttrs.line.width, {\n dflt: 0.5,\n \n }),\n dash: contourAttrs.line.dash,\n smoothing: contourAttrs.line.smoothing,\n editType: 'plot'\n },\n zhoverformat: histogram2dAttrs.zhoverformat,\n hovertemplate: histogram2dAttrs.hovertemplate\n},\n colorScaleAttrs('', {\n cLetter: 'z',\n editTypeOverride: 'calc'\n })\n);\n\n\n/***/ }),\n\n/***/ \"34cc\":\n/***/ (function(module, exports) {\n\n// (c) Copyright 2017, Sean Connelly (@voidqk), http://syntheti.cc\n// MIT License\n// Project Home: https://github.com/voidqk/polybooljs\n\n//\n// convert between PolyBool polygon format and GeoJSON formats (Polygon and MultiPolygon)\n//\n\nvar GeoJSON = {\n\t// convert a GeoJSON object to a PolyBool polygon\n\ttoPolygon: function(PolyBool, geojson){\n\n\t\t// converts list of LineString's to segments\n\t\tfunction GeoPoly(coords){\n\t\t\t// check for empty coords\n\t\t\tif (coords.length <= 0)\n\t\t\t\treturn PolyBool.segments({ inverted: false, regions: [] });\n\n\t\t\t// convert LineString to segments\n\t\t\tfunction LineString(ls){\n\t\t\t\t// remove tail which should be the same as head\n\t\t\t\tvar reg = ls.slice(0, ls.length - 1);\n\t\t\t\treturn PolyBool.segments({ inverted: false, regions: [reg] });\n\t\t\t}\n\n\t\t\t// the first LineString is considered the outside\n\t\t\tvar out = LineString(coords[0]);\n\n\t\t\t// the rest of the LineStrings are considered interior holes, so subtract them from the\n\t\t\t// current result\n\t\t\tfor (var i = 1; i < coords.length; i++)\n\t\t\t\tout = PolyBool.selectDifference(PolyBool.combine(out, LineString(coords[i])));\n\n\t\t\treturn out;\n\t\t}\n\n\t\tif (geojson.type === 'Polygon'){\n\t\t\t// single polygon, so just convert it and we're done\n\t\t\treturn PolyBool.polygon(GeoPoly(geojson.coordinates));\n\t\t}\n\t\telse if (geojson.type === 'MultiPolygon'){\n\t\t\t// multiple polygons, so union all the polygons together\n\t\t\tvar out = PolyBool.segments({ inverted: false, regions: [] });\n\t\t\tfor (var i = 0; i < geojson.coordinates.length; i++)\n\t\t\t\tout = PolyBool.selectUnion(PolyBool.combine(out, GeoPoly(geojson.coordinates[i])));\n\t\t\treturn PolyBool.polygon(out);\n\t\t}\n\t\tthrow new Error('PolyBool: Cannot convert GeoJSON object to PolyBool polygon');\n\t},\n\n\t// convert a PolyBool polygon to a GeoJSON object\n\tfromPolygon: function(PolyBool, eps, poly){\n\t\t// make sure out polygon is clean\n\t\tpoly = PolyBool.polygon(PolyBool.segments(poly));\n\n\t\t// test if r1 is inside r2\n\t\tfunction regionInsideRegion(r1, r2){\n\t\t\t// we're guaranteed no lines intersect (because the polygon is clean), but a vertex\n\t\t\t// could be on the edge -- so we just average pt[0] and pt[1] to produce a point on the\n\t\t\t// edge of the first line, which cannot be on an edge\n\t\t\treturn eps.pointInsideRegion([\n\t\t\t\t(r1[0][0] + r1[1][0]) * 0.5,\n\t\t\t\t(r1[0][1] + r1[1][1]) * 0.5\n\t\t\t], r2);\n\t\t}\n\n\t\t// calculate inside heirarchy\n\t\t//\n\t\t// _____________________ _______ roots -> A -> F\n\t\t// | A | | F | | |\n\t\t// | _______ _______ | | ___ | +-- B +-- G\n\t\t// | | B | | C | | | | | | | |\n\t\t// | | ___ | | ___ | | | | | | | +-- D\n\t\t// | | | D | | | | E | | | | | G | | |\n\t\t// | | |___| | | |___| | | | | | | +-- C\n\t\t// | |_______| |_______| | | |___| | |\n\t\t// |_____________________| |_______| +-- E\n\n\t\tfunction newNode(region){\n\t\t\treturn {\n\t\t\t\tregion: region,\n\t\t\t\tchildren: []\n\t\t\t};\n\t\t}\n\n\t\tvar roots = newNode(null);\n\n\t\tfunction addChild(root, region){\n\t\t\t// first check if we're inside any children\n\t\t\tfor (var i = 0; i < root.children.length; i++){\n\t\t\t\tvar child = root.children[i];\n\t\t\t\tif (regionInsideRegion(region, child.region)){\n\t\t\t\t\t// we are, so insert inside them instead\n\t\t\t\t\taddChild(child, region);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// not inside any children, so check to see if any children are inside us\n\t\t\tvar node = newNode(region);\n\t\t\tfor (var i = 0; i < root.children.length; i++){\n\t\t\t\tvar child = root.children[i];\n\t\t\t\tif (regionInsideRegion(child.region, region)){\n\t\t\t\t\t// oops... move the child beneath us, and remove them from root\n\t\t\t\t\tnode.children.push(child);\n\t\t\t\t\troot.children.splice(i, 1);\n\t\t\t\t\ti--;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// now we can add ourselves\n\t\t\troot.children.push(node);\n\t\t}\n\n\t\t// add all regions to the root\n\t\tfor (var i = 0; i < poly.regions.length; i++){\n\t\t\tvar region = poly.regions[i];\n\t\t\tif (region.length < 3) // regions must have at least 3 points (sanity check)\n\t\t\t\tcontinue;\n\t\t\taddChild(roots, region);\n\t\t}\n\n\t\t// with our heirarchy, we can distinguish between exterior borders, and interior holes\n\t\t// the root nodes are exterior, children are interior, children's children are exterior,\n\t\t// children's children's children are interior, etc\n\n\t\t// while we're at it, exteriors are counter-clockwise, and interiors are clockwise\n\n\t\tfunction forceWinding(region, clockwise){\n\t\t\t// first, see if we're clockwise or counter-clockwise\n\t\t\t// https://en.wikipedia.org/wiki/Shoelace_formula\n\t\t\tvar winding = 0;\n\t\t\tvar last_x = region[region.length - 1][0];\n\t\t\tvar last_y = region[region.length - 1][1];\n\t\t\tvar copy = [];\n\t\t\tfor (var i = 0; i < region.length; i++){\n\t\t\t\tvar curr_x = region[i][0];\n\t\t\t\tvar curr_y = region[i][1];\n\t\t\t\tcopy.push([curr_x, curr_y]); // create a copy while we're at it\n\t\t\t\twinding += curr_y * last_x - curr_x * last_y;\n\t\t\t\tlast_x = curr_x;\n\t\t\t\tlast_y = curr_y;\n\t\t\t}\n\t\t\t// this assumes Cartesian coordinates (Y is positive going up)\n\t\t\tvar isclockwise = winding < 0;\n\t\t\tif (isclockwise !== clockwise)\n\t\t\t\tcopy.reverse();\n\t\t\t// while we're here, the last point must be the first point...\n\t\t\tcopy.push([copy[0][0], copy[0][1]]);\n\t\t\treturn copy;\n\t\t}\n\n\t\tvar geopolys = [];\n\n\t\tfunction addExterior(node){\n\t\t\tvar poly = [forceWinding(node.region, false)];\n\t\t\tgeopolys.push(poly);\n\t\t\t// children of exteriors are interior\n\t\t\tfor (var i = 0; i < node.children.length; i++)\n\t\t\t\tpoly.push(getInterior(node.children[i]));\n\t\t}\n\n\t\tfunction getInterior(node){\n\t\t\t// children of interiors are exterior\n\t\t\tfor (var i = 0; i < node.children.length; i++)\n\t\t\t\taddExterior(node.children[i]);\n\t\t\t// return the clockwise interior\n\t\t\treturn forceWinding(node.region, true);\n\t\t}\n\n\t\t// root nodes are exterior\n\t\tfor (var i = 0; i < roots.children.length; i++)\n\t\t\taddExterior(roots.children[i]);\n\n\t\t// lastly, construct the approrpriate GeoJSON object\n\n\t\tif (geopolys.length <= 0) // empty GeoJSON Polygon\n\t\t\treturn { type: 'Polygon', coordinates: [] };\n\t\tif (geopolys.length == 1) // use a GeoJSON Polygon\n\t\t\treturn { type: 'Polygon', coordinates: geopolys[0] };\n\t\treturn { // otherwise, use a GeoJSON MultiPolygon\n\t\t\ttype: 'MultiPolygon',\n\t\t\tcoordinates: geopolys\n\t\t};\n\t}\n};\n\nmodule.exports = GeoJSON;\n\n\n/***/ }),\n\n/***/ \"34d8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar barPlot = __webpack_require__(\"c791\");\nvar clearMinTextSize = __webpack_require__(\"93a6\").clearMinTextSize;\n\nmodule.exports = function plot(gd, plotinfo, cdModule, traceLayer) {\n var fullLayout = gd._fullLayout;\n\n clearMinTextSize('funnel', fullLayout);\n\n plotConnectorRegions(gd, plotinfo, cdModule, traceLayer);\n plotConnectorLines(gd, plotinfo, cdModule, traceLayer);\n\n barPlot.plot(gd, plotinfo, cdModule, traceLayer, {\n mode: fullLayout.funnelmode,\n norm: fullLayout.funnelmode,\n gap: fullLayout.funnelgap,\n groupgap: fullLayout.funnelgroupgap\n });\n};\n\nfunction plotConnectorRegions(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(traceLayer, cdModule, 'trace bars').each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n\n var group = Lib.ensureSingle(plotGroup, 'g', 'regions');\n\n if(!trace.connector || !trace.connector.visible) {\n group.remove();\n return;\n }\n\n var isHorizontal = (trace.orientation === 'h');\n\n var connectors = group.selectAll('g.region').data(Lib.identity);\n\n connectors.enter().append('g')\n .classed('region', true);\n\n connectors.exit().remove();\n\n var len = connectors.size();\n\n connectors.each(function(di, i) {\n // don't draw lines between nulls\n if(i !== len - 1 && !di.cNext) return;\n\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n\n var shape = '';\n\n if(x[3] !== undefined && y[3] !== undefined) {\n if(isHorizontal) {\n shape += 'M' + x[0] + ',' + y[1] + 'L' + x[2] + ',' + y[2] + 'H' + x[3] + 'L' + x[1] + ',' + y[1] + 'Z';\n } else {\n shape += 'M' + x[1] + ',' + y[1] + 'L' + x[2] + ',' + y[3] + 'V' + y[2] + 'L' + x[1] + ',' + y[0] + 'Z';\n }\n }\n\n Lib.ensureSingle(d3.select(this), 'path')\n .attr('d', shape)\n .call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n}\n\nfunction plotConnectorLines(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(traceLayer, cdModule, 'trace bars').each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n\n var group = Lib.ensureSingle(plotGroup, 'g', 'lines');\n\n if(!trace.connector || !trace.connector.visible || !trace.connector.line.width) {\n group.remove();\n return;\n }\n\n var isHorizontal = (trace.orientation === 'h');\n\n var connectors = group.selectAll('g.line').data(Lib.identity);\n\n connectors.enter().append('g')\n .classed('line', true);\n\n connectors.exit().remove();\n\n var len = connectors.size();\n\n connectors.each(function(di, i) {\n // don't draw lines between nulls\n if(i !== len - 1 && !di.cNext) return;\n\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n\n var shape = '';\n\n if(x[3] !== undefined && y[3] !== undefined) {\n if(isHorizontal) {\n shape += 'M' + x[0] + ',' + y[1] + 'L' + x[2] + ',' + y[2];\n shape += 'M' + x[1] + ',' + y[1] + 'L' + x[3] + ',' + y[2];\n } else {\n shape += 'M' + x[1] + ',' + y[1] + 'L' + x[2] + ',' + y[3];\n shape += 'M' + x[1] + ',' + y[0] + 'L' + x[2] + ',' + y[2];\n }\n }\n\n if(shape === '') shape = 'M0,0Z';\n\n Lib.ensureSingle(d3.select(this), 'path')\n .attr('d', shape)\n .call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n}\n\nfunction getXY(di, xa, ya, isHorizontal) {\n var s = [];\n var p = [];\n\n var sAxis = isHorizontal ? xa : ya;\n var pAxis = isHorizontal ? ya : xa;\n\n s[0] = sAxis.c2p(di.s0, true);\n p[0] = pAxis.c2p(di.p0, true);\n\n s[1] = sAxis.c2p(di.s1, true);\n p[1] = pAxis.c2p(di.p1, true);\n\n s[2] = sAxis.c2p(di.nextS0, true);\n p[2] = pAxis.c2p(di.nextP0, true);\n\n s[3] = sAxis.c2p(di.nextS1, true);\n p[3] = pAxis.c2p(di.nextP1, true);\n\n return isHorizontal ? [s, p] : [p, s];\n}\n\n\n/***/ }),\n\n/***/ \"34f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\nvar arrayEditor = __webpack_require__(\"a651\").arrayEditor;\n\nmodule.exports = {\n hasClickToShow: hasClickToShow,\n onClick: onClick\n};\n\n/*\n * hasClickToShow: does the given hoverData have ANY annotations which will\n * turn ON if we click here? (used by hover events to set cursor)\n *\n * gd: graphDiv\n * hoverData: a hoverData array, as included with the *plotly_hover* or\n * *plotly_click* events in the `points` attribute\n *\n * returns: boolean\n */\nfunction hasClickToShow(gd, hoverData) {\n var sets = getToggleSets(gd, hoverData);\n return sets.on.length > 0 || sets.explicitOff.length > 0;\n}\n\n/*\n * onClick: perform the toggling (via Plotly.update) implied by clicking\n * at this hoverData\n *\n * gd: graphDiv\n * hoverData: a hoverData array, as included with the *plotly_hover* or\n * *plotly_click* events in the `points` attribute\n *\n * returns: Promise that the update is complete\n */\nfunction onClick(gd, hoverData) {\n var toggleSets = getToggleSets(gd, hoverData);\n var onSet = toggleSets.on;\n var offSet = toggleSets.off.concat(toggleSets.explicitOff);\n var update = {};\n var annotationsOut = gd._fullLayout.annotations;\n var i, editHelpers;\n\n if(!(onSet.length || offSet.length)) return;\n\n for(i = 0; i < onSet.length; i++) {\n editHelpers = arrayEditor(gd.layout, 'annotations', annotationsOut[onSet[i]]);\n editHelpers.modifyItem('visible', true);\n Lib.extendFlat(update, editHelpers.getUpdateObj());\n }\n\n for(i = 0; i < offSet.length; i++) {\n editHelpers = arrayEditor(gd.layout, 'annotations', annotationsOut[offSet[i]]);\n editHelpers.modifyItem('visible', false);\n Lib.extendFlat(update, editHelpers.getUpdateObj());\n }\n\n return Registry.call('update', gd, {}, update);\n}\n\n/*\n * getToggleSets: find the annotations which will turn on or off at this\n * hoverData\n *\n * gd: graphDiv\n * hoverData: a hoverData array, as included with the *plotly_hover* or\n * *plotly_click* events in the `points` attribute\n *\n * returns: {\n * on: Array (indices of annotations to turn on),\n * off: Array (indices to turn off because you're not hovering on them),\n * explicitOff: Array (indices to turn off because you *are* hovering on them)\n * }\n */\nfunction getToggleSets(gd, hoverData) {\n var annotations = gd._fullLayout.annotations;\n var onSet = [];\n var offSet = [];\n var explicitOffSet = [];\n var hoverLen = (hoverData || []).length;\n\n var i, j, anni, showMode, pointj, xa, ya, toggleType;\n\n for(i = 0; i < annotations.length; i++) {\n anni = annotations[i];\n showMode = anni.clicktoshow;\n\n if(showMode) {\n for(j = 0; j < hoverLen; j++) {\n pointj = hoverData[j];\n xa = pointj.xaxis;\n ya = pointj.yaxis;\n\n if(xa._id === anni.xref &&\n ya._id === anni.yref &&\n xa.d2r(pointj.x) === clickData2r(anni._xclick, xa) &&\n ya.d2r(pointj.y) === clickData2r(anni._yclick, ya)\n ) {\n // match! toggle this annotation\n // regardless of its clicktoshow mode\n // but if it's onout mode, off is implicit\n if(anni.visible) {\n if(showMode === 'onout') toggleType = offSet;\n else toggleType = explicitOffSet;\n } else {\n toggleType = onSet;\n }\n toggleType.push(i);\n break;\n }\n }\n\n if(j === hoverLen) {\n // no match - only turn this annotation OFF, and only if\n // showmode is 'onout'\n if(anni.visible && showMode === 'onout') offSet.push(i);\n }\n }\n }\n\n return {on: onSet, off: offSet, explicitOff: explicitOffSet};\n}\n\n// to handle log axes until v2\nfunction clickData2r(d, ax) {\n return ax.type === 'log' ? ax.l2r(d) : ax.d2r(d);\n}\n\n\n/***/ }),\n\n/***/ \"3511\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar constraintMapping = __webpack_require__(\"11ab\");\nvar endPlus = __webpack_require__(\"bc6b\");\n\nmodule.exports = function emptyPathinfo(contours, plotinfo, cd0) {\n var contoursFinal = (contours.type === 'constraint') ?\n constraintMapping[contours._operation](contours.value) :\n contours;\n\n var cs = contoursFinal.size;\n var pathinfo = [];\n var end = endPlus(contoursFinal);\n\n var carpet = cd0.trace._carpetTrace;\n\n var basePathinfo = carpet ? {\n // store axes so we can convert to px\n xaxis: carpet.aaxis,\n yaxis: carpet.baxis,\n // full data arrays to use for interpolation\n x: cd0.a,\n y: cd0.b\n } : {\n xaxis: plotinfo.xaxis,\n yaxis: plotinfo.yaxis,\n x: cd0.x,\n y: cd0.y\n };\n\n for(var ci = contoursFinal.start; ci < end; ci += cs) {\n pathinfo.push(Lib.extendFlat({\n level: ci,\n // all the cells with nontrivial marching index\n crossings: {},\n // starting points on the edges of the lattice for each contour\n starts: [],\n // all unclosed paths (may have less items than starts,\n // if a path is closed by rounding)\n edgepaths: [],\n // all closed paths\n paths: [],\n z: cd0.z,\n smoothing: cd0.trace.line.smoothing\n }, basePathinfo));\n\n if(pathinfo.length > 1000) {\n Lib.warn('Too many contours, clipping at 1000', contours);\n break;\n }\n }\n return pathinfo;\n};\n\n\n/***/ }),\n\n/***/ \"351b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar toLogRange = __webpack_require__(\"f6b0\");\n\n/*\n * convertCoords: when converting an axis between log and linear\n * you need to alter any annotations on that axis to keep them\n * pointing at the same data point.\n * In v2.0 this will become obsolete\n *\n * gd: the plot div\n * ax: the axis being changed\n * newType: the type it's getting\n * doExtra: function(attr, val) from inside relayout that sets the attribute.\n * Use this to make the changes as it's aware if any other changes in the\n * same relayout call should override this conversion.\n */\nmodule.exports = function convertCoords(gd, ax, newType, doExtra) {\n ax = ax || {};\n\n var toLog = (newType === 'log') && (ax.type === 'linear');\n var fromLog = (newType === 'linear') && (ax.type === 'log');\n\n if(!(toLog || fromLog)) return;\n\n var annotations = gd._fullLayout.annotations;\n var axLetter = ax._id.charAt(0);\n var ann;\n var attrPrefix;\n\n function convert(attr) {\n var currentVal = ann[attr];\n var newVal = null;\n\n if(toLog) newVal = toLogRange(currentVal, ax.range);\n else newVal = Math.pow(10, currentVal);\n\n // if conversion failed, delete the value so it gets a default value\n if(!isNumeric(newVal)) newVal = null;\n\n doExtra(attrPrefix + attr, newVal);\n }\n\n for(var i = 0; i < annotations.length; i++) {\n ann = annotations[i];\n attrPrefix = 'annotations[' + i + '].';\n\n if(ann[axLetter + 'ref'] === ax._id) convert(axLetter);\n if(ann['a' + axLetter + 'ref'] === ax._id) convert('a' + axLetter);\n }\n};\n\n\n/***/ }),\n\n/***/ \"3560\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = boxIntersectIter\n\nvar pool = __webpack_require__(\"cea5\")\nvar bits = __webpack_require__(\"a48a\")\nvar bruteForce = __webpack_require__(\"b83d\")\nvar bruteForcePartial = bruteForce.partial\nvar bruteForceFull = bruteForce.full\nvar sweep = __webpack_require__(\"97e2\")\nvar findMedian = __webpack_require__(\"158b\")\nvar genPartition = __webpack_require__(\"8e58\")\n\n//Twiddle parameters\nvar BRUTE_FORCE_CUTOFF = 128 //Cut off for brute force search\nvar SCAN_CUTOFF = (1<<22) //Cut off for two way scan\nvar SCAN_COMPLETE_CUTOFF = (1<<22) \n\n//Partition functions\nvar partitionInteriorContainsInterval = genPartition(\n '!(lo>=p0)&&!(p1>=hi)', \n ['p0', 'p1'])\n\nvar partitionStartEqual = genPartition(\n 'lo===p0',\n ['p0'])\n\nvar partitionStartLessThan = genPartition(\n 'lo 0) {\n top -= 1\n\n var iptr = top * IFRAME_SIZE\n var axis = BOX_ISTACK[iptr]\n var redStart = BOX_ISTACK[iptr+1]\n var redEnd = BOX_ISTACK[iptr+2]\n var blueStart = BOX_ISTACK[iptr+3]\n var blueEnd = BOX_ISTACK[iptr+4]\n var state = BOX_ISTACK[iptr+5]\n\n var dptr = top * DFRAME_SIZE\n var lo = BOX_DSTACK[dptr]\n var hi = BOX_DSTACK[dptr+1]\n\n //Unpack state info\n var flip = (state & 1)\n var full = !!(state & 16)\n\n //Unpack indices\n var red = xBoxes\n var redIndex = xIndex\n var blue = yBoxes\n var blueIndex = yIndex\n if(flip) {\n red = yBoxes\n redIndex = yIndex\n blue = xBoxes\n blueIndex = xIndex\n }\n\n if(state & 2) {\n redEnd = partitionStartLessThan(\n d, axis,\n redStart, redEnd, red, redIndex,\n hi)\n if(redStart >= redEnd) {\n continue\n }\n }\n if(state & 4) {\n redStart = partitionEndLessThanEqual(\n d, axis,\n redStart, redEnd, red, redIndex,\n lo)\n if(redStart >= redEnd) {\n continue\n }\n }\n \n var redCount = redEnd - redStart\n var blueCount = blueEnd - blueStart\n\n if(full) {\n if(d * redCount * (redCount + blueCount) < SCAN_COMPLETE_CUTOFF) {\n retval = sweep.scanComplete(\n d, axis, visit, \n redStart, redEnd, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n continue\n }\n } else {\n if(d * Math.min(redCount, blueCount) < BRUTE_FORCE_CUTOFF) {\n //If input small, then use brute force\n retval = bruteForcePartial(\n d, axis, visit, flip,\n redStart, redEnd, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n continue\n } else if(d * redCount * blueCount < SCAN_CUTOFF) {\n //If input medium sized, then use sweep and prune\n retval = sweep.scanBipartite(\n d, axis, visit, flip, \n redStart, redEnd, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n continue\n }\n }\n \n //First, find all red intervals whose interior contains (lo,hi)\n var red0 = partitionInteriorContainsInterval(\n d, axis, \n redStart, redEnd, red, redIndex,\n lo, hi)\n\n //Lower dimensional case\n if(redStart < red0) {\n\n if(d * (red0 - redStart) < BRUTE_FORCE_CUTOFF) {\n //Special case for small inputs: use brute force\n retval = bruteForceFull(\n d, axis+1, visit,\n redStart, red0, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n } else if(axis === d-2) {\n if(flip) {\n retval = sweep.sweepBipartite(\n d, visit,\n blueStart, blueEnd, blue, blueIndex,\n redStart, red0, red, redIndex)\n } else {\n retval = sweep.sweepBipartite(\n d, visit,\n redStart, red0, red, redIndex,\n blueStart, blueEnd, blue, blueIndex)\n }\n if(retval !== void 0) {\n return retval\n }\n } else {\n iterPush(top++,\n axis+1,\n redStart, red0,\n blueStart, blueEnd,\n flip,\n -Infinity, Infinity)\n iterPush(top++,\n axis+1,\n blueStart, blueEnd,\n redStart, red0,\n flip^1,\n -Infinity, Infinity)\n }\n }\n\n //Divide and conquer phase\n if(red0 < redEnd) {\n\n //Cut blue into 3 parts:\n //\n // Points < mid point\n // Points = mid point\n // Points > mid point\n //\n var blue0 = findMedian(\n d, axis, \n blueStart, blueEnd, blue, blueIndex)\n var mid = blue[elemSize * blue0 + axis]\n var blue1 = partitionStartEqual(\n d, axis,\n blue0, blueEnd, blue, blueIndex,\n mid)\n\n //Right case\n if(blue1 < blueEnd) {\n iterPush(top++,\n axis,\n red0, redEnd,\n blue1, blueEnd,\n (flip|4) + (full ? 16 : 0),\n mid, hi)\n }\n\n //Left case\n if(blueStart < blue0) {\n iterPush(top++,\n axis,\n red0, redEnd,\n blueStart, blue0,\n (flip|2) + (full ? 16 : 0),\n lo, mid)\n }\n\n //Center case (the hard part)\n if(blue0 + 1 === blue1) {\n //Optimization: Range with exactly 1 point, use a brute force scan\n if(full) {\n retval = onePointFull(\n d, axis, visit,\n red0, redEnd, red, redIndex,\n blue0, blue, blueIndex[blue0])\n } else {\n retval = onePointPartial(\n d, axis, visit, flip,\n red0, redEnd, red, redIndex,\n blue0, blue, blueIndex[blue0])\n }\n if(retval !== void 0) {\n return retval\n }\n } else if(blue0 < blue1) {\n var red1\n if(full) {\n //If full intersection, need to handle special case\n red1 = partitionContainsPoint(\n d, axis,\n red0, redEnd, red, redIndex,\n mid)\n if(red0 < red1) {\n var redX = partitionStartEqual(\n d, axis,\n red0, red1, red, redIndex,\n mid)\n if(axis === d-2) {\n //Degenerate sweep intersection:\n // [red0, redX] with [blue0, blue1]\n if(red0 < redX) {\n retval = sweep.sweepComplete(\n d, visit,\n red0, redX, red, redIndex,\n blue0, blue1, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n }\n\n //Normal sweep intersection:\n // [redX, red1] with [blue0, blue1]\n if(redX < red1) {\n retval = sweep.sweepBipartite(\n d, visit,\n redX, red1, red, redIndex,\n blue0, blue1, blue, blueIndex)\n if(retval !== void 0) {\n return retval\n }\n }\n } else {\n if(red0 < redX) {\n iterPush(top++,\n axis+1,\n red0, redX,\n blue0, blue1,\n 16,\n -Infinity, Infinity)\n }\n if(redX < red1) {\n iterPush(top++,\n axis+1,\n redX, red1,\n blue0, blue1,\n 0,\n -Infinity, Infinity)\n iterPush(top++,\n axis+1,\n blue0, blue1,\n redX, red1,\n 1,\n -Infinity, Infinity)\n }\n }\n }\n } else {\n if(flip) {\n red1 = partitionContainsPointProper(\n d, axis,\n red0, redEnd, red, redIndex,\n mid)\n } else {\n red1 = partitionContainsPoint(\n d, axis,\n red0, redEnd, red, redIndex,\n mid)\n }\n if(red0 < red1) {\n if(axis === d-2) {\n if(flip) {\n retval = sweep.sweepBipartite(\n d, visit,\n blue0, blue1, blue, blueIndex,\n red0, red1, red, redIndex)\n } else {\n retval = sweep.sweepBipartite(\n d, visit,\n red0, red1, red, redIndex,\n blue0, blue1, blue, blueIndex)\n }\n } else {\n iterPush(top++,\n axis+1,\n red0, red1,\n blue0, blue1,\n flip,\n -Infinity, Infinity)\n iterPush(top++,\n axis+1,\n blue0, blue1,\n red0, red1,\n flip^1,\n -Infinity, Infinity)\n }\n }\n }\n }\n }\n }\n}\n\n/***/ }),\n\n/***/ \"35b1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar determinant = __webpack_require__(\"c2ef\")\n\nvar NUM_EXPAND = 6\n\nfunction generateSolver(n) {\n var funcName = \"robustLinearSolve\" + n + \"d\"\n var code = [\"function \", funcName, \"(A,b){return [\"]\n for(var i=0; i 0) {\n code.push(\",\")\n }\n code.push(\"[\")\n for(var k=0; k 0) {\n code.push(\",\")\n }\n if(k === i) {\n code.push(\"+b[\", j, \"]\")\n } else {\n code.push(\"+A[\", j, \"][\", k, \"]\")\n }\n }\n code.push(\"]\")\n }\n code.push(\"]),\")\n }\n code.push(\"det(A)]}return \", funcName)\n var proc = new Function(\"det\", code.join(\"\"))\n if(n < 6) {\n return proc(determinant[n])\n }\n return proc(determinant)\n}\n\nfunction robustLinearSolve0d() {\n return [ 0 ]\n}\n\nfunction robustLinearSolve1d(A, b) {\n return [ [ b[0] ], [ A[0][0] ] ]\n}\n\nvar CACHE = [\n robustLinearSolve0d,\n robustLinearSolve1d\n]\n\nfunction generateDispatch() {\n while(CACHE.length < NUM_EXPAND) {\n CACHE.push(generateSolver(CACHE.length))\n }\n var procArgs = []\n var code = [\"function dispatchLinearSolve(A,b){switch(A.length){\"]\n for(var i=0; i>> 24\r\n\tvar g = (n & 0x00ff0000) >>> 16\r\n\tvar b = (n & 0x0000ff00) >>> 8\r\n\tvar a = n & 0x000000ff\r\n\r\n\tif (normalized === false) return [r, g, b, a]\r\n\r\n\treturn [r/255, g/255, b/255, a/255]\r\n}\r\n\n\n/***/ }),\n\n/***/ \"3642\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toString = Object.prototype.toString;\n\nmodule.exports = function (x) {\n\tvar prototype;\n\treturn toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n};\n\n\n/***/ }),\n\n/***/ \"36ea\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar barPlot = __webpack_require__(\"c791\");\nvar clearMinTextSize = __webpack_require__(\"93a6\").clearMinTextSize;\n\nmodule.exports = function plot(gd, plotinfo, cdModule, traceLayer) {\n var fullLayout = gd._fullLayout;\n\n clearMinTextSize('waterfall', fullLayout);\n\n barPlot.plot(gd, plotinfo, cdModule, traceLayer, {\n mode: fullLayout.waterfallmode,\n norm: fullLayout.waterfallmode,\n gap: fullLayout.waterfallgap,\n groupgap: fullLayout.waterfallgroupgap\n });\n\n plotConnectors(gd, plotinfo, cdModule, traceLayer);\n};\n\nfunction plotConnectors(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(traceLayer, cdModule, 'trace bars').each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n\n var group = Lib.ensureSingle(plotGroup, 'g', 'lines');\n\n if(!trace.connector || !trace.connector.visible) {\n group.remove();\n return;\n }\n\n var isHorizontal = (trace.orientation === 'h');\n var mode = trace.connector.mode;\n\n var connectors = group.selectAll('g.line').data(Lib.identity);\n\n connectors.enter().append('g')\n .classed('line', true);\n\n connectors.exit().remove();\n\n var len = connectors.size();\n\n connectors.each(function(di, i) {\n // don't draw lines between nulls\n if(i !== len - 1 && !di.cNext) return;\n\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n\n var shape = '';\n\n if(mode === 'spanning') {\n if(!di.isSum && i > 0) {\n if(isHorizontal) {\n shape += 'M' + x[0] + ',' + y[1] + 'V' + y[0];\n } else {\n shape += 'M' + x[1] + ',' + y[0] + 'H' + x[0];\n }\n }\n }\n\n if(mode !== 'between') {\n if(di.isSum || i < len - 1) {\n if(isHorizontal) {\n shape += 'M' + x[1] + ',' + y[0] + 'V' + y[1];\n } else {\n shape += 'M' + x[0] + ',' + y[1] + 'H' + x[1];\n }\n }\n }\n\n if(x[2] !== undefined && y[2] !== undefined) {\n if(isHorizontal) {\n shape += 'M' + x[1] + ',' + y[1] + 'V' + y[2];\n } else {\n shape += 'M' + x[1] + ',' + y[1] + 'H' + x[2];\n }\n }\n\n if(shape === '') shape = 'M0,0Z';\n\n Lib.ensureSingle(d3.select(this), 'path')\n .attr('d', shape)\n .call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n}\n\nfunction getXY(di, xa, ya, isHorizontal) {\n var s = [];\n var p = [];\n\n var sAxis = isHorizontal ? xa : ya;\n var pAxis = isHorizontal ? ya : xa;\n\n s[0] = sAxis.c2p(di.s0, true);\n p[0] = pAxis.c2p(di.p0, true);\n\n s[1] = sAxis.c2p(di.s1, true);\n p[1] = pAxis.c2p(di.p1, true);\n\n s[2] = sAxis.c2p(di.nextS0, true);\n p[2] = pAxis.c2p(di.nextP0, true);\n\n return isHorizontal ? [s, p] : [p, s];\n}\n\n\n/***/ }),\n\n/***/ \"36fc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar boxLayoutAttrs = __webpack_require__(\"60dc\");\nvar extendFlat = __webpack_require__(\"fc26\").extendFlat;\n\nmodule.exports = {\n violinmode: extendFlat({}, boxLayoutAttrs.boxmode, {\n \n }),\n violingap: extendFlat({}, boxLayoutAttrs.boxgap, {\n \n }),\n violingroupgap: extendFlat({}, boxLayoutAttrs.boxgroupgap, {\n \n })\n};\n\n\n/***/ }),\n\n/***/ \"371e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Loggers = __webpack_require__(\"ae13\");\nvar noop = __webpack_require__(\"b778\");\nvar pushUnique = __webpack_require__(\"5a1b\");\nvar isPlainObject = __webpack_require__(\"1385\");\nvar addStyleRule = __webpack_require__(\"1b88\").addStyleRule;\nvar ExtendModule = __webpack_require__(\"9092\");\n\nvar basePlotAttributes = __webpack_require__(\"a876\");\nvar baseLayoutAttributes = __webpack_require__(\"a685\");\n\nvar extendFlat = ExtendModule.extendFlat;\nvar extendDeepAll = ExtendModule.extendDeepAll;\n\nexports.modules = {};\nexports.allCategories = {};\nexports.allTypes = [];\nexports.subplotsRegistry = {};\nexports.transformsRegistry = {};\nexports.componentsRegistry = {};\nexports.layoutArrayContainers = [];\nexports.layoutArrayRegexes = [];\nexports.traceLayoutAttributes = {};\nexports.localeRegistry = {};\nexports.apiMethodRegistry = {};\nexports.collectableSubplotTypes = null;\n\n/**\n * Top-level register routine, exported as Plotly.register\n *\n * @param {object array or array of objects} _modules :\n * module object or list of module object to register.\n *\n * A valid `moduleType: 'trace'` module has fields:\n * - name {string} : the trace type\n * - categories {array} : categories associated with this trace type,\n * tested with Register.traceIs()\n * - meta {object} : meta info (mostly for plot-schema)\n *\n * A valid `moduleType: 'locale'` module has fields:\n * - name {string} : the locale name. Should be a 2-digit language string ('en', 'de')\n * optionally with a country/region code ('en-GB', 'de-CH'). If a country\n * code is used but the base language locale has not yet been supplied,\n * we will use this locale for the base as well.\n * - dictionary {object} : the dictionary mapping input strings to localized strings\n * generally the keys should be the literal input strings, but\n * if default translations are provided you can use any string as a key.\n * - format {object} : a `d3.locale` format specifier for this locale\n * any omitted keys we'll fall back on en-US.\n *\n * A valid `moduleType: 'transform'` module has fields:\n * - name {string} : transform name\n * - transform {function} : default-level transform function\n * - calcTransform {function} : calc-level transform function\n * - attributes {object} : transform attributes declarations\n * - supplyDefaults {function} : attributes default-supply function\n *\n * A valid `moduleType: 'component'` module has fields:\n * - name {string} : the component name, used it with Register.getComponentMethod()\n * to employ component method.\n *\n * A valid `moduleType: 'apiMethod'` module has fields:\n * - name {string} : the api method name.\n * - fn {function} : the api method called with Register.call();\n *\n */\nexports.register = function register(_modules) {\n exports.collectableSubplotTypes = null;\n\n if(!_modules) {\n throw new Error('No argument passed to Plotly.register.');\n } else if(_modules && !Array.isArray(_modules)) {\n _modules = [_modules];\n }\n\n for(var i = 0; i < _modules.length; i++) {\n var newModule = _modules[i];\n\n if(!newModule) {\n throw new Error('Invalid module was attempted to be registered!');\n }\n\n switch(newModule.moduleType) {\n case 'trace':\n registerTraceModule(newModule);\n break;\n case 'transform':\n registerTransformModule(newModule);\n break;\n case 'component':\n registerComponentModule(newModule);\n break;\n case 'locale':\n registerLocale(newModule);\n break;\n case 'apiMethod':\n var name = newModule.name;\n exports.apiMethodRegistry[name] = newModule.fn;\n break;\n default:\n throw new Error('Invalid module was attempted to be registered!');\n }\n }\n};\n\n/**\n * Get registered module using trace object or trace type\n *\n * @param {object||string} trace\n * trace object with prop 'type' or trace type as a string\n * @return {object}\n * module object corresponding to trace type\n */\nexports.getModule = function(trace) {\n var _module = exports.modules[getTraceType(trace)];\n if(!_module) return false;\n return _module._module;\n};\n\n/**\n * Determine if this trace type is in a given category\n *\n * @param {object||string} traceType\n * a trace (object) or trace type (string)\n * @param {string} category\n * category in question\n * @return {boolean}\n */\nexports.traceIs = function(traceType, category) {\n traceType = getTraceType(traceType);\n\n // old plot.ly workspace hack, nothing to see here\n if(traceType === 'various') return false;\n\n var _module = exports.modules[traceType];\n\n if(!_module) {\n if(traceType && traceType !== 'area') {\n Loggers.log('Unrecognized trace type ' + traceType + '.');\n }\n\n _module = exports.modules[basePlotAttributes.type.dflt];\n }\n\n return !!_module.categories[category];\n};\n\n/**\n * Determine if this trace has a transform of the given type and return\n * array of matching indices.\n *\n * @param {object} data\n * a trace object (member of data or fullData)\n * @param {string} type\n * type of trace to test\n * @return {array}\n * array of matching indices. If none found, returns []\n */\nexports.getTransformIndices = function(data, type) {\n var indices = [];\n var transforms = data.transforms || [];\n for(var i = 0; i < transforms.length; i++) {\n if(transforms[i].type === type) {\n indices.push(i);\n }\n }\n return indices;\n};\n\n/**\n * Determine if this trace has a transform of the given type\n *\n * @param {object} data\n * a trace object (member of data or fullData)\n * @param {string} type\n * type of trace to test\n * @return {boolean}\n */\nexports.hasTransform = function(data, type) {\n var transforms = data.transforms || [];\n for(var i = 0; i < transforms.length; i++) {\n if(transforms[i].type === type) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * Retrieve component module method. Falls back on noop if either the\n * module or the method is missing, so the result can always be safely called\n *\n * @param {string} name\n * name of component (as declared in component module)\n * @param {string} method\n * name of component module method\n * @return {function}\n */\nexports.getComponentMethod = function(name, method) {\n var _module = exports.componentsRegistry[name];\n\n if(!_module) return noop;\n return _module[method] || noop;\n};\n\n/**\n * Call registered api method.\n *\n * @param {string} name : api method name\n * @param {...array} args : arguments passed to api method\n * @return {any} : returns api method output\n */\nexports.call = function() {\n var name = arguments[0];\n var args = [].slice.call(arguments, 1);\n return exports.apiMethodRegistry[name].apply(null, args);\n};\n\nfunction registerTraceModule(_module) {\n var thisType = _module.name;\n var categoriesIn = _module.categories;\n var meta = _module.meta;\n\n if(exports.modules[thisType]) {\n Loggers.log('Type ' + thisType + ' already registered');\n return;\n }\n\n if(!exports.subplotsRegistry[_module.basePlotModule.name]) {\n registerSubplot(_module.basePlotModule);\n }\n\n var categoryObj = {};\n for(var i = 0; i < categoriesIn.length; i++) {\n categoryObj[categoriesIn[i]] = true;\n exports.allCategories[categoriesIn[i]] = true;\n }\n\n exports.modules[thisType] = {\n _module: _module,\n categories: categoryObj\n };\n\n if(meta && Object.keys(meta).length) {\n exports.modules[thisType].meta = meta;\n }\n\n exports.allTypes.push(thisType);\n\n for(var componentName in exports.componentsRegistry) {\n mergeComponentAttrsToTrace(componentName, thisType);\n }\n\n /*\n * Collect all trace layout attributes in one place for easier lookup later\n * but don't merge them into the base schema as it would confuse the docs\n * (at least after https://github.com/plotly/documentation/issues/202 gets done!)\n */\n if(_module.layoutAttributes) {\n extendFlat(exports.traceLayoutAttributes, _module.layoutAttributes);\n }\n\n var basePlotModule = _module.basePlotModule;\n var bpmName = basePlotModule.name;\n\n // add mapbox-gl CSS here to avoid console warning on instantiation\n if(bpmName === 'mapbox') {\n var styleRules = basePlotModule.constants.styleRules;\n for(var k in styleRules) {\n addStyleRule('.js-plotly-plot .plotly .mapboxgl-' + k, styleRules[k]);\n }\n }\n\n // if `plotly-geo-assets.js` is not included,\n // add `PlotlyGeoAssets` global to stash references to all fetched\n // topojson / geojson data\n if((bpmName === 'geo' || bpmName === 'mapbox') &&\n (typeof window !== undefined && window.PlotlyGeoAssets === undefined)\n ) {\n window.PlotlyGeoAssets = {topojson: {}};\n }\n}\n\nfunction registerSubplot(_module) {\n var plotType = _module.name;\n\n if(exports.subplotsRegistry[plotType]) {\n Loggers.log('Plot type ' + plotType + ' already registered.');\n return;\n }\n\n // relayout array handling will look for component module methods with this\n // name and won't find them because this is a subplot module... but that\n // should be fine, it will just fall back on redrawing the plot.\n findArrayRegexps(_module);\n\n // not sure what's best for the 'cartesian' type at this point\n exports.subplotsRegistry[plotType] = _module;\n\n for(var componentName in exports.componentsRegistry) {\n mergeComponentAttrsToSubplot(componentName, _module.name);\n }\n}\n\nfunction registerComponentModule(_module) {\n if(typeof _module.name !== 'string') {\n throw new Error('Component module *name* must be a string.');\n }\n\n var name = _module.name;\n exports.componentsRegistry[name] = _module;\n\n if(_module.layoutAttributes) {\n if(_module.layoutAttributes._isLinkedToArray) {\n pushUnique(exports.layoutArrayContainers, name);\n }\n findArrayRegexps(_module);\n }\n\n for(var traceType in exports.modules) {\n mergeComponentAttrsToTrace(name, traceType);\n }\n\n for(var subplotName in exports.subplotsRegistry) {\n mergeComponentAttrsToSubplot(name, subplotName);\n }\n\n for(var transformType in exports.transformsRegistry) {\n mergeComponentAttrsToTransform(name, transformType);\n }\n\n if(_module.schema && _module.schema.layout) {\n extendDeepAll(baseLayoutAttributes, _module.schema.layout);\n }\n}\n\nfunction registerTransformModule(_module) {\n if(typeof _module.name !== 'string') {\n throw new Error('Transform module *name* must be a string.');\n }\n\n var prefix = 'Transform module ' + _module.name;\n var hasTransform = typeof _module.transform === 'function';\n var hasCalcTransform = typeof _module.calcTransform === 'function';\n\n if(!hasTransform && !hasCalcTransform) {\n throw new Error(prefix + ' is missing a *transform* or *calcTransform* method.');\n }\n if(hasTransform && hasCalcTransform) {\n Loggers.log([\n prefix + ' has both a *transform* and *calcTransform* methods.',\n 'Please note that all *transform* methods are executed',\n 'before all *calcTransform* methods.'\n ].join(' '));\n }\n if(!isPlainObject(_module.attributes)) {\n Loggers.log(prefix + ' registered without an *attributes* object.');\n }\n if(typeof _module.supplyDefaults !== 'function') {\n Loggers.log(prefix + ' registered without a *supplyDefaults* method.');\n }\n\n exports.transformsRegistry[_module.name] = _module;\n\n for(var componentName in exports.componentsRegistry) {\n mergeComponentAttrsToTransform(componentName, _module.name);\n }\n}\n\nfunction registerLocale(_module) {\n var locale = _module.name;\n var baseLocale = locale.split('-')[0];\n\n var newDict = _module.dictionary;\n var newFormat = _module.format;\n var hasDict = newDict && Object.keys(newDict).length;\n var hasFormat = newFormat && Object.keys(newFormat).length;\n\n var locales = exports.localeRegistry;\n\n var localeObj = locales[locale];\n if(!localeObj) locales[locale] = localeObj = {};\n\n // Should we use this dict for the base locale?\n // In case we're overwriting a previous dict for this locale, check\n // whether the base matches the full locale dict now. If we're not\n // overwriting, locales[locale] is undefined so this just checks if\n // baseLocale already had a dict or not.\n // Same logic for dateFormats\n if(baseLocale !== locale) {\n var baseLocaleObj = locales[baseLocale];\n if(!baseLocaleObj) locales[baseLocale] = baseLocaleObj = {};\n\n if(hasDict && baseLocaleObj.dictionary === localeObj.dictionary) {\n baseLocaleObj.dictionary = newDict;\n }\n if(hasFormat && baseLocaleObj.format === localeObj.format) {\n baseLocaleObj.format = newFormat;\n }\n }\n\n if(hasDict) localeObj.dictionary = newDict;\n if(hasFormat) localeObj.format = newFormat;\n}\n\nfunction findArrayRegexps(_module) {\n if(_module.layoutAttributes) {\n var arrayAttrRegexps = _module.layoutAttributes._arrayAttrRegexps;\n if(arrayAttrRegexps) {\n for(var i = 0; i < arrayAttrRegexps.length; i++) {\n pushUnique(exports.layoutArrayRegexes, arrayAttrRegexps[i]);\n }\n }\n }\n}\n\nfunction mergeComponentAttrsToTrace(componentName, traceType) {\n var componentSchema = exports.componentsRegistry[componentName].schema;\n if(!componentSchema || !componentSchema.traces) return;\n\n var traceAttrs = componentSchema.traces[traceType];\n if(traceAttrs) {\n extendDeepAll(exports.modules[traceType]._module.attributes, traceAttrs);\n }\n}\n\nfunction mergeComponentAttrsToTransform(componentName, transformType) {\n var componentSchema = exports.componentsRegistry[componentName].schema;\n if(!componentSchema || !componentSchema.transforms) return;\n\n var transformAttrs = componentSchema.transforms[transformType];\n if(transformAttrs) {\n extendDeepAll(exports.transformsRegistry[transformType].attributes, transformAttrs);\n }\n}\n\nfunction mergeComponentAttrsToSubplot(componentName, subplotName) {\n var componentSchema = exports.componentsRegistry[componentName].schema;\n if(!componentSchema || !componentSchema.subplots) return;\n\n var subplotModule = exports.subplotsRegistry[subplotName];\n var subplotAttrs = subplotModule.layoutAttributes;\n var subplotAttr = subplotModule.attr === 'subplot' ? subplotModule.name : subplotModule.attr;\n if(Array.isArray(subplotAttr)) subplotAttr = subplotAttr[0];\n\n var componentLayoutAttrs = componentSchema.subplots[subplotAttr];\n if(subplotAttrs && componentLayoutAttrs) {\n extendDeepAll(subplotAttrs, componentLayoutAttrs);\n }\n}\n\nfunction getTraceType(traceType) {\n if(typeof traceType === 'object') traceType = traceType.type;\n return traceType;\n}\n\n\n/***/ }),\n\n/***/ \"372f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"1735\");\n\n\n/***/ }),\n\n/***/ \"375c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = typeof navigator !== 'undefined' &&\n\t(/MSIE/.test(navigator.userAgent) || /Trident\\//.test(navigator.appVersion));\n\n\n/***/ }),\n\n/***/ \"37bf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar isArray1D = __webpack_require__(\"fc26\").isArray1D;\n\nmodule.exports = function handleXYDefaults(traceIn, traceOut, coerce) {\n var x = coerce('x');\n var hasX = x && x.length;\n var y = coerce('y');\n var hasY = y && y.length;\n if(!hasX && !hasY) return false;\n\n traceOut._cheater = !x;\n\n if((!hasX || isArray1D(x)) && (!hasY || isArray1D(y))) {\n var len = hasX ? x.length : Infinity;\n if(hasY) len = Math.min(len, y.length);\n if(traceOut.a && traceOut.a.length) len = Math.min(len, traceOut.a.length);\n if(traceOut.b && traceOut.b.length) len = Math.min(len, traceOut.b.length);\n traceOut._length = len;\n } else traceOut._length = null;\n\n return true;\n};\n\n\n/***/ }),\n\n/***/ \"37cd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*eslint new-cap:0*/\nvar dtype = __webpack_require__(\"7831\")\n\nmodule.exports = flattenVertexData\n\nfunction flattenVertexData (data, output, offset) {\n if (!data) throw new TypeError('must specify data as first parameter')\n offset = +(offset || 0) | 0\n\n if (Array.isArray(data) && (data[0] && typeof data[0][0] === 'number')) {\n var dim = data[0].length\n var length = data.length * dim\n var i, j, k, l\n\n // no output specified, create a new typed array\n if (!output || typeof output === 'string') {\n output = new (dtype(output || 'float32'))(length + offset)\n }\n\n var dstLength = output.length - offset\n if (length !== dstLength) {\n throw new Error('source length ' + length + ' (' + dim + 'x' + data.length + ')' +\n ' does not match destination length ' + dstLength)\n }\n\n for (i = 0, k = offset; i < data.length; i++) {\n for (j = 0; j < dim; j++) {\n output[k++] = data[i][j] === null ? NaN : data[i][j]\n }\n }\n } else {\n if (!output || typeof output === 'string') {\n // no output, create a new one\n var Ctor = dtype(output || 'float32')\n\n // handle arrays separately due to possible nulls\n if (Array.isArray(data) || output === 'array') {\n output = new Ctor(data.length + offset)\n for (i = 0, k = offset, l = output.length; k < l; k++, i++) {\n output[k] = data[i] === null ? NaN : data[i]\n }\n } else {\n if (offset === 0) {\n output = new Ctor(data)\n } else {\n output = new Ctor(data.length + offset)\n\n output.set(data, offset)\n }\n }\n } else {\n // store output in existing array\n output.set(data, offset)\n }\n }\n\n return output\n}\n\n\n/***/ }),\n\n/***/ \"37d1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\n/**\n * Factory function for checking component arrays for subplot references.\n *\n * @param {string} containerArrayName: the top-level array in gd.layout to check\n * If an item in this container is found that references a cartesian x and/or y axis,\n * ensure cartesian is marked as a base plot module and record the axes (and subplot\n * if both refs are axes) in gd._fullLayout\n *\n * @return {function}: with args layoutIn (gd.layout) and layoutOut (gd._fullLayout)\n * as expected of a component includeBasePlot method\n */\nmodule.exports = function makeIncludeComponents(containerArrayName) {\n return function includeComponents(layoutIn, layoutOut) {\n var array = layoutIn[containerArrayName];\n if(!Array.isArray(array)) return;\n\n var Cartesian = Registry.subplotsRegistry.cartesian;\n var idRegex = Cartesian.idRegex;\n var subplots = layoutOut._subplots;\n var xaList = subplots.xaxis;\n var yaList = subplots.yaxis;\n var cartesianList = subplots.cartesian;\n var hasCartesianOrGL2D = layoutOut._has('cartesian') || layoutOut._has('gl2d');\n\n for(var i = 0; i < array.length; i++) {\n var itemi = array[i];\n if(!Lib.isPlainObject(itemi)) continue;\n\n var xref = itemi.xref;\n var yref = itemi.yref;\n\n var hasXref = idRegex.x.test(xref);\n var hasYref = idRegex.y.test(yref);\n if(hasXref || hasYref) {\n if(!hasCartesianOrGL2D) Lib.pushUnique(layoutOut._basePlotModules, Cartesian);\n\n var newAxis = false;\n if(hasXref && xaList.indexOf(xref) === -1) {\n xaList.push(xref);\n newAxis = true;\n }\n if(hasYref && yaList.indexOf(yref) === -1) {\n yaList.push(yref);\n newAxis = true;\n }\n\n /*\n * Notice the logic here: only add a subplot for a component if\n * it's referencing both x and y axes AND it's creating a new axis\n * so for example if your plot already has xy and x2y2, an annotation\n * on x2y or xy2 will not create a new subplot.\n */\n if(newAxis && hasXref && hasYref) {\n cartesianList.push(xref + yref);\n }\n }\n }\n };\n};\n\n\n/***/ }),\n\n/***/ \"37e3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nmodule.exports = {\n barmode: {\n valType: 'enumerated',\n values: ['stack', 'group', 'overlay', 'relative'],\n dflt: 'group',\n \n editType: 'calc',\n \n },\n barnorm: {\n valType: 'enumerated',\n values: ['', 'fraction', 'percent'],\n dflt: '',\n \n editType: 'calc',\n \n },\n bargap: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'calc',\n \n },\n bargroupgap: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0,\n \n editType: 'calc',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"37e8\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(\"83ab\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar anObject = __webpack_require__(\"825a\");\nvar objectKeys = __webpack_require__(\"df75\");\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"3802\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Color = __webpack_require__(\"d115\");\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\n\nmodule.exports = function fillColorDefaults(traceIn, traceOut, defaultColor, coerce) {\n var inheritColorFromMarker = false;\n\n if(traceOut.marker) {\n // don't try to inherit a color array\n var markerColor = traceOut.marker.color;\n var markerLineColor = (traceOut.marker.line || {}).color;\n\n if(markerColor && !isArrayOrTypedArray(markerColor)) {\n inheritColorFromMarker = markerColor;\n } else if(markerLineColor && !isArrayOrTypedArray(markerLineColor)) {\n inheritColorFromMarker = markerLineColor;\n }\n }\n\n coerce('fillcolor', Color.addOpacity(\n (traceOut.line || {}).color ||\n inheritColorFromMarker ||\n defaultColor, 0.5\n ));\n};\n\n\n/***/ }),\n\n/***/ \"388d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"feb0\");\n\n\n/***/ }),\n\n/***/ \"38eb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar glslify = __webpack_require__(\"e98f\")\n\nvar triVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, normal;\\nattribute vec4 color;\\nattribute vec2 uv;\\n\\nuniform mat4 model\\n , view\\n , projection\\n , inverseModel;\\nuniform vec3 eyePosition\\n , lightPosition;\\n\\nvarying vec3 f_normal\\n , f_lightDirection\\n , f_eyeDirection\\n , f_data;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvec4 project(vec3 p) {\\n return projection * view * model * vec4(p, 1.0);\\n}\\n\\nvoid main() {\\n gl_Position = project(position);\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * vec4(position , 1.0);\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\\n\\n f_color = color;\\n f_data = position;\\n f_uv = uv;\\n}\\n\"])\nvar triFragSrc = glslify([\"#extension GL_OES_standard_derivatives : enable\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat cookTorranceSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness,\\n float fresnel) {\\n\\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\n\\n //Half angle vector\\n vec3 H = normalize(lightDirection + viewDirection);\\n\\n //Geometric term\\n float NdotH = max(dot(surfaceNormal, H), 0.0);\\n float VdotH = max(dot(viewDirection, H), 0.000001);\\n float LdotH = max(dot(lightDirection, H), 0.000001);\\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\\n float G = min(1.0, min(G1, G2));\\n \\n //Distribution term\\n float D = beckmannDistribution(NdotH, roughness);\\n\\n //Fresnel term\\n float F = pow(1.0 - VdotN, fresnel);\\n\\n //Multiply terms and done\\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\\n}\\n\\n//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float roughness\\n , fresnel\\n , kambient\\n , kdiffuse\\n , kspecular;\\nuniform sampler2D texture;\\n\\nvarying vec3 f_normal\\n , f_lightDirection\\n , f_eyeDirection\\n , f_data;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (f_color.a == 0.0 ||\\n outOfRange(clipBounds[0], clipBounds[1], f_data)\\n ) discard;\\n\\n vec3 N = normalize(f_normal);\\n vec3 L = normalize(f_lightDirection);\\n vec3 V = normalize(f_eyeDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\\n //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d\\n\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv);\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = litColor * f_color.a;\\n}\\n\"])\nvar edgeVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 uv;\\n\\nuniform mat4 model, view, projection;\\n\\nvarying vec4 f_color;\\nvarying vec3 f_data;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n f_color = color;\\n f_data = position;\\n f_uv = uv;\\n}\"])\nvar edgeFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform sampler2D texture;\\nuniform float opacity;\\n\\nvarying vec4 f_color;\\nvarying vec3 f_data;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\\n\\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\n}\"])\nvar pointVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 uv;\\nattribute float pointSize;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0);\\n } else {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n }\\n gl_PointSize = pointSize;\\n f_color = color;\\n f_uv = uv;\\n}\"])\nvar pointFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform sampler2D texture;\\nuniform float opacity;\\n\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5);\\n if(dot(pointR, pointR) > 0.25) {\\n discard;\\n }\\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\n}\"])\nvar pickVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n f_id = id;\\n f_position = position;\\n}\"])\nvar pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n\\n gl_FragColor = vec4(pickId, f_id.xyz);\\n}\"])\nvar pickPointVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute float pointSize;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0.0, 0.0, 0.0, 0.0);\\n } else {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n gl_PointSize = pointSize;\\n }\\n f_id = id;\\n f_position = position;\\n}\"])\nvar contourVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\n\\nuniform mat4 model, view, projection;\\n\\nvoid main() {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n}\"])\nvar contourFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec3 contourColor;\\n\\nvoid main() {\\n gl_FragColor = vec4(contourColor, 1.0);\\n}\\n\"])\n\nexports.meshShader = {\n vertex: triVertSrc,\n fragment: triFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'normal', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'uv', type: 'vec2'}\n ]\n}\nexports.wireShader = {\n vertex: edgeVertSrc,\n fragment: edgeFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'uv', type: 'vec2'}\n ]\n}\nexports.pointShader = {\n vertex: pointVertSrc,\n fragment: pointFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'uv', type: 'vec2'},\n {name: 'pointSize', type: 'float'}\n ]\n}\nexports.pickShader = {\n vertex: pickVertSrc,\n fragment: pickFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'id', type: 'vec4'}\n ]\n}\nexports.pointPickShader = {\n vertex: pickPointVertSrc,\n fragment: pickFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'},\n {name: 'pointSize', type: 'float'},\n {name: 'id', type: 'vec4'}\n ]\n}\nexports.contourShader = {\n vertex: contourVertSrc,\n fragment: contourFragSrc,\n attributes: [\n {name: 'position', type: 'vec3'}\n ]\n}\n\n\n/***/ }),\n\n/***/ \"391b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Fx = __webpack_require__(\"a5c4\");\nvar Registry = __webpack_require__(\"371e\");\nvar getTraceColor = __webpack_require__(\"feed\");\nvar Color = __webpack_require__(\"d115\");\nvar fillText = Lib.fillText;\n\nmodule.exports = function hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var xpx = xa.c2p(xval);\n var ypx = ya.c2p(yval);\n var pt = [xpx, ypx];\n var hoveron = trace.hoveron || '';\n var minRad = (trace.mode.indexOf('markers') !== -1) ? 3 : 0.5;\n\n // look for points to hover on first, then take fills only if we\n // didn't find a point\n if(hoveron.indexOf('points') !== -1) {\n var dx = function(di) {\n // dx and dy are used in compare modes - here we want to always\n // prioritize the closest data point, at least as long as markers are\n // the same size or nonexistent, but still try to prioritize small markers too.\n var rad = Math.max(3, di.mrc || 0);\n var kink = 1 - 1 / rad;\n var dxRaw = Math.abs(xa.c2p(di.x) - xpx);\n var d = (dxRaw < rad) ? (kink * dxRaw / rad) : (dxRaw - rad + kink);\n return d;\n };\n var dy = function(di) {\n var rad = Math.max(3, di.mrc || 0);\n var kink = 1 - 1 / rad;\n var dyRaw = Math.abs(ya.c2p(di.y) - ypx);\n return (dyRaw < rad) ? (kink * dyRaw / rad) : (dyRaw - rad + kink);\n };\n var dxy = function(di) {\n // scatter points: d.mrc is the calculated marker radius\n // adjust the distance so if you're inside the marker it\n // always will show up regardless of point size, but\n // prioritize smaller points\n var rad = Math.max(minRad, di.mrc || 0);\n var dx = xa.c2p(di.x) - xpx;\n var dy = ya.c2p(di.y) - ypx;\n return Math.max(Math.sqrt(dx * dx + dy * dy) - rad, 1 - minRad / rad);\n };\n var distfn = Fx.getDistanceFunction(hovermode, dx, dy, dxy);\n\n Fx.getClosest(cd, distfn, pointData);\n\n // skip the rest (for this trace) if we didn't find a close point\n if(pointData.index !== false) {\n // the closest data point\n var di = cd[pointData.index];\n var xc = xa.c2p(di.x, true);\n var yc = ya.c2p(di.y, true);\n var rad = di.mrc || 1;\n\n // now we're done using the whole `calcdata` array, replace the\n // index with the original index (in case of inserted point from\n // stacked area)\n pointData.index = di.i;\n\n var orientation = cd[0].t.orientation;\n // TODO: for scatter and bar, option to show (sub)totals and\n // raw data? Currently stacked and/or normalized bars just show\n // the normalized individual sizes, so that's what I'm doing here\n // for now.\n var sizeVal = orientation && (di.sNorm || di.s);\n var xLabelVal = (orientation === 'h') ? sizeVal : di.x;\n var yLabelVal = (orientation === 'v') ? sizeVal : di.y;\n\n Lib.extendFlat(pointData, {\n color: getTraceColor(trace, di),\n\n x0: xc - rad,\n x1: xc + rad,\n xLabelVal: xLabelVal,\n\n y0: yc - rad,\n y1: yc + rad,\n yLabelVal: yLabelVal,\n\n spikeDistance: dxy(di),\n hovertemplate: trace.hovertemplate\n });\n\n fillText(di, trace, pointData);\n Registry.getComponentMethod('errorbars', 'hoverInfo')(di, trace, pointData);\n\n return [pointData];\n }\n }\n\n // even if hoveron is 'fills', only use it if we have polygons too\n if(hoveron.indexOf('fills') !== -1 && trace._polygons) {\n var polygons = trace._polygons;\n var polygonsIn = [];\n var inside = false;\n var xmin = Infinity;\n var xmax = -Infinity;\n var ymin = Infinity;\n var ymax = -Infinity;\n\n var i, j, polygon, pts, xCross, x0, x1, y0, y1;\n\n for(i = 0; i < polygons.length; i++) {\n polygon = polygons[i];\n // TODO: this is not going to work right for curved edges, it will\n // act as though they're straight. That's probably going to need\n // the elements themselves to capture the events. Worth it?\n if(polygon.contains(pt)) {\n inside = !inside;\n // TODO: need better than just the overall bounding box\n polygonsIn.push(polygon);\n ymin = Math.min(ymin, polygon.ymin);\n ymax = Math.max(ymax, polygon.ymax);\n }\n }\n\n if(inside) {\n // constrain ymin/max to the visible plot, so the label goes\n // at the middle of the piece you can see\n ymin = Math.max(ymin, 0);\n ymax = Math.min(ymax, ya._length);\n\n // find the overall left-most and right-most points of the\n // polygon(s) we're inside at their combined vertical midpoint.\n // This is where we will draw the hover label.\n // Note that this might not be the vertical midpoint of the\n // whole trace, if it's disjoint.\n var yAvg = (ymin + ymax) / 2;\n for(i = 0; i < polygonsIn.length; i++) {\n pts = polygonsIn[i].pts;\n for(j = 1; j < pts.length; j++) {\n y0 = pts[j - 1][1];\n y1 = pts[j][1];\n if((y0 > yAvg) !== (y1 >= yAvg)) {\n x0 = pts[j - 1][0];\n x1 = pts[j][0];\n if(y1 - y0) {\n xCross = x0 + (x1 - x0) * (yAvg - y0) / (y1 - y0);\n xmin = Math.min(xmin, xCross);\n xmax = Math.max(xmax, xCross);\n }\n }\n }\n }\n\n // constrain xmin/max to the visible plot now too\n xmin = Math.max(xmin, 0);\n xmax = Math.min(xmax, xa._length);\n\n // get only fill or line color for the hover color\n var color = Color.defaultLine;\n if(Color.opacity(trace.fillcolor)) color = trace.fillcolor;\n else if(Color.opacity((trace.line || {}).color)) {\n color = trace.line.color;\n }\n\n Lib.extendFlat(pointData, {\n // never let a 2D override 1D type as closest point\n // also: no spikeDistance, it's not allowed for fills\n distance: pointData.maxHoverDistance,\n x0: xmin,\n x1: xmax,\n y0: yAvg,\n y1: yAvg,\n color: color,\n hovertemplate: false\n });\n\n delete pointData.index;\n\n if(trace.text && !Array.isArray(trace.text)) {\n pointData.text = String(trace.text);\n } else pointData.text = trace.name;\n\n return [pointData];\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"3936\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar pieCalc = __webpack_require__(\"86b8\");\n\nfunction calc(gd, trace) {\n return pieCalc.calc(gd, trace);\n}\n\nfunction crossTraceCalc(gd) {\n pieCalc.crossTraceCalc(gd, { type: 'funnelarea' });\n}\n\nmodule.exports = {\n calc: calc,\n crossTraceCalc: crossTraceCalc\n};\n\n\n/***/ }),\n\n/***/ \"399f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = __webpack_require__(1).Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n r.strip();\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})( false || module, this);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"62e4\")(module)))\n\n/***/ }),\n\n/***/ \"3a04\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\n// make sure scene exists on subplot, return it\nmodule.exports = function sceneUpdate(gd, subplot) {\n var scene = subplot._scene;\n\n var resetOpts = {\n // number of traces in subplot, since scene:subplot -> 1:1\n count: 0,\n // whether scene requires init hook in plot call (dirty plot call)\n dirty: true,\n // last used options\n lineOptions: [],\n fillOptions: [],\n markerOptions: [],\n markerSelectedOptions: [],\n markerUnselectedOptions: [],\n errorXOptions: [],\n errorYOptions: [],\n textOptions: [],\n textSelectedOptions: [],\n textUnselectedOptions: [],\n // selection batches\n selectBatch: [],\n unselectBatch: []\n };\n\n // regl- component stubs, initialized in dirty plot call\n var initOpts = {\n fill2d: false,\n scatter2d: false,\n error2d: false,\n line2d: false,\n glText: false,\n select2d: false\n };\n\n if(!subplot._scene) {\n scene = subplot._scene = {};\n\n scene.init = function init() {\n Lib.extendFlat(scene, initOpts, resetOpts);\n };\n\n scene.init();\n\n // apply new option to all regl components (used on drag)\n scene.update = function update(opt) {\n var opts = Lib.repeat(opt, scene.count);\n\n if(scene.fill2d) scene.fill2d.update(opts);\n if(scene.scatter2d) scene.scatter2d.update(opts);\n if(scene.line2d) scene.line2d.update(opts);\n if(scene.error2d) scene.error2d.update(opts.concat(opts));\n if(scene.select2d) scene.select2d.update(opts);\n if(scene.glText) {\n for(var i = 0; i < scene.count; i++) {\n scene.glText[i].update(opt);\n }\n }\n };\n\n // draw traces in proper order\n scene.draw = function draw() {\n var count = scene.count;\n var fill2d = scene.fill2d;\n var error2d = scene.error2d;\n var line2d = scene.line2d;\n var scatter2d = scene.scatter2d;\n var glText = scene.glText;\n var select2d = scene.select2d;\n var selectBatch = scene.selectBatch;\n var unselectBatch = scene.unselectBatch;\n\n for(var i = 0; i < count; i++) {\n if(fill2d && scene.fillOrder[i]) {\n fill2d.draw(scene.fillOrder[i]);\n }\n if(line2d && scene.lineOptions[i]) {\n line2d.draw(i);\n }\n if(error2d) {\n if(scene.errorXOptions[i]) error2d.draw(i);\n if(scene.errorYOptions[i]) error2d.draw(i + count);\n }\n if(scatter2d && scene.markerOptions[i]) {\n if(unselectBatch[i].length) {\n var arg = Lib.repeat([], scene.count);\n arg[i] = unselectBatch[i];\n scatter2d.draw(arg);\n } else if(!selectBatch[i].length) {\n scatter2d.draw(i);\n }\n }\n if(glText[i] && scene.textOptions[i]) {\n glText[i].render();\n }\n }\n\n if(select2d) {\n select2d.draw(selectBatch);\n }\n\n scene.dirty = false;\n };\n\n // remove scene resources\n scene.destroy = function destroy() {\n if(scene.fill2d && scene.fill2d.destroy) scene.fill2d.destroy();\n if(scene.scatter2d && scene.scatter2d.destroy) scene.scatter2d.destroy();\n if(scene.error2d && scene.error2d.destroy) scene.error2d.destroy();\n if(scene.line2d && scene.line2d.destroy) scene.line2d.destroy();\n if(scene.select2d && scene.select2d.destroy) scene.select2d.destroy();\n if(scene.glText) {\n scene.glText.forEach(function(text) {\n if(text.destroy) text.destroy();\n });\n }\n\n scene.lineOptions = null;\n scene.fillOptions = null;\n scene.markerOptions = null;\n scene.markerSelectedOptions = null;\n scene.markerUnselectedOptions = null;\n scene.errorXOptions = null;\n scene.errorYOptions = null;\n scene.textOptions = null;\n scene.textSelectedOptions = null;\n scene.textUnselectedOptions = null;\n\n scene.selectBatch = null;\n scene.unselectBatch = null;\n\n // we can't just delete _scene, because `destroy` is called in the\n // middle of supplyDefaults, before relinkPrivateKeys which will put it back.\n subplot._scene = null;\n };\n }\n\n // in case if we have scene from the last calc - reset data\n if(!scene.dirty) {\n Lib.extendFlat(scene, resetOpts);\n }\n\n return scene;\n};\n\n\n/***/ }),\n\n/***/ \"3a19\":\n/***/ (function(module, exports) {\n\nmodule.exports = round\n\n/**\n * Math.round the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to round\n * @returns {vec3} out\n */\nfunction round(out, a) {\n out[0] = Math.round(a[0])\n out[1] = Math.round(a[1])\n out[2] = Math.round(a[2])\n return out\n}\n\n\n/***/ }),\n\n/***/ \"3a55\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = findZeroCrossings\n\nvar core = __webpack_require__(\"b530\")\n\nfunction findZeroCrossings(array, level) {\n var cross = []\n level = +level || 0.0\n core(array.hi(array.shape[0]-1), cross, level)\n return cross\n}\n\n/***/ }),\n\n/***/ \"3a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar extendDeepAll = Lib.extendDeepAll;\nvar MID_SHIFT = __webpack_require__(\"63dc\").MID_SHIFT;\n\nvar µ = module.exports = { version: '0.2.2' };\n\nµ.Axis = function module() {\n var config = {\n data: [],\n layout: {}\n }, inputConfig = {}, liveConfig = {};\n var svg, container, dispatch = d3.dispatch('hover'), radialScale, angularScale;\n var exports = {};\n function render(_container) {\n container = _container || container;\n var data = config.data;\n var axisConfig = config.layout;\n if (typeof container == 'string' || container.nodeName) container = d3.select(container);\n container.datum(data).each(function(_data, _index) {\n var dataOriginal = _data.slice();\n liveConfig = {\n data: µ.util.cloneJson(dataOriginal),\n layout: µ.util.cloneJson(axisConfig)\n };\n var colorIndex = 0;\n dataOriginal.forEach(function(d, i) {\n if (!d.color) {\n d.color = axisConfig.defaultColorRange[colorIndex];\n colorIndex = (colorIndex + 1) % axisConfig.defaultColorRange.length;\n }\n if (!d.strokeColor) {\n d.strokeColor = d.geometry === 'LinePlot' ? d.color : d3.rgb(d.color).darker().toString();\n }\n liveConfig.data[i].color = d.color;\n liveConfig.data[i].strokeColor = d.strokeColor;\n liveConfig.data[i].strokeDash = d.strokeDash;\n liveConfig.data[i].strokeSize = d.strokeSize;\n });\n var data = dataOriginal.filter(function(d, i) {\n var visible = d.visible;\n return typeof visible === 'undefined' || visible === true;\n });\n var isStacked = false;\n var dataWithGroupId = data.map(function(d, i) {\n isStacked = isStacked || typeof d.groupId !== 'undefined';\n return d;\n });\n if (isStacked) {\n var grouped = d3.nest().key(function(d, i) {\n return typeof d.groupId != 'undefined' ? d.groupId : 'unstacked';\n }).entries(dataWithGroupId);\n var dataYStack = [];\n var stacked = grouped.map(function(d, i) {\n if (d.key === 'unstacked') return d.values; else {\n var prevArray = d.values[0].r.map(function(d, i) {\n return 0;\n });\n d.values.forEach(function(d, i, a) {\n d.yStack = [ prevArray ];\n dataYStack.push(prevArray);\n prevArray = µ.util.sumArrays(d.r, prevArray);\n });\n return d.values;\n }\n });\n data = d3.merge(stacked);\n }\n data.forEach(function(d, i) {\n d.t = Array.isArray(d.t[0]) ? d.t : [ d.t ];\n d.r = Array.isArray(d.r[0]) ? d.r : [ d.r ];\n });\n var radius = Math.min(axisConfig.width - axisConfig.margin.left - axisConfig.margin.right, axisConfig.height - axisConfig.margin.top - axisConfig.margin.bottom) / 2;\n radius = Math.max(10, radius);\n var chartCenter = [ axisConfig.margin.left + radius, axisConfig.margin.top + radius ];\n var extent;\n if (isStacked) {\n var highestStackedValue = d3.max(µ.util.sumArrays(µ.util.arrayLast(data).r[0], µ.util.arrayLast(dataYStack)));\n extent = [ 0, highestStackedValue ];\n } else extent = d3.extent(µ.util.flattenArray(data.map(function(d, i) {\n return d.r;\n })));\n if (axisConfig.radialAxis.domain != µ.DATAEXTENT) extent[0] = 0;\n radialScale = d3.scale.linear().domain(axisConfig.radialAxis.domain != µ.DATAEXTENT && axisConfig.radialAxis.domain ? axisConfig.radialAxis.domain : extent).range([ 0, radius ]);\n liveConfig.layout.radialAxis.domain = radialScale.domain();\n var angularDataMerged = µ.util.flattenArray(data.map(function(d, i) {\n return d.t;\n }));\n var isOrdinal = typeof angularDataMerged[0] === 'string';\n var ticks;\n if (isOrdinal) {\n angularDataMerged = µ.util.deduplicate(angularDataMerged);\n ticks = angularDataMerged.slice();\n angularDataMerged = d3.range(angularDataMerged.length);\n data = data.map(function(d, i) {\n var result = d;\n d.t = [ angularDataMerged ];\n if (isStacked) result.yStack = d.yStack;\n return result;\n });\n }\n var hasOnlyLineOrDotPlot = data.filter(function(d, i) {\n return d.geometry === 'LinePlot' || d.geometry === 'DotPlot';\n }).length === data.length;\n var needsEndSpacing = axisConfig.needsEndSpacing === null ? isOrdinal || !hasOnlyLineOrDotPlot : axisConfig.needsEndSpacing;\n var useProvidedDomain = axisConfig.angularAxis.domain && axisConfig.angularAxis.domain != µ.DATAEXTENT && !isOrdinal && axisConfig.angularAxis.domain[0] >= 0;\n var angularDomain = useProvidedDomain ? axisConfig.angularAxis.domain : d3.extent(angularDataMerged);\n var angularDomainStep = Math.abs(angularDataMerged[1] - angularDataMerged[0]);\n if (hasOnlyLineOrDotPlot && !isOrdinal) angularDomainStep = 0;\n var angularDomainWithPadding = angularDomain.slice();\n if (needsEndSpacing && isOrdinal) angularDomainWithPadding[1] += angularDomainStep;\n var tickCount = axisConfig.angularAxis.ticksCount || 4;\n if (tickCount > 8) tickCount = tickCount / (tickCount / 8) + tickCount % 8;\n if (axisConfig.angularAxis.ticksStep) {\n tickCount = (angularDomainWithPadding[1] - angularDomainWithPadding[0]) / tickCount;\n }\n var angularTicksStep = axisConfig.angularAxis.ticksStep || (angularDomainWithPadding[1] - angularDomainWithPadding[0]) / (tickCount * (axisConfig.minorTicks + 1));\n if (ticks) angularTicksStep = Math.max(Math.round(angularTicksStep), 1);\n if (!angularDomainWithPadding[2]) angularDomainWithPadding[2] = angularTicksStep;\n var angularAxisRange = d3.range.apply(this, angularDomainWithPadding);\n angularAxisRange = angularAxisRange.map(function(d, i) {\n return parseFloat(d.toPrecision(12));\n });\n angularScale = d3.scale.linear().domain(angularDomainWithPadding.slice(0, 2)).range(axisConfig.direction === 'clockwise' ? [ 0, 360 ] : [ 360, 0 ]);\n liveConfig.layout.angularAxis.domain = angularScale.domain();\n liveConfig.layout.angularAxis.endPadding = needsEndSpacing ? angularDomainStep : 0;\n svg = d3.select(this).select('svg.chart-root');\n if (typeof svg === 'undefined' || svg.empty()) {\n var skeleton = \"' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '\";\n var doc = new DOMParser().parseFromString(skeleton, 'application/xml');\n var newSvg = this.appendChild(this.ownerDocument.importNode(doc.documentElement, true));\n svg = d3.select(newSvg);\n }\n svg.select('.guides-group').style({\n 'pointer-events': 'none'\n });\n svg.select('.angular.axis-group').style({\n 'pointer-events': 'none'\n });\n svg.select('.radial.axis-group').style({\n 'pointer-events': 'none'\n });\n var chartGroup = svg.select('.chart-group');\n var lineStyle = {\n fill: 'none',\n stroke: axisConfig.tickColor\n };\n var fontStyle = {\n 'font-size': axisConfig.font.size,\n 'font-family': axisConfig.font.family,\n fill: axisConfig.font.color,\n 'text-shadow': [ '-1px 0px', '1px -1px', '-1px 1px', '1px 1px' ].map(function(d, i) {\n return ' ' + d + ' 0 ' + axisConfig.font.outlineColor;\n }).join(',')\n };\n var legendContainer;\n if (axisConfig.showLegend) {\n legendContainer = svg.select('.legend-group').attr({\n transform: 'translate(' + [ radius, axisConfig.margin.top ] + ')'\n }).style({\n display: 'block'\n });\n var elements = data.map(function(d, i) {\n var datumClone = µ.util.cloneJson(d);\n datumClone.symbol = d.geometry === 'DotPlot' ? d.dotType || 'circle' : d.geometry != 'LinePlot' ? 'square' : 'line';\n datumClone.visibleInLegend = typeof d.visibleInLegend === 'undefined' || d.visibleInLegend;\n datumClone.color = d.geometry === 'LinePlot' ? d.strokeColor : d.color;\n return datumClone;\n });\n\n µ.Legend().config({\n data: data.map(function(d, i) {\n return d.name || 'Element' + i;\n }),\n legendConfig: extendDeepAll({},\n µ.Legend.defaultConfig().legendConfig,\n {\n container: legendContainer,\n elements: elements,\n reverseOrder: axisConfig.legend.reverseOrder\n }\n )\n })();\n\n var legendBBox = legendContainer.node().getBBox();\n radius = Math.min(axisConfig.width - legendBBox.width - axisConfig.margin.left - axisConfig.margin.right, axisConfig.height - axisConfig.margin.top - axisConfig.margin.bottom) / 2;\n radius = Math.max(10, radius);\n chartCenter = [ axisConfig.margin.left + radius, axisConfig.margin.top + radius ];\n radialScale.range([ 0, radius ]);\n liveConfig.layout.radialAxis.domain = radialScale.domain();\n legendContainer.attr('transform', 'translate(' + [ chartCenter[0] + radius, chartCenter[1] - radius ] + ')');\n } else {\n legendContainer = svg.select('.legend-group').style({\n display: 'none'\n });\n }\n svg.attr({\n width: axisConfig.width,\n height: axisConfig.height\n }).style({\n opacity: axisConfig.opacity\n });\n chartGroup.attr('transform', 'translate(' + chartCenter + ')').style({\n cursor: 'crosshair'\n });\n var centeringOffset = [ (axisConfig.width - (axisConfig.margin.left + axisConfig.margin.right + radius * 2 + (legendBBox ? legendBBox.width : 0))) / 2, (axisConfig.height - (axisConfig.margin.top + axisConfig.margin.bottom + radius * 2)) / 2 ];\n centeringOffset[0] = Math.max(0, centeringOffset[0]);\n centeringOffset[1] = Math.max(0, centeringOffset[1]);\n svg.select('.outer-group').attr('transform', 'translate(' + centeringOffset + ')');\n if (axisConfig.title && axisConfig.title.text) {\n var title = svg.select('g.title-group text').style(fontStyle).text(axisConfig.title.text);\n var titleBBox = title.node().getBBox();\n title.attr({\n x: chartCenter[0] - titleBBox.width / 2,\n y: chartCenter[1] - radius - 20\n });\n }\n var radialAxis = svg.select('.radial.axis-group');\n if (axisConfig.radialAxis.gridLinesVisible) {\n var gridCircles = radialAxis.selectAll('circle.grid-circle').data(radialScale.ticks(5));\n gridCircles.enter().append('circle').attr({\n 'class': 'grid-circle'\n }).style(lineStyle);\n gridCircles.attr('r', radialScale);\n gridCircles.exit().remove();\n }\n radialAxis.select('circle.outside-circle').attr({\n r: radius\n }).style(lineStyle);\n var backgroundCircle = svg.select('circle.background-circle').attr({\n r: radius\n }).style({\n fill: axisConfig.backgroundColor,\n stroke: axisConfig.stroke\n });\n function currentAngle(d, i) {\n return angularScale(d) % 360 + axisConfig.orientation;\n }\n if (axisConfig.radialAxis.visible) {\n var axis = d3.svg.axis().scale(radialScale).ticks(5).tickSize(5);\n radialAxis.call(axis).attr({\n transform: 'rotate(' + axisConfig.radialAxis.orientation + ')'\n });\n radialAxis.selectAll('.domain').style(lineStyle);\n radialAxis.selectAll('g>text').text(function(d, i) {\n return this.textContent + axisConfig.radialAxis.ticksSuffix;\n }).style(fontStyle).style({\n 'text-anchor': 'start'\n }).attr({\n x: 0,\n y: 0,\n dx: 0,\n dy: 0,\n transform: function(d, i) {\n if (axisConfig.radialAxis.tickOrientation === 'horizontal') {\n return 'rotate(' + -axisConfig.radialAxis.orientation + ') translate(' + [ 0, fontStyle['font-size'] ] + ')';\n } else return 'translate(' + [ 0, fontStyle['font-size'] ] + ')';\n }\n });\n radialAxis.selectAll('g>line').style({\n stroke: 'black'\n });\n }\n var angularAxis = svg.select('.angular.axis-group').selectAll('g.angular-tick').data(angularAxisRange);\n var angularAxisEnter = angularAxis.enter().append('g').classed('angular-tick', true);\n angularAxis.attr({\n transform: function(d, i) {\n return 'rotate(' + currentAngle(d, i) + ')';\n }\n }).style({\n display: axisConfig.angularAxis.visible ? 'block' : 'none'\n });\n angularAxis.exit().remove();\n angularAxisEnter.append('line').classed('grid-line', true).classed('major', function(d, i) {\n return i % (axisConfig.minorTicks + 1) == 0;\n }).classed('minor', function(d, i) {\n return !(i % (axisConfig.minorTicks + 1) == 0);\n }).style(lineStyle);\n angularAxisEnter.selectAll('.minor').style({\n stroke: axisConfig.minorTickColor\n });\n angularAxis.select('line.grid-line').attr({\n x1: axisConfig.tickLength ? radius - axisConfig.tickLength : 0,\n x2: radius\n }).style({\n display: axisConfig.angularAxis.gridLinesVisible ? 'block' : 'none'\n });\n angularAxisEnter.append('text').classed('axis-text', true).style(fontStyle);\n var ticksText = angularAxis.select('text.axis-text').attr({\n x: radius + axisConfig.labelOffset,\n dy: MID_SHIFT + 'em',\n transform: function(d, i) {\n var angle = currentAngle(d, i);\n var rad = radius + axisConfig.labelOffset;\n var orient = axisConfig.angularAxis.tickOrientation;\n if (orient == 'horizontal') return 'rotate(' + -angle + ' ' + rad + ' 0)'; else if (orient == 'radial') return angle < 270 && angle > 90 ? 'rotate(180 ' + rad + ' 0)' : null; else return 'rotate(' + (angle <= 180 && angle > 0 ? -90 : 90) + ' ' + rad + ' 0)';\n }\n }).style({\n 'text-anchor': 'middle',\n display: axisConfig.angularAxis.labelsVisible ? 'block' : 'none'\n }).text(function(d, i) {\n if (i % (axisConfig.minorTicks + 1) != 0) return '';\n if (ticks) {\n return ticks[d] + axisConfig.angularAxis.ticksSuffix;\n } else return d + axisConfig.angularAxis.ticksSuffix;\n }).style(fontStyle);\n if (axisConfig.angularAxis.rewriteTicks) ticksText.text(function(d, i) {\n if (i % (axisConfig.minorTicks + 1) != 0) return '';\n return axisConfig.angularAxis.rewriteTicks(this.textContent, i);\n });\n var rightmostTickEndX = d3.max(chartGroup.selectAll('.angular-tick text')[0].map(function(d, i) {\n return d.getCTM().e + d.getBBox().width;\n }));\n legendContainer.attr({\n transform: 'translate(' + [ radius + rightmostTickEndX, axisConfig.margin.top ] + ')'\n });\n var hasGeometry = svg.select('g.geometry-group').selectAll('g').size() > 0;\n var geometryContainer = svg.select('g.geometry-group').selectAll('g.geometry').data(data);\n geometryContainer.enter().append('g').attr({\n 'class': function(d, i) {\n return 'geometry geometry' + i;\n }\n });\n geometryContainer.exit().remove();\n if (data[0] || hasGeometry) {\n var geometryConfigs = [];\n data.forEach(function(d, i) {\n var geometryConfig = {};\n geometryConfig.radialScale = radialScale;\n geometryConfig.angularScale = angularScale;\n geometryConfig.container = geometryContainer.filter(function(dB, iB) {\n return iB == i;\n });\n geometryConfig.geometry = d.geometry;\n geometryConfig.orientation = axisConfig.orientation;\n geometryConfig.direction = axisConfig.direction;\n geometryConfig.index = i;\n geometryConfigs.push({\n data: d,\n geometryConfig: geometryConfig\n });\n });\n var geometryConfigsGrouped = d3.nest().key(function(d, i) {\n return typeof d.data.groupId != 'undefined' || 'unstacked';\n }).entries(geometryConfigs);\n var geometryConfigsGrouped2 = [];\n geometryConfigsGrouped.forEach(function(d, i) {\n if (d.key === 'unstacked') geometryConfigsGrouped2 = geometryConfigsGrouped2.concat(d.values.map(function(d, i) {\n return [ d ];\n })); else geometryConfigsGrouped2.push(d.values);\n });\n geometryConfigsGrouped2.forEach(function(d, i) {\n var geometry;\n if (Array.isArray(d)) geometry = d[0].geometryConfig.geometry; else geometry = d.geometryConfig.geometry;\n var finalGeometryConfig = d.map(function(dB, iB) {\n return extendDeepAll(µ[geometry].defaultConfig(), dB);\n });\n µ[geometry]().config(finalGeometryConfig)();\n });\n }\n var guides = svg.select('.guides-group');\n var tooltipContainer = svg.select('.tooltips-group');\n var angularTooltip = µ.tooltipPanel().config({\n container: tooltipContainer,\n fontSize: 8\n })();\n var radialTooltip = µ.tooltipPanel().config({\n container: tooltipContainer,\n fontSize: 8\n })();\n var geometryTooltip = µ.tooltipPanel().config({\n container: tooltipContainer,\n hasTick: true\n })();\n var angularValue, radialValue;\n if (!isOrdinal) {\n var angularGuideLine = guides.select('line').attr({\n x1: 0,\n y1: 0,\n y2: 0\n }).style({\n stroke: 'grey',\n 'pointer-events': 'none'\n });\n chartGroup.on('mousemove.angular-guide', function(d, i) {\n var mouseAngle = µ.util.getMousePos(backgroundCircle).angle;\n angularGuideLine.attr({\n x2: -radius,\n transform: 'rotate(' + mouseAngle + ')'\n }).style({\n opacity: .5\n });\n var angleWithOriginOffset = (mouseAngle + 180 + 360 - axisConfig.orientation) % 360;\n angularValue = angularScale.invert(angleWithOriginOffset);\n var pos = µ.util.convertToCartesian(radius + 12, mouseAngle + 180);\n angularTooltip.text(µ.util.round(angularValue)).move([ pos[0] + chartCenter[0], pos[1] + chartCenter[1] ]);\n }).on('mouseout.angular-guide', function(d, i) {\n guides.select('line').style({\n opacity: 0\n });\n });\n }\n var angularGuideCircle = guides.select('circle').style({\n stroke: 'grey',\n fill: 'none'\n });\n chartGroup.on('mousemove.radial-guide', function(d, i) {\n var r = µ.util.getMousePos(backgroundCircle).radius;\n angularGuideCircle.attr({\n r: r\n }).style({\n opacity: .5\n });\n radialValue = radialScale.invert(µ.util.getMousePos(backgroundCircle).radius);\n var pos = µ.util.convertToCartesian(r, axisConfig.radialAxis.orientation);\n radialTooltip.text(µ.util.round(radialValue)).move([ pos[0] + chartCenter[0], pos[1] + chartCenter[1] ]);\n }).on('mouseout.radial-guide', function(d, i) {\n angularGuideCircle.style({\n opacity: 0\n });\n geometryTooltip.hide();\n angularTooltip.hide();\n radialTooltip.hide();\n });\n svg.selectAll('.geometry-group .mark').on('mouseover.tooltip', function(d, i) {\n var el = d3.select(this);\n var color = this.style.fill;\n var newColor = 'black';\n var opacity = this.style.opacity || 1;\n el.attr({\n 'data-opacity': opacity\n });\n if (color && color !== 'none') {\n el.attr({\n 'data-fill': color\n });\n newColor = d3.hsl(color).darker().toString();\n el.style({\n fill: newColor,\n opacity: 1\n });\n var textData = {\n t: µ.util.round(d[0]),\n r: µ.util.round(d[1])\n };\n if (isOrdinal) textData.t = ticks[d[0]];\n var text = 't: ' + textData.t + ', r: ' + textData.r;\n var bbox = this.getBoundingClientRect();\n var svgBBox = svg.node().getBoundingClientRect();\n var pos = [ bbox.left + bbox.width / 2 - centeringOffset[0] - svgBBox.left, bbox.top + bbox.height / 2 - centeringOffset[1] - svgBBox.top ];\n geometryTooltip.config({\n color: newColor\n }).text(text);\n geometryTooltip.move(pos);\n } else {\n color = this.style.stroke || 'black';\n el.attr({\n 'data-stroke': color\n });\n newColor = d3.hsl(color).darker().toString();\n el.style({\n stroke: newColor,\n opacity: 1\n });\n }\n }).on('mousemove.tooltip', function(d, i) {\n if (d3.event.which != 0) return false;\n if (d3.select(this).attr('data-fill')) geometryTooltip.show();\n }).on('mouseout.tooltip', function(d, i) {\n geometryTooltip.hide();\n var el = d3.select(this);\n var fillColor = el.attr('data-fill');\n if (fillColor) el.style({\n fill: fillColor,\n opacity: el.attr('data-opacity')\n }); else el.style({\n stroke: el.attr('data-stroke'),\n opacity: el.attr('data-opacity')\n });\n });\n });\n return exports;\n }\n exports.render = function(_container) {\n render(_container);\n return this;\n };\n exports.config = function(_x) {\n if (!arguments.length) return config;\n var xClone = µ.util.cloneJson(_x);\n xClone.data.forEach(function(d, i) {\n if (!config.data[i]) config.data[i] = {};\n extendDeepAll(config.data[i], µ.Axis.defaultConfig().data[0]);\n extendDeepAll(config.data[i], d);\n });\n extendDeepAll(config.layout, µ.Axis.defaultConfig().layout);\n extendDeepAll(config.layout, xClone.layout);\n return this;\n };\n exports.getLiveConfig = function() {\n return liveConfig;\n };\n exports.getinputConfig = function() {\n return inputConfig;\n };\n exports.radialScale = function(_x) {\n return radialScale;\n };\n exports.angularScale = function(_x) {\n return angularScale;\n };\n exports.svg = function() {\n return svg;\n };\n d3.rebind(exports, dispatch, 'on');\n return exports;\n};\n\nµ.Axis.defaultConfig = function(d, i) {\n var config = {\n data: [ {\n t: [ 1, 2, 3, 4 ],\n r: [ 10, 11, 12, 13 ],\n name: 'Line1',\n geometry: 'LinePlot',\n color: null,\n strokeDash: 'solid',\n strokeColor: null,\n strokeSize: '1',\n visibleInLegend: true,\n opacity: 1\n } ],\n layout: {\n defaultColorRange: d3.scale.category10().range(),\n title: null,\n height: 450,\n width: 500,\n margin: {\n top: 40,\n right: 40,\n bottom: 40,\n left: 40\n },\n font: {\n size: 12,\n color: 'gray',\n outlineColor: 'white',\n family: 'Tahoma, sans-serif'\n },\n direction: 'clockwise',\n orientation: 0,\n labelOffset: 10,\n radialAxis: {\n domain: null,\n orientation: -45,\n ticksSuffix: '',\n visible: true,\n gridLinesVisible: true,\n tickOrientation: 'horizontal',\n rewriteTicks: null\n },\n angularAxis: {\n domain: [ 0, 360 ],\n ticksSuffix: '',\n visible: true,\n gridLinesVisible: true,\n labelsVisible: true,\n tickOrientation: 'horizontal',\n rewriteTicks: null,\n ticksCount: null,\n ticksStep: null\n },\n minorTicks: 0,\n tickLength: null,\n tickColor: 'silver',\n minorTickColor: '#eee',\n backgroundColor: 'none',\n needsEndSpacing: null,\n showLegend: true,\n legend: {\n reverseOrder: false\n },\n opacity: 1\n }\n };\n return config;\n};\n\nµ.util = {};\n\nµ.DATAEXTENT = 'dataExtent';\n\nµ.AREA = 'AreaChart';\n\nµ.LINE = 'LinePlot';\n\nµ.DOT = 'DotPlot';\n\nµ.BAR = 'BarChart';\n\nµ.util._override = function(_objA, _objB) {\n for (var x in _objA) if (x in _objB) _objB[x] = _objA[x];\n};\n\nµ.util._extend = function(_objA, _objB) {\n for (var x in _objA) _objB[x] = _objA[x];\n};\n\nµ.util._rndSnd = function() {\n return Math.random() * 2 - 1 + (Math.random() * 2 - 1) + (Math.random() * 2 - 1);\n};\n\nµ.util.dataFromEquation2 = function(_equation, _step) {\n var step = _step || 6;\n var data = d3.range(0, 360 + step, step).map(function(deg, index) {\n var theta = deg * Math.PI / 180;\n var radius = _equation(theta);\n return [ deg, radius ];\n });\n return data;\n};\n\nµ.util.dataFromEquation = function(_equation, _step, _name) {\n var step = _step || 6;\n var t = [], r = [];\n d3.range(0, 360 + step, step).forEach(function(deg, index) {\n var theta = deg * Math.PI / 180;\n var radius = _equation(theta);\n t.push(deg);\n r.push(radius);\n });\n var result = {\n t: t,\n r: r\n };\n if (_name) result.name = _name;\n return result;\n};\n\nµ.util.ensureArray = function(_val, _count) {\n if (typeof _val === 'undefined') return null;\n var arr = [].concat(_val);\n return d3.range(_count).map(function(d, i) {\n return arr[i] || arr[0];\n });\n};\n\nµ.util.fillArrays = function(_obj, _valueNames, _count) {\n _valueNames.forEach(function(d, i) {\n _obj[d] = µ.util.ensureArray(_obj[d], _count);\n });\n return _obj;\n};\n\nµ.util.cloneJson = function(json) {\n return JSON.parse(JSON.stringify(json));\n};\n\nµ.util.validateKeys = function(obj, keys) {\n if (typeof keys === 'string') keys = keys.split('.');\n var next = keys.shift();\n return obj[next] && (!keys.length || objHasKeys(obj[next], keys));\n};\n\nµ.util.sumArrays = function(a, b) {\n return d3.zip(a, b).map(function(d, i) {\n return d3.sum(d);\n });\n};\n\nµ.util.arrayLast = function(a) {\n return a[a.length - 1];\n};\n\nµ.util.arrayEqual = function(a, b) {\n var i = Math.max(a.length, b.length, 1);\n while (i-- >= 0 && a[i] === b[i]) ;\n return i === -2;\n};\n\nµ.util.flattenArray = function(arr) {\n var r = [];\n while (!µ.util.arrayEqual(r, arr)) {\n r = arr;\n arr = [].concat.apply([], arr);\n }\n return arr;\n};\n\nµ.util.deduplicate = function(arr) {\n return arr.filter(function(v, i, a) {\n return a.indexOf(v) == i;\n });\n};\n\nµ.util.convertToCartesian = function(radius, theta) {\n var thetaRadians = theta * Math.PI / 180;\n var x = radius * Math.cos(thetaRadians);\n var y = radius * Math.sin(thetaRadians);\n return [ x, y ];\n};\n\nµ.util.round = function(_value, _digits) {\n var digits = _digits || 2;\n var mult = Math.pow(10, digits);\n return Math.round(_value * mult) / mult;\n};\n\nµ.util.getMousePos = function(_referenceElement) {\n var mousePos = d3.mouse(_referenceElement.node());\n var mouseX = mousePos[0];\n var mouseY = mousePos[1];\n var mouse = {};\n mouse.x = mouseX;\n mouse.y = mouseY;\n mouse.pos = mousePos;\n mouse.angle = (Math.atan2(mouseY, mouseX) + Math.PI) * 180 / Math.PI;\n mouse.radius = Math.sqrt(mouseX * mouseX + mouseY * mouseY);\n return mouse;\n};\n\nµ.util.duplicatesCount = function(arr) {\n var uniques = {}, val;\n var dups = {};\n for (var i = 0, len = arr.length; i < len; i++) {\n val = arr[i];\n if (val in uniques) {\n uniques[val]++;\n dups[val] = uniques[val];\n } else {\n uniques[val] = 1;\n }\n }\n return dups;\n};\n\nµ.util.duplicates = function(arr) {\n return Object.keys(µ.util.duplicatesCount(arr));\n};\n\nµ.util.translator = function(obj, sourceBranch, targetBranch, reverse) {\n if (reverse) {\n var targetBranchCopy = targetBranch.slice();\n targetBranch = sourceBranch;\n sourceBranch = targetBranchCopy;\n }\n var value = sourceBranch.reduce(function(previousValue, currentValue) {\n if (typeof previousValue != 'undefined') return previousValue[currentValue];\n }, obj);\n if (typeof value === 'undefined') return;\n sourceBranch.reduce(function(previousValue, currentValue, index) {\n if (typeof previousValue == 'undefined') return;\n if (index === sourceBranch.length - 1) delete previousValue[currentValue];\n return previousValue[currentValue];\n }, obj);\n targetBranch.reduce(function(previousValue, currentValue, index) {\n if (typeof previousValue[currentValue] === 'undefined') previousValue[currentValue] = {};\n if (index === targetBranch.length - 1) previousValue[currentValue] = value;\n return previousValue[currentValue];\n }, obj);\n};\n\nµ.PolyChart = function module() {\n var config = [ µ.PolyChart.defaultConfig() ];\n var dispatch = d3.dispatch('hover');\n var dashArray = {\n solid: 'none',\n dash: [ 5, 2 ],\n dot: [ 2, 5 ]\n };\n var colorScale;\n function exports() {\n var geometryConfig = config[0].geometryConfig;\n var container = geometryConfig.container;\n if (typeof container == 'string') container = d3.select(container);\n container.datum(config).each(function(_config, _index) {\n var isStack = !!_config[0].data.yStack;\n var data = _config.map(function(d, i) {\n if (isStack) return d3.zip(d.data.t[0], d.data.r[0], d.data.yStack[0]); else return d3.zip(d.data.t[0], d.data.r[0]);\n });\n var angularScale = geometryConfig.angularScale;\n var domainMin = geometryConfig.radialScale.domain()[0];\n var generator = {};\n generator.bar = function(d, i, pI) {\n var dataConfig = _config[pI].data;\n var h = geometryConfig.radialScale(d[1]) - geometryConfig.radialScale(0);\n var stackTop = geometryConfig.radialScale(d[2] || 0);\n var w = dataConfig.barWidth;\n d3.select(this).attr({\n 'class': 'mark bar',\n d: 'M' + [ [ h + stackTop, -w / 2 ], [ h + stackTop, w / 2 ], [ stackTop, w / 2 ], [ stackTop, -w / 2 ] ].join('L') + 'Z',\n transform: function(d, i) {\n return 'rotate(' + (geometryConfig.orientation + angularScale(d[0])) + ')';\n }\n });\n };\n generator.dot = function(d, i, pI) {\n var stackedData = d[2] ? [ d[0], d[1] + d[2] ] : d;\n var symbol = d3.svg.symbol().size(_config[pI].data.dotSize).type(_config[pI].data.dotType)(d, i);\n d3.select(this).attr({\n 'class': 'mark dot',\n d: symbol,\n transform: function(d, i) {\n var coord = convertToCartesian(getPolarCoordinates(stackedData));\n return 'translate(' + [ coord.x, coord.y ] + ')';\n }\n });\n };\n var line = d3.svg.line.radial().interpolate(_config[0].data.lineInterpolation).radius(function(d) {\n return geometryConfig.radialScale(d[1]);\n }).angle(function(d) {\n return geometryConfig.angularScale(d[0]) * Math.PI / 180;\n });\n generator.line = function(d, i, pI) {\n var lineData = d[2] ? data[pI].map(function(d, i) {\n return [ d[0], d[1] + d[2] ];\n }) : data[pI];\n d3.select(this).each(generator['dot']).style({\n opacity: function(dB, iB) {\n return +_config[pI].data.dotVisible;\n },\n fill: markStyle.stroke(d, i, pI)\n }).attr({\n 'class': 'mark dot'\n });\n if (i > 0) return;\n var lineSelection = d3.select(this.parentNode).selectAll('path.line').data([ 0 ]);\n lineSelection.enter().insert('path');\n lineSelection.attr({\n 'class': 'line',\n d: line(lineData),\n transform: function(dB, iB) {\n return 'rotate(' + (geometryConfig.orientation + 90) + ')';\n },\n 'pointer-events': 'none'\n }).style({\n fill: function(dB, iB) {\n return markStyle.fill(d, i, pI);\n },\n 'fill-opacity': 0,\n stroke: function(dB, iB) {\n return markStyle.stroke(d, i, pI);\n },\n 'stroke-width': function(dB, iB) {\n return markStyle['stroke-width'](d, i, pI);\n },\n 'stroke-dasharray': function(dB, iB) {\n return markStyle['stroke-dasharray'](d, i, pI);\n },\n opacity: function(dB, iB) {\n return markStyle.opacity(d, i, pI);\n },\n display: function(dB, iB) {\n return markStyle.display(d, i, pI);\n }\n });\n };\n var angularRange = geometryConfig.angularScale.range();\n var triangleAngle = Math.abs(angularRange[1] - angularRange[0]) / data[0].length * Math.PI / 180;\n var arc = d3.svg.arc().startAngle(function(d) {\n return -triangleAngle / 2;\n }).endAngle(function(d) {\n return triangleAngle / 2;\n }).innerRadius(function(d) {\n return geometryConfig.radialScale(domainMin + (d[2] || 0));\n }).outerRadius(function(d) {\n return geometryConfig.radialScale(domainMin + (d[2] || 0)) + geometryConfig.radialScale(d[1]);\n });\n generator.arc = function(d, i, pI) {\n d3.select(this).attr({\n 'class': 'mark arc',\n d: arc,\n transform: function(d, i) {\n return 'rotate(' + (geometryConfig.orientation + angularScale(d[0]) + 90) + ')';\n }\n });\n };\n var markStyle = {\n fill: function(d, i, pI) {\n return _config[pI].data.color;\n },\n stroke: function(d, i, pI) {\n return _config[pI].data.strokeColor;\n },\n 'stroke-width': function(d, i, pI) {\n return _config[pI].data.strokeSize + 'px';\n },\n 'stroke-dasharray': function(d, i, pI) {\n return dashArray[_config[pI].data.strokeDash];\n },\n opacity: function(d, i, pI) {\n return _config[pI].data.opacity;\n },\n display: function(d, i, pI) {\n return typeof _config[pI].data.visible === 'undefined' || _config[pI].data.visible ? 'block' : 'none';\n }\n };\n var geometryLayer = d3.select(this).selectAll('g.layer').data(data);\n geometryLayer.enter().append('g').attr({\n 'class': 'layer'\n });\n var geometry = geometryLayer.selectAll('path.mark').data(function(d, i) {\n return d;\n });\n geometry.enter().append('path').attr({\n 'class': 'mark'\n });\n geometry.style(markStyle).each(generator[geometryConfig.geometryType]);\n geometry.exit().remove();\n geometryLayer.exit().remove();\n function getPolarCoordinates(d, i) {\n var r = geometryConfig.radialScale(d[1]);\n var t = (geometryConfig.angularScale(d[0]) + geometryConfig.orientation) * Math.PI / 180;\n return {\n r: r,\n t: t\n };\n }\n function convertToCartesian(polarCoordinates) {\n var x = polarCoordinates.r * Math.cos(polarCoordinates.t);\n var y = polarCoordinates.r * Math.sin(polarCoordinates.t);\n return {\n x: x,\n y: y\n };\n }\n });\n }\n exports.config = function(_x) {\n if (!arguments.length) return config;\n _x.forEach(function(d, i) {\n if (!config[i]) config[i] = {};\n extendDeepAll(config[i], µ.PolyChart.defaultConfig());\n extendDeepAll(config[i], d);\n });\n return this;\n };\n exports.getColorScale = function() {\n return colorScale;\n };\n d3.rebind(exports, dispatch, 'on');\n return exports;\n};\n\nµ.PolyChart.defaultConfig = function() {\n var config = {\n data: {\n name: 'geom1',\n t: [ [ 1, 2, 3, 4 ] ],\n r: [ [ 1, 2, 3, 4 ] ],\n dotType: 'circle',\n dotSize: 64,\n dotVisible: false,\n barWidth: 20,\n color: '#ffa500',\n strokeSize: 1,\n strokeColor: 'silver',\n strokeDash: 'solid',\n opacity: 1,\n index: 0,\n visible: true,\n visibleInLegend: true\n },\n geometryConfig: {\n geometry: 'LinePlot',\n geometryType: 'arc',\n direction: 'clockwise',\n orientation: 0,\n container: 'body',\n radialScale: null,\n angularScale: null,\n colorScale: d3.scale.category20()\n }\n };\n return config;\n};\n\nµ.BarChart = function module() {\n return µ.PolyChart();\n};\n\nµ.BarChart.defaultConfig = function() {\n var config = {\n geometryConfig: {\n geometryType: 'bar'\n }\n };\n return config;\n};\n\nµ.AreaChart = function module() {\n return µ.PolyChart();\n};\n\nµ.AreaChart.defaultConfig = function() {\n var config = {\n geometryConfig: {\n geometryType: 'arc'\n }\n };\n return config;\n};\n\nµ.DotPlot = function module() {\n return µ.PolyChart();\n};\n\nµ.DotPlot.defaultConfig = function() {\n var config = {\n geometryConfig: {\n geometryType: 'dot',\n dotType: 'circle'\n }\n };\n return config;\n};\n\nµ.LinePlot = function module() {\n return µ.PolyChart();\n};\n\nµ.LinePlot.defaultConfig = function() {\n var config = {\n geometryConfig: {\n geometryType: 'line'\n }\n };\n return config;\n};\n\nµ.Legend = function module() {\n var config = µ.Legend.defaultConfig();\n var dispatch = d3.dispatch('hover');\n function exports() {\n var legendConfig = config.legendConfig;\n var flattenData = config.data.map(function(d, i) {\n return [].concat(d).map(function(dB, iB) {\n var element = extendDeepAll({}, legendConfig.elements[i]);\n element.name = dB;\n element.color = [].concat(legendConfig.elements[i].color)[iB];\n return element;\n });\n });\n var data = d3.merge(flattenData);\n data = data.filter(function(d, i) {\n return legendConfig.elements[i] && (legendConfig.elements[i].visibleInLegend || typeof legendConfig.elements[i].visibleInLegend === 'undefined');\n });\n if (legendConfig.reverseOrder) data = data.reverse();\n var container = legendConfig.container;\n if (typeof container == 'string' || container.nodeName) container = d3.select(container);\n var colors = data.map(function(d, i) {\n return d.color;\n });\n var lineHeight = legendConfig.fontSize;\n var isContinuous = legendConfig.isContinuous == null ? typeof data[0] === 'number' : legendConfig.isContinuous;\n var height = isContinuous ? legendConfig.height : lineHeight * data.length;\n var legendContainerGroup = container.classed('legend-group', true);\n var svg = legendContainerGroup.selectAll('svg').data([ 0 ]);\n var svgEnter = svg.enter().append('svg').attr({\n width: 300,\n height: height + lineHeight,\n xmlns: 'http://www.w3.org/2000/svg',\n 'xmlns:xlink': 'http://www.w3.org/1999/xlink',\n version: '1.1'\n });\n svgEnter.append('g').classed('legend-axis', true);\n svgEnter.append('g').classed('legend-marks', true);\n var dataNumbered = d3.range(data.length);\n var colorScale = d3.scale[isContinuous ? 'linear' : 'ordinal']().domain(dataNumbered).range(colors);\n var dataScale = d3.scale[isContinuous ? 'linear' : 'ordinal']().domain(dataNumbered)[isContinuous ? 'range' : 'rangePoints']([ 0, height ]);\n var shapeGenerator = function(_type, _size) {\n var squareSize = _size * 3;\n if (_type === 'line') {\n return 'M' + [ [ -_size / 2, -_size / 12 ], [ _size / 2, -_size / 12 ], [ _size / 2, _size / 12 ], [ -_size / 2, _size / 12 ] ] + 'Z';\n } else if (d3.svg.symbolTypes.indexOf(_type) != -1) return d3.svg.symbol().type(_type).size(squareSize)(); else return d3.svg.symbol().type('square').size(squareSize)();\n };\n if (isContinuous) {\n var gradient = svg.select('.legend-marks').append('defs').append('linearGradient').attr({\n id: 'grad1',\n x1: '0%',\n y1: '0%',\n x2: '0%',\n y2: '100%'\n }).selectAll('stop').data(colors);\n gradient.enter().append('stop');\n gradient.attr({\n offset: function(d, i) {\n return i / (colors.length - 1) * 100 + '%';\n }\n }).style({\n 'stop-color': function(d, i) {\n return d;\n }\n });\n svg.append('rect').classed('legend-mark', true).attr({\n height: legendConfig.height,\n width: legendConfig.colorBandWidth,\n fill: 'url(#grad1)'\n });\n } else {\n var legendElement = svg.select('.legend-marks').selectAll('path.legend-mark').data(data);\n legendElement.enter().append('path').classed('legend-mark', true);\n legendElement.attr({\n transform: function(d, i) {\n return 'translate(' + [ lineHeight / 2, dataScale(i) + lineHeight / 2 ] + ')';\n },\n d: function(d, i) {\n var symbolType = d.symbol;\n return shapeGenerator(symbolType, lineHeight);\n },\n fill: function(d, i) {\n return colorScale(i);\n }\n });\n legendElement.exit().remove();\n }\n var legendAxis = d3.svg.axis().scale(dataScale).orient('right');\n var axis = svg.select('g.legend-axis').attr({\n transform: 'translate(' + [ isContinuous ? legendConfig.colorBandWidth : lineHeight, lineHeight / 2 ] + ')'\n }).call(legendAxis);\n axis.selectAll('.domain').style({\n fill: 'none',\n stroke: 'none'\n });\n axis.selectAll('line').style({\n fill: 'none',\n stroke: isContinuous ? legendConfig.textColor : 'none'\n });\n axis.selectAll('text').style({\n fill: legendConfig.textColor,\n 'font-size': legendConfig.fontSize\n }).text(function(d, i) {\n return data[i].name;\n });\n return exports;\n }\n exports.config = function(_x) {\n if (!arguments.length) return config;\n extendDeepAll(config, _x);\n return this;\n };\n d3.rebind(exports, dispatch, 'on');\n return exports;\n};\n\nµ.Legend.defaultConfig = function(d, i) {\n var config = {\n data: [ 'a', 'b', 'c' ],\n legendConfig: {\n elements: [ {\n symbol: 'line',\n color: 'red'\n }, {\n symbol: 'square',\n color: 'yellow'\n }, {\n symbol: 'diamond',\n color: 'limegreen'\n } ],\n height: 150,\n colorBandWidth: 30,\n fontSize: 12,\n container: 'body',\n isContinuous: null,\n textColor: 'grey',\n reverseOrder: false\n }\n };\n return config;\n};\n\nµ.tooltipPanel = function() {\n var tooltipEl, tooltipTextEl, backgroundEl;\n var config = {\n container: null,\n hasTick: false,\n fontSize: 12,\n color: 'white',\n padding: 5\n };\n var id = 'tooltip-' + µ.tooltipPanel.uid++;\n var tickSize = 10;\n var exports = function() {\n tooltipEl = config.container.selectAll('g.' + id).data([ 0 ]);\n var tooltipEnter = tooltipEl.enter().append('g').classed(id, true).style({\n 'pointer-events': 'none',\n display: 'none'\n });\n backgroundEl = tooltipEnter.append('path').style({\n fill: 'white',\n 'fill-opacity': .9\n }).attr({\n d: 'M0 0'\n });\n tooltipTextEl = tooltipEnter.append('text').attr({\n dx: config.padding + tickSize,\n dy: +config.fontSize * .3\n });\n return exports;\n };\n exports.text = function(_text) {\n var l = d3.hsl(config.color).l;\n var strokeColor = l >= .5 ? '#aaa' : 'white';\n var fillColor = l >= .5 ? 'black' : 'white';\n var text = _text || '';\n tooltipTextEl.style({\n fill: fillColor,\n 'font-size': config.fontSize + 'px'\n }).text(text);\n var padding = config.padding;\n var bbox = tooltipTextEl.node().getBBox();\n var boxStyle = {\n fill: config.color,\n stroke: strokeColor,\n 'stroke-width': '2px'\n };\n var backGroundW = bbox.width + padding * 2 + tickSize;\n var backGroundH = bbox.height + padding * 2;\n backgroundEl.attr({\n d: 'M' + [ [ tickSize, -backGroundH / 2 ], [ tickSize, -backGroundH / 4 ], [ config.hasTick ? 0 : tickSize, 0 ], [ tickSize, backGroundH / 4 ], [ tickSize, backGroundH / 2 ], [ backGroundW, backGroundH / 2 ], [ backGroundW, -backGroundH / 2 ] ].join('L') + 'Z'\n }).style(boxStyle);\n tooltipEl.attr({\n transform: 'translate(' + [ tickSize, -backGroundH / 2 + padding * 2 ] + ')'\n });\n tooltipEl.style({\n display: 'block'\n });\n return exports;\n };\n exports.move = function(_pos) {\n if (!tooltipEl) return;\n tooltipEl.attr({\n transform: 'translate(' + [ _pos[0], _pos[1] ] + ')'\n }).style({\n display: 'block'\n });\n return exports;\n };\n exports.hide = function() {\n if (!tooltipEl) return;\n tooltipEl.style({\n display: 'none'\n });\n return exports;\n };\n exports.show = function() {\n if (!tooltipEl) return;\n tooltipEl.style({\n display: 'block'\n });\n return exports;\n };\n exports.config = function(_x) {\n extendDeepAll(config, _x);\n return exports;\n };\n return exports;\n};\n\nµ.tooltipPanel.uid = 1;\n\nµ.adapter = {};\n\nµ.adapter.plotly = function module() {\n var exports = {};\n exports.convert = function(_inputConfig, reverse) {\n var outputConfig = {};\n if (_inputConfig.data) {\n outputConfig.data = _inputConfig.data.map(function(d, i) {\n var r = extendDeepAll({}, d);\n var toTranslate = [\n [ r, [ 'marker', 'color' ], [ 'color' ] ],\n [ r, [ 'marker', 'opacity' ], [ 'opacity' ] ],\n [ r, [ 'marker', 'line', 'color' ], [ 'strokeColor' ] ],\n [ r, [ 'marker', 'line', 'dash' ], [ 'strokeDash' ] ],\n [ r, [ 'marker', 'line', 'width' ], [ 'strokeSize' ] ],\n [ r, [ 'marker', 'symbol' ], [ 'dotType' ] ],\n [ r, [ 'marker', 'size' ], [ 'dotSize' ] ],\n [ r, [ 'marker', 'barWidth' ], [ 'barWidth' ] ],\n [ r, [ 'line', 'interpolation' ], [ 'lineInterpolation' ] ],\n [ r, [ 'showlegend' ], [ 'visibleInLegend' ] ]\n ];\n toTranslate.forEach(function(d, i) {\n µ.util.translator.apply(null, d.concat(reverse));\n });\n\n if (!reverse) delete r.marker;\n if (reverse) delete r.groupId;\n if (!reverse) {\n if (r.type === 'scatter') {\n if (r.mode === 'lines') r.geometry = 'LinePlot'; else if (r.mode === 'markers') r.geometry = 'DotPlot'; else if (r.mode === 'lines+markers') {\n r.geometry = 'LinePlot';\n r.dotVisible = true;\n }\n } else if (r.type === 'area') r.geometry = 'AreaChart'; else if (r.type === 'bar') r.geometry = 'BarChart';\n delete r.mode;\n delete r.type;\n } else {\n if (r.geometry === 'LinePlot') {\n r.type = 'scatter';\n if (r.dotVisible === true) {\n delete r.dotVisible;\n r.mode = 'lines+markers';\n } else r.mode = 'lines';\n } else if (r.geometry === 'DotPlot') {\n r.type = 'scatter';\n r.mode = 'markers';\n } else if (r.geometry === 'AreaChart') r.type = 'area'; else if (r.geometry === 'BarChart') r.type = 'bar';\n delete r.geometry;\n }\n return r;\n });\n if (!reverse && _inputConfig.layout && _inputConfig.layout.barmode === 'stack') {\n var duplicates = µ.util.duplicates(outputConfig.data.map(function(d, i) {\n return d.geometry;\n }));\n outputConfig.data.forEach(function(d, i) {\n var idx = duplicates.indexOf(d.geometry);\n if (idx != -1) outputConfig.data[i].groupId = idx;\n });\n }\n }\n if (_inputConfig.layout) {\n var r = extendDeepAll({}, _inputConfig.layout);\n var toTranslate = [\n [ r, [ 'plot_bgcolor' ], [ 'backgroundColor' ] ],\n [ r, [ 'showlegend' ], [ 'showLegend' ] ],\n [ r, [ 'radialaxis' ], [ 'radialAxis' ] ],\n [ r, [ 'angularaxis' ], [ 'angularAxis' ] ],\n [ r.angularaxis, [ 'showline' ], [ 'gridLinesVisible' ] ],\n [ r.angularaxis, [ 'showticklabels' ], [ 'labelsVisible' ] ],\n [ r.angularaxis, [ 'nticks' ], [ 'ticksCount' ] ],\n [ r.angularaxis, [ 'tickorientation' ], [ 'tickOrientation' ] ],\n [ r.angularaxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ],\n [ r.angularaxis, [ 'range' ], [ 'domain' ] ],\n [ r.angularaxis, [ 'endpadding' ], [ 'endPadding' ] ],\n [ r.radialaxis, [ 'showline' ], [ 'gridLinesVisible' ] ],\n [ r.radialaxis, [ 'tickorientation' ], [ 'tickOrientation' ] ],\n [ r.radialaxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ],\n [ r.radialaxis, [ 'range' ], [ 'domain' ] ],\n [ r.angularAxis, [ 'showline' ], [ 'gridLinesVisible' ] ],\n [ r.angularAxis, [ 'showticklabels' ], [ 'labelsVisible' ] ],\n [ r.angularAxis, [ 'nticks' ], [ 'ticksCount' ] ],\n [ r.angularAxis, [ 'tickorientation' ], [ 'tickOrientation' ] ],\n [ r.angularAxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ],\n [ r.angularAxis, [ 'range' ], [ 'domain' ] ],\n [ r.angularAxis, [ 'endpadding' ], [ 'endPadding' ] ],\n [ r.radialAxis, [ 'showline' ], [ 'gridLinesVisible' ] ],\n [ r.radialAxis, [ 'tickorientation' ], [ 'tickOrientation' ] ],\n [ r.radialAxis, [ 'ticksuffix' ], [ 'ticksSuffix' ] ],\n [ r.radialAxis, [ 'range' ], [ 'domain' ] ],\n [ r.font, [ 'outlinecolor' ], [ 'outlineColor' ] ],\n [ r.legend, [ 'traceorder' ], [ 'reverseOrder' ] ],\n [ r, [ 'labeloffset' ], [ 'labelOffset' ] ],\n [ r, [ 'defaultcolorrange' ], [ 'defaultColorRange' ] ]\n ];\n toTranslate.forEach(function(d, i) {\n µ.util.translator.apply(null, d.concat(reverse));\n });\n\n if (!reverse) {\n if (r.angularAxis && typeof r.angularAxis.ticklen !== 'undefined') r.tickLength = r.angularAxis.ticklen;\n if (r.angularAxis && typeof r.angularAxis.tickcolor !== 'undefined') r.tickColor = r.angularAxis.tickcolor;\n } else {\n if (typeof r.tickLength !== 'undefined') {\n r.angularaxis.ticklen = r.tickLength;\n delete r.tickLength;\n }\n if (r.tickColor) {\n r.angularaxis.tickcolor = r.tickColor;\n delete r.tickColor;\n }\n }\n if (r.legend && typeof r.legend.reverseOrder != 'boolean') {\n r.legend.reverseOrder = r.legend.reverseOrder != 'normal';\n }\n if (r.legend && typeof r.legend.traceorder == 'boolean') {\n r.legend.traceorder = r.legend.traceorder ? 'reversed' : 'normal';\n delete r.legend.reverseOrder;\n }\n if (r.margin && typeof r.margin.t != 'undefined') {\n var source = [ 't', 'r', 'b', 'l', 'pad' ];\n var target = [ 'top', 'right', 'bottom', 'left', 'pad' ];\n var margin = {};\n d3.entries(r.margin).forEach(function(dB, iB) {\n margin[target[source.indexOf(dB.key)]] = dB.value;\n });\n r.margin = margin;\n }\n if (reverse) {\n delete r.needsEndSpacing;\n delete r.minorTickColor;\n delete r.minorTicks;\n delete r.angularaxis.ticksCount;\n delete r.angularaxis.ticksCount;\n delete r.angularaxis.ticksStep;\n delete r.angularaxis.rewriteTicks;\n delete r.angularaxis.nticks;\n delete r.radialaxis.ticksCount;\n delete r.radialaxis.ticksCount;\n delete r.radialaxis.ticksStep;\n delete r.radialaxis.rewriteTicks;\n delete r.radialaxis.nticks;\n }\n outputConfig.layout = r;\n }\n return outputConfig;\n };\n return exports;\n};\n\n\n/***/ }),\n\n/***/ \"3a9c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar setGroupPositions = __webpack_require__(\"0cec\").setGroupPositions;\n\nmodule.exports = function crossTraceCalc(gd, plotinfo) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var calcdata = gd.calcdata;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var funnels = [];\n var funnelsVert = [];\n var funnelsHorz = [];\n var cd, i;\n\n for(i = 0; i < fullData.length; i++) {\n var fullTrace = fullData[i];\n var isHorizontal = (fullTrace.orientation === 'h');\n\n if(\n fullTrace.visible === true &&\n fullTrace.xaxis === xa._id &&\n fullTrace.yaxis === ya._id &&\n fullTrace.type === 'funnel'\n ) {\n cd = calcdata[i];\n\n if(isHorizontal) {\n funnelsHorz.push(cd);\n } else {\n funnelsVert.push(cd);\n }\n\n funnels.push(cd);\n }\n }\n\n var opts = {\n mode: fullLayout.funnelmode,\n norm: fullLayout.funnelnorm,\n gap: fullLayout.funnelgap,\n groupgap: fullLayout.funnelgroupgap\n };\n\n setGroupPositions(gd, xa, ya, funnelsVert, opts);\n setGroupPositions(gd, ya, xa, funnelsHorz, opts);\n\n for(i = 0; i < funnels.length; i++) {\n cd = funnels[i];\n\n for(var j = 0; j < cd.length; j++) {\n if(j + 1 < cd.length) {\n cd[j].nextP0 = cd[j + 1].p0;\n cd[j].nextS0 = cd[j + 1].s0;\n\n cd[j].nextP1 = cd[j + 1].p1;\n cd[j].nextS1 = cd[j + 1].s1;\n }\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"3aa8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar extractOpts = __webpack_require__(\"215c\").extractOpts;\n\nmodule.exports = function calc(gd, trace, opts) {\n var fullLayout = gd._fullLayout;\n var vals = opts.vals;\n var containerStr = opts.containerStr;\n\n var container = containerStr ?\n Lib.nestedProperty(trace, containerStr).get() :\n trace;\n\n var cOpts = extractOpts(container);\n var auto = cOpts.auto !== false;\n var min = cOpts.min;\n var max = cOpts.max;\n var mid = cOpts.mid;\n\n var minVal = function() { return Lib.aggNums(Math.min, null, vals); };\n var maxVal = function() { return Lib.aggNums(Math.max, null, vals); };\n\n if(min === undefined) {\n min = minVal();\n } else if(auto) {\n if(container._colorAx && isNumeric(min)) {\n min = Math.min(min, minVal());\n } else {\n min = minVal();\n }\n }\n\n if(max === undefined) {\n max = maxVal();\n } else if(auto) {\n if(container._colorAx && isNumeric(max)) {\n max = Math.max(max, maxVal());\n } else {\n max = maxVal();\n }\n }\n\n if(auto && mid !== undefined) {\n if(max - mid > mid - min) {\n min = mid - (max - mid);\n } else if(max - mid < mid - min) {\n max = mid + (mid - min);\n }\n }\n\n if(min === max) {\n min -= 0.5;\n max += 0.5;\n }\n\n cOpts._sync('min', min);\n cOpts._sync('max', max);\n\n if(cOpts.autocolorscale) {\n var scl;\n if(min * max < 0) scl = fullLayout.colorscale.diverging;\n else if(min >= 0) scl = fullLayout.colorscale.sequential;\n else scl = fullLayout.colorscale.sequentialminus;\n cOpts._sync('colorscale', scl);\n }\n};\n\n\n/***/ }),\n\n/***/ \"3af0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar glslify = __webpack_require__(\"e98f\");\nvar vertexShaderSource = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragColor;\\n\\nattribute vec4 p01_04, p05_08, p09_12, p13_16,\\n p17_20, p21_24, p25_28, p29_32,\\n p33_36, p37_40, p41_44, p45_48,\\n p49_52, p53_56, p57_60, colors;\\n\\nuniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D,\\n loA, hiA, loB, hiB, loC, hiC, loD, hiD;\\n\\nuniform vec2 resolution, viewBoxPos, viewBoxSize;\\nuniform sampler2D mask, palette;\\nuniform float maskHeight;\\nuniform float drwLayer; // 0: context, 1: focus, 2: pick\\nuniform vec4 contextColor;\\n\\nbool isPick = (drwLayer > 1.5);\\nbool isContext = (drwLayer < 0.5);\\n\\nconst vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0);\\nconst vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0);\\n\\nfloat val(mat4 p, mat4 v) {\\n return dot(matrixCompMult(p, v) * UNITS, UNITS);\\n}\\n\\nfloat axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) {\\n float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D);\\n float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D);\\n return y1 * (1.0 - ratio) + y2 * ratio;\\n}\\n\\nint iMod(int a, int b) {\\n return a - b * (a / b);\\n}\\n\\nbool fOutside(float p, float lo, float hi) {\\n return (lo < hi) && (lo > p || p > hi);\\n}\\n\\nbool vOutside(vec4 p, vec4 lo, vec4 hi) {\\n return (\\n fOutside(p[0], lo[0], hi[0]) ||\\n fOutside(p[1], lo[1], hi[1]) ||\\n fOutside(p[2], lo[2], hi[2]) ||\\n fOutside(p[3], lo[3], hi[3])\\n );\\n}\\n\\nbool mOutside(mat4 p, mat4 lo, mat4 hi) {\\n return (\\n vOutside(p[0], lo[0], hi[0]) ||\\n vOutside(p[1], lo[1], hi[1]) ||\\n vOutside(p[2], lo[2], hi[2]) ||\\n vOutside(p[3], lo[3], hi[3])\\n );\\n}\\n\\nbool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) {\\n return mOutside(A, loA, hiA) ||\\n mOutside(B, loB, hiB) ||\\n mOutside(C, loC, hiC) ||\\n mOutside(D, loD, hiD);\\n}\\n\\nbool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) {\\n mat4 pnts[4];\\n pnts[0] = A;\\n pnts[1] = B;\\n pnts[2] = C;\\n pnts[3] = D;\\n\\n for(int i = 0; i < 4; ++i) {\\n for(int j = 0; j < 4; ++j) {\\n for(int k = 0; k < 4; ++k) {\\n if(0 == iMod(\\n int(255.0 * texture2D(mask,\\n vec2(\\n (float(i * 2 + j / 2) + 0.5) / 8.0,\\n (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight\\n ))[3]\\n ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))),\\n 2\\n )) return true;\\n }\\n }\\n }\\n return false;\\n}\\n\\nvec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) {\\n float x = 0.5 * sign(v) + 0.5;\\n float y = axisY(x, A, B, C, D);\\n float z = 1.0 - abs(v);\\n\\n z += isContext ? 0.0 : 2.0 * float(\\n outsideBoundingBox(A, B, C, D) ||\\n outsideRasterMask(A, B, C, D)\\n );\\n\\n return vec4(\\n 2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0,\\n z,\\n 1.0\\n );\\n}\\n\\nvoid main() {\\n mat4 A = mat4(p01_04, p05_08, p09_12, p13_16);\\n mat4 B = mat4(p17_20, p21_24, p25_28, p29_32);\\n mat4 C = mat4(p33_36, p37_40, p41_44, p45_48);\\n mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS);\\n\\n float v = colors[3];\\n\\n gl_Position = position(isContext, v, A, B, C, D);\\n\\n fragColor =\\n isContext ? vec4(contextColor) :\\n isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5));\\n}\\n\"]);\nvar fragmentShaderSource = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n gl_FragColor = fragColor;\\n}\\n\"]);\nvar maxDim = __webpack_require__(\"f7a4\").maxDimensionCount;\n\nvar Lib = __webpack_require__(\"fc26\");\n\n// don't change; otherwise near/far plane lines are lost\nvar depthLimitEpsilon = 1e-6;\n\n// precision of multiselect is the full range divided into this many parts\nvar maskHeight = 2048;\n\nvar dummyPixel = new Uint8Array(4);\nvar dataPixel = new Uint8Array(4);\n\nvar paletteTextureConfig = {\n shape: [256, 1],\n format: 'rgba',\n type: 'uint8',\n mag: 'nearest',\n min: 'nearest'\n};\n\nfunction ensureDraw(regl) {\n regl.read({\n x: 0,\n y: 0,\n width: 1,\n height: 1,\n data: dummyPixel\n });\n}\n\nfunction clear(regl, x, y, width, height) {\n var gl = regl._gl;\n gl.enable(gl.SCISSOR_TEST);\n gl.scissor(x, y, width, height);\n regl.clear({color: [0, 0, 0, 0], depth: 1}); // clearing is done in scissored panel only\n}\n\nfunction renderBlock(regl, glAes, renderState, blockLineCount, sampleCount, item) {\n var rafKey = item.key;\n\n function render(blockNumber) {\n var count = Math.min(blockLineCount, sampleCount - blockNumber * blockLineCount);\n\n if(blockNumber === 0) {\n // stop drawing possibly stale glyphs before clearing\n window.cancelAnimationFrame(renderState.currentRafs[rafKey]);\n delete renderState.currentRafs[rafKey];\n clear(regl, item.scissorX, item.scissorY, item.scissorWidth, item.viewBoxSize[1]);\n }\n\n if(renderState.clearOnly) {\n return;\n }\n\n item.count = 2 * count;\n item.offset = 2 * blockNumber * blockLineCount;\n glAes(item);\n\n if(blockNumber * blockLineCount + count < sampleCount) {\n renderState.currentRafs[rafKey] = window.requestAnimationFrame(function() {\n render(blockNumber + 1);\n });\n }\n\n renderState.drawCompleted = false;\n }\n\n if(!renderState.drawCompleted) {\n ensureDraw(regl);\n renderState.drawCompleted = true;\n }\n\n // start with rendering item 0; recursion handles the rest\n render(0);\n}\n\nfunction adjustDepth(d) {\n // WebGL matrix operations use floats with limited precision, potentially causing a number near a border of [0, 1]\n // to end up slightly outside the border. With an epsilon, we reduce the chance that a line gets clipped by the\n // near or the far plane.\n return Math.max(depthLimitEpsilon, Math.min(1 - depthLimitEpsilon, d));\n}\n\nfunction palette(unitToColor, opacity) {\n var result = new Array(256);\n for(var i = 0; i < 256; i++) {\n result[i] = unitToColor(i / 255).concat(opacity);\n }\n return result;\n}\n\n// Maps the sample index [0...sampleCount - 1] to a range of [0, 1] as the shader expects colors in the [0, 1] range.\n// but first it shifts the sample index by 0, 8 or 16 bits depending on rgbIndex [0..2]\n// with the end result that each line will be of a unique color, making it possible for the pick handler\n// to uniquely identify which line is hovered over (bijective mapping).\n// The inverse, i.e. readPixel is invoked from 'parcoords.js'\nfunction calcPickColor(i, rgbIndex) {\n return (i >>> 8 * rgbIndex) % 256 / 255;\n}\n\nfunction makePoints(sampleCount, dims, color) {\n var points = new Array(sampleCount * (maxDim + 4));\n var n = 0;\n for(var i = 0; i < sampleCount; i++) {\n for(var k = 0; k < maxDim; k++) {\n points[n++] = (k < dims.length) ? dims[k].paddedUnitValues[i] : 0.5;\n }\n points[n++] = calcPickColor(i, 2);\n points[n++] = calcPickColor(i, 1);\n points[n++] = calcPickColor(i, 0);\n points[n++] = adjustDepth(color[i]);\n }\n return points;\n}\n\nfunction makeVecAttr(vecIndex, sampleCount, points) {\n var pointPairs = new Array(sampleCount * 8);\n var n = 0;\n for(var i = 0; i < sampleCount; i++) {\n for(var j = 0; j < 2; j++) {\n for(var k = 0; k < 4; k++) {\n var q = vecIndex * 4 + k;\n var v = points[i * 64 + q];\n if(q === 63 && j === 0) {\n v *= -1;\n }\n pointPairs[n++] = v;\n }\n }\n }\n return pointPairs;\n}\n\nfunction pad2(num) {\n var s = '0' + num;\n return s.substr(s.length - 2);\n}\n\nfunction getAttrName(i) {\n return (i < maxDim) ? 'p' + pad2(i + 1) + '_' + pad2(i + 4) : 'colors';\n}\n\nfunction setAttributes(attributes, sampleCount, points) {\n for(var i = 0; i <= maxDim; i += 4) {\n attributes[getAttrName(i)](makeVecAttr(i / 4, sampleCount, points));\n }\n}\n\nfunction emptyAttributes(regl) {\n var attributes = {};\n for(var i = 0; i <= maxDim; i += 4) {\n attributes[getAttrName(i)] = regl.buffer({usage: 'dynamic', type: 'float', data: new Uint8Array(0)});\n }\n return attributes;\n}\n\nfunction makeItem(model, leftmost, rightmost, itemNumber, i0, i1, x, y, panelSizeX, panelSizeY, crossfilterDimensionIndex, drwLayer, constraints) {\n var dims = [[], []];\n for(var k = 0; k < 64; k++) {\n dims[0][k] = (k === i0) ? 1 : 0;\n dims[1][k] = (k === i1) ? 1 : 0;\n }\n\n var overdrag = model.lines.canvasOverdrag;\n var domain = model.domain;\n var canvasWidth = model.canvasWidth;\n var canvasHeight = model.canvasHeight;\n\n var deselectedLinesColor = model.deselectedLines.color;\n\n var itemModel = Lib.extendFlat({\n key: crossfilterDimensionIndex,\n resolution: [canvasWidth, canvasHeight],\n viewBoxPos: [x + overdrag, y],\n viewBoxSize: [panelSizeX, panelSizeY],\n i0: i0,\n i1: i1,\n\n dim0A: dims[0].slice(0, 16),\n dim0B: dims[0].slice(16, 32),\n dim0C: dims[0].slice(32, 48),\n dim0D: dims[0].slice(48, 64),\n dim1A: dims[1].slice(0, 16),\n dim1B: dims[1].slice(16, 32),\n dim1C: dims[1].slice(32, 48),\n dim1D: dims[1].slice(48, 64),\n\n drwLayer: drwLayer,\n contextColor: [\n deselectedLinesColor[0] / 255,\n deselectedLinesColor[1] / 255,\n deselectedLinesColor[2] / 255,\n deselectedLinesColor[3] < 1 ?\n deselectedLinesColor[3] :\n Math.max(1 / 255, Math.pow(1 / model.lines.color.length, 1 / 3))\n ],\n\n scissorX: (itemNumber === leftmost ? 0 : x + overdrag) + (model.pad.l - overdrag) + model.layoutWidth * domain.x[0],\n scissorWidth: (itemNumber === rightmost ? canvasWidth - x + overdrag : panelSizeX + 0.5) + (itemNumber === leftmost ? x + overdrag : 0),\n scissorY: y + model.pad.b + model.layoutHeight * domain.y[0],\n scissorHeight: panelSizeY,\n\n viewportX: model.pad.l - overdrag + model.layoutWidth * domain.x[0],\n viewportY: model.pad.b + model.layoutHeight * domain.y[0],\n viewportWidth: canvasWidth,\n viewportHeight: canvasHeight\n }, constraints);\n\n return itemModel;\n}\n\nfunction expandedPixelRange(bounds) {\n var dh = maskHeight - 1;\n var a = Math.max(0, Math.floor(bounds[0] * dh), 0);\n var b = Math.min(dh, Math.ceil(bounds[1] * dh), dh);\n return [\n Math.min(a, b),\n Math.max(a, b)\n ];\n}\n\nmodule.exports = function(canvasGL, d) {\n // context & pick describe which canvas we're talking about - won't change with new data\n var isContext = d.context;\n var isPick = d.pick;\n\n var regl = d.regl;\n\n var renderState = {\n currentRafs: {},\n drawCompleted: true,\n clearOnly: false\n };\n\n // state to be set by update and used later\n var model;\n var vm;\n var initialDims;\n var sampleCount;\n var attributes = emptyAttributes(regl);\n var maskTexture;\n var paletteTexture = regl.texture(paletteTextureConfig);\n\n var prevAxisOrder = [];\n\n update(d);\n\n var glAes = regl({\n\n profile: false,\n\n blend: {\n enable: isContext,\n func: {\n srcRGB: 'src alpha',\n dstRGB: 'one minus src alpha',\n srcAlpha: 1,\n dstAlpha: 1 // 'one minus src alpha'\n },\n equation: {\n rgb: 'add',\n alpha: 'add'\n },\n color: [0, 0, 0, 0]\n },\n\n depth: {\n enable: !isContext,\n mask: true,\n func: 'less',\n range: [0, 1]\n },\n\n // for polygons\n cull: {\n enable: true,\n face: 'back'\n },\n\n scissor: {\n enable: true,\n box: {\n x: regl.prop('scissorX'),\n y: regl.prop('scissorY'),\n width: regl.prop('scissorWidth'),\n height: regl.prop('scissorHeight')\n }\n },\n\n viewport: {\n x: regl.prop('viewportX'),\n y: regl.prop('viewportY'),\n width: regl.prop('viewportWidth'),\n height: regl.prop('viewportHeight')\n },\n\n dither: false,\n\n vert: vertexShaderSource,\n\n frag: fragmentShaderSource,\n\n primitive: 'lines',\n lineWidth: 1,\n attributes: attributes,\n uniforms: {\n resolution: regl.prop('resolution'),\n viewBoxPos: regl.prop('viewBoxPos'),\n viewBoxSize: regl.prop('viewBoxSize'),\n dim0A: regl.prop('dim0A'),\n dim1A: regl.prop('dim1A'),\n dim0B: regl.prop('dim0B'),\n dim1B: regl.prop('dim1B'),\n dim0C: regl.prop('dim0C'),\n dim1C: regl.prop('dim1C'),\n dim0D: regl.prop('dim0D'),\n dim1D: regl.prop('dim1D'),\n loA: regl.prop('loA'),\n hiA: regl.prop('hiA'),\n loB: regl.prop('loB'),\n hiB: regl.prop('hiB'),\n loC: regl.prop('loC'),\n hiC: regl.prop('hiC'),\n loD: regl.prop('loD'),\n hiD: regl.prop('hiD'),\n palette: paletteTexture,\n contextColor: regl.prop('contextColor'),\n mask: regl.prop('maskTexture'),\n drwLayer: regl.prop('drwLayer'),\n maskHeight: regl.prop('maskHeight')\n },\n offset: regl.prop('offset'),\n count: regl.prop('count')\n });\n\n function update(dNew) {\n model = dNew.model;\n vm = dNew.viewModel;\n initialDims = vm.dimensions.slice();\n sampleCount = initialDims[0] ? initialDims[0].values.length : 0;\n\n var lines = model.lines;\n var color = isPick ? lines.color.map(function(_, i) {return i / lines.color.length;}) : lines.color;\n\n var points = makePoints(sampleCount, initialDims, color);\n setAttributes(attributes, sampleCount, points);\n\n if(!isContext && !isPick) {\n paletteTexture = regl.texture(Lib.extendFlat({\n data: palette(model.unitToColor, 255)\n }, paletteTextureConfig));\n }\n }\n\n function makeConstraints(isContext) {\n var i, j, k;\n\n var limits = [[], []];\n for(k = 0; k < 64; k++) {\n var p = (!isContext && k < initialDims.length) ?\n initialDims[k].brush.filter.getBounds() : [-Infinity, Infinity];\n\n limits[0][k] = p[0];\n limits[1][k] = p[1];\n }\n\n var len = maskHeight * 8;\n var mask = new Array(len);\n for(i = 0; i < len; i++) {\n mask[i] = 255;\n }\n if(!isContext) {\n for(i = 0; i < initialDims.length; i++) {\n var u = i % 8;\n var v = (i - u) / 8;\n var bitMask = Math.pow(2, u);\n var dim = initialDims[i];\n var ranges = dim.brush.filter.get();\n if(ranges.length < 2) continue; // bail if the bounding box based filter is sufficient\n\n var prevEnd = expandedPixelRange(ranges[0])[1];\n for(j = 1; j < ranges.length; j++) {\n var nextRange = expandedPixelRange(ranges[j]);\n for(k = prevEnd + 1; k < nextRange[0]; k++) {\n mask[k * 8 + v] &= ~bitMask;\n }\n prevEnd = Math.max(prevEnd, nextRange[1]);\n }\n }\n }\n\n var textureData = {\n // 8 units x 8 bits = 64 bits, just sufficient for the almost 64 dimensions we support\n shape: [8, maskHeight],\n format: 'alpha',\n type: 'uint8',\n mag: 'nearest',\n min: 'nearest',\n data: mask\n };\n if(maskTexture) maskTexture(textureData);\n else maskTexture = regl.texture(textureData);\n\n return {\n maskTexture: maskTexture,\n maskHeight: maskHeight,\n loA: limits[0].slice(0, 16),\n loB: limits[0].slice(16, 32),\n loC: limits[0].slice(32, 48),\n loD: limits[0].slice(48, 64),\n hiA: limits[1].slice(0, 16),\n hiB: limits[1].slice(16, 32),\n hiC: limits[1].slice(32, 48),\n hiD: limits[1].slice(48, 64),\n };\n }\n\n function renderGLParcoords(panels, setChanged, clearOnly) {\n var panelCount = panels.length;\n var i;\n\n var leftmost;\n var rightmost;\n var lowestX = Infinity;\n var highestX = -Infinity;\n\n for(i = 0; i < panelCount; i++) {\n if(panels[i].dim0.canvasX < lowestX) {\n lowestX = panels[i].dim0.canvasX;\n leftmost = i;\n }\n if(panels[i].dim1.canvasX > highestX) {\n highestX = panels[i].dim1.canvasX;\n rightmost = i;\n }\n }\n\n if(panelCount === 0) {\n // clear canvas here, as the panel iteration below will not enter the loop body\n clear(regl, 0, 0, model.canvasWidth, model.canvasHeight);\n }\n var constraints = makeConstraints(isContext);\n\n for(i = 0; i < panelCount; i++) {\n var p = panels[i];\n var i0 = p.dim0.crossfilterDimensionIndex;\n var i1 = p.dim1.crossfilterDimensionIndex;\n var x = p.canvasX;\n var y = p.canvasY;\n var nextX = x + p.panelSizeX;\n if(setChanged ||\n !prevAxisOrder[i0] ||\n prevAxisOrder[i0][0] !== x ||\n prevAxisOrder[i0][1] !== nextX\n ) {\n prevAxisOrder[i0] = [x, nextX];\n\n var item = makeItem(\n model,\n leftmost, rightmost, i, i0, i1, x, y,\n p.panelSizeX, p.panelSizeY,\n p.dim0.crossfilterDimensionIndex,\n isContext ? 0 : isPick ? 2 : 1,\n constraints\n );\n\n renderState.clearOnly = clearOnly;\n\n var blockLineCount = setChanged ? model.lines.blockLineCount : sampleCount;\n renderBlock(\n regl, glAes, renderState, blockLineCount, sampleCount, item\n );\n }\n }\n }\n\n function readPixel(canvasX, canvasY) {\n regl.read({\n x: canvasX,\n y: canvasY,\n width: 1,\n height: 1,\n data: dataPixel\n });\n return dataPixel;\n }\n\n function readPixels(canvasX, canvasY, width, height) {\n var pixelArray = new Uint8Array(4 * width * height);\n regl.read({\n x: canvasX,\n y: canvasY,\n width: width,\n height: height,\n data: pixelArray\n });\n return pixelArray;\n }\n\n function destroy() {\n canvasGL.style['pointer-events'] = 'none';\n paletteTexture.destroy();\n if(maskTexture) maskTexture.destroy();\n for(var k in attributes) attributes[k].destroy();\n }\n\n return {\n render: renderGLParcoords,\n readPixel: readPixel,\n readPixels: readPixels,\n destroy: destroy,\n update: update\n };\n};\n\n\n/***/ }),\n\n/***/ \"3b74\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar meta_1 = __webpack_require__(\"716c\");\n// Note: change RADIUS => earthRadius\nvar RADIUS = 6378137;\n/**\n * Takes one or more features and returns their area in square meters.\n *\n * @name area\n * @param {GeoJSON} geojson input GeoJSON feature(s)\n * @returns {number} area in square meters\n * @example\n * var polygon = turf.polygon([[[125, -15], [113, -22], [154, -27], [144, -15], [125, -15]]]);\n *\n * var area = turf.area(polygon);\n *\n * //addToMap\n * var addToMap = [polygon]\n * polygon.properties.area = area\n */\nfunction area(geojson) {\n return meta_1.geomReduce(geojson, function (value, geom) {\n return value + calculateArea(geom);\n }, 0);\n}\nexports.default = area;\n/**\n * Calculate Area\n *\n * @private\n * @param {Geometry} geom GeoJSON Geometries\n * @returns {number} area\n */\nfunction calculateArea(geom) {\n var total = 0;\n var i;\n switch (geom.type) {\n case \"Polygon\":\n return polygonArea(geom.coordinates);\n case \"MultiPolygon\":\n for (i = 0; i < geom.coordinates.length; i++) {\n total += polygonArea(geom.coordinates[i]);\n }\n return total;\n case \"Point\":\n case \"MultiPoint\":\n case \"LineString\":\n case \"MultiLineString\":\n return 0;\n }\n return 0;\n}\nfunction polygonArea(coords) {\n var total = 0;\n if (coords && coords.length > 0) {\n total += Math.abs(ringArea(coords[0]));\n for (var i = 1; i < coords.length; i++) {\n total -= Math.abs(ringArea(coords[i]));\n }\n }\n return total;\n}\n/**\n * @private\n * Calculate the approximate area of the polygon were it projected onto the earth.\n * Note that this area will be positive if ring is oriented clockwise, otherwise it will be negative.\n *\n * Reference:\n * Robert. G. Chamberlain and William H. Duquette, \"Some Algorithms for Polygons on a Sphere\",\n * JPL Publication 07-03, Jet Propulsion\n * Laboratory, Pasadena, CA, June 2007 http://trs-new.jpl.nasa.gov/dspace/handle/2014/40409\n *\n * @param {Array>} coords Ring Coordinates\n * @returns {number} The approximate signed geodesic area of the polygon in square meters.\n */\nfunction ringArea(coords) {\n var p1;\n var p2;\n var p3;\n var lowerIndex;\n var middleIndex;\n var upperIndex;\n var i;\n var total = 0;\n var coordsLength = coords.length;\n if (coordsLength > 2) {\n for (i = 0; i < coordsLength; i++) {\n if (i === coordsLength - 2) {\n lowerIndex = coordsLength - 2;\n middleIndex = coordsLength - 1;\n upperIndex = 0;\n }\n else if (i === coordsLength - 1) {\n lowerIndex = coordsLength - 1;\n middleIndex = 0;\n upperIndex = 1;\n }\n else {\n lowerIndex = i;\n middleIndex = i + 1;\n upperIndex = i + 2;\n }\n p1 = coords[lowerIndex];\n p2 = coords[middleIndex];\n p3 = coords[upperIndex];\n total += (rad(p3[0]) - rad(p1[0])) * Math.sin(rad(p2[1]));\n }\n total = total * RADIUS * RADIUS / 2;\n }\n return total;\n}\nfunction rad(num) {\n return num * Math.PI / 180;\n}\n\n\n/***/ }),\n\n/***/ \"3b80\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n attributes: __webpack_require__(\"5aae\"),\n supplyDefaults: __webpack_require__(\"2705\"),\n colorbar: __webpack_require__(\"f3cf\"),\n formatLabels: __webpack_require__(\"a2ee\"),\n calc: __webpack_require__(\"fcb7\"),\n plot: __webpack_require__(\"b8b2\"),\n style: __webpack_require__(\"52e8\").style,\n styleOnSelect: __webpack_require__(\"52e8\").styleOnSelect,\n hoverPoints: __webpack_require__(\"e92c\"),\n selectPoints: __webpack_require__(\"214c\"),\n eventData: __webpack_require__(\"0271\"),\n\n moduleType: 'trace',\n name: 'scattercarpet',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['svg', 'carpet', 'symbols', 'showLegend', 'carpetDependent', 'zoomScale'],\n meta: {\n \n \n }\n};\n\n\n/***/ }),\n\n/***/ \"3bd6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar rationalize = __webpack_require__(\"2195\")\n\nmodule.exports = mul\n\nfunction mul(a, b) {\n return rationalize(a[0].mul(b[0]), a[1].mul(b[1]))\n}\n\n\n/***/ }),\n\n/***/ \"3c1c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Registry = __webpack_require__(\"371e\");\n\nvar constants = __webpack_require__(\"d301\");\n\n\n// convert between axis names (xaxis, xaxis2, etc, elements of gd.layout)\n// and axis id's (x, x2, etc). Would probably have ditched 'xaxis'\n// completely in favor of just 'x' if it weren't ingrained in the API etc.\nexports.id2name = function id2name(id) {\n if(typeof id !== 'string' || !id.match(constants.AX_ID_PATTERN)) return;\n var axNum = id.substr(1);\n if(axNum === '1') axNum = '';\n return id.charAt(0) + 'axis' + axNum;\n};\n\nexports.name2id = function name2id(name) {\n if(!name.match(constants.AX_NAME_PATTERN)) return;\n var axNum = name.substr(5);\n if(axNum === '1') axNum = '';\n return name.charAt(0) + axNum;\n};\n\nexports.cleanId = function cleanId(id, axLetter) {\n if(!id.match(constants.AX_ID_PATTERN)) return;\n if(axLetter && id.charAt(0) !== axLetter) return;\n\n var axNum = id.substr(1).replace(/^0+/, '');\n if(axNum === '1') axNum = '';\n return id.charAt(0) + axNum;\n};\n\n// get all axis objects, as restricted in listNames\nexports.list = function(gd, axLetter, only2d) {\n var fullLayout = gd._fullLayout;\n if(!fullLayout) return [];\n\n var idList = exports.listIds(gd, axLetter);\n var out = new Array(idList.length);\n var i;\n\n for(i = 0; i < idList.length; i++) {\n var idi = idList[i];\n out[i] = fullLayout[idi.charAt(0) + 'axis' + idi.substr(1)];\n }\n\n if(!only2d) {\n var sceneIds3D = fullLayout._subplots.gl3d || [];\n\n for(i = 0; i < sceneIds3D.length; i++) {\n var scene = fullLayout[sceneIds3D[i]];\n\n if(axLetter) out.push(scene[axLetter + 'axis']);\n else out.push(scene.xaxis, scene.yaxis, scene.zaxis);\n }\n }\n\n return out;\n};\n\n// get all axis ids, optionally restricted by letter\n// this only makes sense for 2d axes\nexports.listIds = function(gd, axLetter) {\n var fullLayout = gd._fullLayout;\n if(!fullLayout) return [];\n\n var subplotLists = fullLayout._subplots;\n if(axLetter) return subplotLists[axLetter + 'axis'];\n return subplotLists.xaxis.concat(subplotLists.yaxis);\n};\n\n// get an axis object from its id 'x','x2' etc\n// optionally, id can be a subplot (ie 'x2y3') and type gets x or y from it\nexports.getFromId = function(gd, id, type) {\n var fullLayout = gd._fullLayout;\n\n if(type === 'x') id = id.replace(/y[0-9]*/, '');\n else if(type === 'y') id = id.replace(/x[0-9]*/, '');\n\n return fullLayout[exports.id2name(id)];\n};\n\n// get an axis object of specified type from the containing trace\nexports.getFromTrace = function(gd, fullTrace, type) {\n var fullLayout = gd._fullLayout;\n var ax = null;\n\n if(Registry.traceIs(fullTrace, 'gl3d')) {\n var scene = fullTrace.scene;\n if(scene.substr(0, 5) === 'scene') {\n ax = fullLayout[scene][type + 'axis'];\n }\n } else {\n ax = exports.getFromId(gd, fullTrace[type + 'axis'] || type);\n }\n\n return ax;\n};\n\n// sort x, x2, x10, y, y2, y10...\nexports.idSort = function(id1, id2) {\n var letter1 = id1.charAt(0);\n var letter2 = id2.charAt(0);\n if(letter1 !== letter2) return letter1 > letter2 ? 1 : -1;\n return +(id1.substr(1) || 1) - +(id2.substr(1) || 1);\n};\n\nexports.getAxisGroup = function getAxisGroup(fullLayout, axId) {\n var matchGroups = fullLayout._axisMatchGroups;\n\n for(var i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n if(group[axId]) return 'g' + i;\n }\n return axId;\n};\n\n\n/***/ }),\n\n/***/ \"3c31\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\n\n/**\n * Error bar computing function generator\n *\n * N.B. The generated function does not clean the dataPt entries. Non-numeric\n * entries result in undefined error magnitudes.\n *\n * @param {object} opts error bar attributes\n *\n * @return {function} :\n * @param {numeric} dataPt data point from where to compute the error magnitude\n * @param {number} index index of dataPt in its corresponding data array\n * @return {array}\n * - error[0] : error magnitude in the negative direction\n * - error[1] : \" \" \" \" positive \"\n */\nmodule.exports = function makeComputeError(opts) {\n var type = opts.type;\n var symmetric = opts.symmetric;\n\n if(type === 'data') {\n var array = opts.array || [];\n\n if(symmetric) {\n return function computeError(dataPt, index) {\n var val = +(array[index]);\n return [val, val];\n };\n } else {\n var arrayminus = opts.arrayminus || [];\n return function computeError(dataPt, index) {\n var val = +array[index];\n var valMinus = +arrayminus[index];\n // in case one is present and the other is missing, fill in 0\n // so we still see the present one. Mostly useful during manual\n // data entry.\n if(!isNaN(val) || !isNaN(valMinus)) {\n return [valMinus || 0, val || 0];\n }\n return [NaN, NaN];\n };\n }\n } else {\n var computeErrorValue = makeComputeErrorValue(type, opts.value);\n var computeErrorValueMinus = makeComputeErrorValue(type, opts.valueminus);\n\n if(symmetric || opts.valueminus === undefined) {\n return function computeError(dataPt) {\n var val = computeErrorValue(dataPt);\n return [val, val];\n };\n } else {\n return function computeError(dataPt) {\n return [\n computeErrorValueMinus(dataPt),\n computeErrorValue(dataPt)\n ];\n };\n }\n }\n};\n\n/**\n * Compute error bar magnitude (for all types except data)\n *\n * @param {string} type error bar type\n * @param {numeric} value error bar value\n *\n * @return {function} :\n * @param {numeric} dataPt\n */\nfunction makeComputeErrorValue(type, value) {\n if(type === 'percent') {\n return function(dataPt) {\n return Math.abs(dataPt * value / 100);\n };\n }\n if(type === 'constant') {\n return function() {\n return Math.abs(value);\n };\n }\n if(type === 'sqrt') {\n return function(dataPt) {\n return Math.sqrt(Math.abs(dataPt));\n };\n }\n}\n\n\n/***/ }),\n\n/***/ \"3c41\":\n/***/ (function(module, exports) {\n\nmodule.exports = clone\n\n/**\n * Creates a new vec4 initialized with values from an existing vector\n *\n * @param {vec4} a vector to clone\n * @returns {vec4} a new 4D vector\n */\nfunction clone (a) {\n var out = new Float32Array(4)\n out[0] = a[0]\n out[1] = a[1]\n out[2] = a[2]\n out[3] = a[3]\n return out\n}\n\n\n/***/ }),\n\n/***/ \"3cf3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar scatterFormatLabels = __webpack_require__(\"7e96\");\n\nmodule.exports = function formatLabels(cdi, trace, fullLayout) {\n var i = cdi.i;\n if(!('x' in cdi)) cdi.x = trace._x[i];\n if(!('y' in cdi)) cdi.y = trace._y[i];\n return scatterFormatLabels(cdi, trace, fullLayout);\n};\n\n\n/***/ }),\n\n/***/ \"3d2e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\n\nmodule.exports = {\n\n // layout attribute name\n name: 'updatemenus',\n\n // class names\n containerClassName: 'updatemenu-container',\n headerGroupClassName: 'updatemenu-header-group',\n headerClassName: 'updatemenu-header',\n headerArrowClassName: 'updatemenu-header-arrow',\n dropdownButtonGroupClassName: 'updatemenu-dropdown-button-group',\n dropdownButtonClassName: 'updatemenu-dropdown-button',\n buttonClassName: 'updatemenu-button',\n itemRectClassName: 'updatemenu-item-rect',\n itemTextClassName: 'updatemenu-item-text',\n\n // DOM attribute name in button group keeping track\n // of active update menu\n menuIndexAttrName: 'updatemenu-active-index',\n\n // id root pass to Plots.autoMargin\n autoMarginIdRoot: 'updatemenu-',\n\n // options when 'active: -1'\n blankHeaderOpts: { label: ' ' },\n\n // min item width / height\n minWidth: 30,\n minHeight: 30,\n\n // padding around item text\n textPadX: 24,\n arrowPadX: 16,\n\n // item rect radii\n rx: 2,\n ry: 2,\n\n // item text x offset off left edge\n textOffsetX: 12,\n\n // item text y offset (w.r.t. middle)\n textOffsetY: 3,\n\n // arrow offset off right edge\n arrowOffsetX: 4,\n\n // gap between header and buttons\n gapButtonHeader: 5,\n\n // gap between between buttons\n gapButton: 2,\n\n // color given to active buttons\n activeColor: '#F4FAFF',\n\n // color given to hovered buttons\n hoverColor: '#F4FAFF',\n\n // symbol for menu open arrow\n arrowSymbol: {\n left: '◄',\n right: '►',\n up: '▲',\n down: '▼'\n }\n};\n\n\n/***/ }),\n\n/***/ \"3d78\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar vectorizeText = __webpack_require__(\"b993\")\n\nmodule.exports = getGlyph\n\nvar GLYPH_CACHE = {}\n\nfunction getGlyph(symbol, font, pixelRatio) {\n var fontCache = GLYPH_CACHE[font]\n if(!fontCache) {\n fontCache = GLYPH_CACHE[font] = {}\n }\n if(symbol in fontCache) {\n return fontCache[symbol]\n }\n\n var config = {\n textAlign: \"center\",\n textBaseline: \"middle\",\n lineHeight: 1.0,\n font: font,\n lineSpacing: 1.25,\n styletags: {\n breaklines:true,\n bolds: true,\n italics: true,\n subscripts:true,\n superscripts:true\n }\n }\n\n //Get line and triangle meshes for glyph\n config.triangles = true\n var triSymbol = vectorizeText(symbol, config)\n config.triangles = false\n var lineSymbol = vectorizeText(symbol, config)\n\n var i, j\n\n if(pixelRatio && pixelRatio !== 1) {\n for(i = 0; i < triSymbol.positions.length; ++i){\n for(j = 0; j < triSymbol.positions[i].length; ++j){\n triSymbol.positions[i][j] /= pixelRatio;\n }\n }\n\n for(i = 0; i < lineSymbol.positions.length; ++i){\n for(j = 0; j < lineSymbol.positions[i].length; ++j){\n lineSymbol.positions[i][j] /= pixelRatio;\n }\n }\n }\n\n //Calculate bounding box\n var bounds = [[Infinity,Infinity], [-Infinity,-Infinity]]\n var n = lineSymbol.positions.length\n for(i = 0; i < n; ++i) {\n var p = lineSymbol.positions[i]\n for(j=0; j<2; ++j) {\n bounds[0][j] = Math.min(bounds[0][j], p[j])\n bounds[1][j] = Math.max(bounds[1][j], p[j])\n }\n }\n\n //Save cached symbol\n return fontCache[symbol] = [triSymbol, lineSymbol, bounds]\n}\n\n/***/ }),\n\n/***/ \"3dac\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bnsign = __webpack_require__(\"0fba\")\n\nmodule.exports = sign\n\nfunction sign(x) {\n return bnsign(x[0]) * bnsign(x[1])\n}\n\n\n/***/ }),\n\n/***/ \"3de2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nvar pick = __webpack_require__(\"b7d1\")\r\n\r\nmodule.exports = parseRect\r\n\r\nfunction parseRect (arg) {\r\n var rect\r\n\r\n // direct arguments sequence\r\n if (arguments.length > 1) {\r\n arg = arguments\r\n }\r\n\r\n // svg viewbox\r\n if (typeof arg === 'string') {\r\n arg = arg.split(/\\s/).map(parseFloat)\r\n }\r\n else if (typeof arg === 'number') {\r\n arg = [arg]\r\n }\r\n\r\n // 0, 0, 100, 100 - array-like\r\n if (arg.length && typeof arg[0] === 'number') {\r\n // [w, w]\r\n if (arg.length === 1) {\r\n rect = {\r\n width: arg[0],\r\n height: arg[0],\r\n x: 0, y: 0\r\n }\r\n }\r\n // [w, h]\r\n else if (arg.length === 2) {\r\n rect = {\r\n width: arg[0],\r\n height: arg[1],\r\n x: 0, y: 0\r\n }\r\n }\r\n // [l, t, r, b]\r\n else {\r\n rect = {\r\n x: arg[0],\r\n y: arg[1],\r\n width: (arg[2] - arg[0]) || 0,\r\n height: (arg[3] - arg[1]) || 0\r\n }\r\n }\r\n }\r\n // {x, y, w, h} or {l, t, b, r}\r\n else if (arg) {\r\n arg = pick(arg, {\r\n left: 'x l left Left',\r\n top: 'y t top Top',\r\n width: 'w width W Width',\r\n height: 'h height W Width',\r\n bottom: 'b bottom Bottom',\r\n right: 'r right Right'\r\n })\r\n\r\n rect = {\r\n x: arg.left || 0,\r\n y: arg.top || 0\r\n }\r\n\r\n if (arg.width == null) {\r\n if (arg.right) rect.width = arg.right - rect.x\r\n else rect.width = 0\r\n }\r\n else {\r\n rect.width = arg.width\r\n }\r\n\r\n if (arg.height == null) {\r\n if (arg.bottom) rect.height = arg.bottom - rect.y\r\n else rect.height = 0\r\n }\r\n else {\r\n rect.height = arg.height\r\n }\r\n }\r\n\r\n return rect\r\n}\r\n\n\n/***/ }),\n\n/***/ \"3e11\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar parcats = __webpack_require__(\"cf9f\");\n\n/**\n * Create / update parcat traces\n *\n * @param {Object} graphDiv\n * @param {Array.} parcatsModels\n */\nmodule.exports = function plot(graphDiv, parcatsModels, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = graphDiv._fullLayout;\n var svg = fullLayout._paper;\n var size = fullLayout._size;\n\n parcats(\n graphDiv,\n svg,\n parcatsModels,\n {\n width: size.w,\n height: size.h,\n margin: {\n t: size.t,\n r: size.r,\n b: size.b,\n l: size.l\n }\n },\n transitionOpts,\n makeOnCompleteCallback\n );\n};\n\n\n/***/ }),\n\n/***/ \"3e43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\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/* http://keith-wood.name/calendars.html\n Islamic calendar for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = __webpack_require__(\"0230\");\nvar assign = __webpack_require__(\"320c\");\n\n\n/** Implementation of the Islamic or '16 civil' calendar.\n Based on code from http://www.iranchamber.com/calendar/converter/iranian_calendar_converter.php.\n See also http://en.wikipedia.org/wiki/Islamic_calendar.\n @class IslamicCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction IslamicCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nIslamicCalendar.prototype = new main.baseCalendar;\n\nassign(IslamicCalendar.prototype, {\n /** The calendar name.\n @memberof IslamicCalendar */\n name: 'Islamic',\n /** Julian date of start of Islamic epoch: 16 July 622 CE.\n @memberof IslamicCalendar */\n jdEpoch: 1948439.5,\n /** Days per month in a common year.\n @memberof IslamicCalendar */\n daysPerMonth: [30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29],\n /** true if has a year zero, false if not.\n @memberof IslamicCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof IslamicCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof IslamicCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof IslamicCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof IslamicCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Islamic',\n epochs: ['BH', 'AH'],\n monthNames: ['Muharram', 'Safar', 'Rabi\\' al-awwal', 'Rabi\\' al-thani', 'Jumada al-awwal', 'Jumada al-thani',\n 'Rajab', 'Sha\\'aban', 'Ramadan', 'Shawwal', 'Dhu al-Qi\\'dah', 'Dhu al-Hijjah'],\n monthNamesShort: ['Muh', 'Saf', 'Rab1', 'Rab2', 'Jum1', 'Jum2', 'Raj', 'Sha\\'', 'Ram', 'Shaw', 'DhuQ', 'DhuH'],\n dayNames: ['Yawm al-ahad', 'Yawm al-ithnayn', 'Yawm ath-thulaathaa\\'',\n 'Yawm al-arbi\\'aa\\'', 'Yawm al-khamīs', 'Yawm al-jum\\'a', 'Yawm as-sabt'],\n dayNamesShort: ['Aha', 'Ith', 'Thu', 'Arb', 'Kha', 'Jum', 'Sab'],\n dayNamesMin: ['Ah','It','Th','Ar','Kh','Ju','Sa'],\n digits: null,\n dateFormat: 'yyyy/mm/dd',\n firstDay: 6,\n isRTL: false\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return (date.year() * 11 + 14) % 30 < 11;\n },\n\n /** Determine the week of the year for a date.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n // Find Sunday of this week starting on Sunday\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), 'd');\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n\n /** Retrieve the number of days in a year.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n return (this.leapYear(year) ? 355 : 354);\n },\n\n /** Retrieve the number of days in a month.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] +\n (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0);\n },\n\n /** Determine whether this date is a week day.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n year = (year <= 0 ? year + 1 : year);\n return day + Math.ceil(29.5 * (month - 1)) + (year - 1) * 354 +\n Math.floor((3 + (11 * year)) / 30) + this.jdEpoch - 1;\n },\n\n /** Create a new date from a Julian date.\n @memberof IslamicCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5;\n var year = Math.floor((30 * (jd - this.jdEpoch) + 10646) / 10631);\n year = (year <= 0 ? year - 1 : year);\n var month = Math.min(12, Math.ceil((jd - 29 - this.toJD(year, 1, 1)) / 29.5) + 1);\n var day = jd - this.toJD(year, month, 1) + 1;\n return this.newDate(year, month, day);\n }\n});\n\n// Islamic (16 civil) calendar implementation\nmain.calendars.islamic = IslamicCalendar;\n\n\n\n/***/ }),\n\n/***/ \"3e8e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n treemapcolorway: {\n valType: 'colorlist',\n \n editType: 'calc',\n \n },\n extendtreemapcolors: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'calc',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"3e97\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = function eventData(out, pt) {\n if('xVal' in pt) out.x = pt.xVal;\n if('yVal' in pt) out.y = pt.yVal;\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n out.color = pt.color;\n out.colormodel = pt.trace.colormodel;\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"3eab\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"77ae\");\n\n\n/***/ }),\n\n/***/ \"3ee9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n attributes: __webpack_require__(\"6b50\"),\n supplyDefaults: __webpack_require__(\"b6f7\"),\n calc: __webpack_require__(\"6dea\"),\n colorbar: {\n min: 'cmin',\n max: 'cmax'\n },\n plot: __webpack_require__(\"54a9\"),\n\n moduleType: 'trace',\n name: 'mesh3d',\n basePlotModule: __webpack_require__(\"134c\"),\n categories: ['gl3d', 'showLegend'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"3efe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"a18b\");\n\n\n/***/ }),\n\n/***/ \"3f57\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"e5c5\")\n\n/***/ }),\n\n/***/ \"3fb2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Plots = __webpack_require__(\"bb71\");\nvar PlotSchema = __webpack_require__(\"6921\");\nvar dfltConfig = __webpack_require__(\"3ff5\").dfltConfig;\n\nvar isPlainObject = Lib.isPlainObject;\nvar isArray = Array.isArray;\nvar isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n\n/**\n * Validate a data array and layout object.\n *\n * @param {array} data\n * @param {object} layout\n *\n * @return {array} array of error objects each containing:\n * - {string} code\n * error code ('object', 'array', 'schema', 'unused', 'invisible' or 'value')\n * - {string} container\n * container where the error occurs ('data' or 'layout')\n * - {number} trace\n * trace index of the 'data' container where the error occurs\n * - {array} path\n * nested path to the key that causes the error\n * - {string} astr\n * attribute string variant of 'path' compatible with Plotly.restyle and\n * Plotly.relayout.\n * - {string} msg\n * error message (shown in console in logger config argument is enable)\n */\nmodule.exports = function validate(data, layout) {\n var schema = PlotSchema.get();\n var errorList = [];\n var gd = {_context: Lib.extendFlat({}, dfltConfig)};\n\n var dataIn, layoutIn;\n\n if(isArray(data)) {\n gd.data = Lib.extendDeep([], data);\n dataIn = data;\n } else {\n gd.data = [];\n dataIn = [];\n errorList.push(format('array', 'data'));\n }\n\n if(isPlainObject(layout)) {\n gd.layout = Lib.extendDeep({}, layout);\n layoutIn = layout;\n } else {\n gd.layout = {};\n layoutIn = {};\n if(arguments.length > 1) {\n errorList.push(format('object', 'layout'));\n }\n }\n\n // N.B. dataIn and layoutIn are in general not the same as\n // gd.data and gd.layout after supplyDefaults as some attributes\n // in gd.data and gd.layout (still) get mutated during this step.\n\n Plots.supplyDefaults(gd);\n\n var dataOut = gd._fullData;\n var len = dataIn.length;\n\n for(var i = 0; i < len; i++) {\n var traceIn = dataIn[i];\n var base = ['data', i];\n\n if(!isPlainObject(traceIn)) {\n errorList.push(format('object', base));\n continue;\n }\n\n var traceOut = dataOut[i];\n var traceType = traceOut.type;\n var traceSchema = schema.traces[traceType].attributes;\n\n // PlotSchema does something fancy with trace 'type', reset it here\n // to make the trace schema compatible with Lib.validate.\n traceSchema.type = {\n valType: 'enumerated',\n values: [traceType]\n };\n\n if(traceOut.visible === false && traceIn.visible !== false) {\n errorList.push(format('invisible', base));\n }\n\n crawl(traceIn, traceOut, traceSchema, errorList, base);\n\n var transformsIn = traceIn.transforms;\n var transformsOut = traceOut.transforms;\n\n if(transformsIn) {\n if(!isArray(transformsIn)) {\n errorList.push(format('array', base, ['transforms']));\n }\n\n base.push('transforms');\n\n for(var j = 0; j < transformsIn.length; j++) {\n var path = ['transforms', j];\n var transformType = transformsIn[j].type;\n\n if(!isPlainObject(transformsIn[j])) {\n errorList.push(format('object', base, path));\n continue;\n }\n\n var transformSchema = schema.transforms[transformType] ?\n schema.transforms[transformType].attributes :\n {};\n\n // add 'type' to transform schema to validate the transform type\n transformSchema.type = {\n valType: 'enumerated',\n values: Object.keys(schema.transforms)\n };\n\n crawl(transformsIn[j], transformsOut[j], transformSchema, errorList, base, path);\n }\n }\n }\n\n var layoutOut = gd._fullLayout;\n var layoutSchema = fillLayoutSchema(schema, dataOut);\n\n crawl(layoutIn, layoutOut, layoutSchema, errorList, 'layout');\n\n // return undefined if no validation errors were found\n return (errorList.length === 0) ? void(0) : errorList;\n};\n\nfunction crawl(objIn, objOut, schema, list, base, path) {\n path = path || [];\n\n var keys = Object.keys(objIn);\n\n for(var i = 0; i < keys.length; i++) {\n var k = keys[i];\n\n // transforms are handled separately\n if(k === 'transforms') continue;\n\n var p = path.slice();\n p.push(k);\n\n var valIn = objIn[k];\n var valOut = objOut[k];\n\n var nestedSchema = getNestedSchema(schema, k);\n var isInfoArray = (nestedSchema || {}).valType === 'info_array';\n var isColorscale = (nestedSchema || {}).valType === 'colorscale';\n var items = (nestedSchema || {}).items;\n\n if(!isInSchema(schema, k)) {\n list.push(format('schema', base, p));\n } else if(isPlainObject(valIn) && isPlainObject(valOut)) {\n crawl(valIn, valOut, nestedSchema, list, base, p);\n } else if(isInfoArray && isArray(valIn)) {\n if(valIn.length > valOut.length) {\n list.push(format('unused', base, p.concat(valOut.length)));\n }\n var len = valOut.length;\n var arrayItems = Array.isArray(items);\n if(arrayItems) len = Math.min(len, items.length);\n var m, n, item, valInPart, valOutPart;\n if(nestedSchema.dimensions === 2) {\n for(n = 0; n < len; n++) {\n if(isArray(valIn[n])) {\n if(valIn[n].length > valOut[n].length) {\n list.push(format('unused', base, p.concat(n, valOut[n].length)));\n }\n var len2 = valOut[n].length;\n for(m = 0; m < (arrayItems ? Math.min(len2, items[n].length) : len2); m++) {\n item = arrayItems ? items[n][m] : items;\n valInPart = valIn[n][m];\n valOutPart = valOut[n][m];\n if(!Lib.validate(valInPart, item)) {\n list.push(format('value', base, p.concat(n, m), valInPart));\n } else if(valOutPart !== valInPart && valOutPart !== +valInPart) {\n list.push(format('dynamic', base, p.concat(n, m), valInPart, valOutPart));\n }\n }\n } else {\n list.push(format('array', base, p.concat(n), valIn[n]));\n }\n }\n } else {\n for(n = 0; n < len; n++) {\n item = arrayItems ? items[n] : items;\n valInPart = valIn[n];\n valOutPart = valOut[n];\n if(!Lib.validate(valInPart, item)) {\n list.push(format('value', base, p.concat(n), valInPart));\n } else if(valOutPart !== valInPart && valOutPart !== +valInPart) {\n list.push(format('dynamic', base, p.concat(n), valInPart, valOutPart));\n }\n }\n }\n } else if(nestedSchema.items && !isInfoArray && isArray(valIn)) {\n var _nestedSchema = items[Object.keys(items)[0]];\n var indexList = [];\n\n var j, _p;\n\n // loop over valOut items while keeping track of their\n // corresponding input container index (given by _index)\n for(j = 0; j < valOut.length; j++) {\n var _index = valOut[j]._index || j;\n\n _p = p.slice();\n _p.push(_index);\n\n if(isPlainObject(valIn[_index]) && isPlainObject(valOut[j])) {\n indexList.push(_index);\n var valInj = valIn[_index];\n var valOutj = valOut[j];\n if(isPlainObject(valInj) && valInj.visible !== false && valOutj.visible === false) {\n list.push(format('invisible', base, _p));\n } else crawl(valInj, valOutj, _nestedSchema, list, base, _p);\n }\n }\n\n // loop over valIn to determine where it went wrong for some items\n for(j = 0; j < valIn.length; j++) {\n _p = p.slice();\n _p.push(j);\n\n if(!isPlainObject(valIn[j])) {\n list.push(format('object', base, _p, valIn[j]));\n } else if(indexList.indexOf(j) === -1) {\n list.push(format('unused', base, _p));\n }\n }\n } else if(!isPlainObject(valIn) && isPlainObject(valOut)) {\n list.push(format('object', base, p, valIn));\n } else if(!isArrayOrTypedArray(valIn) && isArrayOrTypedArray(valOut) && !isInfoArray && !isColorscale) {\n list.push(format('array', base, p, valIn));\n } else if(!(k in objOut)) {\n list.push(format('unused', base, p, valIn));\n } else if(!Lib.validate(valIn, nestedSchema)) {\n list.push(format('value', base, p, valIn));\n } else if(nestedSchema.valType === 'enumerated' &&\n ((nestedSchema.coerceNumber && valIn !== +valOut) || valIn !== valOut)\n ) {\n list.push(format('dynamic', base, p, valIn, valOut));\n }\n }\n\n return list;\n}\n\n// the 'full' layout schema depends on the traces types presents\nfunction fillLayoutSchema(schema, dataOut) {\n var layoutSchema = schema.layout.layoutAttributes;\n\n for(var i = 0; i < dataOut.length; i++) {\n var traceOut = dataOut[i];\n var traceSchema = schema.traces[traceOut.type];\n var traceLayoutAttr = traceSchema.layoutAttributes;\n\n if(traceLayoutAttr) {\n if(traceOut.subplot) {\n Lib.extendFlat(layoutSchema[traceSchema.attributes.subplot.dflt], traceLayoutAttr);\n } else {\n Lib.extendFlat(layoutSchema, traceLayoutAttr);\n }\n }\n }\n\n return layoutSchema;\n}\n\n// validation error codes\nvar code2msgFunc = {\n object: function(base, astr) {\n var prefix;\n\n if(base === 'layout' && astr === '') prefix = 'The layout argument';\n else if(base[0] === 'data' && astr === '') {\n prefix = 'Trace ' + base[1] + ' in the data argument';\n } else prefix = inBase(base) + 'key ' + astr;\n\n return prefix + ' must be linked to an object container';\n },\n array: function(base, astr) {\n var prefix;\n\n if(base === 'data') prefix = 'The data argument';\n else prefix = inBase(base) + 'key ' + astr;\n\n return prefix + ' must be linked to an array container';\n },\n schema: function(base, astr) {\n return inBase(base) + 'key ' + astr + ' is not part of the schema';\n },\n unused: function(base, astr, valIn) {\n var target = isPlainObject(valIn) ? 'container' : 'key';\n\n return inBase(base) + target + ' ' + astr + ' did not get coerced';\n },\n dynamic: function(base, astr, valIn, valOut) {\n return [\n inBase(base) + 'key',\n astr,\n '(set to \\'' + valIn + '\\')',\n 'got reset to',\n '\\'' + valOut + '\\'',\n 'during defaults.'\n ].join(' ');\n },\n invisible: function(base, astr) {\n return (\n astr ? (inBase(base) + 'item ' + astr) : ('Trace ' + base[1])\n ) + ' got defaulted to be not visible';\n },\n value: function(base, astr, valIn) {\n return [\n inBase(base) + 'key ' + astr,\n 'is set to an invalid value (' + valIn + ')'\n ].join(' ');\n }\n};\n\nfunction inBase(base) {\n if(isArray(base)) return 'In data trace ' + base[1] + ', ';\n\n return 'In ' + base + ', ';\n}\n\nfunction format(code, base, path, valIn, valOut) {\n path = path || '';\n\n var container, trace;\n\n // container is either 'data' or 'layout\n // trace is the trace index if 'data', null otherwise\n\n if(isArray(base)) {\n container = base[0];\n trace = base[1];\n } else {\n container = base;\n trace = null;\n }\n\n var astr = convertPathToAttributeString(path);\n var msg = code2msgFunc[code](base, astr, valIn, valOut);\n\n // log to console if logger config option is enabled\n Lib.log(msg);\n\n return {\n code: code,\n container: container,\n trace: trace,\n path: path,\n astr: astr,\n msg: msg\n };\n}\n\nfunction isInSchema(schema, key) {\n var parts = splitKey(key);\n var keyMinusId = parts.keyMinusId;\n var id = parts.id;\n\n if((keyMinusId in schema) && schema[keyMinusId]._isSubplotObj && id) {\n return true;\n }\n\n return (key in schema);\n}\n\nfunction getNestedSchema(schema, key) {\n if(key in schema) return schema[key];\n\n var parts = splitKey(key);\n\n return schema[parts.keyMinusId];\n}\n\nvar idRegex = Lib.counterRegex('([a-z]+)');\n\nfunction splitKey(key) {\n var idMatch = key.match(idRegex);\n\n return {\n keyMinusId: idMatch && idMatch[1],\n id: idMatch && idMatch[2]\n };\n}\n\nfunction convertPathToAttributeString(path) {\n if(!isArray(path)) return String(path);\n\n var astr = '';\n\n for(var i = 0; i < path.length; i++) {\n var p = path[i];\n\n if(typeof p === 'number') {\n astr = astr.substr(0, astr.length - 1) + '[' + p + ']';\n } else {\n astr += p;\n }\n\n if(i < path.length - 1) astr += '.';\n }\n\n return astr;\n}\n\n\n/***/ }),\n\n/***/ \"3fca\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar mapboxgl = __webpack_require__(\"e192\");\n\nvar Fx = __webpack_require__(\"a5c4\");\nvar Lib = __webpack_require__(\"fc26\");\nvar geoUtils = __webpack_require__(\"0919\");\nvar Registry = __webpack_require__(\"371e\");\nvar Axes = __webpack_require__(\"0642\");\nvar dragElement = __webpack_require__(\"4efe\");\nvar prepSelect = __webpack_require__(\"1876\").prepSelect;\nvar selectOnClick = __webpack_require__(\"1876\").selectOnClick;\n\nvar constants = __webpack_require__(\"b5e4\");\nvar createMapboxLayer = __webpack_require__(\"d0d2\");\n\nfunction Mapbox(gd, id) {\n this.id = id;\n this.gd = gd;\n\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n\n this.container = fullLayout._glcontainer.node();\n this.isStatic = context.staticPlot;\n\n // unique id for this Mapbox instance\n this.uid = fullLayout._uid + '-' + this.id;\n\n // create framework on instantiation for a smoother first plot call\n this.div = null;\n this.xaxis = null;\n this.yaxis = null;\n this.createFramework(fullLayout);\n\n // state variables used to infer how and what to update\n this.map = null;\n this.accessToken = null;\n this.styleObj = null;\n this.traceHash = {};\n this.layerList = [];\n this.belowLookup = {};\n this.dragging = false;\n this.wheeling = false;\n}\n\nvar proto = Mapbox.prototype;\n\nproto.plot = function(calcData, fullLayout, promises) {\n var self = this;\n var opts = fullLayout[self.id];\n\n // remove map and create a new map if access token has change\n if(self.map && (opts.accesstoken !== self.accessToken)) {\n self.map.remove();\n self.map = null;\n self.styleObj = null;\n self.traceHash = [];\n self.layerList = {};\n }\n\n var promise;\n\n if(!self.map) {\n promise = new Promise(function(resolve, reject) {\n self.createMap(calcData, fullLayout, resolve, reject);\n });\n } else {\n promise = new Promise(function(resolve, reject) {\n self.updateMap(calcData, fullLayout, resolve, reject);\n });\n }\n\n promises.push(promise);\n};\n\nproto.createMap = function(calcData, fullLayout, resolve, reject) {\n var self = this;\n var opts = fullLayout[self.id];\n\n // store style id and URL or object\n var styleObj = self.styleObj = getStyleObj(opts.style);\n\n // store access token associated with this map\n self.accessToken = opts.accesstoken;\n\n // create the map!\n var map = self.map = new mapboxgl.Map({\n container: self.div,\n\n style: styleObj.style,\n center: convertCenter(opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch,\n\n interactive: !self.isStatic,\n preserveDrawingBuffer: self.isStatic,\n\n doubleClickZoom: false,\n boxZoom: false,\n\n attributionControl: false\n })\n .addControl(new mapboxgl.AttributionControl({\n compact: true\n }));\n\n\n // make sure canvas does not inherit left and top css\n map._canvas.style.left = '0px';\n map._canvas.style.top = '0px';\n\n self.rejectOnError(reject);\n\n if(!self.isStatic) {\n self.initFx(calcData, fullLayout);\n }\n\n var promises = [];\n\n promises.push(new Promise(function(resolve) {\n map.once('load', resolve);\n }));\n\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n\n Promise.all(promises).then(function() {\n self.fillBelowLookup(calcData, fullLayout);\n self.updateData(calcData);\n self.updateLayout(fullLayout);\n self.resolveOnRender(resolve);\n }).catch(reject);\n};\n\nproto.updateMap = function(calcData, fullLayout, resolve, reject) {\n var self = this;\n var map = self.map;\n var opts = fullLayout[this.id];\n\n self.rejectOnError(reject);\n\n var promises = [];\n var styleObj = getStyleObj(opts.style);\n\n if(self.styleObj.id !== styleObj.id) {\n self.styleObj = styleObj;\n map.setStyle(styleObj.style);\n\n // need to rebuild trace layers on reload\n // to avoid 'lost event' errors\n self.traceHash = {};\n\n promises.push(new Promise(function(resolve) {\n map.once('styledata', resolve);\n }));\n }\n\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n\n Promise.all(promises).then(function() {\n self.fillBelowLookup(calcData, fullLayout);\n self.updateData(calcData);\n self.updateLayout(fullLayout);\n self.resolveOnRender(resolve);\n }).catch(reject);\n};\n\nproto.fillBelowLookup = function(calcData, fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var i, val;\n\n var belowLookup = this.belowLookup = {};\n var hasTraceAtTop = false;\n\n for(i = 0; i < calcData.length; i++) {\n var trace = calcData[i][0].trace;\n var _module = trace._module;\n\n if(typeof trace.below === 'string') {\n val = trace.below;\n } else if(_module.getBelow) {\n // 'smart' default that depend the map's base layers\n val = _module.getBelow(trace, this);\n }\n\n if(val === '') {\n hasTraceAtTop = true;\n }\n\n belowLookup['trace-' + trace.uid] = val || '';\n }\n\n for(i = 0; i < layers.length; i++) {\n var item = layers[i];\n\n if(typeof item.below === 'string') {\n val = item.below;\n } else if(hasTraceAtTop) {\n // if one or more trace(s) set `below:''` and\n // layers[i].below is unset,\n // place layer below traces\n val = 'traces';\n } else {\n val = '';\n }\n\n belowLookup['layout-' + i] = val;\n }\n\n // N.B. If multiple layers have the 'below' value,\n // we must clear the stashed 'below' field in order\n // to make `traceHash[k].update()` and `layerList[i].update()`\n // remove/add the all those layers to have preserve\n // the correct layer ordering\n var val2list = {};\n var k, id;\n\n for(k in belowLookup) {\n val = belowLookup[k];\n if(val2list[val]) {\n val2list[val].push(k);\n } else {\n val2list[val] = [k];\n }\n }\n\n for(val in val2list) {\n var list = val2list[val];\n if(list.length > 1) {\n for(i = 0; i < list.length; i++) {\n k = list[i];\n if(k.indexOf('trace-') === 0) {\n id = k.split('trace-')[1];\n if(this.traceHash[id]) {\n this.traceHash[id].below = null;\n }\n } else if(k.indexOf('layout-') === 0) {\n id = k.split('layout-')[1];\n if(this.layerList[id]) {\n this.layerList[id].below = null;\n }\n }\n }\n }\n }\n};\n\nvar traceType2orderIndex = {\n choroplethmapbox: 0,\n densitymapbox: 1,\n scattermapbox: 2\n};\n\nproto.updateData = function(calcData) {\n var traceHash = this.traceHash;\n var traceObj, trace, i, j;\n\n // Need to sort here by trace type here,\n // in case traces with different `type` have the same\n // below value, but sorting we ensure that\n // e.g. choroplethmapbox traces will be below scattermapbox traces\n var calcDataSorted = calcData.slice().sort(function(a, b) {\n return (\n traceType2orderIndex[a[0].trace.type] -\n traceType2orderIndex[b[0].trace.type]\n );\n });\n\n // update or create trace objects\n for(i = 0; i < calcDataSorted.length; i++) {\n var calcTrace = calcDataSorted[i];\n\n trace = calcTrace[0].trace;\n traceObj = traceHash[trace.uid];\n\n var didUpdate = false;\n if(traceObj) {\n if(traceObj.type === trace.type) {\n traceObj.update(calcTrace);\n didUpdate = true;\n } else {\n traceObj.dispose();\n }\n }\n if(!didUpdate && trace._module) {\n traceHash[trace.uid] = trace._module.plot(this, calcTrace);\n }\n }\n\n // remove empty trace objects\n var ids = Object.keys(traceHash);\n idLoop:\n for(i = 0; i < ids.length; i++) {\n var id = ids[i];\n\n for(j = 0; j < calcData.length; j++) {\n trace = calcData[j][0].trace;\n if(id === trace.uid) continue idLoop;\n }\n\n traceObj = traceHash[id];\n traceObj.dispose();\n delete traceHash[id];\n }\n};\n\nproto.updateLayout = function(fullLayout) {\n var map = this.map;\n var opts = fullLayout[this.id];\n\n if(!this.dragging && !this.wheeling) {\n map.setCenter(convertCenter(opts.center));\n map.setZoom(opts.zoom);\n map.setBearing(opts.bearing);\n map.setPitch(opts.pitch);\n }\n\n this.updateLayers(fullLayout);\n this.updateFramework(fullLayout);\n this.updateFx(fullLayout);\n this.map.resize();\n\n if(this.gd._context._scrollZoom.mapbox) {\n map.scrollZoom.enable();\n } else {\n map.scrollZoom.disable();\n }\n};\n\nproto.resolveOnRender = function(resolve) {\n var map = this.map;\n\n map.on('render', function onRender() {\n if(map.loaded()) {\n map.off('render', onRender);\n // resolve at end of render loop\n //\n // Need a 10ms delay (0ms should suffice to skip a thread in the\n // render loop) to workaround mapbox-gl bug introduced in v1.3.0\n setTimeout(resolve, 10);\n }\n });\n};\n\nproto.rejectOnError = function(reject) {\n var map = this.map;\n\n function handler() {\n reject(new Error(constants.mapOnErrorMsg));\n }\n\n map.once('error', handler);\n map.once('style.error', handler);\n map.once('source.error', handler);\n map.once('tile.error', handler);\n map.once('layer.error', handler);\n};\n\nproto.createFramework = function(fullLayout) {\n var self = this;\n\n var div = self.div = document.createElement('div');\n div.id = self.uid;\n div.style.position = 'absolute';\n self.container.appendChild(div);\n\n // create mock x/y axes for hover routine\n self.xaxis = {\n _id: 'x',\n c2p: function(v) { return self.project(v).x; }\n };\n self.yaxis = {\n _id: 'y',\n c2p: function(v) { return self.project(v).y; }\n };\n\n self.updateFramework(fullLayout);\n\n // mock axis for hover formatting\n self.mockAxis = {\n type: 'linear',\n showexponent: 'all',\n exponentformat: 'B'\n };\n Axes.setConvert(self.mockAxis, fullLayout);\n};\n\nproto.initFx = function(calcData, fullLayout) {\n var self = this;\n var gd = self.gd;\n var map = self.map;\n\n // keep track of pan / zoom in user layout and emit relayout event\n map.on('moveend', function(evt) {\n if(!self.map) return;\n\n var fullLayoutNow = gd._fullLayout;\n\n // 'moveend' gets triggered by map.setCenter, map.setZoom,\n // map.setBearing and map.setPitch.\n //\n // Here, we make sure that state updates amd 'plotly_relayout'\n // are triggered only when the 'moveend' originates from a\n // mouse target (filtering out API calls) to not\n // duplicate 'plotly_relayout' events.\n\n if(evt.originalEvent || self.wheeling) {\n var optsNow = fullLayoutNow[self.id];\n Registry.call('_storeDirectGUIEdit', gd.layout, fullLayoutNow._preGUI, self.getViewEdits(optsNow));\n\n var viewNow = self.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n gd.emit('plotly_relayout', self.getViewEditsWithDerived(viewNow));\n }\n if(evt.originalEvent && evt.originalEvent.type === 'mouseup') {\n self.dragging = false;\n } else if(self.wheeling) {\n self.wheeling = false;\n }\n\n if(fullLayoutNow._rehover) {\n fullLayoutNow._rehover();\n }\n });\n\n map.on('wheel', function() {\n self.wheeling = true;\n });\n\n map.on('mousemove', function(evt) {\n var bb = self.div.getBoundingClientRect();\n\n // some hackery to get Fx.hover to work\n evt.clientX = evt.point.x + bb.left;\n evt.clientY = evt.point.y + bb.top;\n\n evt.target.getBoundingClientRect = function() { return bb; };\n\n self.xaxis.p2c = function() { return evt.lngLat.lng; };\n self.yaxis.p2c = function() { return evt.lngLat.lat; };\n\n gd._fullLayout._rehover = function() {\n if(gd._fullLayout._hoversubplot === self.id && gd._fullLayout[self.id]) {\n Fx.hover(gd, evt, self.id);\n }\n };\n\n Fx.hover(gd, evt, self.id);\n gd._fullLayout._hoversubplot = self.id;\n });\n\n function unhover() {\n Fx.loneUnhover(fullLayout._hoverlayer);\n }\n\n map.on('dragstart', function() {\n self.dragging = true;\n unhover();\n });\n map.on('zoomstart', unhover);\n\n map.on('mouseout', function() {\n gd._fullLayout._hoversubplot = null;\n });\n\n function emitUpdate() {\n var viewNow = self.getView();\n gd.emit('plotly_relayouting', self.getViewEditsWithDerived(viewNow));\n }\n\n map.on('drag', emitUpdate);\n map.on('zoom', emitUpdate);\n\n map.on('dblclick', function() {\n var optsNow = gd._fullLayout[self.id];\n Registry.call('_storeDirectGUIEdit', gd.layout, gd._fullLayout._preGUI, self.getViewEdits(optsNow));\n\n var viewInitial = self.viewInitial;\n map.setCenter(convertCenter(viewInitial.center));\n map.setZoom(viewInitial.zoom);\n map.setBearing(viewInitial.bearing);\n map.setPitch(viewInitial.pitch);\n\n var viewNow = self.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n\n gd.emit('plotly_doubleclick', null);\n gd.emit('plotly_relayout', self.getViewEditsWithDerived(viewNow));\n });\n\n // define event handlers on map creation, to keep one ref per map,\n // so that map.on / map.off in updateFx works as expected\n self.clearSelect = function() {\n gd._fullLayout._zoomlayer.selectAll('.select-outline').remove();\n };\n\n /**\n * Returns a click handler function that is supposed\n * to handle clicks in pan mode.\n */\n self.onClickInPanFn = function(dragOptions) {\n return function(evt) {\n var clickMode = gd._fullLayout.clickmode;\n\n if(clickMode.indexOf('select') > -1) {\n selectOnClick(evt.originalEvent, gd, [self.xaxis], [self.yaxis], self.id, dragOptions);\n }\n\n if(clickMode.indexOf('event') > -1) {\n // TODO: this does not support right-click. If we want to support it, we\n // would likely need to change mapbox to use dragElement instead of straight\n // mapbox event binding. Or perhaps better, make a simple wrapper with the\n // right mousedown, mousemove, and mouseup handlers just for a left/right click\n // pie would use this too.\n Fx.click(gd, evt.originalEvent);\n }\n };\n };\n};\n\nproto.updateFx = function(fullLayout) {\n var self = this;\n var map = self.map;\n var gd = self.gd;\n\n if(self.isStatic) return;\n\n function invert(pxpy) {\n var obj = self.map.unproject(pxpy);\n return [obj.lng, obj.lat];\n }\n\n var dragMode = fullLayout.dragmode;\n var fillRangeItems;\n\n if(dragMode === 'select') {\n fillRangeItems = function(eventData, poly) {\n var ranges = eventData.range = {};\n ranges[self.id] = [\n invert([poly.xmin, poly.ymin]),\n invert([poly.xmax, poly.ymax])\n ];\n };\n } else {\n fillRangeItems = function(eventData, poly, pts) {\n var dataPts = eventData.lassoPoints = {};\n dataPts[self.id] = pts.filtered.map(invert);\n };\n }\n\n // Note: dragOptions is needed to be declared for all dragmodes because\n // it's the object that holds persistent selection state.\n // Merge old dragOptions with new to keep possibly initialized\n // persistent selection state.\n var oldDragOptions = self.dragOptions;\n self.dragOptions = Lib.extendDeep(oldDragOptions || {}, {\n element: self.div,\n gd: gd,\n plotinfo: {\n id: self.id,\n xaxis: self.xaxis,\n yaxis: self.yaxis,\n fillRangeItems: fillRangeItems\n },\n xaxes: [self.xaxis],\n yaxes: [self.yaxis],\n subplot: self.id\n });\n\n // Unregister the old handler before potentially registering\n // a new one. Otherwise multiple click handlers might\n // be registered resulting in unwanted behavior.\n map.off('click', self.onClickInPanHandler);\n if(dragMode === 'select' || dragMode === 'lasso') {\n map.dragPan.disable();\n map.on('zoomstart', self.clearSelect);\n\n self.dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, self.dragOptions, dragMode);\n };\n\n dragElement.init(self.dragOptions);\n } else {\n map.dragPan.enable();\n map.off('zoomstart', self.clearSelect);\n self.div.onmousedown = null;\n\n // TODO: this does not support right-click. If we want to support it, we\n // would likely need to change mapbox to use dragElement instead of straight\n // mapbox event binding. Or perhaps better, make a simple wrapper with the\n // right mousedown, mousemove, and mouseup handlers just for a left/right click\n // pie would use this too.\n self.onClickInPanHandler = self.onClickInPanFn(self.dragOptions);\n map.on('click', self.onClickInPanHandler);\n }\n};\n\nproto.updateFramework = function(fullLayout) {\n var domain = fullLayout[this.id].domain;\n var size = fullLayout._size;\n\n var style = this.div.style;\n style.width = size.w * (domain.x[1] - domain.x[0]) + 'px';\n style.height = size.h * (domain.y[1] - domain.y[0]) + 'px';\n style.left = size.l + domain.x[0] * size.w + 'px';\n style.top = size.t + (1 - domain.y[1]) * size.h + 'px';\n\n this.xaxis._offset = size.l + domain.x[0] * size.w;\n this.xaxis._length = size.w * (domain.x[1] - domain.x[0]);\n\n this.yaxis._offset = size.t + (1 - domain.y[1]) * size.h;\n this.yaxis._length = size.h * (domain.y[1] - domain.y[0]);\n};\n\nproto.updateLayers = function(fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var layerList = this.layerList;\n var i;\n\n // if the layer arrays don't match,\n // don't try to be smart,\n // delete them all, and start all over.\n\n if(layers.length !== layerList.length) {\n for(i = 0; i < layerList.length; i++) {\n layerList[i].dispose();\n }\n\n layerList = this.layerList = [];\n\n for(i = 0; i < layers.length; i++) {\n layerList.push(createMapboxLayer(this, i, layers[i]));\n }\n } else {\n for(i = 0; i < layers.length; i++) {\n layerList[i].update(layers[i]);\n }\n }\n};\n\nproto.destroy = function() {\n if(this.map) {\n this.map.remove();\n this.map = null;\n this.container.removeChild(this.div);\n }\n};\n\nproto.toImage = function() {\n this.map.stop();\n return this.map.getCanvas().toDataURL();\n};\n\n// convenience wrapper to create set multiple layer\n// 'layout' or 'paint options at once.\nproto.setOptions = function(id, methodName, opts) {\n for(var k in opts) {\n this.map[methodName](id, k, opts[k]);\n }\n};\n\nproto.getMapLayers = function() {\n return this.map.getStyle().layers;\n};\n\n// convenience wrapper that first check in 'below' references\n// a layer that exist and then add the layer to the map,\nproto.addLayer = function(opts, below) {\n var map = this.map;\n\n if(typeof below === 'string') {\n if(below === '') {\n map.addLayer(opts, below);\n return;\n }\n\n var mapLayers = this.getMapLayers();\n for(var i = 0; i < mapLayers.length; i++) {\n if(below === mapLayers[i].id) {\n map.addLayer(opts, below);\n return;\n }\n }\n\n Lib.warn([\n 'Trying to add layer with *below* value',\n below,\n 'referencing a layer that does not exist',\n 'or that does not yet exist.'\n ].join(' '));\n }\n\n map.addLayer(opts);\n};\n\n// convenience method to project a [lon, lat] array to pixel coords\nproto.project = function(v) {\n return this.map.project(new mapboxgl.LngLat(v[0], v[1]));\n};\n\n// get map's current view values in plotly.js notation\nproto.getView = function() {\n var map = this.map;\n var mapCenter = map.getCenter();\n var center = { lon: mapCenter.lng, lat: mapCenter.lat };\n\n var canvas = map.getCanvas();\n var w = canvas.width;\n var h = canvas.height;\n return {\n center: center,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch(),\n _derived: {\n coordinates: [\n map.unproject([0, 0]).toArray(),\n map.unproject([w, 0]).toArray(),\n map.unproject([w, h]).toArray(),\n map.unproject([0, h]).toArray()\n ]\n }\n };\n};\n\nproto.getViewEdits = function(cont) {\n var id = this.id;\n var keys = ['center', 'zoom', 'bearing', 'pitch'];\n var obj = {};\n\n for(var i = 0; i < keys.length; i++) {\n var k = keys[i];\n obj[id + '.' + k] = cont[k];\n }\n\n return obj;\n};\n\nproto.getViewEditsWithDerived = function(cont) {\n var id = this.id;\n var obj = this.getViewEdits(cont);\n obj[id + '._derived'] = cont._derived;\n return obj;\n};\n\nfunction getStyleObj(val) {\n var styleObj = {};\n\n if(Lib.isPlainObject(val)) {\n styleObj.id = val.id;\n styleObj.style = val;\n } else if(typeof val === 'string') {\n styleObj.id = val;\n\n if(constants.styleValuesMapbox.indexOf(val) !== -1) {\n styleObj.style = convertStyleVal(val);\n } else if(constants.stylesNonMapbox[val]) {\n styleObj.style = constants.stylesNonMapbox[val];\n } else {\n styleObj.style = val;\n }\n } else {\n styleObj.id = constants.styleValueDflt;\n styleObj.style = convertStyleVal(constants.styleValueDflt);\n }\n\n styleObj.transition = {duration: 0, delay: 0};\n\n return styleObj;\n}\n\n// if style is part of the 'official' mapbox values, add URL prefix and suffix\nfunction convertStyleVal(val) {\n return constants.styleUrlPrefix + val + '-' + constants.styleUrlSuffix;\n}\n\nfunction convertCenter(center) {\n return [center.lon, center.lat];\n}\n\nmodule.exports = Mapbox;\n\n\n/***/ }),\n\n/***/ \"3fe8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\nmodule.exports = function handleOHLC(traceIn, traceOut, coerce, layout) {\n var x = coerce('x');\n var open = coerce('open');\n var high = coerce('high');\n var low = coerce('low');\n var close = coerce('close');\n\n coerce('hoverlabel.split');\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x'], layout);\n\n if(!(open && high && low && close)) return;\n\n var len = Math.min(open.length, high.length, low.length, close.length);\n if(x) len = Math.min(len, Lib.minRowLength(x));\n traceOut._length = len;\n\n return len;\n};\n\n\n/***/ }),\n\n/***/ \"3ff5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n/**\n * This will be transferred over to gd and overridden by\n * config args to Plotly.plot.\n *\n * The defaults are the appropriate settings for plotly.js,\n * so we get the right experience without any config argument.\n *\n * N.B. the config options are not coerced using Lib.coerce so keys\n * like `valType` and `values` are only set for documentation purposes\n * at the moment.\n */\n\nvar configAttributes = {\n staticPlot: {\n valType: 'boolean',\n dflt: false,\n \n },\n\n plotlyServerURL: {\n valType: 'string',\n dflt: 'https://plot.ly',\n \n },\n\n editable: {\n valType: 'boolean',\n dflt: false,\n \n },\n edits: {\n annotationPosition: {\n valType: 'boolean',\n dflt: false,\n \n },\n annotationTail: {\n valType: 'boolean',\n dflt: false,\n \n },\n annotationText: {\n valType: 'boolean',\n dflt: false,\n \n },\n axisTitleText: {\n valType: 'boolean',\n dflt: false,\n \n },\n colorbarPosition: {\n valType: 'boolean',\n dflt: false,\n \n },\n colorbarTitleText: {\n valType: 'boolean',\n dflt: false,\n \n },\n legendPosition: {\n valType: 'boolean',\n dflt: false,\n \n },\n legendText: {\n valType: 'boolean',\n dflt: false,\n \n },\n shapePosition: {\n valType: 'boolean',\n dflt: false,\n \n },\n titleText: {\n valType: 'boolean',\n dflt: false,\n \n }\n },\n\n autosizable: {\n valType: 'boolean',\n dflt: false,\n \n },\n responsive: {\n valType: 'boolean',\n dflt: false,\n \n },\n fillFrame: {\n valType: 'boolean',\n dflt: false,\n \n },\n frameMargins: {\n valType: 'number',\n dflt: 0,\n min: 0,\n max: 0.5,\n \n },\n\n scrollZoom: {\n valType: 'flaglist',\n flags: ['cartesian', 'gl3d', 'geo', 'mapbox'],\n extras: [true, false],\n dflt: 'gl3d+geo+mapbox',\n \n },\n doubleClick: {\n valType: 'enumerated',\n values: [false, 'reset', 'autosize', 'reset+autosize'],\n dflt: 'reset+autosize',\n \n },\n doubleClickDelay: {\n valType: 'number',\n dflt: 300,\n min: 0,\n \n },\n\n showAxisDragHandles: {\n valType: 'boolean',\n dflt: true,\n \n },\n showAxisRangeEntryBoxes: {\n valType: 'boolean',\n dflt: true,\n \n },\n\n showTips: {\n valType: 'boolean',\n dflt: true,\n \n },\n\n showLink: {\n valType: 'boolean',\n dflt: false,\n \n },\n linkText: {\n valType: 'string',\n dflt: 'Edit chart',\n noBlank: true,\n \n },\n sendData: {\n valType: 'boolean',\n dflt: true,\n \n },\n showSources: {\n valType: 'any',\n dflt: false,\n \n },\n\n displayModeBar: {\n valType: 'enumerated',\n values: ['hover', true, false],\n dflt: 'hover',\n \n },\n showSendToCloud: {\n valType: 'boolean',\n dflt: false,\n \n },\n showEditInChartStudio: {\n valType: 'boolean',\n dflt: false,\n \n },\n modeBarButtonsToRemove: {\n valType: 'any',\n dflt: [],\n \n },\n modeBarButtonsToAdd: {\n valType: 'any',\n dflt: [],\n \n },\n modeBarButtons: {\n valType: 'any',\n dflt: false,\n \n },\n toImageButtonOptions: {\n valType: 'any',\n dflt: {},\n \n },\n displaylogo: {\n valType: 'boolean',\n dflt: true,\n \n },\n watermark: {\n valType: 'boolean',\n dflt: false,\n \n },\n\n plotGlPixelRatio: {\n valType: 'number',\n dflt: 2,\n min: 1,\n max: 4,\n \n },\n\n setBackground: {\n valType: 'any',\n dflt: 'transparent',\n \n },\n\n topojsonURL: {\n valType: 'string',\n noBlank: true,\n dflt: 'https://cdn.plot.ly/',\n \n },\n\n mapboxAccessToken: {\n valType: 'string',\n dflt: null,\n \n },\n\n logging: {\n valType: 'integer',\n min: 0,\n max: 2,\n dflt: 1,\n \n },\n\n notifyOnLogging: {\n valType: 'integer',\n min: 0,\n max: 2,\n dflt: 0,\n \n },\n\n queueLength: {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n },\n\n globalTransforms: {\n valType: 'any',\n dflt: [],\n \n },\n\n locale: {\n valType: 'string',\n dflt: 'en-US',\n \n },\n\n locales: {\n valType: 'any',\n dflt: {},\n \n }\n};\n\nvar dfltConfig = {};\n\nfunction crawl(src, target) {\n for(var k in src) {\n var obj = src[k];\n if(obj.valType) {\n target[k] = obj.dflt;\n } else {\n if(!target[k]) {\n target[k] = {};\n }\n crawl(obj, target[k]);\n }\n }\n}\n\ncrawl(configAttributes, dfltConfig);\n\nmodule.exports = {\n configAttributes: configAttributes,\n dfltConfig: dfltConfig\n};\n\n\n/***/ }),\n\n/***/ \"3ff7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nmodule.exports = {\n xaxis: {\n valType: 'subplotid',\n \n dflt: 'x',\n editType: 'calc+clearAxisTypes',\n \n },\n yaxis: {\n valType: 'subplotid',\n \n dflt: 'y',\n editType: 'calc+clearAxisTypes',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"402e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createShader = __webpack_require__(\"28dd\")\nvar createBuffer = __webpack_require__(\"efce\")\n\nvar pool = __webpack_require__(\"cea5\")\n\nvar SHADERS = __webpack_require__(\"c9eb\")\n\nmodule.exports = createPointcloud2D\n\nfunction Pointcloud2D(plot, offsetBuffer, pickBuffer, shader, pickShader) {\n this.plot = plot\n this.offsetBuffer = offsetBuffer\n this.pickBuffer = pickBuffer\n this.shader = shader\n this.pickShader = pickShader\n this.sizeMin = 0.5\n this.sizeMinCap = 2\n this.sizeMax = 20\n this.areaRatio = 1.0\n this.pointCount = 0\n this.color = [1, 0, 0, 1]\n this.borderColor = [0, 0, 0, 1]\n this.blend = false\n this.pickOffset = 0\n this.points = null\n}\n\nvar proto = Pointcloud2D.prototype\n\nproto.dispose = function() {\n this.shader.dispose()\n this.pickShader.dispose()\n this.offsetBuffer.dispose()\n this.pickBuffer.dispose()\n this.plot.removeObject(this)\n}\n\nproto.update = function(options) {\n\n var i\n\n options = options || {}\n\n function dflt(opt, value) {\n if(opt in options) {\n return options[opt]\n }\n return value\n }\n\n this.sizeMin = dflt('sizeMin', 0.5)\n // this.sizeMinCap = dflt('sizeMinCap', 2)\n this.sizeMax = dflt('sizeMax', 20)\n this.color = dflt('color', [1, 0, 0, 1]).slice()\n this.areaRatio = dflt('areaRatio', 1)\n this.borderColor = dflt('borderColor', [0, 0, 0, 1]).slice()\n this.blend = dflt('blend', false)\n\n //Update point data\n\n // Attempt straight-through processing (STP) to avoid allocation and copy\n // TODO eventually abstract out STP logic, maybe into `pool` or a layer above\n var pointCount = options.positions.length >>> 1\n var dataStraightThrough = options.positions instanceof Float32Array\n var idStraightThrough = options.idToIndex instanceof Int32Array && options.idToIndex.length >= pointCount // permit larger to help reuse\n\n var data = options.positions\n var packed = dataStraightThrough ? data : pool.mallocFloat32(data.length)\n var packedId = idStraightThrough ? options.idToIndex : pool.mallocInt32(pointCount)\n\n if(!dataStraightThrough) {\n packed.set(data)\n }\n\n if(!idStraightThrough) {\n packed.set(data)\n for(i = 0; i < pointCount; i++) {\n packedId[i] = i\n }\n }\n\n this.points = data\n\n this.offsetBuffer.update(packed)\n this.pickBuffer.update(packedId)\n\n if(!dataStraightThrough) {\n pool.free(packed)\n }\n\n if(!idStraightThrough) {\n pool.free(packedId)\n }\n\n this.pointCount = pointCount\n this.pickOffset = 0\n}\n\nfunction count(points, dataBox) {\n var visiblePointCountEstimate = 0\n var length = points.length >>> 1\n var i\n for(i = 0; i < length; i++) {\n var x = points[i * 2]\n var y = points[i * 2 + 1]\n if(x >= dataBox[0] && x <= dataBox[2] && y >= dataBox[1] && y <= dataBox[3])\n visiblePointCountEstimate++\n }\n return visiblePointCountEstimate\n}\n\nproto.unifiedDraw = (function() {\n var MATRIX = [1, 0, 0,\n 0, 1, 0,\n 0, 0, 1]\n var PICK_VEC4 = [0, 0, 0, 0]\nreturn function(pickOffset) {\n var pick = pickOffset !== void(0)\n\n var shader = pick ? this.pickShader : this.shader\n var gl = this.plot.gl\n var dataBox = this.plot.dataBox\n\n if(this.pointCount === 0) {\n return pickOffset\n }\n\n var dataX = dataBox[2] - dataBox[0]\n var dataY = dataBox[3] - dataBox[1]\n\n var visiblePointCountEstimate = count(this.points, dataBox)\n var basicPointSize = this.plot.pickPixelRatio * Math.max(Math.min(this.sizeMinCap, this.sizeMin), Math.min(this.sizeMax, this.sizeMax / Math.pow(visiblePointCountEstimate, 0.33333)))\n\n MATRIX[0] = 2.0 / dataX\n MATRIX[4] = 2.0 / dataY\n MATRIX[6] = -2.0 * dataBox[0] / dataX - 1.0\n MATRIX[7] = -2.0 * dataBox[1] / dataY - 1.0\n\n this.offsetBuffer.bind()\n\n shader.bind()\n shader.attributes.position.pointer()\n shader.uniforms.matrix = MATRIX\n shader.uniforms.color = this.color\n shader.uniforms.borderColor = this.borderColor\n shader.uniforms.pointCloud = basicPointSize < 5\n shader.uniforms.pointSize = basicPointSize\n shader.uniforms.centerFraction = Math.min(1, Math.max(0, Math.sqrt(1 - this.areaRatio)))\n\n if(pick) {\n\n PICK_VEC4[0] = ( pickOffset & 0xff)\n PICK_VEC4[1] = ((pickOffset >> 8) & 0xff)\n PICK_VEC4[2] = ((pickOffset >> 16) & 0xff)\n PICK_VEC4[3] = ((pickOffset >> 24) & 0xff)\n\n this.pickBuffer.bind()\n shader.attributes.pickId.pointer(gl.UNSIGNED_BYTE)\n shader.uniforms.pickOffset = PICK_VEC4\n this.pickOffset = pickOffset\n }\n\n // Worth switching these off, but we can't make assumptions about other\n // renderers, so let's restore it after each draw\n var blend = gl.getParameter(gl.BLEND)\n var dither = gl.getParameter(gl.DITHER)\n\n if(blend && !this.blend)\n gl.disable(gl.BLEND)\n if(dither)\n gl.disable(gl.DITHER)\n\n gl.drawArrays(gl.POINTS, 0, this.pointCount)\n\n if(blend && !this.blend)\n gl.enable(gl.BLEND)\n if(dither)\n gl.enable(gl.DITHER)\n\n return pickOffset + this.pointCount\n}\n})()\n\nproto.draw = proto.unifiedDraw\nproto.drawPick = proto.unifiedDraw\n\nproto.pick = function(x, y, value) {\n var pickOffset = this.pickOffset\n var pointCount = this.pointCount\n if(value < pickOffset || value >= pickOffset + pointCount) {\n return null\n }\n var pointId = value - pickOffset\n var points = this.points\n return {\n object: this,\n pointId: pointId,\n dataCoord: [points[2 * pointId], points[2 * pointId + 1] ]\n }\n}\n\nfunction createPointcloud2D(plot, options) {\n var gl = plot.gl\n var buffer = createBuffer(gl)\n var pickBuffer = createBuffer(gl)\n var shader = createShader(gl, SHADERS.pointVertex, SHADERS.pointFragment)\n var pickShader = createShader(gl, SHADERS.pickVertex, SHADERS.pickFragment)\n\n var result = new Pointcloud2D(plot, buffer, pickBuffer, shader, pickShader)\n result.update(options)\n\n //Register with plot\n plot.addObject(result)\n\n return result\n}\n\n\n/***/ }),\n\n/***/ \"4051\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar helpers = __webpack_require__(\"2969f\");\nvar calcHover = __webpack_require__(\"98e7\").calcHover;\n\nfunction hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var scene = pointData.scene;\n var cdata = scene.matrixOptions.cdata;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var xpx = xa.c2p(xval);\n var ypx = ya.c2p(yval);\n var maxDistance = pointData.distance;\n\n var xi = helpers.getDimIndex(trace, xa);\n var yi = helpers.getDimIndex(trace, ya);\n if(xi === false || yi === false) return [pointData];\n\n var x = cdata[xi];\n var y = cdata[yi];\n\n var id, dxy;\n var minDist = maxDistance;\n\n for(var i = 0; i < x.length; i++) {\n var ptx = x[i];\n var pty = y[i];\n var dx = xa.c2p(ptx) - xpx;\n var dy = ya.c2p(pty) - ypx;\n var dist = Math.sqrt(dx * dx + dy * dy);\n\n if(dist < minDist) {\n minDist = dxy = dist;\n id = i;\n }\n }\n\n pointData.index = id;\n pointData.distance = minDist;\n pointData.dxy = dxy;\n\n if(id === undefined) return [pointData];\n\n return [calcHover(pointData, x, y, trace)];\n}\n\nmodule.exports = {\n hoverPoints: hoverPoints\n};\n\n\n/***/ }),\n\n/***/ \"409f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar meta_1 = __webpack_require__(\"716c\");\n/**\n * Takes a set of features, calculates the bbox of all input features, and returns a bounding box.\n *\n * @name bbox\n * @param {GeoJSON} geojson any GeoJSON object\n * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order\n * @example\n * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]);\n * var bbox = turf.bbox(line);\n * var bboxPolygon = turf.bboxPolygon(bbox);\n *\n * //addToMap\n * var addToMap = [line, bboxPolygon]\n */\nfunction bbox(geojson) {\n var result = [Infinity, Infinity, -Infinity, -Infinity];\n meta_1.coordEach(geojson, function (coord) {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n}\nexports.default = bbox;\n\n\n/***/ }),\n\n/***/ \"40c0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar barAttrs = __webpack_require__(\"fb5a\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar makeBinAttrs = __webpack_require__(\"4274\");\nvar constants = __webpack_require__(\"8d0e\");\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nmodule.exports = {\n x: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n y: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n\n text: extendFlat({}, barAttrs.text, {\n \n }),\n hovertext: extendFlat({}, barAttrs.hovertext, {\n \n }),\n orientation: barAttrs.orientation,\n\n histfunc: {\n valType: 'enumerated',\n values: ['count', 'sum', 'avg', 'min', 'max'],\n \n dflt: 'count',\n editType: 'calc',\n \n },\n histnorm: {\n valType: 'enumerated',\n values: ['', 'percent', 'probability', 'density', 'probability density'],\n dflt: '',\n \n editType: 'calc',\n \n },\n\n cumulative: {\n enabled: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'calc',\n \n },\n\n direction: {\n valType: 'enumerated',\n values: ['increasing', 'decreasing'],\n dflt: 'increasing',\n \n editType: 'calc',\n \n },\n\n currentbin: {\n valType: 'enumerated',\n values: ['include', 'exclude', 'half'],\n dflt: 'include',\n \n editType: 'calc',\n \n },\n editType: 'calc'\n },\n nbinsx: {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n editType: 'calc',\n \n },\n xbins: makeBinAttrs('x', true),\n\n nbinsy: {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n editType: 'calc',\n \n },\n ybins: makeBinAttrs('y', true),\n autobinx: {\n valType: 'boolean',\n dflt: null,\n \n editType: 'calc',\n \n },\n autobiny: {\n valType: 'boolean',\n dflt: null,\n \n editType: 'calc',\n \n },\n\n bingroup: {\n valType: 'string',\n \n dflt: '',\n editType: 'calc',\n \n },\n\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n\n marker: barAttrs.marker,\n\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n\n selected: barAttrs.selected,\n unselected: barAttrs.unselected,\n\n _deprecated: {\n bardir: barAttrs._deprecated.bardir\n }\n};\n\n\n/***/ }),\n\n/***/ \"40ce\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createThunk = __webpack_require__(\"d37d\")\n\nfunction Procedure() {\n this.argTypes = []\n this.shimArgs = []\n this.arrayArgs = []\n this.arrayBlockIndices = []\n this.scalarArgs = []\n this.offsetArgs = []\n this.offsetArgIndex = []\n this.indexArgs = []\n this.shapeArgs = []\n this.funcName = \"\"\n this.pre = null\n this.body = null\n this.post = null\n this.debug = false\n}\n\nfunction compileCwise(user_args) {\n //Create procedure\n var proc = new Procedure()\n \n //Parse blocks\n proc.pre = user_args.pre\n proc.body = user_args.body\n proc.post = user_args.post\n\n //Parse arguments\n var proc_args = user_args.args.slice(0)\n proc.argTypes = proc_args\n for(var i=0; i0) {\n throw new Error(\"cwise: pre() block may not reference array args\")\n }\n if(i < proc.post.args.length && proc.post.args[i].count>0) {\n throw new Error(\"cwise: post() block may not reference array args\")\n }\n } else if(arg_type === \"scalar\") {\n proc.scalarArgs.push(i)\n proc.shimArgs.push(\"scalar\" + i)\n } else if(arg_type === \"index\") {\n proc.indexArgs.push(i)\n if(i < proc.pre.args.length && proc.pre.args[i].count > 0) {\n throw new Error(\"cwise: pre() block may not reference array index\")\n }\n if(i < proc.body.args.length && proc.body.args[i].lvalue) {\n throw new Error(\"cwise: body() block may not write to array index\")\n }\n if(i < proc.post.args.length && proc.post.args[i].count > 0) {\n throw new Error(\"cwise: post() block may not reference array index\")\n }\n } else if(arg_type === \"shape\") {\n proc.shapeArgs.push(i)\n if(i < proc.pre.args.length && proc.pre.args[i].lvalue) {\n throw new Error(\"cwise: pre() block may not write to array shape\")\n }\n if(i < proc.body.args.length && proc.body.args[i].lvalue) {\n throw new Error(\"cwise: body() block may not write to array shape\")\n }\n if(i < proc.post.args.length && proc.post.args[i].lvalue) {\n throw new Error(\"cwise: post() block may not write to array shape\")\n }\n } else if(typeof arg_type === \"object\" && arg_type.offset) {\n proc.argTypes[i] = \"offset\"\n proc.offsetArgs.push({ array: arg_type.array, offset:arg_type.offset })\n proc.offsetArgIndex.push(i)\n } else {\n throw new Error(\"cwise: Unknown argument type \" + proc_args[i])\n }\n }\n \n //Make sure at least one array argument was specified\n if(proc.arrayArgs.length <= 0) {\n throw new Error(\"cwise: No array arguments specified\")\n }\n \n //Make sure arguments are correct\n if(proc.pre.args.length > proc_args.length) {\n throw new Error(\"cwise: Too many arguments in pre() block\")\n }\n if(proc.body.args.length > proc_args.length) {\n throw new Error(\"cwise: Too many arguments in body() block\")\n }\n if(proc.post.args.length > proc_args.length) {\n throw new Error(\"cwise: Too many arguments in post() block\")\n }\n\n //Check debug flag\n proc.debug = !!user_args.printCode || !!user_args.debug\n \n //Retrieve name\n proc.funcName = user_args.funcName || \"cwise\"\n \n //Read in block size\n proc.blockSize = user_args.blockSize || 64\n\n return createThunk(proc)\n}\n\nmodule.exports = compileCwise\n\n\n/***/ }),\n\n/***/ \"4136\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\nmodule.exports = function calcSelection(cd, trace) {\n if(Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n Lib.tagSelected(cd, trace);\n }\n};\n\n\n/***/ }),\n\n/***/ \"4160\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar forEach = __webpack_require__(\"17c2\");\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n\n\n/***/ }),\n\n/***/ \"4168\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nvar bsearch = __webpack_require__(\"7fcc\")\r\nvar m4interp = __webpack_require__(\"8b23\")\r\nvar invert44 = __webpack_require__(\"9343\")\r\nvar rotateX = __webpack_require__(\"e9e1\")\r\nvar rotateY = __webpack_require__(\"44fe\")\r\nvar rotateZ = __webpack_require__(\"fc11\")\r\nvar lookAt = __webpack_require__(\"e581\")\r\nvar translate = __webpack_require__(\"6f51\")\r\nvar scale = __webpack_require__(\"9ca2\")\r\nvar normalize = __webpack_require__(\"913b\")\r\n\r\nvar DEFAULT_CENTER = [0,0,0]\r\n\r\nmodule.exports = createMatrixCameraController\r\n\r\nfunction MatrixCameraController(initialMatrix) {\r\n this._components = initialMatrix.slice()\r\n this._time = [0]\r\n this.prevMatrix = initialMatrix.slice()\r\n this.nextMatrix = initialMatrix.slice()\r\n this.computedMatrix = initialMatrix.slice()\r\n this.computedInverse = initialMatrix.slice()\r\n this.computedEye = [0,0,0]\r\n this.computedUp = [0,0,0]\r\n this.computedCenter = [0,0,0]\r\n this.computedRadius = [0]\r\n this._limits = [-Infinity, Infinity]\r\n}\r\n\r\nvar proto = MatrixCameraController.prototype\r\n\r\nproto.recalcMatrix = function(t) {\r\n var time = this._time\r\n var tidx = bsearch.le(time, t)\r\n var mat = this.computedMatrix\r\n if(tidx < 0) {\r\n return\r\n }\r\n var comps = this._components\r\n if(tidx === time.length-1) {\r\n var ptr = 16*tidx\r\n for(var i=0; i<16; ++i) {\r\n mat[i] = comps[ptr++]\r\n }\r\n } else {\r\n var dt = (time[tidx+1] - time[tidx])\r\n var ptr = 16*tidx\r\n var prev = this.prevMatrix\r\n var allEqual = true\r\n for(var i=0; i<16; ++i) {\r\n prev[i] = comps[ptr++]\r\n }\r\n var next = this.nextMatrix\r\n for(var i=0; i<16; ++i) {\r\n next[i] = comps[ptr++]\r\n allEqual = allEqual && (prev[i] === next[i])\r\n }\r\n if(dt < 1e-6 || allEqual) {\r\n for(var i=0; i<16; ++i) {\r\n mat[i] = prev[i]\r\n }\r\n } else {\r\n m4interp(mat, prev, next, (t - time[tidx])/dt)\r\n }\r\n }\r\n\r\n var up = this.computedUp\r\n up[0] = mat[1]\r\n up[1] = mat[5]\r\n up[2] = mat[9]\r\n normalize(up, up)\r\n\r\n var imat = this.computedInverse\r\n invert44(imat, mat)\r\n var eye = this.computedEye\r\n var w = imat[15]\r\n eye[0] = imat[12]/w\r\n eye[1] = imat[13]/w\r\n eye[2] = imat[14]/w\r\n\r\n var center = this.computedCenter\r\n var radius = Math.exp(this.computedRadius[0])\r\n for(var i=0; i<3; ++i) {\r\n center[i] = eye[i] - mat[2+4*i] * radius\r\n }\r\n}\r\n\r\nproto.idle = function(t) {\r\n if(t < this.lastT()) {\r\n return\r\n }\r\n var mc = this._components\r\n var ptr = mc.length-16\r\n for(var i=0; i<16; ++i) {\r\n mc.push(mc[ptr++])\r\n }\r\n this._time.push(t)\r\n}\r\n\r\nproto.flush = function(t) {\r\n var idx = bsearch.gt(this._time, t) - 2\r\n if(idx < 0) {\r\n return\r\n }\r\n this._time.splice(0, idx)\r\n this._components.splice(0, 16*idx)\r\n}\r\n\r\nproto.lastT = function() {\r\n return this._time[this._time.length-1]\r\n}\r\n\r\nproto.lookAt = function(t, eye, center, up) {\r\n this.recalcMatrix(t)\r\n eye = eye || this.computedEye\r\n center = center || DEFAULT_CENTER\r\n up = up || this.computedUp\r\n this.setMatrix(t, lookAt(this.computedMatrix, eye, center, up))\r\n var d2 = 0.0\r\n for(var i=0; i<3; ++i) {\r\n d2 += Math.pow(center[i] - eye[i], 2)\r\n }\r\n d2 = Math.log(Math.sqrt(d2))\r\n this.computedRadius[0] = d2\r\n}\r\n\r\nproto.rotate = function(t, yaw, pitch, roll) {\r\n this.recalcMatrix(t)\r\n var mat = this.computedInverse\r\n if(yaw) rotateY(mat, mat, yaw)\r\n if(pitch) rotateX(mat, mat, pitch)\r\n if(roll) rotateZ(mat, mat, roll)\r\n this.setMatrix(t, invert44(this.computedMatrix, mat))\r\n}\r\n\r\nvar tvec = [0,0,0]\r\n\r\nproto.pan = function(t, dx, dy, dz) {\r\n tvec[0] = -(dx || 0.0)\r\n tvec[1] = -(dy || 0.0)\r\n tvec[2] = -(dz || 0.0)\r\n this.recalcMatrix(t)\r\n var mat = this.computedInverse\r\n translate(mat, mat, tvec)\r\n this.setMatrix(t, invert44(mat, mat))\r\n}\r\n\r\nproto.translate = function(t, dx, dy, dz) {\r\n tvec[0] = dx || 0.0\r\n tvec[1] = dy || 0.0\r\n tvec[2] = dz || 0.0\r\n this.recalcMatrix(t)\r\n var mat = this.computedMatrix\r\n translate(mat, mat, tvec)\r\n this.setMatrix(t, mat)\r\n}\r\n\r\nproto.setMatrix = function(t, mat) {\r\n if(t < this.lastT()) {\r\n return\r\n }\r\n this._time.push(t)\r\n for(var i=0; i<16; ++i) {\r\n this._components.push(mat[i])\r\n }\r\n}\r\n\r\nproto.setDistance = function(t, d) {\r\n this.computedRadius[0] = d\r\n}\r\n\r\nproto.setDistanceLimits = function(a,b) {\r\n var lim = this._limits\r\n lim[0] = a\r\n lim[1] = b\r\n}\r\n\r\nproto.getDistanceLimits = function(out) {\r\n var lim = this._limits\r\n if(out) {\r\n out[0] = lim[0]\r\n out[1] = lim[1]\r\n return out\r\n }\r\n return lim\r\n}\r\n\r\nfunction createMatrixCameraController(options) {\r\n options = options || {}\r\n var matrix = options.matrix || \r\n [1,0,0,0,\r\n 0,1,0,0,\r\n 0,0,1,0,\r\n 0,0,0,1]\r\n return new MatrixCameraController(matrix)\r\n}\r\n\n\n/***/ }),\n\n/***/ \"4183\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar hasColorbar = __webpack_require__(\"7089\");\nvar colorbarDefaults = __webpack_require__(\"8f2a\");\n\nvar isValidScale = __webpack_require__(\"4852\").isValid;\nvar traceIs = __webpack_require__(\"371e\").traceIs;\n\nfunction npMaybe(parentCont, prefix) {\n var containerStr = prefix.slice(0, prefix.length - 1);\n return prefix ?\n Lib.nestedProperty(parentCont, containerStr).get() || {} :\n parentCont;\n}\n\n/**\n * Colorscale / colorbar default handler\n *\n * @param {object} parentContIn : user (input) parent container (e.g. trace or layout coloraxis object)\n * @param {object} parentContOut : full parent container\n * @param {object} layout : (full) layout object\n * @param {fn} coerce : Lib.coerce wrapper\n * @param {object} opts :\n * - prefix {string} : attr string prefix to colorscale container from parent root\n * - cLetter {string} : 'c or 'z' color letter\n */\nmodule.exports = function colorScaleDefaults(parentContIn, parentContOut, layout, coerce, opts) {\n var prefix = opts.prefix;\n var cLetter = opts.cLetter;\n var inTrace = '_module' in parentContOut;\n var containerIn = npMaybe(parentContIn, prefix);\n var containerOut = npMaybe(parentContOut, prefix);\n var template = npMaybe(parentContOut._template || {}, prefix) || {};\n\n // colorScaleDefaults wrapper called if-ever we need to reset the colorscale\n // attributes for containers that were linked to invalid color axes\n var thisFn = function() {\n delete parentContIn.coloraxis;\n delete parentContOut.coloraxis;\n return colorScaleDefaults(parentContIn, parentContOut, layout, coerce, opts);\n };\n\n if(inTrace) {\n var colorAxes = layout._colorAxes || {};\n var colorAx = coerce(prefix + 'coloraxis');\n\n if(colorAx) {\n var colorbarVisuals = (\n traceIs(parentContOut, 'contour') &&\n Lib.nestedProperty(parentContOut, 'contours.coloring').get()\n ) || 'heatmap';\n\n var stash = colorAxes[colorAx];\n\n if(stash) {\n stash[2].push(thisFn);\n\n if(stash[0] !== colorbarVisuals) {\n stash[0] = false;\n Lib.warn([\n 'Ignoring coloraxis:', colorAx, 'setting',\n 'as it is linked to incompatible colorscales.'\n ].join(' '));\n }\n } else {\n // stash:\n // - colorbar visual 'type'\n // - colorbar options to help in Colorbar.draw\n // - list of colorScaleDefaults wrapper functions\n colorAxes[colorAx] = [colorbarVisuals, parentContOut, [thisFn]];\n }\n return;\n }\n }\n\n var minIn = containerIn[cLetter + 'min'];\n var maxIn = containerIn[cLetter + 'max'];\n var validMinMax = isNumeric(minIn) && isNumeric(maxIn) && (minIn < maxIn);\n var auto = coerce(prefix + cLetter + 'auto', !validMinMax);\n\n if(auto) {\n coerce(prefix + cLetter + 'mid');\n } else {\n coerce(prefix + cLetter + 'min');\n coerce(prefix + cLetter + 'max');\n }\n\n // handles both the trace case (autocolorscale is false by default) and\n // the marker and marker.line case (autocolorscale is true by default)\n var sclIn = containerIn.colorscale;\n var sclTemplate = template.colorscale;\n var autoColorscaleDflt;\n if(sclIn !== undefined) autoColorscaleDflt = !isValidScale(sclIn);\n if(sclTemplate !== undefined) autoColorscaleDflt = !isValidScale(sclTemplate);\n coerce(prefix + 'autocolorscale', autoColorscaleDflt);\n\n coerce(prefix + 'colorscale');\n coerce(prefix + 'reversescale');\n\n if(prefix !== 'marker.line.') {\n // handles both the trace case where the dflt is listed in attributes and\n // the marker case where the dflt is determined by hasColorbar\n var showScaleDflt;\n if(prefix && inTrace) showScaleDflt = hasColorbar(containerIn);\n\n var showScale = coerce(prefix + 'showscale', showScaleDflt);\n if(showScale) {\n if(prefix && template) containerOut._template = template;\n colorbarDefaults(containerIn, containerOut, layout);\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"4190\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar handleXYDefaults = __webpack_require__(\"37bf\");\nvar handleABDefaults = __webpack_require__(\"8da3\");\nvar attributes = __webpack_require__(\"e7bd\");\nvar colorAttrs = __webpack_require__(\"dfb3\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, dfltColor, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n traceOut._clipPathId = 'clip' + traceOut.uid + 'carpet';\n\n var defaultColor = coerce('color', colorAttrs.defaultLine);\n Lib.coerceFont(coerce, 'font');\n\n coerce('carpet');\n\n handleABDefaults(traceIn, traceOut, fullLayout, coerce, defaultColor);\n\n if(!traceOut.a || !traceOut.b) {\n traceOut.visible = false;\n return;\n }\n\n if(traceOut.a.length < 3) {\n traceOut.aaxis.smoothing = 0;\n }\n\n if(traceOut.b.length < 3) {\n traceOut.baxis.smoothing = 0;\n }\n\n // NB: the input is x/y arrays. You should know that the *first* dimension of x and y\n // corresponds to b and the second to a. This sounds backwards but ends up making sense\n // the important part to know is that when you write y[j][i], j goes from 0 to b.length - 1\n // and i goes from 0 to a.length - 1.\n var validData = handleXYDefaults(traceIn, traceOut, coerce);\n if(!validData) {\n traceOut.visible = false;\n }\n\n if(traceOut._cheater) {\n coerce('cheaterslope');\n }\n};\n\n\n/***/ }),\n\n/***/ \"41a1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = cmp\n\nfunction cmp(a, b) {\n return a[0].mul(b[1]).cmp(b[0].mul(a[1]))\n}\n\n\n/***/ }),\n\n/***/ \"41e0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar Registry = __webpack_require__(\"371e\");\n\nmodule.exports = function handleXYZDefaults(traceIn, traceOut, coerce, layout, xName, yName) {\n var z = coerce('z');\n xName = xName || 'x';\n yName = yName || 'y';\n var x, y;\n\n if(z === undefined || !z.length) return 0;\n\n if(Lib.isArray1D(traceIn.z)) {\n x = coerce(xName);\n y = coerce(yName);\n\n var xlen = Lib.minRowLength(x);\n var ylen = Lib.minRowLength(y);\n\n // column z must be accompanied by xName and yName arrays\n if(xlen === 0 || ylen === 0) return 0;\n\n traceOut._length = Math.min(xlen, ylen, z.length);\n } else {\n x = coordDefaults(xName, coerce);\n y = coordDefaults(yName, coerce);\n\n // TODO put z validation elsewhere\n if(!isValidZ(z)) return 0;\n\n coerce('transpose');\n\n traceOut._length = null;\n }\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, [xName, yName], layout);\n\n return true;\n};\n\nfunction coordDefaults(coordStr, coerce) {\n var coord = coerce(coordStr);\n var coordType = coord ? coerce(coordStr + 'type', 'array') : 'scaled';\n\n if(coordType === 'scaled') {\n coerce(coordStr + '0');\n coerce('d' + coordStr);\n }\n\n return coord;\n}\n\nfunction isValidZ(z) {\n var allRowsAreArrays = true;\n var oneRowIsFilled = false;\n var hasOneNumber = false;\n var zi;\n\n /*\n * Without this step:\n *\n * hasOneNumber = false breaks contour but not heatmap\n * allRowsAreArrays = false breaks contour but not heatmap\n * oneRowIsFilled = false breaks both\n */\n\n for(var i = 0; i < z.length; i++) {\n zi = z[i];\n if(!Lib.isArrayOrTypedArray(zi)) {\n allRowsAreArrays = false;\n break;\n }\n if(zi.length > 0) oneRowIsFilled = true;\n for(var j = 0; j < zi.length; j++) {\n if(isNumeric(zi[j])) {\n hasOneNumber = true;\n break;\n }\n }\n }\n\n return (allRowsAreArrays && oneRowIsFilled && hasOneNumber);\n}\n\n\n/***/ }),\n\n/***/ \"41f8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar colorscaleDefaults = __webpack_require__(\"4183\");\nvar handleLabelDefaults = __webpack_require__(\"6533\");\n\n\nmodule.exports = function handleStyleDefaults(traceIn, traceOut, coerce, layout, opts) {\n var coloring = coerce('contours.coloring');\n\n var showLines;\n var lineColor = '';\n if(coloring === 'fill') showLines = coerce('contours.showlines');\n\n if(showLines !== false) {\n if(coloring !== 'lines') lineColor = coerce('line.color', '#000');\n coerce('line.width', 0.5);\n coerce('line.dash');\n }\n\n if(coloring !== 'none') {\n // plots/plots always coerces showlegend to true, but in this case\n // we default to false and (by default) show a colorbar instead\n if(traceIn.showlegend !== true) traceOut.showlegend = false;\n traceOut._dfltShowLegend = false;\n\n colorscaleDefaults(\n traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'}\n );\n }\n\n coerce('line.smoothing');\n\n handleLabelDefaults(coerce, layout, lineColor, opts);\n};\n\n\n/***/ }),\n\n/***/ \"422c\":\n/***/ (function(module, exports) {\n\nmodule.exports = rotateX;\n\n/**\n * Rotate a 3D vector around the x-axis\n * @param {vec3} out The receiving vec3\n * @param {vec3} a The vec3 point to rotate\n * @param {vec3} b The origin of the rotation\n * @param {Number} c The angle of rotation\n * @returns {vec3} out\n */\nfunction rotateX(out, a, b, c){\n var by = b[1]\n var bz = b[2]\n\n // Translate point to the origin\n var py = a[1] - by\n var pz = a[2] - bz\n\n var sc = Math.sin(c)\n var cc = Math.cos(c)\n\n // perform rotation and translate to correct position\n out[0] = a[0]\n out[1] = by + py * cc - pz * sc\n out[2] = bz + py * sc + pz * cc\n\n return out\n}\n\n\n/***/ }),\n\n/***/ \"4248\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Registry = __webpack_require__(\"371e\");\n\nexports.getDelay = function(fullLayout) {\n if(!fullLayout._has) return 0;\n\n return (\n fullLayout._has('gl3d') ||\n fullLayout._has('gl2d') ||\n fullLayout._has('mapbox')\n ) ? 500 : 0;\n};\n\nexports.getRedrawFunc = function(gd) {\n return function() {\n var fullLayout = gd._fullLayout || {};\n var hasPolar = fullLayout._has && fullLayout._has('polar');\n var hasLegacyPolar = !hasPolar && gd.data && gd.data[0] && gd.data[0].r;\n\n if(!hasLegacyPolar) {\n Registry.getComponentMethod('colorbar', 'draw')(gd);\n }\n };\n};\n\nexports.encodeSVG = function(svg) {\n return 'data:image/svg+xml,' + encodeURIComponent(svg);\n};\n\nvar DOM_URL = window.URL || window.webkitURL;\n\nexports.createObjectURL = function(blob) {\n return DOM_URL.createObjectURL(blob);\n};\n\nexports.revokeObjectURL = function(url) {\n return DOM_URL.revokeObjectURL(url);\n};\n\nexports.createBlob = function(url, format) {\n if(format === 'svg') {\n return new window.Blob([url], {type: 'image/svg+xml;charset=utf-8'});\n } else {\n var binary = fixBinary(window.atob(url));\n return new window.Blob([binary], {type: 'image/' + format});\n }\n};\n\nexports.octetStream = function(s) {\n document.location.href = 'data:application/octet-stream' + s;\n};\n\n// Taken from https://bl.ocks.org/nolanlawson/0eac306e4dac2114c752\nfunction fixBinary(b) {\n var len = b.length;\n var buf = new ArrayBuffer(len);\n var arr = new Uint8Array(buf);\n for(var i = 0; i < len; i++) {\n arr[i] = b.charCodeAt(i);\n }\n return buf;\n}\n\nexports.IMAGE_URL_PREFIX = /^data:image\\/\\w+;base64,/;\n\nexports.MSG_IE_BAD_FORMAT = 'Sorry IE does not support downloading from canvas. Try {format:\\'svg\\'} instead.';\n\n\n/***/ }),\n\n/***/ \"424b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\n// arrayOk attributes, merge them into calcdata array\nmodule.exports = function arraysToCalcdata(cd, trace) {\n for(var i = 0; i < cd.length; i++) cd[i].i = i;\n\n Lib.mergeArray(trace.text, cd, 'tx');\n Lib.mergeArray(trace.hovertext, cd, 'htx');\n\n var marker = trace.marker;\n if(marker) {\n Lib.mergeArray(marker.opacity, cd, 'mo', true);\n Lib.mergeArray(marker.color, cd, 'mc');\n\n var markerLine = marker.line;\n if(markerLine) {\n Lib.mergeArray(markerLine.color, cd, 'mlc');\n Lib.mergeArrayCastPositive(markerLine.width, cd, 'mlw');\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"4274\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = function makeBinAttrs(axLetter, match) {\n return {\n start: {\n valType: 'any', // for date axes\n \n editType: 'calc',\n \n },\n end: {\n valType: 'any', // for date axes\n \n editType: 'calc',\n \n },\n size: {\n valType: 'any', // for date axes\n \n editType: 'calc',\n \n },\n editType: 'calc'\n };\n};\n\n\n/***/ }),\n\n/***/ \"428d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n!function(t,e){ true?module.exports=e(__webpack_require__(\"2ad6\"),__webpack_require__(\"f7fe\")):undefined}(this,function(t,e){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p=\"/\",e(0)}([function(t,e,n){var r,o,i;!function(s,u){o=[t,e,n(10),n(38),n(39),n(9),n(37)],r=u,i=\"function\"==typeof r?r.apply(e,o):r,!(void 0!==i&&(t.exports=i))}(this,function(t,e,n,r,o){\"use strict\";function i(t){return t&&t.__esModule?t:{default:t}}function s(t){if(!t)return{delay:_,initial:!1};var e=t.initial,n=void 0!==e&&e,r=(0,h.default)(t).map(function(t){return parseInt(t)}).find(function(t){return!isNaN(t)});return r=r||_,{delay:r,initial:n}}function u(t,e){var n={root:document.documentElement},r=new IntersectionObserver(function(t,n){t.forEach(function(t){t.isIntersecting&&(e(),n.disconnect())})},n);return r.observe(t),r}function c(t,e){var n=e.value,r=e.arg,o=e.options,i=function(){return n(t)};switch(r){case\"debounce\":i=v(function(){return n(t)},o.delay);break;case\"throttle\":i=v(function(){return n(t)},o.delay,{leading:!0,trailing:!0,maxWait:o.delay})}var s=new l.default(t,i);return o.initial&&n(t),s}function a(t,e,n){var r=e.value,o=e.arg,i=e.modifiers,h=n.context;if(!r||\"function\"!=typeof r)return void console.warn(\"v-resize should received a function as value\");var l=s(i);return h&&h.$el===t&&h.$once(\"hook:deactivated\",function(){f(t),h.$once(\"hook:activated\",function(){a(t,{value:r,arg:o,modifiers:i},{context:h})})}),t.offsetParent?void c(t,{value:r,arg:o,options:l}):(l.initial=!0,void(t.__visibility__listener__=u(t,function(){return c(t,{value:r,arg:o,options:l})})))}function f(t){t.__visibility__listener__&&t.__visibility__listener__.disconnect(),t.resizeSensor&&l.default.detach(t)}Object.defineProperty(e,\"__esModule\",{value:!0});var h=i(n),l=i(r),p=i(o),d=p.default.debounce,v=void 0===d?p.default:d,_=150;e.default={inserted:a,unbind:f},t.exports=e.default})},function(t,e){var n=t.exports={version:\"2.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e,n){t.exports=!n(3)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(23),o=n(6);t.exports=function(t){return r(o(t))}},function(t,e,n){var r,o,i;!function(n,s){o=[],r=s,i=\"function\"==typeof r?r.apply(e,o):r,!(void 0!==i&&(t.exports=i))}(this,function(){\"use strict\";Array.prototype.find||Object.defineProperty(Array.prototype,\"find\",{value:function(t){if(null==this)throw new TypeError('\"this\" is null or not defined');var e=Object(this),n=e.length>>>0;if(\"function\"!=typeof t)throw new TypeError(\"predicate must be a function\");for(var r=arguments[1],o=0;of;)if(u=c[f++],u!=u)return!0}else for(;a>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(12);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(5),o=n(4).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(t,e,n){var r=n(4),o=n(1),i=n(16),s=n(21),u=\"prototype\",c=function(t,e,n){var a,f,h,l=t&c.F,p=t&c.G,d=t&c.S,v=t&c.P,_=t&c.B,y=t&c.W,g=p?o:o[e]||(o[e]={}),b=g[u],m=p?r:d?r[e]:(r[e]||{})[u];p&&(n=e);for(a in n)f=!l&&m&&void 0!==m[a],f&&a in g||(h=f?m[a]:n[a],g[a]=p&&\"function\"!=typeof m[a]?n[a]:_&&f?i(h,r):y&&m[a]==h?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[u]=t[u],e}(h):v&&\"function\"==typeof h?i(Function.call,h):h,v&&((g.virtual||(g.virtual={}))[a]=h,t&c.R&&b&&!b[a]&&s(b,a,h)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(24),o=n(28);t.exports=n(2)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){t.exports=!n(2)&&!n(3)(function(){return 7!=Object.defineProperty(n(17)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(t,e,n){var r=n(15);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==r(t)?t.split(\"\"):Object(t)}},function(t,e,n){var r=n(13),o=n(22),i=n(34),s=Object.defineProperty;e.f=n(2)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return s(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(20),o=n(8),i=n(14)(!1),s=n(29)(\"IE_PROTO\");t.exports=function(t,e){var n,u=o(t),c=0,a=[];for(n in u)n!=s&&r(u,n)&&a.push(n);for(;e.length>c;)r(u,n=e[c++])&&(~i(a,n)||a.push(n));return a}},function(t,e,n){var r=n(25),o=n(18);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(19),o=n(1),i=n(3);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],s={};s[t]=e(n),r(r.S+r.F*i(function(){n(1)}),\"Object\",s)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(30)(\"keys\"),o=n(35);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(4),o=\"__core-js_shared__\",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e,n){var r=n(7),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(7),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(6);t.exports=function(t){return Object(r(t))}},function(t,e,n){var r=n(5);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if(\"function\"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&\"function\"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+r).toString(36))}},function(t,e,n){var r=n(33),o=n(26);n(27)(\"keys\",function(){return function(t){return o(r(t))}})},function(t,e){!function(t,e){\"use strict\";function n(t){this.time=t.time,this.target=t.target,this.rootBounds=t.rootBounds,this.boundingClientRect=t.boundingClientRect,this.intersectionRect=t.intersectionRect||f(),this.isIntersecting=!!t.intersectionRect;var e=this.boundingClientRect,n=e.width*e.height,r=this.intersectionRect,o=r.width*r.height;n?this.intersectionRatio=o/n:this.intersectionRatio=this.isIntersecting?1:0}function r(t,e){var n=e||{};if(\"function\"!=typeof t)throw new Error(\"callback must be a function\");if(n.root&&1!=n.root.nodeType)throw new Error(\"root must be an Element\");this._checkForIntersections=i(this._checkForIntersections.bind(this),this.THROTTLE_TIMEOUT),this._callback=t,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(n.rootMargin),this.thresholds=this._initThresholds(n.threshold),this.root=n.root||null,this.rootMargin=this._rootMarginValues.map(function(t){return t.value+t.unit}).join(\" \")}function o(){return t.performance&&performance.now&&performance.now()}function i(t,e){var n=null;return function(){n||(n=setTimeout(function(){t(),n=null},e))}}function s(t,e,n,r){\"function\"==typeof t.addEventListener?t.addEventListener(e,n,r||!1):\"function\"==typeof t.attachEvent&&t.attachEvent(\"on\"+e,n)}function u(t,e,n,r){\"function\"==typeof t.removeEventListener?t.removeEventListener(e,n,r||!1):\"function\"==typeof t.detatchEvent&&t.detatchEvent(\"on\"+e,n)}function c(t,e){var n=Math.max(t.top,e.top),r=Math.min(t.bottom,e.bottom),o=Math.max(t.left,e.left),i=Math.min(t.right,e.right),s=i-o,u=r-n;return s>=0&&u>=0&&{top:n,bottom:r,left:o,right:i,width:s,height:u}}function a(t){var e;try{e=t.getBoundingClientRect()}catch(t){}return e?(e.width&&e.height||(e={top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):f()}function f(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}function h(t,e){for(var n=e;n;){if(n==t)return!0;n=l(n)}return!1}function l(t){var e=t.parentNode;return e&&11==e.nodeType&&e.host?e.host:e}if(\"IntersectionObserver\"in t&&\"IntersectionObserverEntry\"in t&&\"intersectionRatio\"in t.IntersectionObserverEntry.prototype)return void(\"isIntersecting\"in t.IntersectionObserverEntry.prototype||Object.defineProperty(t.IntersectionObserverEntry.prototype,\"isIntersecting\",{get:function(){return this.intersectionRatio>0}}));var p=[];r.prototype.THROTTLE_TIMEOUT=100,r.prototype.POLL_INTERVAL=null,r.prototype.USE_MUTATION_OBSERVER=!0,r.prototype.observe=function(t){var e=this._observationTargets.some(function(e){return e.element==t});if(!e){if(!t||1!=t.nodeType)throw new Error(\"target must be an Element\");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},r.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter(function(e){return e.element!=t}),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},r.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},r.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},r.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter(function(t,e,n){if(\"number\"!=typeof t||isNaN(t)||t<0||t>1)throw new Error(\"threshold must be a number between 0 and 1 inclusively\");return t!==n[e-1]})},r.prototype._parseRootMargin=function(t){var e=t||\"0px\",n=e.split(/\\s+/).map(function(t){var e=/^(-?\\d*\\.?\\d+)(px|%)$/.exec(t);if(!e)throw new Error(\"rootMargin must be specified in pixels or percent\");return{value:parseFloat(e[1]),unit:e[2]}});return n[1]=n[1]||n[0],n[2]=n[2]||n[0],n[3]=n[3]||n[1],n},r.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(s(t,\"resize\",this._checkForIntersections,!0),s(e,\"scroll\",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&\"MutationObserver\"in t&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},r.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,u(t,\"resize\",this._checkForIntersections,!0),u(e,\"scroll\",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},r.prototype._checkForIntersections=function(){var t=this._rootIsInDom(),e=t?this._getRootRect():f();this._observationTargets.forEach(function(r){var i=r.element,s=a(i),u=this._rootContainsTarget(i),c=r.entry,f=t&&u&&this._computeTargetAndRootIntersection(i,e),h=r.entry=new n({time:o(),target:i,boundingClientRect:s,rootBounds:e,intersectionRect:f});c?t&&u?this._hasCrossedThreshold(c,h)&&this._queuedEntries.push(h):c&&c.isIntersecting&&this._queuedEntries.push(h):this._queuedEntries.push(h)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},r.prototype._computeTargetAndRootIntersection=function(n,r){if(\"none\"!=t.getComputedStyle(n).display){for(var o=a(n),i=o,s=l(n),u=!1;!u;){var f=null,h=1==s.nodeType?t.getComputedStyle(s):{};if(\"none\"==h.display)return;if(s==this.root||s==e?(u=!0,f=r):s!=e.body&&s!=e.documentElement&&\"visible\"!=h.overflow&&(f=a(s)),f&&(i=c(f,i),!i))break;s=l(s)}return i}},r.prototype._getRootRect=function(){var t;if(this.root)t=a(this.root);else{var n=e.documentElement,r=e.body;t={top:0,left:0,right:n.clientWidth||r.clientWidth,width:n.clientWidth||r.clientWidth,bottom:n.clientHeight||r.clientHeight,height:n.clientHeight||r.clientHeight}}return this._expandRectByRootMargin(t)},r.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map(function(e,n){return\"px\"==e.unit?e.value:e.value*(n%2?t.width:t.height)/100}),n={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return n.width=n.right-n.left,n.height=n.bottom-n.top,n},r.prototype._hasCrossedThreshold=function(t,e){var n=t&&t.isIntersecting?t.intersectionRatio||0:-1,r=e.isIntersecting?e.intersectionRatio||0:-1;if(n!==r)for(var o=0;o allPositions[k] && k < allPositions.length; k++) {\n // the current trace is missing a position from some previous trace(s)\n insertBlank(cd, j, allPositions[k], i, hasAnyBlanks, interpolate, posAttr);\n j++;\n }\n if(posj !== allPositions[k]) {\n // previous trace(s) are missing a position from the current trace\n for(i2 = 0; i2 < i; i2++) {\n insertBlank(calcTraces[indices[i2]], k, posj, i2, hasAnyBlanks, interpolate, posAttr);\n }\n allPositions.splice(k, 0, posj);\n }\n k++;\n }\n for(; k < allPositions.length; k++) {\n insertBlank(cd, j, allPositions[k], i, hasAnyBlanks, interpolate, posAttr);\n j++;\n }\n }\n\n var serieslen = allPositions.length;\n\n // stack (and normalize)!\n for(j = 0; j < cd0.length; j++) {\n sumj = cd0[j][valAttr] = cd0[j].s;\n for(i = 1; i < indices.length; i++) {\n cd = calcTraces[indices[i]];\n cd[0].trace._rawLength = cd[0].trace._length;\n cd[0].trace._length = serieslen;\n sumj += cd[j].s;\n cd[j][valAttr] = sumj;\n }\n\n if(groupnorm) {\n norm = ((groupnorm === 'fraction') ? sumj : (sumj / 100)) || 1;\n for(i = 0; i < indices.length; i++) {\n var cdj = calcTraces[indices[i]][j];\n cdj[valAttr] /= norm;\n cdj.sNorm = cdj.s / norm;\n }\n }\n }\n\n // autorange\n for(i = 0; i < indices.length; i++) {\n cd = calcTraces[indices[i]];\n var trace = cd[0].trace;\n var ppad = calc.calcMarkerSize(trace, trace._rawLength);\n var arrayPad = Array.isArray(ppad);\n if((ppad && hasAnyBlanks[i]) || arrayPad) {\n var ppadRaw = ppad;\n ppad = new Array(serieslen);\n for(j = 0; j < serieslen; j++) {\n ppad[j] = cd[j].gap ? 0 : (arrayPad ? ppadRaw[cd[j].i] : ppadRaw);\n }\n }\n var x = new Array(serieslen);\n var y = new Array(serieslen);\n for(j = 0; j < serieslen; j++) {\n x[j] = cd[j].x;\n y[j] = cd[j].y;\n }\n calc.calcAxisExpansion(gd, trace, xa, ya, x, y, ppad);\n\n // while we're here (in a loop over all traces in the stack)\n // record the orientation, so hover can find it easily\n cd[0].t.orientation = groupOpts.orientation;\n }\n }\n};\n\nfunction insertBlank(calcTrace, index, position, traceIndex, hasAnyBlanks, interpolate, posAttr) {\n hasAnyBlanks[traceIndex] = true;\n var newEntry = {\n i: null,\n gap: true,\n s: 0\n };\n newEntry[posAttr] = position;\n calcTrace.splice(index, 0, newEntry);\n // Even if we're not interpolating, if one trace has multiple\n // values at the same position and this trace only has one value there,\n // we just duplicate that one value rather than insert a zero.\n // We also make it look like a real point - because it's ambiguous which\n // one really is the real one!\n if(index && position === calcTrace[index - 1][posAttr]) {\n var prevEntry = calcTrace[index - 1];\n newEntry.s = prevEntry.s;\n // TODO is it going to cause any problems to have multiple\n // calcdata points with the same index?\n newEntry.i = prevEntry.i;\n newEntry.gap = prevEntry.gap;\n } else if(interpolate) {\n newEntry.s = getInterp(calcTrace, index, position, posAttr);\n }\n if(!index) {\n // t and trace need to stay on the first cd entry\n calcTrace[0].t = calcTrace[1].t;\n calcTrace[0].trace = calcTrace[1].trace;\n delete calcTrace[1].t;\n delete calcTrace[1].trace;\n }\n}\n\nfunction getInterp(calcTrace, index, position, posAttr) {\n var pt0 = calcTrace[index - 1];\n var pt1 = calcTrace[index + 1];\n if(!pt1) return pt0.s;\n if(!pt0) return pt1.s;\n return pt0.s + (pt1.s - pt0.s) * (position - pt0[posAttr]) / (pt1[posAttr] - pt0[posAttr]);\n}\n\n\n/***/ }),\n\n/***/ \"4358\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar isArrayOrTypedArray = __webpack_require__(\"6af8\").isArrayOrTypedArray;\nvar isPlainObject = __webpack_require__(\"1385\");\n\n/**\n * Relink private _keys and keys with a function value from one container\n * to the new container.\n * Relink means copying if object is pass-by-value and adding a reference\n * if object is pass-by-ref.\n * This prevents deepCopying massive structures like a webgl context.\n */\nmodule.exports = function relinkPrivateKeys(toContainer, fromContainer) {\n for(var k in fromContainer) {\n var fromVal = fromContainer[k];\n var toVal = toContainer[k];\n\n if(toVal === fromVal) {\n continue;\n }\n if(k.charAt(0) === '_' || typeof fromVal === 'function') {\n // if it already exists at this point, it's something\n // that we recreate each time around, so ignore it\n if(k in toContainer) continue;\n\n toContainer[k] = fromVal;\n } else if(isArrayOrTypedArray(fromVal) && isArrayOrTypedArray(toVal) && isPlainObject(fromVal[0])) {\n // filter out data_array items that can contain user objects\n // most of the time the toVal === fromVal check will catch these early\n // but if the user makes new ones we also don't want to recurse in.\n if(k === 'customdata' || k === 'ids') continue;\n\n // recurse into arrays containers\n var minLen = Math.min(fromVal.length, toVal.length);\n for(var j = 0; j < minLen; j++) {\n if((toVal[j] !== fromVal[j]) && isPlainObject(fromVal[j]) && isPlainObject(toVal[j])) {\n relinkPrivateKeys(toVal[j], fromVal[j]);\n }\n }\n } else if(isPlainObject(fromVal) && isPlainObject(toVal)) {\n // recurse into objects, but only if they still exist\n relinkPrivateKeys(toVal, fromVal);\n\n if(!Object.keys(toVal).length) delete toContainer[k];\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"4362\":\n/***/ (function(module, exports, __webpack_require__) {\n\nexports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = __webpack_require__(\"df7c\");\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n\n\n/***/ }),\n\n/***/ \"4393\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bounds = __webpack_require__(\"a671\")\n\nvar NOT_FOUND = 0\nvar SUCCESS = 1\nvar EMPTY = 2\n\nmodule.exports = createWrapper\n\nfunction IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {\n this.mid = mid\n this.left = left\n this.right = right\n this.leftPoints = leftPoints\n this.rightPoints = rightPoints\n this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length\n}\n\nvar proto = IntervalTreeNode.prototype\n\nfunction copy(a, b) {\n a.mid = b.mid\n a.left = b.left\n a.right = b.right\n a.leftPoints = b.leftPoints\n a.rightPoints = b.rightPoints\n a.count = b.count\n}\n\nfunction rebuild(node, intervals) {\n var ntree = createIntervalTree(intervals)\n node.mid = ntree.mid\n node.left = ntree.left\n node.right = ntree.right\n node.leftPoints = ntree.leftPoints\n node.rightPoints = ntree.rightPoints\n node.count = ntree.count\n}\n\nfunction rebuildWithInterval(node, interval) {\n var intervals = node.intervals([])\n intervals.push(interval)\n rebuild(node, intervals) \n}\n\nfunction rebuildWithoutInterval(node, interval) {\n var intervals = node.intervals([])\n var idx = intervals.indexOf(interval)\n if(idx < 0) {\n return NOT_FOUND\n }\n intervals.splice(idx, 1)\n rebuild(node, intervals)\n return SUCCESS\n}\n\nproto.intervals = function(result) {\n result.push.apply(result, this.leftPoints)\n if(this.left) {\n this.left.intervals(result)\n }\n if(this.right) {\n this.right.intervals(result)\n }\n return result\n}\n\nproto.insert = function(interval) {\n var weight = this.count - this.leftPoints.length\n this.count += 1\n if(interval[1] < this.mid) {\n if(this.left) {\n if(4*(this.left.count+1) > 3*(weight+1)) {\n rebuildWithInterval(this, interval)\n } else {\n this.left.insert(interval)\n }\n } else {\n this.left = createIntervalTree([interval])\n }\n } else if(interval[0] > this.mid) {\n if(this.right) {\n if(4*(this.right.count+1) > 3*(weight+1)) {\n rebuildWithInterval(this, interval)\n } else {\n this.right.insert(interval)\n }\n } else {\n this.right = createIntervalTree([interval])\n }\n } else {\n var l = bounds.ge(this.leftPoints, interval, compareBegin)\n var r = bounds.ge(this.rightPoints, interval, compareEnd)\n this.leftPoints.splice(l, 0, interval)\n this.rightPoints.splice(r, 0, interval)\n }\n}\n\nproto.remove = function(interval) {\n var weight = this.count - this.leftPoints\n if(interval[1] < this.mid) {\n if(!this.left) {\n return NOT_FOUND\n }\n var rw = this.right ? this.right.count : 0\n if(4 * rw > 3 * (weight-1)) {\n return rebuildWithoutInterval(this, interval)\n }\n var r = this.left.remove(interval)\n if(r === EMPTY) {\n this.left = null\n this.count -= 1\n return SUCCESS\n } else if(r === SUCCESS) {\n this.count -= 1\n }\n return r\n } else if(interval[0] > this.mid) {\n if(!this.right) {\n return NOT_FOUND\n }\n var lw = this.left ? this.left.count : 0\n if(4 * lw > 3 * (weight-1)) {\n return rebuildWithoutInterval(this, interval)\n }\n var r = this.right.remove(interval)\n if(r === EMPTY) {\n this.right = null\n this.count -= 1\n return SUCCESS\n } else if(r === SUCCESS) {\n this.count -= 1\n }\n return r\n } else {\n if(this.count === 1) {\n if(this.leftPoints[0] === interval) {\n return EMPTY\n } else {\n return NOT_FOUND\n }\n }\n if(this.leftPoints.length === 1 && this.leftPoints[0] === interval) {\n if(this.left && this.right) {\n var p = this\n var n = this.left\n while(n.right) {\n p = n\n n = n.right\n }\n if(p === this) {\n n.right = this.right\n } else {\n var l = this.left\n var r = this.right\n p.count -= n.count\n p.right = n.left\n n.left = l\n n.right = r\n }\n copy(this, n)\n this.count = (this.left?this.left.count:0) + (this.right?this.right.count:0) + this.leftPoints.length\n } else if(this.left) {\n copy(this, this.left)\n } else {\n copy(this, this.right)\n }\n return SUCCESS\n }\n for(var l = bounds.ge(this.leftPoints, interval, compareBegin); l=0 && arr[i][1] >= lo; --i) {\n var r = cb(arr[i])\n if(r) { return r }\n }\n}\n\nfunction reportRange(arr, cb) {\n for(var i=0; i this.mid) {\n if(this.right) {\n var r = this.right.queryPoint(x, cb)\n if(r) { return r }\n }\n return reportRightRange(this.rightPoints, x, cb)\n } else {\n return reportRange(this.leftPoints, cb)\n }\n}\n\nproto.queryInterval = function(lo, hi, cb) {\n if(lo < this.mid && this.left) {\n var r = this.left.queryInterval(lo, hi, cb)\n if(r) { return r }\n }\n if(hi > this.mid && this.right) {\n var r = this.right.queryInterval(lo, hi, cb)\n if(r) { return r }\n }\n if(hi < this.mid) {\n return reportLeftRange(this.leftPoints, hi, cb)\n } else if(lo > this.mid) {\n return reportRightRange(this.rightPoints, lo, cb)\n } else {\n return reportRange(this.leftPoints, cb)\n }\n}\n\nfunction compareNumbers(a, b) {\n return a - b\n}\n\nfunction compareBegin(a, b) {\n var d = a[0] - b[0]\n if(d) { return d }\n return a[1] - b[1]\n}\n\nfunction compareEnd(a, b) {\n var d = a[1] - b[1]\n if(d) { return d }\n return a[0] - b[0]\n}\n\nfunction createIntervalTree(intervals) {\n if(intervals.length === 0) {\n return null\n }\n var pts = []\n for(var i=0; i>1]\n\n var leftIntervals = []\n var rightIntervals = []\n var centerIntervals = []\n for(var i=0; i= bbox.left && e.clientX <= bbox.right &&\n e.clientY >= bbox.top && e.clientY <= bbox.bottom\n );\n });\n if(clickedTrace.size() > 0) {\n clickOrDoubleClick(gd, legend, clickedTrace, numClicks, e);\n }\n }\n });\n }\n }], gd);\n};\n\nfunction clickOrDoubleClick(gd, legend, legendItem, numClicks, evt) {\n var trace = legendItem.data()[0][0].trace;\n var evtData = {\n event: evt,\n node: legendItem.node(),\n curveNumber: trace.index,\n expandedIndex: trace._expandedIndex,\n data: gd.data,\n layout: gd.layout,\n frames: gd._transitionData._frames,\n config: gd._context,\n fullData: gd._fullData,\n fullLayout: gd._fullLayout\n };\n\n if(trace._group) {\n evtData.group = trace._group;\n }\n if(Registry.traceIs(trace, 'pie-like')) {\n evtData.label = legendItem.datum()[0].label;\n }\n\n var clickVal = Events.triggerHandler(gd, 'plotly_legendclick', evtData);\n if(clickVal === false) return;\n\n if(numClicks === 1) {\n legend._clickTimeout = setTimeout(function() {\n handleClick(legendItem, gd, numClicks);\n }, gd._context.doubleClickDelay);\n } else if(numClicks === 2) {\n if(legend._clickTimeout) clearTimeout(legend._clickTimeout);\n gd._legendMouseDownTime = 0;\n\n var dblClickVal = Events.triggerHandler(gd, 'plotly_legenddoubleclick', evtData);\n if(dblClickVal !== false) handleClick(legendItem, gd, numClicks);\n }\n}\n\nfunction drawTexts(g, gd) {\n var legendItem = g.data()[0][0];\n var fullLayout = gd._fullLayout;\n var opts = fullLayout.legend;\n var trace = legendItem.trace;\n var isPieLike = Registry.traceIs(trace, 'pie-like');\n var traceIndex = trace.index;\n var isEditable = gd._context.edits.legendText && !isPieLike;\n var maxNameLength = opts._maxNameLength;\n\n var name = isPieLike ? legendItem.label : trace.name;\n if(trace._meta) {\n name = Lib.templateString(name, trace._meta);\n }\n\n var textEl = Lib.ensureSingle(g, 'text', 'legendtext');\n\n textEl.attr('text-anchor', 'start')\n .classed('user-select-none', true)\n .call(Drawing.font, opts.font)\n .text(isEditable ? ensureLength(name, maxNameLength) : name);\n\n svgTextUtils.positionText(textEl, constants.textGap, 0);\n\n if(isEditable) {\n textEl.call(svgTextUtils.makeEditable, {gd: gd, text: name})\n .call(textLayout, g, gd)\n .on('edit', function(newName) {\n this.text(ensureLength(newName, maxNameLength))\n .call(textLayout, g, gd);\n\n var fullInput = legendItem.trace._fullInput || {};\n var update = {};\n\n if(Registry.hasTransform(fullInput, 'groupby')) {\n var groupbyIndices = Registry.getTransformIndices(fullInput, 'groupby');\n var index = groupbyIndices[groupbyIndices.length - 1];\n\n var kcont = Lib.keyedContainer(fullInput, 'transforms[' + index + '].styles', 'target', 'value.name');\n\n kcont.set(legendItem.trace._group, newName);\n\n update = kcont.constructUpdate();\n } else {\n update.name = newName;\n }\n\n return Registry.call('_guiRestyle', gd, update, traceIndex);\n });\n } else {\n textLayout(textEl, g, gd);\n }\n}\n\n/*\n * Make sure we have a reasonably clickable region.\n * If this string is missing or very short, pad it with spaces out to at least\n * 4 characters, up to the max length of other labels, on the assumption that\n * most characters are wider than spaces so a string of spaces will usually be\n * no wider than the real labels.\n */\nfunction ensureLength(str, maxLength) {\n var targetLength = Math.max(4, maxLength);\n if(str && str.trim().length >= targetLength / 2) return str;\n str = str || '';\n for(var i = targetLength - str.length; i > 0; i--) str += ' ';\n return str;\n}\n\nfunction setupTraceToggle(g, gd) {\n var doubleClickDelay = gd._context.doubleClickDelay;\n var newMouseDownTime;\n var numClicks = 1;\n\n var traceToggle = Lib.ensureSingle(g, 'rect', 'legendtoggle', function(s) {\n s.style('cursor', 'pointer')\n .attr('pointer-events', 'all')\n .call(Color.fill, 'rgba(0,0,0,0)');\n });\n\n traceToggle.on('mousedown', function() {\n newMouseDownTime = (new Date()).getTime();\n if(newMouseDownTime - gd._legendMouseDownTime < doubleClickDelay) {\n // in a click train\n numClicks += 1;\n } else {\n // new click train\n numClicks = 1;\n gd._legendMouseDownTime = newMouseDownTime;\n }\n });\n traceToggle.on('mouseup', function() {\n if(gd._dragged || gd._editing) return;\n var legend = gd._fullLayout.legend;\n\n if((new Date()).getTime() - gd._legendMouseDownTime > doubleClickDelay) {\n numClicks = Math.max(numClicks - 1, 1);\n }\n\n clickOrDoubleClick(gd, legend, g, numClicks, d3.event);\n });\n}\n\nfunction textLayout(s, g, gd) {\n svgTextUtils.convertToTspans(s, gd, function() {\n computeTextDimensions(g, gd);\n });\n}\n\nfunction computeTextDimensions(g, gd) {\n var legendItem = g.data()[0][0];\n if(legendItem && !legendItem.trace.showlegend) {\n g.remove();\n return;\n }\n\n var mathjaxGroup = g.select('g[class*=math-group]');\n var mathjaxNode = mathjaxGroup.node();\n var bw = gd._fullLayout.legend.borderwidth;\n var opts = gd._fullLayout.legend;\n var lineHeight = (legendItem ? opts : opts.title).font.size * LINE_SPACING;\n var height, width;\n\n if(mathjaxNode) {\n var mathjaxBB = Drawing.bBox(mathjaxNode);\n\n height = mathjaxBB.height;\n width = mathjaxBB.width;\n\n if(legendItem) {\n Drawing.setTranslate(mathjaxGroup, 0, height * 0.25);\n } else { // case of title\n Drawing.setTranslate(mathjaxGroup, bw, height * 0.75 + bw);\n }\n } else {\n var textEl = g.select(legendItem ?\n '.legendtext' : '.legendtitletext'\n );\n var textLines = svgTextUtils.lineCount(textEl);\n var textNode = textEl.node();\n\n height = lineHeight * textLines;\n width = textNode ? Drawing.bBox(textNode).width : 0;\n\n // approximation to height offset to center the font\n // to avoid getBoundingClientRect\n var textY = lineHeight * ((textLines - 1) / 2 - 0.3);\n if(legendItem) {\n svgTextUtils.positionText(textEl, constants.textGap, -textY);\n } else { // case of title\n svgTextUtils.positionText(textEl, constants.titlePad + bw, lineHeight + bw);\n }\n }\n\n if(legendItem) {\n legendItem.lineHeight = lineHeight;\n legendItem.height = Math.max(height, 16) + 3;\n legendItem.width = width;\n } else { // case of title\n opts._titleWidth = width;\n opts._titleHeight = height;\n }\n}\n\nfunction getTitleSize(opts) {\n var w = 0;\n var h = 0;\n\n var side = opts.title.side;\n if(side) {\n if(side.indexOf('left') !== -1) {\n w = opts._titleWidth;\n }\n if(side.indexOf('top') !== -1) {\n h = opts._titleHeight;\n }\n }\n\n return [w, h];\n}\n\n/*\n * Computes in fullLayout.legend:\n *\n * - _height: legend height including items past scrollbox height\n * - _maxHeight: maximum legend height before scrollbox is required\n * - _effHeight: legend height w/ or w/o scrollbox\n *\n * - _width: legend width\n * - _maxWidth (for orientation:h only): maximum width before starting new row\n */\nfunction computeLegendDimensions(gd, groups, traces) {\n var fullLayout = gd._fullLayout;\n var opts = fullLayout.legend;\n var gs = fullLayout._size;\n\n var isVertical = helpers.isVertical(opts);\n var isGrouped = helpers.isGrouped(opts);\n\n var bw = opts.borderwidth;\n var bw2 = 2 * bw;\n var textGap = constants.textGap;\n var itemGap = constants.itemGap;\n var endPad = 2 * (bw + itemGap);\n\n var yanchor = getYanchor(opts);\n var isBelowPlotArea = opts.y < 0 || (opts.y === 0 && yanchor === 'top');\n var isAbovePlotArea = opts.y > 1 || (opts.y === 1 && yanchor === 'bottom');\n\n // - if below/above plot area, give it the maximum potential margin-push value\n // - otherwise, extend the height of the plot area\n opts._maxHeight = Math.max(\n (isBelowPlotArea || isAbovePlotArea) ? fullLayout.height / 2 : gs.h,\n 30\n );\n\n var toggleRectWidth = 0;\n opts._width = 0;\n opts._height = 0;\n var titleSize = getTitleSize(opts);\n\n if(isVertical) {\n traces.each(function(d) {\n var h = d[0].height;\n Drawing.setTranslate(this,\n bw + titleSize[0],\n bw + titleSize[1] + opts._height + h / 2 + itemGap\n );\n opts._height += h;\n opts._width = Math.max(opts._width, d[0].width);\n });\n\n toggleRectWidth = textGap + opts._width;\n opts._width += itemGap + textGap + bw2;\n opts._height += endPad;\n\n if(isGrouped) {\n groups.each(function(d, i) {\n Drawing.setTranslate(this, 0, i * opts.tracegroupgap);\n });\n opts._height += (opts._lgroupsLength - 1) * opts.tracegroupgap;\n }\n } else {\n var xanchor = getXanchor(opts);\n var isLeftOfPlotArea = opts.x < 0 || (opts.x === 0 && xanchor === 'right');\n var isRightOfPlotArea = opts.x > 1 || (opts.x === 1 && xanchor === 'left');\n var isBeyondPlotAreaY = isAbovePlotArea || isBelowPlotArea;\n var hw = fullLayout.width / 2;\n\n // - if placed within x-margins, extend the width of the plot area\n // - else if below/above plot area and anchored in the margin, extend to opposite margin,\n // - otherwise give it the maximum potential margin-push value\n opts._maxWidth = Math.max(\n isLeftOfPlotArea ? ((isBeyondPlotAreaY && xanchor === 'left') ? gs.l + gs.w : hw) :\n isRightOfPlotArea ? ((isBeyondPlotAreaY && xanchor === 'right') ? gs.r + gs.w : hw) :\n gs.w,\n 2 * textGap);\n var maxItemWidth = 0;\n var combinedItemWidth = 0;\n traces.each(function(d) {\n var w = d[0].width + textGap;\n maxItemWidth = Math.max(maxItemWidth, w);\n combinedItemWidth += w;\n });\n\n toggleRectWidth = null;\n var maxRowWidth = 0;\n\n if(isGrouped) {\n var maxGroupHeightInRow = 0;\n var groupOffsetX = 0;\n var groupOffsetY = 0;\n groups.each(function() {\n var maxWidthInGroup = 0;\n var offsetY = 0;\n d3.select(this).selectAll('g.traces').each(function(d) {\n var h = d[0].height;\n Drawing.setTranslate(this,\n titleSize[0],\n titleSize[1] + bw + itemGap + h / 2 + offsetY\n );\n offsetY += h;\n maxWidthInGroup = Math.max(maxWidthInGroup, textGap + d[0].width);\n });\n maxGroupHeightInRow = Math.max(maxGroupHeightInRow, offsetY);\n\n var next = maxWidthInGroup + itemGap;\n\n if((next + bw + groupOffsetX) > opts._maxWidth) {\n maxRowWidth = Math.max(maxRowWidth, groupOffsetX);\n groupOffsetX = 0;\n groupOffsetY += maxGroupHeightInRow + opts.tracegroupgap;\n maxGroupHeightInRow = offsetY;\n }\n\n Drawing.setTranslate(this, groupOffsetX, groupOffsetY);\n\n groupOffsetX += next;\n });\n\n opts._width = Math.max(maxRowWidth, groupOffsetX) + bw;\n opts._height = groupOffsetY + maxGroupHeightInRow + endPad;\n } else {\n var nTraces = traces.size();\n var oneRowLegend = (combinedItemWidth + bw2 + (nTraces - 1) * itemGap) < opts._maxWidth;\n\n var maxItemHeightInRow = 0;\n var offsetX = 0;\n var offsetY = 0;\n var rowWidth = 0;\n traces.each(function(d) {\n var h = d[0].height;\n var w = textGap + d[0].width;\n var next = (oneRowLegend ? w : maxItemWidth) + itemGap;\n\n if((next + bw + offsetX) > opts._maxWidth) {\n maxRowWidth = Math.max(maxRowWidth, rowWidth);\n offsetX = 0;\n offsetY += maxItemHeightInRow;\n opts._height += maxItemHeightInRow;\n maxItemHeightInRow = 0;\n }\n\n Drawing.setTranslate(this,\n titleSize[0] + bw + offsetX,\n titleSize[1] + bw + offsetY + h / 2 + itemGap\n );\n\n rowWidth = offsetX + w + itemGap;\n offsetX += next;\n maxItemHeightInRow = Math.max(maxItemHeightInRow, h);\n });\n\n if(oneRowLegend) {\n opts._width = offsetX + bw2;\n opts._height = maxItemHeightInRow + endPad;\n } else {\n opts._width = Math.max(maxRowWidth, rowWidth) + bw2;\n opts._height += maxItemHeightInRow + endPad;\n }\n }\n }\n\n opts._width = Math.ceil(\n Math.max(\n opts._width + titleSize[0],\n opts._titleWidth + 2 * (bw + constants.titlePad)\n )\n );\n\n opts._height = Math.ceil(\n Math.max(\n opts._height + titleSize[1],\n opts._titleHeight + 2 * (bw + constants.itemGap)\n )\n );\n\n opts._effHeight = Math.min(opts._height, opts._maxHeight);\n\n var edits = gd._context.edits;\n var isEditable = edits.legendText || edits.legendPosition;\n traces.each(function(d) {\n var traceToggle = d3.select(this).select('.legendtoggle');\n var h = d[0].height;\n var w = isEditable ? textGap : (toggleRectWidth || (textGap + d[0].width));\n if(!isVertical) w += itemGap / 2;\n Drawing.setRect(traceToggle, 0, -h / 2, w, h);\n });\n}\n\nfunction expandMargin(gd) {\n var fullLayout = gd._fullLayout;\n var opts = fullLayout.legend;\n var xanchor = getXanchor(opts);\n var yanchor = getYanchor(opts);\n\n return Plots.autoMargin(gd, 'legend', {\n x: opts.x,\n y: opts.y,\n l: opts._width * (FROM_TL[xanchor]),\n r: opts._width * (FROM_BR[xanchor]),\n b: opts._effHeight * (FROM_BR[yanchor]),\n t: opts._effHeight * (FROM_TL[yanchor])\n });\n}\n\nfunction getXanchor(opts) {\n return Lib.isRightAnchor(opts) ? 'right' :\n Lib.isCenterAnchor(opts) ? 'center' :\n 'left';\n}\n\nfunction getYanchor(opts) {\n return Lib.isBottomAnchor(opts) ? 'bottom' :\n Lib.isMiddleAnchor(opts) ? 'middle' :\n 'top';\n}\n\n\n/***/ }),\n\n/***/ \"43ef\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar heatmapAttrs = __webpack_require__(\"0435\");\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar dash = __webpack_require__(\"db54\").dash;\nvar fontAttrs = __webpack_require__(\"9845\");\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nvar filterOps = __webpack_require__(\"6c77\");\nvar COMPARISON_OPS2 = filterOps.COMPARISON_OPS2;\nvar INTERVAL_OPS = filterOps.INTERVAL_OPS;\n\nvar FORMAT_LINK = __webpack_require__(\"78df\").FORMAT_LINK;\n\nvar scatterLineAttrs = scatterAttrs.line;\n\nmodule.exports = extendFlat({\n z: heatmapAttrs.z,\n x: heatmapAttrs.x,\n x0: heatmapAttrs.x0,\n dx: heatmapAttrs.dx,\n y: heatmapAttrs.y,\n y0: heatmapAttrs.y0,\n dy: heatmapAttrs.dy,\n text: heatmapAttrs.text,\n hovertext: heatmapAttrs.hovertext,\n transpose: heatmapAttrs.transpose,\n xtype: heatmapAttrs.xtype,\n ytype: heatmapAttrs.ytype,\n zhoverformat: heatmapAttrs.zhoverformat,\n hovertemplate: heatmapAttrs.hovertemplate,\n hoverongaps: heatmapAttrs.hoverongaps,\n connectgaps: extendFlat({}, heatmapAttrs.connectgaps, {\n \n }),\n\n fillcolor: {\n valType: 'color',\n \n editType: 'calc',\n \n },\n\n autocontour: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'calc',\n impliedEdits: {\n 'contours.start': undefined,\n 'contours.end': undefined,\n 'contours.size': undefined\n },\n \n },\n ncontours: {\n valType: 'integer',\n dflt: 15,\n min: 1,\n \n editType: 'calc',\n \n },\n\n contours: {\n type: {\n valType: 'enumerated',\n values: ['levels', 'constraint'],\n dflt: 'levels',\n \n editType: 'calc',\n \n },\n start: {\n valType: 'number',\n dflt: null,\n \n editType: 'plot',\n impliedEdits: {'^autocontour': false},\n \n },\n end: {\n valType: 'number',\n dflt: null,\n \n editType: 'plot',\n impliedEdits: {'^autocontour': false},\n \n },\n size: {\n valType: 'number',\n dflt: null,\n min: 0,\n \n editType: 'plot',\n impliedEdits: {'^autocontour': false},\n \n },\n coloring: {\n valType: 'enumerated',\n values: ['fill', 'heatmap', 'lines', 'none'],\n dflt: 'fill',\n \n editType: 'calc',\n \n },\n showlines: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'plot',\n \n },\n showlabels: {\n valType: 'boolean',\n dflt: false,\n \n editType: 'plot',\n \n },\n labelfont: fontAttrs({\n editType: 'plot',\n colorEditType: 'style',\n \n }),\n labelformat: {\n valType: 'string',\n dflt: '',\n \n editType: 'plot',\n \n },\n operation: {\n valType: 'enumerated',\n values: [].concat(COMPARISON_OPS2).concat(INTERVAL_OPS),\n \n dflt: '=',\n editType: 'calc',\n \n },\n value: {\n valType: 'any',\n dflt: 0,\n \n editType: 'calc',\n \n },\n editType: 'calc',\n impliedEdits: {'autocontour': false}\n },\n\n line: {\n color: extendFlat({}, scatterLineAttrs.color, {\n editType: 'style+colorbars',\n \n }),\n width: {\n valType: 'number',\n min: 0,\n \n editType: 'style+colorbars',\n \n },\n dash: dash,\n smoothing: extendFlat({}, scatterLineAttrs.smoothing, {\n \n }),\n editType: 'plot'\n }\n},\n colorScaleAttrs('', {\n cLetter: 'z',\n autoColorDflt: false,\n editTypeOverride: 'calc'\n })\n);\n\n\n/***/ }),\n\n/***/ \"442f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar main = __webpack_require__(\"b5e3\");\n\nexports.plot = main.plot;\nexports.newPlot = main.newPlot;\nexports.restyle = main.restyle;\nexports.relayout = main.relayout;\nexports.redraw = main.redraw;\nexports.update = main.update;\nexports._guiRestyle = main._guiRestyle;\nexports._guiRelayout = main._guiRelayout;\nexports._guiUpdate = main._guiUpdate;\nexports._storeDirectGUIEdit = main._storeDirectGUIEdit;\nexports.react = main.react;\nexports.extendTraces = main.extendTraces;\nexports.prependTraces = main.prependTraces;\nexports.addTraces = main.addTraces;\nexports.deleteTraces = main.deleteTraces;\nexports.moveTraces = main.moveTraces;\nexports.purge = main.purge;\nexports.addFrames = main.addFrames;\nexports.deleteFrames = main.deleteFrames;\nexports.animate = main.animate;\nexports.setPlotConfig = main.setPlotConfig;\n\nexports.toImage = __webpack_require__(\"a288\");\nexports.validate = __webpack_require__(\"3fb2\");\nexports.downloadImage = __webpack_require__(\"ad91\");\n\nvar templateApi = __webpack_require__(\"2d9a\");\nexports.makeTemplate = templateApi.makeTemplate;\nexports.validateTemplate = templateApi.validateTemplate;\n\n\n/***/ }),\n\n/***/ \"447e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar attributes = __webpack_require__(\"86d2\");\nvar constants = __webpack_require__(\"000c\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var z = coerce('z');\n if(z === undefined || !z.length || !z[0] || !z[0].length) {\n traceOut.visible = false;\n return;\n }\n\n coerce('x0');\n coerce('y0');\n coerce('dx');\n coerce('dy');\n var colormodel = coerce('colormodel');\n\n coerce('zmin', constants.colormodel[colormodel].min);\n coerce('zmax', constants.colormodel[colormodel].max);\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n traceOut._length = null;\n};\n\n\n/***/ }),\n\n/***/ \"44ad\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\nvar classof = __webpack_require__(\"c6b6\");\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n\n/***/ \"44c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createTexture = __webpack_require__(\"1d5b\")\n\nmodule.exports = createFBO\n\nvar colorAttachmentArrays = null\nvar FRAMEBUFFER_UNSUPPORTED\nvar FRAMEBUFFER_INCOMPLETE_ATTACHMENT\nvar FRAMEBUFFER_INCOMPLETE_DIMENSIONS\nvar FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\n\nfunction saveFBOState(gl) {\n var fbo = gl.getParameter(gl.FRAMEBUFFER_BINDING)\n var rbo = gl.getParameter(gl.RENDERBUFFER_BINDING)\n var tex = gl.getParameter(gl.TEXTURE_BINDING_2D)\n return [fbo, rbo, tex]\n}\n\nfunction restoreFBOState(gl, data) {\n gl.bindFramebuffer(gl.FRAMEBUFFER, data[0])\n gl.bindRenderbuffer(gl.RENDERBUFFER, data[1])\n gl.bindTexture(gl.TEXTURE_2D, data[2])\n}\n\nfunction lazyInitColorAttachments(gl, ext) {\n var maxColorAttachments = gl.getParameter(ext.MAX_COLOR_ATTACHMENTS_WEBGL)\n colorAttachmentArrays = new Array(maxColorAttachments + 1)\n for(var i=0; i<=maxColorAttachments; ++i) {\n var x = new Array(maxColorAttachments)\n for(var j=0; j 1) {\n ext.drawBuffersWEBGL(colorAttachmentArrays[numColors])\n }\n\n //Allocate depth/stencil buffers\n var WEBGL_depth_texture = gl.getExtension('WEBGL_depth_texture')\n if(WEBGL_depth_texture) {\n if(useStencil) {\n fbo.depth = initTexture(gl, width, height,\n WEBGL_depth_texture.UNSIGNED_INT_24_8_WEBGL,\n gl.DEPTH_STENCIL,\n gl.DEPTH_STENCIL_ATTACHMENT)\n } else if(useDepth) {\n fbo.depth = initTexture(gl, width, height,\n gl.UNSIGNED_SHORT,\n gl.DEPTH_COMPONENT,\n gl.DEPTH_ATTACHMENT)\n }\n } else {\n if(useDepth && useStencil) {\n fbo._depth_rb = initRenderBuffer(gl, width, height, gl.DEPTH_STENCIL, gl.DEPTH_STENCIL_ATTACHMENT)\n } else if(useDepth) {\n fbo._depth_rb = initRenderBuffer(gl, width, height, gl.DEPTH_COMPONENT16, gl.DEPTH_ATTACHMENT)\n } else if(useStencil) {\n fbo._depth_rb = initRenderBuffer(gl, width, height, gl.STENCIL_INDEX, gl.STENCIL_ATTACHMENT)\n }\n }\n\n //Check frame buffer state\n var status = gl.checkFramebufferStatus(gl.FRAMEBUFFER)\n if(status !== gl.FRAMEBUFFER_COMPLETE) {\n\n //Release all partially allocated resources\n fbo._destroyed = true\n\n //Release all resources\n gl.bindFramebuffer(gl.FRAMEBUFFER, null)\n gl.deleteFramebuffer(fbo.handle)\n fbo.handle = null\n if(fbo.depth) {\n fbo.depth.dispose()\n fbo.depth = null\n }\n if(fbo._depth_rb) {\n gl.deleteRenderbuffer(fbo._depth_rb)\n fbo._depth_rb = null\n }\n for(var i=0; i maxFBOSize ||\n h < 0 || h > maxFBOSize) {\n throw new Error('gl-fbo: Can\\'t resize FBO, invalid dimensions')\n }\n\n //Update shape\n fbo._shape[0] = w\n fbo._shape[1] = h\n\n //Save framebuffer state\n var state = saveFBOState(gl)\n\n //Resize framebuffer attachments\n for(var i=0; i maxFBOSize || height < 0 || height > maxFBOSize) {\n throw new Error('gl-fbo: Parameters are too large for FBO')\n }\n\n //Handle each option type\n options = options || {}\n\n //Figure out number of color buffers to use\n var numColors = 1\n if('color' in options) {\n numColors = Math.max(options.color|0, 0)\n if(numColors < 0) {\n throw new Error('gl-fbo: Must specify a nonnegative number of colors')\n }\n if(numColors > 1) {\n //Check if multiple render targets supported\n if(!WEBGL_draw_buffers) {\n throw new Error('gl-fbo: Multiple draw buffer extension not supported')\n } else if(numColors > gl.getParameter(WEBGL_draw_buffers.MAX_COLOR_ATTACHMENTS_WEBGL)) {\n throw new Error('gl-fbo: Context does not support ' + numColors + ' draw buffers')\n }\n }\n }\n\n //Determine whether to use floating point textures\n var colorType = gl.UNSIGNED_BYTE\n var OES_texture_float = gl.getExtension('OES_texture_float')\n if(options.float && numColors > 0) {\n if(!OES_texture_float) {\n throw new Error('gl-fbo: Context does not support floating point textures')\n }\n colorType = gl.FLOAT\n } else if(options.preferFloat && numColors > 0) {\n if(OES_texture_float) {\n colorType = gl.FLOAT\n }\n }\n\n //Check if we should use depth buffer\n var useDepth = true\n if('depth' in options) {\n useDepth = !!options.depth\n }\n\n //Check if we should use a stencil buffer\n var useStencil = false\n if('stencil' in options) {\n useStencil = !!options.stencil\n }\n\n return new Framebuffer(\n gl,\n width,\n height,\n colorType,\n numColors,\n useDepth,\n useStencil,\n WEBGL_draw_buffers)\n}\n\n\n/***/ }),\n\n/***/ \"44d4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"ea27\");\n\n\n/***/ }),\n\n/***/ \"44fe\":\n/***/ (function(module, exports) {\n\nmodule.exports = rotateY;\n\n/**\n * Rotates a matrix by the given angle around the Y axis\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\nfunction rotateY(out, a, rad) {\n var s = Math.sin(rad),\n c = Math.cos(rad),\n a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3],\n a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n\n if (a !== out) { // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n\n // Perform axis-specific matrix multiplication\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n};\n\n/***/ }),\n\n/***/ \"45a2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar colorAttrs = __webpack_require__(\"dfb3\");\nvar domainAttrs = __webpack_require__(\"81f0\").attributes;\nvar axesAttrs = __webpack_require__(\"d798\");\n\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nvar ternaryAxesAttrs = {\n title: {\n text: axesAttrs.title.text,\n font: axesAttrs.title.font\n // TODO does standoff here make sense?\n },\n color: axesAttrs.color,\n // ticks\n tickmode: axesAttrs.tickmode,\n nticks: extendFlat({}, axesAttrs.nticks, {dflt: 6, min: 1}),\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: axesAttrs.ticks,\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n showticklabels: axesAttrs.showticklabels,\n showtickprefix: axesAttrs.showtickprefix,\n tickprefix: axesAttrs.tickprefix,\n showticksuffix: axesAttrs.showticksuffix,\n ticksuffix: axesAttrs.ticksuffix,\n showexponent: axesAttrs.showexponent,\n exponentformat: axesAttrs.exponentformat,\n separatethousands: axesAttrs.separatethousands,\n tickfont: axesAttrs.tickfont,\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n hoverformat: axesAttrs.hoverformat,\n // lines and grids\n showline: extendFlat({}, axesAttrs.showline, {dflt: true}),\n linecolor: axesAttrs.linecolor,\n linewidth: axesAttrs.linewidth,\n showgrid: extendFlat({}, axesAttrs.showgrid, {dflt: true}),\n gridcolor: axesAttrs.gridcolor,\n gridwidth: axesAttrs.gridwidth,\n layer: axesAttrs.layer,\n // range\n min: {\n valType: 'number',\n dflt: 0,\n \n min: 0,\n \n },\n _deprecated: {\n title: axesAttrs._deprecated.title,\n titlefont: axesAttrs._deprecated.titlefont\n }\n};\n\nvar attrs = module.exports = overrideAll({\n domain: domainAttrs({name: 'ternary'}),\n\n bgcolor: {\n valType: 'color',\n \n dflt: colorAttrs.background,\n \n },\n sum: {\n valType: 'number',\n \n dflt: 1,\n min: 0,\n \n },\n aaxis: ternaryAxesAttrs,\n baxis: ternaryAxesAttrs,\n caxis: ternaryAxesAttrs\n}, 'plot', 'from-root');\n\n// set uirevisions outside of `overrideAll` so we can get `editType: none`\nattrs.uirevision = {\n valType: 'any',\n \n editType: 'none',\n \n};\n\nattrs.aaxis.uirevision = attrs.baxis.uirevision = attrs.caxis.uirevision = {\n valType: 'any',\n \n editType: 'none',\n \n};\n\n\n/***/ }),\n\n/***/ \"45be\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar colorAttrs = __webpack_require__(\"dfb3\");\nvar domainAttrs = __webpack_require__(\"81f0\").attributes;\nvar constants = __webpack_require__(\"0804\");\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar geoAxesAttrs = {\n range: {\n valType: 'info_array',\n \n items: [\n {valType: 'number'},\n {valType: 'number'}\n ],\n \n },\n showgrid: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n tick0: {\n valType: 'number',\n \n dflt: 0,\n \n },\n dtick: {\n valType: 'number',\n \n \n },\n gridcolor: {\n valType: 'color',\n \n dflt: colorAttrs.lightLine,\n \n },\n gridwidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n }\n};\n\nvar attrs = module.exports = overrideAll({\n domain: domainAttrs({name: 'geo'}, {\n \n }),\n\n fitbounds: {\n valType: 'enumerated',\n values: [false, 'locations', 'geojson'],\n dflt: false,\n \n editType: 'plot',\n \n },\n\n resolution: {\n valType: 'enumerated',\n values: [110, 50],\n \n dflt: 110,\n coerceNumber: true,\n \n },\n scope: {\n valType: 'enumerated',\n \n values: Object.keys(constants.scopeDefaults),\n dflt: 'world',\n \n },\n projection: {\n type: {\n valType: 'enumerated',\n \n values: Object.keys(constants.projNames),\n \n },\n rotation: {\n lon: {\n valType: 'number',\n \n \n },\n lat: {\n valType: 'number',\n \n \n },\n roll: {\n valType: 'number',\n \n \n }\n },\n parallels: {\n valType: 'info_array',\n \n items: [\n {valType: 'number'},\n {valType: 'number'}\n ],\n \n },\n scale: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n },\n center: {\n lon: {\n valType: 'number',\n \n \n },\n lat: {\n valType: 'number',\n \n \n }\n },\n visible: {\n valType: 'boolean',\n \n dflt: true,\n \n },\n showcoastlines: {\n valType: 'boolean',\n \n \n },\n coastlinecolor: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n \n },\n coastlinewidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n showland: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n landcolor: {\n valType: 'color',\n \n dflt: constants.landColor,\n \n },\n showocean: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n oceancolor: {\n valType: 'color',\n \n dflt: constants.waterColor,\n \n },\n showlakes: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n lakecolor: {\n valType: 'color',\n \n dflt: constants.waterColor,\n \n },\n showrivers: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n rivercolor: {\n valType: 'color',\n \n dflt: constants.waterColor,\n \n },\n riverwidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n showcountries: {\n valType: 'boolean',\n \n \n },\n countrycolor: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n \n },\n countrywidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n showsubunits: {\n valType: 'boolean',\n \n \n },\n subunitcolor: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n \n },\n subunitwidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n showframe: {\n valType: 'boolean',\n \n \n },\n framecolor: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n \n },\n framewidth: {\n valType: 'number',\n \n min: 0,\n dflt: 1,\n \n },\n bgcolor: {\n valType: 'color',\n \n dflt: colorAttrs.background,\n \n },\n lonaxis: geoAxesAttrs,\n lataxis: geoAxesAttrs\n}, 'plot', 'from-root');\n\n// set uirevision outside of overrideAll so it can be `editType: 'none'`\nattrs.uirevision = {\n valType: 'any',\n \n editType: 'none',\n \n};\n\n\n/***/ }),\n\n/***/ \"4633\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*!\n * repeat-string \n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n\n\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n }\n\n // cover common, quick use cases\n if (num === 1) return str;\n if (num === 2) return str + str;\n\n var max = str.length * num;\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}\n\n\n/***/ }),\n\n/***/ \"464d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\n\nmodule.exports = function style(gd) {\n d3.select(gd).selectAll('.im image')\n .style('opacity', function(d) {\n return d.trace.opacity;\n });\n};\n\n\n/***/ }),\n\n/***/ \"4665\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar callable = __webpack_require__(\"1a94\")\n , forEach = __webpack_require__(\"6858\")\n , call = Function.prototype.call;\n\nmodule.exports = function (obj, cb/*, thisArg*/) {\n\tvar result = {}, thisArg = arguments[2];\n\tcallable(cb);\n\tforEach(obj, function (value, key, targetObj, index) {\n\t\tresult[key] = call.call(cb, thisArg, value, key, targetObj, index);\n\t});\n\treturn result;\n};\n\n\n/***/ }),\n\n/***/ \"469b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\n/*\n * Create or update an observer. This function is designed to be\n * idempotent so that it can be called over and over as the component\n * updates, and will attach and detach listeners as needed.\n *\n * @param {optional object} container\n * An object on which the observer is stored. This is the mechanism\n * by which it is idempotent. If it already exists, another won't be\n * added. Each time it's called, the value lookup table is updated.\n * @param {array} commandList\n * An array of commands, following either `buttons` of `updatemenus`\n * or `steps` of `sliders`.\n * @param {function} onchange\n * A listener called when the value is changed. Receives data object\n * with information about the new state.\n */\nexports.manageCommandObserver = function(gd, container, commandList, onchange) {\n var ret = {};\n var enabled = true;\n\n if(container && container._commandObserver) {\n ret = container._commandObserver;\n }\n\n if(!ret.cache) {\n ret.cache = {};\n }\n\n // Either create or just recompute this:\n ret.lookupTable = {};\n\n var binding = exports.hasSimpleAPICommandBindings(gd, commandList, ret.lookupTable);\n\n if(container && container._commandObserver) {\n if(!binding) {\n // If container exists and there are no longer any bindings,\n // remove existing:\n if(container._commandObserver.remove) {\n container._commandObserver.remove();\n container._commandObserver = null;\n return ret;\n }\n } else {\n // If container exists and there *are* bindings, then the lookup\n // table should have been updated and check is already attached,\n // so there's nothing to be done:\n return ret;\n }\n }\n\n // Determine whether there's anything to do for this binding:\n\n if(binding) {\n // Build the cache:\n bindingValueHasChanged(gd, binding, ret.cache);\n\n ret.check = function check() {\n if(!enabled) return;\n\n var update = bindingValueHasChanged(gd, binding, ret.cache);\n\n if(update.changed && onchange) {\n // Disable checks for the duration of this command in order to avoid\n // infinite loops:\n if(ret.lookupTable[update.value] !== undefined) {\n ret.disable();\n Promise.resolve(onchange({\n value: update.value,\n type: binding.type,\n prop: binding.prop,\n traces: binding.traces,\n index: ret.lookupTable[update.value]\n })).then(ret.enable, ret.enable);\n }\n }\n\n return update.changed;\n };\n\n var checkEvents = [\n 'plotly_relayout',\n 'plotly_redraw',\n 'plotly_restyle',\n 'plotly_update',\n 'plotly_animatingframe',\n 'plotly_afterplot'\n ];\n\n for(var i = 0; i < checkEvents.length; i++) {\n gd._internalOn(checkEvents[i], ret.check);\n }\n\n ret.remove = function() {\n for(var i = 0; i < checkEvents.length; i++) {\n gd._removeInternalListener(checkEvents[i], ret.check);\n }\n };\n } else {\n // TODO: It'd be really neat to actually give a *reason* for this, but at least a warning\n // is a start\n Lib.log('Unable to automatically bind plot updates to API command');\n\n ret.lookupTable = {};\n ret.remove = function() {};\n }\n\n ret.disable = function disable() {\n enabled = false;\n };\n\n ret.enable = function enable() {\n enabled = true;\n };\n\n if(container) {\n container._commandObserver = ret;\n }\n\n return ret;\n};\n\n/*\n * This function checks to see if an array of objects containing\n * method and args properties is compatible with automatic two-way\n * binding. The criteria right now are that\n *\n * 1. multiple traces may be affected\n * 2. only one property may be affected\n * 3. the same property must be affected by all commands\n */\nexports.hasSimpleAPICommandBindings = function(gd, commandList, bindingsByValue) {\n var i;\n var n = commandList.length;\n\n var refBinding;\n\n for(i = 0; i < n; i++) {\n var binding;\n var command = commandList[i];\n var method = command.method;\n var args = command.args;\n\n if(!Array.isArray(args)) args = [];\n\n // If any command has no method, refuse to bind:\n if(!method) {\n return false;\n }\n var bindings = exports.computeAPICommandBindings(gd, method, args);\n\n // Right now, handle one and *only* one property being set:\n if(bindings.length !== 1) {\n return false;\n }\n\n if(!refBinding) {\n refBinding = bindings[0];\n if(Array.isArray(refBinding.traces)) {\n refBinding.traces.sort();\n }\n } else {\n binding = bindings[0];\n if(binding.type !== refBinding.type) {\n return false;\n }\n if(binding.prop !== refBinding.prop) {\n return false;\n }\n if(Array.isArray(refBinding.traces)) {\n if(Array.isArray(binding.traces)) {\n binding.traces.sort();\n for(var j = 0; j < refBinding.traces.length; j++) {\n if(refBinding.traces[j] !== binding.traces[j]) {\n return false;\n }\n }\n } else {\n return false;\n }\n } else {\n if(binding.prop !== refBinding.prop) {\n return false;\n }\n }\n }\n\n binding = bindings[0];\n var value = binding.value;\n if(Array.isArray(value)) {\n if(value.length === 1) {\n value = value[0];\n } else {\n return false;\n }\n }\n if(bindingsByValue) {\n bindingsByValue[value] = i;\n }\n }\n\n return refBinding;\n};\n\nfunction bindingValueHasChanged(gd, binding, cache) {\n var container, value, obj;\n var changed = false;\n\n if(binding.type === 'data') {\n // If it's data, we need to get a trace. Based on the limited scope\n // of what we cover, we can just take the first trace from the list,\n // or otherwise just the first trace:\n container = gd._fullData[binding.traces !== null ? binding.traces[0] : 0];\n } else if(binding.type === 'layout') {\n container = gd._fullLayout;\n } else {\n return false;\n }\n\n value = Lib.nestedProperty(container, binding.prop).get();\n\n obj = cache[binding.type] = cache[binding.type] || {};\n\n if(obj.hasOwnProperty(binding.prop)) {\n if(obj[binding.prop] !== value) {\n changed = true;\n }\n }\n\n obj[binding.prop] = value;\n\n return {\n changed: changed,\n value: value\n };\n}\n\n/*\n * Execute an API command. There's really not much to this; it just provides\n * a common hook so that implementations don't need to be synchronized across\n * multiple components with the ability to invoke API commands.\n *\n * @param {string} method\n * The name of the plotly command to execute. Must be one of 'animate',\n * 'restyle', 'relayout', 'update'.\n * @param {array} args\n * A list of arguments passed to the API command\n */\nexports.executeAPICommand = function(gd, method, args) {\n if(method === 'skip') return Promise.resolve();\n\n var _method = Registry.apiMethodRegistry[method];\n var allArgs = [gd];\n if(!Array.isArray(args)) args = [];\n\n for(var i = 0; i < args.length; i++) {\n allArgs.push(args[i]);\n }\n\n return _method.apply(null, allArgs).catch(function(err) {\n Lib.warn('API call to Plotly.' + method + ' rejected.', err);\n return Promise.reject(err);\n });\n};\n\nexports.computeAPICommandBindings = function(gd, method, args) {\n var bindings;\n\n if(!Array.isArray(args)) args = [];\n\n switch(method) {\n case 'restyle':\n bindings = computeDataBindings(gd, args);\n break;\n case 'relayout':\n bindings = computeLayoutBindings(gd, args);\n break;\n case 'update':\n bindings = computeDataBindings(gd, [args[0], args[2]])\n .concat(computeLayoutBindings(gd, [args[1]]));\n break;\n case 'animate':\n bindings = computeAnimateBindings(gd, args);\n break;\n default:\n // This is the case where intelligent logic about what affects\n // this command is not implemented. It causes no ill effects.\n // For example, addFrames simply won't bind to a control component.\n bindings = [];\n }\n return bindings;\n};\n\nfunction computeAnimateBindings(gd, args) {\n // We'll assume that the only relevant modification an animation\n // makes that's meaningfully tracked is the frame:\n if(Array.isArray(args[0]) && args[0].length === 1 && ['string', 'number'].indexOf(typeof args[0][0]) !== -1) {\n return [{type: 'layout', prop: '_currentFrame', value: args[0][0].toString()}];\n } else {\n return [];\n }\n}\n\nfunction computeLayoutBindings(gd, args) {\n var bindings = [];\n\n var astr = args[0];\n var aobj = {};\n if(typeof astr === 'string') {\n aobj[astr] = args[1];\n } else if(Lib.isPlainObject(astr)) {\n aobj = astr;\n } else {\n return bindings;\n }\n\n crawl(aobj, function(path, attrName, attr) {\n bindings.push({type: 'layout', prop: path, value: attr});\n }, '', 0);\n\n return bindings;\n}\n\nfunction computeDataBindings(gd, args) {\n var traces, astr, val, aobj;\n var bindings = [];\n\n // Logic copied from Plotly.restyle:\n astr = args[0];\n val = args[1];\n traces = args[2];\n aobj = {};\n if(typeof astr === 'string') {\n aobj[astr] = val;\n } else if(Lib.isPlainObject(astr)) {\n // the 3-arg form\n aobj = astr;\n\n if(traces === undefined) {\n traces = val;\n }\n } else {\n return bindings;\n }\n\n if(traces === undefined) {\n // Explicitly assign this to null instead of undefined:\n traces = null;\n }\n\n crawl(aobj, function(path, attrName, _attr) {\n var thisTraces;\n var attr;\n\n if(Array.isArray(_attr)) {\n attr = _attr.slice();\n\n var nAttr = Math.min(attr.length, gd.data.length);\n if(traces) {\n nAttr = Math.min(nAttr, traces.length);\n }\n thisTraces = [];\n for(var j = 0; j < nAttr; j++) {\n thisTraces[j] = traces ? traces[j] : j;\n }\n } else {\n attr = _attr;\n thisTraces = traces ? traces.slice() : null;\n }\n\n // Convert [7] to just 7 when traces is null:\n if(thisTraces === null) {\n if(Array.isArray(attr)) {\n attr = attr[0];\n }\n } else if(Array.isArray(thisTraces)) {\n if(!Array.isArray(attr)) {\n var tmp = attr;\n attr = [];\n for(var i = 0; i < thisTraces.length; i++) {\n attr[i] = tmp;\n }\n }\n attr.length = Math.min(thisTraces.length, attr.length);\n }\n\n bindings.push({\n type: 'data',\n prop: path,\n traces: thisTraces,\n value: attr\n });\n }, '', 0);\n\n return bindings;\n}\n\nfunction crawl(attrs, callback, path, depth) {\n Object.keys(attrs).forEach(function(attrName) {\n var attr = attrs[attrName];\n\n if(attrName[0] === '_') return;\n\n var thisPath = path + (depth > 0 ? '.' : '') + attrName;\n\n if(Lib.isPlainObject(attr)) {\n crawl(attr, callback, thisPath, depth + 1);\n } else {\n // Only execute the callback on leaf nodes:\n callback(thisPath, attrName, attr);\n }\n });\n}\n\n\n/***/ }),\n\n/***/ \"46bc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar inCircle = __webpack_require__(\"0b1d\")[4]\nvar bsearch = __webpack_require__(\"cc77\")\n\nmodule.exports = delaunayRefine\n\nfunction testFlip(points, triangulation, stack, a, b, x) {\n var y = triangulation.opposite(a, b)\n\n //Test boundary edge\n if(y < 0) {\n return\n }\n\n //Swap edge if order flipped\n if(b < a) {\n var tmp = a\n a = b\n b = tmp\n tmp = x\n x = y\n y = tmp\n }\n\n //Test if edge is constrained\n if(triangulation.isConstraint(a, b)) {\n return\n }\n\n //Test if edge is delaunay\n if(inCircle(points[a], points[b], points[x], points[y]) < 0) {\n stack.push(a, b)\n }\n}\n\n//Assume edges are sorted lexicographically\nfunction delaunayRefine(points, triangulation) {\n var stack = []\n\n var numPoints = points.length\n var stars = triangulation.stars\n for(var a=0; a 0) {\n var b = stack.pop()\n var a = stack.pop()\n\n //Find opposite pairs\n var x = -1, y = -1\n var star = stars[a]\n for(var i=1; i= 0) {\n continue\n }\n\n //Flip the edge\n triangulation.flip(a, b)\n\n //Test flipping neighboring edges\n testFlip(points, triangulation, stack, x, a, y)\n testFlip(points, triangulation, stack, a, y, x)\n testFlip(points, triangulation, stack, y, b, x)\n testFlip(points, triangulation, stack, b, x, y)\n }\n}\n\n\n/***/ }),\n\n/***/ \"46c1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"60c5\");\n\n\n/***/ }),\n\n/***/ \"4746\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"48bb\");\n\n\n/***/ }),\n\n/***/ \"47cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nmodule.exports = function orientText(trace, xaxis, yaxis, xy, dxy, refDxy) {\n var dx = dxy[0] * trace.dpdx(xaxis);\n var dy = dxy[1] * trace.dpdy(yaxis);\n var flip = 1;\n\n var offsetMultiplier = 1.0;\n if(refDxy) {\n var l1 = Math.sqrt(dxy[0] * dxy[0] + dxy[1] * dxy[1]);\n var l2 = Math.sqrt(refDxy[0] * refDxy[0] + refDxy[1] * refDxy[1]);\n var dot = (dxy[0] * refDxy[0] + dxy[1] * refDxy[1]) / l1 / l2;\n offsetMultiplier = Math.max(0.0, dot);\n }\n\n var angle = Math.atan2(dy, dx) * 180 / Math.PI;\n if(angle < -90) {\n angle += 180;\n flip = -flip;\n } else if(angle > 90) {\n angle -= 180;\n flip = -flip;\n }\n\n return {\n angle: angle,\n flip: flip,\n p: trace.c2p(xy, xaxis, yaxis),\n offsetMultplier: offsetMultiplier\n };\n};\n\n\n/***/ }),\n\n/***/ \"4852\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar tinycolor = __webpack_require__(\"66cb\");\n\nvar scales = {\n 'Greys': [\n [0, 'rgb(0,0,0)'], [1, 'rgb(255,255,255)']\n ],\n\n 'YlGnBu': [\n [0, 'rgb(8,29,88)'], [0.125, 'rgb(37,52,148)'],\n [0.25, 'rgb(34,94,168)'], [0.375, 'rgb(29,145,192)'],\n [0.5, 'rgb(65,182,196)'], [0.625, 'rgb(127,205,187)'],\n [0.75, 'rgb(199,233,180)'], [0.875, 'rgb(237,248,217)'],\n [1, 'rgb(255,255,217)']\n ],\n\n 'Greens': [\n [0, 'rgb(0,68,27)'], [0.125, 'rgb(0,109,44)'],\n [0.25, 'rgb(35,139,69)'], [0.375, 'rgb(65,171,93)'],\n [0.5, 'rgb(116,196,118)'], [0.625, 'rgb(161,217,155)'],\n [0.75, 'rgb(199,233,192)'], [0.875, 'rgb(229,245,224)'],\n [1, 'rgb(247,252,245)']\n ],\n\n 'YlOrRd': [\n [0, 'rgb(128,0,38)'], [0.125, 'rgb(189,0,38)'],\n [0.25, 'rgb(227,26,28)'], [0.375, 'rgb(252,78,42)'],\n [0.5, 'rgb(253,141,60)'], [0.625, 'rgb(254,178,76)'],\n [0.75, 'rgb(254,217,118)'], [0.875, 'rgb(255,237,160)'],\n [1, 'rgb(255,255,204)']\n ],\n\n 'Bluered': [\n [0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']\n ],\n\n // modified RdBu based on\n // http://www.kennethmoreland.com/color-maps/\n 'RdBu': [\n [0, 'rgb(5,10,172)'], [0.35, 'rgb(106,137,247)'],\n [0.5, 'rgb(190,190,190)'], [0.6, 'rgb(220,170,132)'],\n [0.7, 'rgb(230,145,90)'], [1, 'rgb(178,10,28)']\n ],\n\n // Scale for non-negative numeric values\n 'Reds': [\n [0, 'rgb(220,220,220)'], [0.2, 'rgb(245,195,157)'],\n [0.4, 'rgb(245,160,105)'], [1, 'rgb(178,10,28)']\n ],\n\n // Scale for non-positive numeric values\n 'Blues': [\n [0, 'rgb(5,10,172)'], [0.35, 'rgb(40,60,190)'],\n [0.5, 'rgb(70,100,245)'], [0.6, 'rgb(90,120,245)'],\n [0.7, 'rgb(106,137,247)'], [1, 'rgb(220,220,220)']\n ],\n\n 'Picnic': [\n [0, 'rgb(0,0,255)'], [0.1, 'rgb(51,153,255)'],\n [0.2, 'rgb(102,204,255)'], [0.3, 'rgb(153,204,255)'],\n [0.4, 'rgb(204,204,255)'], [0.5, 'rgb(255,255,255)'],\n [0.6, 'rgb(255,204,255)'], [0.7, 'rgb(255,153,255)'],\n [0.8, 'rgb(255,102,204)'], [0.9, 'rgb(255,102,102)'],\n [1, 'rgb(255,0,0)']\n ],\n\n 'Rainbow': [\n [0, 'rgb(150,0,90)'], [0.125, 'rgb(0,0,200)'],\n [0.25, 'rgb(0,25,255)'], [0.375, 'rgb(0,152,255)'],\n [0.5, 'rgb(44,255,150)'], [0.625, 'rgb(151,255,0)'],\n [0.75, 'rgb(255,234,0)'], [0.875, 'rgb(255,111,0)'],\n [1, 'rgb(255,0,0)']\n ],\n\n 'Portland': [\n [0, 'rgb(12,51,131)'], [0.25, 'rgb(10,136,186)'],\n [0.5, 'rgb(242,211,56)'], [0.75, 'rgb(242,143,56)'],\n [1, 'rgb(217,30,30)']\n ],\n\n 'Jet': [\n [0, 'rgb(0,0,131)'], [0.125, 'rgb(0,60,170)'],\n [0.375, 'rgb(5,255,255)'], [0.625, 'rgb(255,255,0)'],\n [0.875, 'rgb(250,0,0)'], [1, 'rgb(128,0,0)']\n ],\n\n 'Hot': [\n [0, 'rgb(0,0,0)'], [0.3, 'rgb(230,0,0)'],\n [0.6, 'rgb(255,210,0)'], [1, 'rgb(255,255,255)']\n ],\n\n 'Blackbody': [\n [0, 'rgb(0,0,0)'], [0.2, 'rgb(230,0,0)'],\n [0.4, 'rgb(230,210,0)'], [0.7, 'rgb(255,255,255)'],\n [1, 'rgb(160,200,255)']\n ],\n\n 'Earth': [\n [0, 'rgb(0,0,130)'], [0.1, 'rgb(0,180,180)'],\n [0.2, 'rgb(40,210,40)'], [0.4, 'rgb(230,230,50)'],\n [0.6, 'rgb(120,70,20)'], [1, 'rgb(255,255,255)']\n ],\n\n 'Electric': [\n [0, 'rgb(0,0,0)'], [0.15, 'rgb(30,0,100)'],\n [0.4, 'rgb(120,0,100)'], [0.6, 'rgb(160,90,0)'],\n [0.8, 'rgb(230,200,0)'], [1, 'rgb(255,250,220)']\n ],\n\n 'Viridis': [\n [0, '#440154'], [0.06274509803921569, '#48186a'],\n [0.12549019607843137, '#472d7b'], [0.18823529411764706, '#424086'],\n [0.25098039215686274, '#3b528b'], [0.3137254901960784, '#33638d'],\n [0.3764705882352941, '#2c728e'], [0.4392156862745098, '#26828e'],\n [0.5019607843137255, '#21918c'], [0.5647058823529412, '#1fa088'],\n [0.6274509803921569, '#28ae80'], [0.6901960784313725, '#3fbc73'],\n [0.7529411764705882, '#5ec962'], [0.8156862745098039, '#84d44b'],\n [0.8784313725490196, '#addc30'], [0.9411764705882353, '#d8e219'],\n [1, '#fde725']\n ],\n\n 'Cividis': [\n [0.000000, 'rgb(0,32,76)'], [0.058824, 'rgb(0,42,102)'],\n [0.117647, 'rgb(0,52,110)'], [0.176471, 'rgb(39,63,108)'],\n [0.235294, 'rgb(60,74,107)'], [0.294118, 'rgb(76,85,107)'],\n [0.352941, 'rgb(91,95,109)'], [0.411765, 'rgb(104,106,112)'],\n [0.470588, 'rgb(117,117,117)'], [0.529412, 'rgb(131,129,120)'],\n [0.588235, 'rgb(146,140,120)'], [0.647059, 'rgb(161,152,118)'],\n [0.705882, 'rgb(176,165,114)'], [0.764706, 'rgb(192,177,109)'],\n [0.823529, 'rgb(209,191,102)'], [0.882353, 'rgb(225,204,92)'],\n [0.941176, 'rgb(243,219,79)'], [1.000000, 'rgb(255,233,69)']\n ]\n};\n\nvar defaultScale = scales.RdBu;\n\nfunction getScale(scl, dflt) {\n if(!dflt) dflt = defaultScale;\n if(!scl) return dflt;\n\n function parseScale() {\n try {\n scl = scales[scl] || JSON.parse(scl);\n } catch(e) {\n scl = dflt;\n }\n }\n\n if(typeof scl === 'string') {\n parseScale();\n // occasionally scl is double-JSON encoded...\n if(typeof scl === 'string') parseScale();\n }\n\n if(!isValidScaleArray(scl)) return dflt;\n return scl;\n}\n\n\nfunction isValidScaleArray(scl) {\n var highestVal = 0;\n\n if(!Array.isArray(scl) || scl.length < 2) return false;\n\n if(!scl[0] || !scl[scl.length - 1]) return false;\n\n if(+scl[0][0] !== 0 || +scl[scl.length - 1][0] !== 1) return false;\n\n for(var i = 0; i < scl.length; i++) {\n var si = scl[i];\n\n if(si.length !== 2 || +si[0] < highestVal || !tinycolor(si[1]).isValid()) {\n return false;\n }\n\n highestVal = +si[0];\n }\n\n return true;\n}\n\nfunction isValidScale(scl) {\n if(scales[scl] !== undefined) return true;\n else return isValidScaleArray(scl);\n}\n\nmodule.exports = {\n scales: scales,\n defaultScale: defaultScale,\n\n get: getScale,\n isValid: isValidScale\n};\n\n\n/***/ }),\n\n/***/ \"487e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createLines\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createVAO = __webpack_require__(\"b205\")\nvar createShader = __webpack_require__(\"c185\").line\n\nvar MAJOR_AXIS = [0,0,0]\nvar MINOR_AXIS = [0,0,0]\nvar SCREEN_AXIS = [0,0,0]\nvar OFFSET_VEC = [0,0,0]\nvar SHAPE = [1,1]\n\nfunction zeroVec(a) {\n a[0] = a[1] = a[2] = 0\n return a\n}\n\nfunction copyVec(a,b) {\n a[0] = b[0]\n a[1] = b[1]\n a[2] = b[2]\n return a\n}\n\nfunction Lines(gl, vertBuffer, vao, shader, tickCount, tickOffset, gridCount, gridOffset) {\n this.gl = gl\n this.vertBuffer = vertBuffer\n this.vao = vao\n this.shader = shader\n this.tickCount = tickCount\n this.tickOffset = tickOffset\n this.gridCount = gridCount\n this.gridOffset = gridOffset\n}\n\nvar proto = Lines.prototype\n\nproto.bind = function(model, view, projection) {\n this.shader.bind()\n this.shader.uniforms.model = model\n this.shader.uniforms.view = view\n this.shader.uniforms.projection = projection\n\n SHAPE[0] = this.gl.drawingBufferWidth\n SHAPE[1] = this.gl.drawingBufferHeight\n\n this.shader.uniforms.screenShape = SHAPE\n this.vao.bind()\n}\n\nproto.unbind = function() {\n this.vao.unbind()\n}\n\nproto.drawAxisLine = function(j, bounds, offset, color, lineWidth) {\n var minorAxis = zeroVec(MINOR_AXIS)\n this.shader.uniforms.majorAxis = MINOR_AXIS\n\n minorAxis[j] = bounds[1][j] - bounds[0][j]\n this.shader.uniforms.minorAxis = minorAxis\n\n var noffset = copyVec(OFFSET_VEC, offset)\n noffset[j] += bounds[0][j]\n this.shader.uniforms.offset = noffset\n\n this.shader.uniforms.lineWidth = lineWidth\n\n this.shader.uniforms.color = color\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[(j+2)%3] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.vao.draw(this.gl.TRIANGLES, 6)\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[(j+1)%3] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.vao.draw(this.gl.TRIANGLES, 6)\n}\n\nproto.drawAxisTicks = function(j, offset, minorAxis, color, lineWidth) {\n if(!this.tickCount[j]) {\n return\n }\n\n var majorAxis = zeroVec(MAJOR_AXIS)\n majorAxis[j] = 1\n this.shader.uniforms.majorAxis = majorAxis\n this.shader.uniforms.offset = offset\n this.shader.uniforms.minorAxis = minorAxis\n this.shader.uniforms.color = color\n this.shader.uniforms.lineWidth = lineWidth\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[j] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.vao.draw(this.gl.TRIANGLES, this.tickCount[j], this.tickOffset[j])\n}\n\n\nproto.drawGrid = function(i, j, bounds, offset, color, lineWidth) {\n if(!this.gridCount[i]) {\n return\n }\n\n var minorAxis = zeroVec(MINOR_AXIS)\n minorAxis[j] = bounds[1][j] - bounds[0][j]\n this.shader.uniforms.minorAxis = minorAxis\n\n var noffset = copyVec(OFFSET_VEC, offset)\n noffset[j] += bounds[0][j]\n this.shader.uniforms.offset = noffset\n\n var majorAxis = zeroVec(MAJOR_AXIS)\n majorAxis[i] = 1\n this.shader.uniforms.majorAxis = majorAxis\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[i] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.shader.uniforms.lineWidth = lineWidth\n\n this.shader.uniforms.color = color\n this.vao.draw(this.gl.TRIANGLES, this.gridCount[i], this.gridOffset[i])\n}\n\nproto.drawZero = function(j, i, bounds, offset, color, lineWidth) {\n var minorAxis = zeroVec(MINOR_AXIS)\n this.shader.uniforms.majorAxis = minorAxis\n\n minorAxis[j] = bounds[1][j] - bounds[0][j]\n this.shader.uniforms.minorAxis = minorAxis\n\n var noffset = copyVec(OFFSET_VEC, offset)\n noffset[j] += bounds[0][j]\n this.shader.uniforms.offset = noffset\n\n var screenAxis = zeroVec(SCREEN_AXIS)\n screenAxis[i] = 1\n this.shader.uniforms.screenAxis = screenAxis\n this.shader.uniforms.lineWidth = lineWidth\n\n this.shader.uniforms.color = color\n this.vao.draw(this.gl.TRIANGLES, 6)\n}\n\nproto.dispose = function() {\n this.vao.dispose()\n this.vertBuffer.dispose()\n this.shader.dispose()\n}\n\nfunction createLines(gl, bounds, ticks) {\n var vertices = []\n var tickOffset = [0,0,0]\n var tickCount = [0,0,0]\n\n //Create grid lines for each axis/direction\n var gridOffset = [0,0,0]\n var gridCount = [0,0,0]\n\n //Add zero line\n vertices.push(\n 0,0,1, 0,1,1, 0,0,-1,\n 0,0,-1, 0,1,1, 0,1,-1)\n\n for(var i=0; i<3; ++i) {\n //Axis tick marks\n var start = ((vertices.length / 3)|0)\n for(var j=0; j\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT license.\n */\n\n\n\nvar repeat = __webpack_require__(\"4633\");\n\nmodule.exports = function padLeft(str, num, ch) {\n ch = typeof ch !== 'undefined' ? (ch + '') : ' ';\n return repeat(ch, num) + str;\n};\n\n/***/ }),\n\n/***/ \"48f0\":\n/***/ (function(module, exports) {\n\nmodule.exports = invert\n\n/**\n * Inverts a mat2\n *\n * @alias mat2.invert\n * @param {mat2} out the receiving matrix\n * @param {mat2} a the source matrix\n * @returns {mat2} out\n */\nfunction invert(out, a) {\n var a0 = a[0]\n var a1 = a[1]\n var a2 = a[2]\n var a3 = a[3]\n var det = a0 * a3 - a2 * a1\n\n if (!det) return null\n det = 1.0 / det\n\n out[0] = a3 * det\n out[1] = -a1 * det\n out[2] = -a2 * det\n out[3] = a0 * det\n\n return out\n}\n\n\n/***/ }),\n\n/***/ \"492e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createSlabDecomposition\n\nvar bounds = __webpack_require__(\"2e46\")\nvar createRBTree = __webpack_require__(\"c8ac\")\nvar orient = __webpack_require__(\"92ba\")\nvar orderSegments = __webpack_require__(\"9cfb\")\n\nfunction SlabDecomposition(slabs, coordinates, horizontal) {\n this.slabs = slabs\n this.coordinates = coordinates\n this.horizontal = horizontal\n}\n\nvar proto = SlabDecomposition.prototype\n\nfunction compareHorizontal(e, y) {\n return e.y - y\n}\n\nfunction searchBucket(root, p) {\n var lastNode = null\n while(root) {\n var seg = root.key\n var l, r\n if(seg[0][0] < seg[1][0]) {\n l = seg[0]\n r = seg[1]\n } else {\n l = seg[1]\n r = seg[0]\n }\n var o = orient(l, r, p)\n if(o < 0) {\n root = root.left\n } else if(o > 0) {\n if(p[0] !== seg[1][0]) {\n lastNode = root\n root = root.right\n } else {\n var val = searchBucket(root.right, p)\n if(val) {\n return val\n }\n root = root.left\n }\n } else {\n if(p[0] !== seg[1][0]) {\n return root\n } else {\n var val = searchBucket(root.right, p)\n if(val) {\n return val\n }\n root = root.left\n }\n }\n }\n return lastNode\n}\n\nproto.castUp = function(p) {\n var bucket = bounds.le(this.coordinates, p[0])\n if(bucket < 0) {\n return -1\n }\n var root = this.slabs[bucket]\n var hitNode = searchBucket(this.slabs[bucket], p)\n var lastHit = -1\n if(hitNode) {\n lastHit = hitNode.value\n }\n //Edge case: need to handle horizontal segments (sucks)\n if(this.coordinates[bucket] === p[0]) {\n var lastSegment = null\n if(hitNode) {\n lastSegment = hitNode.key\n }\n if(bucket > 0) {\n var otherHitNode = searchBucket(this.slabs[bucket-1], p)\n if(otherHitNode) {\n if(lastSegment) {\n if(orderSegments(otherHitNode.key, lastSegment) > 0) {\n lastSegment = otherHitNode.key\n lastHit = otherHitNode.value\n }\n } else {\n lastHit = otherHitNode.value\n lastSegment = otherHitNode.key\n }\n }\n }\n var horiz = this.horizontal[bucket]\n if(horiz.length > 0) {\n var hbucket = bounds.ge(horiz, p[1], compareHorizontal)\n if(hbucket < horiz.length) {\n var e = horiz[hbucket]\n if(p[1] === e.y) {\n if(e.closed) {\n return e.index\n } else {\n while(hbucket < horiz.length-1 && horiz[hbucket+1].y === p[1]) {\n hbucket = hbucket+1\n e = horiz[hbucket]\n if(e.closed) {\n return e.index\n }\n }\n if(e.y === p[1] && !e.start) {\n hbucket = hbucket+1\n if(hbucket >= horiz.length) {\n return lastHit\n }\n e = horiz[hbucket]\n }\n }\n }\n //Check if e is above/below last segment\n if(e.start) {\n if(lastSegment) {\n var o = orient(lastSegment[0], lastSegment[1], [p[0], e.y])\n if(lastSegment[0][0] > lastSegment[1][0]) {\n o = -o\n }\n if(o > 0) {\n lastHit = e.index\n }\n } else {\n lastHit = e.index\n }\n } else if(e.y !== p[1]) {\n lastHit = e.index\n }\n }\n }\n }\n return lastHit\n}\n\nfunction IntervalSegment(y, index, start, closed) {\n this.y = y\n this.index = index\n this.start = start\n this.closed = closed\n}\n\nfunction Event(x, segment, create, index) {\n this.x = x\n this.segment = segment\n this.create = create\n this.index = index\n}\n\n\nfunction createSlabDecomposition(segments) {\n var numSegments = segments.length\n var numEvents = 2 * numSegments\n var events = new Array(numEvents)\n for(var i=0; i bounds[2]) bounds[2] = points[j + 0]\r\n if (points[j + 1] > bounds[3]) bounds[3] = points[j + 1]\r\n }\r\n }\r\n\r\n return bounds\r\n}\r\n\n\n/***/ }),\n\n/***/ \"4aa8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar layoutAttributes = __webpack_require__(\"3e8e\");\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce('treemapcolorway', layoutOut.colorway);\n coerce('extendtreemapcolors');\n};\n\n\n/***/ }),\n\n/***/ \"4ae2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = preprocessPolygon\n\nvar orient = __webpack_require__(\"92ba\")[3]\nvar makeSlabs = __webpack_require__(\"492e\")\nvar makeIntervalTree = __webpack_require__(\"4393\")\nvar bsearch = __webpack_require__(\"b707\")\n\nfunction visitInterval() {\n return true\n}\n\nfunction intervalSearch(table) {\n return function(x, y) {\n var tree = table[x]\n if(tree) {\n return !!tree.queryPoint(y, visitInterval)\n }\n return false\n }\n}\n\nfunction buildVerticalIndex(segments) {\n var table = {}\n for(var i=0; i 0 && coordinates[bucket] === p[0]) {\n root = slabs[bucket-1]\n } else {\n return 1\n }\n }\n var lastOrientation = 1\n while(root) {\n var s = root.key\n var o = orient(p, s[0], s[1])\n if(s[0][0] < s[1][0]) {\n if(o < 0) {\n root = root.left\n } else if(o > 0) {\n lastOrientation = -1\n root = root.right\n } else {\n return 0\n }\n } else {\n if(o > 0) {\n root = root.left\n } else if(o < 0) {\n lastOrientation = 1\n root = root.right\n } else {\n return 0\n }\n }\n }\n return lastOrientation\n }\n}\n\nfunction classifyEmpty(p) {\n return 1\n}\n\nfunction createClassifyVertical(testVertical) {\n return function classify(p) {\n if(testVertical(p[0], p[1])) {\n return 0\n }\n return 1\n }\n}\n\nfunction createClassifyPointDegen(testVertical, testNormal) {\n return function classify(p) {\n if(testVertical(p[0], p[1])) {\n return 0\n }\n return testNormal(p)\n }\n}\n\nfunction preprocessPolygon(loops) {\n //Compute number of loops\n var numLoops = loops.length\n\n //Unpack segments\n var segments = []\n var vsegments = []\n var ptr = 0\n for(var i=0; i 1 ? {\n type: \"MultiPolygon\",\n coordinates: polygons\n } : {\n type: \"Polygon\",\n coordinates: polygons[0]\n };\n }\n };\n var d3_geo_projectGeometryType = {\n Point: d3_geo_projectPoint,\n MultiPoint: d3_geo_projectPoint,\n LineString: d3_geo_projectLine,\n MultiLineString: d3_geo_projectLine,\n Polygon: d3_geo_projectPolygon,\n MultiPolygon: d3_geo_projectPolygon,\n Sphere: d3_geo_projectPolygon\n };\n function d3_geo_projectNoop() {}\n function d3_geo_projectClockwise(ring) {\n if ((n = ring.length) < 4) return false;\n var i = 0, n, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area <= 0;\n }\n function d3_geo_projectContains(ring, point) {\n var x = point[0], y = point[1], contains = false;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];\n if (yi > y ^ yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi) contains = !contains;\n }\n return contains;\n }\n var ε = 1e-6, ε2 = ε * ε, π = Math.PI, halfπ = π / 2, sqrtπ = Math.sqrt(π), radians = π / 180, degrees = 180 / π;\n function sinci(x) {\n return x ? x / Math.sin(x) : 1;\n }\n function sgn(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n }\n function asin(x) {\n return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);\n }\n function acos(x) {\n return x > 1 ? 0 : x < -1 ? π : Math.acos(x);\n }\n function asqrt(x) {\n return x > 0 ? Math.sqrt(x) : 0;\n }\n var projection = d3.geo.projection, projectionMutator = d3.geo.projectionMutator;\n d3.geo.interrupt = function(project) {\n var lobes = [ [ [ [ -π, 0 ], [ 0, halfπ ], [ π, 0 ] ] ], [ [ [ -π, 0 ], [ 0, -halfπ ], [ π, 0 ] ] ] ];\n var bounds;\n function forward(λ, φ) {\n var sign = φ < 0 ? -1 : +1, hemilobes = lobes[+(φ < 0)];\n for (var i = 0, n = hemilobes.length - 1; i < n && λ > hemilobes[i][2][0]; ++i) ;\n var coordinates = project(λ - hemilobes[i][1][0], φ);\n coordinates[0] += project(hemilobes[i][1][0], sign * φ > sign * hemilobes[i][0][1] ? hemilobes[i][0][1] : φ)[0];\n return coordinates;\n }\n function reset() {\n bounds = lobes.map(function(hemilobes) {\n return hemilobes.map(function(lobe) {\n var x0 = project(lobe[0][0], lobe[0][1])[0], x1 = project(lobe[2][0], lobe[2][1])[0], y0 = project(lobe[1][0], lobe[0][1])[1], y1 = project(lobe[1][0], lobe[1][1])[1], t;\n if (y0 > y1) t = y0, y0 = y1, y1 = t;\n return [ [ x0, y0 ], [ x1, y1 ] ];\n });\n });\n }\n if (project.invert) forward.invert = function(x, y) {\n var hemibounds = bounds[+(y < 0)], hemilobes = lobes[+(y < 0)];\n for (var i = 0, n = hemibounds.length; i < n; ++i) {\n var b = hemibounds[i];\n if (b[0][0] <= x && x < b[1][0] && b[0][1] <= y && y < b[1][1]) {\n var coordinates = project.invert(x - project(hemilobes[i][1][0], 0)[0], y);\n coordinates[0] += hemilobes[i][1][0];\n return pointEqual(forward(coordinates[0], coordinates[1]), [ x, y ]) ? coordinates : null;\n }\n }\n };\n var projection = d3.geo.projection(forward), stream_ = projection.stream;\n projection.stream = function(stream) {\n var rotate = projection.rotate(), rotateStream = stream_(stream), sphereStream = (projection.rotate([ 0, 0 ]),\n stream_(stream));\n projection.rotate(rotate);\n rotateStream.sphere = function() {\n d3.geo.stream(sphere(), sphereStream);\n };\n return rotateStream;\n };\n projection.lobes = function(_) {\n if (!arguments.length) return lobes.map(function(lobes) {\n return lobes.map(function(lobe) {\n return [ [ lobe[0][0] * 180 / π, lobe[0][1] * 180 / π ], [ lobe[1][0] * 180 / π, lobe[1][1] * 180 / π ], [ lobe[2][0] * 180 / π, lobe[2][1] * 180 / π ] ];\n });\n });\n lobes = _.map(function(lobes) {\n return lobes.map(function(lobe) {\n return [ [ lobe[0][0] * π / 180, lobe[0][1] * π / 180 ], [ lobe[1][0] * π / 180, lobe[1][1] * π / 180 ], [ lobe[2][0] * π / 180, lobe[2][1] * π / 180 ] ];\n });\n });\n reset();\n return projection;\n };\n function sphere() {\n var ε = 1e-6, coordinates = [];\n for (var i = 0, n = lobes[0].length; i < n; ++i) {\n var lobe = lobes[0][i], λ0 = lobe[0][0] * 180 / π, φ0 = lobe[0][1] * 180 / π, φ1 = lobe[1][1] * 180 / π, λ2 = lobe[2][0] * 180 / π, φ2 = lobe[2][1] * 180 / π;\n coordinates.push(resample([ [ λ0 + ε, φ0 + ε ], [ λ0 + ε, φ1 - ε ], [ λ2 - ε, φ1 - ε ], [ λ2 - ε, φ2 + ε ] ], 30));\n }\n for (var i = lobes[1].length - 1; i >= 0; --i) {\n var lobe = lobes[1][i], λ0 = lobe[0][0] * 180 / π, φ0 = lobe[0][1] * 180 / π, φ1 = lobe[1][1] * 180 / π, λ2 = lobe[2][0] * 180 / π, φ2 = lobe[2][1] * 180 / π;\n coordinates.push(resample([ [ λ2 - ε, φ2 - ε ], [ λ2 - ε, φ1 + ε ], [ λ0 + ε, φ1 + ε ], [ λ0 + ε, φ0 - ε ] ], 30));\n }\n return {\n type: \"Polygon\",\n coordinates: [ d3.merge(coordinates) ]\n };\n }\n function resample(coordinates, m) {\n var i = -1, n = coordinates.length, p0 = coordinates[0], p1, dx, dy, resampled = [];\n while (++i < n) {\n p1 = coordinates[i];\n dx = (p1[0] - p0[0]) / m;\n dy = (p1[1] - p0[1]) / m;\n for (var j = 0; j < m; ++j) resampled.push([ p0[0] + j * dx, p0[1] + j * dy ]);\n p0 = p1;\n }\n resampled.push(p1);\n return resampled;\n }\n function pointEqual(a, b) {\n return Math.abs(a[0] - b[0]) < ε && Math.abs(a[1] - b[1]) < ε;\n }\n return projection;\n };\n function eckert4(λ, φ) {\n var k = (2 + halfπ) * Math.sin(φ);\n φ /= 2;\n for (var i = 0, δ = Infinity; i < 10 && Math.abs(δ) > ε; i++) {\n var cosφ = Math.cos(φ);\n φ -= δ = (φ + Math.sin(φ) * (cosφ + 2) - k) / (2 * cosφ * (1 + cosφ));\n }\n return [ 2 / Math.sqrt(π * (4 + π)) * λ * (1 + Math.cos(φ)), 2 * Math.sqrt(π / (4 + π)) * Math.sin(φ) ];\n }\n eckert4.invert = function(x, y) {\n var A = .5 * y * Math.sqrt((4 + π) / π), k = asin(A), c = Math.cos(k);\n return [ x / (2 / Math.sqrt(π * (4 + π)) * (1 + c)), asin((k + A * (c + 2)) / (2 + halfπ)) ];\n };\n (d3.geo.eckert4 = function() {\n return projection(eckert4);\n }).raw = eckert4;\n var hammerAzimuthalEqualArea = d3.geo.azimuthalEqualArea.raw;\n function hammer(A, B) {\n if (arguments.length < 2) B = A;\n if (B === 1) return hammerAzimuthalEqualArea;\n if (B === Infinity) return hammerQuarticAuthalic;\n function forward(λ, φ) {\n var coordinates = hammerAzimuthalEqualArea(λ / B, φ);\n coordinates[0] *= A;\n return coordinates;\n }\n forward.invert = function(x, y) {\n var coordinates = hammerAzimuthalEqualArea.invert(x / A, y);\n coordinates[0] *= B;\n return coordinates;\n };\n return forward;\n }\n function hammerProjection() {\n var B = 2, m = projectionMutator(hammer), p = m(B);\n p.coefficient = function(_) {\n if (!arguments.length) return B;\n return m(B = +_);\n };\n return p;\n }\n function hammerQuarticAuthalic(λ, φ) {\n return [ λ * Math.cos(φ) / Math.cos(φ /= 2), 2 * Math.sin(φ) ];\n }\n hammerQuarticAuthalic.invert = function(x, y) {\n var φ = 2 * asin(y / 2);\n return [ x * Math.cos(φ / 2) / Math.cos(φ), φ ];\n };\n (d3.geo.hammer = hammerProjection).raw = hammer;\n function kavrayskiy7(λ, φ) {\n return [ 3 * λ / (2 * π) * Math.sqrt(π * π / 3 - φ * φ), φ ];\n }\n kavrayskiy7.invert = function(x, y) {\n return [ 2 / 3 * π * x / Math.sqrt(π * π / 3 - y * y), y ];\n };\n (d3.geo.kavrayskiy7 = function() {\n return projection(kavrayskiy7);\n }).raw = kavrayskiy7;\n function miller(λ, φ) {\n return [ λ, 1.25 * Math.log(Math.tan(π / 4 + .4 * φ)) ];\n }\n miller.invert = function(x, y) {\n return [ x, 2.5 * Math.atan(Math.exp(.8 * y)) - .625 * π ];\n };\n (d3.geo.miller = function() {\n return projection(miller);\n }).raw = miller;\n function mollweideBromleyθ(Cp) {\n return function(θ) {\n var Cpsinθ = Cp * Math.sin(θ), i = 30, δ;\n do θ -= δ = (θ + Math.sin(θ) - Cpsinθ) / (1 + Math.cos(θ)); while (Math.abs(δ) > ε && --i > 0);\n return θ / 2;\n };\n }\n function mollweideBromley(Cx, Cy, Cp) {\n var θ = mollweideBromleyθ(Cp);\n function forward(λ, φ) {\n return [ Cx * λ * Math.cos(φ = θ(φ)), Cy * Math.sin(φ) ];\n }\n forward.invert = function(x, y) {\n var θ = asin(y / Cy);\n return [ x / (Cx * Math.cos(θ)), asin((2 * θ + Math.sin(2 * θ)) / Cp) ];\n };\n return forward;\n }\n var mollweideθ = mollweideBromleyθ(π), mollweide = mollweideBromley(Math.SQRT2 / halfπ, Math.SQRT2, π);\n (d3.geo.mollweide = function() {\n return projection(mollweide);\n }).raw = mollweide;\n function naturalEarth(λ, φ) {\n var φ2 = φ * φ, φ4 = φ2 * φ2;\n return [ λ * (.8707 - .131979 * φ2 + φ4 * (-.013791 + φ4 * (.003971 * φ2 - .001529 * φ4))), φ * (1.007226 + φ2 * (.015085 + φ4 * (-.044475 + .028874 * φ2 - .005916 * φ4))) ];\n }\n naturalEarth.invert = function(x, y) {\n var φ = y, i = 25, δ;\n do {\n var φ2 = φ * φ, φ4 = φ2 * φ2;\n φ -= δ = (φ * (1.007226 + φ2 * (.015085 + φ4 * (-.044475 + .028874 * φ2 - .005916 * φ4))) - y) / (1.007226 + φ2 * (.015085 * 3 + φ4 * (-.044475 * 7 + .028874 * 9 * φ2 - .005916 * 11 * φ4)));\n } while (Math.abs(δ) > ε && --i > 0);\n return [ x / (.8707 + (φ2 = φ * φ) * (-.131979 + φ2 * (-.013791 + φ2 * φ2 * φ2 * (.003971 - .001529 * φ2)))), φ ];\n };\n (d3.geo.naturalEarth = function() {\n return projection(naturalEarth);\n }).raw = naturalEarth;\n var robinsonConstants = [ [ .9986, -.062 ], [ 1, 0 ], [ .9986, .062 ], [ .9954, .124 ], [ .99, .186 ], [ .9822, .248 ], [ .973, .31 ], [ .96, .372 ], [ .9427, .434 ], [ .9216, .4958 ], [ .8962, .5571 ], [ .8679, .6176 ], [ .835, .6769 ], [ .7986, .7346 ], [ .7597, .7903 ], [ .7186, .8435 ], [ .6732, .8936 ], [ .6213, .9394 ], [ .5722, .9761 ], [ .5322, 1 ] ];\n robinsonConstants.forEach(function(d) {\n d[1] *= 1.0144;\n });\n function robinson(λ, φ) {\n var i = Math.min(18, Math.abs(φ) * 36 / π), i0 = Math.floor(i), di = i - i0, ax = (k = robinsonConstants[i0])[0], ay = k[1], bx = (k = robinsonConstants[++i0])[0], by = k[1], cx = (k = robinsonConstants[Math.min(19, ++i0)])[0], cy = k[1], k;\n return [ λ * (bx + di * (cx - ax) / 2 + di * di * (cx - 2 * bx + ax) / 2), (φ > 0 ? halfπ : -halfπ) * (by + di * (cy - ay) / 2 + di * di * (cy - 2 * by + ay) / 2) ];\n }\n robinson.invert = function(x, y) {\n var yy = y / halfπ, φ = yy * 90, i = Math.min(18, Math.abs(φ / 5)), i0 = Math.max(0, Math.floor(i));\n do {\n var ay = robinsonConstants[i0][1], by = robinsonConstants[i0 + 1][1], cy = robinsonConstants[Math.min(19, i0 + 2)][1], u = cy - ay, v = cy - 2 * by + ay, t = 2 * (Math.abs(yy) - by) / u, c = v / u, di = t * (1 - c * t * (1 - 2 * c * t));\n if (di >= 0 || i0 === 1) {\n φ = (y >= 0 ? 5 : -5) * (di + i);\n var j = 50, δ;\n do {\n i = Math.min(18, Math.abs(φ) / 5);\n i0 = Math.floor(i);\n di = i - i0;\n ay = robinsonConstants[i0][1];\n by = robinsonConstants[i0 + 1][1];\n cy = robinsonConstants[Math.min(19, i0 + 2)][1];\n φ -= (δ = (y >= 0 ? halfπ : -halfπ) * (by + di * (cy - ay) / 2 + di * di * (cy - 2 * by + ay) / 2) - y) * degrees;\n } while (Math.abs(δ) > ε2 && --j > 0);\n break;\n }\n } while (--i0 >= 0);\n var ax = robinsonConstants[i0][0], bx = robinsonConstants[i0 + 1][0], cx = robinsonConstants[Math.min(19, i0 + 2)][0];\n return [ x / (bx + di * (cx - ax) / 2 + di * di * (cx - 2 * bx + ax) / 2), φ * radians ];\n };\n (d3.geo.robinson = function() {\n return projection(robinson);\n }).raw = robinson;\n function sinusoidal(λ, φ) {\n return [ λ * Math.cos(φ), φ ];\n }\n sinusoidal.invert = function(x, y) {\n return [ x / Math.cos(y), y ];\n };\n (d3.geo.sinusoidal = function() {\n return projection(sinusoidal);\n }).raw = sinusoidal;\n function aitoff(λ, φ) {\n var cosφ = Math.cos(φ), sinciα = sinci(acos(cosφ * Math.cos(λ /= 2)));\n return [ 2 * cosφ * Math.sin(λ) * sinciα, Math.sin(φ) * sinciα ];\n }\n aitoff.invert = function(x, y) {\n if (x * x + 4 * y * y > π * π + ε) return;\n var λ = x, φ = y, i = 25;\n do {\n var sinλ = Math.sin(λ), sinλ_2 = Math.sin(λ / 2), cosλ_2 = Math.cos(λ / 2), sinφ = Math.sin(φ), cosφ = Math.cos(φ), sin_2φ = Math.sin(2 * φ), sin2φ = sinφ * sinφ, cos2φ = cosφ * cosφ, sin2λ_2 = sinλ_2 * sinλ_2, C = 1 - cos2φ * cosλ_2 * cosλ_2, E = C ? acos(cosφ * cosλ_2) * Math.sqrt(F = 1 / C) : F = 0, F, fx = 2 * E * cosφ * sinλ_2 - x, fy = E * sinφ - y, δxδλ = F * (cos2φ * sin2λ_2 + E * cosφ * cosλ_2 * sin2φ), δxδφ = F * (.5 * sinλ * sin_2φ - E * 2 * sinφ * sinλ_2), δyδλ = F * .25 * (sin_2φ * sinλ_2 - E * sinφ * cos2φ * sinλ), δyδφ = F * (sin2φ * cosλ_2 + E * sin2λ_2 * cosφ), denominator = δxδφ * δyδλ - δyδφ * δxδλ;\n if (!denominator) break;\n var δλ = (fy * δxδφ - fx * δyδφ) / denominator, δφ = (fx * δyδλ - fy * δxδλ) / denominator;\n λ -= δλ, φ -= δφ;\n } while ((Math.abs(δλ) > ε || Math.abs(δφ) > ε) && --i > 0);\n return [ λ, φ ];\n };\n (d3.geo.aitoff = function() {\n return projection(aitoff);\n }).raw = aitoff;\n function winkel3(λ, φ) {\n var coordinates = aitoff(λ, φ);\n return [ (coordinates[0] + λ / halfπ) / 2, (coordinates[1] + φ) / 2 ];\n }\n winkel3.invert = function(x, y) {\n var λ = x, φ = y, i = 25;\n do {\n var cosφ = Math.cos(φ), sinφ = Math.sin(φ), sin_2φ = Math.sin(2 * φ), sin2φ = sinφ * sinφ, cos2φ = cosφ * cosφ, sinλ = Math.sin(λ), cosλ_2 = Math.cos(λ / 2), sinλ_2 = Math.sin(λ / 2), sin2λ_2 = sinλ_2 * sinλ_2, C = 1 - cos2φ * cosλ_2 * cosλ_2, E = C ? acos(cosφ * cosλ_2) * Math.sqrt(F = 1 / C) : F = 0, F, fx = .5 * (2 * E * cosφ * sinλ_2 + λ / halfπ) - x, fy = .5 * (E * sinφ + φ) - y, δxδλ = .5 * F * (cos2φ * sin2λ_2 + E * cosφ * cosλ_2 * sin2φ) + .5 / halfπ, δxδφ = F * (sinλ * sin_2φ / 4 - E * sinφ * sinλ_2), δyδλ = .125 * F * (sin_2φ * sinλ_2 - E * sinφ * cos2φ * sinλ), δyδφ = .5 * F * (sin2φ * cosλ_2 + E * sin2λ_2 * cosφ) + .5, denominator = δxδφ * δyδλ - δyδφ * δxδλ, δλ = (fy * δxδφ - fx * δyδφ) / denominator, δφ = (fx * δyδλ - fy * δxδλ) / denominator;\n λ -= δλ, φ -= δφ;\n } while ((Math.abs(δλ) > ε || Math.abs(δφ) > ε) && --i > 0);\n return [ λ, φ ];\n };\n (d3.geo.winkel3 = function() {\n return projection(winkel3);\n }).raw = winkel3;\n}\n\nmodule.exports = addProjectionsToD3;\n\n\n/***/ }),\n\n/***/ \"4bba\":\n/***/ (function(module, exports) {\n\nmodule.exports = inverse;\n\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to invert\n * @returns {vec3} out\n */\nfunction inverse(out, a) {\n out[0] = 1.0 / a[0]\n out[1] = 1.0 / a[1]\n out[2] = 1.0 / a[2]\n return out\n}\n\n/***/ }),\n\n/***/ \"4c18\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar uniq = __webpack_require__(\"175e\")\n\n// This function generates very simple loops analogous to how you typically traverse arrays (the outermost loop corresponds to the slowest changing index, the innermost loop to the fastest changing index)\n// TODO: If two arrays have the same strides (and offsets) there is potential for decreasing the number of \"pointers\" and related variables. The drawback is that the type signature would become more specific and that there would thus be less potential for caching, but it might still be worth it, especially when dealing with large numbers of arguments.\nfunction innerFill(order, proc, body) {\n var dimension = order.length\n , nargs = proc.arrayArgs.length\n , has_index = proc.indexArgs.length>0\n , code = []\n , vars = []\n , idx=0, pidx=0, i, j\n for(i=0; i 0) {\n code.push(\"var \" + vars.join(\",\"))\n } \n //Scan loop\n for(i=dimension-1; i>=0; --i) { // Start at largest stride and work your way inwards\n idx = order[i]\n code.push([\"for(i\",i,\"=0;i\",i,\" 0) {\n code.push([\"index[\",pidx,\"]-=s\",pidx].join(\"\"))\n }\n code.push([\"++index[\",idx,\"]\"].join(\"\"))\n }\n code.push(\"}\")\n }\n return code.join(\"\\n\")\n}\n\n// Generate \"outer\" loops that loop over blocks of data, applying \"inner\" loops to the blocks by manipulating the local variables in such a way that the inner loop only \"sees\" the current block.\n// TODO: If this is used, then the previous declaration (done by generateCwiseOp) of s* is essentially unnecessary.\n// I believe the s* are not used elsewhere (in particular, I don't think they're used in the pre/post parts and \"shape\" is defined independently), so it would be possible to make defining the s* dependent on what loop method is being used.\nfunction outerFill(matched, order, proc, body) {\n var dimension = order.length\n , nargs = proc.arrayArgs.length\n , blockSize = proc.blockSize\n , has_index = proc.indexArgs.length > 0\n , code = []\n for(var i=0; i0;){\"].join(\"\")) // Iterate back to front\n code.push([\"if(j\",i,\"<\",blockSize,\"){\"].join(\"\")) // Either decrease j by blockSize (s = blockSize), or set it to zero (after setting s = j).\n code.push([\"s\",order[i],\"=j\",i].join(\"\"))\n code.push([\"j\",i,\"=0\"].join(\"\"))\n code.push([\"}else{s\",order[i],\"=\",blockSize].join(\"\"))\n code.push([\"j\",i,\"-=\",blockSize,\"}\"].join(\"\"))\n if(has_index) {\n code.push([\"index[\",order[i],\"]=j\",i].join(\"\"))\n }\n }\n for(var i=0; i 0) {\n allEqual = allEqual && summary[i] === summary[i-1]\n }\n }\n if(allEqual) {\n return summary[0]\n }\n return summary.join(\"\")\n}\n\n//Generates a cwise operator\nfunction generateCWiseOp(proc, typesig) {\n\n //Compute dimension\n // Arrays get put first in typesig, and there are two entries per array (dtype and order), so this gets the number of dimensions in the first array arg.\n var dimension = (typesig[1].length - Math.abs(proc.arrayBlockIndices[0]))|0\n var orders = new Array(proc.arrayArgs.length)\n var dtypes = new Array(proc.arrayArgs.length)\n for(var i=0; i 0) {\n vars.push(\"shape=SS.slice(0)\") // Makes the shape over which we iterate available to the user defined functions (so you can use width/height for example)\n }\n if(proc.indexArgs.length > 0) {\n // Prepare an array to keep track of the (logical) indices, initialized to dimension zeroes.\n var zeros = new Array(dimension)\n for(var i=0; i 0) {\n code.push(\"var \" + vars.join(\",\"))\n }\n for(var i=0; i 3) {\n code.push(processBlock(proc.pre, proc, dtypes))\n }\n\n //Process body\n var body = processBlock(proc.body, proc, dtypes)\n var matched = countMatches(loopOrders)\n if(matched < dimension) {\n code.push(outerFill(matched, loopOrders[0], proc, body)) // TODO: Rather than passing loopOrders[0], it might be interesting to look at passing an order that represents the majority of the arguments for example.\n } else {\n code.push(innerFill(loopOrders[0], proc, body))\n }\n\n //Inline epilog\n if(proc.post.body.length > 3) {\n code.push(processBlock(proc.post, proc, dtypes))\n }\n \n if(proc.debug) {\n console.log(\"-----Generated cwise routine for \", typesig, \":\\n\" + code.join(\"\\n\") + \"\\n----------\")\n }\n \n var loopName = [(proc.funcName||\"unnamed\"), \"_cwise_loop_\", orders[0].join(\"s\"),\"m\",matched,typeSummary(dtypes)].join(\"\")\n var f = new Function([\"function \",loopName,\"(\", arglist.join(\",\"),\"){\", code.join(\"\\n\"),\"} return \", loopName].join(\"\"))\n return f()\n}\nmodule.exports = generateCWiseOp\n\n\n/***/ }),\n\n/***/ \"4c66\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar axisIDs = __webpack_require__(\"3c1c\");\nvar svgTextUtils = __webpack_require__(\"0379\");\nvar constants = __webpack_require__(\"22f9\");\nvar LINE_SPACING = __webpack_require__(\"63dc\").LINE_SPACING;\nvar name = constants.name;\n\nfunction isVisible(ax) {\n var rangeSlider = ax && ax[name];\n return rangeSlider && rangeSlider.visible;\n}\nexports.isVisible = isVisible;\n\nexports.makeData = function(fullLayout) {\n var axes = axisIDs.list({ _fullLayout: fullLayout }, 'x', true);\n var margin = fullLayout.margin;\n var rangeSliderData = [];\n\n if(!fullLayout._has('gl2d')) {\n for(var i = 0; i < axes.length; i++) {\n var ax = axes[i];\n\n if(isVisible(ax)) {\n rangeSliderData.push(ax);\n\n var opts = ax[name];\n opts._id = name + ax._id;\n opts._height = (fullLayout.height - margin.b - margin.t) * opts.thickness;\n opts._offsetShift = Math.floor(opts.borderwidth / 2);\n }\n }\n }\n\n fullLayout._rangeSliderData = rangeSliderData;\n};\n\nexports.autoMarginOpts = function(gd, ax) {\n var fullLayout = gd._fullLayout;\n var opts = ax[name];\n var axLetter = ax._id.charAt(0);\n\n var bottomDepth = 0;\n var titleHeight = 0;\n if(ax.side === 'bottom') {\n bottomDepth = ax._depth;\n if(ax.title.text !== fullLayout._dfltTitle[axLetter]) {\n // as in rangeslider/draw.js\n titleHeight = 1.5 * ax.title.font.size + 10 + opts._offsetShift;\n // multi-line extra bump\n var extraLines = (ax.title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n titleHeight += extraLines * ax.title.font.size * LINE_SPACING;\n }\n }\n\n return {\n x: 0,\n y: ax._counterDomainMin,\n l: 0,\n r: 0,\n t: 0,\n b: opts._height + bottomDepth + Math.max(fullLayout.margin.b, titleHeight),\n pad: constants.extraPad + opts._offsetShift * 2\n };\n};\n\n\n/***/ }),\n\n/***/ \"4c69\":\n/***/ (function(module, exports) {\n\nmodule.exports = function parseUnit(str, out) {\n if (!out)\n out = [ 0, '' ]\n\n str = String(str)\n var num = parseFloat(str, 10)\n out[0] = num\n out[1] = str.match(/[\\d.\\-\\+]*\\s*(.*)/)[1] || ''\n return out\n}\n\n/***/ }),\n\n/***/ \"4cd2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar listAxes = __webpack_require__(\"3c1c\").list;\nvar getAutoRange = __webpack_require__(\"ce56\").getAutoRange;\nvar constants = __webpack_require__(\"22f9\");\n\nmodule.exports = function calcAutorange(gd) {\n var axes = listAxes(gd, 'x', true);\n\n // Compute new slider range using axis autorange if necessary.\n //\n // Copy back range to input range slider container to skip\n // this step in subsequent draw calls.\n\n for(var i = 0; i < axes.length; i++) {\n var ax = axes[i];\n var opts = ax[constants.name];\n\n if(opts && opts.visible && opts.autorange) {\n opts._input.autorange = true;\n opts._input.range = opts.range = getAutoRange(gd, ax);\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"4cd5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nmodule.exports = {\n RELATIVE_CULL_TOLERANCE: 1e-6\n};\n\n\n/***/ }),\n\n/***/ \"4ce7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n barmode: {\n valType: 'enumerated',\n values: ['stack', 'overlay'],\n dflt: 'stack',\n \n editType: 'calc',\n \n },\n bargap: {\n valType: 'number',\n dflt: 0.1,\n min: 0,\n max: 1,\n \n editType: 'calc',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"4d64\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(\"fc6a\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toAbsoluteIndex = __webpack_require__(\"23cb\");\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ \"4de4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(\"23e7\");\nvar $filter = __webpack_require__(\"b727\").filter;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(\"1dde\");\nvar arrayMethodUsesToLength = __webpack_require__(\"ae40\");\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"4e7e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar BN = __webpack_require__(\"399f\")\n\nmodule.exports = isBN\n\n//Test if x is a bignumber\n//FIXME: obviously this is the wrong way to do it\nfunction isBN(x) {\n return x && typeof x === 'object' && Boolean(x.words)\n}\n\n\n/***/ }),\n\n/***/ \"4e89\":\n/***/ (function(module, exports) {\n\nmodule.exports = length\n\n/**\n * Calculates the length of a vec4\n *\n * @param {vec4} a vector to calculate length of\n * @returns {Number} length of a\n */\nfunction length (a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3]\n return Math.sqrt(x * x + y * y + z * z + w * w)\n}\n\n\n/***/ }),\n\n/***/ \"4ebd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar EventEmitter = __webpack_require__(\"7e25\").EventEmitter;\n\nvar helpers = __webpack_require__(\"4248\");\n\nfunction svgToImg(opts) {\n var ev = opts.emitter || new EventEmitter();\n\n var promise = new Promise(function(resolve, reject) {\n var Image = window.Image;\n var svg = opts.svg;\n var format = opts.format || 'png';\n\n // IE only support svg\n if(Lib.isIE() && format !== 'svg') {\n var ieSvgError = new Error(helpers.MSG_IE_BAD_FORMAT);\n reject(ieSvgError);\n // eventually remove the ev\n // in favor of promises\n if(!opts.promise) {\n return ev.emit('error', ieSvgError);\n } else {\n return promise;\n }\n }\n\n var canvas = opts.canvas;\n var scale = opts.scale || 1;\n var w0 = opts.width || 300;\n var h0 = opts.height || 150;\n var w1 = scale * w0;\n var h1 = scale * h0;\n\n var ctx = canvas.getContext('2d');\n var img = new Image();\n var svgBlob, url;\n\n if(format === 'svg' || Lib.isIE9orBelow() || Lib.isSafari()) {\n url = helpers.encodeSVG(svg);\n } else {\n svgBlob = helpers.createBlob(svg, 'svg');\n url = helpers.createObjectURL(svgBlob);\n }\n\n canvas.width = w1;\n canvas.height = h1;\n\n img.onload = function() {\n var imgData;\n\n svgBlob = null;\n helpers.revokeObjectURL(url);\n\n // don't need to draw to canvas if svg\n // save some time and also avoid failure on IE\n if(format !== 'svg') {\n ctx.drawImage(img, 0, 0, w1, h1);\n }\n\n switch(format) {\n case 'jpeg':\n imgData = canvas.toDataURL('image/jpeg');\n break;\n case 'png':\n imgData = canvas.toDataURL('image/png');\n break;\n case 'webp':\n imgData = canvas.toDataURL('image/webp');\n break;\n case 'svg':\n imgData = url;\n break;\n default:\n var errorMsg = 'Image format is not jpeg, png, svg or webp.';\n reject(new Error(errorMsg));\n // eventually remove the ev\n // in favor of promises\n if(!opts.promise) {\n return ev.emit('error', errorMsg);\n }\n }\n resolve(imgData);\n // eventually remove the ev\n // in favor of promises\n if(!opts.promise) {\n ev.emit('success', imgData);\n }\n };\n\n img.onerror = function(err) {\n svgBlob = null;\n helpers.revokeObjectURL(url);\n\n reject(err);\n // eventually remove the ev\n // in favor of promises\n if(!opts.promise) {\n return ev.emit('error', err);\n }\n };\n\n img.src = url;\n });\n\n // temporary for backward compatibility\n // move to only Promise in 2.0.0\n // and eliminate the EventEmitter\n if(opts.promise) {\n return promise;\n }\n\n return ev;\n}\n\nmodule.exports = svgToImg;\n\n\n/***/ }),\n\n/***/ \"4eee\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\n\n/*\n * Construct a 2D array of cheater values given a, b, and a slope.\n * If\n */\nmodule.exports = function(a, b, cheaterslope) {\n var i, j, ascal, bscal, aval, bval;\n var data = [];\n\n var na = isArrayOrTypedArray(a) ? a.length : a;\n var nb = isArrayOrTypedArray(b) ? b.length : b;\n var adata = isArrayOrTypedArray(a) ? a : null;\n var bdata = isArrayOrTypedArray(b) ? b : null;\n\n // If we're using data, scale it so that for data that's just barely\n // not evenly spaced, the switch to value-based indexing is continuous.\n // This means evenly spaced data should look the same whether value\n // or index cheatertype.\n if(adata) {\n ascal = (adata.length - 1) / (adata[adata.length - 1] - adata[0]) / (na - 1);\n }\n\n if(bdata) {\n bscal = (bdata.length - 1) / (bdata[bdata.length - 1] - bdata[0]) / (nb - 1);\n }\n\n var xval;\n var xmin = Infinity;\n var xmax = -Infinity;\n for(j = 0; j < nb; j++) {\n data[j] = [];\n bval = bdata ? (bdata[j] - bdata[0]) * bscal : j / (nb - 1);\n for(i = 0; i < na; i++) {\n aval = adata ? (adata[i] - adata[0]) * ascal : i / (na - 1);\n xval = aval - bval * cheaterslope;\n xmin = Math.min(xval, xmin);\n xmax = Math.max(xval, xmax);\n data[j][i] = xval;\n }\n }\n\n // Normalize cheater values to the 0-1 range. This comes into play when you have\n // multiple cheater plots. After careful consideration, it seems better if cheater\n // values are normalized to a consistent range. Otherwise one cheater affects the\n // layout of other cheaters on the same axis.\n var slope = 1.0 / (xmax - xmin);\n var offset = -xmin * slope;\n for(j = 0; j < nb; j++) {\n for(i = 0; i < na; i++) {\n data[j][i] = slope * data[j][i] + offset;\n }\n }\n\n return data;\n};\n\n\n/***/ }),\n\n/***/ \"4efe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar mouseOffset = __webpack_require__(\"8b98\");\nvar hasHover = __webpack_require__(\"2c8d\");\nvar supportsPassive = __webpack_require__(\"1477\");\n\nvar removeElement = __webpack_require__(\"fc26\").removeElement;\nvar constants = __webpack_require__(\"d301\");\n\nvar dragElement = module.exports = {};\n\ndragElement.align = __webpack_require__(\"296e\");\ndragElement.getCursor = __webpack_require__(\"13a4\");\n\nvar unhover = __webpack_require__(\"855b\");\ndragElement.unhover = unhover.wrapped;\ndragElement.unhoverRaw = unhover.raw;\n\n/**\n * Abstracts click & drag interactions\n *\n * During the interaction, a \"coverSlip\" element - a transparent\n * div covering the whole page - is created, which has two key effects:\n * - Lets you drag beyond the boundaries of the plot itself without\n * dropping (but if you drag all the way out of the browser window the\n * interaction will end)\n * - Freezes the cursor: whatever mouse cursor the drag element had when the\n * interaction started gets copied to the coverSlip for use until mouseup\n *\n * If the user executes a drag bigger than MINDRAG, callbacks will fire as:\n * prepFn, moveFn (1 or more times), doneFn\n * If the user does not drag enough, prepFn and clickFn will fire.\n *\n * Note: If you cancel contextmenu, clickFn will fire even with a right click\n * (unlike native events) so you'll get a `plotly_click` event. Cancel context eg:\n * gd.addEventListener('contextmenu', function(e) { e.preventDefault(); });\n * TODO: we should probably turn this into a `config` parameter, so we can fix it\n * such that if you *don't* cancel contextmenu, we can prevent partial drags, which\n * put you in a weird state.\n *\n * If the user clicks multiple times quickly, clickFn will fire each time\n * but numClicks will increase to help you recognize doubleclicks.\n *\n * @param {object} options with keys:\n * element (required) the DOM element to drag\n * prepFn (optional) function(event, startX, startY)\n * executed on mousedown\n * startX and startY are the clientX and clientY pixel position\n * of the mousedown event\n * moveFn (optional) function(dx, dy)\n * executed on move, ONLY after we've exceeded MINDRAG\n * (we keep executing moveFn if you move back to where you started)\n * dx and dy are the net pixel offset of the drag,\n * dragged is true/false, has the mouse moved enough to\n * constitute a drag\n * doneFn (optional) function(e)\n * executed on mouseup, ONLY if we exceeded MINDRAG (so you can be\n * sure that moveFn has been called at least once)\n * numClicks is how many clicks we've registered within\n * a doubleclick time\n * e is the original mouseup event\n * clickFn (optional) function(numClicks, e)\n * executed on mouseup if we have NOT exceeded MINDRAG (ie moveFn\n * has not been called at all)\n * numClicks is how many clicks we've registered within\n * a doubleclick time\n * e is the original mousedown event\n * clampFn (optional, function(dx, dy) return [dx2, dy2])\n * Provide custom clamping function for small displacements.\n * By default, clamping is done using `minDrag` to x and y displacements\n * independently.\n */\ndragElement.init = function init(options) {\n var gd = options.gd;\n var numClicks = 1;\n var doubleClickDelay = gd._context.doubleClickDelay;\n var element = options.element;\n\n var startX,\n startY,\n newMouseDownTime,\n cursor,\n dragCover,\n initialEvent,\n initialTarget,\n rightClick;\n\n if(!gd._mouseDownTime) gd._mouseDownTime = 0;\n\n element.style.pointerEvents = 'all';\n\n element.onmousedown = onStart;\n\n if(!supportsPassive) {\n element.ontouchstart = onStart;\n } else {\n if(element._ontouchstart) {\n element.removeEventListener('touchstart', element._ontouchstart);\n }\n element._ontouchstart = onStart;\n element.addEventListener('touchstart', onStart, {passive: false});\n }\n\n function _clampFn(dx, dy, minDrag) {\n if(Math.abs(dx) < minDrag) dx = 0;\n if(Math.abs(dy) < minDrag) dy = 0;\n return [dx, dy];\n }\n\n var clampFn = options.clampFn || _clampFn;\n\n function onStart(e) {\n // make dragging and dragged into properties of gd\n // so that others can look at and modify them\n gd._dragged = false;\n gd._dragging = true;\n var offset = pointerOffset(e);\n startX = offset[0];\n startY = offset[1];\n initialTarget = e.target;\n initialEvent = e;\n rightClick = e.buttons === 2 || e.ctrlKey;\n\n // fix Fx.hover for touch events\n if(typeof e.clientX === 'undefined' && typeof e.clientY === 'undefined') {\n e.clientX = startX;\n e.clientY = startY;\n }\n\n newMouseDownTime = (new Date()).getTime();\n if(newMouseDownTime - gd._mouseDownTime < doubleClickDelay) {\n // in a click train\n numClicks += 1;\n } else {\n // new click train\n numClicks = 1;\n gd._mouseDownTime = newMouseDownTime;\n }\n\n if(options.prepFn) options.prepFn(e, startX, startY);\n\n if(hasHover && !rightClick) {\n dragCover = coverSlip();\n dragCover.style.cursor = window.getComputedStyle(element).cursor;\n } else if(!hasHover) {\n // document acts as a dragcover for mobile, bc we can't create dragcover dynamically\n dragCover = document;\n cursor = window.getComputedStyle(document.documentElement).cursor;\n document.documentElement.style.cursor = window.getComputedStyle(element).cursor;\n }\n\n document.addEventListener('mouseup', onDone);\n document.addEventListener('touchend', onDone);\n\n if(options.dragmode !== false) {\n e.preventDefault();\n document.addEventListener('mousemove', onMove);\n document.addEventListener('touchmove', onMove, {passive: false});\n }\n\n return;\n }\n\n function onMove(e) {\n e.preventDefault();\n\n var offset = pointerOffset(e);\n var minDrag = options.minDrag || constants.MINDRAG;\n var dxdy = clampFn(offset[0] - startX, offset[1] - startY, minDrag);\n var dx = dxdy[0];\n var dy = dxdy[1];\n\n if(dx || dy) {\n gd._dragged = true;\n dragElement.unhover(gd);\n }\n\n if(gd._dragged && options.moveFn && !rightClick) {\n gd._dragdata = {\n element: element,\n dx: dx,\n dy: dy\n };\n options.moveFn(dx, dy);\n }\n\n return;\n }\n\n function onDone(e) {\n delete gd._dragdata;\n\n if(options.dragmode !== false) {\n e.preventDefault();\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('touchmove', onMove);\n }\n\n document.removeEventListener('mouseup', onDone);\n document.removeEventListener('touchend', onDone);\n\n if(hasHover) {\n removeElement(dragCover);\n } else if(cursor) {\n dragCover.documentElement.style.cursor = cursor;\n cursor = null;\n }\n\n if(!gd._dragging) {\n gd._dragged = false;\n return;\n }\n gd._dragging = false;\n\n // don't count as a dblClick unless the mouseUp is also within\n // the dblclick delay\n if((new Date()).getTime() - gd._mouseDownTime > doubleClickDelay) {\n numClicks = Math.max(numClicks - 1, 1);\n }\n\n if(gd._dragged) {\n if(options.doneFn) options.doneFn();\n } else {\n if(options.clickFn) options.clickFn(numClicks, initialEvent);\n\n // If we haven't dragged, this should be a click. But because of the\n // coverSlip changing the element, the natural system might not generate one,\n // so we need to make our own. But right clicks don't normally generate\n // click events, only contextmenu events, which happen on mousedown.\n if(!rightClick) {\n var e2;\n\n try {\n e2 = new MouseEvent('click', e);\n } catch(err) {\n var offset = pointerOffset(e);\n e2 = document.createEvent('MouseEvents');\n e2.initMouseEvent('click',\n e.bubbles, e.cancelable,\n e.view, e.detail,\n e.screenX, e.screenY,\n offset[0], offset[1],\n e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,\n e.button, e.relatedTarget);\n }\n\n initialTarget.dispatchEvent(e2);\n }\n }\n\n gd._dragging = false;\n gd._dragged = false;\n return;\n }\n};\n\nfunction coverSlip() {\n var cover = document.createElement('div');\n\n cover.className = 'dragcover';\n var cStyle = cover.style;\n cStyle.position = 'fixed';\n cStyle.left = 0;\n cStyle.right = 0;\n cStyle.top = 0;\n cStyle.bottom = 0;\n cStyle.zIndex = 999999999;\n cStyle.background = 'none';\n\n document.body.appendChild(cover);\n\n return cover;\n}\n\ndragElement.coverSlip = coverSlip;\n\nfunction pointerOffset(e) {\n return mouseOffset(\n e.changedTouches ? e.changedTouches[0] : e,\n document.body\n );\n}\n\n\n/***/ }),\n\n/***/ \"4f25\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar glslify = __webpack_require__(\"e98f\")\n\nmodule.exports = {\n fragment: glslify([\"precision lowp float;\\n#define GLSLIFY 1\\nvarying vec4 fragColor;\\nvoid main() {\\n gl_FragColor = vec4(fragColor.rgb * fragColor.a, fragColor.a);\\n}\\n\"]),\n vertex: glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec2 position;\\nattribute vec4 color;\\nattribute vec2 weight;\\n\\nuniform vec2 shape;\\nuniform mat3 viewTransform;\\n\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\\n fragColor = color;\\n gl_Position = vec4(vPosition.xy, 0, vPosition.z);\\n}\\n\"]),\n pickFragment: glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragId;\\nvarying vec2 vWeight;\\n\\nuniform vec2 shape;\\nuniform vec4 pickOffset;\\n\\nvoid main() {\\n vec2 d = step(.5, vWeight);\\n vec4 id = fragId + pickOffset;\\n id.x += d.x + d.y*shape.x;\\n\\n id.y += floor(id.x / 256.0);\\n id.x -= floor(id.x / 256.0) * 256.0;\\n\\n id.z += floor(id.y / 256.0);\\n id.y -= floor(id.y / 256.0) * 256.0;\\n\\n id.w += floor(id.z / 256.0);\\n id.z -= floor(id.z / 256.0) * 256.0;\\n\\n gl_FragColor = id/255.;\\n}\\n\"]),\n pickVertex: glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec2 position;\\nattribute vec4 pickId;\\nattribute vec2 weight;\\n\\nuniform vec2 shape;\\nuniform mat3 viewTransform;\\n\\nvarying vec4 fragId;\\nvarying vec2 vWeight;\\n\\nvoid main() {\\n vWeight = weight;\\n\\n fragId = pickId;\\n\\n vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\\n gl_Position = vec4(vPosition.xy, 0, vPosition.z);\\n}\\n\"])\n}\n\n\n/***/ }),\n\n/***/ \"4f4d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n\n\n/***/ }),\n\n/***/ \"4f65\":\n/***/ (function(module, exports) {\n\nmodule.exports = rotateY;\n\n/**\n * Rotate a 3D vector around the y-axis\n * @param {vec3} out The receiving vec3\n * @param {vec3} a The vec3 point to rotate\n * @param {vec3} b The origin of the rotation\n * @param {Number} c The angle of rotation\n * @returns {vec3} out\n */\nfunction rotateY(out, a, b, c){\n var bx = b[0]\n var bz = b[2]\n\n // translate point to the origin\n var px = a[0] - bx\n var pz = a[2] - bz\n \n var sc = Math.sin(c)\n var cc = Math.cos(c)\n \n // perform rotation and translate to correct position\n out[0] = bx + pz * sc + px * cc\n out[1] = a[1]\n out[2] = bz + pz * cc - px * sc\n \n return out\n}\n\n\n/***/ }),\n\n/***/ \"4f94\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n attributes: __webpack_require__(\"1ebf\"),\n layoutAttributes: __webpack_require__(\"60dc\"),\n supplyDefaults: __webpack_require__(\"abc9\").supplyDefaults,\n crossTraceDefaults: __webpack_require__(\"abc9\").crossTraceDefaults,\n supplyLayoutDefaults: __webpack_require__(\"06ad\").supplyLayoutDefaults,\n calc: __webpack_require__(\"6a77\"),\n crossTraceCalc: __webpack_require__(\"f4b3\").crossTraceCalc,\n plot: __webpack_require__(\"d34f\").plot,\n style: __webpack_require__(\"b4c7\").style,\n styleOnSelect: __webpack_require__(\"b4c7\").styleOnSelect,\n hoverPoints: __webpack_require__(\"fa10\").hoverPoints,\n eventData: __webpack_require__(\"5885\"),\n selectPoints: __webpack_require__(\"71b1\"),\n\n moduleType: 'trace',\n name: 'box',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['cartesian', 'svg', 'symbols', 'oriented', 'box-violin', 'showLegend', 'boxLayout', 'zoomScale'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"4fc7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"af50\");\n\n\n/***/ }),\n\n/***/ \"4ffa\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = extractPlanes\n\nfunction extractPlanes(M, zNear, zFar) {\n var z = zNear || 0.0\n var zf = zFar || 1.0\n return [\n [ M[12] + M[0], M[13] + M[1], M[14] + M[2], M[15] + M[3] ],\n [ M[12] - M[0], M[13] - M[1], M[14] - M[2], M[15] - M[3] ],\n [ M[12] + M[4], M[13] + M[5], M[14] + M[6], M[15] + M[7] ],\n [ M[12] - M[4], M[13] - M[5], M[14] - M[6], M[15] - M[7] ],\n [ z*M[12] + M[8], z*M[13] + M[9], z*M[14] + M[10], z*M[15] + M[11] ],\n [ zf*M[12] - M[8], zf*M[13] - M[9], zf*M[14] - M[10], zf*M[15] - M[11] ]\n ]\n}\n\n/***/ }),\n\n/***/ \"5008\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar layoutAttributes = __webpack_require__(\"d798\");\nvar handleArrayContainerDefaults = __webpack_require__(\"e5ac\");\n\nmodule.exports = function handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options, config) {\n if(!config || config.pass === 1) {\n handlePrefixSuffix(containerIn, containerOut, coerce, axType, options);\n }\n\n if(!config || config.pass === 2) {\n handleOtherDefaults(containerIn, containerOut, coerce, axType, options);\n }\n};\n\nfunction handlePrefixSuffix(containerIn, containerOut, coerce, axType, options) {\n var showAttrDflt = getShowAttrDflt(containerIn);\n\n var tickPrefix = coerce('tickprefix');\n if(tickPrefix) coerce('showtickprefix', showAttrDflt);\n\n var tickSuffix = coerce('ticksuffix', options.tickSuffixDflt);\n if(tickSuffix) coerce('showticksuffix', showAttrDflt);\n}\n\nfunction handleOtherDefaults(containerIn, containerOut, coerce, axType, options) {\n var showAttrDflt = getShowAttrDflt(containerIn);\n\n var tickPrefix = coerce('tickprefix');\n if(tickPrefix) coerce('showtickprefix', showAttrDflt);\n\n var tickSuffix = coerce('ticksuffix', options.tickSuffixDflt);\n if(tickSuffix) coerce('showticksuffix', showAttrDflt);\n\n var showTickLabels = coerce('showticklabels');\n if(showTickLabels) {\n var font = options.font || {};\n var contColor = containerOut.color;\n // as with titlefont.color, inherit axis.color only if one was\n // explicitly provided\n var dfltFontColor = (contColor && contColor !== layoutAttributes.color.dflt) ?\n contColor : font.color;\n Lib.coerceFont(coerce, 'tickfont', {\n family: font.family,\n size: font.size,\n color: dfltFontColor\n });\n coerce('tickangle');\n\n if(axType !== 'category') {\n var tickFormat = coerce('tickformat');\n var tickformatStops = containerIn.tickformatstops;\n if(Array.isArray(tickformatStops) && tickformatStops.length) {\n handleArrayContainerDefaults(containerIn, containerOut, {\n name: 'tickformatstops',\n inclusionAttr: 'enabled',\n handleItemDefaults: tickformatstopDefaults\n });\n }\n if(!tickFormat && axType !== 'date') {\n coerce('showexponent', showAttrDflt);\n coerce('exponentformat');\n coerce('separatethousands');\n }\n }\n }\n}\n\n/*\n * Attributes 'showexponent', 'showtickprefix' and 'showticksuffix'\n * share values.\n *\n * If only 1 attribute is set,\n * the remaining attributes inherit that value.\n *\n * If 2 attributes are set to the same value,\n * the remaining attribute inherits that value.\n *\n * If 2 attributes are set to different values,\n * the remaining is set to its dflt value.\n *\n */\nfunction getShowAttrDflt(containerIn) {\n var showAttrsAll = ['showexponent', 'showtickprefix', 'showticksuffix'];\n var showAttrs = showAttrsAll.filter(function(a) {\n return containerIn[a] !== undefined;\n });\n var sameVal = function(a) {\n return containerIn[a] === containerIn[showAttrs[0]];\n };\n\n if(showAttrs.every(sameVal) || showAttrs.length === 1) {\n return containerIn[showAttrs[0]];\n }\n}\n\nfunction tickformatstopDefaults(valueIn, valueOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(valueIn, valueOut, layoutAttributes.tickformatstops, attr, dflt);\n }\n\n var enabled = coerce('enabled');\n if(enabled) {\n coerce('dtickrange');\n coerce('value');\n }\n}\n\n\n/***/ }),\n\n/***/ \"5047\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Color = __webpack_require__(\"d115\");\nvar hasColorscale = __webpack_require__(\"215c\").hasColorscale;\nvar colorscaleDefaults = __webpack_require__(\"4183\");\n\nvar subTypes = __webpack_require__(\"de81\");\n\n/*\n * opts: object of flags to control features not all marker users support\n * noLine: caller does not support marker lines\n * gradient: caller supports gradients\n * noSelect: caller does not support selected/unselected attribute containers\n */\nmodule.exports = function markerDefaults(traceIn, traceOut, defaultColor, layout, coerce, opts) {\n var isBubble = subTypes.isBubble(traceIn);\n var lineColor = (traceIn.line || {}).color;\n var defaultMLC;\n\n opts = opts || {};\n\n // marker.color inherit from line.color (even if line.color is an array)\n if(lineColor) defaultColor = lineColor;\n\n coerce('marker.symbol');\n coerce('marker.opacity', isBubble ? 0.7 : 1);\n coerce('marker.size');\n\n coerce('marker.color', defaultColor);\n if(hasColorscale(traceIn, 'marker')) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.', cLetter: 'c'});\n }\n\n if(!opts.noSelect) {\n coerce('selected.marker.color');\n coerce('unselected.marker.color');\n coerce('selected.marker.size');\n coerce('unselected.marker.size');\n }\n\n if(!opts.noLine) {\n // if there's a line with a different color than the marker, use\n // that line color as the default marker line color\n // (except when it's an array)\n // mostly this is for transparent markers to behave nicely\n if(lineColor && !Array.isArray(lineColor) && (traceOut.marker.color !== lineColor)) {\n defaultMLC = lineColor;\n } else if(isBubble) defaultMLC = Color.background;\n else defaultMLC = Color.defaultLine;\n\n coerce('marker.line.color', defaultMLC);\n if(hasColorscale(traceIn, 'marker.line')) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'marker.line.', cLetter: 'c'});\n }\n\n coerce('marker.line.width', isBubble ? 1 : 0);\n }\n\n if(isBubble) {\n coerce('marker.sizeref');\n coerce('marker.sizemin');\n coerce('marker.sizemode');\n }\n\n if(opts.gradient) {\n var gradientType = coerce('marker.gradient.type');\n if(gradientType !== 'none') {\n coerce('marker.gradient.color');\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"5053\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"8be6\")\n\n\n/***/ }),\n\n/***/ \"50c4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"50da\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar constants = __webpack_require__(\"b326\");\n\nexports.isOpenSymbol = function(symbol) {\n return (typeof symbol === 'string') ?\n constants.OPEN_RE.test(symbol) :\n symbol % 200 > 100;\n};\n\nexports.isDotSymbol = function(symbol) {\n return (typeof symbol === 'string') ?\n constants.DOT_RE.test(symbol) :\n symbol > 200;\n};\n\n\n/***/ }),\n\n/***/ \"510f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Color = __webpack_require__(\"d115\");\n\nvar heatmapHoverPoints = __webpack_require__(\"d6fb\");\n\nmodule.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLayer) {\n var hoverData = heatmapHoverPoints(pointData, xval, yval, hovermode, hoverLayer, true);\n\n if(hoverData) {\n hoverData.forEach(function(hoverPt) {\n var trace = hoverPt.trace;\n if(trace.contours.type === 'constraint') {\n if(trace.fillcolor && Color.opacity(trace.fillcolor)) {\n hoverPt.color = Color.addOpacity(trace.fillcolor, 1);\n } else if(trace.contours.showlines && Color.opacity(trace.line.color)) {\n hoverPt.color = Color.addOpacity(trace.line.color, 1);\n }\n }\n });\n }\n\n return hoverData;\n};\n\n\n/***/ }),\n\n/***/ \"5135\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"5243\":\n/***/ (function(module, exports) {\n\nmodule.exports = normalize\n\n/**\n * Normalize a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a vector to normalize\n * @returns {vec4} out\n */\nfunction normalize (out, a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3]\n var len = x * x + y * y + z * z + w * w\n if (len > 0) {\n len = 1 / Math.sqrt(len)\n out[0] = x * len\n out[1] = y * len\n out[2] = z * len\n out[3] = w * len\n }\n return out\n}\n\n\n/***/ }),\n\n/***/ \"52d8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n attributes: __webpack_require__(\"a08c\"),\n supplyDefaults: __webpack_require__(\"07dd\").supplyDefaults,\n calc: __webpack_require__(\"edf7\"),\n colorbar: {\n min: 'cmin',\n max: 'cmax'\n },\n plot: __webpack_require__(\"caf7\").createIsosurfaceTrace,\n\n moduleType: 'trace',\n name: 'isosurface',\n basePlotModule: __webpack_require__(\"134c\"),\n categories: ['gl3d', 'showLegend'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"52e8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar Registry = __webpack_require__(\"371e\");\n\nfunction style(gd) {\n var s = d3.select(gd).selectAll('g.trace.scatter');\n\n s.style('opacity', function(d) {\n return d[0].trace.opacity;\n });\n\n s.selectAll('g.points').each(function(d) {\n var sel = d3.select(this);\n var trace = d.trace || d[0].trace;\n stylePoints(sel, trace, gd);\n });\n\n s.selectAll('g.text').each(function(d) {\n var sel = d3.select(this);\n var trace = d.trace || d[0].trace;\n styleText(sel, trace, gd);\n });\n\n s.selectAll('g.trace path.js-line')\n .call(Drawing.lineGroupStyle);\n\n s.selectAll('g.trace path.js-fill')\n .call(Drawing.fillGroupStyle);\n\n Registry.getComponentMethod('errorbars', 'style')(s);\n}\n\nfunction stylePoints(sel, trace, gd) {\n Drawing.pointStyle(sel.selectAll('path.point'), trace, gd);\n}\n\nfunction styleText(sel, trace, gd) {\n Drawing.textPointStyle(sel.selectAll('text'), trace, gd);\n}\n\nfunction styleOnSelect(gd, cd, sel) {\n var trace = cd[0].trace;\n\n if(trace.selectedpoints) {\n Drawing.selectedPointStyle(sel.selectAll('path.point'), trace);\n Drawing.selectedTextStyle(sel.selectAll('text'), trace);\n } else {\n stylePoints(sel, trace, gd);\n styleText(sel, trace, gd);\n }\n}\n\nmodule.exports = {\n style: style,\n stylePoints: stylePoints,\n styleText: styleText,\n styleOnSelect: styleOnSelect\n};\n\n\n/***/ }),\n\n/***/ \"5319\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(\"d784\");\nvar anObject = __webpack_require__(\"825a\");\nvar toObject = __webpack_require__(\"7b0b\");\nvar toLength = __webpack_require__(\"50c4\");\nvar toInteger = __webpack_require__(\"a691\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\nvar advanceStringIndex = __webpack_require__(\"8aa5\");\nvar regExpExec = __webpack_require__(\"14c3\");\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"531f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar glslify = __webpack_require__(\"e98f\")\nvar createShader = __webpack_require__(\"28dd\")\n\nvar vertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, offset;\\nattribute vec4 color;\\nuniform mat4 model, view, projection;\\nuniform float capSize;\\nvarying vec4 fragColor;\\nvarying vec3 fragPosition;\\n\\nvoid main() {\\n vec4 worldPosition = model * vec4(position, 1.0);\\n worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\\n gl_Position = projection * view * worldPosition;\\n fragColor = color;\\n fragPosition = position;\\n}\"])\nvar fragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float opacity;\\nvarying vec3 fragPosition;\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n if (\\n outOfRange(clipBounds[0], clipBounds[1], fragPosition) ||\\n fragColor.a * opacity == 0.\\n ) discard;\\n\\n gl_FragColor = opacity * fragColor;\\n}\"])\n\nmodule.exports = function(gl) {\n return createShader(gl, vertSrc, fragSrc, null, [\n {name: 'position', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'offset', type: 'vec3'}\n ])\n}\n\n\n/***/ }),\n\n/***/ \"5348\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar isosurfaceAttrs = __webpack_require__(\"a08c\");\nvar baseAttrs = __webpack_require__(\"a876\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar attrs = module.exports = overrideAll(extendFlat({\n x: isosurfaceAttrs.x,\n y: isosurfaceAttrs.y,\n z: isosurfaceAttrs.z,\n value: isosurfaceAttrs.value,\n isomin: isosurfaceAttrs.isomin,\n isomax: isosurfaceAttrs.isomax,\n surface: isosurfaceAttrs.surface,\n spaceframe: {\n show: {\n valType: 'boolean',\n \n dflt: false,\n \n },\n fill: {\n valType: 'number',\n \n min: 0,\n max: 1,\n dflt: 1,\n \n }\n },\n\n slices: isosurfaceAttrs.slices,\n caps: isosurfaceAttrs.caps,\n text: isosurfaceAttrs.text,\n hovertext: isosurfaceAttrs.hovertext,\n hovertemplate: isosurfaceAttrs.hovertemplate\n},\n\ncolorScaleAttrs('', {\n colorAttr: '`value`',\n showScaleDflt: true,\n editTypeOverride: 'calc'\n}), {\n\n colorbar: isosurfaceAttrs.colorbar,\n opacity: isosurfaceAttrs.opacity,\n opacityscale: {\n valType: 'any',\n \n editType: 'calc',\n \n },\n\n lightposition: isosurfaceAttrs.lightposition,\n lighting: isosurfaceAttrs.lighting,\n flatshading: isosurfaceAttrs.flatshading,\n contour: isosurfaceAttrs.contour,\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})\n}), 'calc', 'nested');\n\nattrs.x.editType = attrs.y.editType = attrs.z.editType = attrs.value.editType = 'calc+clearAxisTypes';\nattrs.transforms = undefined;\n\n\n/***/ }),\n\n/***/ \"535c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar baseAttrs = __webpack_require__(\"a876\");\nvar scatterMapboxAttrs = __webpack_require__(\"74b4\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\n/*\n * - https://docs.mapbox.com/help/tutorials/make-a-heatmap-with-mapbox-gl-js/\n * - https://docs.mapbox.com/mapbox-gl-js/example/heatmap-layer/\n * - https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers-heatmap\n * - https://blog.mapbox.com/introducing-heatmaps-in-mapbox-gl-js-71355ada9e6c\n *\n * Gotchas:\n * - https://github.com/mapbox/mapbox-gl-js/issues/6463\n * - https://github.com/mapbox/mapbox-gl-js/issues/6112\n */\n\n/*\n *\n * In mathematical terms, Mapbox GL heatmaps are a bivariate (2D) kernel density\n * estimation with a Gaussian kernel. It means that each data point has an area\n * of “influence” around it (called a kernel) where the numerical value of\n * influence (which we call density) decreases as you go further from the point.\n * If we sum density values of all points in every pixel of the screen, we get a\n * combined density value which we then map to a heatmap color.\n *\n */\n\nmodule.exports = extendFlat({\n lon: scatterMapboxAttrs.lon,\n lat: scatterMapboxAttrs.lat,\n\n z: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n radius: {\n valType: 'number',\n \n editType: 'plot',\n arrayOk: true,\n min: 1,\n dflt: 30,\n \n },\n\n below: {\n valType: 'string',\n \n editType: 'plot',\n \n },\n\n text: scatterMapboxAttrs.text,\n hovertext: scatterMapboxAttrs.hovertext,\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: ['lon', 'lat', 'z', 'text', 'name']\n }),\n hovertemplate: hovertemplateAttrs(),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})\n},\n colorScaleAttrs('', {\n cLetter: 'z',\n editTypeOverride: 'calc'\n })\n);\n\n\n/***/ }),\n\n/***/ \"5374\":\n/***/ (function(module, exports) {\n\nmodule.exports = min\n\n/**\n * Returns the minimum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {vec4} out\n */\nfunction min (out, a, b) {\n out[0] = Math.min(a[0], b[0])\n out[1] = Math.min(a[1], b[1])\n out[2] = Math.min(a[2], b[2])\n out[3] = Math.min(a[3], b[3])\n return out\n}\n\n\n/***/ }),\n\n/***/ \"538c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar geoUtils = __webpack_require__(\"0919\");\nvar getTopojsonFeatures = __webpack_require__(\"c400\").getTopojsonFeatures;\nvar findExtremes = __webpack_require__(\"ce56\").findExtremes;\n\nvar style = __webpack_require__(\"e7ab\").style;\n\nfunction plot(gd, geo, calcData) {\n var choroplethLayer = geo.layers.backplot.select('.choroplethlayer');\n\n Lib.makeTraceGroups(choroplethLayer, calcData, 'trace choropleth').each(function(calcTrace) {\n var sel = d3.select(this);\n\n var paths = sel.selectAll('path.choroplethlocation')\n .data(Lib.identity);\n\n paths.enter().append('path')\n .classed('choroplethlocation', true);\n\n paths.exit().remove();\n\n // call style here within topojson request callback\n style(gd, calcTrace);\n });\n}\n\nfunction calcGeoJSON(calcTrace, fullLayout) {\n var trace = calcTrace[0].trace;\n var geoLayout = fullLayout[trace.geo];\n var geo = geoLayout._subplot;\n var locationmode = trace.locationmode;\n var len = trace._length;\n\n var features = locationmode === 'geojson-id' ?\n geoUtils.extractTraceFeature(calcTrace) :\n getTopojsonFeatures(trace, geo.topojson);\n\n var lonArray = [];\n var latArray = [];\n\n for(var i = 0; i < len; i++) {\n var calcPt = calcTrace[i];\n var feature = locationmode === 'geojson-id' ?\n calcPt.fOut :\n geoUtils.locationToFeature(locationmode, calcPt.loc, features);\n\n if(feature) {\n calcPt.geojson = feature;\n calcPt.ct = feature.properties.ct;\n calcPt._polygons = geoUtils.feature2polygons(feature);\n\n var bboxFeature = geoUtils.computeBbox(feature);\n lonArray.push(bboxFeature[0], bboxFeature[2]);\n latArray.push(bboxFeature[1], bboxFeature[3]);\n } else {\n calcPt.geojson = null;\n }\n }\n\n if(geoLayout.fitbounds === 'geojson' && locationmode === 'geojson-id') {\n var bboxGeojson = geoUtils.computeBbox(geoUtils.getTraceGeojson(trace));\n lonArray = [bboxGeojson[0], bboxGeojson[2]];\n latArray = [bboxGeojson[1], bboxGeojson[3]];\n }\n\n var opts = {padded: true};\n trace._extremes.lon = findExtremes(geoLayout.lonaxis._ax, lonArray, opts);\n trace._extremes.lat = findExtremes(geoLayout.lataxis._ax, latArray, opts);\n}\n\nmodule.exports = {\n calcGeoJSON: calcGeoJSON,\n plot: plot\n};\n\n\n/***/ }),\n\n/***/ \"53a5\":\n/***/ (function(module, exports) {\n\nmodule.exports = clamp\n\nfunction clamp(value, min, max) {\n return min < max\n ? (value < min ? min : value > max ? max : value)\n : (value < max ? max : value > min ? min : value)\n}\n\n\n/***/ }),\n\n/***/ \"53cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = stronglyConnectedComponents\n\nfunction stronglyConnectedComponents(adjList) {\n var numVertices = adjList.length;\n var index = new Array(numVertices)\n var lowValue = new Array(numVertices)\n var active = new Array(numVertices)\n var child = new Array(numVertices)\n var scc = new Array(numVertices)\n var sccLinks = new Array(numVertices)\n \n //Initialize tables\n for(var i=0; i 0) {\n v = T[T.length-1]\n var e = adjList[v]\n if (child[v] < e.length) { // If we're not done iterating over the children, first try finishing that.\n for(var i=child[v]; i= 0) {\n // Node v is not yet assigned an scc, but once it is that scc can apparently reach scc[u].\n sccLinks[v].push(scc[u])\n }\n }\n child[v] = i // Remember where we left off.\n } else { // If we're done iterating over the children, check whether we have an scc.\n if(lowValue[v] === index[v]) { // TODO: It /might/ be true that T is always a prefix of S (at this point!!!), and if so, this could be used here.\n var component = []\n var links = [], linkCount = 0\n for(var i=S.length-1; i>=0; --i) {\n var w = S[i]\n active[w] = false\n component.push(w)\n links.push(sccLinks[w])\n linkCount += sccLinks[w].length\n scc[w] = components.length\n if(w === v) {\n S.length = i\n break\n }\n }\n components.push(component)\n var allLinks = new Array(linkCount)\n for(var i=0; i= numVertices - 0.5) { // Note: the indices would be rounded -0.49 is valid.\n return false;\n }\n }\n return true;\n}\n\nproto.update = function(data) {\n var scene = this.scene;\n var layout = scene.fullSceneLayout;\n\n this.data = data;\n\n var numVertices = data.x.length;\n\n var positions = zip3(\n toDataCoords(layout.xaxis, data.x, scene.dataScale[0], data.xcalendar),\n toDataCoords(layout.yaxis, data.y, scene.dataScale[1], data.ycalendar),\n toDataCoords(layout.zaxis, data.z, scene.dataScale[2], data.zcalendar)\n );\n\n var cells;\n if(data.i && data.j && data.k) {\n if(\n data.i.length !== data.j.length ||\n data.j.length !== data.k.length ||\n !hasValidIndices(data.i, numVertices) ||\n !hasValidIndices(data.j, numVertices) ||\n !hasValidIndices(data.k, numVertices)\n ) {\n return;\n }\n cells = zip3(\n toRoundIndex(data.i),\n toRoundIndex(data.j),\n toRoundIndex(data.k)\n );\n } else if(data.alphahull === 0) {\n cells = convexHull(positions);\n } else if(data.alphahull > 0) {\n cells = alphaShape(data.alphahull, positions);\n } else {\n cells = delaunayCells(data.delaunayaxis, positions);\n }\n\n var config = {\n positions: positions,\n cells: cells,\n lightPosition: [data.lightposition.x, data.lightposition.y, data.lightposition.z],\n ambient: data.lighting.ambient,\n diffuse: data.lighting.diffuse,\n specular: data.lighting.specular,\n roughness: data.lighting.roughness,\n fresnel: data.lighting.fresnel,\n vertexNormalsEpsilon: data.lighting.vertexnormalsepsilon,\n faceNormalsEpsilon: data.lighting.facenormalsepsilon,\n opacity: data.opacity,\n contourEnable: data.contour.show,\n contourColor: str2RgbaArray(data.contour.color).slice(0, 3),\n contourWidth: data.contour.width,\n useFacetNormals: data.flatshading\n };\n\n if(data.intensity) {\n var cOpts = extractOpts(data);\n this.color = '#fff';\n var mode = data.intensitymode;\n config[mode + 'Intensity'] = data.intensity;\n config[mode + 'IntensityBounds'] = [cOpts.min, cOpts.max];\n config.colormap = parseColorScale(data);\n } else if(data.vertexcolor) {\n this.color = data.vertexcolor[0];\n config.vertexColors = parseColorArray(data.vertexcolor);\n } else if(data.facecolor) {\n this.color = data.facecolor[0];\n config.cellColors = parseColorArray(data.facecolor);\n } else {\n this.color = data.color;\n config.meshColor = str2RgbaArray(data.color);\n }\n\n // Update mesh\n this.mesh.update(config);\n};\n\nproto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n};\n\nfunction createMesh3DTrace(scene, data) {\n var gl = scene.glplot.gl;\n var mesh = createMesh({gl: gl});\n var result = new Mesh3DTrace(scene, mesh, data.uid);\n mesh._trace = result;\n result.update(data);\n scene.glplot.add(mesh);\n return result;\n}\n\nmodule.exports = createMesh3DTrace;\n\n\n/***/ }),\n\n/***/ \"54ea\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\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/* http://keith-wood.name/calendars.html\n Calendars extras for jQuery v2.0.2.\n Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar assign = __webpack_require__(\"320c\");\nvar main = __webpack_require__(\"0230\");\n\n\nassign(main.regionalOptions[''], {\n invalidArguments: 'Invalid arguments',\n invalidFormat: 'Cannot format a date from another calendar',\n missingNumberAt: 'Missing number at position {0}',\n unknownNameAt: 'Unknown name at position {0}',\n unexpectedLiteralAt: 'Unexpected literal at position {0}',\n unexpectedText: 'Additional text found at end'\n});\nmain.local = main.regionalOptions[''];\n\nassign(main.cdate.prototype, {\n\n /** Format this date.\n Found in the jquery.calendars.plus.js module.\n @memberof CDate\n @param [format] {string} The date format to use (see formatDate).\n @param [settings] {object} Options for the formatDate function.\n @return {string} The formatted date. */\n formatDate: function(format, settings) {\n if (typeof format !== 'string') {\n settings = format;\n format = '';\n }\n return this._calendar.formatDate(format || '', this, settings);\n }\n});\n\nassign(main.baseCalendar.prototype, {\n\n UNIX_EPOCH: main.instance().newDate(1970, 1, 1).toJD(),\n SECS_PER_DAY: 24 * 60 * 60,\n TICKS_EPOCH: main.instance().jdEpoch, // 1 January 0001 CE\n TICKS_PER_DAY: 24 * 60 * 60 * 10000000,\n\n /** Date form for ATOM (RFC 3339/ISO 8601).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n ATOM: 'yyyy-mm-dd',\n /** Date form for cookies.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n COOKIE: 'D, dd M yyyy',\n /** Date form for full date.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n FULL: 'DD, MM d, yyyy',\n /** Date form for ISO 8601.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n ISO_8601: 'yyyy-mm-dd',\n /** Date form for Julian date.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n JULIAN: 'J',\n /** Date form for RFC 822.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_822: 'D, d M yy',\n /** Date form for RFC 850.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_850: 'DD, dd-M-yy',\n /** Date form for RFC 1036.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_1036: 'D, d M yy',\n /** Date form for RFC 1123.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_1123: 'D, d M yyyy',\n /** Date form for RFC 2822.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_2822: 'D, d M yyyy',\n /** Date form for RSS (RFC 822).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RSS: 'D, d M yy',\n /** Date form for Windows ticks.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n TICKS: '!',\n /** Date form for Unix timestamp.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n TIMESTAMP: '@',\n /** Date form for W3c (ISO 8601).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n W3C: 'yyyy-mm-dd',\n\n /** Format a date object into a string value.\n The format can be combinations of the following:\n

    \n
  • d - day of month (no leading zero)
  • \n
  • dd - day of month (two digit)
  • \n
  • o - day of year (no leading zeros)
  • \n
  • oo - day of year (three digit)
  • \n
  • D - day name short
  • \n
  • DD - day name long
  • \n
  • w - week of year (no leading zero)
  • \n
  • ww - week of year (two digit)
  • \n
  • m - month of year (no leading zero)
  • \n
  • mm - month of year (two digit)
  • \n
  • M - month name short
  • \n
  • MM - month name long
  • \n
  • yy - year (two digit)
  • \n
  • yyyy - year (four digit)
  • \n
  • YYYY - formatted year
  • \n
  • J - Julian date (days since January 1, 4713 BCE Greenwich noon)
  • \n
  • @ - Unix timestamp (s since 01/01/1970)
  • \n
  • ! - Windows ticks (100ns since 01/01/0001)
  • \n
  • '...' - literal text
  • \n
  • '' - single quote
  • \n
\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param [format] {string} The desired format of the date (defaults to calendar format).\n @param date {CDate} The date value to format.\n @param [settings] {object} Addition options, whose attributes include:\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @property [calculateWeek] {CalendarsPickerCalculateWeek} Function that determines week of the year.\n @property [localNumbers=false] {boolean} true to localise numbers (if available),\n false to use normal Arabic numerals.\n @return {string} The date in the above format.\n @throws Errors if the date is from a different calendar. */\n formatDate: function(format, date, settings) {\n if (typeof format !== 'string') {\n settings = date;\n date = format;\n format = '';\n }\n if (!date) {\n return '';\n }\n if (date.calendar() !== this) {\n throw main.local.invalidFormat || main.regionalOptions[''].invalidFormat;\n }\n format = format || this.local.dateFormat;\n settings = settings || {};\n var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort;\n var dayNames = settings.dayNames || this.local.dayNames;\n var monthNumbers = settings.monthNumbers || this.local.monthNumbers;\n var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort;\n var monthNames = settings.monthNames || this.local.monthNames;\n var calculateWeek = settings.calculateWeek || this.local.calculateWeek;\n // Check whether a format character is doubled\n var doubled = function(match, step) {\n var matches = 1;\n while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) {\n matches++;\n }\n iFormat += matches - 1;\n return Math.floor(matches / (step || 1)) > 1;\n };\n // Format a number, with leading zeroes if necessary\n var formatNumber = function(match, value, len, step) {\n var num = '' + value;\n if (doubled(match, step)) {\n while (num.length < len) {\n num = '0' + num;\n }\n }\n return num;\n };\n // Format a name, short or long as requested\n var formatName = function(match, value, shortNames, longNames) {\n return (doubled(match) ? longNames[value] : shortNames[value]);\n };\n // Format month number\n // (e.g. Chinese calendar needs to account for intercalary months)\n var calendar = this;\n var formatMonth = function(date) {\n return (typeof monthNumbers === 'function') ?\n monthNumbers.call(calendar, date, doubled('m')) :\n localiseNumbers(formatNumber('m', date.month(), 2));\n };\n // Format a month name, short or long as requested\n var formatMonthName = function(date, useLongName) {\n if (useLongName) {\n return (typeof monthNames === 'function') ?\n monthNames.call(calendar, date) :\n monthNames[date.month() - calendar.minMonth];\n } else {\n return (typeof monthNamesShort === 'function') ?\n monthNamesShort.call(calendar, date) :\n monthNamesShort[date.month() - calendar.minMonth];\n }\n };\n // Localise numbers if requested and available\n var digits = this.local.digits;\n var localiseNumbers = function(value) {\n return (settings.localNumbers && digits ? digits(value) : value);\n };\n var output = '';\n var literal = false;\n for (var iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !doubled(\"'\")) {\n literal = false;\n }\n else {\n output += format.charAt(iFormat);\n }\n }\n else {\n switch (format.charAt(iFormat)) {\n case 'd': output += localiseNumbers(formatNumber('d', date.day(), 2)); break;\n case 'D': output += formatName('D', date.dayOfWeek(),\n dayNamesShort, dayNames); break;\n case 'o': output += formatNumber('o', date.dayOfYear(), 3); break;\n case 'w': output += formatNumber('w', date.weekOfYear(), 2); break;\n case 'm': output += formatMonth(date); break;\n case 'M': output += formatMonthName(date, doubled('M')); break;\n case 'y':\n output += (doubled('y', 2) ? date.year() :\n (date.year() % 100 < 10 ? '0' : '') + date.year() % 100);\n break;\n case 'Y':\n doubled('Y', 2);\n output += date.formatYear();\n break;\n case 'J': output += date.toJD(); break;\n case '@': output += (date.toJD() - this.UNIX_EPOCH) * this.SECS_PER_DAY; break;\n case '!': output += (date.toJD() - this.TICKS_EPOCH) * this.TICKS_PER_DAY; break;\n case \"'\":\n if (doubled(\"'\")) {\n output += \"'\";\n }\n else {\n literal = true;\n }\n break;\n default:\n output += format.charAt(iFormat);\n }\n }\n }\n return output;\n },\n\n /** Parse a string value into a date object.\n See formatDate for the possible formats, plus:\n
    \n
  • * - ignore rest of string
  • \n
\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param format {string} The expected format of the date ('' for default calendar format).\n @param value {string} The date in the above format.\n @param [settings] {object} Additional options whose attributes include:\n @property [shortYearCutoff] {number} The cutoff year for determining the century.\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @return {CDate} The extracted date value or null if value is blank.\n @throws Errors if the format and/or value are missing,\n if the value doesn't match the format, or if the date is invalid. */\n parseDate: function(format, value, settings) {\n if (value == null) {\n throw main.local.invalidArguments || main.regionalOptions[''].invalidArguments;\n }\n value = (typeof value === 'object' ? value.toString() : value + '');\n if (value === '') {\n return null;\n }\n format = format || this.local.dateFormat;\n settings = settings || {};\n var shortYearCutoff = settings.shortYearCutoff || this.shortYearCutoff;\n shortYearCutoff = (typeof shortYearCutoff !== 'string' ? shortYearCutoff :\n this.today().year() % 100 + parseInt(shortYearCutoff, 10));\n var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort;\n var dayNames = settings.dayNames || this.local.dayNames;\n var parseMonth = settings.parseMonth || this.local.parseMonth;\n var monthNumbers = settings.monthNumbers || this.local.monthNumbers;\n var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort;\n var monthNames = settings.monthNames || this.local.monthNames;\n var jd = -1;\n var year = -1;\n var month = -1;\n var day = -1;\n var doy = -1;\n var shortYear = false;\n var literal = false;\n // Check whether a format character is doubled\n var doubled = function(match, step) {\n var matches = 1;\n while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) {\n matches++;\n }\n iFormat += matches - 1;\n return Math.floor(matches / (step || 1)) > 1;\n };\n // Extract a number from the string value\n var getNumber = function(match, step) {\n var isDoubled = doubled(match, step);\n var size = [2, 3, isDoubled ? 4 : 2, isDoubled ? 4 : 2, 10, 11, 20]['oyYJ@!'.indexOf(match) + 1];\n var digits = new RegExp('^-?\\\\d{1,' + size + '}');\n var num = value.substring(iValue).match(digits);\n if (!num) {\n throw (main.local.missingNumberAt || main.regionalOptions[''].missingNumberAt).\n replace(/\\{0\\}/, iValue);\n }\n iValue += num[0].length;\n return parseInt(num[0], 10);\n };\n // Extract a month number from the string value\n var calendar = this;\n var getMonthNumber = function() {\n if (typeof monthNumbers === 'function') {\n doubled('m'); // update iFormat\n var month = monthNumbers.call(calendar, value.substring(iValue));\n iValue += month.length;\n return month;\n }\n\n return getNumber('m');\n };\n // Extract a name from the string value and convert to an index\n var getName = function(match, shortNames, longNames, step) {\n var names = (doubled(match, step) ? longNames : shortNames);\n for (var i = 0; i < names.length; i++) {\n if (value.substr(iValue, names[i].length).toLowerCase() === names[i].toLowerCase()) {\n iValue += names[i].length;\n return i + calendar.minMonth;\n }\n }\n throw (main.local.unknownNameAt || main.regionalOptions[''].unknownNameAt).\n replace(/\\{0\\}/, iValue);\n };\n // Extract a month number from the string value\n var getMonthName = function() {\n if (typeof monthNames === 'function') {\n var month = doubled('M') ?\n monthNames.call(calendar, value.substring(iValue)) :\n monthNamesShort.call(calendar, value.substring(iValue));\n iValue += month.length;\n return month;\n }\n\n return getName('M', monthNamesShort, monthNames);\n };\n // Confirm that a literal character matches the string value\n var checkLiteral = function() {\n if (value.charAt(iValue) !== format.charAt(iFormat)) {\n throw (main.local.unexpectedLiteralAt ||\n main.regionalOptions[''].unexpectedLiteralAt).replace(/\\{0\\}/, iValue);\n }\n iValue++;\n };\n var iValue = 0;\n for (var iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !doubled(\"'\")) {\n literal = false;\n }\n else {\n checkLiteral();\n }\n }\n else {\n switch (format.charAt(iFormat)) {\n case 'd': day = getNumber('d'); break;\n case 'D': getName('D', dayNamesShort, dayNames); break;\n case 'o': doy = getNumber('o'); break;\n case 'w': getNumber('w'); break;\n case 'm': month = getMonthNumber(); break;\n case 'M': month = getMonthName(); break;\n case 'y':\n var iSave = iFormat;\n shortYear = !doubled('y', 2);\n iFormat = iSave;\n year = getNumber('y', 2);\n break;\n case 'Y': year = getNumber('Y', 2); break;\n case 'J':\n jd = getNumber('J') + 0.5;\n if (value.charAt(iValue) === '.') {\n iValue++;\n getNumber('J');\n }\n break;\n case '@': jd = getNumber('@') / this.SECS_PER_DAY + this.UNIX_EPOCH; break;\n case '!': jd = getNumber('!') / this.TICKS_PER_DAY + this.TICKS_EPOCH; break;\n case '*': iValue = value.length; break;\n case \"'\":\n if (doubled(\"'\")) {\n checkLiteral();\n }\n else {\n literal = true;\n }\n break;\n default: checkLiteral();\n }\n }\n }\n if (iValue < value.length) {\n throw main.local.unexpectedText || main.regionalOptions[''].unexpectedText;\n }\n if (year === -1) {\n year = this.today().year();\n }\n else if (year < 100 && shortYear) {\n year += (shortYearCutoff === -1 ? 1900 : this.today().year() -\n this.today().year() % 100 - (year <= shortYearCutoff ? 0 : 100));\n }\n if (typeof month === 'string') {\n month = parseMonth.call(this, year, month);\n }\n if (doy > -1) {\n month = 1;\n day = doy;\n for (var dim = this.daysInMonth(year, month); day > dim; dim = this.daysInMonth(year, month)) {\n month++;\n day -= dim;\n }\n }\n return (jd > -1 ? this.fromJD(jd) : this.newDate(year, month, day));\n },\n\n /** A date may be specified as an exact value or a relative one.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param dateSpec {CDate|number|string} The date as an object or string in the given format or\n an offset - numeric days from today, or string amounts and periods, e.g. '+1m +2w'.\n @param defaultDate {CDate} The date to use if no other supplied, may be null.\n @param currentDate {CDate} The current date as a possible basis for relative dates,\n if null today is used (optional)\n @param [dateFormat] {string} The expected date format - see formatDate.\n @param [settings] {object} Additional options whose attributes include:\n @property [shortYearCutoff] {number} The cutoff year for determining the century.\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @return {CDate} The decoded date. */\n determineDate: function(dateSpec, defaultDate, currentDate, dateFormat, settings) {\n if (currentDate && typeof currentDate !== 'object') {\n settings = dateFormat;\n dateFormat = currentDate;\n currentDate = null;\n }\n if (typeof dateFormat !== 'string') {\n settings = dateFormat;\n dateFormat = '';\n }\n var calendar = this;\n var offsetString = function(offset) {\n try {\n return calendar.parseDate(dateFormat, offset, settings);\n }\n catch (e) {\n // Ignore\n }\n offset = offset.toLowerCase();\n var date = (offset.match(/^c/) && currentDate ?\n currentDate.newDate() : null) || calendar.today();\n var pattern = /([+-]?[0-9]+)\\s*(d|w|m|y)?/g;\n var matches = pattern.exec(offset);\n while (matches) {\n date.add(parseInt(matches[1], 10), matches[2] || 'd');\n matches = pattern.exec(offset);\n }\n return date;\n };\n defaultDate = (defaultDate ? defaultDate.newDate() : null);\n dateSpec = (dateSpec == null ? defaultDate :\n (typeof dateSpec === 'string' ? offsetString(dateSpec) : (typeof dateSpec === 'number' ?\n (isNaN(dateSpec) || dateSpec === Infinity || dateSpec === -Infinity ? defaultDate :\n calendar.today().add(dateSpec, 'd')) : calendar.newDate(dateSpec))));\n return dateSpec;\n }\n});\n\n\n\n/***/ }),\n\n/***/ \"5506\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Polar = module.exports = __webpack_require__(\"3a99\");\n\nPolar.manager = __webpack_require__(\"2381\");\n\n\n/***/ }),\n\n/***/ \"551a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar DEFAULT_VERTEX_NORMALS_EPSILON = 1e-6; // may be too large if triangles are very small\nvar DEFAULT_FACE_NORMALS_EPSILON = 1e-6;\n\nvar createShader = __webpack_require__(\"28dd\")\nvar createBuffer = __webpack_require__(\"efce\")\nvar createVAO = __webpack_require__(\"b205\")\nvar createTexture = __webpack_require__(\"1d5b\")\nvar normals = __webpack_require__(\"075f\")\nvar multiply = __webpack_require__(\"1417\")\nvar invert = __webpack_require__(\"9343\")\nvar ndarray = __webpack_require__(\"b5bb\")\nvar colormap = __webpack_require__(\"595c\")\nvar getContour = __webpack_require__(\"b7f8\")\nvar pool = __webpack_require__(\"cea5\")\nvar shaders = __webpack_require__(\"38eb\")\nvar closestPoint = __webpack_require__(\"b82b\")\n\nvar meshShader = shaders.meshShader\nvar wireShader = shaders.wireShader\nvar pointShader = shaders.pointShader\nvar pickShader = shaders.pickShader\nvar pointPickShader = shaders.pointPickShader\nvar contourShader = shaders.contourShader\n\nvar IDENTITY = [\n 1,0,0,0,\n 0,1,0,0,\n 0,0,1,0,\n 0,0,0,1]\n\n\nfunction SimplicialMesh(gl\n , texture\n , triShader\n , lineShader\n , pointShader\n , pickShader\n , pointPickShader\n , contourShader\n , trianglePositions\n , triangleIds\n , triangleColors\n , triangleUVs\n , triangleNormals\n , triangleVAO\n , edgePositions\n , edgeIds\n , edgeColors\n , edgeUVs\n , edgeVAO\n , pointPositions\n , pointIds\n , pointColors\n , pointUVs\n , pointSizes\n , pointVAO\n , contourPositions\n , contourVAO) {\n\n this.gl = gl\n this.pixelRatio = 1\n this.cells = []\n this.positions = []\n this.intensity = []\n this.texture = texture\n this.dirty = true\n\n this.triShader = triShader\n this.lineShader = lineShader\n this.pointShader = pointShader\n this.pickShader = pickShader\n this.pointPickShader = pointPickShader\n this.contourShader = contourShader\n\n this.trianglePositions = trianglePositions\n this.triangleColors = triangleColors\n this.triangleNormals = triangleNormals\n this.triangleUVs = triangleUVs\n this.triangleIds = triangleIds\n this.triangleVAO = triangleVAO\n this.triangleCount = 0\n\n this.lineWidth = 1\n this.edgePositions = edgePositions\n this.edgeColors = edgeColors\n this.edgeUVs = edgeUVs\n this.edgeIds = edgeIds\n this.edgeVAO = edgeVAO\n this.edgeCount = 0\n\n this.pointPositions = pointPositions\n this.pointColors = pointColors\n this.pointUVs = pointUVs\n this.pointSizes = pointSizes\n this.pointIds = pointIds\n this.pointVAO = pointVAO\n this.pointCount = 0\n\n this.contourLineWidth = 1\n this.contourPositions = contourPositions\n this.contourVAO = contourVAO\n this.contourCount = 0\n this.contourColor = [0,0,0]\n this.contourEnable = true\n\n this.pickId = 1\n this.bounds = [\n [ Infinity, Infinity, Infinity],\n [-Infinity,-Infinity,-Infinity] ]\n this.clipBounds = [\n [-Infinity,-Infinity,-Infinity],\n [ Infinity, Infinity, Infinity] ]\n\n this.lightPosition = [1e5, 1e5, 0]\n this.ambientLight = 0.8\n this.diffuseLight = 0.8\n this.specularLight = 2.0\n this.roughness = 0.5\n this.fresnel = 1.5\n\n this.opacity = 1.0\n this.hasAlpha = false\n this.opacityscale = false\n\n this._model = IDENTITY\n this._view = IDENTITY\n this._projection = IDENTITY\n this._resolution = [1,1]\n}\n\nvar proto = SimplicialMesh.prototype\n\nproto.isOpaque = function() {\n return !this.hasAlpha\n}\n\nproto.isTransparent = function() {\n return this.hasAlpha\n}\n\nproto.pickSlots = 1\n\nproto.setPickBase = function(id) {\n this.pickId = id\n}\n\nfunction getOpacityFromScale(ratio, opacityscale) {\n\n if(!opacityscale) return 1\n if(!opacityscale.length) return 1\n\n for(var i = 0; i < opacityscale.length; ++i) {\n if(opacityscale.length < 2) return 1\n if(opacityscale[i][0] === ratio) return opacityscale[i][1]\n if(opacityscale[i][0] > ratio && i > 0) {\n var d = (opacityscale[i][0] - ratio) / (opacityscale[i][0] - opacityscale[i - 1][0])\n return opacityscale[i][1] * (1 - d) + d * opacityscale[i - 1][1]\n }\n }\n\n return 1\n}\n\nfunction genColormap(param, opacityscale) {\n var colors = colormap({\n colormap: param\n , nshades: 256\n , format: 'rgba'\n })\n\n var result = new Uint8Array(256*4)\n for(var i=0; i<256; ++i) {\n var c = colors[i]\n for(var j=0; j<3; ++j) {\n result[4*i+j] = c[j]\n }\n if(!opacityscale) {\n result[4*i+3] = 255 * c[3]\n } else {\n result[4*i+3] = 255 * getOpacityFromScale(i / 255.0, opacityscale)\n }\n }\n\n return ndarray(result, [256,256,4], [4,0,1])\n}\n\nfunction unpackIntensity(cells, numVerts, cellIntensity) {\n var result = new Array(numVerts)\n for(var i=0; i 0) {\n var shader = this.triShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.triangleVAO.bind()\n gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3)\n this.triangleVAO.unbind()\n }\n\n if(this.edgeCount > 0 && this.lineWidth > 0) {\n var shader = this.lineShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.edgeVAO.bind()\n gl.lineWidth(this.lineWidth * this.pixelRatio)\n gl.drawArrays(gl.LINES, 0, this.edgeCount*2)\n this.edgeVAO.unbind()\n }\n\n if(this.pointCount > 0) {\n var shader = this.pointShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.pointVAO.bind()\n gl.drawArrays(gl.POINTS, 0, this.pointCount)\n this.pointVAO.unbind()\n }\n\n if(this.contourEnable && this.contourCount > 0 && this.contourLineWidth > 0) {\n var shader = this.contourShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.contourVAO.bind()\n gl.drawArrays(gl.LINES, 0, this.contourCount)\n this.contourVAO.unbind()\n }\n}\n\nproto.drawPick = function(params) {\n params = params || {}\n\n var gl = this.gl\n\n var model = params.model || IDENTITY\n var view = params.view || IDENTITY\n var projection = params.projection || IDENTITY\n\n var clipBounds = [[-1e6,-1e6,-1e6],[1e6,1e6,1e6]]\n for(var i=0; i<3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i])\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i])\n }\n\n //Save camera parameters\n this._model = [].slice.call(model)\n this._view = [].slice.call(view)\n this._projection = [].slice.call(projection)\n this._resolution = [gl.drawingBufferWidth, gl.drawingBufferHeight]\n\n var uniforms = {\n model: model,\n view: view,\n projection: projection,\n clipBounds: clipBounds,\n pickId: this.pickId / 255.0,\n }\n\n var shader = this.pickShader\n shader.bind()\n shader.uniforms = uniforms\n\n if(this.triangleCount > 0) {\n this.triangleVAO.bind()\n gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3)\n this.triangleVAO.unbind()\n }\n\n if(this.edgeCount > 0) {\n this.edgeVAO.bind()\n gl.lineWidth(this.lineWidth * this.pixelRatio)\n gl.drawArrays(gl.LINES, 0, this.edgeCount*2)\n this.edgeVAO.unbind()\n }\n\n if(this.pointCount > 0) {\n var shader = this.pointPickShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.pointVAO.bind()\n gl.drawArrays(gl.POINTS, 0, this.pointCount)\n this.pointVAO.unbind()\n }\n}\n\n\nproto.pick = function(pickData) {\n if(!pickData) {\n return null\n }\n if(pickData.id !== this.pickId) {\n return null\n }\n\n var cellId = pickData.value[0] + 256*pickData.value[1] + 65536*pickData.value[2]\n var cell = this.cells[cellId]\n var positions = this.positions\n\n var simplex = new Array(cell.length)\n for(var i=0; i 0;\n\n traces.each(function(d) {\n var trace = d[0].trace;\n // || {} is in case the trace (specifically scatterternary)\n // doesn't support error bars at all, but does go through\n // the scatter.plot mechanics, which calls ErrorBars.plot\n // internally\n var xObj = trace.error_x || {};\n var yObj = trace.error_y || {};\n\n var keyFunc;\n\n if(trace.ids) {\n keyFunc = function(d) {return d.id;};\n }\n\n var sparse = (\n subTypes.hasMarkers(trace) &&\n trace.marker.maxdisplayed > 0\n );\n\n if(!yObj.visible && !xObj.visible) d = [];\n\n var errorbars = d3.select(this).selectAll('g.errorbar')\n .data(d, keyFunc);\n\n errorbars.exit().remove();\n\n if(!d.length) return;\n\n if(!xObj.visible) errorbars.selectAll('path.xerror').remove();\n if(!yObj.visible) errorbars.selectAll('path.yerror').remove();\n\n errorbars.style('opacity', 1);\n\n var enter = errorbars.enter().append('g')\n .classed('errorbar', true);\n\n if(hasAnimation) {\n enter.style('opacity', 0).transition()\n .duration(transitionOpts.duration)\n .style('opacity', 1);\n }\n\n Drawing.setClipUrl(errorbars, plotinfo.layerClipId, gd);\n\n errorbars.each(function(d) {\n var errorbar = d3.select(this);\n var coords = errorCoords(d, xa, ya);\n\n if(sparse && !d.vis) return;\n\n var path;\n\n var yerror = errorbar.select('path.yerror');\n if(yObj.visible && isNumeric(coords.x) &&\n isNumeric(coords.yh) &&\n isNumeric(coords.ys)) {\n var yw = yObj.width;\n\n path = 'M' + (coords.x - yw) + ',' +\n coords.yh + 'h' + (2 * yw) + // hat\n 'm-' + yw + ',0V' + coords.ys; // bar\n\n\n if(!coords.noYS) path += 'm-' + yw + ',0h' + (2 * yw); // shoe\n\n isNew = !yerror.size();\n\n if(isNew) {\n yerror = errorbar.append('path')\n .style('vector-effect', 'non-scaling-stroke')\n .classed('yerror', true);\n } else if(hasAnimation) {\n yerror = yerror\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing);\n }\n\n yerror.attr('d', path);\n } else yerror.remove();\n\n var xerror = errorbar.select('path.xerror');\n if(xObj.visible && isNumeric(coords.y) &&\n isNumeric(coords.xh) &&\n isNumeric(coords.xs)) {\n var xw = (xObj.copy_ystyle ? yObj : xObj).width;\n\n path = 'M' + coords.xh + ',' +\n (coords.y - xw) + 'v' + (2 * xw) + // hat\n 'm0,-' + xw + 'H' + coords.xs; // bar\n\n if(!coords.noXS) path += 'm0,-' + xw + 'v' + (2 * xw); // shoe\n\n isNew = !xerror.size();\n\n if(isNew) {\n xerror = errorbar.append('path')\n .style('vector-effect', 'non-scaling-stroke')\n .classed('xerror', true);\n } else if(hasAnimation) {\n xerror = xerror\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing);\n }\n\n xerror.attr('d', path);\n } else xerror.remove();\n });\n });\n};\n\n// compute the coordinates of the error-bar objects\nfunction errorCoords(d, xa, ya) {\n var out = {\n x: xa.c2p(d.x),\n y: ya.c2p(d.y)\n };\n\n // calculate the error bar size and hat and shoe locations\n if(d.yh !== undefined) {\n out.yh = ya.c2p(d.yh);\n out.ys = ya.c2p(d.ys);\n\n // if the shoes go off-scale (ie log scale, error bars past zero)\n // clip the bar and hide the shoes\n if(!isNumeric(out.ys)) {\n out.noYS = true;\n out.ys = ya.c2p(d.ys, true);\n }\n }\n\n if(d.xh !== undefined) {\n out.xh = xa.c2p(d.xh);\n out.xs = xa.c2p(d.xs);\n\n if(!isNumeric(out.xs)) {\n out.noXS = true;\n out.xs = xa.c2p(d.xs, true);\n }\n }\n\n return out;\n}\n\n\n/***/ }),\n\n/***/ \"5567\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\n\n/**\n * Return news array containing only the unique items\n * found in input array.\n *\n * IMPORTANT: Note that items are considered unique\n * if `String({})` is unique. For example;\n *\n * Lib.filterUnique([ { a: 1 }, { b: 2 } ])\n *\n * returns [{ a: 1 }]\n *\n * and\n *\n * Lib.filterUnique([ '1', 1 ])\n *\n * returns ['1']\n *\n *\n * @param {array} array base array\n * @return {array} new filtered array\n */\nmodule.exports = function filterUnique(array) {\n var seen = {};\n var out = [];\n var j = 0;\n\n for(var i = 0; i < array.length; i++) {\n var item = array[i];\n\n if(seen[item] !== 1) {\n seen[item] = 1;\n out[j++] = item;\n }\n }\n\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"55eb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n eventDataKeys: [\n 'initial',\n 'delta',\n 'final'\n ]\n};\n\n\n/***/ }),\n\n/***/ \"55f6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nvar colorscaleCalc = __webpack_require__(\"3aa8\");\nvar _ = __webpack_require__(\"fc26\")._;\n\nmodule.exports = function calc(gd, trace) {\n var len = trace._length;\n var calcTrace = new Array(len);\n var z = trace.z;\n var hasZ = isArrayOrTypedArray(z) && z.length;\n\n for(var i = 0; i < len; i++) {\n var cdi = calcTrace[i] = {};\n\n var lon = trace.lon[i];\n var lat = trace.lat[i];\n\n cdi.lonlat = isNumeric(lon) && isNumeric(lat) ?\n [+lon, +lat] :\n [BADNUM, BADNUM];\n\n if(hasZ) {\n var zi = z[i];\n cdi.z = isNumeric(zi) ? zi : BADNUM;\n }\n }\n\n colorscaleCalc(gd, trace, {\n vals: hasZ ? z : [0, 1],\n containerStr: '',\n cLetter: 'z'\n });\n\n if(len) {\n calcTrace[0].t = {\n labels: {\n lat: _(gd, 'lat:') + ' ',\n lon: _(gd, 'lon:') + ' '\n }\n };\n }\n\n return calcTrace;\n};\n\n\n/***/ }),\n\n/***/ \"5664\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = earcut;\nmodule.exports.default = earcut;\n\nfunction earcut(data, holeIndices, dim) {\n\n dim = dim || 2;\n\n var hasHoles = holeIndices && holeIndices.length,\n outerLen = hasHoles ? holeIndices[0] * dim : data.length,\n outerNode = linkedList(data, 0, outerLen, dim, true),\n triangles = [];\n\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n\n var minX, minY, maxX, maxY, x, y, invSize;\n\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n\n // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n\n // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 1 / invSize : 0;\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize);\n\n return triangles;\n}\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList(data, start, end, dim, clockwise) {\n var i, last;\n\n if (clockwise === (signedArea(data, start, end, dim) > 0)) {\n for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n } else {\n for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n\n var p = start,\n again;\n do {\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return;\n\n // interlink polygon nodes in z-order\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n\n var stop = ear,\n prev, next;\n\n // iterate through ears, slicing them one by one\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n // cut off the triangle\n triangles.push(prev.i / dim);\n triangles.push(ear.i / dim);\n triangles.push(next.i / dim);\n\n removeNode(ear);\n\n // skipping the next vertex leads to less sliver triangles\n ear = next.next;\n stop = next.next;\n\n continue;\n }\n\n ear = next;\n\n // if we looped through the whole remaining polygon and can't find any more ears\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n\n // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n\n // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n\n break;\n }\n }\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar(ear) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // now make sure we don't have other points inside the potential ear\n var p = ear.next.next;\n\n while (p !== ear.prev) {\n if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n}\n\nfunction isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // triangle bbox; min & max are calculated like this for speed\n var minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x),\n minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y),\n maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x),\n maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);\n\n // z-order range for the current triangle bbox;\n var minZ = zOrder(minTX, minTY, minX, minY, invSize),\n maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);\n\n var p = ear.prevZ,\n n = ear.nextZ;\n\n // look for points inside the triangle in both directions\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n\n if (n !== ear.prev && n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n // look for remaining points in decreasing z-order\n while (p && p.z >= minZ) {\n if (p !== ear.prev && p !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n\n // look for remaining points in increasing z-order\n while (n && n.z <= maxZ) {\n if (n !== ear.prev && n !== ear.next &&\n pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) &&\n area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n return true;\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev,\n b = p.next.next;\n\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n\n triangles.push(a.i / dim);\n triangles.push(p.i / dim);\n triangles.push(b.i / dim);\n\n // remove two nodes involved\n removeNode(p);\n removeNode(p.next);\n\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n\n return filterPoints(p);\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n // look for a valid diagonal that divides the polygon into two\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n var c = splitPolygon(a, b);\n\n // filter colinear points around the cuts\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n\n // run earcut on each half\n earcutLinked(a, triangles, dim, minX, minY, invSize);\n earcutLinked(c, triangles, dim, minX, minY, invSize);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [],\n i, len, start, end, list;\n\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareX);\n\n // process holes from left to right\n for (i = 0; i < queue.length; i++) {\n eliminateHole(queue[i], outerNode);\n outerNode = filterPoints(outerNode, outerNode.next);\n }\n\n return outerNode;\n}\n\nfunction compareX(a, b) {\n return a.x - b.x;\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole(hole, outerNode) {\n outerNode = findHoleBridge(hole, outerNode);\n if (outerNode) {\n var b = splitPolygon(outerNode, hole);\n filterPoints(b, b.next);\n }\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge(hole, outerNode) {\n var p = outerNode,\n hx = hole.x,\n hy = hole.y,\n qx = -Infinity,\n m;\n\n // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n if (x === hx) {\n if (hy === p.y) return p;\n if (hy === p.next.y) return p.next;\n }\n m = p.x < p.next.x ? p : p.next;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null;\n\n if (hx === qx) return m; // hole touches outer segment; pick leftmost endpoint\n\n // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n var stop = m,\n mx = m.x,\n my = m.y,\n tanMin = Infinity,\n tan;\n\n p = m;\n\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x &&\n pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n\n tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if (locallyInside(p, hole) &&\n (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n } while (p !== stop);\n\n return m;\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve(start, minX, minY, invSize) {\n var p = start;\n do {\n if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n\n sortLinked(p);\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked(list) {\n var i, p, q, e, tail, numMerges, pSize, qSize,\n inSize = 1;\n\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n qSize = inSize;\n\n while (pSize > 0 || (qSize > 0 && q)) {\n\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;\n else list = e;\n\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n\n } while (numMerges > 1);\n\n return list;\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder(x, y, minX, minY, invSize) {\n // coords are transformed into non-negative 15-bit integer range\n x = 32767 * (x - minX) * invSize;\n y = 32767 * (y - minY) * invSize;\n\n x = (x | (x << 8)) & 0x00FF00FF;\n x = (x | (x << 4)) & 0x0F0F0F0F;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y = (y | (y << 8)) & 0x00FF00FF;\n y = (y | (y << 4)) & 0x0F0F0F0F;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost(start) {\n var p = start,\n leftmost = start;\n do {\n if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p;\n p = p.next;\n } while (p !== start);\n\n return leftmost;\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 &&\n (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 &&\n (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case\n}\n\n// signed area of a triangle\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\n\n// check if two points are equal\nfunction equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n}\n\n// check if two segments intersect\nfunction intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n\n if (o1 !== o2 && o3 !== o4) return true; // general case\n\n if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n return false;\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n}\n\nfunction sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ?\n area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :\n area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside(a, b) {\n var p = a,\n inside = false,\n px = (a.x + b.x) / 2,\n py = (a.y + b.y) / 2;\n do {\n if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&\n (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))\n inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y),\n b2 = new Node(b.i, b.x, b.y),\n an = a.next,\n bp = b.prev;\n\n a.next = b;\n b.prev = a;\n\n a2.next = an;\n an.prev = a2;\n\n b2.next = a2;\n a2.prev = b2;\n\n bp.next = b2;\n b2.prev = bp;\n\n return b2;\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n}\n\nfunction removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nfunction Node(i, x, y) {\n // vertex index in coordinates array\n this.i = i;\n\n // vertex coordinates\n this.x = x;\n this.y = y;\n\n // previous and next vertex nodes in a polygon ring\n this.prev = null;\n this.next = null;\n\n // z-order curve value\n this.z = null;\n\n // previous and next nodes in z-order\n this.prevZ = null;\n this.nextZ = null;\n\n // indicates whether this is a steiner point\n this.steiner = false;\n}\n\n// return a percentage difference between the polygon area and its triangulation area;\n// used to verify correctness of triangulation\nearcut.deviation = function (data, holeIndices, dim, triangles) {\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n\n var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n if (hasHoles) {\n for (var i = 0, len = holeIndices.length; i < len; i++) {\n var start = holeIndices[i] * dim;\n var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n polygonArea -= Math.abs(signedArea(data, start, end, dim));\n }\n }\n\n var trianglesArea = 0;\n for (i = 0; i < triangles.length; i += 3) {\n var a = triangles[i] * dim;\n var b = triangles[i + 1] * dim;\n var c = triangles[i + 2] * dim;\n trianglesArea += Math.abs(\n (data[a] - data[c]) * (data[b + 1] - data[a + 1]) -\n (data[a] - data[b]) * (data[c + 1] - data[a + 1]));\n }\n\n return polygonArea === 0 && trianglesArea === 0 ? 0 :\n Math.abs((trianglesArea - polygonArea) / polygonArea);\n};\n\nfunction signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n}\n\n// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts\nearcut.flatten = function (data) {\n var dim = data[0][0].length,\n result = {vertices: [], holes: [], dimensions: dim},\n holeIndex = 0;\n\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].length; j++) {\n for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);\n }\n if (i > 0) {\n holeIndex += data[i - 1].length;\n result.holes.push(holeIndex);\n }\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"566e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = boundary\n\nfunction boundary (cells) {\n var i, j, k\n var n = cells.length\n var sz = 0\n for (i = 0; i < n; ++i) {\n sz += cells[i].length\n }\n var result = new Array(sz)\n var ptr = 0\n for (i = 0; i < n; ++i) {\n var c = cells[i]\n var d = c.length\n for (j = 0; j < d; ++j) {\n var b = result[ptr++] = new Array(d - 1)\n var p = 0\n for (k = 0; k < d; ++k) {\n if (k === j) {\n continue\n }\n b[p++] = c[k]\n }\n if (j & 1) {\n var tmp = b[1]\n b[1] = b[0]\n b[0] = tmp\n }\n }\n }\n return result\n}\n\n\n/***/ }),\n\n/***/ \"567e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Axes = __webpack_require__(\"0642\");\nvar handleArrayContainerDefaults = __webpack_require__(\"e5ac\");\n\nvar attributes = __webpack_require__(\"a5cc\");\nvar helpers = __webpack_require__(\"fdc7\");\n\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: 'shapes',\n handleItemDefaults: handleShapeDefaults\n });\n};\n\nfunction handleShapeDefaults(shapeIn, shapeOut, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(shapeIn, shapeOut, attributes, attr, dflt);\n }\n\n var visible = coerce('visible');\n\n if(!visible) return;\n\n coerce('layer');\n coerce('opacity');\n coerce('fillcolor');\n coerce('line.color');\n coerce('line.width');\n coerce('line.dash');\n\n var dfltType = shapeIn.path ? 'path' : 'rect';\n var shapeType = coerce('type', dfltType);\n var xSizeMode = coerce('xsizemode');\n var ySizeMode = coerce('ysizemode');\n\n // positioning\n var axLetters = ['x', 'y'];\n for(var i = 0; i < 2; i++) {\n var axLetter = axLetters[i];\n var attrAnchor = axLetter + 'anchor';\n var sizeMode = axLetter === 'x' ? xSizeMode : ySizeMode;\n var gdMock = {_fullLayout: fullLayout};\n var ax;\n var pos2r;\n var r2pos;\n\n // xref, yref\n var axRef = Axes.coerceRef(shapeIn, shapeOut, gdMock, axLetter, '', 'paper');\n\n if(axRef !== 'paper') {\n ax = Axes.getFromId(gdMock, axRef);\n ax._shapeIndices.push(shapeOut._index);\n r2pos = helpers.rangeToShapePosition(ax);\n pos2r = helpers.shapePositionToRange(ax);\n } else {\n pos2r = r2pos = Lib.identity;\n }\n\n // Coerce x0, x1, y0, y1\n if(shapeType !== 'path') {\n var dflt0 = 0.25;\n var dflt1 = 0.75;\n\n // hack until V2.0 when log has regular range behavior - make it look like other\n // ranges to send to coerce, then put it back after\n // this is all to give reasonable default position behavior on log axes, which is\n // a pretty unimportant edge case so we could just ignore this.\n var attr0 = axLetter + '0';\n var attr1 = axLetter + '1';\n var in0 = shapeIn[attr0];\n var in1 = shapeIn[attr1];\n shapeIn[attr0] = pos2r(shapeIn[attr0], true);\n shapeIn[attr1] = pos2r(shapeIn[attr1], true);\n\n if(sizeMode === 'pixel') {\n coerce(attr0, 0);\n coerce(attr1, 10);\n } else {\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attr0, dflt0);\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attr1, dflt1);\n }\n\n // hack part 2\n shapeOut[attr0] = r2pos(shapeOut[attr0]);\n shapeOut[attr1] = r2pos(shapeOut[attr1]);\n shapeIn[attr0] = in0;\n shapeIn[attr1] = in1;\n }\n\n // Coerce xanchor and yanchor\n if(sizeMode === 'pixel') {\n // Hack for log axis described above\n var inAnchor = shapeIn[attrAnchor];\n shapeIn[attrAnchor] = pos2r(shapeIn[attrAnchor], true);\n\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attrAnchor, 0.25);\n\n // Hack part 2\n shapeOut[attrAnchor] = r2pos(shapeOut[attrAnchor]);\n shapeIn[attrAnchor] = inAnchor;\n }\n }\n\n if(shapeType === 'path') {\n coerce('path');\n } else {\n Lib.noneOrAll(shapeIn, shapeOut, ['x0', 'x1', 'y0', 'y1']);\n }\n}\n\n\n/***/ }),\n\n/***/ \"5692\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(\"c430\");\nvar store = __webpack_require__(\"c6cd\");\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.4',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"569b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = function zip3(x, y, z, len) {\n len = len || x.length;\n\n var result = new Array(len);\n for(var i = 0; i < len; i++) {\n result[i] = [x[i], y[i], z[i]];\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"56b4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar layoutAttributes = __webpack_require__(\"78d8\");\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n\n coerce('hiddenlabels');\n coerce('piecolorway', layoutOut.colorway);\n coerce('extendpiecolors');\n};\n\n\n/***/ }),\n\n/***/ \"56cf\":\n/***/ (function(module, exports) {\n\nmodule.exports = subtract\n\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {vec4} out\n */\nfunction subtract (out, a, b) {\n out[0] = a[0] - b[0]\n out[1] = a[1] - b[1]\n out[2] = a[2] - b[2]\n out[3] = a[3] - b[3]\n return out\n}\n\n\n/***/ }),\n\n/***/ \"56ef\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(\"d066\");\nvar getOwnPropertyNamesModule = __webpack_require__(\"241c\");\nvar getOwnPropertySymbolsModule = __webpack_require__(\"7418\");\nvar anObject = __webpack_require__(\"825a\");\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n\n/***/ \"56f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar texttemplateAttrs = __webpack_require__(\"94d5\").texttemplateAttrs;\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar baseAttrs = __webpack_require__(\"a876\");\nvar colorAttributes = __webpack_require__(\"f4e9\");\nvar dash = __webpack_require__(\"db54\").dash;\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar scatterMarkerAttrs = scatterAttrs.marker;\nvar scatterLineAttrs = scatterAttrs.line;\nvar scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n\nmodule.exports = overrideAll({\n lon: {\n valType: 'data_array',\n \n },\n lat: {\n valType: 'data_array',\n \n },\n\n locations: {\n valType: 'data_array',\n \n },\n locationmode: {\n valType: 'enumerated',\n values: ['ISO-3', 'USA-states', 'country names', 'geojson-id'],\n \n dflt: 'ISO-3',\n \n },\n\n geojson: {\n valType: 'any',\n \n editType: 'calc',\n \n },\n featureidkey: {\n valType: 'string',\n \n editType: 'calc',\n dflt: 'id',\n \n },\n\n mode: extendFlat({}, scatterAttrs.mode, {dflt: 'markers'}),\n\n text: extendFlat({}, scatterAttrs.text, {\n \n }),\n texttemplate: texttemplateAttrs({editType: 'plot'}, {\n keys: ['lat', 'lon', 'location', 'text']\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {\n \n }),\n\n textfont: scatterAttrs.textfont,\n textposition: scatterAttrs.textposition,\n\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n dash: dash\n },\n connectgaps: scatterAttrs.connectgaps,\n\n marker: extendFlat({\n symbol: scatterMarkerAttrs.symbol,\n opacity: scatterMarkerAttrs.opacity,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n colorbar: scatterMarkerAttrs.colorbar,\n line: extendFlat({\n width: scatterMarkerLineAttrs.width\n },\n colorAttributes('marker.line')\n ),\n gradient: scatterMarkerAttrs.gradient\n },\n colorAttributes('marker')\n ),\n\n fill: {\n valType: 'enumerated',\n values: ['none', 'toself'],\n dflt: 'none',\n \n \n },\n fillcolor: scatterAttrs.fillcolor,\n\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected,\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: ['lon', 'lat', 'location', 'text', 'name']\n }),\n hovertemplate: hovertemplateAttrs(),\n}, 'calc', 'nested');\n\n\n/***/ }),\n\n/***/ \"56fc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n/*\n * Return a function that evaluates a set of linear or bicubic control points.\n * This will get evaluated a lot, so we'll at least do a bit of extra work to\n * flatten some of the choices. In particular, we'll unroll the linear/bicubic\n * combinations and we'll allow computing results in parallel to cut down\n * on repeated arithmetic.\n *\n * Take note that we don't search for the correct range in this function. The\n * reason is for consistency due to the corrresponding derivative function. In\n * particular, the derivatives aren't continuous across cells, so it's important\n * to be able control whether the derivative at a cell boundary is approached\n * from one side or the other.\n */\nmodule.exports = function(arrays, na, nb, asmoothing, bsmoothing) {\n var imax = na - 2;\n var jmax = nb - 2;\n\n if(asmoothing && bsmoothing) {\n return function(out, i, j) {\n if(!out) out = [];\n var f0, f1, f2, f3, ak, k;\n\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n\n // Since it's a grid of control points, the actual indices are * 3:\n i0 *= 3;\n j0 *= 3;\n\n // Precompute some numbers:\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n\n for(k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou3 * ak[j0][i0] + 3 * (ou2 * u * ak[j0][i0 + 1] + ou * u2 * ak[j0][i0 + 2]) + u3 * ak[j0][i0 + 3];\n f1 = ou3 * ak[j0 + 1][i0] + 3 * (ou2 * u * ak[j0 + 1][i0 + 1] + ou * u2 * ak[j0 + 1][i0 + 2]) + u3 * ak[j0 + 1][i0 + 3];\n f2 = ou3 * ak[j0 + 2][i0] + 3 * (ou2 * u * ak[j0 + 2][i0 + 1] + ou * u2 * ak[j0 + 2][i0 + 2]) + u3 * ak[j0 + 2][i0 + 3];\n f3 = ou3 * ak[j0 + 3][i0] + 3 * (ou2 * u * ak[j0 + 3][i0 + 1] + ou * u2 * ak[j0 + 3][i0 + 2]) + u3 * ak[j0 + 3][i0 + 3];\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n\n return out;\n };\n } else if(asmoothing) {\n // Handle smooth in the a-direction but linear in the b-direction by performing four\n // linear interpolations followed by one cubic interpolation of the result\n return function(out, i, j) {\n if(!out) out = [];\n\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n\n var f0, f1, f2, f3, k, ak;\n i0 *= 3;\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n var ov = 1 - v;\n for(k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ov * ak[j0][i0] + v * ak[j0 + 1][i0];\n f1 = ov * ak[j0][i0 + 1] + v * ak[j0 + 1][i0 + 1];\n f2 = ov * ak[j0][i0 + 2] + v * ak[j0 + 1][i0 + 1];\n f3 = ov * ak[j0][i0 + 3] + v * ak[j0 + 1][i0 + 1];\n\n out[k] = ou3 * f0 + 3 * (ou2 * u * f1 + ou * u2 * f2) + u3 * f3;\n }\n return out;\n };\n } else if(bsmoothing) {\n // Same as the above case, except reversed:\n return function(out, i, j) {\n if(!out) out = [];\n\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n\n var f0, f1, f2, f3, k, ak;\n j0 *= 3;\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n var ou = 1 - u;\n for(k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou * ak[j0][i0] + u * ak[j0][i0 + 1];\n f1 = ou * ak[j0 + 1][i0] + u * ak[j0 + 1][i0 + 1];\n f2 = ou * ak[j0 + 2][i0] + u * ak[j0 + 2][i0 + 1];\n f3 = ou * ak[j0 + 3][i0] + u * ak[j0 + 3][i0 + 1];\n\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n return out;\n };\n } else {\n // Finally, both directions are linear:\n return function(out, i, j) {\n if(!out) out = [];\n\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n\n var f0, f1, k, ak;\n var ov = 1 - v;\n var ou = 1 - u;\n for(k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou * ak[j0][i0] + u * ak[j0][i0 + 1];\n f1 = ou * ak[j0 + 1][i0] + u * ak[j0 + 1][i0 + 1];\n\n out[k] = ov * f0 + v * f1;\n }\n return out;\n };\n }\n};\n\n\n/***/ }),\n\n/***/ \"5714\":\n/***/ (function(module, exports) {\n\nmodule.exports = ceil\n\n/**\n * Math.ceil the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a vector to ceil\n * @returns {vec3} out\n */\nfunction ceil(out, a) {\n out[0] = Math.ceil(a[0])\n out[1] = Math.ceil(a[1])\n out[2] = Math.ceil(a[2])\n return out\n}\n\n\n/***/ }),\n\n/***/ \"5752\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar BN = __webpack_require__(\"399f\")\n\nmodule.exports = str2BN\n\nfunction str2BN(x) {\n return new BN(x)\n}\n\n\n/***/ }),\n\n/***/ \"578f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createSelectBuffer\n\nvar createFBO = __webpack_require__(\"44c3\")\nvar pool = __webpack_require__(\"cea5\")\nvar ndarray = __webpack_require__(\"b5bb\")\n\nvar nextPow2 = __webpack_require__(\"a48a\").nextPow2\n\nvar selectRange = __webpack_require__(\"dd8f\")({\"args\":[\"array\",{\"offset\":[0,0,1],\"array\":0},{\"offset\":[0,0,2],\"array\":0},{\"offset\":[0,0,3],\"array\":0},\"scalar\",\"scalar\",\"index\"],\"pre\":{\"body\":\"{this_closestD2=1e8,this_closestX=-1,this_closestY=-1}\",\"args\":[],\"thisVars\":[\"this_closestD2\",\"this_closestX\",\"this_closestY\"],\"localVars\":[]},\"body\":{\"body\":\"{if(_inline_4_arg0_<255||_inline_4_arg1_<255||_inline_4_arg2_<255||_inline_4_arg3_<255){var _inline_4_l=_inline_4_arg4_-_inline_4_arg6_[0],_inline_4_a=_inline_4_arg5_-_inline_4_arg6_[1],_inline_4_f=_inline_4_l*_inline_4_l+_inline_4_a*_inline_4_a;_inline_4_f this.buffer.length) {\n pool.free(this.buffer)\n var buffer = this.buffer = pool.mallocUint8(nextPow2(r*c*4))\n for(var i=0; i -1 ? vph + barPad : -(barH + barPad);\n\n var pathbarOrigin = {\n x0: barW, // slide to the right\n x1: barW,\n y0: barDifY,\n y1: barDifY + barH\n };\n\n var findClosestEdge = function(pt, ref, size) {\n var e = trace.tiling.pad;\n var isLeftOfRect = function(x) { return x - e <= ref.x0; };\n var isRightOfRect = function(x) { return x + e >= ref.x1; };\n var isBottomOfRect = function(y) { return y - e <= ref.y0; };\n var isTopOfRect = function(y) { return y + e >= ref.y1; };\n\n return {\n x0: isLeftOfRect(pt.x0 - e) ? 0 : isRightOfRect(pt.x0 - e) ? size[0] : pt.x0,\n x1: isLeftOfRect(pt.x1 + e) ? 0 : isRightOfRect(pt.x1 + e) ? size[0] : pt.x1,\n y0: isBottomOfRect(pt.y0 - e) ? 0 : isTopOfRect(pt.y0 - e) ? size[1] : pt.y0,\n y1: isBottomOfRect(pt.y1 + e) ? 0 : isTopOfRect(pt.y1 + e) ? size[1] : pt.y1\n };\n };\n\n // stash of 'previous' position data used by tweening functions\n var prevEntry = null;\n var prevLookupPathbar = {};\n var prevLookupSlices = {};\n var nextOfPrevEntry = null;\n var getPrev = function(pt, onPathbar) {\n return onPathbar ?\n prevLookupPathbar[getKey(pt)] :\n prevLookupSlices[getKey(pt)];\n };\n\n var getOrigin = function(pt, onPathbar, refRect, size) {\n if(onPathbar) {\n return prevLookupPathbar[getKey(hierarchy)] || pathbarOrigin;\n } else {\n var ref = prevLookupSlices[trace.level] || refRect;\n\n if(hasVisibleDepth(pt)) { // case of an empty object - happens when maxdepth is set\n return findClosestEdge(pt, ref, size);\n }\n }\n return {};\n };\n\n // N.B. handle multiple-root special case\n if(cd0.hasMultipleRoots && isRoot) {\n maxDepth++;\n }\n\n trace._maxDepth = maxDepth;\n trace._backgroundColor = fullLayout.paper_bgcolor;\n trace._entryDepth = entry.data.depth;\n trace._atRootLevel = isRoot;\n\n var cenX = -vpw / 2 + gs.l + gs.w * (domain.x[1] + domain.x[0]) / 2;\n var cenY = -vph / 2 + gs.t + gs.h * (1 - (domain.y[1] + domain.y[0]) / 2);\n\n var viewMapX = function(x) { return cenX + x; };\n var viewMapY = function(y) { return cenY + y; };\n\n var barY0 = viewMapY(0);\n var barX0 = viewMapX(0);\n\n var viewBarX = function(x) { return barX0 + x; };\n var viewBarY = function(y) { return barY0 + y; };\n\n function pos(x, y) {\n return x + ',' + y;\n }\n\n var xStart = viewBarX(0);\n var limitX0 = function(p) { p.x = Math.max(xStart, p.x); };\n\n var edgeshape = trace.pathbar.edgeshape;\n\n // pathbar(directory) path generation fn\n var pathAncestor = function(d) {\n var _x0 = viewBarX(Math.max(Math.min(d.x0, d.x0), 0));\n var _x1 = viewBarX(Math.min(Math.max(d.x1, d.x1), barW));\n var _y0 = viewBarY(d.y0);\n var _y1 = viewBarY(d.y1);\n\n var halfH = barH / 2;\n\n var pL = {};\n var pR = {};\n\n pL.x = _x0;\n pR.x = _x1;\n\n pL.y = pR.y = (_y0 + _y1) / 2;\n\n var pA = {x: _x0, y: _y0};\n var pB = {x: _x1, y: _y0};\n var pC = {x: _x1, y: _y1};\n var pD = {x: _x0, y: _y1};\n\n if(edgeshape === '>') {\n pA.x -= halfH;\n pB.x -= halfH;\n pC.x -= halfH;\n pD.x -= halfH;\n } else if(edgeshape === '/') {\n pC.x -= halfH;\n pD.x -= halfH;\n pL.x -= halfH / 2;\n pR.x -= halfH / 2;\n } else if(edgeshape === '\\\\') {\n pA.x -= halfH;\n pB.x -= halfH;\n pL.x -= halfH / 2;\n pR.x -= halfH / 2;\n } else if(edgeshape === '<') {\n pL.x -= halfH;\n pR.x -= halfH;\n }\n\n limitX0(pA);\n limitX0(pD);\n limitX0(pL);\n\n limitX0(pB);\n limitX0(pC);\n limitX0(pR);\n\n return (\n 'M' + pos(pA.x, pA.y) +\n 'L' + pos(pB.x, pB.y) +\n 'L' + pos(pR.x, pR.y) +\n 'L' + pos(pC.x, pC.y) +\n 'L' + pos(pD.x, pD.y) +\n 'L' + pos(pL.x, pL.y) +\n 'Z'\n );\n };\n\n // slice path generation fn\n var pathDescendant = function(d) {\n var _x0 = viewMapX(d.x0);\n var _x1 = viewMapX(d.x1);\n var _y0 = viewMapY(d.y0);\n var _y1 = viewMapY(d.y1);\n\n var dx = _x1 - _x0;\n var dy = _y1 - _y0;\n if(!dx || !dy) return '';\n\n var FILLET = 0; // TODO: may expose this constant\n\n var r = (\n dx > 2 * FILLET &&\n dy > 2 * FILLET\n ) ? FILLET : 0;\n\n var arc = function(rx, ry) { return r ? 'a' + pos(r, r) + ' 0 0 1 ' + pos(rx, ry) : ''; };\n\n return (\n 'M' + pos(_x0, _y0 + r) +\n arc(r, -r) +\n 'L' + pos(_x1 - r, _y0) +\n arc(r, r) +\n 'L' + pos(_x1, _y1 - r) +\n arc(-r, r) +\n 'L' + pos(_x0 + r, _y1) +\n arc(-r, -r) + 'Z'\n );\n };\n\n var toMoveInsideSlice = function(pt, opts) {\n var x0 = pt.x0;\n var x1 = pt.x1;\n var y0 = pt.y0;\n var y1 = pt.y1;\n var textBB = pt.textBB;\n\n var hasFlag = function(f) { return trace.textposition.indexOf(f) !== -1; };\n\n var hasBottom = hasFlag('bottom');\n var hasTop = hasFlag('top') || (opts.isHeader && !hasBottom);\n\n var anchor =\n hasTop ? 'start' :\n hasBottom ? 'end' : 'middle';\n\n var hasRight = hasFlag('right');\n var hasLeft = hasFlag('left') || opts.onPathbar;\n\n var leftToRight =\n hasLeft ? -1 :\n hasRight ? 1 : 0;\n\n var pad = trace.marker.pad;\n if(opts.isHeader) {\n x0 += pad.l - TEXTPAD;\n x1 -= pad.r - TEXTPAD;\n if(x0 >= x1) {\n var mid = (x0 + x1) / 2;\n x0 = mid;\n x1 = mid;\n }\n\n // limit the drawing area for headers\n var limY;\n if(hasBottom) {\n limY = y1 - pad.b;\n if(y0 < limY && limY < y1) y0 = limY;\n } else {\n limY = y0 + pad.t;\n if(y0 < limY && limY < y1) y1 = limY;\n }\n }\n\n // position the text relative to the slice\n var transform = toMoveInsideBar(x0, x1, y0, y1, textBB, {\n isHorizontal: false,\n constrained: true,\n angle: 0,\n anchor: anchor,\n leftToRight: leftToRight\n });\n transform.fontSize = opts.fontSize;\n\n transform.targetX = viewMapX(transform.targetX);\n transform.targetY = viewMapY(transform.targetY);\n\n if(isNaN(transform.targetX) || isNaN(transform.targetY)) {\n return {};\n }\n\n if(x0 !== x1 && y0 !== y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n\n return {\n scale: transform.scale,\n rotate: transform.rotate,\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY\n };\n };\n\n var interpFromParent = function(pt, onPathbar) {\n var parentPrev;\n var i = 0;\n var Q = pt;\n while(!parentPrev && i < maxDepth) { // loop to find a parent/grandParent on the previous graph\n i++;\n Q = Q.parent;\n if(Q) {\n parentPrev = getPrev(Q, onPathbar);\n } else i = maxDepth;\n }\n return parentPrev || {};\n };\n\n var makeExitSliceInterpolator = function(pt, onPathbar, refRect, size) {\n var prev = getPrev(pt, onPathbar);\n var next;\n\n if(onPathbar) {\n next = pathbarOrigin;\n } else {\n var entryPrev = getPrev(entry, onPathbar);\n if(entryPrev) {\n // 'entryPrev' is here has the previous coordinates of the entry\n // node, which corresponds to the last \"clicked\" node when zooming in\n next = findClosestEdge(pt, entryPrev, size);\n } else {\n // this happens when maxdepth is set, when leaves must\n // be removed and the entry is new (i.e. does not have a 'prev' object)\n next = {};\n }\n }\n\n return d3.interpolate(prev, next);\n };\n\n var makeUpdateSliceInterpolator = function(pt, onPathbar, refRect, size) {\n var prev0 = getPrev(pt, onPathbar);\n var prev;\n\n if(prev0) {\n // if pt already on graph, this is easy\n prev = prev0;\n } else {\n // for new pts:\n if(onPathbar) {\n prev = pathbarOrigin;\n } else {\n if(prevEntry) {\n // if trace was visible before\n if(pt.parent) {\n var ref = nextOfPrevEntry || refRect;\n\n if(ref && !onPathbar) {\n prev = findClosestEdge(pt, ref, size);\n } else {\n // if new leaf (when maxdepth is set),\n // grow it from its parent node\n prev = {};\n Lib.extendFlat(prev, interpFromParent(pt, onPathbar));\n }\n } else {\n prev = pt;\n }\n } else {\n prev = {};\n }\n }\n }\n\n return d3.interpolate(prev, {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n });\n };\n\n var makeUpdateTextInterpolator = function(pt, onPathbar, refRect, size) {\n var prev0 = getPrev(pt, onPathbar);\n var prev = {};\n var origin = getOrigin(pt, onPathbar, refRect, size);\n\n Lib.extendFlat(prev, {\n transform: toMoveInsideSlice({\n x0: origin.x0,\n x1: origin.x1,\n y0: origin.y0,\n y1: origin.y1,\n textBB: pt.textBB,\n _text: pt._text\n }, {\n isHeader: helpers.isHeader(pt, trace)\n })\n });\n\n if(prev0) {\n // if pt already on graph, this is easy\n prev = prev0;\n } else {\n // for new pts:\n if(pt.parent) {\n Lib.extendFlat(prev, interpFromParent(pt, onPathbar));\n }\n }\n\n var transform = pt.transform;\n if(pt.x0 !== pt.x1 && pt.y0 !== pt.y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n\n return d3.interpolate(prev, {\n transform: {\n scale: transform.scale,\n rotate: transform.rotate,\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY\n }\n });\n };\n\n var handleSlicesExit = function(slices, onPathbar, refRect, size, pathSlice) {\n var width = size[0];\n var height = size[1];\n\n if(hasTransition) {\n slices.exit().transition()\n .each(function() {\n var sliceTop = d3.select(this);\n\n var slicePath = sliceTop.select('path.surface');\n slicePath.transition().attrTween('d', function(pt2) {\n var interp = makeExitSliceInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) { return pathSlice(interp(t)); };\n });\n\n var sliceTextGroup = sliceTop.select('g.slicetext');\n sliceTextGroup.attr('opacity', 0);\n })\n .remove();\n } else {\n slices.exit().remove();\n }\n };\n\n var strTransform = function(d) {\n var transform = d.transform;\n\n if(d.x0 !== d.x1 && d.y0 !== d.y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n\n return Lib.getTextTransform({\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY,\n scale: transform.scale,\n rotate: transform.rotate\n });\n };\n\n if(hasTransition) {\n // Important: do this before binding new sliceData!\n\n selAncestors.each(function(pt) {\n prevLookupPathbar[getKey(pt)] = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n\n if(pt.transform) {\n prevLookupPathbar[getKey(pt)].transform = {\n textX: pt.transform.textX,\n textY: pt.transform.textY,\n anchorX: pt.transform.anchorX,\n anchorY: pt.transform.anchorY,\n targetX: pt.transform.targetX,\n targetY: pt.transform.targetY,\n scale: pt.transform.scale,\n rotate: pt.transform.rotate\n };\n }\n });\n\n selDescendants.each(function(pt) {\n prevLookupSlices[getKey(pt)] = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n\n if(pt.transform) {\n prevLookupSlices[getKey(pt)].transform = {\n textX: pt.transform.textX,\n textY: pt.transform.textY,\n anchorX: pt.transform.anchorX,\n anchorY: pt.transform.anchorY,\n targetX: pt.transform.targetX,\n targetY: pt.transform.targetY,\n scale: pt.transform.scale,\n rotate: pt.transform.rotate\n };\n }\n\n if(!prevEntry && helpers.isEntry(pt)) {\n prevEntry = pt;\n }\n });\n }\n\n nextOfPrevEntry = drawDescendants(gd, cd, entry, selDescendants, {\n width: vpw,\n height: vph,\n\n viewX: viewMapX,\n viewY: viewMapY,\n\n pathSlice: pathDescendant,\n toMoveInsideSlice: toMoveInsideSlice,\n\n prevEntry: prevEntry,\n makeUpdateSliceInterpolator: makeUpdateSliceInterpolator,\n makeUpdateTextInterpolator: makeUpdateTextInterpolator,\n\n handleSlicesExit: handleSlicesExit,\n hasTransition: hasTransition,\n strTransform: strTransform\n });\n\n if(trace.pathbar.visible) {\n drawAncestors(gd, cd, entry, selAncestors, {\n barDifY: barDifY,\n width: barW,\n height: barH,\n\n viewX: viewBarX,\n viewY: viewBarY,\n\n pathSlice: pathAncestor,\n toMoveInsideSlice: toMoveInsideSlice,\n\n makeUpdateSliceInterpolator: makeUpdateSliceInterpolator,\n makeUpdateTextInterpolator: makeUpdateTextInterpolator,\n\n handleSlicesExit: handleSlicesExit,\n hasTransition: hasTransition,\n strTransform: strTransform\n });\n }\n}\n\n\n/***/ }),\n\n/***/ \"5844\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n // not really a 'subplot' attribute container,\n // but this is the flag we use to denote attributes that\n // support yaxis, yaxis2, yaxis3, ... counters\n _isSubplotObj: true,\n\n rangemode: {\n valType: 'enumerated',\n values: ['auto', 'fixed', 'match'],\n dflt: 'match',\n \n editType: 'calc',\n \n },\n range: {\n valType: 'info_array',\n \n items: [\n {valType: 'any', editType: 'plot'},\n {valType: 'any', editType: 'plot'}\n ],\n editType: 'plot',\n \n },\n editType: 'calc'\n};\n\n\n/***/ }),\n\n/***/ \"5885\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = function eventData(out, pt) {\n // Note: hoverOnBox property is needed for click-to-select\n // to ignore when a box was clicked. This is the reason box\n // implements this custom eventData function.\n if(pt.hoverOnBox) out.hoverOnBox = pt.hoverOnBox;\n\n if('xVal' in pt) out.x = pt.xVal;\n if('yVal' in pt) out.y = pt.yVal;\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"5913\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar numConstants = __webpack_require__(\"e806\");\nvar oneYear = numConstants.ONEAVGYEAR;\nvar oneMonth = numConstants.ONEAVGMONTH;\nvar oneDay = numConstants.ONEDAY;\nvar oneHour = numConstants.ONEHOUR;\nvar oneMin = numConstants.ONEMIN;\nvar oneSec = numConstants.ONESEC;\nvar tickIncrement = __webpack_require__(\"0642\").tickIncrement;\n\n\n/*\n * make a function that will find rounded bin edges\n * @param {number} leftGap: how far from the left edge of any bin is the closest data value?\n * @param {number} rightGap: how far from the right edge of any bin is the closest data value?\n * @param {Array[number]} binEdges: the actual edge values used in binning\n * @param {object} pa: the position axis\n * @param {string} calendar: the data calendar\n *\n * @return {function(v, isRightEdge)}:\n * find the start (isRightEdge is falsy) or end (truthy) label value for a bin edge `v`\n */\nmodule.exports = function getBinSpanLabelRound(leftGap, rightGap, binEdges, pa, calendar) {\n // the rounding digit is the largest digit that changes in *all* of 4 regions:\n // - inside the rightGap before binEdges[0] (shifted 10% to the left)\n // - inside the leftGap after binEdges[0] (expanded by 10% of rightGap on each end)\n // - same for binEdges[1]\n var dv0 = -1.1 * rightGap;\n var dv1 = -0.1 * rightGap;\n var dv2 = leftGap - dv1;\n var edge0 = binEdges[0];\n var edge1 = binEdges[1];\n var leftDigit = Math.min(\n biggestDigitChanged(edge0 + dv1, edge0 + dv2, pa, calendar),\n biggestDigitChanged(edge1 + dv1, edge1 + dv2, pa, calendar)\n );\n var rightDigit = Math.min(\n biggestDigitChanged(edge0 + dv0, edge0 + dv1, pa, calendar),\n biggestDigitChanged(edge1 + dv0, edge1 + dv1, pa, calendar)\n );\n\n // normally we try to make the label for the right edge different from\n // the left edge label, so it's unambiguous which bin gets data on the edge.\n // but if this results in more than 3 extra digits (or for dates, more than\n // 2 fields ie hr&min or min&sec, which is 3600x), it'll be more clutter than\n // useful so keep the label cleaner instead\n var digit, disambiguateEdges;\n if(leftDigit > rightDigit && rightDigit < Math.abs(edge1 - edge0) / 4000) {\n digit = leftDigit;\n disambiguateEdges = false;\n } else {\n digit = Math.min(leftDigit, rightDigit);\n disambiguateEdges = true;\n }\n\n if(pa.type === 'date' && digit > oneDay) {\n var dashExclude = (digit === oneYear) ? 1 : 6;\n var increment = (digit === oneYear) ? 'M12' : 'M1';\n\n return function(v, isRightEdge) {\n var dateStr = pa.c2d(v, oneYear, calendar);\n var dashPos = dateStr.indexOf('-', dashExclude);\n if(dashPos > 0) dateStr = dateStr.substr(0, dashPos);\n var roundedV = pa.d2c(dateStr, 0, calendar);\n\n if(roundedV < v) {\n var nextV = tickIncrement(roundedV, increment, false, calendar);\n if((roundedV + nextV) / 2 < v + leftGap) roundedV = nextV;\n }\n\n if(isRightEdge && disambiguateEdges) {\n return tickIncrement(roundedV, increment, true, calendar);\n }\n\n return roundedV;\n };\n }\n\n return function(v, isRightEdge) {\n var roundedV = digit * Math.round(v / digit);\n // if we rounded down and we could round up and still be < leftGap\n // (or what leftGap values round to), do that\n if(roundedV + (digit / 10) < v && roundedV + (digit * 0.9) < v + leftGap) {\n roundedV += digit;\n }\n // finally for the right edge back off one digit - but only if we can do that\n // and not clip off any data that's potentially in the bin\n if(isRightEdge && disambiguateEdges) {\n roundedV -= digit;\n }\n return roundedV;\n };\n};\n\n/*\n * Find the largest digit that changes within a (calcdata) region [v1, v2]\n * if dates, \"digit\" means date/time part when it's bigger than a second\n * returns the unit value to round to this digit, eg 0.01 to round to hundredths, or\n * 100 to round to hundreds. returns oneMonth or oneYear for month or year rounding,\n * so that Math.min will work, rather than 'M1' and 'M12'\n */\nfunction biggestDigitChanged(v1, v2, pa, calendar) {\n // are we crossing zero? can't say anything.\n // in principle this doesn't apply to dates but turns out this doesn't matter.\n if(v1 * v2 <= 0) return Infinity;\n\n var dv = Math.abs(v2 - v1);\n var isDate = pa.type === 'date';\n var digit = biggestGuaranteedDigitChanged(dv, isDate);\n // see if a larger digit also changed\n for(var i = 0; i < 10; i++) {\n // numbers: next digit needs to be >10x but <100x then gets rounded down.\n // dates: next digit can be as much as 60x (then rounded down)\n var nextDigit = biggestGuaranteedDigitChanged(digit * 80, isDate);\n // if we get to years, the chain stops\n if(digit === nextDigit) break;\n if(didDigitChange(nextDigit, v1, v2, isDate, pa, calendar)) digit = nextDigit;\n else break;\n }\n return digit;\n}\n\n/*\n * Find the largest digit that *definitely* changes in a region [v, v + dv] for any v\n * for nonuniform date regions (months/years) pick the largest\n */\nfunction biggestGuaranteedDigitChanged(dv, isDate) {\n if(isDate && dv > oneSec) {\n // this is supposed to be the biggest *guaranteed* change\n // so compare to the longest month and year across any calendar,\n // and we'll iterate back up later\n // note: does not support rounding larger than one year. We could add\n // that if anyone wants it, but seems unusual and not strictly necessary.\n if(dv > oneDay) {\n if(dv > oneYear * 1.1) return oneYear;\n if(dv > oneMonth * 1.1) return oneMonth;\n return oneDay;\n }\n\n if(dv > oneHour) return oneHour;\n if(dv > oneMin) return oneMin;\n return oneSec;\n }\n return Math.pow(10, Math.floor(Math.log(dv) / Math.LN10));\n}\n\nfunction didDigitChange(digit, v1, v2, isDate, pa, calendar) {\n if(isDate && digit > oneDay) {\n var dateParts1 = dateParts(v1, pa, calendar);\n var dateParts2 = dateParts(v2, pa, calendar);\n var parti = (digit === oneYear) ? 0 : 1;\n return dateParts1[parti] !== dateParts2[parti];\n }\n return Math.floor(v2 / digit) - Math.floor(v1 / digit) > 0.1;\n}\n\nfunction dateParts(v, pa, calendar) {\n var parts = pa.c2d(v, oneYear, calendar).split('-');\n if(parts[0] === '') {\n parts.unshift();\n parts[0] = '-' + parts[0];\n }\n return parts;\n}\n\n\n/***/ }),\n\n/***/ \"5928\":\n/***/ (function(module, exports) {\n\nmodule.exports = fromQuat;\n\n/**\n * Creates a matrix from a quaternion rotation.\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @returns {mat4} out\n */\nfunction fromQuat(out, q) {\n var x = q[0], y = q[1], z = q[2], w = q[3],\n x2 = x + x,\n y2 = y + y,\n z2 = z + z,\n\n xx = x * x2,\n yx = y * x2,\n yy = y * y2,\n zx = z * x2,\n zy = z * y2,\n zz = z * z2,\n wx = w * x2,\n wy = w * y2,\n wz = w * z2;\n\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n\n return out;\n};\n\n/***/ }),\n\n/***/ \"595c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\n * Ben Postlethwaite\n * January 2013\n * License MIT\n */\n\n\nvar colorScale = __webpack_require__(\"9a02\");\nvar lerp = __webpack_require__(\"9b49\")\n\nmodule.exports = createColormap;\n\nfunction createColormap (spec) {\n /*\n * Default Options\n */\n var indicies, fromrgba, torgba,\n nsteps, cmap, colormap, format,\n nshades, colors, alpha, i;\n\n if ( !spec ) spec = {};\n\n nshades = (spec.nshades || 72) - 1;\n format = spec.format || 'hex';\n\n colormap = spec.colormap;\n if (!colormap) colormap = 'jet';\n\n if (typeof colormap === 'string') {\n colormap = colormap.toLowerCase();\n\n if (!colorScale[colormap]) {\n throw Error(colormap + ' not a supported colorscale');\n }\n\n cmap = colorScale[colormap];\n\n } else if (Array.isArray(colormap)) {\n cmap = colormap.slice();\n\n } else {\n throw Error('unsupported colormap option', colormap);\n }\n\n if (cmap.length > nshades + 1) {\n throw new Error(\n colormap+' map requires nshades to be at least size '+cmap.length\n );\n }\n\n if (!Array.isArray(spec.alpha)) {\n\n if (typeof spec.alpha === 'number') {\n alpha = [spec.alpha, spec.alpha];\n\n } else {\n alpha = [1, 1];\n }\n\n } else if (spec.alpha.length !== 2) {\n alpha = [1, 1];\n\n } else {\n alpha = spec.alpha.slice();\n }\n\n // map index points from 0..1 to 0..n-1\n indicies = cmap.map(function(c) {\n return Math.round(c.index * nshades);\n });\n\n // Add alpha channel to the map\n alpha[0] = Math.min(Math.max(alpha[0], 0), 1);\n alpha[1] = Math.min(Math.max(alpha[1], 0), 1);\n\n var steps = cmap.map(function(c, i) {\n var index = cmap[i].index\n\n var rgba = cmap[i].rgb.slice();\n\n // if user supplies their own map use it\n if (rgba.length === 4 && rgba[3] >= 0 && rgba[3] <= 1) {\n return rgba\n }\n rgba[3] = alpha[0] + (alpha[1] - alpha[0])*index;\n\n return rgba\n })\n\n\n /*\n * map increasing linear values between indicies to\n * linear steps in colorvalues\n */\n var colors = []\n for (i = 0; i < indicies.length-1; ++i) {\n nsteps = indicies[i+1] - indicies[i];\n fromrgba = steps[i];\n torgba = steps[i+1];\n\n for (var j = 0; j < nsteps; j++) {\n var amt = j / nsteps\n colors.push([\n Math.round(lerp(fromrgba[0], torgba[0], amt)),\n Math.round(lerp(fromrgba[1], torgba[1], amt)),\n Math.round(lerp(fromrgba[2], torgba[2], amt)),\n lerp(fromrgba[3], torgba[3], amt)\n ])\n }\n }\n\n //add 1 step as last value\n colors.push(cmap[cmap.length - 1].rgb.concat(alpha[1]))\n\n if (format === 'hex') colors = colors.map( rgb2hex );\n else if (format === 'rgbaString') colors = colors.map( rgbaStr );\n else if (format === 'float') colors = colors.map( rgb2float );\n\n return colors;\n};\n\nfunction rgb2float (rgba) {\n return [\n rgba[0] / 255,\n rgba[1] / 255,\n rgba[2] / 255,\n rgba[3]\n ]\n}\n\nfunction rgb2hex (rgba) {\n var dig, hex = '#';\n for (var i = 0; i < 3; ++i) {\n dig = rgba[i];\n dig = dig.toString(16);\n hex += ('00' + dig).substr( dig.length );\n }\n return hex;\n}\n\nfunction rgbaStr (rgba) {\n return 'rgba(' + rgba.join(',') + ')';\n}\n\n\n/***/ }),\n\n/***/ \"59be\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\nvar hasColorscale = __webpack_require__(\"215c\").hasColorscale;\nvar colorscaleDefaults = __webpack_require__(\"4183\");\n\nmodule.exports = function lineDefaults(traceIn, traceOut, defaultColor, layout, coerce, opts) {\n var markerColor = (traceIn.marker || {}).color;\n\n coerce('line.color', defaultColor);\n\n if(hasColorscale(traceIn, 'line')) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: 'line.', cLetter: 'c'});\n } else {\n var lineColorDflt = (isArrayOrTypedArray(markerColor) ? false : markerColor) || defaultColor;\n coerce('line.color', lineColorDflt);\n }\n\n coerce('line.width');\n if(!(opts || {}).noDash) coerce('line.dash');\n};\n\n\n/***/ }),\n\n/***/ \"59ce\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\nvar tinycolor = __webpack_require__(\"66cb\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar Plots = __webpack_require__(\"bb71\");\nvar Axes = __webpack_require__(\"0642\");\nvar setConvertCartesian = __webpack_require__(\"1a40\");\nvar setConvertPolar = __webpack_require__(\"7a52\");\nvar doAutoRange = __webpack_require__(\"ce56\").doAutoRange;\nvar dragBox = __webpack_require__(\"9676\");\nvar dragElement = __webpack_require__(\"4efe\");\nvar Fx = __webpack_require__(\"a5c4\");\nvar Titles = __webpack_require__(\"1999\");\nvar prepSelect = __webpack_require__(\"1876\").prepSelect;\nvar selectOnClick = __webpack_require__(\"1876\").selectOnClick;\nvar clearSelect = __webpack_require__(\"1876\").clearSelect;\nvar setCursor = __webpack_require__(\"0f37\");\nvar clearGlCanvases = __webpack_require__(\"821b\");\nvar redrawReglTraces = __webpack_require__(\"a392\").redrawReglTraces;\n\nvar MID_SHIFT = __webpack_require__(\"63dc\").MID_SHIFT;\nvar constants = __webpack_require__(\"f510\");\nvar helpers = __webpack_require__(\"a60f\");\n\nvar _ = Lib._;\nvar mod = Lib.mod;\nvar deg2rad = Lib.deg2rad;\nvar rad2deg = Lib.rad2deg;\n\nfunction Polar(gd, id) {\n this.id = id;\n this.gd = gd;\n\n this._hasClipOnAxisFalse = null;\n this.vangles = null;\n this.radialAxisAngle = null;\n this.traceHash = {};\n this.layers = {};\n this.clipPaths = {};\n this.clipIds = {};\n this.viewInitial = {};\n\n var fullLayout = gd._fullLayout;\n var clipIdBase = 'clip' + fullLayout._uid + id;\n\n this.clipIds.forTraces = clipIdBase + '-for-traces';\n this.clipPaths.forTraces = fullLayout._clips.append('clipPath')\n .attr('id', this.clipIds.forTraces);\n this.clipPaths.forTraces.append('path');\n\n this.framework = fullLayout._polarlayer.append('g')\n .attr('class', id);\n\n // unfortunately, we have to keep track of some axis tick settings\n // as polar subplots do not implement the 'ticks' editType\n this.radialTickLayout = null;\n this.angularTickLayout = null;\n}\n\nvar proto = Polar.prototype;\n\nmodule.exports = function createPolar(gd, id) {\n return new Polar(gd, id);\n};\n\nproto.plot = function(polarCalcData, fullLayout) {\n var _this = this;\n var polarLayout = fullLayout[_this.id];\n\n _this._hasClipOnAxisFalse = false;\n for(var i = 0; i < polarCalcData.length; i++) {\n var trace = polarCalcData[i][0].trace;\n if(trace.cliponaxis === false) {\n _this._hasClipOnAxisFalse = true;\n break;\n }\n }\n\n _this.updateLayers(fullLayout, polarLayout);\n _this.updateLayout(fullLayout, polarLayout);\n Plots.generalUpdatePerTraceModule(_this.gd, _this, polarCalcData, polarLayout);\n _this.updateFx(fullLayout, polarLayout);\n};\n\nproto.updateLayers = function(fullLayout, polarLayout) {\n var _this = this;\n var layers = _this.layers;\n var radialLayout = polarLayout.radialaxis;\n var angularLayout = polarLayout.angularaxis;\n var layerNames = constants.layerNames;\n\n var frontPlotIndex = layerNames.indexOf('frontplot');\n var layerData = layerNames.slice(0, frontPlotIndex);\n var isAngularAxisBelowTraces = angularLayout.layer === 'below traces';\n var isRadialAxisBelowTraces = radialLayout.layer === 'below traces';\n\n if(isAngularAxisBelowTraces) layerData.push('angular-line');\n if(isRadialAxisBelowTraces) layerData.push('radial-line');\n if(isAngularAxisBelowTraces) layerData.push('angular-axis');\n if(isRadialAxisBelowTraces) layerData.push('radial-axis');\n\n layerData.push('frontplot');\n\n if(!isAngularAxisBelowTraces) layerData.push('angular-line');\n if(!isRadialAxisBelowTraces) layerData.push('radial-line');\n if(!isAngularAxisBelowTraces) layerData.push('angular-axis');\n if(!isRadialAxisBelowTraces) layerData.push('radial-axis');\n\n var join = _this.framework.selectAll('.polarsublayer')\n .data(layerData, String);\n\n join.enter().append('g')\n .attr('class', function(d) { return 'polarsublayer ' + d;})\n .each(function(d) {\n var sel = layers[d] = d3.select(this);\n\n switch(d) {\n case 'frontplot':\n // TODO add option to place in 'backplot' layer??\n sel.append('g').classed('barlayer', true);\n sel.append('g').classed('scatterlayer', true);\n break;\n case 'backplot':\n sel.append('g').classed('maplayer', true);\n break;\n case 'plotbg':\n layers.bg = sel.append('path');\n break;\n case 'radial-grid':\n sel.style('fill', 'none');\n break;\n case 'angular-grid':\n sel.style('fill', 'none');\n break;\n case 'radial-line':\n sel.append('line').style('fill', 'none');\n break;\n case 'angular-line':\n sel.append('path').style('fill', 'none');\n break;\n }\n });\n\n join.order();\n};\n\n/* Polar subplots juggle with 6 'axis objects' (!), these are:\n *\n * - polarLayout.radialaxis (aka radialLayout in this file):\n * - polarLayout.angularaxis (aka angularLayout in this file):\n * used for data -> calcdata conversions (aka d2c) during the calc step\n *\n * - this.radialAxis\n * extends polarLayout.radialaxis, adds mocked 'domain' and\n * few other keys in order to reuse Cartesian doAutoRange and the Axes\n * drawing routines.\n * used for calcdata -> geometric conversions (aka c2g) during the plot step\n * + setGeometry setups ax.c2g for given ax.range\n * + setScale setups ax._m,ax._b for given ax.range\n *\n * - this.angularAxis\n * extends polarLayout.angularaxis, adds mocked 'range' and 'domain' and\n * a few other keys in order to reuse the Axes drawing routines.\n * used for calcdata -> geometric conversions (aka c2g) during the plot step\n * + setGeometry setups ax.c2g given ax.rotation, ax.direction & ax._categories,\n * and mocks ax.range\n * + setScale setups ax._m,ax._b with that mocked ax.range\n *\n * - this.xaxis\n * - this.yaxis\n * setup so that polar traces can reuse plot methods of Cartesian traces\n * which mostly rely on 2pixel methods (e.g ax.c2p)\n */\nproto.updateLayout = function(fullLayout, polarLayout) {\n var _this = this;\n var layers = _this.layers;\n var gs = fullLayout._size;\n\n // axis attributes\n var radialLayout = polarLayout.radialaxis;\n var angularLayout = polarLayout.angularaxis;\n // layout domains\n var xDomain = polarLayout.domain.x;\n var yDomain = polarLayout.domain.y;\n // offsets from paper edge to layout domain box\n _this.xOffset = gs.l + gs.w * xDomain[0];\n _this.yOffset = gs.t + gs.h * (1 - yDomain[1]);\n // lengths of the layout domain box\n var xLength = _this.xLength = gs.w * (xDomain[1] - xDomain[0]);\n var yLength = _this.yLength = gs.h * (yDomain[1] - yDomain[0]);\n // sector to plot\n var sector = polarLayout.sector;\n _this.sectorInRad = sector.map(deg2rad);\n var sectorBBox = _this.sectorBBox = computeSectorBBox(sector);\n var dxSectorBBox = sectorBBox[2] - sectorBBox[0];\n var dySectorBBox = sectorBBox[3] - sectorBBox[1];\n // aspect ratios\n var arDomain = yLength / xLength;\n var arSector = Math.abs(dySectorBBox / dxSectorBBox);\n // actual lengths and domains of subplot box\n var xLength2, yLength2;\n var xDomain2, yDomain2;\n var gap;\n if(arDomain > arSector) {\n xLength2 = xLength;\n yLength2 = xLength * arSector;\n gap = (yLength - yLength2) / gs.h / 2;\n xDomain2 = [xDomain[0], xDomain[1]];\n yDomain2 = [yDomain[0] + gap, yDomain[1] - gap];\n } else {\n xLength2 = yLength / arSector;\n yLength2 = yLength;\n gap = (xLength - xLength2) / gs.w / 2;\n xDomain2 = [xDomain[0] + gap, xDomain[1] - gap];\n yDomain2 = [yDomain[0], yDomain[1]];\n }\n _this.xLength2 = xLength2;\n _this.yLength2 = yLength2;\n _this.xDomain2 = xDomain2;\n _this.yDomain2 = yDomain2;\n // actual offsets from paper edge to the subplot box top-left corner\n var xOffset2 = _this.xOffset2 = gs.l + gs.w * xDomain2[0];\n var yOffset2 = _this.yOffset2 = gs.t + gs.h * (1 - yDomain2[1]);\n // circle radius in px\n var radius = _this.radius = xLength2 / dxSectorBBox;\n // 'inner' radius in px (when polar.hole is set)\n var innerRadius = _this.innerRadius = polarLayout.hole * radius;\n // circle center position in px\n var cx = _this.cx = xOffset2 - radius * sectorBBox[0];\n var cy = _this.cy = yOffset2 + radius * sectorBBox[3];\n // circle center in the coordinate system of plot area\n var cxx = _this.cxx = cx - xOffset2;\n var cyy = _this.cyy = cy - yOffset2;\n\n _this.radialAxis = _this.mockAxis(fullLayout, polarLayout, radialLayout, {\n // make this an 'x' axis to make positioning (especially rotation) easier\n _id: 'x',\n // convert to 'x' axis equivalent\n side: {\n counterclockwise: 'top',\n clockwise: 'bottom'\n }[radialLayout.side],\n // spans length 1 radius\n domain: [innerRadius / gs.w, radius / gs.w]\n });\n\n _this.angularAxis = _this.mockAxis(fullLayout, polarLayout, angularLayout, {\n side: 'right',\n // to get auto nticks right\n domain: [0, Math.PI],\n // don't pass through autorange logic\n autorange: false\n });\n\n _this.doAutoRange(fullLayout, polarLayout);\n // N.B. this sets _this.vangles\n _this.updateAngularAxis(fullLayout, polarLayout);\n // N.B. this sets _this.radialAxisAngle\n _this.updateRadialAxis(fullLayout, polarLayout);\n _this.updateRadialAxisTitle(fullLayout, polarLayout);\n\n _this.xaxis = _this.mockCartesianAxis(fullLayout, polarLayout, {\n _id: 'x',\n domain: xDomain2\n });\n\n _this.yaxis = _this.mockCartesianAxis(fullLayout, polarLayout, {\n _id: 'y',\n domain: yDomain2\n });\n\n var dPath = _this.pathSubplot();\n\n _this.clipPaths.forTraces.select('path')\n .attr('d', dPath)\n .attr('transform', strTranslate(cxx, cyy));\n\n layers.frontplot\n .attr('transform', strTranslate(xOffset2, yOffset2))\n .call(Drawing.setClipUrl, _this._hasClipOnAxisFalse ? null : _this.clipIds.forTraces, _this.gd);\n\n layers.bg\n .attr('d', dPath)\n .attr('transform', strTranslate(cx, cy))\n .call(Color.fill, polarLayout.bgcolor);\n};\n\nproto.mockAxis = function(fullLayout, polarLayout, axLayout, opts) {\n var ax = Lib.extendFlat({}, axLayout, opts);\n setConvertPolar(ax, polarLayout, fullLayout);\n return ax;\n};\n\nproto.mockCartesianAxis = function(fullLayout, polarLayout, opts) {\n var _this = this;\n var axId = opts._id;\n\n var ax = Lib.extendFlat({type: 'linear'}, opts);\n setConvertCartesian(ax, fullLayout);\n\n var bboxIndices = {\n x: [0, 2],\n y: [1, 3]\n };\n\n ax.setRange = function() {\n var sectorBBox = _this.sectorBBox;\n var ind = bboxIndices[axId];\n var rl = _this.radialAxis._rl;\n var drl = (rl[1] - rl[0]) / (1 - polarLayout.hole);\n ax.range = [sectorBBox[ind[0]] * drl, sectorBBox[ind[1]] * drl];\n };\n\n ax.isPtWithinRange = axId === 'x' ?\n function(d) { return _this.isPtInside(d); } :\n function() { return true; };\n\n ax.setRange();\n ax.setScale();\n return ax;\n};\n\nproto.doAutoRange = function(fullLayout, polarLayout) {\n var gd = this.gd;\n var radialAxis = this.radialAxis;\n var radialLayout = polarLayout.radialaxis;\n\n radialAxis.setScale();\n doAutoRange(gd, radialAxis);\n\n var rng = radialAxis.range;\n radialLayout.range = rng.slice();\n radialLayout._input.range = rng.slice();\n\n radialAxis._rl = [\n radialAxis.r2l(rng[0], null, 'gregorian'),\n radialAxis.r2l(rng[1], null, 'gregorian')\n ];\n};\n\nproto.updateRadialAxis = function(fullLayout, polarLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialLayout = polarLayout.radialaxis;\n var a0 = mod(polarLayout.sector[0], 360);\n var ax = _this.radialAxis;\n var hasRoomForIt = innerRadius < radius;\n\n _this.fillViewInitialKey('radialaxis.angle', radialLayout.angle);\n _this.fillViewInitialKey('radialaxis.range', ax.range.slice());\n\n ax.setGeometry();\n\n // rotate auto tick labels by 180 if in quadrant II and III to make them\n // readable from left-to-right\n //\n // TODO try moving deeper in Axes.drawLabels for better results?\n if(ax.tickangle === 'auto' && (a0 > 90 && a0 <= 270)) {\n ax.tickangle = 180;\n }\n\n // easier to set rotate angle with custom translate function\n var transFn = function(d) {\n return 'translate(' + (ax.l2p(d.x) + innerRadius) + ',0)';\n };\n\n // set special grid path function\n var gridPathFn = function(d) {\n return _this.pathArc(ax.r2p(d.x) + innerRadius);\n };\n\n var newTickLayout = strTickLayout(radialLayout);\n if(_this.radialTickLayout !== newTickLayout) {\n layers['radial-axis'].selectAll('.xtick').remove();\n _this.radialTickLayout = newTickLayout;\n }\n\n if(hasRoomForIt) {\n ax.setScale();\n\n var vals = Axes.calcTicks(ax);\n var valsClipped = Axes.clipEnds(ax, vals);\n var tickSign = Axes.getTickSigns(ax)[2];\n\n Axes.drawTicks(gd, ax, {\n vals: vals,\n layer: layers['radial-axis'],\n path: Axes.makeTickPath(ax, 0, tickSign),\n transFn: transFn,\n crisp: false\n });\n\n Axes.drawGrid(gd, ax, {\n vals: valsClipped,\n layer: layers['radial-grid'],\n path: gridPathFn,\n transFn: Lib.noop,\n crisp: false\n });\n\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: layers['radial-axis'],\n transFn: transFn,\n labelFns: Axes.makeLabelFns(ax, 0)\n });\n }\n\n // stash 'actual' radial axis angle for drag handlers (in degrees)\n var angle = _this.radialAxisAngle = _this.vangles ?\n rad2deg(snapToVertexAngle(deg2rad(radialLayout.angle), _this.vangles)) :\n radialLayout.angle;\n\n var tLayer = strTranslate(cx, cy);\n var tLayer2 = tLayer + strRotate(-angle);\n\n updateElement(\n layers['radial-axis'],\n hasRoomForIt && (radialLayout.showticklabels || radialLayout.ticks),\n {transform: tLayer2}\n );\n\n updateElement(\n layers['radial-grid'],\n hasRoomForIt && radialLayout.showgrid,\n {transform: tLayer}\n );\n\n updateElement(\n layers['radial-line'].select('line'),\n hasRoomForIt && radialLayout.showline,\n {\n x1: innerRadius,\n y1: 0,\n x2: radius,\n y2: 0,\n transform: tLayer2\n }\n )\n .attr('stroke-width', radialLayout.linewidth)\n .call(Color.stroke, radialLayout.linecolor);\n};\n\nproto.updateRadialAxisTitle = function(fullLayout, polarLayout, _angle) {\n var _this = this;\n var gd = _this.gd;\n var radius = _this.radius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialLayout = polarLayout.radialaxis;\n var titleClass = _this.id + 'title';\n\n var angle = _angle !== undefined ? _angle : _this.radialAxisAngle;\n var angleRad = deg2rad(angle);\n var cosa = Math.cos(angleRad);\n var sina = Math.sin(angleRad);\n\n var pad = 0;\n\n // Hint: no need to check if there is in fact a title.text set\n // because if plot is editable, pad needs to be calculated anyways\n // to properly show placeholder text when title is empty.\n if(radialLayout.title) {\n var h = Drawing.bBox(_this.layers['radial-axis'].node()).height;\n var ts = radialLayout.title.font.size;\n pad = radialLayout.side === 'counterclockwise' ?\n -h - ts * 0.4 :\n h + ts * 0.8;\n }\n\n _this.layers['radial-axis-title'] = Titles.draw(gd, titleClass, {\n propContainer: radialLayout,\n propName: _this.id + '.radialaxis.title',\n placeholder: _(gd, 'Click to enter radial axis title'),\n attributes: {\n x: cx + (radius / 2) * cosa + pad * sina,\n y: cy - (radius / 2) * sina + pad * cosa,\n 'text-anchor': 'middle'\n },\n transform: {rotate: -angle}\n });\n};\n\nproto.updateAngularAxis = function(fullLayout, polarLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var angularLayout = polarLayout.angularaxis;\n var ax = _this.angularAxis;\n\n _this.fillViewInitialKey('angularaxis.rotation', angularLayout.rotation);\n\n ax.setGeometry();\n ax.setScale();\n\n // 't'ick to 'g'eometric radians is used all over the place here\n var t2g = function(d) { return ax.t2g(d.x); };\n\n // run rad2deg on tick0 and ditck for thetaunit: 'radians' axes\n if(ax.type === 'linear' && ax.thetaunit === 'radians') {\n ax.tick0 = rad2deg(ax.tick0);\n ax.dtick = rad2deg(ax.dtick);\n }\n\n var _transFn = function(rad) {\n return strTranslate(cx + radius * Math.cos(rad), cy - radius * Math.sin(rad));\n };\n\n var transFn = function(d) {\n return _transFn(t2g(d));\n };\n\n var transFn2 = function(d) {\n var rad = t2g(d);\n return _transFn(rad) + strRotate(-rad2deg(rad));\n };\n\n var gridPathFn = function(d) {\n var rad = t2g(d);\n var cosRad = Math.cos(rad);\n var sinRad = Math.sin(rad);\n return 'M' + [cx + innerRadius * cosRad, cy - innerRadius * sinRad] +\n 'L' + [cx + radius * cosRad, cy - radius * sinRad];\n };\n\n var out = Axes.makeLabelFns(ax, 0);\n var labelStandoff = out.labelStandoff;\n var labelFns = {};\n\n labelFns.xFn = function(d) {\n var rad = t2g(d);\n return Math.cos(rad) * labelStandoff;\n };\n\n labelFns.yFn = function(d) {\n var rad = t2g(d);\n var ff = Math.sin(rad) > 0 ? 0.2 : 1;\n return -Math.sin(rad) * (labelStandoff + d.fontSize * ff) +\n Math.abs(Math.cos(rad)) * (d.fontSize * MID_SHIFT);\n };\n\n labelFns.anchorFn = function(d) {\n var rad = t2g(d);\n var cos = Math.cos(rad);\n return Math.abs(cos) < 0.1 ?\n 'middle' :\n (cos > 0 ? 'start' : 'end');\n };\n\n labelFns.heightFn = function(d, a, h) {\n var rad = t2g(d);\n return -0.5 * (1 + Math.sin(rad)) * h;\n };\n\n var newTickLayout = strTickLayout(angularLayout);\n if(_this.angularTickLayout !== newTickLayout) {\n layers['angular-axis'].selectAll('.' + ax._id + 'tick').remove();\n _this.angularTickLayout = newTickLayout;\n }\n\n var vals = Axes.calcTicks(ax);\n\n // angle of polygon vertices in geometric radians (null means circles)\n // TODO what to do when ax.period > ax._categories ??\n var vangles;\n if(polarLayout.gridshape === 'linear') {\n vangles = vals.map(t2g);\n\n // ax._vals should be always ordered, make them\n // always turn counterclockwise for convenience here\n if(Lib.angleDelta(vangles[0], vangles[1]) < 0) {\n vangles = vangles.slice().reverse();\n }\n } else {\n vangles = null;\n }\n _this.vangles = vangles;\n\n // Use tickval filter for category axes instead of tweaking\n // the range w.r.t sector, so that sectors that cross 360 can\n // show all their ticks.\n if(ax.type === 'category') {\n vals = vals.filter(function(d) {\n return Lib.isAngleInsideSector(t2g(d), _this.sectorInRad);\n });\n }\n\n if(ax.visible) {\n var tickSign = ax.ticks === 'inside' ? -1 : 1;\n var pad = (ax.linewidth || 1) / 2;\n\n Axes.drawTicks(gd, ax, {\n vals: vals,\n layer: layers['angular-axis'],\n path: 'M' + (tickSign * pad) + ',0h' + (tickSign * ax.ticklen),\n transFn: transFn2,\n crisp: false\n });\n\n Axes.drawGrid(gd, ax, {\n vals: vals,\n layer: layers['angular-grid'],\n path: gridPathFn,\n transFn: Lib.noop,\n crisp: false\n });\n\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: layers['angular-axis'],\n repositionOnUpdate: true,\n transFn: transFn,\n labelFns: labelFns\n });\n }\n\n // TODO maybe two arcs is better here?\n // maybe split style attributes between inner and outer angular axes?\n\n updateElement(layers['angular-line'].select('path'), angularLayout.showline, {\n d: _this.pathSubplot(),\n transform: strTranslate(cx, cy)\n })\n .attr('stroke-width', angularLayout.linewidth)\n .call(Color.stroke, angularLayout.linecolor);\n};\n\nproto.updateFx = function(fullLayout, polarLayout) {\n if(!this.gd._context.staticPlot) {\n this.updateAngularDrag(fullLayout);\n this.updateRadialDrag(fullLayout, polarLayout, 0);\n this.updateRadialDrag(fullLayout, polarLayout, 1);\n this.updateMainDrag(fullLayout);\n }\n};\n\nproto.updateMainDrag = function(fullLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var zoomlayer = fullLayout._zoomlayer;\n var MINZOOM = constants.MINZOOM;\n var OFFEDGE = constants.OFFEDGE;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var cxx = _this.cxx;\n var cyy = _this.cyy;\n var sectorInRad = _this.sectorInRad;\n var vangles = _this.vangles;\n var radialAxis = _this.radialAxis;\n var clampTiny = helpers.clampTiny;\n var findXYatLength = helpers.findXYatLength;\n var findEnclosingVertexAngles = helpers.findEnclosingVertexAngles;\n var chw = constants.cornerHalfWidth;\n var chl = constants.cornerLen / 2;\n\n var mainDrag = dragBox.makeDragger(layers, 'path', 'maindrag', 'crosshair');\n\n d3.select(mainDrag)\n .attr('d', _this.pathSubplot())\n .attr('transform', strTranslate(cx, cy));\n\n var dragOpts = {\n element: mainDrag,\n gd: gd,\n subplot: _this.id,\n plotinfo: {\n id: _this.id,\n xaxis: _this.xaxis,\n yaxis: _this.yaxis\n },\n xaxes: [_this.xaxis],\n yaxes: [_this.yaxis]\n };\n\n // mouse px position at drag start (0), move (1)\n var x0, y0;\n // radial distance from circle center at drag start (0), move (1)\n var r0, r1;\n // zoombox persistent quantities\n var path0, dimmed, lum;\n // zoombox, corners elements\n var zb, corners;\n\n function norm(x, y) {\n return Math.sqrt(x * x + y * y);\n }\n\n function xy2r(x, y) {\n return norm(x - cxx, y - cyy);\n }\n\n function xy2a(x, y) {\n return Math.atan2(cyy - y, x - cxx);\n }\n\n function ra2xy(r, a) {\n return [r * Math.cos(a), r * Math.sin(-a)];\n }\n\n function pathCorner(r, a) {\n if(r === 0) return _this.pathSector(2 * chw);\n\n var da = chl / r;\n var am = a - da;\n var ap = a + da;\n var rb = Math.max(0, Math.min(r, radius));\n var rm = rb - chw;\n var rp = rb + chw;\n\n return 'M' + ra2xy(rm, am) +\n 'A' + [rm, rm] + ' 0,0,0 ' + ra2xy(rm, ap) +\n 'L' + ra2xy(rp, ap) +\n 'A' + [rp, rp] + ' 0,0,1 ' + ra2xy(rp, am) +\n 'Z';\n }\n\n // (x,y) is the pt at middle of the va0 <-> va1 edge\n //\n // ... we could eventually add another mode for cursor\n // angles 'close to' enough to a particular vertex.\n function pathCornerForPolygons(r, va0, va1) {\n if(r === 0) return _this.pathSector(2 * chw);\n\n var xy0 = ra2xy(r, va0);\n var xy1 = ra2xy(r, va1);\n var x = clampTiny((xy0[0] + xy1[0]) / 2);\n var y = clampTiny((xy0[1] + xy1[1]) / 2);\n var innerPts, outerPts;\n\n if(x && y) {\n var m = y / x;\n var mperp = -1 / m;\n var midPts = findXYatLength(chw, m, x, y);\n innerPts = findXYatLength(chl, mperp, midPts[0][0], midPts[0][1]);\n outerPts = findXYatLength(chl, mperp, midPts[1][0], midPts[1][1]);\n } else {\n var dx, dy;\n if(y) {\n // horizontal handles\n dx = chl;\n dy = chw;\n } else {\n // vertical handles\n dx = chw;\n dy = chl;\n }\n innerPts = [[x - dx, y - dy], [x + dx, y - dy]];\n outerPts = [[x - dx, y + dy], [x + dx, y + dy]];\n }\n\n return 'M' + innerPts.join('L') +\n 'L' + outerPts.reverse().join('L') + 'Z';\n }\n\n function zoomPrep() {\n r0 = null;\n r1 = null;\n path0 = _this.pathSubplot();\n dimmed = false;\n\n var polarLayoutNow = gd._fullLayout[_this.id];\n lum = tinycolor(polarLayoutNow.bgcolor).getLuminance();\n\n zb = dragBox.makeZoombox(zoomlayer, lum, cx, cy, path0);\n zb.attr('fill-rule', 'evenodd');\n corners = dragBox.makeCorners(zoomlayer, cx, cy);\n clearSelect(gd);\n }\n\n // N.B. this sets scoped 'r0' and 'r1'\n // return true if 'valid' zoom distance, false otherwise\n function clampAndSetR0R1(rr0, rr1) {\n rr1 = Math.max(Math.min(rr1, radius), innerRadius);\n\n // starting or ending drag near center (outer edge),\n // clamps radial distance at origin (at r=radius)\n if(rr0 < OFFEDGE) rr0 = 0;\n else if((radius - rr0) < OFFEDGE) rr0 = radius;\n else if(rr1 < OFFEDGE) rr1 = 0;\n else if((radius - rr1) < OFFEDGE) rr1 = radius;\n\n // make sure r0 < r1,\n // to get correct fill pattern in path1 below\n if(Math.abs(rr1 - rr0) > MINZOOM) {\n if(rr0 < rr1) {\n r0 = rr0;\n r1 = rr1;\n } else {\n r0 = rr1;\n r1 = rr0;\n }\n return true;\n } else {\n r0 = null;\n r1 = null;\n return false;\n }\n }\n\n function applyZoomMove(path1, cpath) {\n path1 = path1 || path0;\n cpath = cpath || 'M0,0Z';\n\n zb.attr('d', path1);\n corners.attr('d', cpath);\n dragBox.transitionZoombox(zb, corners, dimmed, lum);\n dimmed = true;\n\n var updateObj = {};\n computeZoomUpdates(updateObj);\n gd.emit('plotly_relayouting', updateObj);\n }\n\n function zoomMove(dx, dy) {\n var x1 = x0 + dx;\n var y1 = y0 + dy;\n var rr0 = xy2r(x0, y0);\n var rr1 = Math.min(xy2r(x1, y1), radius);\n var a0 = xy2a(x0, y0);\n var path1;\n var cpath;\n\n if(clampAndSetR0R1(rr0, rr1)) {\n path1 = path0 + _this.pathSector(r1);\n if(r0) path1 += _this.pathSector(r0);\n // keep 'starting' angle\n cpath = pathCorner(r0, a0) + pathCorner(r1, a0);\n }\n applyZoomMove(path1, cpath);\n }\n\n function findPolygonRadius(x, y, va0, va1) {\n var xy = helpers.findIntersectionXY(va0, va1, va0, [x - cxx, cyy - y]);\n return norm(xy[0], xy[1]);\n }\n\n function zoomMoveForPolygons(dx, dy) {\n var x1 = x0 + dx;\n var y1 = y0 + dy;\n var a0 = xy2a(x0, y0);\n var a1 = xy2a(x1, y1);\n var vangles0 = findEnclosingVertexAngles(a0, vangles);\n var vangles1 = findEnclosingVertexAngles(a1, vangles);\n var rr0 = findPolygonRadius(x0, y0, vangles0[0], vangles0[1]);\n var rr1 = Math.min(findPolygonRadius(x1, y1, vangles1[0], vangles1[1]), radius);\n var path1;\n var cpath;\n\n if(clampAndSetR0R1(rr0, rr1)) {\n path1 = path0 + _this.pathSector(r1);\n if(r0) path1 += _this.pathSector(r0);\n // keep 'starting' angle here too\n cpath = [\n pathCornerForPolygons(r0, vangles0[0], vangles0[1]),\n pathCornerForPolygons(r1, vangles0[0], vangles0[1])\n ].join(' ');\n }\n applyZoomMove(path1, cpath);\n }\n\n function zoomDone() {\n dragBox.removeZoombox(gd);\n\n if(r0 === null || r1 === null) return;\n var updateObj = {};\n computeZoomUpdates(updateObj);\n\n dragBox.showDoubleClickNotifier(gd);\n\n Registry.call('_guiRelayout', gd, updateObj);\n }\n\n function computeZoomUpdates(update) {\n var rl = radialAxis._rl;\n var m = (rl[1] - rl[0]) / (1 - innerRadius / radius) / radius;\n var newRng = [\n rl[0] + (r0 - innerRadius) * m,\n rl[0] + (r1 - innerRadius) * m\n ];\n update[_this.id + '.radialaxis.range'] = newRng;\n }\n\n function zoomClick(numClicks, evt) {\n var clickMode = gd._fullLayout.clickmode;\n\n dragBox.removeZoombox(gd);\n\n // TODO double once vs twice logic (autorange vs fixed range)\n if(numClicks === 2) {\n var updateObj = {};\n for(var k in _this.viewInitial) {\n updateObj[_this.id + '.' + k] = _this.viewInitial[k];\n }\n\n gd.emit('plotly_doubleclick', null);\n Registry.call('_guiRelayout', gd, updateObj);\n }\n\n if(clickMode.indexOf('select') > -1 && numClicks === 1) {\n selectOnClick(evt, gd, [_this.xaxis], [_this.yaxis], _this.id, dragOpts);\n }\n\n if(clickMode.indexOf('event') > -1) {\n Fx.click(gd, evt, _this.id);\n }\n }\n\n dragOpts.prepFn = function(evt, startX, startY) {\n var dragModeNow = gd._fullLayout.dragmode;\n\n var bbox = mainDrag.getBoundingClientRect();\n x0 = startX - bbox.left;\n y0 = startY - bbox.top;\n\n // need to offset x/y as bbox center does not\n // match origin for asymmetric polygons\n if(vangles) {\n var offset = helpers.findPolygonOffset(radius, sectorInRad[0], sectorInRad[1], vangles);\n x0 += cxx + offset[0];\n y0 += cyy + offset[1];\n }\n\n switch(dragModeNow) {\n case 'zoom':\n if(vangles) {\n dragOpts.moveFn = zoomMoveForPolygons;\n } else {\n dragOpts.moveFn = zoomMove;\n }\n dragOpts.clickFn = zoomClick;\n dragOpts.doneFn = zoomDone;\n zoomPrep(evt, startX, startY);\n break;\n case 'select':\n case 'lasso':\n prepSelect(evt, startX, startY, dragOpts, dragModeNow);\n break;\n }\n };\n\n mainDrag.onmousemove = function(evt) {\n Fx.hover(gd, evt, _this.id);\n gd._fullLayout._lasthover = mainDrag;\n gd._fullLayout._hoversubplot = _this.id;\n };\n\n mainDrag.onmouseout = function(evt) {\n if(gd._dragging) return;\n dragElement.unhover(gd, evt);\n };\n\n dragElement.init(dragOpts);\n};\n\nproto.updateRadialDrag = function(fullLayout, polarLayout, rngIndex) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialAxis = _this.radialAxis;\n var bl = constants.radialDragBoxSize;\n var bl2 = bl / 2;\n\n if(!radialAxis.visible) return;\n\n var angle0 = deg2rad(_this.radialAxisAngle);\n var rl = radialAxis._rl;\n var rl0 = rl[0];\n var rl1 = rl[1];\n var rbase = rl[rngIndex];\n var m = 0.75 * (rl[1] - rl[0]) / (1 - polarLayout.hole) / radius;\n\n var tx, ty, className;\n if(rngIndex) {\n tx = cx + (radius + bl2) * Math.cos(angle0);\n ty = cy - (radius + bl2) * Math.sin(angle0);\n className = 'radialdrag';\n } else {\n // the 'inner' box can get called:\n // - when polar.hole>0\n // - when polar.sector isn't a full circle\n // otherwise it is hidden behind the main drag.\n tx = cx + (innerRadius - bl2) * Math.cos(angle0);\n ty = cy - (innerRadius - bl2) * Math.sin(angle0);\n className = 'radialdrag-inner';\n }\n\n var radialDrag = dragBox.makeRectDragger(layers, className, 'crosshair', -bl2, -bl2, bl, bl);\n var dragOpts = {element: radialDrag, gd: gd};\n\n updateElement(d3.select(radialDrag), radialAxis.visible && innerRadius < radius, {\n transform: strTranslate(tx, ty)\n });\n\n // move function (either rotate or re-range flavor)\n var moveFn2;\n // rotate angle on done\n var angle1;\n // re-range range[1] (or range[0]) on done\n var rprime;\n\n function moveFn(dx, dy) {\n if(moveFn2) {\n moveFn2(dx, dy);\n } else {\n var dvec = [dx, -dy];\n var rvec = [Math.cos(angle0), Math.sin(angle0)];\n var comp = Math.abs(Lib.dot(dvec, rvec) / Math.sqrt(Lib.dot(dvec, dvec)));\n\n // mostly perpendicular motions rotate,\n // mostly parallel motions re-range\n if(!isNaN(comp)) {\n moveFn2 = comp < 0.5 ? rotateMove : rerangeMove;\n }\n }\n\n var update = {};\n computeRadialAxisUpdates(update);\n gd.emit('plotly_relayouting', update);\n }\n\n function computeRadialAxisUpdates(update) {\n if(angle1 !== null) {\n update[_this.id + '.radialaxis.angle'] = angle1;\n } else if(rprime !== null) {\n update[_this.id + '.radialaxis.range[' + rngIndex + ']'] = rprime;\n }\n }\n\n function doneFn() {\n if(angle1 !== null) {\n Registry.call('_guiRelayout', gd, _this.id + '.radialaxis.angle', angle1);\n } else if(rprime !== null) {\n Registry.call('_guiRelayout', gd, _this.id + '.radialaxis.range[' + rngIndex + ']', rprime);\n }\n }\n\n function rotateMove(dx, dy) {\n // disable for inner drag boxes\n if(rngIndex === 0) return;\n\n var x1 = tx + dx;\n var y1 = ty + dy;\n\n angle1 = Math.atan2(cy - y1, x1 - cx);\n if(_this.vangles) angle1 = snapToVertexAngle(angle1, _this.vangles);\n angle1 = rad2deg(angle1);\n\n var transform = strTranslate(cx, cy) + strRotate(-angle1);\n layers['radial-axis'].attr('transform', transform);\n layers['radial-line'].select('line').attr('transform', transform);\n\n var fullLayoutNow = _this.gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n _this.updateRadialAxisTitle(fullLayoutNow, polarLayoutNow, angle1);\n }\n\n function rerangeMove(dx, dy) {\n // project (dx, dy) unto unit radial axis vector\n var dr = Lib.dot([dx, -dy], [Math.cos(angle0), Math.sin(angle0)]);\n rprime = rbase - m * dr;\n\n // make sure rprime does not change the range[0] -> range[1] sign\n if((m > 0) !== (rngIndex ? rprime > rl0 : rprime < rl1)) {\n rprime = null;\n return;\n }\n\n var fullLayoutNow = gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n\n // update radial range -> update c2g -> update _m,_b\n radialAxis.range[rngIndex] = rprime;\n radialAxis._rl[rngIndex] = rprime;\n _this.updateRadialAxis(fullLayoutNow, polarLayoutNow);\n\n _this.xaxis.setRange();\n _this.xaxis.setScale();\n _this.yaxis.setRange();\n _this.yaxis.setScale();\n\n var hasRegl = false;\n\n for(var traceType in _this.traceHash) {\n var moduleCalcData = _this.traceHash[traceType];\n var moduleCalcDataVisible = Lib.filterVisible(moduleCalcData);\n var _module = moduleCalcData[0][0].trace._module;\n _module.plot(gd, _this, moduleCalcDataVisible, polarLayoutNow);\n if(Registry.traceIs(traceType, 'gl') && moduleCalcDataVisible.length) hasRegl = true;\n }\n\n if(hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n }\n\n dragOpts.prepFn = function() {\n moveFn2 = null;\n angle1 = null;\n rprime = null;\n\n dragOpts.moveFn = moveFn;\n dragOpts.doneFn = doneFn;\n\n clearSelect(gd);\n };\n\n dragOpts.clampFn = function(dx, dy) {\n if(Math.sqrt(dx * dx + dy * dy) < constants.MINDRAG) {\n dx = 0;\n dy = 0;\n }\n return [dx, dy];\n };\n\n dragElement.init(dragOpts);\n};\n\nproto.updateAngularDrag = function(fullLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var angularAxis = _this.angularAxis;\n var cx = _this.cx;\n var cy = _this.cy;\n var cxx = _this.cxx;\n var cyy = _this.cyy;\n var dbs = constants.angularDragBoxSize;\n\n var angularDrag = dragBox.makeDragger(layers, 'path', 'angulardrag', 'move');\n var dragOpts = {element: angularDrag, gd: gd};\n\n d3.select(angularDrag)\n .attr('d', _this.pathAnnulus(radius, radius + dbs))\n .attr('transform', strTranslate(cx, cy))\n .call(setCursor, 'move');\n\n function xy2a(x, y) {\n return Math.atan2(cyy + dbs - y, x - cxx - dbs);\n }\n\n // scatter trace, points and textpoints selections\n var scatterTraces = layers.frontplot.select('.scatterlayer').selectAll('.trace');\n var scatterPoints = scatterTraces.selectAll('.point');\n var scatterTextPoints = scatterTraces.selectAll('.textpoint');\n\n // mouse px position at drag start (0), move (1)\n var x0, y0;\n // angular axis angle rotation at drag start (0), move (1)\n var rot0, rot1;\n // induced radial axis rotation (only used on polygon grids)\n var rrot1;\n // angle about circle center at drag start\n var a0;\n\n function moveFn(dx, dy) {\n var fullLayoutNow = _this.gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n\n var x1 = x0 + dx;\n var y1 = y0 + dy;\n var a1 = xy2a(x1, y1);\n var da = rad2deg(a1 - a0);\n rot1 = rot0 + da;\n\n layers.frontplot.attr('transform',\n strTranslate(_this.xOffset2, _this.yOffset2) + strRotate([-da, cxx, cyy])\n );\n\n if(_this.vangles) {\n rrot1 = _this.radialAxisAngle + da;\n\n var trans = strTranslate(cx, cy) + strRotate(-da);\n var trans2 = strTranslate(cx, cy) + strRotate(-rrot1);\n\n layers.bg.attr('transform', trans);\n layers['radial-grid'].attr('transform', trans);\n layers['radial-axis'].attr('transform', trans2);\n layers['radial-line'].select('line').attr('transform', trans2);\n _this.updateRadialAxisTitle(fullLayoutNow, polarLayoutNow, rrot1);\n } else {\n _this.clipPaths.forTraces.select('path').attr('transform',\n strTranslate(cxx, cyy) + strRotate(da)\n );\n }\n\n // 'un-rotate' marker and text points\n scatterPoints.each(function() {\n var sel = d3.select(this);\n var xy = Drawing.getTranslate(sel);\n sel.attr('transform', strTranslate(xy.x, xy.y) + strRotate([da]));\n });\n scatterTextPoints.each(function() {\n var sel = d3.select(this);\n var tx = sel.select('text');\n var xy = Drawing.getTranslate(sel);\n // N.B rotate -> translate ordering matters\n sel.attr('transform', strRotate([da, tx.attr('x'), tx.attr('y')]) + strTranslate(xy.x, xy.y));\n });\n\n // update rotation -> range -> _m,_b\n angularAxis.rotation = Lib.modHalf(rot1, 360);\n _this.updateAngularAxis(fullLayoutNow, polarLayoutNow);\n\n if(_this._hasClipOnAxisFalse && !Lib.isFullCircle(_this.sectorInRad)) {\n scatterTraces.call(Drawing.hideOutsideRangePoints, _this);\n }\n\n var hasRegl = false;\n\n for(var traceType in _this.traceHash) {\n if(Registry.traceIs(traceType, 'gl')) {\n var moduleCalcData = _this.traceHash[traceType];\n var moduleCalcDataVisible = Lib.filterVisible(moduleCalcData);\n var _module = moduleCalcData[0][0].trace._module;\n _module.plot(gd, _this, moduleCalcDataVisible, polarLayoutNow);\n if(moduleCalcDataVisible.length) hasRegl = true;\n }\n }\n\n if(hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n\n var update = {};\n computeRotationUpdates(update);\n gd.emit('plotly_relayouting', update);\n }\n\n function computeRotationUpdates(updateObj) {\n updateObj[_this.id + '.angularaxis.rotation'] = rot1;\n\n if(_this.vangles) {\n updateObj[_this.id + '.radialaxis.angle'] = rrot1;\n }\n }\n\n function doneFn() {\n scatterTextPoints.select('text').attr('transform', null);\n\n var updateObj = {};\n computeRotationUpdates(updateObj);\n Registry.call('_guiRelayout', gd, updateObj);\n }\n\n dragOpts.prepFn = function(evt, startX, startY) {\n var polarLayoutNow = fullLayout[_this.id];\n rot0 = polarLayoutNow.angularaxis.rotation;\n\n var bbox = angularDrag.getBoundingClientRect();\n x0 = startX - bbox.left;\n y0 = startY - bbox.top;\n a0 = xy2a(x0, y0);\n\n dragOpts.moveFn = moveFn;\n dragOpts.doneFn = doneFn;\n\n clearSelect(gd);\n };\n\n // I don't what we should do in this case, skip we now\n if(_this.vangles && !Lib.isFullCircle(_this.sectorInRad)) {\n dragOpts.prepFn = Lib.noop;\n setCursor(d3.select(angularDrag), null);\n }\n\n dragElement.init(dragOpts);\n};\n\nproto.isPtInside = function(d) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var thetag = this.angularAxis.c2g(d.theta);\n var radialAxis = this.radialAxis;\n var r = radialAxis.c2l(d.r);\n var rl = radialAxis._rl;\n\n var fn = vangles ? helpers.isPtInsidePolygon : Lib.isPtInsideSector;\n return fn(r, thetag, rl, sectorInRad, vangles);\n};\n\nproto.pathArc = function(r) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygon : Lib.pathArc;\n return fn(r, sectorInRad[0], sectorInRad[1], vangles);\n};\n\nproto.pathSector = function(r) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygon : Lib.pathSector;\n return fn(r, sectorInRad[0], sectorInRad[1], vangles);\n};\n\nproto.pathAnnulus = function(r0, r1) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygonAnnulus : Lib.pathAnnulus;\n return fn(r0, r1, sectorInRad[0], sectorInRad[1], vangles);\n};\n\nproto.pathSubplot = function() {\n var r0 = this.innerRadius;\n var r1 = this.radius;\n return r0 ? this.pathAnnulus(r0, r1) : this.pathSector(r1);\n};\n\nproto.fillViewInitialKey = function(key, val) {\n if(!(key in this.viewInitial)) {\n this.viewInitial[key] = val;\n }\n};\n\nfunction strTickLayout(axLayout) {\n var out = axLayout.ticks + String(axLayout.ticklen) + String(axLayout.showticklabels);\n if('side' in axLayout) out += axLayout.side;\n return out;\n}\n\n// Finds the bounding box of a given circle sector,\n// inspired by https://math.stackexchange.com/q/1852703\n//\n// assumes:\n// - sector[0] < sector[1]\n// - counterclockwise rotation\nfunction computeSectorBBox(sector) {\n var s0 = sector[0];\n var s1 = sector[1];\n var arc = s1 - s0;\n var a0 = mod(s0, 360);\n var a1 = a0 + arc;\n\n var ax0 = Math.cos(deg2rad(a0));\n var ay0 = Math.sin(deg2rad(a0));\n var ax1 = Math.cos(deg2rad(a1));\n var ay1 = Math.sin(deg2rad(a1));\n\n var x0, y0, x1, y1;\n\n if((a0 <= 90 && a1 >= 90) || (a0 > 90 && a1 >= 450)) {\n y1 = 1;\n } else if(ay0 <= 0 && ay1 <= 0) {\n y1 = 0;\n } else {\n y1 = Math.max(ay0, ay1);\n }\n\n if((a0 <= 180 && a1 >= 180) || (a0 > 180 && a1 >= 540)) {\n x0 = -1;\n } else if(ax0 >= 0 && ax1 >= 0) {\n x0 = 0;\n } else {\n x0 = Math.min(ax0, ax1);\n }\n\n if((a0 <= 270 && a1 >= 270) || (a0 > 270 && a1 >= 630)) {\n y0 = -1;\n } else if(ay0 >= 0 && ay1 >= 0) {\n y0 = 0;\n } else {\n y0 = Math.min(ay0, ay1);\n }\n\n if(a1 >= 360) {\n x1 = 1;\n } else if(ax0 <= 0 && ax1 <= 0) {\n x1 = 0;\n } else {\n x1 = Math.max(ax0, ax1);\n }\n\n return [x0, y0, x1, y1];\n}\n\nfunction snapToVertexAngle(a, vangles) {\n var fn = function(v) { return Lib.angleDist(a, v); };\n var ind = Lib.findIndexOfMin(vangles, fn);\n return vangles[ind];\n}\n\nfunction updateElement(sel, showAttr, attrs) {\n if(showAttr) {\n sel.attr('display', null);\n sel.attr(attrs);\n } else if(sel) {\n sel.attr('display', 'none');\n }\n return sel;\n}\n\nfunction strTranslate(x, y) {\n return 'translate(' + x + ',' + y + ')';\n}\n\nfunction strRotate(angle) {\n return 'rotate(' + angle + ')';\n}\n\n\n/***/ }),\n\n/***/ \"59e0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\nexports.formatPiePercent = function formatPiePercent(v, separators) {\n var vRounded = (v * 100).toPrecision(3);\n if(vRounded.lastIndexOf('.') !== -1) {\n vRounded = vRounded.replace(/[.]?0+$/, '');\n }\n return Lib.numSeparate(vRounded, separators) + '%';\n};\n\nexports.formatPieValue = function formatPieValue(v, separators) {\n var vRounded = v.toPrecision(10);\n if(vRounded.lastIndexOf('.') !== -1) {\n vRounded = vRounded.replace(/[.]?0+$/, '');\n }\n return Lib.numSeparate(vRounded, separators);\n};\n\nexports.getFirstFilled = function getFirstFilled(array, indices) {\n if(!Array.isArray(array)) return;\n for(var i = 0; i < indices.length; i++) {\n var v = array[indices[i]];\n if(v || v === 0 || v === '') return v;\n }\n};\n\nexports.castOption = function castOption(item, indices) {\n if(Array.isArray(item)) return exports.getFirstFilled(item, indices);\n else if(item) return item;\n};\n\n\n/***/ }),\n\n/***/ \"5a1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n/**\n * Push array with unique items\n *\n * Ignores falsy items, except 0 so we can use it to construct arrays of indices.\n *\n * @param {array} array\n * array to be filled\n * @param {any} item\n * item to be or not to be inserted\n * @return {array}\n * ref to array (now possibly containing one more item)\n *\n */\nmodule.exports = function pushUnique(array, item) {\n if(item instanceof RegExp) {\n var itemStr = item.toString();\n for(var i = 0; i < array.length; i++) {\n if(array[i] instanceof RegExp && array[i].toString() === itemStr) {\n return array;\n }\n }\n array.push(item);\n } else if((item || item === 0) && array.indexOf(item) === -1) array.push(item);\n\n return array;\n};\n\n\n/***/ }),\n\n/***/ \"5a1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Color = __webpack_require__(\"d115\");\n\nvar ARROWPATHS = __webpack_require__(\"a935\");\n\n/**\n * Add arrowhead(s) to a path or line element\n *\n * @param {d3.selection} el3: a d3-selected line or path element\n *\n * @param {string} ends: 'none', 'start', 'end', or 'start+end' for which ends get arrowheads\n *\n * @param {object} options: style information. Must have all the following:\n * @param {number} options.arrowhead: end head style - see ./arrow_paths\n * @param {number} options.startarrowhead: start head style - see ./arrow_paths\n * @param {number} options.arrowsize: relative size of the end head vs line width\n * @param {number} options.startarrowsize: relative size of the start head vs line width\n * @param {number} options.standoff: distance in px to move the end arrow point from its target\n * @param {number} options.startstandoff: distance in px to move the start arrow point from its target\n * @param {number} options.arrowwidth: width of the arrow line\n * @param {string} options.arrowcolor: color of the arrow line, for the head to match\n * Note that the opacity of this color is ignored, as it's assumed the container\n * of both the line and head has opacity applied to it so there isn't greater opacity\n * where they overlap.\n */\nmodule.exports = function drawArrowHead(el3, ends, options) {\n var el = el3.node();\n var headStyle = ARROWPATHS[options.arrowhead || 0];\n var startHeadStyle = ARROWPATHS[options.startarrowhead || 0];\n var scale = (options.arrowwidth || 1) * (options.arrowsize || 1);\n var startScale = (options.arrowwidth || 1) * (options.startarrowsize || 1);\n var doStart = ends.indexOf('start') >= 0;\n var doEnd = ends.indexOf('end') >= 0;\n var backOff = headStyle.backoff * scale + options.standoff;\n var startBackOff = startHeadStyle.backoff * startScale + options.startstandoff;\n\n var start, end, startRot, endRot;\n\n if(el.nodeName === 'line') {\n start = {x: +el3.attr('x1'), y: +el3.attr('y1')};\n end = {x: +el3.attr('x2'), y: +el3.attr('y2')};\n\n var dx = start.x - end.x;\n var dy = start.y - end.y;\n\n startRot = Math.atan2(dy, dx);\n endRot = startRot + Math.PI;\n if(backOff && startBackOff) {\n if(backOff + startBackOff > Math.sqrt(dx * dx + dy * dy)) {\n hideLine();\n return;\n }\n }\n\n if(backOff) {\n if(backOff * backOff > dx * dx + dy * dy) {\n hideLine();\n return;\n }\n var backOffX = backOff * Math.cos(startRot);\n var backOffY = backOff * Math.sin(startRot);\n\n end.x += backOffX;\n end.y += backOffY;\n el3.attr({x2: end.x, y2: end.y});\n }\n\n if(startBackOff) {\n if(startBackOff * startBackOff > dx * dx + dy * dy) {\n hideLine();\n return;\n }\n var startBackOffX = startBackOff * Math.cos(startRot);\n var startbackOffY = startBackOff * Math.sin(startRot);\n\n start.x -= startBackOffX;\n start.y -= startbackOffY;\n el3.attr({x1: start.x, y1: start.y});\n }\n } else if(el.nodeName === 'path') {\n var pathlen = el.getTotalLength();\n // using dash to hide the backOff region of the path.\n // if we ever allow dash for the arrow we'll have to\n // do better than this hack... maybe just manually\n // combine the two\n var dashArray = '';\n\n if(pathlen < backOff + startBackOff) {\n hideLine();\n return;\n }\n\n\n var start0 = el.getPointAtLength(0);\n var dstart = el.getPointAtLength(0.1);\n\n startRot = Math.atan2(start0.y - dstart.y, start0.x - dstart.x);\n start = el.getPointAtLength(Math.min(startBackOff, pathlen));\n\n dashArray = '0px,' + startBackOff + 'px,';\n\n var end0 = el.getPointAtLength(pathlen);\n var dend = el.getPointAtLength(pathlen - 0.1);\n\n endRot = Math.atan2(end0.y - dend.y, end0.x - dend.x);\n end = el.getPointAtLength(Math.max(0, pathlen - backOff));\n\n var shortening = dashArray ? startBackOff + backOff : backOff;\n dashArray += (pathlen - shortening) + 'px,' + pathlen + 'px';\n\n el3.style('stroke-dasharray', dashArray);\n }\n\n function hideLine() { el3.style('stroke-dasharray', '0px,100px'); }\n\n function drawhead(arrowHeadStyle, p, rot, arrowScale) {\n if(!arrowHeadStyle.path) return;\n if(arrowHeadStyle.noRotate) rot = 0;\n\n d3.select(el.parentNode).append('path')\n .attr({\n 'class': el3.attr('class'),\n d: arrowHeadStyle.path,\n transform:\n 'translate(' + p.x + ',' + p.y + ')' +\n (rot ? 'rotate(' + (rot * 180 / Math.PI) + ')' : '') +\n 'scale(' + arrowScale + ')'\n })\n .style({\n fill: Color.rgb(options.arrowcolor),\n 'stroke-width': 0\n });\n }\n\n if(doStart) drawhead(startHeadStyle, start, startRot, startScale);\n if(doEnd) drawhead(headStyle, end, endRot, scale);\n};\n\n\n/***/ }),\n\n/***/ \"5aa9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bn2num = __webpack_require__(\"0948\")\nvar ctz = __webpack_require__(\"7223\")\n\nmodule.exports = roundRat\n\n// Round a rational to the closest float\nfunction roundRat (f) {\n var a = f[0]\n var b = f[1]\n if (a.cmpn(0) === 0) {\n return 0\n }\n var h = a.abs().divmod(b.abs())\n var iv = h.div\n var x = bn2num(iv)\n var ir = h.mod\n var sgn = (a.negative !== b.negative) ? -1 : 1\n if (ir.cmpn(0) === 0) {\n return sgn * x\n }\n if (x) {\n var s = ctz(x) + 4\n var y = bn2num(ir.ushln(s).divRound(b))\n return sgn * (x + y * Math.pow(2, -s))\n } else {\n var ybits = b.bitLength() - ir.bitLength() + 53\n var y = bn2num(ir.ushln(ybits).divRound(b))\n if (ybits < 1023) {\n return sgn * y * Math.pow(2, -ybits)\n }\n y *= Math.pow(2, -1023)\n return sgn * y * Math.pow(2, 1023 - ybits)\n }\n}\n\n\n/***/ }),\n\n/***/ \"5aae\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar baseAttrs = __webpack_require__(\"a876\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar texttemplateAttrs = __webpack_require__(\"94d5\").texttemplateAttrs;\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nvar scatterMarkerAttrs = scatterAttrs.marker;\nvar scatterLineAttrs = scatterAttrs.line;\nvar scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n\nmodule.exports = {\n carpet: {\n valType: 'string',\n \n editType: 'calc',\n \n },\n a: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n b: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n mode: extendFlat({}, scatterAttrs.mode, {dflt: 'markers'}),\n text: extendFlat({}, scatterAttrs.text, {\n \n }),\n texttemplate: texttemplateAttrs({editType: 'plot'}, {\n keys: ['a', 'b', 'text']\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {\n \n }),\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n dash: scatterLineAttrs.dash,\n shape: extendFlat({}, scatterLineAttrs.shape,\n {values: ['linear', 'spline']}),\n smoothing: scatterLineAttrs.smoothing,\n editType: 'calc'\n },\n connectgaps: scatterAttrs.connectgaps,\n fill: extendFlat({}, scatterAttrs.fill, {\n values: ['none', 'toself', 'tonext'],\n dflt: 'none',\n \n }),\n fillcolor: scatterAttrs.fillcolor,\n marker: extendFlat({\n symbol: scatterMarkerAttrs.symbol,\n opacity: scatterMarkerAttrs.opacity,\n maxdisplayed: scatterMarkerAttrs.maxdisplayed,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n line: extendFlat({\n width: scatterMarkerLineAttrs.width,\n editType: 'calc'\n },\n colorScaleAttrs('marker.line')\n ),\n gradient: scatterMarkerAttrs.gradient,\n editType: 'calc'\n },\n colorScaleAttrs('marker')\n ),\n\n textfont: scatterAttrs.textfont,\n textposition: scatterAttrs.textposition,\n\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected,\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: ['a', 'b', 'text', 'name']\n }),\n hoveron: scatterAttrs.hoveron,\n hovertemplate: hovertemplateAttrs()\n};\n\n\n/***/ }),\n\n/***/ \"5ad1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n// var Lib = require('../../lib');\n\nfunction calc(gd, trace) {\n var cd = [];\n\n var lastReading = trace.value;\n if(!(typeof trace._lastValue === 'number')) trace._lastValue = trace.value;\n var secondLastReading = trace._lastValue;\n var deltaRef = secondLastReading;\n if(trace._hasDelta && typeof trace.delta.reference === 'number') {\n deltaRef = trace.delta.reference;\n }\n cd[0] = {\n y: lastReading,\n lastY: secondLastReading,\n\n delta: lastReading - deltaRef,\n relativeDelta: (lastReading - deltaRef) / deltaRef,\n };\n return cd;\n}\n\nmodule.exports = {\n calc: calc\n};\n\n\n/***/ }),\n\n/***/ \"5ad3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(\"f6a2\")\n\r\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbIkY6L3NvdXJjZS92dWUtcGxvdGx5LmpzL25vZGVfbW9kdWxlcy9wb2ludC1jbHVzdGVyL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vcXVhZCcpXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaO0FBQ0EsTUFBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDOyJ9\n\n/***/ }),\n\n/***/ \"5b68\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n mode: {\n valType: 'enumerated',\n dflt: 'afterall',\n \n values: ['immediate', 'next', 'afterall'],\n \n },\n direction: {\n valType: 'enumerated',\n \n values: ['forward', 'reverse'],\n dflt: 'forward',\n \n },\n fromcurrent: {\n valType: 'boolean',\n dflt: false,\n \n \n },\n frame: {\n duration: {\n valType: 'number',\n \n min: 0,\n dflt: 500,\n \n },\n redraw: {\n valType: 'boolean',\n \n dflt: true,\n \n },\n },\n transition: {\n duration: {\n valType: 'number',\n \n min: 0,\n dflt: 500,\n editType: 'none',\n \n },\n easing: {\n valType: 'enumerated',\n dflt: 'cubic-in-out',\n values: [\n 'linear',\n 'quad',\n 'cubic',\n 'sin',\n 'exp',\n 'circle',\n 'elastic',\n 'back',\n 'bounce',\n 'linear-in',\n 'quad-in',\n 'cubic-in',\n 'sin-in',\n 'exp-in',\n 'circle-in',\n 'elastic-in',\n 'back-in',\n 'bounce-in',\n 'linear-out',\n 'quad-out',\n 'cubic-out',\n 'sin-out',\n 'exp-out',\n 'circle-out',\n 'elastic-out',\n 'back-out',\n 'bounce-out',\n 'linear-in-out',\n 'quad-in-out',\n 'cubic-in-out',\n 'sin-in-out',\n 'exp-in-out',\n 'circle-in-out',\n 'elastic-in-out',\n 'back-in-out',\n 'bounce-in-out'\n ],\n \n editType: 'none',\n \n },\n ordering: {\n valType: 'enumerated',\n values: ['layout first', 'traces first'],\n dflt: 'layout first',\n \n editType: 'none',\n \n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"5bec\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = function eventData(out, pt /* , trace, cd, pointNumber */) {\n // standard cartesian event data\n out.x = 'xVal' in pt ? pt.xVal : pt.x;\n out.y = 'yVal' in pt ? pt.yVal : pt.y;\n\n // for funnel\n if('initial' in pt) out.initial = pt.initial;\n if('delta' in pt) out.delta = pt.delta;\n if('final' in pt) out.final = pt.final;\n\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"5c33\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar annAttrs = __webpack_require__(\"bb4a\");\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\nvar fontAttrs = __webpack_require__(\"9845\");\nvar domainAttrs = __webpack_require__(\"81f0\").attributes;\n\nvar FORMAT_LINK = __webpack_require__(\"78df\").FORMAT_LINK;\n\nvar attrs = module.exports = overrideAll({\n domain: domainAttrs({name: 'table', trace: true}),\n\n columnwidth: {\n valType: 'number',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n columnorder: {\n valType: 'data_array',\n \n \n },\n\n header: {\n\n values: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n\n format: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n\n prefix: {\n valType: 'string',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n suffix: {\n valType: 'string',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n height: {\n valType: 'number',\n dflt: 28,\n \n \n },\n\n align: extendFlat({}, annAttrs.align, {arrayOk: true}),\n\n line: {\n width: {\n valType: 'number',\n arrayOk: true,\n dflt: 1,\n \n },\n color: {\n valType: 'color',\n arrayOk: true,\n dflt: 'grey',\n \n }\n },\n\n fill: {\n color: {\n valType: 'color',\n arrayOk: true,\n dflt: 'white',\n \n \n }\n },\n\n font: extendFlat({}, fontAttrs({arrayOk: true}))\n },\n\n cells: {\n\n values: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n\n format: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n\n prefix: {\n valType: 'string',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n suffix: {\n valType: 'string',\n arrayOk: true,\n dflt: null,\n \n \n },\n\n height: {\n valType: 'number',\n dflt: 20,\n \n \n },\n\n align: extendFlat({}, annAttrs.align, {arrayOk: true}),\n\n line: {\n width: {\n valType: 'number',\n arrayOk: true,\n dflt: 1,\n \n },\n color: {\n valType: 'color',\n arrayOk: true,\n dflt: 'grey',\n \n }\n },\n\n fill: {\n color: {\n valType: 'color',\n arrayOk: true,\n \n dflt: 'white',\n \n }\n },\n\n font: extendFlat({}, fontAttrs({arrayOk: true}))\n }\n}, 'calc', 'from-root');\nattrs.transforms = undefined;\n\n\n/***/ }),\n\n/***/ \"5c6c\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"5c79\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar tinycolor = __webpack_require__(\"66cb\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\nvar _ = Lib._;\nvar Color = __webpack_require__(\"d115\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar setConvert = __webpack_require__(\"1a40\");\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar Plots = __webpack_require__(\"bb71\");\nvar Axes = __webpack_require__(\"0642\");\nvar dragElement = __webpack_require__(\"4efe\");\nvar Fx = __webpack_require__(\"a5c4\");\nvar Titles = __webpack_require__(\"1999\");\nvar prepSelect = __webpack_require__(\"1876\").prepSelect;\nvar selectOnClick = __webpack_require__(\"1876\").selectOnClick;\nvar clearSelect = __webpack_require__(\"1876\").clearSelect;\nvar constants = __webpack_require__(\"d301\");\n\nfunction Ternary(options, fullLayout) {\n this.id = options.id;\n this.graphDiv = options.graphDiv;\n this.init(fullLayout);\n this.makeFramework(fullLayout);\n\n // unfortunately, we have to keep track of some axis tick settings\n // as ternary subplots do not implement the 'ticks' editType\n this.aTickLayout = null;\n this.bTickLayout = null;\n this.cTickLayout = null;\n}\n\nmodule.exports = Ternary;\n\nvar proto = Ternary.prototype;\n\nproto.init = function(fullLayout) {\n this.container = fullLayout._ternarylayer;\n this.defs = fullLayout._defs;\n this.layoutId = fullLayout._uid;\n this.traceHash = {};\n this.layers = {};\n};\n\nproto.plot = function(ternaryCalcData, fullLayout) {\n var _this = this;\n var ternaryLayout = fullLayout[_this.id];\n var graphSize = fullLayout._size;\n\n _this._hasClipOnAxisFalse = false;\n for(var i = 0; i < ternaryCalcData.length; i++) {\n var trace = ternaryCalcData[i][0].trace;\n\n if(trace.cliponaxis === false) {\n _this._hasClipOnAxisFalse = true;\n break;\n }\n }\n\n _this.updateLayers(ternaryLayout);\n _this.adjustLayout(ternaryLayout, graphSize);\n Plots.generalUpdatePerTraceModule(_this.graphDiv, _this, ternaryCalcData, ternaryLayout);\n _this.layers.plotbg.select('path').call(Color.fill, ternaryLayout.bgcolor);\n};\n\nproto.makeFramework = function(fullLayout) {\n var _this = this;\n var gd = _this.graphDiv;\n var ternaryLayout = fullLayout[_this.id];\n\n var clipId = _this.clipId = 'clip' + _this.layoutId + _this.id;\n var clipIdRelative = _this.clipIdRelative = 'clip-relative' + _this.layoutId + _this.id;\n\n // clippath for this ternary subplot\n _this.clipDef = Lib.ensureSingleById(fullLayout._clips, 'clipPath', clipId, function(s) {\n s.append('path').attr('d', 'M0,0Z');\n });\n\n // 'relative' clippath (i.e. no translation) for this ternary subplot\n _this.clipDefRelative = Lib.ensureSingleById(fullLayout._clips, 'clipPath', clipIdRelative, function(s) {\n s.append('path').attr('d', 'M0,0Z');\n });\n\n // container for everything in this ternary subplot\n _this.plotContainer = Lib.ensureSingle(_this.container, 'g', _this.id);\n _this.updateLayers(ternaryLayout);\n\n Drawing.setClipUrl(_this.layers.backplot, clipId, gd);\n Drawing.setClipUrl(_this.layers.grids, clipId, gd);\n};\n\nproto.updateLayers = function(ternaryLayout) {\n var _this = this;\n var layers = _this.layers;\n\n // inside that container, we have one container for the data, and\n // one each for the three axes around it.\n\n var plotLayers = ['draglayer', 'plotbg', 'backplot', 'grids'];\n\n if(ternaryLayout.aaxis.layer === 'below traces') {\n plotLayers.push('aaxis', 'aline');\n }\n if(ternaryLayout.baxis.layer === 'below traces') {\n plotLayers.push('baxis', 'bline');\n }\n if(ternaryLayout.caxis.layer === 'below traces') {\n plotLayers.push('caxis', 'cline');\n }\n\n plotLayers.push('frontplot');\n\n if(ternaryLayout.aaxis.layer === 'above traces') {\n plotLayers.push('aaxis', 'aline');\n }\n if(ternaryLayout.baxis.layer === 'above traces') {\n plotLayers.push('baxis', 'bline');\n }\n if(ternaryLayout.caxis.layer === 'above traces') {\n plotLayers.push('caxis', 'cline');\n }\n\n var toplevel = _this.plotContainer.selectAll('g.toplevel')\n .data(plotLayers, String);\n\n var grids = ['agrid', 'bgrid', 'cgrid'];\n\n toplevel.enter().append('g')\n .attr('class', function(d) { return 'toplevel ' + d; })\n .each(function(d) {\n var s = d3.select(this);\n layers[d] = s;\n\n // containers for different trace types.\n // NOTE - this is different from cartesian, where all traces\n // are in front of grids. Here I'm putting maps behind the grids\n // so the grids will always be visible if they're requested.\n // Perhaps we want that for cartesian too?\n if(d === 'frontplot') {\n s.append('g').classed('scatterlayer', true);\n } else if(d === 'backplot') {\n s.append('g').classed('maplayer', true);\n } else if(d === 'plotbg') {\n s.append('path').attr('d', 'M0,0Z');\n } else if(d === 'aline' || d === 'bline' || d === 'cline') {\n s.append('path');\n } else if(d === 'grids') {\n grids.forEach(function(d) {\n layers[d] = s.append('g').classed('grid ' + d, true);\n });\n }\n });\n\n toplevel.order();\n};\n\nvar whRatio = Math.sqrt(4 / 3);\n\nproto.adjustLayout = function(ternaryLayout, graphSize) {\n var _this = this;\n var domain = ternaryLayout.domain;\n var xDomainCenter = (domain.x[0] + domain.x[1]) / 2;\n var yDomainCenter = (domain.y[0] + domain.y[1]) / 2;\n var xDomain = domain.x[1] - domain.x[0];\n var yDomain = domain.y[1] - domain.y[0];\n var wmax = xDomain * graphSize.w;\n var hmax = yDomain * graphSize.h;\n var sum = ternaryLayout.sum;\n var amin = ternaryLayout.aaxis.min;\n var bmin = ternaryLayout.baxis.min;\n var cmin = ternaryLayout.caxis.min;\n\n var x0, y0, w, h, xDomainFinal, yDomainFinal;\n\n if(wmax > whRatio * hmax) {\n h = hmax;\n w = h * whRatio;\n } else {\n w = wmax;\n h = w / whRatio;\n }\n\n xDomainFinal = xDomain * w / wmax;\n yDomainFinal = yDomain * h / hmax;\n\n x0 = graphSize.l + graphSize.w * xDomainCenter - w / 2;\n y0 = graphSize.t + graphSize.h * (1 - yDomainCenter) - h / 2;\n\n _this.x0 = x0;\n _this.y0 = y0;\n _this.w = w;\n _this.h = h;\n _this.sum = sum;\n\n // set up the x and y axis objects we'll use to lay out the points\n _this.xaxis = {\n type: 'linear',\n range: [amin + 2 * cmin - sum, sum - amin - 2 * bmin],\n domain: [\n xDomainCenter - xDomainFinal / 2,\n xDomainCenter + xDomainFinal / 2\n ],\n _id: 'x'\n };\n setConvert(_this.xaxis, _this.graphDiv._fullLayout);\n _this.xaxis.setScale();\n _this.xaxis.isPtWithinRange = function(d) {\n return (\n d.a >= _this.aaxis.range[0] &&\n d.a <= _this.aaxis.range[1] &&\n d.b >= _this.baxis.range[1] &&\n d.b <= _this.baxis.range[0] &&\n d.c >= _this.caxis.range[1] &&\n d.c <= _this.caxis.range[0]\n );\n };\n\n _this.yaxis = {\n type: 'linear',\n range: [amin, sum - bmin - cmin],\n domain: [\n yDomainCenter - yDomainFinal / 2,\n yDomainCenter + yDomainFinal / 2\n ],\n _id: 'y'\n };\n setConvert(_this.yaxis, _this.graphDiv._fullLayout);\n _this.yaxis.setScale();\n _this.yaxis.isPtWithinRange = function() { return true; };\n\n // set up the modified axes for tick drawing\n var yDomain0 = _this.yaxis.domain[0];\n\n // aaxis goes up the left side. Set it up as a y axis, but with\n // fictitious angles and domain, but then rotate and translate\n // it into place at the end\n var aaxis = _this.aaxis = extendFlat({}, ternaryLayout.aaxis, {\n range: [amin, sum - bmin - cmin],\n side: 'left',\n // tickangle = 'auto' means 0 anyway for a y axis, need to coerce to 0 here\n // so we can shift by 30.\n tickangle: (+ternaryLayout.aaxis.tickangle || 0) - 30,\n domain: [yDomain0, yDomain0 + yDomainFinal * whRatio],\n anchor: 'free',\n position: 0,\n _id: 'y',\n _length: w\n });\n setConvert(aaxis, _this.graphDiv._fullLayout);\n aaxis.setScale();\n\n // baxis goes across the bottom (backward). We can set it up as an x axis\n // without any enclosing transformation.\n var baxis = _this.baxis = extendFlat({}, ternaryLayout.baxis, {\n range: [sum - amin - cmin, bmin],\n side: 'bottom',\n domain: _this.xaxis.domain,\n anchor: 'free',\n position: 0,\n _id: 'x',\n _length: w\n });\n setConvert(baxis, _this.graphDiv._fullLayout);\n baxis.setScale();\n\n // caxis goes down the right side. Set it up as a y axis, with\n // post-transformation similar to aaxis\n var caxis = _this.caxis = extendFlat({}, ternaryLayout.caxis, {\n range: [sum - amin - bmin, cmin],\n side: 'right',\n tickangle: (+ternaryLayout.caxis.tickangle || 0) + 30,\n domain: [yDomain0, yDomain0 + yDomainFinal * whRatio],\n anchor: 'free',\n position: 0,\n _id: 'y',\n _length: w\n });\n setConvert(caxis, _this.graphDiv._fullLayout);\n caxis.setScale();\n\n var triangleClip = 'M' + x0 + ',' + (y0 + h) + 'h' + w + 'l-' + (w / 2) + ',-' + h + 'Z';\n _this.clipDef.select('path').attr('d', triangleClip);\n _this.layers.plotbg.select('path').attr('d', triangleClip);\n\n var triangleClipRelative = 'M0,' + h + 'h' + w + 'l-' + (w / 2) + ',-' + h + 'Z';\n _this.clipDefRelative.select('path').attr('d', triangleClipRelative);\n\n var plotTransform = 'translate(' + x0 + ',' + y0 + ')';\n _this.plotContainer.selectAll('.scatterlayer,.maplayer')\n .attr('transform', plotTransform);\n\n _this.clipDefRelative.select('path').attr('transform', null);\n\n // TODO: shift axes to accommodate linewidth*sin(30) tick mark angle\n\n // TODO: there's probably an easier way to handle these translations/offsets now...\n var bTransform = 'translate(' + (x0 - baxis._offset) + ',' + (y0 + h) + ')';\n\n _this.layers.baxis.attr('transform', bTransform);\n _this.layers.bgrid.attr('transform', bTransform);\n\n var aTransform = 'translate(' + (x0 + w / 2) + ',' + y0 +\n ')rotate(30)translate(0,' + -aaxis._offset + ')';\n _this.layers.aaxis.attr('transform', aTransform);\n _this.layers.agrid.attr('transform', aTransform);\n\n var cTransform = 'translate(' + (x0 + w / 2) + ',' + y0 +\n ')rotate(-30)translate(0,' + -caxis._offset + ')';\n _this.layers.caxis.attr('transform', cTransform);\n _this.layers.cgrid.attr('transform', cTransform);\n\n _this.drawAxes(true);\n\n _this.layers.aline.select('path')\n .attr('d', aaxis.showline ?\n 'M' + x0 + ',' + (y0 + h) + 'l' + (w / 2) + ',-' + h : 'M0,0')\n .call(Color.stroke, aaxis.linecolor || '#000')\n .style('stroke-width', (aaxis.linewidth || 0) + 'px');\n _this.layers.bline.select('path')\n .attr('d', baxis.showline ?\n 'M' + x0 + ',' + (y0 + h) + 'h' + w : 'M0,0')\n .call(Color.stroke, baxis.linecolor || '#000')\n .style('stroke-width', (baxis.linewidth || 0) + 'px');\n _this.layers.cline.select('path')\n .attr('d', caxis.showline ?\n 'M' + (x0 + w / 2) + ',' + y0 + 'l' + (w / 2) + ',' + h : 'M0,0')\n .call(Color.stroke, caxis.linecolor || '#000')\n .style('stroke-width', (caxis.linewidth || 0) + 'px');\n\n if(!_this.graphDiv._context.staticPlot) {\n _this.initInteractions();\n }\n\n Drawing.setClipUrl(\n _this.layers.frontplot,\n _this._hasClipOnAxisFalse ? null : _this.clipId,\n _this.graphDiv\n );\n};\n\nproto.drawAxes = function(doTitles) {\n var _this = this;\n var gd = _this.graphDiv;\n var titlesuffix = _this.id.substr(7) + 'title';\n var layers = _this.layers;\n var aaxis = _this.aaxis;\n var baxis = _this.baxis;\n var caxis = _this.caxis;\n\n _this.drawAx(aaxis);\n _this.drawAx(baxis);\n _this.drawAx(caxis);\n\n if(doTitles) {\n var apad = Math.max(aaxis.showticklabels ? aaxis.tickfont.size / 2 : 0,\n (caxis.showticklabels ? caxis.tickfont.size * 0.75 : 0) +\n (caxis.ticks === 'outside' ? caxis.ticklen * 0.87 : 0));\n var bpad = (baxis.showticklabels ? baxis.tickfont.size : 0) +\n (baxis.ticks === 'outside' ? baxis.ticklen : 0) + 3;\n\n layers['a-title'] = Titles.draw(gd, 'a' + titlesuffix, {\n propContainer: aaxis,\n propName: _this.id + '.aaxis.title',\n placeholder: _(gd, 'Click to enter Component A title'),\n attributes: {\n x: _this.x0 + _this.w / 2,\n y: _this.y0 - aaxis.title.font.size / 3 - apad,\n 'text-anchor': 'middle'\n }\n });\n layers['b-title'] = Titles.draw(gd, 'b' + titlesuffix, {\n propContainer: baxis,\n propName: _this.id + '.baxis.title',\n placeholder: _(gd, 'Click to enter Component B title'),\n attributes: {\n x: _this.x0 - bpad,\n y: _this.y0 + _this.h + baxis.title.font.size * 0.83 + bpad,\n 'text-anchor': 'middle'\n }\n });\n layers['c-title'] = Titles.draw(gd, 'c' + titlesuffix, {\n propContainer: caxis,\n propName: _this.id + '.caxis.title',\n placeholder: _(gd, 'Click to enter Component C title'),\n attributes: {\n x: _this.x0 + _this.w + bpad,\n y: _this.y0 + _this.h + caxis.title.font.size * 0.83 + bpad,\n 'text-anchor': 'middle'\n }\n });\n }\n};\n\nproto.drawAx = function(ax) {\n var _this = this;\n var gd = _this.graphDiv;\n var axName = ax._name;\n var axLetter = axName.charAt(0);\n var axId = ax._id;\n var axLayer = _this.layers[axName];\n var counterAngle = 30;\n\n var stashKey = axLetter + 'tickLayout';\n var newTickLayout = strTickLayout(ax);\n if(_this[stashKey] !== newTickLayout) {\n axLayer.selectAll('.' + axId + 'tick').remove();\n _this[stashKey] = newTickLayout;\n }\n\n ax.setScale();\n\n var vals = Axes.calcTicks(ax);\n var valsClipped = Axes.clipEnds(ax, vals);\n var transFn = Axes.makeTransFn(ax);\n var tickSign = Axes.getTickSigns(ax)[2];\n\n var caRad = Lib.deg2rad(counterAngle);\n var pad = tickSign * (ax.linewidth || 1) / 2;\n var len = tickSign * ax.ticklen;\n var w = _this.w;\n var h = _this.h;\n\n var tickPath = axLetter === 'b' ?\n 'M0,' + pad + 'l' + (Math.sin(caRad) * len) + ',' + (Math.cos(caRad) * len) :\n 'M' + pad + ',0l' + (Math.cos(caRad) * len) + ',' + (-Math.sin(caRad) * len);\n\n var gridPath = {\n a: 'M0,0l' + h + ',-' + (w / 2),\n b: 'M0,0l-' + (w / 2) + ',-' + h,\n c: 'M0,0l-' + h + ',' + (w / 2)\n }[axLetter];\n\n Axes.drawTicks(gd, ax, {\n vals: ax.ticks === 'inside' ? valsClipped : vals,\n layer: axLayer,\n path: tickPath,\n transFn: transFn,\n crisp: false\n });\n\n Axes.drawGrid(gd, ax, {\n vals: valsClipped,\n layer: _this.layers[axLetter + 'grid'],\n path: gridPath,\n transFn: transFn,\n crisp: false\n });\n\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: axLayer,\n transFn: transFn,\n labelFns: Axes.makeLabelFns(ax, 0, counterAngle)\n });\n};\n\nfunction strTickLayout(axLayout) {\n return axLayout.ticks + String(axLayout.ticklen) + String(axLayout.showticklabels);\n}\n\n// hard coded paths for zoom corners\n// uses the same sizing as cartesian, length is MINZOOM/2, width is 3px\nvar CLEN = constants.MINZOOM / 2 + 0.87;\nvar BLPATH = 'm-0.87,.5h' + CLEN + 'v3h-' + (CLEN + 5.2) +\n 'l' + (CLEN / 2 + 2.6) + ',-' + (CLEN * 0.87 + 4.5) +\n 'l2.6,1.5l-' + (CLEN / 2) + ',' + (CLEN * 0.87) + 'Z';\nvar BRPATH = 'm0.87,.5h-' + CLEN + 'v3h' + (CLEN + 5.2) +\n 'l-' + (CLEN / 2 + 2.6) + ',-' + (CLEN * 0.87 + 4.5) +\n 'l-2.6,1.5l' + (CLEN / 2) + ',' + (CLEN * 0.87) + 'Z';\nvar TOPPATH = 'm0,1l' + (CLEN / 2) + ',' + (CLEN * 0.87) +\n 'l2.6,-1.5l-' + (CLEN / 2 + 2.6) + ',-' + (CLEN * 0.87 + 4.5) +\n 'l-' + (CLEN / 2 + 2.6) + ',' + (CLEN * 0.87 + 4.5) +\n 'l2.6,1.5l' + (CLEN / 2) + ',-' + (CLEN * 0.87) + 'Z';\nvar STARTMARKER = 'm0.5,0.5h5v-2h-5v-5h-2v5h-5v2h5v5h2Z';\n\n// I guess this could be shared with cartesian... but for now it's separate.\nvar SHOWZOOMOUTTIP = true;\n\nproto.initInteractions = function() {\n var _this = this;\n var dragger = _this.layers.plotbg.select('path').node();\n var gd = _this.graphDiv;\n var zoomLayer = gd._fullLayout._zoomlayer;\n\n // use plotbg for the main interactions\n var dragOptions = {\n element: dragger,\n gd: gd,\n plotinfo: {\n id: _this.id,\n xaxis: _this.xaxis,\n yaxis: _this.yaxis\n },\n subplot: _this.id,\n prepFn: function(e, startX, startY) {\n // these aren't available yet when initInteractions\n // is called\n dragOptions.xaxes = [_this.xaxis];\n dragOptions.yaxes = [_this.yaxis];\n var dragModeNow = gd._fullLayout.dragmode;\n\n if(dragModeNow === 'lasso') dragOptions.minDrag = 1;\n else dragOptions.minDrag = undefined;\n\n if(dragModeNow === 'zoom') {\n dragOptions.moveFn = zoomMove;\n dragOptions.clickFn = clickZoomPan;\n dragOptions.doneFn = zoomDone;\n zoomPrep(e, startX, startY);\n } else if(dragModeNow === 'pan') {\n dragOptions.moveFn = plotDrag;\n dragOptions.clickFn = clickZoomPan;\n dragOptions.doneFn = dragDone;\n panPrep();\n clearSelect(gd);\n } else if(dragModeNow === 'select' || dragModeNow === 'lasso') {\n prepSelect(e, startX, startY, dragOptions, dragModeNow);\n }\n }\n };\n\n var x0, y0, mins0, span0, mins, lum, path0, dimmed, zb, corners;\n\n function makeUpdate(_mins) {\n var attrs = {};\n attrs[_this.id + '.aaxis.min'] = _mins.a;\n attrs[_this.id + '.baxis.min'] = _mins.b;\n attrs[_this.id + '.caxis.min'] = _mins.c;\n return attrs;\n }\n\n function clickZoomPan(numClicks, evt) {\n var clickMode = gd._fullLayout.clickmode;\n\n removeZoombox(gd);\n\n if(numClicks === 2) {\n gd.emit('plotly_doubleclick', null);\n Registry.call('_guiRelayout', gd, makeUpdate({a: 0, b: 0, c: 0}));\n }\n\n if(clickMode.indexOf('select') > -1 && numClicks === 1) {\n selectOnClick(evt, gd, [_this.xaxis], [_this.yaxis], _this.id, dragOptions);\n }\n\n if(clickMode.indexOf('event') > -1) {\n Fx.click(gd, evt, _this.id);\n }\n }\n\n function zoomPrep(e, startX, startY) {\n var dragBBox = dragger.getBoundingClientRect();\n x0 = startX - dragBBox.left;\n y0 = startY - dragBBox.top;\n mins0 = {\n a: _this.aaxis.range[0],\n b: _this.baxis.range[1],\n c: _this.caxis.range[1]\n };\n mins = mins0;\n span0 = _this.aaxis.range[1] - mins0.a;\n lum = tinycolor(_this.graphDiv._fullLayout[_this.id].bgcolor).getLuminance();\n path0 = 'M0,' + _this.h + 'L' + (_this.w / 2) + ', 0L' + _this.w + ',' + _this.h + 'Z';\n dimmed = false;\n\n zb = zoomLayer.append('path')\n .attr('class', 'zoombox')\n .attr('transform', 'translate(' + _this.x0 + ', ' + _this.y0 + ')')\n .style({\n 'fill': lum > 0.2 ? 'rgba(0,0,0,0)' : 'rgba(255,255,255,0)',\n 'stroke-width': 0\n })\n .attr('d', path0);\n\n corners = zoomLayer.append('path')\n .attr('class', 'zoombox-corners')\n .attr('transform', 'translate(' + _this.x0 + ', ' + _this.y0 + ')')\n .style({\n fill: Color.background,\n stroke: Color.defaultLine,\n 'stroke-width': 1,\n opacity: 0\n })\n .attr('d', 'M0,0Z');\n\n clearSelect(gd);\n }\n\n function getAFrac(x, y) { return 1 - (y / _this.h); }\n function getBFrac(x, y) { return 1 - ((x + (_this.h - y) / Math.sqrt(3)) / _this.w); }\n function getCFrac(x, y) { return ((x - (_this.h - y) / Math.sqrt(3)) / _this.w); }\n\n function zoomMove(dx0, dy0) {\n var x1 = x0 + dx0;\n var y1 = y0 + dy0;\n var afrac = Math.max(0, Math.min(1, getAFrac(x0, y0), getAFrac(x1, y1)));\n var bfrac = Math.max(0, Math.min(1, getBFrac(x0, y0), getBFrac(x1, y1)));\n var cfrac = Math.max(0, Math.min(1, getCFrac(x0, y0), getCFrac(x1, y1)));\n var xLeft = ((afrac / 2) + cfrac) * _this.w;\n var xRight = (1 - (afrac / 2) - bfrac) * _this.w;\n var xCenter = (xLeft + xRight) / 2;\n var xSpan = xRight - xLeft;\n var yBottom = (1 - afrac) * _this.h;\n var yTop = yBottom - xSpan / whRatio;\n\n if(xSpan < constants.MINZOOM) {\n mins = mins0;\n zb.attr('d', path0);\n corners.attr('d', 'M0,0Z');\n } else {\n mins = {\n a: mins0.a + afrac * span0,\n b: mins0.b + bfrac * span0,\n c: mins0.c + cfrac * span0\n };\n zb.attr('d', path0 + 'M' + xLeft + ',' + yBottom +\n 'H' + xRight + 'L' + xCenter + ',' + yTop +\n 'L' + xLeft + ',' + yBottom + 'Z');\n corners.attr('d', 'M' + x0 + ',' + y0 + STARTMARKER +\n 'M' + xLeft + ',' + yBottom + BLPATH +\n 'M' + xRight + ',' + yBottom + BRPATH +\n 'M' + xCenter + ',' + yTop + TOPPATH);\n }\n\n if(!dimmed) {\n zb.transition()\n .style('fill', lum > 0.2 ? 'rgba(0,0,0,0.4)' :\n 'rgba(255,255,255,0.3)')\n .duration(200);\n corners.transition()\n .style('opacity', 1)\n .duration(200);\n dimmed = true;\n }\n\n gd.emit('plotly_relayouting', makeUpdate(mins));\n }\n\n function zoomDone() {\n removeZoombox(gd);\n\n if(mins === mins0) return;\n\n Registry.call('_guiRelayout', gd, makeUpdate(mins));\n\n if(SHOWZOOMOUTTIP && gd.data && gd._context.showTips) {\n Lib.notifier(_(gd, 'Double-click to zoom back out'), 'long');\n SHOWZOOMOUTTIP = false;\n }\n }\n\n function panPrep() {\n mins0 = {\n a: _this.aaxis.range[0],\n b: _this.baxis.range[1],\n c: _this.caxis.range[1]\n };\n mins = mins0;\n }\n\n function plotDrag(dx, dy) {\n var dxScaled = dx / _this.xaxis._m;\n var dyScaled = dy / _this.yaxis._m;\n mins = {\n a: mins0.a - dyScaled,\n b: mins0.b + (dxScaled + dyScaled) / 2,\n c: mins0.c - (dxScaled - dyScaled) / 2\n };\n var minsorted = [mins.a, mins.b, mins.c].sort();\n var minindices = {\n a: minsorted.indexOf(mins.a),\n b: minsorted.indexOf(mins.b),\n c: minsorted.indexOf(mins.c)\n };\n if(minsorted[0] < 0) {\n if(minsorted[1] + minsorted[0] / 2 < 0) {\n minsorted[2] += minsorted[0] + minsorted[1];\n minsorted[0] = minsorted[1] = 0;\n } else {\n minsorted[2] += minsorted[0] / 2;\n minsorted[1] += minsorted[0] / 2;\n minsorted[0] = 0;\n }\n mins = {\n a: minsorted[minindices.a],\n b: minsorted[minindices.b],\n c: minsorted[minindices.c]\n };\n dy = (mins0.a - mins.a) * _this.yaxis._m;\n dx = (mins0.c - mins.c - mins0.b + mins.b) * _this.xaxis._m;\n }\n\n // move the data (translate, don't redraw)\n var plotTransform = 'translate(' + (_this.x0 + dx) + ',' + (_this.y0 + dy) + ')';\n _this.plotContainer.selectAll('.scatterlayer,.maplayer')\n .attr('transform', plotTransform);\n\n var plotTransform2 = 'translate(' + -dx + ',' + -dy + ')';\n _this.clipDefRelative.select('path').attr('transform', plotTransform2);\n\n // move the ticks\n _this.aaxis.range = [mins.a, _this.sum - mins.b - mins.c];\n _this.baxis.range = [_this.sum - mins.a - mins.c, mins.b];\n _this.caxis.range = [_this.sum - mins.a - mins.b, mins.c];\n\n _this.drawAxes(false);\n\n if(_this._hasClipOnAxisFalse) {\n _this.plotContainer\n .select('.scatterlayer').selectAll('.trace')\n .call(Drawing.hideOutsideRangePoints, _this);\n }\n\n gd.emit('plotly_relayouting', makeUpdate(mins));\n }\n\n function dragDone() {\n Registry.call('_guiRelayout', gd, makeUpdate(mins));\n }\n\n // finally, set up hover and click\n // these event handlers must already be set before dragElement.init\n // so it can stash them and override them.\n dragger.onmousemove = function(evt) {\n Fx.hover(gd, evt, _this.id);\n gd._fullLayout._lasthover = dragger;\n gd._fullLayout._hoversubplot = _this.id;\n };\n\n dragger.onmouseout = function(evt) {\n if(gd._dragging) return;\n\n dragElement.unhover(gd, evt);\n };\n\n dragElement.init(dragOptions);\n};\n\nfunction removeZoombox(gd) {\n d3.select(gd)\n .selectAll('.zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners')\n .remove();\n}\n\n\n/***/ }),\n\n/***/ \"5c9a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n attributes: __webpack_require__(\"43ef\"),\n supplyDefaults: __webpack_require__(\"1a06\"),\n calc: __webpack_require__(\"6bd5\"),\n plot: __webpack_require__(\"6954\").plot,\n style: __webpack_require__(\"ee6b\"),\n colorbar: __webpack_require__(\"a5e1\"),\n hoverPoints: __webpack_require__(\"510f\"),\n\n moduleType: 'trace',\n name: 'contour',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['cartesian', 'svg', '2dMap', 'contour', 'showLegend'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"5cc5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"5c9a\");\n\n\n/***/ }),\n\n/***/ \"5ccc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar glslify = __webpack_require__(\"e98f\")\nvar createShader = __webpack_require__(\"28dd\")\n\nvar vertSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\nattribute vec2 position;\\nvarying vec2 uv;\\nvoid main() {\\n uv = position;\\n gl_Position = vec4(position, 0, 1);\\n}\"])\nvar fragSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nuniform sampler2D accumBuffer;\\nvarying vec2 uv;\\n\\nvoid main() {\\n vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\\n gl_FragColor = min(vec4(1,1,1,1), accum);\\n}\"])\n\nmodule.exports = function(gl) {\n return createShader(gl, vertSrc, fragSrc, null, [ { name: 'position', type: 'vec2'}])\n}\n\n\n/***/ }),\n\n/***/ \"5cf9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction mouseButtons(ev) {\n if(typeof ev === 'object') {\n if('buttons' in ev) {\n return ev.buttons\n } else if('which' in ev) {\n var b = ev.which\n if(b === 2) {\n return 4\n } else if(b === 3) {\n return 2\n } else if(b > 0) {\n return 1<<(b-1)\n }\n } else if('button' in ev) {\n var b = ev.button\n if(b === 1) {\n return 4\n } else if(b === 2) {\n return 2\n } else if(b >= 0) {\n return 1<= 0)) {\n continue\n }\n\n var zeroIntercept = screenBox[i] -\n dataBox[i] * (screenBox[i+2] - screenBox[i]) / (dataBox[i+2] - dataBox[i])\n\n if(i === 0) {\n line.drawLine(\n zeroIntercept, screenBox[1], zeroIntercept, screenBox[3],\n zeroLineWidth[i],\n zeroLineColor[i])\n } else {\n line.drawLine(\n screenBox[0], zeroIntercept, screenBox[2], zeroIntercept,\n zeroLineWidth[i],\n zeroLineColor[i])\n }\n }\n }\n\n //Draw traces\n for(var i=0; i=0; --i) {\n this.objects[i].dispose()\n }\n this.objects.length = 0\n for(var i=this.overlays.length-1; i>=0; --i) {\n this.overlays[i].dispose()\n }\n this.overlays.length = 0\n\n this.gl = null\n}\n\nproto.addObject = function(object) {\n if(this.objects.indexOf(object) < 0) {\n this.objects.push(object)\n this.setDirty()\n }\n}\n\nproto.removeObject = function(object) {\n var objects = this.objects\n for(var i=0; i 2) {\n // This object contains more than just the key/value, so unset\n // the value without modifying the entry otherwise:\n changeTypes[idx] = changeTypes[idx] | VALUE;\n return obj.set(name, null);\n }\n\n if(isSimpleValueProp) {\n for(i = idx; i < arr.length; i++) {\n changeTypes[i] = changeTypes[i] | BOTH;\n }\n for(i = idx; i < arr.length; i++) {\n indexLookup[arr[i][keyName]]--;\n }\n arr.splice(idx, 1);\n delete(indexLookup[name]);\n } else {\n // Perform this update *strictly* so we can check whether the result's\n // been pruned. If so, it's a removal. If not, it's a value unset only.\n nestedProperty(object, valueName).set(null);\n\n // Now check if the top level nested property has any keys left. If so,\n // the object still has values so we only want to unset the key. If not,\n // the entire object can be removed since there's no other data.\n // var topLevelKeys = Object.keys(object[valueName.split('.')[0]] || []);\n\n changeTypes[idx] = changeTypes[idx] | VALUE | UNSET;\n }\n\n return obj;\n },\n constructUpdate: function() {\n var astr, idx;\n var update = {};\n var changed = Object.keys(changeTypes);\n for(var i = 0; i < changed.length; i++) {\n idx = changed[i];\n astr = path + '[' + idx + ']';\n if(arr[idx]) {\n if(changeTypes[idx] & NAME) {\n update[astr + '.' + keyName] = arr[idx][keyName];\n }\n if(changeTypes[idx] & VALUE) {\n if(isSimpleValueProp) {\n update[astr + '.' + valueName] = (changeTypes[idx] & UNSET) ? null : arr[idx][valueName];\n } else {\n update[astr + '.' + valueName] = (changeTypes[idx] & UNSET) ? null : nestedProperty(arr[idx], valueName).get();\n }\n }\n } else {\n update[astr] = null;\n }\n }\n\n return update;\n }\n };\n\n return obj;\n};\n\n\n/***/ }),\n\n/***/ \"5e2e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createBoxes\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createShader = __webpack_require__(\"28dd\")\n\nvar shaders = __webpack_require__(\"b44d\")\n\nfunction Boxes(plot, vbo, shader) {\n this.plot = plot\n this.vbo = vbo\n this.shader = shader\n}\n\nvar proto = Boxes.prototype\n\nproto.bind = function() {\n var shader = this.shader\n this.vbo.bind()\n this.shader.bind()\n shader.attributes.coord.pointer()\n shader.uniforms.screenBox = this.plot.screenBox\n}\n\nproto.drawBox = (function() {\n var lo = [0,0]\n var hi = [0,0]\n return function(loX, loY, hiX, hiY, color) {\n var plot = this.plot\n var shader = this.shader\n var gl = plot.gl\n\n lo[0] = loX\n lo[1] = loY\n hi[0] = hiX\n hi[1] = hiY\n\n shader.uniforms.lo = lo\n shader.uniforms.hi = hi\n shader.uniforms.color = color\n\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4)\n }\n}())\n\nproto.dispose = function() {\n this.vbo.dispose()\n this.shader.dispose()\n}\n\nfunction createBoxes(plot) {\n var gl = plot.gl\n var vbo = createBuffer(gl, [\n 0,0,\n 0,1,\n 1,0,\n 1,1])\n var shader = createShader(gl, shaders.boxVert, shaders.lineFrag)\n return new Boxes(plot, vbo, shader)\n}\n\n\n/***/ }),\n\n/***/ \"5e46\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar scatterPolarFormatLabels = __webpack_require__(\"98e74\");\n\nmodule.exports = function formatLabels(cdi, trace, fullLayout) {\n var i = cdi.i;\n if(!('r' in cdi)) cdi.r = trace._r[i];\n if(!('theta' in cdi)) cdi.theta = trace._theta[i];\n return scatterPolarFormatLabels(cdi, trace, fullLayout);\n};\n\n\n/***/ }),\n\n/***/ \"5e8f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar subtypes = __webpack_require__(\"de81\");\n\nmodule.exports = {\n hasLines: subtypes.hasLines,\n hasMarkers: subtypes.hasMarkers,\n hasText: subtypes.hasText,\n isBubble: subtypes.isBubble,\n\n attributes: __webpack_require__(\"107c\"),\n supplyDefaults: __webpack_require__(\"0eb7\"),\n crossTraceDefaults: __webpack_require__(\"0324\"),\n calc: __webpack_require__(\"70b4\").calc,\n crossTraceCalc: __webpack_require__(\"4324\"),\n arraysToCalcdata: __webpack_require__(\"106b\"),\n plot: __webpack_require__(\"f118\"),\n colorbar: __webpack_require__(\"f3cf\"),\n formatLabels: __webpack_require__(\"7e96\"),\n style: __webpack_require__(\"52e8\").style,\n styleOnSelect: __webpack_require__(\"52e8\").styleOnSelect,\n hoverPoints: __webpack_require__(\"391b\"),\n selectPoints: __webpack_require__(\"214c\"),\n animatable: true,\n\n moduleType: 'trace',\n name: 'scatter',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: [\n 'cartesian', 'svg', 'symbols', 'errorBarsOK', 'showLegend', 'scatter-like',\n 'zoomScale'\n ],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"5ecd\":\n/***/ (function(module, exports) {\n\nmodule.exports = [\r\n // Keep this list sorted\r\n 'abs'\r\n , 'acos'\r\n , 'all'\r\n , 'any'\r\n , 'asin'\r\n , 'atan'\r\n , 'ceil'\r\n , 'clamp'\r\n , 'cos'\r\n , 'cross'\r\n , 'dFdx'\r\n , 'dFdy'\r\n , 'degrees'\r\n , 'distance'\r\n , 'dot'\r\n , 'equal'\r\n , 'exp'\r\n , 'exp2'\r\n , 'faceforward'\r\n , 'floor'\r\n , 'fract'\r\n , 'gl_BackColor'\r\n , 'gl_BackLightModelProduct'\r\n , 'gl_BackLightProduct'\r\n , 'gl_BackMaterial'\r\n , 'gl_BackSecondaryColor'\r\n , 'gl_ClipPlane'\r\n , 'gl_ClipVertex'\r\n , 'gl_Color'\r\n , 'gl_DepthRange'\r\n , 'gl_DepthRangeParameters'\r\n , 'gl_EyePlaneQ'\r\n , 'gl_EyePlaneR'\r\n , 'gl_EyePlaneS'\r\n , 'gl_EyePlaneT'\r\n , 'gl_Fog'\r\n , 'gl_FogCoord'\r\n , 'gl_FogFragCoord'\r\n , 'gl_FogParameters'\r\n , 'gl_FragColor'\r\n , 'gl_FragCoord'\r\n , 'gl_FragData'\r\n , 'gl_FragDepth'\r\n , 'gl_FragDepthEXT'\r\n , 'gl_FrontColor'\r\n , 'gl_FrontFacing'\r\n , 'gl_FrontLightModelProduct'\r\n , 'gl_FrontLightProduct'\r\n , 'gl_FrontMaterial'\r\n , 'gl_FrontSecondaryColor'\r\n , 'gl_LightModel'\r\n , 'gl_LightModelParameters'\r\n , 'gl_LightModelProducts'\r\n , 'gl_LightProducts'\r\n , 'gl_LightSource'\r\n , 'gl_LightSourceParameters'\r\n , 'gl_MaterialParameters'\r\n , 'gl_MaxClipPlanes'\r\n , 'gl_MaxCombinedTextureImageUnits'\r\n , 'gl_MaxDrawBuffers'\r\n , 'gl_MaxFragmentUniformComponents'\r\n , 'gl_MaxLights'\r\n , 'gl_MaxTextureCoords'\r\n , 'gl_MaxTextureImageUnits'\r\n , 'gl_MaxTextureUnits'\r\n , 'gl_MaxVaryingFloats'\r\n , 'gl_MaxVertexAttribs'\r\n , 'gl_MaxVertexTextureImageUnits'\r\n , 'gl_MaxVertexUniformComponents'\r\n , 'gl_ModelViewMatrix'\r\n , 'gl_ModelViewMatrixInverse'\r\n , 'gl_ModelViewMatrixInverseTranspose'\r\n , 'gl_ModelViewMatrixTranspose'\r\n , 'gl_ModelViewProjectionMatrix'\r\n , 'gl_ModelViewProjectionMatrixInverse'\r\n , 'gl_ModelViewProjectionMatrixInverseTranspose'\r\n , 'gl_ModelViewProjectionMatrixTranspose'\r\n , 'gl_MultiTexCoord0'\r\n , 'gl_MultiTexCoord1'\r\n , 'gl_MultiTexCoord2'\r\n , 'gl_MultiTexCoord3'\r\n , 'gl_MultiTexCoord4'\r\n , 'gl_MultiTexCoord5'\r\n , 'gl_MultiTexCoord6'\r\n , 'gl_MultiTexCoord7'\r\n , 'gl_Normal'\r\n , 'gl_NormalMatrix'\r\n , 'gl_NormalScale'\r\n , 'gl_ObjectPlaneQ'\r\n , 'gl_ObjectPlaneR'\r\n , 'gl_ObjectPlaneS'\r\n , 'gl_ObjectPlaneT'\r\n , 'gl_Point'\r\n , 'gl_PointCoord'\r\n , 'gl_PointParameters'\r\n , 'gl_PointSize'\r\n , 'gl_Position'\r\n , 'gl_ProjectionMatrix'\r\n , 'gl_ProjectionMatrixInverse'\r\n , 'gl_ProjectionMatrixInverseTranspose'\r\n , 'gl_ProjectionMatrixTranspose'\r\n , 'gl_SecondaryColor'\r\n , 'gl_TexCoord'\r\n , 'gl_TextureEnvColor'\r\n , 'gl_TextureMatrix'\r\n , 'gl_TextureMatrixInverse'\r\n , 'gl_TextureMatrixInverseTranspose'\r\n , 'gl_TextureMatrixTranspose'\r\n , 'gl_Vertex'\r\n , 'greaterThan'\r\n , 'greaterThanEqual'\r\n , 'inversesqrt'\r\n , 'length'\r\n , 'lessThan'\r\n , 'lessThanEqual'\r\n , 'log'\r\n , 'log2'\r\n , 'matrixCompMult'\r\n , 'max'\r\n , 'min'\r\n , 'mix'\r\n , 'mod'\r\n , 'normalize'\r\n , 'not'\r\n , 'notEqual'\r\n , 'pow'\r\n , 'radians'\r\n , 'reflect'\r\n , 'refract'\r\n , 'sign'\r\n , 'sin'\r\n , 'smoothstep'\r\n , 'sqrt'\r\n , 'step'\r\n , 'tan'\r\n , 'texture2D'\r\n , 'texture2DLod'\r\n , 'texture2DProj'\r\n , 'texture2DProjLod'\r\n , 'textureCube'\r\n , 'textureCubeLod'\r\n , 'texture2DLodEXT'\r\n , 'texture2DProjLodEXT'\r\n , 'textureCubeLodEXT'\r\n , 'texture2DGradEXT'\r\n , 'texture2DProjGradEXT'\r\n , 'textureCubeGradEXT'\r\n]\r\n\n\n/***/ }),\n\n/***/ \"5edd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isValue = __webpack_require__(\"936a\");\n\n// prettier-ignore\nvar possibleTypes = { \"object\": true, \"function\": true, \"undefined\": true /* document.all */ };\n\nmodule.exports = function (value) {\n\tif (!isValue(value)) return false;\n\treturn hasOwnProperty.call(possibleTypes, typeof value);\n};\n\n\n/***/ }),\n\n/***/ \"5f0d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar tarjan = __webpack_require__(\"53cc\");\nvar Lib = __webpack_require__(\"fc26\");\nvar wrap = __webpack_require__(\"0a3e\").wrap;\n\nvar isArrayOrTypedArray = Lib.isArrayOrTypedArray;\nvar isIndex = Lib.isIndex;\nvar Colorscale = __webpack_require__(\"c258\");\n\nfunction convertToD3Sankey(trace) {\n var nodeSpec = trace.node;\n var linkSpec = trace.link;\n\n var links = [];\n var hasLinkColorArray = isArrayOrTypedArray(linkSpec.color);\n var linkedNodes = {};\n\n var components = {};\n var componentCount = linkSpec.colorscales.length;\n var i;\n for(i = 0; i < componentCount; i++) {\n var cscale = linkSpec.colorscales[i];\n var specs = Colorscale.extractScale(cscale, {cLetter: 'c'});\n var scale = Colorscale.makeColorScaleFunc(specs);\n components[cscale.label] = scale;\n }\n\n var maxNodeId = 0;\n for(i = 0; i < linkSpec.value.length; i++) {\n if(linkSpec.source[i] > maxNodeId) maxNodeId = linkSpec.source[i];\n if(linkSpec.target[i] > maxNodeId) maxNodeId = linkSpec.target[i];\n }\n var nodeCount = maxNodeId + 1;\n trace.node._count = nodeCount;\n\n // Group nodes\n var j;\n var groups = trace.node.groups;\n var groupLookup = {};\n for(i = 0; i < groups.length; i++) {\n var group = groups[i];\n // Build a lookup table to quickly find in which group a node is\n for(j = 0; j < group.length; j++) {\n var nodeIndex = group[j];\n var groupIndex = nodeCount + i;\n if(groupLookup.hasOwnProperty(nodeIndex)) {\n Lib.warn('Node ' + nodeIndex + ' is already part of a group.');\n } else {\n groupLookup[nodeIndex] = groupIndex;\n }\n }\n }\n\n // Process links\n var groupedLinks = {\n source: [],\n target: []\n };\n for(i = 0; i < linkSpec.value.length; i++) {\n var val = linkSpec.value[i];\n // remove negative values, but keep zeros with special treatment\n var source = linkSpec.source[i];\n var target = linkSpec.target[i];\n if(!(val > 0 && isIndex(source, nodeCount) && isIndex(target, nodeCount))) {\n continue;\n }\n\n // Remove links that are within the same group\n if(groupLookup.hasOwnProperty(source) && groupLookup.hasOwnProperty(target) && groupLookup[source] === groupLookup[target]) {\n continue;\n }\n\n // if link targets a node in the group, relink target to that group\n if(groupLookup.hasOwnProperty(target)) {\n target = groupLookup[target];\n }\n\n // if link originates from a node in a group, relink source to that group\n if(groupLookup.hasOwnProperty(source)) {\n source = groupLookup[source];\n }\n\n source = +source;\n target = +target;\n linkedNodes[source] = linkedNodes[target] = true;\n\n var label = '';\n if(linkSpec.label && linkSpec.label[i]) label = linkSpec.label[i];\n\n var concentrationscale = null;\n if(label && components.hasOwnProperty(label)) concentrationscale = components[label];\n\n links.push({\n pointNumber: i,\n label: label,\n color: hasLinkColorArray ? linkSpec.color[i] : linkSpec.color,\n concentrationscale: concentrationscale,\n source: source,\n target: target,\n value: +val\n });\n\n groupedLinks.source.push(source);\n groupedLinks.target.push(target);\n }\n\n // Process nodes\n var totalCount = nodeCount + groups.length;\n var hasNodeColorArray = isArrayOrTypedArray(nodeSpec.color);\n var nodes = [];\n for(i = 0; i < totalCount; i++) {\n if(!linkedNodes[i]) continue;\n var l = nodeSpec.label[i];\n\n nodes.push({\n group: (i > nodeCount - 1),\n childrenNodes: [],\n pointNumber: i,\n label: l,\n color: hasNodeColorArray ? nodeSpec.color[i] : nodeSpec.color\n });\n }\n\n // Check if we have circularity on the resulting graph\n var circular = false;\n if(circularityPresent(totalCount, groupedLinks.source, groupedLinks.target)) {\n circular = true;\n }\n\n return {\n circular: circular,\n links: links,\n nodes: nodes,\n\n // Data structure for groups\n groups: groups,\n groupLookup: groupLookup\n };\n}\n\nfunction circularityPresent(nodeLen, sources, targets) {\n var nodes = Lib.init2dArray(nodeLen, 0);\n\n for(var i = 0; i < Math.min(sources.length, targets.length); i++) {\n if(Lib.isIndex(sources[i], nodeLen) && Lib.isIndex(targets[i], nodeLen)) {\n if(sources[i] === targets[i]) {\n return true; // self-link which is also a scc of one\n }\n nodes[sources[i]].push(targets[i]);\n }\n }\n\n var scc = tarjan(nodes);\n\n // Tarján's strongly connected components algorithm coded by Mikola Lysenko\n // returns at least one non-singular component if there's circularity in the graph\n return scc.components.some(function(c) {\n return c.length > 1;\n });\n}\n\nmodule.exports = function calc(gd, trace) {\n var result = convertToD3Sankey(trace);\n\n return wrap({\n circular: result.circular,\n _nodes: result.nodes,\n _links: result.links,\n\n // Data structure for grouping\n _groups: result.groups,\n _groupLookup: result.groupLookup,\n });\n};\n\n\n/***/ }),\n\n/***/ \"5f5f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createSpikes2D\n\nfunction GLSpikes2D(plot) {\n this.plot = plot\n this.enable = [true, true, false, false]\n this.width = [1, 1, 1, 1]\n this.color = [[0,0,0,1],\n [0,0,0,1],\n [0,0,0,1],\n [0,0,0,1]]\n this.center = [Infinity, Infinity]\n}\n\nvar proto = GLSpikes2D.prototype\n\nproto.update = function(options) {\n options = options || {}\n this.enable = (options.enable || [true,true,false,false]).slice()\n this.width = (options.width || [1,1,1,1]).slice()\n this.color = (options.color || [\n [0,0,0,1],\n [0,0,0,1],\n [0,0,0,1],\n [0,0,0,1]]).map(function(x) { return x.slice() })\n this.center = (options.center || [Infinity,Infinity]).slice()\n this.plot.setOverlayDirty()\n}\n\nproto.draw = function() {\n var spikeEnable = this.enable\n var spikeWidth = this.width\n var spikeColor = this.color\n var spikeCenter = this.center\n var plot = this.plot\n var line = plot.line\n\n var dataBox = plot.dataBox\n var viewPixels = plot.viewBox\n\n line.bind()\n\n if(dataBox[0] <= spikeCenter[0] && spikeCenter[0] <= dataBox[2] &&\n dataBox[1] <= spikeCenter[1] && spikeCenter[1] <= dataBox[3]) {\n\n var centerX = viewPixels[0] + (spikeCenter[0] - dataBox[0]) / (dataBox[2] - dataBox[0]) * (viewPixels[2] - viewPixels[0])\n var centerY = viewPixels[1] + (spikeCenter[1] - dataBox[1]) / (dataBox[3] - dataBox[1]) * (viewPixels[3] - viewPixels[1])\n\n if(spikeEnable[0]) {\n line.drawLine(\n centerX, centerY,\n viewPixels[0], centerY,\n spikeWidth[0], spikeColor[0])\n }\n if(spikeEnable[1]) {\n line.drawLine(\n centerX, centerY,\n centerX, viewPixels[1],\n spikeWidth[1], spikeColor[1])\n }\n if(spikeEnable[2]) {\n line.drawLine(\n centerX, centerY,\n viewPixels[2], centerY,\n spikeWidth[2], spikeColor[2])\n }\n if(spikeEnable[3]) {\n line.drawLine(\n centerX, centerY,\n centerX, viewPixels[3],\n spikeWidth[3], spikeColor[3])\n }\n }\n}\n\nproto.dispose = function() {\n this.plot.removeOverlay(this)\n}\n\nfunction createSpikes2D(plot, options) {\n var spikes = new GLSpikes2D(plot)\n spikes.update(options)\n plot.addOverlay(spikes)\n return spikes\n}\n\n\n/***/ }),\n\n/***/ \"6024\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar setPrototypeOf = __webpack_require__(\"e0f6\")\n , contains = __webpack_require__(\"f973\")\n , d = __webpack_require__(\"f508\")\n , Symbol = __webpack_require__(\"1c4a\")\n , Iterator = __webpack_require__(\"06a2\");\n\nvar defineProperty = Object.defineProperty, ArrayIterator;\n\nArrayIterator = module.exports = function (arr, kind) {\n\tif (!(this instanceof ArrayIterator)) throw new TypeError(\"Constructor requires 'new'\");\n\tIterator.call(this, arr);\n\tif (!kind) kind = \"value\";\n\telse if (contains.call(kind, \"key+value\")) kind = \"key+value\";\n\telse if (contains.call(kind, \"key\")) kind = \"key\";\n\telse kind = \"value\";\n\tdefineProperty(this, \"__kind__\", d(\"\", kind));\n};\nif (setPrototypeOf) setPrototypeOf(ArrayIterator, Iterator);\n\n// Internal %ArrayIteratorPrototype% doesn't expose its constructor\ndelete ArrayIterator.prototype.constructor;\n\nArrayIterator.prototype = Object.create(Iterator.prototype, {\n\t_resolve: d(function (i) {\n\t\tif (this.__kind__ === \"value\") return this.__list__[i];\n\t\tif (this.__kind__ === \"key+value\") return [i, this.__list__[i]];\n\t\treturn i;\n\t})\n});\ndefineProperty(ArrayIterator.prototype, Symbol.toStringTag, d(\"c\", \"Array Iterator\"));\n\n\n/***/ }),\n\n/***/ \"605a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.create = defaultTicks\nexports.equal = ticksEqual\n\nfunction prettyPrint(spacing, i) {\n var stepStr = spacing + \"\"\n var u = stepStr.indexOf(\".\")\n var sigFigs = 0\n if(u >= 0) {\n sigFigs = stepStr.length - u - 1\n }\n var shift = Math.pow(10, sigFigs)\n var x = Math.round(spacing * i * shift)\n var xstr = x + \"\"\n if(xstr.indexOf(\"e\") >= 0) {\n return xstr\n }\n var xi = x / shift, xf = x % shift\n if(x < 0) {\n xi = -Math.ceil(xi)|0\n xf = (-xf)|0\n } else {\n xi = Math.floor(xi)|0\n xf = xf|0\n }\n var xis = \"\" + xi \n if(x < 0) {\n xis = \"-\" + xis\n }\n if(sigFigs) {\n var xs = \"\" + xf\n while(xs.length < sigFigs) {\n xs = \"0\" + xs\n }\n return xis + \".\" + xs\n } else {\n return xis\n }\n}\n\nfunction defaultTicks(bounds, tickSpacing) {\n var array = []\n for(var d=0; d<3; ++d) {\n var ticks = []\n var m = 0.5*(bounds[0][d]+bounds[1][d])\n for(var t=0; t*tickSpacing[d]<=bounds[1][d]; ++t) {\n ticks.push({x: t*tickSpacing[d], text: prettyPrint(tickSpacing[d], t)})\n }\n for(var t=-1; t*tickSpacing[d]>=bounds[0][d]; --t) {\n ticks.push({x: t*tickSpacing[d], text: prettyPrint(tickSpacing[d], t)})\n }\n array.push(ticks)\n }\n return array\n}\n\nfunction ticksEqual(ticksA, ticksB) {\n for(var i=0; i<3; ++i) {\n if(ticksA[i].length !== ticksB[i].length) {\n return false\n }\n for(var j=0; j index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n\n\n/***/ }),\n\n/***/ \"60dc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nmodule.exports = {\n boxmode: {\n valType: 'enumerated',\n values: ['group', 'overlay'],\n dflt: 'overlay',\n \n editType: 'calc',\n \n },\n boxgap: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0.3,\n \n editType: 'calc',\n \n },\n boxgroupgap: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0.3,\n \n editType: 'calc',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"615a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createTextElements\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createShader = __webpack_require__(\"28dd\")\nvar getText = __webpack_require__(\"9662\")\nvar bsearch = __webpack_require__(\"cc77\")\nvar shaders = __webpack_require__(\"b44d\")\n\nfunction TextElements(plot, vbo, shader) {\n this.plot = plot\n this.vbo = vbo\n this.shader = shader\n this.tickOffset = [[],[]]\n this.tickX = [[],[]]\n this.labelOffset = [0,0]\n this.labelCount = [0,0]\n}\n\nvar proto = TextElements.prototype\n\nproto.drawTicks = (function() {\n var DATA_AXIS = [0,0]\n var SCREEN_OFFSET = [0,0]\n var ZERO_2 = [0,0]\n\n return function(axis) {\n var plot = this.plot\n var shader = this.shader\n var tickX = this.tickX[axis]\n var tickOffset = this.tickOffset[axis]\n var gl = plot.gl\n var viewBox = plot.viewBox\n var dataBox = plot.dataBox\n var screenBox = plot.screenBox\n var pixelRatio = plot.pixelRatio\n var tickEnable = plot.tickEnable\n var tickPad = plot.tickPad\n var textColor = plot.tickColor\n var textAngle = plot.tickAngle\n // todo check if this should be used (now unused)\n // var tickLength = plot.tickMarkLength\n\n var labelEnable = plot.labelEnable\n var labelPad = plot.labelPad\n var labelColor = plot.labelColor\n var labelAngle = plot.labelAngle\n var labelOffset = this.labelOffset[axis]\n var labelCount = this.labelCount[axis]\n\n var start = bsearch.lt(tickX, dataBox[axis])\n var end = bsearch.le(tickX, dataBox[axis+2])\n\n DATA_AXIS[0] = DATA_AXIS[1] = 0\n DATA_AXIS[axis] = 1\n\n SCREEN_OFFSET[axis] = (viewBox[2+axis] + viewBox[axis]) / (screenBox[2+axis] - screenBox[axis]) - 1.0\n\n var screenScale = 2.0 / screenBox[2+(axis^1)] - screenBox[axis^1]\n\n SCREEN_OFFSET[axis^1] = screenScale * viewBox[axis^1] - 1.0\n if(tickEnable[axis]) {\n SCREEN_OFFSET[axis^1] -= screenScale * pixelRatio * tickPad[axis]\n if(start < end && tickOffset[end] > tickOffset[start]) {\n shader.uniforms.dataAxis = DATA_AXIS\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.color = textColor[axis]\n shader.uniforms.angle = textAngle[axis]\n gl.drawArrays(\n gl.TRIANGLES,\n tickOffset[start],\n tickOffset[end] - tickOffset[start])\n }\n }\n if(labelEnable[axis] && labelCount) {\n SCREEN_OFFSET[axis^1] -= screenScale * pixelRatio * labelPad[axis]\n shader.uniforms.dataAxis = ZERO_2\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.color = labelColor[axis]\n shader.uniforms.angle = labelAngle[axis]\n gl.drawArrays(\n gl.TRIANGLES,\n labelOffset,\n labelCount)\n }\n\n SCREEN_OFFSET[axis^1] = screenScale * viewBox[2+(axis^1)] - 1.0\n if(tickEnable[axis+2]) {\n SCREEN_OFFSET[axis^1] += screenScale * pixelRatio * tickPad[axis+2]\n if(start < end && tickOffset[end] > tickOffset[start]) {\n shader.uniforms.dataAxis = DATA_AXIS\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.color = textColor[axis+2]\n shader.uniforms.angle = textAngle[axis+2]\n gl.drawArrays(\n gl.TRIANGLES,\n tickOffset[start],\n tickOffset[end] - tickOffset[start])\n }\n }\n if(labelEnable[axis+2] && labelCount) {\n SCREEN_OFFSET[axis^1] += screenScale * pixelRatio * labelPad[axis+2]\n shader.uniforms.dataAxis = ZERO_2\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.color = labelColor[axis+2]\n shader.uniforms.angle = labelAngle[axis+2]\n gl.drawArrays(\n gl.TRIANGLES,\n labelOffset,\n labelCount)\n }\n\n }\n})()\n\nproto.drawTitle = (function() {\n var DATA_AXIS = [0,0]\n var SCREEN_OFFSET = [0,0]\n\n return function() {\n var plot = this.plot\n var shader = this.shader\n var gl = plot.gl\n var screenBox = plot.screenBox\n var titleCenter = plot.titleCenter\n var titleAngle = plot.titleAngle\n var titleColor = plot.titleColor\n var pixelRatio = plot.pixelRatio\n\n if(!this.titleCount) {\n return\n }\n\n for(var i=0; i<2; ++i) {\n SCREEN_OFFSET[i] = 2.0 * (titleCenter[i]*pixelRatio - screenBox[i]) /\n (screenBox[2+i] - screenBox[i]) - 1\n }\n\n shader.bind()\n shader.uniforms.dataAxis = DATA_AXIS\n shader.uniforms.screenOffset = SCREEN_OFFSET\n shader.uniforms.angle = titleAngle\n shader.uniforms.color = titleColor\n\n gl.drawArrays(gl.TRIANGLES, this.titleOffset, this.titleCount)\n }\n})()\n\nproto.bind = (function() {\n var DATA_SHIFT = [0,0]\n var DATA_SCALE = [0,0]\n var TEXT_SCALE = [0,0]\n\n return function() {\n var plot = this.plot\n var shader = this.shader\n var bounds = plot._tickBounds\n var dataBox = plot.dataBox\n var screenBox = plot.screenBox\n var viewBox = plot.viewBox\n\n shader.bind()\n\n //Set up coordinate scaling uniforms\n for(var i=0; i<2; ++i) {\n\n var lo = bounds[i]\n var hi = bounds[i+2]\n var boundScale = hi - lo\n var dataCenter = 0.5 * (dataBox[i+2] + dataBox[i])\n var dataWidth = (dataBox[i+2] - dataBox[i])\n\n var viewLo = viewBox[i]\n var viewHi = viewBox[i+2]\n var viewScale = viewHi - viewLo\n var screenLo = screenBox[i]\n var screenHi = screenBox[i+2]\n var screenScale = screenHi - screenLo\n\n DATA_SCALE[i] = 2.0 * boundScale / dataWidth * viewScale / screenScale\n DATA_SHIFT[i] = 2.0 * (lo - dataCenter) / dataWidth * viewScale / screenScale\n }\n\n TEXT_SCALE[1] = 2.0 * plot.pixelRatio / (screenBox[3] - screenBox[1])\n TEXT_SCALE[0] = TEXT_SCALE[1] * (screenBox[3] - screenBox[1]) / (screenBox[2] - screenBox[0])\n\n shader.uniforms.dataScale = DATA_SCALE\n shader.uniforms.dataShift = DATA_SHIFT\n shader.uniforms.textScale = TEXT_SCALE\n\n //Set attributes\n this.vbo.bind()\n shader.attributes.textCoordinate.pointer()\n }\n})()\n\nproto.update = function(options) {\n var vertices = []\n var axesTicks = options.ticks\n var bounds = options.bounds\n var i, j, k, data, scale, dimension\n\n for(dimension=0; dimension<2; ++dimension) {\n var offsets = [Math.floor(vertices.length/3)], tickX = [-Infinity]\n\n //Copy vertices over to buffer\n var ticks = axesTicks[dimension]\n for(i=0; i 1e-6) {\n out[0] = ax/al\n out[1] = ay/al\n out[2] = az/al\n out[3] = aw/al\n } else {\n out[0] = out[1] = out[2] = 0.0\n out[3] = 1.0\n }\n}\n\nfunction OrbitCameraController(initQuat, initCenter, initRadius) {\n this.radius = filterVector([initRadius])\n this.center = filterVector(initCenter)\n this.rotation = filterVector(initQuat)\n\n this.computedRadius = this.radius.curve(0)\n this.computedCenter = this.center.curve(0)\n this.computedRotation = this.rotation.curve(0)\n this.computedUp = [0.1,0,0]\n this.computedEye = [0.1,0,0]\n this.computedMatrix = [0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]\n\n this.recalcMatrix(0)\n}\n\nvar proto = OrbitCameraController.prototype\n\nproto.lastT = function() {\n return Math.max(\n this.radius.lastT(),\n this.center.lastT(),\n this.rotation.lastT())\n}\n\nproto.recalcMatrix = function(t) {\n this.radius.curve(t)\n this.center.curve(t)\n this.rotation.curve(t)\n\n var quat = this.computedRotation\n normalize4(quat, quat)\n\n var mat = this.computedMatrix\n mat4FromQuat(mat, quat)\n\n var center = this.computedCenter\n var eye = this.computedEye\n var up = this.computedUp\n var radius = Math.exp(this.computedRadius[0])\n\n eye[0] = center[0] + radius * mat[2]\n eye[1] = center[1] + radius * mat[6]\n eye[2] = center[2] + radius * mat[10]\n up[0] = mat[1]\n up[1] = mat[5]\n up[2] = mat[9]\n\n for(var i=0; i<3; ++i) {\n var rr = 0.0\n for(var j=0; j<3; ++j) {\n rr += mat[i+4*j] * eye[j]\n }\n mat[12+i] = -rr\n }\n}\n\nproto.getMatrix = function(t, result) {\n this.recalcMatrix(t)\n var m = this.computedMatrix\n if(result) {\n for(var i=0; i<16; ++i) {\n result[i] = m[i]\n }\n return result\n }\n return m\n}\n\nproto.idle = function(t) {\n this.center.idle(t)\n this.radius.idle(t)\n this.rotation.idle(t)\n}\n\nproto.flush = function(t) {\n this.center.flush(t)\n this.radius.flush(t)\n this.rotation.flush(t)\n}\n\nproto.pan = function(t, dx, dy, dz) {\n dx = dx || 0.0\n dy = dy || 0.0\n dz = dz || 0.0\n\n this.recalcMatrix(t)\n var mat = this.computedMatrix\n\n var ux = mat[1]\n var uy = mat[5]\n var uz = mat[9]\n var ul = len3(ux, uy, uz)\n ux /= ul\n uy /= ul\n uz /= ul\n\n var rx = mat[0]\n var ry = mat[4]\n var rz = mat[8]\n var ru = rx * ux + ry * uy + rz * uz\n rx -= ux * ru\n ry -= uy * ru\n rz -= uz * ru\n var rl = len3(rx, ry, rz)\n rx /= rl\n ry /= rl\n rz /= rl\n\n var fx = mat[2]\n var fy = mat[6]\n var fz = mat[10]\n var fu = fx * ux + fy * uy + fz * uz\n var fr = fx * rx + fy * ry + fz * rz\n fx -= fu * ux + fr * rx\n fy -= fu * uy + fr * ry\n fz -= fu * uz + fr * rz\n var fl = len3(fx, fy, fz)\n fx /= fl\n fy /= fl\n fz /= fl\n\n var vx = rx * dx + ux * dy\n var vy = ry * dx + uy * dy\n var vz = rz * dx + uz * dy\n\n this.center.move(t, vx, vy, vz)\n\n //Update z-component of radius\n var radius = Math.exp(this.computedRadius[0])\n radius = Math.max(1e-4, radius + dz)\n this.radius.set(t, Math.log(radius))\n}\n\nproto.rotate = function(t, dx, dy, dz) {\n this.recalcMatrix(t)\n\n dx = dx||0.0\n dy = dy||0.0\n\n var mat = this.computedMatrix\n\n var rx = mat[0]\n var ry = mat[4]\n var rz = mat[8]\n\n var ux = mat[1]\n var uy = mat[5]\n var uz = mat[9]\n\n var fx = mat[2]\n var fy = mat[6]\n var fz = mat[10]\n\n var qx = dx * rx + dy * ux\n var qy = dx * ry + dy * uy\n var qz = dx * rz + dy * uz\n\n var bx = -(fy * qz - fz * qy)\n var by = -(fz * qx - fx * qz)\n var bz = -(fx * qy - fy * qx) \n var bw = Math.sqrt(Math.max(0.0, 1.0 - Math.pow(bx,2) - Math.pow(by,2) - Math.pow(bz,2)))\n var bl = len4(bx, by, bz, bw)\n if(bl > 1e-6) {\n bx /= bl\n by /= bl\n bz /= bl\n bw /= bl\n } else {\n bx = by = bz = 0.0\n bw = 1.0\n }\n\n var rotation = this.computedRotation\n var ax = rotation[0]\n var ay = rotation[1]\n var az = rotation[2]\n var aw = rotation[3]\n\n var cx = ax*bw + aw*bx + ay*bz - az*by\n var cy = ay*bw + aw*by + az*bx - ax*bz\n var cz = az*bw + aw*bz + ax*by - ay*bx\n var cw = aw*bw - ax*bx - ay*by - az*bz\n \n //Apply roll\n if(dz) {\n bx = fx\n by = fy\n bz = fz\n var s = Math.sin(dz) / len3(bx, by, bz)\n bx *= s\n by *= s\n bz *= s\n bw = Math.cos(dx)\n cx = cx*bw + cw*bx + cy*bz - cz*by\n cy = cy*bw + cw*by + cz*bx - cx*bz\n cz = cz*bw + cw*bz + cx*by - cy*bx\n cw = cw*bw - cx*bx - cy*by - cz*bz\n }\n\n var cl = len4(cx, cy, cz, cw)\n if(cl > 1e-6) {\n cx /= cl\n cy /= cl\n cz /= cl\n cw /= cl\n } else {\n cx = cy = cz = 0.0\n cw = 1.0\n }\n\n this.rotation.set(t, cx, cy, cz, cw)\n}\n\nproto.lookAt = function(t, eye, center, up) {\n this.recalcMatrix(t)\n\n center = center || this.computedCenter\n eye = eye || this.computedEye\n up = up || this.computedUp\n\n var mat = this.computedMatrix\n lookAt(mat, eye, center, up)\n\n var rotation = this.computedRotation\n quatFromFrame(rotation,\n mat[0], mat[1], mat[2],\n mat[4], mat[5], mat[6],\n mat[8], mat[9], mat[10])\n normalize4(rotation, rotation)\n this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3])\n\n var fl = 0.0\n for(var i=0; i<3; ++i) {\n fl += Math.pow(center[i] - eye[i], 2)\n }\n this.radius.set(t, 0.5 * Math.log(Math.max(fl, 1e-6)))\n\n this.center.set(t, center[0], center[1], center[2])\n}\n\nproto.translate = function(t, dx, dy, dz) {\n this.center.move(t,\n dx||0.0,\n dy||0.0,\n dz||0.0)\n}\n\nproto.setMatrix = function(t, matrix) {\n\n var rotation = this.computedRotation\n quatFromFrame(rotation,\n matrix[0], matrix[1], matrix[2],\n matrix[4], matrix[5], matrix[6],\n matrix[8], matrix[9], matrix[10])\n normalize4(rotation, rotation)\n this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3])\n\n var mat = this.computedMatrix\n invert44(mat, matrix)\n var w = mat[15]\n if(Math.abs(w) > 1e-6) {\n var cx = mat[12]/w\n var cy = mat[13]/w\n var cz = mat[14]/w\n\n this.recalcMatrix(t) \n var r = Math.exp(this.computedRadius[0])\n this.center.set(t, cx-mat[2]*r, cy-mat[6]*r, cz-mat[10]*r)\n this.radius.idle(t)\n } else {\n this.center.idle(t)\n this.radius.idle(t)\n }\n}\n\nproto.setDistance = function(t, d) {\n if(d > 0) {\n this.radius.set(t, Math.log(d))\n }\n}\n\nproto.setDistanceLimits = function(lo, hi) {\n if(lo > 0) {\n lo = Math.log(lo)\n } else {\n lo = -Infinity \n }\n if(hi > 0) {\n hi = Math.log(hi)\n } else {\n hi = Infinity\n }\n hi = Math.max(hi, lo)\n this.radius.bounds[0][0] = lo\n this.radius.bounds[1][0] = hi\n}\n\nproto.getDistanceLimits = function(out) {\n var bounds = this.radius.bounds\n if(out) {\n out[0] = Math.exp(bounds[0][0])\n out[1] = Math.exp(bounds[1][0])\n return out\n }\n return [ Math.exp(bounds[0][0]), Math.exp(bounds[1][0]) ]\n}\n\nproto.toJSON = function() {\n this.recalcMatrix(this.lastT())\n return {\n center: this.computedCenter.slice(),\n rotation: this.computedRotation.slice(),\n distance: Math.log(this.computedRadius[0]),\n zoomMin: this.radius.bounds[0][0],\n zoomMax: this.radius.bounds[1][0]\n }\n}\n\nproto.fromJSON = function(options) {\n var t = this.lastT()\n var c = options.center\n if(c) {\n this.center.set(t, c[0], c[1], c[2])\n }\n var r = options.rotation\n if(r) {\n this.rotation.set(t, r[0], r[1], r[2], r[3])\n }\n var d = options.distance\n if(d && d > 0) {\n this.radius.set(t, Math.log(d))\n }\n this.setDistanceLimits(options.zoomMin, options.zoomMax)\n}\n\nfunction createOrbitController(options) {\n options = options || {}\n var center = options.center || [0,0,0]\n var rotation = options.rotation || [0,0,0,1]\n var radius = options.radius || 1.0\n\n center = [].slice.call(center, 0, 3)\n rotation = [].slice.call(rotation, 0, 4)\n normalize4(rotation, rotation)\n\n var result = new OrbitCameraController(\n rotation,\n center,\n Math.log(radius))\n\n result.setDistanceLimits(options.zoomMin, options.zoomMax)\n\n if('eye' in options || 'up' in options) {\n result.lookAt(0, options.eye, options.center, options.up)\n }\n\n return result\n}\n\n/***/ }),\n\n/***/ \"6259\":\n/***/ (function(module, exports) {\n\nmodule.exports = transformMat4\n\n/**\n * Transforms the vec4 with a mat4.\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the vector to transform\n * @param {mat4} m matrix to transform with\n * @returns {vec4} out\n */\nfunction transformMat4 (out, a, m) {\n var x = a[0], y = a[1], z = a[2], w = a[3]\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w\n return out\n}\n\n\n/***/ }),\n\n/***/ \"6295\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar createShader = __webpack_require__(\"28dd\")\nvar glslify = __webpack_require__(\"e98f\")\n\nvar vertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec4 uv;\\nattribute vec3 f;\\nattribute vec3 normal;\\n\\nuniform vec3 objectOffset;\\nuniform mat4 model, view, projection, inverseModel;\\nuniform vec3 lightPosition, eyePosition;\\nuniform sampler2D colormap;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n vec3 localCoordinate = vec3(uv.zw, f.x);\\n worldCoordinate = objectOffset + localCoordinate;\\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\\n vec4 clipPosition = projection * view * worldPosition;\\n gl_Position = clipPosition;\\n kill = f.y;\\n value = f.z;\\n planeCoordinate = uv.xy;\\n\\n vColor = texture2D(colormap, vec2(value, value));\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * worldPosition;\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n lightDirection = lightPosition - cameraCoordinate.xyz;\\n eyeDirection = eyePosition - cameraCoordinate.xyz;\\n surfaceNormal = normalize((vec4(normal,0) * inverseModel).xyz);\\n}\\n\"])\nvar fragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat beckmannSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness) {\\n return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 lowerBound, upperBound;\\nuniform float contourTint;\\nuniform vec4 contourColor;\\nuniform sampler2D colormap;\\nuniform vec3 clipBounds[2];\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\nuniform float vertexColor;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n if ((kill > 0.0) ||\\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\n\\n vec3 N = normalize(surfaceNormal);\\n vec3 V = normalize(eyeDirection);\\n vec3 L = normalize(lightDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n //decide how to interpolate color — in vertex or in fragment\\n vec4 surfaceColor =\\n step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) +\\n step(.5, vertexColor) * vColor;\\n\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\\n}\\n\"])\nvar contourVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec4 uv;\\nattribute float f;\\n\\nuniform vec3 objectOffset;\\nuniform mat3 permutation;\\nuniform mat4 model, view, projection;\\nuniform float height, zOffset;\\nuniform sampler2D colormap;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n vec3 dataCoordinate = permutation * vec3(uv.xy, height);\\n worldCoordinate = objectOffset + dataCoordinate;\\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\\n\\n vec4 clipPosition = projection * view * worldPosition;\\n clipPosition.z += zOffset;\\n\\n gl_Position = clipPosition;\\n value = f + objectOffset.z;\\n kill = -1.0;\\n planeCoordinate = uv.zw;\\n\\n vColor = texture2D(colormap, vec2(value, value));\\n\\n //Don't do lighting for contours\\n surfaceNormal = vec3(1,0,0);\\n eyeDirection = vec3(0,1,0);\\n lightDirection = vec3(0,0,1);\\n}\\n\"])\nvar pickSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec2 shape;\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 surfaceNormal;\\n\\nvec2 splitFloat(float v) {\\n float vh = 255.0 * v;\\n float upper = floor(vh);\\n float lower = fract(vh);\\n return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\\n}\\n\\nvoid main() {\\n if ((kill > 0.0) ||\\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\n\\n vec2 ux = splitFloat(planeCoordinate.x / shape.x);\\n vec2 uy = splitFloat(planeCoordinate.y / shape.y);\\n gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\\n}\\n\"])\n\nexports.createShader = function (gl) {\n var shader = createShader(gl, vertSrc, fragSrc, null, [\n {name: 'uv', type: 'vec4'},\n {name: 'f', type: 'vec3'},\n {name: 'normal', type: 'vec3'}\n ])\n shader.attributes.uv.location = 0\n shader.attributes.f.location = 1\n shader.attributes.normal.location = 2\n return shader\n}\nexports.createPickShader = function (gl) {\n var shader = createShader(gl, vertSrc, pickSrc, null, [\n {name: 'uv', type: 'vec4'},\n {name: 'f', type: 'vec3'},\n {name: 'normal', type: 'vec3'}\n ])\n shader.attributes.uv.location = 0\n shader.attributes.f.location = 1\n shader.attributes.normal.location = 2\n return shader\n}\nexports.createContourShader = function (gl) {\n var shader = createShader(gl, contourVertSrc, fragSrc, null, [\n {name: 'uv', type: 'vec4'},\n {name: 'f', type: 'float'}\n ])\n shader.attributes.uv.location = 0\n shader.attributes.f.location = 1\n return shader\n}\nexports.createPickContourShader = function (gl) {\n var shader = createShader(gl, contourVertSrc, pickSrc, null, [\n {name: 'uv', type: 'vec4'},\n {name: 'f', type: 'float'}\n ])\n shader.attributes.uv.location = 0\n shader.attributes.f.location = 1\n return shader\n}\n\n\n/***/ }),\n\n/***/ \"62c4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _undefined = __webpack_require__(\"e76c\")(); // Support ES3 engines\n\nmodule.exports = function (val) { return val !== _undefined && val !== null; };\n\n\n/***/ }),\n\n/***/ \"62d6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar compile = __webpack_require__(\"40ce\")\n\nvar EmptyProc = {\n body: \"\",\n args: [],\n thisVars: [],\n localVars: []\n}\n\nfunction fixup(x) {\n if(!x) {\n return EmptyProc\n }\n for(var i=0; i>\",\n rrshift: \">>>\"\n}\n;(function(){\n for(var id in assign_ops) {\n var op = assign_ops[id]\n exports[id] = makeOp({\n args: [\"array\",\"array\",\"array\"],\n body: {args:[\"a\",\"b\",\"c\"],\n body: \"a=b\"+op+\"c\"},\n funcName: id\n })\n exports[id+\"eq\"] = makeOp({\n args: [\"array\",\"array\"],\n body: {args:[\"a\",\"b\"],\n body:\"a\"+op+\"=b\"},\n rvalue: true,\n funcName: id+\"eq\"\n })\n exports[id+\"s\"] = makeOp({\n args: [\"array\", \"array\", \"scalar\"],\n body: {args:[\"a\",\"b\",\"s\"],\n body:\"a=b\"+op+\"s\"},\n funcName: id+\"s\"\n })\n exports[id+\"seq\"] = makeOp({\n args: [\"array\",\"scalar\"],\n body: {args:[\"a\",\"s\"],\n body:\"a\"+op+\"=s\"},\n rvalue: true,\n funcName: id+\"seq\"\n })\n }\n})();\n\nvar unary_ops = {\n not: \"!\",\n bnot: \"~\",\n neg: \"-\",\n recip: \"1.0/\"\n}\n;(function(){\n for(var id in unary_ops) {\n var op = unary_ops[id]\n exports[id] = makeOp({\n args: [\"array\", \"array\"],\n body: {args:[\"a\",\"b\"],\n body:\"a=\"+op+\"b\"},\n funcName: id\n })\n exports[id+\"eq\"] = makeOp({\n args: [\"array\"],\n body: {args:[\"a\"],\n body:\"a=\"+op+\"a\"},\n rvalue: true,\n count: 2,\n funcName: id+\"eq\"\n })\n }\n})();\n\nvar binary_ops = {\n and: \"&&\",\n or: \"||\",\n eq: \"===\",\n neq: \"!==\",\n lt: \"<\",\n gt: \">\",\n leq: \"<=\",\n geq: \">=\"\n}\n;(function() {\n for(var id in binary_ops) {\n var op = binary_ops[id]\n exports[id] = makeOp({\n args: [\"array\",\"array\",\"array\"],\n body: {args:[\"a\", \"b\", \"c\"],\n body:\"a=b\"+op+\"c\"},\n funcName: id\n })\n exports[id+\"s\"] = makeOp({\n args: [\"array\",\"array\",\"scalar\"],\n body: {args:[\"a\", \"b\", \"s\"],\n body:\"a=b\"+op+\"s\"},\n funcName: id+\"s\"\n })\n exports[id+\"eq\"] = makeOp({\n args: [\"array\", \"array\"],\n body: {args:[\"a\", \"b\"],\n body:\"a=a\"+op+\"b\"},\n rvalue:true,\n count:2,\n funcName: id+\"eq\"\n })\n exports[id+\"seq\"] = makeOp({\n args: [\"array\", \"scalar\"],\n body: {args:[\"a\",\"s\"],\n body:\"a=a\"+op+\"s\"},\n rvalue:true,\n count:2,\n funcName: id+\"seq\"\n })\n }\n})();\n\nvar math_unary = [\n \"abs\",\n \"acos\",\n \"asin\",\n \"atan\",\n \"ceil\",\n \"cos\",\n \"exp\",\n \"floor\",\n \"log\",\n \"round\",\n \"sin\",\n \"sqrt\",\n \"tan\"\n]\n;(function() {\n for(var i=0; ithis_s){this_s=-a}else if(a>this_s){this_s=a}\", localVars: [], thisVars: [\"this_s\"]},\n post: {args:[], localVars:[], thisVars:[\"this_s\"], body:\"return this_s\"},\n funcName: \"norminf\"\n})\n\nexports.norm1 = compile({\n args:[\"array\"],\n pre: {args:[], localVars:[], thisVars:[\"this_s\"], body:\"this_s=0\"},\n body: {args:[{name:\"a\", lvalue:false, rvalue:true, count:3}], body: \"this_s+=a<0?-a:a\", localVars: [], thisVars: [\"this_s\"]},\n post: {args:[], localVars:[], thisVars:[\"this_s\"], body:\"return this_s\"},\n funcName: \"norm1\"\n})\n\nexports.sup = compile({\n args: [ \"array\" ],\n pre:\n { body: \"this_h=-Infinity\",\n args: [],\n thisVars: [ \"this_h\" ],\n localVars: [] },\n body:\n { body: \"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_\",\n args: [{\"name\":\"_inline_1_arg0_\",\"lvalue\":false,\"rvalue\":true,\"count\":2} ],\n thisVars: [ \"this_h\" ],\n localVars: [] },\n post:\n { body: \"return this_h\",\n args: [],\n thisVars: [ \"this_h\" ],\n localVars: [] }\n })\n\nexports.inf = compile({\n args: [ \"array\" ],\n pre:\n { body: \"this_h=Infinity\",\n args: [],\n thisVars: [ \"this_h\" ],\n localVars: [] },\n body:\n { body: \"if(_inline_1_arg0_this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}\",\n args:[\n {name:\"_inline_1_arg0_\",lvalue:false,rvalue:true,count:2},\n {name:\"_inline_1_arg1_\",lvalue:false,rvalue:true,count:2}],\n thisVars:[\"this_i\",\"this_v\"],\n localVars:[\"_inline_1_k\"]},\n post:{\n body:\"{return this_i}\",\n args:[],\n thisVars:[\"this_i\"],\n localVars:[]}\n}) \n\nexports.random = makeOp({\n args: [\"array\"],\n pre: {args:[], body:\"this_f=Math.random\", thisVars:[\"this_f\"]},\n body: {args: [\"a\"], body:\"a=this_f()\", thisVars:[\"this_f\"]},\n funcName: \"random\"\n})\n\nexports.assign = makeOp({\n args:[\"array\", \"array\"],\n body: {args:[\"a\", \"b\"], body:\"a=b\"},\n funcName: \"assign\" })\n\nexports.assigns = makeOp({\n args:[\"array\", \"scalar\"],\n body: {args:[\"a\", \"b\"], body:\"a=b\"},\n funcName: \"assigns\" })\n\n\nexports.equals = compile({\n args:[\"array\", \"array\"],\n pre: EmptyProc,\n body: {args:[{name:\"x\", lvalue:false, rvalue:true, count:1},\n {name:\"y\", lvalue:false, rvalue:true, count:1}], \n body: \"if(x!==y){return false}\", \n localVars: [], \n thisVars: []},\n post: {args:[], localVars:[], thisVars:[], body:\"return true\"},\n funcName: \"equals\"\n})\n\n\n\n\n/***/ }),\n\n/***/ \"62e4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n/***/ }),\n\n/***/ \"6321\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isPrototype = __webpack_require__(\"9013\");\n\nmodule.exports = function (value) {\n\tif (typeof value !== \"function\") return false;\n\n\tif (!hasOwnProperty.call(value, \"length\")) return false;\n\n\ttry {\n\t\tif (typeof value.length !== \"number\") return false;\n\t\tif (typeof value.call !== \"function\") return false;\n\t\tif (typeof value.apply !== \"function\") return false;\n\t} catch (error) {\n\t\treturn false;\n\t}\n\n\treturn !isPrototype(value);\n};\n\n\n/***/ }),\n\n/***/ \"6386\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n moduleType: 'trace',\n name: 'scatterpolar',\n basePlotModule: __webpack_require__(\"c07c\"),\n categories: ['polar', 'symbols', 'showLegend', 'scatter-like'],\n\n attributes: __webpack_require__(\"8a6e\"),\n supplyDefaults: __webpack_require__(\"66db\").supplyDefaults,\n colorbar: __webpack_require__(\"f3cf\"),\n formatLabels: __webpack_require__(\"98e74\"),\n calc: __webpack_require__(\"8a43\"),\n plot: __webpack_require__(\"8260\"),\n style: __webpack_require__(\"52e8\").style,\n styleOnSelect: __webpack_require__(\"52e8\").styleOnSelect,\n hoverPoints: __webpack_require__(\"efcd\").hoverPoints,\n selectPoints: __webpack_require__(\"214c\"),\n\n meta: {\n \n \n }\n};\n\n\n/***/ }),\n\n/***/ \"63dc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n// fraction of some size to get to a named position\nmodule.exports = {\n // from bottom left: this is the origin of our paper-reference\n // positioning system\n FROM_BL: {\n left: 0,\n center: 0.5,\n right: 1,\n bottom: 0,\n middle: 0.5,\n top: 1\n },\n // from top left: this is the screen pixel positioning origin\n FROM_TL: {\n left: 0,\n center: 0.5,\n right: 1,\n bottom: 1,\n middle: 0.5,\n top: 0\n },\n // from bottom right: sometimes you just need the opposite of ^^\n FROM_BR: {\n left: 1,\n center: 0.5,\n right: 0,\n bottom: 0,\n middle: 0.5,\n top: 1\n },\n // multiple of fontSize to get the vertical offset between lines\n LINE_SPACING: 1.3,\n\n // multiple of fontSize to shift from the baseline\n // to the cap (captical letter) line\n // (to use when we don't calculate this shift from Drawing.bBox)\n // This is an approximation since in reality cap height can differ\n // from font to font. However, according to Wikipedia\n // an \"average\" font might have a cap height of 70% of the em\n // https://en.wikipedia.org/wiki/Em_(typography)#History\n CAP_SHIFT: 0.70,\n\n // half the cap height (distance between baseline and cap line)\n // of an \"average\" font (for more info see above).\n MID_SHIFT: 0.35,\n\n OPPOSITE_SIDE: {\n left: 'right',\n right: 'left',\n top: 'bottom',\n bottom: 'top'\n }\n};\n\n\n/***/ }),\n\n/***/ \"643c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar plots = __webpack_require__(\"bb71\");\n\nexports.name = 'indicator';\n\nexports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n};\n\n\n/***/ }),\n\n/***/ \"644a\":\n/***/ (function(module, exports) {\n\nmodule.exports = squaredLength\n\n/**\n * Calculates the squared length of a vec4\n *\n * @param {vec4} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nfunction squaredLength (a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3]\n return x * x + y * y + z * z + w * w\n}\n\n\n/***/ }),\n\n/***/ \"64c3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar extendFlat = __webpack_require__(\"fc26\").extendFlat;\nvar OHLCattrs = __webpack_require__(\"6657\");\nvar boxAttrs = __webpack_require__(\"1ebf\");\n\nfunction directionAttrs(lineColorDefault) {\n return {\n line: {\n color: extendFlat({}, boxAttrs.line.color, {dflt: lineColorDefault}),\n width: boxAttrs.line.width,\n editType: 'style'\n },\n\n fillcolor: boxAttrs.fillcolor,\n editType: 'style'\n };\n}\n\nmodule.exports = {\n x: OHLCattrs.x,\n open: OHLCattrs.open,\n high: OHLCattrs.high,\n low: OHLCattrs.low,\n close: OHLCattrs.close,\n\n line: {\n width: extendFlat({}, boxAttrs.line.width, {\n \n }),\n editType: 'style'\n },\n\n increasing: directionAttrs(OHLCattrs.increasing.line.color.dflt),\n\n decreasing: directionAttrs(OHLCattrs.decreasing.line.color.dflt),\n\n text: OHLCattrs.text,\n hovertext: OHLCattrs.hovertext,\n whiskerwidth: extendFlat({}, boxAttrs.whiskerwidth, { dflt: 0 }),\n\n hoverlabel: OHLCattrs.hoverlabel,\n};\n\n\n/***/ }),\n\n/***/ \"6533\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\nmodule.exports = function handleLabelDefaults(coerce, layout, lineColor, opts) {\n if(!opts) opts = {};\n var showLabels = coerce('contours.showlabels');\n if(showLabels) {\n var globalFont = layout.font;\n Lib.coerceFont(coerce, 'contours.labelfont', {\n family: globalFont.family,\n size: globalFont.size,\n color: lineColor\n });\n coerce('contours.labelformat');\n }\n\n if(opts.hasHover !== false) coerce('zhoverformat');\n};\n\n\n/***/ }),\n\n/***/ \"6547\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"a691\");\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ \"654e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar colorscaleDefaults = __webpack_require__(\"4183\");\nvar attributes = __webpack_require__(\"535c\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var lon = coerce('lon') || [];\n var lat = coerce('lat') || [];\n\n var len = Math.min(lon.length, lat.length);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = len;\n\n coerce('z');\n coerce('radius');\n coerce('below');\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'z'});\n};\n\n\n/***/ }),\n\n/***/ \"6578\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"16ef\");\n\n\n/***/ }),\n\n/***/ \"6599\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar generated = Object.create(null), random = Math.random;\n\nmodule.exports = function () {\n\tvar str;\n\tdo {\n\t\tstr = random().toString(36).slice(2);\n\t} while (generated[str]);\n\treturn str;\n};\n\n\n/***/ }),\n\n/***/ \"65f0\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\nvar isArray = __webpack_require__(\"e8b5\");\nvar wellKnownSymbol = __webpack_require__(\"b622\");\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n\n/***/ \"661c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Loggers = __webpack_require__(\"ae13\");\nvar mod = __webpack_require__(\"d3dc\").mod;\n\nvar constants = __webpack_require__(\"e806\");\nvar BADNUM = constants.BADNUM;\nvar ONEDAY = constants.ONEDAY;\nvar ONEHOUR = constants.ONEHOUR;\nvar ONEMIN = constants.ONEMIN;\nvar ONESEC = constants.ONESEC;\nvar EPOCHJD = constants.EPOCHJD;\n\nvar Registry = __webpack_require__(\"371e\");\n\nvar utcFormat = d3.time.format.utc;\n\nvar DATETIME_REGEXP = /^\\s*(-?\\d\\d\\d\\d|\\d\\d)(-(\\d?\\d)(-(\\d?\\d)([ Tt]([01]?\\d|2[0-3])(:([0-5]\\d)(:([0-5]\\d(\\.\\d+)?))?(Z|z|[+\\-]\\d\\d:?\\d\\d)?)?)?)?)?\\s*$/m;\n// special regex for chinese calendars to support yyyy-mmi-dd etc for intercalary months\nvar DATETIME_REGEXP_CN = /^\\s*(-?\\d\\d\\d\\d|\\d\\d)(-(\\d?\\di?)(-(\\d?\\d)([ Tt]([01]?\\d|2[0-3])(:([0-5]\\d)(:([0-5]\\d(\\.\\d+)?))?(Z|z|[+\\-]\\d\\d:?\\d\\d)?)?)?)?)?\\s*$/m;\n\n// for 2-digit years, the first year we map them onto\nvar YFIRST = new Date().getFullYear() - 70;\n\nfunction isWorldCalendar(calendar) {\n return (\n calendar &&\n Registry.componentsRegistry.calendars &&\n typeof calendar === 'string' && calendar !== 'gregorian'\n );\n}\n\n/*\n * dateTick0: get the canonical tick for this calendar\n *\n * bool sunday is for week ticks, shift it to a Sunday.\n */\nexports.dateTick0 = function(calendar, sunday) {\n if(isWorldCalendar(calendar)) {\n return sunday ?\n Registry.getComponentMethod('calendars', 'CANONICAL_SUNDAY')[calendar] :\n Registry.getComponentMethod('calendars', 'CANONICAL_TICK')[calendar];\n } else {\n return sunday ? '2000-01-02' : '2000-01-01';\n }\n};\n\n/*\n * dfltRange: for each calendar, give a valid default range\n */\nexports.dfltRange = function(calendar) {\n if(isWorldCalendar(calendar)) {\n return Registry.getComponentMethod('calendars', 'DFLTRANGE')[calendar];\n } else {\n return ['2000-01-01', '2001-01-01'];\n }\n};\n\n// is an object a javascript date?\nexports.isJSDate = function(v) {\n return typeof v === 'object' && v !== null && typeof v.getTime === 'function';\n};\n\n// The absolute limits of our date-time system\n// This is a little weird: we use MIN_MS and MAX_MS in dateTime2ms\n// but we use dateTime2ms to calculate them (after defining it!)\nvar MIN_MS, MAX_MS;\n\n/**\n * dateTime2ms - turn a date object or string s into milliseconds\n * (relative to 1970-01-01, per javascript standard)\n * optional calendar (string) to use a non-gregorian calendar\n *\n * Returns BADNUM if it doesn't find a date\n *\n * strings should have the form:\n *\n * -?YYYY-mm-ddHH:MM:SS.sss?\n *\n * : space (our normal standard) or T or t (ISO-8601)\n * : Z, z, or [+\\-]HH:?MM and we THROW IT AWAY\n * this format comes from https://tools.ietf.org/html/rfc3339#section-5.6\n * but we allow it even with a space as the separator\n *\n * May truncate after any full field, and sss can be any length\n * even >3 digits, though javascript dates truncate to milliseconds,\n * we keep as much as javascript numeric precision can hold, but we only\n * report back up to 100 microsecond precision, because most dates support\n * this precision (close to 1970 support more, very far away support less)\n *\n * Expanded to support negative years to -9999 but you must always\n * give 4 digits, except for 2-digit positive years which we assume are\n * near the present time.\n * Note that we follow ISO 8601:2004: there *is* a year 0, which\n * is 1BC/BCE, and -1===2BC etc.\n *\n * World calendars: not all of these *have* agreed extensions to this full range,\n * if you have another calendar system but want a date range outside its validity,\n * you can use a gregorian date string prefixed with 'G' or 'g'.\n *\n * Where to cut off 2-digit years between 1900s and 2000s?\n * from http://support.microsoft.com/kb/244664:\n * 1930-2029 (the most retro of all...)\n * but in my mac chrome from eg. d=new Date(Date.parse('8/19/50')):\n * 1950-2049\n * by Java, from http://stackoverflow.com/questions/2024273/:\n * now-80 - now+19\n * or FileMaker Pro, from\n * http://www.filemaker.com/12help/html/add_view_data.4.21.html:\n * now-70 - now+29\n * but python strptime etc, via\n * http://docs.python.org/py3k/library/time.html:\n * 1969-2068 (super forward-looking, but static, not sliding!)\n *\n * lets go with now-70 to now+29, and if anyone runs into this problem\n * they can learn the hard way not to use 2-digit years, as no choice we\n * make now will cover all possibilities. mostly this will all be taken\n * care of in initial parsing, should only be an issue for hand-entered data\n * currently (2016) this range is:\n * 1946-2045\n */\nexports.dateTime2ms = function(s, calendar) {\n // first check if s is a date object\n if(exports.isJSDate(s)) {\n // Convert to the UTC milliseconds that give the same\n // hours as this date has in the local timezone\n var tzOffset = s.getTimezoneOffset() * ONEMIN;\n var offsetTweak = (s.getUTCMinutes() - s.getMinutes()) * ONEMIN +\n (s.getUTCSeconds() - s.getSeconds()) * ONESEC +\n (s.getUTCMilliseconds() - s.getMilliseconds());\n\n if(offsetTweak) {\n var comb = 3 * ONEMIN;\n tzOffset = tzOffset - comb / 2 + mod(offsetTweak - tzOffset + comb / 2, comb);\n }\n s = Number(s) - tzOffset;\n if(s >= MIN_MS && s <= MAX_MS) return s;\n return BADNUM;\n }\n // otherwise only accept strings and numbers\n if(typeof s !== 'string' && typeof s !== 'number') return BADNUM;\n\n s = String(s);\n\n var isWorld = isWorldCalendar(calendar);\n\n // to handle out-of-range dates in international calendars, accept\n // 'G' as a prefix to force the built-in gregorian calendar.\n var s0 = s.charAt(0);\n if(isWorld && (s0 === 'G' || s0 === 'g')) {\n s = s.substr(1);\n calendar = '';\n }\n\n var isChinese = isWorld && calendar.substr(0, 7) === 'chinese';\n\n var match = s.match(isChinese ? DATETIME_REGEXP_CN : DATETIME_REGEXP);\n if(!match) return BADNUM;\n var y = match[1];\n var m = match[3] || '1';\n var d = Number(match[5] || 1);\n var H = Number(match[7] || 0);\n var M = Number(match[9] || 0);\n var S = Number(match[11] || 0);\n\n if(isWorld) {\n // disallow 2-digit years for world calendars\n if(y.length === 2) return BADNUM;\n y = Number(y);\n\n var cDate;\n try {\n var calInstance = Registry.getComponentMethod('calendars', 'getCal')(calendar);\n if(isChinese) {\n var isIntercalary = m.charAt(m.length - 1) === 'i';\n m = parseInt(m, 10);\n cDate = calInstance.newDate(y, calInstance.toMonthIndex(y, m, isIntercalary), d);\n } else {\n cDate = calInstance.newDate(y, Number(m), d);\n }\n } catch(e) { return BADNUM; } // Invalid ... date\n\n if(!cDate) return BADNUM;\n\n return ((cDate.toJD() - EPOCHJD) * ONEDAY) +\n (H * ONEHOUR) + (M * ONEMIN) + (S * ONESEC);\n }\n\n if(y.length === 2) {\n y = (Number(y) + 2000 - YFIRST) % 100 + YFIRST;\n } else y = Number(y);\n\n // new Date uses months from 0; subtract 1 here just so we\n // don't have to do it again during the validity test below\n m -= 1;\n\n // javascript takes new Date(0..99,m,d) to mean 1900-1999, so\n // to support years 0-99 we need to use setFullYear explicitly\n // Note that 2000 is a leap year.\n var date = new Date(Date.UTC(2000, m, d, H, M));\n date.setUTCFullYear(y);\n\n if(date.getUTCMonth() !== m) return BADNUM;\n if(date.getUTCDate() !== d) return BADNUM;\n\n return date.getTime() + S * ONESEC;\n};\n\nMIN_MS = exports.MIN_MS = exports.dateTime2ms('-9999');\nMAX_MS = exports.MAX_MS = exports.dateTime2ms('9999-12-31 23:59:59.9999');\n\n// is string s a date? (see above)\nexports.isDateTime = function(s, calendar) {\n return (exports.dateTime2ms(s, calendar) !== BADNUM);\n};\n\n// pad a number with zeroes, to given # of digits before the decimal point\nfunction lpad(val, digits) {\n return String(val + Math.pow(10, digits)).substr(1);\n}\n\n/**\n * Turn ms into string of the form YYYY-mm-dd HH:MM:SS.ssss\n * Crop any trailing zeros in time, except never stop right after hours\n * (we could choose to crop '-01' from date too but for now we always\n * show the whole date)\n * Optional range r is the data range that applies, also in ms.\n * If rng is big, the later parts of time will be omitted\n */\nvar NINETYDAYS = 90 * ONEDAY;\nvar THREEHOURS = 3 * ONEHOUR;\nvar FIVEMIN = 5 * ONEMIN;\nexports.ms2DateTime = function(ms, r, calendar) {\n if(typeof ms !== 'number' || !(ms >= MIN_MS && ms <= MAX_MS)) return BADNUM;\n\n if(!r) r = 0;\n\n var msecTenths = Math.floor(mod(ms + 0.05, 1) * 10);\n var msRounded = Math.round(ms - msecTenths / 10);\n var dateStr, h, m, s, msec10, d;\n\n if(isWorldCalendar(calendar)) {\n var dateJD = Math.floor(msRounded / ONEDAY) + EPOCHJD;\n var timeMs = Math.floor(mod(ms, ONEDAY));\n try {\n dateStr = Registry.getComponentMethod('calendars', 'getCal')(calendar)\n .fromJD(dateJD).formatDate('yyyy-mm-dd');\n } catch(e) {\n // invalid date in this calendar - fall back to Gyyyy-mm-dd\n dateStr = utcFormat('G%Y-%m-%d')(new Date(msRounded));\n }\n\n // yyyy does NOT guarantee 4-digit years. YYYY mostly does, but does\n // other things for a few calendars, so we can't trust it. Just pad\n // it manually (after the '-' if there is one)\n if(dateStr.charAt(0) === '-') {\n while(dateStr.length < 11) dateStr = '-0' + dateStr.substr(1);\n } else {\n while(dateStr.length < 10) dateStr = '0' + dateStr;\n }\n\n // TODO: if this is faster, we could use this block for extracting\n // the time components of regular gregorian too\n h = (r < NINETYDAYS) ? Math.floor(timeMs / ONEHOUR) : 0;\n m = (r < NINETYDAYS) ? Math.floor((timeMs % ONEHOUR) / ONEMIN) : 0;\n s = (r < THREEHOURS) ? Math.floor((timeMs % ONEMIN) / ONESEC) : 0;\n msec10 = (r < FIVEMIN) ? (timeMs % ONESEC) * 10 + msecTenths : 0;\n } else {\n d = new Date(msRounded);\n\n dateStr = utcFormat('%Y-%m-%d')(d);\n\n // <90 days: add hours and minutes - never *only* add hours\n h = (r < NINETYDAYS) ? d.getUTCHours() : 0;\n m = (r < NINETYDAYS) ? d.getUTCMinutes() : 0;\n // <3 hours: add seconds\n s = (r < THREEHOURS) ? d.getUTCSeconds() : 0;\n // <5 minutes: add ms (plus one extra digit, this is msec*10)\n msec10 = (r < FIVEMIN) ? d.getUTCMilliseconds() * 10 + msecTenths : 0;\n }\n\n return includeTime(dateStr, h, m, s, msec10);\n};\n\n// For converting old-style milliseconds to date strings,\n// we use the local timezone rather than UTC like we use\n// everywhere else, both for backward compatibility and\n// because that's how people mostly use javasript date objects.\n// Clip one extra day off our date range though so we can't get\n// thrown beyond the range by the timezone shift.\nexports.ms2DateTimeLocal = function(ms) {\n if(!(ms >= MIN_MS + ONEDAY && ms <= MAX_MS - ONEDAY)) return BADNUM;\n\n var msecTenths = Math.floor(mod(ms + 0.05, 1) * 10);\n var d = new Date(Math.round(ms - msecTenths / 10));\n var dateStr = d3.time.format('%Y-%m-%d')(d);\n var h = d.getHours();\n var m = d.getMinutes();\n var s = d.getSeconds();\n var msec10 = d.getUTCMilliseconds() * 10 + msecTenths;\n\n return includeTime(dateStr, h, m, s, msec10);\n};\n\nfunction includeTime(dateStr, h, m, s, msec10) {\n // include each part that has nonzero data in or after it\n if(h || m || s || msec10) {\n dateStr += ' ' + lpad(h, 2) + ':' + lpad(m, 2);\n if(s || msec10) {\n dateStr += ':' + lpad(s, 2);\n if(msec10) {\n var digits = 4;\n while(msec10 % 10 === 0) {\n digits -= 1;\n msec10 /= 10;\n }\n dateStr += '.' + lpad(msec10, digits);\n }\n }\n }\n return dateStr;\n}\n\n// normalize date format to date string, in case it starts as\n// a Date object or milliseconds\n// optional dflt is the return value if cleaning fails\nexports.cleanDate = function(v, dflt, calendar) {\n // let us use cleanDate to provide a missing default without an error\n if(v === BADNUM) return dflt;\n if(exports.isJSDate(v) || (typeof v === 'number' && isFinite(v))) {\n // do not allow milliseconds (old) or jsdate objects (inherently\n // described as gregorian dates) with world calendars\n if(isWorldCalendar(calendar)) {\n Loggers.error('JS Dates and milliseconds are incompatible with world calendars', v);\n return dflt;\n }\n\n // NOTE: if someone puts in a year as a number rather than a string,\n // this will mistakenly convert it thinking it's milliseconds from 1970\n // that is: '2012' -> Jan. 1, 2012, but 2012 -> 2012 epoch milliseconds\n v = exports.ms2DateTimeLocal(+v);\n if(!v && dflt !== undefined) return dflt;\n } else if(!exports.isDateTime(v, calendar)) {\n Loggers.error('unrecognized date', v);\n return dflt;\n }\n return v;\n};\n\n/*\n * Date formatting for ticks and hovertext\n */\n\n/*\n * modDateFormat: Support world calendars, and add one item to\n * d3's vocabulary:\n * %{n}f where n is the max number of digits of fractional seconds\n */\nvar fracMatch = /%\\d?f/g;\nfunction modDateFormat(fmt, x, formatter, calendar) {\n fmt = fmt.replace(fracMatch, function(match) {\n var digits = Math.min(+(match.charAt(1)) || 6, 6);\n var fracSecs = ((x / 1000 % 1) + 2)\n .toFixed(digits)\n .substr(2).replace(/0+$/, '') || '0';\n return fracSecs;\n });\n\n var d = new Date(Math.floor(x + 0.05));\n\n if(isWorldCalendar(calendar)) {\n try {\n fmt = Registry.getComponentMethod('calendars', 'worldCalFmt')(fmt, x, calendar);\n } catch(e) {\n return 'Invalid';\n }\n }\n return formatter(fmt)(d);\n}\n\n/*\n * formatTime: create a time string from:\n * x: milliseconds\n * tr: tickround ('M', 'S', or # digits)\n * only supports UTC times (where every day is 24 hours and 0 is at midnight)\n */\nvar MAXSECONDS = [59, 59.9, 59.99, 59.999, 59.9999];\nfunction formatTime(x, tr) {\n var timePart = mod(x + 0.05, ONEDAY);\n\n var timeStr = lpad(Math.floor(timePart / ONEHOUR), 2) + ':' +\n lpad(mod(Math.floor(timePart / ONEMIN), 60), 2);\n\n if(tr !== 'M') {\n if(!isNumeric(tr)) tr = 0; // should only be 'S'\n\n /*\n * this is a weird one - and shouldn't come up unless people\n * monkey with tick0 in weird ways, but we need to do something!\n * IN PARTICULAR we had better not display garbage (see below)\n * for numbers we always round to the nearest increment of the\n * precision we're showing, and this seems like the right way to\n * handle seconds and milliseconds, as they have a decimal point\n * and people will interpret that to mean rounding like numbers.\n * but for larger increments we floor the value: it's always\n * 2013 until the ball drops on the new year. We could argue about\n * which field it is where we start rounding (should 12:08:59\n * round to 12:09 if we're stopping at minutes?) but for now I'll\n * say we round seconds but floor everything else. BUT that means\n * we need to never round up to 60 seconds, ie 23:59:60\n */\n var sec = Math.min(mod(x / ONESEC, 60), MAXSECONDS[tr]);\n\n var secStr = (100 + sec).toFixed(tr).substr(1);\n if(tr > 0) {\n secStr = secStr.replace(/0+$/, '').replace(/[\\.]$/, '');\n }\n\n timeStr += ':' + secStr;\n }\n return timeStr;\n}\n\n/*\n * formatDate: turn a date into tick or hover label text.\n *\n * x: milliseconds, the value to convert\n * fmt: optional, an explicit format string (d3 format, even for world calendars)\n * tr: tickround ('y', 'm', 'd', 'M', 'S', or # digits)\n * used if no explicit fmt is provided\n * formatter: locale-aware d3 date formatter for standard gregorian calendars\n * should be the result of exports.getD3DateFormat(gd)\n * calendar: optional string, the world calendar system to use\n *\n * returns the date/time as a string, potentially with the leading portion\n * on a separate line (after '\\n')\n * Note that this means if you provide an explicit format which includes '\\n'\n * the axis may choose to strip things after it when they don't change from\n * one tick to the next (as it does with automatic formatting)\n */\nexports.formatDate = function(x, fmt, tr, formatter, calendar, extraFormat) {\n calendar = isWorldCalendar(calendar) && calendar;\n\n if(!fmt) {\n if(tr === 'y') fmt = extraFormat.year;\n else if(tr === 'm') fmt = extraFormat.month;\n else if(tr === 'd') {\n fmt = extraFormat.dayMonth + '\\n' + extraFormat.year;\n } else {\n return formatTime(x, tr) + '\\n' + modDateFormat(extraFormat.dayMonthYear, x, formatter, calendar);\n }\n }\n\n return modDateFormat(fmt, x, formatter, calendar);\n};\n\n/*\n * incrementMonth: make a new milliseconds value from the given one,\n * having changed the month\n *\n * special case for world calendars: multiples of 12 are treated as years,\n * even for calendar systems that don't have (always or ever) 12 months/year\n * TODO: perhaps we need a different code for year increments to support this?\n *\n * ms (number): the initial millisecond value\n * dMonth (int): the (signed) number of months to shift\n * calendar (string): the calendar system to use\n *\n * changing month does not (and CANNOT) always preserve day, since\n * months have different lengths. The worst example of this is:\n * d = new Date(1970,0,31); d.setMonth(1) -> Feb 31 turns into Mar 3\n *\n * But we want to be able to iterate over the last day of each month,\n * regardless of what its number is.\n * So shift 3 days forward, THEN set the new month, then unshift:\n * 1/31 -> 2/28 (or 29) -> 3/31 -> 4/30 -> ...\n *\n * Note that odd behavior still exists if you start from the 26th-28th:\n * 1/28 -> 2/28 -> 3/31\n * but at least you can't shift any dates into the wrong month,\n * and ticks on these days incrementing by month would be very unusual\n */\nvar THREEDAYS = 3 * ONEDAY;\nexports.incrementMonth = function(ms, dMonth, calendar) {\n calendar = isWorldCalendar(calendar) && calendar;\n\n // pull time out and operate on pure dates, then add time back at the end\n // this gives maximum precision - not that we *normally* care if we're\n // incrementing by month, but better to be safe!\n var timeMs = mod(ms, ONEDAY);\n ms = Math.round(ms - timeMs);\n\n if(calendar) {\n try {\n var dateJD = Math.round(ms / ONEDAY) + EPOCHJD;\n var calInstance = Registry.getComponentMethod('calendars', 'getCal')(calendar);\n var cDate = calInstance.fromJD(dateJD);\n\n if(dMonth % 12) calInstance.add(cDate, dMonth, 'm');\n else calInstance.add(cDate, dMonth / 12, 'y');\n\n return (cDate.toJD() - EPOCHJD) * ONEDAY + timeMs;\n } catch(e) {\n Loggers.error('invalid ms ' + ms + ' in calendar ' + calendar);\n // then keep going in gregorian even though the result will be 'Invalid'\n }\n }\n\n var y = new Date(ms + THREEDAYS);\n return y.setUTCMonth(y.getUTCMonth() + dMonth) + timeMs - THREEDAYS;\n};\n\n/*\n * findExactDates: what fraction of data is exact days, months, or years?\n *\n * data: array of millisecond values\n * calendar (string) the calendar to test against\n */\nexports.findExactDates = function(data, calendar) {\n var exactYears = 0;\n var exactMonths = 0;\n var exactDays = 0;\n var blankCount = 0;\n var d;\n var di;\n\n var calInstance = (\n isWorldCalendar(calendar) &&\n Registry.getComponentMethod('calendars', 'getCal')(calendar)\n );\n\n for(var i = 0; i < data.length; i++) {\n di = data[i];\n\n // not date data at all\n if(!isNumeric(di)) {\n blankCount ++;\n continue;\n }\n\n // not an exact date\n if(di % ONEDAY) continue;\n\n if(calInstance) {\n try {\n d = calInstance.fromJD(di / ONEDAY + EPOCHJD);\n if(d.day() === 1) {\n if(d.month() === 1) exactYears++;\n else exactMonths++;\n } else exactDays++;\n } catch(e) {\n // invalid date in this calendar - ignore it here.\n }\n } else {\n d = new Date(di);\n if(d.getUTCDate() === 1) {\n if(d.getUTCMonth() === 0) exactYears++;\n else exactMonths++;\n } else exactDays++;\n }\n }\n exactMonths += exactYears;\n exactDays += exactMonths;\n\n var dataCount = data.length - blankCount;\n\n return {\n exactYears: exactYears / dataCount,\n exactMonths: exactMonths / dataCount,\n exactDays: exactDays / dataCount\n };\n};\n\n\n/***/ }),\n\n/***/ \"6626\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"0b4f\");\n\n\n/***/ }),\n\n/***/ \"6649\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar hiddenStore = __webpack_require__(\"b332\");\n\nmodule.exports = createStore;\n\nfunction createStore() {\n var key = {};\n\n return function (obj) {\n if ((typeof obj !== 'object' || obj === null) &&\n typeof obj !== 'function'\n ) {\n throw new Error('Weakmap-shim: Key must be object')\n }\n\n var store = obj.valueOf(key);\n return store && store.identity === key ?\n store : hiddenStore(obj, key);\n };\n}\n\n\n/***/ }),\n\n/***/ \"664d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"9509\");\n\n\n/***/ }),\n\n/***/ \"6657\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar extendFlat = __webpack_require__(\"fc26\").extendFlat;\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar dash = __webpack_require__(\"db54\").dash;\nvar fxAttrs = __webpack_require__(\"a462\");\nvar delta = __webpack_require__(\"b8ce\");\n\nvar INCREASING_COLOR = delta.INCREASING.COLOR;\nvar DECREASING_COLOR = delta.DECREASING.COLOR;\n\nvar lineAttrs = scatterAttrs.line;\n\nfunction directionAttrs(lineColorDefault) {\n return {\n line: {\n color: extendFlat({}, lineAttrs.color, {dflt: lineColorDefault}),\n width: lineAttrs.width,\n dash: dash,\n editType: 'style'\n },\n editType: 'style'\n };\n}\n\nmodule.exports = {\n\n x: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n\n open: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n high: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n low: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n close: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n\n line: {\n width: extendFlat({}, lineAttrs.width, {\n \n }),\n dash: extendFlat({}, dash, {\n \n }),\n editType: 'style'\n },\n\n increasing: directionAttrs(INCREASING_COLOR),\n\n decreasing: directionAttrs(DECREASING_COLOR),\n\n text: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n editType: 'calc',\n \n },\n hovertext: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n editType: 'calc',\n \n },\n\n tickwidth: {\n valType: 'number',\n min: 0,\n max: 0.5,\n dflt: 0.3,\n \n editType: 'calc',\n \n },\n\n hoverlabel: extendFlat({}, fxAttrs.hoverlabel, {\n split: {\n valType: 'boolean',\n \n dflt: false,\n editType: 'style',\n \n }\n }),\n};\n\n\n/***/ }),\n\n/***/ \"6672\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar tinycolor = __webpack_require__(\"66cb\");\n\nvar baseTraceAttrs = __webpack_require__(\"a876\");\nvar colorscales = __webpack_require__(\"4852\");\nvar DESELECTDIM = __webpack_require__(\"72a4\").DESELECTDIM;\n\nvar nestedProperty = __webpack_require__(\"74d6\");\nvar counterRegex = __webpack_require__(\"055a\").counter;\nvar modHalf = __webpack_require__(\"d3dc\").modHalf;\nvar isArrayOrTypedArray = __webpack_require__(\"6af8\").isArrayOrTypedArray;\n\nexports.valObjectMeta = {\n data_array: {\n // You can use *dflt=[] to force said array to exist though.\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n // TODO maybe `v: {type: 'float32', vals: [/* ... */]}` also\n if(isArrayOrTypedArray(v)) propOut.set(v);\n else if(dflt !== undefined) propOut.set(dflt);\n }\n },\n enumerated: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(opts.coerceNumber) v = +v;\n if(opts.values.indexOf(v) === -1) propOut.set(dflt);\n else propOut.set(v);\n },\n validateFunction: function(v, opts) {\n if(opts.coerceNumber) v = +v;\n\n var values = opts.values;\n for(var i = 0; i < values.length; i++) {\n var k = String(values[i]);\n\n if((k.charAt(0) === '/' && k.charAt(k.length - 1) === '/')) {\n var regex = new RegExp(k.substr(1, k.length - 2));\n if(regex.test(v)) return true;\n } else if(v === values[i]) return true;\n }\n return false;\n }\n },\n 'boolean': {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n if(v === true || v === false) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n number: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(!isNumeric(v) ||\n (opts.min !== undefined && v < opts.min) ||\n (opts.max !== undefined && v > opts.max)) {\n propOut.set(dflt);\n } else propOut.set(+v);\n }\n },\n integer: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(v % 1 || !isNumeric(v) ||\n (opts.min !== undefined && v < opts.min) ||\n (opts.max !== undefined && v > opts.max)) {\n propOut.set(dflt);\n } else propOut.set(+v);\n }\n },\n string: {\n \n \n // TODO 'values shouldn't be in there (edge case: 'dash' in Scatter)\n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(typeof v !== 'string') {\n var okToCoerce = (typeof v === 'number');\n\n if(opts.strict === true || !okToCoerce) propOut.set(dflt);\n else propOut.set(String(v));\n } else if(opts.noBlank && !v) propOut.set(dflt);\n else propOut.set(v);\n }\n },\n color: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n if(tinycolor(v).isValid()) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n colorlist: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n function isColor(color) {\n return tinycolor(color).isValid();\n }\n if(!Array.isArray(v) || !v.length) propOut.set(dflt);\n else if(v.every(isColor)) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n colorscale: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n propOut.set(colorscales.get(v, dflt));\n }\n },\n angle: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n if(v === 'auto') propOut.set('auto');\n else if(!isNumeric(v)) propOut.set(dflt);\n else propOut.set(modHalf(+v, 360));\n }\n },\n subplotid: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n var regex = opts.regex || counterRegex(dflt);\n if(typeof v === 'string' && regex.test(v)) {\n propOut.set(v);\n return;\n }\n propOut.set(dflt);\n },\n validateFunction: function(v, opts) {\n var dflt = opts.dflt;\n\n if(v === dflt) return true;\n if(typeof v !== 'string') return false;\n if(counterRegex(dflt).test(v)) return true;\n\n return false;\n }\n },\n flaglist: {\n \n \n \n coerceFunction: function(v, propOut, dflt, opts) {\n if(typeof v !== 'string') {\n propOut.set(dflt);\n return;\n }\n if((opts.extras || []).indexOf(v) !== -1) {\n propOut.set(v);\n return;\n }\n var vParts = v.split('+');\n var i = 0;\n while(i < vParts.length) {\n var vi = vParts[i];\n if(opts.flags.indexOf(vi) === -1 || vParts.indexOf(vi) < i) {\n vParts.splice(i, 1);\n } else i++;\n }\n if(!vParts.length) propOut.set(dflt);\n else propOut.set(vParts.join('+'));\n }\n },\n any: {\n \n \n \n coerceFunction: function(v, propOut, dflt) {\n if(v === undefined) propOut.set(dflt);\n else propOut.set(v);\n }\n },\n info_array: {\n \n \n // set `dimensions=2` for a 2D array or '1-2' for either\n // `items` may be a single object instead of an array, in which case\n // `freeLength` must be true.\n // if `dimensions='1-2'` and items is a 1D array, then the value can\n // either be a matching 1D array or an array of such matching 1D arrays\n \n coerceFunction: function(v, propOut, dflt, opts) {\n // simplified coerce function just for array items\n function coercePart(v, opts, dflt) {\n var out;\n var propPart = {set: function(v) { out = v; }};\n\n if(dflt === undefined) dflt = opts.dflt;\n\n exports.valObjectMeta[opts.valType].coerceFunction(v, propPart, dflt, opts);\n\n return out;\n }\n\n var twoD = opts.dimensions === 2 || (opts.dimensions === '1-2' && Array.isArray(v) && Array.isArray(v[0]));\n\n if(!Array.isArray(v)) {\n propOut.set(dflt);\n return;\n }\n\n var items = opts.items;\n var vOut = [];\n var arrayItems = Array.isArray(items);\n var arrayItems2D = arrayItems && twoD && Array.isArray(items[0]);\n var innerItemsOnly = twoD && arrayItems && !arrayItems2D;\n var len = (arrayItems && !innerItemsOnly) ? items.length : v.length;\n\n var i, j, row, item, len2, vNew;\n\n dflt = Array.isArray(dflt) ? dflt : [];\n\n if(twoD) {\n for(i = 0; i < len; i++) {\n vOut[i] = [];\n row = Array.isArray(v[i]) ? v[i] : [];\n if(innerItemsOnly) len2 = items.length;\n else if(arrayItems) len2 = items[i].length;\n else len2 = row.length;\n\n for(j = 0; j < len2; j++) {\n if(innerItemsOnly) item = items[j];\n else if(arrayItems) item = items[i][j];\n else item = items;\n\n vNew = coercePart(row[j], item, (dflt[i] || [])[j]);\n if(vNew !== undefined) vOut[i][j] = vNew;\n }\n }\n } else {\n for(i = 0; i < len; i++) {\n vNew = coercePart(v[i], arrayItems ? items[i] : items, dflt[i]);\n if(vNew !== undefined) vOut[i] = vNew;\n }\n }\n\n propOut.set(vOut);\n },\n validateFunction: function(v, opts) {\n if(!Array.isArray(v)) return false;\n\n var items = opts.items;\n var arrayItems = Array.isArray(items);\n var twoD = opts.dimensions === 2;\n\n // when free length is off, input and declared lengths must match\n if(!opts.freeLength && v.length !== items.length) return false;\n\n // valid when all input items are valid\n for(var i = 0; i < v.length; i++) {\n if(twoD) {\n if(!Array.isArray(v[i]) || (!opts.freeLength && v[i].length !== items[i].length)) {\n return false;\n }\n for(var j = 0; j < v[i].length; j++) {\n if(!validate(v[i][j], arrayItems ? items[i][j] : items)) {\n return false;\n }\n }\n } else if(!validate(v[i], arrayItems ? items[i] : items)) return false;\n }\n\n return true;\n }\n }\n};\n\n/**\n * Ensures that container[attribute] has a valid value.\n *\n * attributes[attribute] is an object with possible keys:\n * - valType: data_array, enumerated, boolean, ... as in valObjectMeta\n * - values: (enumerated only) array of allowed vals\n * - min, max: (number, integer only) inclusive bounds on allowed vals\n * either or both may be omitted\n * - dflt: if attribute is invalid or missing, use this default\n * if dflt is provided as an argument to lib.coerce it takes precedence\n * as a convenience, returns the value it finally set\n */\nexports.coerce = function(containerIn, containerOut, attributes, attribute, dflt) {\n var opts = nestedProperty(attributes, attribute).get();\n var propIn = nestedProperty(containerIn, attribute);\n var propOut = nestedProperty(containerOut, attribute);\n var v = propIn.get();\n\n var template = containerOut._template;\n if(v === undefined && template) {\n v = nestedProperty(template, attribute).get();\n // already used the template value, so short-circuit the second check\n template = 0;\n }\n\n if(dflt === undefined) dflt = opts.dflt;\n\n /**\n * arrayOk: value MAY be an array, then we do no value checking\n * at this point, because it can be more complicated than the\n * individual form (eg. some array vals can be numbers, even if the\n * single values must be color strings)\n */\n if(opts.arrayOk && isArrayOrTypedArray(v)) {\n propOut.set(v);\n return v;\n }\n\n var coerceFunction = exports.valObjectMeta[opts.valType].coerceFunction;\n coerceFunction(v, propOut, dflt, opts);\n\n var out = propOut.get();\n // in case v was provided but invalid, try the template again so it still\n // overrides the regular default\n if(template && out === dflt && !validate(v, opts)) {\n v = nestedProperty(template, attribute).get();\n coerceFunction(v, propOut, dflt, opts);\n out = propOut.get();\n }\n return out;\n};\n\n/**\n * Variation on coerce\n *\n * Uses coerce to get attribute value if user input is valid,\n * returns attribute default if user input it not valid or\n * returns false if there is no user input.\n */\nexports.coerce2 = function(containerIn, containerOut, attributes, attribute, dflt) {\n var propIn = nestedProperty(containerIn, attribute);\n var propOut = exports.coerce(containerIn, containerOut, attributes, attribute, dflt);\n var valIn = propIn.get();\n\n return (valIn !== undefined && valIn !== null) ? propOut : false;\n};\n\n/*\n * Shortcut to coerce the three font attributes\n *\n * 'coerce' is a lib.coerce wrapper with implied first three arguments\n */\nexports.coerceFont = function(coerce, attr, dfltObj) {\n var out = {};\n\n dfltObj = dfltObj || {};\n\n out.family = coerce(attr + '.family', dfltObj.family);\n out.size = coerce(attr + '.size', dfltObj.size);\n out.color = coerce(attr + '.color', dfltObj.color);\n\n return out;\n};\n\n/** Coerce shortcut for 'hoverinfo'\n * handling 1-vs-multi-trace dflt logic\n *\n * @param {object} traceIn : user trace object\n * @param {object} traceOut : full trace object (requires _module ref)\n * @param {object} layoutOut : full layout object (require _dataLength ref)\n * @return {any} : the coerced value\n */\nexports.coerceHoverinfo = function(traceIn, traceOut, layoutOut) {\n var moduleAttrs = traceOut._module.attributes;\n var attrs = moduleAttrs.hoverinfo ? moduleAttrs : baseTraceAttrs;\n\n var valObj = attrs.hoverinfo;\n var dflt;\n\n if(layoutOut._dataLength === 1) {\n var flags = valObj.dflt === 'all' ?\n valObj.flags.slice() :\n valObj.dflt.split('+');\n\n flags.splice(flags.indexOf('name'), 1);\n dflt = flags.join('+');\n }\n\n return exports.coerce(traceIn, traceOut, attrs, 'hoverinfo', dflt);\n};\n\n/** Coerce shortcut for [un]selected.marker.opacity,\n * which has special default logic, to ensure that it corresponds to the\n * default selection behavior while allowing to be overtaken by any other\n * [un]selected attribute.\n *\n * N.B. This must be called *after* coercing all the other [un]selected attrs,\n * to give the intended result.\n *\n * @param {object} traceOut : fullData item\n * @param {function} coerce : lib.coerce wrapper with implied first three arguments\n */\nexports.coerceSelectionMarkerOpacity = function(traceOut, coerce) {\n if(!traceOut.marker) return;\n\n var mo = traceOut.marker.opacity;\n // you can still have a `marker` container with no markers if there's text\n if(mo === undefined) return;\n\n var smoDflt;\n var usmoDflt;\n\n // Don't give [un]selected.marker.opacity a default value if\n // marker.opacity is an array: handle this during style step.\n //\n // Only give [un]selected.marker.opacity a default value if you don't\n // set any other [un]selected attributes.\n if(!isArrayOrTypedArray(mo) && !traceOut.selected && !traceOut.unselected) {\n smoDflt = mo;\n usmoDflt = DESELECTDIM * mo;\n }\n\n coerce('selected.marker.opacity', smoDflt);\n coerce('unselected.marker.opacity', usmoDflt);\n};\n\nfunction validate(value, opts) {\n var valObjectDef = exports.valObjectMeta[opts.valType];\n\n if(opts.arrayOk && isArrayOrTypedArray(value)) return true;\n\n if(valObjectDef.validateFunction) {\n return valObjectDef.validateFunction(value, opts);\n }\n\n var failed = {};\n var out = failed;\n var propMock = { set: function(v) { out = v; } };\n\n // 'failed' just something mutable that won't be === anything else\n\n valObjectDef.coerceFunction(value, propMock, failed, opts);\n return out !== failed;\n}\nexports.validate = validate;\n\n\n/***/ }),\n\n/***/ \"66ac\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bnsub = __webpack_require__(\"9c7c\")\n\nmodule.exports = sub\n\nfunction sub(a, b) {\n var n = a.length\n var r = new Array(n)\n for(var i=0; i= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif ( true && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (true) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {return tinycolor;}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n}\n// Browser: Expose to window\nelse {}\n\n})(Math);\n\n\n/***/ }),\n\n/***/ \"66db\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar subTypes = __webpack_require__(\"de81\");\nvar handleMarkerDefaults = __webpack_require__(\"5047\");\nvar handleLineDefaults = __webpack_require__(\"59be\");\nvar handleLineShapeDefaults = __webpack_require__(\"eb07\");\nvar handleTextDefaults = __webpack_require__(\"e9f7\");\nvar handleFillColorDefaults = __webpack_require__(\"3802\");\nvar PTS_LINESONLY = __webpack_require__(\"de69\").PTS_LINESONLY;\n\nvar attributes = __webpack_require__(\"8a6e\");\n\nfunction supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var len = handleRThetaDefaults(traceIn, traceOut, layout, coerce);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n coerce('thetaunit');\n coerce('mode', len < PTS_LINESONLY ? 'lines+markers' : 'lines');\n coerce('text');\n coerce('hovertext');\n if(traceOut.hoveron !== 'fills') coerce('hovertemplate');\n\n if(subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce('connectgaps');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {gradient: true});\n }\n\n if(subTypes.hasText(traceOut)) {\n coerce('texttemplate');\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n\n var dfltHoverOn = [];\n\n if(subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce('cliponaxis');\n coerce('marker.maxdisplayed');\n dfltHoverOn.push('points');\n }\n\n coerce('fill');\n\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n\n if(traceOut.fill === 'tonext' || traceOut.fill === 'toself') {\n dfltHoverOn.push('fills');\n }\n coerce('hoveron', dfltHoverOn.join('+') || 'points');\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n}\n\nfunction handleRThetaDefaults(traceIn, traceOut, layout, coerce) {\n var r = coerce('r');\n var theta = coerce('theta');\n var len;\n\n if(r) {\n if(theta) {\n len = Math.min(r.length, theta.length);\n } else {\n len = r.length;\n coerce('theta0');\n coerce('dtheta');\n }\n } else {\n if(!theta) return 0;\n len = traceOut.theta.length;\n coerce('r0');\n coerce('dr');\n }\n\n traceOut._length = len;\n return len;\n}\n\nmodule.exports = {\n handleRThetaDefaults: handleRThetaDefaults,\n supplyDefaults: supplyDefaults\n};\n\n\n/***/ }),\n\n/***/ \"6726\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * @module parenthesis\n */\n\nfunction parse (str, opts) {\n\t// pretend non-string parsed per-se\n\tif (typeof str !== 'string') return [str]\n\n\tvar res = [str]\n\n\tif (typeof opts === 'string' || Array.isArray(opts)) {\n\t\topts = {brackets: opts}\n\t}\n\telse if (!opts) opts = {}\n\n\tvar brackets = opts.brackets ? (Array.isArray(opts.brackets) ? opts.brackets : [opts.brackets]) : ['{}', '[]', '()']\n\n\tvar escape = opts.escape || '___'\n\n\tvar flat = !!opts.flat\n\n\tbrackets.forEach(function (bracket) {\n\t\t// create parenthesis regex\n\t\tvar pRE = new RegExp(['\\\\', bracket[0], '[^\\\\', bracket[0], '\\\\', bracket[1], ']*\\\\', bracket[1]].join(''))\n\n\t\tvar ids = []\n\n\t\tfunction replaceToken(token, idx, str){\n\t\t\t// save token to res\n\t\t\tvar refId = res.push(token.slice(bracket[0].length, -bracket[1].length)) - 1\n\n\t\t\tids.push(refId)\n\n\t\t\treturn escape + refId + escape\n\t\t}\n\n\t\tres.forEach(function (str, i) {\n\t\t\tvar prevStr\n\n\t\t\t// replace paren tokens till there’s none\n\t\t\tvar a = 0\n\t\t\twhile (str != prevStr) {\n\t\t\t\tprevStr = str\n\t\t\t\tstr = str.replace(pRE, replaceToken)\n\t\t\t\tif (a++ > 10e3) throw Error('References have circular dependency. Please, check them.')\n\t\t\t}\n\n\t\t\tres[i] = str\n\t\t})\n\n\t\t// wrap found refs to brackets\n\t\tids = ids.reverse()\n\t\tres = res.map(function (str) {\n\t\t\tids.forEach(function (id) {\n\t\t\t\tstr = str.replace(new RegExp('(\\\\' + escape + id + '\\\\' + escape + ')', 'g'), bracket[0] + '$1' + bracket[1])\n\t\t\t})\n\t\t\treturn str\n\t\t})\n\t})\n\n\tvar re = new RegExp('\\\\' + escape + '([0-9]+)' + '\\\\' + escape)\n\n\t// transform references to tree\n\tfunction nest (str, refs, escape) {\n\t\tvar res = [], match\n\n\t\tvar a = 0\n\t\twhile (match = re.exec(str)) {\n\t\t\tif (a++ > 10e3) throw Error('Circular references in parenthesis')\n\n\t\t\tres.push(str.slice(0, match.index))\n\n\t\t\tres.push(nest(refs[match[1]], refs))\n\n\t\t\tstr = str.slice(match.index + match[0].length)\n\t\t}\n\n\t\tres.push(str)\n\n\t\treturn res\n\t}\n\n\treturn flat ? res : nest(res[0], res)\n}\n\nfunction stringify (arg, opts) {\n\tif (opts && opts.flat) {\n\t\tvar escape = opts && opts.escape || '___'\n\n\t\tvar str = arg[0], prevStr\n\n\t\t// pretend bad string stringified with no parentheses\n\t\tif (!str) return ''\n\n\n\t\tvar re = new RegExp('\\\\' + escape + '([0-9]+)' + '\\\\' + escape)\n\n\t\tvar a = 0\n\t\twhile (str != prevStr) {\n\t\t\tif (a++ > 10e3) throw Error('Circular references in ' + arg)\n\t\t\tprevStr = str\n\t\t\tstr = str.replace(re, replaceRef)\n\t\t}\n\n\t\treturn str\n\t}\n\n\treturn arg.reduce(function f (prev, curr) {\n\t\tif (Array.isArray(curr)) {\n\t\t\tcurr = curr.reduce(f, '')\n\t\t}\n\t\treturn prev + curr\n\t}, '')\n\n\tfunction replaceRef(match, idx){\n\t\tif (arg[idx] == null) throw Error('Reference ' + idx + 'is undefined')\n\t\treturn arg[idx]\n\t}\n}\n\nfunction parenthesis (arg, opts) {\n\tif (Array.isArray(arg)) {\n\t\treturn stringify(arg, opts)\n\t}\n\telse {\n\t\treturn parse(arg, opts)\n\t}\n}\n\nparenthesis.parse = parse\nparenthesis.stringify = stringify\n\nmodule.exports = parenthesis\n\n\n/***/ }),\n\n/***/ \"67c4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar axesAttrs = __webpack_require__(\"d798\");\nvar fontAttrs = __webpack_require__(\"9845\");\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\n\nmodule.exports = overrideAll({\n// TODO: only right is supported currently\n// orient: {\n// valType: 'enumerated',\n// \n// values: ['left', 'right', 'top', 'bottom'],\n// dflt: 'right',\n// \n// },\n thicknessmode: {\n valType: 'enumerated',\n values: ['fraction', 'pixels'],\n \n dflt: 'pixels',\n \n },\n thickness: {\n valType: 'number',\n \n min: 0,\n dflt: 30,\n \n },\n lenmode: {\n valType: 'enumerated',\n values: ['fraction', 'pixels'],\n \n dflt: 'fraction',\n \n },\n len: {\n valType: 'number',\n min: 0,\n dflt: 1,\n \n \n },\n x: {\n valType: 'number',\n dflt: 1.02,\n min: -2,\n max: 3,\n \n \n },\n xanchor: {\n valType: 'enumerated',\n values: ['left', 'center', 'right'],\n dflt: 'left',\n \n \n },\n xpad: {\n valType: 'number',\n \n min: 0,\n dflt: 10,\n \n },\n y: {\n valType: 'number',\n \n dflt: 0.5,\n min: -2,\n max: 3,\n \n },\n yanchor: {\n valType: 'enumerated',\n values: ['top', 'middle', 'bottom'],\n \n dflt: 'middle',\n \n },\n ypad: {\n valType: 'number',\n \n min: 0,\n dflt: 10,\n \n },\n // a possible line around the bar itself\n outlinecolor: axesAttrs.linecolor,\n outlinewidth: axesAttrs.linewidth,\n // Should outlinewidth have {dflt: 0} ?\n // another possible line outside the padding and tick labels\n bordercolor: axesAttrs.linecolor,\n borderwidth: {\n valType: 'number',\n \n min: 0,\n dflt: 0,\n \n },\n bgcolor: {\n valType: 'color',\n \n dflt: 'rgba(0,0,0,0)',\n \n },\n // tick and title properties named and function exactly as in axes\n tickmode: axesAttrs.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: extendFlat({}, axesAttrs.ticks, {dflt: ''}),\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n showticklabels: axesAttrs.showticklabels,\n tickfont: fontAttrs({\n \n }),\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n tickprefix: axesAttrs.tickprefix,\n showtickprefix: axesAttrs.showtickprefix,\n ticksuffix: axesAttrs.ticksuffix,\n showticksuffix: axesAttrs.showticksuffix,\n separatethousands: axesAttrs.separatethousands,\n exponentformat: axesAttrs.exponentformat,\n showexponent: axesAttrs.showexponent,\n title: {\n text: {\n valType: 'string',\n \n \n },\n font: fontAttrs({\n \n }),\n side: {\n valType: 'enumerated',\n values: ['right', 'top', 'bottom'],\n \n dflt: 'top',\n \n }\n },\n\n _deprecated: {\n title: {\n valType: 'string',\n \n \n },\n titlefont: fontAttrs({\n \n }),\n titleside: {\n valType: 'enumerated',\n values: ['right', 'top', 'bottom'],\n \n dflt: 'top',\n \n }\n }\n}, 'colorbars', 'from-root');\n\n\n/***/ }),\n\n/***/ \"67f2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar subTypes = __webpack_require__(\"de81\");\nvar handleMarkerDefaults = __webpack_require__(\"5047\");\nvar handleLineDefaults = __webpack_require__(\"59be\");\nvar handleTextDefaults = __webpack_require__(\"e9f7\");\nvar handleFillColorDefaults = __webpack_require__(\"3802\");\nvar attributes = __webpack_require__(\"74b4\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var len = handleLonLatDefaults(traceIn, traceOut, coerce);\n if(!len) {\n traceOut.visible = false;\n return;\n }\n\n coerce('text');\n coerce('texttemplate');\n coerce('hovertext');\n coerce('hovertemplate');\n coerce('mode');\n coerce('below');\n\n if(subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, {noDash: true});\n coerce('connectgaps');\n }\n\n if(subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, {noLine: true});\n\n // array marker.size and marker.color are only supported with circles\n var marker = traceOut.marker;\n if(marker.symbol !== 'circle') {\n if(Lib.isArrayOrTypedArray(marker.size)) marker.size = marker.size[0];\n if(Lib.isArrayOrTypedArray(marker.color)) marker.color = marker.color[0];\n }\n }\n\n if(subTypes.hasText(traceOut)) {\n handleTextDefaults(traceIn, traceOut, layout, coerce, {noSelect: true});\n }\n\n coerce('fill');\n if(traceOut.fill !== 'none') {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n};\n\nfunction handleLonLatDefaults(traceIn, traceOut, coerce) {\n var lon = coerce('lon') || [];\n var lat = coerce('lat') || [];\n var len = Math.min(lon.length, lat.length);\n traceOut._length = len;\n\n return len;\n}\n\n\n/***/ }),\n\n/***/ \"6833\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar tinycolor = __webpack_require__(\"66cb\");\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\n\nexports.coerceString = function(attributeDefinition, value, defaultValue) {\n if(typeof value === 'string') {\n if(value || !attributeDefinition.noBlank) return value;\n } else if(typeof value === 'number' || value === true) {\n if(!attributeDefinition.strict) return String(value);\n }\n\n return (defaultValue !== undefined) ?\n defaultValue :\n attributeDefinition.dflt;\n};\n\nexports.coerceNumber = function(attributeDefinition, value, defaultValue) {\n if(isNumeric(value)) {\n value = +value;\n\n var min = attributeDefinition.min;\n var max = attributeDefinition.max;\n var isOutOfBounds = (min !== undefined && value < min) ||\n (max !== undefined && value > max);\n\n if(!isOutOfBounds) return value;\n }\n\n return (defaultValue !== undefined) ?\n defaultValue :\n attributeDefinition.dflt;\n};\n\nexports.coerceColor = function(attributeDefinition, value, defaultValue) {\n if(tinycolor(value).isValid()) return value;\n\n return (defaultValue !== undefined) ?\n defaultValue :\n attributeDefinition.dflt;\n};\n\nexports.coerceEnumerated = function(attributeDefinition, value, defaultValue) {\n if(attributeDefinition.coerceNumber) value = +value;\n\n if(attributeDefinition.values.indexOf(value) !== -1) return value;\n\n return (defaultValue !== undefined) ?\n defaultValue :\n attributeDefinition.dflt;\n};\n\nexports.getValue = function(arrayOrScalar, index) {\n var value;\n if(!Array.isArray(arrayOrScalar)) value = arrayOrScalar;\n else if(index < arrayOrScalar.length) value = arrayOrScalar[index];\n return value;\n};\n\nexports.getLineWidth = function(trace, di) {\n var w =\n (0 < di.mlw) ? di.mlw :\n !isArrayOrTypedArray(trace.marker.line.width) ? trace.marker.line.width :\n 0;\n\n return w;\n};\n\n\n/***/ }),\n\n/***/ \"6858\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(\"cecf\")(\"forEach\");\n\n\n/***/ }),\n\n/***/ \"68e6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isObject = __webpack_require__(\"2160\");\n\nmodule.exports = function (value) {\n\tif (!isObject(value)) throw new TypeError(value + \" is not an Object\");\n\treturn value;\n};\n\n\n/***/ }),\n\n/***/ \"6921\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar baseAttributes = __webpack_require__(\"a876\");\nvar baseLayoutAttributes = __webpack_require__(\"a685\");\nvar frameAttributes = __webpack_require__(\"a9cb\");\nvar animationAttributes = __webpack_require__(\"5b68\");\nvar configAttributes = __webpack_require__(\"3ff5\").configAttributes;\n\n// polar attributes are not part of the Registry yet\nvar polarAreaAttrs = __webpack_require__(\"fa06\");\nvar polarAxisAttrs = __webpack_require__(\"b7b8\");\n\nvar editTypes = __webpack_require__(\"cb34\");\n\nvar extendFlat = Lib.extendFlat;\nvar extendDeepAll = Lib.extendDeepAll;\nvar isPlainObject = Lib.isPlainObject;\nvar isArrayOrTypedArray = Lib.isArrayOrTypedArray;\nvar nestedProperty = Lib.nestedProperty;\nvar valObjectMeta = Lib.valObjectMeta;\n\nvar IS_SUBPLOT_OBJ = '_isSubplotObj';\nvar IS_LINKED_TO_ARRAY = '_isLinkedToArray';\nvar ARRAY_ATTR_REGEXPS = '_arrayAttrRegexps';\nvar DEPRECATED = '_deprecated';\nvar UNDERSCORE_ATTRS = [IS_SUBPLOT_OBJ, IS_LINKED_TO_ARRAY, ARRAY_ATTR_REGEXPS, DEPRECATED];\n\nexports.IS_SUBPLOT_OBJ = IS_SUBPLOT_OBJ;\nexports.IS_LINKED_TO_ARRAY = IS_LINKED_TO_ARRAY;\nexports.DEPRECATED = DEPRECATED;\nexports.UNDERSCORE_ATTRS = UNDERSCORE_ATTRS;\n\n/** Outputs the full plotly.js plot schema\n *\n * @return {object}\n * - defs\n * - traces\n * - layout\n * - transforms\n * - frames\n * - animations\n * - config\n */\nexports.get = function() {\n var traces = {};\n\n Registry.allTypes.concat('area').forEach(function(type) {\n traces[type] = getTraceAttributes(type);\n });\n\n var transforms = {};\n\n Object.keys(Registry.transformsRegistry).forEach(function(type) {\n transforms[type] = getTransformAttributes(type);\n });\n\n return {\n defs: {\n valObjects: valObjectMeta,\n metaKeys: UNDERSCORE_ATTRS.concat(['description', 'role', 'editType', 'impliedEdits']),\n editType: {\n traces: editTypes.traces,\n layout: editTypes.layout\n },\n impliedEdits: {\n \n }\n },\n\n traces: traces,\n layout: getLayoutAttributes(),\n\n transforms: transforms,\n\n frames: getFramesAttributes(),\n animation: formatAttributes(animationAttributes),\n\n config: formatAttributes(configAttributes)\n };\n};\n\n/**\n * Crawl the attribute tree, recursively calling a callback function\n *\n * @param {object} attrs\n * The node of the attribute tree (e.g. the root) from which recursion originates\n * @param {Function} callback\n * A callback function with the signature:\n * @callback callback\n * @param {object} attr an attribute\n * @param {String} attrName name string\n * @param {object[]} attrs all the attributes\n * @param {Number} level the recursion level, 0 at the root\n * @param {String} fullAttrString full attribute name (ie 'marker.line')\n * @param {Number} [specifiedLevel]\n * The level in the tree, in order to let the callback function detect descend or backtrack,\n * typically unsupplied (implied 0), just used by the self-recursive call.\n * The necessity arises because the tree traversal is not controlled by callback return values.\n * The decision to not use callback return values for controlling tree pruning arose from\n * the goal of keeping the crawler backwards compatible. Observe that one of the pruning conditions\n * precedes the callback call.\n * @param {string} [attrString]\n * the path to the current attribute, as an attribute string (ie 'marker.line')\n * typically unsupplied, but you may supply it if you want to disambiguate which attrs tree you\n * are starting from\n *\n * @return {object} transformOut\n * copy of transformIn that contains attribute defaults\n */\nexports.crawl = function(attrs, callback, specifiedLevel, attrString) {\n var level = specifiedLevel || 0;\n attrString = attrString || '';\n\n Object.keys(attrs).forEach(function(attrName) {\n var attr = attrs[attrName];\n\n if(UNDERSCORE_ATTRS.indexOf(attrName) !== -1) return;\n\n var fullAttrString = (attrString ? attrString + '.' : '') + attrName;\n callback(attr, attrName, attrs, level, fullAttrString);\n\n if(exports.isValObject(attr)) return;\n\n if(isPlainObject(attr) && attrName !== 'impliedEdits') {\n exports.crawl(attr, callback, level + 1, fullAttrString);\n }\n });\n};\n\n/** Is object a value object (or a container object)?\n *\n * @param {object} obj\n * @return {boolean}\n * returns true for a valid value object and\n * false for tree nodes in the attribute hierarchy\n */\nexports.isValObject = function(obj) {\n return obj && obj.valType !== undefined;\n};\n\n/**\n * Find all data array attributes in a given trace object - including\n * `arrayOk` attributes.\n *\n * @param {object} trace\n * full trace object that contains a reference to `_module.attributes`\n *\n * @return {array} arrayAttributes\n * list of array attributes for the given trace\n */\nexports.findArrayAttributes = function(trace) {\n var arrayAttributes = [];\n var stack = [];\n var isArrayStack = [];\n var baseContainer, baseAttrName;\n\n function callback(attr, attrName, attrs, level) {\n stack = stack.slice(0, level).concat([attrName]);\n isArrayStack = isArrayStack.slice(0, level).concat([attr && attr._isLinkedToArray]);\n\n var splittableAttr = (\n attr &&\n (attr.valType === 'data_array' || attr.arrayOk === true) &&\n !(stack[level - 1] === 'colorbar' && (attrName === 'ticktext' || attrName === 'tickvals'))\n );\n\n // Manually exclude 'colorbar.tickvals' and 'colorbar.ticktext' for now\n // which are declared as `valType: 'data_array'` but scale independently of\n // the coordinate arrays.\n //\n // Down the road, we might want to add a schema field (e.g `uncorrelatedArray: true`)\n // to distinguish attributes of the likes.\n\n if(!splittableAttr) return;\n\n crawlIntoTrace(baseContainer, 0, '');\n }\n\n function crawlIntoTrace(container, i, astrPartial) {\n var item = container[stack[i]];\n var newAstrPartial = astrPartial + stack[i];\n if(i === stack.length - 1) {\n if(isArrayOrTypedArray(item)) {\n arrayAttributes.push(baseAttrName + newAstrPartial);\n }\n } else {\n if(isArrayStack[i]) {\n if(Array.isArray(item)) {\n for(var j = 0; j < item.length; j++) {\n if(isPlainObject(item[j])) {\n crawlIntoTrace(item[j], i + 1, newAstrPartial + '[' + j + '].');\n }\n }\n }\n } else if(isPlainObject(item)) {\n crawlIntoTrace(item, i + 1, newAstrPartial + '.');\n }\n }\n }\n\n baseContainer = trace;\n baseAttrName = '';\n exports.crawl(baseAttributes, callback);\n if(trace._module && trace._module.attributes) {\n exports.crawl(trace._module.attributes, callback);\n }\n\n var transforms = trace.transforms;\n if(transforms) {\n for(var i = 0; i < transforms.length; i++) {\n var transform = transforms[i];\n var module = transform._module;\n\n if(module) {\n baseAttrName = 'transforms[' + i + '].';\n baseContainer = transform;\n\n exports.crawl(module.attributes, callback);\n }\n }\n }\n\n return arrayAttributes;\n};\n\n/*\n * Find the valObject for one attribute in an existing trace\n *\n * @param {object} trace\n * full trace object that contains a reference to `_module.attributes`\n * @param {object} parts\n * an array of parts, like ['transforms', 1, 'value']\n * typically from nestedProperty(...).parts\n *\n * @return {object|false}\n * the valObject for this attribute, or the last found parent\n * in some cases the innermost valObject will not exist, for example\n * `valType: 'any'` attributes where we might set a part of the attribute.\n * In that case, stop at the deepest valObject we *do* find.\n */\nexports.getTraceValObject = function(trace, parts) {\n var head = parts[0];\n var i = 1; // index to start recursing from\n var moduleAttrs, valObject;\n\n if(head === 'transforms') {\n if(parts.length === 1) {\n return baseAttributes.transforms;\n }\n var transforms = trace.transforms;\n if(!Array.isArray(transforms) || !transforms.length) return false;\n var tNum = parts[1];\n if(!isIndex(tNum) || tNum >= transforms.length) {\n return false;\n }\n moduleAttrs = (Registry.transformsRegistry[transforms[tNum].type] || {}).attributes;\n valObject = moduleAttrs && moduleAttrs[parts[2]];\n i = 3; // start recursing only inside the transform\n } else if(trace.type === 'area') {\n valObject = polarAreaAttrs[head];\n } else {\n // first look in the module for this trace\n // components have already merged their trace attributes in here\n var _module = trace._module;\n if(!_module) _module = (Registry.modules[trace.type || baseAttributes.type.dflt] || {})._module;\n if(!_module) return false;\n\n moduleAttrs = _module.attributes;\n valObject = moduleAttrs && moduleAttrs[head];\n\n // then look in the subplot attributes\n if(!valObject) {\n var subplotModule = _module.basePlotModule;\n if(subplotModule && subplotModule.attributes) {\n valObject = subplotModule.attributes[head];\n }\n }\n\n // finally look in the global attributes\n if(!valObject) valObject = baseAttributes[head];\n }\n\n return recurseIntoValObject(valObject, parts, i);\n};\n\n/*\n * Find the valObject for one layout attribute\n *\n * @param {array} parts\n * an array of parts, like ['annotations', 1, 'x']\n * typically from nestedProperty(...).parts\n *\n * @return {object|false}\n * the valObject for this attribute, or the last found parent\n * in some cases the innermost valObject will not exist, for example\n * `valType: 'any'` attributes where we might set a part of the attribute.\n * In that case, stop at the deepest valObject we *do* find.\n */\nexports.getLayoutValObject = function(fullLayout, parts) {\n var valObject = layoutHeadAttr(fullLayout, parts[0]);\n\n return recurseIntoValObject(valObject, parts, 1);\n};\n\nfunction layoutHeadAttr(fullLayout, head) {\n var i, key, _module, attributes;\n\n // look for attributes of the subplot types used on the plot\n var basePlotModules = fullLayout._basePlotModules;\n if(basePlotModules) {\n var out;\n for(i = 0; i < basePlotModules.length; i++) {\n _module = basePlotModules[i];\n if(_module.attrRegex && _module.attrRegex.test(head)) {\n // if a module defines overrides, these take precedence\n // initially this is to allow gl2d different editTypes from svg cartesian\n if(_module.layoutAttrOverrides) return _module.layoutAttrOverrides;\n\n // otherwise take the first attributes we find\n if(!out && _module.layoutAttributes) out = _module.layoutAttributes;\n }\n\n // a module can also override the behavior of base (and component) module layout attrs\n // again see gl2d for initial use case\n var baseOverrides = _module.baseLayoutAttrOverrides;\n if(baseOverrides && head in baseOverrides) return baseOverrides[head];\n }\n if(out) return out;\n }\n\n // look for layout attributes contributed by traces on the plot\n var modules = fullLayout._modules;\n if(modules) {\n for(i = 0; i < modules.length; i++) {\n attributes = modules[i].layoutAttributes;\n if(attributes && head in attributes) {\n return attributes[head];\n }\n }\n }\n\n /*\n * Next look in components.\n * Components that define a schema have already merged this into\n * base and subplot attribute defs, so ignore these.\n * Others (older style) all put all their attributes\n * inside a container matching the module `name`\n * eg `attributes` (array) or `legend` (object)\n */\n for(key in Registry.componentsRegistry) {\n _module = Registry.componentsRegistry[key];\n if(_module.name === 'colorscale' && head.indexOf('coloraxis') === 0) {\n return _module.layoutAttributes[head];\n } else if(!_module.schema && (head === _module.name)) {\n return _module.layoutAttributes;\n }\n }\n\n if(head in baseLayoutAttributes) return baseLayoutAttributes[head];\n\n // Polar doesn't populate _modules or _basePlotModules\n // just fall back on these when the others fail\n if(head === 'radialaxis' || head === 'angularaxis') {\n return polarAxisAttrs[head];\n }\n return polarAxisAttrs.layout[head] || false;\n}\n\nfunction recurseIntoValObject(valObject, parts, i) {\n if(!valObject) return false;\n\n if(valObject._isLinkedToArray) {\n // skip array index, abort if we try to dive into an array without an index\n if(isIndex(parts[i])) i++;\n else if(i < parts.length) return false;\n }\n\n // now recurse as far as we can. Occasionally we have an attribute\n // setting an internal part below what's in the schema; just return\n // the innermost schema item we find.\n for(; i < parts.length; i++) {\n var newValObject = valObject[parts[i]];\n if(isPlainObject(newValObject)) valObject = newValObject;\n else break;\n\n if(i === parts.length - 1) break;\n\n if(valObject._isLinkedToArray) {\n i++;\n if(!isIndex(parts[i])) return false;\n } else if(valObject.valType === 'info_array') {\n i++;\n var index = parts[i];\n if(!isIndex(index)) return false;\n\n var items = valObject.items;\n if(Array.isArray(items)) {\n if(index >= items.length) return false;\n if(valObject.dimensions === 2) {\n i++;\n if(parts.length === i) return valObject;\n var index2 = parts[i];\n if(!isIndex(index2)) return false;\n valObject = items[index][index2];\n } else valObject = items[index];\n } else {\n valObject = items;\n }\n }\n }\n\n return valObject;\n}\n\n// note: this is different from Lib.isIndex, this one doesn't accept numeric\n// strings, only actual numbers.\nfunction isIndex(val) {\n return val === Math.round(val) && val >= 0;\n}\n\nfunction getTraceAttributes(type) {\n var _module, basePlotModule;\n\n if(type === 'area') {\n _module = { attributes: polarAreaAttrs };\n basePlotModule = {};\n } else {\n _module = Registry.modules[type]._module,\n basePlotModule = _module.basePlotModule;\n }\n\n var attributes = {};\n\n // make 'type' the first attribute in the object\n attributes.type = null;\n\n var copyBaseAttributes = extendDeepAll({}, baseAttributes);\n var copyModuleAttributes = extendDeepAll({}, _module.attributes);\n\n // prune global-level trace attributes that are already defined in a trace\n exports.crawl(copyModuleAttributes, function(attr, attrName, attrs, level, fullAttrString) {\n nestedProperty(copyBaseAttributes, fullAttrString).set(undefined);\n // Prune undefined attributes\n if(attr === undefined) nestedProperty(copyModuleAttributes, fullAttrString).set(undefined);\n });\n\n // base attributes (same for all trace types)\n extendDeepAll(attributes, copyBaseAttributes);\n\n // prune-out base attributes based on trace module categories\n if(Registry.traceIs(type, 'noOpacity')) {\n delete attributes.opacity;\n }\n if(!Registry.traceIs(type, 'showLegend')) {\n delete attributes.showlegend;\n delete attributes.legendgroup;\n }\n if(Registry.traceIs(type, 'noHover')) {\n delete attributes.hoverinfo;\n delete attributes.hoverlabel;\n }\n if(!_module.selectPoints) {\n delete attributes.selectedpoints;\n }\n\n // module attributes\n extendDeepAll(attributes, copyModuleAttributes);\n\n // subplot attributes\n if(basePlotModule.attributes) {\n extendDeepAll(attributes, basePlotModule.attributes);\n }\n\n // 'type' gets overwritten by baseAttributes; reset it here\n attributes.type = type;\n\n var out = {\n meta: _module.meta || {},\n categories: _module.categories || {},\n animatable: Boolean(_module.animatable),\n type: type,\n attributes: formatAttributes(attributes),\n };\n\n // trace-specific layout attributes\n if(_module.layoutAttributes) {\n var layoutAttributes = {};\n\n extendDeepAll(layoutAttributes, _module.layoutAttributes);\n out.layoutAttributes = formatAttributes(layoutAttributes);\n }\n\n // drop anim:true in non-animatable modules\n if(!_module.animatable) {\n exports.crawl(out, function(attr) {\n if(exports.isValObject(attr) && 'anim' in attr) {\n delete attr.anim;\n }\n });\n }\n\n return out;\n}\n\nfunction getLayoutAttributes() {\n var layoutAttributes = {};\n var key, _module;\n\n // global layout attributes\n extendDeepAll(layoutAttributes, baseLayoutAttributes);\n\n // add base plot module layout attributes\n for(key in Registry.subplotsRegistry) {\n _module = Registry.subplotsRegistry[key];\n\n if(!_module.layoutAttributes) continue;\n\n if(Array.isArray(_module.attr)) {\n for(var i = 0; i < _module.attr.length; i++) {\n handleBasePlotModule(layoutAttributes, _module, _module.attr[i]);\n }\n } else {\n var astr = _module.attr === 'subplot' ? _module.name : _module.attr;\n handleBasePlotModule(layoutAttributes, _module, astr);\n }\n }\n\n // polar layout attributes\n layoutAttributes = assignPolarLayoutAttrs(layoutAttributes);\n\n // add registered components layout attributes\n for(key in Registry.componentsRegistry) {\n _module = Registry.componentsRegistry[key];\n var schema = _module.schema;\n\n if(schema && (schema.subplots || schema.layout)) {\n /*\n * Components with defined schema have already been merged in at register time\n * but a few components define attributes that apply only to xaxis\n * not yaxis (rangeselector, rangeslider) - delete from y schema.\n * Note that the input attributes for xaxis/yaxis are the same object\n * so it's not possible to only add them to xaxis from the start.\n * If we ever have such asymmetry the other way, or anywhere else,\n * we will need to extend both this code and mergeComponentAttrsToSubplot\n * (which will not find yaxis only for example)\n */\n var subplots = schema.subplots;\n if(subplots && subplots.xaxis && !subplots.yaxis) {\n for(var xkey in subplots.xaxis) {\n delete layoutAttributes.yaxis[xkey];\n }\n }\n } else if(_module.name === 'colorscale') {\n extendDeepAll(layoutAttributes, _module.layoutAttributes);\n } else if(_module.layoutAttributes) {\n // older style without schema need to be explicitly merged in now\n insertAttrs(layoutAttributes, _module.layoutAttributes, _module.name);\n }\n }\n\n return {\n layoutAttributes: formatAttributes(layoutAttributes)\n };\n}\n\nfunction getTransformAttributes(type) {\n var _module = Registry.transformsRegistry[type];\n var attributes = extendDeepAll({}, _module.attributes);\n\n // add registered components transform attributes\n Object.keys(Registry.componentsRegistry).forEach(function(k) {\n var _module = Registry.componentsRegistry[k];\n\n if(_module.schema && _module.schema.transforms && _module.schema.transforms[type]) {\n Object.keys(_module.schema.transforms[type]).forEach(function(v) {\n insertAttrs(attributes, _module.schema.transforms[type][v], v);\n });\n }\n });\n\n return {\n attributes: formatAttributes(attributes)\n };\n}\n\nfunction getFramesAttributes() {\n var attrs = {\n frames: extendDeepAll({}, frameAttributes)\n };\n\n formatAttributes(attrs);\n\n return attrs.frames;\n}\n\nfunction formatAttributes(attrs) {\n mergeValTypeAndRole(attrs);\n formatArrayContainers(attrs);\n stringify(attrs);\n\n return attrs;\n}\n\nfunction mergeValTypeAndRole(attrs) {\n function makeSrcAttr(attrName) {\n return {\n valType: 'string',\n \n \n editType: 'none'\n };\n }\n\n function callback(attr, attrName, attrs) {\n if(exports.isValObject(attr)) {\n if(attr.valType === 'data_array') {\n // all 'data_array' attrs have role 'data'\n attr.role = 'data';\n // all 'data_array' attrs have a corresponding 'src' attr\n attrs[attrName + 'src'] = makeSrcAttr(attrName);\n } else if(attr.arrayOk === true) {\n // all 'arrayOk' attrs have a corresponding 'src' attr\n attrs[attrName + 'src'] = makeSrcAttr(attrName);\n }\n } else if(isPlainObject(attr)) {\n // all attrs container objects get role 'object'\n attr.role = 'object';\n }\n }\n\n exports.crawl(attrs, callback);\n}\n\nfunction formatArrayContainers(attrs) {\n function callback(attr, attrName, attrs) {\n if(!attr) return;\n\n var itemName = attr[IS_LINKED_TO_ARRAY];\n\n if(!itemName) return;\n\n delete attr[IS_LINKED_TO_ARRAY];\n\n attrs[attrName] = { items: {} };\n attrs[attrName].items[itemName] = attr;\n attrs[attrName].role = 'object';\n }\n\n exports.crawl(attrs, callback);\n}\n\n// this can take around 10ms and should only be run from PlotSchema.get(),\n// to ensure JSON.stringify(PlotSchema.get()) gives the intended result.\nfunction stringify(attrs) {\n function walk(attr) {\n for(var k in attr) {\n if(isPlainObject(attr[k])) {\n walk(attr[k]);\n } else if(Array.isArray(attr[k])) {\n for(var i = 0; i < attr[k].length; i++) {\n walk(attr[k][i]);\n }\n } else {\n // as JSON.stringify(/test/) // => {}\n if(attr[k] instanceof RegExp) {\n attr[k] = attr[k].toString();\n }\n }\n }\n }\n\n walk(attrs);\n}\n\nfunction assignPolarLayoutAttrs(layoutAttributes) {\n extendFlat(layoutAttributes, {\n radialaxis: polarAxisAttrs.radialaxis,\n angularaxis: polarAxisAttrs.angularaxis\n });\n\n extendFlat(layoutAttributes, polarAxisAttrs.layout);\n\n return layoutAttributes;\n}\n\nfunction handleBasePlotModule(layoutAttributes, _module, astr) {\n var np = nestedProperty(layoutAttributes, astr);\n var attrs = extendDeepAll({}, _module.layoutAttributes);\n\n attrs[IS_SUBPLOT_OBJ] = true;\n np.set(attrs);\n}\n\nfunction insertAttrs(baseAttrs, newAttrs, astr) {\n var np = nestedProperty(baseAttrs, astr);\n\n np.set(extendDeepAll(np.get() || {}, newAttrs));\n}\n\n\n/***/ }),\n\n/***/ \"692b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar objToString = Object.prototype.toString, id = objToString.call(\"\");\n\nmodule.exports = function (value) {\n\treturn (\n\t\ttypeof value === \"string\" ||\n\t\t(value &&\n\t\t\ttypeof value === \"object\" &&\n\t\t\t(value instanceof String || objToString.call(value) === id)) ||\n\t\tfalse\n\t);\n};\n\n\n/***/ }),\n\n/***/ \"6954\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar Colorscale = __webpack_require__(\"c258\");\nvar svgTextUtils = __webpack_require__(\"0379\");\nvar Axes = __webpack_require__(\"0642\");\nvar setConvert = __webpack_require__(\"1a40\");\n\nvar heatmapPlot = __webpack_require__(\"fa8a\");\nvar makeCrossings = __webpack_require__(\"da89\");\nvar findAllPaths = __webpack_require__(\"f50a\");\nvar emptyPathinfo = __webpack_require__(\"3511\");\nvar convertToConstraints = __webpack_require__(\"849d\");\nvar closeBoundaries = __webpack_require__(\"c997\");\nvar constants = __webpack_require__(\"8e43\");\nvar costConstants = constants.LABELOPTIMIZER;\n\nexports.plot = function plot(gd, plotinfo, cdcontours, contourLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n Lib.makeTraceGroups(contourLayer, cdcontours, 'contour').each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n var x = cd0.x;\n var y = cd0.y;\n var contours = trace.contours;\n var pathinfo = emptyPathinfo(contours, plotinfo, cd0);\n\n // use a heatmap to fill - draw it behind the lines\n var heatmapColoringLayer = Lib.ensureSingle(plotGroup, 'g', 'heatmapcoloring');\n var cdheatmaps = [];\n if(contours.coloring === 'heatmap') {\n cdheatmaps = [cd];\n }\n heatmapPlot(gd, plotinfo, cdheatmaps, heatmapColoringLayer);\n\n makeCrossings(pathinfo);\n findAllPaths(pathinfo);\n\n var leftedge = xa.c2p(x[0], true);\n var rightedge = xa.c2p(x[x.length - 1], true);\n var bottomedge = ya.c2p(y[0], true);\n var topedge = ya.c2p(y[y.length - 1], true);\n var perimeter = [\n [leftedge, topedge],\n [rightedge, topedge],\n [rightedge, bottomedge],\n [leftedge, bottomedge]\n ];\n\n var fillPathinfo = pathinfo;\n if(contours.type === 'constraint') {\n // N.B. this also mutates pathinfo\n fillPathinfo = convertToConstraints(pathinfo, contours._operation);\n }\n\n // draw everything\n makeBackground(plotGroup, perimeter, contours);\n makeFills(plotGroup, fillPathinfo, perimeter, contours);\n makeLinesAndLabels(plotGroup, pathinfo, gd, cd0, contours);\n clipGaps(plotGroup, plotinfo, gd, cd0, perimeter);\n });\n};\n\nfunction makeBackground(plotgroup, perimeter, contours) {\n var bggroup = Lib.ensureSingle(plotgroup, 'g', 'contourbg');\n\n var bgfill = bggroup.selectAll('path')\n .data(contours.coloring === 'fill' ? [0] : []);\n bgfill.enter().append('path');\n bgfill.exit().remove();\n bgfill\n .attr('d', 'M' + perimeter.join('L') + 'Z')\n .style('stroke', 'none');\n}\n\nfunction makeFills(plotgroup, pathinfo, perimeter, contours) {\n var hasFills = contours.coloring === 'fill' || (contours.type === 'constraint' && contours._operation !== '=');\n var boundaryPath = 'M' + perimeter.join('L') + 'Z';\n\n // fills prefixBoundary in pathinfo items\n if(hasFills) {\n closeBoundaries(pathinfo, contours);\n }\n\n var fillgroup = Lib.ensureSingle(plotgroup, 'g', 'contourfill');\n\n var fillitems = fillgroup.selectAll('path').data(hasFills ? pathinfo : []);\n fillitems.enter().append('path');\n fillitems.exit().remove();\n fillitems.each(function(pi) {\n // join all paths for this level together into a single path\n // first follow clockwise around the perimeter to close any open paths\n // if the whole perimeter is above this level, start with a path\n // enclosing the whole thing. With all that, the parity should mean\n // that we always fill everything above the contour, nothing below\n var fullpath = (pi.prefixBoundary ? boundaryPath : '') +\n joinAllPaths(pi, perimeter);\n\n if(!fullpath) {\n d3.select(this).remove();\n } else {\n d3.select(this)\n .attr('d', fullpath)\n .style('stroke', 'none');\n }\n });\n}\n\nfunction joinAllPaths(pi, perimeter) {\n var fullpath = '';\n var i = 0;\n var startsleft = pi.edgepaths.map(function(v, i) { return i; });\n var newloop = true;\n var endpt;\n var newendpt;\n var cnt;\n var nexti;\n var possiblei;\n var addpath;\n\n function istop(pt) { return Math.abs(pt[1] - perimeter[0][1]) < 0.01; }\n function isbottom(pt) { return Math.abs(pt[1] - perimeter[2][1]) < 0.01; }\n function isleft(pt) { return Math.abs(pt[0] - perimeter[0][0]) < 0.01; }\n function isright(pt) { return Math.abs(pt[0] - perimeter[2][0]) < 0.01; }\n\n while(startsleft.length) {\n addpath = Drawing.smoothopen(pi.edgepaths[i], pi.smoothing);\n fullpath += newloop ? addpath : addpath.replace(/^M/, 'L');\n startsleft.splice(startsleft.indexOf(i), 1);\n endpt = pi.edgepaths[i][pi.edgepaths[i].length - 1];\n nexti = -1;\n\n // now loop through sides, moving our endpoint until we find a new start\n for(cnt = 0; cnt < 4; cnt++) { // just to prevent infinite loops\n if(!endpt) {\n Lib.log('Missing end?', i, pi);\n break;\n }\n\n if(istop(endpt) && !isright(endpt)) newendpt = perimeter[1]; // right top\n else if(isleft(endpt)) newendpt = perimeter[0]; // left top\n else if(isbottom(endpt)) newendpt = perimeter[3]; // right bottom\n else if(isright(endpt)) newendpt = perimeter[2]; // left bottom\n\n for(possiblei = 0; possiblei < pi.edgepaths.length; possiblei++) {\n var ptNew = pi.edgepaths[possiblei][0];\n // is ptNew on the (horz. or vert.) segment from endpt to newendpt?\n if(Math.abs(endpt[0] - newendpt[0]) < 0.01) {\n if(Math.abs(endpt[0] - ptNew[0]) < 0.01 &&\n (ptNew[1] - endpt[1]) * (newendpt[1] - ptNew[1]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else if(Math.abs(endpt[1] - newendpt[1]) < 0.01) {\n if(Math.abs(endpt[1] - ptNew[1]) < 0.01 &&\n (ptNew[0] - endpt[0]) * (newendpt[0] - ptNew[0]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else {\n Lib.log('endpt to newendpt is not vert. or horz.',\n endpt, newendpt, ptNew);\n }\n }\n\n endpt = newendpt;\n\n if(nexti >= 0) break;\n fullpath += 'L' + newendpt;\n }\n\n if(nexti === pi.edgepaths.length) {\n Lib.log('unclosed perimeter path');\n break;\n }\n\n i = nexti;\n\n // if we closed back on a loop we already included,\n // close it and start a new loop\n newloop = (startsleft.indexOf(i) === -1);\n if(newloop) {\n i = startsleft[0];\n fullpath += 'Z';\n }\n }\n\n // finally add the interior paths\n for(i = 0; i < pi.paths.length; i++) {\n fullpath += Drawing.smoothclosed(pi.paths[i], pi.smoothing);\n }\n\n return fullpath;\n}\n\nfunction makeLinesAndLabels(plotgroup, pathinfo, gd, cd0, contours) {\n var lineContainer = Lib.ensureSingle(plotgroup, 'g', 'contourlines');\n var showLines = contours.showlines !== false;\n var showLabels = contours.showlabels;\n var clipLinesForLabels = showLines && showLabels;\n\n // Even if we're not going to show lines, we need to create them\n // if we're showing labels, because the fill paths include the perimeter\n // so can't be used to position the labels correctly.\n // In this case we'll remove the lines after making the labels.\n var linegroup = exports.createLines(lineContainer, showLines || showLabels, pathinfo);\n\n var lineClip = exports.createLineClip(lineContainer, clipLinesForLabels, gd, cd0.trace.uid);\n\n var labelGroup = plotgroup.selectAll('g.contourlabels')\n .data(showLabels ? [0] : []);\n\n labelGroup.exit().remove();\n\n labelGroup.enter().append('g')\n .classed('contourlabels', true);\n\n if(showLabels) {\n var labelClipPathData = [];\n var labelData = [];\n\n // invalidate the getTextLocation cache in case paths changed\n Lib.clearLocationCache();\n\n var contourFormat = exports.labelFormatter(gd, cd0);\n\n var dummyText = Drawing.tester.append('text')\n .attr('data-notex', 1)\n .call(Drawing.font, contours.labelfont);\n\n var xa = pathinfo[0].xaxis;\n var ya = pathinfo[0].yaxis;\n var xLen = xa._length;\n var yLen = ya._length;\n var xRng = xa.range;\n var yRng = ya.range;\n var xMin = Lib.aggNums(Math.min, null, cd0.x);\n var xMax = Lib.aggNums(Math.max, null, cd0.x);\n var yMin = Lib.aggNums(Math.min, null, cd0.y);\n var yMax = Lib.aggNums(Math.max, null, cd0.y);\n var x0 = Math.max(xa.c2p(xMin, true), 0);\n var x1 = Math.min(xa.c2p(xMax, true), xLen);\n var y0 = Math.max(ya.c2p(yMax, true), 0);\n var y1 = Math.min(ya.c2p(yMin, true), yLen);\n\n // visible bounds of the contour trace (and the midpoints, to\n // help with cost calculations)\n var bounds = {};\n\n if(xRng[0] < xRng[1]) {\n bounds.left = x0;\n bounds.right = x1;\n } else {\n bounds.left = x1;\n bounds.right = x0;\n }\n\n if(yRng[0] < yRng[1]) {\n bounds.top = y0;\n bounds.bottom = y1;\n } else {\n bounds.top = y1;\n bounds.bottom = y0;\n }\n\n bounds.middle = (bounds.top + bounds.bottom) / 2;\n bounds.center = (bounds.left + bounds.right) / 2;\n\n labelClipPathData.push([\n [bounds.left, bounds.top],\n [bounds.right, bounds.top],\n [bounds.right, bounds.bottom],\n [bounds.left, bounds.bottom]\n ]);\n\n var plotDiagonal = Math.sqrt(xLen * xLen + yLen * yLen);\n\n // the path length to use to scale the number of labels to draw:\n var normLength = constants.LABELDISTANCE * plotDiagonal /\n Math.max(1, pathinfo.length / constants.LABELINCREASE);\n\n linegroup.each(function(d) {\n var textOpts = exports.calcTextOpts(d.level, contourFormat, dummyText, gd);\n\n d3.select(this).selectAll('path').each(function() {\n var path = this;\n var pathBounds = Lib.getVisibleSegment(path, bounds, textOpts.height / 2);\n if(!pathBounds) return;\n\n if(pathBounds.len < (textOpts.width + textOpts.height) * constants.LABELMIN) return;\n\n var maxLabels = Math.min(Math.ceil(pathBounds.len / normLength),\n constants.LABELMAX);\n\n for(var i = 0; i < maxLabels; i++) {\n var loc = exports.findBestTextLocation(path, pathBounds, textOpts,\n labelData, bounds);\n\n if(!loc) break;\n\n exports.addLabelData(loc, textOpts, labelData, labelClipPathData);\n }\n });\n });\n\n dummyText.remove();\n\n exports.drawLabels(labelGroup, labelData, gd, lineClip,\n clipLinesForLabels ? labelClipPathData : null);\n }\n\n if(showLabels && !showLines) linegroup.remove();\n}\n\nexports.createLines = function(lineContainer, makeLines, pathinfo) {\n var smoothing = pathinfo[0].smoothing;\n\n var linegroup = lineContainer.selectAll('g.contourlevel')\n .data(makeLines ? pathinfo : []);\n\n linegroup.exit().remove();\n linegroup.enter().append('g')\n .classed('contourlevel', true);\n\n if(makeLines) {\n // pedgepaths / ppaths are used by contourcarpet, for the paths transformed from a/b to x/y\n // edgepaths / paths are used by contour since it's in x/y from the start\n var opencontourlines = linegroup.selectAll('path.openline')\n .data(function(d) { return d.pedgepaths || d.edgepaths; });\n\n opencontourlines.exit().remove();\n opencontourlines.enter().append('path')\n .classed('openline', true);\n\n opencontourlines\n .attr('d', function(d) {\n return Drawing.smoothopen(d, smoothing);\n })\n .style('stroke-miterlimit', 1)\n .style('vector-effect', 'non-scaling-stroke');\n\n var closedcontourlines = linegroup.selectAll('path.closedline')\n .data(function(d) { return d.ppaths || d.paths; });\n\n closedcontourlines.exit().remove();\n closedcontourlines.enter().append('path')\n .classed('closedline', true);\n\n closedcontourlines\n .attr('d', function(d) {\n return Drawing.smoothclosed(d, smoothing);\n })\n .style('stroke-miterlimit', 1)\n .style('vector-effect', 'non-scaling-stroke');\n }\n\n return linegroup;\n};\n\nexports.createLineClip = function(lineContainer, clipLinesForLabels, gd, uid) {\n var clips = gd._fullLayout._clips;\n var clipId = clipLinesForLabels ? ('clipline' + uid) : null;\n\n var lineClip = clips.selectAll('#' + clipId)\n .data(clipLinesForLabels ? [0] : []);\n lineClip.exit().remove();\n\n lineClip.enter().append('clipPath')\n .classed('contourlineclip', true)\n .attr('id', clipId);\n\n Drawing.setClipUrl(lineContainer, clipId, gd);\n\n return lineClip;\n};\n\nexports.labelFormatter = function(gd, cd0) {\n var fullLayout = gd._fullLayout;\n var trace = cd0.trace;\n var contours = trace.contours;\n\n if(contours.labelformat) {\n return fullLayout._d3locale.numberFormat(contours.labelformat);\n } else {\n var formatAxis;\n var cOpts = Colorscale.extractOpts(trace);\n if(cOpts && cOpts.colorbar && cOpts.colorbar._axis) {\n formatAxis = cOpts.colorbar._axis;\n } else {\n formatAxis = {\n type: 'linear',\n _id: 'ycontour',\n showexponent: 'all',\n exponentformat: 'B'\n };\n\n if(contours.type === 'constraint') {\n var value = contours.value;\n if(Array.isArray(value)) {\n formatAxis.range = [value[0], value[value.length - 1]];\n } else formatAxis.range = [value, value];\n } else {\n formatAxis.range = [contours.start, contours.end];\n formatAxis.nticks = (contours.end - contours.start) / contours.size;\n }\n\n if(formatAxis.range[0] === formatAxis.range[1]) {\n formatAxis.range[1] += formatAxis.range[0] || 1;\n }\n if(!formatAxis.nticks) formatAxis.nticks = 1000;\n\n setConvert(formatAxis, fullLayout);\n Axes.prepTicks(formatAxis);\n formatAxis._tmin = null;\n formatAxis._tmax = null;\n }\n return function(v) {\n return Axes.tickText(formatAxis, v).text;\n };\n }\n};\n\nexports.calcTextOpts = function(level, contourFormat, dummyText, gd) {\n var text = contourFormat(level);\n dummyText.text(text)\n .call(svgTextUtils.convertToTspans, gd);\n var bBox = Drawing.bBox(dummyText.node(), true);\n\n return {\n text: text,\n width: bBox.width,\n height: bBox.height,\n level: level,\n dy: (bBox.top + bBox.bottom) / 2\n };\n};\n\nexports.findBestTextLocation = function(path, pathBounds, textOpts, labelData, plotBounds) {\n var textWidth = textOpts.width;\n\n var p0, dp, pMax, pMin, loc;\n if(pathBounds.isClosed) {\n dp = pathBounds.len / costConstants.INITIALSEARCHPOINTS;\n p0 = pathBounds.min + dp / 2;\n pMax = pathBounds.max;\n } else {\n dp = (pathBounds.len - textWidth) / (costConstants.INITIALSEARCHPOINTS + 1);\n p0 = pathBounds.min + dp + textWidth / 2;\n pMax = pathBounds.max - (dp + textWidth) / 2;\n }\n\n var cost = Infinity;\n for(var j = 0; j < costConstants.ITERATIONS; j++) {\n for(var p = p0; p < pMax; p += dp) {\n var newLocation = Lib.getTextLocation(path, pathBounds.total, p, textWidth);\n var newCost = locationCost(newLocation, textOpts, labelData, plotBounds);\n if(newCost < cost) {\n cost = newCost;\n loc = newLocation;\n pMin = p;\n }\n }\n if(cost > costConstants.MAXCOST * 2) break;\n\n // subsequent iterations just look half steps away from the\n // best we found in the previous iteration\n if(j) dp /= 2;\n p0 = pMin - dp / 2;\n pMax = p0 + dp * 1.5;\n }\n if(cost <= costConstants.MAXCOST) return loc;\n};\n\n/*\n * locationCost: a cost function for label locations\n * composed of three kinds of penalty:\n * - for open paths, being close to the end of the path\n * - the angle away from horizontal\n * - being too close to already placed neighbors\n */\nfunction locationCost(loc, textOpts, labelData, bounds) {\n var halfWidth = textOpts.width / 2;\n var halfHeight = textOpts.height / 2;\n var x = loc.x;\n var y = loc.y;\n var theta = loc.theta;\n var dx = Math.cos(theta) * halfWidth;\n var dy = Math.sin(theta) * halfWidth;\n\n // cost for being near an edge\n var normX = ((x > bounds.center) ? (bounds.right - x) : (x - bounds.left)) /\n (dx + Math.abs(Math.sin(theta) * halfHeight));\n var normY = ((y > bounds.middle) ? (bounds.bottom - y) : (y - bounds.top)) /\n (Math.abs(dy) + Math.cos(theta) * halfHeight);\n if(normX < 1 || normY < 1) return Infinity;\n var cost = costConstants.EDGECOST * (1 / (normX - 1) + 1 / (normY - 1));\n\n // cost for not being horizontal\n cost += costConstants.ANGLECOST * theta * theta;\n\n // cost for being close to other labels\n var x1 = x - dx;\n var y1 = y - dy;\n var x2 = x + dx;\n var y2 = y + dy;\n for(var i = 0; i < labelData.length; i++) {\n var labeli = labelData[i];\n var dxd = Math.cos(labeli.theta) * labeli.width / 2;\n var dyd = Math.sin(labeli.theta) * labeli.width / 2;\n var dist = Lib.segmentDistance(\n x1, y1,\n x2, y2,\n labeli.x - dxd, labeli.y - dyd,\n labeli.x + dxd, labeli.y + dyd\n ) * 2 / (textOpts.height + labeli.height);\n\n var sameLevel = labeli.level === textOpts.level;\n var distOffset = sameLevel ? costConstants.SAMELEVELDISTANCE : 1;\n\n if(dist <= distOffset) return Infinity;\n\n var distFactor = costConstants.NEIGHBORCOST *\n (sameLevel ? costConstants.SAMELEVELFACTOR : 1);\n\n cost += distFactor / (dist - distOffset);\n }\n\n return cost;\n}\n\nexports.addLabelData = function(loc, textOpts, labelData, labelClipPathData) {\n var halfWidth = textOpts.width / 2;\n var halfHeight = textOpts.height / 2;\n\n var x = loc.x;\n var y = loc.y;\n var theta = loc.theta;\n\n var sin = Math.sin(theta);\n var cos = Math.cos(theta);\n var dxw = halfWidth * cos;\n var dxh = halfHeight * sin;\n var dyw = halfWidth * sin;\n var dyh = -halfHeight * cos;\n var bBoxPts = [\n [x - dxw - dxh, y - dyw - dyh],\n [x + dxw - dxh, y + dyw - dyh],\n [x + dxw + dxh, y + dyw + dyh],\n [x - dxw + dxh, y - dyw + dyh],\n ];\n\n labelData.push({\n text: textOpts.text,\n x: x,\n y: y,\n dy: textOpts.dy,\n theta: theta,\n level: textOpts.level,\n width: textOpts.width,\n height: textOpts.height\n });\n\n labelClipPathData.push(bBoxPts);\n};\n\nexports.drawLabels = function(labelGroup, labelData, gd, lineClip, labelClipPathData) {\n var labels = labelGroup.selectAll('text')\n .data(labelData, function(d) {\n return d.text + ',' + d.x + ',' + d.y + ',' + d.theta;\n });\n\n labels.exit().remove();\n\n labels.enter().append('text')\n .attr({\n 'data-notex': 1,\n 'text-anchor': 'middle'\n })\n .each(function(d) {\n var x = d.x + Math.sin(d.theta) * d.dy;\n var y = d.y - Math.cos(d.theta) * d.dy;\n d3.select(this)\n .text(d.text)\n .attr({\n x: x,\n y: y,\n transform: 'rotate(' + (180 * d.theta / Math.PI) + ' ' + x + ' ' + y + ')'\n })\n .call(svgTextUtils.convertToTspans, gd);\n });\n\n if(labelClipPathData) {\n var clipPath = '';\n for(var i = 0; i < labelClipPathData.length; i++) {\n clipPath += 'M' + labelClipPathData[i].join('L') + 'Z';\n }\n\n var lineClipPath = Lib.ensureSingle(lineClip, 'path', '');\n lineClipPath.attr('d', clipPath);\n }\n};\n\nfunction clipGaps(plotGroup, plotinfo, gd, cd0, perimeter) {\n var trace = cd0.trace;\n var clips = gd._fullLayout._clips;\n var clipId = 'clip' + trace.uid;\n\n var clipPath = clips.selectAll('#' + clipId)\n .data(trace.connectgaps ? [] : [0]);\n clipPath.enter().append('clipPath')\n .classed('contourclip', true)\n .attr('id', clipId);\n clipPath.exit().remove();\n\n if(trace.connectgaps === false) {\n var clipPathInfo = {\n // fraction of the way from missing to present point\n // to draw the boundary.\n // if you make this 1 (or 1-epsilon) then a point in\n // a sea of missing data will disappear entirely.\n level: 0.9,\n crossings: {},\n starts: [],\n edgepaths: [],\n paths: [],\n xaxis: plotinfo.xaxis,\n yaxis: plotinfo.yaxis,\n x: cd0.x,\n y: cd0.y,\n // 0 = no data, 1 = data\n z: makeClipMask(cd0),\n smoothing: 0\n };\n\n makeCrossings([clipPathInfo]);\n findAllPaths([clipPathInfo]);\n closeBoundaries([clipPathInfo], {type: 'levels'});\n\n var path = Lib.ensureSingle(clipPath, 'path', '');\n path.attr('d',\n (clipPathInfo.prefixBoundary ? 'M' + perimeter.join('L') + 'Z' : '') +\n joinAllPaths(clipPathInfo, perimeter)\n );\n } else clipId = null;\n\n Drawing.setClipUrl(plotGroup, clipId, gd);\n}\n\nfunction makeClipMask(cd0) {\n var empties = cd0.trace._emptypoints;\n var z = [];\n var m = cd0.z.length;\n var n = cd0.z[0].length;\n var i;\n var row = [];\n var emptyPoint;\n\n for(i = 0; i < n; i++) row.push(1);\n for(i = 0; i < m; i++) z.push(row.slice());\n for(i = 0; i < empties.length; i++) {\n emptyPoint = empties[i];\n z[emptyPoint[0]][emptyPoint[1]] = 0;\n }\n // save this mask to determine whether to show this data in hover\n cd0.zmask = z;\n return z;\n}\n\n\n/***/ }),\n\n/***/ \"6962\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Registry = __webpack_require__(\"371e\");\nvar appendArrayPointValue = __webpack_require__(\"c4c7\").appendArrayPointValue;\nvar Fx = __webpack_require__(\"a5c4\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Events = __webpack_require__(\"8741\");\n\nvar helpers = __webpack_require__(\"fb56\");\nvar pieHelpers = __webpack_require__(\"59e0\");\n\nvar formatValue = pieHelpers.formatPieValue;\n\nmodule.exports = function attachFxHandlers(sliceTop, entry, gd, cd, opts) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hierarchy = cd0.hierarchy;\n\n var isSunburst = trace.type === 'sunburst';\n var isTreemap = trace.type === 'treemap';\n\n // hover state vars\n // have we drawn a hover label, so it should be cleared later\n if(!('_hasHoverLabel' in trace)) trace._hasHoverLabel = false;\n // have we emitted a hover event, so later an unhover event should be emitted\n // note that click events do not depend on this - you can still get them\n // with hovermode: false or if you were earlier dragging, then clicked\n // in the same slice that you moused up in\n if(!('_hasHoverEvent' in trace)) trace._hasHoverEvent = false;\n\n var onMouseOver = function(pt) {\n var fullLayoutNow = gd._fullLayout;\n\n if(gd._dragging || fullLayoutNow.hovermode === false) return;\n\n var traceNow = gd._fullData[trace.index];\n var cdi = pt.data.data;\n var ptNumber = cdi.i;\n var isRoot = helpers.isHierarchyRoot(pt);\n var parent = helpers.getParent(hierarchy, pt);\n\n var val = helpers.getValue(pt);\n\n var _cast = function(astr) {\n return Lib.castOption(traceNow, ptNumber, astr);\n };\n\n var hovertemplate = _cast('hovertemplate');\n var hoverinfo = Fx.castHoverinfo(traceNow, fullLayoutNow, ptNumber);\n var separators = fullLayoutNow.separators;\n\n if(hovertemplate || (hoverinfo && hoverinfo !== 'none' && hoverinfo !== 'skip')) {\n var hoverCenterX;\n var hoverCenterY;\n if(isSunburst) {\n hoverCenterX = cd0.cx + pt.pxmid[0] * (1 - pt.rInscribed);\n hoverCenterY = cd0.cy + pt.pxmid[1] * (1 - pt.rInscribed);\n }\n if(isTreemap) {\n hoverCenterX = pt._hoverX;\n hoverCenterY = pt._hoverY;\n }\n\n var hoverPt = {};\n var parts = [];\n var thisText = [];\n var hasFlag = function(flag) { return parts.indexOf(flag) !== -1; };\n\n if(hoverinfo) {\n parts = hoverinfo === 'all' ?\n traceNow._module.attributes.hoverinfo.flags :\n hoverinfo.split('+');\n }\n\n hoverPt.label = cdi.label;\n if(hasFlag('label') && hoverPt.label) thisText.push(hoverPt.label);\n\n if(cdi.hasOwnProperty('v')) {\n hoverPt.value = cdi.v;\n hoverPt.valueLabel = formatValue(hoverPt.value, separators);\n if(hasFlag('value')) thisText.push(hoverPt.valueLabel);\n }\n\n hoverPt.currentPath = pt.currentPath = helpers.getPath(pt.data);\n if(hasFlag('current path') && !isRoot) {\n thisText.push(hoverPt.currentPath);\n }\n\n var tx;\n var allPercents = [];\n var insertPercent = function() {\n if(allPercents.indexOf(tx) === -1) { // no need to add redundant info\n thisText.push(tx);\n allPercents.push(tx);\n }\n };\n\n hoverPt.percentParent = pt.percentParent = val / helpers.getValue(parent);\n hoverPt.parent = pt.parentString = helpers.getPtLabel(parent);\n if(hasFlag('percent parent')) {\n tx = helpers.formatPercent(hoverPt.percentParent, separators) + ' of ' + hoverPt.parent;\n insertPercent();\n }\n\n hoverPt.percentEntry = pt.percentEntry = val / helpers.getValue(entry);\n hoverPt.entry = pt.entry = helpers.getPtLabel(entry);\n if(hasFlag('percent entry') && !isRoot && !pt.onPathbar) {\n tx = helpers.formatPercent(hoverPt.percentEntry, separators) + ' of ' + hoverPt.entry;\n insertPercent();\n }\n\n hoverPt.percentRoot = pt.percentRoot = val / helpers.getValue(hierarchy);\n hoverPt.root = pt.root = helpers.getPtLabel(hierarchy);\n if(hasFlag('percent root') && !isRoot) {\n tx = helpers.formatPercent(hoverPt.percentRoot, separators) + ' of ' + hoverPt.root;\n insertPercent();\n }\n\n hoverPt.text = _cast('hovertext') || _cast('text');\n if(hasFlag('text')) {\n tx = hoverPt.text;\n if(Lib.isValidTextValue(tx)) thisText.push(tx);\n }\n\n var hoverItems = {\n trace: traceNow,\n y: hoverCenterY,\n text: thisText.join('
'),\n name: (hovertemplate || hasFlag('name')) ? traceNow.name : undefined,\n color: _cast('hoverlabel.bgcolor') || cdi.color,\n borderColor: _cast('hoverlabel.bordercolor'),\n fontFamily: _cast('hoverlabel.font.family'),\n fontSize: _cast('hoverlabel.font.size'),\n fontColor: _cast('hoverlabel.font.color'),\n nameLength: _cast('hoverlabel.namelength'),\n textAlign: _cast('hoverlabel.align'),\n hovertemplate: hovertemplate,\n hovertemplateLabels: hoverPt,\n eventData: [makeEventData(pt, traceNow, opts.eventDataKeys)]\n };\n\n if(isSunburst) {\n hoverItems.x0 = hoverCenterX - pt.rInscribed * pt.rpx1;\n hoverItems.x1 = hoverCenterX + pt.rInscribed * pt.rpx1;\n hoverItems.idealAlign = pt.pxmid[0] < 0 ? 'left' : 'right';\n }\n if(isTreemap) {\n hoverItems.x = hoverCenterX;\n hoverItems.idealAlign = hoverCenterX < 0 ? 'left' : 'right';\n }\n\n Fx.loneHover(hoverItems, {\n container: fullLayoutNow._hoverlayer.node(),\n outerContainer: fullLayoutNow._paper.node(),\n gd: gd\n });\n\n trace._hasHoverLabel = true;\n }\n\n if(isTreemap) {\n var slice = sliceTop.select('path.surface');\n opts.styleOne(slice, pt, traceNow, {\n hovered: true\n });\n }\n\n trace._hasHoverEvent = true;\n gd.emit('plotly_hover', {\n points: [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n });\n };\n\n var onMouseOut = function(evt) {\n var fullLayoutNow = gd._fullLayout;\n var traceNow = gd._fullData[trace.index];\n var pt = d3.select(this).datum();\n\n if(trace._hasHoverEvent) {\n evt.originalEvent = d3.event;\n gd.emit('plotly_unhover', {\n points: [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n });\n trace._hasHoverEvent = false;\n }\n\n if(trace._hasHoverLabel) {\n Fx.loneUnhover(fullLayoutNow._hoverlayer.node());\n trace._hasHoverLabel = false;\n }\n\n if(isTreemap) {\n var slice = sliceTop.select('path.surface');\n opts.styleOne(slice, pt, traceNow, {\n hovered: false\n });\n }\n };\n\n var onClick = function(pt) {\n // TODO: this does not support right-click. If we want to support it, we\n // would likely need to change pie to use dragElement instead of straight\n // mapbox event binding. Or perhaps better, make a simple wrapper with the\n // right mousedown, mousemove, and mouseup handlers just for a left/right click\n // mapbox would use this too.\n var fullLayoutNow = gd._fullLayout;\n var traceNow = gd._fullData[trace.index];\n\n var noTransition = isSunburst && (helpers.isHierarchyRoot(pt) || helpers.isLeaf(pt));\n\n var id = helpers.getPtId(pt);\n var nextEntry = helpers.isEntry(pt) ?\n helpers.findEntryWithChild(hierarchy, id) :\n helpers.findEntryWithLevel(hierarchy, id);\n var nextLevel = helpers.getPtId(nextEntry);\n\n var typeClickEvtData = {\n points: [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n };\n if(!noTransition) typeClickEvtData.nextLevel = nextLevel;\n\n var clickVal = Events.triggerHandler(gd, 'plotly_' + trace.type + 'click', typeClickEvtData);\n\n if(clickVal !== false && fullLayoutNow.hovermode) {\n gd._hoverdata = [makeEventData(pt, traceNow, opts.eventDataKeys)];\n Fx.click(gd, d3.event);\n }\n\n // if click does not trigger a transition, we're done!\n if(noTransition) return;\n\n // if custom handler returns false, we're done!\n if(clickVal === false) return;\n\n // skip if triggered from dragging a nearby cartesian subplot\n if(gd._dragging) return;\n\n // skip during transitions, to avoid potential bugs\n // we could remove this check later\n if(gd._transitioning) return;\n\n // store 'old' level in guiEdit stash, so that subsequent Plotly.react\n // calls with the same uirevision can start from the same entry\n Registry.call('_storeDirectGUIEdit', traceNow, fullLayoutNow._tracePreGUI[traceNow.uid], {\n level: traceNow.level\n });\n\n var frame = {\n data: [{level: nextLevel}],\n traces: [trace.index]\n };\n\n var animOpts = {\n frame: {\n redraw: false,\n duration: opts.transitionTime\n },\n transition: {\n duration: opts.transitionTime,\n easing: opts.transitionEasing\n },\n mode: 'immediate',\n fromcurrent: true\n };\n\n Fx.loneUnhover(fullLayoutNow._hoverlayer.node());\n Registry.call('animate', gd, frame, animOpts);\n };\n\n sliceTop.on('mouseover', onMouseOver);\n sliceTop.on('mouseout', onMouseOut);\n sliceTop.on('click', onClick);\n};\n\nfunction makeEventData(pt, trace, keys) {\n var cdi = pt.data.data;\n\n var out = {\n curveNumber: trace.index,\n pointNumber: cdi.i,\n data: trace._input,\n fullData: trace,\n\n // TODO more things like 'children', 'siblings', 'hierarchy?\n };\n\n for(var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if(key in pt) out[key] = pt[key];\n }\n // handle special case of parent\n if('parentString' in pt && !helpers.isHierarchyRoot(pt)) out.parent = pt.parentString;\n\n appendArrayPointValue(out, trace, cdi.i);\n\n return out;\n}\n\n\n/***/ }),\n\n/***/ \"69f1\":\n/***/ (function(module, exports) {\n\n// transliterated from the python snippet here:\n// http://en.wikipedia.org/wiki/Lanczos_approximation\n\nvar g = 7;\nvar p = [\n 0.99999999999980993,\n 676.5203681218851,\n -1259.1392167224028,\n 771.32342877765313,\n -176.61502916214059,\n 12.507343278686905,\n -0.13857109526572012,\n 9.9843695780195716e-6,\n 1.5056327351493116e-7\n];\n\nvar g_ln = 607/128;\nvar p_ln = [\n 0.99999999999999709182,\n 57.156235665862923517,\n -59.597960355475491248,\n 14.136097974741747174,\n -0.49191381609762019978,\n 0.33994649984811888699e-4,\n 0.46523628927048575665e-4,\n -0.98374475304879564677e-4,\n 0.15808870322491248884e-3,\n -0.21026444172410488319e-3,\n 0.21743961811521264320e-3,\n -0.16431810653676389022e-3,\n 0.84418223983852743293e-4,\n -0.26190838401581408670e-4,\n 0.36899182659531622704e-5\n];\n\n// Spouge approximation (suitable for large arguments)\nfunction lngamma(z) {\n\n if(z < 0) return Number('0/0');\n var x = p_ln[0];\n for(var i = p_ln.length - 1; i > 0; --i) x += p_ln[i] / (z + i);\n var t = z + g_ln + 0.5;\n return .5*Math.log(2*Math.PI)+(z+.5)*Math.log(t)-t+Math.log(x)-Math.log(z);\n}\n\nmodule.exports = function gamma (z) {\n if (z < 0.5) {\n return Math.PI / (Math.sin(Math.PI * z) * gamma(1 - z));\n }\n else if(z > 100) return Math.exp(lngamma(z));\n else {\n z -= 1;\n var x = p[0];\n for (var i = 1; i < g + 2; i++) {\n x += p[i] / (z + i);\n }\n var t = z + g + 0.5;\n\n return Math.sqrt(2 * Math.PI)\n * Math.pow(t, z + 0.5)\n * Math.exp(-t)\n * x\n ;\n }\n};\n\nmodule.exports.log = lngamma;\n\n\n/***/ }),\n\n/***/ \"69f3\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(\"7f9a\");\nvar global = __webpack_require__(\"da84\");\nvar isObject = __webpack_require__(\"861d\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar objectHas = __webpack_require__(\"5135\");\nvar sharedKey = __webpack_require__(\"f772\");\nvar hiddenKeys = __webpack_require__(\"d012\");\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n\n/***/ \"6a08\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n// Requirements\n// ============\nvar wrap = __webpack_require__(\"0a3e\").wrap;\nvar hasColorscale = __webpack_require__(\"215c\").hasColorscale;\nvar colorscaleCalc = __webpack_require__(\"3aa8\");\nvar filterUnique = __webpack_require__(\"5567\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar Lib = __webpack_require__(\"fc26\");\n\n/**\n * Create a wrapped ParcatsModel object from trace\n *\n * Note: trace defaults have already been applied\n * @param {Object} gd\n * @param {Object} trace\n * @return {Array.}\n */\nmodule.exports = function calc(gd, trace) {\n var visibleDims = Lib.filterVisible(trace.dimensions);\n\n if(visibleDims.length === 0) return [];\n\n var uniqueInfoDims = visibleDims.map(function(dim) {\n var categoryValues;\n if(dim.categoryorder === 'trace') {\n // Use order of first occurrence in trace\n categoryValues = null;\n } else if(dim.categoryorder === 'array') {\n // Use categories specified in `categoryarray` first,\n // then add extra to the end in trace order\n categoryValues = dim.categoryarray;\n } else {\n // Get all categories up front so we can order them\n // Should we check for numbers as sort numerically?\n categoryValues = filterUnique(dim.values).sort();\n if(dim.categoryorder === 'category descending') {\n categoryValues = categoryValues.reverse();\n }\n }\n return getUniqueInfo(dim.values, categoryValues);\n });\n\n var counts,\n count,\n totalCount;\n if(Lib.isArrayOrTypedArray(trace.counts)) {\n counts = trace.counts;\n } else {\n counts = [trace.counts];\n }\n\n validateDimensionDisplayInds(visibleDims);\n\n visibleDims.forEach(function(dim, dimInd) {\n validateCategoryProperties(dim, uniqueInfoDims[dimInd]);\n });\n\n // Handle path colors\n // ------------------\n var line = trace.line;\n var markerColorscale;\n\n // Process colorscale\n if(line) {\n if(hasColorscale(trace, 'line')) {\n colorscaleCalc(gd, trace, {\n vals: trace.line.color,\n containerStr: 'line',\n cLetter: 'c'\n });\n }\n markerColorscale = Drawing.tryColorscale(line);\n } else {\n markerColorscale = Lib.identity;\n }\n\n // Build color generation function\n function getMarkerColorInfo(index) {\n var value, rawColor;\n if(Lib.isArrayOrTypedArray(line.color)) {\n value = line.color[index % line.color.length];\n rawColor = value;\n } else {\n value = line.color;\n }\n\n return {color: markerColorscale(value), rawColor: rawColor};\n }\n\n // Number of values and counts\n // ---------------------------\n var numValues = visibleDims[0].values.length;\n\n // Build path info\n // ---------------\n // Mapping from category inds to PathModel objects\n var pathModels = {};\n\n // Category inds array for each dimension\n var categoryIndsDims = uniqueInfoDims.map(function(di) {return di.inds;});\n\n // Initialize total count\n totalCount = 0;\n var valueInd;\n var d;\n\n for(valueInd = 0; valueInd < numValues; valueInd++) {\n // Category inds for this input value across dimensions\n var categoryIndsPath = [];\n for(d = 0; d < categoryIndsDims.length; d++) {\n categoryIndsPath.push(categoryIndsDims[d][valueInd]);\n }\n\n // Count\n count = counts[valueInd % counts.length];\n\n // Update total count\n totalCount += count;\n\n // Path color\n var pathColorInfo = getMarkerColorInfo(valueInd);\n\n // path key\n var pathKey = categoryIndsPath + '-' + pathColorInfo.rawColor;\n\n // Create / Update PathModel\n if(pathModels[pathKey] === undefined) {\n pathModels[pathKey] = createPathModel(categoryIndsPath,\n pathColorInfo.color,\n pathColorInfo.rawColor);\n }\n updatePathModel(pathModels[pathKey], valueInd, count);\n }\n\n var dimensionModels = visibleDims.map(function(di, i) {\n return createDimensionModel(i, di._index, di._displayindex, di.label, totalCount);\n });\n\n\n for(valueInd = 0; valueInd < numValues; valueInd++) {\n count = counts[valueInd % counts.length];\n\n for(d = 0; d < dimensionModels.length; d++) {\n var containerInd = dimensionModels[d].containerInd;\n var catInd = uniqueInfoDims[d].inds[valueInd];\n var cats = dimensionModels[d].categories;\n\n if(cats[catInd] === undefined) {\n var catValue = trace.dimensions[containerInd]._categoryarray[catInd];\n var catLabel = trace.dimensions[containerInd]._ticktext[catInd];\n cats[catInd] = createCategoryModel(d, catInd, catValue, catLabel);\n }\n\n updateCategoryModel(cats[catInd], valueInd, count);\n }\n }\n\n // Compute unique\n return wrap(createParcatsModel(dimensionModels, pathModels, totalCount));\n};\n\n// Models\n// ======\n\n// Parcats Model\n// -------------\n/**\n * @typedef {Object} ParcatsModel\n * Object containing calculated information about a parcats trace\n *\n * @property {Array.} dimensions\n * Array of dimension models\n * @property {Object.} paths\n * Dictionary from category inds string (e.g. \"1,2,1,1\") to path model\n * @property {Number} maxCats\n * The maximum number of categories of any dimension in the diagram\n * @property {Number} count\n * Total number of input values\n * @property {Object} trace\n */\n\n/**\n * Create and new ParcatsModel object\n * @param {Array.} dimensions\n * @param {Object.} paths\n * @param {Number} count\n * @return {ParcatsModel}\n */\nfunction createParcatsModel(dimensions, paths, count) {\n var maxCats = dimensions\n .map(function(d) {return d.categories.length;})\n .reduce(function(v1, v2) {return Math.max(v1, v2);});\n return {dimensions: dimensions, paths: paths, trace: undefined, maxCats: maxCats, count: count};\n}\n\n// Dimension Model\n// ---------------\n/**\n * @typedef {Object} DimensionModel\n * Object containing calculated information about a single dimension\n *\n * @property {Number} dimensionInd\n * The index of this dimension among the *visible* dimensions\n * @property {Number} containerInd\n * The index of this dimension in the original dimensions container,\n * irrespective of dimension visibility\n * @property {Number} displayInd\n * The display index of this dimension (where 0 is the left most dimension)\n * @property {String} dimensionLabel\n * The label of this dimension\n * @property {Number} count\n * Total number of input values\n * @property {Array.} categories\n * @property {Number|null} dragX\n * The x position of dimension that is currently being dragged. null if not being dragged\n */\n\n/**\n * Create and new DimensionModel object with an empty categories array\n * @param {Number} dimensionInd\n * @param {Number} containerInd\n * @param {Number} displayInd\n * @param {String} dimensionLabel\n * @param {Number} count\n * Total number of input values\n * @return {DimensionModel}\n */\nfunction createDimensionModel(dimensionInd, containerInd, displayInd, dimensionLabel, count) {\n return {\n dimensionInd: dimensionInd,\n containerInd: containerInd,\n displayInd: displayInd,\n dimensionLabel: dimensionLabel,\n count: count,\n categories: [],\n dragX: null\n };\n}\n\n// Category Model\n// --------------\n/**\n * @typedef {Object} CategoryModel\n * Object containing calculated information about a single category.\n *\n * @property {Number} dimensionInd\n * The index of this categories dimension\n * @property {Number} categoryInd\n * The index of this category\n * @property {Number} displayInd\n * The display index of this category (where 0 is the topmost category)\n * @property {String} categoryLabel\n * The name of this category\n * @property categoryValue: Raw value of the category\n * @property {Array} valueInds\n * Array of indices (into the original value array) of all samples in this category\n * @property {Number} count\n * The number of elements from the original array in this path\n * @property {Number|null} dragY\n * The y position of category that is currently being dragged. null if not being dragged\n */\n\n/**\n * Create and return a new CategoryModel object\n * @param {Number} dimensionInd\n * @param {Number} categoryInd\n * The display index of this category (where 0 is the topmost category)\n * @param {String} categoryValue\n * @param {String} categoryLabel\n * @return {CategoryModel}\n */\nfunction createCategoryModel(dimensionInd, categoryInd, categoryValue, categoryLabel) {\n return {\n dimensionInd: dimensionInd,\n categoryInd: categoryInd,\n categoryValue: categoryValue,\n displayInd: categoryInd,\n categoryLabel: categoryLabel,\n valueInds: [],\n count: 0,\n dragY: null\n };\n}\n\n/**\n * Update a CategoryModel object with a new value index\n * Note: The calling parameter is modified in place.\n *\n * @param {CategoryModel} categoryModel\n * @param {Number} valueInd\n * @param {Number} count\n */\nfunction updateCategoryModel(categoryModel, valueInd, count) {\n categoryModel.valueInds.push(valueInd);\n categoryModel.count += count;\n}\n\n\n// Path Model\n// ----------\n/**\n * @typedef {Object} PathModel\n * Object containing calculated information about the samples in a path.\n *\n * @property {Array} categoryInds\n * Array of category indices for each dimension (length `numDimensions`)\n * @param {String} pathColor\n * Color of this path. (Note: Any colorscaling has already taken place)\n * @property {Array} valueInds\n * Array of indices (into the original value array) of all samples in this path\n * @property {Number} count\n * The number of elements from the original array in this path\n * @property {String} color\n * The path's color (ass CSS color string)\n * @property rawColor\n * The raw color value specified by the user. May be a CSS color string or a Number\n */\n\n/**\n * Create and return a new PathModel object\n * @param {Array} categoryInds\n * @param color\n * @param rawColor\n * @return {PathModel}\n */\nfunction createPathModel(categoryInds, color, rawColor) {\n return {\n categoryInds: categoryInds,\n color: color,\n rawColor: rawColor,\n valueInds: [],\n count: 0\n };\n}\n\n/**\n * Update a PathModel object with a new value index\n * Note: The calling parameter is modified in place.\n *\n * @param {PathModel} pathModel\n * @param {Number} valueInd\n * @param {Number} count\n */\nfunction updatePathModel(pathModel, valueInd, count) {\n pathModel.valueInds.push(valueInd);\n pathModel.count += count;\n}\n\n// Unique calculations\n// ===================\n/**\n * @typedef {Object} UniqueInfo\n * Object containing information about the unique values of an input array\n *\n * @property {Array} uniqueValues\n * The unique values in the input array\n * @property {Array} uniqueCounts\n * The number of times each entry in uniqueValues occurs in input array.\n * This has the same length as `uniqueValues`\n * @property {Array} inds\n * Indices into uniqueValues that would reproduce original input array\n */\n\n/**\n * Compute unique value information for an array\n *\n * IMPORTANT: Note that values are considered unique\n * if their string representations are unique.\n *\n * @param {Array} values\n * @param {Array|undefined} uniqueValues\n * Array of expected unique values. The uniqueValues property of the resulting UniqueInfo object will begin with\n * these entries. Entries are included even if there are zero occurrences in the values array. Entries found in\n * the values array that are not present in uniqueValues will be included at the end of the array in the\n * UniqueInfo object.\n * @return {UniqueInfo}\n */\nfunction getUniqueInfo(values, uniqueValues) {\n // Initialize uniqueValues if not specified\n if(uniqueValues === undefined || uniqueValues === null) {\n uniqueValues = [];\n } else {\n // Shallow copy so append below doesn't alter input array\n uniqueValues = uniqueValues.map(function(e) {return e;});\n }\n\n // Initialize Variables\n var uniqueValueCounts = {};\n var uniqueValueInds = {};\n var inds = [];\n\n // Initialize uniqueValueCounts and\n uniqueValues.forEach(function(uniqueVal, valInd) {\n uniqueValueCounts[uniqueVal] = 0;\n uniqueValueInds[uniqueVal] = valInd;\n });\n\n // Compute the necessary unique info in a single pass\n for(var i = 0; i < values.length; i++) {\n var item = values[i];\n var itemInd;\n\n if(uniqueValueCounts[item] === undefined) {\n // This item has a previously unseen value\n uniqueValueCounts[item] = 1;\n itemInd = uniqueValues.push(item) - 1;\n uniqueValueInds[item] = itemInd;\n } else {\n // Increment count for this item\n uniqueValueCounts[item]++;\n itemInd = uniqueValueInds[item];\n }\n inds.push(itemInd);\n }\n\n // Build UniqueInfo\n var uniqueCounts = uniqueValues.map(function(v) { return uniqueValueCounts[v]; });\n\n return {\n uniqueValues: uniqueValues,\n uniqueCounts: uniqueCounts,\n inds: inds\n };\n}\n\n\n/**\n * Validate the requested display order for the dimensions.\n * If the display order is a permutation of 0 through dimensions.length - 1, link to _displayindex\n * Otherwise, replace the display order with the dimension order\n * @param {Object} trace\n */\nfunction validateDimensionDisplayInds(visibleDims) {\n var displayInds = visibleDims.map(function(d) { return d.displayindex; });\n var i;\n\n if(isRangePermutation(displayInds)) {\n for(i = 0; i < visibleDims.length; i++) {\n visibleDims[i]._displayindex = visibleDims[i].displayindex;\n }\n } else {\n for(i = 0; i < visibleDims.length; i++) {\n visibleDims[i]._displayindex = i;\n }\n }\n}\n\n\n/**\n * Update category properties based on the unique values found for this dimension\n * @param {Object} dim\n * @param {UniqueInfo} uniqueInfoDim\n */\nfunction validateCategoryProperties(dim, uniqueInfoDim) {\n // Update categoryarray\n dim._categoryarray = uniqueInfoDim.uniqueValues;\n\n // Handle ticktext\n if(dim.ticktext === null || dim.ticktext === undefined) {\n dim._ticktext = [];\n } else {\n // Shallow copy to avoid modifying input array\n dim._ticktext = dim.ticktext.slice();\n }\n\n // Extend ticktext with elements from uniqueInfoDim.uniqueValues\n for(var i = dim._ticktext.length; i < uniqueInfoDim.uniqueValues.length; i++) {\n dim._ticktext.push(uniqueInfoDim.uniqueValues[i]);\n }\n}\n\n/**\n * Determine whether an array contains a permutation of the integers from 0 to the array's length - 1\n * @param {Array} inds\n * @return {boolean}\n */\nfunction isRangePermutation(inds) {\n var indsSpecified = new Array(inds.length);\n\n for(var i = 0; i < inds.length; i++) {\n // Check for out of bounds\n if(inds[i] < 0 || inds[i] >= inds.length) {\n return false;\n }\n\n // Check for collisions with already specified index\n if(indsSpecified[inds[i]] !== undefined) {\n return false;\n }\n\n indsSpecified[inds[i]] = true;\n }\n\n // Nothing out of bounds and no collisions. We have a permutation\n return true;\n}\n\n\n/***/ }),\n\n/***/ \"6a25\":\n/***/ (function(module, exports) {\n\nmodule.exports = [\r\n '<<='\r\n , '>>='\r\n , '++'\r\n , '--'\r\n , '<<'\r\n , '>>'\r\n , '<='\r\n , '>='\r\n , '=='\r\n , '!='\r\n , '&&'\r\n , '||'\r\n , '+='\r\n , '-='\r\n , '*='\r\n , '/='\r\n , '%='\r\n , '&='\r\n , '^^'\r\n , '^='\r\n , '|='\r\n , '('\r\n , ')'\r\n , '['\r\n , ']'\r\n , '.'\r\n , '!'\r\n , '~'\r\n , '*'\r\n , '/'\r\n , '%'\r\n , '+'\r\n , '-'\r\n , '<'\r\n , '>'\r\n , '&'\r\n , '^'\r\n , '|'\r\n , '?'\r\n , ':'\r\n , '='\r\n , ','\r\n , ';'\r\n , '{'\r\n , '}'\r\n]\r\n\n\n/***/ }),\n\n/***/ \"6a77\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\nvar Axes = __webpack_require__(\"0642\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\nvar _ = Lib._;\n\nmodule.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = Axes.getFromId(gd, trace.xaxis || 'x');\n var ya = Axes.getFromId(gd, trace.yaxis || 'y');\n var cd = [];\n\n // N.B. violin reuses same Box.calc\n var numKey = trace.type === 'violin' ? '_numViolins' : '_numBoxes';\n\n var i, j;\n var valAxis, valLetter;\n var posAxis, posLetter;\n\n if(trace.orientation === 'h') {\n valAxis = xa;\n valLetter = 'x';\n posAxis = ya;\n posLetter = 'y';\n } else {\n valAxis = ya;\n valLetter = 'y';\n posAxis = xa;\n posLetter = 'x';\n }\n\n var posArray = getPos(trace, posLetter, posAxis, fullLayout[numKey]);\n var dv = Lib.distinctVals(posArray);\n var posDistinct = dv.vals;\n var dPos = dv.minDiff / 2;\n\n // item in trace calcdata\n var cdi;\n // array of {v: v, i, i} sample pts\n var pts;\n // values of the `pts` array of objects\n var boxVals;\n // length of sample\n var N;\n // single sample point\n var pt;\n // single sample value\n var v;\n\n // filter function for outlier pts\n // outlier definition based on http://www.physics.csbsju.edu/stats/box2.html\n var ptFilterFn = (trace.boxpoints || trace.points) === 'all' ?\n Lib.identity :\n function(pt) { return (pt.v < cdi.lf || pt.v > cdi.uf); };\n\n if(trace._hasPreCompStats) {\n var valArrayRaw = trace[valLetter];\n var d2c = function(k) { return valAxis.d2c((trace[k] || [])[i]); };\n var minVal = Infinity;\n var maxVal = -Infinity;\n\n for(i = 0; i < trace._length; i++) {\n var posi = posArray[i];\n if(!isNumeric(posi)) continue;\n\n cdi = {};\n cdi.pos = cdi[posLetter] = posi;\n\n cdi.q1 = d2c('q1');\n cdi.med = d2c('median');\n cdi.q3 = d2c('q3');\n\n pts = [];\n if(valArrayRaw && Lib.isArrayOrTypedArray(valArrayRaw[i])) {\n for(j = 0; j < valArrayRaw[i].length; j++) {\n v = valAxis.d2c(valArrayRaw[i][j]);\n if(v !== BADNUM) {\n pt = {v: v, i: [i, j]};\n arraysToCalcdata(pt, trace, [i, j]);\n pts.push(pt);\n }\n }\n }\n cdi.pts = pts.sort(sortByVal);\n boxVals = cdi[valLetter] = pts.map(extractVal);\n N = boxVals.length;\n\n if(cdi.med !== BADNUM && cdi.q1 !== BADNUM && cdi.q3 !== BADNUM &&\n cdi.med >= cdi.q1 && cdi.q3 >= cdi.med\n ) {\n var lf = d2c('lowerfence');\n cdi.lf = (lf !== BADNUM && lf <= cdi.q1) ?\n lf :\n computeLowerFence(cdi, boxVals, N);\n\n var uf = d2c('upperfence');\n cdi.uf = (uf !== BADNUM && uf >= cdi.q3) ?\n uf :\n computeUpperFence(cdi, boxVals, N);\n\n var mean = d2c('mean');\n cdi.mean = (mean !== BADNUM) ?\n mean :\n (N ? Lib.mean(boxVals, N) : (cdi.q1 + cdi.q3) / 2);\n\n var sd = d2c('sd');\n cdi.sd = (mean !== BADNUM && sd >= 0) ?\n sd :\n (N ? Lib.stdev(boxVals, N, cdi.mean) : (cdi.q3 - cdi.q1));\n\n cdi.lo = computeLowerOutlierBound(cdi);\n cdi.uo = computeUpperOutlierBound(cdi);\n\n var ns = d2c('notchspan');\n ns = (ns !== BADNUM && ns > 0) ? ns : computeNotchSpan(cdi, N);\n cdi.ln = cdi.med - ns;\n cdi.un = cdi.med + ns;\n\n var imin = cdi.lf;\n var imax = cdi.uf;\n if(trace.boxpoints && boxVals.length) {\n imin = Math.min(imin, boxVals[0]);\n imax = Math.max(imax, boxVals[N - 1]);\n }\n if(trace.notched) {\n imin = Math.min(imin, cdi.ln);\n imax = Math.max(imax, cdi.un);\n }\n cdi.min = imin;\n cdi.max = imax;\n } else {\n Lib.warn([\n 'Invalid input - make sure that q1 <= median <= q3',\n 'q1 = ' + cdi.q1,\n 'median = ' + cdi.med,\n 'q3 = ' + cdi.q3\n ].join('\\n'));\n\n var v0;\n if(cdi.med !== BADNUM) {\n v0 = cdi.med;\n } else if(cdi.q1 !== BADNUM) {\n if(cdi.q3 !== BADNUM) v0 = (cdi.q1 + cdi.q3) / 2;\n else v0 = cdi.q1;\n } else if(cdi.q3 !== BADNUM) {\n v0 = cdi.q3;\n } else {\n v0 = 0;\n }\n\n // draw box as line segment\n cdi.med = v0;\n cdi.q1 = cdi.q3 = v0;\n cdi.lf = cdi.uf = v0;\n cdi.mean = cdi.sd = v0;\n cdi.ln = cdi.un = v0;\n cdi.min = cdi.max = v0;\n }\n\n minVal = Math.min(minVal, cdi.min);\n maxVal = Math.max(maxVal, cdi.max);\n\n cdi.pts2 = pts.filter(ptFilterFn);\n\n cd.push(cdi);\n }\n\n trace._extremes[valAxis._id] = Axes.findExtremes(valAxis,\n [minVal, maxVal],\n {padded: true}\n );\n } else {\n var valArray = valAxis.makeCalcdata(trace, valLetter);\n var posBins = makeBins(posDistinct, dPos);\n var pLen = posDistinct.length;\n var ptsPerBin = initNestedArray(pLen);\n\n // bin pts info per position bins\n for(i = 0; i < trace._length; i++) {\n v = valArray[i];\n if(!isNumeric(v)) continue;\n\n var n = Lib.findBin(posArray[i], posBins);\n if(n >= 0 && n < pLen) {\n pt = {v: v, i: i};\n arraysToCalcdata(pt, trace, i);\n ptsPerBin[n].push(pt);\n }\n }\n\n var minLowerNotch = Infinity;\n var maxUpperNotch = -Infinity;\n\n var quartilemethod = trace.quartilemethod;\n var usesExclusive = quartilemethod === 'exclusive';\n var usesInclusive = quartilemethod === 'inclusive';\n\n // build calcdata trace items, one item per distinct position\n for(i = 0; i < pLen; i++) {\n if(ptsPerBin[i].length > 0) {\n cdi = {};\n cdi.pos = cdi[posLetter] = posDistinct[i];\n\n pts = cdi.pts = ptsPerBin[i].sort(sortByVal);\n boxVals = cdi[valLetter] = pts.map(extractVal);\n N = boxVals.length;\n\n cdi.min = boxVals[0];\n cdi.max = boxVals[N - 1];\n cdi.mean = Lib.mean(boxVals, N);\n cdi.sd = Lib.stdev(boxVals, N, cdi.mean);\n cdi.med = Lib.interp(boxVals, 0.5);\n\n if((N % 2) && (usesExclusive || usesInclusive)) {\n var lower;\n var upper;\n\n if(usesExclusive) {\n // do NOT include the median in either half\n lower = boxVals.slice(0, N / 2);\n upper = boxVals.slice(N / 2 + 1);\n } else if(usesInclusive) {\n // include the median in either half\n lower = boxVals.slice(0, N / 2 + 1);\n upper = boxVals.slice(N / 2);\n }\n\n cdi.q1 = Lib.interp(lower, 0.5);\n cdi.q3 = Lib.interp(upper, 0.5);\n } else {\n cdi.q1 = Lib.interp(boxVals, 0.25);\n cdi.q3 = Lib.interp(boxVals, 0.75);\n }\n\n // lower and upper fences\n cdi.lf = computeLowerFence(cdi, boxVals, N);\n cdi.uf = computeUpperFence(cdi, boxVals, N);\n\n // lower and upper outliers bounds\n cdi.lo = computeLowerOutlierBound(cdi);\n cdi.uo = computeUpperOutlierBound(cdi);\n\n // lower and upper notches\n var mci = computeNotchSpan(cdi, N);\n cdi.ln = cdi.med - mci;\n cdi.un = cdi.med + mci;\n minLowerNotch = Math.min(minLowerNotch, cdi.ln);\n maxUpperNotch = Math.max(maxUpperNotch, cdi.un);\n\n cdi.pts2 = pts.filter(ptFilterFn);\n\n cd.push(cdi);\n }\n }\n\n trace._extremes[valAxis._id] = Axes.findExtremes(valAxis,\n trace.notched ? valArray.concat([minLowerNotch, maxUpperNotch]) : valArray,\n {padded: true}\n );\n }\n\n calcSelection(cd, trace);\n\n if(cd.length > 0) {\n cd[0].t = {\n num: fullLayout[numKey],\n dPos: dPos,\n posLetter: posLetter,\n valLetter: valLetter,\n labels: {\n med: _(gd, 'median:'),\n min: _(gd, 'min:'),\n q1: _(gd, 'q1:'),\n q3: _(gd, 'q3:'),\n max: _(gd, 'max:'),\n mean: trace.boxmean === 'sd' ? _(gd, 'mean ± σ:') : _(gd, 'mean:'),\n lf: _(gd, 'lower fence:'),\n uf: _(gd, 'upper fence:')\n }\n };\n\n fullLayout[numKey]++;\n return cd;\n } else {\n return [{t: {empty: true}}];\n }\n};\n\n// In vertical (horizontal) box plots:\n// if no x (y) data, use x0 (y0), or name\n// so if you want one box\n// per trace, set x0 (y0) to the x (y) value or category for this trace\n// (or set x (y) to a constant array matching y (x))\nfunction getPos(trace, posLetter, posAxis, num) {\n var hasPosArray = posLetter in trace;\n var hasPos0 = posLetter + '0' in trace;\n var hasPosStep = 'd' + posLetter in trace;\n\n if(hasPosArray || (hasPos0 && hasPosStep)) {\n return posAxis.makeCalcdata(trace, posLetter);\n }\n\n var pos0;\n if(hasPos0) {\n pos0 = trace[posLetter + '0'];\n } else if('name' in trace && (\n posAxis.type === 'category' || (\n isNumeric(trace.name) &&\n ['linear', 'log'].indexOf(posAxis.type) !== -1\n ) || (\n Lib.isDateTime(trace.name) &&\n posAxis.type === 'date'\n )\n )) {\n pos0 = trace.name;\n } else {\n pos0 = num;\n }\n\n var pos0c = posAxis.type === 'multicategory' ?\n posAxis.r2c_just_indices(pos0) :\n posAxis.d2c(pos0, 0, trace[posLetter + 'calendar']);\n\n var len = trace._length;\n var out = new Array(len);\n for(var i = 0; i < len; i++) out[i] = pos0c;\n\n return out;\n}\n\nfunction makeBins(x, dx) {\n var len = x.length;\n var bins = new Array(len + 1);\n\n for(var i = 0; i < len; i++) {\n bins[i] = x[i] - dx;\n }\n bins[len] = x[len - 1] + dx;\n\n return bins;\n}\n\nfunction initNestedArray(len) {\n var arr = new Array(len);\n for(var i = 0; i < len; i++) {\n arr[i] = [];\n }\n return arr;\n}\n\nvar TRACE_TO_CALC = {\n text: 'tx',\n hovertext: 'htx'\n};\n\nfunction arraysToCalcdata(pt, trace, ptNumber) {\n for(var k in TRACE_TO_CALC) {\n if(Lib.isArrayOrTypedArray(trace[k])) {\n if(Array.isArray(ptNumber)) {\n if(Lib.isArrayOrTypedArray(trace[k][ptNumber[0]])) {\n pt[TRACE_TO_CALC[k]] = trace[k][ptNumber[0]][ptNumber[1]];\n }\n } else {\n pt[TRACE_TO_CALC[k]] = trace[k][ptNumber];\n }\n }\n }\n}\n\nfunction calcSelection(cd, trace) {\n if(Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n for(var i = 0; i < cd.length; i++) {\n var pts = cd[i].pts || [];\n var ptNumber2cdIndex = {};\n\n for(var j = 0; j < pts.length; j++) {\n ptNumber2cdIndex[pts[j].i] = j;\n }\n\n Lib.tagSelected(pts, trace, ptNumber2cdIndex);\n }\n }\n}\n\nfunction sortByVal(a, b) { return a.v - b.v; }\n\nfunction extractVal(o) { return o.v; }\n\n// last point below 1.5 * IQR\nfunction computeLowerFence(cdi, boxVals, N) {\n if(N === 0) return cdi.q1;\n return Math.min(\n cdi.q1,\n boxVals[Math.min(\n Lib.findBin(2.5 * cdi.q1 - 1.5 * cdi.q3, boxVals, true) + 1,\n N - 1\n )]\n );\n}\n\n// last point above 1.5 * IQR\nfunction computeUpperFence(cdi, boxVals, N) {\n if(N === 0) return cdi.q3;\n return Math.max(\n cdi.q3,\n boxVals[Math.max(\n Lib.findBin(2.5 * cdi.q3 - 1.5 * cdi.q1, boxVals),\n 0\n )]\n );\n}\n\n// 3 IQR below (don't clip to max/min,\n// this is only for discriminating suspected & far outliers)\nfunction computeLowerOutlierBound(cdi) {\n return 4 * cdi.q1 - 3 * cdi.q3;\n}\n\n// 3 IQR above (don't clip to max/min,\n// this is only for discriminating suspected & far outliers)\nfunction computeUpperOutlierBound(cdi) {\n return 4 * cdi.q3 - 3 * cdi.q1;\n}\n\n// 95% confidence intervals for median\nfunction computeNotchSpan(cdi, N) {\n if(N === 0) return 0;\n return 1.57 * (cdi.q3 - cdi.q1) / Math.sqrt(N);\n}\n\n\n/***/ }),\n\n/***/ \"6aa3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar wrap = __webpack_require__(\"0a3e\").wrap;\n\nmodule.exports = function calc() {\n // we don't actually need to include the trace here, since that will be added\n // by Plots.doCalcdata, and that's all we actually need later.\n return wrap({});\n};\n\n\n/***/ }),\n\n/***/ \"6add\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar id2name = __webpack_require__(\"3c1c\").id2name;\nvar scaleZoom = __webpack_require__(\"9759\");\nvar makePadFn = __webpack_require__(\"ce56\").makePadFn;\nvar concatExtremes = __webpack_require__(\"ce56\").concatExtremes;\n\nvar ALMOST_EQUAL = __webpack_require__(\"e806\").ALMOST_EQUAL;\nvar FROM_BL = __webpack_require__(\"63dc\").FROM_BL;\n\nexports.handleConstraintDefaults = function(containerIn, containerOut, coerce, opts) {\n var allAxisIds = opts.allAxisIds;\n var layoutOut = opts.layoutOut;\n var scaleanchorDflt = opts.scaleanchorDflt;\n var constrainDflt = opts.constrainDflt;\n var constraintGroups = layoutOut._axisConstraintGroups;\n var matchGroups = layoutOut._axisMatchGroups;\n var axId = containerOut._id;\n var axLetter = axId.charAt(0);\n var splomStash = ((layoutOut._splomAxes || {})[axLetter] || {})[axId] || {};\n var thisID = containerOut._id;\n var letter = thisID.charAt(0);\n\n // coerce the constraint mechanics even if this axis has no scaleanchor\n // because it may be the anchor of another axis.\n var constrain = coerce('constrain', constrainDflt);\n Lib.coerce(containerIn, containerOut, {\n constraintoward: {\n valType: 'enumerated',\n values: letter === 'x' ? ['left', 'center', 'right'] : ['bottom', 'middle', 'top'],\n dflt: letter === 'x' ? 'center' : 'middle'\n }\n }, 'constraintoward');\n\n var matches, matchOpts;\n\n if((containerIn.matches || splomStash.matches) && !containerOut.fixedrange) {\n matchOpts = getConstraintOpts(matchGroups, thisID, allAxisIds, layoutOut);\n matches = Lib.coerce(containerIn, containerOut, {\n matches: {\n valType: 'enumerated',\n values: matchOpts.linkableAxes || [],\n dflt: splomStash.matches\n }\n }, 'matches');\n }\n\n // 'matches' wins over 'scaleanchor' (for now)\n var scaleanchor, scaleOpts;\n\n if(!matches &&\n !(containerOut.fixedrange && constrain !== 'domain') &&\n (containerIn.scaleanchor || scaleanchorDflt)\n ) {\n scaleOpts = getConstraintOpts(constraintGroups, thisID, allAxisIds, layoutOut, constrain);\n scaleanchor = Lib.coerce(containerIn, containerOut, {\n scaleanchor: {\n valType: 'enumerated',\n values: scaleOpts.linkableAxes || []\n }\n }, 'scaleanchor', scaleanchorDflt);\n }\n\n if(matches) {\n delete containerOut.constrain;\n updateConstraintGroups(matchGroups, matchOpts.thisGroup, thisID, matches, 1);\n } else if(allAxisIds.indexOf(containerIn.matches) !== -1) {\n Lib.warn('ignored ' + containerOut._name + '.matches: \"' +\n containerIn.matches + '\" to avoid either an infinite loop ' +\n 'or because the target axis has fixed range.');\n }\n\n if(scaleanchor) {\n var scaleratio = coerce('scaleratio');\n\n // TODO: I suppose I could do attribute.min: Number.MIN_VALUE to avoid zero,\n // but that seems hacky. Better way to say \"must be a positive number\"?\n // Of course if you use several super-tiny values you could eventually\n // force a product of these to zero and all hell would break loose...\n // Likewise with super-huge values.\n if(!scaleratio) scaleratio = containerOut.scaleratio = 1;\n\n updateConstraintGroups(constraintGroups, scaleOpts.thisGroup, thisID, scaleanchor, scaleratio);\n } else if(allAxisIds.indexOf(containerIn.scaleanchor) !== -1) {\n Lib.warn('ignored ' + containerOut._name + '.scaleanchor: \"' +\n containerIn.scaleanchor + '\" to avoid either an infinite loop ' +\n 'and possibly inconsistent scaleratios, or because the target ' +\n 'axis has fixed range or this axis declares a *matches* constraint.');\n }\n};\n\n// If this axis is already part of a constraint group, we can't\n// scaleanchor any other axis in that group, or we'd make a loop.\n// Filter allAxisIds to enforce this, also matching axis types.\nfunction getConstraintOpts(groups, thisID, allAxisIds, layoutOut, constrain) {\n var doesNotConstrainRange = constrain !== 'range';\n var thisType = layoutOut[id2name(thisID)].type;\n var i, j, idj, axj;\n\n var linkableAxes = [];\n for(j = 0; j < allAxisIds.length; j++) {\n idj = allAxisIds[j];\n if(idj === thisID) continue;\n\n axj = layoutOut[id2name(idj)];\n if(axj.type === thisType) {\n if(!axj.fixedrange) {\n linkableAxes.push(idj);\n } else if(doesNotConstrainRange && axj.anchor) {\n // allow domain constraints on subplots where\n // BOTH axes have fixedrange:true and constrain:domain\n var counterAxj = layoutOut[id2name(axj.anchor)];\n if(counterAxj.fixedrange) {\n linkableAxes.push(idj);\n }\n }\n }\n }\n\n for(i = 0; i < groups.length; i++) {\n if(groups[i][thisID]) {\n var thisGroup = groups[i];\n\n var linkableAxesNoLoops = [];\n for(j = 0; j < linkableAxes.length; j++) {\n idj = linkableAxes[j];\n if(!thisGroup[idj]) linkableAxesNoLoops.push(idj);\n }\n return {linkableAxes: linkableAxesNoLoops, thisGroup: thisGroup};\n }\n }\n\n return {linkableAxes: linkableAxes, thisGroup: null};\n}\n\n/*\n * Add this axis to the axis constraint groups, which is the collection\n * of axes that are all constrained together on scale.\n *\n * constraintGroups: a list of objects. each object is\n * {axis_id: scale_within_group}, where scale_within_group is\n * only important relative to the rest of the group, and defines\n * the relative scales between all axes in the group\n *\n * thisGroup: the group the current axis is already in\n * thisID: the id if the current axis\n * scaleanchor: the id of the axis to scale it with\n * scaleratio: the ratio of this axis to the scaleanchor axis\n */\nfunction updateConstraintGroups(constraintGroups, thisGroup, thisID, scaleanchor, scaleratio) {\n var i, j, groupi, keyj, thisGroupIndex;\n\n if(thisGroup === null) {\n thisGroup = {};\n thisGroup[thisID] = 1;\n thisGroupIndex = constraintGroups.length;\n constraintGroups.push(thisGroup);\n } else {\n thisGroupIndex = constraintGroups.indexOf(thisGroup);\n }\n\n var thisGroupKeys = Object.keys(thisGroup);\n\n // we know that this axis isn't in any other groups, but we don't know\n // about the scaleanchor axis. If it is, we need to merge the groups.\n for(i = 0; i < constraintGroups.length; i++) {\n groupi = constraintGroups[i];\n if(i !== thisGroupIndex && groupi[scaleanchor]) {\n var baseScale = groupi[scaleanchor];\n for(j = 0; j < thisGroupKeys.length; j++) {\n keyj = thisGroupKeys[j];\n groupi[keyj] = baseScale * scaleratio * thisGroup[keyj];\n }\n constraintGroups.splice(thisGroupIndex, 1);\n return;\n }\n }\n\n // otherwise, we insert the new scaleanchor axis as the base scale (1)\n // in its group, and scale the rest of the group to it\n if(scaleratio !== 1) {\n for(j = 0; j < thisGroupKeys.length; j++) {\n thisGroup[thisGroupKeys[j]] *= scaleratio;\n }\n }\n thisGroup[scaleanchor] = 1;\n}\n\nexports.enforce = function enforce(gd) {\n var fullLayout = gd._fullLayout;\n var constraintGroups = fullLayout._axisConstraintGroups || [];\n\n var i, j, axisID, ax, normScale, mode, factor;\n\n for(i = 0; i < constraintGroups.length; i++) {\n var group = constraintGroups[i];\n var axisIDs = Object.keys(group);\n\n var minScale = Infinity;\n var maxScale = 0;\n // mostly matchScale will be the same as minScale\n // ie we expand axis ranges to encompass *everything*\n // that's currently in any of their ranges, but during\n // autorange of a subset of axes we will ignore other\n // axes for this purpose.\n var matchScale = Infinity;\n var normScales = {};\n var axes = {};\n var hasAnyDomainConstraint = false;\n\n // find the (normalized) scale of each axis in the group\n for(j = 0; j < axisIDs.length; j++) {\n axisID = axisIDs[j];\n axes[axisID] = ax = fullLayout[id2name(axisID)];\n\n if(ax._inputDomain) ax.domain = ax._inputDomain.slice();\n else ax._inputDomain = ax.domain.slice();\n\n if(!ax._inputRange) ax._inputRange = ax.range.slice();\n\n // set axis scale here so we can use _m rather than\n // having to calculate it from length and range\n ax.setScale();\n\n // abs: inverted scales still satisfy the constraint\n normScales[axisID] = normScale = Math.abs(ax._m) / group[axisID];\n minScale = Math.min(minScale, normScale);\n if(ax.constrain === 'domain' || !ax._constraintShrinkable) {\n matchScale = Math.min(matchScale, normScale);\n }\n\n // this has served its purpose, so remove it\n delete ax._constraintShrinkable;\n maxScale = Math.max(maxScale, normScale);\n\n if(ax.constrain === 'domain') hasAnyDomainConstraint = true;\n }\n\n // Do we have a constraint mismatch? Give a small buffer for rounding errors\n if(minScale > ALMOST_EQUAL * maxScale && !hasAnyDomainConstraint) continue;\n\n // now increase any ranges we need to until all normalized scales are equal\n for(j = 0; j < axisIDs.length; j++) {\n axisID = axisIDs[j];\n normScale = normScales[axisID];\n ax = axes[axisID];\n mode = ax.constrain;\n\n // even if the scale didn't change, if we're shrinking domain\n // we need to recalculate in case `constraintoward` changed\n if(normScale !== matchScale || mode === 'domain') {\n factor = normScale / matchScale;\n\n if(mode === 'range') {\n scaleZoom(ax, factor);\n } else {\n // mode === 'domain'\n\n var inputDomain = ax._inputDomain;\n var domainShrunk = (ax.domain[1] - ax.domain[0]) /\n (inputDomain[1] - inputDomain[0]);\n var rangeShrunk = (ax.r2l(ax.range[1]) - ax.r2l(ax.range[0])) /\n (ax.r2l(ax._inputRange[1]) - ax.r2l(ax._inputRange[0]));\n\n factor /= domainShrunk;\n\n if(factor * rangeShrunk < 1) {\n // we've asked to magnify the axis more than we can just by\n // enlarging the domain - so we need to constrict range\n ax.domain = ax._input.domain = inputDomain.slice();\n scaleZoom(ax, factor);\n continue;\n }\n\n if(rangeShrunk < 1) {\n // the range has previously been constricted by ^^, but we've\n // switched to the domain-constricted regime, so reset range\n ax.range = ax._input.range = ax._inputRange.slice();\n factor *= rangeShrunk;\n }\n\n if(ax.autorange) {\n /*\n * range & factor may need to change because range was\n * calculated for the larger scaling, so some pixel\n * paddings may get cut off when we reduce the domain.\n *\n * This is easier than the regular autorange calculation\n * because we already know the scaling `m`, but we still\n * need to cut out impossible constraints (like\n * annotations with super-long arrows). That's what\n * outerMin/Max are for - if the expansion was going to\n * go beyond the original domain, it must be impossible\n */\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n var rangeCenter = (rl0 + rl1) / 2;\n var rangeMin = rangeCenter;\n var rangeMax = rangeCenter;\n var halfRange = Math.abs(rl1 - rangeCenter);\n // extra tiny bit for rounding errors, in case we actually\n // *are* expanding to the full domain\n var outerMin = rangeCenter - halfRange * factor * 1.0001;\n var outerMax = rangeCenter + halfRange * factor * 1.0001;\n var getPad = makePadFn(ax);\n\n updateDomain(ax, factor);\n var m = Math.abs(ax._m);\n var extremes = concatExtremes(gd, ax);\n var minArray = extremes.min;\n var maxArray = extremes.max;\n var newVal;\n var k;\n\n for(k = 0; k < minArray.length; k++) {\n newVal = minArray[k].val - getPad(minArray[k]) / m;\n if(newVal > outerMin && newVal < rangeMin) {\n rangeMin = newVal;\n }\n }\n\n for(k = 0; k < maxArray.length; k++) {\n newVal = maxArray[k].val + getPad(maxArray[k]) / m;\n if(newVal < outerMax && newVal > rangeMax) {\n rangeMax = newVal;\n }\n }\n\n var domainExpand = (rangeMax - rangeMin) / (2 * halfRange);\n factor /= domainExpand;\n\n rangeMin = ax.l2r(rangeMin);\n rangeMax = ax.l2r(rangeMax);\n ax.range = ax._input.range = (rl0 < rl1) ?\n [rangeMin, rangeMax] : [rangeMax, rangeMin];\n }\n\n updateDomain(ax, factor);\n }\n }\n }\n }\n};\n\n// For use before autoranging, check if this axis was previously constrained\n// by domain but no longer is\nexports.clean = function clean(gd, ax) {\n if(ax._inputDomain) {\n var isConstrained = false;\n var axId = ax._id;\n var constraintGroups = gd._fullLayout._axisConstraintGroups;\n for(var j = 0; j < constraintGroups.length; j++) {\n if(constraintGroups[j][axId]) {\n isConstrained = true;\n break;\n }\n }\n if(!isConstrained || ax.constrain !== 'domain') {\n ax._input.domain = ax.domain = ax._inputDomain;\n delete ax._inputDomain;\n }\n }\n};\n\nfunction updateDomain(ax, factor) {\n var inputDomain = ax._inputDomain;\n var centerFraction = FROM_BL[ax.constraintoward];\n var center = inputDomain[0] + (inputDomain[1] - inputDomain[0]) * centerFraction;\n\n ax.domain = ax._input.domain = [\n center + (inputDomain[0] - center) / factor,\n center + (inputDomain[1] - center) / factor\n ];\n ax.setScale();\n}\n\n\n/***/ }),\n\n/***/ \"6af8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isArray = Array.isArray;\n\n// IE9 fallbacks\n\nvar ab = (typeof ArrayBuffer === 'undefined' || !ArrayBuffer.isView) ?\n {isView: function() { return false; }} :\n ArrayBuffer;\n\nvar dv = (typeof DataView === 'undefined') ?\n function() {} :\n DataView;\n\nfunction isTypedArray(a) {\n return ab.isView(a) && !(a instanceof dv);\n}\nexports.isTypedArray = isTypedArray;\n\nfunction isArrayOrTypedArray(a) {\n return isArray(a) || isTypedArray(a);\n}\nexports.isArrayOrTypedArray = isArrayOrTypedArray;\n\n/*\n * Test whether an input object is 1D.\n *\n * Assumes we already know the object is an array.\n *\n * Looks only at the first element, if the dimensionality is\n * not consistent we won't figure that out here.\n */\nfunction isArray1D(a) {\n return !isArrayOrTypedArray(a[0]);\n}\nexports.isArray1D = isArray1D;\n\n/*\n * Ensures an array has the right amount of storage space. If it doesn't\n * exist, it creates an array. If it does exist, it returns it if too\n * short or truncates it in-place.\n *\n * The goal is to just reuse memory to avoid a bit of excessive garbage\n * collection.\n */\nexports.ensureArray = function(out, n) {\n // TODO: typed array support here? This is only used in\n // traces/carpet/compute_control_points\n if(!isArray(out)) out = [];\n\n // If too long, truncate. (If too short, it will grow\n // automatically so we don't care about that case)\n out.length = n;\n\n return out;\n};\n\n/*\n * TypedArray-compatible concatenation of n arrays\n * if all arrays are the same type it will preserve that type,\n * otherwise it falls back on Array.\n * Also tries to avoid copying, in case one array has zero length\n * But never mutates an existing array\n */\nexports.concat = function() {\n var args = [];\n var allArray = true;\n var totalLen = 0;\n\n var _constructor, arg0, i, argi, posi, leni, out, j;\n\n for(i = 0; i < arguments.length; i++) {\n argi = arguments[i];\n leni = argi.length;\n if(leni) {\n if(arg0) args.push(argi);\n else {\n arg0 = argi;\n posi = leni;\n }\n\n if(isArray(argi)) {\n _constructor = false;\n } else {\n allArray = false;\n if(!totalLen) {\n _constructor = argi.constructor;\n } else if(_constructor !== argi.constructor) {\n // TODO: in principle we could upgrade here,\n // ie keep typed array but convert all to Float64Array?\n _constructor = false;\n }\n }\n\n totalLen += leni;\n }\n }\n\n if(!totalLen) return [];\n if(!args.length) return arg0;\n\n if(allArray) return arg0.concat.apply(arg0, args);\n if(_constructor) {\n // matching typed arrays\n out = new _constructor(totalLen);\n out.set(arg0);\n for(i = 0; i < args.length; i++) {\n argi = args[i];\n out.set(argi, posi);\n posi += argi.length;\n }\n return out;\n }\n\n // mismatched types or Array + typed\n out = new Array(totalLen);\n for(j = 0; j < arg0.length; j++) out[j] = arg0[j];\n for(i = 0; i < args.length; i++) {\n argi = args[i];\n for(j = 0; j < argi.length; j++) out[posi + j] = argi[j];\n posi += j;\n }\n return out;\n};\n\nexports.maxRowLength = function(z) {\n return _rowLength(z, Math.max, 0);\n};\n\nexports.minRowLength = function(z) {\n return _rowLength(z, Math.min, Infinity);\n};\n\nfunction _rowLength(z, fn, len0) {\n if(isArrayOrTypedArray(z)) {\n if(isArrayOrTypedArray(z[0])) {\n var len = len0;\n for(var i = 0; i < z.length; i++) {\n len = fn(len, z[i].length);\n }\n return len;\n } else {\n return z.length;\n }\n }\n return 0;\n}\n\n\n/***/ }),\n\n/***/ \"6b10\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Template = __webpack_require__(\"a651\");\nvar axisIds = __webpack_require__(\"3c1c\");\n\nvar attributes = __webpack_require__(\"8f38\");\nvar oppAxisAttrs = __webpack_require__(\"5844\");\n\nmodule.exports = function handleDefaults(layoutIn, layoutOut, axName) {\n var axIn = layoutIn[axName];\n var axOut = layoutOut[axName];\n\n if(!(axIn.rangeslider || layoutOut._requestRangeslider[axOut._id])) return;\n\n // not super proud of this (maybe store _ in axis object instead\n if(!Lib.isPlainObject(axIn.rangeslider)) {\n axIn.rangeslider = {};\n }\n\n var containerIn = axIn.rangeslider;\n var containerOut = Template.newContainer(axOut, 'rangeslider');\n\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n\n var rangeContainerIn, rangeContainerOut;\n function coerceRange(attr, dflt) {\n return Lib.coerce(rangeContainerIn, rangeContainerOut, oppAxisAttrs, attr, dflt);\n }\n\n var visible = coerce('visible');\n if(!visible) return;\n\n coerce('bgcolor', layoutOut.plot_bgcolor);\n coerce('bordercolor');\n coerce('borderwidth');\n coerce('thickness');\n\n coerce('autorange', !axOut.isValidRange(containerIn.range));\n coerce('range');\n\n var subplots = layoutOut._subplots;\n if(subplots) {\n var yIds = subplots.cartesian\n .filter(function(subplotId) {\n return subplotId.substr(0, subplotId.indexOf('y')) === axisIds.name2id(axName);\n })\n .map(function(subplotId) {\n return subplotId.substr(subplotId.indexOf('y'), subplotId.length);\n });\n var yNames = Lib.simpleMap(yIds, axisIds.id2name);\n for(var i = 0; i < yNames.length; i++) {\n var yName = yNames[i];\n\n rangeContainerIn = containerIn[yName] || {};\n rangeContainerOut = Template.newContainer(containerOut, yName, 'yaxis');\n\n var yAxOut = layoutOut[yName];\n\n var rangemodeDflt;\n if(rangeContainerIn.range && yAxOut.isValidRange(rangeContainerIn.range)) {\n rangemodeDflt = 'fixed';\n }\n\n var rangeMode = coerceRange('rangemode', rangemodeDflt);\n if(rangeMode !== 'match') {\n coerceRange('range', yAxOut.range.slice());\n }\n }\n }\n\n // to map back range slider (auto) range\n containerOut._input = containerIn;\n};\n\n\n/***/ }),\n\n/***/ \"6b38\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/** @module gl-util/context */\r\n\r\n\r\nvar pick = __webpack_require__(\"b7d1\")\r\n\r\nmodule.exports = function setContext (o) {\r\n\tif (!o) o = {}\r\n\telse if (typeof o === 'string') o = {container: o}\r\n\r\n\t// HTMLCanvasElement\r\n\tif (isCanvas(o)) {\r\n\t\to = {container: o}\r\n\t}\r\n\t// HTMLElement\r\n\telse if (isElement(o)) {\r\n\t\to = {container: o}\r\n\t}\r\n\t// WebGLContext\r\n\telse if (isContext(o)) {\r\n\t\to = {gl: o}\r\n\t}\r\n\t// options object\r\n\telse {\r\n\t\to = pick(o, {\r\n\t\t\tcontainer: 'container target element el canvas holder parent parentNode wrapper use ref root node',\r\n\t\t\tgl: 'gl context webgl glContext',\r\n\t\t\tattrs: 'attributes attrs contextAttributes',\r\n\t\t\tpixelRatio: 'pixelRatio pxRatio px ratio pxratio pixelratio',\r\n\t\t\twidth: 'w width',\r\n\t\t\theight: 'h height'\r\n\t\t}, true)\r\n\t}\r\n\r\n\tif (!o.pixelRatio) o.pixelRatio = global.pixelRatio || 1\r\n\r\n\t// make sure there is container and canvas\r\n\tif (o.gl) {\r\n\t\treturn o.gl\r\n\t}\r\n\tif (o.canvas) {\r\n\t\to.container = o.canvas.parentNode\r\n\t}\r\n\tif (o.container) {\r\n\t\tif (typeof o.container === 'string') {\r\n\t\t\tvar c = document.querySelector(o.container)\r\n\t\t\tif (!c) throw Error('Element ' + o.container + ' is not found')\r\n\t\t\to.container = c\r\n\t\t}\r\n\t\tif (isCanvas(o.container)) {\r\n\t\t\to.canvas = o.container\r\n\t\t\to.container = o.canvas.parentNode\r\n\t\t}\r\n\t\telse if (!o.canvas) {\r\n\t\t\to.canvas = createCanvas()\r\n\t\t\to.container.appendChild(o.canvas)\r\n\t\t\tresize(o)\r\n\t\t}\r\n\t}\r\n\t// blank new canvas\r\n\telse if (!o.canvas) {\r\n\t\tif (typeof document !== 'undefined') {\r\n\t\t\to.container = document.body || document.documentElement\r\n\t\t\to.canvas = createCanvas()\r\n\t\t\to.container.appendChild(o.canvas)\r\n\t\t\tresize(o)\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthrow Error('Not DOM environment. Use headless-gl.')\r\n\t\t}\r\n\t}\r\n\r\n\t// make sure there is context\r\n\tif (!o.gl) {\r\n\t\ttry {\r\n\t\t\to.gl = o.canvas.getContext('webgl', o.attrs)\r\n\t\t} catch (e) {\r\n\t\t\ttry {\r\n\t\t\t\to.gl = o.canvas.getContext('experimental-webgl', o.attrs)\r\n\t\t\t}\r\n\t\t\tcatch (e) {\r\n\t\t\t\to.gl = o.canvas.getContext('webgl-experimental', o.attrs)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn o.gl\r\n}\r\n\r\n\r\nfunction resize (o) {\r\n\tif (o.container) {\r\n\t\tif (o.container == document.body) {\r\n\t\t\tif (!document.body.style.width) o.canvas.width = o.width || (o.pixelRatio * global.innerWidth)\r\n\t\t\tif (!document.body.style.height) o.canvas.height = o.height || (o.pixelRatio * global.innerHeight)\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar bounds = o.container.getBoundingClientRect()\r\n\t\t\to.canvas.width = o.width || (bounds.right - bounds.left)\r\n\t\t\to.canvas.height = o.height || (bounds.bottom - bounds.top)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction isCanvas (e) {\r\n\treturn typeof e.getContext === 'function'\r\n\t\t&& 'width' in e\r\n\t\t&& 'height' in e\r\n}\r\n\r\nfunction isElement (e) {\r\n\treturn typeof e.nodeName === 'string' &&\r\n\t\ttypeof e.appendChild === 'function' &&\r\n\t\ttypeof e.getBoundingClientRect === 'function'\r\n}\r\n\r\nfunction isContext (e) {\r\n\treturn typeof e.drawArrays === 'function' ||\r\n\t\ttypeof e.drawElements === 'function'\r\n}\r\n\r\nfunction createCanvas () {\r\n\tvar canvas = document.createElement('canvas')\r\n\tcanvas.style.position = 'absolute'\r\n\tcanvas.style.top = 0\r\n\tcanvas.style.left = 0\r\n\r\n\treturn canvas\r\n}\r\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"6b3c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createShader = __webpack_require__(\"28dd\")\nvar createBuffer = __webpack_require__(\"efce\")\nvar createVAO = __webpack_require__(\"b205\")\nvar createTexture = __webpack_require__(\"1d5b\")\nvar multiply = __webpack_require__(\"1417\")\nvar invert = __webpack_require__(\"9343\")\nvar ndarray = __webpack_require__(\"b5bb\")\nvar colormap = __webpack_require__(\"595c\")\n\nvar IDENTITY = [\n 1,0,0,0,\n 0,1,0,0,\n 0,0,1,0,\n 0,0,0,1]\n\nfunction VectorMesh(gl\n , texture\n , triShader\n , pickShader\n , trianglePositions\n , triangleVectors\n , triangleIds\n , triangleColors\n , triangleUVs\n , triangleVAO\n , traceType) {\n\n this.gl = gl\n this.pixelRatio = 1\n this.cells = []\n this.positions = []\n this.intensity = []\n this.texture = texture\n this.dirty = true\n\n this.triShader = triShader\n this.pickShader = pickShader\n\n this.trianglePositions = trianglePositions\n this.triangleVectors = triangleVectors\n this.triangleColors = triangleColors\n this.triangleUVs = triangleUVs\n this.triangleIds = triangleIds\n this.triangleVAO = triangleVAO\n this.triangleCount = 0\n\n this.pickId = 1\n this.bounds = [\n [ Infinity, Infinity, Infinity],\n [-Infinity,-Infinity,-Infinity] ]\n this.clipBounds = [\n [-Infinity,-Infinity,-Infinity],\n [ Infinity, Infinity, Infinity] ]\n\n this.lightPosition = [1e5, 1e5, 0]\n this.ambientLight = 0.8\n this.diffuseLight = 0.8\n this.specularLight = 2.0\n this.roughness = 0.5\n this.fresnel = 1.5\n\n this.opacity = 1\n\n this.traceType = traceType\n this.tubeScale = 1 // used in streamtube\n this.coneScale = 2 // used in cone\n this.vectorScale = 1 // used in cone\n this.coneOffset = 0.25 // used in cone\n\n this._model = IDENTITY\n this._view = IDENTITY\n this._projection = IDENTITY\n this._resolution = [1,1]\n}\n\nvar proto = VectorMesh.prototype\n\nproto.isOpaque = function() {\n return this.opacity >= 1\n}\n\nproto.isTransparent = function() {\n return this.opacity < 1\n}\n\nproto.pickSlots = 1\n\nproto.setPickBase = function(id) {\n this.pickId = id\n}\n\nfunction genColormap(param) {\n var colors = colormap({\n colormap: param\n , nshades: 256\n , format: 'rgba'\n })\n\n var result = new Uint8Array(256*4)\n for(var i=0; i<256; ++i) {\n var c = colors[i]\n for(var j=0; j<3; ++j) {\n result[4*i+j] = c[j]\n }\n result[4*i+3] = c[3]*255\n }\n\n return ndarray(result, [256,256,4], [4,0,1])\n}\n\nfunction takeZComponent(array) {\n var n = array.length\n var result = new Array(n)\n for(var i=0; i 0) {\n var shader = this.triShader\n shader.bind()\n shader.uniforms = uniforms\n\n this.triangleVAO.bind()\n gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3)\n this.triangleVAO.unbind()\n }\n}\n\nproto.drawPick = function(params) {\n params = params || {}\n\n var gl = this.gl\n\n var model = params.model || IDENTITY\n var view = params.view || IDENTITY\n var projection = params.projection || IDENTITY\n\n var clipBounds = [[-1e6,-1e6,-1e6],[1e6,1e6,1e6]]\n for(var i=0; i<3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i])\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i])\n }\n\n //Save camera parameters\n this._model = [].slice.call(model)\n this._view = [].slice.call(view)\n this._projection = [].slice.call(projection)\n this._resolution = [gl.drawingBufferWidth, gl.drawingBufferHeight]\n\n var uniforms = {\n model: model,\n view: view,\n projection: projection,\n clipBounds: clipBounds,\n\n tubeScale: this.tubeScale,\n vectorScale: this.vectorScale,\n coneScale: this.coneScale,\n coneOffset: this.coneOffset,\n\n pickId: this.pickId / 255.0,\n }\n\n var shader = this.pickShader\n shader.bind()\n shader.uniforms = uniforms\n\n if(this.triangleCount > 0) {\n this.triangleVAO.bind()\n gl.drawArrays(gl.TRIANGLES, 0, this.triangleCount*3)\n this.triangleVAO.unbind()\n }\n}\n\n\nproto.pick = function(pickData) {\n if(!pickData) {\n return null\n }\n if(pickData.id !== this.pickId) {\n return null\n }\n\n var cellId = pickData.value[0] + 256*pickData.value[1] + 65536*pickData.value[2]\n var cell = this.cells[cellId]\n var pos = this.positions[cell[1]].slice(0, 3)\n\n var result = {\n position: pos,\n dataCoordinate: pos,\n index: Math.floor(cell[1] / 48)\n }\n\n\n if(this.traceType === 'cone') {\n result.index = Math.floor(cell[1] / 48)\n } else if(this.traceType === 'streamtube') {\n result.intensity = this.intensity[cell[1]]\n result.velocity = this.vectors[cell[1]].slice(0, 3)\n result.divergence = this.vectors[cell[1]][3]\n result.index = cellId\n }\n\n return result\n}\n\n\nproto.dispose = function() {\n this.texture.dispose()\n\n this.triShader.dispose()\n this.pickShader.dispose()\n\n this.triangleVAO.dispose()\n this.trianglePositions.dispose()\n this.triangleVectors.dispose()\n this.triangleColors.dispose()\n this.triangleUVs.dispose()\n this.triangleIds.dispose()\n}\n\nfunction createMeshShader(gl, shaders) {\n var shader = createShader(gl,\n shaders.meshShader.vertex,\n shaders.meshShader.fragment,\n null,\n shaders.meshShader.attributes\n )\n\n shader.attributes.position.location = 0\n shader.attributes.color.location = 2\n shader.attributes.uv.location = 3\n shader.attributes.vector.location = 4\n return shader\n}\n\n\nfunction createPickShader(gl, shaders) {\n var shader = createShader(gl,\n shaders.pickShader.vertex,\n shaders.pickShader.fragment,\n null,\n shaders.pickShader.attributes\n )\n\n shader.attributes.position.location = 0\n shader.attributes.id.location = 1\n shader.attributes.vector.location = 4\n return shader\n}\n\n\nfunction createVectorMesh(gl, params, opts) {\n var shaders = opts.shaders\n\n if (arguments.length === 1) {\n params = gl\n gl = params.gl\n }\n\n\n var triShader = createMeshShader(gl, shaders)\n var pickShader = createPickShader(gl, shaders)\n var meshTexture = createTexture(gl,\n ndarray(new Uint8Array([255,255,255,255]), [1,1,4]))\n meshTexture.generateMipmap()\n meshTexture.minFilter = gl.LINEAR_MIPMAP_LINEAR\n meshTexture.magFilter = gl.LINEAR\n\n var trianglePositions = createBuffer(gl)\n var triangleVectors = createBuffer(gl)\n var triangleColors = createBuffer(gl)\n var triangleUVs = createBuffer(gl)\n var triangleIds = createBuffer(gl)\n var triangleVAO = createVAO(gl, [\n { buffer: trianglePositions,\n type: gl.FLOAT,\n size: 4\n },\n { buffer: triangleIds,\n type: gl.UNSIGNED_BYTE,\n size: 4,\n normalized: true\n },\n { buffer: triangleColors,\n type: gl.FLOAT,\n size: 4\n },\n { buffer: triangleUVs,\n type: gl.FLOAT,\n size: 2\n },\n { buffer: triangleVectors,\n type: gl.FLOAT,\n size: 4\n }\n ])\n\n var mesh = new VectorMesh(gl\n , meshTexture\n , triShader\n , pickShader\n , trianglePositions\n , triangleVectors\n , triangleIds\n , triangleColors\n , triangleUVs\n , triangleVAO\n , opts.traceType || 'cone'\n )\n\n mesh.update(params)\n\n return mesh\n}\n\nmodule.exports = createVectorMesh\n\n\n/***/ }),\n\n/***/ \"6b50\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar surfaceAttrs = __webpack_require__(\"02ea\");\nvar baseAttrs = __webpack_require__(\"a876\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nmodule.exports = extendFlat({\n x: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n y: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n z: {\n valType: 'data_array',\n editType: 'calc+clearAxisTypes',\n \n },\n\n i: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n j: {\n valType: 'data_array',\n editType: 'calc',\n \n\n },\n k: {\n valType: 'data_array',\n editType: 'calc',\n \n\n },\n\n text: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n editType: 'calc',\n \n },\n hovertext: {\n valType: 'string',\n \n dflt: '',\n arrayOk: true,\n editType: 'calc',\n \n },\n hovertemplate: hovertemplateAttrs({editType: 'calc'}),\n\n delaunayaxis: {\n valType: 'enumerated',\n \n values: [ 'x', 'y', 'z' ],\n dflt: 'z',\n editType: 'calc',\n \n },\n\n alphahull: {\n valType: 'number',\n \n dflt: -1,\n editType: 'calc',\n \n },\n\n intensity: {\n valType: 'data_array',\n editType: 'calc',\n \n },\n intensitymode: {\n valType: 'enumerated',\n values: ['vertex', 'cell'],\n dflt: 'vertex',\n editType: 'calc',\n \n \n },\n\n // Color field\n color: {\n valType: 'color',\n \n editType: 'calc',\n \n },\n vertexcolor: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n facecolor: {\n valType: 'data_array',\n \n editType: 'calc',\n \n },\n transforms: undefined\n},\n\ncolorScaleAttrs('', {\n colorAttr: '`intensity`',\n showScaleDflt: true,\n editTypeOverride: 'calc'\n}), {\n opacity: surfaceAttrs.opacity,\n\n // Flat shaded mode\n flatshading: {\n valType: 'boolean',\n \n dflt: false,\n editType: 'calc',\n \n },\n\n contour: {\n show: extendFlat({}, surfaceAttrs.contours.x.show, {\n \n }),\n color: surfaceAttrs.contours.x.color,\n width: surfaceAttrs.contours.x.width,\n editType: 'calc'\n },\n\n lightposition: {\n x: extendFlat({}, surfaceAttrs.lightposition.x, {dflt: 1e5}),\n y: extendFlat({}, surfaceAttrs.lightposition.y, {dflt: 1e5}),\n z: extendFlat({}, surfaceAttrs.lightposition.z, {dflt: 0}),\n editType: 'calc'\n },\n lighting: extendFlat({\n vertexnormalsepsilon: {\n valType: 'number',\n \n min: 0.00,\n max: 1,\n dflt: 1e-12, // otherwise finely tessellated things eg. the brain will have no specular light reflection\n editType: 'calc',\n \n },\n facenormalsepsilon: {\n valType: 'number',\n \n min: 0.00,\n max: 1,\n dflt: 1e-6, // even the brain model doesn't appear to need finer than this\n editType: 'calc',\n \n },\n editType: 'calc'\n }, surfaceAttrs.lighting),\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {editType: 'calc'}),\n showlegend: extendFlat({}, baseAttrs.showlegend, {dflt: false})\n});\n\n\n/***/ }),\n\n/***/ \"6b5f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar plots = __webpack_require__(\"bb71\");\n\nexports.name = 'pie';\n\nexports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n};\n\n\n/***/ }),\n\n/***/ \"6b78\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar perStackAttrs = ['orientation', 'groupnorm', 'stackgaps'];\n\nmodule.exports = function handleStackDefaults(traceIn, traceOut, layout, coerce) {\n var stackOpts = layout._scatterStackOpts;\n\n var stackGroup = coerce('stackgroup');\n if(stackGroup) {\n // use independent stacking options per subplot\n var subplot = traceOut.xaxis + traceOut.yaxis;\n var subplotStackOpts = stackOpts[subplot];\n if(!subplotStackOpts) subplotStackOpts = stackOpts[subplot] = {};\n\n var groupOpts = subplotStackOpts[stackGroup];\n var firstTrace = false;\n if(groupOpts) {\n groupOpts.traces.push(traceOut);\n } else {\n groupOpts = subplotStackOpts[stackGroup] = {\n // keep track of trace indices for use during stacking calculations\n // this will be filled in during `calc` and used during `crossTraceCalc`\n // so it's OK if we don't recreate it during a non-calc edit\n traceIndices: [],\n // Hold on to the whole set of prior traces\n // First one is most important, so we can clear defaults\n // there if we find explicit values only in later traces.\n // We're only going to *use* the values stored in groupOpts,\n // but for the editor and validate we want things self-consistent\n // The full set of traces is used only to fix `fill` default if\n // we find `orientation: 'h'` beyond the first trace\n traces: [traceOut]\n };\n firstTrace = true;\n }\n // TODO: how is this going to work with groupby transforms?\n // in principle it should be OK I guess, as long as explicit group styles\n // don't override explicit base-trace styles?\n\n var dflts = {\n orientation: (traceOut.x && !traceOut.y) ? 'h' : 'v'\n };\n\n for(var i = 0; i < perStackAttrs.length; i++) {\n var attr = perStackAttrs[i];\n var attrFound = attr + 'Found';\n if(!groupOpts[attrFound]) {\n var traceHasAttr = traceIn[attr] !== undefined;\n var isOrientation = attr === 'orientation';\n if(traceHasAttr || firstTrace) {\n groupOpts[attr] = coerce(attr, dflts[attr]);\n\n if(isOrientation) {\n groupOpts.fillDflt = groupOpts[attr] === 'h' ?\n 'tonextx' : 'tonexty';\n }\n\n if(traceHasAttr) {\n // Note: this will show a value here even if it's invalid\n // in which case it will revert to default.\n groupOpts[attrFound] = true;\n\n // Note: only one trace in the stack will get a _fullData\n // entry for a given stack-wide attribute. If no traces\n // (or the first trace) specify that attribute, the\n // first trace will get it. If the first trace does NOT\n // specify it but some later trace does, then it gets\n // removed from the first trace and only included in the\n // one that specified it. This is mostly important for\n // editors (that want to see the full values to know\n // what settings are available) and Plotly.react diffing.\n // Editors may want to use fullLayout._scatterStackOpts\n // directly and make these settings available from all\n // traces in the stack... then set the new value into\n // the first trace, and clear all later traces.\n if(!firstTrace) {\n delete groupOpts.traces[0][attr];\n\n // orientation can affect default fill of previous traces\n if(isOrientation) {\n for(var j = 0; j < groupOpts.traces.length - 1; j++) {\n var trace2 = groupOpts.traces[j];\n if(trace2._input.fill !== trace2.fill) {\n trace2.fill = groupOpts.fillDflt;\n }\n }\n }\n }\n }\n }\n }\n }\n return groupOpts;\n }\n};\n\n\n/***/ }),\n\n/***/ \"6bd5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Colorscale = __webpack_require__(\"c258\");\n\nvar heatmapCalc = __webpack_require__(\"0625\");\nvar setContours = __webpack_require__(\"8a7d\");\nvar endPlus = __webpack_require__(\"bc6b\");\n\n// most is the same as heatmap calc, then adjust it\n// though a few things inside heatmap calc still look for\n// contour maps, because the makeBoundArray calls are too entangled\nmodule.exports = function calc(gd, trace) {\n var cd = heatmapCalc(gd, trace);\n\n var zOut = cd[0].z;\n setContours(trace, zOut);\n\n var contours = trace.contours;\n var cOpts = Colorscale.extractOpts(trace);\n var cVals;\n\n if(contours.coloring === 'heatmap' && cOpts.auto && trace.autocontour === false) {\n var start = contours.start;\n var end = endPlus(contours);\n var cs = contours.size || 1;\n var nc = Math.floor((end - start) / cs) + 1;\n\n if(!isFinite(cs)) {\n cs = 1;\n nc = 1;\n }\n\n var min0 = start - cs / 2;\n var max0 = min0 + nc * cs;\n cVals = [min0, max0];\n } else {\n cVals = zOut;\n }\n\n Colorscale.calc(gd, trace, {vals: cVals, cLetter: 'z'});\n\n return cd;\n};\n\n\n/***/ }),\n\n/***/ \"6c5a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\n\n/**\n * Determine the position anchor property of x/y xanchor/yanchor components.\n *\n * - values < 1/3 align the low side at that fraction,\n * - values [1/3, 2/3] align the center at that fraction,\n * - values > 2/3 align the right at that fraction.\n */\n\n\nexports.isLeftAnchor = function isLeftAnchor(opts) {\n return (\n opts.xanchor === 'left' ||\n (opts.xanchor === 'auto' && opts.x <= 1 / 3)\n );\n};\n\nexports.isCenterAnchor = function isCenterAnchor(opts) {\n return (\n opts.xanchor === 'center' ||\n (opts.xanchor === 'auto' && opts.x > 1 / 3 && opts.x < 2 / 3)\n );\n};\n\nexports.isRightAnchor = function isRightAnchor(opts) {\n return (\n opts.xanchor === 'right' ||\n (opts.xanchor === 'auto' && opts.x >= 2 / 3)\n );\n};\n\nexports.isTopAnchor = function isTopAnchor(opts) {\n return (\n opts.yanchor === 'top' ||\n (opts.yanchor === 'auto' && opts.y >= 2 / 3)\n );\n};\n\nexports.isMiddleAnchor = function isMiddleAnchor(opts) {\n return (\n opts.yanchor === 'middle' ||\n (opts.yanchor === 'auto' && opts.y > 1 / 3 && opts.y < 2 / 3)\n );\n};\n\nexports.isBottomAnchor = function isBottomAnchor(opts) {\n return (\n opts.yanchor === 'bottom' ||\n (opts.yanchor === 'auto' && opts.y <= 1 / 3)\n );\n};\n\n\n/***/ }),\n\n/***/ \"6c77\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n COMPARISON_OPS: ['=', '!=', '<', '>=', '>', '<='],\n COMPARISON_OPS2: ['=', '<', '>=', '>', '<='],\n INTERVAL_OPS: ['[]', '()', '[)', '(]', '][', ')(', '](', ')['],\n SET_OPS: ['{}', '}{'],\n CONSTRAINT_REDUCTION: {\n // for contour constraints, open/closed endpoints are equivalent\n '=': '=',\n\n '<': '<',\n '<=': '<',\n\n '>': '>',\n '>=': '>',\n\n '[]': '[]',\n '()': '[]',\n '[)': '[]',\n '(]': '[]',\n\n '][': '][',\n ')(': '][',\n '](': '][',\n ')[': ']['\n }\n};\n\n\n/***/ }),\n\n/***/ \"6ca5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"89ab\");\n\n\n/***/ }),\n\n/***/ \"6ceb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getContext = __webpack_require__(\"fda9\")\n\nmodule.exports = function getWebGLContext (opt) {\n return getContext('webgl', opt)\n}\n\n\n/***/ }),\n\n/***/ \"6d08\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"4362\")))\n\n/***/ }),\n\n/***/ \"6d0a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"c7c2\");\n\n\n/***/ }),\n\n/***/ \"6dcc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\n\n\nmodule.exports = {\n count: function(n, i, size) {\n size[n]++;\n return 1;\n },\n\n sum: function(n, i, size, counterData) {\n var v = counterData[i];\n if(isNumeric(v)) {\n v = Number(v);\n size[n] += v;\n return v;\n }\n return 0;\n },\n\n avg: function(n, i, size, counterData, counts) {\n var v = counterData[i];\n if(isNumeric(v)) {\n v = Number(v);\n size[n] += v;\n counts[n]++;\n }\n return 0;\n },\n\n min: function(n, i, size, counterData) {\n var v = counterData[i];\n if(isNumeric(v)) {\n v = Number(v);\n if(!isNumeric(size[n])) {\n size[n] = v;\n return v;\n } else if(size[n] > v) {\n var delta = v - size[n];\n size[n] = v;\n return delta;\n }\n }\n return 0;\n },\n\n max: function(n, i, size, counterData) {\n var v = counterData[i];\n if(isNumeric(v)) {\n v = Number(v);\n if(!isNumeric(size[n])) {\n size[n] = v;\n return v;\n } else if(size[n] < v) {\n var delta = v - size[n];\n size[n] = v;\n return delta;\n }\n }\n return 0;\n }\n};\n\n\n/***/ }),\n\n/***/ \"6dd0\":\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"[\\\"caption\\\",\\\"icon\\\",\\\"menu\\\",\\\"message-box\\\",\\\"small-caption\\\",\\\"status-bar\\\"]\");\n\n/***/ }),\n\n/***/ \"6dea\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar colorscaleCalc = __webpack_require__(\"3aa8\");\n\nmodule.exports = function calc(gd, trace) {\n if(trace.intensity) {\n colorscaleCalc(gd, trace, {\n vals: trace.intensity,\n containerStr: '',\n cLetter: 'c'\n });\n }\n};\n\n\n/***/ }),\n\n/***/ \"6e1f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = segmentsIntersect\n\nvar orient = __webpack_require__(\"92ba\")[3]\n\nfunction checkCollinear(a0, a1, b0, b1) {\n\n for(var d=0; d<2; ++d) {\n var x0 = a0[d]\n var y0 = a1[d]\n var l0 = Math.min(x0, y0)\n var h0 = Math.max(x0, y0) \n\n var x1 = b0[d]\n var y1 = b1[d]\n var l1 = Math.min(x1, y1)\n var h1 = Math.max(x1, y1) \n\n if(h1 < l0 || h0 < l1) {\n return false\n }\n }\n\n return true\n}\n\nfunction segmentsIntersect(a0, a1, b0, b1) {\n var x0 = orient(a0, b0, b1)\n var y0 = orient(a1, b0, b1)\n if((x0 > 0 && y0 > 0) || (x0 < 0 && y0 < 0)) {\n return false\n }\n\n var x1 = orient(b0, a0, a1)\n var y1 = orient(b1, a0, a1)\n if((x1 > 0 && y1 > 0) || (x1 < 0 && y1 < 0)) {\n return false\n }\n\n //Check for degenerate collinear case\n if(x0 === 0 && y0 === 0 && x1 === 0 && y1 === 0) {\n return checkCollinear(a0, a1, b0, b1)\n }\n\n return true\n}\n\n/***/ }),\n\n/***/ \"6e40\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar modModule = __webpack_require__(\"d3dc\");\nvar mod = modModule.mod;\nvar modHalf = modModule.modHalf;\n\nvar PI = Math.PI;\nvar twoPI = 2 * PI;\n\nfunction deg2rad(deg) { return deg / 180 * PI; }\n\nfunction rad2deg(rad) { return rad / PI * 180; }\n\n/**\n * is sector a full circle?\n * ... this comes up a lot in SVG path-drawing routines\n *\n * N.B. we consider all sectors that span more that 2pi 'full' circles\n *\n * @param {2-item array} aBnds : angular bounds in *radians*\n * @return {boolean}\n */\nfunction isFullCircle(aBnds) {\n return Math.abs(aBnds[1] - aBnds[0]) > twoPI - 1e-14;\n}\n\n/**\n * angular delta between angle 'a' and 'b'\n * solution taken from: https://stackoverflow.com/a/2007279\n *\n * @param {number} a : first angle in *radians*\n * @param {number} b : second angle in *radians*\n * @return {number} angular delta in *radians*\n */\nfunction angleDelta(a, b) {\n return modHalf(b - a, twoPI);\n}\n\n/**\n * angular distance between angle 'a' and 'b'\n *\n * @param {number} a : first angle in *radians*\n * @param {number} b : second angle in *radians*\n * @return {number} angular distance in *radians*\n */\nfunction angleDist(a, b) {\n return Math.abs(angleDelta(a, b));\n}\n\n/**\n * is angle inside sector?\n *\n * @param {number} a : angle to test in *radians*\n * @param {2-item array} aBnds : sector's angular bounds in *radians*\n * @param {boolean}\n */\nfunction isAngleInsideSector(a, aBnds) {\n if(isFullCircle(aBnds)) return true;\n\n var s0, s1;\n\n if(aBnds[0] < aBnds[1]) {\n s0 = aBnds[0];\n s1 = aBnds[1];\n } else {\n s0 = aBnds[1];\n s1 = aBnds[0];\n }\n\n s0 = mod(s0, twoPI);\n s1 = mod(s1, twoPI);\n if(s0 > s1) s1 += twoPI;\n\n var a0 = mod(a, twoPI);\n var a1 = a0 + twoPI;\n\n return (a0 >= s0 && a0 <= s1) || (a1 >= s0 && a1 <= s1);\n}\n\n/**\n * is pt (r,a) inside sector?\n *\n * @param {number} r : pt's radial coordinate\n * @param {number} a : pt's angular coordinate in *radians*\n * @param {2-item array} rBnds : sector's radial bounds\n * @param {2-item array} aBnds : sector's angular bounds in *radians*\n * @return {boolean}\n */\nfunction isPtInsideSector(r, a, rBnds, aBnds) {\n if(!isAngleInsideSector(a, aBnds)) return false;\n\n var r0, r1;\n\n if(rBnds[0] < rBnds[1]) {\n r0 = rBnds[0];\n r1 = rBnds[1];\n } else {\n r0 = rBnds[1];\n r1 = rBnds[0];\n }\n\n return r >= r0 && r <= r1;\n}\n\n// common to pathArc, pathSector and pathAnnulus\nfunction _path(r0, r1, a0, a1, cx, cy, isClosed) {\n cx = cx || 0;\n cy = cy || 0;\n\n var isCircle = isFullCircle([a0, a1]);\n var aStart, aMid, aEnd;\n var rStart, rEnd;\n\n if(isCircle) {\n aStart = 0;\n aMid = PI;\n aEnd = twoPI;\n } else {\n if(a0 < a1) {\n aStart = a0;\n aEnd = a1;\n } else {\n aStart = a1;\n aEnd = a0;\n }\n }\n\n if(r0 < r1) {\n rStart = r0;\n rEnd = r1;\n } else {\n rStart = r1;\n rEnd = r0;\n }\n\n // N.B. svg coordinates here, where y increases downward\n function pt(r, a) {\n return [r * Math.cos(a) + cx, cy - r * Math.sin(a)];\n }\n\n var largeArc = Math.abs(aEnd - aStart) <= PI ? 0 : 1;\n function arc(r, a, cw) {\n return 'A' + [r, r] + ' ' + [0, largeArc, cw] + ' ' + pt(r, a);\n }\n\n var p;\n\n if(isCircle) {\n if(rStart === null) {\n p = 'M' + pt(rEnd, aStart) +\n arc(rEnd, aMid, 0) +\n arc(rEnd, aEnd, 0) + 'Z';\n } else {\n p = 'M' + pt(rStart, aStart) +\n arc(rStart, aMid, 0) +\n arc(rStart, aEnd, 0) + 'Z' +\n 'M' + pt(rEnd, aStart) +\n arc(rEnd, aMid, 1) +\n arc(rEnd, aEnd, 1) + 'Z';\n }\n } else {\n if(rStart === null) {\n p = 'M' + pt(rEnd, aStart) + arc(rEnd, aEnd, 0);\n if(isClosed) p += 'L0,0Z';\n } else {\n p = 'M' + pt(rStart, aStart) +\n 'L' + pt(rEnd, aStart) +\n arc(rEnd, aEnd, 0) +\n 'L' + pt(rStart, aEnd) +\n arc(rStart, aStart, 1) + 'Z';\n }\n }\n\n return p;\n}\n\n/**\n * path an arc\n *\n * @param {number} r : radius\n * @param {number} a0 : first angular coordinate in *radians*\n * @param {number} a1 : second angular coordinate in *radians*\n * @param {number (optional)} cx : x coordinate of center\n * @param {number (optional)} cy : y coordinate of center\n * @return {string} svg path\n */\nfunction pathArc(r, a0, a1, cx, cy) {\n return _path(null, r, a0, a1, cx, cy, 0);\n}\n\n/**\n * path a sector\n *\n * @param {number} r : radius\n * @param {number} a0 : first angular coordinate in *radians*\n * @param {number} a1 : second angular coordinate in *radians*\n * @param {number (optional)} cx : x coordinate of center\n * @param {number (optional)} cy : y coordinate of center\n * @return {string} svg path\n */\nfunction pathSector(r, a0, a1, cx, cy) {\n return _path(null, r, a0, a1, cx, cy, 1);\n}\n\n/**\n * path an annulus\n *\n * @param {number} r0 : first radial coordinate\n * @param {number} r1 : second radial coordinate\n * @param {number} a0 : first angular coordinate in *radians*\n * @param {number} a1 : second angular coordinate in *radians*\n * @param {number (optional)} cx : x coordinate of center\n * @param {number (optional)} cy : y coordinate of center\n * @return {string} svg path\n */\nfunction pathAnnulus(r0, r1, a0, a1, cx, cy) {\n return _path(r0, r1, a0, a1, cx, cy, 1);\n}\n\nmodule.exports = {\n deg2rad: deg2rad,\n rad2deg: rad2deg,\n angleDelta: angleDelta,\n angleDist: angleDist,\n isFullCircle: isFullCircle,\n isAngleInsideSector: isAngleInsideSector,\n isPtInsideSector: isPtInsideSector,\n pathArc: pathArc,\n pathSector: pathSector,\n pathAnnulus: pathAnnulus\n};\n\n\n/***/ }),\n\n/***/ \"6e58\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;!function() {\n var d3 = {\n version: \"3.5.17\"\n };\n var d3_arraySlice = [].slice, d3_array = function(list) {\n return d3_arraySlice.call(list);\n };\n var d3_document = this.document;\n function d3_documentElement(node) {\n return node && (node.ownerDocument || node.document || node).documentElement;\n }\n function d3_window(node) {\n return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);\n }\n if (d3_document) {\n try {\n d3_array(d3_document.documentElement.childNodes)[0].nodeType;\n } catch (e) {\n d3_array = function(list) {\n var i = list.length, array = new Array(i);\n while (i--) array[i] = list[i];\n return array;\n };\n }\n }\n if (!Date.now) Date.now = function() {\n return +new Date();\n };\n if (d3_document) {\n try {\n d3_document.createElement(\"DIV\").style.setProperty(\"opacity\", 0, \"\");\n } catch (error) {\n var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;\n d3_element_prototype.setAttribute = function(name, value) {\n d3_element_setAttribute.call(this, name, value + \"\");\n };\n d3_element_prototype.setAttributeNS = function(space, local, value) {\n d3_element_setAttributeNS.call(this, space, local, value + \"\");\n };\n d3_style_prototype.setProperty = function(name, value, priority) {\n d3_style_setProperty.call(this, name, value + \"\", priority);\n };\n }\n }\n d3.ascending = d3_ascending;\n function d3_ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n }\n d3.descending = function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n };\n d3.min = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null && a > b) a = b;\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;\n }\n return a;\n };\n d3.max = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null && b > a) a = b;\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;\n }\n return a;\n };\n d3.extent = function(array, f) {\n var i = -1, n = array.length, a, b, c;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = c = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = c = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n }\n return [ a, c ];\n };\n function d3_number(x) {\n return x === null ? NaN : +x;\n }\n function d3_numeric(x) {\n return !isNaN(x);\n }\n d3.sum = function(array, f) {\n var s = 0, n = array.length, a, i = -1;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = +array[i])) s += a;\n } else {\n while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a;\n }\n return s;\n };\n d3.mean = function(array, f) {\n var s = 0, n = array.length, a, i = -1, j = n;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j;\n } else {\n while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j;\n }\n if (j) return s / j;\n };\n d3.quantile = function(values, p) {\n var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;\n return e ? v + e * (values[h] - v) : v;\n };\n d3.median = function(array, f) {\n var numbers = [], n = array.length, a, i = -1;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a);\n } else {\n while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a);\n }\n if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5);\n };\n d3.variance = function(array, f) {\n var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0;\n if (arguments.length === 1) {\n while (++i < n) {\n if (d3_numeric(a = d3_number(array[i]))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n } else {\n while (++i < n) {\n if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n }\n if (j > 1) return s / (j - 1);\n };\n d3.deviation = function() {\n var v = d3.variance.apply(this, arguments);\n return v ? Math.sqrt(v) : v;\n };\n function d3_bisector(compare) {\n return {\n left: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1;\n }\n return lo;\n }\n };\n }\n var d3_bisect = d3_bisector(d3_ascending);\n d3.bisectLeft = d3_bisect.left;\n d3.bisect = d3.bisectRight = d3_bisect.right;\n d3.bisector = function(f) {\n return d3_bisector(f.length === 1 ? function(d, x) {\n return d3_ascending(f(d), x);\n } : f);\n };\n d3.shuffle = function(array, i0, i1) {\n if ((m = arguments.length) < 3) {\n i1 = array.length;\n if (m < 2) i0 = 0;\n }\n var m = i1 - i0, t, i;\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t;\n }\n return array;\n };\n d3.permute = function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n };\n d3.pairs = function(array) {\n var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ];\n return pairs;\n };\n d3.transpose = function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n };\n function d3_transposeLength(d) {\n return d.length;\n }\n d3.zip = function() {\n return d3.transpose(arguments);\n };\n d3.keys = function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n };\n d3.values = function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n };\n d3.entries = function(map) {\n var entries = [];\n for (var key in map) entries.push({\n key: key,\n value: map[key]\n });\n return entries;\n };\n d3.merge = function(arrays) {\n var n = arrays.length, m, i = -1, j = 0, merged, array;\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n return merged;\n };\n var abs = Math.abs;\n d3.range = function(start, stop, step) {\n if (arguments.length < 3) {\n step = 1;\n if (arguments.length < 2) {\n stop = start;\n start = 0;\n }\n }\n if ((stop - start) / step === Infinity) throw new Error(\"infinite range\");\n var range = [], k = d3_range_integerScale(abs(step)), i = -1, j;\n start *= k, stop *= k, step *= k;\n if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);\n return range;\n };\n function d3_range_integerScale(x) {\n var k = 1;\n while (x * k % 1) k *= 10;\n return k;\n }\n function d3_class(ctor, properties) {\n for (var key in properties) {\n Object.defineProperty(ctor.prototype, key, {\n value: properties[key],\n enumerable: false\n });\n }\n }\n d3.map = function(object, f) {\n var map = new d3_Map();\n if (object instanceof d3_Map) {\n object.forEach(function(key, value) {\n map.set(key, value);\n });\n } else if (Array.isArray(object)) {\n var i = -1, n = object.length, o;\n if (arguments.length === 1) while (++i < n) map.set(i, object[i]); else while (++i < n) map.set(f.call(object, o = object[i], i), o);\n } else {\n for (var key in object) map.set(key, object[key]);\n }\n return map;\n };\n function d3_Map() {\n this._ = Object.create(null);\n }\n var d3_map_proto = \"__proto__\", d3_map_zero = \"\\x00\";\n d3_class(d3_Map, {\n has: d3_map_has,\n get: function(key) {\n return this._[d3_map_escape(key)];\n },\n set: function(key, value) {\n return this._[d3_map_escape(key)] = value;\n },\n remove: d3_map_remove,\n keys: d3_map_keys,\n values: function() {\n var values = [];\n for (var key in this._) values.push(this._[key]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var key in this._) entries.push({\n key: d3_map_unescape(key),\n value: this._[key]\n });\n return entries;\n },\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]);\n }\n });\n function d3_map_escape(key) {\n return (key += \"\") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key;\n }\n function d3_map_unescape(key) {\n return (key += \"\")[0] === d3_map_zero ? key.slice(1) : key;\n }\n function d3_map_has(key) {\n return d3_map_escape(key) in this._;\n }\n function d3_map_remove(key) {\n return (key = d3_map_escape(key)) in this._ && delete this._[key];\n }\n function d3_map_keys() {\n var keys = [];\n for (var key in this._) keys.push(d3_map_unescape(key));\n return keys;\n }\n function d3_map_size() {\n var size = 0;\n for (var key in this._) ++size;\n return size;\n }\n function d3_map_empty() {\n for (var key in this._) return false;\n return true;\n }\n d3.nest = function() {\n var nest = {}, keys = [], sortKeys = [], sortValues, rollup;\n function map(mapType, array, depth) {\n if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;\n var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(object = array[i]))) {\n values.push(object);\n } else {\n valuesByKey.set(keyValue, [ object ]);\n }\n }\n if (mapType) {\n object = mapType();\n setter = function(keyValue, values) {\n object.set(keyValue, map(mapType, values, depth));\n };\n } else {\n object = {};\n setter = function(keyValue, values) {\n object[keyValue] = map(mapType, values, depth);\n };\n }\n valuesByKey.forEach(setter);\n return object;\n }\n function entries(map, depth) {\n if (depth >= keys.length) return map;\n var array = [], sortKey = sortKeys[depth++];\n map.forEach(function(key, keyMap) {\n array.push({\n key: key,\n values: entries(keyMap, depth)\n });\n });\n return sortKey ? array.sort(function(a, b) {\n return sortKey(a.key, b.key);\n }) : array;\n }\n nest.map = function(array, mapType) {\n return map(mapType, array, 0);\n };\n nest.entries = function(array) {\n return entries(map(d3.map, array, 0), 0);\n };\n nest.key = function(d) {\n keys.push(d);\n return nest;\n };\n nest.sortKeys = function(order) {\n sortKeys[keys.length - 1] = order;\n return nest;\n };\n nest.sortValues = function(order) {\n sortValues = order;\n return nest;\n };\n nest.rollup = function(f) {\n rollup = f;\n return nest;\n };\n return nest;\n };\n d3.set = function(array) {\n var set = new d3_Set();\n if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);\n return set;\n };\n function d3_Set() {\n this._ = Object.create(null);\n }\n d3_class(d3_Set, {\n has: d3_map_has,\n add: function(key) {\n this._[d3_map_escape(key += \"\")] = true;\n return key;\n },\n remove: d3_map_remove,\n values: d3_map_keys,\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var key in this._) f.call(this, d3_map_unescape(key));\n }\n });\n d3.behavior = {};\n function d3_identity(d) {\n return d;\n }\n d3.rebind = function(target, source) {\n var i = 1, n = arguments.length, method;\n while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);\n return target;\n };\n function d3_rebind(target, source, method) {\n return function() {\n var value = method.apply(source, arguments);\n return value === source ? target : value;\n };\n }\n function d3_vendorSymbol(object, name) {\n if (name in object) return name;\n name = name.charAt(0).toUpperCase() + name.slice(1);\n for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {\n var prefixName = d3_vendorPrefixes[i] + name;\n if (prefixName in object) return prefixName;\n }\n }\n var d3_vendorPrefixes = [ \"webkit\", \"ms\", \"moz\", \"Moz\", \"o\", \"O\" ];\n function d3_noop() {}\n d3.dispatch = function() {\n var dispatch = new d3_dispatch(), i = -1, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n return dispatch;\n };\n function d3_dispatch() {}\n d3_dispatch.prototype.on = function(type, listener) {\n var i = type.indexOf(\".\"), name = \"\";\n if (i >= 0) {\n name = type.slice(i + 1);\n type = type.slice(0, i);\n }\n if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);\n if (arguments.length === 2) {\n if (listener == null) for (type in this) {\n if (this.hasOwnProperty(type)) this[type].on(name, null);\n }\n return this;\n }\n };\n function d3_dispatch_event(dispatch) {\n var listeners = [], listenerByName = new d3_Map();\n function event() {\n var z = listeners, i = -1, n = z.length, l;\n while (++i < n) if (l = z[i].on) l.apply(this, arguments);\n return dispatch;\n }\n event.on = function(name, listener) {\n var l = listenerByName.get(name), i;\n if (arguments.length < 2) return l && l.on;\n if (l) {\n l.on = null;\n listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));\n listenerByName.remove(name);\n }\n if (listener) listeners.push(listenerByName.set(name, {\n on: listener\n }));\n return dispatch;\n };\n return event;\n }\n d3.event = null;\n function d3_eventPreventDefault() {\n d3.event.preventDefault();\n }\n function d3_eventSource() {\n var e = d3.event, s;\n while (s = e.sourceEvent) e = s;\n return e;\n }\n function d3_eventDispatch(target) {\n var dispatch = new d3_dispatch(), i = 0, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n dispatch.of = function(thiz, argumentz) {\n return function(e1) {\n try {\n var e0 = e1.sourceEvent = d3.event;\n e1.target = target;\n d3.event = e1;\n dispatch[e1.type].apply(thiz, argumentz);\n } finally {\n d3.event = e0;\n }\n };\n };\n return dispatch;\n }\n d3.requote = function(s) {\n return s.replace(d3_requote_re, \"\\\\$&\");\n };\n var d3_requote_re = /[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;\n var d3_subclass = {}.__proto__ ? function(object, prototype) {\n object.__proto__ = prototype;\n } : function(object, prototype) {\n for (var property in prototype) object[property] = prototype[property];\n };\n function d3_selection(groups) {\n d3_subclass(groups, d3_selectionPrototype);\n return groups;\n }\n var d3_select = function(s, n) {\n return n.querySelector(s);\n }, d3_selectAll = function(s, n) {\n return n.querySelectorAll(s);\n }, d3_selectMatches = function(n, s) {\n var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, \"matchesSelector\")];\n d3_selectMatches = function(n, s) {\n return d3_selectMatcher.call(n, s);\n };\n return d3_selectMatches(n, s);\n };\n if (typeof Sizzle === \"function\") {\n d3_select = function(s, n) {\n return Sizzle(s, n)[0] || null;\n };\n d3_selectAll = Sizzle;\n d3_selectMatches = Sizzle.matchesSelector;\n }\n d3.selection = function() {\n return d3.select(d3_document.documentElement);\n };\n var d3_selectionPrototype = d3.selection.prototype = [];\n d3_selectionPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, group, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(subnode = selector.call(node, node.__data__, i, j));\n if (subnode && \"__data__\" in node) subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selector(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_select(selector, this);\n };\n }\n d3_selectionPrototype.selectAll = function(selector) {\n var subgroups = [], subgroup, node;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));\n subgroup.parentNode = node;\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selectorAll(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_selectAll(selector, this);\n };\n }\n var d3_nsXhtml = \"http://www.w3.org/1999/xhtml\";\n var d3_nsPrefix = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: d3_nsXhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n };\n d3.ns = {\n prefix: d3_nsPrefix,\n qualify: function(name) {\n var i = name.indexOf(\":\"), prefix = name;\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return d3_nsPrefix.hasOwnProperty(prefix) ? {\n space: d3_nsPrefix[prefix],\n local: name\n } : name;\n }\n };\n d3_selectionPrototype.attr = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") {\n var node = this.node();\n name = d3.ns.qualify(name);\n return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);\n }\n for (value in name) this.each(d3_selection_attr(value, name[value]));\n return this;\n }\n return this.each(d3_selection_attr(name, value));\n };\n function d3_selection_attr(name, value) {\n name = d3.ns.qualify(name);\n function attrNull() {\n this.removeAttribute(name);\n }\n function attrNullNS() {\n this.removeAttributeNS(name.space, name.local);\n }\n function attrConstant() {\n this.setAttribute(name, value);\n }\n function attrConstantNS() {\n this.setAttributeNS(name.space, name.local, value);\n }\n function attrFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);\n }\n function attrFunctionNS() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);\n }\n return value == null ? name.local ? attrNullNS : attrNull : typeof value === \"function\" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;\n }\n function d3_collapse(s) {\n return s.trim().replace(/\\s+/g, \" \");\n }\n d3_selectionPrototype.classed = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") {\n var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1;\n if (value = node.classList) {\n while (++i < n) if (!value.contains(name[i])) return false;\n } else {\n value = node.getAttribute(\"class\");\n while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;\n }\n return true;\n }\n for (value in name) this.each(d3_selection_classed(value, name[value]));\n return this;\n }\n return this.each(d3_selection_classed(name, value));\n };\n function d3_selection_classedRe(name) {\n return new RegExp(\"(?:^|\\\\s+)\" + d3.requote(name) + \"(?:\\\\s+|$)\", \"g\");\n }\n function d3_selection_classes(name) {\n return (name + \"\").trim().split(/^|\\s+/);\n }\n function d3_selection_classed(name, value) {\n name = d3_selection_classes(name).map(d3_selection_classedName);\n var n = name.length;\n function classedConstant() {\n var i = -1;\n while (++i < n) name[i](this, value);\n }\n function classedFunction() {\n var i = -1, x = value.apply(this, arguments);\n while (++i < n) name[i](this, x);\n }\n return typeof value === \"function\" ? classedFunction : classedConstant;\n }\n function d3_selection_classedName(name) {\n var re = d3_selection_classedRe(name);\n return function(node, value) {\n if (c = node.classList) return value ? c.add(name) : c.remove(name);\n var c = node.getAttribute(\"class\") || \"\";\n if (value) {\n re.lastIndex = 0;\n if (!re.test(c)) node.setAttribute(\"class\", d3_collapse(c + \" \" + name));\n } else {\n node.setAttribute(\"class\", d3_collapse(c.replace(re, \" \")));\n }\n };\n }\n d3_selectionPrototype.style = function(name, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name) this.each(d3_selection_style(priority, name[priority], value));\n return this;\n }\n if (n < 2) {\n var node = this.node();\n return d3_window(node).getComputedStyle(node, null).getPropertyValue(name);\n }\n priority = \"\";\n }\n return this.each(d3_selection_style(name, value, priority));\n };\n function d3_selection_style(name, value, priority) {\n function styleNull() {\n this.style.removeProperty(name);\n }\n function styleConstant() {\n this.style.setProperty(name, value, priority);\n }\n function styleFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);\n }\n return value == null ? styleNull : typeof value === \"function\" ? styleFunction : styleConstant;\n }\n d3_selectionPrototype.property = function(name, value) {\n if (arguments.length < 2) {\n if (typeof name === \"string\") return this.node()[name];\n for (value in name) this.each(d3_selection_property(value, name[value]));\n return this;\n }\n return this.each(d3_selection_property(name, value));\n };\n function d3_selection_property(name, value) {\n function propertyNull() {\n delete this[name];\n }\n function propertyConstant() {\n this[name] = value;\n }\n function propertyFunction() {\n var x = value.apply(this, arguments);\n if (x == null) delete this[name]; else this[name] = x;\n }\n return value == null ? propertyNull : typeof value === \"function\" ? propertyFunction : propertyConstant;\n }\n d3_selectionPrototype.text = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n } : value == null ? function() {\n this.textContent = \"\";\n } : function() {\n this.textContent = value;\n }) : this.node().textContent;\n };\n d3_selectionPrototype.html = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n } : value == null ? function() {\n this.innerHTML = \"\";\n } : function() {\n this.innerHTML = value;\n }) : this.node().innerHTML;\n };\n d3_selectionPrototype.append = function(name) {\n name = d3_selection_creator(name);\n return this.select(function() {\n return this.appendChild(name.apply(this, arguments));\n });\n };\n function d3_selection_creator(name) {\n function create() {\n var document = this.ownerDocument, namespace = this.namespaceURI;\n return namespace === d3_nsXhtml && document.documentElement.namespaceURI === d3_nsXhtml ? document.createElement(name) : document.createElementNS(namespace, name);\n }\n function createNS() {\n return this.ownerDocument.createElementNS(name.space, name.local);\n }\n return typeof name === \"function\" ? name : (name = d3.ns.qualify(name)).local ? createNS : create;\n }\n d3_selectionPrototype.insert = function(name, before) {\n name = d3_selection_creator(name);\n before = d3_selection_selector(before);\n return this.select(function() {\n return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null);\n });\n };\n d3_selectionPrototype.remove = function() {\n return this.each(d3_selectionRemove);\n };\n function d3_selectionRemove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n }\n d3_selectionPrototype.data = function(value, key) {\n var i = -1, n = this.length, group, node;\n if (!arguments.length) {\n value = new Array(n = (group = this[0]).length);\n while (++i < n) {\n if (node = group[i]) {\n value[i] = node.__data__;\n }\n }\n return value;\n }\n function bind(group, groupData) {\n var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;\n if (key) {\n var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue;\n for (i = -1; ++i < n; ) {\n if (node = group[i]) {\n if (nodeByKeyValue.has(keyValue = key.call(node, node.__data__, i))) {\n exitNodes[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n keyValues[i] = keyValue;\n }\n }\n for (i = -1; ++i < m; ) {\n if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) {\n enterNodes[i] = d3_selection_dataNode(nodeData);\n } else if (node !== true) {\n updateNodes[i] = node;\n node.__data__ = nodeData;\n }\n nodeByKeyValue.set(keyValue, true);\n }\n for (i = -1; ++i < n; ) {\n if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) {\n exitNodes[i] = group[i];\n }\n }\n } else {\n for (i = -1; ++i < n0; ) {\n node = group[i];\n nodeData = groupData[i];\n if (node) {\n node.__data__ = nodeData;\n updateNodes[i] = node;\n } else {\n enterNodes[i] = d3_selection_dataNode(nodeData);\n }\n }\n for (;i < m; ++i) {\n enterNodes[i] = d3_selection_dataNode(groupData[i]);\n }\n for (;i < n; ++i) {\n exitNodes[i] = group[i];\n }\n }\n enterNodes.update = updateNodes;\n enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;\n enter.push(enterNodes);\n update.push(updateNodes);\n exit.push(exitNodes);\n }\n var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);\n if (typeof value === \"function\") {\n while (++i < n) {\n bind(group = this[i], value.call(group, group.parentNode.__data__, i));\n }\n } else {\n while (++i < n) {\n bind(group = this[i], value);\n }\n }\n update.enter = function() {\n return enter;\n };\n update.exit = function() {\n return exit;\n };\n return update;\n };\n function d3_selection_dataNode(data) {\n return {\n __data__: data\n };\n }\n d3_selectionPrototype.datum = function(value) {\n return arguments.length ? this.property(\"__data__\", value) : this.property(\"__data__\");\n };\n d3_selectionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_filter(selector) {\n return function() {\n return d3_selectMatches(this, selector);\n };\n }\n d3_selectionPrototype.order = function() {\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n return this;\n };\n d3_selectionPrototype.sort = function(comparator) {\n comparator = d3_selection_sortComparator.apply(this, arguments);\n for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);\n return this.order();\n };\n function d3_selection_sortComparator(comparator) {\n if (!arguments.length) comparator = d3_ascending;\n return function(a, b) {\n return a && b ? comparator(a.__data__, b.__data__) : !a - !b;\n };\n }\n d3_selectionPrototype.each = function(callback) {\n return d3_selection_each(this, function(node, i, j) {\n callback.call(node, node.__data__, i, j);\n });\n };\n function d3_selection_each(groups, callback) {\n for (var j = 0, m = groups.length; j < m; j++) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {\n if (node = group[i]) callback(node, i, j);\n }\n }\n return groups;\n }\n d3_selectionPrototype.call = function(callback) {\n var args = d3_array(arguments);\n callback.apply(args[0] = this, args);\n return this;\n };\n d3_selectionPrototype.empty = function() {\n return !this.node();\n };\n d3_selectionPrototype.node = function() {\n for (var j = 0, m = this.length; j < m; j++) {\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n var node = group[i];\n if (node) return node;\n }\n }\n return null;\n };\n d3_selectionPrototype.size = function() {\n var n = 0;\n d3_selection_each(this, function() {\n ++n;\n });\n return n;\n };\n function d3_selection_enter(selection) {\n d3_subclass(selection, d3_selection_enterPrototype);\n return selection;\n }\n var d3_selection_enterPrototype = [];\n d3.selection.enter = d3_selection_enter;\n d3.selection.enter.prototype = d3_selection_enterPrototype;\n d3_selection_enterPrototype.append = d3_selectionPrototype.append;\n d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;\n d3_selection_enterPrototype.node = d3_selectionPrototype.node;\n d3_selection_enterPrototype.call = d3_selectionPrototype.call;\n d3_selection_enterPrototype.size = d3_selectionPrototype.size;\n d3_selection_enterPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, upgroup, group, node;\n for (var j = -1, m = this.length; ++j < m; ) {\n upgroup = (group = this[j]).update;\n subgroups.push(subgroup = []);\n subgroup.parentNode = group.parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j));\n subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n d3_selection_enterPrototype.insert = function(name, before) {\n if (arguments.length < 2) before = d3_selection_enterInsertBefore(this);\n return d3_selectionPrototype.insert.call(this, name, before);\n };\n function d3_selection_enterInsertBefore(enter) {\n var i0, j0;\n return function(d, i, j) {\n var group = enter[j].update, n = group.length, node;\n if (j != j0) j0 = j, i0 = 0;\n if (i >= i0) i0 = i + 1;\n while (!(node = group[i0]) && ++i0 < n) ;\n return node;\n };\n }\n d3.select = function(node) {\n var group;\n if (typeof node === \"string\") {\n group = [ d3_select(node, d3_document) ];\n group.parentNode = d3_document.documentElement;\n } else {\n group = [ node ];\n group.parentNode = d3_documentElement(node);\n }\n return d3_selection([ group ]);\n };\n d3.selectAll = function(nodes) {\n var group;\n if (typeof nodes === \"string\") {\n group = d3_array(d3_selectAll(nodes, d3_document));\n group.parentNode = d3_document.documentElement;\n } else {\n group = d3_array(nodes);\n group.parentNode = null;\n }\n return d3_selection([ group ]);\n };\n d3_selectionPrototype.on = function(type, listener, capture) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof type !== \"string\") {\n if (n < 2) listener = false;\n for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));\n return this;\n }\n if (n < 2) return (n = this.node()[\"__on\" + type]) && n._;\n capture = false;\n }\n return this.each(d3_selection_on(type, listener, capture));\n };\n function d3_selection_on(type, listener, capture) {\n var name = \"__on\" + type, i = type.indexOf(\".\"), wrap = d3_selection_onListener;\n if (i > 0) type = type.slice(0, i);\n var filter = d3_selection_onFilters.get(type);\n if (filter) type = filter, wrap = d3_selection_onFilter;\n function onRemove() {\n var l = this[name];\n if (l) {\n this.removeEventListener(type, l, l.$);\n delete this[name];\n }\n }\n function onAdd() {\n var l = wrap(listener, d3_array(arguments));\n onRemove.call(this);\n this.addEventListener(type, this[name] = l, l.$ = capture);\n l._ = listener;\n }\n function removeAll() {\n var re = new RegExp(\"^__on([^.]+)\" + d3.requote(type) + \"$\"), match;\n for (var name in this) {\n if (match = name.match(re)) {\n var l = this[name];\n this.removeEventListener(match[1], l, l.$);\n delete this[name];\n }\n }\n }\n return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;\n }\n var d3_selection_onFilters = d3.map({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n });\n if (d3_document) {\n d3_selection_onFilters.forEach(function(k) {\n if (\"on\" + k in d3_document) d3_selection_onFilters.remove(k);\n });\n }\n function d3_selection_onListener(listener, argumentz) {\n return function(e) {\n var o = d3.event;\n d3.event = e;\n argumentz[0] = this.__data__;\n try {\n listener.apply(this, argumentz);\n } finally {\n d3.event = o;\n }\n };\n }\n function d3_selection_onFilter(listener, argumentz) {\n var l = d3_selection_onListener(listener, argumentz);\n return function(e) {\n var target = this, related = e.relatedTarget;\n if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {\n l.call(target, e);\n }\n };\n }\n var d3_event_dragSelect, d3_event_dragId = 0;\n function d3_event_dragSuppress(node) {\n var name = \".dragsuppress-\" + ++d3_event_dragId, click = \"click\" + name, w = d3.select(d3_window(node)).on(\"touchmove\" + name, d3_eventPreventDefault).on(\"dragstart\" + name, d3_eventPreventDefault).on(\"selectstart\" + name, d3_eventPreventDefault);\n if (d3_event_dragSelect == null) {\n d3_event_dragSelect = \"onselectstart\" in node ? false : d3_vendorSymbol(node.style, \"userSelect\");\n }\n if (d3_event_dragSelect) {\n var style = d3_documentElement(node).style, select = style[d3_event_dragSelect];\n style[d3_event_dragSelect] = \"none\";\n }\n return function(suppressClick) {\n w.on(name, null);\n if (d3_event_dragSelect) style[d3_event_dragSelect] = select;\n if (suppressClick) {\n var off = function() {\n w.on(click, null);\n };\n w.on(click, function() {\n d3_eventPreventDefault();\n off();\n }, true);\n setTimeout(off, 0);\n }\n };\n }\n d3.mouse = function(container) {\n return d3_mousePoint(container, d3_eventSource());\n };\n var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;\n function d3_mousePoint(container, e) {\n if (e.changedTouches) e = e.changedTouches[0];\n var svg = container.ownerSVGElement || container;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n if (d3_mouse_bug44083 < 0) {\n var window = d3_window(container);\n if (window.scrollX || window.scrollY) {\n svg = d3.select(\"body\").append(\"svg\").style({\n position: \"absolute\",\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n border: \"none\"\n }, \"important\");\n var ctm = svg[0][0].getScreenCTM();\n d3_mouse_bug44083 = !(ctm.f || ctm.e);\n svg.remove();\n }\n }\n if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX, \n point.y = e.clientY;\n point = point.matrixTransform(container.getScreenCTM().inverse());\n return [ point.x, point.y ];\n }\n var rect = container.getBoundingClientRect();\n return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];\n }\n d3.touch = function(container, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;\n if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return d3_mousePoint(container, touch);\n }\n }\n };\n d3.behavior.drag = function() {\n var event = d3_eventDispatch(drag, \"drag\", \"dragstart\", \"dragend\"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, \"mousemove\", \"mouseup\"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, \"touchmove\", \"touchend\");\n function drag() {\n this.on(\"mousedown.drag\", mousedown).on(\"touchstart.drag\", touchstart);\n }\n function dragstart(id, position, subject, move, end) {\n return function() {\n var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = \".drag\" + (dragId == null ? \"\" : \"-\" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId);\n if (origin) {\n dragOffset = origin.apply(that, arguments);\n dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ];\n } else {\n dragOffset = [ 0, 0 ];\n }\n dispatch({\n type: \"dragstart\"\n });\n function moved() {\n var position1 = position(parent, dragId), dx, dy;\n if (!position1) return;\n dx = position1[0] - position0[0];\n dy = position1[1] - position0[1];\n dragged |= dx | dy;\n position0 = position1;\n dispatch({\n type: \"drag\",\n x: position1[0] + dragOffset[0],\n y: position1[1] + dragOffset[1],\n dx: dx,\n dy: dy\n });\n }\n function ended() {\n if (!position(parent, dragId)) return;\n dragSubject.on(move + dragName, null).on(end + dragName, null);\n dragRestore(dragged);\n dispatch({\n type: \"dragend\"\n });\n }\n };\n }\n drag.origin = function(x) {\n if (!arguments.length) return origin;\n origin = x;\n return drag;\n };\n return d3.rebind(drag, event, \"on\");\n };\n function d3_behavior_dragTouchId() {\n return d3.event.changedTouches[0].identifier;\n }\n d3.touches = function(container, touches) {\n if (arguments.length < 2) touches = d3_eventSource().touches;\n return touches ? d3_array(touches).map(function(touch) {\n var point = d3_mousePoint(container, touch);\n point.identifier = touch.identifier;\n return point;\n }) : [];\n };\n var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;\n function d3_sgn(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n }\n function d3_cross2d(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n }\n function d3_acos(x) {\n return x > 1 ? 0 : x < -1 ? π : Math.acos(x);\n }\n function d3_asin(x) {\n return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);\n }\n function d3_sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n }\n function d3_cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n }\n function d3_tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n }\n function d3_haversin(x) {\n return (x = Math.sin(x / 2)) * x;\n }\n var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4;\n d3.interpolateZoom = function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;\n if (d2 < ε2) {\n S = Math.log(w1 / w0) / ρ;\n i = function(t) {\n return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * t * S) ];\n };\n } else {\n var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / ρ;\n i = function(t) {\n var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0));\n return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ];\n };\n }\n i.duration = S * 1e3;\n return i;\n };\n d3.behavior.zoom = function() {\n var view = {\n x: 0,\n y: 0,\n k: 1\n }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = \"mousedown.zoom\", mousemove = \"mousemove.zoom\", mouseup = \"mouseup.zoom\", mousewheelTimer, touchstart = \"touchstart.zoom\", touchtime, event = d3_eventDispatch(zoom, \"zoomstart\", \"zoom\", \"zoomend\"), x0, x1, y0, y1;\n if (!d3_behavior_zoomWheel) {\n d3_behavior_zoomWheel = \"onwheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);\n }, \"wheel\") : \"onmousewheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return d3.event.wheelDelta;\n }, \"mousewheel\") : (d3_behavior_zoomDelta = function() {\n return -d3.event.detail;\n }, \"MozMousePixelScroll\");\n }\n function zoom(g) {\n g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + \".zoom\", mousewheeled).on(\"dblclick.zoom\", dblclicked).on(touchstart, touchstarted);\n }\n zoom.event = function(g) {\n g.each(function() {\n var dispatch = event.of(this, arguments), view1 = view;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.zoom\", function() {\n view = this.__chart__ || {\n x: 0,\n y: 0,\n k: 1\n };\n zoomstarted(dispatch);\n }).tween(\"zoom:zoom\", function() {\n var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]);\n return function(t) {\n var l = i(t), k = dx / l[2];\n this.__chart__ = view = {\n x: cx - l[0] * k,\n y: cy - l[1] * k,\n k: k\n };\n zoomed(dispatch);\n };\n }).each(\"interrupt.zoom\", function() {\n zoomended(dispatch);\n }).each(\"end.zoom\", function() {\n zoomended(dispatch);\n });\n } else {\n this.__chart__ = view;\n zoomstarted(dispatch);\n zoomed(dispatch);\n zoomended(dispatch);\n }\n });\n };\n zoom.translate = function(_) {\n if (!arguments.length) return [ view.x, view.y ];\n view = {\n x: +_[0],\n y: +_[1],\n k: view.k\n };\n rescale();\n return zoom;\n };\n zoom.scale = function(_) {\n if (!arguments.length) return view.k;\n view = {\n x: view.x,\n y: view.y,\n k: null\n };\n scaleTo(+_);\n rescale();\n return zoom;\n };\n zoom.scaleExtent = function(_) {\n if (!arguments.length) return scaleExtent;\n scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.center = function(_) {\n if (!arguments.length) return center;\n center = _ && [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.size = function(_) {\n if (!arguments.length) return size;\n size = _ && [ +_[0], +_[1] ];\n return zoom;\n };\n zoom.duration = function(_) {\n if (!arguments.length) return duration;\n duration = +_;\n return zoom;\n };\n zoom.x = function(z) {\n if (!arguments.length) return x1;\n x1 = z;\n x0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n zoom.y = function(z) {\n if (!arguments.length) return y1;\n y1 = z;\n y0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n function location(p) {\n return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ];\n }\n function point(l) {\n return [ l[0] * view.k + view.x, l[1] * view.k + view.y ];\n }\n function scaleTo(s) {\n view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));\n }\n function translateTo(p, l) {\n l = point(l);\n view.x += p[0] - l[0];\n view.y += p[1] - l[1];\n }\n function zoomTo(that, p, l, k) {\n that.__chart__ = {\n x: view.x,\n y: view.y,\n k: view.k\n };\n scaleTo(Math.pow(2, k));\n translateTo(center0 = p, l);\n that = d3.select(that);\n if (duration > 0) that = that.transition().duration(duration);\n that.call(zoom.event);\n }\n function rescale() {\n if (x1) x1.domain(x0.range().map(function(x) {\n return (x - view.x) / view.k;\n }).map(x0.invert));\n if (y1) y1.domain(y0.range().map(function(y) {\n return (y - view.y) / view.k;\n }).map(y0.invert));\n }\n function zoomstarted(dispatch) {\n if (!zooming++) dispatch({\n type: \"zoomstart\"\n });\n }\n function zoomed(dispatch) {\n rescale();\n dispatch({\n type: \"zoom\",\n scale: view.k,\n translate: [ view.x, view.y ]\n });\n }\n function zoomended(dispatch) {\n if (!--zooming) dispatch({\n type: \"zoomend\"\n }), center0 = null;\n }\n function mousedowned() {\n var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that);\n d3_selection_interrupt.call(that);\n zoomstarted(dispatch);\n function moved() {\n dragged = 1;\n translateTo(d3.mouse(that), location0);\n zoomed(dispatch);\n }\n function ended() {\n subject.on(mousemove, null).on(mouseup, null);\n dragRestore(dragged);\n zoomended(dispatch);\n }\n }\n function touchstarted() {\n var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = \".zoom-\" + d3.event.changedTouches[0].identifier, touchmove = \"touchmove\" + zoomName, touchend = \"touchend\" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that);\n started();\n zoomstarted(dispatch);\n subject.on(mousedown, null).on(touchstart, started);\n function relocate() {\n var touches = d3.touches(that);\n scale0 = view.k;\n touches.forEach(function(t) {\n if (t.identifier in locations0) locations0[t.identifier] = location(t);\n });\n return touches;\n }\n function started() {\n var target = d3.event.target;\n d3.select(target).on(touchmove, moved).on(touchend, ended);\n targets.push(target);\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n locations0[changed[i].identifier] = null;\n }\n var touches = relocate(), now = Date.now();\n if (touches.length === 1) {\n if (now - touchtime < 500) {\n var p = touches[0];\n zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1);\n d3_eventPreventDefault();\n }\n touchtime = now;\n } else if (touches.length > 1) {\n var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1];\n distance0 = dx * dx + dy * dy;\n }\n }\n function moved() {\n var touches = d3.touches(that), p0, l0, p1, l1;\n d3_selection_interrupt.call(that);\n for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {\n p1 = touches[i];\n if (l1 = locations0[p1.identifier]) {\n if (l0) break;\n p0 = p1, l0 = l1;\n }\n }\n if (l1) {\n var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0);\n p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];\n l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];\n scaleTo(scale1 * scale0);\n }\n touchtime = null;\n translateTo(p0, l0);\n zoomed(dispatch);\n }\n function ended() {\n if (d3.event.touches.length) {\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n delete locations0[changed[i].identifier];\n }\n for (var identifier in locations0) {\n return void relocate();\n }\n }\n d3.selectAll(targets).on(zoomName, null);\n subject.on(mousedown, mousedowned).on(touchstart, touchstarted);\n dragRestore();\n zoomended(dispatch);\n }\n }\n function mousewheeled() {\n var dispatch = event.of(this, arguments);\n if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this), \n translate0 = location(center0 = center || d3.mouse(this)), zoomstarted(dispatch);\n mousewheelTimer = setTimeout(function() {\n mousewheelTimer = null;\n zoomended(dispatch);\n }, 50);\n d3_eventPreventDefault();\n scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);\n translateTo(center0, translate0);\n zoomed(dispatch);\n }\n function dblclicked() {\n var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2;\n zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1);\n }\n return d3.rebind(zoom, event, \"on\");\n };\n var d3_behavior_zoomInfinity = [ 0, Infinity ], d3_behavior_zoomDelta, d3_behavior_zoomWheel;\n d3.color = d3_color;\n function d3_color() {}\n d3_color.prototype.toString = function() {\n return this.rgb() + \"\";\n };\n d3.hsl = d3_hsl;\n function d3_hsl(h, s, l) {\n return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse(\"\" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);\n }\n var d3_hslPrototype = d3_hsl.prototype = new d3_color();\n d3_hslPrototype.brighter = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, this.l / k);\n };\n d3_hslPrototype.darker = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, k * this.l);\n };\n d3_hslPrototype.rgb = function() {\n return d3_hsl_rgb(this.h, this.s, this.l);\n };\n function d3_hsl_rgb(h, s, l) {\n var m1, m2;\n h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;\n s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n m2 = l <= .5 ? l * (1 + s) : l + s - l * s;\n m1 = 2 * l - m2;\n function v(h) {\n if (h > 360) h -= 360; else if (h < 0) h += 360;\n if (h < 60) return m1 + (m2 - m1) * h / 60;\n if (h < 180) return m2;\n if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;\n return m1;\n }\n function vv(h) {\n return Math.round(v(h) * 255);\n }\n return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));\n }\n d3.hcl = d3_hcl;\n function d3_hcl(h, c, l) {\n return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);\n }\n var d3_hclPrototype = d3_hcl.prototype = new d3_color();\n d3_hclPrototype.brighter = function(k) {\n return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.darker = function(k) {\n return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.rgb = function() {\n return d3_hcl_lab(this.h, this.c, this.l).rgb();\n };\n function d3_hcl_lab(h, c, l) {\n if (isNaN(h)) h = 0;\n if (isNaN(c)) c = 0;\n return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);\n }\n d3.lab = d3_lab;\n function d3_lab(l, a, b) {\n return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);\n }\n var d3_lab_K = 18;\n var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;\n var d3_labPrototype = d3_lab.prototype = new d3_color();\n d3_labPrototype.brighter = function(k) {\n return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.darker = function(k) {\n return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.rgb = function() {\n return d3_lab_rgb(this.l, this.a, this.b);\n };\n function d3_lab_rgb(l, a, b) {\n var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;\n x = d3_lab_xyz(x) * d3_lab_X;\n y = d3_lab_xyz(y) * d3_lab_Y;\n z = d3_lab_xyz(z) * d3_lab_Z;\n return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));\n }\n function d3_lab_hcl(l, a, b) {\n return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);\n }\n function d3_lab_xyz(x) {\n return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;\n }\n function d3_xyz_lab(x) {\n return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;\n }\n function d3_xyz_rgb(r) {\n return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));\n }\n d3.rgb = d3_rgb;\n function d3_rgb(r, g, b) {\n return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse(\"\" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);\n }\n function d3_rgbNumber(value) {\n return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);\n }\n function d3_rgbString(value) {\n return d3_rgbNumber(value) + \"\";\n }\n var d3_rgbPrototype = d3_rgb.prototype = new d3_color();\n d3_rgbPrototype.brighter = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n var r = this.r, g = this.g, b = this.b, i = 30;\n if (!r && !g && !b) return new d3_rgb(i, i, i);\n if (r && r < i) r = i;\n if (g && g < i) g = i;\n if (b && b < i) b = i;\n return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));\n };\n d3_rgbPrototype.darker = function(k) {\n k = Math.pow(.7, arguments.length ? k : 1);\n return new d3_rgb(k * this.r, k * this.g, k * this.b);\n };\n d3_rgbPrototype.hsl = function() {\n return d3_rgb_hsl(this.r, this.g, this.b);\n };\n d3_rgbPrototype.toString = function() {\n return \"#\" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);\n };\n function d3_rgb_hex(v) {\n return v < 16 ? \"0\" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);\n }\n function d3_rgb_parse(format, rgb, hsl) {\n var r = 0, g = 0, b = 0, m1, m2, color;\n m1 = /([a-z]+)\\((.*)\\)/.exec(format = format.toLowerCase());\n if (m1) {\n m2 = m1[2].split(\",\");\n switch (m1[1]) {\n case \"hsl\":\n {\n return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);\n }\n\n case \"rgb\":\n {\n return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));\n }\n }\n }\n if (color = d3_rgb_names.get(format)) {\n return rgb(color.r, color.g, color.b);\n }\n if (format != null && format.charAt(0) === \"#\" && !isNaN(color = parseInt(format.slice(1), 16))) {\n if (format.length === 4) {\n r = (color & 3840) >> 4;\n r = r >> 4 | r;\n g = color & 240;\n g = g >> 4 | g;\n b = color & 15;\n b = b << 4 | b;\n } else if (format.length === 7) {\n r = (color & 16711680) >> 16;\n g = (color & 65280) >> 8;\n b = color & 255;\n }\n }\n return rgb(r, g, b);\n }\n function d3_rgb_hsl(r, g, b) {\n var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;\n if (d) {\n s = l < .5 ? d / (max + min) : d / (2 - max - min);\n if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;\n h *= 60;\n } else {\n h = NaN;\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new d3_hsl(h, s, l);\n }\n function d3_rgb_lab(r, g, b) {\n r = d3_rgb_xyz(r);\n g = d3_rgb_xyz(g);\n b = d3_rgb_xyz(b);\n var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);\n return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));\n }\n function d3_rgb_xyz(r) {\n return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);\n }\n function d3_rgb_parseNumber(c) {\n var f = parseFloat(c);\n return c.charAt(c.length - 1) === \"%\" ? Math.round(f * 2.55) : f;\n }\n var d3_rgb_names = d3.map({\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n });\n d3_rgb_names.forEach(function(key, value) {\n d3_rgb_names.set(key, d3_rgbNumber(value));\n });\n function d3_functor(v) {\n return typeof v === \"function\" ? v : function() {\n return v;\n };\n }\n d3.functor = d3_functor;\n d3.xhr = d3_xhrType(d3_identity);\n function d3_xhrType(response) {\n return function(url, mimeType, callback) {\n if (arguments.length === 2 && typeof mimeType === \"function\") callback = mimeType, \n mimeType = null;\n return d3_xhr(url, mimeType, response, callback);\n };\n }\n function d3_xhr(url, mimeType, response, callback) {\n var xhr = {}, dispatch = d3.dispatch(\"beforesend\", \"progress\", \"load\", \"error\"), headers = {}, request = new XMLHttpRequest(), responseType = null;\n if (this.XDomainRequest && !(\"withCredentials\" in request) && /^(http(s)?:)?\\/\\//.test(url)) request = new XDomainRequest();\n \"onload\" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {\n request.readyState > 3 && respond();\n };\n function respond() {\n var status = request.status, result;\n if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) {\n try {\n result = response.call(xhr, request);\n } catch (e) {\n dispatch.error.call(xhr, e);\n return;\n }\n dispatch.load.call(xhr, result);\n } else {\n dispatch.error.call(xhr, request);\n }\n }\n request.onprogress = function(event) {\n var o = d3.event;\n d3.event = event;\n try {\n dispatch.progress.call(xhr, request);\n } finally {\n d3.event = o;\n }\n };\n xhr.header = function(name, value) {\n name = (name + \"\").toLowerCase();\n if (arguments.length < 2) return headers[name];\n if (value == null) delete headers[name]; else headers[name] = value + \"\";\n return xhr;\n };\n xhr.mimeType = function(value) {\n if (!arguments.length) return mimeType;\n mimeType = value == null ? null : value + \"\";\n return xhr;\n };\n xhr.responseType = function(value) {\n if (!arguments.length) return responseType;\n responseType = value;\n return xhr;\n };\n xhr.response = function(value) {\n response = value;\n return xhr;\n };\n [ \"get\", \"post\" ].forEach(function(method) {\n xhr[method] = function() {\n return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));\n };\n });\n xhr.send = function(method, data, callback) {\n if (arguments.length === 2 && typeof data === \"function\") callback = data, data = null;\n request.open(method, url, true);\n if (mimeType != null && !(\"accept\" in headers)) headers[\"accept\"] = mimeType + \",*/*\";\n if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);\n if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);\n if (responseType != null) request.responseType = responseType;\n if (callback != null) xhr.on(\"error\", callback).on(\"load\", function(request) {\n callback(null, request);\n });\n dispatch.beforesend.call(xhr, request);\n request.send(data == null ? null : data);\n return xhr;\n };\n xhr.abort = function() {\n request.abort();\n return xhr;\n };\n d3.rebind(xhr, dispatch, \"on\");\n return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));\n }\n function d3_xhr_fixCallback(callback) {\n return callback.length === 1 ? function(error, request) {\n callback(error == null ? request : null);\n } : callback;\n }\n function d3_xhrHasResponse(request) {\n var type = request.responseType;\n return type && type !== \"text\" ? request.response : request.responseText;\n }\n d3.dsv = function(delimiter, mimeType) {\n var reFormat = new RegExp('[\"' + delimiter + \"\\n]\"), delimiterCode = delimiter.charCodeAt(0);\n function dsv(url, row, callback) {\n if (arguments.length < 3) callback = row, row = null;\n var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback);\n xhr.row = function(_) {\n return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;\n };\n return xhr;\n }\n function response(request) {\n return dsv.parse(request.responseText);\n }\n function typedResponse(f) {\n return function(request) {\n return dsv.parse(request.responseText, f);\n };\n }\n dsv.parse = function(text, f) {\n var o;\n return dsv.parseRows(text, function(row, i) {\n if (o) return o(row, i - 1);\n var a = new Function(\"d\", \"return {\" + row.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"]\";\n }).join(\",\") + \"}\");\n o = f ? function(row, i) {\n return f(a(row), i);\n } : a;\n });\n };\n dsv.parseRows = function(text, f) {\n var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;\n function token() {\n if (I >= N) return EOF;\n if (eol) return eol = false, EOL;\n var j = I;\n if (text.charCodeAt(j) === 34) {\n var i = j;\n while (i++ < N) {\n if (text.charCodeAt(i) === 34) {\n if (text.charCodeAt(i + 1) !== 34) break;\n ++i;\n }\n }\n I = i + 2;\n var c = text.charCodeAt(i + 1);\n if (c === 13) {\n eol = true;\n if (text.charCodeAt(i + 2) === 10) ++I;\n } else if (c === 10) {\n eol = true;\n }\n return text.slice(j + 1, i).replace(/\"\"/g, '\"');\n }\n while (I < N) {\n var c = text.charCodeAt(I++), k = 1;\n if (c === 10) eol = true; else if (c === 13) {\n eol = true;\n if (text.charCodeAt(I) === 10) ++I, ++k;\n } else if (c !== delimiterCode) continue;\n return text.slice(j, I - k);\n }\n return text.slice(j);\n }\n while ((t = token()) !== EOF) {\n var a = [];\n while (t !== EOL && t !== EOF) {\n a.push(t);\n t = token();\n }\n if (f && (a = f(a, n++)) == null) continue;\n rows.push(a);\n }\n return rows;\n };\n dsv.format = function(rows) {\n if (Array.isArray(rows[0])) return dsv.formatRows(rows);\n var fieldSet = new d3_Set(), fields = [];\n rows.forEach(function(row) {\n for (var field in row) {\n if (!fieldSet.has(field)) {\n fields.push(fieldSet.add(field));\n }\n }\n });\n return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) {\n return fields.map(function(field) {\n return formatValue(row[field]);\n }).join(delimiter);\n })).join(\"\\n\");\n };\n dsv.formatRows = function(rows) {\n return rows.map(formatRow).join(\"\\n\");\n };\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n function formatValue(text) {\n return reFormat.test(text) ? '\"' + text.replace(/\\\"/g, '\"\"') + '\"' : text;\n }\n return dsv;\n };\n d3.csv = d3.dsv(\",\", \"text/csv\");\n d3.tsv = d3.dsv(\"\t\", \"text/tab-separated-values\");\n var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, \"requestAnimationFrame\")] || function(callback) {\n setTimeout(callback, 17);\n };\n d3.timer = function() {\n d3_timer.apply(this, arguments);\n };\n function d3_timer(callback, delay, then) {\n var n = arguments.length;\n if (n < 2) delay = 0;\n if (n < 3) then = Date.now();\n var time = then + delay, timer = {\n c: callback,\n t: time,\n n: null\n };\n if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer;\n d3_timer_queueTail = timer;\n if (!d3_timer_interval) {\n d3_timer_timeout = clearTimeout(d3_timer_timeout);\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n return timer;\n }\n function d3_timer_step() {\n var now = d3_timer_mark(), delay = d3_timer_sweep() - now;\n if (delay > 24) {\n if (isFinite(delay)) {\n clearTimeout(d3_timer_timeout);\n d3_timer_timeout = setTimeout(d3_timer_step, delay);\n }\n d3_timer_interval = 0;\n } else {\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n }\n d3.timer.flush = function() {\n d3_timer_mark();\n d3_timer_sweep();\n };\n function d3_timer_mark() {\n var now = Date.now(), timer = d3_timer_queueHead;\n while (timer) {\n if (now >= timer.t && timer.c(now - timer.t)) timer.c = null;\n timer = timer.n;\n }\n return now;\n }\n function d3_timer_sweep() {\n var t0, t1 = d3_timer_queueHead, time = Infinity;\n while (t1) {\n if (t1.c) {\n if (t1.t < time) time = t1.t;\n t1 = (t0 = t1).n;\n } else {\n t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;\n }\n }\n d3_timer_queueTail = t0;\n return time;\n }\n function d3_format_precision(x, p) {\n return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);\n }\n d3.round = function(x, n) {\n return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);\n };\n var d3_formatPrefixes = [ \"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"µ\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\" ].map(d3_formatPrefix);\n d3.formatPrefix = function(value, precision) {\n var i = 0;\n if (value = +value) {\n if (value < 0) value *= -1;\n if (precision) value = d3.round(value, d3_format_precision(value, precision));\n i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);\n i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));\n }\n return d3_formatPrefixes[8 + i / 3];\n };\n function d3_formatPrefix(d, i) {\n var k = Math.pow(10, abs(8 - i) * 3);\n return {\n scale: i > 8 ? function(d) {\n return d / k;\n } : function(d) {\n return d * k;\n },\n symbol: d\n };\n }\n function d3_locale_numberFormat(locale) {\n var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping && locale_thousands ? function(value, width) {\n var i = value.length, t = [], j = 0, g = locale_grouping[0], length = 0;\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = locale_grouping[j = (j + 1) % locale_grouping.length];\n }\n return t.reverse().join(locale_thousands);\n } : d3_identity;\n return function(specifier) {\n var match = d3_format_re.exec(specifier), fill = match[1] || \" \", align = match[2] || \">\", sign = match[3] || \"-\", symbol = match[4] || \"\", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = \"\", suffix = \"\", integer = false, exponent = true;\n if (precision) precision = +precision.substring(1);\n if (zfill || fill === \"0\" && align === \"=\") {\n zfill = fill = \"0\";\n align = \"=\";\n }\n switch (type) {\n case \"n\":\n comma = true;\n type = \"g\";\n break;\n\n case \"%\":\n scale = 100;\n suffix = \"%\";\n type = \"f\";\n break;\n\n case \"p\":\n scale = 100;\n suffix = \"%\";\n type = \"r\";\n break;\n\n case \"b\":\n case \"o\":\n case \"x\":\n case \"X\":\n if (symbol === \"#\") prefix = \"0\" + type.toLowerCase();\n\n case \"c\":\n exponent = false;\n\n case \"d\":\n integer = true;\n precision = 0;\n break;\n\n case \"s\":\n scale = -1;\n type = \"r\";\n break;\n }\n if (symbol === \"$\") prefix = locale_currency[0], suffix = locale_currency[1];\n if (type == \"r\" && !precision) type = \"g\";\n if (precision != null) {\n if (type == \"g\") precision = Math.max(1, Math.min(21, precision)); else if (type == \"e\" || type == \"f\") precision = Math.max(0, Math.min(20, precision));\n }\n type = d3_format_types.get(type) || d3_format_typeDefault;\n var zcomma = zfill && comma;\n return function(value) {\n var fullSuffix = suffix;\n if (integer && value % 1) return \"\";\n var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, \"-\") : sign === \"-\" ? \"\" : sign;\n if (scale < 0) {\n var unit = d3.formatPrefix(value, precision);\n value = unit.scale(value);\n fullSuffix = unit.symbol + suffix;\n } else {\n value *= scale;\n }\n value = type(value, precision);\n var i = value.lastIndexOf(\".\"), before, after;\n if (i < 0) {\n var j = exponent ? value.lastIndexOf(\"e\") : -1;\n if (j < 0) before = value, after = \"\"; else before = value.substring(0, j), after = value.substring(j);\n } else {\n before = value.substring(0, i);\n after = locale_decimal + value.substring(i + 1);\n }\n if (!zfill && comma) before = formatGroup(before, Infinity);\n var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : \"\";\n if (zcomma) before = formatGroup(padding + before, padding.length ? width - after.length : Infinity);\n negative += prefix;\n value = before + after;\n return (align === \"<\" ? negative + value + padding : align === \">\" ? padding + negative + value : align === \"^\" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix;\n };\n };\n }\n var d3_format_re = /(?:([^{])?([<>=^]))?([+\\- ])?([$#])?(0)?(\\d+)?(,)?(\\.-?\\d+)?([a-z%])?/i;\n var d3_format_types = d3.map({\n b: function(x) {\n return x.toString(2);\n },\n c: function(x) {\n return String.fromCharCode(x);\n },\n o: function(x) {\n return x.toString(8);\n },\n x: function(x) {\n return x.toString(16);\n },\n X: function(x) {\n return x.toString(16).toUpperCase();\n },\n g: function(x, p) {\n return x.toPrecision(p);\n },\n e: function(x, p) {\n return x.toExponential(p);\n },\n f: function(x, p) {\n return x.toFixed(p);\n },\n r: function(x, p) {\n return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));\n }\n });\n function d3_format_typeDefault(x) {\n return x + \"\";\n }\n var d3_time = d3.time = {}, d3_date = Date;\n function d3_date_utc() {\n this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);\n }\n d3_date_utc.prototype = {\n getDate: function() {\n return this._.getUTCDate();\n },\n getDay: function() {\n return this._.getUTCDay();\n },\n getFullYear: function() {\n return this._.getUTCFullYear();\n },\n getHours: function() {\n return this._.getUTCHours();\n },\n getMilliseconds: function() {\n return this._.getUTCMilliseconds();\n },\n getMinutes: function() {\n return this._.getUTCMinutes();\n },\n getMonth: function() {\n return this._.getUTCMonth();\n },\n getSeconds: function() {\n return this._.getUTCSeconds();\n },\n getTime: function() {\n return this._.getTime();\n },\n getTimezoneOffset: function() {\n return 0;\n },\n valueOf: function() {\n return this._.valueOf();\n },\n setDate: function() {\n d3_time_prototype.setUTCDate.apply(this._, arguments);\n },\n setDay: function() {\n d3_time_prototype.setUTCDay.apply(this._, arguments);\n },\n setFullYear: function() {\n d3_time_prototype.setUTCFullYear.apply(this._, arguments);\n },\n setHours: function() {\n d3_time_prototype.setUTCHours.apply(this._, arguments);\n },\n setMilliseconds: function() {\n d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);\n },\n setMinutes: function() {\n d3_time_prototype.setUTCMinutes.apply(this._, arguments);\n },\n setMonth: function() {\n d3_time_prototype.setUTCMonth.apply(this._, arguments);\n },\n setSeconds: function() {\n d3_time_prototype.setUTCSeconds.apply(this._, arguments);\n },\n setTime: function() {\n d3_time_prototype.setTime.apply(this._, arguments);\n }\n };\n var d3_time_prototype = Date.prototype;\n function d3_time_interval(local, step, number) {\n function round(date) {\n var d0 = local(date), d1 = offset(d0, 1);\n return date - d0 < d1 - date ? d0 : d1;\n }\n function ceil(date) {\n step(date = local(new d3_date(date - 1)), 1);\n return date;\n }\n function offset(date, k) {\n step(date = new d3_date(+date), k);\n return date;\n }\n function range(t0, t1, dt) {\n var time = ceil(t0), times = [];\n if (dt > 1) {\n while (time < t1) {\n if (!(number(time) % dt)) times.push(new Date(+time));\n step(time, 1);\n }\n } else {\n while (time < t1) times.push(new Date(+time)), step(time, 1);\n }\n return times;\n }\n function range_utc(t0, t1, dt) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date_utc();\n utc._ = t0;\n return range(utc, t1, dt);\n } finally {\n d3_date = Date;\n }\n }\n local.floor = local;\n local.round = round;\n local.ceil = ceil;\n local.offset = offset;\n local.range = range;\n var utc = local.utc = d3_time_interval_utc(local);\n utc.floor = utc;\n utc.round = d3_time_interval_utc(round);\n utc.ceil = d3_time_interval_utc(ceil);\n utc.offset = d3_time_interval_utc(offset);\n utc.range = range_utc;\n return local;\n }\n function d3_time_interval_utc(method) {\n return function(date, k) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date_utc();\n utc._ = date;\n return method(utc, k)._;\n } finally {\n d3_date = Date;\n }\n };\n }\n d3_time.year = d3_time_interval(function(date) {\n date = d3_time.day(date);\n date.setMonth(0, 1);\n return date;\n }, function(date, offset) {\n date.setFullYear(date.getFullYear() + offset);\n }, function(date) {\n return date.getFullYear();\n });\n d3_time.years = d3_time.year.range;\n d3_time.years.utc = d3_time.year.utc.range;\n d3_time.day = d3_time_interval(function(date) {\n var day = new d3_date(2e3, 0);\n day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n return day;\n }, function(date, offset) {\n date.setDate(date.getDate() + offset);\n }, function(date) {\n return date.getDate() - 1;\n });\n d3_time.days = d3_time.day.range;\n d3_time.days.utc = d3_time.day.utc.range;\n d3_time.dayOfYear = function(date) {\n var year = d3_time.year(date);\n return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);\n };\n [ \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\" ].forEach(function(day, i) {\n i = 7 - i;\n var interval = d3_time[day] = d3_time_interval(function(date) {\n (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);\n return date;\n }, function(date, offset) {\n date.setDate(date.getDate() + Math.floor(offset) * 7);\n }, function(date) {\n var day = d3_time.year(date).getDay();\n return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);\n });\n d3_time[day + \"s\"] = interval.range;\n d3_time[day + \"s\"].utc = interval.utc.range;\n d3_time[day + \"OfYear\"] = function(date) {\n var day = d3_time.year(date).getDay();\n return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7);\n };\n });\n d3_time.week = d3_time.sunday;\n d3_time.weeks = d3_time.sunday.range;\n d3_time.weeks.utc = d3_time.sunday.utc.range;\n d3_time.weekOfYear = d3_time.sundayOfYear;\n function d3_locale_timeFormat(locale) {\n var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths;\n function d3_time_format(template) {\n var n = template.length;\n function format(date) {\n var string = [], i = -1, j = 0, c, p, f;\n while (++i < n) {\n if (template.charCodeAt(i) === 37) {\n string.push(template.slice(j, i));\n if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);\n if (f = d3_time_formats[c]) c = f(date, p == null ? c === \"e\" ? \" \" : \"0\" : p);\n string.push(c);\n j = i + 1;\n }\n }\n string.push(template.slice(j, i));\n return string.join(\"\");\n }\n format.parse = function(string) {\n var d = {\n y: 1900,\n m: 0,\n d: 1,\n H: 0,\n M: 0,\n S: 0,\n L: 0,\n Z: null\n }, i = d3_time_parse(d, template, string, 0);\n if (i != string.length) return null;\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)();\n if (\"j\" in d) date.setFullYear(d.y, 0, d.j); else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"W\" in d ? 1 : 0;\n date.setFullYear(d.y, 0, 1);\n date.setFullYear(d.y, 0, \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7);\n } else date.setFullYear(d.y, d.m, d.d);\n date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L);\n return localZ ? date._ : date;\n };\n format.toString = function() {\n return template;\n };\n return format;\n }\n function d3_time_parse(date, template, string, j) {\n var c, p, t, i = 0, n = template.length, m = string.length;\n while (i < n) {\n if (j >= m) return -1;\n c = template.charCodeAt(i++);\n if (c === 37) {\n t = template.charAt(i++);\n p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t];\n if (!p || (j = p(date, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n return j;\n }\n d3_time_format.utc = function(template) {\n var local = d3_time_format(template);\n function format(date) {\n try {\n d3_date = d3_date_utc;\n var utc = new d3_date();\n utc._ = date;\n return local(utc);\n } finally {\n d3_date = Date;\n }\n }\n format.parse = function(string) {\n try {\n d3_date = d3_date_utc;\n var date = local.parse(string);\n return date && date._;\n } finally {\n d3_date = Date;\n }\n };\n format.toString = local.toString;\n return format;\n };\n d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti;\n var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths);\n locale_periods.forEach(function(p, i) {\n d3_time_periodLookup.set(p.toLowerCase(), i);\n });\n var d3_time_formats = {\n a: function(d) {\n return locale_shortDays[d.getDay()];\n },\n A: function(d) {\n return locale_days[d.getDay()];\n },\n b: function(d) {\n return locale_shortMonths[d.getMonth()];\n },\n B: function(d) {\n return locale_months[d.getMonth()];\n },\n c: d3_time_format(locale_dateTime),\n d: function(d, p) {\n return d3_time_formatPad(d.getDate(), p, 2);\n },\n e: function(d, p) {\n return d3_time_formatPad(d.getDate(), p, 2);\n },\n H: function(d, p) {\n return d3_time_formatPad(d.getHours(), p, 2);\n },\n I: function(d, p) {\n return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);\n },\n j: function(d, p) {\n return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3);\n },\n L: function(d, p) {\n return d3_time_formatPad(d.getMilliseconds(), p, 3);\n },\n m: function(d, p) {\n return d3_time_formatPad(d.getMonth() + 1, p, 2);\n },\n M: function(d, p) {\n return d3_time_formatPad(d.getMinutes(), p, 2);\n },\n p: function(d) {\n return locale_periods[+(d.getHours() >= 12)];\n },\n S: function(d, p) {\n return d3_time_formatPad(d.getSeconds(), p, 2);\n },\n U: function(d, p) {\n return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2);\n },\n w: function(d) {\n return d.getDay();\n },\n W: function(d, p) {\n return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2);\n },\n x: d3_time_format(locale_date),\n X: d3_time_format(locale_time),\n y: function(d, p) {\n return d3_time_formatPad(d.getFullYear() % 100, p, 2);\n },\n Y: function(d, p) {\n return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);\n },\n Z: d3_time_zone,\n \"%\": function() {\n return \"%\";\n }\n };\n var d3_time_parsers = {\n a: d3_time_parseWeekdayAbbrev,\n A: d3_time_parseWeekday,\n b: d3_time_parseMonthAbbrev,\n B: d3_time_parseMonth,\n c: d3_time_parseLocaleFull,\n d: d3_time_parseDay,\n e: d3_time_parseDay,\n H: d3_time_parseHour24,\n I: d3_time_parseHour24,\n j: d3_time_parseDayOfYear,\n L: d3_time_parseMilliseconds,\n m: d3_time_parseMonthNumber,\n M: d3_time_parseMinutes,\n p: d3_time_parseAmPm,\n S: d3_time_parseSeconds,\n U: d3_time_parseWeekNumberSunday,\n w: d3_time_parseWeekdayNumber,\n W: d3_time_parseWeekNumberMonday,\n x: d3_time_parseLocaleDate,\n X: d3_time_parseLocaleTime,\n y: d3_time_parseYear,\n Y: d3_time_parseFullYear,\n Z: d3_time_parseZone,\n \"%\": d3_time_parseLiteralPercent\n };\n function d3_time_parseWeekdayAbbrev(date, string, i) {\n d3_time_dayAbbrevRe.lastIndex = 0;\n var n = d3_time_dayAbbrevRe.exec(string.slice(i));\n return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseWeekday(date, string, i) {\n d3_time_dayRe.lastIndex = 0;\n var n = d3_time_dayRe.exec(string.slice(i));\n return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseMonthAbbrev(date, string, i) {\n d3_time_monthAbbrevRe.lastIndex = 0;\n var n = d3_time_monthAbbrevRe.exec(string.slice(i));\n return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseMonth(date, string, i) {\n d3_time_monthRe.lastIndex = 0;\n var n = d3_time_monthRe.exec(string.slice(i));\n return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n function d3_time_parseLocaleFull(date, string, i) {\n return d3_time_parse(date, d3_time_formats.c.toString(), string, i);\n }\n function d3_time_parseLocaleDate(date, string, i) {\n return d3_time_parse(date, d3_time_formats.x.toString(), string, i);\n }\n function d3_time_parseLocaleTime(date, string, i) {\n return d3_time_parse(date, d3_time_formats.X.toString(), string, i);\n }\n function d3_time_parseAmPm(date, string, i) {\n var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase());\n return n == null ? -1 : (date.p = n, i);\n }\n return d3_time_format;\n }\n var d3_time_formatPads = {\n \"-\": \"\",\n _: \" \",\n \"0\": \"0\"\n }, d3_time_numberRe = /^\\s*\\d+/, d3_time_percentRe = /^%/;\n function d3_time_formatPad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\", string = (sign ? -value : value) + \"\", length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n }\n function d3_time_formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(d3.requote).join(\"|\") + \")\", \"i\");\n }\n function d3_time_formatLookup(names) {\n var map = new d3_Map(), i = -1, n = names.length;\n while (++i < n) map.set(names[i].toLowerCase(), i);\n return map;\n }\n function d3_time_parseWeekdayNumber(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 1));\n return n ? (date.w = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseWeekNumberSunday(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i));\n return n ? (date.U = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseWeekNumberMonday(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i));\n return n ? (date.W = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseFullYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 4));\n return n ? (date.y = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1;\n }\n function d3_time_parseZone(date, string, i) {\n return /^[+-]\\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string, \n i + 5) : -1;\n }\n function d3_time_expandYear(d) {\n return d + (d > 68 ? 1900 : 2e3);\n }\n function d3_time_parseMonthNumber(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.m = n[0] - 1, i + n[0].length) : -1;\n }\n function d3_time_parseDay(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.d = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseDayOfYear(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 3));\n return n ? (date.j = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseHour24(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.H = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseMinutes(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.M = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseSeconds(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 2));\n return n ? (date.S = +n[0], i + n[0].length) : -1;\n }\n function d3_time_parseMilliseconds(date, string, i) {\n d3_time_numberRe.lastIndex = 0;\n var n = d3_time_numberRe.exec(string.slice(i, i + 3));\n return n ? (date.L = +n[0], i + n[0].length) : -1;\n }\n function d3_time_zone(d) {\n var z = d.getTimezoneOffset(), zs = z > 0 ? \"-\" : \"+\", zh = abs(z) / 60 | 0, zm = abs(z) % 60;\n return zs + d3_time_formatPad(zh, \"0\", 2) + d3_time_formatPad(zm, \"0\", 2);\n }\n function d3_time_parseLiteralPercent(date, string, i) {\n d3_time_percentRe.lastIndex = 0;\n var n = d3_time_percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n }\n function d3_time_formatMulti(formats) {\n var n = formats.length, i = -1;\n while (++i < n) formats[i][0] = this(formats[i][0]);\n return function(date) {\n var i = 0, f = formats[i];\n while (!f[1](date)) f = formats[++i];\n return f[0](date);\n };\n }\n d3.locale = function(locale) {\n return {\n numberFormat: d3_locale_numberFormat(locale),\n timeFormat: d3_locale_timeFormat(locale)\n };\n };\n var d3_locale_enUS = d3.locale({\n decimal: \".\",\n thousands: \",\",\n grouping: [ 3 ],\n currency: [ \"$\", \"\" ],\n dateTime: \"%a %b %e %X %Y\",\n date: \"%m/%d/%Y\",\n time: \"%H:%M:%S\",\n periods: [ \"AM\", \"PM\" ],\n days: [ \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" ],\n shortDays: [ \"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\" ],\n months: [ \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ],\n shortMonths: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\" ]\n });\n d3.format = d3_locale_enUS.numberFormat;\n d3.geo = {};\n function d3_adder() {}\n d3_adder.prototype = {\n s: 0,\n t: 0,\n add: function(y) {\n d3_adderSum(y, this.t, d3_adderTemp);\n d3_adderSum(d3_adderTemp.s, this.s, this);\n if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t;\n },\n reset: function() {\n this.s = this.t = 0;\n },\n valueOf: function() {\n return this.s;\n }\n };\n var d3_adderTemp = new d3_adder();\n function d3_adderSum(a, b, o) {\n var x = o.s = a + b, bv = x - a, av = x - bv;\n o.t = a - av + (b - bv);\n }\n d3.geo.stream = function(object, listener) {\n if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {\n d3_geo_streamObjectType[object.type](object, listener);\n } else {\n d3_geo_streamGeometry(object, listener);\n }\n };\n function d3_geo_streamGeometry(geometry, listener) {\n if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {\n d3_geo_streamGeometryType[geometry.type](geometry, listener);\n }\n }\n var d3_geo_streamObjectType = {\n Feature: function(feature, listener) {\n d3_geo_streamGeometry(feature.geometry, listener);\n },\n FeatureCollection: function(object, listener) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);\n }\n };\n var d3_geo_streamGeometryType = {\n Sphere: function(object, listener) {\n listener.sphere();\n },\n Point: function(object, listener) {\n object = object.coordinates;\n listener.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]);\n },\n LineString: function(object, listener) {\n d3_geo_streamLine(object.coordinates, listener, 0);\n },\n MultiLineString: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);\n },\n Polygon: function(object, listener) {\n d3_geo_streamPolygon(object.coordinates, listener);\n },\n MultiPolygon: function(object, listener) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);\n },\n GeometryCollection: function(object, listener) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) d3_geo_streamGeometry(geometries[i], listener);\n }\n };\n function d3_geo_streamLine(coordinates, listener, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n listener.lineStart();\n while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]);\n listener.lineEnd();\n }\n function d3_geo_streamPolygon(coordinates, listener) {\n var i = -1, n = coordinates.length;\n listener.polygonStart();\n while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);\n listener.polygonEnd();\n }\n d3.geo.area = function(object) {\n d3_geo_areaSum = 0;\n d3.geo.stream(object, d3_geo_area);\n return d3_geo_areaSum;\n };\n var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder();\n var d3_geo_area = {\n sphere: function() {\n d3_geo_areaSum += 4 * π;\n },\n point: d3_noop,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: function() {\n d3_geo_areaRingSum.reset();\n d3_geo_area.lineStart = d3_geo_areaRingStart;\n },\n polygonEnd: function() {\n var area = 2 * d3_geo_areaRingSum;\n d3_geo_areaSum += area < 0 ? 4 * π + area : area;\n d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;\n }\n };\n function d3_geo_areaRingStart() {\n var λ00, φ00, λ0, cosφ0, sinφ0;\n d3_geo_area.point = function(λ, φ) {\n d3_geo_area.point = nextPoint;\n λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4), \n sinφ0 = Math.sin(φ);\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n φ = φ * d3_radians / 2 + π / 4;\n var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ);\n d3_geo_areaRingSum.add(Math.atan2(v, u));\n λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;\n }\n d3_geo_area.lineEnd = function() {\n nextPoint(λ00, φ00);\n };\n }\n function d3_geo_cartesian(spherical) {\n var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);\n return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];\n }\n function d3_geo_cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n }\n function d3_geo_cartesianCross(a, b) {\n return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];\n }\n function d3_geo_cartesianAdd(a, b) {\n a[0] += b[0];\n a[1] += b[1];\n a[2] += b[2];\n }\n function d3_geo_cartesianScale(vector, k) {\n return [ vector[0] * k, vector[1] * k, vector[2] * k ];\n }\n function d3_geo_cartesianNormalize(d) {\n var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l;\n d[1] /= l;\n d[2] /= l;\n }\n function d3_geo_spherical(cartesian) {\n return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ];\n }\n function d3_geo_sphericalEqual(a, b) {\n return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε;\n }\n d3.geo.bounds = function() {\n var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range;\n var bound = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n bound.point = ringPoint;\n bound.lineStart = ringStart;\n bound.lineEnd = ringEnd;\n dλSum = 0;\n d3_geo_area.polygonStart();\n },\n polygonEnd: function() {\n d3_geo_area.polygonEnd();\n bound.point = point;\n bound.lineStart = lineStart;\n bound.lineEnd = lineEnd;\n if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90;\n range[0] = λ0, range[1] = λ1;\n }\n };\n function point(λ, φ) {\n ranges.push(range = [ λ0 = λ, λ1 = λ ]);\n if (φ < φ0) φ0 = φ;\n if (φ > φ1) φ1 = φ;\n }\n function linePoint(λ, φ) {\n var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]);\n if (p0) {\n var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal);\n d3_geo_cartesianNormalize(inflection);\n inflection = d3_geo_spherical(inflection);\n var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180;\n if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) {\n var φi = inflection[1] * d3_degrees;\n if (φi > φ1) φ1 = φi;\n } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) {\n var φi = -inflection[1] * d3_degrees;\n if (φi < φ0) φ0 = φi;\n } else {\n if (φ < φ0) φ0 = φ;\n if (φ > φ1) φ1 = φ;\n }\n if (antimeridian) {\n if (λ < λ_) {\n if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;\n } else {\n if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;\n }\n } else {\n if (λ1 >= λ0) {\n if (λ < λ0) λ0 = λ;\n if (λ > λ1) λ1 = λ;\n } else {\n if (λ > λ_) {\n if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;\n } else {\n if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;\n }\n }\n }\n } else {\n point(λ, φ);\n }\n p0 = p, λ_ = λ;\n }\n function lineStart() {\n bound.point = linePoint;\n }\n function lineEnd() {\n range[0] = λ0, range[1] = λ1;\n bound.point = point;\n p0 = null;\n }\n function ringPoint(λ, φ) {\n if (p0) {\n var dλ = λ - λ_;\n dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;\n } else λ__ = λ, φ__ = φ;\n d3_geo_area.point(λ, φ);\n linePoint(λ, φ);\n }\n function ringStart() {\n d3_geo_area.lineStart();\n }\n function ringEnd() {\n ringPoint(λ__, φ__);\n d3_geo_area.lineEnd();\n if (abs(dλSum) > ε) λ0 = -(λ1 = 180);\n range[0] = λ0, range[1] = λ1;\n p0 = null;\n }\n function angle(λ0, λ1) {\n return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1;\n }\n function compareRanges(a, b) {\n return a[0] - b[0];\n }\n function withinRange(x, range) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n }\n return function(feature) {\n φ1 = λ1 = -(λ0 = φ0 = Infinity);\n ranges = [];\n d3.geo.stream(feature, bound);\n var n = ranges.length;\n if (n) {\n ranges.sort(compareRanges);\n for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) {\n b = ranges[i];\n if (withinRange(b[0], a) || withinRange(b[1], a)) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n var best = -Infinity, dλ;\n for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) {\n b = merged[i];\n if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1];\n }\n }\n ranges = range = null;\n return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ];\n };\n }();\n d3.geo.centroid = function(object) {\n d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;\n d3.geo.stream(object, d3_geo_centroid);\n var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z;\n if (m < ε2) {\n x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1;\n if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0;\n m = x * x + y * y + z * z;\n if (m < ε2) return [ NaN, NaN ];\n }\n return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ];\n };\n var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2;\n var d3_geo_centroid = {\n sphere: d3_noop,\n point: d3_geo_centroidPoint,\n lineStart: d3_geo_centroidLineStart,\n lineEnd: d3_geo_centroidLineEnd,\n polygonStart: function() {\n d3_geo_centroid.lineStart = d3_geo_centroidRingStart;\n },\n polygonEnd: function() {\n d3_geo_centroid.lineStart = d3_geo_centroidLineStart;\n }\n };\n function d3_geo_centroidPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ));\n }\n function d3_geo_centroidPointXYZ(x, y, z) {\n ++d3_geo_centroidW0;\n d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0;\n d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0;\n d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0;\n }\n function d3_geo_centroidLineStart() {\n var x0, y0, z0;\n d3_geo_centroid.point = function(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n x0 = cosφ * Math.cos(λ);\n y0 = cosφ * Math.sin(λ);\n z0 = Math.sin(φ);\n d3_geo_centroid.point = nextPoint;\n d3_geo_centroidPointXYZ(x0, y0, z0);\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n d3_geo_centroidW1 += w;\n d3_geo_centroidX1 += w * (x0 + (x0 = x));\n d3_geo_centroidY1 += w * (y0 + (y0 = y));\n d3_geo_centroidZ1 += w * (z0 + (z0 = z));\n d3_geo_centroidPointXYZ(x0, y0, z0);\n }\n }\n function d3_geo_centroidLineEnd() {\n d3_geo_centroid.point = d3_geo_centroidPoint;\n }\n function d3_geo_centroidRingStart() {\n var λ00, φ00, x0, y0, z0;\n d3_geo_centroid.point = function(λ, φ) {\n λ00 = λ, φ00 = φ;\n d3_geo_centroid.point = nextPoint;\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians);\n x0 = cosφ * Math.cos(λ);\n y0 = cosφ * Math.sin(λ);\n z0 = Math.sin(φ);\n d3_geo_centroidPointXYZ(x0, y0, z0);\n };\n d3_geo_centroid.lineEnd = function() {\n nextPoint(λ00, φ00);\n d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;\n d3_geo_centroid.point = d3_geo_centroidPoint;\n };\n function nextPoint(λ, φ) {\n λ *= d3_radians;\n var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u);\n d3_geo_centroidX2 += v * cx;\n d3_geo_centroidY2 += v * cy;\n d3_geo_centroidZ2 += v * cz;\n d3_geo_centroidW1 += w;\n d3_geo_centroidX1 += w * (x0 + (x0 = x));\n d3_geo_centroidY1 += w * (y0 + (y0 = y));\n d3_geo_centroidZ1 += w * (z0 + (z0 = z));\n d3_geo_centroidPointXYZ(x0, y0, z0);\n }\n }\n function d3_geo_compose(a, b) {\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n return compose;\n }\n function d3_true() {\n return true;\n }\n function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) {\n var subject = [], clip = [];\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n];\n if (d3_geo_sphericalEqual(p0, p1)) {\n listener.lineStart();\n for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);\n listener.lineEnd();\n return;\n }\n var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false);\n a.o = b;\n subject.push(a);\n clip.push(b);\n a = new d3_geo_clipPolygonIntersection(p1, segment, null, false);\n b = new d3_geo_clipPolygonIntersection(p1, null, a, true);\n a.o = b;\n subject.push(a);\n clip.push(b);\n });\n clip.sort(compare);\n d3_geo_clipPolygonLinkCircular(subject);\n d3_geo_clipPolygonLinkCircular(clip);\n if (!subject.length) return;\n for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) {\n clip[i].e = entry = !entry;\n }\n var start = subject[0], points, point;\n while (1) {\n var current = start, isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n listener.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, listener);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, listener);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n listener.lineEnd();\n }\n }\n function d3_geo_clipPolygonLinkCircular(array) {\n if (!(n = array.length)) return;\n var n, i = 0, a = array[0], b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n }\n function d3_geo_clipPolygonIntersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other;\n this.e = entry;\n this.v = false;\n this.n = this.p = null;\n }\n function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) {\n return function(rotate, listener) {\n var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]);\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = d3.merge(segments);\n var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);\n if (segments.length) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);\n } else if (clipStartInside) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n }\n if (polygonStarted) listener.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n listener.polygonStart();\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n listener.polygonEnd();\n }\n };\n function point(λ, φ) {\n var point = rotate(λ, φ);\n if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ);\n }\n function pointLine(λ, φ) {\n var point = rotate(λ, φ);\n line.point(point[0], point[1]);\n }\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n var segments;\n var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring;\n function pointRing(λ, φ) {\n ring.push([ λ, φ ]);\n var point = rotate(λ, φ);\n ringListener.point(point[0], point[1]);\n }\n function ringStart() {\n ringListener.lineStart();\n ring = [];\n }\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringListener.lineEnd();\n var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;\n ring.pop();\n polygon.push(ring);\n ring = null;\n if (!n) return;\n if (clean & 1) {\n segment = ringSegments[0];\n var n = segment.length - 1, i = -1, point;\n if (n > 0) {\n if (!polygonStarted) listener.polygonStart(), polygonStarted = true;\n listener.lineStart();\n while (++i < n) listener.point((point = segment[i])[0], point[1]);\n listener.lineEnd();\n }\n return;\n }\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));\n }\n return clip;\n };\n }\n function d3_geo_clipSegmentLength1(segment) {\n return segment.length > 1;\n }\n function d3_geo_clipBufferListener() {\n var lines = [], line;\n return {\n lineStart: function() {\n lines.push(line = []);\n },\n point: function(λ, φ) {\n line.push([ λ, φ ]);\n },\n lineEnd: d3_noop,\n buffer: function() {\n var buffer = lines;\n lines = [];\n line = null;\n return buffer;\n },\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n }\n };\n }\n function d3_geo_clipSort(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]);\n }\n var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]);\n function d3_geo_clipAntimeridianLine(listener) {\n var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;\n return {\n lineStart: function() {\n listener.lineStart();\n clean = 1;\n },\n point: function(λ1, φ1) {\n var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0);\n if (abs(dλ - π) < ε) {\n listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ);\n listener.point(sλ0, φ0);\n listener.lineEnd();\n listener.lineStart();\n listener.point(sλ1, φ0);\n listener.point(λ1, φ0);\n clean = 0;\n } else if (sλ0 !== sλ1 && dλ >= π) {\n if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;\n if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;\n φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);\n listener.point(sλ0, φ0);\n listener.lineEnd();\n listener.lineStart();\n listener.point(sλ1, φ0);\n clean = 0;\n }\n listener.point(λ0 = λ1, φ0 = φ1);\n sλ0 = sλ1;\n },\n lineEnd: function() {\n listener.lineEnd();\n λ0 = φ0 = NaN;\n },\n clean: function() {\n return 2 - clean;\n }\n };\n }\n function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {\n var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);\n return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;\n }\n function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {\n var φ;\n if (from == null) {\n φ = direction * halfπ;\n listener.point(-π, φ);\n listener.point(0, φ);\n listener.point(π, φ);\n listener.point(π, 0);\n listener.point(π, -φ);\n listener.point(0, -φ);\n listener.point(-π, -φ);\n listener.point(-π, 0);\n listener.point(-π, φ);\n } else if (abs(from[0] - to[0]) > ε) {\n var s = from[0] < to[0] ? π : -π;\n φ = direction * s / 2;\n listener.point(-s, φ);\n listener.point(0, φ);\n listener.point(s, φ);\n } else {\n listener.point(to[0], to[1]);\n }\n }\n function d3_geo_pointInPolygon(point, polygon) {\n var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0;\n d3_geo_areaRingSum.reset();\n for (var i = 0, n = polygon.length; i < n; ++i) {\n var ring = polygon[i], m = ring.length;\n if (!m) continue;\n var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1;\n while (true) {\n if (j === m) j = 0;\n point = ring[j];\n var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ;\n d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ)));\n polarAngle += antimeridian ? dλ + sdλ * τ : dλ;\n if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {\n var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));\n d3_geo_cartesianNormalize(arc);\n var intersection = d3_geo_cartesianCross(meridianNormal, arc);\n d3_geo_cartesianNormalize(intersection);\n var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);\n if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {\n winding += antimeridian ^ dλ >= 0 ? 1 : -1;\n }\n }\n if (!j++) break;\n λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;\n }\n }\n return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < -ε) ^ winding & 1;\n }\n function d3_geo_clipCircle(radius) {\n var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);\n return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]);\n function visible(λ, φ) {\n return Math.cos(λ) * Math.cos(φ) > cr;\n }\n function clipLine(listener) {\n var point0, c0, v0, v00, clean;\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(λ, φ) {\n var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;\n if (!point0 && (v00 = v0 = v)) listener.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {\n point1[0] += ε;\n point1[1] += ε;\n v = visible(point1[0], point1[1]);\n }\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n listener.lineStart();\n point2 = intersect(point1, point0);\n listener.point(point2[0], point2[1]);\n } else {\n point2 = intersect(point0, point1);\n listener.point(point2[0], point2[1]);\n listener.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n listener.lineStart();\n listener.point(t[0][0], t[0][1]);\n listener.point(t[1][0], t[1][1]);\n listener.lineEnd();\n } else {\n listener.point(t[1][0], t[1][1]);\n listener.lineEnd();\n listener.lineStart();\n listener.point(t[0][0], t[0][1]);\n }\n }\n }\n if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {\n listener.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) listener.lineEnd();\n point0 = null;\n },\n clean: function() {\n return clean | (v00 && v0) << 1;\n }\n };\n }\n function intersect(a, b, two) {\n var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b);\n var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;\n if (!determinant) return !two && a;\n var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);\n d3_geo_cartesianAdd(A, B);\n var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);\n if (t2 < 0) return;\n var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu);\n d3_geo_cartesianAdd(q, A);\n q = d3_geo_spherical(q);\n if (!two) return q;\n var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z;\n if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;\n var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε;\n if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;\n if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {\n var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);\n d3_geo_cartesianAdd(q1, A);\n return [ q, d3_geo_spherical(q1) ];\n }\n }\n function code(λ, φ) {\n var r = smallRadius ? radius : π - radius, code = 0;\n if (λ < -r) code |= 1; else if (λ > r) code |= 2;\n if (φ < -r) code |= 4; else if (φ > r) code |= 8;\n return code;\n }\n }\n function d3_geom_clipLine(x0, y0, x1, y1) {\n return function(line) {\n var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n if (t0 > 0) line.a = {\n x: ax + t0 * dx,\n y: ay + t0 * dy\n };\n if (t1 < 1) line.b = {\n x: ax + t1 * dx,\n y: ay + t1 * dy\n };\n return line;\n };\n }\n var d3_geo_clipExtentMAX = 1e9;\n d3.geo.clipExtent = function() {\n var x0, y0, x1, y1, stream, clip, clipExtent = {\n stream: function(output) {\n if (stream) stream.valid = false;\n stream = clip(output);\n stream.valid = true;\n return stream;\n },\n extent: function(_) {\n if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];\n clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]);\n if (stream) stream.valid = false, stream = null;\n return clipExtent;\n }\n };\n return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]);\n };\n function d3_geo_clipExtent(x0, y0, x1, y1) {\n return function(listener) {\n var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring;\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n listener = bufferListener;\n segments = [];\n polygon = [];\n clean = true;\n },\n polygonEnd: function() {\n listener = listener_;\n segments = d3.merge(segments);\n var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length;\n if (inside || visible) {\n listener.polygonStart();\n if (inside) {\n listener.lineStart();\n interpolate(null, null, 1, listener);\n listener.lineEnd();\n }\n if (visible) {\n d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener);\n }\n listener.polygonEnd();\n }\n segments = polygon = ring = null;\n }\n };\n function insidePolygon(p) {\n var wn = 0, n = polygon.length, y = p[1];\n for (var i = 0; i < n; ++i) {\n for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) {\n b = v[j];\n if (a[1] <= y) {\n if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn;\n } else {\n if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn;\n }\n a = b;\n }\n }\n return wn !== 0;\n }\n function interpolate(from, to, direction, listener) {\n var a = 0, a1 = 0;\n if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) {\n do {\n listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n } while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n listener.point(to[0], to[1]);\n }\n }\n function pointVisible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n function point(x, y) {\n if (pointVisible(x, y)) listener.point(x, y);\n }\n var x__, y__, v__, x_, y_, v_, first, clean;\n function lineStart() {\n clip.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferListener.rejoin();\n segments.push(bufferListener.buffer());\n }\n clip.point = point;\n if (v_) listener.lineEnd();\n }\n function linePoint(x, y) {\n x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x));\n y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y));\n var v = pointVisible(x, y);\n if (polygon) ring.push([ x, y ]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n listener.lineStart();\n listener.point(x, y);\n }\n } else {\n if (v && v_) listener.point(x, y); else {\n var l = {\n a: {\n x: x_,\n y: y_\n },\n b: {\n x: x,\n y: y\n }\n };\n if (clipLine(l)) {\n if (!v_) {\n listener.lineStart();\n listener.point(l.a.x, l.a.y);\n }\n listener.point(l.b.x, l.b.y);\n if (!v) listener.lineEnd();\n clean = false;\n } else if (v) {\n listener.lineStart();\n listener.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n return clip;\n };\n function corner(p, direction) {\n return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;\n }\n function compare(a, b) {\n return comparePoints(a.x, b.x);\n }\n function comparePoints(a, b) {\n var ca = corner(a, 1), cb = corner(b, 1);\n return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];\n }\n }\n function d3_geo_conic(projectAt) {\n var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);\n p.parallels = function(_) {\n if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ];\n return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);\n };\n return p;\n }\n function d3_geo_conicEqualArea(φ0, φ1) {\n var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;\n function forward(λ, φ) {\n var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;\n return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = ρ0 - y;\n return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];\n };\n return forward;\n }\n (d3.geo.conicEqualArea = function() {\n return d3_geo_conic(d3_geo_conicEqualArea);\n }).raw = d3_geo_conicEqualArea;\n d3.geo.albers = function() {\n return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070);\n };\n d3.geo.albersUsa = function() {\n var lower48 = d3.geo.albers();\n var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]);\n var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]);\n var point, pointStream = {\n point: function(x, y) {\n point = [ x, y ];\n }\n }, lower48Point, alaskaPoint, hawaiiPoint;\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n point = null;\n (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y);\n return point;\n }\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k;\n return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates);\n };\n albersUsa.stream = function(stream) {\n var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream);\n return {\n point: function(x, y) {\n lower48Stream.point(x, y);\n alaskaStream.point(x, y);\n hawaiiStream.point(x, y);\n },\n sphere: function() {\n lower48Stream.sphere();\n alaskaStream.sphere();\n hawaiiStream.sphere();\n },\n lineStart: function() {\n lower48Stream.lineStart();\n alaskaStream.lineStart();\n hawaiiStream.lineStart();\n },\n lineEnd: function() {\n lower48Stream.lineEnd();\n alaskaStream.lineEnd();\n hawaiiStream.lineEnd();\n },\n polygonStart: function() {\n lower48Stream.polygonStart();\n alaskaStream.polygonStart();\n hawaiiStream.polygonStart();\n },\n polygonEnd: function() {\n lower48Stream.polygonEnd();\n alaskaStream.polygonEnd();\n hawaiiStream.polygonEnd();\n }\n };\n };\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_);\n alaska.precision(_);\n hawaii.precision(_);\n return albersUsa;\n };\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_);\n alaska.scale(_ * .35);\n hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point;\n alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;\n hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;\n return albersUsa;\n };\n return albersUsa.scale(1070);\n };\n var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {\n point: d3_noop,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: function() {\n d3_geo_pathAreaPolygon = 0;\n d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;\n },\n polygonEnd: function() {\n d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;\n d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2);\n }\n };\n function d3_geo_pathAreaRingStart() {\n var x00, y00, x0, y0;\n d3_geo_pathArea.point = function(x, y) {\n d3_geo_pathArea.point = nextPoint;\n x00 = x0 = x, y00 = y0 = y;\n };\n function nextPoint(x, y) {\n d3_geo_pathAreaPolygon += y0 * x - x0 * y;\n x0 = x, y0 = y;\n }\n d3_geo_pathArea.lineEnd = function() {\n nextPoint(x00, y00);\n };\n }\n var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1;\n var d3_geo_pathBounds = {\n point: d3_geo_pathBoundsPoint,\n lineStart: d3_noop,\n lineEnd: d3_noop,\n polygonStart: d3_noop,\n polygonEnd: d3_noop\n };\n function d3_geo_pathBoundsPoint(x, y) {\n if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x;\n if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x;\n if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y;\n if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y;\n }\n function d3_geo_pathBuffer() {\n var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = [];\n var stream = {\n point: point,\n lineStart: function() {\n stream.point = pointLineStart;\n },\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.lineEnd = lineEndPolygon;\n },\n polygonEnd: function() {\n stream.lineEnd = lineEnd;\n stream.point = point;\n },\n pointRadius: function(_) {\n pointCircle = d3_geo_pathBufferCircle(_);\n return stream;\n },\n result: function() {\n if (buffer.length) {\n var result = buffer.join(\"\");\n buffer = [];\n return result;\n }\n }\n };\n function point(x, y) {\n buffer.push(\"M\", x, \",\", y, pointCircle);\n }\n function pointLineStart(x, y) {\n buffer.push(\"M\", x, \",\", y);\n stream.point = pointLine;\n }\n function pointLine(x, y) {\n buffer.push(\"L\", x, \",\", y);\n }\n function lineEnd() {\n stream.point = point;\n }\n function lineEndPolygon() {\n buffer.push(\"Z\");\n }\n return stream;\n }\n function d3_geo_pathBufferCircle(radius) {\n return \"m0,\" + radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius + \"z\";\n }\n var d3_geo_pathCentroid = {\n point: d3_geo_pathCentroidPoint,\n lineStart: d3_geo_pathCentroidLineStart,\n lineEnd: d3_geo_pathCentroidLineEnd,\n polygonStart: function() {\n d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;\n },\n polygonEnd: function() {\n d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;\n d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;\n d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;\n }\n };\n function d3_geo_pathCentroidPoint(x, y) {\n d3_geo_centroidX0 += x;\n d3_geo_centroidY0 += y;\n ++d3_geo_centroidZ0;\n }\n function d3_geo_pathCentroidLineStart() {\n var x0, y0;\n d3_geo_pathCentroid.point = function(x, y) {\n d3_geo_pathCentroid.point = nextPoint;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n };\n function nextPoint(x, y) {\n var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);\n d3_geo_centroidX1 += z * (x0 + x) / 2;\n d3_geo_centroidY1 += z * (y0 + y) / 2;\n d3_geo_centroidZ1 += z;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n }\n }\n function d3_geo_pathCentroidLineEnd() {\n d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;\n }\n function d3_geo_pathCentroidRingStart() {\n var x00, y00, x0, y0;\n d3_geo_pathCentroid.point = function(x, y) {\n d3_geo_pathCentroid.point = nextPoint;\n d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y);\n };\n function nextPoint(x, y) {\n var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);\n d3_geo_centroidX1 += z * (x0 + x) / 2;\n d3_geo_centroidY1 += z * (y0 + y) / 2;\n d3_geo_centroidZ1 += z;\n z = y0 * x - x0 * y;\n d3_geo_centroidX2 += z * (x0 + x);\n d3_geo_centroidY2 += z * (y0 + y);\n d3_geo_centroidZ2 += z * 3;\n d3_geo_pathCentroidPoint(x0 = x, y0 = y);\n }\n d3_geo_pathCentroid.lineEnd = function() {\n nextPoint(x00, y00);\n };\n }\n function d3_geo_pathContext(context) {\n var pointRadius = 4.5;\n var stream = {\n point: point,\n lineStart: function() {\n stream.point = pointLineStart;\n },\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.lineEnd = lineEndPolygon;\n },\n polygonEnd: function() {\n stream.lineEnd = lineEnd;\n stream.point = point;\n },\n pointRadius: function(_) {\n pointRadius = _;\n return stream;\n },\n result: d3_noop\n };\n function point(x, y) {\n context.moveTo(x + pointRadius, y);\n context.arc(x, y, pointRadius, 0, τ);\n }\n function pointLineStart(x, y) {\n context.moveTo(x, y);\n stream.point = pointLine;\n }\n function pointLine(x, y) {\n context.lineTo(x, y);\n }\n function lineEnd() {\n stream.point = point;\n }\n function lineEndPolygon() {\n context.closePath();\n }\n return stream;\n }\n function d3_geo_resample(project) {\n var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16;\n function resample(stream) {\n return (maxDepth ? resampleRecursive : resampleNone)(stream);\n }\n function resampleNone(stream) {\n return d3_geo_transformPoint(stream, function(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n });\n }\n function resampleRecursive(stream) {\n var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0;\n var resample = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n stream.polygonStart();\n resample.lineStart = ringStart;\n },\n polygonEnd: function() {\n stream.polygonEnd();\n resample.lineStart = lineStart;\n }\n };\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n function lineStart() {\n x0 = NaN;\n resample.point = linePoint;\n stream.lineStart();\n }\n function linePoint(λ, φ) {\n var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n function lineEnd() {\n resample.point = point;\n stream.lineEnd();\n }\n function ringStart() {\n lineStart();\n resample.point = ringPoint;\n resample.lineEnd = ringEnd;\n }\n function ringPoint(λ, φ) {\n linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resample.point = linePoint;\n }\n function ringEnd() {\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);\n resample.lineEnd = lineEnd;\n lineEnd();\n }\n return resample;\n }\n function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;\n if (d2 > 4 * δ2 && depth--) {\n var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {\n resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);\n }\n }\n }\n resample.precision = function(_) {\n if (!arguments.length) return Math.sqrt(δ2);\n maxDepth = (δ2 = _ * _) > 0 && 16;\n return resample;\n };\n return resample;\n }\n d3.geo.path = function() {\n var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream;\n function path(object) {\n if (object) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream);\n d3.geo.stream(object, cacheStream);\n }\n return contextStream.result();\n }\n path.area = function(object) {\n d3_geo_pathAreaSum = 0;\n d3.geo.stream(object, projectStream(d3_geo_pathArea));\n return d3_geo_pathAreaSum;\n };\n path.centroid = function(object) {\n d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;\n d3.geo.stream(object, projectStream(d3_geo_pathCentroid));\n return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ];\n };\n path.bounds = function(object) {\n d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity);\n d3.geo.stream(object, projectStream(d3_geo_pathBounds));\n return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ];\n };\n path.projection = function(_) {\n if (!arguments.length) return projection;\n projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;\n return reset();\n };\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return reset();\n };\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n function reset() {\n cacheStream = null;\n return path;\n }\n return path.projection(d3.geo.albersUsa()).context(null);\n };\n function d3_geo_pathProjectStream(project) {\n var resample = d3_geo_resample(function(x, y) {\n return project([ x * d3_degrees, y * d3_degrees ]);\n });\n return function(stream) {\n return d3_geo_projectionRadians(resample(stream));\n };\n }\n d3.geo.transform = function(methods) {\n return {\n stream: function(stream) {\n var transform = new d3_geo_transform(stream);\n for (var k in methods) transform[k] = methods[k];\n return transform;\n }\n };\n };\n function d3_geo_transform(stream) {\n this.stream = stream;\n }\n d3_geo_transform.prototype = {\n point: function(x, y) {\n this.stream.point(x, y);\n },\n sphere: function() {\n this.stream.sphere();\n },\n lineStart: function() {\n this.stream.lineStart();\n },\n lineEnd: function() {\n this.stream.lineEnd();\n },\n polygonStart: function() {\n this.stream.polygonStart();\n },\n polygonEnd: function() {\n this.stream.polygonEnd();\n }\n };\n function d3_geo_transformPoint(stream, point) {\n return {\n point: point,\n sphere: function() {\n stream.sphere();\n },\n lineStart: function() {\n stream.lineStart();\n },\n lineEnd: function() {\n stream.lineEnd();\n },\n polygonStart: function() {\n stream.polygonStart();\n },\n polygonEnd: function() {\n stream.polygonEnd();\n }\n };\n }\n d3.geo.projection = d3_geo_projection;\n d3.geo.projectionMutator = d3_geo_projectionMutator;\n function d3_geo_projection(project) {\n return d3_geo_projectionMutator(function() {\n return project;\n })();\n }\n function d3_geo_projectionMutator(projectAt) {\n var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {\n x = project(x, y);\n return [ x[0] * k + δx, δy - x[1] * k ];\n }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream;\n function projection(point) {\n point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);\n return [ point[0] * k + δx, δy - point[1] * k ];\n }\n function invert(point) {\n point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);\n return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];\n }\n projection.stream = function(output) {\n if (stream) stream.valid = false;\n stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output))));\n stream.valid = true;\n return stream;\n };\n projection.clipAngle = function(_) {\n if (!arguments.length) return clipAngle;\n preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);\n return invalidate();\n };\n projection.clipExtent = function(_) {\n if (!arguments.length) return clipExtent;\n clipExtent = _;\n postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity;\n return invalidate();\n };\n projection.scale = function(_) {\n if (!arguments.length) return k;\n k = +_;\n return reset();\n };\n projection.translate = function(_) {\n if (!arguments.length) return [ x, y ];\n x = +_[0];\n y = +_[1];\n return reset();\n };\n projection.center = function(_) {\n if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];\n λ = _[0] % 360 * d3_radians;\n φ = _[1] % 360 * d3_radians;\n return reset();\n };\n projection.rotate = function(_) {\n if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];\n δλ = _[0] % 360 * d3_radians;\n δφ = _[1] % 360 * d3_radians;\n δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;\n return reset();\n };\n d3.rebind(projection, projectResample, \"precision\");\n function reset() {\n projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);\n var center = project(λ, φ);\n δx = x - center[0] * k;\n δy = y + center[1] * k;\n return invalidate();\n }\n function invalidate() {\n if (stream) stream.valid = false, stream = null;\n return projection;\n }\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return reset();\n };\n }\n function d3_geo_projectionRadians(stream) {\n return d3_geo_transformPoint(stream, function(x, y) {\n stream.point(x * d3_radians, y * d3_radians);\n });\n }\n function d3_geo_equirectangular(λ, φ) {\n return [ λ, φ ];\n }\n (d3.geo.equirectangular = function() {\n return d3_geo_projection(d3_geo_equirectangular);\n }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;\n d3.geo.rotation = function(rotate) {\n rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);\n return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;\n }\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);\n return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;\n };\n return forward;\n };\n function d3_geo_identityRotation(λ, φ) {\n return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];\n }\n d3_geo_identityRotation.invert = d3_geo_equirectangular;\n function d3_geo_rotation(δλ, δφ, δγ) {\n return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation;\n }\n function d3_geo_forwardRotationλ(δλ) {\n return function(λ, φ) {\n return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];\n };\n }\n function d3_geo_rotationλ(δλ) {\n var rotation = d3_geo_forwardRotationλ(δλ);\n rotation.invert = d3_geo_forwardRotationλ(-δλ);\n return rotation;\n }\n function d3_geo_rotationφγ(δφ, δγ) {\n var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);\n function rotation(λ, φ) {\n var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;\n return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ];\n }\n rotation.invert = function(λ, φ) {\n var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;\n return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ];\n };\n return rotation;\n }\n d3.geo.circle = function() {\n var origin = [ 0, 0 ], angle, precision = 6, interpolate;\n function circle() {\n var center = typeof origin === \"function\" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];\n interpolate(null, null, 1, {\n point: function(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= d3_degrees, x[1] *= d3_degrees;\n }\n });\n return {\n type: \"Polygon\",\n coordinates: [ ring ]\n };\n }\n circle.origin = function(x) {\n if (!arguments.length) return origin;\n origin = x;\n return circle;\n };\n circle.angle = function(x) {\n if (!arguments.length) return angle;\n interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);\n return circle;\n };\n circle.precision = function(_) {\n if (!arguments.length) return precision;\n interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);\n return circle;\n };\n return circle.angle(90);\n };\n function d3_geo_circleInterpolate(radius, precision) {\n var cr = Math.cos(radius), sr = Math.sin(radius);\n return function(from, to, direction, listener) {\n var step = direction * precision;\n if (from != null) {\n from = d3_geo_circleAngle(cr, from);\n to = d3_geo_circleAngle(cr, to);\n if (direction > 0 ? from < to : from > to) from += direction * τ;\n } else {\n from = radius + direction * τ;\n to = radius - .5 * step;\n }\n for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) {\n listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);\n }\n };\n }\n function d3_geo_circleAngle(cr, point) {\n var a = d3_geo_cartesian(point);\n a[0] -= cr;\n d3_geo_cartesianNormalize(a);\n var angle = d3_acos(-a[1]);\n return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);\n }\n d3.geo.distance = function(a, b) {\n var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t;\n return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ);\n };\n d3.geo.graticule = function() {\n var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;\n function graticule() {\n return {\n type: \"MultiLineString\",\n coordinates: lines()\n };\n }\n function lines() {\n return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) {\n return abs(x % DX) > ε;\n }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) {\n return abs(y % DY) > ε;\n }).map(y));\n }\n graticule.lines = function() {\n return lines().map(function(coordinates) {\n return {\n type: \"LineString\",\n coordinates: coordinates\n };\n });\n };\n graticule.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ]\n };\n };\n graticule.extent = function(_) {\n if (!arguments.length) return graticule.minorExtent();\n return graticule.majorExtent(_).minorExtent(_);\n };\n graticule.majorExtent = function(_) {\n if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ];\n X0 = +_[0][0], X1 = +_[1][0];\n Y0 = +_[0][1], Y1 = +_[1][1];\n if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n return graticule.precision(precision);\n };\n graticule.minorExtent = function(_) {\n if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];\n x0 = +_[0][0], x1 = +_[1][0];\n y0 = +_[0][1], y1 = +_[1][1];\n if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n return graticule.precision(precision);\n };\n graticule.step = function(_) {\n if (!arguments.length) return graticule.minorStep();\n return graticule.majorStep(_).minorStep(_);\n };\n graticule.majorStep = function(_) {\n if (!arguments.length) return [ DX, DY ];\n DX = +_[0], DY = +_[1];\n return graticule;\n };\n graticule.minorStep = function(_) {\n if (!arguments.length) return [ dx, dy ];\n dx = +_[0], dy = +_[1];\n return graticule;\n };\n graticule.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = d3_geo_graticuleX(y0, y1, 90);\n y = d3_geo_graticuleY(x0, x1, precision);\n X = d3_geo_graticuleX(Y0, Y1, 90);\n Y = d3_geo_graticuleY(X0, X1, precision);\n return graticule;\n };\n return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]);\n };\n function d3_geo_graticuleX(y0, y1, dy) {\n var y = d3.range(y0, y1 - ε, dy).concat(y1);\n return function(x) {\n return y.map(function(y) {\n return [ x, y ];\n });\n };\n }\n function d3_geo_graticuleY(x0, x1, dx) {\n var x = d3.range(x0, x1 - ε, dx).concat(x1);\n return function(y) {\n return x.map(function(x) {\n return [ x, y ];\n });\n };\n }\n function d3_source(d) {\n return d.source;\n }\n function d3_target(d) {\n return d.target;\n }\n d3.geo.greatArc = function() {\n var source = d3_source, source_, target = d3_target, target_;\n function greatArc() {\n return {\n type: \"LineString\",\n coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ]\n };\n }\n greatArc.distance = function() {\n return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments));\n };\n greatArc.source = function(_) {\n if (!arguments.length) return source;\n source = _, source_ = typeof _ === \"function\" ? null : _;\n return greatArc;\n };\n greatArc.target = function(_) {\n if (!arguments.length) return target;\n target = _, target_ = typeof _ === \"function\" ? null : _;\n return greatArc;\n };\n greatArc.precision = function() {\n return arguments.length ? greatArc : 0;\n };\n return greatArc;\n };\n d3.geo.interpolate = function(source, target) {\n return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);\n };\n function d3_geo_interpolate(x0, y0, x1, y1) {\n var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d);\n var interpolate = d ? function(t) {\n var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;\n return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];\n } : function() {\n return [ x0 * d3_degrees, y0 * d3_degrees ];\n };\n interpolate.distance = d;\n return interpolate;\n }\n d3.geo.length = function(object) {\n d3_geo_lengthSum = 0;\n d3.geo.stream(object, d3_geo_length);\n return d3_geo_lengthSum;\n };\n var d3_geo_lengthSum;\n var d3_geo_length = {\n sphere: d3_noop,\n point: d3_noop,\n lineStart: d3_geo_lengthLineStart,\n lineEnd: d3_noop,\n polygonStart: d3_noop,\n polygonEnd: d3_noop\n };\n function d3_geo_lengthLineStart() {\n var λ0, sinφ0, cosφ0;\n d3_geo_length.point = function(λ, φ) {\n λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ);\n d3_geo_length.point = nextPoint;\n };\n d3_geo_length.lineEnd = function() {\n d3_geo_length.point = d3_geo_length.lineEnd = d3_noop;\n };\n function nextPoint(λ, φ) {\n var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t);\n d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ);\n λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ;\n }\n }\n function d3_geo_azimuthal(scale, angle) {\n function azimuthal(λ, φ) {\n var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);\n return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];\n }\n azimuthal.invert = function(x, y) {\n var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);\n return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];\n };\n return azimuthal;\n }\n var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {\n return Math.sqrt(2 / (1 + cosλcosφ));\n }, function(ρ) {\n return 2 * Math.asin(ρ / 2);\n });\n (d3.geo.azimuthalEqualArea = function() {\n return d3_geo_projection(d3_geo_azimuthalEqualArea);\n }).raw = d3_geo_azimuthalEqualArea;\n var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {\n var c = Math.acos(cosλcosφ);\n return c && c / Math.sin(c);\n }, d3_identity);\n (d3.geo.azimuthalEquidistant = function() {\n return d3_geo_projection(d3_geo_azimuthalEquidistant);\n }).raw = d3_geo_azimuthalEquidistant;\n function d3_geo_conicConformal(φ0, φ1) {\n var cosφ0 = Math.cos(φ0), t = function(φ) {\n return Math.tan(π / 4 + φ / 2);\n }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;\n if (!n) return d3_geo_mercator;\n function forward(λ, φ) {\n if (F > 0) {\n if (φ < -halfπ + ε) φ = -halfπ + ε;\n } else {\n if (φ > halfπ - ε) φ = halfπ - ε;\n }\n var ρ = F / Math.pow(t(φ), n);\n return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y);\n return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ];\n };\n return forward;\n }\n (d3.geo.conicConformal = function() {\n return d3_geo_conic(d3_geo_conicConformal);\n }).raw = d3_geo_conicConformal;\n function d3_geo_conicEquidistant(φ0, φ1) {\n var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0;\n if (abs(n) < ε) return d3_geo_equirectangular;\n function forward(λ, φ) {\n var ρ = G - φ;\n return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ];\n }\n forward.invert = function(x, y) {\n var ρ0_y = G - y;\n return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ];\n };\n return forward;\n }\n (d3.geo.conicEquidistant = function() {\n return d3_geo_conic(d3_geo_conicEquidistant);\n }).raw = d3_geo_conicEquidistant;\n var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {\n return 1 / cosλcosφ;\n }, Math.atan);\n (d3.geo.gnomonic = function() {\n return d3_geo_projection(d3_geo_gnomonic);\n }).raw = d3_geo_gnomonic;\n function d3_geo_mercator(λ, φ) {\n return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ];\n }\n d3_geo_mercator.invert = function(x, y) {\n return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ];\n };\n function d3_geo_mercatorProjection(project) {\n var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto;\n m.scale = function() {\n var v = scale.apply(m, arguments);\n return v === m ? clipAuto ? m.clipExtent(null) : m : v;\n };\n m.translate = function() {\n var v = translate.apply(m, arguments);\n return v === m ? clipAuto ? m.clipExtent(null) : m : v;\n };\n m.clipExtent = function(_) {\n var v = clipExtent.apply(m, arguments);\n if (v === m) {\n if (clipAuto = _ == null) {\n var k = π * scale(), t = translate();\n clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]);\n }\n } else if (clipAuto) {\n v = null;\n }\n return v;\n };\n return m.clipExtent(null);\n }\n (d3.geo.mercator = function() {\n return d3_geo_mercatorProjection(d3_geo_mercator);\n }).raw = d3_geo_mercator;\n var d3_geo_orthographic = d3_geo_azimuthal(function() {\n return 1;\n }, Math.asin);\n (d3.geo.orthographic = function() {\n return d3_geo_projection(d3_geo_orthographic);\n }).raw = d3_geo_orthographic;\n var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {\n return 1 / (1 + cosλcosφ);\n }, function(ρ) {\n return 2 * Math.atan(ρ);\n });\n (d3.geo.stereographic = function() {\n return d3_geo_projection(d3_geo_stereographic);\n }).raw = d3_geo_stereographic;\n function d3_geo_transverseMercator(λ, φ) {\n return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ];\n }\n d3_geo_transverseMercator.invert = function(x, y) {\n return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ];\n };\n (d3.geo.transverseMercator = function() {\n var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate;\n projection.center = function(_) {\n return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]);\n };\n projection.rotate = function(_) {\n return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(), \n [ _[0], _[1], _[2] - 90 ]);\n };\n return rotate([ 0, 0, 90 ]);\n }).raw = d3_geo_transverseMercator;\n d3.geom = {};\n function d3_geom_pointX(d) {\n return d[0];\n }\n function d3_geom_pointY(d) {\n return d[1];\n }\n d3.geom.hull = function(vertices) {\n var x = d3_geom_pointX, y = d3_geom_pointY;\n if (arguments.length) return hull(vertices);\n function hull(data) {\n if (data.length < 3) return [];\n var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = [];\n for (i = 0; i < n; i++) {\n points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]);\n }\n points.sort(d3_geom_hullOrder);\n for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]);\n var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints);\n var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = [];\n for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]);\n for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]);\n return polygon;\n }\n hull.x = function(_) {\n return arguments.length ? (x = _, hull) : x;\n };\n hull.y = function(_) {\n return arguments.length ? (y = _, hull) : y;\n };\n return hull;\n };\n function d3_geom_hullUpper(points) {\n var n = points.length, hull = [ 0, 1 ], hs = 2;\n for (var i = 2; i < n; i++) {\n while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs;\n hull[hs++] = i;\n }\n return hull.slice(0, hs);\n }\n function d3_geom_hullOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n }\n d3.geom.polygon = function(coordinates) {\n d3_subclass(coordinates, d3_geom_polygonPrototype);\n return coordinates;\n };\n var d3_geom_polygonPrototype = d3.geom.polygon.prototype = [];\n d3_geom_polygonPrototype.area = function() {\n var i = -1, n = this.length, a, b = this[n - 1], area = 0;\n while (++i < n) {\n a = b;\n b = this[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n return area * .5;\n };\n d3_geom_polygonPrototype.centroid = function(k) {\n var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c;\n if (!arguments.length) k = -1 / (6 * this.area());\n while (++i < n) {\n a = b;\n b = this[i];\n c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n return [ x * k, y * k ];\n };\n d3_geom_polygonPrototype.clip = function(subject) {\n var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d;\n while (++i < n) {\n input = subject.slice();\n subject.length = 0;\n b = this[i];\n c = input[(m = input.length - closed) - 1];\n j = -1;\n while (++j < m) {\n d = input[j];\n if (d3_geom_polygonInside(d, a, b)) {\n if (!d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n subject.push(d);\n } else if (d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n c = d;\n }\n if (closed) subject.push(subject[0]);\n a = b;\n }\n return subject;\n };\n function d3_geom_polygonInside(p, a, b) {\n return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);\n }\n function d3_geom_polygonIntersect(c, d, a, b) {\n var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);\n return [ x1 + ua * x21, y1 + ua * y21 ];\n }\n function d3_geom_polygonClosed(coordinates) {\n var a = coordinates[0], b = coordinates[coordinates.length - 1];\n return !(a[0] - b[0] || a[1] - b[1]);\n }\n var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = [];\n function d3_geom_voronoiBeach() {\n d3_geom_voronoiRedBlackNode(this);\n this.edge = this.site = this.circle = null;\n }\n function d3_geom_voronoiCreateBeach(site) {\n var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach();\n beach.site = site;\n return beach;\n }\n function d3_geom_voronoiDetachBeach(beach) {\n d3_geom_voronoiDetachCircle(beach);\n d3_geom_voronoiBeaches.remove(beach);\n d3_geom_voronoiBeachPool.push(beach);\n d3_geom_voronoiRedBlackNode(beach);\n }\n function d3_geom_voronoiRemoveBeach(beach) {\n var circle = beach.circle, x = circle.x, y = circle.cy, vertex = {\n x: x,\n y: y\n }, previous = beach.P, next = beach.N, disappearing = [ beach ];\n d3_geom_voronoiDetachBeach(beach);\n var lArc = previous;\n while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachBeach(lArc);\n lArc = previous;\n }\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachCircle(lArc);\n var rArc = next;\n while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) {\n next = rArc.N;\n disappearing.push(rArc);\n d3_geom_voronoiDetachBeach(rArc);\n rArc = next;\n }\n disappearing.push(rArc);\n d3_geom_voronoiDetachCircle(rArc);\n var nArcs = disappearing.length, iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiAddBeach(site) {\n var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._;\n while (node) {\n dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x;\n if (dxl > ε) node = node.L; else {\n dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix);\n if (dxr > ε) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -ε) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -ε) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n var newArc = d3_geom_voronoiCreateBeach(site);\n d3_geom_voronoiBeaches.insert(lArc, newArc);\n if (!lArc && !rArc) return;\n if (lArc === rArc) {\n d3_geom_voronoiDetachCircle(lArc);\n rArc = d3_geom_voronoiCreateBeach(lArc.site);\n d3_geom_voronoiBeaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n return;\n }\n if (!rArc) {\n newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n return;\n }\n d3_geom_voronoiDetachCircle(lArc);\n d3_geom_voronoiDetachCircle(rArc);\n var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = {\n x: (cy * hb - by * hc) / d + ax,\n y: (bx * hc - cx * hb) / d + ay\n };\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex);\n rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiLeftBreakPoint(arc, directrix) {\n var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix;\n if (!pby2) return rfocx;\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n site = lArc.site;\n var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix;\n if (!plby2) return lfocx;\n var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2;\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n return (rfocx + lfocx) / 2;\n }\n function d3_geom_voronoiRightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site.y === directrix ? site.x : Infinity;\n }\n function d3_geom_voronoiCell(site) {\n this.site = site;\n this.edges = [];\n }\n d3_geom_voronoiCell.prototype.prepare = function() {\n var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge;\n while (iHalfEdge--) {\n edge = halfEdges[iHalfEdge].edge;\n if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1);\n }\n halfEdges.sort(d3_geom_voronoiHalfEdgeOrder);\n return halfEdges.length;\n };\n function d3_geom_voronoiCloseCells(extent) {\n var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end;\n while (iCell--) {\n cell = cells[iCell];\n if (!cell || !cell.prepare()) continue;\n halfEdges = cell.edges;\n nHalfEdges = halfEdges.length;\n iHalfEdge = 0;\n while (iHalfEdge < nHalfEdges) {\n end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y;\n start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y;\n if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) {\n halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? {\n x: x0,\n y: abs(x2 - x0) < ε ? y2 : y1\n } : abs(y3 - y1) < ε && x1 - x3 > ε ? {\n x: abs(y2 - y1) < ε ? x2 : x1,\n y: y1\n } : abs(x3 - x1) < ε && y3 - y0 > ε ? {\n x: x1,\n y: abs(x2 - x1) < ε ? y2 : y0\n } : abs(y3 - y0) < ε && x3 - x0 > ε ? {\n x: abs(y2 - y0) < ε ? x2 : x0,\n y: y0\n } : null), cell.site, null));\n ++nHalfEdges;\n }\n }\n }\n }\n function d3_geom_voronoiHalfEdgeOrder(a, b) {\n return b.angle - a.angle;\n }\n function d3_geom_voronoiCircle() {\n d3_geom_voronoiRedBlackNode(this);\n this.x = this.y = this.arc = this.site = this.cy = null;\n }\n function d3_geom_voronoiAttachCircle(arc) {\n var lArc = arc.P, rArc = arc.N;\n if (!lArc || !rArc) return;\n var lSite = lArc.site, cSite = arc.site, rSite = rArc.site;\n if (lSite === rSite) return;\n var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by;\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -ε2) return;\n var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by;\n var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle();\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = cy + Math.sqrt(x * x + y * y);\n circle.cy = cy;\n arc.circle = circle;\n var before = null, node = d3_geom_voronoiCircles._;\n while (node) {\n if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {\n if (node.L) node = node.L; else {\n before = node.P;\n break;\n }\n } else {\n if (node.R) node = node.R; else {\n before = node;\n break;\n }\n }\n }\n d3_geom_voronoiCircles.insert(before, circle);\n if (!before) d3_geom_voronoiFirstCircle = circle;\n }\n function d3_geom_voronoiDetachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) d3_geom_voronoiFirstCircle = circle.N;\n d3_geom_voronoiCircles.remove(circle);\n d3_geom_voronoiCirclePool.push(circle);\n d3_geom_voronoiRedBlackNode(circle);\n arc.circle = null;\n }\n }\n function d3_geom_voronoiClipEdges(extent) {\n var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e;\n while (i--) {\n e = edges[i];\n if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) {\n e.a = e.b = null;\n edges.splice(i, 1);\n }\n }\n }\n function d3_geom_voronoiConnectEdge(edge, extent) {\n var vb = edge.b;\n if (vb) return true;\n var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb;\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!va) va = {\n x: fx,\n y: y0\n }; else if (va.y >= y1) return;\n vb = {\n x: fx,\n y: y1\n };\n } else {\n if (!va) va = {\n x: fx,\n y: y1\n }; else if (va.y < y0) return;\n vb = {\n x: fx,\n y: y0\n };\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!va) va = {\n x: (y0 - fb) / fm,\n y: y0\n }; else if (va.y >= y1) return;\n vb = {\n x: (y1 - fb) / fm,\n y: y1\n };\n } else {\n if (!va) va = {\n x: (y1 - fb) / fm,\n y: y1\n }; else if (va.y < y0) return;\n vb = {\n x: (y0 - fb) / fm,\n y: y0\n };\n }\n } else {\n if (ly < ry) {\n if (!va) va = {\n x: x0,\n y: fm * x0 + fb\n }; else if (va.x >= x1) return;\n vb = {\n x: x1,\n y: fm * x1 + fb\n };\n } else {\n if (!va) va = {\n x: x1,\n y: fm * x1 + fb\n }; else if (va.x < x0) return;\n vb = {\n x: x0,\n y: fm * x0 + fb\n };\n }\n }\n }\n edge.a = va;\n edge.b = vb;\n return true;\n }\n function d3_geom_voronoiEdge(lSite, rSite) {\n this.l = lSite;\n this.r = rSite;\n this.a = this.b = null;\n }\n function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, rSite);\n d3_geom_voronoiEdges.push(edge);\n if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va);\n if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb);\n d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite));\n d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite));\n return edge;\n }\n function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, null);\n edge.a = va;\n edge.b = vb;\n d3_geom_voronoiEdges.push(edge);\n return edge;\n }\n function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) {\n if (!edge.a && !edge.b) {\n edge.a = vertex;\n edge.l = lSite;\n edge.r = rSite;\n } else if (edge.l === rSite) {\n edge.b = vertex;\n } else {\n edge.a = vertex;\n }\n }\n function d3_geom_voronoiHalfEdge(edge, lSite, rSite) {\n var va = edge.a, vb = edge.b;\n this.edge = edge;\n this.site = lSite;\n this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y);\n }\n d3_geom_voronoiHalfEdge.prototype = {\n start: function() {\n return this.edge.l === this.site ? this.edge.a : this.edge.b;\n },\n end: function() {\n return this.edge.l === this.site ? this.edge.b : this.edge.a;\n }\n };\n function d3_geom_voronoiRedBlackTree() {\n this._ = null;\n }\n function d3_geom_voronoiRedBlackNode(node) {\n node.U = node.C = node.L = node.R = node.P = node.N = null;\n }\n d3_geom_voronoiRedBlackTree.prototype = {\n insert: function(after, node) {\n var parent, grandpa, uncle;\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = d3_geom_voronoiRedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n var parent = node.U, sibling, left = node.L, right = node.R, next, red;\n if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right);\n if (parent) {\n if (parent.L === node) parent.L = next; else parent.R = next;\n } else {\n this._ = next;\n }\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) {\n node.C = false;\n return;\n }\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n if (node) node.C = false;\n }\n };\n function d3_geom_voronoiRedBlackRotateLeft(tree, node) {\n var p = node, q = node.R, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q; else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n }\n function d3_geom_voronoiRedBlackRotateRight(tree, node) {\n var p = node, q = node.L, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q; else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n }\n function d3_geom_voronoiRedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n }\n function d3_geom_voronoi(sites, bbox) {\n var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle;\n d3_geom_voronoiEdges = [];\n d3_geom_voronoiCells = new Array(sites.length);\n d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree();\n d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree();\n while (true) {\n circle = d3_geom_voronoiFirstCircle;\n if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) {\n if (site.x !== x0 || site.y !== y0) {\n d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site);\n d3_geom_voronoiAddBeach(site);\n x0 = site.x, y0 = site.y;\n }\n site = sites.pop();\n } else if (circle) {\n d3_geom_voronoiRemoveBeach(circle.arc);\n } else {\n break;\n }\n }\n if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox);\n var diagram = {\n cells: d3_geom_voronoiCells,\n edges: d3_geom_voronoiEdges\n };\n d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null;\n return diagram;\n }\n function d3_geom_voronoiVertexOrder(a, b) {\n return b.y - a.y || b.x - a.x;\n }\n d3.geom.voronoi = function(points) {\n var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent;\n if (points) return voronoi(points);\n function voronoi(data) {\n var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1];\n d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) {\n var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) {\n var s = e.start();\n return [ s.x, s.y ];\n }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : [];\n polygon.point = data[i];\n });\n return polygons;\n }\n function sites(data) {\n return data.map(function(d, i) {\n return {\n x: Math.round(fx(d, i) / ε) * ε,\n y: Math.round(fy(d, i) / ε) * ε,\n i: i\n };\n });\n }\n voronoi.links = function(data) {\n return d3_geom_voronoi(sites(data)).edges.filter(function(edge) {\n return edge.l && edge.r;\n }).map(function(edge) {\n return {\n source: data[edge.l.i],\n target: data[edge.r.i]\n };\n });\n };\n voronoi.triangles = function(data) {\n var triangles = [];\n d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) {\n var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l;\n while (++j < m) {\n e0 = e1;\n s0 = s1;\n e1 = edges[j].edge;\n s1 = e1.l === site ? e1.r : e1.l;\n if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) {\n triangles.push([ data[i], data[s0.i], data[s1.i] ]);\n }\n }\n });\n return triangles;\n };\n voronoi.x = function(_) {\n return arguments.length ? (fx = d3_functor(x = _), voronoi) : x;\n };\n voronoi.y = function(_) {\n return arguments.length ? (fy = d3_functor(y = _), voronoi) : y;\n };\n voronoi.clipExtent = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent;\n clipExtent = _ == null ? d3_geom_voronoiClipExtent : _;\n return voronoi;\n };\n voronoi.size = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1];\n return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]);\n };\n return voronoi;\n };\n var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ];\n function d3_geom_voronoiTriangleArea(a, b, c) {\n return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y);\n }\n d3.geom.delaunay = function(vertices) {\n return d3.geom.voronoi().triangles(vertices);\n };\n d3.geom.quadtree = function(points, x1, y1, x2, y2) {\n var x = d3_geom_pointX, y = d3_geom_pointY, compat;\n if (compat = arguments.length) {\n x = d3_geom_quadtreeCompatX;\n y = d3_geom_quadtreeCompatY;\n if (compat === 3) {\n y2 = y1;\n x2 = x1;\n y1 = x1 = 0;\n }\n return quadtree(points);\n }\n function quadtree(data) {\n var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;\n if (x1 != null) {\n x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;\n } else {\n x2_ = y2_ = -(x1_ = y1_ = Infinity);\n xs = [], ys = [];\n n = data.length;\n if (compat) for (i = 0; i < n; ++i) {\n d = data[i];\n if (d.x < x1_) x1_ = d.x;\n if (d.y < y1_) y1_ = d.y;\n if (d.x > x2_) x2_ = d.x;\n if (d.y > y2_) y2_ = d.y;\n xs.push(d.x);\n ys.push(d.y);\n } else for (i = 0; i < n; ++i) {\n var x_ = +fx(d = data[i], i), y_ = +fy(d, i);\n if (x_ < x1_) x1_ = x_;\n if (y_ < y1_) y1_ = y_;\n if (x_ > x2_) x2_ = x_;\n if (y_ > y2_) y2_ = y_;\n xs.push(x_);\n ys.push(y_);\n }\n }\n var dx = x2_ - x1_, dy = y2_ - y1_;\n if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy;\n function insert(n, d, x, y, x1, y1, x2, y2) {\n if (isNaN(x) || isNaN(y)) return;\n if (n.leaf) {\n var nx = n.x, ny = n.y;\n if (nx != null) {\n if (abs(nx - x) + abs(ny - y) < .01) {\n insertChild(n, d, x, y, x1, y1, x2, y2);\n } else {\n var nPoint = n.point;\n n.x = n.y = n.point = null;\n insertChild(n, nPoint, nx, ny, x1, y1, x2, y2);\n insertChild(n, d, x, y, x1, y1, x2, y2);\n }\n } else {\n n.x = x, n.y = y, n.point = d;\n }\n } else {\n insertChild(n, d, x, y, x1, y1, x2, y2);\n }\n }\n function insertChild(n, d, x, y, x1, y1, x2, y2) {\n var xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym, i = below << 1 | right;\n n.leaf = false;\n n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());\n if (right) x1 = xm; else x2 = xm;\n if (below) y1 = ym; else y2 = ym;\n insert(n, d, x, y, x1, y1, x2, y2);\n }\n var root = d3_geom_quadtreeNode();\n root.add = function(d) {\n insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_);\n };\n root.visit = function(f) {\n d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);\n };\n root.find = function(point) {\n return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_);\n };\n i = -1;\n if (x1 == null) {\n while (++i < n) {\n insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);\n }\n --i;\n } else data.forEach(root.add);\n xs = ys = data = d = null;\n return root;\n }\n quadtree.x = function(_) {\n return arguments.length ? (x = _, quadtree) : x;\n };\n quadtree.y = function(_) {\n return arguments.length ? (y = _, quadtree) : y;\n };\n quadtree.extent = function(_) {\n if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ];\n if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], \n y2 = +_[1][1];\n return quadtree;\n };\n quadtree.size = function(_) {\n if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ];\n if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1];\n return quadtree;\n };\n return quadtree;\n };\n function d3_geom_quadtreeCompatX(d) {\n return d.x;\n }\n function d3_geom_quadtreeCompatY(d) {\n return d.y;\n }\n function d3_geom_quadtreeNode() {\n return {\n leaf: true,\n nodes: [],\n point: null,\n x: null,\n y: null\n };\n }\n function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {\n if (!f(node, x1, y1, x2, y2)) {\n var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;\n if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);\n if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);\n if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);\n if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);\n }\n }\n function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {\n var minDistance2 = Infinity, closestPoint;\n (function find(node, x1, y1, x2, y2) {\n if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return;\n if (point = node.point) {\n var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy;\n if (distance2 < minDistance2) {\n var distance = Math.sqrt(minDistance2 = distance2);\n x0 = x - distance, y0 = y - distance;\n x3 = x + distance, y3 = y + distance;\n closestPoint = point;\n }\n }\n var children = node.nodes, xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym;\n for (var i = below << 1 | right, j = i + 4; i < j; ++i) {\n if (node = children[i & 3]) switch (i & 3) {\n case 0:\n find(node, x1, y1, xm, ym);\n break;\n\n case 1:\n find(node, xm, y1, x2, ym);\n break;\n\n case 2:\n find(node, x1, ym, xm, y2);\n break;\n\n case 3:\n find(node, xm, ym, x2, y2);\n break;\n }\n }\n })(root, x0, y0, x3, y3);\n return closestPoint;\n }\n d3.interpolateRgb = d3_interpolateRgb;\n function d3_interpolateRgb(a, b) {\n a = d3.rgb(a);\n b = d3.rgb(b);\n var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;\n return function(t) {\n return \"#\" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));\n };\n }\n d3.interpolateObject = d3_interpolateObject;\n function d3_interpolateObject(a, b) {\n var i = {}, c = {}, k;\n for (k in a) {\n if (k in b) {\n i[k] = d3_interpolate(a[k], b[k]);\n } else {\n c[k] = a[k];\n }\n }\n for (k in b) {\n if (!(k in a)) {\n c[k] = b[k];\n }\n }\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n }\n d3.interpolateNumber = d3_interpolateNumber;\n function d3_interpolateNumber(a, b) {\n a = +a, b = +b;\n return function(t) {\n return a * (1 - t) + b * t;\n };\n }\n d3.interpolateString = d3_interpolateString;\n function d3_interpolateString(a, b) {\n var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n a = a + \"\", b = b + \"\";\n while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {\n if ((bs = bm.index) > bi) {\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) {\n if (s[i]) s[i] += bm; else s[++i] = bm;\n } else {\n s[++i] = null;\n q.push({\n i: i,\n x: d3_interpolateNumber(am, bm)\n });\n }\n bi = d3_interpolate_numberB.lastIndex;\n }\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; else s[++i] = bs;\n }\n return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {\n return b(t) + \"\";\n }) : function() {\n return b;\n } : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n }\n var d3_interpolate_numberA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, \"g\");\n d3.interpolate = d3_interpolate;\n function d3_interpolate(a, b) {\n var i = d3.interpolators.length, f;\n while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;\n return f;\n }\n d3.interpolators = [ function(a, b) {\n var t = typeof b;\n return (t === \"string\" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\\(|hsl\\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === \"object\" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);\n } ];\n d3.interpolateArray = d3_interpolateArray;\n function d3_interpolateArray(a, b) {\n var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;\n for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));\n for (;i < na; ++i) c[i] = a[i];\n for (;i < nb; ++i) c[i] = b[i];\n return function(t) {\n for (i = 0; i < n0; ++i) c[i] = x[i](t);\n return c;\n };\n }\n var d3_ease_default = function() {\n return d3_identity;\n };\n var d3_ease = d3.map({\n linear: d3_ease_default,\n poly: d3_ease_poly,\n quad: function() {\n return d3_ease_quad;\n },\n cubic: function() {\n return d3_ease_cubic;\n },\n sin: function() {\n return d3_ease_sin;\n },\n exp: function() {\n return d3_ease_exp;\n },\n circle: function() {\n return d3_ease_circle;\n },\n elastic: d3_ease_elastic,\n back: d3_ease_back,\n bounce: function() {\n return d3_ease_bounce;\n }\n });\n var d3_ease_mode = d3.map({\n \"in\": d3_identity,\n out: d3_ease_reverse,\n \"in-out\": d3_ease_reflect,\n \"out-in\": function(f) {\n return d3_ease_reflect(d3_ease_reverse(f));\n }\n });\n d3.ease = function(name) {\n var i = name.indexOf(\"-\"), t = i >= 0 ? name.slice(0, i) : name, m = i >= 0 ? name.slice(i + 1) : \"in\";\n t = d3_ease.get(t) || d3_ease_default;\n m = d3_ease_mode.get(m) || d3_identity;\n return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));\n };\n function d3_ease_clamp(f) {\n return function(t) {\n return t <= 0 ? 0 : t >= 1 ? 1 : f(t);\n };\n }\n function d3_ease_reverse(f) {\n return function(t) {\n return 1 - f(1 - t);\n };\n }\n function d3_ease_reflect(f) {\n return function(t) {\n return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));\n };\n }\n function d3_ease_quad(t) {\n return t * t;\n }\n function d3_ease_cubic(t) {\n return t * t * t;\n }\n function d3_ease_cubicInOut(t) {\n if (t <= 0) return 0;\n if (t >= 1) return 1;\n var t2 = t * t, t3 = t2 * t;\n return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);\n }\n function d3_ease_poly(e) {\n return function(t) {\n return Math.pow(t, e);\n };\n }\n function d3_ease_sin(t) {\n return 1 - Math.cos(t * halfπ);\n }\n function d3_ease_exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n function d3_ease_circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n function d3_ease_elastic(a, p) {\n var s;\n if (arguments.length < 2) p = .45;\n if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4;\n return function(t) {\n return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p);\n };\n }\n function d3_ease_back(s) {\n if (!s) s = 1.70158;\n return function(t) {\n return t * t * ((s + 1) * t - s);\n };\n }\n function d3_ease_bounce(t) {\n return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;\n }\n d3.interpolateHcl = d3_interpolateHcl;\n function d3_interpolateHcl(a, b) {\n a = d3.hcl(a);\n b = d3.hcl(b);\n var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;\n if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateHsl = d3_interpolateHsl;\n function d3_interpolateHsl(a, b) {\n a = d3.hsl(a);\n b = d3.hsl(b);\n var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;\n if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateLab = d3_interpolateLab;\n function d3_interpolateLab(a, b) {\n a = d3.lab(a);\n b = d3.lab(b);\n var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;\n return function(t) {\n return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + \"\";\n };\n }\n d3.interpolateRound = d3_interpolateRound;\n function d3_interpolateRound(a, b) {\n b -= a;\n return function(t) {\n return Math.round(a + b * t);\n };\n }\n d3.transform = function(string) {\n var g = d3_document.createElementNS(d3.ns.prefix.svg, \"g\");\n return (d3.transform = function(string) {\n if (string != null) {\n g.setAttribute(\"transform\", string);\n var t = g.transform.baseVal.consolidate();\n }\n return new d3_transform(t ? t.matrix : d3_transformIdentity);\n })(string);\n };\n function d3_transform(m) {\n var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;\n if (r0[0] * r1[1] < r1[0] * r0[1]) {\n r0[0] *= -1;\n r0[1] *= -1;\n kx *= -1;\n kz *= -1;\n }\n this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;\n this.translate = [ m.e, m.f ];\n this.scale = [ kx, ky ];\n this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;\n }\n d3_transform.prototype.toString = function() {\n return \"translate(\" + this.translate + \")rotate(\" + this.rotate + \")skewX(\" + this.skew + \")scale(\" + this.scale + \")\";\n };\n function d3_transformDot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n }\n function d3_transformNormalize(a) {\n var k = Math.sqrt(d3_transformDot(a, a));\n if (k) {\n a[0] /= k;\n a[1] /= k;\n }\n return k;\n }\n function d3_transformCombine(a, b, k) {\n a[0] += k * b[0];\n a[1] += k * b[1];\n return a;\n }\n var d3_transformIdentity = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: 0,\n f: 0\n };\n d3.interpolateTransform = d3_interpolateTransform;\n function d3_interpolateTransformPop(s) {\n return s.length ? s.pop() + \",\" : \"\";\n }\n function d3_interpolateTranslate(ta, tb, s, q) {\n if (ta[0] !== tb[0] || ta[1] !== tb[1]) {\n var i = s.push(\"translate(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: d3_interpolateNumber(ta[0], tb[0])\n }, {\n i: i - 2,\n x: d3_interpolateNumber(ta[1], tb[1])\n });\n } else if (tb[0] || tb[1]) {\n s.push(\"translate(\" + tb + \")\");\n }\n }\n function d3_interpolateRotate(ra, rb, s, q) {\n if (ra !== rb) {\n if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;\n q.push({\n i: s.push(d3_interpolateTransformPop(s) + \"rotate(\", null, \")\") - 2,\n x: d3_interpolateNumber(ra, rb)\n });\n } else if (rb) {\n s.push(d3_interpolateTransformPop(s) + \"rotate(\" + rb + \")\");\n }\n }\n function d3_interpolateSkew(wa, wb, s, q) {\n if (wa !== wb) {\n q.push({\n i: s.push(d3_interpolateTransformPop(s) + \"skewX(\", null, \")\") - 2,\n x: d3_interpolateNumber(wa, wb)\n });\n } else if (wb) {\n s.push(d3_interpolateTransformPop(s) + \"skewX(\" + wb + \")\");\n }\n }\n function d3_interpolateScale(ka, kb, s, q) {\n if (ka[0] !== kb[0] || ka[1] !== kb[1]) {\n var i = s.push(d3_interpolateTransformPop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: d3_interpolateNumber(ka[0], kb[0])\n }, {\n i: i - 2,\n x: d3_interpolateNumber(ka[1], kb[1])\n });\n } else if (kb[0] !== 1 || kb[1] !== 1) {\n s.push(d3_interpolateTransformPop(s) + \"scale(\" + kb + \")\");\n }\n }\n function d3_interpolateTransform(a, b) {\n var s = [], q = [];\n a = d3.transform(a), b = d3.transform(b);\n d3_interpolateTranslate(a.translate, b.translate, s, q);\n d3_interpolateRotate(a.rotate, b.rotate, s, q);\n d3_interpolateSkew(a.skew, b.skew, s, q);\n d3_interpolateScale(a.scale, b.scale, s, q);\n a = b = null;\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n }\n function d3_uninterpolateNumber(a, b) {\n b = (b -= a = +a) || 1 / b;\n return function(x) {\n return (x - a) / b;\n };\n }\n function d3_uninterpolateClamp(a, b) {\n b = (b -= a = +a) || 1 / b;\n return function(x) {\n return Math.max(0, Math.min(1, (x - a) / b));\n };\n }\n d3.layout = {};\n d3.layout.bundle = function() {\n return function(links) {\n var paths = [], i = -1, n = links.length;\n while (++i < n) paths.push(d3_layout_bundlePath(links[i]));\n return paths;\n };\n };\n function d3_layout_bundlePath(link) {\n var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];\n while (start !== lca) {\n start = start.parent;\n points.push(start);\n }\n var k = points.length;\n while (end !== lca) {\n points.splice(k, 0, end);\n end = end.parent;\n }\n return points;\n }\n function d3_layout_bundleAncestors(node) {\n var ancestors = [], parent = node.parent;\n while (parent != null) {\n ancestors.push(node);\n node = parent;\n parent = parent.parent;\n }\n ancestors.push(node);\n return ancestors;\n }\n function d3_layout_bundleLeastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;\n while (aNode === bNode) {\n sharedNode = aNode;\n aNode = aNodes.pop();\n bNode = bNodes.pop();\n }\n return sharedNode;\n }\n d3.layout.chord = function() {\n var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;\n function relayout() {\n var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;\n chords = [];\n groups = [];\n k = 0, i = -1;\n while (++i < n) {\n x = 0, j = -1;\n while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(d3.range(n));\n k += x;\n }\n if (sortGroups) {\n groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n }\n if (sortSubgroups) {\n subgroupIndex.forEach(function(d, i) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i][a], matrix[i][b]);\n });\n });\n }\n k = (τ - padding * n) / k;\n x = 0, i = -1;\n while (++i < n) {\n x0 = x, j = -1;\n while (++j < n) {\n var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;\n subgroups[di + \"-\" + dj] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += padding;\n }\n i = -1;\n while (++i < n) {\n j = i - 1;\n while (++j < n) {\n var source = subgroups[i + \"-\" + j], target = subgroups[j + \"-\" + i];\n if (source.value || target.value) {\n chords.push(source.value < target.value ? {\n source: target,\n target: source\n } : {\n source: source,\n target: target\n });\n }\n }\n }\n if (sortChords) resort();\n }\n function resort() {\n chords.sort(function(a, b) {\n return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);\n });\n }\n chord.matrix = function(x) {\n if (!arguments.length) return matrix;\n n = (matrix = x) && matrix.length;\n chords = groups = null;\n return chord;\n };\n chord.padding = function(x) {\n if (!arguments.length) return padding;\n padding = x;\n chords = groups = null;\n return chord;\n };\n chord.sortGroups = function(x) {\n if (!arguments.length) return sortGroups;\n sortGroups = x;\n chords = groups = null;\n return chord;\n };\n chord.sortSubgroups = function(x) {\n if (!arguments.length) return sortSubgroups;\n sortSubgroups = x;\n chords = null;\n return chord;\n };\n chord.sortChords = function(x) {\n if (!arguments.length) return sortChords;\n sortChords = x;\n if (chords) resort();\n return chord;\n };\n chord.chords = function() {\n if (!chords) relayout();\n return chords;\n };\n chord.groups = function() {\n if (!groups) relayout();\n return groups;\n };\n return chord;\n };\n d3.layout.force = function() {\n var force = {}, event = d3.dispatch(\"start\", \"tick\", \"end\"), timer, size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges;\n function repulse(node) {\n return function(quad, x1, _, x2) {\n if (quad.point !== node) {\n var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy;\n if (dw * dw / theta2 < dn) {\n if (dn < chargeDistance2) {\n var k = quad.charge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n return true;\n }\n if (quad.point && dn && dn < chargeDistance2) {\n var k = quad.pointCharge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n }\n return !quad.charge;\n };\n }\n force.tick = function() {\n if ((alpha *= .99) < .005) {\n timer = null;\n event.end({\n type: \"end\",\n alpha: alpha = 0\n });\n return true;\n }\n var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;\n for (i = 0; i < m; ++i) {\n o = links[i];\n s = o.source;\n t = o.target;\n x = t.x - s.x;\n y = t.y - s.y;\n if (l = x * x + y * y) {\n l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;\n x *= l;\n y *= l;\n t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : .5);\n t.y -= y * k;\n s.x += x * (k = 1 - k);\n s.y += y * k;\n }\n }\n if (k = alpha * gravity) {\n x = size[0] / 2;\n y = size[1] / 2;\n i = -1;\n if (k) while (++i < n) {\n o = nodes[i];\n o.x += (x - o.x) * k;\n o.y += (y - o.y) * k;\n }\n }\n if (charge) {\n d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);\n i = -1;\n while (++i < n) {\n if (!(o = nodes[i]).fixed) {\n q.visit(repulse(o));\n }\n }\n }\n i = -1;\n while (++i < n) {\n o = nodes[i];\n if (o.fixed) {\n o.x = o.px;\n o.y = o.py;\n } else {\n o.x -= (o.px - (o.px = o.x)) * friction;\n o.y -= (o.py - (o.py = o.y)) * friction;\n }\n }\n event.tick({\n type: \"tick\",\n alpha: alpha\n });\n };\n force.nodes = function(x) {\n if (!arguments.length) return nodes;\n nodes = x;\n return force;\n };\n force.links = function(x) {\n if (!arguments.length) return links;\n links = x;\n return force;\n };\n force.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return force;\n };\n force.linkDistance = function(x) {\n if (!arguments.length) return linkDistance;\n linkDistance = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.distance = force.linkDistance;\n force.linkStrength = function(x) {\n if (!arguments.length) return linkStrength;\n linkStrength = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.friction = function(x) {\n if (!arguments.length) return friction;\n friction = +x;\n return force;\n };\n force.charge = function(x) {\n if (!arguments.length) return charge;\n charge = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.chargeDistance = function(x) {\n if (!arguments.length) return Math.sqrt(chargeDistance2);\n chargeDistance2 = x * x;\n return force;\n };\n force.gravity = function(x) {\n if (!arguments.length) return gravity;\n gravity = +x;\n return force;\n };\n force.theta = function(x) {\n if (!arguments.length) return Math.sqrt(theta2);\n theta2 = x * x;\n return force;\n };\n force.alpha = function(x) {\n if (!arguments.length) return alpha;\n x = +x;\n if (alpha) {\n if (x > 0) {\n alpha = x;\n } else {\n timer.c = null, timer.t = NaN, timer = null;\n event.end({\n type: \"end\",\n alpha: alpha = 0\n });\n }\n } else if (x > 0) {\n event.start({\n type: \"start\",\n alpha: alpha = x\n });\n timer = d3_timer(force.tick);\n }\n return force;\n };\n force.start = function() {\n var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;\n for (i = 0; i < n; ++i) {\n (o = nodes[i]).index = i;\n o.weight = 0;\n }\n for (i = 0; i < m; ++i) {\n o = links[i];\n if (typeof o.source == \"number\") o.source = nodes[o.source];\n if (typeof o.target == \"number\") o.target = nodes[o.target];\n ++o.source.weight;\n ++o.target.weight;\n }\n for (i = 0; i < n; ++i) {\n o = nodes[i];\n if (isNaN(o.x)) o.x = position(\"x\", w);\n if (isNaN(o.y)) o.y = position(\"y\", h);\n if (isNaN(o.px)) o.px = o.x;\n if (isNaN(o.py)) o.py = o.y;\n }\n distances = [];\n if (typeof linkDistance === \"function\") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;\n strengths = [];\n if (typeof linkStrength === \"function\") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;\n charges = [];\n if (typeof charge === \"function\") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;\n function position(dimension, size) {\n if (!neighbors) {\n neighbors = new Array(n);\n for (j = 0; j < n; ++j) {\n neighbors[j] = [];\n }\n for (j = 0; j < m; ++j) {\n var o = links[j];\n neighbors[o.source.index].push(o.target);\n neighbors[o.target.index].push(o.source);\n }\n }\n var candidates = neighbors[i], j = -1, l = candidates.length, x;\n while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x;\n return Math.random() * size;\n }\n return force.resume();\n };\n force.resume = function() {\n return force.alpha(.1);\n };\n force.stop = function() {\n return force.alpha(0);\n };\n force.drag = function() {\n if (!drag) drag = d3.behavior.drag().origin(d3_identity).on(\"dragstart.force\", d3_layout_forceDragstart).on(\"drag.force\", dragmove).on(\"dragend.force\", d3_layout_forceDragend);\n if (!arguments.length) return drag;\n this.on(\"mouseover.force\", d3_layout_forceMouseover).on(\"mouseout.force\", d3_layout_forceMouseout).call(drag);\n };\n function dragmove(d) {\n d.px = d3.event.x, d.py = d3.event.y;\n force.resume();\n }\n return d3.rebind(force, event, \"on\");\n };\n function d3_layout_forceDragstart(d) {\n d.fixed |= 2;\n }\n function d3_layout_forceDragend(d) {\n d.fixed &= ~6;\n }\n function d3_layout_forceMouseover(d) {\n d.fixed |= 4;\n d.px = d.x, d.py = d.y;\n }\n function d3_layout_forceMouseout(d) {\n d.fixed &= ~4;\n }\n function d3_layout_forceAccumulate(quad, alpha, charges) {\n var cx = 0, cy = 0;\n quad.charge = 0;\n if (!quad.leaf) {\n var nodes = quad.nodes, n = nodes.length, i = -1, c;\n while (++i < n) {\n c = nodes[i];\n if (c == null) continue;\n d3_layout_forceAccumulate(c, alpha, charges);\n quad.charge += c.charge;\n cx += c.charge * c.cx;\n cy += c.charge * c.cy;\n }\n }\n if (quad.point) {\n if (!quad.leaf) {\n quad.point.x += Math.random() - .5;\n quad.point.y += Math.random() - .5;\n }\n var k = alpha * charges[quad.point.index];\n quad.charge += quad.pointCharge = k;\n cx += k * quad.point.x;\n cy += k * quad.point.y;\n }\n quad.cx = cx / quad.charge;\n quad.cy = cy / quad.charge;\n }\n var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;\n d3.layout.hierarchy = function() {\n var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;\n function hierarchy(root) {\n var stack = [ root ], nodes = [], node;\n root.depth = 0;\n while ((node = stack.pop()) != null) {\n nodes.push(node);\n if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {\n var n, childs, child;\n while (--n >= 0) {\n stack.push(child = childs[n]);\n child.parent = node;\n child.depth = node.depth + 1;\n }\n if (value) node.value = 0;\n node.children = childs;\n } else {\n if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;\n delete node.children;\n }\n }\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var childs, parent;\n if (sort && (childs = node.children)) childs.sort(sort);\n if (value && (parent = node.parent)) parent.value += node.value;\n });\n return nodes;\n }\n hierarchy.sort = function(x) {\n if (!arguments.length) return sort;\n sort = x;\n return hierarchy;\n };\n hierarchy.children = function(x) {\n if (!arguments.length) return children;\n children = x;\n return hierarchy;\n };\n hierarchy.value = function(x) {\n if (!arguments.length) return value;\n value = x;\n return hierarchy;\n };\n hierarchy.revalue = function(root) {\n if (value) {\n d3_layout_hierarchyVisitBefore(root, function(node) {\n if (node.children) node.value = 0;\n });\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var parent;\n if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;\n if (parent = node.parent) parent.value += node.value;\n });\n }\n return root;\n };\n return hierarchy;\n };\n function d3_layout_hierarchyRebind(object, hierarchy) {\n d3.rebind(object, hierarchy, \"sort\", \"children\", \"value\");\n object.nodes = object;\n object.links = d3_layout_hierarchyLinks;\n return object;\n }\n function d3_layout_hierarchyVisitBefore(node, callback) {\n var nodes = [ node ];\n while ((node = nodes.pop()) != null) {\n callback(node);\n if ((children = node.children) && (n = children.length)) {\n var n, children;\n while (--n >= 0) nodes.push(children[n]);\n }\n }\n }\n function d3_layout_hierarchyVisitAfter(node, callback) {\n var nodes = [ node ], nodes2 = [];\n while ((node = nodes.pop()) != null) {\n nodes2.push(node);\n if ((children = node.children) && (n = children.length)) {\n var i = -1, n, children;\n while (++i < n) nodes.push(children[i]);\n }\n }\n while ((node = nodes2.pop()) != null) {\n callback(node);\n }\n }\n function d3_layout_hierarchyChildren(d) {\n return d.children;\n }\n function d3_layout_hierarchyValue(d) {\n return d.value;\n }\n function d3_layout_hierarchySort(a, b) {\n return b.value - a.value;\n }\n function d3_layout_hierarchyLinks(nodes) {\n return d3.merge(nodes.map(function(parent) {\n return (parent.children || []).map(function(child) {\n return {\n source: parent,\n target: child\n };\n });\n }));\n }\n d3.layout.partition = function() {\n var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];\n function position(node, x, dx, dy) {\n var children = node.children;\n node.x = x;\n node.y = node.depth * dy;\n node.dx = dx;\n node.dy = dy;\n if (children && (n = children.length)) {\n var i = -1, n, c, d;\n dx = node.value ? dx / node.value : 0;\n while (++i < n) {\n position(c = children[i], x, d = c.value * dx, dy);\n x += d;\n }\n }\n }\n function depth(node) {\n var children = node.children, d = 0;\n if (children && (n = children.length)) {\n var i = -1, n;\n while (++i < n) d = Math.max(d, depth(children[i]));\n }\n return 1 + d;\n }\n function partition(d, i) {\n var nodes = hierarchy.call(this, d, i);\n position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));\n return nodes;\n }\n partition.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return partition;\n };\n return d3_layout_hierarchyRebind(partition, hierarchy);\n };\n d3.layout.pie = function() {\n var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ, padAngle = 0;\n function pie(data) {\n var n = data.length, values = data.map(function(d, i) {\n return +value.call(pie, d, i);\n }), a = +(typeof startAngle === \"function\" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === \"function\" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === \"function\" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v;\n if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {\n return values[j] - values[i];\n } : function(i, j) {\n return sort(data[i], data[j]);\n });\n index.forEach(function(i) {\n arcs[i] = {\n data: data[i],\n value: v = values[i],\n startAngle: a,\n endAngle: a += v * k + pa,\n padAngle: p\n };\n });\n return arcs;\n }\n pie.value = function(_) {\n if (!arguments.length) return value;\n value = _;\n return pie;\n };\n pie.sort = function(_) {\n if (!arguments.length) return sort;\n sort = _;\n return pie;\n };\n pie.startAngle = function(_) {\n if (!arguments.length) return startAngle;\n startAngle = _;\n return pie;\n };\n pie.endAngle = function(_) {\n if (!arguments.length) return endAngle;\n endAngle = _;\n return pie;\n };\n pie.padAngle = function(_) {\n if (!arguments.length) return padAngle;\n padAngle = _;\n return pie;\n };\n return pie;\n };\n var d3_layout_pieSortByValue = {};\n d3.layout.stack = function() {\n var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;\n function stack(data, index) {\n if (!(n = data.length)) return data;\n var series = data.map(function(d, i) {\n return values.call(stack, d, i);\n });\n var points = series.map(function(d) {\n return d.map(function(v, i) {\n return [ x.call(stack, v, i), y.call(stack, v, i) ];\n });\n });\n var orders = order.call(stack, points, index);\n series = d3.permute(series, orders);\n points = d3.permute(points, orders);\n var offsets = offset.call(stack, points, index);\n var m = series[0].length, n, i, j, o;\n for (j = 0; j < m; ++j) {\n out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);\n for (i = 1; i < n; ++i) {\n out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);\n }\n }\n return data;\n }\n stack.values = function(x) {\n if (!arguments.length) return values;\n values = x;\n return stack;\n };\n stack.order = function(x) {\n if (!arguments.length) return order;\n order = typeof x === \"function\" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;\n return stack;\n };\n stack.offset = function(x) {\n if (!arguments.length) return offset;\n offset = typeof x === \"function\" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;\n return stack;\n };\n stack.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n return stack;\n };\n stack.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n return stack;\n };\n stack.out = function(z) {\n if (!arguments.length) return out;\n out = z;\n return stack;\n };\n return stack;\n };\n function d3_layout_stackX(d) {\n return d.x;\n }\n function d3_layout_stackY(d) {\n return d.y;\n }\n function d3_layout_stackOut(d, y0, y) {\n d.y0 = y0;\n d.y = y;\n }\n var d3_layout_stackOrders = d3.map({\n \"inside-out\": function(data) {\n var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {\n return max[a] - max[b];\n }), top = 0, bottom = 0, tops = [], bottoms = [];\n for (i = 0; i < n; ++i) {\n j = index[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n return bottoms.reverse().concat(tops);\n },\n reverse: function(data) {\n return d3.range(data.length).reverse();\n },\n \"default\": d3_layout_stackOrderDefault\n });\n var d3_layout_stackOffsets = d3.map({\n silhouette: function(data) {\n var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o > max) max = o;\n sums.push(o);\n }\n for (j = 0; j < m; ++j) {\n y0[j] = (max - sums[j]) / 2;\n }\n return y0;\n },\n wiggle: function(data) {\n var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];\n y0[0] = o = o0 = 0;\n for (j = 1; j < m; ++j) {\n for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];\n for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {\n for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {\n s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;\n }\n s2 += s3 * data[i][j][1];\n }\n y0[j] = o -= s1 ? s2 / s1 * dx : 0;\n if (o < o0) o0 = o;\n }\n for (j = 0; j < m; ++j) y0[j] -= o0;\n return y0;\n },\n expand: function(data) {\n var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;\n }\n for (j = 0; j < m; ++j) y0[j] = 0;\n return y0;\n },\n zero: d3_layout_stackOffsetZero\n });\n function d3_layout_stackOrderDefault(data) {\n return d3.range(data.length);\n }\n function d3_layout_stackOffsetZero(data) {\n var j = -1, m = data[0].length, y0 = [];\n while (++j < m) y0[j] = 0;\n return y0;\n }\n function d3_layout_stackMaxIndex(array) {\n var i = 1, j = 0, v = array[0][1], k, n = array.length;\n for (;i < n; ++i) {\n if ((k = array[i][1]) > v) {\n j = i;\n v = k;\n }\n }\n return j;\n }\n function d3_layout_stackReduceSum(d) {\n return d.reduce(d3_layout_stackSum, 0);\n }\n function d3_layout_stackSum(p, d) {\n return p + d[1];\n }\n d3.layout.histogram = function() {\n var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;\n function histogram(data, i) {\n var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;\n while (++i < m) {\n bin = bins[i] = [];\n bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);\n bin.y = 0;\n }\n if (m > 0) {\n i = -1;\n while (++i < n) {\n x = values[i];\n if (x >= range[0] && x <= range[1]) {\n bin = bins[d3.bisect(thresholds, x, 1, m) - 1];\n bin.y += k;\n bin.push(data[i]);\n }\n }\n }\n return bins;\n }\n histogram.value = function(x) {\n if (!arguments.length) return valuer;\n valuer = x;\n return histogram;\n };\n histogram.range = function(x) {\n if (!arguments.length) return ranger;\n ranger = d3_functor(x);\n return histogram;\n };\n histogram.bins = function(x) {\n if (!arguments.length) return binner;\n binner = typeof x === \"number\" ? function(range) {\n return d3_layout_histogramBinFixed(range, x);\n } : d3_functor(x);\n return histogram;\n };\n histogram.frequency = function(x) {\n if (!arguments.length) return frequency;\n frequency = !!x;\n return histogram;\n };\n return histogram;\n };\n function d3_layout_histogramBinSturges(range, values) {\n return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));\n }\n function d3_layout_histogramBinFixed(range, n) {\n var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];\n while (++x <= n) f[x] = m * x + b;\n return f;\n }\n function d3_layout_histogramRange(values) {\n return [ d3.min(values), d3.max(values) ];\n }\n d3.layout.pack = function() {\n var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius;\n function pack(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === \"function\" ? radius : function() {\n return radius;\n };\n root.x = root.y = 0;\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r = +r(d.value);\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n if (padding) {\n var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r += dr;\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n d3_layout_hierarchyVisitAfter(root, function(d) {\n d.r -= dr;\n });\n }\n d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h));\n return nodes;\n }\n pack.size = function(_) {\n if (!arguments.length) return size;\n size = _;\n return pack;\n };\n pack.radius = function(_) {\n if (!arguments.length) return radius;\n radius = _ == null || typeof _ === \"function\" ? _ : +_;\n return pack;\n };\n pack.padding = function(_) {\n if (!arguments.length) return padding;\n padding = +_;\n return pack;\n };\n return d3_layout_hierarchyRebind(pack, hierarchy);\n };\n function d3_layout_packSort(a, b) {\n return a.value - b.value;\n }\n function d3_layout_packInsert(a, b) {\n var c = a._pack_next;\n a._pack_next = b;\n b._pack_prev = a;\n b._pack_next = c;\n c._pack_prev = b;\n }\n function d3_layout_packSplice(a, b) {\n a._pack_next = b;\n b._pack_prev = a;\n }\n function d3_layout_packIntersects(a, b) {\n var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;\n return .999 * dr * dr > dx * dx + dy * dy;\n }\n function d3_layout_packSiblings(node) {\n if (!(nodes = node.children) || !(n = nodes.length)) return;\n var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;\n function bound(node) {\n xMin = Math.min(node.x - node.r, xMin);\n xMax = Math.max(node.x + node.r, xMax);\n yMin = Math.min(node.y - node.r, yMin);\n yMax = Math.max(node.y + node.r, yMax);\n }\n nodes.forEach(d3_layout_packLink);\n a = nodes[0];\n a.x = -a.r;\n a.y = 0;\n bound(a);\n if (n > 1) {\n b = nodes[1];\n b.x = b.r;\n b.y = 0;\n bound(b);\n if (n > 2) {\n c = nodes[2];\n d3_layout_packPlace(a, b, c);\n bound(c);\n d3_layout_packInsert(a, c);\n a._pack_prev = c;\n d3_layout_packInsert(c, b);\n b = a._pack_next;\n for (i = 3; i < n; i++) {\n d3_layout_packPlace(a, b, c = nodes[i]);\n var isect = 0, s1 = 1, s2 = 1;\n for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {\n if (d3_layout_packIntersects(j, c)) {\n isect = 1;\n break;\n }\n }\n if (isect == 1) {\n for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {\n if (d3_layout_packIntersects(k, c)) {\n break;\n }\n }\n }\n if (isect) {\n if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);\n i--;\n } else {\n d3_layout_packInsert(a, c);\n b = c;\n bound(c);\n }\n }\n }\n }\n var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;\n for (i = 0; i < n; i++) {\n c = nodes[i];\n c.x -= cx;\n c.y -= cy;\n cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));\n }\n node.r = cr;\n nodes.forEach(d3_layout_packUnlink);\n }\n function d3_layout_packLink(node) {\n node._pack_next = node._pack_prev = node;\n }\n function d3_layout_packUnlink(node) {\n delete node._pack_next;\n delete node._pack_prev;\n }\n function d3_layout_packTransform(node, x, y, k) {\n var children = node.children;\n node.x = x += k * node.x;\n node.y = y += k * node.y;\n node.r *= k;\n if (children) {\n var i = -1, n = children.length;\n while (++i < n) d3_layout_packTransform(children[i], x, y, k);\n }\n }\n function d3_layout_packPlace(a, b, c) {\n var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;\n if (db && (dx || dy)) {\n var da = b.r + c.r, dc = dx * dx + dy * dy;\n da *= da;\n db *= db;\n var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);\n c.x = a.x + x * dx + y * dy;\n c.y = a.y + x * dy - y * dx;\n } else {\n c.x = a.x + db;\n c.y = a.y;\n }\n }\n d3.layout.tree = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null;\n function tree(d, i) {\n var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);\n d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;\n d3_layout_hierarchyVisitBefore(root1, secondWalk);\n if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else {\n var left = root0, right = root0, bottom = root0;\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n return nodes;\n }\n function wrapTree(root0) {\n var root1 = {\n A: null,\n children: [ root0 ]\n }, queue = [ root1 ], node1;\n while ((node1 = queue.pop()) != null) {\n for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {\n queue.push((children[i] = child = {\n _: children[i],\n parent: node1,\n children: (child = children[i].children) && child.slice() || [],\n A: null,\n a: null,\n z: 0,\n m: 0,\n c: 0,\n s: 0,\n t: null,\n i: i\n }).a = child);\n }\n }\n return root1.children[0];\n }\n function firstWalk(v) {\n var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;\n if (children.length) {\n d3_layout_treeShift(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;\n while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {\n vom = d3_layout_treeLeft(vom);\n vop = d3_layout_treeRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !d3_layout_treeRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !d3_layout_treeLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n function sizeNode(node) {\n node.x *= size[0];\n node.y = node.depth * size[1];\n }\n tree.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return tree;\n };\n tree.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null ? sizeNode : null;\n return tree;\n };\n tree.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) == null ? null : sizeNode;\n return tree;\n };\n return d3_layout_hierarchyRebind(tree, hierarchy);\n };\n function d3_layout_treeSeparation(a, b) {\n return a.parent == b.parent ? 1 : 2;\n }\n function d3_layout_treeLeft(v) {\n var children = v.children;\n return children.length ? children[0] : v.t;\n }\n function d3_layout_treeRight(v) {\n var children = v.children, n;\n return (n = children.length) ? children[n - 1] : v.t;\n }\n function d3_layout_treeMove(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n }\n function d3_layout_treeShift(v) {\n var shift = 0, change = 0, children = v.children, i = children.length, w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n }\n function d3_layout_treeAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n }\n d3.layout.cluster = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;\n function cluster(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var children = node.children;\n if (children && children.length) {\n node.x = d3_layout_clusterX(children);\n node.y = d3_layout_clusterY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;\n d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {\n node.x = (node.x - root.x) * size[0];\n node.y = (root.y - node.y) * size[1];\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * size[0];\n node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];\n });\n return nodes;\n }\n cluster.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return cluster;\n };\n cluster.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null;\n return cluster;\n };\n cluster.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) != null;\n return cluster;\n };\n return d3_layout_hierarchyRebind(cluster, hierarchy);\n };\n function d3_layout_clusterY(children) {\n return 1 + d3.max(children, function(child) {\n return child.y;\n });\n }\n function d3_layout_clusterX(children) {\n return children.reduce(function(x, child) {\n return x + child.x;\n }, 0) / children.length;\n }\n function d3_layout_clusterLeft(node) {\n var children = node.children;\n return children && children.length ? d3_layout_clusterLeft(children[0]) : node;\n }\n function d3_layout_clusterRight(node) {\n var children = node.children, n;\n return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;\n }\n d3.layout.treemap = function() {\n var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = \"squarify\", ratio = .5 * (1 + Math.sqrt(5));\n function scale(children, k) {\n var i = -1, n = children.length, child, area;\n while (++i < n) {\n area = (child = children[i]).value * (k < 0 ? 0 : k);\n child.area = isNaN(area) || area <= 0 ? 0 : area;\n }\n }\n function squarify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === \"slice\" ? rect.dx : mode === \"dice\" ? rect.dy : mode === \"slice-dice\" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while ((n = remaining.length) > 0) {\n row.push(child = remaining[n - 1]);\n row.area += child.area;\n if (mode !== \"squarify\" || (score = worst(row, u)) <= best) {\n remaining.pop();\n best = score;\n } else {\n row.area -= row.pop().area;\n position(row, u, rect, false);\n u = Math.min(rect.dx, rect.dy);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n if (row.length) {\n position(row, u, rect, true);\n row.length = row.area = 0;\n }\n children.forEach(squarify);\n }\n }\n function stickify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), remaining = children.slice(), child, row = [];\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while (child = remaining.pop()) {\n row.push(child);\n row.area += child.area;\n if (child.z != null) {\n position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);\n row.length = row.area = 0;\n }\n }\n children.forEach(stickify);\n }\n }\n function worst(row, u) {\n var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;\n while (++i < n) {\n if (!(r = row[i].area)) continue;\n if (r < rmin) rmin = r;\n if (r > rmax) rmax = r;\n }\n s *= s;\n u *= u;\n return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;\n }\n function position(row, u, rect, flush) {\n var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;\n if (u == rect.dx) {\n if (flush || v > rect.dy) v = rect.dy;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dy = v;\n x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);\n }\n o.z = true;\n o.dx += rect.x + rect.dx - x;\n rect.y += v;\n rect.dy -= v;\n } else {\n if (flush || v > rect.dx) v = rect.dx;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dx = v;\n y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);\n }\n o.z = false;\n o.dy += rect.y + rect.dy - y;\n rect.x += v;\n rect.dx -= v;\n }\n }\n function treemap(d) {\n var nodes = stickies || hierarchy(d), root = nodes[0];\n root.x = root.y = 0;\n if (root.value) root.dx = size[0], root.dy = size[1]; else root.dx = root.dy = 0;\n if (stickies) hierarchy.revalue(root);\n scale([ root ], root.dx * root.dy / root.value);\n (stickies ? stickify : squarify)(root);\n if (sticky) stickies = nodes;\n return nodes;\n }\n treemap.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return treemap;\n };\n treemap.padding = function(x) {\n if (!arguments.length) return padding;\n function padFunction(node) {\n var p = x.call(treemap, node, node.depth);\n return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === \"number\" ? [ p, p, p, p ] : p);\n }\n function padConstant(node) {\n return d3_layout_treemapPad(node, x);\n }\n var type;\n pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === \"function\" ? padFunction : type === \"number\" ? (x = [ x, x, x, x ], \n padConstant) : padConstant;\n return treemap;\n };\n treemap.round = function(x) {\n if (!arguments.length) return round != Number;\n round = x ? Math.round : Number;\n return treemap;\n };\n treemap.sticky = function(x) {\n if (!arguments.length) return sticky;\n sticky = x;\n stickies = null;\n return treemap;\n };\n treemap.ratio = function(x) {\n if (!arguments.length) return ratio;\n ratio = x;\n return treemap;\n };\n treemap.mode = function(x) {\n if (!arguments.length) return mode;\n mode = x + \"\";\n return treemap;\n };\n return d3_layout_hierarchyRebind(treemap, hierarchy);\n };\n function d3_layout_treemapPadNull(node) {\n return {\n x: node.x,\n y: node.y,\n dx: node.dx,\n dy: node.dy\n };\n }\n function d3_layout_treemapPad(node, padding) {\n var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];\n if (dx < 0) {\n x += dx / 2;\n dx = 0;\n }\n if (dy < 0) {\n y += dy / 2;\n dy = 0;\n }\n return {\n x: x,\n y: y,\n dx: dx,\n dy: dy\n };\n }\n d3.random = {\n normal: function(µ, σ) {\n var n = arguments.length;\n if (n < 2) σ = 1;\n if (n < 1) µ = 0;\n return function() {\n var x, y, r;\n do {\n x = Math.random() * 2 - 1;\n y = Math.random() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);\n };\n },\n logNormal: function() {\n var random = d3.random.normal.apply(d3, arguments);\n return function() {\n return Math.exp(random());\n };\n },\n bates: function(m) {\n var random = d3.random.irwinHall(m);\n return function() {\n return random() / m;\n };\n },\n irwinHall: function(m) {\n return function() {\n for (var s = 0, j = 0; j < m; j++) s += Math.random();\n return s;\n };\n }\n };\n d3.scale = {};\n function d3_scaleExtent(domain) {\n var start = domain[0], stop = domain[domain.length - 1];\n return start < stop ? [ start, stop ] : [ stop, start ];\n }\n function d3_scaleRange(scale) {\n return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());\n }\n function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {\n var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);\n return function(x) {\n return i(u(x));\n };\n }\n function d3_scale_nice(domain, nice) {\n var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;\n if (x1 < x0) {\n dx = i0, i0 = i1, i1 = dx;\n dx = x0, x0 = x1, x1 = dx;\n }\n domain[i0] = nice.floor(x0);\n domain[i1] = nice.ceil(x1);\n return domain;\n }\n function d3_scale_niceStep(step) {\n return step ? {\n floor: function(x) {\n return Math.floor(x / step) * step;\n },\n ceil: function(x) {\n return Math.ceil(x / step) * step;\n }\n } : d3_scale_niceIdentity;\n }\n var d3_scale_niceIdentity = {\n floor: d3_identity,\n ceil: d3_identity\n };\n function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {\n var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;\n if (domain[k] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n while (++j <= k) {\n u.push(uninterpolate(domain[j - 1], domain[j]));\n i.push(interpolate(range[j - 1], range[j]));\n }\n return function(x) {\n var j = d3.bisect(domain, x, 1, k) - 1;\n return i[j](u[j](x));\n };\n }\n d3.scale.linear = function() {\n return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);\n };\n function d3_scale_linear(domain, range, interpolate, clamp) {\n var output, input;\n function rescale() {\n var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;\n output = linear(domain, range, uninterpolate, interpolate);\n input = linear(range, domain, uninterpolate, d3_interpolate);\n return scale;\n }\n function scale(x) {\n return output(x);\n }\n scale.invert = function(y) {\n return input(y);\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(Number);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.rangeRound = function(x) {\n return scale.range(x).interpolate(d3_interpolateRound);\n };\n scale.clamp = function(x) {\n if (!arguments.length) return clamp;\n clamp = x;\n return rescale();\n };\n scale.interpolate = function(x) {\n if (!arguments.length) return interpolate;\n interpolate = x;\n return rescale();\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n d3_scale_linearNice(domain, m);\n return rescale();\n };\n scale.copy = function() {\n return d3_scale_linear(domain, range, interpolate, clamp);\n };\n return rescale();\n }\n function d3_scale_linearRebind(scale, linear) {\n return d3.rebind(scale, linear, \"range\", \"rangeRound\", \"interpolate\", \"clamp\");\n }\n function d3_scale_linearNice(domain, m) {\n d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n return domain;\n }\n function d3_scale_linearTickRange(domain, m) {\n if (m == null) m = 10;\n var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;\n if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;\n extent[0] = Math.ceil(extent[0] / step) * step;\n extent[1] = Math.floor(extent[1] / step) * step + step * .5;\n extent[2] = step;\n return extent;\n }\n function d3_scale_linearTicks(domain, m) {\n return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));\n }\n function d3_scale_linearTickFormat(domain, m, format) {\n var range = d3_scale_linearTickRange(domain, m);\n if (format) {\n var match = d3_format_re.exec(format);\n match.shift();\n if (match[8] === \"s\") {\n var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1])));\n if (!match[7]) match[7] = \".\" + d3_scale_linearPrecision(prefix.scale(range[2]));\n match[8] = \"f\";\n format = d3.format(match.join(\"\"));\n return function(d) {\n return format(prefix.scale(d)) + prefix.symbol;\n };\n }\n if (!match[7]) match[7] = \".\" + d3_scale_linearFormatPrecision(match[8], range);\n format = match.join(\"\");\n } else {\n format = \",.\" + d3_scale_linearPrecision(range[2]) + \"f\";\n }\n return d3.format(format);\n }\n var d3_scale_linearFormatSignificant = {\n s: 1,\n g: 1,\n p: 1,\n r: 1,\n e: 1\n };\n function d3_scale_linearPrecision(value) {\n return -Math.floor(Math.log(value) / Math.LN10 + .01);\n }\n function d3_scale_linearFormatPrecision(type, range) {\n var p = d3_scale_linearPrecision(range[2]);\n return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== \"e\") : p - (type === \"%\") * 2;\n }\n d3.scale.log = function() {\n return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]);\n };\n function d3_scale_log(linear, base, positive, domain) {\n function log(x) {\n return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base);\n }\n function pow(x) {\n return positive ? Math.pow(base, x) : -Math.pow(base, -x);\n }\n function scale(x) {\n return linear(log(x));\n }\n scale.invert = function(x) {\n return pow(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n positive = x[0] >= 0;\n linear.domain((domain = x.map(Number)).map(log));\n return scale;\n };\n scale.base = function(_) {\n if (!arguments.length) return base;\n base = +_;\n linear.domain(domain.map(log));\n return scale;\n };\n scale.nice = function() {\n var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);\n linear.domain(niced);\n domain = niced.map(pow);\n return scale;\n };\n scale.ticks = function() {\n var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;\n if (isFinite(j - i)) {\n if (positive) {\n for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);\n ticks.push(pow(i));\n } else {\n ticks.push(pow(i));\n for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k);\n }\n for (i = 0; ticks[i] < u; i++) {}\n for (j = ticks.length; ticks[j - 1] > v; j--) {}\n ticks = ticks.slice(i, j);\n }\n return ticks;\n };\n scale.tickFormat = function(n, format) {\n if (!arguments.length) return d3_scale_logFormat;\n if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== \"function\") format = d3.format(format);\n var k = Math.max(1, base * n / scale.ticks().length);\n return function(d) {\n var i = d / pow(Math.round(log(d)));\n if (i * base < base - .5) i *= base;\n return i <= k ? format(d) : \"\";\n };\n };\n scale.copy = function() {\n return d3_scale_log(linear.copy(), base, positive, domain);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n var d3_scale_logFormat = d3.format(\".0e\"), d3_scale_logNiceNegative = {\n floor: function(x) {\n return -Math.ceil(-x);\n },\n ceil: function(x) {\n return -Math.floor(-x);\n }\n };\n d3.scale.pow = function() {\n return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]);\n };\n function d3_scale_pow(linear, exponent, domain) {\n var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);\n function scale(x) {\n return linear(powp(x));\n }\n scale.invert = function(x) {\n return powb(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n linear.domain((domain = x.map(Number)).map(powp));\n return scale;\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n return scale.domain(d3_scale_linearNice(domain, m));\n };\n scale.exponent = function(x) {\n if (!arguments.length) return exponent;\n powp = d3_scale_powPow(exponent = x);\n powb = d3_scale_powPow(1 / exponent);\n linear.domain(domain.map(powp));\n return scale;\n };\n scale.copy = function() {\n return d3_scale_pow(linear.copy(), exponent, domain);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n function d3_scale_powPow(e) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);\n };\n }\n d3.scale.sqrt = function() {\n return d3.scale.pow().exponent(.5);\n };\n d3.scale.ordinal = function() {\n return d3_scale_ordinal([], {\n t: \"range\",\n a: [ [] ]\n });\n };\n function d3_scale_ordinal(domain, ranger) {\n var index, range, rangeBand;\n function scale(x) {\n return range[((index.get(x) || (ranger.t === \"range\" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];\n }\n function steps(start, step) {\n return d3.range(domain.length).map(function(i) {\n return start + step * i;\n });\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = [];\n index = new d3_Map();\n var i = -1, n = x.length, xi;\n while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));\n return scale[ranger.t].apply(scale, ranger.a);\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n rangeBand = 0;\n ranger = {\n t: \"range\",\n a: arguments\n };\n return scale;\n };\n scale.rangePoints = function(x, padding) {\n if (arguments.length < 2) padding = 0;\n var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2, \n 0) : (stop - start) / (domain.length - 1 + padding);\n range = steps(start + step * padding / 2, step);\n rangeBand = 0;\n ranger = {\n t: \"rangePoints\",\n a: arguments\n };\n return scale;\n };\n scale.rangeRoundPoints = function(x, padding) {\n if (arguments.length < 2) padding = 0;\n var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2), \n 0) : (stop - start) / (domain.length - 1 + padding) | 0;\n range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step);\n rangeBand = 0;\n ranger = {\n t: \"rangeRoundPoints\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);\n range = steps(start + step * outerPadding, step);\n if (reverse) range.reverse();\n rangeBand = step * (1 - padding);\n ranger = {\n t: \"rangeBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeRoundBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding));\n range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);\n if (reverse) range.reverse();\n rangeBand = Math.round(step * (1 - padding));\n ranger = {\n t: \"rangeRoundBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBand = function() {\n return rangeBand;\n };\n scale.rangeExtent = function() {\n return d3_scaleExtent(ranger.a[0]);\n };\n scale.copy = function() {\n return d3_scale_ordinal(domain, ranger);\n };\n return scale.domain(domain);\n }\n d3.scale.category10 = function() {\n return d3.scale.ordinal().range(d3_category10);\n };\n d3.scale.category20 = function() {\n return d3.scale.ordinal().range(d3_category20);\n };\n d3.scale.category20b = function() {\n return d3.scale.ordinal().range(d3_category20b);\n };\n d3.scale.category20c = function() {\n return d3.scale.ordinal().range(d3_category20c);\n };\n var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString);\n var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString);\n var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString);\n var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString);\n d3.scale.quantile = function() {\n return d3_scale_quantile([], []);\n };\n function d3_scale_quantile(domain, range) {\n var thresholds;\n function rescale() {\n var k = 0, q = range.length;\n thresholds = [];\n while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);\n return scale;\n }\n function scale(x) {\n if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)];\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.quantiles = function() {\n return thresholds;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ];\n };\n scale.copy = function() {\n return d3_scale_quantile(domain, range);\n };\n return rescale();\n }\n d3.scale.quantize = function() {\n return d3_scale_quantize(0, 1, [ 0, 1 ]);\n };\n function d3_scale_quantize(x0, x1, range) {\n var kx, i;\n function scale(x) {\n return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];\n }\n function rescale() {\n kx = range.length / (x1 - x0);\n i = range.length - 1;\n return scale;\n }\n scale.domain = function(x) {\n if (!arguments.length) return [ x0, x1 ];\n x0 = +x[0];\n x1 = +x[x.length - 1];\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n y = y < 0 ? NaN : y / kx + x0;\n return [ y, y + 1 / kx ];\n };\n scale.copy = function() {\n return d3_scale_quantize(x0, x1, range);\n };\n return rescale();\n }\n d3.scale.threshold = function() {\n return d3_scale_threshold([ .5 ], [ 0, 1 ]);\n };\n function d3_scale_threshold(domain, range) {\n function scale(x) {\n if (x <= x) return range[d3.bisect(domain, x)];\n }\n scale.domain = function(_) {\n if (!arguments.length) return domain;\n domain = _;\n return scale;\n };\n scale.range = function(_) {\n if (!arguments.length) return range;\n range = _;\n return scale;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return [ domain[y - 1], domain[y] ];\n };\n scale.copy = function() {\n return d3_scale_threshold(domain, range);\n };\n return scale;\n }\n d3.scale.identity = function() {\n return d3_scale_identity([ 0, 1 ]);\n };\n function d3_scale_identity(domain) {\n function identity(x) {\n return +x;\n }\n identity.invert = identity;\n identity.domain = identity.range = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(identity);\n return identity;\n };\n identity.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n identity.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n identity.copy = function() {\n return d3_scale_identity(domain);\n };\n return identity;\n }\n d3.svg = {};\n function d3_zero() {\n return 0;\n }\n d3.svg.arc = function() {\n var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle;\n function arc() {\n var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - halfπ, a1 = endAngle.apply(this, arguments) - halfπ, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1;\n if (r1 < r0) rc = r1, r1 = r0, r0 = rc;\n if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : \"\") + \"Z\";\n var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = [];\n if (ap = (+padAngle.apply(this, arguments) || 0) / 2) {\n rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments);\n if (!cw) p1 *= -1;\n if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap));\n if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap));\n }\n if (r1) {\n x0 = r1 * Math.cos(a0 + p1);\n y0 = r1 * Math.sin(a0 + p1);\n x1 = r1 * Math.cos(a1 - p1);\n y1 = r1 * Math.sin(a1 - p1);\n var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1;\n if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) {\n var h1 = (a0 + a1) / 2;\n x0 = r1 * Math.cos(h1);\n y0 = r1 * Math.sin(h1);\n x1 = y1 = null;\n }\n } else {\n x0 = y0 = 0;\n }\n if (r0) {\n x2 = r0 * Math.cos(a1 - p0);\n y2 = r0 * Math.sin(a1 - p0);\n x3 = r0 * Math.cos(a0 + p0);\n y3 = r0 * Math.sin(a0 + p0);\n var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1;\n if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) {\n var h0 = (a0 + a1) / 2;\n x2 = r0 * Math.cos(h0);\n y2 = r0 * Math.sin(h0);\n x3 = y3 = null;\n }\n } else {\n x2 = y2 = 0;\n }\n if (da > ε && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) {\n cr = r0 < r1 ^ cw ? 0 : 1;\n var rc1 = rc, rc0 = rc;\n if (da < π) {\n var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = Math.min(rc, (r0 - lc) / (kc - 1));\n rc1 = Math.min(rc, (r1 - lc) / (kc + 1));\n }\n if (x1 != null) {\n var t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw);\n if (rc === rc1) {\n path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t30[1], \"A\", r1, \",\", r1, \" 0 \", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), \",\", cw, \" \", t12[1], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t12[0]);\n } else {\n path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 1,\", cr, \" \", t12[0]);\n }\n } else {\n path.push(\"M\", x0, \",\", y0);\n }\n if (x3 != null) {\n var t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw);\n if (rc === rc0) {\n path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t21[1], \"A\", r0, \",\", r0, \" 0 \", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), \",\", 1 - cw, \" \", t03[1], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n } else {\n path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n }\n } else {\n path.push(\"L\", x2, \",\", y2);\n }\n } else {\n path.push(\"M\", x0, \",\", y0);\n if (x1 != null) path.push(\"A\", r1, \",\", r1, \" 0 \", l1, \",\", cw, \" \", x1, \",\", y1);\n path.push(\"L\", x2, \",\", y2);\n if (x3 != null) path.push(\"A\", r0, \",\", r0, \" 0 \", l0, \",\", 1 - cw, \" \", x3, \",\", y3);\n }\n path.push(\"Z\");\n return path.join(\"\");\n }\n function circleSegment(r1, cw) {\n return \"M0,\" + r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + -r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + r1;\n }\n arc.innerRadius = function(v) {\n if (!arguments.length) return innerRadius;\n innerRadius = d3_functor(v);\n return arc;\n };\n arc.outerRadius = function(v) {\n if (!arguments.length) return outerRadius;\n outerRadius = d3_functor(v);\n return arc;\n };\n arc.cornerRadius = function(v) {\n if (!arguments.length) return cornerRadius;\n cornerRadius = d3_functor(v);\n return arc;\n };\n arc.padRadius = function(v) {\n if (!arguments.length) return padRadius;\n padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v);\n return arc;\n };\n arc.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return arc;\n };\n arc.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return arc;\n };\n arc.padAngle = function(v) {\n if (!arguments.length) return padAngle;\n padAngle = d3_functor(v);\n return arc;\n };\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - halfπ;\n return [ Math.cos(a) * r, Math.sin(a) * r ];\n };\n return arc;\n };\n var d3_svg_arcAuto = \"auto\";\n function d3_svg_arcInnerRadius(d) {\n return d.innerRadius;\n }\n function d3_svg_arcOuterRadius(d) {\n return d.outerRadius;\n }\n function d3_svg_arcStartAngle(d) {\n return d.startAngle;\n }\n function d3_svg_arcEndAngle(d) {\n return d.endAngle;\n }\n function d3_svg_arcPadAngle(d) {\n return d && d.padAngle;\n }\n function d3_svg_arcSweep(x0, y0, x1, y1) {\n return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1;\n }\n function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) {\n var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3;\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ];\n }\n function d3_svg_line(projection) {\n var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;\n function line(data) {\n var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);\n function segment() {\n segments.push(\"M\", interpolate(projection(points), tension));\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);\n } else if (points.length) {\n segment();\n points = [];\n }\n }\n if (points.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n line.x = function(_) {\n if (!arguments.length) return x;\n x = _;\n return line;\n };\n line.y = function(_) {\n if (!arguments.length) return y;\n y = _;\n return line;\n };\n line.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return line;\n };\n line.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n return line;\n };\n line.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return line;\n };\n return line;\n }\n d3.svg.line = function() {\n return d3_svg_line(d3_identity);\n };\n var d3_svg_lineInterpolators = d3.map({\n linear: d3_svg_lineLinear,\n \"linear-closed\": d3_svg_lineLinearClosed,\n step: d3_svg_lineStep,\n \"step-before\": d3_svg_lineStepBefore,\n \"step-after\": d3_svg_lineStepAfter,\n basis: d3_svg_lineBasis,\n \"basis-open\": d3_svg_lineBasisOpen,\n \"basis-closed\": d3_svg_lineBasisClosed,\n bundle: d3_svg_lineBundle,\n cardinal: d3_svg_lineCardinal,\n \"cardinal-open\": d3_svg_lineCardinalOpen,\n \"cardinal-closed\": d3_svg_lineCardinalClosed,\n monotone: d3_svg_lineMonotone\n });\n d3_svg_lineInterpolators.forEach(function(key, value) {\n value.key = key;\n value.closed = /-closed$/.test(key);\n });\n function d3_svg_lineLinear(points) {\n return points.length > 1 ? points.join(\"L\") : points + \"Z\";\n }\n function d3_svg_lineLinearClosed(points) {\n return points.join(\"L\") + \"Z\";\n }\n function d3_svg_lineStep(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"H\", (p[0] + (p = points[i])[0]) / 2, \"V\", p[1]);\n if (n > 1) path.push(\"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepBefore(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"V\", (p = points[i])[1], \"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepAfter(points) {\n var i = 0, n = points.length, p = points[0], path = [ p[0], \",\", p[1] ];\n while (++i < n) path.push(\"H\", (p = points[i])[0], \"V\", p[1]);\n return path.join(\"\");\n }\n function d3_svg_lineCardinalOpen(points, tension) {\n return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineCardinalClosed(points, tension) {\n return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), \n points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));\n }\n function d3_svg_lineCardinal(points, tension) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineHermite(points, tangents) {\n if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {\n return d3_svg_lineLinear(points);\n }\n var quad = points.length != tangents.length, path = \"\", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;\n if (quad) {\n path += \"Q\" + (p[0] - t0[0] * 2 / 3) + \",\" + (p[1] - t0[1] * 2 / 3) + \",\" + p[0] + \",\" + p[1];\n p0 = points[1];\n pi = 2;\n }\n if (tangents.length > 1) {\n t = tangents[1];\n p = points[pi];\n pi++;\n path += \"C\" + (p0[0] + t0[0]) + \",\" + (p0[1] + t0[1]) + \",\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n for (var i = 2; i < tangents.length; i++, pi++) {\n p = points[pi];\n t = tangents[i];\n path += \"S\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n }\n }\n if (quad) {\n var lp = points[pi];\n path += \"Q\" + (p[0] + t[0] * 2 / 3) + \",\" + (p[1] + t[1] * 2 / 3) + \",\" + lp[0] + \",\" + lp[1];\n }\n return path;\n }\n function d3_svg_lineCardinalTangents(points, tension) {\n var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;\n while (++i < n) {\n p0 = p1;\n p1 = p2;\n p2 = points[i];\n tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);\n }\n return tangents;\n }\n function d3_svg_lineBasis(points) {\n if (points.length < 3) return d3_svg_lineLinear(points);\n var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, \",\", y0, \"L\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];\n points.push(points[n - 1]);\n while (++i <= n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n points.pop();\n path.push(\"L\", pi);\n return path.join(\"\");\n }\n function d3_svg_lineBasisOpen(points) {\n if (points.length < 4) return d3_svg_lineLinear(points);\n var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];\n while (++i < 3) {\n pi = points[i];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + \",\" + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));\n --i;\n while (++i < n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBasisClosed(points) {\n var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];\n while (++i < 4) {\n pi = points[i % n];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];\n --i;\n while (++i < m) {\n pi = points[i % n];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBundle(points, tension) {\n var n = points.length - 1;\n if (n) {\n var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;\n while (++i <= n) {\n p = points[i];\n t = i / n;\n p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);\n p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);\n }\n }\n return d3_svg_lineBasis(points);\n }\n function d3_svg_lineDot4(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n }\n var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];\n function d3_svg_lineBasisBezier(path, x, y) {\n path.push(\"C\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));\n }\n function d3_svg_lineSlope(p0, p1) {\n return (p1[1] - p0[1]) / (p1[0] - p0[0]);\n }\n function d3_svg_lineFiniteDifferences(points) {\n var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);\n while (++i < j) {\n m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;\n }\n m[i] = d;\n return m;\n }\n function d3_svg_lineMonotoneTangents(points) {\n var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;\n while (++i < j) {\n d = d3_svg_lineSlope(points[i], points[i + 1]);\n if (abs(d) < ε) {\n m[i] = m[i + 1] = 0;\n } else {\n a = m[i] / d;\n b = m[i + 1] / d;\n s = a * a + b * b;\n if (s > 9) {\n s = d * 3 / Math.sqrt(s);\n m[i] = s * a;\n m[i + 1] = s * b;\n }\n }\n }\n i = -1;\n while (++i <= j) {\n s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));\n tangents.push([ s || 0, m[i] * s || 0 ]);\n }\n return tangents;\n }\n function d3_svg_lineMonotone(points) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));\n }\n d3.svg.line.radial = function() {\n var line = d3_svg_line(d3_svg_lineRadial);\n line.radius = line.x, delete line.x;\n line.angle = line.y, delete line.y;\n return line;\n };\n function d3_svg_lineRadial(points) {\n var point, i = -1, n = points.length, r, a;\n while (++i < n) {\n point = points[i];\n r = point[0];\n a = point[1] - halfπ;\n point[0] = r * Math.cos(a);\n point[1] = r * Math.sin(a);\n }\n return points;\n }\n function d3_svg_area(projection) {\n var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = \"L\", tension = .7;\n function area(data) {\n var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {\n return x;\n } : d3_functor(x1), fy1 = y0 === y1 ? function() {\n return y;\n } : d3_functor(y1), x, y;\n function segment() {\n segments.push(\"M\", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), \"Z\");\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);\n points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);\n } else if (points0.length) {\n segment();\n points0 = [];\n points1 = [];\n }\n }\n if (points0.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n area.x = function(_) {\n if (!arguments.length) return x1;\n x0 = x1 = _;\n return area;\n };\n area.x0 = function(_) {\n if (!arguments.length) return x0;\n x0 = _;\n return area;\n };\n area.x1 = function(_) {\n if (!arguments.length) return x1;\n x1 = _;\n return area;\n };\n area.y = function(_) {\n if (!arguments.length) return y1;\n y0 = y1 = _;\n return area;\n };\n area.y0 = function(_) {\n if (!arguments.length) return y0;\n y0 = _;\n return area;\n };\n area.y1 = function(_) {\n if (!arguments.length) return y1;\n y1 = _;\n return area;\n };\n area.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return area;\n };\n area.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n interpolateReverse = interpolate.reverse || interpolate;\n L = interpolate.closed ? \"M\" : \"L\";\n return area;\n };\n area.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return area;\n };\n return area;\n }\n d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;\n d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;\n d3.svg.area = function() {\n return d3_svg_area(d3_identity);\n };\n d3.svg.area.radial = function() {\n var area = d3_svg_area(d3_svg_lineRadial);\n area.radius = area.x, delete area.x;\n area.innerRadius = area.x0, delete area.x0;\n area.outerRadius = area.x1, delete area.x1;\n area.angle = area.y, delete area.y;\n area.startAngle = area.y0, delete area.y0;\n area.endAngle = area.y1, delete area.y1;\n return area;\n };\n d3.svg.chord = function() {\n var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;\n function chord(d, i) {\n var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);\n return \"M\" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + \"Z\";\n }\n function subgroup(self, f, d, i) {\n var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) - halfπ, a1 = endAngle.call(self, subgroup, i) - halfπ;\n return {\n r: r,\n a0: a0,\n a1: a1,\n p0: [ r * Math.cos(a0), r * Math.sin(a0) ],\n p1: [ r * Math.cos(a1), r * Math.sin(a1) ]\n };\n }\n function equals(a, b) {\n return a.a0 == b.a0 && a.a1 == b.a1;\n }\n function arc(r, p, a) {\n return \"A\" + r + \",\" + r + \" 0 \" + +(a > π) + \",1 \" + p;\n }\n function curve(r0, p0, r1, p1) {\n return \"Q 0,0 \" + p1;\n }\n chord.radius = function(v) {\n if (!arguments.length) return radius;\n radius = d3_functor(v);\n return chord;\n };\n chord.source = function(v) {\n if (!arguments.length) return source;\n source = d3_functor(v);\n return chord;\n };\n chord.target = function(v) {\n if (!arguments.length) return target;\n target = d3_functor(v);\n return chord;\n };\n chord.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return chord;\n };\n chord.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return chord;\n };\n return chord;\n };\n function d3_svg_chordRadius(d) {\n return d.radius;\n }\n d3.svg.diagonal = function() {\n var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;\n function diagonal(d, i) {\n var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {\n x: p0.x,\n y: m\n }, {\n x: p3.x,\n y: m\n }, p3 ];\n p = p.map(projection);\n return \"M\" + p[0] + \"C\" + p[1] + \" \" + p[2] + \" \" + p[3];\n }\n diagonal.source = function(x) {\n if (!arguments.length) return source;\n source = d3_functor(x);\n return diagonal;\n };\n diagonal.target = function(x) {\n if (!arguments.length) return target;\n target = d3_functor(x);\n return diagonal;\n };\n diagonal.projection = function(x) {\n if (!arguments.length) return projection;\n projection = x;\n return diagonal;\n };\n return diagonal;\n };\n function d3_svg_diagonalProjection(d) {\n return [ d.x, d.y ];\n }\n d3.svg.diagonal.radial = function() {\n var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;\n diagonal.projection = function(x) {\n return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;\n };\n return diagonal;\n };\n function d3_svg_diagonalRadialProjection(projection) {\n return function() {\n var d = projection.apply(this, arguments), r = d[0], a = d[1] - halfπ;\n return [ r * Math.cos(a), r * Math.sin(a) ];\n };\n }\n d3.svg.symbol = function() {\n var type = d3_svg_symbolType, size = d3_svg_symbolSize;\n function symbol(d, i) {\n return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));\n }\n symbol.type = function(x) {\n if (!arguments.length) return type;\n type = d3_functor(x);\n return symbol;\n };\n symbol.size = function(x) {\n if (!arguments.length) return size;\n size = d3_functor(x);\n return symbol;\n };\n return symbol;\n };\n function d3_svg_symbolSize() {\n return 64;\n }\n function d3_svg_symbolType() {\n return \"circle\";\n }\n function d3_svg_symbolCircle(size) {\n var r = Math.sqrt(size / π);\n return \"M0,\" + r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + -r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + r + \"Z\";\n }\n var d3_svg_symbols = d3.map({\n circle: d3_svg_symbolCircle,\n cross: function(size) {\n var r = Math.sqrt(size / 5) / 2;\n return \"M\" + -3 * r + \",\" + -r + \"H\" + -r + \"V\" + -3 * r + \"H\" + r + \"V\" + -r + \"H\" + 3 * r + \"V\" + r + \"H\" + r + \"V\" + 3 * r + \"H\" + -r + \"V\" + r + \"H\" + -3 * r + \"Z\";\n },\n diamond: function(size) {\n var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;\n return \"M0,\" + -ry + \"L\" + rx + \",0\" + \" 0,\" + ry + \" \" + -rx + \",0\" + \"Z\";\n },\n square: function(size) {\n var r = Math.sqrt(size) / 2;\n return \"M\" + -r + \",\" + -r + \"L\" + r + \",\" + -r + \" \" + r + \",\" + r + \" \" + -r + \",\" + r + \"Z\";\n },\n \"triangle-down\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + ry + \"L\" + rx + \",\" + -ry + \" \" + -rx + \",\" + -ry + \"Z\";\n },\n \"triangle-up\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + -ry + \"L\" + rx + \",\" + ry + \" \" + -rx + \",\" + ry + \"Z\";\n }\n });\n d3.svg.symbolTypes = d3_svg_symbols.keys();\n var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);\n d3_selectionPrototype.transition = function(name) {\n var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name), subgroups = [], subgroup, node, transition = d3_transitionInherit || {\n time: Date.now(),\n ease: d3_ease_cubicInOut,\n delay: 0,\n duration: 250\n };\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_selectionPrototype.interrupt = function(name) {\n return this.each(name == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name)));\n };\n var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace());\n function d3_selection_interruptNS(ns) {\n return function() {\n var lock, activeId, active;\n if ((lock = this[ns]) && (active = lock[activeId = lock.active])) {\n active.timer.c = null;\n active.timer.t = NaN;\n if (--lock.count) delete lock[activeId]; else delete this[ns];\n lock.active += .5;\n active.event && active.event.interrupt.call(this, this.__data__, active.index);\n }\n };\n }\n function d3_transition(groups, ns, id) {\n d3_subclass(groups, d3_transitionPrototype);\n groups.namespace = ns;\n groups.id = id;\n return groups;\n }\n var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit;\n d3_transitionPrototype.call = d3_selectionPrototype.call;\n d3_transitionPrototype.empty = d3_selectionPrototype.empty;\n d3_transitionPrototype.node = d3_selectionPrototype.node;\n d3_transitionPrototype.size = d3_selectionPrototype.size;\n d3.transition = function(selection, name) {\n return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name) : selection : d3.selection().transition(selection);\n };\n d3.transition.prototype = d3_transitionPrototype;\n d3_transitionPrototype.select = function(selector) {\n var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n d3_transitionNode(subnode, i, ns, id, node[ns][id]);\n subgroup.push(subnode);\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_transitionPrototype.selectAll = function(selector) {\n var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n transition = node[ns][id];\n subnodes = selector.call(node, node.__data__, i, j);\n subgroups.push(subgroup = []);\n for (var k = -1, o = subnodes.length; ++k < o; ) {\n if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition);\n subgroup.push(subnode);\n }\n }\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_transitionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_transition(subgroups, this.namespace, this.id);\n };\n d3_transitionPrototype.tween = function(name, tween) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 2) return this.node()[ns][id].tween.get(name);\n return d3_selection_each(this, tween == null ? function(node) {\n node[ns][id].tween.remove(name);\n } : function(node) {\n node[ns][id].tween.set(name, tween);\n });\n };\n function d3_transition_tween(groups, name, value, tween) {\n var id = groups.id, ns = groups.namespace;\n return d3_selection_each(groups, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j)));\n } : (value = tween(value), function(node) {\n node[ns][id].tween.set(name, value);\n }));\n }\n d3_transitionPrototype.attr = function(nameNS, value) {\n if (arguments.length < 2) {\n for (value in nameNS) this.attr(value, nameNS[value]);\n return this;\n }\n var interpolate = nameNS == \"transform\" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS);\n function attrNull() {\n this.removeAttribute(name);\n }\n function attrNullNS() {\n this.removeAttributeNS(name.space, name.local);\n }\n function attrTween(b) {\n return b == null ? attrNull : (b += \"\", function() {\n var a = this.getAttribute(name), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttribute(name, i(t));\n });\n });\n }\n function attrTweenNS(b) {\n return b == null ? attrNullNS : (b += \"\", function() {\n var a = this.getAttributeNS(name.space, name.local), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttributeNS(name.space, name.local, i(t));\n });\n });\n }\n return d3_transition_tween(this, \"attr.\" + nameNS, value, name.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.attrTween = function(nameNS, tween) {\n var name = d3.ns.qualify(nameNS);\n function attrTween(d, i) {\n var f = tween.call(this, d, i, this.getAttribute(name));\n return f && function(t) {\n this.setAttribute(name, f(t));\n };\n }\n function attrTweenNS(d, i) {\n var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));\n return f && function(t) {\n this.setAttributeNS(name.space, name.local, f(t));\n };\n }\n return this.tween(\"attr.\" + nameNS, name.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.style = function(name, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name) this.style(priority, name[priority], value);\n return this;\n }\n priority = \"\";\n }\n function styleNull() {\n this.style.removeProperty(name);\n }\n function styleString(b) {\n return b == null ? styleNull : (b += \"\", function() {\n var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i;\n return a !== b && (i = d3_interpolate(a, b), function(t) {\n this.style.setProperty(name, i(t), priority);\n });\n });\n }\n return d3_transition_tween(this, \"style.\" + name, value, styleString);\n };\n d3_transitionPrototype.styleTween = function(name, tween, priority) {\n if (arguments.length < 3) priority = \"\";\n function styleTween(d, i) {\n var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name));\n return f && function(t) {\n this.style.setProperty(name, f(t), priority);\n };\n }\n return this.tween(\"style.\" + name, styleTween);\n };\n d3_transitionPrototype.text = function(value) {\n return d3_transition_tween(this, \"text\", value, d3_transition_text);\n };\n function d3_transition_text(b) {\n if (b == null) b = \"\";\n return function() {\n this.textContent = b;\n };\n }\n d3_transitionPrototype.remove = function() {\n var ns = this.namespace;\n return this.each(\"end.transition\", function() {\n var p;\n if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);\n });\n };\n d3_transitionPrototype.ease = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].ease;\n if (typeof value !== \"function\") value = d3.ease.apply(d3, arguments);\n return d3_selection_each(this, function(node) {\n node[ns][id].ease = value;\n });\n };\n d3_transitionPrototype.delay = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].delay;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].delay = +value.call(node, node.__data__, i, j);\n } : (value = +value, function(node) {\n node[ns][id].delay = value;\n }));\n };\n d3_transitionPrototype.duration = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].duration;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j));\n } : (value = Math.max(1, value), function(node) {\n node[ns][id].duration = value;\n }));\n };\n d3_transitionPrototype.each = function(type, listener) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 2) {\n var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;\n try {\n d3_transitionInheritId = id;\n d3_selection_each(this, function(node, i, j) {\n d3_transitionInherit = node[ns][id];\n type.call(node, node.__data__, i, j);\n });\n } finally {\n d3_transitionInherit = inherit;\n d3_transitionInheritId = inheritId;\n }\n } else {\n d3_selection_each(this, function(node) {\n var transition = node[ns][id];\n (transition.event || (transition.event = d3.dispatch(\"start\", \"end\", \"interrupt\"))).on(type, listener);\n });\n }\n return this;\n };\n d3_transitionPrototype.transition = function() {\n var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition;\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if (node = group[i]) {\n transition = node[ns][id0];\n d3_transitionNode(node, i, ns, id1, {\n time: transition.time,\n ease: transition.ease,\n delay: transition.delay + transition.duration,\n duration: transition.duration\n });\n }\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, ns, id1);\n };\n function d3_transitionNamespace(name) {\n return name == null ? \"__transition__\" : \"__transition_\" + name + \"__\";\n }\n function d3_transitionNode(node, i, ns, id, inherit) {\n var lock = node[ns] || (node[ns] = {\n active: 0,\n count: 0\n }), transition = lock[id], time, timer, duration, ease, tweens;\n function schedule(elapsed) {\n var delay = transition.delay;\n timer.t = delay + time;\n if (delay <= elapsed) return start(elapsed - delay);\n timer.c = start;\n }\n function start(elapsed) {\n var activeId = lock.active, active = lock[activeId];\n if (active) {\n active.timer.c = null;\n active.timer.t = NaN;\n --lock.count;\n delete lock[activeId];\n active.event && active.event.interrupt.call(node, node.__data__, active.index);\n }\n for (var cancelId in lock) {\n if (+cancelId < id) {\n var cancel = lock[cancelId];\n cancel.timer.c = null;\n cancel.timer.t = NaN;\n --lock.count;\n delete lock[cancelId];\n }\n }\n timer.c = tick;\n d3_timer(function() {\n if (timer.c && tick(elapsed || 1)) {\n timer.c = null;\n timer.t = NaN;\n }\n return 1;\n }, 0, time);\n lock.active = id;\n transition.event && transition.event.start.call(node, node.__data__, i);\n tweens = [];\n transition.tween.forEach(function(key, value) {\n if (value = value.call(node, node.__data__, i)) {\n tweens.push(value);\n }\n });\n ease = transition.ease;\n duration = transition.duration;\n }\n function tick(elapsed) {\n var t = elapsed / duration, e = ease(t), n = tweens.length;\n while (n > 0) {\n tweens[--n].call(node, e);\n }\n if (t >= 1) {\n transition.event && transition.event.end.call(node, node.__data__, i);\n if (--lock.count) delete lock[id]; else delete node[ns];\n return 1;\n }\n }\n if (!transition) {\n time = inherit.time;\n timer = d3_timer(schedule, 0, time);\n transition = lock[id] = {\n tween: new d3_Map(),\n time: time,\n timer: timer,\n delay: inherit.delay,\n duration: inherit.duration,\n ease: inherit.ease,\n index: i\n };\n inherit = null;\n ++lock.count;\n }\n }\n d3.svg.axis = function() {\n var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_;\n function axis(g) {\n g.each(function() {\n var g = d3.select(this);\n var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();\n var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(\".tick\").data(ticks, scale1), tickEnter = tick.enter().insert(\"g\", \".domain\").attr(\"class\", \"tick\").style(\"opacity\", ε), tickExit = d3.transition(tick.exit()).style(\"opacity\", ε).remove(), tickUpdate = d3.transition(tick.order()).style(\"opacity\", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform;\n var range = d3_scaleRange(scale1), path = g.selectAll(\".domain\").data([ 0 ]), pathUpdate = (path.enter().append(\"path\").attr(\"class\", \"domain\"), \n d3.transition(path));\n tickEnter.append(\"line\");\n tickEnter.append(\"text\");\n var lineEnter = tickEnter.select(\"line\"), lineUpdate = tickUpdate.select(\"line\"), text = tick.select(\"text\").text(tickFormat), textEnter = tickEnter.select(\"text\"), textUpdate = tickUpdate.select(\"text\"), sign = orient === \"top\" || orient === \"left\" ? -1 : 1, x1, x2, y1, y2;\n if (orient === \"bottom\" || orient === \"top\") {\n tickTransform = d3_svg_axisX, x1 = \"x\", y1 = \"y\", x2 = \"x2\", y2 = \"y2\";\n text.attr(\"dy\", sign < 0 ? \"0em\" : \".71em\").style(\"text-anchor\", \"middle\");\n pathUpdate.attr(\"d\", \"M\" + range[0] + \",\" + sign * outerTickSize + \"V0H\" + range[1] + \"V\" + sign * outerTickSize);\n } else {\n tickTransform = d3_svg_axisY, x1 = \"y\", y1 = \"x\", x2 = \"y2\", y2 = \"x2\";\n text.attr(\"dy\", \".32em\").style(\"text-anchor\", sign < 0 ? \"end\" : \"start\");\n pathUpdate.attr(\"d\", \"M\" + sign * outerTickSize + \",\" + range[0] + \"H0V\" + range[1] + \"H\" + sign * outerTickSize);\n }\n lineEnter.attr(y2, sign * innerTickSize);\n textEnter.attr(y1, sign * tickSpacing);\n lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize);\n textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing);\n if (scale1.rangeBand) {\n var x = scale1, dx = x.rangeBand() / 2;\n scale0 = scale1 = function(d) {\n return x(d) + dx;\n };\n } else if (scale0.rangeBand) {\n scale0 = scale1;\n } else {\n tickExit.call(tickTransform, scale1, scale0);\n }\n tickEnter.call(tickTransform, scale0, scale1);\n tickUpdate.call(tickTransform, scale1, scale1);\n });\n }\n axis.scale = function(x) {\n if (!arguments.length) return scale;\n scale = x;\n return axis;\n };\n axis.orient = function(x) {\n if (!arguments.length) return orient;\n orient = x in d3_svg_axisOrients ? x + \"\" : d3_svg_axisDefaultOrient;\n return axis;\n };\n axis.ticks = function() {\n if (!arguments.length) return tickArguments_;\n tickArguments_ = d3_array(arguments);\n return axis;\n };\n axis.tickValues = function(x) {\n if (!arguments.length) return tickValues;\n tickValues = x;\n return axis;\n };\n axis.tickFormat = function(x) {\n if (!arguments.length) return tickFormat_;\n tickFormat_ = x;\n return axis;\n };\n axis.tickSize = function(x) {\n var n = arguments.length;\n if (!n) return innerTickSize;\n innerTickSize = +x;\n outerTickSize = +arguments[n - 1];\n return axis;\n };\n axis.innerTickSize = function(x) {\n if (!arguments.length) return innerTickSize;\n innerTickSize = +x;\n return axis;\n };\n axis.outerTickSize = function(x) {\n if (!arguments.length) return outerTickSize;\n outerTickSize = +x;\n return axis;\n };\n axis.tickPadding = function(x) {\n if (!arguments.length) return tickPadding;\n tickPadding = +x;\n return axis;\n };\n axis.tickSubdivide = function() {\n return arguments.length && axis;\n };\n return axis;\n };\n var d3_svg_axisDefaultOrient = \"bottom\", d3_svg_axisOrients = {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n };\n function d3_svg_axisX(selection, x0, x1) {\n selection.attr(\"transform\", function(d) {\n var v0 = x0(d);\n return \"translate(\" + (isFinite(v0) ? v0 : x1(d)) + \",0)\";\n });\n }\n function d3_svg_axisY(selection, y0, y1) {\n selection.attr(\"transform\", function(d) {\n var v0 = y0(d);\n return \"translate(0,\" + (isFinite(v0) ? v0 : y1(d)) + \")\";\n });\n }\n d3.svg.brush = function() {\n var event = d3_eventDispatch(brush, \"brushstart\", \"brush\", \"brushend\"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0];\n function brush(g) {\n g.each(function() {\n var g = d3.select(this).style(\"pointer-events\", \"all\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\").on(\"mousedown.brush\", brushstart).on(\"touchstart.brush\", brushstart);\n var background = g.selectAll(\".background\").data([ 0 ]);\n background.enter().append(\"rect\").attr(\"class\", \"background\").style(\"visibility\", \"hidden\").style(\"cursor\", \"crosshair\");\n g.selectAll(\".extent\").data([ 0 ]).enter().append(\"rect\").attr(\"class\", \"extent\").style(\"cursor\", \"move\");\n var resize = g.selectAll(\".resize\").data(resizes, d3_identity);\n resize.exit().remove();\n resize.enter().append(\"g\").attr(\"class\", function(d) {\n return \"resize \" + d;\n }).style(\"cursor\", function(d) {\n return d3_svg_brushCursor[d];\n }).append(\"rect\").attr(\"x\", function(d) {\n return /[ew]$/.test(d) ? -3 : null;\n }).attr(\"y\", function(d) {\n return /^[ns]/.test(d) ? -3 : null;\n }).attr(\"width\", 6).attr(\"height\", 6).style(\"visibility\", \"hidden\");\n resize.style(\"display\", brush.empty() ? \"none\" : null);\n var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range;\n if (x) {\n range = d3_scaleRange(x);\n backgroundUpdate.attr(\"x\", range[0]).attr(\"width\", range[1] - range[0]);\n redrawX(gUpdate);\n }\n if (y) {\n range = d3_scaleRange(y);\n backgroundUpdate.attr(\"y\", range[0]).attr(\"height\", range[1] - range[0]);\n redrawY(gUpdate);\n }\n redraw(gUpdate);\n });\n }\n brush.event = function(g) {\n g.each(function() {\n var event_ = event.of(this, arguments), extent1 = {\n x: xExtent,\n y: yExtent,\n i: xExtentDomain,\n j: yExtentDomain\n }, extent0 = this.__chart__ || extent1;\n this.__chart__ = extent1;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.brush\", function() {\n xExtentDomain = extent0.i;\n yExtentDomain = extent0.j;\n xExtent = extent0.x;\n yExtent = extent0.y;\n event_({\n type: \"brushstart\"\n });\n }).tween(\"brush:brush\", function() {\n var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y);\n xExtentDomain = yExtentDomain = null;\n return function(t) {\n xExtent = extent1.x = xi(t);\n yExtent = extent1.y = yi(t);\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n };\n }).each(\"end.brush\", function() {\n xExtentDomain = extent1.i;\n yExtentDomain = extent1.j;\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n });\n } else {\n event_({\n type: \"brushstart\"\n });\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n }\n });\n };\n function redraw(g) {\n g.selectAll(\".resize\").attr(\"transform\", function(d) {\n return \"translate(\" + xExtent[+/e$/.test(d)] + \",\" + yExtent[+/^s/.test(d)] + \")\";\n });\n }\n function redrawX(g) {\n g.select(\".extent\").attr(\"x\", xExtent[0]);\n g.selectAll(\".extent,.n>rect,.s>rect\").attr(\"width\", xExtent[1] - xExtent[0]);\n }\n function redrawY(g) {\n g.select(\".extent\").attr(\"y\", yExtent[0]);\n g.selectAll(\".extent,.e>rect,.w>rect\").attr(\"height\", yExtent[1] - yExtent[0]);\n }\n function brushstart() {\n var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed(\"extent\"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset;\n var w = d3.select(d3_window(target)).on(\"keydown.brush\", keydown).on(\"keyup.brush\", keyup);\n if (d3.event.changedTouches) {\n w.on(\"touchmove.brush\", brushmove).on(\"touchend.brush\", brushend);\n } else {\n w.on(\"mousemove.brush\", brushmove).on(\"mouseup.brush\", brushend);\n }\n g.interrupt().selectAll(\"*\").interrupt();\n if (dragging) {\n origin[0] = xExtent[0] - origin[0];\n origin[1] = yExtent[0] - origin[1];\n } else if (resizing) {\n var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);\n offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ];\n origin[0] = xExtent[ex];\n origin[1] = yExtent[ey];\n } else if (d3.event.altKey) center = origin.slice();\n g.style(\"pointer-events\", \"none\").selectAll(\".resize\").style(\"display\", null);\n d3.select(\"body\").style(\"cursor\", eventTarget.style(\"cursor\"));\n event_({\n type: \"brushstart\"\n });\n brushmove();\n function keydown() {\n if (d3.event.keyCode == 32) {\n if (!dragging) {\n center = null;\n origin[0] -= xExtent[1];\n origin[1] -= yExtent[1];\n dragging = 2;\n }\n d3_eventPreventDefault();\n }\n }\n function keyup() {\n if (d3.event.keyCode == 32 && dragging == 2) {\n origin[0] += xExtent[1];\n origin[1] += yExtent[1];\n dragging = 0;\n d3_eventPreventDefault();\n }\n }\n function brushmove() {\n var point = d3.mouse(target), moved = false;\n if (offset) {\n point[0] += offset[0];\n point[1] += offset[1];\n }\n if (!dragging) {\n if (d3.event.altKey) {\n if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ];\n origin[0] = xExtent[+(point[0] < center[0])];\n origin[1] = yExtent[+(point[1] < center[1])];\n } else center = null;\n }\n if (resizingX && move1(point, x, 0)) {\n redrawX(g);\n moved = true;\n }\n if (resizingY && move1(point, y, 1)) {\n redrawY(g);\n moved = true;\n }\n if (moved) {\n redraw(g);\n event_({\n type: \"brush\",\n mode: dragging ? \"move\" : \"resize\"\n });\n }\n }\n function move1(point, scale, i) {\n var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max;\n if (dragging) {\n r0 -= position;\n r1 -= size + position;\n }\n min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i];\n if (dragging) {\n max = (min += position) + size;\n } else {\n if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));\n if (position < min) {\n max = min;\n min = position;\n } else {\n max = position;\n }\n }\n if (extent[0] != min || extent[1] != max) {\n if (i) yExtentDomain = null; else xExtentDomain = null;\n extent[0] = min;\n extent[1] = max;\n return true;\n }\n }\n function brushend() {\n brushmove();\n g.style(\"pointer-events\", \"all\").selectAll(\".resize\").style(\"display\", brush.empty() ? \"none\" : null);\n d3.select(\"body\").style(\"cursor\", null);\n w.on(\"mousemove.brush\", null).on(\"mouseup.brush\", null).on(\"touchmove.brush\", null).on(\"touchend.brush\", null).on(\"keydown.brush\", null).on(\"keyup.brush\", null);\n dragRestore();\n event_({\n type: \"brushend\"\n });\n }\n }\n brush.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.clamp = function(z) {\n if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null;\n if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z;\n return brush;\n };\n brush.extent = function(z) {\n var x0, x1, y0, y1, t;\n if (!arguments.length) {\n if (x) {\n if (xExtentDomain) {\n x0 = xExtentDomain[0], x1 = xExtentDomain[1];\n } else {\n x0 = xExtent[0], x1 = xExtent[1];\n if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n }\n }\n if (y) {\n if (yExtentDomain) {\n y0 = yExtentDomain[0], y1 = yExtentDomain[1];\n } else {\n y0 = yExtent[0], y1 = yExtent[1];\n if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n }\n }\n return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];\n }\n if (x) {\n x0 = z[0], x1 = z[1];\n if (y) x0 = x0[0], x1 = x1[0];\n xExtentDomain = [ x0, x1 ];\n if (x.invert) x0 = x(x0), x1 = x(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ];\n }\n if (y) {\n y0 = z[0], y1 = z[1];\n if (x) y0 = y0[1], y1 = y1[1];\n yExtentDomain = [ y0, y1 ];\n if (y.invert) y0 = y(y0), y1 = y(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ];\n }\n return brush;\n };\n brush.clear = function() {\n if (!brush.empty()) {\n xExtent = [ 0, 0 ], yExtent = [ 0, 0 ];\n xExtentDomain = yExtentDomain = null;\n }\n return brush;\n };\n brush.empty = function() {\n return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1];\n };\n return d3.rebind(brush, event, \"on\");\n };\n var d3_svg_brushCursor = {\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n };\n var d3_svg_brushResizes = [ [ \"n\", \"e\", \"s\", \"w\", \"nw\", \"ne\", \"se\", \"sw\" ], [ \"e\", \"w\" ], [ \"n\", \"s\" ], [] ];\n var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat;\n var d3_time_formatUtc = d3_time_format.utc;\n var d3_time_formatIso = d3_time_formatUtc(\"%Y-%m-%dT%H:%M:%S.%LZ\");\n d3_time_format.iso = Date.prototype.toISOString && +new Date(\"2000-01-01T00:00:00.000Z\") ? d3_time_formatIsoNative : d3_time_formatIso;\n function d3_time_formatIsoNative(date) {\n return date.toISOString();\n }\n d3_time_formatIsoNative.parse = function(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n };\n d3_time_formatIsoNative.toString = d3_time_formatIso.toString;\n d3_time.second = d3_time_interval(function(date) {\n return new d3_date(Math.floor(date / 1e3) * 1e3);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 1e3);\n }, function(date) {\n return date.getSeconds();\n });\n d3_time.seconds = d3_time.second.range;\n d3_time.seconds.utc = d3_time.second.utc.range;\n d3_time.minute = d3_time_interval(function(date) {\n return new d3_date(Math.floor(date / 6e4) * 6e4);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 6e4);\n }, function(date) {\n return date.getMinutes();\n });\n d3_time.minutes = d3_time.minute.range;\n d3_time.minutes.utc = d3_time.minute.utc.range;\n d3_time.hour = d3_time_interval(function(date) {\n var timezone = date.getTimezoneOffset() / 60;\n return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);\n }, function(date, offset) {\n date.setTime(date.getTime() + Math.floor(offset) * 36e5);\n }, function(date) {\n return date.getHours();\n });\n d3_time.hours = d3_time.hour.range;\n d3_time.hours.utc = d3_time.hour.utc.range;\n d3_time.month = d3_time_interval(function(date) {\n date = d3_time.day(date);\n date.setDate(1);\n return date;\n }, function(date, offset) {\n date.setMonth(date.getMonth() + offset);\n }, function(date) {\n return date.getMonth();\n });\n d3_time.months = d3_time.month.range;\n d3_time.months.utc = d3_time.month.utc.range;\n function d3_time_scale(linear, methods, format) {\n function scale(x) {\n return linear(x);\n }\n scale.invert = function(x) {\n return d3_time_scaleDate(linear.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return linear.domain().map(d3_time_scaleDate);\n linear.domain(x);\n return scale;\n };\n function tickMethod(extent, count) {\n var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target);\n return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) {\n return d / 31536e6;\n }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i];\n }\n scale.nice = function(interval, skip) {\n var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === \"number\" && tickMethod(extent, interval);\n if (method) interval = method[0], skip = method[1];\n function skipped(date) {\n return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length;\n }\n return scale.domain(d3_scale_nice(domain, skip > 1 ? {\n floor: function(date) {\n while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1);\n return date;\n },\n ceil: function(date) {\n while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1);\n return date;\n }\n } : interval));\n };\n scale.ticks = function(interval, skip) {\n var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === \"number\" ? tickMethod(extent, interval) : !interval.range && [ {\n range: interval\n }, skip ];\n if (method) interval = method[0], skip = method[1];\n return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip);\n };\n scale.tickFormat = function() {\n return format;\n };\n scale.copy = function() {\n return d3_time_scale(linear.copy(), methods, format);\n };\n return d3_scale_linearRebind(scale, linear);\n }\n function d3_time_scaleDate(t) {\n return new Date(t);\n }\n var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];\n var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ];\n var d3_time_scaleLocalFormat = d3_time_format.multi([ [ \".%L\", function(d) {\n return d.getMilliseconds();\n } ], [ \":%S\", function(d) {\n return d.getSeconds();\n } ], [ \"%I:%M\", function(d) {\n return d.getMinutes();\n } ], [ \"%I %p\", function(d) {\n return d.getHours();\n } ], [ \"%a %d\", function(d) {\n return d.getDay() && d.getDate() != 1;\n } ], [ \"%b %d\", function(d) {\n return d.getDate() != 1;\n } ], [ \"%B\", function(d) {\n return d.getMonth();\n } ], [ \"%Y\", d3_true ] ]);\n var d3_time_scaleMilliseconds = {\n range: function(start, stop, step) {\n return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate);\n },\n floor: d3_identity,\n ceil: d3_identity\n };\n d3_time_scaleLocalMethods.year = d3_time.year;\n d3_time.scale = function() {\n return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);\n };\n var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) {\n return [ m[0].utc, m[1] ];\n });\n var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ \".%L\", function(d) {\n return d.getUTCMilliseconds();\n } ], [ \":%S\", function(d) {\n return d.getUTCSeconds();\n } ], [ \"%I:%M\", function(d) {\n return d.getUTCMinutes();\n } ], [ \"%I %p\", function(d) {\n return d.getUTCHours();\n } ], [ \"%a %d\", function(d) {\n return d.getUTCDay() && d.getUTCDate() != 1;\n } ], [ \"%b %d\", function(d) {\n return d.getUTCDate() != 1;\n } ], [ \"%B\", function(d) {\n return d.getUTCMonth();\n } ], [ \"%Y\", d3_true ] ]);\n d3_time_scaleUtcMethods.year = d3_time.year.utc;\n d3_time.scale.utc = function() {\n return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat);\n };\n d3.text = d3_xhrType(function(request) {\n return request.responseText;\n });\n d3.json = function(url, callback) {\n return d3_xhr(url, \"application/json\", d3_json, callback);\n };\n function d3_json(request) {\n return JSON.parse(request.responseText);\n }\n d3.html = function(url, callback) {\n return d3_xhr(url, \"text/html\", d3_html, callback);\n };\n function d3_html(request) {\n var range = d3_document.createRange();\n range.selectNode(d3_document.body);\n return range.createContextualFragment(request.responseText);\n }\n d3.xml = d3_xhrType(function(request) {\n return request.responseXML;\n });\n if (true) this.d3 = d3, !(__WEBPACK_AMD_DEFINE_FACTORY__ = (d3),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); else {}\n}();\n\n/***/ }),\n\n/***/ \"6eeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar createNonEnumerableProperty = __webpack_require__(\"9112\");\nvar has = __webpack_require__(\"5135\");\nvar setGlobal = __webpack_require__(\"ce4e\");\nvar inspectSource = __webpack_require__(\"8925\");\nvar InternalStateModule = __webpack_require__(\"69f3\");\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n\n/***/ \"6f04\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/map.js\nvar prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\n/* harmony default export */ var src_map = (map);\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/nest.js\n\n\n/* harmony default export */ var src_nest = (function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = src_map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n});\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return src_map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/set.js\n\n\nfunction Set() {}\n\nvar proto = src_map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\n/* harmony default export */ var src_set = (set);\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/keys.js\n/* harmony default export */ var src_keys = (function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/values.js\n/* harmony default export */ var src_values = (function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/entries.js\n/* harmony default export */ var src_entries = (function(map) {\n var entries = [];\n for (var key in map) entries.push({key: key, value: map[key]});\n return entries;\n});\n\n// CONCATENATED MODULE: ./node_modules/d3-collection/src/index.js\n/* concated harmony reexport nest */__webpack_require__.d(__webpack_exports__, \"b\", function() { return src_nest; });\n/* unused concated harmony import set */\n/* concated harmony reexport map */__webpack_require__.d(__webpack_exports__, \"a\", function() { return src_map; });\n/* unused concated harmony import keys */\n/* unused concated harmony import values */\n/* unused concated harmony import entries */\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ \"6f09\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = function eventData(out, pt, trace, cd, pointNumber) {\n // standard cartesian event data\n out.x = 'xVal' in pt ? pt.xVal : pt.x;\n out.y = 'yVal' in pt ? pt.yVal : pt.y;\n\n // for 2d histograms\n if('zLabelVal' in pt) out.z = pt.zLabelVal;\n\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n\n // specific to histogram - CDFs do not have pts (yet?)\n if(!(trace.cumulative || {}).enabled) {\n var pts = Array.isArray(pointNumber) ?\n cd[0].pts[pointNumber[0]][pointNumber[1]] :\n cd[pointNumber].pts;\n\n out.pointNumbers = pts;\n out.binNumber = out.pointNumber;\n delete out.pointNumber;\n delete out.pointIndex;\n\n var pointIndices;\n if(trace._indexToPoints) {\n pointIndices = [];\n for(var i = 0; i < pts.length; i++) {\n pointIndices = pointIndices.concat(trace._indexToPoints[pts[i]]);\n }\n } else {\n pointIndices = pts;\n }\n\n out.pointIndices = pointIndices;\n }\n\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"6f51\":\n/***/ (function(module, exports) {\n\nmodule.exports = translate;\n\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {mat4} a the matrix to translate\n * @param {vec3} v vector to translate by\n * @returns {mat4} out\n */\nfunction translate(out, a, v) {\n var x = v[0], y = v[1], z = v[2],\n a00, a01, a02, a03,\n a10, a11, a12, a13,\n a20, a21, a22, a23;\n\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3];\n a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7];\n a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11];\n\n out[0] = a00; out[1] = a01; out[2] = a02; out[3] = a03;\n out[4] = a10; out[5] = a11; out[6] = a12; out[7] = a13;\n out[8] = a20; out[9] = a21; out[10] = a22; out[11] = a23;\n\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n\n return out;\n};\n\n/***/ }),\n\n/***/ \"6f96\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = function eventData(out, pt /* , trace, cd, pointNumber */) {\n // standard cartesian event data\n out.x = 'xVal' in pt ? pt.xVal : pt.x;\n out.y = 'yVal' in pt ? pt.yVal : pt.y;\n\n // for funnel\n if('percentInitial' in pt) out.percentInitial = pt.percentInitial;\n if('percentPrevious' in pt) out.percentPrevious = pt.percentPrevious;\n if('percentTotal' in pt) out.percentTotal = pt.percentTotal;\n\n if(pt.xa) out.xaxis = pt.xa;\n if(pt.ya) out.yaxis = pt.ya;\n\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"6fa6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar createMesh = __webpack_require__(\"551a\");\n\nvar parseColorScale = __webpack_require__(\"765f\").parseColorScale;\nvar str2RgbaArray = __webpack_require__(\"f977\");\nvar extractOpts = __webpack_require__(\"c258\").extractOpts;\nvar zip3 = __webpack_require__(\"569b\");\n\nvar findNearestOnAxis = __webpack_require__(\"caf7\").findNearestOnAxis;\nvar generateIsoMeshes = __webpack_require__(\"caf7\").generateIsoMeshes;\n\nfunction VolumeTrace(scene, mesh, uid) {\n this.scene = scene;\n this.uid = uid;\n this.mesh = mesh;\n this.name = '';\n this.data = null;\n this.showContour = false;\n}\n\nvar proto = VolumeTrace.prototype;\n\nproto.handlePick = function(selection) {\n if(selection.object === this.mesh) {\n var rawId = selection.data.index;\n\n var x = this.data._meshX[rawId];\n var y = this.data._meshY[rawId];\n var z = this.data._meshZ[rawId];\n\n var height = this.data._Ys.length;\n var depth = this.data._Zs.length;\n\n var i = findNearestOnAxis(x, this.data._Xs).id;\n var j = findNearestOnAxis(y, this.data._Ys).id;\n var k = findNearestOnAxis(z, this.data._Zs).id;\n\n var selectIndex = selection.index = k + depth * j + depth * height * i;\n\n selection.traceCoordinate = [\n this.data._meshX[selectIndex],\n this.data._meshY[selectIndex],\n this.data._meshZ[selectIndex],\n this.data._value[selectIndex]\n ];\n\n var text = this.data.hovertext || this.data.text;\n if(Array.isArray(text) && text[selectIndex] !== undefined) {\n selection.textLabel = text[selectIndex];\n } else if(text) {\n selection.textLabel = text;\n }\n\n return true;\n }\n};\n\nproto.update = function(data) {\n var scene = this.scene;\n var layout = scene.fullSceneLayout;\n\n this.data = generateIsoMeshes(data);\n\n // Unpack position data\n function toDataCoords(axis, coord, scale, calendar) {\n return coord.map(function(x) {\n return axis.d2l(x, 0, calendar) * scale;\n });\n }\n\n var positions = zip3(\n toDataCoords(layout.xaxis, data._meshX, scene.dataScale[0], data.xcalendar),\n toDataCoords(layout.yaxis, data._meshY, scene.dataScale[1], data.ycalendar),\n toDataCoords(layout.zaxis, data._meshZ, scene.dataScale[2], data.zcalendar));\n\n var cells = zip3(data._meshI, data._meshJ, data._meshK);\n\n var config = {\n positions: positions,\n cells: cells,\n lightPosition: [data.lightposition.x, data.lightposition.y, data.lightposition.z],\n ambient: data.lighting.ambient,\n diffuse: data.lighting.diffuse,\n specular: data.lighting.specular,\n roughness: data.lighting.roughness,\n fresnel: data.lighting.fresnel,\n vertexNormalsEpsilon: data.lighting.vertexnormalsepsilon,\n faceNormalsEpsilon: data.lighting.facenormalsepsilon,\n opacity: data.opacity,\n opacityscale: data.opacityscale,\n contourEnable: data.contour.show,\n contourColor: str2RgbaArray(data.contour.color).slice(0, 3),\n contourWidth: data.contour.width,\n useFacetNormals: data.flatshading\n };\n\n var cOpts = extractOpts(data);\n config.vertexIntensity = data._meshIntensity;\n config.vertexIntensityBounds = [cOpts.min, cOpts.max];\n config.colormap = parseColorScale(data);\n\n // Update mesh\n this.mesh.update(config);\n};\n\nproto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n};\n\nfunction createVolumeTrace(scene, data) {\n var gl = scene.glplot.gl;\n var mesh = createMesh({gl: gl});\n var result = new VolumeTrace(scene, mesh, data.uid);\n\n mesh._trace = result;\n result.update(data);\n scene.glplot.add(mesh);\n return result;\n}\n\nmodule.exports = createVolumeTrace;\n\n\n/***/ }),\n\n/***/ \"6fc3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n/** Filter out object items with visible !== true\n * insider array container.\n *\n * @param {array of objects} container\n * @return {array of objects} of length <= container\n *\n */\nmodule.exports = function filterVisible(container) {\n var filterFn = isCalcData(container) ? calcDataFilter : baseFilter;\n var out = [];\n\n for(var i = 0; i < container.length; i++) {\n var item = container[i];\n if(filterFn(item)) out.push(item);\n }\n\n return out;\n};\n\nfunction baseFilter(item) {\n return item.visible === true;\n}\n\nfunction calcDataFilter(item) {\n var trace = item[0].trace;\n return trace.visible === true && trace._length !== 0;\n}\n\nfunction isCalcData(cont) {\n return (\n Array.isArray(cont) &&\n Array.isArray(cont[0]) &&\n cont[0][0] &&\n cont[0][0].trace\n );\n}\n\n\n/***/ }),\n\n/***/ \"7000\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var trace = cd[0].trace;\n var isFunnel = (trace.type === 'funnel');\n var isHorizontal = (trace.orientation === 'h');\n var selection = [];\n var i;\n\n if(selectionTester === false) {\n // clear selection\n for(i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for(i = 0; i < cd.length; i++) {\n var di = cd[i];\n var ct = 'ct' in di ? di.ct : getCentroid(di, xa, ya, isHorizontal, isFunnel);\n\n if(selectionTester.contains(ct, false, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n x: xa.c2d(di.x),\n y: ya.c2d(di.y)\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n\n return selection;\n};\n\nfunction getCentroid(d, xa, ya, isHorizontal, isFunnel) {\n var x0 = xa.c2p(isHorizontal ? d.s0 : d.p0, true);\n var x1 = xa.c2p(isHorizontal ? d.s1 : d.p1, true);\n var y0 = ya.c2p(isHorizontal ? d.p0 : d.s0, true);\n var y1 = ya.c2p(isHorizontal ? d.p1 : d.s1, true);\n\n if(isFunnel) {\n return [(x0 + x1) / 2, (y0 + y1) / 2];\n } else {\n if(isHorizontal) {\n return [x1, (y0 + y1) / 2];\n } else {\n return [(x0 + x1) / 2, y1];\n }\n }\n}\n\n\n/***/ }),\n\n/***/ \"7016\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"89e1\");\n\n\n/***/ }),\n\n/***/ \"7045\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar objToString = Object.prototype.toString\n , isFunctionStringTag = RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);\n\nmodule.exports = function (value) {\n\treturn typeof value === \"function\" && isFunctionStringTag(objToString.call(value));\n};\n\n\n/***/ }),\n\n/***/ \"7089\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Lib = __webpack_require__(\"fc26\");\n\n\nmodule.exports = function hasColorbar(container) {\n return Lib.isPlainObject(container.colorbar);\n};\n\n\n/***/ }),\n\n/***/ \"70b4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar Axes = __webpack_require__(\"0642\");\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nvar subTypes = __webpack_require__(\"de81\");\nvar calcColorscale = __webpack_require__(\"09bd\");\nvar arraysToCalcdata = __webpack_require__(\"106b\");\nvar calcSelection = __webpack_require__(\"4136\");\n\nfunction calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = Axes.getFromId(gd, trace.xaxis || 'x');\n var ya = Axes.getFromId(gd, trace.yaxis || 'y');\n var x = xa.makeCalcdata(trace, 'x');\n var y = ya.makeCalcdata(trace, 'y');\n var serieslen = trace._length;\n var cd = new Array(serieslen);\n var ids = trace.ids;\n var stackGroupOpts = getStackOpts(trace, fullLayout, xa, ya);\n var interpolateGaps = false;\n var isV, i, j, k, interpolate, vali;\n\n setFirstScatter(fullLayout, trace);\n\n var xAttr = 'x';\n var yAttr = 'y';\n var posAttr;\n if(stackGroupOpts) {\n Lib.pushUnique(stackGroupOpts.traceIndices, trace._expandedIndex);\n isV = stackGroupOpts.orientation === 'v';\n\n // size, like we use for bar\n if(isV) {\n yAttr = 's';\n posAttr = 'x';\n } else {\n xAttr = 's';\n posAttr = 'y';\n }\n interpolate = stackGroupOpts.stackgaps === 'interpolate';\n } else {\n var ppad = calcMarkerSize(trace, serieslen);\n calcAxisExpansion(gd, trace, xa, ya, x, y, ppad);\n }\n\n for(i = 0; i < serieslen; i++) {\n var cdi = cd[i] = {};\n var xValid = isNumeric(x[i]);\n var yValid = isNumeric(y[i]);\n if(xValid && yValid) {\n cdi[xAttr] = x[i];\n cdi[yAttr] = y[i];\n } else if(stackGroupOpts && (isV ? xValid : yValid)) {\n // if we're stacking we need to hold on to all valid positions\n // even with invalid sizes\n\n cdi[posAttr] = isV ? x[i] : y[i];\n cdi.gap = true;\n if(interpolate) {\n cdi.s = BADNUM;\n interpolateGaps = true;\n } else {\n cdi.s = 0;\n }\n } else {\n cdi[xAttr] = cdi[yAttr] = BADNUM;\n }\n\n if(ids) {\n cdi.id = String(ids[i]);\n }\n }\n\n arraysToCalcdata(cd, trace);\n calcColorscale(gd, trace);\n calcSelection(cd, trace);\n\n if(stackGroupOpts) {\n // remove bad positions and sort\n // note that original indices get added to cd in arraysToCalcdata\n i = 0;\n while(i < cd.length) {\n if(cd[i][posAttr] === BADNUM) {\n cd.splice(i, 1);\n } else i++;\n }\n\n Lib.sort(cd, function(a, b) {\n return (a[posAttr] - b[posAttr]) || (a.i - b.i);\n });\n\n if(interpolateGaps) {\n // first fill the beginning with constant from the first point\n i = 0;\n while(i < cd.length - 1 && cd[i].gap) {\n i++;\n }\n vali = cd[i].s;\n if(!vali) vali = cd[i].s = 0; // in case of no data AT ALL in this trace - use 0\n for(j = 0; j < i; j++) {\n cd[j].s = vali;\n }\n // then fill the end with constant from the last point\n k = cd.length - 1;\n while(k > i && cd[k].gap) {\n k--;\n }\n vali = cd[k].s;\n for(j = cd.length - 1; j > k; j--) {\n cd[j].s = vali;\n }\n // now interpolate internal gaps linearly\n while(i < k) {\n i++;\n if(cd[i].gap) {\n j = i + 1;\n while(cd[j].gap) {\n j++;\n }\n var pos0 = cd[i - 1][posAttr];\n var size0 = cd[i - 1].s;\n var m = (cd[j].s - size0) / (cd[j][posAttr] - pos0);\n while(i < j) {\n cd[i].s = size0 + (cd[i][posAttr] - pos0) * m;\n i++;\n }\n }\n }\n }\n }\n\n return cd;\n}\n\nfunction calcAxisExpansion(gd, trace, xa, ya, x, y, ppad) {\n var serieslen = trace._length;\n var fullLayout = gd._fullLayout;\n var xId = xa._id;\n var yId = ya._id;\n var firstScatter = fullLayout._firstScatter[firstScatterGroup(trace)] === trace.uid;\n var stackOrientation = (getStackOpts(trace, fullLayout, xa, ya) || {}).orientation;\n var fill = trace.fill;\n\n // cancel minimum tick spacings (only applies to bars and boxes)\n xa._minDtick = 0;\n ya._minDtick = 0;\n\n // check whether bounds should be tight, padded, extended to zero...\n // most cases both should be padded on both ends, so start with that.\n var xOptions = {padded: true};\n var yOptions = {padded: true};\n\n if(ppad) {\n xOptions.ppad = yOptions.ppad = ppad;\n }\n\n // TODO: text size\n\n var openEnded = serieslen < 2 || (x[0] !== x[serieslen - 1]) || (y[0] !== y[serieslen - 1]);\n\n if(openEnded && (\n (fill === 'tozerox') ||\n ((fill === 'tonextx') && (firstScatter || stackOrientation === 'h'))\n )) {\n // include zero (tight) and extremes (padded) if fill to zero\n // (unless the shape is closed, then it's just filling the shape regardless)\n\n xOptions.tozero = true;\n } else if(!(trace.error_y || {}).visible && (\n // if no error bars, markers or text, or fill to y=0 remove x padding\n\n (fill === 'tonexty' || fill === 'tozeroy') ||\n (!subTypes.hasMarkers(trace) && !subTypes.hasText(trace))\n )) {\n xOptions.padded = false;\n xOptions.ppad = 0;\n }\n\n if(openEnded && (\n (fill === 'tozeroy') ||\n ((fill === 'tonexty') && (firstScatter || stackOrientation === 'v'))\n )) {\n // now check for y - rather different logic, though still mostly padded both ends\n // include zero (tight) and extremes (padded) if fill to zero\n // (unless the shape is closed, then it's just filling the shape regardless)\n\n yOptions.tozero = true;\n } else if(fill === 'tonextx' || fill === 'tozerox') {\n // tight y: any x fill\n\n yOptions.padded = false;\n }\n\n // N.B. asymmetric splom traces call this with blank {} xa or ya\n if(xId) trace._extremes[xId] = Axes.findExtremes(xa, x, xOptions);\n if(yId) trace._extremes[yId] = Axes.findExtremes(ya, y, yOptions);\n}\n\nfunction calcMarkerSize(trace, serieslen) {\n if(!subTypes.hasMarkers(trace)) return;\n\n // Treat size like x or y arrays --- Run d2c\n // this needs to go before ppad computation\n var marker = trace.marker;\n var sizeref = 1.6 * (trace.marker.sizeref || 1);\n var markerTrans;\n\n if(trace.marker.sizemode === 'area') {\n markerTrans = function(v) {\n return Math.max(Math.sqrt((v || 0) / sizeref), 3);\n };\n } else {\n markerTrans = function(v) {\n return Math.max((v || 0) / sizeref, 3);\n };\n }\n\n if(Lib.isArrayOrTypedArray(marker.size)) {\n // I tried auto-type but category and dates dont make much sense.\n var ax = {type: 'linear'};\n Axes.setConvert(ax);\n\n var s = ax.makeCalcdata(trace.marker, 'size');\n\n var sizeOut = new Array(serieslen);\n for(var i = 0; i < serieslen; i++) {\n sizeOut[i] = markerTrans(s[i]);\n }\n return sizeOut;\n } else {\n return markerTrans(marker.size);\n }\n}\n\n/**\n * mark the first scatter trace for each subplot\n * note that scatter and scattergl each get their own first trace\n * note also that I'm doing this during calc rather than supplyDefaults\n * so I don't need to worry about transforms, but if we ever do\n * per-trace calc this will get confused.\n */\nfunction setFirstScatter(fullLayout, trace) {\n var group = firstScatterGroup(trace);\n var firstScatter = fullLayout._firstScatter;\n if(!firstScatter[group]) firstScatter[group] = trace.uid;\n}\n\nfunction firstScatterGroup(trace) {\n var stackGroup = trace.stackgroup;\n return trace.xaxis + trace.yaxis + trace.type +\n (stackGroup ? '-' + stackGroup : '');\n}\n\nfunction getStackOpts(trace, fullLayout, xa, ya) {\n var stackGroup = trace.stackgroup;\n if(!stackGroup) return;\n var stackOpts = fullLayout._scatterStackOpts[xa._id + ya._id][stackGroup];\n var stackAx = stackOpts.orientation === 'v' ? ya : xa;\n // Allow stacking only on numeric axes\n // calc is a little late to be figuring this out, but during supplyDefaults\n // we don't know the axis type yet\n if(stackAx.type === 'linear' || stackAx.type === 'log') return stackOpts;\n}\n\nmodule.exports = {\n calc: calc,\n calcMarkerSize: calcMarkerSize,\n calcAxisExpansion: calcAxisExpansion,\n setFirstScatter: setFirstScatter,\n getStackOpts: getStackOpts\n};\n\n\n/***/ }),\n\n/***/ \"70f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar drawModule = __webpack_require__(\"2595\");\nvar clickModule = __webpack_require__(\"34f9\");\n\nmodule.exports = {\n moduleType: 'component',\n name: 'annotations',\n\n layoutAttributes: __webpack_require__(\"bb4a\"),\n supplyLayoutDefaults: __webpack_require__(\"bb5b\"),\n includeBasePlot: __webpack_require__(\"37d1\")('annotations'),\n\n calcAutorange: __webpack_require__(\"cd84\"),\n draw: drawModule.draw,\n drawOne: drawModule.drawOne,\n drawRaw: drawModule.drawRaw,\n\n hasClickToShow: clickModule.hasClickToShow,\n onClick: clickModule.onClick,\n\n convertCoords: __webpack_require__(\"351b\")\n};\n\n\n/***/ }),\n\n/***/ \"7118\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar layoutAttributes = __webpack_require__(\"d798\");\nvar handleTickValueDefaults = __webpack_require__(\"d92f\");\nvar handleTickMarkDefaults = __webpack_require__(\"27e3\");\nvar handleTickLabelDefaults = __webpack_require__(\"5008\");\nvar handleCategoryOrderDefaults = __webpack_require__(\"d18b\");\nvar handleLineGridDefaults = __webpack_require__(\"743b\");\nvar setConvert = __webpack_require__(\"1a40\");\n\n/**\n * options: object containing:\n *\n * letter: 'x' or 'y'\n * title: name of the axis (ie 'Colorbar') to go in default title\n * font: the default font to inherit\n * outerTicks: boolean, should ticks default to outside?\n * showGrid: boolean, should gridlines be shown by default?\n * noHover: boolean, this axis doesn't support hover effects?\n * noTickson: boolean, this axis doesn't support 'tickson'\n * data: the plot data, used to manage categories\n * bgColor: the plot background color, to calculate default gridline colors\n * calendar:\n * splomStash:\n * visibleDflt: boolean\n * reverseDflt: boolean\n * automargin: boolean\n */\nmodule.exports = function handleAxisDefaults(containerIn, containerOut, coerce, options, layoutOut) {\n var letter = options.letter;\n var font = options.font || {};\n var splomStash = options.splomStash || {};\n\n var visible = coerce('visible', !options.visibleDflt);\n\n var axType = containerOut.type;\n\n if(axType === 'date') {\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleDefaults');\n handleCalendarDefaults(containerIn, containerOut, 'calendar', options.calendar);\n }\n\n setConvert(containerOut, layoutOut);\n\n var autorangeDflt = !containerOut.isValidRange(containerIn.range);\n if(autorangeDflt && options.reverseDflt) autorangeDflt = 'reversed';\n var autoRange = coerce('autorange', autorangeDflt);\n if(autoRange && (axType === 'linear' || axType === '-')) coerce('rangemode');\n\n coerce('range');\n containerOut.cleanRange();\n\n handleCategoryOrderDefaults(containerIn, containerOut, coerce, options);\n\n if(axType !== 'category' && !options.noHover) coerce('hoverformat');\n\n var dfltColor = coerce('color');\n // if axis.color was provided, use it for fonts too; otherwise,\n // inherit from global font color in case that was provided.\n // Compare to dflt rather than to containerIn, so we can provide color via\n // template too.\n var dfltFontColor = (dfltColor !== layoutAttributes.color.dflt) ? dfltColor : font.color;\n // try to get default title from splom trace, fallback to graph-wide value\n var dfltTitle = splomStash.label || layoutOut._dfltTitle[letter];\n\n handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options, {pass: 1});\n if(!visible) return containerOut;\n\n coerce('title.text', dfltTitle);\n Lib.coerceFont(coerce, 'title.font', {\n family: font.family,\n size: Math.round(font.size * 1.2),\n color: dfltFontColor\n });\n\n handleTickValueDefaults(containerIn, containerOut, coerce, axType);\n handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options, {pass: 2});\n handleTickMarkDefaults(containerIn, containerOut, coerce, options);\n handleLineGridDefaults(containerIn, containerOut, coerce, {\n dfltColor: dfltColor,\n bgColor: options.bgColor,\n showGrid: options.showGrid,\n attributes: layoutAttributes\n });\n\n if(containerOut.showline || containerOut.ticks) coerce('mirror');\n\n if(options.automargin) coerce('automargin');\n\n var isMultiCategory = containerOut.type === 'multicategory';\n\n if(!options.noTickson &&\n (containerOut.type === 'category' || isMultiCategory) &&\n (containerOut.ticks || containerOut.showgrid)\n ) {\n var ticksonDflt;\n if(isMultiCategory) ticksonDflt = 'boundaries';\n coerce('tickson', ticksonDflt);\n }\n\n if(isMultiCategory) {\n var showDividers = coerce('showdividers');\n if(showDividers) {\n coerce('dividercolor');\n coerce('dividerwidth');\n }\n }\n\n return containerOut;\n};\n\n\n/***/ }),\n\n/***/ \"714f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\n// arrayOk attributes, merge them into calcdata array\nmodule.exports = function arraysToCalcdata(cd, trace) {\n for(var i = 0; i < cd.length; i++) cd[i].i = i;\n\n Lib.mergeArray(trace.text, cd, 'tx');\n Lib.mergeArray(trace.hovertext, cd, 'htx');\n\n var marker = trace.marker;\n if(marker) {\n Lib.mergeArray(marker.opacity, cd, 'mo');\n Lib.mergeArray(marker.color, cd, 'mc');\n\n var markerLine = marker.line;\n if(markerLine) {\n Lib.mergeArray(markerLine.color, cd, 'mlc');\n Lib.mergeArrayCastPositive(markerLine.width, cd, 'mlw');\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"716c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar helpers = __webpack_require__(\"feb7\");\n\n/**\n * Callback for coordEach\n *\n * @callback coordEachCallback\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()\n *\n * @name coordEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction coordEach(geojson, callback, excludeWrapCoord) {\n // Handles null Geometry -- Skips this GeoJSON\n if (geojson === null) return;\n var j, k, l, geometry, stopG, coords,\n geometryMaybeCollection,\n wrapShrink = 0,\n coordIndex = 0,\n isGeometryCollection,\n type = geojson.type,\n isFeatureCollection = type === 'FeatureCollection',\n isFeature = type === 'Feature',\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = (isFeatureCollection ? geojson.features[featureIndex].geometry :\n (isFeature ? geojson.geometry : geojson));\n isGeometryCollection = (geometryMaybeCollection) ? geometryMaybeCollection.type === 'GeometryCollection' : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection ?\n geometryMaybeCollection.geometries[geomIndex] : geometryMaybeCollection;\n\n // Handles null Geometry -- Skips this geometry\n if (geometry === null) continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n\n wrapShrink = (excludeWrapCoord && (geomType === 'Polygon' || geomType === 'MultiPolygon')) ? 1 : 0;\n\n switch (geomType) {\n case null:\n break;\n case 'Point':\n if (callback(coords, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case 'LineString':\n case 'MultiPoint':\n for (j = 0; j < coords.length; j++) {\n if (callback(coords[j], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n if (geomType === 'MultiPoint') multiFeatureIndex++;\n }\n if (geomType === 'LineString') multiFeatureIndex++;\n break;\n case 'Polygon':\n case 'MultiLineString':\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (callback(coords[j][k], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n }\n if (geomType === 'MultiLineString') multiFeatureIndex++;\n if (geomType === 'Polygon') geometryIndex++;\n }\n if (geomType === 'Polygon') multiFeatureIndex++;\n break;\n case 'MultiPolygon':\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (callback(coords[j][k][l], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case 'GeometryCollection':\n for (j = 0; j < geometry.geometries.length; j++)\n if (coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false) return false;\n break;\n default:\n throw new Error('Unknown Geometry Type');\n }\n }\n }\n}\n\n/**\n * Callback for coordReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback coordReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Reduce coordinates in any GeoJSON object, similar to Array.reduce()\n *\n * @name coordReduce\n * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentCoord;\n * });\n */\nfunction coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(geojson, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n if (coordIndex === 0 && initialValue === undefined) previousValue = currentCoord;\n else previousValue = callback(previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex);\n }, excludeWrapCoord);\n return previousValue;\n}\n\n/**\n * Callback for propEach\n *\n * @callback propEachCallback\n * @param {Object} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over properties in any GeoJSON object, similar to Array.forEach()\n *\n * @name propEach\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentProperties, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propEach(features, function (currentProperties, featureIndex) {\n * //=currentProperties\n * //=featureIndex\n * });\n */\nfunction propEach(geojson, callback) {\n var i;\n switch (geojson.type) {\n case 'FeatureCollection':\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false) break;\n }\n break;\n case 'Feature':\n callback(geojson.properties, 0);\n break;\n }\n}\n\n\n/**\n * Callback for propReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback propReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {*} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce properties in any GeoJSON object into a single value,\n * similar to how Array.reduce works. However, in this case we lazily run\n * the reduction, so an array of all properties is unnecessary.\n *\n * @name propReduce\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) {\n * //=previousValue\n * //=currentProperties\n * //=featureIndex\n * return currentProperties\n * });\n */\nfunction propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function (currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentProperties;\n else previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for featureEach\n *\n * @callback featureEachCallback\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name featureEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.featureEach(features, function (currentFeature, featureIndex) {\n * //=currentFeature\n * //=featureIndex\n * });\n */\nfunction featureEach(geojson, callback) {\n if (geojson.type === 'Feature') {\n callback(geojson, 0);\n } else if (geojson.type === 'FeatureCollection') {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false) break;\n }\n }\n}\n\n/**\n * Callback for featureReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback featureReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name featureReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * return currentFeature\n * });\n */\nfunction featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function (currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Get all coordinates from any GeoJSON object.\n *\n * @name coordAll\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @returns {Array>} coordinate position array\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * var coords = turf.coordAll(features);\n * //= [[26, 37], [36, 53]]\n */\nfunction coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function (coord) {\n coords.push(coord);\n });\n return coords;\n}\n\n/**\n * Callback for geomEach\n *\n * @callback geomEachCallback\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Iterate over each geometry in any GeoJSON object, similar to Array.forEach()\n *\n * @name geomEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * });\n */\nfunction geomEach(geojson, callback) {\n var i, j, g, geometry, stopG,\n geometryMaybeCollection,\n isGeometryCollection,\n featureProperties,\n featureBBox,\n featureId,\n featureIndex = 0,\n isFeatureCollection = geojson.type === 'FeatureCollection',\n isFeature = geojson.type === 'Feature',\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (i = 0; i < stop; i++) {\n\n geometryMaybeCollection = (isFeatureCollection ? geojson.features[i].geometry :\n (isFeature ? geojson.geometry : geojson));\n featureProperties = (isFeatureCollection ? geojson.features[i].properties :\n (isFeature ? geojson.properties : {}));\n featureBBox = (isFeatureCollection ? geojson.features[i].bbox :\n (isFeature ? geojson.bbox : undefined));\n featureId = (isFeatureCollection ? geojson.features[i].id :\n (isFeature ? geojson.id : undefined));\n isGeometryCollection = (geometryMaybeCollection) ? geometryMaybeCollection.type === 'GeometryCollection' : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection ?\n geometryMaybeCollection.geometries[g] : geometryMaybeCollection;\n\n // Handle null Geometry\n if (geometry === null) {\n if (callback(null, featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n continue;\n }\n switch (geometry.type) {\n case 'Point':\n case 'LineString':\n case 'MultiPoint':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon': {\n if (callback(geometry, featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n break;\n }\n case 'GeometryCollection': {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (callback(geometry.geometries[j], featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n }\n break;\n }\n default:\n throw new Error('Unknown Geometry Type');\n }\n }\n // Only increase `featureIndex` per each feature\n featureIndex++;\n }\n}\n\n/**\n * Callback for geomReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback geomReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Reduce geometry in any GeoJSON object, similar to Array.reduce().\n *\n * @name geomReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=previousValue\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * return currentGeometry\n * });\n */\nfunction geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(geojson, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentGeometry;\n else previousValue = callback(previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId);\n });\n return previousValue;\n}\n\n/**\n * Callback for flattenEach\n *\n * @callback flattenEachCallback\n * @param {Feature} currentFeature The current flattened feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Iterate over flattened features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name flattenEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex)\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) {\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * });\n */\nfunction flattenEach(geojson, callback) {\n geomEach(geojson, function (geometry, featureIndex, properties, bbox, id) {\n // Callback for single geometry\n var type = (geometry === null) ? null : geometry.type;\n switch (type) {\n case null:\n case 'Point':\n case 'LineString':\n case 'Polygon':\n if (callback(helpers.feature(geometry, properties, {bbox: bbox, id: id}), featureIndex, 0) === false) return false;\n return;\n }\n\n var geomType;\n\n // Callback for multi-geometry\n switch (type) {\n case 'MultiPoint':\n geomType = 'Point';\n break;\n case 'MultiLineString':\n geomType = 'LineString';\n break;\n case 'MultiPolygon':\n geomType = 'Polygon';\n break;\n }\n\n for (var multiFeatureIndex = 0; multiFeatureIndex < geometry.coordinates.length; multiFeatureIndex++) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate\n };\n if (callback(helpers.feature(geom, properties), featureIndex, multiFeatureIndex) === false) return false;\n }\n });\n}\n\n/**\n * Callback for flattenReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback flattenReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Reduce flattened features in any GeoJSON object, similar to Array.reduce().\n *\n * @name flattenReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * return currentFeature\n * });\n */\nfunction flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(geojson, function (currentFeature, featureIndex, multiFeatureIndex) {\n if (featureIndex === 0 && multiFeatureIndex === 0 && initialValue === undefined) previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex, multiFeatureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for segmentEach\n *\n * @callback segmentEachCallback\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n * @returns {void}\n */\n\n/**\n * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex)\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //=currentSegment\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * //=segmentIndex\n * });\n *\n * // Calculate the total number of segments\n * var total = 0;\n * turf.segmentEach(polygon, function () {\n * total++;\n * });\n */\nfunction segmentEach(geojson, callback) {\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0;\n\n // Exclude null Geometries\n if (!feature.geometry) return;\n // (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n var type = feature.geometry.type;\n if (type === 'Point' || type === 'MultiPoint') return;\n\n // Generate 2-vertex line segments\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (coordEach(feature, function (currentCoord, coordIndex, featureIndexCoord, multiPartIndexCoord, geometryIndex) {\n // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false`\n if (previousCoords === undefined || featureIndex > previousFeatureIndex || multiPartIndexCoord > previousMultiIndex || geometryIndex > prevGeomIndex) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = helpers.lineString([previousCoords, currentCoord], feature.properties);\n if (callback(currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) === false) return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }) === false) return false;\n });\n}\n\n/**\n * Callback for segmentReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback segmentReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n */\n\n/**\n * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //= previousSegment\n * //= currentSegment\n * //= featureIndex\n * //= multiFeatureIndex\n * //= geometryIndex\n * //= segmentInex\n * return currentSegment\n * });\n *\n * // Calculate the total number of segments\n * var initialValue = 0\n * var total = turf.segmentReduce(polygon, function (previousValue) {\n * previousValue++;\n * return previousValue;\n * }, initialValue);\n */\nfunction segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(geojson, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n if (started === false && initialValue === undefined) previousValue = currentSegment;\n else previousValue = callback(previousValue, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex);\n started = true;\n });\n return previousValue;\n}\n\n/**\n * Callback for lineEach\n *\n * @callback lineEachCallback\n * @param {Feature} currentLine The current LineString|LinearRing being processed\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Iterate over line or ring coordinates in LineString, Polygon, MultiLineString, MultiPolygon Features or Geometries,\n * similar to Array.forEach.\n *\n * @name lineEach\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @example\n * var multiLine = turf.multiLineString([\n * [[26, 37], [35, 45]],\n * [[36, 53], [38, 50], [41, 55]]\n * ]);\n *\n * turf.lineEach(multiLine, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction lineEach(geojson, callback) {\n // validation\n if (!geojson) throw new Error('geojson is required');\n\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n if (feature.geometry === null) return;\n var type = feature.geometry.type;\n var coords = feature.geometry.coordinates;\n switch (type) {\n case 'LineString':\n if (callback(feature, featureIndex, multiFeatureIndex, 0, 0) === false) return false;\n break;\n case 'Polygon':\n for (var geometryIndex = 0; geometryIndex < coords.length; geometryIndex++) {\n if (callback(helpers.lineString(coords[geometryIndex], feature.properties), featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n }\n break;\n }\n });\n}\n\n/**\n * Callback for lineReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback lineReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentLine The current LineString|LinearRing being processed.\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name lineReduce\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var multiPoly = turf.multiPolygon([\n * turf.polygon([[[12,48],[2,41],[24,38],[12,48]], [[9,44],[13,41],[13,45],[9,44]]]),\n * turf.polygon([[[5, 5], [0, 0], [2, 2], [4, 4], [5, 5]]])\n * ]);\n *\n * turf.lineReduce(multiPoly, function (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentLine\n * });\n */\nfunction lineReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n lineEach(geojson, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentLine;\n else previousValue = callback(previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex);\n });\n return previousValue;\n}\n\n/**\n * Finds a particular 2-vertex LineString Segment from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n * Point & MultiPoint will always return null.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.segmentIndex=0] Segment Index\n * @param {Object} [options.properties={}] Translate Properties to output LineString\n * @param {BBox} [options.bbox={}] Translate BBox to output LineString\n * @param {number|string} [options.id={}] Translate Id to output LineString\n * @returns {Feature} 2-vertex GeoJSON Feature LineString\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findSegment(multiLine);\n * // => Feature>\n *\n * // First Segment of 2nd Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of Last Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: -1, segmentIndex: -1});\n * // => Feature>\n */\nfunction findSegment(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!helpers.isObject(options)) throw new Error('options is invalid');\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var segmentIndex = options.segmentIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case 'FeatureCollection':\n if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case 'Feature':\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case 'Point':\n case 'MultiPoint':\n return null;\n case 'LineString':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon':\n geometry = geojson;\n break;\n default:\n throw new Error('geojson is invalid');\n }\n\n // Find SegmentIndex\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case 'Point':\n case 'MultiPoint':\n return null;\n case 'LineString':\n if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1;\n return helpers.lineString([coords[segmentIndex], coords[segmentIndex + 1]], properties, options);\n case 'Polygon':\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (segmentIndex < 0) segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n return helpers.lineString([coords[geometryIndex][segmentIndex], coords[geometryIndex][segmentIndex + 1]], properties, options);\n case 'MultiLineString':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n return helpers.lineString([coords[multiFeatureIndex][segmentIndex], coords[multiFeatureIndex][segmentIndex + 1]], properties, options);\n case 'MultiPolygon':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return helpers.lineString([coords[multiFeatureIndex][geometryIndex][segmentIndex], coords[multiFeatureIndex][geometryIndex][segmentIndex + 1]], properties, options);\n }\n throw new Error('geojson is invalid');\n}\n\n/**\n * Finds a particular Point from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.coordIndex=0] Coord Index\n * @param {Object} [options.properties={}] Translate Properties to output Point\n * @param {BBox} [options.bbox={}] Translate BBox to output Point\n * @param {number|string} [options.id={}] Translate Id to output Point\n * @returns {Feature} 2-vertex GeoJSON Feature Point\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findPoint(multiLine);\n * // => Feature>\n *\n * // First Segment of the 2nd Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of last Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: -1, coordIndex: -1});\n * // => Feature>\n */\nfunction findPoint(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!helpers.isObject(options)) throw new Error('options is invalid');\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var coordIndex = options.coordIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case 'FeatureCollection':\n if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case 'Feature':\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case 'Point':\n case 'MultiPoint':\n return null;\n case 'LineString':\n case 'Polygon':\n case 'MultiLineString':\n case 'MultiPolygon':\n geometry = geojson;\n break;\n default:\n throw new Error('geojson is invalid');\n }\n\n // Find Coord Index\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case 'Point':\n return helpers.point(coords, properties, options);\n case 'MultiPoint':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n return helpers.point(coords[multiFeatureIndex], properties, options);\n case 'LineString':\n if (coordIndex < 0) coordIndex = coords.length + coordIndex;\n return helpers.point(coords[coordIndex], properties, options);\n case 'Polygon':\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (coordIndex < 0) coordIndex = coords[geometryIndex].length + coordIndex;\n return helpers.point(coords[geometryIndex][coordIndex], properties, options);\n case 'MultiLineString':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (coordIndex < 0) coordIndex = coords[multiFeatureIndex].length + coordIndex;\n return helpers.point(coords[multiFeatureIndex][coordIndex], properties, options);\n case 'MultiPolygon':\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (coordIndex < 0) coordIndex = coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n return helpers.point(coords[multiFeatureIndex][geometryIndex][coordIndex], properties, options);\n }\n throw new Error('geojson is invalid');\n}\n\nexports.coordEach = coordEach;\nexports.coordReduce = coordReduce;\nexports.propEach = propEach;\nexports.propReduce = propReduce;\nexports.featureEach = featureEach;\nexports.featureReduce = featureReduce;\nexports.coordAll = coordAll;\nexports.geomEach = geomEach;\nexports.geomReduce = geomReduce;\nexports.flattenEach = flattenEach;\nexports.flattenReduce = flattenReduce;\nexports.segmentEach = segmentEach;\nexports.segmentReduce = segmentReduce;\nexports.lineEach = lineEach;\nexports.lineReduce = lineReduce;\nexports.findSegment = findSegment;\nexports.findPoint = findPoint;\n\n\n/***/ }),\n\n/***/ \"71b1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var i, j;\n\n if(selectionTester === false) {\n for(i = 0; i < cd.length; i++) {\n for(j = 0; j < (cd[i].pts || []).length; j++) {\n // clear selection\n cd[i].pts[j].selected = 0;\n }\n }\n } else {\n for(i = 0; i < cd.length; i++) {\n for(j = 0; j < (cd[i].pts || []).length; j++) {\n var pt = cd[i].pts[j];\n var x = xa.c2p(pt.x);\n var y = ya.c2p(pt.y);\n\n if(selectionTester.contains([x, y], null, pt.i, searchInfo)) {\n selection.push({\n pointNumber: pt.i,\n x: xa.c2d(pt.x),\n y: ya.c2d(pt.y)\n });\n pt.selected = 1;\n } else {\n pt.selected = 0;\n }\n }\n }\n }\n\n return selection;\n};\n\n\n/***/ }),\n\n/***/ \"7210\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar handleArrayContainerDefaults = __webpack_require__(\"e5ac\");\n\nvar attributes = __webpack_require__(\"9c5f\");\nvar constants = __webpack_require__(\"e639\");\n\nvar name = constants.name;\nvar stepAttrs = attributes.steps;\n\n\nmodule.exports = function slidersDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: name,\n handleItemDefaults: sliderDefaults\n });\n};\n\nfunction sliderDefaults(sliderIn, sliderOut, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(sliderIn, sliderOut, attributes, attr, dflt);\n }\n\n var steps = handleArrayContainerDefaults(sliderIn, sliderOut, {\n name: 'steps',\n handleItemDefaults: stepDefaults\n });\n\n var stepCount = 0;\n for(var i = 0; i < steps.length; i++) {\n if(steps[i].visible) stepCount++;\n }\n\n var visible;\n // If it has fewer than two options, it's not really a slider\n if(stepCount < 2) visible = sliderOut.visible = false;\n else visible = coerce('visible');\n if(!visible) return;\n\n sliderOut._stepCount = stepCount;\n var visSteps = sliderOut._visibleSteps = Lib.filterVisible(steps);\n\n var active = coerce('active');\n if(!(steps[active] || {}).visible) sliderOut.active = visSteps[0]._index;\n\n coerce('x');\n coerce('y');\n Lib.noneOrAll(sliderIn, sliderOut, ['x', 'y']);\n\n coerce('xanchor');\n coerce('yanchor');\n\n coerce('len');\n coerce('lenmode');\n\n coerce('pad.t');\n coerce('pad.r');\n coerce('pad.b');\n coerce('pad.l');\n\n Lib.coerceFont(coerce, 'font', layoutOut.font);\n\n var currentValueIsVisible = coerce('currentvalue.visible');\n\n if(currentValueIsVisible) {\n coerce('currentvalue.xanchor');\n coerce('currentvalue.prefix');\n coerce('currentvalue.suffix');\n coerce('currentvalue.offset');\n\n Lib.coerceFont(coerce, 'currentvalue.font', sliderOut.font);\n }\n\n coerce('transition.duration');\n coerce('transition.easing');\n\n coerce('bgcolor');\n coerce('activebgcolor');\n coerce('bordercolor');\n coerce('borderwidth');\n coerce('ticklen');\n coerce('tickwidth');\n coerce('tickcolor');\n coerce('minorticklen');\n}\n\nfunction stepDefaults(valueIn, valueOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(valueIn, valueOut, stepAttrs, attr, dflt);\n }\n\n var visible;\n if(valueIn.method !== 'skip' && !Array.isArray(valueIn.args)) {\n visible = valueOut.visible = false;\n } else visible = coerce('visible');\n\n if(visible) {\n coerce('method');\n coerce('args');\n var label = coerce('label', 'step-' + valueOut._index);\n coerce('value', label);\n coerce('execute');\n }\n}\n\n\n/***/ }),\n\n/***/ \"7223\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar db = __webpack_require__(\"abc0\")\nvar ctz = __webpack_require__(\"a48a\").countTrailingZeros\n\nmodule.exports = ctzNumber\n\n//Counts the number of trailing zeros\nfunction ctzNumber(x) {\n var l = ctz(db.lo(x))\n if(l < 32) {\n return l\n }\n var h = ctz(db.hi(x))\n if(h > 20) {\n return 52\n }\n return h + 32\n}\n\n\n/***/ }),\n\n/***/ \"722f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar axisIds = __webpack_require__(\"3c1c\");\n\nvar traceIs = __webpack_require__(\"371e\").traceIs;\nvar handleGroupingDefaults = __webpack_require__(\"1c1c\").handleGroupingDefaults;\n\nvar nestedProperty = Lib.nestedProperty;\nvar getAxisGroup = axisIds.getAxisGroup;\n\nvar BINATTRS = [\n {aStr: {x: 'xbins.start', y: 'ybins.start'}, name: 'start'},\n {aStr: {x: 'xbins.end', y: 'ybins.end'}, name: 'end'},\n {aStr: {x: 'xbins.size', y: 'ybins.size'}, name: 'size'},\n {aStr: {x: 'nbinsx', y: 'nbinsy'}, name: 'nbins'}\n];\n\nvar BINDIRECTIONS = ['x', 'y'];\n\n// handle bin attrs and relink auto-determined values so fullData is complete\nmodule.exports = function crossTraceDefaults(fullData, fullLayout) {\n var allBinOpts = fullLayout._histogramBinOpts = {};\n var histTraces = [];\n var mustMatchTracesLookup = {};\n var otherTracesList = [];\n\n var traceOut, traces, groupName, binDir;\n var i, j, k;\n\n function coerce(attr, dflt) {\n return Lib.coerce(traceOut._input, traceOut, traceOut._module.attributes, attr, dflt);\n }\n\n function orientation2binDir(traceOut) {\n return traceOut.orientation === 'v' ? 'x' : 'y';\n }\n\n function getAxisType(traceOut, binDir) {\n var ax = axisIds.getFromTrace({_fullLayout: fullLayout}, traceOut, binDir);\n return ax.type;\n }\n\n function fillBinOpts(traceOut, groupName, binDir) {\n // N.B. group traces that don't have a bingroup with themselves\n var fallbackGroupName = traceOut.uid + '__' + binDir;\n if(!groupName) groupName = fallbackGroupName;\n\n var axType = getAxisType(traceOut, binDir);\n var calendar = traceOut[binDir + 'calendar'] || '';\n var binOpts = allBinOpts[groupName];\n var needsNewItem = true;\n\n if(binOpts) {\n if(axType === binOpts.axType && calendar === binOpts.calendar) {\n needsNewItem = false;\n binOpts.traces.push(traceOut);\n binOpts.dirs.push(binDir);\n } else {\n groupName = fallbackGroupName;\n\n if(axType !== binOpts.axType) {\n Lib.warn([\n 'Attempted to group the bins of trace', traceOut.index,\n 'set on a', 'type:' + axType, 'axis',\n 'with bins on', 'type:' + binOpts.axType, 'axis.'\n ].join(' '));\n }\n if(calendar !== binOpts.calendar) {\n // prohibit bingroup for traces using different calendar,\n // there's probably a way to make this work, but skip for now\n Lib.warn([\n 'Attempted to group the bins of trace', traceOut.index,\n 'set with a', calendar, 'calendar',\n 'with bins',\n (binOpts.calendar ? 'on a ' + binOpts.calendar + ' calendar' : 'w/o a set calendar')\n ].join(' '));\n }\n }\n }\n\n if(needsNewItem) {\n allBinOpts[groupName] = {\n traces: [traceOut],\n dirs: [binDir],\n axType: axType,\n calendar: traceOut[binDir + 'calendar'] || ''\n };\n }\n traceOut['_' + binDir + 'bingroup'] = groupName;\n }\n\n for(i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n\n if(traceIs(traceOut, 'histogram')) {\n histTraces.push(traceOut);\n\n // TODO: this shouldn't be relinked as it's only used within calc\n // https://github.com/plotly/plotly.js/issues/749\n delete traceOut._xautoBinFinished;\n delete traceOut._yautoBinFinished;\n\n // N.B. need to coerce *alignmentgroup* before *bingroup*, as traces\n // in same alignmentgroup \"have to match\"\n if(!traceIs(traceOut, '2dMap')) {\n handleGroupingDefaults(traceOut._input, traceOut, fullLayout, coerce);\n }\n }\n }\n\n var alignmentOpts = fullLayout._alignmentOpts || {};\n\n // Look for traces that \"have to match\", that is:\n // - 1d histogram traces on the same subplot with same orientation under barmode:stack,\n // - 1d histogram traces on the same subplot with same orientation under barmode:group\n // - 1d histogram traces on the same position axis with the same orientation\n // and the same *alignmentgroup* (coerced under barmode:group)\n // - Once `stackgroup` gets implemented (see https://github.com/plotly/plotly.js/issues/3614),\n // traces within the same stackgroup will also \"have to match\"\n for(i = 0; i < histTraces.length; i++) {\n traceOut = histTraces[i];\n groupName = '';\n\n if(!traceIs(traceOut, '2dMap')) {\n binDir = orientation2binDir(traceOut);\n\n if(fullLayout.barmode === 'group' && traceOut.alignmentgroup) {\n var pa = traceOut[binDir + 'axis'];\n var aGroupId = getAxisGroup(fullLayout, pa) + traceOut.orientation;\n if((alignmentOpts[aGroupId] || {})[traceOut.alignmentgroup]) {\n groupName = aGroupId;\n }\n }\n\n if(!groupName && fullLayout.barmode !== 'overlay') {\n groupName = (\n getAxisGroup(fullLayout, traceOut.xaxis) +\n getAxisGroup(fullLayout, traceOut.yaxis) +\n orientation2binDir(traceOut)\n );\n }\n }\n\n if(groupName) {\n if(!mustMatchTracesLookup[groupName]) {\n mustMatchTracesLookup[groupName] = [];\n }\n mustMatchTracesLookup[groupName].push(traceOut);\n } else {\n otherTracesList.push(traceOut);\n }\n }\n\n // Setup binOpts for traces that have to match,\n // if the traces have a valid bingroup, use that\n // if not use axis+binDir groupName\n for(groupName in mustMatchTracesLookup) {\n traces = mustMatchTracesLookup[groupName];\n\n // no need to 'force' anything when a single\n // trace is detected as \"must match\"\n if(traces.length === 1) {\n otherTracesList.push(traces[0]);\n continue;\n }\n\n var binGroupFound = false;\n for(i = 0; i < traces.length; i++) {\n traceOut = traces[i];\n binGroupFound = coerce('bingroup');\n break;\n }\n\n groupName = binGroupFound || groupName;\n\n for(i = 0; i < traces.length; i++) {\n traceOut = traces[i];\n var bingroupIn = traceOut._input.bingroup;\n if(bingroupIn && bingroupIn !== groupName) {\n Lib.warn([\n 'Trace', traceOut.index, 'must match',\n 'within bingroup', groupName + '.',\n 'Ignoring its bingroup:', bingroupIn, 'setting.'\n ].join(' '));\n }\n traceOut.bingroup = groupName;\n\n // N.B. no need to worry about 2dMap case\n // (where both bin direction are set in each trace)\n // as 2dMap trace never \"have to match\"\n fillBinOpts(traceOut, groupName, orientation2binDir(traceOut));\n }\n }\n\n // setup binOpts for traces that can but don't have to match,\n // notice that these traces can be matched with traces that have to match\n for(i = 0; i < otherTracesList.length; i++) {\n traceOut = otherTracesList[i];\n\n var binGroup = coerce('bingroup');\n\n if(traceIs(traceOut, '2dMap')) {\n for(k = 0; k < 2; k++) {\n binDir = BINDIRECTIONS[k];\n var binGroupInDir = coerce(binDir + 'bingroup',\n binGroup ? binGroup + '__' + binDir : null\n );\n fillBinOpts(traceOut, binGroupInDir, binDir);\n }\n } else {\n fillBinOpts(traceOut, binGroup, orientation2binDir(traceOut));\n }\n }\n\n // coerce bin attrs!\n for(groupName in allBinOpts) {\n var binOpts = allBinOpts[groupName];\n traces = binOpts.traces;\n\n for(j = 0; j < BINATTRS.length; j++) {\n var attrSpec = BINATTRS[j];\n var attr = attrSpec.name;\n var aStr;\n var autoVals;\n\n // nbins(x|y) is moot if we have a size. This depends on\n // nbins coming after size in binAttrs.\n if(attr === 'nbins' && binOpts.sizeFound) continue;\n\n for(i = 0; i < traces.length; i++) {\n traceOut = traces[i];\n binDir = binOpts.dirs[i];\n aStr = attrSpec.aStr[binDir];\n\n if(nestedProperty(traceOut._input, aStr).get() !== undefined) {\n binOpts[attr] = coerce(aStr);\n binOpts[attr + 'Found'] = true;\n break;\n }\n\n autoVals = (traceOut._autoBin || {})[binDir] || {};\n if(autoVals[attr]) {\n // if this is the *first* autoval\n nestedProperty(traceOut, aStr).set(autoVals[attr]);\n }\n }\n\n // start and end we need to coerce anyway, after having collected the\n // first of each into binOpts, in case a trace wants to restrict its\n // data to a certain range\n if(attr === 'start' || attr === 'end') {\n for(; i < traces.length; i++) {\n traceOut = traces[i];\n if(traceOut['_' + binDir + 'bingroup']) {\n autoVals = (traceOut._autoBin || {})[binDir] || {};\n coerce(aStr, autoVals[attr]);\n }\n }\n }\n\n if(attr === 'nbins' && !binOpts.sizeFound && !binOpts.nbinsFound) {\n traceOut = traces[0];\n binOpts[attr] = coerce(aStr);\n }\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"72a4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nmodule.exports = {\n /**\n * Timing information for interactive elements\n */\n SHOW_PLACEHOLDER: 100,\n HIDE_PLACEHOLDER: 1000,\n\n // opacity dimming fraction for points that are not in selection\n DESELECTDIM: 0.2\n};\n\n\n/***/ }),\n\n/***/ \"72e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar styleOne = __webpack_require__(\"a708\");\nvar resizeText = __webpack_require__(\"93a6\").resizeText;\n\nmodule.exports = function style(gd) {\n var s = gd._fullLayout._pielayer.selectAll('.trace');\n resizeText(gd, s, 'pie');\n\n s.each(function(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var traceSelection = d3.select(this);\n\n traceSelection.style({opacity: trace.opacity});\n\n traceSelection.selectAll('path.surface').each(function(pt) {\n d3.select(this).call(styleOne, pt, trace);\n });\n });\n};\n\n\n/***/ }),\n\n/***/ \"7327\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isBN = __webpack_require__(\"4e7e\")\n\nmodule.exports = isRat\n\nfunction isRat(x) {\n return Array.isArray(x) && x.length === 2 && isBN(x[0]) && isBN(x[1])\n}\n\n\n/***/ }),\n\n/***/ \"7373\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isValue = __webpack_require__(\"62c4\");\n\nvar keys = Object.keys;\n\nmodule.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };\n\n\n/***/ }),\n\n/***/ \"7388\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = {\n create: __webpack_require__(\"2638\"),\n clone: __webpack_require__(\"3c41\"),\n fromValues: __webpack_require__(\"f9f9\"),\n copy: __webpack_require__(\"265e\"),\n set: __webpack_require__(\"204d\"),\n add: __webpack_require__(\"c3a9\"),\n subtract: __webpack_require__(\"56cf\"),\n multiply: __webpack_require__(\"dd86\"),\n divide: __webpack_require__(\"73cf\"),\n min: __webpack_require__(\"5374\"),\n max: __webpack_require__(\"dd05\"),\n scale: __webpack_require__(\"d9c2\"),\n scaleAndAdd: __webpack_require__(\"0970\"),\n distance: __webpack_require__(\"fa11\"),\n squaredDistance: __webpack_require__(\"bf66\"),\n length: __webpack_require__(\"4e89\"),\n squaredLength: __webpack_require__(\"644a\"),\n negate: __webpack_require__(\"b1ca\"),\n inverse: __webpack_require__(\"95c9\"),\n normalize: __webpack_require__(\"5243\"),\n dot: __webpack_require__(\"7bb3\"),\n lerp: __webpack_require__(\"7ae4\"),\n random: __webpack_require__(\"aff3\"),\n transformMat4: __webpack_require__(\"6259\"),\n transformQuat: __webpack_require__(\"d26e\")\n}\n\n\n/***/ }),\n\n/***/ \"738f\":\n/***/ (function(module, exports) {\n\nmodule.exports = scaleAndAdd;\n\n/**\n * Adds two vec3's after scaling the second operand by a scalar value\n *\n * @param {vec3} out the receiving vector\n * @param {vec3} a the first operand\n * @param {vec3} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec3} out\n */\nfunction scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + (b[0] * scale)\n out[1] = a[1] + (b[1] * scale)\n out[2] = a[2] + (b[2] * scale)\n return out\n}\n\n/***/ }),\n\n/***/ \"739b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Template = __webpack_require__(\"a651\");\n\nvar colorScaleAttrs = __webpack_require__(\"0dd7\");\nvar colorScaleDefaults = __webpack_require__(\"4183\");\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, colorScaleAttrs, attr, dflt);\n }\n\n coerce('colorscale.sequential');\n coerce('colorscale.sequentialminus');\n coerce('colorscale.diverging');\n\n var colorAxes = layoutOut._colorAxes;\n var colorAxIn, colorAxOut;\n\n function coerceAx(attr, dflt) {\n return Lib.coerce(colorAxIn, colorAxOut, colorScaleAttrs.coloraxis, attr, dflt);\n }\n\n for(var k in colorAxes) {\n var stash = colorAxes[k];\n\n if(stash[0]) {\n colorAxIn = layoutIn[k] || {};\n colorAxOut = Template.newContainer(layoutOut, k, 'coloraxis');\n colorAxOut._name = k;\n colorScaleDefaults(colorAxIn, colorAxOut, layoutOut, coerceAx, {prefix: '', cLetter: 'c'});\n } else {\n // re-coerce colorscale attributes w/o coloraxis\n for(var i = 0; i < stash[2].length; i++) {\n stash[2][i]();\n }\n delete layoutOut._colorAxes[k];\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"73c9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\n\nexports.xmlns = 'http://www.w3.org/2000/xmlns/';\nexports.svg = 'http://www.w3.org/2000/svg';\nexports.xlink = 'http://www.w3.org/1999/xlink';\n\n// the 'old' d3 quirk got fix in v3.5.7\n// https://github.com/mbostock/d3/commit/a6f66e9dd37f764403fc7c1f26be09ab4af24fed\nexports.svgAttrs = {\n xmlns: exports.svg,\n 'xmlns:xlink': exports.xlink\n};\n\n\n/***/ }),\n\n/***/ \"73cf\":\n/***/ (function(module, exports) {\n\nmodule.exports = divide\n\n/**\n * Divides two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {vec4} out\n */\nfunction divide (out, a, b) {\n out[0] = a[0] / b[0]\n out[1] = a[1] / b[1]\n out[2] = a[2] / b[2]\n out[3] = a[3] / b[3]\n return out\n}\n\n\n/***/ }),\n\n/***/ \"7418\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"743b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar colorMix = __webpack_require__(\"66cb\").mix;\nvar lightFraction = __webpack_require__(\"dfb3\").lightFraction;\nvar Lib = __webpack_require__(\"fc26\");\n\n/**\n * @param {object} opts :\n * - dfltColor {string} : default axis color\n * - bgColor {string} : combined subplot bg color\n * - blend {number, optional} : blend percentage (to compute dflt grid color)\n * - showLine {boolean} : show line by default\n * - showGrid {boolean} : show grid by default\n * - noZeroLine {boolean} : don't coerce zeroline* attributes\n * - attributes {object} : attribute object associated with input containers\n */\nmodule.exports = function handleLineGridDefaults(containerIn, containerOut, coerce, opts) {\n opts = opts || {};\n\n var dfltColor = opts.dfltColor;\n\n function coerce2(attr, dflt) {\n return Lib.coerce2(containerIn, containerOut, opts.attributes, attr, dflt);\n }\n\n var lineColor = coerce2('linecolor', dfltColor);\n var lineWidth = coerce2('linewidth');\n var showLine = coerce('showline', opts.showLine || !!lineColor || !!lineWidth);\n\n if(!showLine) {\n delete containerOut.linecolor;\n delete containerOut.linewidth;\n }\n\n var gridColorDflt = colorMix(dfltColor, opts.bgColor, opts.blend || lightFraction).toRgbString();\n var gridColor = coerce2('gridcolor', gridColorDflt);\n var gridWidth = coerce2('gridwidth');\n var showGridLines = coerce('showgrid', opts.showGrid || !!gridColor || !!gridWidth);\n\n if(!showGridLines) {\n delete containerOut.gridcolor;\n delete containerOut.gridwidth;\n }\n\n if(!opts.noZeroLine) {\n var zeroLineColor = coerce2('zerolinecolor', dfltColor);\n var zeroLineWidth = coerce2('zerolinewidth');\n var showZeroLine = coerce('zeroline', opts.showGrid || !!zeroLineColor || !!zeroLineWidth);\n\n if(!showZeroLine) {\n delete containerOut.zerolinecolor;\n delete containerOut.zerolinewidth;\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"746f\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(\"428f\");\nvar has = __webpack_require__(\"5135\");\nvar wrappedWellKnownSymbolModule = __webpack_require__(\"e538\");\nvar defineProperty = __webpack_require__(\"9bf2\").f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n\n\n/***/ }),\n\n/***/ \"74b4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar texttemplateAttrs = __webpack_require__(\"94d5\").texttemplateAttrs;\nvar scatterGeoAttrs = __webpack_require__(\"56f3\");\nvar scatterAttrs = __webpack_require__(\"107c\");\nvar mapboxAttrs = __webpack_require__(\"f7e9\");\nvar baseAttrs = __webpack_require__(\"a876\");\nvar colorScaleAttrs = __webpack_require__(\"f4e9\");\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar lineAttrs = scatterGeoAttrs.line;\nvar markerAttrs = scatterGeoAttrs.marker;\n\nmodule.exports = overrideAll({\n lon: scatterGeoAttrs.lon,\n lat: scatterGeoAttrs.lat,\n\n // locations\n // locationmode\n\n mode: extendFlat({}, scatterAttrs.mode, {\n dflt: 'markers',\n \n }),\n\n text: extendFlat({}, scatterAttrs.text, {\n \n }),\n texttemplate: texttemplateAttrs({editType: 'plot'}, {\n keys: ['lat', 'lon', 'text']\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {\n \n }),\n\n line: {\n color: lineAttrs.color,\n width: lineAttrs.width\n\n // TODO\n // dash: dash\n },\n\n connectgaps: scatterAttrs.connectgaps,\n\n marker: extendFlat({\n symbol: {\n valType: 'string',\n dflt: 'circle',\n \n arrayOk: true,\n \n },\n opacity: markerAttrs.opacity,\n size: markerAttrs.size,\n sizeref: markerAttrs.sizeref,\n sizemin: markerAttrs.sizemin,\n sizemode: markerAttrs.sizemode\n },\n colorScaleAttrs('marker')\n // line\n ),\n\n fill: scatterGeoAttrs.fill,\n fillcolor: scatterAttrs.fillcolor,\n\n textfont: mapboxAttrs.layers.symbol.textfont,\n textposition: mapboxAttrs.layers.symbol.textposition,\n\n below: {\n valType: 'string',\n \n \n },\n\n selected: {\n marker: scatterAttrs.selected.marker\n },\n unselected: {\n marker: scatterAttrs.unselected.marker\n },\n\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: ['lon', 'lat', 'text', 'name']\n }),\n hovertemplate: hovertemplateAttrs(),\n}, 'calc', 'nested');\n\n\n/***/ }),\n\n/***/ \"74d6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar isArrayOrTypedArray = __webpack_require__(\"6af8\").isArrayOrTypedArray;\n\n/**\n * convert a string s (such as 'xaxis.range[0]')\n * representing a property of nested object into set and get methods\n * also return the string and object so we don't have to keep track of them\n * allows [-1] for an array index, to set a property inside all elements\n * of an array\n * eg if obj = {arr: [{a: 1}, {a: 2}]}\n * you can do p = nestedProperty(obj, 'arr[-1].a')\n * but you cannot set the array itself this way, to do that\n * just set the whole array.\n * eg if obj = {arr: [1, 2, 3]}\n * you can't do nestedProperty(obj, 'arr[-1]').set(5)\n * but you can do nestedProperty(obj, 'arr').set([5, 5, 5])\n */\nmodule.exports = function nestedProperty(container, propStr) {\n if(isNumeric(propStr)) propStr = String(propStr);\n else if(typeof propStr !== 'string' ||\n propStr.substr(propStr.length - 4) === '[-1]') {\n throw 'bad property string';\n }\n\n var j = 0;\n var propParts = propStr.split('.');\n var indexed;\n var indices;\n var i;\n\n // check for parts of the nesting hierarchy that are numbers (ie array elements)\n while(j < propParts.length) {\n // look for non-bracket chars, then any number of [##] blocks\n indexed = String(propParts[j]).match(/^([^\\[\\]]*)((\\[\\-?[0-9]*\\])+)$/);\n if(indexed) {\n if(indexed[1]) propParts[j] = indexed[1];\n // allow propStr to start with bracketed array indices\n else if(j === 0) propParts.splice(0, 1);\n else throw 'bad property string';\n\n indices = indexed[2]\n .substr(1, indexed[2].length - 2)\n .split('][');\n\n for(i = 0; i < indices.length; i++) {\n j++;\n propParts.splice(j, 0, Number(indices[i]));\n }\n }\n j++;\n }\n\n if(typeof container !== 'object') {\n return badContainer(container, propStr, propParts);\n }\n\n return {\n set: npSet(container, propParts, propStr),\n get: npGet(container, propParts),\n astr: propStr,\n parts: propParts,\n obj: container\n };\n};\n\nfunction npGet(cont, parts) {\n return function() {\n var curCont = cont;\n var curPart;\n var allSame;\n var out;\n var i;\n var j;\n\n for(i = 0; i < parts.length - 1; i++) {\n curPart = parts[i];\n if(curPart === -1) {\n allSame = true;\n out = [];\n for(j = 0; j < curCont.length; j++) {\n out[j] = npGet(curCont[j], parts.slice(i + 1))();\n if(out[j] !== out[0]) allSame = false;\n }\n return allSame ? out[0] : out;\n }\n if(typeof curPart === 'number' && !isArrayOrTypedArray(curCont)) {\n return undefined;\n }\n curCont = curCont[curPart];\n if(typeof curCont !== 'object' || curCont === null) {\n return undefined;\n }\n }\n\n // only hit this if parts.length === 1\n if(typeof curCont !== 'object' || curCont === null) return undefined;\n\n out = curCont[parts[i]];\n if(out === null) return undefined;\n return out;\n };\n}\n\n/*\n * Can this value be deleted? We can delete `undefined`, and `null` except INSIDE an\n * *args* array.\n *\n * Previously we also deleted some `{}` and `[]`, in order to try and make set/unset\n * a net noop; but this causes far more complication than it's worth, and still had\n * lots of exceptions. See https://github.com/plotly/plotly.js/issues/1410\n *\n * *args* arrays get passed directly to API methods and we should respect null if\n * the user put it there, but otherwise null is deleted as we use it as code\n * in restyle/relayout/update for \"delete this value\" whereas undefined means\n * \"ignore this edit\"\n */\nvar ARGS_PATTERN = /(^|\\.)args\\[/;\nfunction isDeletable(val, propStr) {\n return (val === undefined) || (val === null && !propStr.match(ARGS_PATTERN));\n}\n\nfunction npSet(cont, parts, propStr) {\n return function(val) {\n var curCont = cont;\n var propPart = '';\n var containerLevels = [[cont, propPart]];\n var toDelete = isDeletable(val, propStr);\n var curPart;\n var i;\n\n for(i = 0; i < parts.length - 1; i++) {\n curPart = parts[i];\n\n if(typeof curPart === 'number' && !isArrayOrTypedArray(curCont)) {\n throw 'array index but container is not an array';\n }\n\n // handle special -1 array index\n if(curPart === -1) {\n toDelete = !setArrayAll(curCont, parts.slice(i + 1), val, propStr);\n if(toDelete) break;\n else return;\n }\n\n if(!checkNewContainer(curCont, curPart, parts[i + 1], toDelete)) {\n break;\n }\n\n curCont = curCont[curPart];\n\n if(typeof curCont !== 'object' || curCont === null) {\n throw 'container is not an object';\n }\n\n propPart = joinPropStr(propPart, curPart);\n\n containerLevels.push([curCont, propPart]);\n }\n\n if(toDelete) {\n if(i === parts.length - 1) {\n delete curCont[parts[i]];\n\n // The one bit of pruning we still do: drop `undefined` from the end of arrays.\n // In case someone has already unset previous items, continue until we hit a\n // non-undefined value.\n if(Array.isArray(curCont) && +parts[i] === curCont.length - 1) {\n while(curCont.length && curCont[curCont.length - 1] === undefined) {\n curCont.pop();\n }\n }\n }\n } else curCont[parts[i]] = val;\n };\n}\n\nfunction joinPropStr(propStr, newPart) {\n var toAdd = newPart;\n if(isNumeric(newPart)) toAdd = '[' + newPart + ']';\n else if(propStr) toAdd = '.' + newPart;\n\n return propStr + toAdd;\n}\n\n// handle special -1 array index\nfunction setArrayAll(containerArray, innerParts, val, propStr) {\n var arrayVal = isArrayOrTypedArray(val);\n var allSet = true;\n var thisVal = val;\n var thisPropStr = propStr.replace('-1', 0);\n var deleteThis = arrayVal ? false : isDeletable(val, thisPropStr);\n var firstPart = innerParts[0];\n var i;\n\n for(i = 0; i < containerArray.length; i++) {\n thisPropStr = propStr.replace('-1', i);\n if(arrayVal) {\n thisVal = val[i % val.length];\n deleteThis = isDeletable(thisVal, thisPropStr);\n }\n if(deleteThis) allSet = false;\n if(!checkNewContainer(containerArray, i, firstPart, deleteThis)) {\n continue;\n }\n npSet(containerArray[i], innerParts, propStr.replace('-1', i))(thisVal);\n }\n return allSet;\n}\n\n/**\n * make new sub-container as needed.\n * returns false if there's no container and none is needed\n * because we're only deleting an attribute\n */\nfunction checkNewContainer(container, part, nextPart, toDelete) {\n if(container[part] === undefined) {\n if(toDelete) return false;\n\n if(typeof nextPart === 'number') container[part] = [];\n else container[part] = {};\n }\n return true;\n}\n\nfunction badContainer(container, propStr, propParts) {\n return {\n set: function() { throw 'bad container'; },\n get: function() {},\n astr: propStr,\n parts: propParts,\n obj: container\n };\n}\n\n\n/***/ }),\n\n/***/ \"7559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n 'undo': {\n 'width': 857.1,\n 'height': 1000,\n 'path': 'm857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'home': {\n 'width': 928.6,\n 'height': 1000,\n 'path': 'm786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'camera-retro': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-8 5-13t13-5 12 5 5 13q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'zoombox': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm1000-25l-250 251c40 63 63 138 63 218 0 224-182 406-407 406-224 0-406-182-406-406s183-406 407-406c80 0 155 22 218 62l250-250 125 125z m-812 250l0 438 437 0 0-438-437 0z m62 375l313 0 0-312-313 0 0 312z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'pan': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm1000 350l-187 188 0-125-250 0 0 250 125 0-188 187-187-187 125 0 0-250-250 0 0 125-188-188 186-187 0 125 252 0 0-250-125 0 187-188 188 188-125 0 0 250 250 0 0-126 187 188z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'zoom_plus': {\n 'width': 875,\n 'height': 1000,\n 'path': 'm1 787l0-875 875 0 0 875-875 0z m687-500l-187 0 0-187-125 0 0 187-188 0 0 125 188 0 0 187 125 0 0-187 187 0 0-125z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'zoom_minus': {\n 'width': 875,\n 'height': 1000,\n 'path': 'm0 788l0-876 875 0 0 876-875 0z m688-500l-500 0 0 125 500 0 0-125z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'autoscale': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm250 850l-187 0-63 0 0-62 0-188 63 0 0 188 187 0 0 62z m688 0l-188 0 0-62 188 0 0-188 62 0 0 188 0 62-62 0z m-875-938l0 188-63 0 0-188 0-62 63 0 187 0 0 62-187 0z m875 188l0-188-188 0 0-62 188 0 62 0 0 62 0 188-62 0z m-125 188l-1 0-93-94-156 156 156 156 92-93 2 0 0 250-250 0 0-2 93-92-156-156-156 156 94 92 0 2-250 0 0-250 0 0 93 93 157-156-157-156-93 94 0 0 0-250 250 0 0 0-94 93 156 157 156-157-93-93 0 0 250 0 0 250z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'tooltip_basic': {\n 'width': 1500,\n 'height': 1000,\n 'path': 'm375 725l0 0-375-375 375-374 0-1 1125 0 0 750-1125 0z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'tooltip_compare': {\n 'width': 1125,\n 'height': 1000,\n 'path': 'm187 786l0 2-187-188 188-187 0 0 937 0 0 373-938 0z m0-499l0 1-187-188 188-188 0 0 937 0 0 376-938-1z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'plotlylogo': {\n 'width': 1542,\n 'height': 1000,\n 'path': 'm0-10h182v-140h-182v140z m228 146h183v-286h-183v286z m225 714h182v-1000h-182v1000z m225-285h182v-715h-182v715z m225 142h183v-857h-183v857z m231-428h182v-429h-182v429z m225-291h183v-138h-183v138z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'z-axis': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm833 5l-17 108v41l-130-65 130-66c0 0 0 38 0 39 0-1 36-14 39-25 4-15-6-22-16-30-15-12-39-16-56-20-90-22-187-23-279-23-261 0-341 34-353 59 3 60 228 110 228 110-140-8-351-35-351-116 0-120 293-142 474-142 155 0 477 22 477 142 0 50-74 79-163 96z m-374 94c-58-5-99-21-99-40 0-24 65-43 144-43 79 0 143 19 143 43 0 19-42 34-98 40v216h87l-132 135-133-135h88v-216z m167 515h-136v1c16 16 31 34 46 52l84 109v54h-230v-71h124v-1c-16-17-28-32-44-51l-89-114v-51h245v72z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n '3d_rotate': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm922 660c-5 4-9 7-14 11-359 263-580-31-580-31l-102 28 58-400c0 1 1 1 2 2 118 108 351 249 351 249s-62 27-100 42c88 83 222 183 347 122 16-8 30-17 44-27-2 1-4 2-6 4z m36-329c0 0 64 229-88 296-62 27-124 14-175-11 157-78 225-208 249-266 8-19 11-31 11-31 2 5 6 15 11 32-5-13-8-20-8-20z m-775-239c70-31 117-50 198-32-121 80-199 346-199 346l-96-15-58-12c0 0 55-226 155-287z m603 133l-317-139c0 0 4-4 19-14 7-5 24-15 24-15s-177-147-389 4c235-287 536-112 536-112l31-22 100 299-4-1z m-298-153c6-4 14-9 24-15 0 0-17 10-24 15z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'camera': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'movie': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm938 413l-188-125c0 37-17 71-44 94 64 38 107 107 107 187 0 121-98 219-219 219-121 0-219-98-219-219 0-61 25-117 66-156h-115c30 33 49 76 49 125 0 103-84 187-187 187s-188-84-188-187c0-57 26-107 65-141-38-22-65-62-65-109v-250c0-70 56-126 125-126h500c69 0 125 56 125 126l188-126c34 0 62 28 62 63v375c0 35-28 63-62 63z m-750 0c-69 0-125 56-125 125s56 125 125 125 125-56 125-125-56-125-125-125z m406-1c-87 0-157 70-157 157 0 86 70 156 157 156s156-70 156-156-70-157-156-157z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'question': {\n 'width': 857.1,\n 'height': 1000,\n 'path': 'm500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'disk': {\n 'width': 857.1,\n 'height': 1000,\n 'path': 'm214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-8 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'lasso': {\n 'width': 1031,\n 'height': 1000,\n 'path': 'm1018 538c-36 207-290 336-568 286-277-48-473-256-436-463 10-57 36-108 76-151-13-66 11-137 68-183 34-28 75-41 114-42l-55-70 0 0c-2-1-3-2-4-3-10-14-8-34 5-45 14-11 34-8 45 4 1 1 2 3 2 5l0 0 113 140c16 11 31 24 45 40 4 3 6 7 8 11 48-3 100 0 151 9 278 48 473 255 436 462z m-624-379c-80 14-149 48-197 96 42 42 109 47 156 9 33-26 47-66 41-105z m-187-74c-19 16-33 37-39 60 50-32 109-55 174-68-42-25-95-24-135 8z m360 75c-34-7-69-9-102-8 8 62-16 128-68 170-73 59-175 54-244-5-9 20-16 40-20 61-28 159 121 317 333 354s407-60 434-217c28-159-121-318-333-355z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'selectbox': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'm0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z',\n 'transform': 'matrix(1 0 0 -1 0 850)'\n },\n 'spikeline': {\n 'width': 1000,\n 'height': 1000,\n 'path': 'M512 409c0-57-46-104-103-104-57 0-104 47-104 104 0 57 47 103 104 103 57 0 103-46 103-103z m-327-39l92 0 0 92-92 0z m-185 0l92 0 0 92-92 0z m370-186l92 0 0 93-92 0z m0-184l92 0 0 92-92 0z',\n 'transform': 'matrix(1.5 0 0 -1.5 0 850)'\n },\n 'pencil': {\n 'width': 1792,\n 'height': 1792,\n 'path': 'M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z',\n 'transform': 'matrix(1 0 0 1 0 1)'\n },\n 'newplotlylogo': {\n 'name': 'newplotlylogo',\n 'svg': 'plotly-logomark'\n }\n};\n\n\n/***/ }),\n\n/***/ \"7594\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Color = __webpack_require__(\"d115\");\nvar Lib = __webpack_require__(\"fc26\");\nvar resizeText = __webpack_require__(\"93a6\").resizeText;\n\nfunction style(gd) {\n var s = gd._fullLayout._sunburstlayer.selectAll('.trace');\n resizeText(gd, s, 'sunburst');\n\n s.each(function(cd) {\n var gTrace = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n\n gTrace.style('opacity', trace.opacity);\n\n gTrace.selectAll('path.surface').each(function(pt) {\n d3.select(this).call(styleOne, pt, trace);\n });\n });\n}\n\nfunction styleOne(s, pt, trace) {\n var cdi = pt.data.data;\n var isLeaf = !pt.children;\n var ptNumber = cdi.i;\n var lineColor = Lib.castOption(trace, ptNumber, 'marker.line.color') || Color.defaultLine;\n var lineWidth = Lib.castOption(trace, ptNumber, 'marker.line.width') || 0;\n\n s.style('stroke-width', lineWidth)\n .call(Color.fill, cdi.color)\n .call(Color.stroke, lineColor)\n .style('opacity', isLeaf ? trace.leaf.opacity : null);\n}\n\nmodule.exports = {\n style: style,\n styleOne: styleOne\n};\n\n\n/***/ }),\n\n/***/ \"75ac\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"8761\");\n\n\n/***/ }),\n\n/***/ \"765f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar tinycolor = __webpack_require__(\"66cb\");\nvar rgba = __webpack_require__(\"0103\");\n\nvar Colorscale = __webpack_require__(\"c258\");\nvar colorDflt = __webpack_require__(\"dfb3\").defaultLine;\nvar isArrayOrTypedArray = __webpack_require__(\"6af8\").isArrayOrTypedArray;\n\nvar colorDfltRgba = rgba(colorDflt);\nvar opacityDflt = 1;\n\nfunction calculateColor(colorIn, opacityIn) {\n var colorOut = colorIn;\n colorOut[3] *= opacityIn;\n return colorOut;\n}\n\nfunction validateColor(colorIn) {\n if(isNumeric(colorIn)) return colorDfltRgba;\n\n var colorOut = rgba(colorIn);\n\n return colorOut.length ? colorOut : colorDfltRgba;\n}\n\nfunction validateOpacity(opacityIn) {\n return isNumeric(opacityIn) ? opacityIn : opacityDflt;\n}\n\nfunction formatColor(containerIn, opacityIn, len) {\n var colorIn = containerIn.color;\n var isArrayColorIn = isArrayOrTypedArray(colorIn);\n var isArrayOpacityIn = isArrayOrTypedArray(opacityIn);\n var cOpts = Colorscale.extractOpts(containerIn);\n var colorOut = [];\n\n var sclFunc, getColor, getOpacity, colori, opacityi;\n\n if(cOpts.colorscale !== undefined) {\n sclFunc = Colorscale.makeColorScaleFuncFromTrace(containerIn);\n } else {\n sclFunc = validateColor;\n }\n\n if(isArrayColorIn) {\n getColor = function(c, i) {\n // FIXME: there is double work, considering that sclFunc does the opposite\n return c[i] === undefined ? colorDfltRgba : rgba(sclFunc(c[i]));\n };\n } else getColor = validateColor;\n\n if(isArrayOpacityIn) {\n getOpacity = function(o, i) {\n return o[i] === undefined ? opacityDflt : validateOpacity(o[i]);\n };\n } else getOpacity = validateOpacity;\n\n if(isArrayColorIn || isArrayOpacityIn) {\n for(var i = 0; i < len; i++) {\n colori = getColor(colorIn, i);\n opacityi = getOpacity(opacityIn, i);\n colorOut[i] = calculateColor(colori, opacityi);\n }\n } else colorOut = calculateColor(rgba(colorIn), opacityIn);\n\n return colorOut;\n}\n\nfunction parseColorScale(cont, alpha) {\n if(alpha === undefined) alpha = 1;\n\n var cOpts = Colorscale.extractOpts(cont);\n\n var colorscale = cOpts.reversescale ?\n Colorscale.flipScale(cOpts.colorscale) :\n cOpts.colorscale;\n\n return colorscale.map(function(elem) {\n var index = elem[0];\n var color = tinycolor(elem[1]);\n var rgb = color.toRgb();\n return {\n index: index,\n rgb: [rgb.r, rgb.g, rgb.b, alpha]\n };\n });\n}\n\nmodule.exports = {\n formatColor: formatColor,\n parseColorScale: parseColorScale\n};\n\n\n/***/ }),\n\n/***/ \"7678\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n funnelmode: {\n valType: 'enumerated',\n values: ['stack', 'group', 'overlay'],\n dflt: 'stack',\n \n editType: 'calc',\n \n },\n funnelgap: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'calc',\n \n },\n funnelgroupgap: {\n valType: 'number',\n min: 0,\n max: 1,\n dflt: 0,\n \n editType: 'calc',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"76b2\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n/* global MathJax:false */\n\nmodule.exports = function() {\n if(typeof MathJax !== 'undefined') {\n var globalConfig = (window.PlotlyConfig || {}).MathJaxConfig !== 'local';\n\n if(globalConfig) {\n MathJax.Hub.Config({\n messageStyle: 'none',\n skipStartupTypeset: true,\n displayAlign: 'left',\n tex2jax: {\n inlineMath: [['$', '$'], ['\\\\(', '\\\\)']]\n }\n });\n MathJax.Hub.Configured();\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"76fe\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar str2RgbaArray = __webpack_require__(\"f977\");\nvar Lib = __webpack_require__(\"fc26\");\n\nvar AXES_NAMES = ['xaxis', 'yaxis', 'zaxis'];\n\nfunction AxesOptions() {\n this.bounds = [\n [-10, -10, -10],\n [10, 10, 10]\n ];\n\n this.ticks = [ [], [], [] ];\n this.tickEnable = [ true, true, true ];\n this.tickFont = [ 'sans-serif', 'sans-serif', 'sans-serif' ];\n this.tickSize = [ 12, 12, 12 ];\n this.tickAngle = [ 0, 0, 0 ];\n this.tickColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n this.tickPad = [ 18, 18, 18 ];\n\n this.labels = [ 'x', 'y', 'z' ];\n this.labelEnable = [ true, true, true ];\n this.labelFont = ['Open Sans', 'Open Sans', 'Open Sans'];\n this.labelSize = [ 20, 20, 20 ];\n this.labelColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n this.labelPad = [ 30, 30, 30 ];\n\n this.lineEnable = [ true, true, true ];\n this.lineMirror = [ false, false, false ];\n this.lineWidth = [ 1, 1, 1 ];\n this.lineColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n\n this.lineTickEnable = [ true, true, true ];\n this.lineTickMirror = [ false, false, false ];\n this.lineTickLength = [ 10, 10, 10 ];\n this.lineTickWidth = [ 1, 1, 1 ];\n this.lineTickColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n\n this.gridEnable = [ true, true, true ];\n this.gridWidth = [ 1, 1, 1 ];\n this.gridColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n\n this.zeroEnable = [ true, true, true ];\n this.zeroLineColor = [ [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1] ];\n this.zeroLineWidth = [ 2, 2, 2 ];\n\n this.backgroundEnable = [ true, true, true ];\n this.backgroundColor = [ [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5] ];\n\n // some default values are stored for applying model transforms\n this._defaultTickPad = this.tickPad.slice();\n this._defaultLabelPad = this.labelPad.slice();\n this._defaultLineTickLength = this.lineTickLength.slice();\n}\n\nvar proto = AxesOptions.prototype;\n\nproto.merge = function(fullLayout, sceneLayout) {\n var opts = this;\n for(var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n\n if(!axes.visible) {\n opts.tickEnable[i] = false;\n opts.labelEnable[i] = false;\n opts.lineEnable[i] = false;\n opts.lineTickEnable[i] = false;\n opts.gridEnable[i] = false;\n opts.zeroEnable[i] = false;\n opts.backgroundEnable[i] = false;\n continue;\n }\n\n // Axes labels\n opts.labels[i] = fullLayout._meta ?\n Lib.templateString(axes.title.text, fullLayout._meta) :\n axes.title.text;\n\n if('font' in axes.title) {\n if(axes.title.font.color) opts.labelColor[i] = str2RgbaArray(axes.title.font.color);\n if(axes.title.font.family) opts.labelFont[i] = axes.title.font.family;\n if(axes.title.font.size) opts.labelSize[i] = axes.title.font.size;\n }\n\n // Lines\n if('showline' in axes) opts.lineEnable[i] = axes.showline;\n if('linecolor' in axes) opts.lineColor[i] = str2RgbaArray(axes.linecolor);\n if('linewidth' in axes) opts.lineWidth[i] = axes.linewidth;\n\n if('showgrid' in axes) opts.gridEnable[i] = axes.showgrid;\n if('gridcolor' in axes) opts.gridColor[i] = str2RgbaArray(axes.gridcolor);\n if('gridwidth' in axes) opts.gridWidth[i] = axes.gridwidth;\n\n // Remove zeroline if axis type is log\n // otherwise the zeroline is incorrectly drawn at 1 on log axes\n if(axes.type === 'log') opts.zeroEnable[i] = false;\n else if('zeroline' in axes) opts.zeroEnable[i] = axes.zeroline;\n if('zerolinecolor' in axes) opts.zeroLineColor[i] = str2RgbaArray(axes.zerolinecolor);\n if('zerolinewidth' in axes) opts.zeroLineWidth[i] = axes.zerolinewidth;\n\n // tick lines\n if('ticks' in axes && !!axes.ticks) opts.lineTickEnable[i] = true;\n else opts.lineTickEnable[i] = false;\n\n if('ticklen' in axes) {\n opts.lineTickLength[i] = opts._defaultLineTickLength[i] = axes.ticklen;\n }\n if('tickcolor' in axes) opts.lineTickColor[i] = str2RgbaArray(axes.tickcolor);\n if('tickwidth' in axes) opts.lineTickWidth[i] = axes.tickwidth;\n if('tickangle' in axes) {\n opts.tickAngle[i] = (axes.tickangle === 'auto') ?\n -3600 : // i.e. special number to set auto option\n Math.PI * -axes.tickangle / 180;\n }\n\n // tick labels\n if('showticklabels' in axes) opts.tickEnable[i] = axes.showticklabels;\n if('tickfont' in axes) {\n if(axes.tickfont.color) opts.tickColor[i] = str2RgbaArray(axes.tickfont.color);\n if(axes.tickfont.family) opts.tickFont[i] = axes.tickfont.family;\n if(axes.tickfont.size) opts.tickSize[i] = axes.tickfont.size;\n }\n\n if('mirror' in axes) {\n if(['ticks', 'all', 'allticks'].indexOf(axes.mirror) !== -1) {\n opts.lineTickMirror[i] = true;\n opts.lineMirror[i] = true;\n } else if(axes.mirror === true) {\n opts.lineTickMirror[i] = false;\n opts.lineMirror[i] = true;\n } else {\n opts.lineTickMirror[i] = false;\n opts.lineMirror[i] = false;\n }\n } else opts.lineMirror[i] = false;\n\n // grid background\n if('showbackground' in axes && axes.showbackground !== false) {\n opts.backgroundEnable[i] = true;\n opts.backgroundColor[i] = str2RgbaArray(axes.backgroundcolor);\n } else opts.backgroundEnable[i] = false;\n }\n};\n\n\nfunction createAxesOptions(fullLayout, sceneLayout) {\n var result = new AxesOptions();\n result.merge(fullLayout, sceneLayout);\n return result;\n}\n\nmodule.exports = createAxesOptions;\n\n\n/***/ }),\n\n/***/ \"7797\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n \"use restrict\";\n\nmodule.exports = UnionFind;\n\nfunction UnionFind(count) {\n this.roots = new Array(count);\n this.ranks = new Array(count);\n \n for(var i=0; i ]/) ? '_keybuster_' + Math.random() : '';\n return {\n // keyWithinBlock: /*fromTo[0] + */i, // optimized future version - no busting\n // keyWithinBlock: fromTo[0] + i, // initial always-unoptimized version - janky scrolling with 5+ columns\n keyWithinBlock: i + buster, // current compromise: regular content is very fast; async content is possible\n key: fromTo[0] + i,\n column: d,\n calcdata: d.calcdata,\n page: d.page,\n rowBlocks: d.rowBlocks,\n value: v\n };\n });\n};\n\nfunction rowFromTo(d) {\n var rowBlock = d.rowBlocks[d.page];\n // fixme rowBlock truthiness check is due to ugly hack of placing 2nd panel as d.page = -1\n var rowFrom = rowBlock ? rowBlock.rows[0].rowIndex : 0;\n var rowTo = rowBlock ? rowFrom + rowBlock.rows.length : 0;\n return [rowFrom, rowTo];\n}\n\n\n/***/ }),\n\n/***/ \"7831\":\n/***/ (function(module, exports) {\n\nmodule.exports = function(dtype) {\n switch (dtype) {\n case 'int8':\n return Int8Array\n case 'int16':\n return Int16Array\n case 'int32':\n return Int32Array\n case 'uint8':\n return Uint8Array\n case 'uint16':\n return Uint16Array\n case 'uint32':\n return Uint32Array\n case 'float32':\n return Float32Array\n case 'float64':\n return Float64Array\n case 'array':\n return Array\n case 'uint8_clamped':\n return Uint8ClampedArray\n }\n}\n\n\n/***/ }),\n\n/***/ \"7839\":\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n\n/***/ \"7899\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = affineHull\n\nvar orient = __webpack_require__(\"92ba\")\n\nfunction linearlyIndependent(points, d) {\n var nhull = new Array(d+1)\n for(var i=0; i 0;\n}\n\nmodule.exports = function plot(gd, cdModule, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n var onComplete;\n\n if(hasTransition(transitionOpts)) {\n if(makeOnCompleteCallback) {\n // If it was passed a callback to register completion, make a callback. If\n // this is created, then it must be executed on completion, otherwise the\n // pos-transition redraw will not execute:\n onComplete = makeOnCompleteCallback();\n }\n }\n\n Lib.makeTraceGroups(fullLayout._indicatorlayer, cdModule, 'trace').each(function(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n\n var plotGroup = d3.select(this);\n\n // Elements in trace\n var hasGauge = trace._hasGauge;\n var isAngular = trace._isAngular;\n var isBullet = trace._isBullet;\n\n // Domain size\n var domain = trace.domain;\n var size = {\n w: fullLayout._size.w * (domain.x[1] - domain.x[0]),\n h: fullLayout._size.h * (domain.y[1] - domain.y[0]),\n l: fullLayout._size.l + fullLayout._size.w * domain.x[0],\n r: fullLayout._size.r + fullLayout._size.w * (1 - domain.x[1]),\n t: fullLayout._size.t + fullLayout._size.h * (1 - domain.y[1]),\n b: fullLayout._size.b + fullLayout._size.h * (domain.y[0])\n };\n var centerX = size.l + size.w / 2;\n var centerY = size.t + size.h / 2;\n\n // Angular gauge size\n var radius = Math.min(size.w / 2, size.h); // fill domain\n var innerRadius = cn.innerRadius * radius;\n\n // Position numbers based on mode and set the scaling logic\n var numbersX, numbersY, numbersScaler;\n var numbersAlign = trace.align || 'center';\n\n numbersY = centerY;\n if(!hasGauge) {\n numbersX = size.l + position[numbersAlign] * size.w;\n numbersScaler = function(el) {\n return fitTextInsideBox(el, size.w, size.h);\n };\n } else {\n if(isAngular) {\n numbersX = centerX;\n numbersY = centerY + radius / 2;\n numbersScaler = function(el) {\n return fitTextInsideCircle(el, 0.9 * innerRadius);\n };\n }\n if(isBullet) {\n var padding = cn.bulletPadding;\n var p = (1 - cn.bulletNumberDomainSize) + padding;\n numbersX = size.l + (p + (1 - p) * position[numbersAlign]) * size.w;\n numbersScaler = function(el) {\n return fitTextInsideBox(el, (cn.bulletNumberDomainSize - padding) * size.w, size.h);\n };\n }\n }\n\n // Draw numbers\n drawNumbers(gd, plotGroup, cd, {\n numbersX: numbersX,\n numbersY: numbersY,\n numbersScaler: numbersScaler,\n transitionOpts: transitionOpts,\n onComplete: onComplete\n });\n\n // Reexpress our gauge background attributes for drawing\n var gaugeBg, gaugeOutline;\n if(hasGauge) {\n gaugeBg = {\n range: trace.gauge.axis.range,\n color: trace.gauge.bgcolor,\n line: {\n color: trace.gauge.bordercolor,\n width: 0\n },\n thickness: 1\n };\n\n gaugeOutline = {\n range: trace.gauge.axis.range,\n color: 'rgba(0, 0, 0, 0)',\n line: {\n color: trace.gauge.bordercolor,\n width: trace.gauge.borderwidth\n },\n thickness: 1\n };\n }\n\n // Prepare angular gauge layers\n var angularGauge = plotGroup.selectAll('g.angular').data(isAngular ? cd : []);\n angularGauge.exit().remove();\n var angularaxisLayer = plotGroup.selectAll('g.angularaxis').data(isAngular ? cd : []);\n angularaxisLayer.exit().remove();\n\n if(isAngular) {\n drawAngularGauge(gd, plotGroup, cd, {\n radius: radius,\n innerRadius: innerRadius,\n\n gauge: angularGauge,\n layer: angularaxisLayer,\n size: size,\n gaugeBg: gaugeBg,\n gaugeOutline: gaugeOutline,\n transitionOpts: transitionOpts,\n onComplete: onComplete\n });\n }\n\n // Prepare bullet layers\n var bulletGauge = plotGroup.selectAll('g.bullet').data(isBullet ? cd : []);\n bulletGauge.exit().remove();\n var bulletaxisLayer = plotGroup.selectAll('g.bulletaxis').data(isBullet ? cd : []);\n bulletaxisLayer.exit().remove();\n\n if(isBullet) {\n drawBulletGauge(gd, plotGroup, cd, {\n gauge: bulletGauge,\n layer: bulletaxisLayer,\n size: size,\n gaugeBg: gaugeBg,\n gaugeOutline: gaugeOutline,\n transitionOpts: transitionOpts,\n onComplete: onComplete\n });\n }\n\n // title\n var title = plotGroup.selectAll('text.title').data(cd);\n title.exit().remove();\n title.enter().append('text').classed('title', true);\n title\n .attr('text-anchor', function() {\n return isBullet ? anchor.right : anchor[trace.title.align];\n })\n .text(trace.title.text)\n .call(Drawing.font, trace.title.font)\n .call(svgTextUtils.convertToTspans, gd);\n\n // Position title\n title.attr('transform', function() {\n var titleX = size.l + size.w * position[trace.title.align];\n var titleY;\n var titlePadding = cn.titlePadding;\n var titlebBox = Drawing.bBox(title.node());\n if(hasGauge) {\n if(isAngular) {\n // position above axis ticks/labels\n if(trace.gauge.axis.visible) {\n var bBox = Drawing.bBox(angularaxisLayer.node());\n titleY = (bBox.top - titlePadding) - titlebBox.bottom;\n } else {\n titleY = size.t + size.h / 2 - radius / 2 - titlebBox.bottom - titlePadding;\n }\n }\n if(isBullet) {\n // position outside domain\n titleY = numbersY - (titlebBox.top + titlebBox.bottom) / 2;\n titleX = size.l - cn.bulletPadding * size.w; // Outside domain, on the left\n }\n } else {\n // position above numbers\n titleY = (trace._numbersTop - titlePadding) - titlebBox.bottom;\n }\n return strTranslate(titleX, titleY);\n });\n });\n};\n\nfunction drawBulletGauge(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n\n var bullet = opts.gauge;\n var axisLayer = opts.layer;\n var gaugeBg = opts.gaugeBg;\n var gaugeOutline = opts.gaugeOutline;\n var size = opts.size;\n var domain = trace.domain;\n\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n\n // preparing axis\n var ax, vals, transFn, tickSign, shift;\n\n // Enter bullet, axis\n bullet.enter().append('g').classed('bullet', true);\n bullet.attr('transform', 'translate(' + size.l + ', ' + size.t + ')');\n\n axisLayer.enter().append('g')\n .classed('bulletaxis', true)\n .classed('crisp', true);\n axisLayer.selectAll('g.' + 'xbulletaxis' + 'tick,path,text').remove();\n\n // Draw bullet\n var bulletHeight = size.h; // use all vertical domain\n var innerBulletHeight = trace.gauge.bar.thickness * bulletHeight;\n var bulletLeft = domain.x[0];\n var bulletRight = domain.x[0] + (domain.x[1] - domain.x[0]) * ((trace._hasNumber || trace._hasDelta) ? (1 - cn.bulletNumberDomainSize) : 1);\n\n ax = mockAxis(gd, trace.gauge.axis);\n ax._id = 'xbulletaxis';\n ax.domain = [bulletLeft, bulletRight];\n ax.setScale();\n\n vals = Axes.calcTicks(ax);\n transFn = Axes.makeTransFn(ax);\n tickSign = Axes.getTickSigns(ax)[2];\n\n shift = size.t + size.h;\n if(ax.visible) {\n Axes.drawTicks(gd, ax, {\n vals: ax.ticks === 'inside' ? Axes.clipEnds(ax, vals) : vals,\n layer: axisLayer,\n path: Axes.makeTickPath(ax, shift, tickSign),\n transFn: transFn\n });\n\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: axisLayer,\n transFn: transFn,\n labelFns: Axes.makeLabelFns(ax, shift)\n });\n }\n\n function drawRect(s) {\n s\n .attr('width', function(d) { return Math.max(0, ax.c2p(d.range[1]) - ax.c2p(d.range[0]));})\n .attr('x', function(d) { return ax.c2p(d.range[0]);})\n .attr('y', function(d) { return 0.5 * (1 - d.thickness) * bulletHeight;})\n .attr('height', function(d) { return d.thickness * bulletHeight; });\n }\n\n // Draw bullet background, steps\n var boxes = [gaugeBg].concat(trace.gauge.steps);\n var bgBullet = bullet.selectAll('g.bg-bullet').data(boxes);\n bgBullet.enter().append('g').classed('bg-bullet', true).append('rect');\n bgBullet.select('rect')\n .call(drawRect)\n .call(styleShape);\n bgBullet.exit().remove();\n\n // Draw value bar with transitions\n var fgBullet = bullet.selectAll('g.value-bullet').data([trace.gauge.bar]);\n fgBullet.enter().append('g').classed('value-bullet', true).append('rect');\n fgBullet.select('rect')\n .attr('height', innerBulletHeight)\n .attr('y', (bulletHeight - innerBulletHeight) / 2)\n .call(styleShape);\n if(hasTransition(transitionOpts)) {\n fgBullet.select('rect')\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing)\n .each('end', function() { onComplete && onComplete(); })\n .each('interrupt', function() { onComplete && onComplete(); })\n .attr('width', Math.max(0, ax.c2p(Math.min(trace.gauge.axis.range[1], cd[0].y))));\n } else {\n fgBullet.select('rect')\n .attr('width', typeof cd[0].y === 'number' ?\n Math.max(0, ax.c2p(Math.min(trace.gauge.axis.range[1], cd[0].y))) :\n 0);\n }\n fgBullet.exit().remove();\n\n var data = cd.filter(function() {return trace.gauge.threshold.value;});\n var threshold = bullet.selectAll('g.threshold-bullet').data(data);\n threshold.enter().append('g').classed('threshold-bullet', true).append('line');\n threshold.select('line')\n .attr('x1', ax.c2p(trace.gauge.threshold.value))\n .attr('x2', ax.c2p(trace.gauge.threshold.value))\n .attr('y1', (1 - trace.gauge.threshold.thickness) / 2 * bulletHeight)\n .attr('y2', (1 - (1 - trace.gauge.threshold.thickness) / 2) * bulletHeight)\n .call(Color.stroke, trace.gauge.threshold.line.color)\n .style('stroke-width', trace.gauge.threshold.line.width);\n threshold.exit().remove();\n\n var bulletOutline = bullet.selectAll('g.gauge-outline').data([gaugeOutline]);\n bulletOutline.enter().append('g').classed('gauge-outline', true).append('rect');\n bulletOutline.select('rect')\n .call(drawRect)\n .call(styleShape);\n bulletOutline.exit().remove();\n}\n\nfunction drawAngularGauge(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n\n var size = opts.size;\n var radius = opts.radius;\n var innerRadius = opts.innerRadius;\n var gaugeBg = opts.gaugeBg;\n var gaugeOutline = opts.gaugeOutline;\n var gaugePosition = [size.l + size.w / 2, size.t + size.h / 2 + radius / 2];\n var gauge = opts.gauge;\n var axisLayer = opts.layer;\n\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n\n // circular gauge\n var theta = Math.PI / 2;\n function valueToAngle(v) {\n var min = trace.gauge.axis.range[0];\n var max = trace.gauge.axis.range[1];\n var angle = (v - min) / (max - min) * Math.PI - theta;\n if(angle < -theta) return -theta;\n if(angle > theta) return theta;\n return angle;\n }\n\n function arcPathGenerator(size) {\n return d3.svg.arc()\n .innerRadius((innerRadius + radius) / 2 - size / 2 * (radius - innerRadius))\n .outerRadius((innerRadius + radius) / 2 + size / 2 * (radius - innerRadius))\n .startAngle(-theta);\n }\n\n function drawArc(p) {\n p\n .attr('d', function(d) {\n return arcPathGenerator(d.thickness)\n .startAngle(valueToAngle(d.range[0]))\n .endAngle(valueToAngle(d.range[1]))();\n });\n }\n\n // preparing axis\n var ax, vals, transFn, tickSign;\n\n // Enter gauge and axis\n gauge.enter().append('g').classed('angular', true);\n gauge.attr('transform', strTranslate(gaugePosition[0], gaugePosition[1]));\n\n axisLayer.enter().append('g')\n .classed('angularaxis', true)\n .classed('crisp', true);\n axisLayer.selectAll('g.' + 'xangularaxis' + 'tick,path,text').remove();\n\n ax = mockAxis(gd, trace.gauge.axis);\n ax.type = 'linear';\n ax.range = trace.gauge.axis.range;\n ax._id = 'xangularaxis'; // or 'y', but I don't think this makes a difference here\n ax.setScale();\n\n // 't'ick to 'g'eometric radians is used all over the place here\n var t2g = function(d) {\n return (ax.range[0] - d.x) / (ax.range[1] - ax.range[0]) * Math.PI + Math.PI;\n };\n\n var labelFns = {};\n var out = Axes.makeLabelFns(ax, 0);\n var labelStandoff = out.labelStandoff;\n labelFns.xFn = function(d) {\n var rad = t2g(d);\n return Math.cos(rad) * labelStandoff;\n };\n labelFns.yFn = function(d) {\n var rad = t2g(d);\n var ff = Math.sin(rad) > 0 ? 0.2 : 1;\n return -Math.sin(rad) * (labelStandoff + d.fontSize * ff) +\n Math.abs(Math.cos(rad)) * (d.fontSize * MID_SHIFT);\n };\n labelFns.anchorFn = function(d) {\n var rad = t2g(d);\n var cos = Math.cos(rad);\n return Math.abs(cos) < 0.1 ?\n 'middle' :\n (cos > 0 ? 'start' : 'end');\n };\n labelFns.heightFn = function(d, a, h) {\n var rad = t2g(d);\n return -0.5 * (1 + Math.sin(rad)) * h;\n };\n var _transFn = function(rad) {\n return strTranslate(\n gaugePosition[0] + radius * Math.cos(rad),\n gaugePosition[1] - radius * Math.sin(rad)\n );\n };\n transFn = function(d) {\n return _transFn(t2g(d));\n };\n var transFn2 = function(d) {\n var rad = t2g(d);\n return _transFn(rad) + 'rotate(' + -rad2deg(rad) + ')';\n };\n vals = Axes.calcTicks(ax);\n tickSign = Axes.getTickSigns(ax)[2];\n if(ax.visible) {\n tickSign = ax.ticks === 'inside' ? -1 : 1;\n var pad = (ax.linewidth || 1) / 2;\n Axes.drawTicks(gd, ax, {\n vals: vals,\n layer: axisLayer,\n path: 'M' + (tickSign * pad) + ',0h' + (tickSign * ax.ticklen),\n transFn: transFn2\n });\n Axes.drawLabels(gd, ax, {\n vals: vals,\n layer: axisLayer,\n transFn: transFn,\n labelFns: labelFns\n });\n }\n\n // Draw background + steps\n var arcs = [gaugeBg].concat(trace.gauge.steps);\n var bgArc = gauge.selectAll('g.bg-arc').data(arcs);\n bgArc.enter().append('g').classed('bg-arc', true).append('path');\n bgArc.select('path').call(drawArc).call(styleShape);\n bgArc.exit().remove();\n\n // Draw foreground with transition\n var valueArcPathGenerator = arcPathGenerator(trace.gauge.bar.thickness);\n var valueArc = gauge.selectAll('g.value-arc').data([trace.gauge.bar]);\n valueArc.enter().append('g').classed('value-arc', true).append('path');\n var valueArcPath = valueArc.select('path');\n if(hasTransition(transitionOpts)) {\n valueArcPath\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing)\n .each('end', function() { onComplete && onComplete(); })\n .each('interrupt', function() { onComplete && onComplete(); })\n .attrTween('d', arcTween(valueArcPathGenerator, valueToAngle(cd[0].lastY), valueToAngle(cd[0].y)));\n trace._lastValue = cd[0].y;\n } else {\n valueArcPath.attr('d', typeof cd[0].y === 'number' ?\n valueArcPathGenerator.endAngle(valueToAngle(cd[0].y)) :\n 'M0,0Z');\n }\n valueArcPath.call(styleShape);\n valueArc.exit().remove();\n\n // Draw threshold\n arcs = [];\n var v = trace.gauge.threshold.value;\n if(v) {\n arcs.push({\n range: [v, v],\n color: trace.gauge.threshold.color,\n line: {\n color: trace.gauge.threshold.line.color,\n width: trace.gauge.threshold.line.width\n },\n thickness: trace.gauge.threshold.thickness\n });\n }\n var thresholdArc = gauge.selectAll('g.threshold-arc').data(arcs);\n thresholdArc.enter().append('g').classed('threshold-arc', true).append('path');\n thresholdArc.select('path').call(drawArc).call(styleShape);\n thresholdArc.exit().remove();\n\n // Draw border last\n var gaugeBorder = gauge.selectAll('g.gauge-outline').data([gaugeOutline]);\n gaugeBorder.enter().append('g').classed('gauge-outline', true).append('path');\n gaugeBorder.select('path').call(drawArc).call(styleShape);\n gaugeBorder.exit().remove();\n}\n\nfunction drawNumbers(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n\n var numbersX = opts.numbersX;\n var numbersY = opts.numbersY;\n var numbersAlign = trace.align || 'center';\n var numbersAnchor = anchor[numbersAlign];\n\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n\n var numbers = Lib.ensureSingle(plotGroup, 'g', 'numbers');\n var bignumberbBox, deltabBox;\n var numbersbBox;\n\n var data = [];\n if(trace._hasNumber) data.push('number');\n if(trace._hasDelta) {\n data.push('delta');\n if(trace.delta.position === 'left') data.reverse();\n }\n var sel = numbers.selectAll('text').data(data);\n sel.enter().append('text');\n sel\n .attr('text-anchor', function() {return numbersAnchor;})\n .attr('class', function(d) { return d;})\n .attr('x', null)\n .attr('y', null)\n .attr('dx', null)\n .attr('dy', null);\n sel.exit().remove();\n\n // Function to override the number formatting used during transitions\n function transitionFormat(valueformat, fmt, from, to) {\n // For now, do not display SI prefix if start and end value do not have any\n if(valueformat.match('s') && // If using SI prefix\n (from >= 0 !== to >= 0) && // If sign change\n (!fmt(from).slice(-1).match(SI_PREFIX) && !fmt(to).slice(-1).match(SI_PREFIX)) // Has no SI prefix\n ) {\n var transitionValueFormat = valueformat.slice().replace('s', 'f').replace(/\\d+/, function(m) { return parseInt(m) - 1;});\n var transitionAx = mockAxis(gd, {tickformat: transitionValueFormat});\n return function(v) {\n // Switch to fixed precision if number is smaller than one\n if(Math.abs(v) < 1) return Axes.tickText(transitionAx, v).text;\n return fmt(v);\n };\n } else {\n return fmt;\n }\n }\n\n function drawBignumber() {\n var bignumberAx = mockAxis(gd, {tickformat: trace.number.valueformat}, trace._range);\n bignumberAx.setScale();\n Axes.prepTicks(bignumberAx);\n\n var fmt = function(v) { return Axes.tickText(bignumberAx, v).text;};\n var bignumberSuffix = trace.number.suffix;\n var bignumberPrefix = trace.number.prefix;\n\n var number = numbers.select('text.number');\n\n function writeNumber() {\n var txt = typeof cd[0].y === 'number' ?\n bignumberPrefix + fmt(cd[0].y) + bignumberSuffix :\n '-';\n number.text(txt)\n .call(Drawing.font, trace.number.font)\n .call(svgTextUtils.convertToTspans, gd);\n }\n\n if(hasTransition(transitionOpts)) {\n number\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing)\n .each('end', function() { writeNumber(); onComplete && onComplete(); })\n .each('interrupt', function() { writeNumber(); onComplete && onComplete(); })\n .attrTween('text', function() {\n var that = d3.select(this);\n var interpolator = d3.interpolateNumber(cd[0].lastY, cd[0].y);\n trace._lastValue = cd[0].y;\n\n var transitionFmt = transitionFormat(trace.number.valueformat, fmt, cd[0].lastY, cd[0].y);\n return function(t) {\n that.text(bignumberPrefix + transitionFmt(interpolator(t)) + bignumberSuffix);\n };\n });\n } else {\n writeNumber();\n }\n\n bignumberbBox = measureText(bignumberPrefix + fmt(cd[0].y) + bignumberSuffix, trace.number.font, numbersAnchor, gd);\n return number;\n }\n\n function drawDelta() {\n var deltaAx = mockAxis(gd, {tickformat: trace.delta.valueformat}, trace._range);\n deltaAx.setScale();\n Axes.prepTicks(deltaAx);\n\n var deltaFmt = function(v) { return Axes.tickText(deltaAx, v).text;};\n var deltaValue = function(d) {\n var value = trace.delta.relative ? d.relativeDelta : d.delta;\n return value;\n };\n var deltaFormatText = function(value, numberFmt) {\n if(value === 0 || typeof value !== 'number' || isNaN(value)) return '-';\n return (value > 0 ? trace.delta.increasing.symbol : trace.delta.decreasing.symbol) + numberFmt(value);\n };\n var deltaFill = function(d) {\n return d.delta >= 0 ? trace.delta.increasing.color : trace.delta.decreasing.color;\n };\n if(trace._deltaLastValue === undefined) {\n trace._deltaLastValue = deltaValue(cd[0]);\n }\n var delta = numbers.select('text.delta');\n delta\n .call(Drawing.font, trace.delta.font)\n .call(Color.fill, deltaFill({delta: trace._deltaLastValue}));\n\n function writeDelta() {\n delta.text(deltaFormatText(deltaValue(cd[0]), deltaFmt))\n .call(Color.fill, deltaFill(cd[0]))\n .call(svgTextUtils.convertToTspans, gd);\n }\n\n if(hasTransition(transitionOpts)) {\n delta\n .transition()\n .duration(transitionOpts.duration)\n .ease(transitionOpts.easing)\n .tween('text', function() {\n var that = d3.select(this);\n var to = deltaValue(cd[0]);\n var from = trace._deltaLastValue;\n var transitionFmt = transitionFormat(trace.delta.valueformat, deltaFmt, from, to);\n var interpolator = d3.interpolateNumber(from, to);\n trace._deltaLastValue = to;\n return function(t) {\n that.text(deltaFormatText(interpolator(t), transitionFmt));\n that.call(Color.fill, deltaFill({delta: interpolator(t)}));\n };\n })\n .each('end', function() { writeDelta(); onComplete && onComplete(); })\n .each('interrupt', function() { writeDelta(); onComplete && onComplete(); });\n } else {\n writeDelta();\n }\n\n deltabBox = measureText(deltaFormatText(deltaValue(cd[0]), deltaFmt), trace.delta.font, numbersAnchor, gd);\n return delta;\n }\n\n var key = trace.mode + trace.align;\n var delta;\n if(trace._hasDelta) {\n delta = drawDelta();\n key += trace.delta.position + trace.delta.font.size + trace.delta.font.family + trace.delta.valueformat;\n key += trace.delta.increasing.symbol + trace.delta.decreasing.symbol;\n numbersbBox = deltabBox;\n }\n if(trace._hasNumber) {\n drawBignumber();\n key += trace.number.font.size + trace.number.font.family + trace.number.valueformat + trace.number.suffix + trace.number.prefix;\n numbersbBox = bignumberbBox;\n }\n\n // Position delta relative to bignumber\n if(trace._hasDelta && trace._hasNumber) {\n var bignumberCenter = [\n (bignumberbBox.left + bignumberbBox.right) / 2,\n (bignumberbBox.top + bignumberbBox.bottom) / 2\n ];\n var deltaCenter = [\n (deltabBox.left + deltabBox.right) / 2,\n (deltabBox.top + deltabBox.bottom) / 2\n ];\n\n var dx, dy;\n var padding = 0.75 * trace.delta.font.size;\n if(trace.delta.position === 'left') {\n dx = cache(trace, 'deltaPos', 0, -1 * (bignumberbBox.width * (position[trace.align]) + deltabBox.width * (1 - position[trace.align]) + padding), key, Math.min);\n dy = bignumberCenter[1] - deltaCenter[1];\n\n numbersbBox = {\n width: bignumberbBox.width + deltabBox.width + padding,\n height: Math.max(bignumberbBox.height, deltabBox.height),\n left: deltabBox.left + dx,\n right: bignumberbBox.right,\n top: Math.min(bignumberbBox.top, deltabBox.top + dy),\n bottom: Math.max(bignumberbBox.bottom, deltabBox.bottom + dy)\n };\n }\n if(trace.delta.position === 'right') {\n dx = cache(trace, 'deltaPos', 0, bignumberbBox.width * (1 - position[trace.align]) + deltabBox.width * position[trace.align] + padding, key, Math.max);\n dy = bignumberCenter[1] - deltaCenter[1];\n\n numbersbBox = {\n width: bignumberbBox.width + deltabBox.width + padding,\n height: Math.max(bignumberbBox.height, deltabBox.height),\n left: bignumberbBox.left,\n right: deltabBox.right + dx,\n top: Math.min(bignumberbBox.top, deltabBox.top + dy),\n bottom: Math.max(bignumberbBox.bottom, deltabBox.bottom + dy)\n };\n }\n if(trace.delta.position === 'bottom') {\n dx = null;\n dy = deltabBox.height;\n\n numbersbBox = {\n width: Math.max(bignumberbBox.width, deltabBox.width),\n height: bignumberbBox.height + deltabBox.height,\n left: Math.min(bignumberbBox.left, deltabBox.left),\n right: Math.max(bignumberbBox.right, deltabBox.right),\n top: bignumberbBox.bottom - bignumberbBox.height,\n bottom: bignumberbBox.bottom + deltabBox.height\n };\n }\n if(trace.delta.position === 'top') {\n dx = null;\n dy = bignumberbBox.top;\n\n numbersbBox = {\n width: Math.max(bignumberbBox.width, deltabBox.width),\n height: bignumberbBox.height + deltabBox.height,\n left: Math.min(bignumberbBox.left, deltabBox.left),\n right: Math.max(bignumberbBox.right, deltabBox.right),\n top: bignumberbBox.bottom - bignumberbBox.height - deltabBox.height,\n bottom: bignumberbBox.bottom\n };\n }\n\n delta.attr({dx: dx, dy: dy});\n }\n\n // Resize numbers to fit within space and position\n if(trace._hasNumber || trace._hasDelta) {\n numbers.attr('transform', function() {\n var m = opts.numbersScaler(numbersbBox);\n key += m[2];\n var scaleRatio = cache(trace, 'numbersScale', 1, m[0], key, Math.min);\n var translateY;\n if(!trace._scaleNumbers) scaleRatio = 1;\n if(trace._isAngular) {\n // align vertically to bottom\n translateY = numbersY - scaleRatio * numbersbBox.bottom;\n } else {\n // align vertically to center\n translateY = numbersY - scaleRatio * (numbersbBox.top + numbersbBox.bottom) / 2;\n }\n\n // Stash the top position of numbersbBox for title positioning\n trace._numbersTop = scaleRatio * (numbersbBox.top) + translateY;\n\n var ref = numbersbBox[numbersAlign];\n if(numbersAlign === 'center') ref = (numbersbBox.left + numbersbBox.right) / 2;\n var translateX = numbersX - scaleRatio * ref;\n\n // Stash translateX\n translateX = cache(trace, 'numbersTranslate', 0, translateX, key, Math.max);\n return strTranslate(translateX, translateY) + ' scale(' + scaleRatio + ')';\n });\n }\n}\n\n// Apply fill, stroke, stroke-width to SVG shape\nfunction styleShape(p) {\n p\n .each(function(d) { Color.stroke(d3.select(this), d.line.color);})\n .each(function(d) { Color.fill(d3.select(this), d.color);})\n .style('stroke-width', function(d) { return d.line.width;});\n}\n\n// Returns a tween for a transition’s \"d\" attribute, transitioning any selected\n// arcs from their current angle to the specified new angle.\nfunction arcTween(arc, endAngle, newAngle) {\n return function() {\n var interpolate = d3.interpolate(endAngle, newAngle);\n return function(t) {\n return arc.endAngle(interpolate(t))();\n };\n };\n}\n\n// mocks our axis\nfunction mockAxis(gd, opts, zrange) {\n var fullLayout = gd._fullLayout;\n\n var axisIn = Lib.extendFlat({\n type: 'linear',\n ticks: 'outside',\n range: zrange,\n showline: true\n }, opts);\n\n var axisOut = {\n type: 'linear',\n _id: 'x' + opts._id\n };\n\n var axisOptions = {\n letter: 'x',\n font: fullLayout.font,\n noHover: true,\n noTickson: true\n };\n\n function coerce(attr, dflt) {\n return Lib.coerce(axisIn, axisOut, axisLayoutAttrs, attr, dflt);\n }\n\n handleAxisDefaults(axisIn, axisOut, coerce, axisOptions, fullLayout);\n handleAxisPositionDefaults(axisIn, axisOut, coerce, axisOptions);\n\n return axisOut;\n}\n\nfunction strTranslate(x, y) {\n return 'translate(' + x + ',' + y + ')';\n}\n\nfunction fitTextInsideBox(textBB, width, height) {\n // compute scaling ratio to have text fit within specified width and height\n var ratio = Math.min(width / textBB.width, height / textBB.height);\n return [ratio, textBB, width + 'x' + height];\n}\n\nfunction fitTextInsideCircle(textBB, radius) {\n // compute scaling ratio to have text fit within specified radius\n var elRadius = Math.sqrt((textBB.width / 2) * (textBB.width / 2) + textBB.height * textBB.height);\n var ratio = radius / elRadius;\n return [ratio, textBB, radius];\n}\n\nfunction measureText(txt, font, textAnchor, gd) {\n var element = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n var sel = d3.select(element);\n sel.text(txt)\n .attr('x', 0)\n .attr('y', 0)\n .attr('text-anchor', textAnchor)\n .attr('data-unformatted', txt)\n .call(svgTextUtils.convertToTspans, gd)\n .call(Drawing.font, font);\n return Drawing.bBox(sel.node());\n}\n\nfunction cache(trace, name, initialValue, value, key, fn) {\n var objName = '_cache' + name;\n if(!(trace[objName] && trace[objName].key === key)) {\n trace[objName] = {key: key, value: initialValue};\n }\n var v = Lib.aggNums(fn, null, [trace[objName].value, value], 2);\n trace[objName].value = v;\n\n return v;\n}\n\n\n/***/ }),\n\n/***/ \"792f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar scatterPolarAttrs = __webpack_require__(\"8a6e\");\nvar barAttrs = __webpack_require__(\"fb5a\");\n\nmodule.exports = {\n r: scatterPolarAttrs.r,\n theta: scatterPolarAttrs.theta,\n r0: scatterPolarAttrs.r0,\n dr: scatterPolarAttrs.dr,\n theta0: scatterPolarAttrs.theta0,\n dtheta: scatterPolarAttrs.dtheta,\n thetaunit: scatterPolarAttrs.thetaunit,\n\n // orientation: {\n // valType: 'enumerated',\n // \n // values: ['radial', 'angular'],\n // editType: 'calc+clearAxisTypes',\n // \n // },\n\n base: extendFlat({}, barAttrs.base, {\n \n }),\n offset: extendFlat({}, barAttrs.offset, {\n \n }),\n width: extendFlat({}, barAttrs.width, {\n \n }),\n\n text: extendFlat({}, barAttrs.text, {\n \n }),\n hovertext: extendFlat({}, barAttrs.hovertext, {\n \n }),\n\n // textposition: {},\n // textfont: {},\n // insidetextfont: {},\n // outsidetextfont: {},\n // constraintext: {},\n // cliponaxis: extendFlat({}, barAttrs.cliponaxis, {dflt: false}),\n\n marker: barAttrs.marker,\n\n hoverinfo: scatterPolarAttrs.hoverinfo,\n hovertemplate: hovertemplateAttrs(),\n\n selected: barAttrs.selected,\n unselected: barAttrs.unselected\n\n // error_x (error_r, error_theta)\n // error_y\n};\n\n\n/***/ }),\n\n/***/ \"794e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createBuffer = __webpack_require__(\"efce\")\nvar createVAO = __webpack_require__(\"b205\")\nvar createShader = __webpack_require__(\"e4eb\")\n\nmodule.exports = createSpikes\n\nvar identity = [1,0,0,0,\n 0,1,0,0,\n 0,0,1,0,\n 0,0,0,1]\n\nfunction AxisSpikes(gl, buffer, vao, shader) {\n this.gl = gl\n this.buffer = buffer\n this.vao = vao\n this.shader = shader\n this.pixelRatio = 1\n this.bounds = [[-1000,-1000,-1000], [1000,1000,1000]]\n this.position = [0,0,0]\n this.lineWidth = [2,2,2]\n this.colors = [[0,0,0,1], [0,0,0,1], [0,0,0,1]]\n this.enabled = [true,true,true]\n this.drawSides = [true,true,true]\n this.axes = null\n}\n\nvar proto = AxisSpikes.prototype\n\nvar OUTER_FACE = [0,0,0]\nvar INNER_FACE = [0,0,0]\n\nvar SHAPE = [0,0]\n\nproto.isTransparent = function() {\n return false\n}\n\nproto.drawTransparent = function(camera) {}\n\nproto.draw = function(camera) {\n var gl = this.gl\n var vao = this.vao\n var shader = this.shader\n\n vao.bind()\n shader.bind()\n\n var model = camera.model || identity\n var view = camera.view || identity\n var projection = camera.projection || identity\n\n var axis\n if(this.axes) {\n axis = this.axes.lastCubeProps.axis\n }\n\n var outerFace = OUTER_FACE\n var innerFace = INNER_FACE\n for(var i=0; i<3; ++i) {\n if(axis && axis[i] < 0) {\n outerFace[i] = this.bounds[0][i]\n innerFace[i] = this.bounds[1][i]\n } else {\n outerFace[i] = this.bounds[1][i]\n innerFace[i] = this.bounds[0][i]\n }\n }\n\n SHAPE[0] = gl.drawingBufferWidth\n SHAPE[1] = gl.drawingBufferHeight\n\n shader.uniforms.model = model\n shader.uniforms.view = view\n shader.uniforms.projection = projection\n shader.uniforms.coordinates = [this.position, outerFace, innerFace]\n shader.uniforms.colors = this.colors\n shader.uniforms.screenShape = SHAPE\n\n for(var i=0; i<3; ++i) {\n shader.uniforms.lineWidth = this.lineWidth[i] * this.pixelRatio\n if(this.enabled[i]) {\n vao.draw(gl.TRIANGLES, 6, 6*i)\n if(this.drawSides[i]) {\n vao.draw(gl.TRIANGLES, 12, 18+12*i)\n }\n }\n }\n\n vao.unbind()\n}\n\nproto.update = function(options) {\n if(!options) {\n return\n }\n if(\"bounds\" in options) {\n this.bounds = options.bounds\n }\n if(\"position\" in options) {\n this.position = options.position\n }\n if(\"lineWidth\" in options) {\n this.lineWidth = options.lineWidth\n }\n if(\"colors\" in options) {\n this.colors = options.colors\n }\n if(\"enabled\" in options) {\n this.enabled = options.enabled\n }\n if(\"drawSides\" in options) {\n this.drawSides = options.drawSides\n }\n}\n\nproto.dispose = function() {\n this.vao.dispose()\n this.buffer.dispose()\n this.shader.dispose()\n}\n\n\n\nfunction createSpikes(gl, options) {\n //Create buffers\n var data = [ ]\n\n function line(x,y,z,i,l,h) {\n var row = [x,y,z, 0,0,0, 1]\n row[i+3] = 1\n row[i] = l\n data.push.apply(data, row)\n row[6] = -1\n data.push.apply(data, row)\n row[i] = h\n data.push.apply(data, row)\n data.push.apply(data, row)\n row[6] = 1\n data.push.apply(data, row)\n row[i] = l\n data.push.apply(data, row)\n }\n\n line(0,0,0, 0, 0, 1)\n line(0,0,0, 1, 0, 1)\n line(0,0,0, 2, 0, 1)\n\n line(1,0,0, 1, -1,1)\n line(1,0,0, 2, -1,1)\n\n line(0,1,0, 0, -1,1)\n line(0,1,0, 2, -1,1)\n\n line(0,0,1, 0, -1,1)\n line(0,0,1, 1, -1,1)\n\n var buffer = createBuffer(gl, data)\n var vao = createVAO(gl, [{\n type: gl.FLOAT,\n buffer: buffer,\n size: 3,\n offset: 0,\n stride: 28\n }, {\n type: gl.FLOAT,\n buffer: buffer,\n size: 3,\n offset: 12,\n stride: 28\n }, {\n type: gl.FLOAT,\n buffer: buffer,\n size: 1,\n offset: 24,\n stride: 28\n }])\n\n //Create shader\n var shader = createShader(gl)\n shader.attributes.position.location = 0\n shader.attributes.color.location = 1\n shader.attributes.weight.location = 2\n\n //Create spike object\n var spikes = new AxisSpikes(gl, buffer, vao, shader)\n\n //Set parameters\n spikes.update(options)\n\n //Return resulting object\n return spikes\n}\n\n\n/***/ }),\n\n/***/ \"7974\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar counterRegex = __webpack_require__(\"055a\").counter;\nvar domainAttrs = __webpack_require__(\"81f0\").attributes;\nvar cartesianIdRegex = __webpack_require__(\"d301\").idRegex;\nvar Template = __webpack_require__(\"a651\");\n\nvar gridAttrs = {\n rows: {\n valType: 'integer',\n min: 1,\n \n editType: 'plot',\n \n },\n roworder: {\n valType: 'enumerated',\n values: ['top to bottom', 'bottom to top'],\n dflt: 'top to bottom',\n \n editType: 'plot',\n \n },\n columns: {\n valType: 'integer',\n min: 1,\n \n editType: 'plot',\n \n },\n subplots: {\n valType: 'info_array',\n freeLength: true,\n dimensions: 2,\n items: {valType: 'enumerated', values: [counterRegex('xy').toString(), ''], editType: 'plot'},\n \n editType: 'plot',\n \n },\n xaxes: {\n valType: 'info_array',\n freeLength: true,\n items: {valType: 'enumerated', values: [cartesianIdRegex.x.toString(), ''], editType: 'plot'},\n \n editType: 'plot',\n \n },\n yaxes: {\n valType: 'info_array',\n freeLength: true,\n items: {valType: 'enumerated', values: [cartesianIdRegex.y.toString(), ''], editType: 'plot'},\n \n editType: 'plot',\n \n },\n pattern: {\n valType: 'enumerated',\n values: ['independent', 'coupled'],\n dflt: 'coupled',\n \n editType: 'plot',\n \n },\n xgap: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'plot',\n \n },\n ygap: {\n valType: 'number',\n min: 0,\n max: 1,\n \n editType: 'plot',\n \n },\n domain: domainAttrs({name: 'grid', editType: 'plot', noGridCell: true}, {\n \n }),\n xside: {\n valType: 'enumerated',\n values: ['bottom', 'bottom plot', 'top plot', 'top'],\n dflt: 'bottom plot',\n \n editType: 'plot',\n \n },\n yside: {\n valType: 'enumerated',\n values: ['left', 'left plot', 'right plot', 'right'],\n dflt: 'left plot',\n \n editType: 'plot',\n \n },\n editType: 'plot'\n};\n\nfunction getAxes(layout, grid, axLetter) {\n var gridVal = grid[axLetter + 'axes'];\n var splomVal = Object.keys((layout._splomAxes || {})[axLetter] || {});\n\n if(Array.isArray(gridVal)) return gridVal;\n if(splomVal.length) return splomVal;\n}\n\n// the shape of the grid - this needs to be done BEFORE supplyDataDefaults\n// so that non-subplot traces can place themselves in the grid\nfunction sizeDefaults(layoutIn, layoutOut) {\n var gridIn = layoutIn.grid || {};\n var xAxes = getAxes(layoutOut, gridIn, 'x');\n var yAxes = getAxes(layoutOut, gridIn, 'y');\n\n if(!layoutIn.grid && !xAxes && !yAxes) return;\n\n var hasSubplotGrid = Array.isArray(gridIn.subplots) && Array.isArray(gridIn.subplots[0]);\n var hasXaxes = Array.isArray(xAxes);\n var hasYaxes = Array.isArray(yAxes);\n var isSplomGenerated = (\n hasXaxes && xAxes !== gridIn.xaxes &&\n hasYaxes && yAxes !== gridIn.yaxes\n );\n\n var dfltRows, dfltColumns;\n\n if(hasSubplotGrid) {\n dfltRows = gridIn.subplots.length;\n dfltColumns = gridIn.subplots[0].length;\n } else {\n if(hasYaxes) dfltRows = yAxes.length;\n if(hasXaxes) dfltColumns = xAxes.length;\n }\n\n var gridOut = Template.newContainer(layoutOut, 'grid');\n\n function coerce(attr, dflt) {\n return Lib.coerce(gridIn, gridOut, gridAttrs, attr, dflt);\n }\n\n var rows = coerce('rows', dfltRows);\n var columns = coerce('columns', dfltColumns);\n\n if(!(rows * columns > 1)) {\n delete layoutOut.grid;\n return;\n }\n\n if(!hasSubplotGrid && !hasXaxes && !hasYaxes) {\n var useDefaultSubplots = coerce('pattern') === 'independent';\n if(useDefaultSubplots) hasSubplotGrid = true;\n }\n gridOut._hasSubplotGrid = hasSubplotGrid;\n\n var rowOrder = coerce('roworder');\n var reversed = rowOrder === 'top to bottom';\n\n var dfltGapX = hasSubplotGrid ? 0.2 : 0.1;\n var dfltGapY = hasSubplotGrid ? 0.3 : 0.1;\n\n var dfltSideX, dfltSideY;\n if(isSplomGenerated && layoutOut._splomGridDflt) {\n dfltSideX = layoutOut._splomGridDflt.xside;\n dfltSideY = layoutOut._splomGridDflt.yside;\n }\n\n gridOut._domains = {\n x: fillGridPositions('x', coerce, dfltGapX, dfltSideX, columns),\n y: fillGridPositions('y', coerce, dfltGapY, dfltSideY, rows, reversed)\n };\n}\n\n// coerce x or y sizing attributes and return an array of domains for this direction\nfunction fillGridPositions(axLetter, coerce, dfltGap, dfltSide, len, reversed) {\n var dirGap = coerce(axLetter + 'gap', dfltGap);\n var domain = coerce('domain.' + axLetter);\n coerce(axLetter + 'side', dfltSide);\n\n var out = new Array(len);\n var start = domain[0];\n var step = (domain[1] - start) / (len - dirGap);\n var cellDomain = step * (1 - dirGap);\n for(var i = 0; i < len; i++) {\n var cellStart = start + step * i;\n out[reversed ? (len - 1 - i) : i] = [cellStart, cellStart + cellDomain];\n }\n return out;\n}\n\n// the (cartesian) contents of the grid - this needs to happen AFTER supplyDataDefaults\n// so that we know what cartesian subplots are available\nfunction contentDefaults(layoutIn, layoutOut) {\n var gridOut = layoutOut.grid;\n // make sure we got to the end of handleGridSizing\n if(!gridOut || !gridOut._domains) return;\n\n var gridIn = layoutIn.grid || {};\n var subplots = layoutOut._subplots;\n var hasSubplotGrid = gridOut._hasSubplotGrid;\n var rows = gridOut.rows;\n var columns = gridOut.columns;\n var useDefaultSubplots = gridOut.pattern === 'independent';\n\n var i, j, xId, yId, subplotId, subplotsOut, yPos;\n\n var axisMap = gridOut._axisMap = {};\n\n if(hasSubplotGrid) {\n var subplotsIn = gridIn.subplots || [];\n subplotsOut = gridOut.subplots = new Array(rows);\n var index = 1;\n\n for(i = 0; i < rows; i++) {\n var rowOut = subplotsOut[i] = new Array(columns);\n var rowIn = subplotsIn[i] || [];\n for(j = 0; j < columns; j++) {\n if(useDefaultSubplots) {\n subplotId = (index === 1) ? 'xy' : ('x' + index + 'y' + index);\n index++;\n } else subplotId = rowIn[j];\n\n rowOut[j] = '';\n\n if(subplots.cartesian.indexOf(subplotId) !== -1) {\n yPos = subplotId.indexOf('y');\n xId = subplotId.slice(0, yPos);\n yId = subplotId.slice(yPos);\n if((axisMap[xId] !== undefined && axisMap[xId] !== j) ||\n (axisMap[yId] !== undefined && axisMap[yId] !== i)\n ) {\n continue;\n }\n\n rowOut[j] = subplotId;\n axisMap[xId] = j;\n axisMap[yId] = i;\n }\n }\n }\n } else {\n var xAxes = getAxes(layoutOut, gridIn, 'x');\n var yAxes = getAxes(layoutOut, gridIn, 'y');\n gridOut.xaxes = fillGridAxes(xAxes, subplots.xaxis, columns, axisMap, 'x');\n gridOut.yaxes = fillGridAxes(yAxes, subplots.yaxis, rows, axisMap, 'y');\n }\n\n var anchors = gridOut._anchors = {};\n var reversed = gridOut.roworder === 'top to bottom';\n\n for(var axisId in axisMap) {\n var axLetter = axisId.charAt(0);\n var side = gridOut[axLetter + 'side'];\n\n var i0, inc, iFinal;\n\n if(side.length < 8) {\n // grid edge - ie not \"* plot\" - make these as free axes\n // since we're not guaranteed to have a subplot there at all\n anchors[axisId] = 'free';\n } else if(axLetter === 'x') {\n if((side.charAt(0) === 't') === reversed) {\n i0 = 0;\n inc = 1;\n iFinal = rows;\n } else {\n i0 = rows - 1;\n inc = -1;\n iFinal = -1;\n }\n if(hasSubplotGrid) {\n var column = axisMap[axisId];\n for(i = i0; i !== iFinal; i += inc) {\n subplotId = subplotsOut[i][column];\n if(!subplotId) continue;\n yPos = subplotId.indexOf('y');\n if(subplotId.slice(0, yPos) === axisId) {\n anchors[axisId] = subplotId.slice(yPos);\n break;\n }\n }\n } else {\n for(i = i0; i !== iFinal; i += inc) {\n yId = gridOut.yaxes[i];\n if(subplots.cartesian.indexOf(axisId + yId) !== -1) {\n anchors[axisId] = yId;\n break;\n }\n }\n }\n } else {\n if((side.charAt(0) === 'l')) {\n i0 = 0;\n inc = 1;\n iFinal = columns;\n } else {\n i0 = columns - 1;\n inc = -1;\n iFinal = -1;\n }\n if(hasSubplotGrid) {\n var row = axisMap[axisId];\n for(i = i0; i !== iFinal; i += inc) {\n subplotId = subplotsOut[row][i];\n if(!subplotId) continue;\n yPos = subplotId.indexOf('y');\n if(subplotId.slice(yPos) === axisId) {\n anchors[axisId] = subplotId.slice(0, yPos);\n break;\n }\n }\n } else {\n for(i = i0; i !== iFinal; i += inc) {\n xId = gridOut.xaxes[i];\n if(subplots.cartesian.indexOf(xId + axisId) !== -1) {\n anchors[axisId] = xId;\n break;\n }\n }\n }\n }\n }\n}\n\nfunction fillGridAxes(axesIn, axesAllowed, len, axisMap, axLetter) {\n var out = new Array(len);\n var i;\n\n function fillOneAxis(i, axisId) {\n if(axesAllowed.indexOf(axisId) !== -1 && axisMap[axisId] === undefined) {\n out[i] = axisId;\n axisMap[axisId] = i;\n } else out[i] = '';\n }\n\n if(Array.isArray(axesIn)) {\n for(i = 0; i < len; i++) {\n fillOneAxis(i, axesIn[i]);\n }\n } else {\n // default axis list is the first `len` axis ids\n fillOneAxis(0, axLetter);\n for(i = 1; i < len; i++) {\n fillOneAxis(i, axLetter + (i + 1));\n }\n }\n\n return out;\n}\n\nmodule.exports = {\n moduleType: 'component',\n name: 'grid',\n\n schema: {\n layout: {grid: gridAttrs}\n },\n\n layoutAttributes: gridAttrs,\n sizeDefaults: sizeDefaults,\n contentDefaults: contentDefaults\n};\n\n\n/***/ }),\n\n/***/ \"7988\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar parcoords = __webpack_require__(\"baec\");\nvar prepareRegl = __webpack_require__(\"cf42\");\nvar isVisible = __webpack_require__(\"2ee6\").isVisible;\n\nfunction newIndex(visibleIndices, orig, dim) {\n var origIndex = orig.indexOf(dim);\n var currentIndex = visibleIndices.indexOf(origIndex);\n if(currentIndex === -1) {\n // invisible dimensions initially go to the end\n currentIndex += orig.length;\n }\n return currentIndex;\n}\n\nfunction sorter(visibleIndices, orig) {\n return function sorter(d1, d2) {\n return (\n newIndex(visibleIndices, orig, d1) -\n newIndex(visibleIndices, orig, d2)\n );\n };\n}\n\nmodule.exports = function plot(gd, cdModule) {\n var fullLayout = gd._fullLayout;\n\n var success = prepareRegl(gd);\n if(!success) return;\n\n var currentDims = {};\n var initialDims = {};\n var fullIndices = {};\n var inputIndices = {};\n\n var size = fullLayout._size;\n\n cdModule.forEach(function(d, i) {\n var trace = d[0].trace;\n fullIndices[i] = trace.index;\n var iIn = inputIndices[i] = trace._fullInput.index;\n currentDims[i] = gd.data[iIn].dimensions;\n initialDims[i] = gd.data[iIn].dimensions.slice();\n });\n\n var filterChanged = function(i, initialDimIndex, newRanges) {\n // Have updated `constraintrange` data on `gd.data` and raise `Plotly.restyle` event\n // without having to incur heavy UI blocking due to an actual `Plotly.restyle` call\n\n var dim = initialDims[i][initialDimIndex];\n var newConstraints = newRanges.map(function(r) { return r.slice(); });\n\n // Store constraint range in preGUI\n // This one doesn't work if it's stored in pieces in _storeDirectGUIEdit\n // because it's an array of variable dimensionality. So store the whole\n // thing at once manually.\n var aStr = 'dimensions[' + initialDimIndex + '].constraintrange';\n var preGUI = fullLayout._tracePreGUI[gd._fullData[fullIndices[i]]._fullInput.uid];\n if(preGUI[aStr] === undefined) {\n var initialVal = dim.constraintrange;\n preGUI[aStr] = initialVal || null;\n }\n\n var fullDimension = gd._fullData[fullIndices[i]].dimensions[initialDimIndex];\n\n if(!newConstraints.length) {\n delete dim.constraintrange;\n delete fullDimension.constraintrange;\n newConstraints = null;\n } else {\n if(newConstraints.length === 1) newConstraints = newConstraints[0];\n dim.constraintrange = newConstraints;\n fullDimension.constraintrange = newConstraints.slice();\n // wrap in another array for restyle event data\n newConstraints = [newConstraints];\n }\n\n var restyleData = {};\n restyleData[aStr] = newConstraints;\n gd.emit('plotly_restyle', [restyleData, [inputIndices[i]]]);\n };\n\n var hover = function(eventData) {\n gd.emit('plotly_hover', eventData);\n };\n\n var unhover = function(eventData) {\n gd.emit('plotly_unhover', eventData);\n };\n\n var axesMoved = function(i, visibleIndices) {\n // Have updated order data on `gd.data` and raise `Plotly.restyle` event\n // without having to incur heavy UI blocking due to an actual `Plotly.restyle` call\n\n // drag&drop sorting of the visible dimensions\n var orig = sorter(visibleIndices, initialDims[i].filter(isVisible));\n currentDims[i].sort(orig);\n\n // invisible dimensions are not interpreted in the context of drag&drop sorting as an invisible dimension\n // cannot be dragged; they're interspersed into their original positions by this subsequent merging step\n initialDims[i].filter(function(d) {return !isVisible(d);})\n .sort(function(d) {\n // subsequent splicing to be done left to right, otherwise indices may be incorrect\n return initialDims[i].indexOf(d);\n })\n .forEach(function(d) {\n currentDims[i].splice(currentDims[i].indexOf(d), 1); // remove from the end\n currentDims[i].splice(initialDims[i].indexOf(d), 0, d); // insert at original index\n });\n\n // TODO: we can't really store this part of the interaction state\n // directly as below, since it incudes data arrays. If we want to\n // persist column order we may have to do something special for this\n // case to just store the order itself.\n // Registry.call('_storeDirectGUIEdit',\n // gd.data[inputIndices[i]],\n // fullLayout._tracePreGUI[gd._fullData[fullIndices[i]]._fullInput.uid],\n // {dimensions: currentDims[i]}\n // );\n\n gd.emit('plotly_restyle', [{dimensions: [currentDims[i]]}, [inputIndices[i]]]);\n };\n\n parcoords(\n gd,\n cdModule,\n { // layout\n width: size.w,\n height: size.h,\n margin: {\n t: size.t,\n r: size.r,\n b: size.b,\n l: size.l\n }\n },\n { // callbacks\n filterChanged: filterChanged,\n hover: hover,\n unhover: unhover,\n axesMoved: axesMoved\n }\n );\n};\n\n\n/***/ }),\n\n/***/ \"79d9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function signum(x) {\n if(x < 0) { return -1 }\n if(x > 0) { return 1 }\n return 0.0\n}\n\n/***/ }),\n\n/***/ \"79f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nexports.isGrouped = function isGrouped(legendLayout) {\n return (legendLayout.traceorder || '').indexOf('grouped') !== -1;\n};\n\nexports.isVertical = function isVertical(legendLayout) {\n return legendLayout.orientation !== 'h';\n};\n\nexports.isReversed = function isReversed(legendLayout) {\n return (legendLayout.traceorder || '').indexOf('reversed') !== -1;\n};\n\n\n/***/ }),\n\n/***/ \"7a18\":\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"[\\\"normal\\\",\\\"bold\\\",\\\"bolder\\\",\\\"lighter\\\",\\\"100\\\",\\\"200\\\",\\\"300\\\",\\\"400\\\",\\\"500\\\",\\\"600\\\",\\\"700\\\",\\\"800\\\",\\\"900\\\"]\");\n\n/***/ }),\n\n/***/ \"7a4a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar isArrayOrTypedArray = __webpack_require__(\"fc26\").isArrayOrTypedArray;\n\nmodule.exports = function(a) {\n return minMax(a, 0);\n};\n\nfunction minMax(a, depth) {\n // Limit to ten dimensional datasets. This seems *exceedingly* unlikely to\n // ever cause problems or even be a concern. It's include strictly so that\n // circular arrays could never cause this to loop.\n if(!isArrayOrTypedArray(a) || depth >= 10) {\n return null;\n }\n\n var min = Infinity;\n var max = -Infinity;\n var n = a.length;\n for(var i = 0; i < n; i++) {\n var datum = a[i];\n\n if(isArrayOrTypedArray(datum)) {\n var result = minMax(datum, depth + 1);\n\n if(result) {\n min = Math.min(result[0], min);\n max = Math.max(result[1], max);\n }\n } else {\n min = Math.min(datum, min);\n max = Math.max(datum, max);\n }\n }\n\n return [min, max];\n}\n\n\n/***/ }),\n\n/***/ \"7a52\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar setConvertCartesian = __webpack_require__(\"1a40\");\n\nvar deg2rad = Lib.deg2rad;\nvar rad2deg = Lib.rad2deg;\n\n/**\n * setConvert for polar axes!\n *\n * @param {object} ax\n * axis in question (works for both radial and angular axes)\n * @param {object} polarLayout\n * full polar layout of the subplot associated with 'ax'\n * @param {object} fullLayout\n * full layout\n *\n * Here, reuse some of the Cartesian setConvert logic,\n * but we must extend some of it, as both radial and angular axes\n * don't have domains and angular axes don't have _true_ ranges.\n *\n * Moreover, we introduce two new coordinate systems:\n * - 'g' for geometric coordinates and\n * - 't' for angular ticks\n *\n * Radial axis coordinate systems:\n * - d, c and l: same as for cartesian axes\n * - g: like calcdata but translated about `radialaxis.range[0]` & `polar.hole`\n *\n * Angular axis coordinate systems:\n * - d: data, in whatever form it's provided\n * - c: calcdata, turned into radians (for linear axes)\n * or category indices (category axes)\n * - t: tick calcdata, just like 'c' but in degrees for linear axes\n * - g: geometric calcdata, radians coordinates that take into account\n * axis rotation and direction\n *\n * Then, 'g'eometric data is ready to be converted to (x,y).\n */\nmodule.exports = function setConvert(ax, polarLayout, fullLayout) {\n setConvertCartesian(ax, fullLayout);\n\n switch(ax._id) {\n case 'x':\n case 'radialaxis':\n setConvertRadial(ax, polarLayout);\n break;\n case 'angularaxis':\n setConvertAngular(ax, polarLayout);\n break;\n }\n};\n\nfunction setConvertRadial(ax, polarLayout) {\n var subplot = polarLayout._subplot;\n\n ax.setGeometry = function() {\n var rl0 = ax._rl[0];\n var rl1 = ax._rl[1];\n\n var b = subplot.innerRadius;\n var m = (subplot.radius - b) / (rl1 - rl0);\n var b2 = b / m;\n\n var rFilter = rl0 > rl1 ?\n function(v) { return v <= 0; } :\n function(v) { return v >= 0; };\n\n ax.c2g = function(v) {\n var r = ax.c2l(v) - rl0;\n return (rFilter(r) ? r : 0) + b2;\n };\n\n ax.g2c = function(v) {\n return ax.l2c(v + rl0 - b2);\n };\n\n ax.g2p = function(v) { return v * m; };\n ax.c2p = function(v) { return ax.g2p(ax.c2g(v)); };\n };\n}\n\nfunction toRadians(v, unit) {\n return unit === 'degrees' ? deg2rad(v) : v;\n}\n\nfunction fromRadians(v, unit) {\n return unit === 'degrees' ? rad2deg(v) : v;\n}\n\nfunction setConvertAngular(ax, polarLayout) {\n var axType = ax.type;\n\n if(axType === 'linear') {\n var _d2c = ax.d2c;\n var _c2d = ax.c2d;\n\n ax.d2c = function(v, unit) { return toRadians(_d2c(v), unit); };\n ax.c2d = function(v, unit) { return _c2d(fromRadians(v, unit)); };\n }\n\n // override makeCalcdata to handle thetaunit and special theta0/dtheta logic\n ax.makeCalcdata = function(trace, coord) {\n var arrayIn = trace[coord];\n var len = trace._length;\n var arrayOut, i;\n\n var _d2c = function(v) { return ax.d2c(v, trace.thetaunit); };\n\n if(arrayIn) {\n if(Lib.isTypedArray(arrayIn) && axType === 'linear') {\n if(len === arrayIn.length) {\n return arrayIn;\n } else if(arrayIn.subarray) {\n return arrayIn.subarray(0, len);\n }\n }\n\n arrayOut = new Array(len);\n for(i = 0; i < len; i++) {\n arrayOut[i] = _d2c(arrayIn[i]);\n }\n } else {\n var coord0 = coord + '0';\n var dcoord = 'd' + coord;\n var v0 = (coord0 in trace) ? _d2c(trace[coord0]) : 0;\n var dv = (trace[dcoord]) ? _d2c(trace[dcoord]) : (ax.period || 2 * Math.PI) / len;\n\n arrayOut = new Array(len);\n for(i = 0; i < len; i++) {\n arrayOut[i] = v0 + i * dv;\n }\n }\n\n return arrayOut;\n };\n\n // N.B. we mock the axis 'range' here\n ax.setGeometry = function() {\n var sector = polarLayout.sector;\n var sectorInRad = sector.map(deg2rad);\n var dir = {clockwise: -1, counterclockwise: 1}[ax.direction];\n var rot = deg2rad(ax.rotation);\n\n var rad2g = function(v) { return dir * v + rot; };\n var g2rad = function(v) { return (v - rot) / dir; };\n\n var rad2c, c2rad;\n var rad2t, t2rad;\n\n switch(axType) {\n case 'linear':\n c2rad = rad2c = Lib.identity;\n t2rad = deg2rad;\n rad2t = rad2deg;\n\n // Set the angular range in degrees to make auto-tick computation cleaner,\n // changing rotation/direction should not affect the angular tick value.\n ax.range = Lib.isFullCircle(sectorInRad) ?\n [sector[0], sector[0] + 360] :\n sectorInRad.map(g2rad).map(rad2deg);\n break;\n\n case 'category':\n var catLen = ax._categories.length;\n var _period = ax.period ? Math.max(ax.period, catLen) : catLen;\n\n // fallback in case all categories have been filtered out\n if(_period === 0) _period = 1;\n\n c2rad = t2rad = function(v) { return v * 2 * Math.PI / _period; };\n rad2c = rad2t = function(v) { return v * _period / Math.PI / 2; };\n\n ax.range = [0, _period];\n break;\n }\n\n ax.c2g = function(v) { return rad2g(c2rad(v)); };\n ax.g2c = function(v) { return rad2c(g2rad(v)); };\n\n ax.t2g = function(v) { return rad2g(t2rad(v)); };\n ax.g2t = function(v) { return rad2t(g2rad(v)); };\n };\n}\n\n\n/***/ }),\n\n/***/ \"7a5f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n moduleType: 'trace',\n name: 'indicator',\n basePlotModule: __webpack_require__(\"643c\"),\n categories: ['svg', 'noOpacity', 'noHover'],\n animatable: true,\n\n attributes: __webpack_require__(\"1c82\"),\n supplyDefaults: __webpack_require__(\"18bb\").supplyDefaults,\n\n calc: __webpack_require__(\"5ad1\").calc,\n\n plot: __webpack_require__(\"78ee\"),\n\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"7a71\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\n\r\nmodule.exports = measure\r\n\r\nmeasure.canvas = document.createElement('canvas')\r\nmeasure.cache = {}\r\n\r\nfunction measure (font, o) {\r\n\tif (!o) o = {}\r\n\r\n\tif (typeof font === 'string' || Array.isArray(font)) {\r\n\t\to.family = font\r\n\t}\r\n\r\n\tvar family = Array.isArray(o.family) ? o.family.join(', ') : o.family\r\n\tif (!family) throw Error('`family` must be defined')\r\n\r\n\tvar fs = o.size || o.fontSize || o.em || 48\r\n\tvar weight = o.weight || o.fontWeight || ''\r\n\tvar style = o.style || o.fontStyle || ''\r\n\tvar font = [style, weight, fs].join(' ') + 'px ' + family\r\n\tvar origin = o.origin || 'top'\r\n\r\n\tif (measure.cache[family]) {\r\n\t\t// return more precise values if cache has them\r\n\t\tif (fs <= measure.cache[family].em) {\r\n\t\t\treturn applyOrigin(measure.cache[family], origin)\r\n\t\t}\r\n\t}\r\n\r\n\tvar canvas = o.canvas || measure.canvas\r\n\tvar ctx = canvas.getContext('2d')\r\n\tvar chars = {\r\n\t\tupper: o.upper !== undefined ? o.upper : 'H',\r\n\t\tlower: o.lower !== undefined ? o.lower : 'x',\r\n\t\tdescent: o.descent !== undefined ? o.descent : 'p',\r\n\t\tascent: o.ascent !== undefined ? o.ascent : 'h',\r\n\t\ttittle: o.tittle !== undefined ? o.tittle : 'i',\r\n\t\tovershoot: o.overshoot !== undefined ? o.overshoot : 'O'\r\n\t}\r\n\tvar l = Math.ceil(fs * 1.5)\r\n\tcanvas.height = l\r\n\tcanvas.width = l * .5\r\n\tctx.font = font\r\n\r\n\tvar char = 'H'\r\n\tvar result = {\r\n\t\ttop: 0\r\n\t}\r\n\r\n\t// measure line-height\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'top'\r\n\tctx.fillStyle = 'black'\r\n\tctx.fillText(char, 0, 0)\r\n\tvar topPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'bottom'\r\n\tctx.fillText(char, 0, l)\r\n\tvar bottomPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tresult.lineHeight =\r\n\tresult.bottom = l - bottomPx + topPx\r\n\r\n\t// measure baseline\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'alphabetic'\r\n\tctx.fillText(char, 0, l)\r\n\tvar baselinePx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tvar baseline = l - baselinePx - 1 + topPx\r\n\tresult.baseline =\r\n\tresult.alphabetic = baseline\r\n\r\n\t// measure median\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'middle'\r\n\tctx.fillText(char, 0, l * .5)\r\n\tvar medianPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tresult.median =\r\n\tresult.middle = l - medianPx - 1 + topPx - l * .5\r\n\r\n\t// measure hanging\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'hanging'\r\n\tctx.fillText(char, 0, l * .5)\r\n\tvar hangingPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tresult.hanging = l - hangingPx - 1 + topPx - l * .5\r\n\r\n\t// measure ideographic\r\n\tctx.clearRect(0, 0, l, l)\r\n\tctx.textBaseline = 'ideographic'\r\n\tctx.fillText(char, 0, l)\r\n\tvar ideographicPx = firstTop(ctx.getImageData(0, 0, l, l))\r\n\tresult.ideographic = l - ideographicPx - 1 + topPx\r\n\r\n\t// measure cap\r\n\tif (chars.upper) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.upper, 0, 0)\r\n\t\tresult.upper = firstTop(ctx.getImageData(0, 0, l, l))\r\n\t\tresult.capHeight = (result.baseline - result.upper)\r\n\t}\r\n\r\n\t// measure x\r\n\tif (chars.lower) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.lower, 0, 0)\r\n\t\tresult.lower = firstTop(ctx.getImageData(0, 0, l, l))\r\n\t\tresult.xHeight = (result.baseline - result.lower)\r\n\t}\r\n\r\n\t// measure tittle\r\n\tif (chars.tittle) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.tittle, 0, 0)\r\n\t\tresult.tittle = firstTop(ctx.getImageData(0, 0, l, l))\r\n\t}\r\n\r\n\t// measure ascent\r\n\tif (chars.ascent) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.ascent, 0, 0)\r\n\t\tresult.ascent = firstTop(ctx.getImageData(0, 0, l, l))\r\n\t}\r\n\r\n\t// measure descent\r\n\tif (chars.descent) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.descent, 0, 0)\r\n\t\tresult.descent = firstBottom(ctx.getImageData(0, 0, l, l))\r\n\t}\r\n\r\n\t// measure overshoot\r\n\tif (chars.overshoot) {\r\n\t\tctx.clearRect(0, 0, l, l)\r\n\t\tctx.textBaseline = 'top'\r\n\t\tctx.fillText(chars.overshoot, 0, 0)\r\n\t\tvar overshootPx = firstBottom(ctx.getImageData(0, 0, l, l))\r\n\t\tresult.overshoot = overshootPx - baseline\r\n\t}\r\n\r\n\t// normalize result\r\n\tfor (var name in result) {\r\n\t\tresult[name] /= fs\r\n\t}\r\n\r\n\tresult.em = fs\r\n\tmeasure.cache[family] = result\r\n\r\n\treturn applyOrigin(result, origin)\r\n}\r\n\r\nfunction applyOrigin(obj, origin) {\r\n\tvar res = {}\r\n\tif (typeof origin === 'string') origin = obj[origin]\r\n\tfor (var name in obj) {\r\n\t\tif (name === 'em') continue\r\n\t\tres[name] = obj[name] - origin\r\n\t}\r\n\treturn res\r\n}\r\n\r\nfunction firstTop(iData) {\r\n\tvar l = iData.height\r\n\tvar data = iData.data\r\n\tfor (var i = 3; i < data.length; i+=4) {\r\n\t\tif (data[i] !== 0) {\r\n\t\t\treturn Math.floor((i - 3) *.25 / l)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction firstBottom(iData) {\r\n\tvar l = iData.height\r\n\tvar data = iData.data\r\n\tfor (var i = data.length - 1; i > 0; i -= 4) {\r\n\t\tif (data[i] !== 0) {\r\n\t\t\treturn Math.floor((i - 3) *.25 / l)\r\n\t\t}\r\n\t}\r\n}\r\n\n\n/***/ }),\n\n/***/ \"7a7d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n attributes: __webpack_require__(\"8bd8\"),\n supplyDefaults: __webpack_require__(\"f552\"),\n colorbar: __webpack_require__(\"fcb3\"),\n calc: __webpack_require__(\"d0ad\"),\n calcGeoJSON: __webpack_require__(\"538c\").calcGeoJSON,\n plot: __webpack_require__(\"538c\").plot,\n style: __webpack_require__(\"e7ab\").style,\n styleOnSelect: __webpack_require__(\"e7ab\").styleOnSelect,\n hoverPoints: __webpack_require__(\"038d\"),\n eventData: __webpack_require__(\"a9eb\"),\n selectPoints: __webpack_require__(\"ef6e\"),\n\n moduleType: 'trace',\n name: 'choropleth',\n basePlotModule: __webpack_require__(\"9e9a\"),\n categories: ['geo', 'noOpacity', 'showLegend'],\n meta: {\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"7abc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n * World Calendars\n * https://github.com/alexcjohnson/world-calendars\n *\n * Batch-converted from kbwood/calendars\n * Many thanks to Keith Wood and all of the contributors to the original project!\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/* http://keith-wood.name/calendars.html\n UmmAlQura calendar for jQuery v2.0.2.\n Written by Amro Osama March 2013.\n Modified by Binnooh.com & www.elm.sa - 2014 - Added dates back to 1276 Hijri year.\n Available under the MIT (http://keith-wood.name/licence.html) license. \n Please attribute the author if you use it. */\n\nvar main = __webpack_require__(\"0230\");\nvar assign = __webpack_require__(\"320c\");\n\n\n/** Implementation of the UmmAlQura or 'saudi' calendar.\n See also http://en.wikipedia.org/wiki/Islamic_calendar#Saudi_Arabia.27s_Umm_al-Qura_calendar.\n http://www.ummulqura.org.sa/About.aspx\n http://www.staff.science.uu.nl/~gent0113/islam/ummalqura.htm\n @class UmmAlQuraCalendar\n @param [language=''] {string} The language code (default English) for localisation. */\nfunction UmmAlQuraCalendar(language) {\n this.local = this.regionalOptions[language || ''] || this.regionalOptions[''];\n}\n\nUmmAlQuraCalendar.prototype = new main.baseCalendar;\n\nassign(UmmAlQuraCalendar.prototype, {\n /** The calendar name.\n @memberof UmmAlQuraCalendar */\n name: 'UmmAlQura',\n //jdEpoch: 1948440, // Julian date of start of UmmAlQura epoch: 14 March 1937 CE\n //daysPerMonth: // Days per month in a common year, replaced by a method.\n /** true if has a year zero, false if not.\n @memberof UmmAlQuraCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof UmmAlQuraCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof UmmAlQuraCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof UmmAlQuraCalendar */\n minDay: 1,\n\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof UmmAlQuraCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: { // Localisations\n '': {\n name: 'Umm al-Qura',\n epochs: ['BH', 'AH'],\n monthNames: ['Al-Muharram', 'Safar', 'Rabi\\' al-awwal', 'Rabi\\' Al-Thani', 'Jumada Al-Awwal', 'Jumada Al-Thani',\n 'Rajab', 'Sha\\'aban', 'Ramadan', 'Shawwal', 'Dhu al-Qi\\'dah', 'Dhu al-Hijjah'],\n monthNamesShort: ['Muh', 'Saf', 'Rab1', 'Rab2', 'Jum1', 'Jum2', 'Raj', 'Sha\\'', 'Ram', 'Shaw', 'DhuQ', 'DhuH'],\n dayNames: ['Yawm al-Ahad', 'Yawm al-Ithnain', 'Yawm al-Thalāthā’', 'Yawm al-Arba‘ā’', 'Yawm al-Khamīs', 'Yawm al-Jum‘a', 'Yawm al-Sabt'],\n dayNamesMin: ['Ah', 'Ith', 'Th', 'Ar', 'Kh', 'Ju', 'Sa'],\n digits: null,\n dateFormat: 'yyyy/mm/dd',\n firstDay: 6,\n isRTL: true\n }\n },\n\n /** Determine whether this date is in a leap year.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function (year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return (this.daysInYear(date.year()) === 355);\n },\n\n /** Determine the week of the year for a date.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function (year, month, day) {\n // Find Sunday of this week starting on Sunday\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), 'd');\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n\n /** Retrieve the number of days in a year.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function (year) {\n var daysCount = 0;\n for (var i = 1; i <= 12; i++) {\n daysCount += this.daysInMonth(year, i);\n }\n return daysCount;\n },\n\n /** Retrieve the number of days in a month.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function (year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n var mcjdn = date.toJD() - 2400000 + 0.5; // Modified Chronological Julian Day Number (MCJDN)\n // the MCJDN's of the start of the lunations in the Umm al-Qura calendar are stored in the 'ummalqura_dat' array\n var index = 0;\n for (var i = 0; i < ummalqura_dat.length; i++) {\n if (ummalqura_dat[i] > mcjdn) {\n return (ummalqura_dat[index] - ummalqura_dat[index - 1]);\n }\n index++;\n }\n return 30; // Unknown outside\n },\n\n /** Determine whether this date is a week day.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function (year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function (year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var index = (12 * (date.year() - 1)) + date.month() - 15292;\n var mcjdn = date.day() + ummalqura_dat[index - 1] - 1;\n return mcjdn + 2400000 - 0.5; // Modified Chronological Julian Day Number (MCJDN)\n },\n\n /** Create a new date from a Julian date.\n @memberof UmmAlQuraCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function (jd) {\n var mcjdn = jd - 2400000 + 0.5; // Modified Chronological Julian Day Number (MCJDN)\n // the MCJDN's of the start of the lunations in the Umm al-Qura calendar \n // are stored in the 'ummalqura_dat' array\n var index = 0;\n for (var i = 0; i < ummalqura_dat.length; i++) {\n if (ummalqura_dat[i] > mcjdn) break;\n index++;\n }\n var lunation = index + 15292; //UmmAlQura Lunation Number\n var ii = Math.floor((lunation - 1) / 12);\n var year = ii + 1;\n var month = lunation - 12 * ii;\n var day = mcjdn - ummalqura_dat[index - 1] + 1;\n return this.newDate(year, month, day);\n },\n\n /** Determine whether a date is valid for this calendar.\n @memberof UmmAlQuraCalendar\n @param year {number} The year to examine.\n @param month {number} The month to examine.\n @param day {number} The day to examine.\n @return {boolean} true if a valid date, false if not. */\n isValid: function(year, month, day) {\n var valid = main.baseCalendar.prototype.isValid.apply(this, arguments);\n if (valid) {\n year = (year.year != null ? year.year : year);\n valid = (year >= 1276 && year <= 1500);\n }\n return valid;\n },\n\n /** Check that a candidate date is from the same calendar and is valid.\n @memberof UmmAlQuraCalendar\n @private\n @param year {CDate|number} The date to validate or the year to validate.\n @param month {number} The month to validate.\n @param day {number} The day to validate.\n @param error {string} Error message if invalid.\n @throws Error if different calendars used or invalid date. */\n _validate: function(year, month, day, error) {\n var date = main.baseCalendar.prototype._validate.apply(this, arguments);\n if (date.year < 1276 || date.year > 1500) {\n throw error.replace(/\\{0\\}/, this.local.name);\n }\n return date;\n }\n});\n\n// UmmAlQura calendar implementation\nmain.calendars.ummalqura = UmmAlQuraCalendar;\n\nvar ummalqura_dat = [\n 20, 50, 79, 109, 138, 168, 197, 227, 256, 286, 315, 345, 374, 404, 433, 463, 492, 522, 551, 581, \n 611, 641, 670, 700, 729, 759, 788, 818, 847, 877, 906, 936, 965, 995, 1024, 1054, 1083, 1113, 1142, 1172,\n 1201, 1231, 1260, 1290, 1320, 1350, 1379, 1409, 1438, 1468, 1497, 1527, 1556, 1586, 1615, 1645, 1674, 1704, 1733, 1763,\n 1792, 1822, 1851, 1881, 1910, 1940, 1969, 1999, 2028, 2058, 2087, 2117, 2146, 2176, 2205, 2235, 2264, 2294, 2323, 2353,\n 2383, 2413, 2442, 2472, 2501, 2531, 2560, 2590, 2619, 2649, 2678, 2708, 2737, 2767, 2796, 2826, 2855, 2885, 2914, 2944,\n 2973, 3003, 3032, 3062, 3091, 3121, 3150, 3180, 3209, 3239, 3268, 3298, 3327, 3357, 3386, 3416, 3446, 3476, 3505, 3535,\n 3564, 3594, 3623, 3653, 3682, 3712, 3741, 3771, 3800, 3830, 3859, 3889, 3918, 3948, 3977, 4007, 4036, 4066, 4095, 4125,\n 4155, 4185, 4214, 4244, 4273, 4303, 4332, 4362, 4391, 4421, 4450, 4480, 4509, 4539, 4568, 4598, 4627, 4657, 4686, 4716,\n 4745, 4775, 4804, 4834, 4863, 4893, 4922, 4952, 4981, 5011, 5040, 5070, 5099, 5129, 5158, 5188, 5218, 5248, 5277, 5307,\n 5336, 5366, 5395, 5425, 5454, 5484, 5513, 5543, 5572, 5602, 5631, 5661, 5690, 5720, 5749, 5779, 5808, 5838, 5867, 5897,\n 5926, 5956, 5985, 6015, 6044, 6074, 6103, 6133, 6162, 6192, 6221, 6251, 6281, 6311, 6340, 6370, 6399, 6429, 6458, 6488,\n 6517, 6547, 6576, 6606, 6635, 6665, 6694, 6724, 6753, 6783, 6812, 6842, 6871, 6901, 6930, 6960, 6989, 7019, 7048, 7078,\n 7107, 7137, 7166, 7196, 7225, 7255, 7284, 7314, 7344, 7374, 7403, 7433, 7462, 7492, 7521, 7551, 7580, 7610, 7639, 7669,\n 7698, 7728, 7757, 7787, 7816, 7846, 7875, 7905, 7934, 7964, 7993, 8023, 8053, 8083, 8112, 8142, 8171, 8201, 8230, 8260,\n 8289, 8319, 8348, 8378, 8407, 8437, 8466, 8496, 8525, 8555, 8584, 8614, 8643, 8673, 8702, 8732, 8761, 8791, 8821, 8850,\n 8880, 8909, 8938, 8968, 8997, 9027, 9056, 9086, 9115, 9145, 9175, 9205, 9234, 9264, 9293, 9322, 9352, 9381, 9410, 9440,\n 9470, 9499, 9529, 9559, 9589, 9618, 9648, 9677, 9706, 9736, 9765, 9794, 9824, 9853, 9883, 9913, 9943, 9972, 10002, 10032,\n 10061, 10090, 10120, 10149, 10178, 10208, 10237, 10267, 10297, 10326, 10356, 10386, 10415, 10445, 10474, 10504, 10533, 10562, 10592, 10621,\n 10651, 10680, 10710, 10740, 10770, 10799, 10829, 10858, 10888, 10917, 10947, 10976, 11005, 11035, 11064, 11094, 11124, 11153, 11183, 11213,\n 11242, 11272, 11301, 11331, 11360, 11389, 11419, 11448, 11478, 11507, 11537, 11567, 11596, 11626, 11655, 11685, 11715, 11744, 11774, 11803,\n 11832, 11862, 11891, 11921, 11950, 11980, 12010, 12039, 12069, 12099, 12128, 12158, 12187, 12216, 12246, 12275, 12304, 12334, 12364, 12393,\n 12423, 12453, 12483, 12512, 12542, 12571, 12600, 12630, 12659, 12688, 12718, 12747, 12777, 12807, 12837, 12866, 12896, 12926, 12955, 12984,\n 13014, 13043, 13072, 13102, 13131, 13161, 13191, 13220, 13250, 13280, 13310, 13339, 13368, 13398, 13427, 13456, 13486, 13515, 13545, 13574,\n 13604, 13634, 13664, 13693, 13723, 13752, 13782, 13811, 13840, 13870, 13899, 13929, 13958, 13988, 14018, 14047, 14077, 14107, 14136, 14166,\n 14195, 14224, 14254, 14283, 14313, 14342, 14372, 14401, 14431, 14461, 14490, 14520, 14550, 14579, 14609, 14638, 14667, 14697, 14726, 14756,\n 14785, 14815, 14844, 14874, 14904, 14933, 14963, 14993, 15021, 15051, 15081, 15110, 15140, 15169, 15199, 15228, 15258, 15287, 15317, 15347,\n 15377, 15406, 15436, 15465, 15494, 15524, 15553, 15582, 15612, 15641, 15671, 15701, 15731, 15760, 15790, 15820, 15849, 15878, 15908, 15937,\n 15966, 15996, 16025, 16055, 16085, 16114, 16144, 16174, 16204, 16233, 16262, 16292, 16321, 16350, 16380, 16409, 16439, 16468, 16498, 16528,\n 16558, 16587, 16617, 16646, 16676, 16705, 16734, 16764, 16793, 16823, 16852, 16882, 16912, 16941, 16971, 17001, 17030, 17060, 17089, 17118,\n 17148, 17177, 17207, 17236, 17266, 17295, 17325, 17355, 17384, 17414, 17444, 17473, 17502, 17532, 17561, 17591, 17620, 17650, 17679, 17709,\n 17738, 17768, 17798, 17827, 17857, 17886, 17916, 17945, 17975, 18004, 18034, 18063, 18093, 18122, 18152, 18181, 18211, 18241, 18270, 18300,\n 18330, 18359, 18388, 18418, 18447, 18476, 18506, 18535, 18565, 18595, 18625, 18654, 18684, 18714, 18743, 18772, 18802, 18831, 18860, 18890,\n 18919, 18949, 18979, 19008, 19038, 19068, 19098, 19127, 19156, 19186, 19215, 19244, 19274, 19303, 19333, 19362, 19392, 19422, 19452, 19481,\n 19511, 19540, 19570, 19599, 19628, 19658, 19687, 19717, 19746, 19776, 19806, 19836, 19865, 19895, 19924, 19954, 19983, 20012, 20042, 20071,\n 20101, 20130, 20160, 20190, 20219, 20249, 20279, 20308, 20338, 20367, 20396, 20426, 20455, 20485, 20514, 20544, 20573, 20603, 20633, 20662,\n 20692, 20721, 20751, 20780, 20810, 20839, 20869, 20898, 20928, 20957, 20987, 21016, 21046, 21076, 21105, 21135, 21164, 21194, 21223, 21253,\n 21282, 21312, 21341, 21371, 21400, 21430, 21459, 21489, 21519, 21548, 21578, 21607, 21637, 21666, 21696, 21725, 21754, 21784, 21813, 21843,\n 21873, 21902, 21932, 21962, 21991, 22021, 22050, 22080, 22109, 22138, 22168, 22197, 22227, 22256, 22286, 22316, 22346, 22375, 22405, 22434,\n 22464, 22493, 22522, 22552, 22581, 22611, 22640, 22670, 22700, 22730, 22759, 22789, 22818, 22848, 22877, 22906, 22936, 22965, 22994, 23024,\n 23054, 23083, 23113, 23143, 23173, 23202, 23232, 23261, 23290, 23320, 23349, 23379, 23408, 23438, 23467, 23497, 23527, 23556, 23586, 23616,\n 23645, 23674, 23704, 23733, 23763, 23792, 23822, 23851, 23881, 23910, 23940, 23970, 23999, 24029, 24058, 24088, 24117, 24147, 24176, 24206,\n 24235, 24265, 24294, 24324, 24353, 24383, 24413, 24442, 24472, 24501, 24531, 24560, 24590, 24619, 24648, 24678, 24707, 24737, 24767, 24796,\n 24826, 24856, 24885, 24915, 24944, 24974, 25003, 25032, 25062, 25091, 25121, 25150, 25180, 25210, 25240, 25269, 25299, 25328, 25358, 25387,\n 25416, 25446, 25475, 25505, 25534, 25564, 25594, 25624, 25653, 25683, 25712, 25742, 25771, 25800, 25830, 25859, 25888, 25918, 25948, 25977,\n 26007, 26037, 26067, 26096, 26126, 26155, 26184, 26214, 26243, 26272, 26302, 26332, 26361, 26391, 26421, 26451, 26480, 26510, 26539, 26568,\n 26598, 26627, 26656, 26686, 26715, 26745, 26775, 26805, 26834, 26864, 26893, 26923, 26952, 26982, 27011, 27041, 27070, 27099, 27129, 27159,\n 27188, 27218, 27248, 27277, 27307, 27336, 27366, 27395, 27425, 27454, 27484, 27513, 27542, 27572, 27602, 27631, 27661, 27691, 27720, 27750,\n 27779, 27809, 27838, 27868, 27897, 27926, 27956, 27985, 28015, 28045, 28074, 28104, 28134, 28163, 28193, 28222, 28252, 28281, 28310, 28340,\n 28369, 28399, 28428, 28458, 28488, 28517, 28547, 28577,\n // From 1356\n 28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990, 29019, 29049, 29078, 29108, 29137, 29167,\n 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522, 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759,\n 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053, 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348,\n 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585, 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939,\n 30968, 30998, 31027, 31057, 31086, 31116, 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530,\n 31559, 31589, 31618, 31648, 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120,\n 32150, 32180, 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711,\n 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243, 33272, 33302,\n 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775, 33804, 33834, 33863, 33893,\n 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306, 34336, 34365, 34395, 34424, 34454, 34483,\n 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837, 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074,\n 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370, 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665,\n 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901, 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254,\n 36284, 36314, 36343, 36373, 36403, 36433, 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845,\n 36875, 36904, 36934, 36963, 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436,\n 37465, 37495, 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027,\n 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558, 38587, 38617,\n 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089, 39118, 39148, 39178, 39208,\n 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621, 39650, 39680, 39709, 39739, 39768, 39798,\n 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153, 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389,\n 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685, 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980,\n 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216, 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570,\n 41599, 41629, 41658, 41688, 41718, 41748, 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161,\n 42190, 42220, 42249, 42279, 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751,\n 42780, 42810, 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342,\n 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873, 43903, 43932,\n 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405, 44434, 44464, 44493, 44523,\n 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936, 44966, 44996, 45025, 45055, 45084, 45114,\n 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468, 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704,\n 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999, 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295,\n 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531, 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885,\n 46915, 46944, 46974, 47003, 47033, 47063, 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476,\n 47506, 47535, 47565, 47594, 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066,\n 48096, 48125, 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657,\n 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189, 49218, 49248,\n 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720, 49749, 49779, 49809, 49838,\n 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252, 50281, 50311, 50340, 50370, 50400, 50429,\n 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784, 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019,\n 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315, 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611,\n 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846, 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200,\n 52230, 52260, 52290, 52319, 52349, 52379, 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792,\n 52822, 52851, 52881, 52910, 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383,\n 53412, 53441, 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973,\n 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505, 54535, 54564,\n 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036, 55066, 55095, 55125, 55154,\n 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567, 55597, 55627, 55657, 55686, 55716, 55745,\n 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100, 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335,\n 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631, 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926,\n 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162, 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517,\n 57546, 57576, 57605, 57634, 57664, 57694, 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107,\n 58137, 58167, 58196, 58226, 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698,\n 58727, 58757, 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288,\n 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820, 59850, 59879,\n 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352, 60381, 60411, 60440, 60469,\n 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883, 60912, 60942, 60972, 61002, 61031, 61061,\n 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415, 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651,\n 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947, 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242,\n 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478, 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832,\n 62862, 62891, 62921, 62950, 62980, 63009, 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423,\n 63453, 63482, 63512, 63541, 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014,\n 64043, 64073, 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603,\n 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136, 65166, 65195,\n 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667, 65697, 65726, 65755, 65785,\n 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199, 66228, 66258, 66287, 66317, 66346, 66376,\n 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730, 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967,\n 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262, 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557,\n 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793, 67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148,\n 68177, 68207, 68236, 68266, 68295, 68325, 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738,\n 68768, 68797, 68827, 68857, 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330,\n 69359, 69388, 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919,\n 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451, 70481, 70510,\n 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983, 71013, 71042, 71071, 71101,\n 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514, 71543, 71573, 71602, 71632, 71662, 71691,\n 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046, 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282,\n 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577, 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872,\n 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109, 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464,\n 73493, 73523, 73552, 73581, 73611, 73640, 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053,\n 74083, 74113, 74142, 74172, 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645,\n 74675, 74704, 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235,\n 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766, 75796, 75826,\n 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299, 76328, 76358, 76387, 76416,\n 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830, 76859, 76889, 76918, 76948, 76977, 77007,\n 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361, 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598,\n 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893, 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188,\n 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425, 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779,\n 78808, 78838, 78867, 78897, 78926, 78956, 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369,\n 79399, 79428, 79458, 79487, 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960,\n 79990];\n\n\n\n/***/ }),\n\n/***/ \"7ad0\":\n/***/ (function(module, exports) {\n\nmodule.exports = perspective;\n\n/**\n * Generates a perspective projection matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\nfunction perspective(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf = 1 / (near - far);\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = (2 * far * near) * nf;\n out[15] = 0;\n return out;\n};\n\n/***/ }),\n\n/***/ \"7ae4\":\n/***/ (function(module, exports) {\n\nmodule.exports = lerp\n\n/**\n * Performs a linear interpolation between two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @param {Number} t interpolation amount between the two inputs\n * @returns {vec4} out\n */\nfunction lerp (out, a, b, t) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3]\n out[0] = ax + t * (b[0] - ax)\n out[1] = ay + t * (b[1] - ay)\n out[2] = az + t * (b[2] - az)\n out[3] = aw + t * (b[3] - aw)\n return out\n}\n\n\n/***/ }),\n\n/***/ \"7b0b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(\"1d80\");\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ \"7b1c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\r\n * @module update-diff\r\n */\r\n\r\n\r\n\r\nmodule.exports = function updateDiff (obj, diff, mappers) {\r\n\tif (!Array.isArray(mappers)) mappers = [].slice.call(arguments, 2)\r\n\r\n\tfor (var i = 0, l = mappers.length; i < l; i++) {\r\n\t\tvar dict = mappers[i]\r\n\t\tfor (var prop in dict) {\r\n\t\t\tif (diff[prop] !== undefined && !Array.isArray(diff[prop]) && obj[prop] === diff[prop]) continue\r\n\r\n\t\t\tif (prop in diff) {\r\n\t\t\t\tvar result\r\n\r\n\t\t\t\tif (dict[prop] === true) result = diff[prop]\r\n\t\t\t\telse if (dict[prop] === false) continue\r\n\t\t\t\telse if (typeof dict[prop] === 'function') {\r\n\t\t\t\t\tresult = dict[prop](diff[prop], obj, diff)\r\n\t\t\t\t\tif (result === undefined) continue\r\n\t\t\t\t}\r\n\r\n\t\t\t\tobj[prop] = result\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn obj\r\n}\r\n\n\n/***/ }),\n\n/***/ \"7ba3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n sunburstcolorway: {\n valType: 'colorlist',\n \n editType: 'calc',\n \n },\n extendsunburstcolors: {\n valType: 'boolean',\n dflt: true,\n \n editType: 'calc',\n \n }\n};\n\n\n/***/ }),\n\n/***/ \"7bb3\":\n/***/ (function(module, exports) {\n\nmodule.exports = dot\n\n/**\n * Calculates the dot product of two vec4's\n *\n * @param {vec4} a the first operand\n * @param {vec4} b the second operand\n * @returns {Number} dot product of a and b\n */\nfunction dot (a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]\n}\n\n\n/***/ }),\n\n/***/ \"7bbc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = alphaComplex\n\nvar delaunay = __webpack_require__(\"2357\")\nvar circumradius = __webpack_require__(\"8662\")\n\nfunction alphaComplex(alpha, points) {\n return delaunay(points).filter(function(cell) {\n var simplex = new Array(cell.length)\n for(var i=0; i 0.999) h = 0.999; // TODO: may handle this case separately\n var h2 = Math.pow(h, 2);\n\n var v1 = cd0.vTotal;\n var v0 = v1 * h2 / (1 - h2);\n\n var totalValues = v1;\n var sumSteps = v0 / v1;\n\n function calcPos() {\n var q = Math.sqrt(sumSteps);\n return {\n x: q,\n y: -q\n };\n }\n\n function getPoint() {\n var pos = calcPos();\n return [pos.x, pos.y];\n }\n\n var p;\n var allPoints = [];\n allPoints.push(getPoint());\n\n var i, cdi;\n for(i = cd.length - 1; i > -1; i--) {\n cdi = cd[i];\n if(cdi.hidden) continue;\n\n var step = cdi.v / totalValues;\n sumSteps += step;\n\n allPoints.push(getPoint());\n }\n\n var minY = Infinity;\n var maxY = -Infinity;\n for(i = 0; i < allPoints.length; i++) {\n p = allPoints[i];\n minY = Math.min(minY, p[1]);\n maxY = Math.max(maxY, p[1]);\n }\n\n // center the shape\n for(i = 0; i < allPoints.length; i++) {\n allPoints[i][1] -= (maxY + minY) / 2;\n }\n\n var lastX = allPoints[allPoints.length - 1][0];\n\n // get pie r\n var r = cd0.r;\n\n var rY = (maxY - minY) / 2;\n var scaleX = r / lastX;\n var scaleY = r / rY * aspectratio;\n\n // set funnelarea r\n cd0.r = scaleY * rY;\n\n // scale the shape\n for(i = 0; i < allPoints.length; i++) {\n allPoints[i][0] *= scaleX;\n allPoints[i][1] *= scaleY;\n }\n\n // record first position\n p = allPoints[0];\n var prevLeft = [-p[0], p[1]];\n var prevRight = [p[0], p[1]];\n\n var n = 0; // note we skip the very first point.\n for(i = cd.length - 1; i > -1; i--) {\n cdi = cd[i];\n if(cdi.hidden) continue;\n\n n += 1;\n var x = allPoints[n][0];\n var y = allPoints[n][1];\n\n cdi.TL = [-x, y];\n cdi.TR = [x, y];\n\n cdi.BL = prevLeft;\n cdi.BR = prevRight;\n\n cdi.pxmid = getBetween(cdi.TR, cdi.BR);\n\n prevLeft = cdi.TL;\n prevRight = cdi.TR;\n }\n}\n\n\n/***/ }),\n\n/***/ \"7c4a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(\"ff55\")() ? globalThis : __webpack_require__(\"c2c0\");\n\n\n/***/ }),\n\n/***/ \"7c67\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = permutationSign\n\nvar BRUTE_FORCE_CUTOFF = 32\n\nvar pool = __webpack_require__(\"cea5\")\n\nfunction permutationSign(p) {\n var n = p.length\n if(n < BRUTE_FORCE_CUTOFF) {\n //Use quadratic algorithm for small n\n var sgn = 1\n for(var i=0; i 7) {\n\t\t\t\t\tresult.push(seg.splice(0, 7))\n\t\t\t\t\tseg.unshift('C')\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'S':\n\t\t\t\t// default control point\n\t\t\t\tvar cx = x\n\t\t\t\tvar cy = y\n\t\t\t\tif (prev == 'C' || prev == 'S') {\n\t\t\t\t\tcx += cx - bezierX // reflect the previous command's control\n\t\t\t\t\tcy += cy - bezierY // point relative to the current point\n\t\t\t\t}\n\t\t\t\tseg = ['C', cx, cy, seg[1], seg[2], seg[3], seg[4]]\n\t\t\t\tbreak\n\t\t\tcase 'T':\n\t\t\t\tif (prev == 'Q' || prev == 'T') {\n\t\t\t\t\tquadX = x * 2 - quadX // as with 'S' reflect previous control point\n\t\t\t\t\tquadY = y * 2 - quadY\n\t\t\t\t} else {\n\t\t\t\t\tquadX = x\n\t\t\t\t\tquadY = y\n\t\t\t\t}\n\t\t\t\tseg = quadratic(x, y, quadX, quadY, seg[1], seg[2])\n\t\t\t\tbreak\n\t\t\tcase 'Q':\n\t\t\t\tquadX = seg[1]\n\t\t\t\tquadY = seg[2]\n\t\t\t\tseg = quadratic(x, y, seg[1], seg[2], seg[3], seg[4])\n\t\t\t\tbreak\n\t\t\tcase 'L':\n\t\t\t\tseg = line(x, y, seg[1], seg[2])\n\t\t\t\tbreak\n\t\t\tcase 'H':\n\t\t\t\tseg = line(x, y, seg[1], y)\n\t\t\t\tbreak\n\t\t\tcase 'V':\n\t\t\t\tseg = line(x, y, x, seg[1])\n\t\t\t\tbreak\n\t\t\tcase 'Z':\n\t\t\t\tseg = line(x, y, startX, startY)\n\t\t\t\tbreak\n\t\t}\n\n\t\t// update state\n\t\tprev = command\n\t\tx = seg[seg.length - 2]\n\t\ty = seg[seg.length - 1]\n\t\tif (seg.length > 4) {\n\t\t\tbezierX = seg[seg.length - 4]\n\t\t\tbezierY = seg[seg.length - 3]\n\t\t} else {\n\t\t\tbezierX = x\n\t\t\tbezierY = y\n\t\t}\n\t\tresult.push(seg)\n\t}\n\n\treturn result\n}\n\nfunction line(x1, y1, x2, y2){\n\treturn ['C', x1, y1, x2, y2, x2, y2]\n}\n\nfunction quadratic(x1, y1, cx, cy, x2, y2){\n\treturn [\n\t\t'C',\n\t\tx1/3 + (2/3) * cx,\n\t\ty1/3 + (2/3) * cy,\n\t\tx2/3 + (2/3) * cx,\n\t\ty2/3 + (2/3) * cy,\n\t\tx2,\n\t\ty2\n\t]\n}\n\n// This function is ripped from \n// github.com/DmitryBaranovskiy/raphael/blob/4d97d4/raphael.js#L2216-L2304 \n// which references w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n// TODO: make it human readable\n\nfunction arc(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n\tif (!recursive) {\n\t\tvar xy = rotate(x1, y1, -angle)\n\t\tx1 = xy.x\n\t\ty1 = xy.y\n\t\txy = rotate(x2, y2, -angle)\n\t\tx2 = xy.x\n\t\ty2 = xy.y\n\t\tvar x = (x1 - x2) / 2\n\t\tvar y = (y1 - y2) / 2\n\t\tvar h = (x * x) / (rx * rx) + (y * y) / (ry * ry)\n\t\tif (h > 1) {\n\t\t\th = Math.sqrt(h)\n\t\t\trx = h * rx\n\t\t\try = h * ry\n\t\t}\n\t\tvar rx2 = rx * rx\n\t\tvar ry2 = ry * ry\n\t\tvar k = (large_arc_flag == sweep_flag ? -1 : 1)\n\t\t\t* Math.sqrt(Math.abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x)))\n\t\tif (k == Infinity) k = 1 // neutralize\n\t\tvar cx = k * rx * y / ry + (x1 + x2) / 2\n\t\tvar cy = k * -ry * x / rx + (y1 + y2) / 2\n\t\tvar f1 = Math.asin(((y1 - cy) / ry).toFixed(9))\n\t\tvar f2 = Math.asin(((y2 - cy) / ry).toFixed(9))\n\n\t\tf1 = x1 < cx ? π - f1 : f1\n\t\tf2 = x2 < cx ? π - f2 : f2\n\t\tif (f1 < 0) f1 = π * 2 + f1\n\t\tif (f2 < 0) f2 = π * 2 + f2\n\t\tif (sweep_flag && f1 > f2) f1 = f1 - π * 2\n\t\tif (!sweep_flag && f2 > f1) f2 = f2 - π * 2\n\t} else {\n\t\tf1 = recursive[0]\n\t\tf2 = recursive[1]\n\t\tcx = recursive[2]\n\t\tcy = recursive[3]\n\t}\n\t// greater than 120 degrees requires multiple segments\n\tif (Math.abs(f2 - f1) > _120) {\n\t\tvar f2old = f2\n\t\tvar x2old = x2\n\t\tvar y2old = y2\n\t\tf2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1)\n\t\tx2 = cx + rx * Math.cos(f2)\n\t\ty2 = cy + ry * Math.sin(f2)\n\t\tvar res = arc(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy])\n\t}\n\tvar t = Math.tan((f2 - f1) / 4)\n\tvar hx = 4 / 3 * rx * t\n\tvar hy = 4 / 3 * ry * t\n\tvar curve = [\n\t\t2 * x1 - (x1 + hx * Math.sin(f1)),\n\t\t2 * y1 - (y1 - hy * Math.cos(f1)),\n\t\tx2 + hx * Math.sin(f2),\n\t\ty2 - hy * Math.cos(f2),\n\t\tx2,\n\t\ty2\n\t]\n\tif (recursive) return curve\n\tif (res) curve = curve.concat(res)\n\tfor (var i = 0; i < curve.length;) {\n\t\tvar rot = rotate(curve[i], curve[i+1], angle)\n\t\tcurve[i++] = rot.x\n\t\tcurve[i++] = rot.y\n\t}\n\treturn curve\n}\n\nfunction rotate(x, y, rad){\n\treturn {\n\t\tx: x * Math.cos(rad) - y * Math.sin(rad),\n\t\ty: x * Math.sin(rad) + y * Math.cos(rad)\n\t}\n}\n\nfunction radians(degress){\n\treturn degress * (π / 180)\n}\n\n\n/***/ }),\n\n/***/ \"7c73\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"825a\");\nvar defineProperties = __webpack_require__(\"37e8\");\nvar enumBugKeys = __webpack_require__(\"7839\");\nvar hiddenKeys = __webpack_require__(\"d012\");\nvar html = __webpack_require__(\"1be4\");\nvar documentCreateElement = __webpack_require__(\"cc12\");\nvar sharedKey = __webpack_require__(\"f772\");\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"7c9f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n moduleType: 'component',\n name: 'images',\n\n layoutAttributes: __webpack_require__(\"d72e\"),\n supplyLayoutDefaults: __webpack_require__(\"4b6a\"),\n includeBasePlot: __webpack_require__(\"37d1\")('images'),\n\n draw: __webpack_require__(\"ff49\"),\n\n convertCoords: __webpack_require__(\"6174\")\n};\n\n\n/***/ }),\n\n/***/ \"7d72\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// Exports true if environment provides native `WeakMap` implementation, whatever that is.\n\n\n\nmodule.exports = (function () {\n\tif (typeof WeakMap !== \"function\") return false;\n\treturn Object.prototype.toString.call(new WeakMap()) === \"[object WeakMap]\";\n}());\n\n\n/***/ }),\n\n/***/ \"7d88\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar safeToString = __webpack_require__(\"1e0a\");\n\nvar reNewLine = /[\\n\\r\\u2028\\u2029]/g;\n\nmodule.exports = function (value) {\n\tvar string = safeToString(value);\n\tif (string === null) return \"\";\n\t// Trim if too long\n\tif (string.length > 100) string = string.slice(0, 99) + \"…\";\n\t// Replace eventual new lines\n\tstring = string.replace(reNewLine, function (char) {\n\t\tswitch (char) {\n\t\t\tcase \"\\n\":\n\t\t\t\treturn \"\\\\n\";\n\t\t\tcase \"\\r\":\n\t\t\t\treturn \"\\\\r\";\n\t\t\tcase \"\\u2028\":\n\t\t\t\treturn \"\\\\u2028\";\n\t\t\tcase \"\\u2029\":\n\t\t\t\treturn \"\\\\u2029\";\n\t\t\t/* istanbul ignore next */\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Unexpected character\");\n\t\t}\n\t});\n\treturn string;\n};\n\n\n/***/ }),\n\n/***/ \"7dbb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n(function(aa,ia){ true?module.exports=ia():undefined})(this,function(){function aa(a,b){this.id=Ab++;this.type=a;this.data=b}function ia(a){if(0===a.length)return[];var b=a.charAt(0),c=a.charAt(a.length-1);if(1>>=b;c=(255>>=c;b|=c;c=(15>>=c;b|=c;c=(3>>c>>1}function cb(){function a(a){a:{for(var b=16;268435456>=b;b*=16)if(a<=b){a=b;break a}a=0}b=c[bb(a)>>2];return 0>2].push(a)}var c=J(8,function(){return[]});return{alloc:a,free:b,allocType:function(b,c){var d=null;switch(b){case 5120:d=new Int8Array(a(c),0,c);break;case 5121:d=new Uint8Array(a(c),0,c);break;case 5122:d=new Int16Array(a(2*c),0,c);break;case 5123:d=new Uint16Array(a(2*c),0,c);break;case 5124:d=new Int32Array(a(4*c),0,c);break;case 5125:d=new Uint32Array(a(4*c),0,c);break;case 5126:d=new Float32Array(a(4*c),0,c);break;default:return null}return d.length!==\nc?d.subarray(0,c):d},freeType:function(a){b(a.buffer)}}}function ma(a){return!!a&&\"object\"===typeof a&&Array.isArray(a.shape)&&Array.isArray(a.stride)&&\"number\"===typeof a.offset&&a.shape.length===a.stride.length&&(Array.isArray(a.data)||M(a.data))}function db(a,b,c,e,g,d){for(var p=0;pd&&(d=e.buffer.byteLength,5123===f?d>>=1:5125===f&&(d>>=2));e.vertCount=d;d=h;0>h&&(d=4,h=e.buffer.dimension,1===h&&(d=0),2===h&&(d=1),3===h&&(d=4));e.primType=d}function p(a){e.elementsCount--;delete f[a.id];a.buffer.destroy();a.buffer=null}var f={},r=0,q={uint8:5121,\nuint16:5123};b.oes_element_index_uint&&(q.uint32=5125);g.prototype.bind=function(){this.buffer.bind()};var t=[];return{create:function(a,b){function k(a){if(a)if(\"number\"===typeof a)h(a),l.primType=4,l.vertCount=a|0,l.type=5121;else{var b=null,c=35044,e=-1,g=-1,f=0,m=0;if(Array.isArray(a)||M(a)||ma(a))b=a;else if(\"data\"in a&&(b=a.data),\"usage\"in a&&(c=jb[a.usage]),\"primitive\"in a&&(e=Sa[a.primitive]),\"count\"in a&&(g=a.count|0),\"type\"in a&&(m=q[a.type]),\"length\"in a)f=a.length|0;else if(f=g,5123===\nm||5122===m)f*=2;else if(5125===m||5124===m)f*=4;d(l,b,c,e,g,f,m)}else h(),l.primType=4,l.vertCount=0,l.type=5121;return k}var h=c.create(null,34963,!0),l=new g(h._buffer);e.elementsCount++;k(a);k._reglType=\"elements\";k._elements=l;k.subdata=function(a,b){h.subdata(a,b);return k};k.destroy=function(){p(l)};return k},createStream:function(a){var b=t.pop();b||(b=new g(c.create(null,34963,!0,!1)._buffer));d(b,a,35040,-1,-1,0,0);return b},destroyStream:function(a){t.push(a)},getElements:function(a){return\"function\"===\ntypeof a&&a._elements instanceof g?a._elements:null},clear:function(){S(f).forEach(p)}}}function kb(a){for(var b=x.allocType(5123,a.length),c=0;c>>31<<15,d=(e<<1>>>24)-127,e=e>>13&1023;b[c]=-24>d?g:-14>d?g+(e+1024>>-14-d):15>=e,c.height>>=e,C(c,d[e]),a.mipmask|=1<b;++b)a.images[b]=null;return a}function ib(a){for(var b=a.images,c=0;cb){for(var c=0;c=--this.refCount&&A(this)}});p.profile&&(d.getTotalTextureSize=function(){var a=0;Object.keys(X).forEach(function(b){a+=X[b].stats.size});return a});return{create2D:function(b,c){function e(a,b){var c=f.texInfo;z.call(c);var d=D();\"number\"===typeof a?\"number\"===typeof b?\nv(d,a|0,b|0):v(d,a|0,a|0):a?(O(c,a),N(d,a)):v(d,1,1);c.genMipmaps&&(d.mipmask=(d.width<<1)-1);f.mipmask=d.mipmask;r(f,d);f.internalformat=d.internalformat;e.width=d.width;e.height=d.height;T(f);B(d,3553);R(c,3553);Aa();ib(d);p.profile&&(f.stats.size=Ja(f.internalformat,f.type,d.width,d.height,c.genMipmaps,!1));e.format=J[f.internalformat];e.type=da[f.type];e.mag=oa[c.magFilter];e.min=za[c.minFilter];e.wrapS=ka[c.wrapS];e.wrapT=ka[c.wrapT];return e}var f=new F(3553);X[f.id]=f;d.textureCount++;e(b,\nc);e.subimage=function(a,b,c,d){b|=0;c|=0;d|=0;var n=h();r(n,f);n.width=0;n.height=0;C(n,a);n.width=n.width||(f.width>>d)-b;n.height=n.height||(f.height>>d)-c;T(f);k(n,3553,b,c,d);Aa();l(n);return e};e.resize=function(b,c){var d=b|0,h=c|0||d;if(d===f.width&&h===f.height)return e;e.width=f.width=d;e.height=f.height=h;T(f);for(var n,w=f.channels,y=f.type,I=0;f.mipmask>>I;++I){var fa=d>>I,ga=h>>I;if(!fa||!ga)break;n=x.zero.allocType(y,fa*ga*w);a.texImage2D(3553,I,f.format,fa,ga,0,f.format,f.type,n);\nn&&x.zero.freeType(n)}Aa();p.profile&&(f.stats.size=Ja(f.internalformat,f.type,d,h,!1,!1));return e};e._reglType=\"texture2d\";e._texture=f;p.profile&&(e.stats=f.stats);e.destroy=function(){f.decRef()};return e},createCube:function(b,c,e,f,g,ua){function A(a,b,c,d,e,f){var H,Y=m.texInfo;z.call(Y);for(H=0;6>H;++H)n[H]=D();if(\"number\"===typeof a||!a)for(a=a|0||1,H=0;6>H;++H)v(n[H],a,a);else if(\"object\"===typeof a)if(b)N(n[0],a),N(n[1],b),N(n[2],c),N(n[3],d),N(n[4],e),N(n[5],f);else if(O(Y,a),q(m,a),\"faces\"in\na)for(a=a.faces,H=0;6>H;++H)r(n[H],m),N(n[H],a[H]);else for(H=0;6>H;++H)N(n[H],a);r(m,n[0]);m.mipmask=Y.genMipmaps?(n[0].width<<1)-1:n[0].mipmask;m.internalformat=n[0].internalformat;A.width=n[0].width;A.height=n[0].height;T(m);for(H=0;6>H;++H)B(n[H],34069+H);R(Y,34067);Aa();p.profile&&(m.stats.size=Ja(m.internalformat,m.type,A.width,A.height,Y.genMipmaps,!0));A.format=J[m.internalformat];A.type=da[m.type];A.mag=oa[Y.magFilter];A.min=za[Y.minFilter];A.wrapS=ka[Y.wrapS];A.wrapT=ka[Y.wrapT];for(H=0;6>\nH;++H)ib(n[H]);return A}var m=new F(34067);X[m.id]=m;d.cubeCount++;var n=Array(6);A(b,c,e,f,g,ua);A.subimage=function(a,b,c,n,d){c|=0;n|=0;d|=0;var e=h();r(e,m);e.width=0;e.height=0;C(e,b);e.width=e.width||(m.width>>d)-c;e.height=e.height||(m.height>>d)-n;T(m);k(e,34069+a,c,n,d);Aa();l(e);return A};A.resize=function(b){b|=0;if(b!==m.width){A.width=m.width=b;A.height=m.height=b;T(m);for(var c=0;6>c;++c)for(var n=0;m.mipmask>>n;++n)a.texImage2D(34069+c,n,m.format,b>>n,b>>n,0,m.format,m.type,null);Aa();\np.profile&&(m.stats.size=Ja(m.internalformat,m.type,A.width,A.height,!1,!0));return A}};A._reglType=\"textureCube\";A._texture=m;p.profile&&(A.stats=m.stats);A.destroy=function(){m.decRef()};return A},clear:function(){for(var b=0;bc;++c)if(0!==(b.mipmask&1<>c,b.height>>c,0,b.internalformat,b.type,null);else for(var d=0;6>d;++d)a.texImage2D(34069+d,c,b.internalformat,b.width>>c,b.height>>c,0,b.internalformat,b.type,null);R(b.texInfo,b.target)})}}}function Ob(a,b,c,e,g,d){function p(a,b,c){this.target=a;this.texture=b;this.renderbuffer=c;var d=a=0;b?(a=b.width,d=b.height):c&&(a=c.width,d=c.height);\nthis.width=a;this.height=d}function f(a){a&&(a.texture&&a.texture._texture.decRef(),a.renderbuffer&&a.renderbuffer._renderbuffer.decRef())}function r(a,b,c){a&&(a.texture?a.texture._texture.refCount+=1:a.renderbuffer._renderbuffer.refCount+=1)}function q(b,c){c&&(c.texture?a.framebufferTexture2D(36160,b,c.target,c.texture._texture.texture,0):a.framebufferRenderbuffer(36160,b,36161,c.renderbuffer._renderbuffer.renderbuffer))}function t(a){var b=3553,c=null,d=null,e=a;\"object\"===typeof a&&(e=a.data,\n\"target\"in a&&(b=a.target|0));a=e._reglType;\"texture2d\"===a?c=e:\"textureCube\"===a?c=e:\"renderbuffer\"===a&&(d=e,b=36161);return new p(b,c,d)}function m(a,b,c,d,f){if(c)return a=e.create2D({width:a,height:b,format:d,type:f}),a._texture.refCount=0,new p(3553,a,null);a=g.create({width:a,height:b,format:d});a._renderbuffer.refCount=0;return new p(36161,null,a)}function C(a){return a&&(a.texture||a.renderbuffer)}function k(a,b,c){a&&(a.texture?a.texture.resize(b,c):a.renderbuffer&&a.renderbuffer.resize(b,\nc),a.width=b,a.height=c)}function h(){this.id=O++;R[this.id]=this;this.framebuffer=a.createFramebuffer();this.height=this.width=0;this.colorAttachments=[];this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function l(a){a.colorAttachments.forEach(f);f(a.depthAttachment);f(a.stencilAttachment);f(a.depthStencilAttachment)}function u(b){a.deleteFramebuffer(b.framebuffer);b.framebuffer=null;d.framebufferCount--;delete R[b.id]}function v(b){var d;a.bindFramebuffer(36160,b.framebuffer);\nvar e=b.colorAttachments;for(d=0;dd;++d){for(m=0;ma;++a)c[a].resize(d);b.width=b.height=d;return b},_reglType:\"framebufferCube\",destroy:function(){c.forEach(function(a){a.destroy()})}})},\nclear:function(){S(R).forEach(u)},restore:function(){B.cur=null;B.next=null;B.dirty=!0;S(R).forEach(function(b){b.framebuffer=a.createFramebuffer();v(b)})}})}function ub(){this.w=this.z=this.y=this.x=this.state=0;this.buffer=null;this.size=0;this.normalized=!1;this.type=5126;this.divisor=this.stride=this.offset=0}function Pb(a,b,c,e){a=c.maxAttributes;b=Array(a);for(c=0;ca&&(a=b.stats.uniformsCount)});return a},c.getMaxAttributesCount=function(){var a=0;C.forEach(function(b){b.stats.attributesCount>a&&(a=b.stats.attributesCount)});return a});return{clear:function(){var b=a.deleteShader.bind(a);S(q).forEach(b);q={};S(t).forEach(b);t={};C.forEach(function(b){a.deleteProgram(b.program)});\nC.length=0;m={};c.shaderCount=0},program:function(a,b,d){var e=m[b];e||(e=m[b]={});var g=e[a];g||(g=new f(b,a),c.shaderCount++,r(g,d),e[a]=g,C.push(g));return g},restore:function(){q={};t={};for(var a=0;a\"+b+\"?\"+e+\".constant[\"+b+\"]:0;\"}).join(\"\"),\"}}else{\",\"if(\",g,\"(\",e,\".buffer)){\",y,\"=\",n,\".createStream(\",34962,\",\",e,\".buffer);\",\"}else{\",y,\"=\",n,\".getBuffer(\",e,\".buffer);\",\"}\",k,'=\"type\" in ',e,\"?\",f.glTypes,\"[\",e,\".type]:\",y,\".dtype;\",\nw.normalized,\"=!!\",e,\".normalized;\");d(\"size\");d(\"offset\");d(\"stride\");d(\"divisor\");c(\"}}\");c.exit(\"if(\",w.isStream,\"){\",n,\".destroyStream(\",y,\");\",\"}\");return w})});return f}function M(a){var b=a[\"static\"],c=a.dynamic,d={};Object.keys(b).forEach(function(a){var c=b[a];d[a]=D(function(a,b){return\"number\"===typeof c||\"boolean\"===typeof c?\"\"+c:a.link(c)})});Object.keys(c).forEach(function(a){var b=c[a];d[a]=P(b,function(a,c){return a.invoke(c,b)})});return d}function A(a,b,c,d,e){var f=z(a,e),g=x(a,\nf,e),h=O(a,e),k=R(a,e),m=E(a,e),ba=g.viewport;ba&&(k.viewport=ba);ba=l(\"scissor.box\");(g=g[ba])&&(k[ba]=g);g=0>1)\",v],\");\")}function b(){c(u,\".drawArraysInstancedANGLE(\",[q,r,t,v],\");\")}p?da?a():(c(\"if(\",p,\"){\"),a(),c(\"}else{\"),b(),c(\"}\")):b()}function g(){function a(){c(k+\".drawElements(\"+[q,t,C,r+\"<<((\"+C+\"-5121)>>1)\"]+\");\")}function b(){c(k+\".drawArrays(\"+[q,r,t]+\");\")}p?da?a():(c(\"if(\",p,\"){\"),a(),c(\"}else{\"),b(),c(\"}\")):b()}var h=a.shared,k=h.gl,m=h.draw,l=d.draw,p=function(){var e=l.elements,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f)}else e=f.def(m,\n\".\",\"elements\");e&&f(\"if(\"+e+\")\"+k+\".bindBuffer(34963,\"+e+\".buffer.buffer);\");return e}(),q=e(\"primitive\"),r=e(\"offset\"),t=function(){var e=l.count,f=b;if(e){if(e.contextDep&&d.contextDynamic||e.propDep)f=c;e=e.append(a,f)}else e=f.def(m,\".\",\"count\");return e}();if(\"number\"===typeof t){if(0===t)return}else c(\"if(\",t,\"){\"),c.exit(\"}\");var v,u;ea&&(v=e(\"instances\"),u=a.instancing);var C=p+\".type\",da=l.elements&&va(l.elements);ea&&(\"number\"!==typeof v||0<=v)?\"string\"===typeof v?(c(\"if(\",v,\">0){\"),f(),\nc(\"}else if(\",v,\"<0){\"),g(),c(\"}\")):f():g()}function ca(a,b,c,d,e){b=N();e=b.proc(\"body\",e);ea&&(b.instancing=e.def(b.shared.extensions,\".angle_instanced_arrays\"));a(b,e,c,d);return b.compile().body}function L(a,b,c,d){wa(a,b);U(a,b,c,d.attributes,function(){return!0});W(a,b,c,d.uniforms,function(){return!0});S(a,b,b,c)}function da(a,b){var c=a.proc(\"draw\",1);wa(a,c);ua(a,c,b.context);K(a,c,b.framebuffer);V(a,c,b);Q(a,c,b.state);G(a,c,b,!1,!0);var d=b.shader.progVar.append(a,c);c(a.shared.gl,\".useProgram(\",\nd,\".program);\");if(b.shader.program)L(a,c,b,b.shader.program);else{var e=a.global.def(\"{}\"),f=c.def(d,\".id\"),g=c.def(e,\"[\",f,\"]\");c(a.cond(g).then(g,\".call(this,a0);\")[\"else\"](g,\"=\",e,\"[\",f,\"]=\",a.link(function(c){return ca(L,a,b,c,1)}),\"(\",d,\");\",g,\".call(this,a0);\"))}0=--this.refCount&&p(this)};g.profile&&(e.getTotalRenderbufferSize=function(){var a=0;Object.keys(t).forEach(function(b){a+=t[b].stats.size});return a});return{create:function(b,c){function k(b,c){var d=0,e=0,m=32854;\"object\"===typeof b&&b?(\"shape\"in b?(e=b.shape,d=e[0]|0,e=e[1]|0):(\"radius\"in b&&(d=e=b.radius|0),\"width\"in b&&(d=b.width|0),\"height\"in b&&(e=b.height|0)),\"format\"in b&&(m=f[b.format])):\"number\"===\ntypeof b?(d=b|0,e=\"number\"===typeof c?c|0:d):b||(d=e=1);if(d!==h.width||e!==h.height||m!==h.format)return k.width=h.width=d,k.height=h.height=e,h.format=m,a.bindRenderbuffer(36161,h.renderbuffer),a.renderbufferStorage(36161,m,d,e),g.profile&&(h.stats.size=Q[h.format]*h.width*h.height),k.format=r[h.format],k}var h=new d(a.createRenderbuffer());t[h.id]=h;e.renderbufferCount++;k(b,c);k.resize=function(b,c){var d=b|0,e=c|0||d;if(d===h.width&&e===h.height)return k;k.width=h.width=d;k.height=h.height=e;\na.bindRenderbuffer(36161,h.renderbuffer);a.renderbufferStorage(36161,h.format,d,e);g.profile&&(h.stats.size=Q[h.format]*h.width*h.height);return k};k._reglType=\"renderbuffer\";k._renderbuffer=h;g.profile&&(k.stats=h.stats);k.destroy=function(){h.decRef()};return k},clear:function(){S(t).forEach(p)},restore:function(){S(t).forEach(function(b){b.renderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,b.renderbuffer);a.renderbufferStorage(36161,b.format,b.width,b.height)});a.bindRenderbuffer(36161,\nnull)}}},Wa=[];Wa[6408]=4;Wa[6407]=3;var Na=[];Na[5121]=1;Na[5126]=4;Na[36193]=2;var Da=[\"x\",\"y\",\"z\",\"w\"],Ub=\"blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset\".split(\" \"),Ga={0:0,1:1,zero:0,one:1,\"src color\":768,\"one minus src color\":769,\"src alpha\":770,\"one minus src alpha\":771,\"dst color\":774,\"one minus dst color\":775,\"dst alpha\":772,\"one minus dst alpha\":773,\"constant color\":32769,\"one minus constant color\":32770,\"constant alpha\":32771,\n\"one minus constant alpha\":32772,\"src alpha saturate\":776},Xa={never:512,less:513,\"<\":513,equal:514,\"=\":514,\"==\":514,\"===\":514,lequal:515,\"<=\":515,greater:516,\">\":516,notequal:517,\"!=\":517,\"!==\":517,gequal:518,\">=\":518,always:519},Pa={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,\"increment wrap\":34055,\"decrement wrap\":34056,invert:5386},wb={cw:2304,ccw:2305},xb=new Z(!1,!1,!1,function(){}),Xb=function(a,b){function c(){this.endQueryIndex=this.startQueryIndex=-1;this.sum=0;this.stats=\nnull}function e(a,b,d){var e=p.pop()||new c;e.startQueryIndex=a;e.endQueryIndex=b;e.sum=0;e.stats=d;f.push(e)}if(!b.ext_disjoint_timer_query)return null;var g=[],d=[],p=[],f=[],r=[],q=[];return{beginQuery:function(a){var c=g.pop()||b.ext_disjoint_timer_query.createQueryEXT();b.ext_disjoint_timer_query.beginQueryEXT(35007,c);d.push(c);e(d.length-1,d.length,a)},endQuery:function(){b.ext_disjoint_timer_query.endQueryEXT(35007)},pushScopeStats:e,update:function(){var a,c;a=d.length;if(0!==a){q.length=\nMath.max(q.length,a+1);r.length=Math.max(r.length,a+1);r[0]=0;var e=q[0]=0;for(c=a=0;c=G.length&&e()}var c=yb(G,a);G[c]=b}}}function q(){var a=S.viewport,b=S.scissor_box;a[0]=a[1]=b[0]=b[1]=0;O.viewportWidth=O.framebufferWidth=O.drawingBufferWidth=a[2]=b[2]=k.drawingBufferWidth;O.viewportHeight=O.framebufferHeight=O.drawingBufferHeight=a[3]=b[3]=k.drawingBufferHeight}function t(){O.tick+=1;O.time=z();\nq();V.procs.poll()}function m(){q();V.procs.refresh();B&&B.update()}function z(){return(zb()-D)/1E3}a=Eb(a);if(!a)return null;var k=a.gl,h=k.getContextAttributes();k.isContextLost();var l=Fb(k,a);if(!l)return null;var u=Bb(),v={bufferCount:0,elementsCount:0,framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,renderbufferCount:0,maxTextureUnits:0},x=l.extensions,B=Xb(k,x),D=zb(),J=k.drawingBufferWidth,P=k.drawingBufferHeight,O={tick:0,time:0,viewportWidth:J,viewportHeight:P,framebufferWidth:J,\nframebufferHeight:P,drawingBufferWidth:J,drawingBufferHeight:P,pixelRatio:a.pixelRatio},R=Vb(k,x),J=Pb(k,x,R,u),F=Gb(k,v,a,J),T=Hb(k,x,F,v),Q=Qb(k,u,v,a),A=Kb(k,x,R,function(){V.procs.poll()},O,v,a),M=Wb(k,x,R,v,a),K=Ob(k,x,R,A,M,v),V=Tb(k,u,x,R,F,T,A,K,{},J,Q,{elements:null,primitive:4,count:-1,offset:0,instances:-1},O,B,a),u=Rb(k,K,V.procs.poll,O,h,x,R),S=V.next,L=k.canvas,G=[],U=[],W=[],Z=[a.onDestroy],ca=null;L&&(L.addEventListener(\"webglcontextlost\",g,!1),L.addEventListener(\"webglcontextrestored\",\nd,!1));var aa=K.setFBO=p({framebuffer:la.define.call(null,1,\"framebuffer\")});m();h=E(p,{clear:function(a){if(\"framebuffer\"in a)if(a.framebuffer&&\"framebufferCube\"===a.framebuffer_reglType)for(var b=0;6>b;++b)aa(E({framebuffer:a.framebuffer.faces[b]},a),f);else aa(a,f);else f(null,a)},prop:la.define.bind(null,1),context:la.define.bind(null,2),\"this\":la.define.bind(null,3),draw:p({}),buffer:function(a){return F.create(a,34962,!1,!1)},elements:function(a){return T.create(a,!1)},texture:A.create2D,cube:A.createCube,\nrenderbuffer:M.create,framebuffer:K.create,framebufferCube:K.createCube,attributes:h,frame:r,on:function(a,b){var c;switch(a){case \"frame\":return r(b);case \"lost\":c=U;break;case \"restore\":c=W;break;case \"destroy\":c=Z}c.push(b);return{cancel:function(){for(var a=0;a cache.ts + minInterval) {\n exec();\n return;\n }\n\n cache.timer = setTimeout(function() {\n exec();\n cache.timer = null;\n }, minInterval);\n};\n\nexports.done = function(id) {\n var cache = timerCache[id];\n if(!cache || !cache.timer) return Promise.resolve();\n\n return new Promise(function(resolve) {\n var previousOnDone = cache.onDone;\n cache.onDone = function onDone() {\n if(previousOnDone) previousOnDone();\n resolve();\n cache.onDone = null;\n };\n });\n};\n\n/**\n * Clear the throttle cache for one or all timers\n * @param {optional string} id:\n * if provided, clear just this timer\n * if omitted, clear all timers (mainly useful for testing)\n */\nexports.clear = function(id) {\n if(id) {\n _clearTimeout(timerCache[id]);\n delete timerCache[id];\n } else {\n for(var idi in timerCache) exports.clear(idi);\n }\n};\n\nfunction _clearTimeout(cache) {\n if(cache && cache.timer !== null) {\n clearTimeout(cache.timer);\n cache.timer = null;\n }\n}\n\n\n/***/ }),\n\n/***/ \"7e25\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\n\n/***/ }),\n\n/***/ \"7e55\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar tarjan = __webpack_require__(\"53cc\");\n\nmodule.exports = function findCircuits(edges) {\n var circuits = []; // Output\n\n var stack = [];\n var blocked = [];\n var B = {};\n var Ak = [];\n var s;\n\n function unblock(u) {\n blocked[u] = false;\n if(B.hasOwnProperty(u)) {\n Object.keys(B[u]).forEach(function(w) {\n delete B[u][w];\n if(blocked[w]) {unblock(w);}\n });\n }\n }\n\n function circuit(v) {\n var found = false;\n\n stack.push(v);\n blocked[v] = true;\n\n // L1\n var i;\n var w;\n for(i = 0; i < Ak[v].length; i++) {\n w = Ak[v][i];\n if(w === s) {\n output(s, stack);\n found = true;\n } else if(!blocked[w]) {\n found = circuit(w);\n }\n }\n\n // L2\n if(found) {\n unblock(v);\n } else {\n for(i = 0; i < Ak[v].length; i++) {\n w = Ak[v][i];\n var entry = B[w];\n\n if(!entry) {\n entry = {};\n B[w] = entry;\n }\n\n entry[w] = true;\n }\n }\n stack.pop();\n return found;\n }\n\n function output(start, stack) {\n var cycle = [].concat(stack).concat(start);\n circuits.push(cycle);\n }\n\n function subgraph(minId) {\n // Remove edges with indice smaller than minId\n for(var i = 0; i < edges.length; i++) {\n if(i < minId) edges[i] = [];\n edges[i] = edges[i].filter(function(i) {\n return i >= minId;\n });\n }\n }\n\n function adjacencyStructureSCC(from) {\n // Make subgraph starting from vertex minId\n subgraph(from);\n var g = edges;\n\n // Find strongly connected components using Tarjan algorithm\n var sccs = tarjan(g);\n\n // Filter out trivial connected components (ie. made of one node)\n var ccs = sccs.components.filter(function(scc) {\n return scc.length > 1;\n });\n\n // Find least vertex\n var leastVertex = Infinity;\n var leastVertexComponent;\n for(var i = 0; i < ccs.length; i++) {\n for(var j = 0; j < ccs[i].length; j++) {\n if(ccs[i][j] < leastVertex) {\n leastVertex = ccs[i][j];\n leastVertexComponent = i;\n }\n }\n }\n\n var cc = ccs[leastVertexComponent];\n\n if(!cc) return false;\n\n // Return the adjacency list of first component\n var adjList = edges.map(function(l, index) {\n if(cc.indexOf(index) === -1) return [];\n return l.filter(function(i) {\n return cc.indexOf(i) !== -1;\n });\n });\n\n return {\n leastVertex: leastVertex,\n adjList: adjList\n };\n }\n\n s = 0;\n var n = edges.length;\n while(s < n) {\n // find strong component with least vertex in\n // subgraph starting from vertex `s`\n var p = adjacencyStructureSCC(s);\n\n // Its least vertex\n s = p.leastVertex;\n // Its adjacency list\n Ak = p.adjList;\n\n if(Ak) {\n for(var i = 0; i < Ak.length; i++) {\n for(var j = 0; j < Ak[i].length; j++) {\n var vertexId = Ak[i][j];\n blocked[+vertexId] = false;\n B[vertexId] = {};\n }\n }\n circuit(s);\n s = s + 1;\n } else {\n s = n;\n }\n\n }\n\n return circuits;\n};\n\n\n/***/ }),\n\n/***/ \"7e91\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = createAttributeWrapper\n\nvar GLError = __webpack_require__(\"a3fd\")\n\nfunction ShaderAttribute(\n gl\n , wrapper\n , index\n , locations\n , dimension\n , constFunc) {\n this._gl = gl\n this._wrapper = wrapper\n this._index = index\n this._locations = locations\n this._dimension = dimension\n this._constFunc = constFunc\n}\n\nvar proto = ShaderAttribute.prototype\n\nproto.pointer = function setAttribPointer(\n type\n , normalized\n , stride\n , offset) {\n\n var self = this\n var gl = self._gl\n var location = self._locations[self._index]\n\n gl.vertexAttribPointer(\n location\n , self._dimension\n , type || gl.FLOAT\n , !!normalized\n , stride || 0\n , offset || 0)\n gl.enableVertexAttribArray(location)\n}\n\nproto.set = function(x0, x1, x2, x3) {\n return this._constFunc(this._locations[this._index], x0, x1, x2, x3)\n}\n\nObject.defineProperty(proto, 'location', {\n get: function() {\n return this._locations[this._index]\n }\n , set: function(v) {\n if(v !== this._locations[this._index]) {\n this._locations[this._index] = v|0\n this._wrapper.program = null\n }\n return v|0\n }\n})\n\n//Adds a vector attribute to obj\nfunction addVectorAttribute(\n gl\n , wrapper\n , index\n , locations\n , dimension\n , obj\n , name) {\n\n //Construct constant function\n var constFuncArgs = [ 'gl', 'v' ]\n var varNames = []\n for(var i=0; i= 0) {\n var d = type.charCodeAt(type.length-1) - 48\n if(d < 2 || d > 4) {\n throw new GLError('', 'Invalid data type for attribute ' + name + ': ' + type)\n }\n addVectorAttribute(\n gl\n , wrapper\n , locs[0]\n , locations\n , d\n , obj\n , name)\n } else if(type.indexOf('mat') >= 0) {\n var d = type.charCodeAt(type.length-1) - 48\n if(d < 2 || d > 4) {\n throw new GLError('', 'Invalid data type for attribute ' + name + ': ' + type)\n }\n addMatrixAttribute(\n gl\n , wrapper\n , locs\n , locations\n , d\n , obj\n , name)\n } else {\n throw new GLError('', 'Unknown data type for attribute ' + name + ': ' + type)\n }\n break\n }\n }\n return obj\n}\n\n\n/***/ }),\n\n/***/ \"7e96\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Axes = __webpack_require__(\"0642\");\n\nmodule.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n\n var mockGd = {_fullLayout: fullLayout};\n var xa = Axes.getFromTrace(mockGd, trace, 'x');\n var ya = Axes.getFromTrace(mockGd, trace, 'y');\n\n labels.xLabel = Axes.tickText(xa, cdi.x, true).text;\n labels.yLabel = Axes.tickText(ya, cdi.y, true).text;\n\n return labels;\n};\n\n\n/***/ }),\n\n/***/ \"7eee\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar attributes = __webpack_require__(\"8c2d\");\n\nvar xyAttrs = {\n error_x: Lib.extendFlat({}, attributes),\n error_y: Lib.extendFlat({}, attributes)\n};\ndelete xyAttrs.error_x.copy_zstyle;\ndelete xyAttrs.error_y.copy_zstyle;\ndelete xyAttrs.error_y.copy_ystyle;\n\nvar xyzAttrs = {\n error_x: Lib.extendFlat({}, attributes),\n error_y: Lib.extendFlat({}, attributes),\n error_z: Lib.extendFlat({}, attributes)\n};\ndelete xyzAttrs.error_x.copy_ystyle;\ndelete xyzAttrs.error_y.copy_ystyle;\ndelete xyzAttrs.error_z.copy_ystyle;\ndelete xyzAttrs.error_z.copy_zstyle;\n\nmodule.exports = {\n moduleType: 'component',\n name: 'errorbars',\n\n schema: {\n traces: {\n scatter: xyAttrs,\n bar: xyAttrs,\n histogram: xyAttrs,\n scatter3d: overrideAll(xyzAttrs, 'calc', 'nested'),\n scattergl: overrideAll(xyAttrs, 'calc', 'nested')\n }\n },\n\n supplyDefaults: __webpack_require__(\"2015\"),\n\n calc: __webpack_require__(\"db3f\"),\n makeComputeError: __webpack_require__(\"3c31\"),\n\n plot: __webpack_require__(\"553a\"),\n style: __webpack_require__(\"afdd\"),\n hoverInfo: hoverInfo\n};\n\nfunction hoverInfo(calcPoint, trace, hoverPoint) {\n if((trace.error_y || {}).visible) {\n hoverPoint.yerr = calcPoint.yh - calcPoint.y;\n if(!trace.error_y.symmetric) hoverPoint.yerrneg = calcPoint.y - calcPoint.ys;\n }\n if((trace.error_x || {}).visible) {\n hoverPoint.xerr = calcPoint.xh - calcPoint.x;\n if(!trace.error_x.symmetric) hoverPoint.xerrneg = calcPoint.x - calcPoint.xs;\n }\n}\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @module color-rgba */\n\n\n\nvar parse = __webpack_require__(\"e7cb\")\nvar hsl = __webpack_require__(\"13c3\")\nvar clamp = __webpack_require__(\"53a5\")\n\nmodule.exports = function rgba (color) {\n\tvar values, i, l\n\n\t//attempt to parse non-array arguments\n\tvar parsed = parse(color)\n\n\tif (!parsed.space) return []\n\n\tvalues = Array(3)\n\tvalues[0] = clamp(parsed.values[0], 0, 255)\n\tvalues[1] = clamp(parsed.values[1], 0, 255)\n\tvalues[2] = clamp(parsed.values[2], 0, 255)\n\n\tif (parsed.space[0] === 'h') {\n\t\tvalues = hsl.rgb(values)\n\t}\n\n\tvalues.push(clamp(parsed.alpha, 0, 1))\n\n\treturn values\n}\n\n\n/***/ }),\n\n/***/ \"7f6b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ndarray = __webpack_require__(\"b5bb\")\nvar do_convert = __webpack_require__(\"c808\")\n\nmodule.exports = function convert(arr, result) {\n var shape = [], c = arr, sz = 1\n while(Array.isArray(c)) {\n shape.push(c.length)\n sz *= c.length\n c = c[0]\n }\n if(shape.length === 0) {\n return ndarray()\n }\n if(!result) {\n result = ndarray(new Float64Array(sz), shape)\n }\n do_convert(result, arr)\n return result\n}\n\n\n/***/ }),\n\n/***/ \"7f9a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"da84\");\nvar inspectSource = __webpack_require__(\"8925\");\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n\n/***/ \"7f9b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar createShaderWrapper = __webpack_require__(\"28dd\")\nvar glslify = __webpack_require__(\"e98f\")\n\nvar perspectiveVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform vec4 highlightId;\\nuniform float highlightScale;\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float scale = 1.0;\\n if(distance(highlightId, id) < 0.0001) {\\n scale = highlightScale;\\n }\\n\\n vec4 worldPosition = model * vec4(position, 1);\\n vec4 viewPosition = view * worldPosition;\\n viewPosition = viewPosition / viewPosition.w;\\n vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\\n\\n gl_Position = clipPosition;\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = position;\\n }\\n}\"])\nvar orthographicVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform vec2 screenSize;\\nuniform vec3 clipBounds[2];\\nuniform float highlightScale, pixelRatio;\\nuniform vec4 highlightId;\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float scale = pixelRatio;\\n if(distance(highlightId.bgr, id.bgr) < 0.001) {\\n scale *= highlightScale;\\n }\\n\\n vec4 worldPosition = model * vec4(position, 1.0);\\n vec4 viewPosition = view * worldPosition;\\n vec4 clipPosition = projection * viewPosition;\\n clipPosition /= clipPosition.w;\\n\\n gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = position;\\n }\\n}\"])\nvar projectionVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform float highlightScale;\\nuniform vec4 highlightId;\\nuniform vec3 axes[2];\\nuniform mat4 model, view, projection;\\nuniform vec2 screenSize;\\nuniform vec3 clipBounds[2];\\nuniform float scale, pixelRatio;\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float lscale = pixelRatio * scale;\\n if(distance(highlightId, id) < 0.0001) {\\n lscale *= highlightScale;\\n }\\n\\n vec4 clipCenter = projection * view * model * vec4(position, 1);\\n vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\\n vec4 clipPosition = projection * view * model * vec4(dataPosition, 1);\\n\\n gl_Position = clipPosition;\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = dataPosition;\\n }\\n}\\n\"])\nvar drawFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 fragClipBounds[2];\\nuniform float opacity;\\n\\nvarying vec4 interpColor;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (\\n outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) ||\\n interpColor.a * opacity == 0.\\n ) discard;\\n gl_FragColor = interpColor * opacity;\\n}\\n\"])\nvar pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 fragClipBounds[2];\\nuniform float pickGroup;\\n\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\\n\\n gl_FragColor = vec4(pickGroup, pickId.bgr);\\n}\"])\n\nvar ATTRIBUTES = [\n {name: 'position', type: 'vec3'},\n {name: 'color', type: 'vec4'},\n {name: 'glyph', type: 'vec2'},\n {name: 'id', type: 'vec4'}\n]\n\nvar perspective = {\n vertex: perspectiveVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n },\n ortho = {\n vertex: orthographicVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n },\n project = {\n vertex: projectionVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n },\n pickPerspective = {\n vertex: perspectiveVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n },\n pickOrtho = {\n vertex: orthographicVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n },\n pickProject = {\n vertex: projectionVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n }\n\nfunction createShader(gl, src) {\n var shader = createShaderWrapper(gl, src)\n var attr = shader.attributes\n attr.position.location = 0\n attr.color.location = 1\n attr.glyph.location = 2\n attr.id.location = 3\n return shader\n}\n\nexports.createPerspective = function(gl) {\n return createShader(gl, perspective)\n}\nexports.createOrtho = function(gl) {\n return createShader(gl, ortho)\n}\nexports.createProject = function(gl) {\n return createShader(gl, project)\n}\nexports.createPickPerspective = function(gl) {\n return createShader(gl, pickPerspective)\n}\nexports.createPickOrtho = function(gl) {\n return createShader(gl, pickOrtho)\n}\nexports.createPickProject = function(gl) {\n return createShader(gl, pickProject)\n}\n\n\n/***/ }),\n\n/***/ \"7f9e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Axes = __webpack_require__(\"0642\");\n\nvar binFunctions = __webpack_require__(\"6dcc\");\nvar normFunctions = __webpack_require__(\"c005\");\nvar doAvg = __webpack_require__(\"9547\");\nvar getBinSpanLabelRound = __webpack_require__(\"5913\");\nvar calcAllAutoBins = __webpack_require__(\"0c39\").calcAllAutoBins;\n\nmodule.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n\n var xcalendar = trace.xcalendar;\n var ycalendar = trace.ycalendar;\n var xr2c = function(v) { return xa.r2c(v, 0, xcalendar); };\n var yr2c = function(v) { return ya.r2c(v, 0, ycalendar); };\n var xc2r = function(v) { return xa.c2r(v, 0, xcalendar); };\n var yc2r = function(v) { return ya.c2r(v, 0, ycalendar); };\n\n var i, j, n, m;\n\n // calculate the bins\n var xBinsAndPos = calcAllAutoBins(gd, trace, xa, 'x');\n var xBinSpec = xBinsAndPos[0];\n var xPos0 = xBinsAndPos[1];\n var yBinsAndPos = calcAllAutoBins(gd, trace, ya, 'y');\n var yBinSpec = yBinsAndPos[0];\n var yPos0 = yBinsAndPos[1];\n\n var serieslen = trace._length;\n if(xPos0.length > serieslen) xPos0.splice(serieslen, xPos0.length - serieslen);\n if(yPos0.length > serieslen) yPos0.splice(serieslen, yPos0.length - serieslen);\n\n // make the empty bin array & scale the map\n var z = [];\n var onecol = [];\n var zerocol = [];\n var nonuniformBinsX = typeof xBinSpec.size === 'string';\n var nonuniformBinsY = typeof yBinSpec.size === 'string';\n var xEdges = [];\n var yEdges = [];\n var xbins = nonuniformBinsX ? xEdges : xBinSpec;\n var ybins = nonuniformBinsY ? yEdges : yBinSpec;\n var total = 0;\n var counts = [];\n var inputPoints = [];\n var norm = trace.histnorm;\n var func = trace.histfunc;\n var densitynorm = norm.indexOf('density') !== -1;\n var extremefunc = func === 'max' || func === 'min';\n var sizeinit = extremefunc ? null : 0;\n var binfunc = binFunctions.count;\n var normfunc = normFunctions[norm];\n var doavg = false;\n var xinc = [];\n var yinc = [];\n\n // set a binning function other than count?\n // for binning functions: check first for 'z',\n // then 'mc' in case we had a colored scatter plot\n // and want to transfer these colors to the 2D histo\n // TODO: axe this, make it the responsibility of the app changing type? or an impliedEdit?\n var rawCounterData = ('z' in trace) ?\n trace.z :\n (('marker' in trace && Array.isArray(trace.marker.color)) ?\n trace.marker.color : '');\n if(rawCounterData && func !== 'count') {\n doavg = func === 'avg';\n binfunc = binFunctions[func];\n }\n\n // decrease end a little in case of rounding errors\n var xBinSize = xBinSpec.size;\n var xBinStart = xr2c(xBinSpec.start);\n var xBinEnd = xr2c(xBinSpec.end) +\n (xBinStart - Axes.tickIncrement(xBinStart, xBinSize, false, xcalendar)) / 1e6;\n\n for(i = xBinStart; i < xBinEnd; i = Axes.tickIncrement(i, xBinSize, false, xcalendar)) {\n onecol.push(sizeinit);\n xEdges.push(i);\n if(doavg) zerocol.push(0);\n }\n xEdges.push(i);\n\n var nx = onecol.length;\n var dx = (i - xBinStart) / nx;\n var x0 = xc2r(xBinStart + dx / 2);\n\n var yBinSize = yBinSpec.size;\n var yBinStart = yr2c(yBinSpec.start);\n var yBinEnd = yr2c(yBinSpec.end) +\n (yBinStart - Axes.tickIncrement(yBinStart, yBinSize, false, ycalendar)) / 1e6;\n\n for(i = yBinStart; i < yBinEnd; i = Axes.tickIncrement(i, yBinSize, false, ycalendar)) {\n z.push(onecol.slice());\n yEdges.push(i);\n var ipCol = new Array(nx);\n for(j = 0; j < nx; j++) ipCol[j] = [];\n inputPoints.push(ipCol);\n if(doavg) counts.push(zerocol.slice());\n }\n yEdges.push(i);\n\n var ny = z.length;\n var dy = (i - yBinStart) / ny;\n var y0 = yc2r(yBinStart + dy / 2);\n\n if(densitynorm) {\n xinc = makeIncrements(onecol.length, xbins, dx, nonuniformBinsX);\n yinc = makeIncrements(z.length, ybins, dy, nonuniformBinsY);\n }\n\n // for date axes we need bin bounds to be calcdata. For nonuniform bins\n // we already have this, but uniform with start/end/size they're still strings.\n if(!nonuniformBinsX && xa.type === 'date') xbins = binsToCalc(xr2c, xbins);\n if(!nonuniformBinsY && ya.type === 'date') ybins = binsToCalc(yr2c, ybins);\n\n // put data into bins\n var uniqueValsPerX = true;\n var uniqueValsPerY = true;\n var xVals = new Array(nx);\n var yVals = new Array(ny);\n var xGapLow = Infinity;\n var xGapHigh = Infinity;\n var yGapLow = Infinity;\n var yGapHigh = Infinity;\n for(i = 0; i < serieslen; i++) {\n var xi = xPos0[i];\n var yi = yPos0[i];\n n = Lib.findBin(xi, xbins);\n m = Lib.findBin(yi, ybins);\n if(n >= 0 && n < nx && m >= 0 && m < ny) {\n total += binfunc(n, i, z[m], rawCounterData, counts[m]);\n inputPoints[m][n].push(i);\n\n if(uniqueValsPerX) {\n if(xVals[n] === undefined) xVals[n] = xi;\n else if(xVals[n] !== xi) uniqueValsPerX = false;\n }\n if(uniqueValsPerY) {\n if(yVals[m] === undefined) yVals[m] = yi;\n else if(yVals[m] !== yi) uniqueValsPerY = false;\n }\n\n xGapLow = Math.min(xGapLow, xi - xEdges[n]);\n xGapHigh = Math.min(xGapHigh, xEdges[n + 1] - xi);\n yGapLow = Math.min(yGapLow, yi - yEdges[m]);\n yGapHigh = Math.min(yGapHigh, yEdges[m + 1] - yi);\n }\n }\n // normalize, if needed\n if(doavg) {\n for(m = 0; m < ny; m++) total += doAvg(z[m], counts[m]);\n }\n if(normfunc) {\n for(m = 0; m < ny; m++) normfunc(z[m], total, xinc, yinc[m]);\n }\n\n return {\n x: xPos0,\n xRanges: getRanges(xEdges, uniqueValsPerX && xVals, xGapLow, xGapHigh, xa, xcalendar),\n x0: x0,\n dx: dx,\n y: yPos0,\n yRanges: getRanges(yEdges, uniqueValsPerY && yVals, yGapLow, yGapHigh, ya, ycalendar),\n y0: y0,\n dy: dy,\n z: z,\n pts: inputPoints\n };\n};\n\nfunction makeIncrements(len, bins, dv, nonuniform) {\n var out = new Array(len);\n var i;\n if(nonuniform) {\n for(i = 0; i < len; i++) out[i] = 1 / (bins[i + 1] - bins[i]);\n } else {\n var inc = 1 / dv;\n for(i = 0; i < len; i++) out[i] = inc;\n }\n return out;\n}\n\nfunction binsToCalc(r2c, bins) {\n return {\n start: r2c(bins.start),\n end: r2c(bins.end),\n size: bins.size\n };\n}\n\nfunction getRanges(edges, uniqueVals, gapLow, gapHigh, ax, calendar) {\n var i;\n var len = edges.length - 1;\n var out = new Array(len);\n var roundFn = getBinSpanLabelRound(gapLow, gapHigh, edges, ax, calendar);\n\n for(i = 0; i < len; i++) {\n var v = (uniqueVals || [])[i];\n out[i] = v === undefined ?\n [roundFn(edges[i]), roundFn(edges[i + 1], true)] :\n [v, v];\n }\n return out;\n}\n\n\n/***/ }),\n\n/***/ \"7fb7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n // hover labels for multiple horizontal bars get tilted by this angle\n YANGLE: 60,\n\n // size and display constants for hover text\n\n // pixel size of hover arrows\n HOVERARROWSIZE: 6,\n // pixels padding around text\n HOVERTEXTPAD: 3,\n // hover font\n HOVERFONTSIZE: 13,\n HOVERFONT: 'Arial, sans-serif',\n\n // minimum time (msec) between hover calls\n HOVERMINTIME: 50,\n\n // ID suffix (with fullLayout._uid) for hover events in the throttle cache\n HOVERID: '-hover'\n};\n\n\n/***/ }),\n\n/***/ \"7fbb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Axes = __webpack_require__(\"0642\");\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\nmodule.exports = function calcGridlines(trace, axisLetter, crossAxisLetter) {\n var i, j, j0;\n var eps, bounds, n1, n2, n, value, v;\n var j1, v0, v1, d;\n\n var data = trace['_' + axisLetter];\n var axis = trace[axisLetter + 'axis'];\n\n var gridlines = axis._gridlines = [];\n var minorgridlines = axis._minorgridlines = [];\n var boundarylines = axis._boundarylines = [];\n\n var crossData = trace['_' + crossAxisLetter];\n var crossAxis = trace[crossAxisLetter + 'axis'];\n\n if(axis.tickmode === 'array') {\n axis.tickvals = data.slice();\n }\n\n var xcp = trace._xctrl;\n var ycp = trace._yctrl;\n var nea = xcp[0].length;\n var neb = xcp.length;\n var na = trace._a.length;\n var nb = trace._b.length;\n\n Axes.prepTicks(axis);\n\n // don't leave tickvals in axis looking like an attribute\n if(axis.tickmode === 'array') delete axis.tickvals;\n\n // The default is an empty array that will cause the join to remove the gridline if\n // it's just disappeared:\n // axis._startline = axis._endline = [];\n\n // If the cross axis uses bicubic interpolation, then the grid\n // lines fall once every three expanded grid row/cols:\n var stride = axis.smoothing ? 3 : 1;\n\n function constructValueGridline(value) {\n var i, j, j0, tj, pxy, i0, ti, xy, dxydi0, dxydi1, dxydj0, dxydj1;\n var xpoints = [];\n var ypoints = [];\n var ret = {};\n // Search for the fractional grid index giving this line:\n if(axisLetter === 'b') {\n // For the position we use just the i-j coordinates:\n j = trace.b2j(value);\n\n // The derivatives for catmull-rom splines are discontinuous across cell\n // boundaries though, so we need to provide both the cell and the position\n // within the cell separately:\n j0 = Math.floor(Math.max(0, Math.min(nb - 2, j)));\n tj = j - j0;\n\n ret.length = nb;\n ret.crossLength = na;\n\n ret.xy = function(i) {\n return trace.evalxy([], i, j);\n };\n\n ret.dxy = function(i0, ti) {\n return trace.dxydi([], i0, j0, ti, tj);\n };\n\n for(i = 0; i < na; i++) {\n i0 = Math.min(na - 2, i);\n ti = i - i0;\n xy = trace.evalxy([], i, j);\n\n if(crossAxis.smoothing && i > 0) {\n // First control point:\n dxydi0 = trace.dxydi([], i - 1, j0, 0, tj);\n xpoints.push(pxy[0] + dxydi0[0] / 3);\n ypoints.push(pxy[1] + dxydi0[1] / 3);\n\n // Second control point:\n dxydi1 = trace.dxydi([], i - 1, j0, 1, tj);\n xpoints.push(xy[0] - dxydi1[0] / 3);\n ypoints.push(xy[1] - dxydi1[1] / 3);\n }\n\n xpoints.push(xy[0]);\n ypoints.push(xy[1]);\n\n pxy = xy;\n }\n } else {\n i = trace.a2i(value);\n i0 = Math.floor(Math.max(0, Math.min(na - 2, i)));\n ti = i - i0;\n\n ret.length = na;\n ret.crossLength = nb;\n\n ret.xy = function(j) {\n return trace.evalxy([], i, j);\n };\n\n ret.dxy = function(j0, tj) {\n return trace.dxydj([], i0, j0, ti, tj);\n };\n\n for(j = 0; j < nb; j++) {\n j0 = Math.min(nb - 2, j);\n tj = j - j0;\n xy = trace.evalxy([], i, j);\n\n if(crossAxis.smoothing && j > 0) {\n // First control point:\n dxydj0 = trace.dxydj([], i0, j - 1, ti, 0);\n xpoints.push(pxy[0] + dxydj0[0] / 3);\n ypoints.push(pxy[1] + dxydj0[1] / 3);\n\n // Second control point:\n dxydj1 = trace.dxydj([], i0, j - 1, ti, 1);\n xpoints.push(xy[0] - dxydj1[0] / 3);\n ypoints.push(xy[1] - dxydj1[1] / 3);\n }\n\n xpoints.push(xy[0]);\n ypoints.push(xy[1]);\n\n pxy = xy;\n }\n }\n\n ret.axisLetter = axisLetter;\n ret.axis = axis;\n ret.crossAxis = crossAxis;\n ret.value = value;\n ret.constvar = crossAxisLetter;\n ret.index = n;\n ret.x = xpoints;\n ret.y = ypoints;\n ret.smoothing = crossAxis.smoothing;\n\n return ret;\n }\n\n function constructArrayGridline(idx) {\n var j, i0, j0, ti, tj;\n var xpoints = [];\n var ypoints = [];\n var ret = {};\n ret.length = data.length;\n ret.crossLength = crossData.length;\n\n if(axisLetter === 'b') {\n j0 = Math.max(0, Math.min(nb - 2, idx));\n tj = Math.min(1, Math.max(0, idx - j0));\n\n ret.xy = function(i) {\n return trace.evalxy([], i, idx);\n };\n\n ret.dxy = function(i0, ti) {\n return trace.dxydi([], i0, j0, ti, tj);\n };\n\n // In the tickmode: array case, this operation is a simple\n // transfer of data:\n for(j = 0; j < nea; j++) {\n xpoints[j] = xcp[idx * stride][j];\n ypoints[j] = ycp[idx * stride][j];\n }\n } else {\n i0 = Math.max(0, Math.min(na - 2, idx));\n ti = Math.min(1, Math.max(0, idx - i0));\n\n ret.xy = function(j) {\n return trace.evalxy([], idx, j);\n };\n\n ret.dxy = function(j0, tj) {\n return trace.dxydj([], i0, j0, ti, tj);\n };\n\n // In the tickmode: array case, this operation is a simple\n // transfer of data:\n for(j = 0; j < neb; j++) {\n xpoints[j] = xcp[j][idx * stride];\n ypoints[j] = ycp[j][idx * stride];\n }\n }\n\n ret.axisLetter = axisLetter;\n ret.axis = axis;\n ret.crossAxis = crossAxis;\n ret.value = data[idx];\n ret.constvar = crossAxisLetter;\n ret.index = idx;\n ret.x = xpoints;\n ret.y = ypoints;\n ret.smoothing = crossAxis.smoothing;\n\n return ret;\n }\n\n if(axis.tickmode === 'array') {\n // var j0 = axis.startline ? 1 : 0;\n // var j1 = data.length - (axis.endline ? 1 : 0);\n\n eps = 5e-15;\n bounds = [\n Math.floor(((data.length - 1) - axis.arraytick0) / axis.arraydtick * (1 + eps)),\n Math.ceil((- axis.arraytick0) / axis.arraydtick / (1 + eps))\n ].sort(function(a, b) {return a - b;});\n\n // Unpack sorted values so we can be sure to avoid infinite loops if something\n // is backwards:\n n1 = bounds[0] - 1;\n n2 = bounds[1] + 1;\n\n // If the axes fall along array lines, then this is a much simpler process since\n // we already have all the control points we need\n for(n = n1; n < n2; n++) {\n j = axis.arraytick0 + axis.arraydtick * n;\n if(j < 0 || j > data.length - 1) continue;\n gridlines.push(extendFlat(constructArrayGridline(j), {\n color: axis.gridcolor,\n width: axis.gridwidth\n }));\n }\n\n for(n = n1; n < n2; n++) {\n j0 = axis.arraytick0 + axis.arraydtick * n;\n j1 = Math.min(j0 + axis.arraydtick, data.length - 1);\n\n // TODO: fix the bounds computation so we don't have to do a large range and then throw\n // out unneeded numbers\n if(j0 < 0 || j0 > data.length - 1) continue;\n if(j1 < 0 || j1 > data.length - 1) continue;\n\n v0 = data[j0];\n v1 = data[j1];\n\n for(i = 0; i < axis.minorgridcount; i++) {\n d = j1 - j0;\n\n // TODO: fix the bounds computation so we don't have to do a large range and then throw\n // out unneeded numbers\n if(d <= 0) continue;\n\n // XXX: This calculation isn't quite right. Off by one somewhere?\n v = v0 + (v1 - v0) * (i + 1) / (axis.minorgridcount + 1) * (axis.arraydtick / d);\n\n // TODO: fix the bounds computation so we don't have to do a large range and then throw\n // out unneeded numbers\n if(v < data[0] || v > data[data.length - 1]) continue;\n minorgridlines.push(extendFlat(constructValueGridline(v), {\n color: axis.minorgridcolor,\n width: axis.minorgridwidth\n }));\n }\n }\n\n if(axis.startline) {\n boundarylines.push(extendFlat(constructArrayGridline(0), {\n color: axis.startlinecolor,\n width: axis.startlinewidth\n }));\n }\n\n if(axis.endline) {\n boundarylines.push(extendFlat(constructArrayGridline(data.length - 1), {\n color: axis.endlinecolor,\n width: axis.endlinewidth\n }));\n }\n } else {\n // If the lines do not fall along the axes, then we have to interpolate\n // the contro points and so some math to figure out where the lines are\n // in the first place.\n\n // Compute the integer boudns of tick0 + n * dtick that fall within the range\n // (roughly speaking):\n // Give this a nice generous epsilon. We use at as * (1 + eps) in order to make\n // inequalities a little tolerant in a more or less correct manner:\n eps = 5e-15;\n bounds = [\n Math.floor((data[data.length - 1] - axis.tick0) / axis.dtick * (1 + eps)),\n Math.ceil((data[0] - axis.tick0) / axis.dtick / (1 + eps))\n ].sort(function(a, b) {return a - b;});\n\n // Unpack sorted values so we can be sure to avoid infinite loops if something\n // is backwards:\n n1 = bounds[0];\n n2 = bounds[1];\n\n for(n = n1; n <= n2; n++) {\n value = axis.tick0 + axis.dtick * n;\n\n gridlines.push(extendFlat(constructValueGridline(value), {\n color: axis.gridcolor,\n width: axis.gridwidth\n }));\n }\n\n for(n = n1 - 1; n < n2 + 1; n++) {\n value = axis.tick0 + axis.dtick * n;\n\n for(i = 0; i < axis.minorgridcount; i++) {\n v = value + axis.dtick * (i + 1) / (axis.minorgridcount + 1);\n if(v < data[0] || v > data[data.length - 1]) continue;\n minorgridlines.push(extendFlat(constructValueGridline(v), {\n color: axis.minorgridcolor,\n width: axis.minorgridwidth\n }));\n }\n }\n\n if(axis.startline) {\n boundarylines.push(extendFlat(constructValueGridline(data[0]), {\n color: axis.startlinecolor,\n width: axis.startlinewidth\n }));\n }\n\n if(axis.endline) {\n boundarylines.push(extendFlat(constructValueGridline(data[data.length - 1]), {\n color: axis.endlinecolor,\n width: axis.endlinewidth\n }));\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"7fc3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Registry = __webpack_require__(\"371e\");\nvar hover = __webpack_require__(\"e812\").hover;\n\nmodule.exports = function click(gd, evt, subplot) {\n var annotationsDone = Registry.getComponentMethod('annotations', 'onClick')(gd, gd._hoverdata);\n\n // fallback to fail-safe in case the plot type's hover method doesn't pass the subplot.\n // Ternary, for example, didn't, but it was caught because tested.\n if(subplot !== undefined) {\n // The true flag at the end causes it to re-run the hover computation to figure out *which*\n // point is being clicked. Without this, clicking is somewhat unreliable.\n hover(gd, evt, subplot, true);\n }\n\n function emitClick() { gd.emit('plotly_click', {points: gd._hoverdata, event: evt}); }\n\n if(gd._hoverdata && evt && evt.target) {\n if(annotationsDone && annotationsDone.then) {\n annotationsDone.then(emitClick);\n } else emitClick();\n\n // why do we get a double event without this???\n if(evt.stopImmediatePropagation) evt.stopImmediatePropagation();\n }\n};\n\n\n/***/ }),\n\n/***/ \"7fcc\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction compileSearch(funcName, predicate, reversed, extraArgs, useNdarray, earlyOut) {\n var code = [\n \"function \", funcName, \"(a,l,h,\", extraArgs.join(\",\"), \"){\",\nearlyOut ? \"\" : \"var i=\", (reversed ? \"l-1\" : \"h+1\"),\n\";while(l<=h){\\\nvar m=(l+h)>>>1,x=a\", useNdarray ? \".get(m)\" : \"[m]\"]\n if(earlyOut) {\n if(predicate.indexOf(\"c\") < 0) {\n code.push(\";if(x===y){return m}else if(x<=y){\")\n } else {\n code.push(\";var p=c(x,y);if(p===0){return m}else if(p<=0){\")\n }\n } else {\n code.push(\";if(\", predicate, \"){i=m;\")\n }\n if(reversed) {\n code.push(\"l=m+1}else{h=m-1}\")\n } else {\n code.push(\"h=m-1}else{l=m+1}\")\n }\n code.push(\"}\")\n if(earlyOut) {\n code.push(\"return -1};\")\n } else {\n code.push(\"return i};\")\n }\n return code.join(\"\")\n}\n\nfunction compileBoundsSearch(predicate, reversed, suffix, earlyOut) {\n var result = new Function([\n compileSearch(\"A\", \"x\" + predicate + \"y\", reversed, [\"y\"], false, earlyOut),\n compileSearch(\"B\", \"x\" + predicate + \"y\", reversed, [\"y\"], true, earlyOut),\n compileSearch(\"P\", \"c(x,y)\" + predicate + \"0\", reversed, [\"y\", \"c\"], false, earlyOut),\n compileSearch(\"Q\", \"c(x,y)\" + predicate + \"0\", reversed, [\"y\", \"c\"], true, earlyOut),\n\"function dispatchBsearch\", suffix, \"(a,y,c,l,h){\\\nif(a.shape){\\\nif(typeof(c)==='function'){\\\nreturn Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)\\\n}else{\\\nreturn B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)\\\n}}else{\\\nif(typeof(c)==='function'){\\\nreturn P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)\\\n}else{\\\nreturn A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)\\\n}}}\\\nreturn dispatchBsearch\", suffix].join(\"\"))\n return result()\n}\n\nmodule.exports = {\n ge: compileBoundsSearch(\">=\", false, \"GE\"),\n gt: compileBoundsSearch(\">\", false, \"GT\"),\n lt: compileBoundsSearch(\"<\", true, \"LT\"),\n le: compileBoundsSearch(\"<=\", true, \"LE\"),\n eq: compileBoundsSearch(\"-\", true, \"EQ\", true)\n}\n\n\n/***/ }),\n\n/***/ \"7fda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Axes = __webpack_require__(\"0642\");\nvar mergeArray = __webpack_require__(\"fc26\").mergeArray;\nvar calcSelection = __webpack_require__(\"4136\");\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nfunction isAbsolute(a) {\n return (a === 'a' || a === 'absolute');\n}\n\nfunction isTotal(a) {\n return (a === 't' || a === 'total');\n}\n\nmodule.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis || 'x');\n var ya = Axes.getFromId(gd, trace.yaxis || 'y');\n var size, pos;\n\n if(trace.orientation === 'h') {\n size = xa.makeCalcdata(trace, 'x');\n pos = ya.makeCalcdata(trace, 'y');\n } else {\n size = ya.makeCalcdata(trace, 'y');\n pos = xa.makeCalcdata(trace, 'x');\n }\n\n // create the \"calculated data\" to plot\n var serieslen = Math.min(pos.length, size.length);\n var cd = new Array(serieslen);\n\n // set position and size (as well as for waterfall total size)\n var previousSum = 0;\n var newSize;\n // trace-wide flags\n var hasTotals = false;\n\n for(var i = 0; i < serieslen; i++) {\n var amount = size[i] || 0;\n\n var connectToNext = false;\n if(size[i] !== BADNUM || isTotal(trace.measure[i]) || isAbsolute(trace.measure[i])) {\n if(i + 1 < serieslen && (size[i + 1] !== BADNUM || isTotal(trace.measure[i + 1]) || isAbsolute(trace.measure[i + 1]))) {\n connectToNext = true;\n }\n }\n\n var cdi = cd[i] = {\n i: i,\n p: pos[i],\n s: amount,\n rawS: amount,\n cNext: connectToNext\n };\n\n if(isAbsolute(trace.measure[i])) {\n previousSum = cdi.s;\n\n cdi.isSum = true;\n cdi.dir = 'totals';\n cdi.s = previousSum;\n } else if(isTotal(trace.measure[i])) {\n cdi.isSum = true;\n cdi.dir = 'totals';\n cdi.s = previousSum;\n } else {\n // default: relative\n cdi.isSum = false;\n cdi.dir = cdi.rawS < 0 ? 'decreasing' : 'increasing';\n newSize = cdi.s;\n cdi.s = previousSum + newSize;\n previousSum += newSize;\n }\n\n if(cdi.dir === 'totals') {\n hasTotals = true;\n }\n\n if(trace.ids) {\n cdi.id = String(trace.ids[i]);\n }\n\n cdi.v = (trace.base || 0) + previousSum;\n }\n\n if(cd.length) cd[0].hasTotals = hasTotals;\n\n mergeArray(trace.text, cd, 'tx');\n mergeArray(trace.hovertext, cd, 'htx');\n calcSelection(cd, trace);\n\n return cd;\n};\n\n\n/***/ }),\n\n/***/ \"8062\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\n\nvar Drawing = __webpack_require__(\"83d1\");\nvar Color = __webpack_require__(\"d115\");\nvar DESELECTDIM = __webpack_require__(\"72a4\").DESELECTDIM;\nvar barStyle = __webpack_require__(\"2df3\");\nvar resizeText = __webpack_require__(\"93a6\").resizeText;\nvar styleTextPoints = barStyle.styleTextPoints;\n\nfunction style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll('g.funnellayer').selectAll('g.trace');\n resizeText(gd, s, 'funnel');\n\n s.style('opacity', function(d) { return d[0].trace.opacity; });\n\n s.each(function(d) {\n var gTrace = d3.select(this);\n var trace = d[0].trace;\n\n gTrace.selectAll('.point > path').each(function(di) {\n if(!di.isBlank) {\n var cont = trace.marker;\n\n d3.select(this)\n .call(Color.fill, di.mc || cont.color)\n .call(Color.stroke, di.mlc || cont.line.color)\n .call(Drawing.dashLine, cont.line.dash, di.mlw || cont.line.width)\n .style('opacity', trace.selectedpoints && !di.selected ? DESELECTDIM : 1);\n }\n });\n\n styleTextPoints(gTrace, trace, gd);\n\n gTrace.selectAll('.regions').each(function() {\n d3.select(this).selectAll('path').style('stroke-width', 0).call(Color.fill, trace.connector.fillcolor);\n });\n\n gTrace.selectAll('.lines').each(function() {\n var cont = trace.connector.line;\n\n Drawing.lineGroupStyle(\n d3.select(this).selectAll('path'),\n cont.width,\n cont.color,\n cont.dash\n );\n });\n });\n}\n\nmodule.exports = {\n style: style\n};\n\n\n/***/ }),\n\n/***/ \"806e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar subTypes = __webpack_require__(\"de81\");\nvar helpers = __webpack_require__(\"2969f\");\n\nmodule.exports = function select(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var trace = cd[0].trace;\n var stash = cd[0].t;\n var scene = searchInfo.scene;\n var cdata = scene.matrixOptions.cdata;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n\n if(!scene) return selection;\n\n var hasOnlyLines = (!subTypes.hasMarkers(trace) && !subTypes.hasText(trace));\n if(trace.visible !== true || hasOnlyLines) return selection;\n\n var xi = helpers.getDimIndex(trace, xa);\n var yi = helpers.getDimIndex(trace, ya);\n if(xi === false || yi === false) return selection;\n\n var xpx = stash.xpx[xi];\n var ypx = stash.ypx[yi];\n var x = cdata[xi];\n var y = cdata[yi];\n var els = [];\n var unels = [];\n\n // degenerate polygon does not enable selection\n // filter out points by visible scatter ones\n if(selectionTester !== false && !selectionTester.degenerate) {\n for(var i = 0; i < x.length; i++) {\n if(selectionTester.contains([xpx[i], ypx[i]], null, i, searchInfo)) {\n els.push(i);\n selection.push({\n pointNumber: i,\n x: x[i],\n y: y[i]\n });\n } else {\n unels.push(i);\n }\n }\n }\n\n var matrixOpts = scene.matrixOptions;\n\n if(!els.length && !unels.length) {\n scene.matrix.update(matrixOpts, null);\n } else if(!scene.selectBatch.length && !scene.unselectBatch.length) {\n scene.matrix.update(\n scene.unselectedOptions,\n Lib.extendFlat({}, matrixOpts, scene.selectedOptions, scene.viewOpts)\n );\n }\n\n scene.selectBatch = els;\n scene.unselectBatch = unels;\n\n return selection;\n};\n\n\n/***/ }),\n\n/***/ \"8173\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Registry = __webpack_require__(\"371e\");\nvar Lib = __webpack_require__(\"fc26\");\n\nmodule.exports = function handleSampleDefaults(traceIn, traceOut, coerce, layout) {\n var x = coerce('x');\n var y = coerce('y');\n var xlen = Lib.minRowLength(x);\n var ylen = Lib.minRowLength(y);\n\n // we could try to accept x0 and dx, etc...\n // but that's a pretty weird use case.\n // for now require both x and y explicitly specified.\n if(!xlen || !ylen) {\n traceOut.visible = false;\n return;\n }\n\n traceOut._length = Math.min(xlen, ylen);\n\n var handleCalendarDefaults = Registry.getComponentMethod('calendars', 'handleTraceDefaults');\n handleCalendarDefaults(traceIn, traceOut, ['x', 'y'], layout);\n\n // if marker.color is an array, we can use it in aggregation instead of z\n var hasAggregationData = coerce('z') || coerce('marker.color');\n\n if(hasAggregationData) coerce('histfunc');\n coerce('histnorm');\n\n // Note: bin defaults are now handled in Histogram2D.crossTraceDefaults\n // autobin(x|y) are only included here to appease Plotly.validate\n coerce('autobinx');\n coerce('autobiny');\n};\n\n\n/***/ }),\n\n/***/ \"81f0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\n\n/**\n * Make a xy domain attribute group\n *\n * @param {object} opts\n * @param {string}\n * opts.name: name to be inserted in the default description\n * @param {boolean}\n * opts.trace: set to true for trace containers\n * @param {string}\n * opts.editType: editType for all pieces\n * @param {boolean}\n * opts.noGridCell: set to true to omit `row` and `column`\n *\n * @param {object} extra\n * @param {string}\n * extra.description: extra description. N.B we use\n * a separate extra container to make it compatible with\n * the compress_attributes transform.\n *\n * @return {object} attributes object containing {x,y} as specified\n */\nexports.attributes = function(opts, extra) {\n opts = opts || {};\n extra = extra || {};\n\n var base = {\n valType: 'info_array',\n \n editType: opts.editType,\n items: [\n {valType: 'number', min: 0, max: 1, editType: opts.editType},\n {valType: 'number', min: 0, max: 1, editType: opts.editType}\n ],\n dflt: [0, 1]\n };\n\n var namePart = opts.name ? opts.name + ' ' : '';\n var contPart = opts.trace ? 'trace ' : 'subplot ';\n var descPart = extra.description ? ' ' + extra.description : '';\n\n var out = {\n x: extendFlat({}, base, {\n \n }),\n y: extendFlat({}, base, {\n \n }),\n editType: opts.editType\n };\n\n if(!opts.noGridCell) {\n out.row = {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n editType: opts.editType,\n \n };\n out.column = {\n valType: 'integer',\n min: 0,\n dflt: 0,\n \n editType: opts.editType,\n \n };\n }\n\n return out;\n};\n\nexports.defaults = function(containerOut, layout, coerce, dfltDomains) {\n var dfltX = (dfltDomains && dfltDomains.x) || [0, 1];\n var dfltY = (dfltDomains && dfltDomains.y) || [0, 1];\n\n var grid = layout.grid;\n if(grid) {\n var column = coerce('domain.column');\n if(column !== undefined) {\n if(column < grid.columns) dfltX = grid._domains.x[column];\n else delete containerOut.domain.column;\n }\n\n var row = coerce('domain.row');\n if(row !== undefined) {\n if(row < grid.rows) dfltY = grid._domains.y[row];\n else delete containerOut.domain.row;\n }\n }\n\n var x = coerce('domain.x', dfltX);\n var y = coerce('domain.y', dfltY);\n\n // don't accept bad input data\n if(!(x[0] < x[1])) containerOut.domain.x = dfltX.slice();\n if(!(y[0] < y[1])) containerOut.domain.y = dfltY.slice();\n};\n\n\n/***/ }),\n\n/***/ \"821b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n/**\n * Clear gl frame (if any). This is a common pattern as\n * we usually set `preserveDrawingBuffer: true` during\n * gl context creation (e.g. via `reglUtils.prepare`).\n *\n * @param {DOM node or object} gd : graph div object\n */\nmodule.exports = function clearGlCanvases(gd) {\n var fullLayout = gd._fullLayout;\n\n if(fullLayout._glcanvas && fullLayout._glcanvas.size()) {\n fullLayout._glcanvas.each(function(d) {\n if(d.regl) d.regl.clear({color: true, depth: true});\n });\n }\n};\n\n\n/***/ }),\n\n/***/ \"824b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar isNumeric = __webpack_require__(\"19b2\");\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nvar calcMarkerColorscale = __webpack_require__(\"09bd\");\nvar arraysToCalcdata = __webpack_require__(\"106b\");\nvar calcSelection = __webpack_require__(\"4136\");\n\nvar _ = __webpack_require__(\"fc26\")._;\n\nfunction isNonBlankString(v) {\n return v && typeof v === 'string';\n}\n\nmodule.exports = function calc(gd, trace) {\n var hasLocationData = Array.isArray(trace.locations);\n var len = hasLocationData ? trace.locations.length : trace._length;\n var calcTrace = new Array(len);\n\n var isValidLoc;\n if(trace.geojson) {\n isValidLoc = function(v) { return isNonBlankString(v) || isNumeric(v); };\n } else {\n isValidLoc = isNonBlankString;\n }\n\n for(var i = 0; i < len; i++) {\n var calcPt = calcTrace[i] = {};\n\n if(hasLocationData) {\n var loc = trace.locations[i];\n calcPt.loc = isValidLoc(loc) ? loc : null;\n } else {\n var lon = trace.lon[i];\n var lat = trace.lat[i];\n\n if(isNumeric(lon) && isNumeric(lat)) calcPt.lonlat = [+lon, +lat];\n else calcPt.lonlat = [BADNUM, BADNUM];\n }\n }\n\n arraysToCalcdata(calcTrace, trace);\n calcMarkerColorscale(gd, trace);\n calcSelection(calcTrace, trace);\n\n if(len) {\n calcTrace[0].t = {\n labels: {\n lat: _(gd, 'lat:') + ' ',\n lon: _(gd, 'lon:') + ' '\n }\n };\n }\n\n return calcTrace;\n};\n\n\n/***/ }),\n\n/***/ \"825a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"861d\");\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"8260\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar scatterPlot = __webpack_require__(\"f118\");\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nmodule.exports = function plot(gd, subplot, moduleCalcData) {\n var mlayer = subplot.layers.frontplot.select('g.scatterlayer');\n\n var plotinfo = {\n xaxis: subplot.xaxis,\n yaxis: subplot.yaxis,\n plot: subplot.framework,\n layerClipId: subplot._hasClipOnAxisFalse ? subplot.clipIds.forTraces : null\n };\n\n var radialAxis = subplot.radialAxis;\n var angularAxis = subplot.angularAxis;\n\n // convert:\n // 'c' (r,theta) -> 'geometric' (r,theta) -> (x,y)\n for(var i = 0; i < moduleCalcData.length; i++) {\n var cdi = moduleCalcData[i];\n\n for(var j = 0; j < cdi.length; j++) {\n var cd = cdi[j];\n var r = cd.r;\n\n if(r === BADNUM) {\n cd.x = cd.y = BADNUM;\n } else {\n var rg = radialAxis.c2g(r);\n var thetag = angularAxis.c2g(cd.theta);\n cd.x = rg * Math.cos(thetag);\n cd.y = rg * Math.sin(thetag);\n }\n }\n }\n\n scatterPlot(gd, plotinfo, moduleCalcData, mlayer);\n};\n\n\n/***/ }),\n\n/***/ \"8298\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar d3 = __webpack_require__(\"6e58\");\nvar Lib = __webpack_require__(\"fc26\");\nvar Drawing = __webpack_require__(\"83d1\");\n\nvar boxPlot = __webpack_require__(\"d34f\");\nvar linePoints = __webpack_require__(\"9cf1\");\nvar helpers = __webpack_require__(\"0681\");\n\nmodule.exports = function plot(gd, plotinfo, cdViolins, violinLayer) {\n var fullLayout = gd._fullLayout;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n\n function makePath(pts) {\n var segments = linePoints(pts, {\n xaxis: xa,\n yaxis: ya,\n connectGaps: true,\n baseTolerance: 0.75,\n shape: 'spline',\n simplify: true,\n linearized: true\n });\n return Drawing.smoothopen(segments[0], 1);\n }\n\n Lib.makeTraceGroups(violinLayer, cdViolins, 'trace violins').each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var t = cd0.t;\n var trace = cd0.trace;\n\n if(trace.visible !== true || t.empty) {\n plotGroup.remove();\n return;\n }\n\n var bPos = t.bPos;\n var bdPos = t.bdPos;\n var valAxis = plotinfo[t.valLetter + 'axis'];\n var posAxis = plotinfo[t.posLetter + 'axis'];\n var hasBothSides = trace.side === 'both';\n var hasPositiveSide = hasBothSides || trace.side === 'positive';\n var hasNegativeSide = hasBothSides || trace.side === 'negative';\n\n var violins = plotGroup.selectAll('path.violin').data(Lib.identity);\n\n violins.enter().append('path')\n .style('vector-effect', 'non-scaling-stroke')\n .attr('class', 'violin');\n\n violins.exit().remove();\n\n violins.each(function(d) {\n var pathSel = d3.select(this);\n var density = d.density;\n var len = density.length;\n var posCenter = posAxis.c2l(d.pos + bPos, true);\n var posCenterPx = posAxis.l2p(posCenter);\n\n var scale;\n if(trace.width) {\n scale = t.maxKDE / bdPos;\n } else {\n var groupStats = fullLayout._violinScaleGroupStats[trace.scalegroup];\n scale = trace.scalemode === 'count' ?\n (groupStats.maxKDE / bdPos) * (groupStats.maxCount / d.pts.length) :\n groupStats.maxKDE / bdPos;\n }\n\n var pathPos, pathNeg, path;\n var i, k, pts, pt;\n\n if(hasPositiveSide) {\n pts = new Array(len);\n for(i = 0; i < len; i++) {\n pt = pts[i] = {};\n pt[t.posLetter] = posCenter + (density[i].v / scale);\n pt[t.valLetter] = valAxis.c2l(density[i].t, true);\n }\n pathPos = makePath(pts);\n }\n\n if(hasNegativeSide) {\n pts = new Array(len);\n for(k = 0, i = len - 1; k < len; k++, i--) {\n pt = pts[k] = {};\n pt[t.posLetter] = posCenter - (density[i].v / scale);\n pt[t.valLetter] = valAxis.c2l(density[i].t, true);\n }\n pathNeg = makePath(pts);\n }\n\n if(hasBothSides) {\n path = pathPos + 'L' + pathNeg.substr(1) + 'Z';\n } else {\n var startPt = [posCenterPx, valAxis.c2p(density[0].t)];\n var endPt = [posCenterPx, valAxis.c2p(density[len - 1].t)];\n\n if(trace.orientation === 'h') {\n startPt.reverse();\n endPt.reverse();\n }\n\n if(hasPositiveSide) {\n path = 'M' + startPt + 'L' + pathPos.substr(1) + 'L' + endPt;\n } else {\n path = 'M' + endPt + 'L' + pathNeg.substr(1) + 'L' + startPt;\n }\n }\n pathSel.attr('d', path);\n\n // save a few things used in getPositionOnKdePath, getKdeValue\n // on hover and for meanline draw block below\n d.posCenterPx = posCenterPx;\n d.posDensityScale = scale * bdPos;\n d.path = pathSel.node();\n d.pathLength = d.path.getTotalLength() / (hasBothSides ? 2 : 1);\n });\n\n var boxAttrs = trace.box;\n var boxWidth = boxAttrs.width;\n var boxLineWidth = (boxAttrs.line || {}).width;\n var bdPosScaled;\n var bPosPxOffset;\n\n if(hasBothSides) {\n bdPosScaled = bdPos * boxWidth;\n bPosPxOffset = 0;\n } else if(hasPositiveSide) {\n bdPosScaled = [0, bdPos * boxWidth / 2];\n bPosPxOffset = boxLineWidth * {x: 1, y: -1}[t.posLetter];\n } else {\n bdPosScaled = [bdPos * boxWidth / 2, 0];\n bPosPxOffset = boxLineWidth * {x: -1, y: 1}[t.posLetter];\n }\n\n // inner box\n boxPlot.plotBoxAndWhiskers(plotGroup, {pos: posAxis, val: valAxis}, trace, {\n bPos: bPos,\n bdPos: bdPosScaled,\n bPosPxOffset: bPosPxOffset\n });\n\n // meanline insider box\n boxPlot.plotBoxMean(plotGroup, {pos: posAxis, val: valAxis}, trace, {\n bPos: bPos,\n bdPos: bdPosScaled,\n bPosPxOffset: bPosPxOffset\n });\n\n var fn;\n if(!trace.box.visible && trace.meanline.visible) {\n fn = Lib.identity;\n }\n\n // N.B. use different class name than boxPlot.plotBoxMean,\n // to avoid selectAll conflict\n var meanPaths = plotGroup.selectAll('path.meanline').data(fn || []);\n meanPaths.enter().append('path')\n .attr('class', 'meanline')\n .style('fill', 'none')\n .style('vector-effect', 'non-scaling-stroke');\n meanPaths.exit().remove();\n meanPaths.each(function(d) {\n var v = valAxis.c2p(d.mean, true);\n var p = helpers.getPositionOnKdePath(d, trace, v);\n\n d3.select(this).attr('d',\n trace.orientation === 'h' ?\n 'M' + v + ',' + p[0] + 'V' + p[1] :\n 'M' + p[0] + ',' + v + 'H' + p[1]\n );\n });\n\n boxPlot.plotPoints(plotGroup, {x: xa, y: ya}, trace, t);\n });\n};\n\n\n/***/ }),\n\n/***/ \"82a5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\n\nmodule.exports = function calc(gd) {\n var calcdata = gd.calcdata;\n var fullLayout = gd._fullLayout;\n\n function makeCoerceHoverInfo(trace) {\n return function(val) {\n return Lib.coerceHoverinfo({hoverinfo: val}, {_module: trace._module}, fullLayout);\n };\n }\n\n for(var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var trace = cd[0].trace;\n\n // don't include hover calc fields for pie traces\n // as calcdata items might be sorted by value and\n // won't match the data array order.\n if(Registry.traceIs(trace, 'pie-like')) continue;\n\n var fillFn = Registry.traceIs(trace, '2dMap') ? paste : Lib.fillArray;\n\n fillFn(trace.hoverinfo, cd, 'hi', makeCoerceHoverInfo(trace));\n\n if(trace.hovertemplate) fillFn(trace.hovertemplate, cd, 'ht');\n\n if(!trace.hoverlabel) continue;\n\n fillFn(trace.hoverlabel.bgcolor, cd, 'hbg');\n fillFn(trace.hoverlabel.bordercolor, cd, 'hbc');\n fillFn(trace.hoverlabel.font.size, cd, 'hts');\n fillFn(trace.hoverlabel.font.color, cd, 'htc');\n fillFn(trace.hoverlabel.font.family, cd, 'htf');\n fillFn(trace.hoverlabel.namelength, cd, 'hnl');\n fillFn(trace.hoverlabel.align, cd, 'hta');\n }\n};\n\nfunction paste(traceAttr, cd, cdAttr, fn) {\n fn = fn || Lib.identity;\n\n if(Array.isArray(traceAttr)) {\n cd[0][cdAttr] = fn(traceAttr);\n }\n}\n\n\n/***/ }),\n\n/***/ \"82b5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n/**\n * Creates a set of padding attributes.\n *\n * @param {object} opts\n * @param {string} editType:\n * the editType for all pieces of this padding definition\n *\n * @return {object} attributes object containing {t, r, b, l} as specified\n */\nmodule.exports = function(opts) {\n var editType = opts.editType;\n return {\n t: {\n valType: 'number',\n dflt: 0,\n \n editType: editType,\n \n },\n r: {\n valType: 'number',\n dflt: 0,\n \n editType: editType,\n \n },\n b: {\n valType: 'number',\n dflt: 0,\n \n editType: editType,\n \n },\n l: {\n valType: 'number',\n dflt: 0,\n \n editType: editType,\n \n },\n editType: editType\n };\n};\n\n\n/***/ }),\n\n/***/ \"82d4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\nvar colorscaleDefaults = __webpack_require__(\"4183\");\nvar attributes = __webpack_require__(\"be2a\");\n\nmodule.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n\n var u = coerce('u');\n var v = coerce('v');\n var w = coerce('w');\n\n var x = coerce('x');\n var y = coerce('y');\n var z = coerce('z');\n\n if(\n !u || !u.length || !v || !v.length || !w || !w.length ||\n !x || !x.length || !y || !y.length || !z || !z.length\n ) {\n traceOut.visible = false;\n return;\n }\n\n coerce('starts.x');\n coerce('starts.y');\n coerce('starts.z');\n\n coerce('maxdisplayed');\n coerce('sizeref');\n\n coerce('lighting.ambient');\n coerce('lighting.diffuse');\n coerce('lighting.specular');\n coerce('lighting.roughness');\n coerce('lighting.fresnel');\n coerce('lightposition.x');\n coerce('lightposition.y');\n coerce('lightposition.z');\n\n colorscaleDefaults(traceIn, traceOut, layout, coerce, {prefix: '', cLetter: 'c'});\n\n coerce('text');\n coerce('hovertext');\n coerce('hovertemplate');\n\n // disable 1D transforms (for now)\n // x/y/z and u/v/w have matching lengths,\n // but they don't have to match with starts.(x|y|z)\n traceOut._length = null;\n};\n\n\n/***/ }),\n\n/***/ \"82d7\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar fontAttrs = __webpack_require__(\"9845\");\nvar baseAttrs = __webpack_require__(\"a876\");\nvar colorAttrs = __webpack_require__(\"dfb3\");\nvar fxAttrs = __webpack_require__(\"a462\");\nvar domainAttrs = __webpack_require__(\"81f0\").attributes;\nvar hovertemplateAttrs = __webpack_require__(\"94d5\").hovertemplateAttrs;\nvar colorAttributes = __webpack_require__(\"f4e9\");\nvar templatedArray = __webpack_require__(\"a651\").templatedArray;\n\nvar extendFlat = __webpack_require__(\"9092\").extendFlat;\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\n\nvar FORMAT_LINK = __webpack_require__(\"78df\").FORMAT_LINK;\n\nvar attrs = module.exports = overrideAll({\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [],\n arrayOk: false,\n \n }),\n hoverlabel: fxAttrs.hoverlabel,\n domain: domainAttrs({name: 'sankey', trace: true}),\n\n orientation: {\n valType: 'enumerated',\n values: ['v', 'h'],\n dflt: 'h',\n \n \n },\n\n valueformat: {\n valType: 'string',\n dflt: '.3s',\n \n \n },\n\n valuesuffix: {\n valType: 'string',\n dflt: '',\n \n \n },\n\n arrangement: {\n valType: 'enumerated',\n values: ['snap', 'perpendicular', 'freeform', 'fixed'],\n dflt: 'snap',\n \n \n },\n\n textfont: fontAttrs({\n \n }),\n\n node: {\n label: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n groups: {\n valType: 'info_array',\n impliedEdits: {'x': [], 'y': []},\n dimensions: 2,\n freeLength: true,\n dflt: [],\n items: {valType: 'number', editType: 'calc'},\n \n \n },\n x: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n y: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n color: {\n valType: 'color',\n \n arrayOk: true,\n \n },\n line: {\n color: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n arrayOk: true,\n \n },\n width: {\n valType: 'number',\n \n min: 0,\n dflt: 0.5,\n arrayOk: true,\n \n }\n },\n pad: {\n valType: 'number',\n arrayOk: false,\n min: 0,\n dflt: 20,\n \n \n },\n thickness: {\n valType: 'number',\n arrayOk: false,\n min: 1,\n dflt: 20,\n \n \n },\n hoverinfo: {\n valType: 'enumerated',\n values: ['all', 'none', 'skip'],\n dflt: 'all',\n \n \n },\n hoverlabel: fxAttrs.hoverlabel, // needs editType override,\n hovertemplate: hovertemplateAttrs({}, {\n \n keys: ['value', 'label']\n }),\n \n },\n\n link: {\n label: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n color: {\n valType: 'color',\n \n arrayOk: true,\n \n },\n line: {\n color: {\n valType: 'color',\n \n dflt: colorAttrs.defaultLine,\n arrayOk: true,\n \n },\n width: {\n valType: 'number',\n \n min: 0,\n dflt: 0,\n arrayOk: true,\n \n }\n },\n source: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n target: {\n valType: 'data_array',\n \n dflt: [],\n \n },\n value: {\n valType: 'data_array',\n dflt: [],\n \n \n },\n hoverinfo: {\n valType: 'enumerated',\n values: ['all', 'none', 'skip'],\n dflt: 'all',\n \n \n },\n hoverlabel: fxAttrs.hoverlabel, // needs editType override,\n hovertemplate: hovertemplateAttrs({}, {\n \n keys: ['value', 'label']\n }),\n colorscales: templatedArray('concentrationscales', {\n editType: 'calc',\n label: {\n valType: 'string',\n \n editType: 'calc',\n \n dflt: ''\n },\n cmax: {\n valType: 'number',\n \n editType: 'calc',\n dflt: 1,\n \n },\n cmin: {\n valType: 'number',\n \n editType: 'calc',\n dflt: 0,\n \n },\n colorscale: extendFlat(colorAttributes().colorscale, {dflt: [[0, 'white'], [1, 'black']]})\n }),\n \n \n }\n}, 'calc', 'nested');\nattrs.transforms = undefined;\n\n\n/***/ }),\n\n/***/ \"82e4\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"f90d\");\n\n\n/***/ }),\n\n/***/ \"831f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = __webpack_require__(\"0382\");\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Color = __webpack_require__(\"d115\");\nvar Template = __webpack_require__(\"a651\");\nvar basePlotLayoutAttributes = __webpack_require__(\"a685\");\n\nvar layoutAttributes = __webpack_require__(\"d798\");\nvar handleTypeDefaults = __webpack_require__(\"b5e2\");\nvar handleAxisDefaults = __webpack_require__(\"7118\");\nvar handleConstraintDefaults = __webpack_require__(\"6add\").handleConstraintDefaults;\nvar handlePositionDefaults = __webpack_require__(\"f3a2\");\n\nvar axisIds = __webpack_require__(\"3c1c\");\nvar id2name = axisIds.id2name;\nvar name2id = axisIds.name2id;\n\nvar Registry = __webpack_require__(\"371e\");\nvar traceIs = Registry.traceIs;\nvar getComponentMethod = Registry.getComponentMethod;\n\nfunction appendList(cont, k, item) {\n if(Array.isArray(cont[k])) cont[k].push(item);\n else cont[k] = [item];\n}\n\nmodule.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n var ax2traces = {};\n var xaMayHide = {};\n var yaMayHide = {};\n var xaMustDisplay = {};\n var yaMustDisplay = {};\n var yaMustNotReverse = {};\n var yaMayReverse = {};\n var axHasImage = {};\n var outerTicks = {};\n var noGrids = {};\n var i, j;\n\n // look for axes in the data\n for(i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if(!traceIs(trace, 'cartesian') && !traceIs(trace, 'gl2d')) continue;\n\n var xaName;\n if(trace.xaxis) {\n xaName = id2name(trace.xaxis);\n appendList(ax2traces, xaName, trace);\n } else if(trace.xaxes) {\n for(j = 0; j < trace.xaxes.length; j++) {\n appendList(ax2traces, id2name(trace.xaxes[j]), trace);\n }\n }\n\n var yaName;\n if(trace.yaxis) {\n yaName = id2name(trace.yaxis);\n appendList(ax2traces, yaName, trace);\n } else if(trace.yaxes) {\n for(j = 0; j < trace.yaxes.length; j++) {\n appendList(ax2traces, id2name(trace.yaxes[j]), trace);\n }\n }\n\n // logic for funnels\n if(trace.type === 'funnel') {\n if(trace.orientation === 'h') {\n if(xaName) xaMayHide[xaName] = true;\n if(yaName) yaMayReverse[yaName] = true;\n } else {\n if(yaName) yaMayHide[yaName] = true;\n }\n } else if(trace.type === 'image') {\n if(yaName) axHasImage[yaName] = true;\n if(xaName) axHasImage[xaName] = true;\n } else {\n if(yaName) {\n yaMustDisplay[yaName] = true;\n yaMustNotReverse[yaName] = true;\n }\n\n if(!traceIs(trace, 'carpet') || (trace.type === 'carpet' && !trace._cheater)) {\n if(xaName) xaMustDisplay[xaName] = true;\n }\n }\n\n // Two things trigger axis visibility:\n // 1. is not carpet\n // 2. carpet that's not cheater\n\n // The above check for definitely-not-cheater is not adequate. This\n // second list tracks which axes *could* be a cheater so that the\n // full condition triggering hiding is:\n // *could* be a cheater and *is not definitely visible*\n if(trace.type === 'carpet' && trace._cheater) {\n if(xaName) xaMayHide[xaName] = true;\n }\n\n // check for default formatting tweaks\n if(traceIs(trace, '2dMap')) {\n outerTicks[xaName] = true;\n outerTicks[yaName] = true;\n }\n\n if(traceIs(trace, 'oriented')) {\n var positionAxis = trace.orientation === 'h' ? yaName : xaName;\n noGrids[positionAxis] = true;\n }\n }\n\n var subplots = layoutOut._subplots;\n var xIds = subplots.xaxis;\n var yIds = subplots.yaxis;\n var xNames = Lib.simpleMap(xIds, id2name);\n var yNames = Lib.simpleMap(yIds, id2name);\n var axNames = xNames.concat(yNames);\n\n // plot_bgcolor only makes sense if there's a (2D) plot!\n // TODO: bgcolor for each subplot, to inherit from the main one\n var plotBgColor = Color.background;\n if(xIds.length && yIds.length) {\n plotBgColor = Lib.coerce(layoutIn, layoutOut, basePlotLayoutAttributes, 'plot_bgcolor');\n }\n\n var bgColor = Color.combine(plotBgColor, layoutOut.paper_bgcolor);\n\n var axName, axLetter, axLayoutIn, axLayoutOut;\n\n function coerce(attr, dflt) {\n return Lib.coerce(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);\n }\n\n function coerce2(attr, dflt) {\n return Lib.coerce2(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);\n }\n\n function getCounterAxes(axLetter) {\n return (axLetter === 'x') ? yIds : xIds;\n }\n\n var counterAxes = {x: getCounterAxes('x'), y: getCounterAxes('y')};\n var allAxisIds = counterAxes.x.concat(counterAxes.y);\n\n function getOverlayableAxes(axLetter, axName) {\n var list = (axLetter === 'x') ? xNames : yNames;\n var out = [];\n\n for(var j = 0; j < list.length; j++) {\n var axName2 = list[j];\n\n if(axName2 !== axName && !(layoutIn[axName2] || {}).overlaying) {\n out.push(name2id(axName2));\n }\n }\n\n return out;\n }\n\n // first pass creates the containers, determines types, and handles most of the settings\n for(i = 0; i < axNames.length; i++) {\n axName = axNames[i];\n axLetter = axName.charAt(0);\n\n if(!Lib.isPlainObject(layoutIn[axName])) {\n layoutIn[axName] = {};\n }\n\n axLayoutIn = layoutIn[axName];\n axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + 'axis');\n\n var traces = ax2traces[axName] || [];\n axLayoutOut._traceIndices = traces.map(function(t) { return t._expandedIndex; });\n axLayoutOut._annIndices = [];\n axLayoutOut._shapeIndices = [];\n axLayoutOut._imgIndices = [];\n axLayoutOut._subplotsWith = [];\n axLayoutOut._counterAxes = [];\n\n // set up some private properties\n axLayoutOut._name = axLayoutOut._attr = axName;\n var id = axLayoutOut._id = name2id(axName);\n\n var overlayableAxes = getOverlayableAxes(axLetter, axName);\n\n var visibleDflt =\n (axLetter === 'x' && !xaMustDisplay[axName] && xaMayHide[axName]) ||\n (axLetter === 'y' && !yaMustDisplay[axName] && yaMayHide[axName]);\n\n var reverseDflt =\n (axLetter === 'y' &&\n (\n (!yaMustNotReverse[axName] && yaMayReverse[axName]) ||\n axHasImage[axName]\n ));\n\n var defaultOptions = {\n letter: axLetter,\n font: layoutOut.font,\n outerTicks: outerTicks[axName],\n showGrid: !noGrids[axName],\n data: traces,\n bgColor: bgColor,\n calendar: layoutOut.calendar,\n automargin: true,\n visibleDflt: visibleDflt,\n reverseDflt: reverseDflt,\n splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[id]\n };\n\n coerce('uirevision', layoutOut.uirevision);\n\n handleTypeDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions);\n handleAxisDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions, layoutOut);\n\n var spikecolor = coerce2('spikecolor');\n var spikethickness = coerce2('spikethickness');\n var spikedash = coerce2('spikedash');\n var spikemode = coerce2('spikemode');\n var spikesnap = coerce2('spikesnap');\n var showSpikes = coerce('showspikes', !!spikecolor || !!spikethickness || !!spikedash || !!spikemode || !!spikesnap);\n\n if(!showSpikes) {\n delete axLayoutOut.spikecolor;\n delete axLayoutOut.spikethickness;\n delete axLayoutOut.spikedash;\n delete axLayoutOut.spikemode;\n delete axLayoutOut.spikesnap;\n }\n\n handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {\n letter: axLetter,\n counterAxes: counterAxes[axLetter],\n overlayableAxes: overlayableAxes,\n grid: layoutOut.grid\n });\n\n coerce('title.standoff');\n\n axLayoutOut._input = axLayoutIn;\n }\n\n // quick second pass for range slider and selector defaults\n var rangeSliderDefaults = getComponentMethod('rangeslider', 'handleDefaults');\n var rangeSelectorDefaults = getComponentMethod('rangeselector', 'handleDefaults');\n\n for(i = 0; i < xNames.length; i++) {\n axName = xNames[i];\n axLayoutIn = layoutIn[axName];\n axLayoutOut = layoutOut[axName];\n\n rangeSliderDefaults(layoutIn, layoutOut, axName);\n\n if(axLayoutOut.type === 'date') {\n rangeSelectorDefaults(\n axLayoutIn,\n axLayoutOut,\n layoutOut,\n yNames,\n axLayoutOut.calendar\n );\n }\n\n coerce('fixedrange');\n }\n\n for(i = 0; i < yNames.length; i++) {\n axName = yNames[i];\n axLayoutIn = layoutIn[axName];\n axLayoutOut = layoutOut[axName];\n\n var anchoredAxis = layoutOut[id2name(axLayoutOut.anchor)];\n\n var fixedRangeDflt = getComponentMethod('rangeslider', 'isVisible')(anchoredAxis);\n\n coerce('fixedrange', fixedRangeDflt);\n }\n\n // Finally, handle scale constraints and matching axes.\n //\n // We need to do this after all axes have coerced both `type`\n // (so we link only axes of the same type) and\n // `fixedrange` (so we can avoid linking from OR TO a fixed axis).\n\n // sets of axes linked by `scaleanchor` along with the scaleratios compounded\n // together, populated in handleConstraintDefaults\n var constraintGroups = layoutOut._axisConstraintGroups = [];\n // similar to _axisConstraintGroups, but for matching axes\n var matchGroups = layoutOut._axisMatchGroups = [];\n\n for(i = 0; i < axNames.length; i++) {\n axName = axNames[i];\n axLetter = axName.charAt(0);\n axLayoutIn = layoutIn[axName];\n axLayoutOut = layoutOut[axName];\n\n var scaleanchorDflt;\n if(axLetter === 'y' && !axLayoutIn.hasOwnProperty('scaleanchor') && axHasImage[axName]) {\n scaleanchorDflt = axLayoutOut.anchor;\n } else {scaleanchorDflt = undefined;}\n\n var constrainDflt;\n if(!axLayoutIn.hasOwnProperty('constrain') && axHasImage[axName]) {\n constrainDflt = 'domain';\n } else {constrainDflt = undefined;}\n\n handleConstraintDefaults(axLayoutIn, axLayoutOut, coerce, {\n allAxisIds: allAxisIds,\n layoutOut: layoutOut,\n scaleanchorDflt: scaleanchorDflt,\n constrainDflt: constrainDflt\n });\n }\n\n for(i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n var rng = null;\n var autorange = null;\n var axId;\n\n // find 'matching' range attrs\n for(axId in group) {\n axLayoutOut = layoutOut[id2name(axId)];\n if(!axLayoutOut.matches) {\n rng = axLayoutOut.range;\n autorange = axLayoutOut.autorange;\n }\n }\n // if `ax.matches` values are reciprocal,\n // pick values of first axis in group\n if(rng === null || autorange === null) {\n for(axId in group) {\n axLayoutOut = layoutOut[id2name(axId)];\n rng = axLayoutOut.range;\n autorange = axLayoutOut.autorange;\n break;\n }\n }\n // apply matching range attrs\n for(axId in group) {\n axLayoutOut = layoutOut[id2name(axId)];\n if(axLayoutOut.matches) {\n axLayoutOut.range = rng.slice();\n axLayoutOut.autorange = autorange;\n }\n axLayoutOut._matchGroup = group;\n }\n\n // remove matching axis from scaleanchor constraint groups (for now)\n if(constraintGroups.length) {\n for(axId in group) {\n for(j = 0; j < constraintGroups.length; j++) {\n var group2 = constraintGroups[j];\n for(var axId2 in group2) {\n if(axId === axId2) {\n Lib.warn('Axis ' + axId2 + ' is set with both ' +\n 'a *scaleanchor* and *matches* constraint; ' +\n 'ignoring the scale constraint.');\n\n delete group2[axId2];\n if(Object.keys(group2).length < 2) {\n constraintGroups.splice(j, 1);\n }\n }\n }\n }\n }\n }\n }\n};\n\n\n/***/ }),\n\n/***/ \"838d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = {\n attributes: __webpack_require__(\"1590\"),\n supplyDefaults: __webpack_require__(\"2513\"),\n crossTraceDefaults: __webpack_require__(\"722f\"),\n calc: __webpack_require__(\"0625\"),\n plot: __webpack_require__(\"fa8a\"),\n layerName: 'heatmaplayer',\n colorbar: __webpack_require__(\"fcb3\"),\n style: __webpack_require__(\"c437\"),\n hoverPoints: __webpack_require__(\"9236\"),\n eventData: __webpack_require__(\"6f09\"),\n\n moduleType: 'trace',\n name: 'histogram2d',\n basePlotModule: __webpack_require__(\"91cd\"),\n categories: ['cartesian', 'svg', '2dMap', 'histogram', 'showLegend'],\n meta: {\n \n \n }\n};\n\n\n/***/ }),\n\n/***/ \"83ab\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(\"d039\");\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n\n/***/ \"83c1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar Fx = __webpack_require__(\"a5c4\");\nvar Lib = __webpack_require__(\"fc26\");\nvar getTraceColor = __webpack_require__(\"feed\");\nvar fillText = Lib.fillText;\nvar BADNUM = __webpack_require__(\"e806\").BADNUM;\n\nmodule.exports = function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var subplot = pointData.subplot;\n\n // compute winding number about [-180, 180] globe\n var winding = (xval >= 0) ?\n Math.floor((xval + 180) / 360) :\n Math.ceil((xval - 180) / 360);\n\n // shift longitude to [-180, 180] to determine closest point\n var lonShift = winding * 360;\n var xval2 = xval - lonShift;\n\n function distFn(d) {\n var lonlat = d.lonlat;\n if(lonlat[0] === BADNUM) return Infinity;\n\n var lon = Lib.modHalf(lonlat[0], 360);\n var lat = lonlat[1];\n var pt = subplot.project([lon, lat]);\n var dx = pt.x - xa.c2p([xval2, lat]);\n var dy = pt.y - ya.c2p([lon, yval]);\n var rad = Math.max(3, d.mrc || 0);\n\n return Math.max(Math.sqrt(dx * dx + dy * dy) - rad, 1 - 3 / rad);\n }\n\n Fx.getClosest(cd, distFn, pointData);\n\n // skip the rest (for this trace) if we didn't find a close point\n if(pointData.index === false) return;\n\n var di = cd[pointData.index];\n var lonlat = di.lonlat;\n var lonlatShifted = [Lib.modHalf(lonlat[0], 360) + lonShift, lonlat[1]];\n\n // shift labels back to original winded globe\n var xc = xa.c2p(lonlatShifted);\n var yc = ya.c2p(lonlatShifted);\n var rad = di.mrc || 1;\n\n pointData.x0 = xc - rad;\n pointData.x1 = xc + rad;\n pointData.y0 = yc - rad;\n pointData.y1 = yc + rad;\n\n var fullLayout = {};\n fullLayout[trace.subplot] = {_subplot: subplot};\n var labels = trace._module.formatLabels(di, trace, fullLayout);\n pointData.lonLabel = labels.lonLabel;\n pointData.latLabel = labels.latLabel;\n\n pointData.color = getTraceColor(trace, di);\n pointData.extraText = getExtraText(trace, di, cd[0].t.labels);\n pointData.hovertemplate = trace.hovertemplate;\n\n return [pointData];\n};\n\nfunction getExtraText(trace, di, labels) {\n if(trace.hovertemplate) return;\n\n var hoverinfo = di.hi || trace.hoverinfo;\n var parts = hoverinfo.split('+');\n var isAll = parts.indexOf('all') !== -1;\n var hasLon = parts.indexOf('lon') !== -1;\n var hasLat = parts.indexOf('lat') !== -1;\n var lonlat = di.lonlat;\n var text = [];\n\n // TODO should we use a mock axis to format hover?\n // If so, we'll need to make precision be zoom-level dependent\n function format(v) {\n return v + '\\u00B0';\n }\n\n if(isAll || (hasLon && hasLat)) {\n text.push('(' + format(lonlat[0]) + ', ' + format(lonlat[1]) + ')');\n } else if(hasLon) {\n text.push(labels.lon + format(lonlat[0]));\n } else if(hasLat) {\n text.push(labels.lat + format(lonlat[1]));\n }\n\n if(isAll || parts.indexOf('text') !== -1) {\n fillText(di, trace, text);\n }\n\n return text.join('
');\n}\n\n\n/***/ }),\n\n/***/ \"83d1\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\n\nvar d3 = __webpack_require__(\"6e58\");\nvar isNumeric = __webpack_require__(\"19b2\");\nvar tinycolor = __webpack_require__(\"66cb\");\n\nvar Registry = __webpack_require__(\"371e\");\nvar Color = __webpack_require__(\"d115\");\nvar Colorscale = __webpack_require__(\"c258\");\nvar Lib = __webpack_require__(\"fc26\");\nvar svgTextUtils = __webpack_require__(\"0379\");\n\nvar xmlnsNamespaces = __webpack_require__(\"73c9\");\nvar alignment = __webpack_require__(\"63dc\");\nvar LINE_SPACING = alignment.LINE_SPACING;\nvar DESELECTDIM = __webpack_require__(\"72a4\").DESELECTDIM;\n\nvar subTypes = __webpack_require__(\"de81\");\nvar makeBubbleSizeFn = __webpack_require__(\"1978\");\nvar appendArrayPointValue = __webpack_require__(\"c4c7\").appendArrayPointValue;\n\nvar drawing = module.exports = {};\n\n// -----------------------------------------------------\n// styling functions for plot elements\n// -----------------------------------------------------\n\ndrawing.font = function(s, family, size, color) {\n // also allow the form font(s, {family, size, color})\n if(Lib.isPlainObject(family)) {\n color = family.color;\n size = family.size;\n family = family.family;\n }\n if(family) s.style('font-family', family);\n if(size + 1) s.style('font-size', size + 'px');\n if(color) s.call(Color.fill, color);\n};\n\n/*\n * Positioning helpers\n * Note: do not use `setPosition` with nodes modified by\n * `svgTextUtils.convertToTspans`. Use `svgTextUtils.positionText`\n * instead, so that elements get updated to match.\n */\ndrawing.setPosition = function(s, x, y) { s.attr('x', x).attr('y', y); };\ndrawing.setSize = function(s, w, h) { s.attr('width', w).attr('height', h); };\ndrawing.setRect = function(s, x, y, w, h) {\n s.call(drawing.setPosition, x, y).call(drawing.setSize, w, h);\n};\n\n/** Translate node\n *\n * @param {object} d : calcdata point item\n * @param {sel} sel : d3 selction of node to translate\n * @param {object} xa : corresponding full xaxis object\n * @param {object} ya : corresponding full yaxis object\n *\n * @return {boolean} :\n * true if selection got translated\n * false if selection could not get translated\n */\ndrawing.translatePoint = function(d, sel, xa, ya) {\n var x = xa.c2p(d.x);\n var y = ya.c2p(d.y);\n\n if(isNumeric(x) && isNumeric(y) && sel.node()) {\n // for multiline text this works better\n if(sel.node().nodeName === 'text') {\n sel.attr('x', x).attr('y', y);\n } else {\n sel.attr('transform', 'translate(' + x + ',' + y + ')');\n }\n } else {\n return false;\n }\n\n return true;\n};\n\ndrawing.translatePoints = function(s, xa, ya) {\n s.each(function(d) {\n var sel = d3.select(this);\n drawing.translatePoint(d, sel, xa, ya);\n });\n};\n\ndrawing.hideOutsideRangePoint = function(d, sel, xa, ya, xcalendar, ycalendar) {\n sel.attr(\n 'display',\n (xa.isPtWithinRange(d, xcalendar) && ya.isPtWithinRange(d, ycalendar)) ? null : 'none'\n );\n};\n\ndrawing.hideOutsideRangePoints = function(traceGroups, subplot) {\n if(!subplot._hasClipOnAxisFalse) return;\n\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n\n traceGroups.each(function(d) {\n var trace = d[0].trace;\n var xcalendar = trace.xcalendar;\n var ycalendar = trace.ycalendar;\n var selector = Registry.traceIs(trace, 'bar-like') ? '.bartext' : '.point,.textpoint';\n\n traceGroups.selectAll(selector).each(function(d) {\n drawing.hideOutsideRangePoint(d, d3.select(this), xa, ya, xcalendar, ycalendar);\n });\n });\n};\n\ndrawing.crispRound = function(gd, lineWidth, dflt) {\n // for lines that disable antialiasing we want to\n // make sure the width is an integer, and at least 1 if it's nonzero\n\n if(!lineWidth || !isNumeric(lineWidth)) return dflt || 0;\n\n // but not for static plots - these don't get antialiased anyway.\n if(gd._context.staticPlot) return lineWidth;\n\n if(lineWidth < 1) return 1;\n return Math.round(lineWidth);\n};\n\ndrawing.singleLineStyle = function(d, s, lw, lc, ld) {\n s.style('fill', 'none');\n var line = (((d || [])[0] || {}).trace || {}).line || {};\n var lw1 = lw || line.width || 0;\n var dash = ld || line.dash || '';\n\n Color.stroke(s, lc || line.color);\n drawing.dashLine(s, dash, lw1);\n};\n\ndrawing.lineGroupStyle = function(s, lw, lc, ld) {\n s.style('fill', 'none')\n .each(function(d) {\n var line = (((d || [])[0] || {}).trace || {}).line || {};\n var lw1 = lw || line.width || 0;\n var dash = ld || line.dash || '';\n\n d3.select(this)\n .call(Color.stroke, lc || line.color)\n .call(drawing.dashLine, dash, lw1);\n });\n};\n\ndrawing.dashLine = function(s, dash, lineWidth) {\n lineWidth = +lineWidth || 0;\n\n dash = drawing.dashStyle(dash, lineWidth);\n\n s.style({\n 'stroke-dasharray': dash,\n 'stroke-width': lineWidth + 'px'\n });\n};\n\ndrawing.dashStyle = function(dash, lineWidth) {\n lineWidth = +lineWidth || 1;\n var dlw = Math.max(lineWidth, 3);\n\n if(dash === 'solid') dash = '';\n else if(dash === 'dot') dash = dlw + 'px,' + dlw + 'px';\n else if(dash === 'dash') dash = (3 * dlw) + 'px,' + (3 * dlw) + 'px';\n else if(dash === 'longdash') dash = (5 * dlw) + 'px,' + (5 * dlw) + 'px';\n else if(dash === 'dashdot') {\n dash = (3 * dlw) + 'px,' + dlw + 'px,' + dlw + 'px,' + dlw + 'px';\n } else if(dash === 'longdashdot') {\n dash = (5 * dlw) + 'px,' + (2 * dlw) + 'px,' + dlw + 'px,' + (2 * dlw) + 'px';\n }\n // otherwise user wrote the dasharray themselves - leave it be\n\n return dash;\n};\n\n// Same as fillGroupStyle, except in this case the selection may be a transition\ndrawing.singleFillStyle = function(sel) {\n var node = d3.select(sel.node());\n var data = node.data();\n var fillcolor = (((data[0] || [])[0] || {}).trace || {}).fillcolor;\n if(fillcolor) {\n sel.call(Color.fill, fillcolor);\n }\n};\n\ndrawing.fillGroupStyle = function(s) {\n s.style('stroke-width', 0)\n .each(function(d) {\n var shape = d3.select(this);\n // N.B. 'd' won't be a calcdata item when\n // fill !== 'none' on a segment-less and marker-less trace\n if(d[0].trace) {\n shape.call(Color.fill, d[0].trace.fillcolor);\n }\n });\n};\n\nvar SYMBOLDEFS = __webpack_require__(\"3350\");\n\ndrawing.symbolNames = [];\ndrawing.symbolFuncs = [];\ndrawing.symbolNeedLines = {};\ndrawing.symbolNoDot = {};\ndrawing.symbolNoFill = {};\ndrawing.symbolList = [];\n\nObject.keys(SYMBOLDEFS).forEach(function(k) {\n var symDef = SYMBOLDEFS[k];\n var n = symDef.n;\n drawing.symbolList.push(\n n,\n k,\n n + 100,\n k + '-open'\n );\n drawing.symbolNames[n] = k;\n drawing.symbolFuncs[n] = symDef.f;\n\n if(symDef.needLine) {\n drawing.symbolNeedLines[n] = true;\n }\n if(symDef.noDot) {\n drawing.symbolNoDot[n] = true;\n } else {\n drawing.symbolList.push(\n n + 200,\n k + '-dot',\n n + 300,\n k + '-open-dot'\n );\n }\n if(symDef.noFill) {\n drawing.symbolNoFill[n] = true;\n }\n});\n\nvar MAXSYMBOL = drawing.symbolNames.length;\n// add a dot in the middle of the symbol\nvar DOTPATH = 'M0,0.5L0.5,0L0,-0.5L-0.5,0Z';\n\ndrawing.symbolNumber = function(v) {\n if(typeof v === 'string') {\n var vbase = 0;\n if(v.indexOf('-open') > 0) {\n vbase = 100;\n v = v.replace('-open', '');\n }\n if(v.indexOf('-dot') > 0) {\n vbase += 200;\n v = v.replace('-dot', '');\n }\n v = drawing.symbolNames.indexOf(v);\n if(v >= 0) { v += vbase; }\n }\n\n return (v % 100 >= MAXSYMBOL || v >= 400) ?\n 0 : Math.floor(Math.max(v, 0));\n};\n\nfunction makePointPath(symbolNumber, r) {\n var base = symbolNumber % 100;\n return drawing.symbolFuncs[base](r) + (symbolNumber >= 200 ? DOTPATH : '');\n}\n\nvar HORZGRADIENT = {x1: 1, x2: 0, y1: 0, y2: 0};\nvar VERTGRADIENT = {x1: 0, x2: 0, y1: 1, y2: 0};\nvar stopFormatter = d3.format('~.1f');\nvar gradientInfo = {\n radial: {node: 'radialGradient'},\n radialreversed: {node: 'radialGradient', reversed: true},\n horizontal: {node: 'linearGradient', attrs: HORZGRADIENT},\n horizontalreversed: {node: 'linearGradient', attrs: HORZGRADIENT, reversed: true},\n vertical: {node: 'linearGradient', attrs: VERTGRADIENT},\n verticalreversed: {node: 'linearGradient', attrs: VERTGRADIENT, reversed: true}\n};\n\n/**\n * gradient: create and apply a gradient fill\n *\n * @param {object} sel: d3 selection to apply this gradient to\n * You can use `selection.call(Drawing.gradient, ...)`\n * @param {DOM element} gd: the graph div `sel` is part of\n * @param {string} gradientID: a unique (within this plot) identifier\n * for this gradient, so that we don't create unnecessary definitions\n * @param {string} type: 'radial', 'horizontal', or 'vertical', optionally with\n * 'reversed' at the end. Normally radial goes center to edge,\n * horizontal goes right to left, and vertical goes bottom to top\n * @param {array} colorscale: as in attribute values, [[fraction, color], ...]\n * @param {string} prop: the property to apply to, 'fill' or 'stroke'\n */\ndrawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {\n var len = colorscale.length;\n var info = gradientInfo[type];\n var colorStops = new Array(len);\n for(var i = 0; i < len; i++) {\n if(info.reversed) {\n colorStops[len - 1 - i] = [stopFormatter((1 - colorscale[i][0]) * 100), colorscale[i][1]];\n } else {\n colorStops[i] = [stopFormatter(colorscale[i][0] * 100), colorscale[i][1]];\n }\n }\n\n var fullLayout = gd._fullLayout;\n var fullID = 'g' + fullLayout._uid + '-' + gradientID;\n\n var gradient = fullLayout._defs.select('.gradients')\n .selectAll('#' + fullID)\n .data([type + colorStops.join(';')], Lib.identity);\n\n gradient.exit().remove();\n\n gradient.enter()\n .append(info.node)\n .each(function() {\n var el = d3.select(this);\n if(info.attrs) el.attr(info.attrs);\n\n el.attr('id', fullID);\n\n var stops = el.selectAll('stop')\n .data(colorStops);\n stops.exit().remove();\n stops.enter().append('stop');\n\n stops.each(function(d) {\n var tc = tinycolor(d[1]);\n d3.select(this).attr({\n offset: d[0] + '%',\n 'stop-color': Color.tinyRGB(tc),\n 'stop-opacity': tc.getAlpha()\n });\n });\n });\n\n sel.style(prop, getFullUrl(fullID, gd))\n .style(prop + '-opacity', null);\n\n var className2query = function(s) {\n return '.' + s.attr('class').replace(/\\s/g, '.');\n };\n var k = className2query(d3.select(sel.node().parentNode)) +\n '>' + className2query(sel);\n fullLayout._gradientUrlQueryParts[k] = 1;\n};\n\n/*\n * Make the gradients container and clear out any previous gradients.\n * We never collect all the gradients we need in one place,\n * so we can't ever remove gradients that have stopped being useful,\n * except all at once before a full redraw.\n * The upside of this is arbitrary points can share gradient defs\n */\ndrawing.initGradients = function(gd) {\n var fullLayout = gd._fullLayout;\n\n var gradientsGroup = Lib.ensureSingle(fullLayout._defs, 'g', 'gradients');\n gradientsGroup.selectAll('linearGradient,radialGradient').remove();\n\n // initialize stash of query parts filled in Drawing.gradient,\n // used to fix URL strings during image exports\n fullLayout._gradientUrlQueryParts = {};\n};\n\n\ndrawing.pointStyle = function(s, trace, gd) {\n if(!s.size()) return;\n\n var fns = drawing.makePointStyleFns(trace);\n\n s.each(function(d) {\n drawing.singlePointStyle(d, d3.select(this), trace, fns, gd);\n });\n};\n\ndrawing.singlePointStyle = function(d, sel, trace, fns, gd) {\n var marker = trace.marker;\n var markerLine = marker.line;\n\n sel.style('opacity',\n fns.selectedOpacityFn ? fns.selectedOpacityFn(d) :\n (d.mo === undefined ? marker.opacity : d.mo)\n );\n\n if(fns.ms2mrc) {\n var r;\n\n // handle multi-trace graph edit case\n if(d.ms === 'various' || marker.size === 'various') {\n r = 3;\n } else {\n r = fns.ms2mrc(d.ms);\n }\n\n // store the calculated size so hover can use it\n d.mrc = r;\n\n if(fns.selectedSizeFn) {\n r = d.mrc = fns.selectedSizeFn(d);\n }\n\n // turn the symbol into a sanitized number\n var x = drawing.symbolNumber(d.mx || marker.symbol) || 0;\n\n // save if this marker is open\n // because that impacts how to handle colors\n d.om = x % 200 >= 100;\n\n sel.attr('d', makePointPath(x, r));\n }\n\n var perPointGradient = false;\n var fillColor, lineColor, lineWidth;\n\n // 'so' is suspected outliers, for box plots\n if(d.so) {\n lineWidth = markerLine.outlierwidth;\n lineColor = markerLine.outliercolor;\n fillColor = marker.outliercolor;\n } else {\n var markerLineWidth = (markerLine || {}).width;\n\n lineWidth = (\n d.mlw + 1 ||\n markerLineWidth + 1 ||\n // TODO: we need the latter for legends... can we get rid of it?\n (d.trace ? (d.trace.marker.line || {}).width : 0) + 1\n ) - 1 || 0;\n\n if('mlc' in d) lineColor = d.mlcc = fns.lineScale(d.mlc);\n // weird case: array wasn't long enough to apply to every point\n else if(Lib.isArrayOrTypedArray(markerLine.color)) lineColor = Color.defaultLine;\n else lineColor = markerLine.color;\n\n if(Lib.isArrayOrTypedArray(marker.color)) {\n fillColor = Color.defaultLine;\n perPointGradient = true;\n }\n\n if('mc' in d) {\n fillColor = d.mcc = fns.markerScale(d.mc);\n } else {\n fillColor = marker.color || 'rgba(0,0,0,0)';\n }\n\n if(fns.selectedColorFn) {\n fillColor = fns.selectedColorFn(d);\n }\n }\n\n if(d.om) {\n // open markers can't have zero linewidth, default to 1px,\n // and use fill color as stroke color\n sel.call(Color.stroke, fillColor)\n .style({\n 'stroke-width': (lineWidth || 1) + 'px',\n fill: 'none'\n });\n } else {\n sel.style('stroke-width', (d.isBlank ? 0 : lineWidth) + 'px');\n\n var markerGradient = marker.gradient;\n\n var gradientType = d.mgt;\n if(gradientType) perPointGradient = true;\n else gradientType = markerGradient && markerGradient.type;\n\n // for legend - arrays will propagate through here, but we don't need\n // to treat it as per-point.\n if(Array.isArray(gradientType)) {\n gradientType = gradientType[0];\n if(!gradientInfo[gradientType]) gradientType = 0;\n }\n\n if(gradientType && gradientType !== 'none') {\n var gradientColor = d.mgc;\n if(gradientColor) perPointGradient = true;\n else gradientColor = markerGradient.color;\n\n var gradientID = trace.uid;\n if(perPointGradient) gradientID += '-' + d.i;\n\n drawing.gradient(sel, gd, gradientID, gradientType,\n [[0, gradientColor], [1, fillColor]], 'fill');\n } else {\n Color.fill(sel, fillColor);\n }\n\n if(lineWidth) {\n Color.stroke(sel, lineColor);\n }\n }\n};\n\ndrawing.makePointStyleFns = function(trace) {\n var out = {};\n var marker = trace.marker;\n\n // allow array marker and marker line colors to be\n // scaled by given max and min to colorscales\n out.markerScale = drawing.tryColorscale(marker, '');\n out.lineScale = drawing.tryColorscale(marker, 'line');\n\n if(Registry.traceIs(trace, 'symbols')) {\n out.ms2mrc = subTypes.isBubble(trace) ?\n makeBubbleSizeFn(trace) :\n function() { return (marker.size || 6) / 2; };\n }\n\n if(trace.selectedpoints) {\n Lib.extendFlat(out, drawing.makeSelectedPointStyleFns(trace));\n }\n\n return out;\n};\n\ndrawing.makeSelectedPointStyleFns = function(trace) {\n var out = {};\n\n var selectedAttrs = trace.selected || {};\n var unselectedAttrs = trace.unselected || {};\n\n var marker = trace.marker || {};\n var selectedMarker = selectedAttrs.marker || {};\n var unselectedMarker = unselectedAttrs.marker || {};\n\n var mo = marker.opacity;\n var smo = selectedMarker.opacity;\n var usmo = unselectedMarker.opacity;\n var smoIsDefined = smo !== undefined;\n var usmoIsDefined = usmo !== undefined;\n\n if(Lib.isArrayOrTypedArray(mo) || smoIsDefined || usmoIsDefined) {\n out.selectedOpacityFn = function(d) {\n var base = d.mo === undefined ? marker.opacity : d.mo;\n\n if(d.selected) {\n return smoIsDefined ? smo : base;\n } else {\n return usmoIsDefined ? usmo : DESELECTDIM * base;\n }\n };\n }\n\n var mc = marker.color;\n var smc = selectedMarker.color;\n var usmc = unselectedMarker.color;\n\n if(smc || usmc) {\n out.selectedColorFn = function(d) {\n var base = d.mcc || mc;\n\n if(d.selected) {\n return smc || base;\n } else {\n return usmc || base;\n }\n };\n }\n\n var ms = marker.size;\n var sms = selectedMarker.size;\n var usms = unselectedMarker.size;\n var smsIsDefined = sms !== undefined;\n var usmsIsDefined = usms !== undefined;\n\n if(Registry.traceIs(trace, 'symbols') && (smsIsDefined || usmsIsDefined)) {\n out.selectedSizeFn = function(d) {\n var base = d.mrc || ms / 2;\n\n if(d.selected) {\n return smsIsDefined ? sms / 2 : base;\n } else {\n return usmsIsDefined ? usms / 2 : base;\n }\n };\n }\n\n return out;\n};\n\ndrawing.makeSelectedTextStyleFns = function(trace) {\n var out = {};\n\n var selectedAttrs = trace.selected || {};\n var unselectedAttrs = trace.unselected || {};\n\n var textFont = trace.textfont || {};\n var selectedTextFont = selectedAttrs.textfont || {};\n var unselectedTextFont = unselectedAttrs.textfont || {};\n\n var tc = textFont.color;\n var stc = selectedTextFont.color;\n var utc = unselectedTextFont.color;\n\n out.selectedTextColorFn = function(d) {\n var base = d.tc || tc;\n\n if(d.selected) {\n return stc || base;\n } else {\n if(utc) return utc;\n else return stc ? base : Color.addOpacity(base, DESELECTDIM);\n }\n };\n\n return out;\n};\n\ndrawing.selectedPointStyle = function(s, trace) {\n if(!s.size() || !trace.selectedpoints) return;\n\n var fns = drawing.makeSelectedPointStyleFns(trace);\n var marker = trace.marker || {};\n var seq = [];\n\n if(fns.selectedOpacityFn) {\n seq.push(function(pt, d) {\n pt.style('opacity', fns.selectedOpacityFn(d));\n });\n }\n\n if(fns.selectedColorFn) {\n seq.push(function(pt, d) {\n Color.fill(pt, fns.selectedColorFn(d));\n });\n }\n\n if(fns.selectedSizeFn) {\n seq.push(function(pt, d) {\n var mx = d.mx || marker.symbol || 0;\n var mrc2 = fns.selectedSizeFn(d);\n\n pt.attr('d', makePointPath(drawing.symbolNumber(mx), mrc2));\n\n // save for Drawing.selectedTextStyle\n d.mrc2 = mrc2;\n });\n }\n\n if(seq.length) {\n s.each(function(d) {\n var pt = d3.select(this);\n for(var i = 0; i < seq.length; i++) {\n seq[i](pt, d);\n }\n });\n }\n};\n\ndrawing.tryColorscale = function(marker, prefix) {\n var cont = prefix ? Lib.nestedProperty(marker, prefix).get() : marker;\n\n if(cont) {\n var colorArray = cont.color;\n if((cont.colorscale || cont._colorAx) && Lib.isArrayOrTypedArray(colorArray)) {\n return Colorscale.makeColorScaleFuncFromTrace(cont);\n }\n }\n return Lib.identity;\n};\n\nvar TEXTOFFSETSIGN = {\n start: 1, end: -1, middle: 0, bottom: 1, top: -1\n};\n\nfunction textPointPosition(s, textPosition, fontSize, markerRadius) {\n var group = d3.select(s.node().parentNode);\n\n var v = textPosition.indexOf('top') !== -1 ?\n 'top' :\n textPosition.indexOf('bottom') !== -1 ? 'bottom' : 'middle';\n var h = textPosition.indexOf('left') !== -1 ?\n 'end' :\n textPosition.indexOf('right') !== -1 ? 'start' : 'middle';\n\n // if markers are shown, offset a little more than\n // the nominal marker size\n // ie 2/1.6 * nominal, bcs some markers are a bit bigger\n var r = markerRadius ? markerRadius / 0.8 + 1 : 0;\n\n var numLines = (svgTextUtils.lineCount(s) - 1) * LINE_SPACING + 1;\n var dx = TEXTOFFSETSIGN[h] * r;\n var dy = fontSize * 0.75 + TEXTOFFSETSIGN[v] * r +\n (TEXTOFFSETSIGN[v] - 1) * numLines * fontSize / 2;\n\n // fix the overall text group position\n s.attr('text-anchor', h);\n group.attr('transform', 'translate(' + dx + ',' + dy + ')');\n}\n\nfunction extracTextFontSize(d, trace) {\n var fontSize = d.ts || trace.textfont.size;\n return (isNumeric(fontSize) && fontSize > 0) ? fontSize : 0;\n}\n\n// draw text at points\ndrawing.textPointStyle = function(s, trace, gd) {\n if(!s.size()) return;\n\n var selectedTextColorFn;\n if(trace.selectedpoints) {\n var fns = drawing.makeSelectedTextStyleFns(trace);\n selectedTextColorFn = fns.selectedTextColorFn;\n }\n\n var texttemplate = trace.texttemplate;\n var fullLayout = gd._fullLayout;\n\n s.each(function(d) {\n var p = d3.select(this);\n\n var text = texttemplate ?\n Lib.extractOption(d, trace, 'txt', 'texttemplate') :\n Lib.extractOption(d, trace, 'tx', 'text');\n\n if(!text && text !== 0) {\n p.remove();\n return;\n }\n\n if(texttemplate) {\n var labels = trace._module.formatLabels ? trace._module.formatLabels(d, trace, fullLayout) : {};\n var pointValues = {};\n appendArrayPointValue(pointValues, trace, d.i);\n var meta = trace._meta || {};\n text = Lib.texttemplateString(text, labels, fullLayout._d3locale, pointValues, d, meta);\n }\n\n var pos = d.tp || trace.textposition;\n var fontSize = extracTextFontSize(d, trace);\n var fontColor = selectedTextColorFn ?\n selectedTextColorFn(d) :\n (d.tc || trace.textfont.color);\n\n p.call(drawing.font,\n d.tf || trace.textfont.family,\n fontSize,\n fontColor)\n .text(text)\n .call(svgTextUtils.convertToTspans, gd)\n .call(textPointPosition, pos, fontSize, d.mrc);\n });\n};\n\ndrawing.selectedTextStyle = function(s, trace) {\n if(!s.size() || !trace.selectedpoints) return;\n\n var fns = drawing.makeSelectedTextStyleFns(trace);\n\n s.each(function(d) {\n var tx = d3.select(this);\n var tc = fns.selectedTextColorFn(d);\n var tp = d.tp || trace.textposition;\n var fontSize = extracTextFontSize(d, trace);\n\n Color.fill(tx, tc);\n textPointPosition(tx, tp, fontSize, d.mrc2 || d.mrc);\n });\n};\n\n// generalized Catmull-Rom splines, per\n// http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\nvar CatmullRomExp = 0.5;\ndrawing.smoothopen = function(pts, smoothness) {\n if(pts.length < 3) { return 'M' + pts.join('L');}\n var path = 'M' + pts[0];\n var tangents = [];\n var i;\n for(i = 1; i < pts.length - 1; i++) {\n tangents.push(makeTangent(pts[i - 1], pts[i], pts[i + 1], smoothness));\n }\n path += 'Q' + tangents[0][0] + ' ' + pts[1];\n for(i = 2; i < pts.length - 1; i++) {\n path += 'C' + tangents[i - 2][1] + ' ' + tangents[i - 1][0] + ' ' + pts[i];\n }\n path += 'Q' + tangents[pts.length - 3][1] + ' ' + pts[pts.length - 1];\n return path;\n};\n\ndrawing.smoothclosed = function(pts, smoothness) {\n if(pts.length < 3) { return 'M' + pts.join('L') + 'Z'; }\n var path = 'M' + pts[0];\n var pLast = pts.length - 1;\n var tangents = [makeTangent(pts[pLast], pts[0], pts[1], smoothness)];\n var i;\n for(i = 1; i < pLast; i++) {\n tangents.push(makeTangent(pts[i - 1], pts[i], pts[i + 1], smoothness));\n }\n tangents.push(\n makeTangent(pts[pLast - 1], pts[pLast], pts[0], smoothness)\n );\n\n for(i = 1; i <= pLast; i++) {\n path += 'C' + tangents[i - 1][1] + ' ' + tangents[i][0] + ' ' + pts[i];\n }\n path += 'C' + tangents[pLast][1] + ' ' + tangents[0][0] + ' ' + pts[0] + 'Z';\n return path;\n};\n\nfunction makeTangent(prevpt, thispt, nextpt, smoothness) {\n var d1x = prevpt[0] - thispt[0];\n var d1y = prevpt[1] - thispt[1];\n var d2x = nextpt[0] - thispt[0];\n var d2y = nextpt[1] - thispt[1];\n var d1a = Math.pow(d1x * d1x + d1y * d1y, CatmullRomExp / 2);\n var d2a = Math.pow(d2x * d2x + d2y * d2y, CatmullRomExp / 2);\n var numx = (d2a * d2a * d1x - d1a * d1a * d2x) * smoothness;\n var numy = (d2a * d2a * d1y - d1a * d1a * d2y) * smoothness;\n var denom1 = 3 * d2a * (d1a + d2a);\n var denom2 = 3 * d1a * (d1a + d2a);\n return [\n [\n d3.round(thispt[0] + (denom1 && numx / denom1), 2),\n d3.round(thispt[1] + (denom1 && numy / denom1), 2)\n ], [\n d3.round(thispt[0] - (denom2 && numx / denom2), 2),\n d3.round(thispt[1] - (denom2 && numy / denom2), 2)\n ]\n ];\n}\n\n// step paths - returns a generator function for paths\n// with the given step shape\nvar STEPPATH = {\n hv: function(p0, p1) {\n return 'H' + d3.round(p1[0], 2) + 'V' + d3.round(p1[1], 2);\n },\n vh: function(p0, p1) {\n return 'V' + d3.round(p1[1], 2) + 'H' + d3.round(p1[0], 2);\n },\n hvh: function(p0, p1) {\n return 'H' + d3.round((p0[0] + p1[0]) / 2, 2) + 'V' +\n d3.round(p1[1], 2) + 'H' + d3.round(p1[0], 2);\n },\n vhv: function(p0, p1) {\n return 'V' + d3.round((p0[1] + p1[1]) / 2, 2) + 'H' +\n d3.round(p1[0], 2) + 'V' + d3.round(p1[1], 2);\n }\n};\nvar STEPLINEAR = function(p0, p1) {\n return 'L' + d3.round(p1[0], 2) + ',' + d3.round(p1[1], 2);\n};\ndrawing.steps = function(shape) {\n var onestep = STEPPATH[shape] || STEPLINEAR;\n return function(pts) {\n var path = 'M' + d3.round(pts[0][0], 2) + ',' + d3.round(pts[0][1], 2);\n for(var i = 1; i < pts.length; i++) {\n path += onestep(pts[i - 1], pts[i]);\n }\n return path;\n };\n};\n\n// off-screen svg render testing element, shared by the whole page\n// uses the id 'js-plotly-tester' and stores it in drawing.tester\ndrawing.makeTester = function() {\n var tester = Lib.ensureSingleById(d3.select('body'), 'svg', 'js-plotly-tester', function(s) {\n s.attr(xmlnsNamespaces.svgAttrs)\n .style({\n position: 'absolute',\n left: '-10000px',\n top: '-10000px',\n width: '9000px',\n height: '9000px',\n 'z-index': '1'\n });\n });\n\n // browsers differ on how they describe the bounding rect of\n // the svg if its contents spill over... so make a 1x1px\n // reference point we can measure off of.\n var testref = Lib.ensureSingle(tester, 'path', 'js-reference-point', function(s) {\n s.attr('d', 'M0,0H1V1H0Z')\n .style({\n 'stroke-width': 0,\n fill: 'black'\n });\n });\n\n drawing.tester = tester;\n drawing.testref = testref;\n};\n\n/*\n * use our offscreen tester to get a clientRect for an element,\n * in a reference frame where it isn't translated (or transformed) and\n * its anchor point is at (0,0)\n * always returns a copy of the bbox, so the caller can modify it safely\n *\n * @param {SVGElement} node: the element to measure. If possible this should be\n * a or MathJax element that's already passed through\n * `convertToTspans` because in that case we can cache the results, but it's\n * possible to pass in any svg element.\n *\n * @param {boolean} inTester: is this element already in `drawing.tester`?\n * If you are measuring a dummy element, rather than one you really intend\n * to use on the plot, making it in `drawing.tester` in the first place\n * allows us to test faster because it cuts out cloning and appending it.\n *\n * @param {string} hash: for internal use only, if we already know the cache key\n * for this element beforehand.\n *\n * @return {object}: a plain object containing the width, height, left, right,\n * top, and bottom of `node`\n */\ndrawing.savedBBoxes = {};\nvar savedBBoxesCount = 0;\nvar maxSavedBBoxes = 10000;\n\ndrawing.bBox = function(node, inTester, hash) {\n /*\n * Cache elements we've already measured so we don't have to\n * remeasure the same thing many times\n * We have a few bBox callers though who pass a node larger than\n * a or a MathJax , such as an axis group containing many labels.\n * These will not generate a hash (unless we figure out an appropriate\n * hash key for them) and thus we will not hash them.\n */\n if(!hash) hash = nodeHash(node);\n var out;\n if(hash) {\n out = drawing.savedBBoxes[hash];\n if(out) return Lib.extendFlat({}, out);\n } else if(node.childNodes.length === 1) {\n /*\n * If we have only one child element, which is itself hashable, make\n * a new hash from this element plus its x,y,transform\n * These bounding boxes *include* x,y,transform - mostly for use by\n * callers trying to avoid overlaps (ie titles)\n */\n var innerNode = node.childNodes[0];\n\n hash = nodeHash(innerNode);\n if(hash) {\n var x = +innerNode.getAttribute('x') || 0;\n var y = +innerNode.getAttribute('y') || 0;\n var transform = innerNode.getAttribute('transform');\n\n if(!transform) {\n // in this case, just varying x and y, don't bother caching\n // the final bBox because the alteration is quick.\n var innerBB = drawing.bBox(innerNode, false, hash);\n if(x) {\n innerBB.left += x;\n innerBB.right += x;\n }\n if(y) {\n innerBB.top += y;\n innerBB.bottom += y;\n }\n return innerBB;\n }\n /*\n * else we have a transform - rather than make a complicated\n * (and error-prone and probably slow) transform parser/calculator,\n * just continue on calculating the boundingClientRect of the group\n * and use the new composite hash to cache it.\n * That said, `innerNode.transform.baseVal` is an array of\n * `SVGTransform` objects, that *do* seem to have a nice matrix\n * multiplication interface that we could use to avoid making\n * another getBoundingClientRect call...\n */\n hash += '~' + x + '~' + y + '~' + transform;\n\n out = drawing.savedBBoxes[hash];\n if(out) return Lib.extendFlat({}, out);\n }\n }\n var testNode, tester;\n if(inTester) {\n testNode = node;\n } else {\n tester = drawing.tester.node();\n\n // copy the node to test into the tester\n testNode = node.cloneNode(true);\n tester.appendChild(testNode);\n }\n\n // standardize its position (and newline tspans if any)\n d3.select(testNode)\n .attr('transform', null)\n .call(svgTextUtils.positionText, 0, 0);\n\n var testRect = testNode.getBoundingClientRect();\n var refRect = drawing.testref\n .node()\n .getBoundingClientRect();\n\n if(!inTester) tester.removeChild(testNode);\n\n var bb = {\n height: testRect.height,\n width: testRect.width,\n left: testRect.left - refRect.left,\n top: testRect.top - refRect.top,\n right: testRect.right - refRect.left,\n bottom: testRect.bottom - refRect.top\n };\n\n // make sure we don't have too many saved boxes,\n // or a long session could overload on memory\n // by saving boxes for long-gone elements\n if(savedBBoxesCount >= maxSavedBBoxes) {\n drawing.savedBBoxes = {};\n savedBBoxesCount = 0;\n }\n\n // cache this bbox\n if(hash) drawing.savedBBoxes[hash] = bb;\n savedBBoxesCount++;\n\n return Lib.extendFlat({}, bb);\n};\n\n// capture everything about a node (at least in our usage) that\n// impacts its bounding box, given that bBox clears x, y, and transform\nfunction nodeHash(node) {\n var inputText = node.getAttribute('data-unformatted');\n if(inputText === null) return;\n return inputText +\n node.getAttribute('data-math') +\n node.getAttribute('text-anchor') +\n node.getAttribute('style');\n}\n\n/**\n * Set clipPath URL in a way that work for all situations.\n *\n * In details, graphs on pages with HTML tags need to prepend\n * the clip path ids with the page's base url EXCEPT during toImage exports.\n *\n * @param {d3 selection} s : node to add clip-path attribute\n * @param {string} localId : local clip-path (w/o base url) id\n * @param {DOM element || object} gd\n * - context._baseUrl {string}\n * - context._exportedPlot {boolean}\n */\ndrawing.setClipUrl = function(s, localId, gd) {\n s.attr('clip-path', getFullUrl(localId, gd));\n};\n\nfunction getFullUrl(localId, gd) {\n if(!localId) return null;\n\n var context = gd._context;\n var baseUrl = context._exportedPlot ? '' : (context._baseUrl || '');\n return 'url(\\'' + baseUrl + '#' + localId + '\\')';\n}\n\ndrawing.getTranslate = function(element) {\n // Note the separator [^\\d] between x and y in this regex\n // We generally use ',' but IE will convert it to ' '\n var re = /.*\\btranslate\\((-?\\d*\\.?\\d*)[^-\\d]*(-?\\d*\\.?\\d*)[^\\d].*/;\n var getter = element.attr ? 'attr' : 'getAttribute';\n var transform = element[getter]('transform') || '';\n\n var translate = transform.replace(re, function(match, p1, p2) {\n return [p1, p2].join(' ');\n })\n .split(' ');\n\n return {\n x: +translate[0] || 0,\n y: +translate[1] || 0\n };\n};\n\ndrawing.setTranslate = function(element, x, y) {\n var re = /(\\btranslate\\(.*?\\);?)/;\n var getter = element.attr ? 'attr' : 'getAttribute';\n var setter = element.attr ? 'attr' : 'setAttribute';\n var transform = element[getter]('transform') || '';\n\n x = x || 0;\n y = y || 0;\n\n transform = transform.replace(re, '').trim();\n transform += ' translate(' + x + ', ' + y + ')';\n transform = transform.trim();\n\n element[setter]('transform', transform);\n\n return transform;\n};\n\ndrawing.getScale = function(element) {\n var re = /.*\\bscale\\((\\d*\\.?\\d*)[^\\d]*(\\d*\\.?\\d*)[^\\d].*/;\n var getter = element.attr ? 'attr' : 'getAttribute';\n var transform = element[getter]('transform') || '';\n\n var translate = transform.replace(re, function(match, p1, p2) {\n return [p1, p2].join(' ');\n })\n .split(' ');\n\n return {\n x: +translate[0] || 1,\n y: +translate[1] || 1\n };\n};\n\ndrawing.setScale = function(element, x, y) {\n var re = /(\\bscale\\(.*?\\);?)/;\n var getter = element.attr ? 'attr' : 'getAttribute';\n var setter = element.attr ? 'attr' : 'setAttribute';\n var transform = element[getter]('transform') || '';\n\n x = x || 1;\n y = y || 1;\n\n transform = transform.replace(re, '').trim();\n transform += ' scale(' + x + ', ' + y + ')';\n transform = transform.trim();\n\n element[setter]('transform', transform);\n\n return transform;\n};\n\nvar SCALE_RE = /\\s*sc.*/;\n\ndrawing.setPointGroupScale = function(selection, xScale, yScale) {\n xScale = xScale || 1;\n yScale = yScale || 1;\n\n if(!selection) return;\n\n // The same scale transform for every point:\n var scale = (xScale === 1 && yScale === 1) ?\n '' :\n ' scale(' + xScale + ',' + yScale + ')';\n\n selection.each(function() {\n var t = (this.getAttribute('transform') || '').replace(SCALE_RE, '');\n t += scale;\n t = t.trim();\n this.setAttribute('transform', t);\n });\n};\n\nvar TEXT_POINT_LAST_TRANSLATION_RE = /translate\\([^)]*\\)\\s*$/;\n\ndrawing.setTextPointsScale = function(selection, xScale, yScale) {\n if(!selection) return;\n\n selection.each(function() {\n var transforms;\n var el = d3.select(this);\n var text = el.select('text');\n\n if(!text.node()) return;\n\n var x = parseFloat(text.attr('x') || 0);\n var y = parseFloat(text.attr('y') || 0);\n\n var existingTransform = (el.attr('transform') || '').match(TEXT_POINT_LAST_TRANSLATION_RE);\n\n if(xScale === 1 && yScale === 1) {\n transforms = [];\n } else {\n transforms = [\n 'translate(' + x + ',' + y + ')',\n 'scale(' + xScale + ',' + yScale + ')',\n 'translate(' + (-x) + ',' + (-y) + ')',\n ];\n }\n\n if(existingTransform) {\n transforms.push(existingTransform);\n }\n\n el.attr('transform', transforms.join(' '));\n });\n};\n\n\n/***/ }),\n\n/***/ \"8418\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(\"c04e\");\nvar definePropertyModule = __webpack_require__(\"9bf2\");\nvar createPropertyDescriptor = __webpack_require__(\"5c6c\");\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n\n/***/ \"849d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\n\n// The contour extraction is great, except it totally fails for constraints because we\n// need weird range loops and flipped contours instead of the usual format. This function\n// does some weird manipulation of the extracted pathinfo data such that it magically\n// draws contours correctly *as* constraints.\n//\n// ** I do not know which \"weird range loops\" the comment above is referring to.\nmodule.exports = function(pathinfo, operation) {\n var i, pi0, pi1;\n\n var op0 = function(arr) { return arr.reverse(); };\n var op1 = function(arr) { return arr; };\n\n switch(operation) {\n case '=':\n case '<':\n return pathinfo;\n case '>':\n if(pathinfo.length !== 1) {\n Lib.warn('Contour data invalid for the specified inequality operation.');\n }\n\n // In this case there should be exactly one contour levels in pathinfo.\n // We flip all of the data. This will draw the contour as closed.\n pi0 = pathinfo[0];\n\n for(i = 0; i < pi0.edgepaths.length; i++) {\n pi0.edgepaths[i] = op0(pi0.edgepaths[i]);\n }\n for(i = 0; i < pi0.paths.length; i++) {\n pi0.paths[i] = op0(pi0.paths[i]);\n }\n for(i = 0; i < pi0.starts.length; i++) {\n pi0.starts[i] = op0(pi0.starts[i]);\n }\n\n return pathinfo;\n case '][':\n var tmp = op0;\n op0 = op1;\n op1 = tmp;\n // It's a nice rule, except this definitely *is* what's intended here.\n /* eslint-disable: no-fallthrough */\n case '[]':\n /* eslint-enable: no-fallthrough */\n if(pathinfo.length !== 2) {\n Lib.warn('Contour data invalid for the specified inequality range operation.');\n }\n\n // In this case there should be exactly two contour levels in pathinfo.\n // - We concatenate the info into one pathinfo.\n // - We must also flip all of the data in the `[]` case.\n // This will draw the contours as closed.\n pi0 = copyPathinfo(pathinfo[0]);\n pi1 = copyPathinfo(pathinfo[1]);\n\n for(i = 0; i < pi0.edgepaths.length; i++) {\n pi0.edgepaths[i] = op0(pi0.edgepaths[i]);\n }\n for(i = 0; i < pi0.paths.length; i++) {\n pi0.paths[i] = op0(pi0.paths[i]);\n }\n for(i = 0; i < pi0.starts.length; i++) {\n pi0.starts[i] = op0(pi0.starts[i]);\n }\n\n while(pi1.edgepaths.length) {\n pi0.edgepaths.push(op1(pi1.edgepaths.shift()));\n }\n while(pi1.paths.length) {\n pi0.paths.push(op1(pi1.paths.shift()));\n }\n while(pi1.starts.length) {\n pi0.starts.push(op1(pi1.starts.shift()));\n }\n\n return [pi0];\n }\n};\n\nfunction copyPathinfo(pi) {\n return Lib.extendFlat({}, pi, {\n edgepaths: Lib.extendDeep([], pi.edgepaths),\n paths: Lib.extendDeep([], pi.paths),\n starts: Lib.extendDeep([], pi.starts)\n });\n}\n\n\n/***/ }),\n\n/***/ \"84a1\":\n/***/ (function(module, exports) {\n\nmodule.exports = function () {\n for (var i = 0; i < arguments.length; i++) {\n if (arguments[i] !== undefined) return arguments[i];\n }\n};\n\n\n/***/ }),\n\n/***/ \"84af\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction dupe_array(count, value, i) {\n var c = count[i]|0\n if(c <= 0) {\n return []\n }\n var result = new Array(c), j\n if(i === count.length-1) {\n for(j=0; j 0) {\n return dupe_number(count|0, value)\n }\n break\n case \"object\":\n if(typeof (count.length) === \"number\") {\n return dupe_array(count, value, 0)\n }\n break\n }\n return []\n}\n\nmodule.exports = dupe\n\n/***/ }),\n\n/***/ \"84d3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isValue = __webpack_require__(\"936a\")\n , isObject = __webpack_require__(\"5edd\")\n , stringCoerce = __webpack_require__(\"eae0\")\n , toShortString = __webpack_require__(\"7d88\");\n\nvar resolveMessage = function (message, value) {\n\treturn message.replace(\"%v\", toShortString(value));\n};\n\nmodule.exports = function (value, defaultMessage, inputOptions) {\n\tif (!isObject(inputOptions)) throw new TypeError(resolveMessage(defaultMessage, value));\n\tif (!isValue(value)) {\n\t\tif (\"default\" in inputOptions) return inputOptions[\"default\"];\n\t\tif (inputOptions.isOptional) return null;\n\t}\n\tvar errorMessage = stringCoerce(inputOptions.errorMessage);\n\tif (!isValue(errorMessage)) errorMessage = defaultMessage;\n\tthrow new TypeError(resolveMessage(errorMessage, value));\n};\n\n\n/***/ }),\n\n/***/ \"84df\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\n\nvar SHOWISOLATETIP = true;\n\nmodule.exports = function handleClick(g, gd, numClicks) {\n var fullLayout = gd._fullLayout;\n\n if(gd._dragged || gd._editing) return;\n\n var itemClick = fullLayout.legend.itemclick;\n var itemDoubleClick = fullLayout.legend.itemdoubleclick;\n\n if(numClicks === 1 && itemClick === 'toggle' && itemDoubleClick === 'toggleothers' &&\n SHOWISOLATETIP && gd.data && gd._context.showTips\n ) {\n Lib.notifier(Lib._(gd, 'Double-click on legend to isolate one trace'), 'long');\n SHOWISOLATETIP = false;\n } else {\n SHOWISOLATETIP = false;\n }\n\n var mode;\n if(numClicks === 1) mode = itemClick;\n else if(numClicks === 2) mode = itemDoubleClick;\n if(!mode) return;\n\n var hiddenSlices = fullLayout.hiddenlabels ?\n fullLayout.hiddenlabels.slice() :\n [];\n\n var legendItem = g.data()[0][0];\n var fullData = gd._fullData;\n var fullTrace = legendItem.trace;\n var legendgroup = fullTrace.legendgroup;\n\n var i, j, kcont, key, keys, val;\n var attrUpdate = {};\n var attrIndices = [];\n var carrs = [];\n var carrIdx = [];\n\n function insertUpdate(traceIndex, key, value) {\n var attrIndex = attrIndices.indexOf(traceIndex);\n var valueArray = attrUpdate[key];\n if(!valueArray) {\n valueArray = attrUpdate[key] = [];\n }\n\n if(attrIndices.indexOf(traceIndex) === -1) {\n attrIndices.push(traceIndex);\n attrIndex = attrIndices.length - 1;\n }\n\n valueArray[attrIndex] = value;\n\n return attrIndex;\n }\n\n function setVisibility(fullTrace, visibility) {\n var fullInput = fullTrace._fullInput;\n if(Registry.hasTransform(fullInput, 'groupby')) {\n var kcont = carrs[fullInput.index];\n if(!kcont) {\n var groupbyIndices = Registry.getTransformIndices(fullInput, 'groupby');\n var lastGroupbyIndex = groupbyIndices[groupbyIndices.length - 1];\n kcont = Lib.keyedContainer(fullInput, 'transforms[' + lastGroupbyIndex + '].styles', 'target', 'value.visible');\n carrs[fullInput.index] = kcont;\n }\n\n var curState = kcont.get(fullTrace._group);\n\n // If not specified, assume visible. This happens if there are other style\n // properties set for a group but not the visibility. There are many similar\n // ways to do this (e.g. why not just `curState = fullTrace.visible`??? The\n // answer is: because it breaks other things like groupby trace names in\n // subtle ways.)\n if(curState === undefined) {\n curState = true;\n }\n\n if(curState !== false) {\n // true -> legendonly. All others toggle to true:\n kcont.set(fullTrace._group, visibility);\n }\n carrIdx[fullInput.index] = insertUpdate(fullInput.index, 'visible', fullInput.visible === false ? false : true);\n } else {\n // false -> false (not possible since will not be visible in legend)\n // true -> legendonly\n // legendonly -> true\n var nextVisibility = fullInput.visible === false ? false : visibility;\n\n insertUpdate(fullInput.index, 'visible', nextVisibility);\n }\n }\n\n if(Registry.traceIs(fullTrace, 'pie-like')) {\n var thisLabel = legendItem.label;\n var thisLabelIndex = hiddenSlices.indexOf(thisLabel);\n\n if(mode === 'toggle') {\n if(thisLabelIndex === -1) hiddenSlices.push(thisLabel);\n else hiddenSlices.splice(thisLabelIndex, 1);\n } else if(mode === 'toggleothers') {\n hiddenSlices = [];\n gd.calcdata[0].forEach(function(d) {\n if(thisLabel !== d.label) {\n hiddenSlices.push(d.label);\n }\n });\n if(gd._fullLayout.hiddenlabels && gd._fullLayout.hiddenlabels.length === hiddenSlices.length && thisLabelIndex === -1) {\n hiddenSlices = [];\n }\n }\n\n Registry.call('_guiRelayout', gd, 'hiddenlabels', hiddenSlices);\n } else {\n var hasLegendgroup = legendgroup && legendgroup.length;\n var traceIndicesInGroup = [];\n var tracei;\n if(hasLegendgroup) {\n for(i = 0; i < fullData.length; i++) {\n tracei = fullData[i];\n if(!tracei.visible) continue;\n if(tracei.legendgroup === legendgroup) {\n traceIndicesInGroup.push(i);\n }\n }\n }\n\n if(mode === 'toggle') {\n var nextVisibility;\n\n switch(fullTrace.visible) {\n case true:\n nextVisibility = 'legendonly';\n break;\n case false:\n nextVisibility = false;\n break;\n case 'legendonly':\n nextVisibility = true;\n break;\n }\n\n if(hasLegendgroup) {\n for(i = 0; i < fullData.length; i++) {\n if(fullData[i].visible !== false && fullData[i].legendgroup === legendgroup) {\n setVisibility(fullData[i], nextVisibility);\n }\n }\n } else {\n setVisibility(fullTrace, nextVisibility);\n }\n } else if(mode === 'toggleothers') {\n // Compute the clicked index. expandedIndex does what we want for expanded traces\n // but also culls hidden traces. That means we have some work to do.\n var isClicked, isInGroup, notInLegend, otherState;\n var isIsolated = true;\n for(i = 0; i < fullData.length; i++) {\n isClicked = fullData[i] === fullTrace;\n notInLegend = fullData[i].showlegend !== true;\n if(isClicked || notInLegend) continue;\n\n isInGroup = (hasLegendgroup && fullData[i].legendgroup === legendgroup);\n\n if(!isInGroup && fullData[i].visible === true && !Registry.traceIs(fullData[i], 'notLegendIsolatable')) {\n isIsolated = false;\n break;\n }\n }\n\n for(i = 0; i < fullData.length; i++) {\n // False is sticky; we don't change it.\n if(fullData[i].visible === false) continue;\n\n if(Registry.traceIs(fullData[i], 'notLegendIsolatable')) {\n continue;\n }\n\n switch(fullTrace.visible) {\n case 'legendonly':\n setVisibility(fullData[i], true);\n break;\n case true:\n otherState = isIsolated ? true : 'legendonly';\n isClicked = fullData[i] === fullTrace;\n // N.B. consider traces that have a set legendgroup as toggleable\n notInLegend = (fullData[i].showlegend !== true && !fullData[i].legendgroup);\n isInGroup = isClicked || (hasLegendgroup && fullData[i].legendgroup === legendgroup);\n setVisibility(fullData[i], (isInGroup || notInLegend) ? true : otherState);\n break;\n }\n }\n }\n\n for(i = 0; i < carrs.length; i++) {\n kcont = carrs[i];\n if(!kcont) continue;\n var update = kcont.constructUpdate();\n\n var updateKeys = Object.keys(update);\n for(j = 0; j < updateKeys.length; j++) {\n key = updateKeys[j];\n val = attrUpdate[key] = attrUpdate[key] || [];\n val[carrIdx[i]] = update[key];\n }\n }\n\n // The length of the value arrays should be equal and any unspecified\n // values should be explicitly undefined for them to get properly culled\n // as updates and not accidentally reset to the default value. This fills\n // out sparse arrays with the required number of undefined values:\n keys = Object.keys(attrUpdate);\n for(i = 0; i < keys.length; i++) {\n key = keys[i];\n for(j = 0; j < attrIndices.length; j++) {\n // Use hasOwnPropety to protect against falsey values:\n if(!attrUpdate[key].hasOwnProperty(j)) {\n attrUpdate[key][j] = undefined;\n }\n }\n }\n\n Registry.call('_guiRestyle', gd, attrUpdate, attrIndices);\n }\n};\n\n\n/***/ }),\n\n/***/ \"850f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nmodule.exports = function eventData(out, pt) {\n out.lon = pt.lon;\n out.lat = pt.lat;\n out.z = pt.z;\n return out;\n};\n\n\n/***/ }),\n\n/***/ \"855b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Events = __webpack_require__(\"8741\");\nvar throttle = __webpack_require__(\"7df2\");\nvar getGraphDiv = __webpack_require__(\"1b88\").getGraphDiv;\n\nvar hoverConstants = __webpack_require__(\"7fb7\");\n\nvar unhover = module.exports = {};\n\nunhover.wrapped = function(gd, evt, subplot) {\n gd = getGraphDiv(gd);\n\n // Important, clear any queued hovers\n if(gd._fullLayout) {\n throttle.clear(gd._fullLayout._uid + hoverConstants.HOVERID);\n }\n\n unhover.raw(gd, evt, subplot);\n};\n\n\n// remove hover effects on mouse out, and emit unhover event\nunhover.raw = function raw(gd, evt) {\n var fullLayout = gd._fullLayout;\n var oldhoverdata = gd._hoverdata;\n\n if(!evt) evt = {};\n if(evt.target &&\n Events.triggerHandler(gd, 'plotly_beforehover', evt) === false) {\n return;\n }\n\n fullLayout._hoverlayer.selectAll('g').remove();\n fullLayout._hoverlayer.selectAll('line').remove();\n fullLayout._hoverlayer.selectAll('circle').remove();\n gd._hoverdata = undefined;\n\n if(evt.target && oldhoverdata) {\n gd.emit('plotly_unhover', {\n event: evt,\n points: oldhoverdata\n });\n }\n};\n\n\n/***/ }),\n\n/***/ \"8568\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar Lib = __webpack_require__(\"fc26\");\nvar Axes = __webpack_require__(\"0642\");\n\nvar calcCommon = __webpack_require__(\"bb14\").calcCommon;\n\nmodule.exports = function(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n\n var x = xa.makeCalcdata(trace, 'x');\n\n var cd = calcCommon(gd, trace, x, ya, ptFunc);\n\n if(cd.length) {\n Lib.extendFlat(cd[0].t, {\n num: fullLayout._numBoxes,\n dPos: Lib.distinctVals(x).minDiff / 2,\n posLetter: 'x',\n valLetter: 'y',\n });\n\n fullLayout._numBoxes++;\n return cd;\n } else {\n return [{t: {empty: true}}];\n }\n};\n\nfunction ptFunc(o, h, l, c) {\n return {\n min: l,\n q1: Math.min(o, c),\n med: c,\n q3: Math.max(o, c),\n max: h,\n };\n}\n\n\n/***/ }),\n\n/***/ \"8586\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = tokenize\r\n\r\nvar literals100 = __webpack_require__(\"1936\")\r\n , operators = __webpack_require__(\"6a25\")\r\n , builtins100 = __webpack_require__(\"5ecd\")\r\n , literals300es = __webpack_require__(\"f5f2\")\r\n , builtins300es = __webpack_require__(\"0648\")\r\n\r\nvar NORMAL = 999 // <-- never emitted\r\n , TOKEN = 9999 // <-- never emitted\r\n , BLOCK_COMMENT = 0\r\n , LINE_COMMENT = 1\r\n , PREPROCESSOR = 2\r\n , OPERATOR = 3\r\n , INTEGER = 4\r\n , FLOAT = 5\r\n , IDENT = 6\r\n , BUILTIN = 7\r\n , KEYWORD = 8\r\n , WHITESPACE = 9\r\n , EOF = 10\r\n , HEX = 11\r\n\r\nvar map = [\r\n 'block-comment'\r\n , 'line-comment'\r\n , 'preprocessor'\r\n , 'operator'\r\n , 'integer'\r\n , 'float'\r\n , 'ident'\r\n , 'builtin'\r\n , 'keyword'\r\n , 'whitespace'\r\n , 'eof'\r\n , 'integer'\r\n]\r\n\r\nfunction tokenize(opt) {\r\n var i = 0\r\n , total = 0\r\n , mode = NORMAL\r\n , c\r\n , last\r\n , content = []\r\n , tokens = []\r\n , token_idx = 0\r\n , token_offs = 0\r\n , line = 1\r\n , col = 0\r\n , start = 0\r\n , isnum = false\r\n , isoperator = false\r\n , input = ''\r\n , len\r\n\r\n opt = opt || {}\r\n var allBuiltins = builtins100\r\n var allLiterals = literals100\r\n if (opt.version === '300 es') {\r\n allBuiltins = builtins300es\r\n allLiterals = literals300es\r\n }\r\n\r\n // cache by name\r\n var builtinsDict = {}, literalsDict = {}\r\n for (var i = 0; i < allBuiltins.length; i++) {\r\n builtinsDict[allBuiltins[i]] = true\r\n }\r\n for (var i = 0; i < allLiterals.length; i++) {\r\n literalsDict[allLiterals[i]] = true\r\n }\r\n\r\n return function(data) {\r\n tokens = []\r\n if (data !== null) return write(data)\r\n return end()\r\n }\r\n\r\n function token(data) {\r\n if (data.length) {\r\n tokens.push({\r\n type: map[mode]\r\n , data: data\r\n , position: start\r\n , line: line\r\n , column: col\r\n })\r\n }\r\n }\r\n\r\n function write(chunk) {\r\n i = 0\r\n\r\n if (chunk.toString) chunk = chunk.toString()\r\n\r\n input += chunk.replace(/\\r\\n/g, '\\n')\r\n len = input.length\r\n\r\n\r\n var last\r\n\r\n while(c = input[i], i < len) {\r\n last = i\r\n\r\n switch(mode) {\r\n case BLOCK_COMMENT: i = block_comment(); break\r\n case LINE_COMMENT: i = line_comment(); break\r\n case PREPROCESSOR: i = preprocessor(); break\r\n case OPERATOR: i = operator(); break\r\n case INTEGER: i = integer(); break\r\n case HEX: i = hex(); break\r\n case FLOAT: i = decimal(); break\r\n case TOKEN: i = readtoken(); break\r\n case WHITESPACE: i = whitespace(); break\r\n case NORMAL: i = normal(); break\r\n }\r\n\r\n if(last !== i) {\r\n switch(input[last]) {\r\n case '\\n': col = 0; ++line; break\r\n default: ++col; break\r\n }\r\n }\r\n }\r\n\r\n total += i\r\n input = input.slice(i)\r\n return tokens\r\n }\r\n\r\n function end(chunk) {\r\n if(content.length) {\r\n token(content.join(''))\r\n }\r\n\r\n mode = EOF\r\n token('(eof)')\r\n return tokens\r\n }\r\n\r\n function normal() {\r\n content = content.length ? [] : content\r\n\r\n if(last === '/' && c === '*') {\r\n start = total + i - 1\r\n mode = BLOCK_COMMENT\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(last === '/' && c === '/') {\r\n start = total + i - 1\r\n mode = LINE_COMMENT\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(c === '#') {\r\n mode = PREPROCESSOR\r\n start = total + i\r\n return i\r\n }\r\n\r\n if(/\\s/.test(c)) {\r\n mode = WHITESPACE\r\n start = total + i\r\n return i\r\n }\r\n\r\n isnum = /\\d/.test(c)\r\n isoperator = /[^\\w_]/.test(c)\r\n\r\n start = total + i\r\n mode = isnum ? INTEGER : isoperator ? OPERATOR : TOKEN\r\n return i\r\n }\r\n\r\n function whitespace() {\r\n if(/[^\\s]/g.test(c)) {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function preprocessor() {\r\n if((c === '\\r' || c === '\\n') && last !== '\\\\') {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function line_comment() {\r\n return preprocessor()\r\n }\r\n\r\n function block_comment() {\r\n if(c === '/' && last === '*') {\r\n content.push(c)\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i + 1\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function operator() {\r\n if(last === '.' && /\\d/.test(c)) {\r\n mode = FLOAT\r\n return i\r\n }\r\n\r\n if(last === '/' && c === '*') {\r\n mode = BLOCK_COMMENT\r\n return i\r\n }\r\n\r\n if(last === '/' && c === '/') {\r\n mode = LINE_COMMENT\r\n return i\r\n }\r\n\r\n if(c === '.' && content.length) {\r\n while(determine_operator(content));\r\n\r\n mode = FLOAT\r\n return i\r\n }\r\n\r\n if(c === ';' || c === ')' || c === '(') {\r\n if(content.length) while(determine_operator(content));\r\n token(c)\r\n mode = NORMAL\r\n return i + 1\r\n }\r\n\r\n var is_composite_operator = content.length === 2 && c !== '='\r\n if(/[\\w_\\d\\s]/.test(c) || is_composite_operator) {\r\n while(determine_operator(content));\r\n mode = NORMAL\r\n return i\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function determine_operator(buf) {\r\n var j = 0\r\n , idx\r\n , res\r\n\r\n do {\r\n idx = operators.indexOf(buf.slice(0, buf.length + j).join(''))\r\n res = operators[idx]\r\n\r\n if(idx === -1) {\r\n if(j-- + buf.length > 0) continue\r\n res = buf.slice(0, 1).join('')\r\n }\r\n\r\n token(res)\r\n\r\n start += res.length\r\n content = content.slice(res.length)\r\n return content.length\r\n } while(1)\r\n }\r\n\r\n function hex() {\r\n if(/[^a-fA-F0-9]/.test(c)) {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function integer() {\r\n if(c === '.') {\r\n content.push(c)\r\n mode = FLOAT\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(/[eE]/.test(c)) {\r\n content.push(c)\r\n mode = FLOAT\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(c === 'x' && content.length === 1 && content[0] === '0') {\r\n mode = HEX\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(/[^\\d]/.test(c)) {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function decimal() {\r\n if(c === 'f') {\r\n content.push(c)\r\n last = c\r\n i += 1\r\n }\r\n\r\n if(/[eE]/.test(c)) {\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if ((c === '-' || c === '+') && /[eE]/.test(last)) {\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n if(/[^\\d]/.test(c)) {\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n\r\n function readtoken() {\r\n if(/[^\\d\\w_]/.test(c)) {\r\n var contentstr = content.join('')\r\n if(literalsDict[contentstr]) {\r\n mode = KEYWORD\r\n } else if(builtinsDict[contentstr]) {\r\n mode = BUILTIN\r\n } else {\r\n mode = IDENT\r\n }\r\n token(content.join(''))\r\n mode = NORMAL\r\n return i\r\n }\r\n content.push(c)\r\n last = c\r\n return i + 1\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"860b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar mapboxgl = __webpack_require__(\"e192\");\n\nvar Lib = __webpack_require__(\"fc26\");\nvar getSubplotCalcData = __webpack_require__(\"ad62\").getSubplotCalcData;\nvar xmlnsNamespaces = __webpack_require__(\"73c9\");\nvar d3 = __webpack_require__(\"6e58\");\nvar Drawing = __webpack_require__(\"83d1\");\nvar svgTextUtils = __webpack_require__(\"0379\");\n\nvar Mapbox = __webpack_require__(\"3fca\");\n\nvar MAPBOX = 'mapbox';\n\nvar constants = exports.constants = __webpack_require__(\"b5e4\");\n\nexports.name = MAPBOX;\n\nexports.attr = 'subplot';\n\nexports.idRoot = MAPBOX;\n\nexports.idRegex = exports.attrRegex = Lib.counterRegex(MAPBOX);\n\nexports.attributes = {\n subplot: {\n valType: 'subplotid',\n \n dflt: 'mapbox',\n editType: 'calc',\n \n }\n};\n\nexports.layoutAttributes = __webpack_require__(\"f7e9\");\n\nexports.supplyLayoutDefaults = __webpack_require__(\"f518\");\n\nexports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var mapboxIds = fullLayout._subplots[MAPBOX];\n\n if(mapboxgl.version !== constants.requiredVersion) {\n throw new Error(constants.wrongVersionErrorMsg);\n }\n\n var accessToken = findAccessToken(gd, mapboxIds);\n mapboxgl.accessToken = accessToken;\n\n for(var i = 0; i < mapboxIds.length; i++) {\n var id = mapboxIds[i];\n var subplotCalcData = getSubplotCalcData(calcData, MAPBOX, id);\n var opts = fullLayout[id];\n var mapbox = opts._subplot;\n\n if(!mapbox) {\n mapbox = new Mapbox(gd, id);\n fullLayout[id]._subplot = mapbox;\n }\n\n if(!mapbox.viewInitial) {\n mapbox.viewInitial = {\n center: Lib.extendFlat({}, opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch\n };\n }\n\n mapbox.plot(subplotCalcData, fullLayout, gd._promises);\n }\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldMapboxKeys = oldFullLayout._subplots[MAPBOX] || [];\n\n for(var i = 0; i < oldMapboxKeys.length; i++) {\n var oldMapboxKey = oldMapboxKeys[i];\n\n if(!newFullLayout[oldMapboxKey] && !!oldFullLayout[oldMapboxKey]._subplot) {\n oldFullLayout[oldMapboxKey]._subplot.destroy();\n }\n }\n};\n\nexports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAPBOX];\n var size = fullLayout._size;\n\n for(var i = 0; i < subplotIds.length; i++) {\n var opts = fullLayout[subplotIds[i]];\n var domain = opts.domain;\n var mapbox = opts._subplot;\n\n var imageData = mapbox.toImage('png');\n var image = fullLayout._glimages.append('svg:image');\n\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n 'xlink:href': imageData,\n x: size.l + size.w * domain.x[0],\n y: size.t + size.h * (1 - domain.y[1]),\n width: size.w * (domain.x[1] - domain.x[0]),\n height: size.h * (domain.y[1] - domain.y[0]),\n preserveAspectRatio: 'none'\n });\n\n var subplotDiv = d3.select(opts._subplot.div);\n\n // Append logo if visible\n var hidden = subplotDiv.select('.mapboxgl-ctrl-logo').node().offsetParent === null;\n if(!hidden) {\n var logo = fullLayout._glimages.append('g');\n logo.attr('transform', 'translate(' + (size.l + size.w * domain.x[0] + 10) + ', ' + (size.t + size.h * (1 - domain.y[0]) - 31) + ')');\n logo.append('path')\n .attr('d', constants.mapboxLogo.path0)\n .style({\n opacity: 0.9,\n fill: '#ffffff',\n 'enable-background': 'new'\n });\n\n logo.append('path')\n .attr('d', constants.mapboxLogo.path1)\n .style('opacity', 0.35)\n .style('enable-background', 'new');\n\n logo.append('path')\n .attr('d', constants.mapboxLogo.path2)\n .style('opacity', 0.35)\n .style('enable-background', 'new');\n\n logo.append('polygon')\n .attr('points', constants.mapboxLogo.polygon)\n .style({\n opacity: 0.9,\n fill: '#ffffff',\n 'enable-background': 'new'\n });\n }\n\n // Add attributions\n var attributions = subplotDiv\n .select('.mapboxgl-ctrl-attrib').text()\n .replace('Improve this map', '');\n\n var attributionGroup = fullLayout._glimages.append('g');\n\n var attributionText = attributionGroup.append('text');\n attributionText\n .text(attributions)\n .classed('static-attribution', true)\n .attr({\n 'font-size': 12,\n 'font-family': 'Arial',\n 'color': 'rgba(0, 0, 0, 0.75)',\n 'text-anchor': 'end',\n 'data-unformatted': attributions\n });\n\n var bBox = Drawing.bBox(attributionText.node());\n\n // Break into multiple lines twice larger than domain\n var maxWidth = size.w * (domain.x[1] - domain.x[0]);\n if((bBox.width > maxWidth / 2)) {\n var multilineAttributions = attributions.split('|').join('
');\n attributionText\n .text(multilineAttributions)\n .attr('data-unformatted', multilineAttributions)\n .call(svgTextUtils.convertToTspans, gd);\n\n bBox = Drawing.bBox(attributionText.node());\n }\n attributionText.attr('transform', 'translate(-3, ' + (-bBox.height + 8) + ')');\n\n // Draw white rectangle behind text\n attributionGroup\n .insert('rect', '.static-attribution')\n .attr({\n x: -bBox.width - 6,\n y: -bBox.height - 3,\n width: bBox.width + 6,\n height: bBox.height + 3,\n fill: 'rgba(255, 255, 255, 0.75)'\n });\n\n // Scale down if larger than domain\n var scaleRatio = 1;\n if((bBox.width + 6) > maxWidth) scaleRatio = maxWidth / (bBox.width + 6);\n\n var offset = [(size.l + size.w * domain.x[1]), (size.t + size.h * (1 - domain.y[0]))];\n attributionGroup.attr('transform', 'translate(' + offset[0] + ',' + offset[1] + ') scale(' + scaleRatio + ')');\n }\n};\n\n// N.B. mapbox-gl only allows one accessToken to be set per page:\n// https://github.com/mapbox/mapbox-gl-js/issues/6331\nfunction findAccessToken(gd, mapboxIds) {\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n\n // special case for Mapbox Atlas users\n if(context.mapboxAccessToken === '') return '';\n\n var tokensUseful = [];\n var tokensListed = [];\n var hasOneSetMapboxStyle = false;\n var wontWork = false;\n\n // Take the first token we find in a mapbox subplot.\n // These default to the context value but may be overridden.\n for(var i = 0; i < mapboxIds.length; i++) {\n var opts = fullLayout[mapboxIds[i]];\n var token = opts.accesstoken;\n\n if(isMapboxStyle(opts.style)) {\n if(token) {\n Lib.pushUnique(tokensUseful, token);\n } else {\n if(isMapboxStyle(opts._input.style)) {\n Lib.error('Uses Mapbox map style, but did not set an access token.');\n hasOneSetMapboxStyle = true;\n }\n wontWork = true;\n }\n }\n\n if(token) {\n Lib.pushUnique(tokensListed, token);\n }\n }\n\n if(wontWork) {\n var msg = hasOneSetMapboxStyle ?\n constants.noAccessTokenErrorMsg :\n constants.missingStyleErrorMsg;\n Lib.error(msg);\n throw new Error(msg);\n }\n\n if(tokensUseful.length) {\n if(tokensUseful.length > 1) {\n Lib.warn(constants.multipleTokensErrorMsg);\n }\n return tokensUseful[0];\n } else {\n if(tokensListed.length) {\n Lib.log([\n 'Listed mapbox access token(s)', tokensListed.join(','),\n 'but did not use a Mapbox map style, ignoring token(s).'\n ].join(' '));\n }\n return '';\n }\n}\n\nfunction isMapboxStyle(s) {\n return typeof s === 'string' && (\n constants.styleValuesMapbox.indexOf(s) !== -1 ||\n s.indexOf('mapbox://') === 0\n );\n}\n\nexports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAPBOX];\n\n for(var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout[subplotIds[i]]._subplot;\n subplotObj.updateFx(fullLayout);\n }\n};\n\n\n/***/ }),\n\n/***/ \"861d\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"865d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n* Copyright 2012-2020, Plotly, Inc.\n* All rights reserved.\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\n\nvar overrideAll = __webpack_require__(\"cb34\").overrideAll;\nvar getModuleCalcData = __webpack_require__(\"ad62\").getModuleCalcData;\nvar plot = __webpack_require__(\"c9ce\");\nvar fxAttrs = __webpack_require__(\"927d\");\n\nvar setCursor = __webpack_require__(\"0f37\");\nvar dragElement = __webpack_require__(\"4efe\");\nvar prepSelect = __webpack_require__(\"1876\").prepSelect;\nvar Lib = __webpack_require__(\"fc26\");\nvar Registry = __webpack_require__(\"371e\");\n\nvar SANKEY = 'sankey';\n\nexports.name = SANKEY;\n\nexports.baseLayoutAttrOverrides = overrideAll({\n hoverlabel: fxAttrs.hoverlabel\n}, 'plot', 'nested');\n\nexports.plot = function(gd) {\n var calcData = getModuleCalcData(gd.calcdata, SANKEY)[0];\n plot(gd, calcData);\n exports.updateFx(gd);\n};\n\nexports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadPlot = (oldFullLayout._has && oldFullLayout._has(SANKEY));\n var hasPlot = (newFullLayout._has && newFullLayout._has(SANKEY));\n\n if(hadPlot && !hasPlot) {\n oldFullLayout._paperdiv.selectAll('.sankey').remove();\n oldFullLayout._paperdiv.selectAll('.bgsankey').remove();\n }\n};\n\nexports.updateFx = function(gd) {\n for(var i = 0; i < gd._fullData.length; i++) {\n subplotUpdateFx(gd, i);\n }\n};\n\nfunction subplotUpdateFx(gd, index) {\n var trace = gd._fullData[index];\n var fullLayout = gd._fullLayout;\n\n var dragMode = fullLayout.dragmode;\n var cursor = fullLayout.dragmode === 'pan' ? 'move' : 'crosshair';\n var bgRect = trace._bgRect;\n\n if(dragMode === 'pan' || dragMode === 'zoom') return;\n\n setCursor(bgRect, cursor);\n\n var xaxis = {\n _id: 'x',\n c2p: Lib.identity,\n _offset: trace._sankey.translateX,\n _length: trace._sankey.width\n };\n var yaxis = {\n _id: 'y',\n c2p: Lib.identity,\n _offset: trace._sankey.translateY,\n _length: trace._sankey.height\n };\n\n // Note: dragOptions is needed to be declared for all dragmodes because\n // it's the object that holds persistent selection state.\n var dragOptions = {\n gd: gd,\n element: bgRect.node(),\n plotinfo: {\n id: index,\n xaxis: xaxis,\n yaxis: yaxis,\n fillRangeItems: Lib.noop\n },\n subplot: index,\n // create mock x/y axes for hover routine\n xaxes: [xaxis],\n yaxes: [yaxis],\n doneFnCompleted: function(selection) {\n var traceNow = gd._fullData[index];\n var newGroups;\n var oldGroups = traceNow.node.groups.slice();\n var newGroup = [];\n\n function findNode(pt) {\n var nodes = traceNow._sankey.graph.nodes;\n for(var i = 0; i < nodes.length; i++) {\n if(nodes[i].pointNumber === pt) return nodes[i];\n }\n }\n\n for(var j = 0; j < selection.length; j++) {\n var node = findNode(selection[j].pointNumber);\n if(!node) continue;\n\n // If the node represents a group\n if(node.group) {\n // Add all its children to the current selection\n for(var k = 0; k < node.childrenNodes.length; k++) {\n newGroup.push(node.childrenNodes[k].pointNumber);\n }\n // Flag group for removal from existing list of groups\n oldGroups[node.pointNumber - traceNow.node._count] = false;\n } else {\n newGroup.push(node.pointNumber);\n }\n }\n\n newGroups = oldGroups\n .filter(Boolean)\n .concat([newGroup]);\n\n Registry.call('_guiRestyle', gd, {\n 'node.groups': [ newGroups ]\n }, index);\n }\n };\n\n dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, dragOptions, dragMode);\n };\n\n dragElement.init(dragOptions);\n}\n\n\n/***/ }),\n\n/***/ \"8662\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = circumradius\n\nvar circumcenter = __webpack_require__(\"fe94\")\n\nfunction circumradius(points) {\n var center = circumcenter(points)\n var avgDist = 0.0\n for(var i=0; i