UNPKG

@dcm/cornerstone-core

Version:

JavaScript library to display interactive medical images including but not limited to DICOM.

1 lines 88.1 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("cornerstone",[],t):"object"==typeof exports?exports.cornerstone=t():e.cornerstone=t()}(self,(function(){return(()=>{var e={291:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=new Array(t);r<t;r++)a[r]=e[r];return a}},325:e=>{e.exports=function(e){if(Array.isArray(e))return e}},123:(e,t,r)=>{var a=r(291);e.exports=function(e){if(Array.isArray(e))return a(e)}},988:e=>{e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},590:e=>{function t(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}e.exports=function(e,r,a){return r&&t(e.prototype,r),a&&t(e,a),e}},945:(e,t,r)=>{var a=r(510);e.exports=function(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=a(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,l=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return l=e.done,e},e:function(e){s=!0,i=e},f:function(){try{l||null==r.return||r.return()}finally{if(s)throw i}}}}},566:e=>{e.exports=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},506:e=>{e.exports=function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}},682:e=>{e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],a=!0,n=!1,o=void 0;try{for(var i,l=e[Symbol.iterator]();!(a=(i=l.next()).done)&&(r.push(i.value),!t||r.length!==t);a=!0);}catch(e){n=!0,o=e}finally{try{a||null==l.return||l.return()}finally{if(n)throw o}}return r}}},420:e=>{e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},331:e=>{e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},29:(e,t,r)=>{var a=r(566);function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}e.exports=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}},408:(e,t,r)=>{var a=r(325),n=r(682),o=r(510),i=r(420);e.exports=function(e,t){return a(e)||n(e,t)||o(e,t)||i()}},571:(e,t,r)=>{var a=r(123),n=r(506),o=r(510),i=r(331);e.exports=function(e){return a(e)||n(e)||o(e)||i()}},510:(e,t,r)=>{var a=r(291);e.exports=function(e,t){if(e){if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,t):void 0}}}},t={};function r(a){if(t[a])return t[a].exports;var n=t[a]={exports:{}};return e[a](n,n.exports,r),n.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var a in t)r.o(t,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return(()=>{"use strict";r.r(a),r.d(a,{EVENTS:()=>C,addEnabledElement:()=>i,addLayer:()=>Y,canvasToPixel:()=>h,colors:()=>T,convertImageToFalseColorImage:()=>_t,convertToFalseColorImage:()=>Mt,default:()=>pr,disable:()=>D,displayImage:()=>te,draw:()=>re,drawImage:()=>k,drawInvalidated:()=>ae,enable:()=>At,events:()=>L,fitToWindow:()=>Ct,generateLut:()=>nt,getActiveLayer:()=>K,getDefaultViewport:()=>B,getDefaultViewportForImage:()=>Ot,getElementData:()=>Dt,getEnabledElement:()=>o,getEnabledElements:()=>s,getEnabledElementsByImageId:()=>l,getImage:()=>Vt,getLayer:()=>q,getLayers:()=>Z,getPixels:()=>Nt,getStoredPixels:()=>Ut,getViewport:()=>Bt,getVisibleLayers:()=>J,imageCache:()=>qt,internal:()=>ar,invalidate:()=>nr,invalidateImageId:()=>or,loadAndCacheImage:()=>er,loadImage:()=>Qt,metaData:()=>sr,pageToPixel:()=>dr,pixelDataToFalseColorData:()=>Pt,pixelToCanvas:()=>mr,purgeLayers:()=>ee,registerImageLoader:()=>tr,registerUnknownImageLoader:()=>rr,removeElementData:()=>St,removeLayer:()=>$,renderColorImage:()=>Je,renderGrayscaleImage:()=>st,renderLabelMapImage:()=>ut,renderPseudoColorImage:()=>ht,renderToCanvas:()=>ur,renderWebImage:()=>vr,rendering:()=>gr,requestAnimationFrame:()=>It,reset:()=>fr,resize:()=>Lt,restoreImage:()=>Rt,setActiveLayer:()=>X,setDefaultViewport:()=>_,setLayerImage:()=>Q,setToPixelCoordinateSystem:()=>ce,setViewport:()=>hr,storedColorPixelDataToCanvasImageData:()=>de,storedPixelDataToCanvasImageData:()=>et,storedPixelDataToCanvasImageDataColorLUT:()=>mt,storedPixelDataToCanvasImageDataPseudocolorLUT:()=>gt,triggerEvent:()=>A,updateImage:()=>W,webGL:()=>Ye});var e=r(945),t=r.n(e),n=[];function o(e){if(void 0===e)throw new Error("getEnabledElement: parameter element must not be undefined");var r,a=t()(n);try{for(a.s();!(r=a.n()).done;){var o=r.value;if(o.element===e)return o}}catch(e){a.e(e)}finally{a.f()}throw new Error("element not enabled")}function i(e){if(void 0===e)throw new Error("getEnabledElement: enabledElement element must not be undefined");n.push(e)}function l(e){var r,a=[],o=t()(n);try{for(o.s();!(r=o.n()).done;){var i=r.value;i.image&&i.image.imageId===e&&a.push(i)}}catch(e){o.e(e)}finally{o.f()}return a}function s(){return n}var d=r(988),m=r.n(d),c=r(590),u=r.n(c),v=function(){function e(){m()(this,e),this.reset()}return u()(e,[{key:"reset",value:function(){this.m=[1,0,0,1,0,0]}},{key:"clone",value:function(){var t=new e;return t.m[0]=this.m[0],t.m[1]=this.m[1],t.m[2]=this.m[2],t.m[3]=this.m[3],t.m[4]=this.m[4],t.m[5]=this.m[5],t}},{key:"multiply",value:function(e){var t=this.m[0]*e.m[0]+this.m[2]*e.m[1],r=this.m[1]*e.m[0]+this.m[3]*e.m[1],a=this.m[0]*e.m[2]+this.m[2]*e.m[3],n=this.m[1]*e.m[2]+this.m[3]*e.m[3],o=this.m[0]*e.m[4]+this.m[2]*e.m[5]+this.m[4],i=this.m[1]*e.m[4]+this.m[3]*e.m[5]+this.m[5];this.m[0]=t,this.m[1]=r,this.m[2]=a,this.m[3]=n,this.m[4]=o,this.m[5]=i}},{key:"invert",value:function(){var e=1/(this.m[0]*this.m[3]-this.m[1]*this.m[2]),t=this.m[3]*e,r=-this.m[1]*e,a=-this.m[2]*e,n=this.m[0]*e,o=e*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),i=e*(this.m[1]*this.m[4]-this.m[0]*this.m[5]);this.m[0]=t,this.m[1]=r,this.m[2]=a,this.m[3]=n,this.m[4]=o,this.m[5]=i}},{key:"rotate",value:function(e){var t=Math.cos(e),r=Math.sin(e),a=this.m[0]*t+this.m[2]*r,n=this.m[1]*t+this.m[3]*r,o=this.m[0]*-r+this.m[2]*t,i=this.m[1]*-r+this.m[3]*t;this.m[0]=a,this.m[1]=n,this.m[2]=o,this.m[3]=i}},{key:"translate",value:function(e,t){this.m[4]+=this.m[0]*e+this.m[2]*t,this.m[5]+=this.m[1]*e+this.m[3]*t}},{key:"scale",value:function(e,t){this.m[0]*=e,this.m[1]*=e,this.m[2]*=t,this.m[3]*=t}},{key:"transformPoint",value:function(e,t){var r=e,a=t;return{x:e=r*this.m[0]+a*this.m[2]+this.m[4],y:t=r*this.m[1]+a*this.m[3]+this.m[5]}}}]),e}();const g=function(e,t){var r=new v;r.translate(e.canvas.width/2,e.canvas.height/2);var a=e.viewport.rotation;0!==a&&r.rotate(a*Math.PI/180);var n=e.viewport.scale,o=e.viewport.scale,i=e.viewport.displayedArea.brhc.x-(e.viewport.displayedArea.tlhc.x-1),l=e.viewport.displayedArea.brhc.y-(e.viewport.displayedArea.tlhc.y-1);if("NONE"===e.viewport.displayedArea.presentationSizeMode)e.image.rowPixelSpacing<e.image.columnPixelSpacing?n*=e.image.columnPixelSpacing/e.image.rowPixelSpacing:e.image.columnPixelSpacing<e.image.rowPixelSpacing&&(o*=e.image.rowPixelSpacing/e.image.columnPixelSpacing);else if(n=e.viewport.displayedArea.columnPixelSpacing,o=e.viewport.displayedArea.rowPixelSpacing,"SCALE TO FIT"===e.viewport.displayedArea.presentationSizeMode){var s=e.canvas.height/(l*o),d=e.canvas.width/(i*n);n=o=Math.min(d,s),e.viewport.displayedArea.rowPixelSpacing<e.viewport.displayedArea.columnPixelSpacing?n*=e.viewport.displayedArea.columnPixelSpacing/e.viewport.displayedArea.rowPixelSpacing:e.viewport.displayedArea.columnPixelSpacing<e.viewport.displayedArea.rowPixelSpacing&&(o*=e.viewport.displayedArea.rowPixelSpacing/e.viewport.displayedArea.columnPixelSpacing)}return r.scale(n,o),0!==a&&r.rotate(-a*Math.PI/180),r.translate(e.viewport.translation.x,e.viewport.translation.y),0!==a&&r.rotate(a*Math.PI/180),void 0!==t&&r.scale(t,t),e.viewport.hflip&&r.scale(-1,1),e.viewport.vflip&&r.scale(1,-1),r.translate(-i/2,-l/2),r};const f=function(e){return g(e)};const h=function(e,t){var r=o(e),a=f(r);return a.invert(),a.transformPoint(t.x,t.y)};function p(e,t,r){if(e>1)throw new Error("HSVToRGB expects hue < 1");var a=[];if(0===t)return a[0]=r,a[1]=r,a[2]=r,a;var n=Math.floor(6*e),o=6*e-n,i=r*(1-t),l=r*(1-t*o),s=r*(1-t*(1-o));switch(n){case 0:case 6:a[0]=r,a[1]=s,a[2]=i;break;case 1:a[0]=l,a[1]=r,a[2]=i;break;case 2:a[0]=i,a[1]=r,a[2]=s;break;case 3:a[0]=i,a[1]=l,a[2]=r;break;case 4:a[0]=s,a[1]=i,a[2]=r;break;case 5:a[0]=r,a[1]=i,a[2]=l}return a}const w=function(){function e(){m()(this,e),this.NumberOfColors=256,this.Ramp="linear",this.TableRange=[0,255],this.HueRange=[0,.66667],this.SaturationRange=[1,1],this.ValueRange=[1,1],this.AlphaRange=[1,1],this.NaNColor=[128,0,0,255],this.BelowRangeColor=[0,0,0,255],this.UseBelowRangeColor=!0,this.AboveRangeColor=[255,255,255,255],this.UseAboveRangeColor=!0,this.InputRange=[0,255],this.Table=[]}return u()(e,[{key:"setNumberOfTableValues",value:function(e){this.NumberOfColors=e}},{key:"setRamp",value:function(e){this.Ramp=e}},{key:"setTableRange",value:function(e,t){this.TableRange[0]=e,this.TableRange[1]=t}},{key:"setHueRange",value:function(e,t){this.HueRange[0]=e,this.HueRange[1]=t}},{key:"setSaturationRange",value:function(e,t){this.SaturationRange[0]=e,this.SaturationRange[1]=t}},{key:"setValueRange",value:function(e,t){this.ValueRange[0]=e,this.ValueRange[1]=t}},{key:"setRange",value:function(e,t){this.InputRange[0]=e,this.InputRange[1]=t}},{key:"setAlphaRange",value:function(e,t){this.AlphaRange[0]=e,this.AlphaRange[1]=t}},{key:"getColor",value:function(e){return this.mapValue(e)}},{key:"build",value:function(e){if(!(this.Table.length>1)||e){this.Table=[];var t,r,a,n,o=this.NumberOfColors-1;o?(t=(this.HueRange[1]-this.HueRange[0])/o,r=(this.SaturationRange[1]-this.SaturationRange[0])/o,a=(this.ValueRange[1]-this.ValueRange[0])/o,n=(this.AlphaRange[1]-this.AlphaRange[0])/o):(t=0,r=0,a=0,n=0);for(var i=0;i<=o;i++){var l=this.HueRange[0]+i*t,s=this.SaturationRange[0]+i*r,d=this.ValueRange[0]+i*a,m=this.AlphaRange[0]+i*n,c=p(l,s,d),u=[];switch(this.Ramp){case"scurve":u[0]=Math.floor(127.5*(1+Math.cos((1-c[0])*Math.PI))),u[1]=Math.floor(127.5*(1+Math.cos((1-c[1])*Math.PI))),u[2]=Math.floor(127.5*(1+Math.cos((1-c[2])*Math.PI))),u[3]=Math.floor(255*m);break;case"linear":u[0]=Math.floor(255*c[0]+.5),u[1]=Math.floor(255*c[1]+.5),u[2]=Math.floor(255*c[2]+.5),u[3]=Math.floor(255*m+.5);break;case"sqrt":u[0]=Math.floor(255*Math.sqrt(c[0])+.5),u[1]=Math.floor(255*Math.sqrt(c[1])+.5),u[2]=Math.floor(255*Math.sqrt(c[2])+.5),u[3]=Math.floor(255*Math.sqrt(m)+.5);break;default:throw new Error(`Invalid Ramp value (${this.Ramp})`)}this.Table.push(u)}this.buildSpecialColors()}}},{key:"buildSpecialColors",value:function(){var e=this.NumberOfColors,t=e+0,r=e+1,a=e+2;this.UseBelowRangeColor||0===e?this.Table[t]=this.BelowRangeColor:this.Table[t]=this.Table[0],this.UseAboveRangeColor||0===e?this.Table[r]=this.AboveRangeColor:this.Table[r]=this.Table[e-1],this.Table[a]=this.NaNColor}},{key:"mapValue",value:function(e){var t=this.getIndex(e);if(t<0)return this.NaNColor;if(0===t){if(this.UseBelowRangeColor&&e<this.TableRange[0])return this.BelowRangeColor}else if(t===this.NumberOfColors-1&&this.UseAboveRangeColor&&e>this.TableRange[1])return this.AboveRangeColor;return this.Table[t]}},{key:"getIndex",value:function(e){var t={Range:[]};if(t.MaxIndex=this.NumberOfColors-1,t.Shift=-this.TableRange[0],this.TableRange[1]<=this.TableRange[0]?t.Scale=Number.MAX_VALUE:t.Scale=t.MaxIndex/(this.TableRange[1]-this.TableRange[0]),t.Range[0]=this.TableRange[0],t.Range[1]=this.TableRange[1],Number.isNaN(e))return-1;var r=function(e,t){var r;return r=e<t.Range[0]?t.MaxIndex+0+1.5:e>t.Range[1]?t.MaxIndex+1+1.5:(e+t.Shift)*t.Scale,Math.floor(r)}(e,t);return r===this.NumberOfColors+0?r=0:r===this.NumberOfColors+1&&(r=this.NumberOfColors-1),r}},{key:"setTableValue",value:function(e,t){if(5===arguments.length&&(t=Array.prototype.slice.call(arguments,1)),e<0)throw new Error(`Can't set the table value for negative index (${e})`);if(e>=this.NumberOfColors)throw new Error(`Index ${e} is greater than the number of colors ${this.NumberOfColors}`);this.Table[e]=t,0!==e&&e!==this.NumberOfColors-1||this.buildSpecialColors()}}]),e}();var y=[0,0,0,0],b={hotIron:{name:"Hot Iron",numOfColors:256,colors:[[0,0,0,255],[2,0,0,255],[4,0,0,255],[6,0,0,255],[8,0,0,255],[10,0,0,255],[12,0,0,255],[14,0,0,255],[16,0,0,255],[18,0,0,255],[20,0,0,255],[22,0,0,255],[24,0,0,255],[26,0,0,255],[28,0,0,255],[30,0,0,255],[32,0,0,255],[34,0,0,255],[36,0,0,255],[38,0,0,255],[40,0,0,255],[42,0,0,255],[44,0,0,255],[46,0,0,255],[48,0,0,255],[50,0,0,255],[52,0,0,255],[54,0,0,255],[56,0,0,255],[58,0,0,255],[60,0,0,255],[62,0,0,255],[64,0,0,255],[66,0,0,255],[68,0,0,255],[70,0,0,255],[72,0,0,255],[74,0,0,255],[76,0,0,255],[78,0,0,255],[80,0,0,255],[82,0,0,255],[84,0,0,255],[86,0,0,255],[88,0,0,255],[90,0,0,255],[92,0,0,255],[94,0,0,255],[96,0,0,255],[98,0,0,255],[100,0,0,255],[102,0,0,255],[104,0,0,255],[106,0,0,255],[108,0,0,255],[110,0,0,255],[112,0,0,255],[114,0,0,255],[116,0,0,255],[118,0,0,255],[120,0,0,255],[122,0,0,255],[124,0,0,255],[126,0,0,255],[128,0,0,255],[130,0,0,255],[132,0,0,255],[134,0,0,255],[136,0,0,255],[138,0,0,255],[140,0,0,255],[142,0,0,255],[144,0,0,255],[146,0,0,255],[148,0,0,255],[150,0,0,255],[152,0,0,255],[154,0,0,255],[156,0,0,255],[158,0,0,255],[160,0,0,255],[162,0,0,255],[164,0,0,255],[166,0,0,255],[168,0,0,255],[170,0,0,255],[172,0,0,255],[174,0,0,255],[176,0,0,255],[178,0,0,255],[180,0,0,255],[182,0,0,255],[184,0,0,255],[186,0,0,255],[188,0,0,255],[190,0,0,255],[192,0,0,255],[194,0,0,255],[196,0,0,255],[198,0,0,255],[200,0,0,255],[202,0,0,255],[204,0,0,255],[206,0,0,255],[208,0,0,255],[210,0,0,255],[212,0,0,255],[214,0,0,255],[216,0,0,255],[218,0,0,255],[220,0,0,255],[222,0,0,255],[224,0,0,255],[226,0,0,255],[228,0,0,255],[230,0,0,255],[232,0,0,255],[234,0,0,255],[236,0,0,255],[238,0,0,255],[240,0,0,255],[242,0,0,255],[244,0,0,255],[246,0,0,255],[248,0,0,255],[250,0,0,255],[252,0,0,255],[254,0,0,255],[255,0,0,255],[255,2,0,255],[255,4,0,255],[255,6,0,255],[255,8,0,255],[255,10,0,255],[255,12,0,255],[255,14,0,255],[255,16,0,255],[255,18,0,255],[255,20,0,255],[255,22,0,255],[255,24,0,255],[255,26,0,255],[255,28,0,255],[255,30,0,255],[255,32,0,255],[255,34,0,255],[255,36,0,255],[255,38,0,255],[255,40,0,255],[255,42,0,255],[255,44,0,255],[255,46,0,255],[255,48,0,255],[255,50,0,255],[255,52,0,255],[255,54,0,255],[255,56,0,255],[255,58,0,255],[255,60,0,255],[255,62,0,255],[255,64,0,255],[255,66,0,255],[255,68,0,255],[255,70,0,255],[255,72,0,255],[255,74,0,255],[255,76,0,255],[255,78,0,255],[255,80,0,255],[255,82,0,255],[255,84,0,255],[255,86,0,255],[255,88,0,255],[255,90,0,255],[255,92,0,255],[255,94,0,255],[255,96,0,255],[255,98,0,255],[255,100,0,255],[255,102,0,255],[255,104,0,255],[255,106,0,255],[255,108,0,255],[255,110,0,255],[255,112,0,255],[255,114,0,255],[255,116,0,255],[255,118,0,255],[255,120,0,255],[255,122,0,255],[255,124,0,255],[255,126,0,255],[255,128,4,255],[255,130,8,255],[255,132,12,255],[255,134,16,255],[255,136,20,255],[255,138,24,255],[255,140,28,255],[255,142,32,255],[255,144,36,255],[255,146,40,255],[255,148,44,255],[255,150,48,255],[255,152,52,255],[255,154,56,255],[255,156,60,255],[255,158,64,255],[255,160,68,255],[255,162,72,255],[255,164,76,255],[255,166,80,255],[255,168,84,255],[255,170,88,255],[255,172,92,255],[255,174,96,255],[255,176,100,255],[255,178,104,255],[255,180,108,255],[255,182,112,255],[255,184,116,255],[255,186,120,255],[255,188,124,255],[255,190,128,255],[255,192,132,255],[255,194,136,255],[255,196,140,255],[255,198,144,255],[255,200,148,255],[255,202,152,255],[255,204,156,255],[255,206,160,255],[255,208,164,255],[255,210,168,255],[255,212,172,255],[255,214,176,255],[255,216,180,255],[255,218,184,255],[255,220,188,255],[255,222,192,255],[255,224,196,255],[255,226,200,255],[255,228,204,255],[255,230,208,255],[255,232,212,255],[255,234,216,255],[255,236,220,255],[255,238,224,255],[255,240,228,255],[255,242,232,255],[255,244,236,255],[255,246,240,255],[255,248,244,255],[255,250,248,255],[255,252,252,255],[255,255,255,255]]},pet:{name:"PET",numColors:256,colors:[[0,0,0,255],[0,2,1,255],[0,4,3,255],[0,6,5,255],[0,8,7,255],[0,10,9,255],[0,12,11,255],[0,14,13,255],[0,16,15,255],[0,18,17,255],[0,20,19,255],[0,22,21,255],[0,24,23,255],[0,26,25,255],[0,28,27,255],[0,30,29,255],[0,32,31,255],[0,34,33,255],[0,36,35,255],[0,38,37,255],[0,40,39,255],[0,42,41,255],[0,44,43,255],[0,46,45,255],[0,48,47,255],[0,50,49,255],[0,52,51,255],[0,54,53,255],[0,56,55,255],[0,58,57,255],[0,60,59,255],[0,62,61,255],[0,65,63,255],[0,67,65,255],[0,69,67,255],[0,71,69,255],[0,73,71,255],[0,75,73,255],[0,77,75,255],[0,79,77,255],[0,81,79,255],[0,83,81,255],[0,85,83,255],[0,87,85,255],[0,89,87,255],[0,91,89,255],[0,93,91,255],[0,95,93,255],[0,97,95,255],[0,99,97,255],[0,101,99,255],[0,103,101,255],[0,105,103,255],[0,107,105,255],[0,109,107,255],[0,111,109,255],[0,113,111,255],[0,115,113,255],[0,117,115,255],[0,119,117,255],[0,121,119,255],[0,123,121,255],[0,125,123,255],[0,128,125,255],[1,126,127,255],[3,124,129,255],[5,122,131,255],[7,120,133,255],[9,118,135,255],[11,116,137,255],[13,114,139,255],[15,112,141,255],[17,110,143,255],[19,108,145,255],[21,106,147,255],[23,104,149,255],[25,102,151,255],[27,100,153,255],[29,98,155,255],[31,96,157,255],[33,94,159,255],[35,92,161,255],[37,90,163,255],[39,88,165,255],[41,86,167,255],[43,84,169,255],[45,82,171,255],[47,80,173,255],[49,78,175,255],[51,76,177,255],[53,74,179,255],[55,72,181,255],[57,70,183,255],[59,68,185,255],[61,66,187,255],[63,64,189,255],[65,63,191,255],[67,61,193,255],[69,59,195,255],[71,57,197,255],[73,55,199,255],[75,53,201,255],[77,51,203,255],[79,49,205,255],[81,47,207,255],[83,45,209,255],[85,43,211,255],[86,41,213,255],[88,39,215,255],[90,37,217,255],[92,35,219,255],[94,33,221,255],[96,31,223,255],[98,29,225,255],[100,27,227,255],[102,25,229,255],[104,23,231,255],[106,21,233,255],[108,19,235,255],[110,17,237,255],[112,15,239,255],[114,13,241,255],[116,11,243,255],[118,9,245,255],[120,7,247,255],[122,5,249,255],[124,3,251,255],[126,1,253,255],[128,0,255,255],[130,2,252,255],[132,4,248,255],[134,6,244,255],[136,8,240,255],[138,10,236,255],[140,12,232,255],[142,14,228,255],[144,16,224,255],[146,18,220,255],[148,20,216,255],[150,22,212,255],[152,24,208,255],[154,26,204,255],[156,28,200,255],[158,30,196,255],[160,32,192,255],[162,34,188,255],[164,36,184,255],[166,38,180,255],[168,40,176,255],[170,42,172,255],[171,44,168,255],[173,46,164,255],[175,48,160,255],[177,50,156,255],[179,52,152,255],[181,54,148,255],[183,56,144,255],[185,58,140,255],[187,60,136,255],[189,62,132,255],[191,64,128,255],[193,66,124,255],[195,68,120,255],[197,70,116,255],[199,72,112,255],[201,74,108,255],[203,76,104,255],[205,78,100,255],[207,80,96,255],[209,82,92,255],[211,84,88,255],[213,86,84,255],[215,88,80,255],[217,90,76,255],[219,92,72,255],[221,94,68,255],[223,96,64,255],[225,98,60,255],[227,100,56,255],[229,102,52,255],[231,104,48,255],[233,106,44,255],[235,108,40,255],[237,110,36,255],[239,112,32,255],[241,114,28,255],[243,116,24,255],[245,118,20,255],[247,120,16,255],[249,122,12,255],[251,124,8,255],[253,126,4,255],[255,128,0,255],[255,130,4,255],[255,132,8,255],[255,134,12,255],[255,136,16,255],[255,138,20,255],[255,140,24,255],[255,142,28,255],[255,144,32,255],[255,146,36,255],[255,148,40,255],[255,150,44,255],[255,152,48,255],[255,154,52,255],[255,156,56,255],[255,158,60,255],[255,160,64,255],[255,162,68,255],[255,164,72,255],[255,166,76,255],[255,168,80,255],[255,170,85,255],[255,172,89,255],[255,174,93,255],[255,176,97,255],[255,178,101,255],[255,180,105,255],[255,182,109,255],[255,184,113,255],[255,186,117,255],[255,188,121,255],[255,190,125,255],[255,192,129,255],[255,194,133,255],[255,196,137,255],[255,198,141,255],[255,200,145,255],[255,202,149,255],[255,204,153,255],[255,206,157,255],[255,208,161,255],[255,210,165,255],[255,212,170,255],[255,214,174,255],[255,216,178,255],[255,218,182,255],[255,220,186,255],[255,222,190,255],[255,224,194,255],[255,226,198,255],[255,228,202,255],[255,230,206,255],[255,232,210,255],[255,234,214,255],[255,236,218,255],[255,238,222,255],[255,240,226,255],[255,242,230,255],[255,244,234,255],[255,246,238,255],[255,248,242,255],[255,250,246,255],[255,252,250,255],[255,255,255,255]]},hotMetalBlue:{name:"Hot Metal Blue",numColors:256,colors:[[0,0,0,255],[0,0,2,255],[0,0,4,255],[0,0,6,255],[0,0,8,255],[0,0,10,255],[0,0,12,255],[0,0,14,255],[0,0,16,255],[0,0,17,255],[0,0,19,255],[0,0,21,255],[0,0,23,255],[0,0,25,255],[0,0,27,255],[0,0,29,255],[0,0,31,255],[0,0,33,255],[0,0,35,255],[0,0,37,255],[0,0,39,255],[0,0,41,255],[0,0,43,255],[0,0,45,255],[0,0,47,255],[0,0,49,255],[0,0,51,255],[0,0,53,255],[0,0,55,255],[0,0,57,255],[0,0,59,255],[0,0,61,255],[0,0,63,255],[0,0,65,255],[0,0,67,255],[0,0,69,255],[0,0,71,255],[0,0,73,255],[0,0,75,255],[0,0,77,255],[0,0,79,255],[0,0,81,255],[0,0,83,255],[0,0,84,255],[0,0,86,255],[0,0,88,255],[0,0,90,255],[0,0,92,255],[0,0,94,255],[0,0,96,255],[0,0,98,255],[0,0,100,255],[0,0,102,255],[0,0,104,255],[0,0,106,255],[0,0,108,255],[0,0,110,255],[0,0,112,255],[0,0,114,255],[0,0,116,255],[0,0,117,255],[0,0,119,255],[0,0,121,255],[0,0,123,255],[0,0,125,255],[0,0,127,255],[0,0,129,255],[0,0,131,255],[0,0,133,255],[0,0,135,255],[0,0,137,255],[0,0,139,255],[0,0,141,255],[0,0,143,255],[0,0,145,255],[0,0,147,255],[0,0,149,255],[0,0,151,255],[0,0,153,255],[0,0,155,255],[0,0,157,255],[0,0,159,255],[0,0,161,255],[0,0,163,255],[0,0,165,255],[0,0,167,255],[3,0,169,255],[6,0,171,255],[9,0,173,255],[12,0,175,255],[15,0,177,255],[18,0,179,255],[21,0,181,255],[24,0,183,255],[26,0,184,255],[29,0,186,255],[32,0,188,255],[35,0,190,255],[38,0,192,255],[41,0,194,255],[44,0,196,255],[47,0,198,255],[50,0,200,255],[52,0,197,255],[55,0,194,255],[57,0,191,255],[59,0,188,255],[62,0,185,255],[64,0,182,255],[66,0,179,255],[69,0,176,255],[71,0,174,255],[74,0,171,255],[76,0,168,255],[78,0,165,255],[81,0,162,255],[83,0,159,255],[85,0,156,255],[88,0,153,255],[90,0,150,255],[93,2,144,255],[96,4,138,255],[99,6,132,255],[102,8,126,255],[105,9,121,255],[108,11,115,255],[111,13,109,255],[114,15,103,255],[116,17,97,255],[119,19,91,255],[122,21,85,255],[125,23,79,255],[128,24,74,255],[131,26,68,255],[134,28,62,255],[137,30,56,255],[140,32,50,255],[143,34,47,255],[146,36,44,255],[149,38,41,255],[152,40,38,255],[155,41,35,255],[158,43,32,255],[161,45,29,255],[164,47,26,255],[166,49,24,255],[169,51,21,255],[172,53,18,255],[175,55,15,255],[178,56,12,255],[181,58,9,255],[184,60,6,255],[187,62,3,255],[190,64,0,255],[194,66,0,255],[198,68,0,255],[201,70,0,255],[205,72,0,255],[209,73,0,255],[213,75,0,255],[217,77,0,255],[221,79,0,255],[224,81,0,255],[228,83,0,255],[232,85,0,255],[236,87,0,255],[240,88,0,255],[244,90,0,255],[247,92,0,255],[251,94,0,255],[255,96,0,255],[255,98,3,255],[255,100,6,255],[255,102,9,255],[255,104,12,255],[255,105,15,255],[255,107,18,255],[255,109,21,255],[255,111,24,255],[255,113,26,255],[255,115,29,255],[255,117,32,255],[255,119,35,255],[255,120,38,255],[255,122,41,255],[255,124,44,255],[255,126,47,255],[255,128,50,255],[255,130,53,255],[255,132,56,255],[255,134,59,255],[255,136,62,255],[255,137,65,255],[255,139,68,255],[255,141,71,255],[255,143,74,255],[255,145,76,255],[255,147,79,255],[255,149,82,255],[255,151,85,255],[255,152,88,255],[255,154,91,255],[255,156,94,255],[255,158,97,255],[255,160,100,255],[255,162,103,255],[255,164,106,255],[255,166,109,255],[255,168,112,255],[255,169,115,255],[255,171,118,255],[255,173,121,255],[255,175,124,255],[255,177,126,255],[255,179,129,255],[255,181,132,255],[255,183,135,255],[255,184,138,255],[255,186,141,255],[255,188,144,255],[255,190,147,255],[255,192,150,255],[255,194,153,255],[255,196,156,255],[255,198,159,255],[255,200,162,255],[255,201,165,255],[255,203,168,255],[255,205,171,255],[255,207,174,255],[255,209,176,255],[255,211,179,255],[255,213,182,255],[255,215,185,255],[255,216,188,255],[255,218,191,255],[255,220,194,255],[255,222,197,255],[255,224,200,255],[255,226,203,255],[255,228,206,255],[255,229,210,255],[255,231,213,255],[255,233,216,255],[255,235,219,255],[255,237,223,255],[255,239,226,255],[255,240,229,255],[255,242,232,255],[255,244,236,255],[255,246,239,255],[255,248,242,255],[255,250,245,255],[255,251,249,255],[255,253,252,255],[255,255,255,255]]},pet20Step:{name:"PET 20 Step",numColors:256,colors:[[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255]]},gray:{name:"Gray",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,0,0],[1,1,1]]}},jet:{name:"Jet",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.35,0,0],[.66,1,1],[.89,1,1],[1,.5,.5]],green:[[0,0,0],[.125,0,0],[.375,1,1],[.64,1,1],[.91,0,0],[1,0,0]],blue:[[0,.5,.5],[.11,1,1],[.34,1,1],[.65,0,0],[1,0,0]]}},hsv:{name:"HSV",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[.15873,1,1],[.174603,.96875,.96875],[.333333,.03125,.03125],[.349206,0,0],[.666667,0,0],[.68254,.03125,.03125],[.84127,.96875,.96875],[.857143,1,1],[1,1,1]],green:[[0,0,0],[.15873,.9375,.9375],[.174603,1,1],[.507937,1,1],[.666667,.0625,.0625],[.68254,0,0],[1,0,0]],blue:[[0,0,0],[.333333,0,0],[.349206,.0625,.0625],[.507937,1,1],[.84127,1,1],[.857143,.9375,.9375],[1,.09375,.09375]]}},hot:{name:"Hot",numColors:256,gamma:1,segmentedData:{red:[[0,.0416,.0416],[.365079,1,1],[1,1,1]],green:[[0,0,0],[.365079,0,0],[.746032,1,1],[1,1,1]],blue:[[0,0,0],[.746032,0,0],[1,1,1]]}},cool:{name:"Cool",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,1,1],[1,0,0]],blue:[[0,1,1],[1,1,1]]}},spring:{name:"Spring",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,1,1],[1,0,0]]}},summer:{name:"Summer",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,.5,.5],[1,1,1]],blue:[[0,.4,.4],[1,.4,.4]]}},autumn:{name:"Autumn",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,0,0],[1,0,0]]}},winter:{name:"Winter",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,0,0]],green:[[0,0,0],[1,1,1]],blue:[[0,1,1],[1,.5,.5]]}},bone:{name:"Bone",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.746032,.652778,.652778],[1,1,1]],green:[[0,0,0],[.365079,.319444,.319444],[.746032,.777778,.777778],[1,1,1]],blue:[[0,0,0],[.365079,.444444,.444444],[1,1,1]]}},copper:{name:"Copper",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.809524,1,1],[1,1,1]],green:[[0,0,0],[1,.7812,.7812]],blue:[[0,0,0],[1,.4975,.4975]]}},spectral:{name:"Spectral",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.05,.4667,.4667],[.1,.5333,.5333],[.15,0,0],[.2,0,0],[.25,0,0],[.3,0,0],[.35,0,0],[.4,0,0],[.45,0,0],[.5,0,0],[.55,0,0],[.6,0,0],[.65,.7333,.7333],[.7,.9333,.9333],[.75,1,1],[.8,1,1],[.85,1,1],[.9,.8667,.8667],[.95,.8,.8],[1,.8,.8]],green:[[0,0,0],[.05,0,0],[.1,0,0],[.15,0,0],[.2,0,0],[.25,.4667,.4667],[.3,.6,.6],[.35,.6667,.6667],[.4,.6667,.6667],[.45,.6,.6],[.5,.7333,.7333],[.55,.8667,.8667],[.6,1,1],[.65,1,1],[.7,.9333,.9333],[.75,.8,.8],[.8,.6,.6],[.85,0,0],[.9,0,0],[.95,0,0],[1,.8,.8]],blue:[[0,0,0],[.05,.5333,.5333],[.1,.6,.6],[.15,.6667,.6667],[.2,.8667,.8667],[.25,.8667,.8667],[.3,.8667,.8667],[.35,.6667,.6667],[.4,.5333,.5333],[.45,0,0],[.5,0,0],[.55,0,0],[.6,0,0],[.65,0,0],[.7,0,0],[.75,0,0],[.8,0,0],[.85,0,0],[.9,0,0],[.95,0,0],[1,.8,.8]]}},coolwarm:{name:"CoolWarm",numColors:256,gamma:1,segmentedData:{red:[[0,.2298057,.2298057],[.03125,.26623388,.26623388],[.0625,.30386891,.30386891],[.09375,.342804478,.342804478],[.125,.38301334,.38301334],[.15625,.424369608,.424369608],[.1875,.46666708,.46666708],[.21875,.509635204,.509635204],[.25,.552953156,.552953156],[.28125,.596262162,.596262162],[.3125,.639176211,.639176211],[.34375,.681291281,.681291281],[.375,.722193294,.722193294],[.40625,.761464949,.761464949],[.4375,.798691636,.798691636],[.46875,.833466556,.833466556],[.5,.865395197,.865395197],[.53125,.897787179,.897787179],[.5625,.924127593,.924127593],[.59375,.944468518,.944468518],[.625,.958852946,.958852946],[.65625,.96732803,.96732803],[.6875,.969954137,.969954137],[.71875,.966811177,.966811177],[.75,.958003065,.958003065],[.78125,.943660866,.943660866],[.8125,.923944917,.923944917],[.84375,.89904617,.89904617],[.875,.869186849,.869186849],[.90625,.834620542,.834620542],[.9375,.795631745,.795631745],[.96875,.752534934,.752534934],[1,.705673158,.705673158]],green:[[0,.298717966,.298717966],[.03125,.353094838,.353094838],[.0625,.406535296,.406535296],[.09375,.458757618,.458757618],[.125,.50941904,.50941904],[.15625,.558148092,.558148092],[.1875,.604562568,.604562568],[.21875,.648280772,.648280772],[.25,.688929332,.688929332],[.28125,.726149107,.726149107],[.3125,.759599947,.759599947],[.34375,.788964712,.788964712],[.375,.813952739,.813952739],[.40625,.834302879,.834302879],[.4375,.849786142,.849786142],[.46875,.860207984,.860207984],[.5,.86541021,.86541021],[.53125,.848937047,.848937047],[.5625,.827384882,.827384882],[.59375,.800927443,.800927443],[.625,.769767752,.769767752],[.65625,.734132809,.734132809],[.6875,.694266682,.694266682],[.71875,.650421156,.650421156],[.75,.602842431,.602842431],[.78125,.551750968,.551750968],[.8125,.49730856,.49730856],[.84375,.439559467,.439559467],[.875,.378313092,.378313092],[.90625,.312874446,.312874446],[.9375,.24128379,.24128379],[.96875,.157246067,.157246067],[1,.01555616,.01555616]],blue:[[0,.753683153,.753683153],[.03125,.801466763,.801466763],[.0625,.84495867,.84495867],[.09375,.883725899,.883725899],[.125,.917387822,.917387822],[.15625,.945619588,.945619588],[.1875,.968154911,.968154911],[.21875,.98478814,.98478814],[.25,.995375608,.995375608],[.28125,.999836203,.999836203],[.3125,.998151185,.998151185],[.34375,.990363227,.990363227],[.375,.976574709,.976574709],[.40625,.956945269,.956945269],[.4375,.931688648,.931688648],[.46875,.901068838,.901068838],[.5,.865395561,.865395561],[.53125,.820880546,.820880546],[.5625,.774508472,.774508472],[.59375,.726736146,.726736146],[.625,.678007945,.678007945],[.65625,.628751763,.628751763],[.6875,.579375448,.579375448],[.71875,.530263762,.530263762],[.75,.481775914,.481775914],[.78125,.434243684,.434243684],[.8125,.387970225,.387970225],[.84375,.343229596,.343229596],[.875,.300267182,.300267182],[.90625,.259301199,.259301199],[.9375,.220525627,.220525627],[.96875,.184115123,.184115123],[1,.150232812,.150232812]]}},blues:{name:"Blues",numColors:256,gamma:1,segmentedData:{red:[[0,.9686274528503418,.9686274528503418],[.125,.8705882430076599,.8705882430076599],[.25,.7764706015586853,.7764706015586853],[.375,.6196078658103943,.6196078658103943],[.5,.41960784792900085,.41960784792900085],[.625,.25882354378700256,.25882354378700256],[.75,.12941177189350128,.12941177189350128],[.875,.0313725508749485,.0313725508749485],[1,.0313725508749485,.0313725508749485]],green:[[0,.9843137264251709,.9843137264251709],[.125,.9215686321258545,.9215686321258545],[.25,.8588235378265381,.8588235378265381],[.375,.7921568751335144,.7921568751335144],[.5,.6823529601097107,.6823529601097107],[.625,.572549045085907,.572549045085907],[.75,.4431372582912445,.4431372582912445],[.875,.3176470696926117,.3176470696926117],[1,.1882352977991104,.1882352977991104]],blue:[[0,1,1],[.125,.9686274528503418,.9686274528503418],[.25,.9372549057006836,.9372549057006836],[.375,.8823529481887817,.8823529481887817],[.5,.8392156958580017,.8392156958580017],[.625,.7764706015586853,.7764706015586853],[.75,.7098039388656616,.7098039388656616],[.875,.6117647290229797,.6117647290229797],[1,.41960784792900085,.41960784792900085]]}}};function x(e,t){for(var r=0,a=e.length-1;r<=a;){var n=r+Math.floor((a-r)/2),o=e[n];if(o===t)return n;t<o?a=n-1:r=n+1}return r}function E(e,t,r){var a,n=[],o=[],i=[],l=[];for(r=null===r?1:r,a=0;a<t.length;a++){var s=t[a];n.push((e-1)*s[0]),o.push(s[1]),i.push(s[1])}var d=function(e,t,r){for(var a=(t-e)/((r=null===r?100:r)-1),n=[];r-- >0;)n.push(e),e+=a;return n[n.length-1]=t,n}(0,1,e);for(a=0;a<e;a++)d[a]=(e-1)*Math.pow(d[a],r);var m=function(e,t){var r,a=[],n=t.length;for(e.sort((function(e,t){return e-t})),r=0;r<n;r++)a[r]=x(e,t[r]);return a}(n,d);for(a=1;a<e-1;a++){var c=m[a],u=(d[a]-n[c-1])/(n[c]-n[c-1]),v=o[c]-i[c-1];l[a]=u*v+i[c-1]}return l[0]=i[0],l[e-1]=o[t.length-1],l}function I(e,t){var r=b[e];return r||(b[e]=t||{name:"",colors:[]},r=b[e]),!r.colors&&r.segmentedData&&(r.colors=function(e,t,r){var a,n=[];r=null===r?1:r;var o=E(t=null===t?256:t,e.red,r),i=E(t,e.green,r),l=E(t,e.blue,r);for(a=0;a<t;a++){var s=[Math.round(255*o[a]),Math.round(255*i[a]),Math.round(255*l[a]),255];n.push(s)}return n}(r.segmentedData,r.numColors,r.gamma)),{getId:()=>e,getColorSchemeName:()=>r.name,setColorSchemeName(e){r.name=e},getNumberOfColors:()=>r.colors.length,setNumberOfColors(e){for(;r.colors.length<e;)r.colors.push(y);r.colors.length=e},getColor(e){return this.isValidIndex(e)?r.colors[e]:y},getColorRepeating(e){var t=r.colors.length;return e=t?e%t:0,this.getColor(e)},setColor(e,t){this.isValidIndex(e)&&(r.colors[e]=t)},addColor(e){r.colors.push(e)},insertColor(e,t){this.isValidIndex(e)&&r.colors.splice(e,1,t)},removeColor(e){this.isValidIndex(e)&&r.colors.splice(e,1)},clearColors(){r.colors=[]},buildLookupTable(e){if(e){var t=r.colors.length;e.setNumberOfTableValues(t);for(var a=0;a<t;a++)e.setTableValue(a,r.colors[a])}},createLookupTable(){var e=new w;return this.buildLookupTable(e),e},isValidIndex:e=>e>=0&&e<r.colors.length}}const T={getColormap:I,getColormapsList:function(){for(var e=[],t=0,r=Object.keys(b);t<r.length;t++){var a=r[t];if(b.hasOwnProperty(a)){var n=b[a];e.push({id:a,name:n.name})}}return e.sort((function(e,t){var r=e.name.toLowerCase(),a=t.name.toLowerCase();return r===a?0:r<a?-1:1})),e},LookupTable:w};const C={NEW_IMAGE:"cornerstonenewimage",INVALIDATED:"cornerstoneinvalidated",PRE_RENDER:"cornerstoneprerender",IMAGE_CACHE_MAXIMUM_SIZE_CHANGED:"cornerstoneimagecachemaximumsizechanged",IMAGE_CACHE_PROMISE_REMOVED:"cornerstoneimagecachepromiseremoved",IMAGE_CACHE_FULL:"cornerstoneimagecachefull",IMAGE_CACHE_CHANGED:"cornerstoneimagecachechanged",WEBGL_TEXTURE_REMOVED:"cornerstonewebgltextureremoved",WEBGL_TEXTURE_CACHE_FULL:"cornerstonewebgltexturecachefull",IMAGE_LOADED:"cornerstoneimageloaded",IMAGE_LOAD_FAILED:"cornerstoneimageloadfailed",ELEMENT_RESIZED:"cornerstoneelementresized",IMAGE_RENDERED:"cornerstoneimagerendered",LAYER_ADDED:"cornerstonelayeradded",LAYER_REMOVED:"cornerstonelayerremoved",ACTIVE_LAYER_CHANGED:"cornerstoneactivelayerchanged",ELEMENT_DISABLED:"cornerstoneelementdisabled",ELEMENT_ENABLED:"cornerstoneelementenabled"};var L=new(function(){function e(){m()(this,e),this.listeners={},this.namespaces={}}return u()(e,[{key:"addEventNamespaceListener",value:function(e,t){e.indexOf(".")<=0||(this.namespaces[e]=t,this.addEventListener(e.split(".")[0],t))}},{key:"removeEventNamespaceListener",value:function(e){e.indexOf(".")<=0||!this.namespaces[e]||(this.removeEventListener(e.split(".")[0],this.namespaces[e]),delete this.namespaces[e])}},{key:"addEventListener",value:function(e,t){e.indexOf(".")>0?this.addEventNamespaceListener(e,t):(e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(t))}},{key:"removeEventListener",value:function(e,t){if(e.indexOf(".")>0)this.removeEventNamespaceListener(e);else if(e in this.listeners)for(var r=this.listeners[e],a=0,n=r.length;a<n;a++)if(r[a]===t)return void r.splice(a,1)}},{key:"dispatchEvent",value:function(e){if(!(e.type in this.listeners))return!0;for(var t=this.listeners[e.type],r=0,a=t.length;r<a;r++)t[r].call(this,e);return!e.defaultPrevented}}]),e}());const A=function(e,t){var r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return"function"==typeof window.CustomEvent?r=new CustomEvent(t,{detail:a,cancelable:!0}):(r=document.createEvent("CustomEvent")).initCustomEvent(t,!0,!0,a),e.dispatchEvent(r)};const D=function(e){if(void 0===e)throw new Error("disable: element must not be undefined");for(var t=s(),r=0;r<t.length;r++)if(t[r].element===e){var a={element:e};A(e,C.ELEMENT_DISABLED,a),A(L,C.ELEMENT_DISABLED,a),t[r].canvas.remove(),t[r].canvas=void 0,t.splice(r,1);break}};var S=r(29),P=r.n(S),R={viewport:{}};const _=function(e){R.viewport=e||{}};const M=function(){var e={scale:1,translation:{x:0,y:0},voi:{windowWidth:void 0,windowCenter:void 0},invert:!1,pixelReplication:!1,rotation:0,hflip:!1,vflip:!1,modalityLUT:void 0,voiLUT:void 0,colormap:void 0,labelmap:!1,displayedArea:{tlhc:{x:1,y:1},brhc:{x:1,y:1},rowPixelSpacing:1,columnPixelSpacing:1,presentationSizeMode:"NONE"}};return P()(P()({},e),R.viewport)};function O(e,t){if(null==e)throw new Error(t)}function V(e){return!(null==e||0===e||180===e)}const U=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return O(e,"getImageSize: parameter image must not be undefined"),O(e.width,"getImageSize: parameter image must have width"),O(e.height,"getImageSize: parameter image must have height"),V(t)?{height:e.width,width:e.height}:{width:e.width,height:e.height}};const N=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;O(e,"getImageScale: parameter windowSize must not be undefined"),O(t,"getImageScale: parameter image must not be undefined");var a=U(t,r),n=t.rowPixelSpacing||1,o=t.columnPixelSpacing||1,i=1,l=1;n<o?l=o/n:i=n/o;var s=e.height/a.height/i,d=e.width/a.width/l;return{verticalScale:s,horizontalScale:d,scaleFactor:Math.min(d,s)}};const B=function(e,t){if(void 0===e)throw new Error("getDefaultViewport: parameter canvas must not be undefined");return void 0===t?M():{scale:N(e,t,0).scaleFactor,translation:{x:0,y:0},voi:{windowWidth:t.windowWidth,windowCenter:t.windowCenter},invert:t.invert,pixelReplication:!1,rotation:0,hflip:!1,vflip:!1,modalityLUT:t.modalityLUT,voiLUT:t.voiLUT,colormap:t.colormap,labelmap:Boolean(t.labelmap),displayedArea:{tlhc:{x:1,y:1},brhc:{x:t.columns,y:t.rows},rowPixelSpacing:void 0===t.rowPixelSpacing?1:t.rowPixelSpacing,columnPixelSpacing:void 0===t.columnPixelSpacing?1:t.columnPixelSpacing,presentationSizeMode:"NONE"}}};const F=function(){return window.performance?performance.now():Date.now()};function G(){return Math.floor(65536*(1+Math.random())).toString(16).slice(1)}const z=function(){return`${G()+G()}-${G()}-${G()}-${G()}-${G()}${G()}${G()}`};const k=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.needsRedraw=!0,t&&(e.invalid=!0)};const W=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=o(e);if(void 0===r.image&&0===r.layers.length)throw new Error("updateImage: image has not been loaded yet");k(r,t)};function j(e,t,r){var a=t.element,n={viewport:t.viewport,element:t.element,image:t.image,enabledElement:t,layerId:r};A(a,e,n)}function H(e,t){if(e.layerId===t.layerId)throw new Error("rescaleImage: both arguments represent the same layer");var r=e.image,a=t.image;if(r.imageId&&a.imageId){var n=t.viewport.displayedArea.columnPixelSpacing*a.width/(e.viewport.displayedArea.columnPixelSpacing*r.width),o=t.viewport.scale/e.viewport.scale*n;t.viewport.scale=e.viewport.scale*o}}function X(e,t){var r=o(e);if(r.activeLayerId!==t){var a=r.layers.findIndex((function(e){return e.layerId===t}));if(-1===a)throw new Error("setActiveLayer: layer not found in layers array");var n=r.layers[a];if(!n.image)throw new Error("setActiveLayer: layer with undefined image cannot be set as active.");r.activeLayerId=t,r.image=n.image,r.viewport=n.viewport,W(e),j(C.ACTIVE_LAYER_CHANGED,r,t)}}function Y(e,t,r){var a,n=z(),i=o(e),l=i.layers;t&&(a=B(i.canvas,t),r&&r.viewport&&(a=Object.assign(a,r.viewport))),!1!==i.syncViewports&&(i.syncViewports=!0);var s={image:t,layerId:n,viewport:a,options:r||{},renderingTools:{}};return 0!==l.length&&t&&H(l[0],s),l.push(s),j(C.LAYER_ADDED,i,n),1===l.length&&t&&X(e,n),n}function $(e,t){var r=o(e),a=r.layers,n=r.layers.findIndex((function(e){return e.layerId===t}));-1!==n&&(a.splice(n,1),t===r.activeLayerId&&0!==a.length&&X(e,a[0].layerId),j(C.LAYER_REMOVED,r,t))}function q(e,t){return o(e).layers.find((function(e){return e.layerId===t}))}function K(e){var t=o(e);return t.layers.find((function(e){return e.layerId===t.activeLayerId}))}function Z(e){return o(e).layers}function J(e){return o(e).layers.filter((function(e){return e.options&&!1!==e.options.visible&&0!==e.options.opacity}))}function Q(e,t,r){var a,n=o(e),i=n.layers[0];if(!(a=r?q(e,r):K(e)))throw new Error("setLayerImage: Layer not found");if(a.image=t,t){if(!a.viewport){var l=B(n.canvas,t);a.options&&a.options.viewport&&(a.viewport=Object.assign(l,a.options.viewport)),i.layerId!==r&&H(i,a)}}else a.viewport=void 0}function ee(e){var t=o(e);t.layers=[],delete t.activeLayerId,delete t.lastSyncViewportsState}const te=function(e,t,r){if(void 0===e)throw new Error("displayImage: parameter element must not be undefined");if(void 0===t)throw new Error("displayImage: parameter image must not be undefined");var a,n=o(e),i=n.image;if(n.image=t,n.layers&&0!==n.layers.length&&Q(e,t),void 0===n.viewport&&(n.viewport=B(n.canvas,t)),r)for(var l in r)null!==r[l]&&(n.viewport[l]=r[l]);void 0!==n.lastImageTimeStamp&&(a=(1e3/(F()-n.lastImageTimeStamp)).toFixed()),n.lastImageTimeStamp=F();var s={viewport:n.viewport,element:n.element,image:n.image,oldImage:i,enabledElement:n,frameRate:a};A(n.element,C.NEW_IMAGE,s),W(e)};const re=function(e){var t=o(e);if(void 0===t.image)throw new Error("draw: image has not been loaded yet");k(t)};const ae=function(){var e,r=s(),a=t()(r);try{for(a.s();!(e=a.n()).done;){var n=e.value;!0===n.invalid&&k(n,!0)}}catch(e){a.e(e)}finally{a.f()}};const ne=function(){var e=Date.now();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(e+=performance.now()),"x.x.x.x.x.x.xxxx.xxx.x.x.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".replace(/[xy]/g,(function(t){var r=Math.trunc((e+16*Math.random())%16);return e=Math.floor(e/16),("x"===t?r:3&r|8).toString(16)}))};var oe=r(571),ie=r.n(oe);const le=function(e,t,r){return r?function(e){var t=Math.max.apply(Math,ie()(e.lut)).toString(2).length-8,r=e.lut[0]>>t,a=e.lut[e.lut.length-1]>>t,n=e.firstValueMapped+e.lut.length-1;return function(o){return o<e.firstValueMapped?r:o>=n?a:e.lut[o-e.firstValueMapped]>>t}}(r):function(e,t){return function(r){return 255*((r-t)/e+.5)}}(e,t)};const se=function(e,t,r,a,n){var o=e.maxPixelValue,i=e.minPixelValue,l=Math.min(i,0);if(void 0===e.cachedLut){var s=o-l+1;e.cachedLut={},e.cachedLut.lutArray=new Uint8ClampedArray(s)}var d=e.cachedLut.lutArray,m=le(t,r,n);if(!0===a)for(var c=i;c<=o;c++)d[c-l]=255-m(c);else for(var u=i;u<=o;u++)d[u-l]=m(u);return d};const de=function(e,t,r){var a=F(),n=e.getPixelData();e.stats.lastGetPixelDataTime=F()-a;var o=e.minPixelValue,i=0,l=0,s=n.length;if(a=F(),o<0)for(;l<s;)r[i++]=t[n[l++]-o],r[i++]=t[n[l++]-o],r[i]=t[n[l]-o],l+=2,i+=2;else for(;l<s;)r[i++]=t[n[l++]],r[i++]=t[n[l++]],r[i]=t[n[l]],l+=2,i+=2;e.stats.lastStoredPixelDataToCanvasImageDataTime=F()-a};const me=function(e,t,r){var a=F(),n=e.getPixelData();e.stats.lastGetPixelDataTime=F()-a;var o=e.minPixelValue,i=0,l=0,s=n.length;if(a=F(),o<0)for(;l<s;)r[i++]=t[n[l++]-o],r[i++]=t[n[l++]-o],r[i++]=t[n[l++]-o],r[i++]=n[l++];else for(;l<s;)r[i++]=t[n[l++]],r[i++]=t[n[l++]],r[i++]=t[n[l++]],r[i++]=n[l++];e.stats.lastStoredPixelDataToCanvasImageDataTime=F()-a};const ce=function(e,t,r){if(void 0===e)throw new Error("setToPixelCoordinateSystem: parameter enabledElement must not be undefined");if(void 0===t)throw new Error("setToPixelCoordinateSystem: parameter context must not be undefined");var a=g(e,r);t.setTransform(a.m[0],a.m[1],a.m[2],a.m[3],a.m[4],a.m[5])};function ue(e,t,r){var a=e.createShader(r);if(e.shaderSource(a,t),e.compileShader(a),!e.getShaderParameter(a,e.COMPILE_STATUS)&&!e.isContextLost()){var n=e.getShaderInfoLog(a);console.error(`Could not compile shader:\n${n}`)}return a}const ve=function(e,t,r){return function(e,t,r){var a=e.createProgram();if(e.attachShader(a,t),e.attachShader(a,r),e.linkProgram(a),!e.getProgramParameter(a,e.LINK_STATUS)&&!e.isContextLost()){var n=e.getProgramInfoLog(a);console.error(`WebGL program filed to link:\n${n}`)}return a}(e,ue(e,t,e.VERTEX_SHADER),ue(e,r,e.FRAGMEN_SHADER))};var ge=r(408),fe=r.n(ge),he={};var pe={storedPixelDataToImageData:function(e){var r,a=e.getPixelData(),n=new Uint8Array(e.width*e.height*3),o=0,i=t()(a);try{for(i.s();!(r=i.n()).done;){var l=r.value,s=Math.abs(l);n[o++]=255&s,n[o++]=s>>8,n[o++]=l<0?0:1}}catch(e){i.e(e)}finally{i.f()}return n}};he.frag="precision mediump float;uniform sampler2D u_image;uniform float ww;uniform float wc;uniform float slope;uniform float intercept;uniform int invert;varying vec2 v_texCoord;void main() {vec4 color = texture2D(u_image, v_t