/* @license Copyright (C) Exontrol. All rights reserved. */ !function(){"use strict";function e(){var e,t,n=function(){},i=run.contentWindow,o=i.requestAnimationFrame||i.webkitRequestAnimationFrame||i.mozRequestAnimationFrame||i.oRequestAnimationFrame||i.msRequestAnimationFrame,r=i.cancelAnimationFrame||i.webkitCancelAnimationFrame||i.mozCancelAnimationFrame||i.oCancelAnimationFrame||i.msCancelAnimationFrame;if(o&&r)for(t=o.call(i,n),e=Math.max(0,t-16);e<=t;e++)r.call(i,e);for(t=setTimeout.call(i,n),e=Math.max(0,t-16);e<=t;e++)clearTimeout.call(i,e);for(t=setInterval.call(i,n),e=Math.max(0,t-16);e<=t;e++)clearInterval.call(i,e)}function t(){return run.contentDocument||run.contentWindow.document}function n(e,t,n){n=n||1;var i,o={w:~~((run.contentWindow.innerWidth-D)/t),h:~~((run.contentWindow.innerHeight-D)/n)};return(i=q[e])&&(null!=i[0]&&(o.w=i[0]),null!=i[1]&&(o.h=i[1])),o}function i(){code.syncKeywords(),o()}function o(){function e(e){var t,n;return(t=e.exontrol)&&(t=t.oCC)&&(t=t.rgC)&&t.forEach(function(e){n||(n=function(e){return e.oT||e}(e).constructor.type)}),n}var i,o=t().querySelectorAll("["+ie+"]"),r=o.length,s=1;r&&(o.forEach(function(t){q[e(t)]&&(s=2)}),o.forEach(function(t){!function(e,t,n){if(e.tagName.toLowerCase()==le){e.width=t,e.height=n;var i=i=e.exontrol;i&&(i=i.oCC)&&i.resize&&i.resize()}else e.style.width=B(t),e.style.height=B(n)}(t,(i=n(e(t),r,s)).w*window.devicePixelRatio,i.h*window.devicePixelRatio)}))}function r(e){return Ce+e}function s(e){var t=window.innerWidth-D,n=parseInt(getComputedStyle(vsplit).width)+parseInt(getComputedStyle(lineno).width)+4;e=Math.max(0,Math.min(e,t-n)),code.style.width=B(e),run.style.width=B(t-(n+parseInt(code.style.width))),hsplit.style.width=B(t),i()}function c(e){var t=window.innerHeight-D,n=parseInt(getComputedStyle(hsplit).height)+D;e=Math.max(0,Math.min(e,t-n)),desc.style.height=B(e),lineno.style.height=vsplit.style.height=run.style.height=code.style.height=B(window.innerHeight-(n+parseInt(getComputedStyle(desc).height))),i()}function l(i){function o(){function e(e){function t(){var t,n=new Map;return o.forEach(function(i){var o=U[i];o&&o.split(",").forEach(function(i){n.get(i)||(n.set(i,i),i=function(e){if(be){var t,n,i=e.match(/(?:(.*)([\\\/]))?(.*\.js)/);i&&(t=i[3],/\.(def|shapes)\.js/.test(t)||(t=t.replace(".js",".min.js")),(n=i[1]||"")&&(n+="/lib"),e=n+(i[2]||"")+t)}return e}(i),new RegExp(ve.replace("FILE",i.replace(/\./g,"\\."))).test(e)||(t=t||[]).push(i))})}),t}var n,i,o=new Map,r=new Map,s=new Map;if(J(we,e,function(e){3==e.length&&(e[1]&&o.set(e[1],e[1]),e[2]&&r.set(e[2],e[2]),e[1]&&e[2]&&s.set(e[2],e[1]))}),J(pe,e,function(e){2==e.length&&(n=e[1])&&(n&&o.set(n,n),!i&&n in U&&(i=n))}),J(me,e,function(e){2==e.length&&(n=e[1])&&n&&o.set(n,n)}),o.size||r.size||i)return{src:t(),id:function(){var t;return r.forEach(function(n){!new RegExp(xe.replace("ID",n.replace(/\./g,"\\."))).test(e)&&(t=t||[]).push(n)}),t}(),type:s,use:i}}function i(e){var t="";return e&&e.forEach(function(e){t+=function(e){return T(he,!0,'type="text/javascript" src="'+r(e)+'"')}(e)}),t}function o(e,t,i){var o,r=!Ke&&T(he,"window.onerror = function(message, source, lineno, colno){window.parent.setError(message, source, lineno, colno);}")||"",s=1;return e&&(t.forEach(function(e){q[e]&&(s=2)}),e.forEach(function(i){o=n(t.get(i),e.length,s);var c=Q[t.get(i)]||le,l=c==le;r+=ne+T(c,!l||ae+"\n",ie+' id="'+i+'" tabIndex="0" '+function(e,t,n){function i(e){return n&&(e=B(e)),o+r+e+s+r+c}var o=n?":":"=",r=n?"":'"',s=n?";":"",c=n?"":" ",l="width"+i(e)+"height"+i(t);return n&&(l='style="'+l+'"'),l}(o.w,o.h,!l)).trim()})),i&&(r+=ne+T(he,i)),P(function(){window.parent.exttsa&&(r+=ne+T(he,"exontrol.DPR.X()"))}),r}var s=t();xError(),s.open(),s.write(function(){var t,n=d(R(a())),s=e(n),c=x(n);return function(){var t;if(n&&!c&&!s)for(var i in U)if(t=new RegExp(Ee.replace("TYPE",i)).exec(n)){h(n=(ge.exec(n)||"")+"var "+t[1]+" = new exontrol."+i+"('cvs"+i+"');\n\n"+n),code.updateKeyword(),s=e(n);break}}(),L=s&&s.use||"",function(){var e,t,i="",o=(window.location.href.indexOf("4.EXHELPER"),0);J(ye,n,function(s){i+=n.substr(o,s.index-o),(t=s[0])&&(window.parent.extnfo=window.parent.extnfo||{},window.parent.extnfo.rel=(window.parent.extnfo.rel||0)+1,(window.parent.extnfo.occ=window.parent.extnfo.occ||new Map).set(t,t),e=t.charAt(0),t=t.substr(1,t.length-2),t=r((L&&"ex"+L.toLowerCase()+"/"||"")+t),i+=t=e+t+e),o=s.index+s[0].length}),i+=n.substr(o),n=i}(),t=T(se,i(s&&s.src))+ne,c?(t+=o(s&&s.id,s&&s.type,"")+ne+n,n=t):(t+=T(ce,o(s&&s.id,s&&s.type,n)),n=T(re,t)),Ke>0&&(1==Ke?n=g():2==Ke&&(n=v()),n=T(de,Re[Ke],'class="view"')+T(fe,n.trim(),'spellcheck="false" readonly style="width: '+(window.innerWidth-Pe-2*D)+"px;height: "+(window.innerHeight-2*D)+'px"')),n}()),s.close(),!code.hasError()&&m()}e(),clearTimeout(F),(i=~~i)&&!Se||(i?(De.ignoreUKey=!0,F=setTimeout(o,i)):o())}function u(){De.ignoreUKey=!0,l(),H(),!code.hasError()&&setTimeout(function(){code.updateKeyword()})}function a(){return code.getValue()}function h(e){var t=a();code.setValue(e),K(t!=a())}function d(e,t){return null==e&&(e=a()),t=t||Z(e),h(e=t.c),"o"in t&&(I=t.o,w(t.d),m()),e}function f(){var e=desc.innerHTML.replace(/\n/g,oe).trim();return e&&e!=Ae&&e||""}function w(e){null!=e&&(desc.innerHTML=e),desc.style.minHeight=f()||Me?B(je):"initial",c(ze)}function p(){return te+ee(I,Be)+f()}function m(){!function(){var e,t,n=Te,i=function(){var e="";I&&(e+=I.t&&I.t[0]||"",I.e&&I.e[0]&&(e+=e?", ":"",e+="E"+I.e[0]));return e}();(L||i)&&(~(t=n.indexOf("-"))&&(n=n.substr(0,t).trim()),e=n,L?(n=L+"/JS",i&&(n+=" ("+i+")"),n+=" | "+e):i&&(n+=" - "+i));P(function(){window.top.document.title=n})}(),code.updateKeyword()}function g(){return _(a(),f(),I,"DIV"==code.tagName?oe:ne)}function y(e){code.setValue(e),K(!0)}function v(){var e=g();return new W(k()).Set(He,e&&btoa(e)||null).href}function x(e){null==e&&(e=a());var t=e.match(/\s*=0&&r<=t;)o=i,(r=e.indexOf(ne,r))>=0&&(i=r+ne.length,r",o||t.charAt(0)==ne||(i+=ne),i+=t,o||t.charAt(t.length-1)==ne||(i+=ne),i+="",o&&(i+="\n")),i}function A(){window.frameElement&&(window.frameElement.height=window.parent.innerHeight-58)}function H(){window.parent.onexample&&window.parent.onexample(g())}var L,I,O,X,F,N,V=comrun.RUR,W=comrun.URLParam,Y=comrun.SEP,P=comrun.tryC,j=comrun.getLocalItem,z=comrun.setLocalItem,B=comrun.suffiPX,D=comrun.border,U=comrun.lib,q=comrun.size,Q=comrun.tag,J=comrun.feMU,Z=comrun.splitQ,$=comrun.toA,G=comrun.uCL,_=comrun.buildQ,ee=comrun.buildQI,te=comrun.INLINECOMMENT,ne=comrun.EOL,ie="exontrol",oe="
",re="html",se="head",ce="body",le="canvas",ue="contentEditable",ae="Your browser does not support the canvas tag.",he="script",de="span",fe="textarea",we=/new\s*exontrol\.(.*?)\s*\(\s*['"](.*?)['"]/gm,pe=/new\s*exontrol\.(.*?)\s*\(/gm,me=/exontrol\.([^.(]*)[.(]/gm,ge=/^[ \t]*/,ye=/["']((?!(?:text\/javascript))[^+*\-\n\\\/#A-Z0-9<>.].([^+*\-\n<>()"'`,:|?*\[\]]*?)[\\\/][^+*\-\n]*?|[^\n<>()"'`,:|?*\[\]]*?\.(csv|xml|txt))["']/g,ve="",xe="<[a-zA-Z]+\\s*.*[iI][dD]\\s*=\\s*['\"]ID['\"].*?>",Ee="(\\w*TYPE)\\b",be=comrun.isMin(),Ce="../",Se=!1,Me=!1,ke=2e3,Ke=0,Re=["result","code","url","html"],Te="Exontrol - Run JavaScript",Ae="

",He="E64",Le="edit",Ie="dirty",Oe="lincaret",Xe="host-keyword",Fe="keyword",Ne="run-js.width",Ve="run-js.height",We="run-js.auto",Ye="run-js.eval",Pe=window.innerWidth,je=28,ze=0,Be={e:[],t:[],k:[]},De={setDirty:K,toggleKeyword:S,getComment:p,evaluateCustomExpression:M,win:null,key:null,ignoreUKey:!1,ignoreXKey:!1},Ue=/^(?!\s*(?:break|case|catch|class|const|continue|debugger|default|delete|do|else|export|extends|finally|for|function|if|import|in|instanceof|let|new|return|super|switch|this|throw|try|typeof|var|void|while|with|yield)\s*$)(?!.*=>).+$/;window.onload=function(){this.ace?(lineno.style.display="none",De.win=run.contentWindow,this.acelib.replCode.call(this,De)):(lineno.update=function(){var e,t=1+function(e,t){var n=t.length,i=0;if(n)for(var o=-n;-1!=(o=e.indexOf(t,o+n));)i++;return i}(code.getValue(),ne);if(this.children.length!=t){code.scrollHeight>code.clientHeight&&t++,e="";for(var n=0;n"+(n+1)+"";this.innerHTML=e}},code.init=function(){this.style.lineHeight=lineno.style.lineHeight="1.4em",lineno.style.font=getComputedStyle(this).font},code.getValue=function(){return this.value||this.innerText},code.setValue=function(e){this["value"in this?"value":"innerText"]=e,lineno.update()},code.hasError=function(){return lineno.getElementsByClassName("linerr").length},code.setError=function(e,t){if($(lineno.getElementsByClassName("linerr")).forEach(function(e){G(e,"linerr",!0)}),setSelCol(),this.xKeywords(),e){var n=lineno.children.item(e-1),i=this.getValue(),o=b(i,e,t);n&&G(n,"linerr"),this.setSelectionRange&&(setSelCol("style-sel-err"),this.setSelectionRange(o,o+(/\w/.test(i.charAt(o))&&(i.substr(o).match(/\w\w*/)||[])[0].length||0)),this.ensureVisibleSel(),this.focus())}},code.updateCaret=function(){setTimeout(function(){this.selectionStart!=X&&this.oncaret(X=this.selectionStart)}.bind(this))},code.pos2XY=function(e){var t=this.value,n=getComputedStyle(this),i=C(t,e),o=b(t,i.l,1),r=function(e){e=null!=e?String(e):"";var t,i=document.createElement(de),o=!e.length;return document.body.appendChild(i),i.innerHTML=function(e){for(var t,n="",i=0,o=e.length;i=n.length||!/\w/g.test(n.charAt(t+e.length))))}if(e&&~(i=n.indexOf(e)))for(!r&&s(i)&&(r=!0,De.ignoreXKey=u,setSelCol("style-sel-key"),this.setSelectionRange(i,i+e.length),this.ensureVisibleSel());~i;)o=i,i+=e.length,s(o)&&l.push.apply(l,t.call(this,o,i,e)),i=n.indexOf(e,i)},this)),function(e){this.xKeywords(),e&&e.length&&(G(this,Xe),this.exkeys=[],e.forEach(function(e){var t=document.createElement(de);t.className=Fe,t.exrect=e,document.body.appendChild(t),this.exkeys.push(t)},this),this.syncKeywords())}.call(this,l),s&&this.setSelectionRange(s.s,s.e)}De.ignoreUKey=!1},code.syncKeywords=function(){var e,t,n,i,o=this.exkeys||[],r=this.getBoundingClientRect(),s=[r.x,r.y,code.clientWidth,code.clientHeight],c=this.scrollLeft,l=this.scrollTop;o.forEach(function(o){(i=o.exrect.slice())[0]+=s[0]-c,i[1]+=s[1]-l,(n=i[0]+i[2]>=s[0]&&s[0]+s[2]>=i[0]&&i[1]+i[3]>=s[1]&&s[1]+s[3]>=i[1])&&(e=Math.max(i[0],s[0]),t=Math.max(i[1],s[1]),i=[e,t,Math.min(i[0]+i[2],s[0]+s[2])-e,Math.min(i[1]+i[3],s[1]+s[3])-t],o.style.left=B(i[0]),o.style.width=B(i[2]),o.style.top=B(i[1]),o.style.height=B(i[3])),o.style.visibility=n?"":"hidden"})},code.xKeywords=function(){this.exkeys&&this.exkeys.forEach(function(e){e.remove()}),G(this,Xe,!0),this.exkeys=null},code.oninput=function(e){this.updateCaret(),xError(),lineno.update(),K(!0),this.setSelectionRange&&e&&"/"==e.data&&this.selectionStart==this.selectionEnd&&(1==this.selectionStart||2==this.selectionStart)&&setTimeout(function(){var e=this.getValue(),t=te.length;e!=te&&e.substr(0,t+1)!=te+ne||(e=p()+e.substr(t),this.setValue(e),this.setSelectionRange(t,t))}.bind(this))},code.onscroll=function(){this.syncKeywords(),lineno.scrollTop=this.scrollTop},code.onkeydown=function(e){if(this.updateCaret(),e.ctrlKey&&13==e.keyCode)this.updateKeyword(a().substr(this.selectionStart,Math.abs(this.selectionStart-this.selectionEnd)));else if(36==e.keyCode)code.scrollLeft=0;else if(!e.ctrlKey&&!e.altKey)switch(e.keyCode){case 9:return this.setSelectionRange?function(e){function t(e,t){for(var n=0,o=0,s=r.length;e=n[0]&&e=n[1]&&tthis.offsetHeight-36?(N&&N.n&&null!=N.i&&(N.n=!1,N.i++),n=(N=N||function(){var e=document.getElementById("tricks");return e&&(e=e.innerHTML.trim())&&(e=e.split("\n")),e||[]}())[N.i=(N.i||0)%N.length].trim()):N&&(N.n=!0)),this.setAttribute("title",n||"")},code.ensureVisibleSel=function(){var e=this.pos2XY(this.selectionEnd);this.scrollLeft=e[0]+e[2]+8-this.clientWidth,this.scrollTop=e[1]+e[3]-this.clientHeight}),vsplit.onpointerdown=vsplit.onmousedown=function(e){V.Do(e,function(e){if(4==e.drag.status)e.offsetX<0&&(u(),(e.ctrlKey||e.altKey||e.shiftKey)&&(Se=!Se));else{var t=Math.max(0,Pe+e.drag.offset.x/window.devicePixelRatio);s(t),7==e.drag.status&&(Pe=t)}})},hsplit.onpointerdown=hsplit.onmousedown=function(e){V.Do(e,function(e){var t=Math.max(0,ze+e.drag.offset.y/window.devicePixelRatio);c(t),7==e.drag.status&&(ze=t)})},hsplit.oncontextmenu=vsplit.oncontextmenu=function(){return!1},run.onload=function(){K(!1);var e=t(),n=document.getElementById("style-run");n&&n.content&&e.head.appendChild(n.content.cloneNode(!0)),o()},run.contentWindow.console.log=function(e){return function(){e.apply(this,arguments),setOutput.apply(window,arguments)}}(run.contentWindow.console.log),run.eval=function(e){var n,i=t();(n=i.createElement(he)).appendChild(i.createTextNode(Ue.test(e)?"console.log("+e+")":e)),i.body.appendChild(n),n.remove()},output.oncontextmenu=function(e){return window.xOutput(),window.showOutput(!1),Y(e)},code.init(),showOutput(!1),showError(!1),A(),function(){var e="",t=new W(k()).Get(He);t&&P(function(){e=atob(t)}),Pe=~~((~~j(Ne)||384||Pe+1)-1),ze=~~((~~j(Ve)||ze+1)-1),Se=~~j(We),y(e)}(),c(ze),s(Pe),l()},window.onbeforeunload=function(){z(Ne,Pe+1),z(Ve,ze+1),z(We,~~Se)},window.onresize=function(){A(),c(ze),s(Pe),i()},window.onkeydown=function(t){function n(e){Ke!=e&&(Ke=e,l())}function i(e,t){Me!=e&&(Me=e,desc.setAttribute(ue,e?"true":"false"),w(),G(desc,Le,!e),(e?desc:code).focus(),!e&&H(),t&&window.top.history.replaceState(null,null,v()))}var o=!1;switch(t.keyCode){case 27:e(),i(!1,!1),n(0);break;case 48:case 49:case 50:case 51:(o=t.ctrlKey||t.altKey)&&n(t.keyCode-48);break;case 69:(o=t.ctrlKey)&&i(!Me,Me);break;case 83:(o=t.ctrlKey)&&u()}if(o)return Y(t)},window.setError=function(t,n,i,o){var r,s,c,l,u=arguments,h="",d=null!=i;e(),code.setError(),t&&(h=t,d&&((c=x(r=a()))&&(d=(s=r.match(//i))&&r.substr(s.index).match(/<\/script\s*>/i))&&(l=C(r,s.index+s[0].length),o+=1==i?l.c-1:0,i+=l.l-1),i--,c||r.charAt(0)==ne||i--,h+=" on line "+(i+1),d&&(code.setError(i+1,o),window.parent.extnfo=window.parent.extnfo||{},window.parent.extnfo.err=(window.parent.extnfo.err||0)+1))),showError(error.innerHTML=h),P(function(){this.parent&&this.parent.setError&&this.parent.setError.apply(this.parent,u)},this)},window.xError=function(){window.setError()},window.showError=function(e){error.style.visibility=e?"visible":"hidden"},window.showOutput=function(e){output.style.visibility=e?"visible":"hidden"},window.setOutput=function(){for(var e,t="",n=output.innerHTML.trim(),i=0,o=arguments.length;i