var CommentsWindow=function(b,e,f,c,m,n){function v(){for(var J=O.getElementsByTagName("div"),F=0,H=0;H<J.length;H++)"none"!=J[H].style.display&&J[H].parentNode==O&&F++;t.style.display=0==F?"block":"none"}function d(J,F,H,S){function V(){F.removeChild(U);F.removeChild(X);W.style.display="block";M.style.display="block"}A={div:F,comment:J,saveCallback:H,deleteOnCancel:S};var M=F.querySelector(".geCommentTxt"),W=F.querySelector(".geCommentActionsList"),U=document.createElement("textarea");U.className=
"geCommentEditTxtArea";U.style.minHeight=M.offsetHeight+"px";U.value=J.content;F.insertBefore(U,M);var X=document.createElement("div");X.className="geCommentEditBtns";var u=mxUtils.button(mxResources.get("cancel"),function(){S?(F.parentNode.removeChild(F),v()):V();A=null});u.className="geCommentEditBtn";X.appendChild(u);var D=mxUtils.button(mxResources.get("save"),function(){M.innerHTML="";J.content=U.value;mxUtils.write(M,J.content);V();H(J);A=null});mxEvent.addListener(U,"keydown",mxUtils.bind(this,
function(K){mxEvent.isConsumed(K)||((mxEvent.isControlDown(K)||mxClient.IS_MAC&&mxEvent.isMetaDown(K))&&13==K.keyCode?(D.click(),mxEvent.consume(K)):27==K.keyCode&&(u.click(),mxEvent.consume(K)))}));D.focus();D.className="geCommentEditBtn gePrimaryBtn";X.appendChild(D);F.insertBefore(X,M);W.style.display="none";M.style.display="none";U.focus()}function g(J,F){F.innerHTML="";J=new Date(J.modifiedDate);var H=b.timeSince(J);null==H&&(H=mxResources.get("lessThanAMinute"));mxUtils.write(F,mxResources.get("timeAgo",
The software 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.