Language: JavaScript
Label: safe
CWE: CWE-79 \u2014 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.

Code:
Editor.createRoughCanvas=function(m){var A=rough.canvas({getContext:function(){return m}});A.draw=function(M){var Q=M.sets||[];M=M.options||this.getDefaultOptions();for(var U=0;U<Q.length;U++){var W=Q[U];switch(W.type){case "path":null!=M.stroke&&this._drawToContext(m,W,M);break;case "fillPath":this._drawToContext(m,W,M);break;case "fillSketch":this.fillSketch(m,W,M)}}};A.fillSketch=function(M,Q,U){var W=m.state.strokeColor,P=m.state.strokeWidth,V=m.state.strokeAlpha,X=m.state.dashed,Y=U.fillWeight;
0>Y&&(Y=U.strokeWidth/2);m.setStrokeAlpha(m.state.fillAlpha);m.setStrokeColor(U.fill||"");m.setStrokeWidth(Y);m.setDashed(!1);this._drawToContext(M,Q,U);m.setDashed(X);m.setStrokeWidth(P);m.setStrokeColor(W);m.setStrokeAlpha(V)};A._drawToContext=function(M,Q,U){M.begin();for(var W=0;W<Q.ops.length;W++){var P=Q.ops[W],V=P.data;switch(P.op){case "move":M.moveTo(V[0],V[1]);break;case "bcurveTo":M.curveTo(V[0],V[1],V[2],V[3],V[4],V[5]);break;case "lineTo":M.lineTo(V[0],V[1])}}M.end();"fillPath"===Q.type&&
U.filled?M.fill():M.stroke()};return A};(function(){function m(W,P,V){this.canvas=W;this.rc=P;this.shape=V;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.originalBegin=this.canvas.begin;this.canvas.begin=mxUtils.bind(this,m.prototype.begin);this.originalEnd=this.canvas.end;this.canvas.end=mxUtils.bind(this,m.prototype.end);this.originalRect=this.canvas.rect;this.canvas.rect=mxUtils.bind(this,m.prototype.rect);this.originalRoundrect=this.canvas.roundrect;this.canvas.roundrect=