picluster/web/assets/jquery.terminal.min.js
Verita84 48111c89c0 fix
2021-08-25 08:44:55 -06:00

36 lines
78 KiB
JavaScript

/**@license
* __ _____ ________ __
* / // _ /__ __ _____ ___ __ _/__ ___/__ ___ ______ __ __ __ ___ / /
* __ / // // // // // _ // _// // / / // _ // _// // // \/ // _ \/ /
* / / // // // // // ___// / / // / / // ___// / / / / // // /\ // // / /__
* \___//____ \\___//____//_/ _\_ / /_//____//_/ /_/ /_//_//_/ /_/ \__\_\___/
* \/ /____/ version 1.5.0
*
* This file is part of jQuery Terminal. http://terminal.jcubic.pl
*
* Copyright (c) 2010-2017 Jakub Jankiewicz <http://jcubic.pl/me>
* Released under the MIT license
*
* Contains:
*
* Storage plugin Distributed under the MIT License
* Copyright (c) 2010 Dave Schindler
*
* jQuery Timers licenced with the WTFPL
* <http://jquery.offput.ca/timers/>
*
* Cross-Browser Split 1.1.1
* Copyright 2007-2012 Steven Levithan <stevenlevithan.com>
* Available under the MIT License
*
* jQuery Caret
* Copyright (c) 2009, Gideon Sireling
* 3 clause BSD License
*
* sprintf.js
* Copyright (c) 2007-2013 Alexandru Marasteanu <hello at alexei dot ro>
* licensed under 3 clause BSD license
*
* Date: Mon, 10 Jul 2017 09:10:00 +0000
*/
(function(e){var n=function(){if(!n.cache.hasOwnProperty(arguments[0])){n.cache[arguments[0]]=n.parse(arguments[0])}return n.format.call(null,n.cache[arguments[0]],arguments)};n.format=function(e,t){var o=1,a=e.length,s="",l,f=[],c,u,p,m,h,d;for(c=0;c<a;c++){s=r(e[c]);if(s==="string"){f.push(e[c])}else if(s==="array"){p=e[c];if(p[2]){l=t[o];for(u=0;u<p[2].length;u++){if(!l.hasOwnProperty(p[2][u])){throw n('[sprintf] property "%s" does not exist',p[2][u])}l=l[p[2][u]]}}else if(p[1]){l=t[p[1]]}else{l=t[o++]}if(/[^s]/.test(p[8])&&r(l)!=="number"){throw n("[sprintf] expecting number but found %s",r(l))}switch(p[8]){case"b":l=l.toString(2);break;case"c":l=String.fromCharCode(l);break;case"d":l=parseInt(l,10);break;case"e":l=p[7]?l.toExponential(p[7]):l.toExponential();break;case"f":l=p[7]?parseFloat(l).toFixed(p[7]):parseFloat(l);break;case"o":l=l.toString(8);break;case"s":l=(l=String(l))&&p[7]?l.substring(0,p[7]):l;break;case"u":l=l>>>0;break;case"x":l=l.toString(16);break;case"X":l=l.toString(16).toUpperCase();break}l=/[def]/.test(p[8])&&p[3]&&l>=0?" +"+l:l;h=p[4]?p[4]==="0"?"0":p[4].charAt(1):" ";d=p[6]-String(l).length;m=p[6]?i(h,d):"";f.push(p[5]?l+m:m+l)}}return f.join("")};n.cache={};n.parse=function(e){var n=e,t=[],r=[],i=0;while(n){if((t=/^[^\x25]+/.exec(n))!==null){r.push(t[0])}else if((t=/^\x25{2}/.exec(n))!==null){r.push("%")}else if((t=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(n))!==null){if(t[2]){i|=1;var o=[],a=t[2],s=[];if((s=/^([a-z_][a-z_\d]*)/i.exec(a))!==null){o.push(s[1]);while((a=a.substring(s[0].length))!==""){if((s=/^\.([a-z_][a-z_\d]*)/i.exec(a))!==null){o.push(s[1])}else if((s=/^\[(\d+)\]/.exec(a))!==null){o.push(s[1])}else{throw"[sprintf] huh?"}}}else{throw"[sprintf] huh?"}t[2]=o}else{i|=2}if(i===3){throw"[sprintf] mixing positional and named placeholders is not (yet) supported"}r.push(t)}else{throw"[sprintf] huh?"}n=n.substring(t[0].length)}return r};var t=function(e,t,r){r=t.slice(0);r.splice(0,0,e);return n.apply(null,r)};function r(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function i(e,n){for(var t=[];n>0;t[--n]=e){}return t.join("")}e.sprintf=n;e.vsprintf=t})(typeof global!=="undefined"?global:window);(function(e,n){"use strict";function t(){var n=e.Callbacks();var t=false;this.resolve=function(){n.fire();t=true};this.add=function(e){if(t){e()}else{n.add(e)}}}e.omap=function(n,t){var r={};e.each(n,function(e,i){r[e]=t.call(n,e,i)});return r};var r={clone_object:function(n){var t={};if(typeof n==="object"){if(e.isArray(n)){return this.clone_array(n)}else if(n===null){return n}else{for(var r in n){if(e.isArray(n[r])){t[r]=this.clone_array(n[r])}else if(typeof n[r]==="object"){t[r]=this.clone_object(n[r])}else{t[r]=n[r]}}}}return t},clone_array:function(n){if(!e.isFunction(Array.prototype.map)){throw new Error("Your browser don't support ES5 array map "+"use es5-shim")}return n.slice(0).map(function(e){if(typeof e==="object"){return this.clone_object(e)}else{return e}}.bind(this))}};var i=function(e){return r.clone_object(e)};var o=function(){var e="test",n=window.localStorage;try{n.setItem(e,"1");n.removeItem(e);return true}catch(e){return false}};var a=o();function s(e,n){var t;if(typeof e==="string"&&typeof n==="string"){localStorage[e]=n;return true}else if(typeof e==="object"&&typeof n==="undefined"){for(t in e){if(e.hasOwnProperty(t)){localStorage[t]=e[t]}}return true}return false}function l(e,n){var t,r,i;t=new Date;t.setTime(t.getTime()+31536e6);r="; expires="+t.toGMTString();if(typeof e==="string"&&typeof n==="string"){document.cookie=e+"="+n+r+"; path=/";return true}else if(typeof e==="object"&&typeof n==="undefined"){for(i in e){if(e.hasOwnProperty(i)){document.cookie=i+"="+e[i]+r+"; path=/"}}return true}return false}function f(e){return localStorage[e]}function c(e){var n,t,r,i;n=e+"=";t=document.cookie.split(";");for(r=0;r<t.length;r++){i=t[r];while(i.charAt(0)===" "){i=i.substring(1,i.length)}if(i.indexOf(n)===0){return i.substring(n.length,i.length)}}return null}function u(e){return delete localStorage[e]}function p(e){return l(e,"",-1)}e.extend({Storage:{set:a?s:l,get:a?f:c,remove:a?u:p}});var m=e;m.fn.extend({everyTime:function(e,n,t,r,i){return this.each(function(){m.timer.add(this,e,n,t,r,i)})},oneTime:function(e,n,t){return this.each(function(){m.timer.add(this,e,n,t,1)})},stopTime:function(e,n){return this.each(function(){m.timer.remove(this,e,n)})}});m.extend({timer:{guid:1,global:{},regex:/^([0-9]+)\s*(.*s)?$/,powers:{ms:1,cs:10,ds:100,s:1e3,das:1e4,hs:1e5,ks:1e6},timeParse:function(e){if(e===n||e===null){return null}var t=this.regex.exec(m.trim(e.toString()));if(t[2]){var r=parseInt(t[1],10);var i=this.powers[t[2]]||1;return r*i}else{return e}},add:function(e,n,t,r,i,o){var a=0;if(m.isFunction(t)){if(!i){i=r}r=t;t=n}n=m.timer.timeParse(n);if(typeof n!=="number"||isNaN(n)||n<=0){return}if(i&&i.constructor!==Number){o=!!i;i=0}i=i||0;o=o||false;if(!e.$timers){e.$timers={}}if(!e.$timers[t]){e.$timers[t]={}}r.$timerID=r.$timerID||this.guid++;var s=function(){if(o&&s.inProgress){return}s.inProgress=true;if(++a>i&&i!==0||r.call(e,a)===false){m.timer.remove(e,t,r)}s.inProgress=false};s.$timerID=r.$timerID;if(!e.$timers[t][r.$timerID]){e.$timers[t][r.$timerID]=window.setInterval(s,n)}if(!this.global[t]){this.global[t]=[]}this.global[t].push(e)},remove:function(e,n,t){var r=e.$timers,i;if(r){if(!n){for(var o in r){if(r.hasOwnProperty(o)){this.remove(e,o,t)}}}else if(r[n]){if(t){if(t.$timerID){window.clearInterval(r[n][t.$timerID]);delete r[n][t.$timerID]}}else{for(var a in r[n]){if(r[n].hasOwnProperty(a)){window.clearInterval(r[n][a]);delete r[n][a]}}}for(i in r[n]){if(r[n].hasOwnProperty(i)){break}}if(!i){i=null;delete r[n]}}for(i in r){if(r.hasOwnProperty(i)){break}}if(!i){e.$timers=null}}}}});if(/(msie) ([\w.]+)/.exec(navigator.userAgent.toLowerCase())){m(window).one("unload",function(){var e=m.timer.global;for(var n in e){if(e.hasOwnProperty(n)){var t=e[n],r=t.length;while(--r){m.timer.remove(t[r],n)}}}})}(function(e){if(!String.prototype.split.toString().match(/\[native/)){return}var n=String.prototype.split,t=/()??/.exec("")[1]===e,r;r=function(r,i,o){if(Object.prototype.toString.call(i)!=="[object RegExp]"){return n.call(r,i,o)}var a=[],s=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.extended?"x":"")+(i.sticky?"y":""),l=0,f,c,u,p;i=new RegExp(i.source,s+"g");r+="";if(!t){f=new RegExp("^"+i.source+"$(?!\\s)",s)}o=o===e?-1>>>0:o>>>0;while(c=i.exec(r)){u=c.index+c[0].length;if(u>l){a.push(r.slice(l,c.index));if(!t&&c.length>1){c[0].replace(f,function(){for(var n=1;n<arguments.length-2;n++){if(arguments[n]===e){c[n]=e}}})}if(c.length>1&&c.index<r.length){Array.prototype.push.apply(a,c.slice(1))}p=c[0].length;l=u;if(a.length>=o){break}}if(i.lastIndex===c.index){i.lastIndex++}}if(l===r.length){if(p||!i.test("")){a.push("")}}else{a.push(r.slice(l))}return a.length>o?a.slice(0,o):a};String.prototype.split=function(e,n){return r(this,e,n)};return r})();e.fn.caret=function(e){var n=this[0];var t=n.contentEditable==="true";if(arguments.length===0){if(window.getSelection){if(t){n.focus();var r=window.getSelection().getRangeAt(0),i=r.cloneRange();i.selectNodeContents(n);i.setEnd(r.endContainer,r.endOffset);return i.toString().length}return n.selectionStart}if(document.selection){n.focus();if(t){var r=document.selection.createRange(),i=document.body.createTextRange();i.moveToElementText(n);i.setEndPoint("EndToEnd",r);return i.text.length}var e=0,o=n.createTextRange(),i=document.selection.createRange().duplicate(),a=i.getBookmark();o.moveToBookmark(a);while(o.moveStart("character",-1)!==0)e++;return e}return 0}if(e===-1)e=this[t?"text":"val"]().length;if(window.getSelection){if(t){n.focus();window.getSelection().collapse(n.firstChild,e)}else n.setSelectionRange(e,e)}else if(document.body.createTextRange){var o=document.body.createTextRange();o.moveToElementText(n);o.moveStart("character",e);o.collapse(true);o.select()}if(!t)n.focus();return e};var h=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){return window.setTimeout(e,20)};e.fn.resizer=function(n){var t=arguments[0]==="unbind";if(!t&&!e.isFunction(n)){throw new Error('Invalid argument, it need to a function of string "unbind".')}return this.each(function(){var r=e(this);if(t){e(this).removeData("callbacks").find(".resizer").remove()}else if(r.data("callbacks")){e(this).data("callbacks").push(n)}else{r.data("callbacks",[n]);var i=this;var o=e("<div/>").addClass("resizer").appendTo(this)[0];var a="position: absolute; left: 0; top: 0; right: 0; bottom: 0; "+"overflow: hidden; z-index: -1; visibility: hidden;";var s="position: absolute; left: 0; top: 0; transition: 0s;";o.style.cssText=a;o.innerHTML='<div class="resize-sensor-expand" style="'+a+'">'+'<div style="'+s+'"></div>'+"</div>"+'<div class="resize-sensor-shrink" style="'+a+'">'+'<div style="'+s+' width: 200%; height: 200%"></div>'+"</div>";var l=o.childNodes[0];var f=l.childNodes[0];var c=o.childNodes[1];var u,p,m,d;var v=i.offsetWidth;var g=i.offsetHeight;var y=function(){f.style.width="100000px";f.style.height="100000px";l.scrollLeft=1e5;l.scrollTop=1e5;c.scrollLeft=1e5;c.scrollTop=1e5};y();var _=function(){p=0;if(!u){return}v=m;g=d;var e=r.data("callbacks");if(e&&e.length){e.forEach(function(e){e()})}};var w=function(){m=i.offsetWidth;d=i.offsetHeight;u=m!==v||d!==g;if(u&&!p){p=h(_)}y()};e(l).on("scroll",w);e(c).on("scroll",w)}})};function d(e){e.attr({role:"presentation","aria-hidden":"true"})}function v(e,n){var t=[];var r=e.length;if(r<n){return[e]}else if(n<0){throw new Error("str_parts: length can't be negative")}for(var i=0;i<r;i+=n){t.push(e.substring(i,i+n))}return t}function g(n){var t=n?[n]:[];var r=0;e.extend(this,{get:function(){return t},rotate:function(){if(!t.filter(Boolean).length){return}if(t.length===1){return t[0]}else{if(r===t.length-1){r=0}else{++r}if(t[r]){return t[r]}else{return this.rotate()}}},length:function(){return t.length},remove:function(e){delete t[e]},set:function(e){for(var n=t.length;n--;){if(t[n]===e){r=n;return}}this.append(e)},front:function(){if(t.length){var e=r;var n=false;while(!t[e]){e++;if(e>t.length){if(n){break}e=0;n=true}}return t[e]}},map:function(e){return t.filter(Boolean).map(e)},forEach:function(e){t.filter(Boolean).forEach(e)},append:function(e){t.push(e)}})}function y(n){var t=n instanceof Array?n:n?[n]:[];e.extend(this,{data:function(){return t},map:function(n){return e.map(t,n)},size:function(){return t.length},pop:function(){if(t.length===0){return null}else{var e=t[t.length-1];t=t.slice(0,t.length-1);return e}},push:function(e){t=t.concat([e]);return e},top:function(){return t.length>0?t[t.length-1]:null},clone:function(){return new y(t.slice(0))}})}function _(n,t,r){var i=true;var o="";if(typeof n==="string"&&n!==""){o=n+"_"}o+="commands";var a;if(r){a=[]}else{a=e.Storage.get(o);a=a?JSON.parse(a):[]}var s=a.length-1;e.extend(this,{append:function(n){if(i){if(a[a.length-1]!==n){a.push(n);if(t&&a.length>t){a=a.slice(-t)}s=a.length-1;if(!r){e.Storage.set(o,JSON.stringify(a))}}}},set:function(n){if(n instanceof Array){a=n;if(!r){e.Storage.set(o,JSON.stringify(a))}}},data:function(){return a},reset:function(){s=a.length-1},last:function(){return a[a.length-1]},end:function(){return s===a.length-1},position:function(){return s},current:function(){return a[s]},next:function(){if(s<a.length-1){++s}if(s!==-1){return a[s]}},previous:function(){var e=s;if(s>0){--s}if(e!==-1){return a[s]}},clear:function(){a=[];this.purge()},enabled:function(){return i},enable:function(){i=true},purge:function(){if(!r){e.Storage.remove(o)}},disable:function(){i=false}})}var w=0;e.fn.cmd=function(t){var r=this;var i=r.data("cmd");if(i){return i}var o=w++;r.addClass("cmd");r.append('<span class="prompt"></span><span></span>'+'<span class="cursor">&nbsp;</span><span></span>');d(r.find("span").not(":eq(0)"));var a=e("<textarea>").attr({autocapitalize:"off",spellcheck:"false",tabindex:1}).addClass("clipboard").appendTo(r);if(t.width){r.width(t.width)}var s;var l;var f=r.find(".prompt");var c=false;var u="";var p=null;var m;var h=t.mask||false;var g="";var y;var x="";var T=0;var E;var C;var R=t.historySize||60;var A,S;var F=r.find(".cursor");var L;var O=0;function j(){var n=e("<span>&nbsp;</span>").appendTo(r);var t=n[0].getBoundingClientRect();n.remove();return t}function z(e){var n=r.find(".prompt").text().length;var t=j();var i=t.width;var o=t.height;var a=r.offset();var s=Math.floor((e.x-a.left)/i);var l=Math.floor((e.y-a.top)/o);var f=te(g);var c;if(l>0&&f.length>1){c=s+f.slice(0,l).reduce(function(e,n){return e+n.length},0)}else{c=s-n}var u=g.replace(/\t/g,"\0\0\0\0").replace(/\n/,"");var p=u.slice(0,c);var m=p.replace(/\x00{4}/g,"\t").replace(/\x00+/,"").length;return m>g.length?g.length:m}function I(e){if(e.key){var n=e.key.toUpperCase();if(n==="CONTROL"){return"CTRL"}else{var t=[];if(e.ctrlKey){t.push("CTRL")}if(e.metaKey&&n!=="META"){t.push("META")}if(e.shiftKey&&n!=="SHIFT"){t.push("SHIFT")}if(e.altKey&&n!=="ALT"){t.push("ALT")}if(e.key){if(n==="DEL"){t.push("DELETE")}else{t.push(n)}}return t.join("+")}}}var P;var N={"ALT+D":function(){r.set(g.slice(0,T)+g.slice(T).replace(/ *[^ ]+ *(?= )|[^ ]+$/,""),true);return false},ENTER:function(){if(S&&g&&!h&&(e.isFunction(t.historyFilter)&&t.historyFilter(g))||t.historyFilter instanceof RegExp&&g.match(t.historyFilter)||!t.historyFilter){S.append(g)}var n=g;S.reset();ge="";he=true;r.set("");if(t.commands){t.commands(n)}if(e.isFunction(E)){oe()}e(".clipboard").val("");return false},"SHIFT+ENTER":function(){r.insert("\n");return true},BACKSPACE:function(){if(c){u=u.slice(0,-1);Q()}else if(g!==""&&T>0){r["delete"](-1)}he=true;return false},TAB:function(){r.insert("\t")},"CTRL+D":function(){r["delete"](1);return false},DELETE:function(){r["delete"](1);return true},ARROWUP:D,UP:D,"CTRL+P":D,ARROWDOWN:B,DOWN:B,"CTRL+N":B,ARROWLEFT:q,LEFT:q,"CTRL+B":q,"CTRL+ARROWLEFT":function(){var e=T-1;var n=0;if(g[e]===" "){--e}for(var t=e;t>0;--t){if(g[t]===" "&&g[t+1]!==" "){n=t+1;break}else if(g[t]==="\n"&&g[t+1]!=="\n"){n=t;break}}r.position(n)},"CTRL+R":function(){if(c){ee(true)}else{m=E;Q();y=g;r.set("");ie();c=true}return false},"CTRL+G":function(){if(c){E=m;oe();r.set(y);ie();c=false;u="";return false}},ARROWRIGHT:W,"CTRL+F":W,RIGHT:W,"CTRL+ARROWRIGHT":function(){if(g[T]===" "){++T}var e=/\S[\n\s]{2,}|[\n\s]+\S?/;var n=g.slice(T).match(e);if(!n||n[0].match(/^\s+$/)){r.position(g.length)}else if(n[0][0]!==" "){T+=n.index+1}else{T+=n.index+n[0].length-1;if(n[0][n[0].length-1]!==" "){--T}}ie()},F12:$,END:K,"CTRL+E":K,HOME:U,"CTRL+A":U,"SHIFT+INSERT":H,"CTRL+SHIFT+T":$,"CTRL+W":function(){if(g!==""&&T!==0){var e=g.slice(0,T).match(/([^ ]+ *$)/);if(e[0].length){x=r["delete"](-e[0].length);Y(r,x)}}return false},"CTRL+H":function(){if(g!==""&&T>0){r["delete"](-1)}return false},"CTRL+X":$,"CTRL+C":$,"CTRL+T":$,"CTRL+Y":function(){if(x!==""){r.insert(x)}},"CTRL+V":H,"META+V":H,"CTRL+K":function(){if(g.length-T){x=r["delete"](g.length-T);Y(r,x)}return false},"CTRL+U":function(){if(g!==""&&T!==0){x=r["delete"](-T);Y(r,x)}return false},"CTRL+TAB":function(){return false},"META+`":$,"META+R":$,"META+L":$};function $(){return true}function H(){a.val("");O=0;a.focus();a.on("input",function e(n){ae(n);a.off("input",e)});return true}function D(){if(le){y=g;r.set(S.current())}else{r.set(S.previous())}le=false;return false}function B(){r.set(S.end()?y:S.next());return false}function q(){if(T>0){r.position(-1,true);ie()}}function W(){if(T<g.length){r.position(1,true)}return false}function U(){r.position(0)}function K(){r.position(g.length)}function J(){var e=a.is(":focus");if(C){if(!e){a.trigger("focus",[true]);r.oneTime(10,function(){a.trigger("focus",[true])})}}else if(e){a.blur()}}function G(){r.oneTime(10,function(){if(C){r.oneTime(10,function(){try{}catch(e){}})}})}if(b&&!k){L=function(e){if(e){F.addClass("blink")}else{F.removeClass("blink")}}}else{var X=false;L=function(e){if(e&&!X){X=true;F.addClass("inverted blink");r.everyTime(500,"blink",V)}else if(X&&!e){X=false;r.stopTime("blink",V);F.removeClass("inverted blink")}}}function V(){F.toggleClass("inverted")}function Q(){E="(reverse-i-search)`"+u+"': ";oe()}function Z(){E=m;c=false;p=null;u=""}function ee(n){var t=S.data();var i,o;var a=t.length;if(n&&p>0){a-=p}if(u.length>0){for(var s=u.length;s>0;s--){o=e.terminal.escape_regex(u.substring(0,s));i=new RegExp(o);for(var l=a;l--;){if(i.test(t[l])){p=t.length-l;r.position(t[l].indexOf(o));r.set(t[l],true);ie();if(u.length!==s){u=u.substring(0,s);Q()}return}}}}u=""}function ne(){var e=r.find(".prompt").text("&nbsp;");var n=r.width();var t=e[0].getBoundingClientRect().width;s=Math.floor(n/t);oe()}function te(e){var n;if(e.match(/\n/)){var t=e.split("\n");var r=s-l-1;for(var i=0;i<t.length-1;++i){t[i]+=" "}if(t[0].length>r){n=[t[0].substring(0,r)];var o=t[0].substring(r);n=n.concat(v(o,s))}else{n=[t[0]]}for(i=1;i<t.length;++i){if(t[i].length>s){n=n.concat(v(t[i],s))}else{n.push(t[i])}}}else{var a=e.substring(0,s-l);var f=e.substring(s-l);n=[a].concat(v(f,s))}return n}function re(n){n=e.terminal.escape_formatting(n);var t=e.terminal.defaults.formatters;for(var r=0;r<t.length;++r){try{if(typeof t[r]==="function"){var i=t[r](n);if(typeof i==="string"){n=i}}}catch(e){alert("formatting error at formatters["+r+"]\n"+(e.stack?e.stack:e))}}return e.terminal.format(e.terminal.encode(n))}var ie=function(){var t=F.prev();var i=F.next();function o(e,n){var r=e.length;if(n===r){t.html(re(e));F.html("&nbsp;");i.html("")}else if(n===0){t.html("");F.html(re(e.slice(0,1)));i.html(re(e.slice(1)))}else{var o=e.slice(0,n);t.html(re(o));var a=e.slice(n,n+1);F.html(re(a));if(n===e.length-1){i.html("")}else{i.html(re(e.slice(n+1)))}}}function a(e){return"<div>"+re(e)+"</div>"}function f(n){var t=i;e.each(n,function(n,r){t=e(a(r)).insertAfter(t)})}function c(n){e.each(n,function(e,n){t.before(a(n))})}return function(){var u;switch(typeof h){case"boolean":u=h?g.replace(/./g,"*"):g;break;case"string":u=g.replace(/./g,h);break}var p;r.find("div").remove();t.html("");if(u.length>s-l-1||u.match(/\n/)){var m=u.match(/\t/g);var d=m?m.length*3:0;if(m){u=u.replace(/\t/g,"\0\0\0\0")}var v=te(u);if(m){v=e.map(v,function(e){return e.replace(/\x00\x00\x00\x00/g,"\t")})}var y=v[0].length;if(y===0&&v.length===1){}else if(T<y){o(v[0],T);f(v.slice(1))}else if(T===y){t.before(a(v[0]));o(v[1]||"",0);if(v.length>1){f(v.slice(2))}}else{var _=v.length;if(T<y){o(v[0],T);f(v.slice(1))}else if(T===y){t.before(a(v[0]));o(v[1],0);f(v.slice(2))}else{var w=v.slice(-1)[0];var b=u.length-T-d;var k=w.length;var x=0;if(b<=k){c(v.slice(0,-1));if(k===b){x=0}else{x=k-b}o(w,x)}else if(_===3){var E=re(v[0]);t.before("<div>"+E+"</div>");o(v[1],T-y-1);E=re(v[2]);i.after("<div>"+E+"</div>")}else{var C;var R;x=T;for(p=0;p<v.length;++p){var A=v[p].length;if(x>A){x-=A}else{break}}R=v[p];C=p;if(x===R.length){x=0;R=v[++C];if(R===n){var S=e.terminal.defaults.strings.redrawError;throw new Error(S)}}o(R,x);c(v.slice(0,C));f(v.slice(C+1))}}}}else if(u===""){t.html("");F.html("&nbsp;");i.html("")}else{o(u,T)}}}();var oe=function(){function n(n){var t=e.terminal.split_equal(e.terminal.encode(n));var i=t.slice(-1).map(e.terminal.format)[0];var o=t.slice(0,-1).map(function(n){n=e.terminal.format(n);if(n.match(/class="/)){return n.replace(/class="/,'class="line ')}else{return n.replace(/^<span/,'<span class="line"')}}).concat([i]).join("\n");var a=r.width();f.html(o).find(".line").width(a);l=e("<span>"+i+"</span>").text().length}return function(){switch(typeof E){case"string":n(E);break;case"function":E(n);break}}}();function ae(){if(O++>0){return}if(r.isenabled()){var e=r.find("textarea");if(!e.is(":focus")){e.focus()}r.oneTime(100,function(){r.insert(e.val());e.val("");G()})}}function se(){if(e.isFunction(t.onCommandChange)){t.onCommandChange(g)}}e.extend(r,{name:function(e){if(e!==n){A=e;var i=S&&S.enabled()||!S;S=new _(e,R,t.history==="memory");if(!i){S.disable()}return r}else{return A}},purge:function(){S.clear();return r},history:function(){return S},delete:function(e,n){var t;if(e===0){return r}else if(e<0){if(T>0){t=g.slice(0,T).slice(e);g=g.slice(0,T+e)+g.slice(T,g.length);if(!n){r.position(T+e)}se()}}else if(g!==""&&T<g.length){t=g.slice(T).slice(0,e);g=g.slice(0,T)+g.slice(T+e,g.length);se()}ie();G();return t},set:function(e,t){if(e!==n){g=e;if(!t){r.position(g.length)}ie();G();se()}return r},keymap:function(n){if(typeof n==="undefined"){return P}else{P=e.extend({},N,e.omap(n||{},function(e,n){return function(t){return n(t,N[e])}}));return r}},insert:function(e,n){if(T===g.length){g+=e}else if(T===0){g=e+g}else{g=g.slice(0,T)+e+g.slice(T)}if(!n){r.position(e.length,true)}else{G()}ie();se();return r},get:function(){return g},commands:function(e){if(e){t.commands=e;return r}else{return e}},destroy:function(){_e.unbind("keypress.cmd",we);_e.unbind("keydown.cmd",ye);_e.unbind("input.cmd",xe);r.stopTime("blink",V);r.find(".cursor").next().remove().end().prev().remove().end().remove();r.find(".prompt, .clipboard").remove();r.removeClass("cmd").removeData("cmd").off(".cmd");return r},prompt:function(e){if(e===n){return E}else{if(typeof e==="string"||typeof e==="function"){E=e}else{throw new Error("prompt must be a function or string")}oe();ie();return r}},kill_text:function(){return x},position:function(n,i){if(typeof n==="number"){if(i){T+=n}else if(n<0){T=0}else if(n>g.length){T=g.length}else{T=n}if(e.isFunction(t.onPositionChange)){t.onPositionChange(T)}ie();G();return r}else{return T}},visible:function(){var e=r.visible;return function(){e.apply(r,[]);ie();oe()}}(),show:function(){var e=r.show;return function(){e.apply(r,[]);ie();oe()}}(),resize:function(e){if(e){s=e}else{ne()}ie();oe();return r},enable:function(){if(!C){C=true;r.addClass("enabled");try{a.caret(T)}catch(e){}L(true);oe();J()}return r},isenabled:function(){return C},disable:function(e){C=false;r.removeClass("enabled");L(false);if(!e){J()}return r},mask:function(e){if(typeof e==="undefined"){return h}else{h=e;ie();return r}}});r.name(t.name||t.prompt||"");if(typeof t.prompt==="string"){E=t.prompt}else{E="> "}oe();if(t.enabled===n||t.enabled===true){r.enable()}if(!t.history){S.disable()}var le=true;var fe=false;var ce=false;var ue=false;var pe=false;var me=false;var he=true;var de=false;var ve;var ge="";function ye(i){ke('keydown "'+i.key+'" '+i.fake);var o;ce=pe&&ue;try{if(!i.fake){ue=i.key&&i.key.length===1&&!i.ctrlKey;me=String(i.key).toLowerCase()==="unidentified";de=i.key.toUpperCase()==="BACKSPACE"||i.which===8}}catch(e){}if(i.key==="Unidentified"){he=true;return}if(!i.fake){pe=true;he=false}var a=I(i);if(e.isFunction(t.keydown)){o=t.keydown(i);if(o!==n){if(!o){ve=true}return o}}if(C){ve=["CTRL+V","META+V"].indexOf(a)!==-1;if(i.which!==38&&!(i.which===80&&i.ctrlKey)){le=true}if(c&&(i.which===35||i.which===36||i.which===37||i.which===38||i.which===39||i.which===40||i.which===13||i.which===27)){Z();oe();if(i.which===27){r.set("")}ie();ye.call(this,i)}else if(e.isFunction(P[a])){o=P[a]();if(o===true){return}if(o!==n){return o}}else if(i.altKey){return}else{fe=false;return}i.preventDefault()}}var _e=e(document.documentElement||window);r.keymap(t.keymap);function we(i){ke('keypress "'+i.key+'" '+i.fake);var o;if(!i.fake){pe=false}if(i.ctrlKey||i.metaKey){return}if(fe){return}if(e.isFunction(t.keypress)){o=t.keypress(i);if(o!==n){if(!o){ve=true}return o}}if(C){if(i.fake){return}var a;if(M()||i.fake){a=i.key}if(!a||me){a=String.fromCharCode(i.which)}if(a.toUpperCase()==="SPACEBAR"){a=" "}if(e.inArray(i.which,[13,0,8])>-1){if(i.keyCode===123){return}return false}else if(a&&(!i.ctrlKey||i.ctrlKey&&i.ctrlKey)&&(!(i.altKey&&i.which===100)||i.altKey)&&!ce){if(c){u+=a;ee();Q()}else{r.insert(a)}}}}function be(n,t,r){var i=e.Event(n);i.which=r;i.key=t;i.fake=true;_e.trigger(i)}function ke(n){if(false){e.terminal.active().echo(n)}}function xe(){if(he||(pe||ce)&&!ve&&(ue||me)&&!de){var e=T;var n=a.val();if(he){de=n.length<ge.length}if(c){u=n;ee();Q()}else{var t=n.substring(T);if(t.length===1||de){if(he){var i;if(de){i=8}else{i=t.toUpperCase().charCodeAt(0)}be("keydown",de?"Backspace":t,i)}if(pe&&!de){be("keypress",t,t.charCodeAt(0))}}if(de){ge=g;return}if(ve){ve=false;return}r.set(n)}if(de){r.position(e-1)}else{r.position(e+Math.abs(n.length-ge.length))}}ge=g;ve=false;he=true}_e.bind("keypress.cmd",we).bind("keydown.cmd",ye).bind("input.cmd",xe);(function(){var n=false;var i=false;var a=0;r.on("mousedown.cmd",function(){i=true;r.oneTime(1,function(){e(window).on("mousemove.cmd_"+o,function(){n=true;e(window).off("mousemove.cmd_"+o)})})}).on("mouseup.cmd",function(s){var l=n;n=false;e(window).off("mousemove.cmd_"+o);if(!l){var f="click_"+o;if(++a===1){var c=i;if(C){r.oneTime(t.clickTimeout,f,function(){if(!e(s.target).is(".prompt")&&c){r.position(z({x:s.pageX,y:s.pageY}))}a=0})}else{a=0}}else{r.stopTime(f);a=0}}i=false})})();r.data("cmd",r);if(!("KeyboardEvent"in window&&"key"in window.KeyboardEvent.prototype)){setTimeout(function(){throw new Error("key event property not supported try "+"https://github.com/cvan/keyboardevent-key-polyfill")},0)}return r};var b=function(){var e=false,t="Webkit Moz O ms Khtml".split(" "),r=document.createElement("div");if(r.style.animationName){e=true}if(e===false){for(var i=0;i<t.length;i++){var o=t[i]+"AnimationName";if(r.style[o]!==n){e=true;break}}}return e}();var k=navigator.userAgent.toLowerCase().indexOf("android")!==-1;var x=function(){return"ontouchstart"in window||!!window.DocumentTouch&&document instanceof window.DocumentTouch}();function T(n,t){var r=n.match(z)||[];if(r.length){var i=r.shift();var o=e.map(r,t);var a=e.map(r,function(e){var n=e.match(/^(['"]).*\1$/);return n&&n[1]||""});var s=n.substring(i.length).trim();return{command:n,name:i,args:o,args_quotes:a,rest:s}}else{return{command:n,name:"",args:[],args_quotes:a,rest:""}}}var E=/(\[\[[!gbiuso]*;[^;]*;[^\]]*\](?:[^\]]*\\\][^\]]*|[^\]]*|[^[]*\[[^\]]*)\]?)/i;var C=/\[\[([!gbiuso]*);([^;]*);([^;\]]*);?([^;\]]*);?([^\]]*)\]([^\]]*\\\][^\]]*|[^\]]*|[^[]*\[[^\]]*)\]?/gi;var R=/\[\[([!gbiuso]*;[^;\]]*;[^;\]]*(?:;|[^\]()]*);?[^\]]*)\]([^\]]*\\\][^\]]*|[^\]]*|[^[]*\[[^\]]*)\]?/gi;var A=/\[\[([!gbiuso]*;[^;\]]*;[^;\]]*(?:;|[^\]()]*);?[^\]]*)\]([^\]]*\\\][^\]]*|[^\]]*|[^[]*\[[^\]]*)\]/gi;var S=/^\[\[([!gbiuso]*;[^;\]]*;[^;\]]*(?:;|[^\]()]*);?[^\]]*)\]([^\]]*\\\][^\]]*|[^\]]*|[^[]*\[[^\]]*)\]$/gi;var F=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i;var L=/(\bhttps?:\/\/(?:(?:(?!&[^;]+;)|(?=&amp;))[^\s"'<>\][)])+\b)/gi;var O=/\b(https?:\/\/(?:(?:(?!&[^;]+;)|(?=&amp;))[^\s"'<>\][)])+)\b(?![^[\]]*])/gi;var j=/((([^<>('")[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,})))/g;var z=/((?:"[^"\\]*(?:\\[\S\s][^"\\]*)*"|'[^'\\]*(?:\\[\S\s][^'\\]*)*'|\/[^\/\\]*(?:\\[\S\s][^\/\\]*)*\/[gimy]*(?=\s|$)|(?:\\\s|\S))+)(?=\s|$)/gi;var I=/(\[\[[!gbiuso]*;[^;]*;[^\]]*\])/i;var P=/^(\[\[[!gbiuso]*;[^;]*;[^\]]*\])/i;var N=/\[\[[!gbiuso]*;[^;]*;[^\]]*\]?$/i;var $=/(\[\[(?:[^\]]|\\\])+\]\])/;var H=/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/;var D=/^\/((?:\\\/|[^/]|\[[^\]]*\/[^\]]*\])+)\/([gimy]*)$/;var B=/^(?=((?:[^"']+|"[^"\\]*(?:\\[^][^"\\]*)*"|'[^'\\]*(?:\\[^][^'\\]*)*')*))\1./;e.terminal={version:"1.5.0",color_names:["transparent","currentcolor","black","silver","gray","white","maroon","red","purple","fuchsia","green","lime","olive","yellow","navy","blue","teal","aqua","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","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","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],valid_color:function n(t){if(t.match(F)){return true}else{return e.inArray(t.toLowerCase(),e.terminal.color_names)!==-1}},unclosed_strings:function e(n){return!!n.match(B)},escape_regex:function e(n){if(typeof n==="string"){var t=/([-\\^$[\]()+{}?*.|])/g;return n.replace(t,"\\$1")}},have_formatting:function e(n){return typeof n==="string"&&!!n.match(A)},is_formatting:function e(n){return typeof n==="string"&&!!n.match(S)},format_split:function e(n){return n.split(E).filter(Boolean)},iterate_formatting:function e(t,r){function i(){return t.substring(c-6,c)==="&nbsp;"||t.substring(c-1,c)===" "}var o=false;var a=false;var s=0;var l;var f=-1;for(var c=0;c<t.length;c++){l=t.substring(c).match(P);if(l){o=l[1];a=false}else if(o){if(t[c]==="]"){if(a){o="";a=false}else{a=true}}}else{a=true}var u=o&&a||!o;var p=t[c]==="["&&t[c+1]==="[";if(i()&&(u||p)){f=c}var m=t[c].match(/[[\]]/);if(u){if(t[c]==="&"){l=t.substring(c).match(/^(&[^;]+;)/);if(!l){throw new Error("Unclosed html entity at char "+(c+1))}c+=l[1].length-2;continue}else if(t[c]==="]"&&t[c-1]==="\\"){--s}else if(!m){++s}}if(!m&&u){var h={count:s,index:c,formatting:o,text:a,space:f};var d=r(h);if(d===false){break}else if(d){if(d.count!==n){s=d.count}if(d.space!==n){f=d.space}if(d.index!==n){c=d.index}}}}},substring:function n(t,r,i){if(!e.terminal.have_formatting(t)){return t.substring(r,i)}var o;var a=t.length;var s="";var l="";e.terminal.iterate_formatting(t,function(e){if(e.count===r+1){o=e.index;if(e.formatting){s=e.formatting}}else if(i&&e.count===i+1){a=e.index;l=e.formatting}});t=s+t.substring(o,a);if(l){t+="]"}return t},normalize:function e(n){return n.replace(R,function(e,n,t){if(t===""){return""}var r=n.match(/;/g).length;if(r>=4){var i=n.split(/;/);var o=i.slice(0,4).join(";");var a=i.slice(4).join(";");return"[["+o+";"+(a||t)+"]"+t+"]"}else if(r===2){r=";;"}else if(r===3){r=";"}else{r=""}var s=t.replace(/\\\]/g,"&#93;").replace(/\n/g,"\\n").replace(/&nbsp;/g," ");return"[["+n+r+s+"]"+t+"]"})},split_equal:function n(t,r,i){var o="";var a=[];var s=e.terminal.normalize(t).split(/\n/g);for(var l=0,f=s.length;l<f;++l){if(s[l]===""){a.push("");continue}var c=s[l];var u=0;var p;var m=c.length;e.terminal.iterate_formatting(c,function(n){var t=n.index===m-2&&c[n.index+1]==="]";var s=n.index===m-1||t;if(n.count===r||s){if(i){var l=e.terminal.strip(c.substring(n.space));l=e("<span>"+l+"</span>").text();var f=l.length;l=l.substring(0,n.index+r+1);var h=false;if(l.match(/\s/)||n.index+r+1>f){h=true}}if(i&&!t&&n.space!==-1&&n.index!==m-1&&h){p=c.substring(u,n.space);var d=n.space-1}else{p=c.substring(u,n.index+1)}if(i){p=p.replace(/(&nbsp;|\s)+$/g,"")}u=(d||n.index)+1;if(o){var v=p.match(/^[^\]]*\]/);p=o+p;if(v){o=""}}if(t){p+="]";o=""}var g=p.match(R);if(g){var y=g[g.length-1];if(y[y.length-1]!=="]"){o=y.match(I)[1];p+="]"}else if(p.match(N)){p=p.replace(N,"");o=y.match(I)[1]}}a.push(p);return{index:d,count:0,space:-1}}})}return a},encode:function e(n){n=n.replace(/&(?!#[0-9]+;|[a-zA-Z]+;)/g,"&amp;");return n.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/ /g,"&nbsp;").replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;")},nested_formatting:function n(t){if(!e.terminal.have_formatting(t)){return t}var r=[];var i=/(\[\[(?:[^\]]|\\\])+\](?:[^\][]|\\\])*\]?)/;var o=/(\[\[(?:[^\]]|\\\])+\])[\s\S]*/;return t.split(i).filter(Boolean).map(function(n){if(n.match(/^\[\[/)){if(!e.terminal.is_formatting(n)){n+="]";r.push(n.replace(o,"$1"))}}else{var t=false;if(n.match(/\]/)){t=true}if(r.length){n=r[r.length-1]+n}if(t){r.pop()}else if(r.length){n+="]"}}return n}).join("")},escape_formatting:function n(t){return e.terminal.escape_brackets(e.terminal.encode(t))},format:function n(t,r){var i=e.extend({},{linksNoReferrer:false},r||{});if(typeof t==="string"){var o=e.terminal.format_split(t);t=e.map(o,function(n){if(n===""){return n}else if(e.terminal.is_formatting(n)){n=n.replace(/\[\[[^\]]+\]/,function(e){return e.replace(/&nbsp;/g," ")});return n.replace(C,function(n,t,r,o,a,s,l){if(l===""){return""}l=l.replace(/\\]/g,"]");var f="";if(t.indexOf("b")!==-1){f+="font-weight:bold;"}var c=[];if(t.indexOf("u")!==-1){c.push("underline")}if(t.indexOf("s")!==-1){c.push("line-through")}if(t.indexOf("o")!==-1){c.push("overline")}if(c.length){f+="text-decoration:"+c.join(" ")+";"}if(t.indexOf("i")!==-1){f+="font-style:italic;"}if(e.terminal.valid_color(r)){f+="color:"+r+";";if(t.indexOf("g")!==-1){f+="text-shadow:0 0 5px "+r+";"}}if(e.terminal.valid_color(o)){f+="background-color:"+o}var u;if(s===""){u=l}else{u=s.replace(/&#93;/g,"]")}var p;if(t.indexOf("!")!==-1){if(u.match(j)){p='<a href="mailto:'+u+'"'}else{p='<a target="_blank" href="'+u+'"';if(i.linksNoReferrer){p+=' rel="noreferrer noopener"'}else{p+=' rel="noopener"'}}p+=' tabindex="1000"'}else{p="<span"}if(f!==""){p+=' style="'+f+'"'}if(a!==""){p+=' class="'+a+'"'}if(t.indexOf("!")!==-1){p+=">"+l+"</a>"}else{p+=' data-text="'+u.replace('"',"&quote;")+'">'+l+"</span>"}return p})}else{return"<span>"+n.replace(/\\\]/g,"]")+"</span>"}}).join("");return t.replace(/<span><br\s*\/?><\/span>/gi,"<br/>")}else{return""}},escape_brackets:function e(n){return n.replace(/\[/g,"&#91;").replace(/\]/g,"&#93;")},strip:function e(n){n=n.replace(C,"$6");return n.replace(/(\\?)([[\]])/g,function(e,n){if(n){return e}else{return""}})},active:function e(){return te.front()},last_id:function e(){var n=te.length();if(n){return n-1}},parse_argument:function e(n,t){function r(e){if(e.match(/^['"]/)){var n=e[0];var t=new RegExp("((^|[^\\\\])(?:\\\\\\\\)*)"+n,"g");e=e.replace(t,"$1")}return JSON.parse('"'+e+'"')}if(t===false){if(n[0]==="'"&&n[n.length-1]==="'"){return n.replace(/^'|'$/g,"")}else if(n[0]==='"'&&n[n.length-1]==='"'){return n.replace(/^"|"$/g,"").replace(/\\([" ])/g,"$1")}else if(n.match(/\/.*\/[gimy]*$/)){return n}else if(n.match(/['"]]/)){return r(n)}else{return n.replace(/\\ /g," ")}}var i=n.match(D);if(i){return new RegExp(i[1],i[2])}else if(n.match(/['"]/)){return r(n)}else if(n.match(/^-?[0-9]+$/)){return parseInt(n,10)}else if(n.match(H)){return parseFloat(n)}else{return n.replace(/\\(['"() ])/g,"$1")}},parse_arguments:function n(t){return e.map(t.match(z)||[],e.terminal.parse_argument)},split_arguments:function(n){return e.map(n.match(z)||[],function(n){return e.terminal.parse_argument(n,false)})},parse_command:function n(t){return T(t,e.terminal.parse_argument)},split_command:function(n){return T(n,function(n){return e.terminal.parse_argument(n,false)})},extended_command:function e(n,t){try{oe=false;n.exec(t,true).done(function(){oe=true})}catch(e){}}};e.fn.visible=function(){return this.css("visibility","visible")};e.fn.hidden=function(){return this.css("visibility","hidden")};e.fn.scroll_element=function(){var n=e.fn.scroll_element.defaults;return this.map(function(){var t=e(this);if(t.is("body")){var r=e("html");var i=e("body");var o=i.scrollTop()||r.scrollTop();var a=e("<pre/>").css(n.pre).appendTo("body");a.html(new Array(n.lines).join("\n"));e("body,html").scrollTop(10);var s;if(i.scrollTop()===10){i.scrollTop(o);s=i[0]}else if(r.scrollTop()===10){r.scrollTop(o);s=r[0]}a.remove();return s}else{return this}})};e.fn.scroll_element.defaults={lines:2e3,pre:{"font-size":"100px","white-space":"pre"}};function M(){if(!("KeyboardEvent"in window&&"key"in window.KeyboardEvent.prototype)){return false}var e=window.KeyboardEvent.prototype;var n=Object.getOwnPropertyDescriptor(e,"key").get;return n.toString().match(/\[native code\]/)}function q(e){e="[jQuery Terminal] "+e;if(console&&console.warn){console.warn(e)}else{setTimeout(function(){throw new Error("WARN: "+e)},0)}}var W={};e.jrpc=function(n,t,r,i,o){var a;if(e.isPlainObject(n)){a=n}else{a={url:n,method:t,params:r,success:i,error:o}}function s(n){return e.isNumeric(n.id)&&(typeof n.result!=="undefined"||typeof n.error!=="undefined")}W[a.url]=W[a.url]||0;var l={jsonrpc:"2.0",method:a.method,params:a.params,id:++W[a.url]};return e.ajax({url:a.url,beforeSend:function n(t,r){if(e.isFunction(a.request)){a.request(t,l)}r.data=JSON.stringify(l)},success:function n(t,r,i){var o=i.getResponseHeader("Content-Type");if(!o.match(/(application|text)\/json/)){q("Response Content-Type is neither application/json"+" nor text/json")}var l;try{l=JSON.parse(t)}catch(e){if(a.error){a.error(i,"Invalid JSON",e)}else{throw new Error("Invalid JSON")}return}if(e.isFunction(a.response)){a.response(i,l)}if(s(l)||a.method==="system.describe"){a.success(l,r,i)}else if(a.error){a.error(i,"Invalid JSON-RPC")}else{throw new Error("Invalid JSON-RPC")}},error:a.error,contentType:"application/json",dataType:"text",async:true,cache:false,type:"POST"})};function U(){var n=e('<div class="terminal temp"><div class="cmd"><span cla'+'ss="prompt">&nbsp;</span></div></div>').appendTo("body");var t=n.find("span")[0].getBoundingClientRect();var r={width:t.width,height:t.height};n.remove();return r}function K(e,n){var t=e.find(".terminal-fill").width();var r=Math.floor(t/n.width);return r||1e3}function J(e,n){return Math.floor(e.find(".terminal-fill").height()/n.height)}function Y(n,t){var r=e("<div>"+t.replace(/\n/,"<br/>")+"<div>");var i;n.append(r);if(document.body.createTextRange){i=document.body.createTextRange();i.moveToElementText(r[0]);i.select()}else if(window.getSelection){var o=window.getSelection();if(o.setBaseAndExtent){o.setBaseAndExtent(r[0],0,r[0],1)}else if(document.createRange){i=document.createRange();i.selectNodeContents(r[0]);o.removeAllRanges();o.addRange(i)}}try{document.execCommand("copy")}catch(e){}r.remove()}var G=!e.terminal.version.match(/^\{\{/);var X="Copyright (c) 2011-2017 Jakub Jankiewicz <http://jcubic"+".pl/me>";var V=G?" v. "+e.terminal.version:" ";var Q=new RegExp(" {"+V.length+"}$");var Z="jQuery Terminal Emulator"+(G?V:"");var ee=[["jQuery Terminal","(c) 2011-2017 jcubic"],[Z,X.replace(/^Copyright | *<.*>/g,"")],[Z,X.replace(/^Copyright /,"")],[" _______ ________ __"," / / _ /_ ____________ _/__ ___/______________ _____ / /"," __ / / // / // / _ / _/ // / / / _ / _/ / / \\/ / _ \\/ /","/ / / // / // / ___/ // // / / / ___/ // / / / / /\\ / // / /__","\\___/____ \\\\__/____/_/ \\__ / /_/____/_//_/_/_/ /_/ \\/\\__\\_\\___/"," \\/ /____/ ".replace(Q," ")+V,X],[" __ _____ ________ "+" __"," / // _ /__ __ _____ ___ __ _/__ ___/__ ___ ______ __ __ __ ___ "+" / /"," __ / // // // // // _ // _// // / / // _ // _// // // \\/ // _ "+"\\/ /","/ / // // // // // ___// / / // / / // ___// / / / / // // /\\ // // "+"/ /__","\\___//____ \\\\___//____//_/ _\\_ / /_//____//_/ /_/ /_//_//_/ /_/ \\"+"__\\_\\___/",(" \\/ /____/ "+" ").replace(Q,"")+V,X]];e.terminal.defaults={prompt:"> ",history:true,exit:true,clear:true,enabled:true,maskChar:"*",wrap:true,checkArity:true,raw:false,exceptionHandler:null,pauseEvents:true,softPause:false,memory:false,cancelableAjax:true,processArguments:true,linksNoReferrer:false,processRPCResponse:null,completionEscape:true,convertLinks:true,extra:{},historySize:60,historyState:false,importHistory:false,historyFilter:null,echoCommand:true,scrollOnEcho:true,login:null,outputLimit:-1,formatters:[e.terminal.nested_formatting],onAjaxError:null,scrollBottomOffset:20,wordAutocomplete:true,clickTimeout:200,request:e.noop,response:e.noop,describe:"procs",onRPCError:null,completion:false,onInit:e.noop,onClear:e.noop,onBlur:e.noop,onFocus:e.noop,onTerminalChange:e.noop,onExit:e.noop,onPush:e.noop,onPop:e.noop,keypress:e.noop,keydown:e.noop,strings:{comletionParameters:"From version 1.0.0 completion function need to"+" have two arguments",wrongPasswordTryAgain:"Wrong password try again!",wrongPassword:"Wrong password!",ajaxAbortError:"Error while aborting ajax call!",wrongArity:"Wrong number of arguments. Function '%s' expects %s got"+" %s!",commandNotFound:"Command '%s' Not Found!",oneRPCWithIgnore:"You can use only one rpc with describe == false "+"or rpc without system.describe",oneInterpreterFunction:"You can't use more than one function (rpc "+"without system.describe or with option describe == false count"+"s as one)",loginFunctionMissing:"You didn't specify a login function",noTokenError:"Access denied (no token)",serverResponse:"Server responded",wrongGreetings:"Wrong value of greetings parameter",notWhileLogin:"You can't call `%s' function while in login",loginIsNotAFunction:"Authenticate must be a function",canExitError:"You can't exit from main interpreter",invalidCompletion:"Invalid completion",invalidSelector:'Sorry, but terminal said that "%s" is not valid '+"selector!",invalidTerminalId:"Invalid Terminal ID",login:"login",password:"password",recursiveCall:"Recursive call detected, skip",notAString:"%s function: argument is not a string",redrawError:"Internal error, wrong position in cmd redraw",invalidStrings:"Command %s have unclosed strings"}};var ne=[];var te=new g;var re=[];var ie;var oe=false;var ae=true;var se=true;e.fn.terminal=function(r,o){function a(n){if(n){this.storage={}}this.set=function(t,r){if(n){this.storage[t]=r}else{e.Storage.set(t,r)}};this.get=function(t){if(n){return this.storage[t]}else{return e.Storage.get(t)}};this.remove=function(t){if(n){delete this.storage[t]}else{e.Storage.remove(t)}}}function s(n){if(e.terminal.unclosed_strings(n)){var t=e.terminal.escape_brackets(n);throw new Error(sprintf(ue().invalidStrings,"`"+t+"`"))}else if(e.isFunction(je.processArguments)){return T(n,je.processArguments)}else if(je.processArguments){return e.terminal.parse_command(n)}else{return e.terminal.split_command(n)}}function l(n){if(typeof n==="string"){pe.echo(n)}else if(n instanceof Array){pe.echo(e.map(n,function(e){return JSON.stringify(e)}).join(" "))}else if(typeof n==="object"){pe.echo(JSON.stringify(n))}else{pe.echo(n)}}function f(n){var t=/(.*):([0-9]+):([0-9]+)$/;var r=n.match(t);if(r){pe.pause(je.softPause);e.get(r[1],function(n){var t=location.href.replace(/[^/]+$/,"");var i=r[1].replace(t,"");pe.echo("[[b;white;]"+i+"]");var o=n.split("\n");var a=+r[2]-1;pe.echo(o.slice(a-2,a+3).map(function(n,t){if(t===2){n="[[;#f00;]"+e.terminal.escape_brackets(n)+"]"}return"["+(a+t)+"]: "+n}).join("\n")).resume()},"text")}}function c(n){if(e.isFunction(je.onRPCError)){je.onRPCError.call(pe,n)}else{pe.error("&#91;RPC&#93; "+n.message);if(n.error&&n.error.message){n=n.error;var t="\t"+n.message;if(n.file){t+=' in file "'+n.file.replace(/.*\//,"")+'"'}if(n.at){t+=" at line "+n.at}pe.error(t)}}}function u(n,t){var r=function(t,r){pe.pause(je.softPause);e.jrpc({url:n,method:t,params:r,request:function(e,n){try{je.request.apply(pe,e,n,pe)}catch(e){w(e,"USER")}},response:function(e,n){try{je.response.apply(pe,e,n,pe)}catch(e){w(e,"USER")}},success:function n(t){if(t.error){c(t.error)}else if(e.isFunction(je.processRPCResponse)){je.processRPCResponse.call(pe,t.result,pe)}else{l(t.result)}pe.resume()},error:m})};return function(e,n){if(e===""){return}try{e=s(e)}catch(e){w(e,"TERMINAL (get_processed_command)");return}if(!t||e.name==="help"){r(e.name,e.args)}else{var i=n.token();if(i){r(e.name,[i].concat(e.args))}else{n.error("&#91;AUTH&#93; "+ue().noTokenError)}}}}function p(t,r,i,o){return function(a,l){if(a===""){return}var f;try{f=s(a)}catch(n){if(e.isFunction(je.exception)){je.exception(n,pe)}else{pe.error(n.toString())}return}var c=t[f.name];var u=e.type(c);if(u==="function"){if(r&&c.length!==f.args.length){pe.error("&#91;Arity&#93; "+sprintf(ue().wrongArity,f.name,c.length,f.args.length))}else{return c.apply(pe,f.args)}}else if(u==="object"||u==="string"){var m=[];if(u==="object"){m=Object.keys(c);c=p(c,r,i)}l.push(c,{prompt:f.name+"> ",name:f.name,completion:u==="object"?m:n})}else if(e.isFunction(o)){o(a,pe)}else if(e.isFunction(je.onCommandNotFound)){je.onCommandNotFound.call(pe,a,pe)}else{l.error(sprintf(ue().commandNotFound,f.name))}}}function m(n,t,r){pe.resume();if(e.isFunction(je.onAjaxError)){je.onAjaxError.call(pe,n,t,r)}else if(t!=="abort"){pe.error("&#91;AJAX&#93; "+t+" - "+ue().serverResponse+":\n"+e.terminal.escape_brackets(n.responseText))}}function h(n,t,r){function i(n){if(n.error){c(n.error)}else if(e.isFunction(je.processRPCResponse)){je.processRPCResponse.call(pe,n.result,pe)}else{l(n.result)}pe.resume()}function o(e,n){try{je.request.call(pe,e,n,pe)}catch(e){w(e,"USER")}}function a(e,n){try{je.response.call(pe,e,n,pe)}catch(e){w(e,"USER")}}function s(s){var l=s;if(je.describe!==""){je.describe.split(".").forEach(function(e){l=l[e]})}if(l&&l.length){var f={};e.each(l,function(r,s){f[s.name]=function(){var r=t&&s.name!=="help";var l=Array.prototype.slice.call(arguments);var f=l.length+(r?1:0);if(je.checkArity&&s.params&&s.params.length!==f){pe.error("&#91;Arity&#93; "+sprintf(ue().wrongArity,s.name,s.params.length,f))}else{pe.pause(je.softPause);if(r){var c=pe.token(true);if(c){l=[c].concat(l)}else{pe.error("&#91;AUTH&#93; "+ue().noTokenError)}}e.jrpc({url:n,method:s.name,params:l,request:o,response:a,success:i,error:m})}}});f.help=f.help||function(n){if(typeof n==="undefined"){var t=s.procs.map(function(e){return e.name}).join(", ")+", help";pe.echo("Available commands: "+t)}else{var r=false;e.each(l,function(e,t){if(t.name===n){r=true;var i="";i+="[[bu;#fff;]"+t.name+"]";if(t.params){i+=" "+t.params.join(" ")}if(t.help){i+="\n"+t.help}pe.echo(i);return false}});if(!r){if(n==="help"){pe.echo("[[bu;#fff;]help] [method]\ndisplay help "+"for the method or list of methods if not"+" specified")}else{var i="Method `"+n+"' not found ";pe.error(i)}}}};r(f)}else{r(null)}}return e.jrpc({url:n,method:"system.describe",params:[],success:s,request:o,response:a,error:function e(){r(null)}})}function v(n,t,r){r=r||e.noop;var i=e.type(n);var o;var a={};var s=0;var l;if(i==="array"){o={};(function n(r,i){if(r.length){var a=r[0];var f=r.slice(1);var c=e.type(a);if(c==="string"){pe.pause(je.softPause);if(je.describe===false){if(++s===1){l=u(a,t)}else{pe.error(ue().oneRPCWithIgnore)}n(f,i)}else{h(a,t,function(r){if(r){e.extend(o,r)}else if(++s===1){l=u(a,t)}else{pe.error(ue().oneRPCWithIgnore)}pe.resume();n(f,i)})}}else if(c==="function"){if(l){pe.error(ue().oneInterpreterFunction)}else{l=a}n(f,i)}else if(c==="object"){e.extend(o,a);n(f,i)}}else{i()}})(n,function(){r({interpreter:p(o,false,t,l.bind(pe)),completion:Object.keys(o)})})}else if(i==="string"){if(je.ignoreSystemDescribe){o={interpreter:u(n,t)};if(e.isArray(je.completion)){o.completion=je.completion}r(o)}else{pe.pause(je.softPause);h(n,t,function(e){if(e){a.interpreter=p(e,false,t);a.completion=Object.keys(e)}else{a.interpreter=u(n,t)}r(a);pe.resume()})}}else if(i==="object"){r({interpreter:p(n,je.checkArity),completion:Object.keys(n)})}else{if(i==="undefined"){n=e.noop}else if(i!=="function"){throw new Error(i+" is invalid interpreter value")}r({interpreter:n,completion:je.completion})}}function g(n,t){var r=e.type(t)==="boolean"?"login":t;return function(t,i,o){pe.pause(je.softPause);e.jrpc({url:n,method:r,params:[t,i],request:function(e,n){try{je.request.call(pe,e,n,pe)}catch(e){w(e,"USER")}},response:function(e,n){try{je.response.call(pe,e,n,pe)}catch(e){w(e,"USER")}},success:function e(n){if(!n.error&&n.result){o(n.result)}else{o(null)}pe.resume()},error:m})}}function _(e){if(typeof e==="string"){return e}else if(typeof e.fileName==="string"){return e.fileName+": "+e.message}else{return e.message}}function w(n,t){if(e.isFunction(je.exceptionHandler)){je.exceptionHandler.call(pe,n,t)}else{pe.exception(n,t)}}function b(){var e;if(me.prop){e=me.prop("scrollHeight")}else{e=me.attr("scrollHeight")}me.scrollTop(e)}function E(n,t){try{if(e.isFunction(t)){t.call(pe,e.noop,pe)}else if(typeof t!=="string"){var r=n+" must be string or function";throw r}}catch(e){w(e,n.toUpperCase());return false}return true}var C=[];var R=1;function A(t,r){if(je.convertLinks&&!r.raw){t=t.replace(j,"[[!;;]$1]").replace(O,"[[!;;]$1]")}var i=e.terminal.defaults.formatters;var o,a;if(!r.raw){if(r.formatters){for(o=0;o<i.length;++o){try{if(typeof i[o]==="function"){var s=i[o](t);if(typeof s==="string"){t=s}}}catch(n){if(e.isFunction(je.exceptionHandler)){je.exceptionHandler.call(pe,n,"FORMATTERS")}else{alert("formatting error at formatters["+o+"]\n"+(n.stack?n.stack:n))}}}}t=e.terminal.encode(t)}C.push(R);if(!r.raw&&(t.length>_e||t.match(/\n/))&&(je.wrap===true&&r.wrap===n||je.wrap===false&&r.wrap===true)){var l=r.keepWords;var f=e.terminal.split_equal(t,_e,l);for(o=0,a=f.length;o<a;++o){if(f[o]===""||f[o]==="\r"){C.push("<span></span>")}else if(r.raw){C.push(f[o])}else{C.push(e.terminal.format(f[o],{linksNoReferrer:je.linksNoReferrer}))}}}else if(!r.raw){t=e.terminal.normalize(t);t=e.terminal.format(t,{linksNoReferrer:je.linksNoReferrer});t.split(/\n/).forEach(function(e){C.push(e)})}else{C.push(t)}C.push(r.finalize)}function S(n,t){try{var r=e.extend({exec:true,raw:false,finalize:e.noop},t||{});var i=e.type(n)==="function"?n():n;i=e.type(i)==="string"?i:String(i);if(i!==""){i=e.map(i.split($),function(n){if(n&&n.match($)&&!e.terminal.is_formatting(n)){n=n.replace(/^\[\[|\]\]$/g,"");if(r.exec){if(he&&he.command===n){pe.error(ue().recursiveCall)}else{e.terminal.extended_command(pe,n)}}return""}else{return n}}).join("");if(i!==""){A(i,r)}}}catch(n){C=[];if(e.isFunction(je.exceptionHandler)){je.exceptionHandler.call(pe,n,"TERMINAL")}else{alert("[Internal Exception(process_line)]:"+_(n)+"\n"+n.stack)}}}function F(){De.resize(_e);var n=ge.empty().detach();var t=[];if(je.outputLimit>=0){var r;if(je.outputLimit===0){r=pe.rows()}else{r=je.outputLimit}ve.forEach(function(n){var r=e.type(n[0])==="function"?n[0]():n[0];r=e.type(r)==="string"?r:String(r);if(r.length>_e){var i=n[1];var o=e.terminal.split_equal(r,_e,i.keepWords);t=t.concat(o.map(function(e){return[e,i]}))}else{t.push(n)}});t=t.slice(t.length-r-1)}else{t=ve}try{C=[];e.each(ve,function(e,n){S.apply(null,n)});De.before(n);pe.flush()}catch(n){if(e.isFunction(je.exceptionHandler)){je.exceptionHandler.call(pe,n,"TERMINAL (redraw)")}else{alert("Exception in redraw\n"+n.stack)}}}function z(){if(je.greetings===n){pe.echo(pe.signature,{finalize:d})}else if(je.greetings){var e=typeof je.greetings;if(e==="string"){pe.echo(je.greetings)}else if(e==="function"){je.greetings.call(pe,pe.echo)}else{pe.error(ue().wrongGreetings)}}}function I(n){if(typeof n==="undefined"){n=pe.get_command()}var t=De.prompt();var r=De.mask();switch(typeof r){case"string":n=n.replace(/./g,r);break;case"boolean":if(r){n=n.replace(/./g,je.maskChar)}else{n=e.terminal.escape_formatting(n)}break}var i={finalize:function e(n){d(n.addClass("command"))}};if(e.isFunction(t)){t(function(e){pe.echo(e+n,i)})}else{pe.echo(t+n,i)}}function P(e){var n=te.get()[e[0]];if(!n){throw new Error(ue().invalidTerminalId)}var t=e[1];if(re[t]){n.import_view(re[t])}else{oe=false;var r=e[2];if(r){n.exec(r).done(function(){oe=true;re[t]=n.export_view()})}}}function N(){if(oe){ae=false;location.hash="#"+JSON.stringify(ie);setTimeout(function(){ae=true},100)}}var H=true;var D=[];function B(t,r,i){if(H){H=false;if(je.historyState||je.execHash&&i){if(!re.length){pe.save_state()}else{pe.save_state(null)}}}function o(){if(!i){oe=true;if(je.historyState){pe.save_state(t,false)}oe=c}f.resolve();if(e.isFunction(je.onAfterCommand)){je.onAfterCommand.call(pe,pe,t)}}function a(e){if(e&&p===ve.length-1){l(e)}o();pe.resume()}try{if(e.isFunction(je.onBeforeCommand)){if(je.onBeforeCommand.call(pe,pe,t)===false){return}}if(!i){he=e.terminal.split_command(t)}if(!V()){if(i&&(e.isFunction(je.historyFilter)&&je.historyFilter(t)||t.match(je.historyFilter))){De.history().append(t)}}var s=He.top();if(!r&&je.echoCommand){I(t)}var f=new e.Deferred;var c=oe;if(t.match(/^\s*login\s*$/)&&pe.token(true)){if(pe.level()>1){pe.logout(true)}else{pe.logout()}o()}else if(je.exit&&t.match(/^\s*exit\s*$/)&&!Ae){var u=pe.level();if(u===1&&pe.get_token()||u>1){if(pe.get_token(true)){pe.set_token(n,true)}pe.pop()}o()}else if(je.clear&&t.match(/^\s*clear\s*$/)&&!Ae){pe.clear();o()}else{var p=ve.length-1;var m=s.interpreter.call(pe,t,pe);if(m!==n){pe.pause(je.softPause);if(m.then){m.then(a)}else{return e.when(m).done(a)}}else if(Ne){D.push(function(){o()})}else{o()}}return f.promise()}catch(e){w(e,"USER");pe.resume();if(!je.exceptionHandler){throw e}}}function M(){if(e.isFunction(je.onBeforeLogout)){try{if(je.onBeforeLogout.call(pe,pe)===false){return}}catch(e){w(e,"onBeforeLogout")}}q();if(e.isFunction(je.onAfterLogout)){try{je.onAfterLogout.call(pe,pe)}catch(e){w(e,"onAfterlogout")}}pe.login(je.login,true,X)}function q(){var e=pe.prefix_name(true)+"_";ze.remove(e+"token");ze.remove(e+"login")}function W(n){var t=pe.prefix_name()+"_interpreters";var r=ze.get(t);if(r){r=JSON.parse(r)}else{r=[]}if(e.inArray(n,r)===-1){r.push(n);ze.set(t,JSON.stringify(r))}}function Y(n){var t=He.top();var r=pe.prefix_name(true);if(!V()){W(r)}De.name(r);if(e.isFunction(t.prompt)){De.prompt(function(e){t.prompt.call(pe,e,pe)})}else{De.prompt(t.prompt)}if(e.isPlainObject(t.keymap)){De.keymap(e.omap(t.keymap,function(e,n){return function(){var e=[].slice.call(arguments);try{return n.apply(pe,e)}catch(e){w(e,"USER KEYMAP");if(!je.exceptionHandler){throw e}}}}))}De.set("");Te.resolve();if(!n&&e.isFunction(t.onStart)){t.onStart.call(pe,pe)}}function G(){if(ae&&je.execHash){try{if(location.hash){var e=location.hash.replace(/^#/,"");ie=JSON.parse(decodeURIComponent(e))}else{ie=[]}if(ie.length){P(ie[ie.length-1])}else if(re[0]){pe.import_view(re[0])}}catch(e){w(e,"TERMINAL")}}}function X(){Y();z();if(ve.length){F()}var n=false;if(e.isFunction(je.onInit)){Se=function(){n=true};try{je.onInit.call(pe,pe)}catch(e){w(e,"OnInit")}finally{Se=e.noop;if(!n&&pe.enabled()){pe.resume()}}}if(se){se=false;e(window).on("hashchange",G)}}function V(){return Ae||De.mask()!==false}function Q(e,n){if(!n.length){return""}var t=false;e:for(var r=e.length;r<n[0].length;++r){for(var i=1;i<n.length;++i){if(n[0].charAt(r)!==n[i].charAt(r)){break e}}t=true}if(t){return n[0].slice(0,r)}return""}function Z(t){var r,i=He.top();if(e.isFunction(i.keydown)){r=i.keydown.call(pe,t,pe);if(r!==n){return r}}else if(e.isFunction(je.keydown)){r=je.keydown.call(pe,t,pe);if(r!==n){return r}}}var le={"CTRL+D":function(e,t){if(!Ae){if(De.get()===""){if(He.size()>1||je.login!==n){pe.pop("")}else{pe.resume();pe.echo("")}}else{t()}}return false},"CTRL+L":function(){pe.clear()},TAB:function(t,r){var i=He.top(),o;if(je.completion&&e.type(je.completion)!=="boolean"&&i.completion===n){o=je.completion}else{o=i.completion}if(o==="settings"){o=je.completion}if(o){switch(e.type(o)){case"function":var a=pe.before_cursor(je.wordAutocomplete);if(o.length===3){var s=new Error(ue().comletionParameters);w(s,"USER");return false}o.call(pe,a,function(e){pe.complete(e,{echo:true,word:je.wordAutocomplete,escape:je.completionEscape})});break;case"array":pe.complete(o,{echo:true,word:je.wordAutocomplete,escape:je.completionEscape});break;default:throw new Error(ue().invalidCompletion)}}else{r()}return false},"CTRL+V":function(e,n){n(e);pe.oneTime(200,function(){b()});return true},"CTRL+TAB":function(){if(te.length()>1){pe.focus(false);return false}},PAGEDOWN:function(){pe.scroll(pe.height())},PAGEUP:function(){pe.scroll(-pe.height())}};function fe(t){var r,i;if(pe.enabled()){if(!pe.paused()){r=Z(t);if(r!==n){return r}if(t.which!==9){de=0}pe.attr({scrollTop:pe.attr("scrollHeight")})}else{if(!je.pauseEvents){r=Z(t);if(r!==n){return r}}if(t.which===68&&t.ctrlKey){if(je.pauseEvents){r=Z(t);if(r!==n){return r}}if(ne.length){for(i=ne.length;i--;){var o=ne[i];if(o.readyState!==4){try{o.abort()}catch(n){if(e.isFunction(je.exceptionHandler)){je.exceptionHandler.call(pe,t,"AJAX ABORT")}else{pe.error(ue().ajaxAbortError)}}}}ne=[]}pe.resume()}return false}}}function ce(e){return function(n){e.add(n)}}function ue(){return e.extend({},e.terminal.defaults.strings,je.strings)}var pe=this;if(this.length>1){return this.each(function(){e.fn.terminal.call(e(this),r,e.extend({name:pe.selector},o))})}if(pe.data("terminal")){return pe.data("terminal")}if(pe.length===0){throw new Error(sprintf(ue().invalidSelector,pe.selector))}var me;var he;var de=0;var ve=[];var ge;var ye=te.length();var _e;var we;var be;var ke=new y;var xe=new t;var Te=new t;var Ee=ce(Te);var Ce=U();var Re=ce(xe);var Ae=false;var Se=e.noop;var Fe,Le;var Oe=[];var je=e.extend({},e.terminal.defaults,{name:pe.selector},o||{});var ze=new a(je.memory);var Ie=je.enabled,Pe=false;var Ne=false;var $e=true;var He;var De;var Be;var Me;var qe;e.extend(pe,e.omap({id:function(){return ye},clear:function(){ge.html("");ve=[];try{je.onClear.call(pe,pe)}catch(e){w(e,"onClear")}pe.attr({scrollTop:0});return pe},export_view:function(){var n={};if(e.isFunction(je.onExport)){try{n=je.onExport.call(pe)}catch(e){w(e,"onExport")}}return e.extend({},{focus:Ie,mask:De.mask(),prompt:pe.get_prompt(),command:pe.get_command(),position:De.position(),lines:i(ve),interpreters:He.clone(),history:De.history().data},n)},import_view:function(n){if(Ae){throw new Error(sprintf(ue().notWhileLogin,"import_view"))}if(e.isFunction(je.onImport)){try{je.onImport.call(pe,n)}catch(e){w(e,"onImport")}}Ee(function e(){pe.set_prompt(n.prompt);pe.set_command(n.command);De.position(n.position);De.mask(n.mask);if(n.focus){pe.focus()}ve=i(n.lines);He=n.interpreters;if(je.importHistory){De.history().set(n.history)}F()});return pe},save_state:function(t,r,i){if(typeof i!=="undefined"){re[i]=pe.export_view()}else{re.push(pe.export_view())}if(!e.isArray(ie)){ie=[]}if(t!==n&&!r){var o=[ye,re.length-1,t];ie.push(o);N()}},exec:function(n,t,r){var i=r||new e.Deferred;Re(function r(){if(e.isArray(n)){(function e(){var r=n.shift();if(r){pe.exec(r,t).done(e)}else{i.resolve()}})()}else if(Ne){Oe.push([n,t,i])}else{B(n,t,true).done(function(){i.resolve(pe)})}});return i.promise()},autologin:function(e,n,t){pe.trigger("terminal.autologin",[e,n,t]);return pe},login:function(t,r,i,o){ke.push([].slice.call(arguments));if(Ae){throw new Error(sprintf(ue().notWhileLogin,"login"))}if(!e.isFunction(t)){throw new Error(ue().loginIsNotAFunction)}Ae=true;if(pe.token()&&pe.level()===1&&!$e){Ae=false;pe.logout(true)}else if(pe.token(true)&&pe.login_name(true)){Ae=false;if(e.isFunction(i)){i()}return pe}if(je.history){De.history().disable()}var a=pe.level();function s(t,s,l){if(s){while(pe.level()>a){pe.pop(n,true)}if(je.history){De.history().enable()}var f=pe.prefix_name(true)+"_";ze.set(f+"token",s);ze.set(f+"login",t);Ae=false;if(e.isFunction(i)){i()}}else{if(r){if(!l){pe.error(ue().wrongPasswordTryAgain)}pe.pop(n,true).set_mask(false)}else{Ae=false;if(!l){pe.error(ue().wrongPassword)}pe.pop(n,true).pop(n,true)}if(e.isFunction(o)){o()}}pe.off("terminal.autologin")}pe.on("terminal.autologin",function(e,n,t,r){s(n,t,r)});pe.push(function(e){pe.set_mask(je.maskChar).push(function(n){try{t.call(pe,e,n,function(n,t){s(e,n,t)})}catch(e){w(e,"AUTH")}},{prompt:ue().password+": ",name:"password"})},{prompt:ue().login+": ",name:"login"});return pe},settings:function(){return je},before_cursor:function(e){var n=De.position();var t=De.get().substring(0,n);var r=t.split(" ");var i;if(e){if(r.length===1){i=r[0]}else{var o=t.match(/(\\?")/g);var a=o?o.filter(function(e){return!e.match(/^\\/)}).length:0;o=t.match(/'/g);var s=o?o.length:0;if(s%2===1){i=t.match(/('[^']*)$/)[0]}else if(a%2===1){i=t.match(/("(?:[^"]|\\")*)$/)[0]}else{i=r[r.length-1];for(Ke=r.length-1;Ke>0;Ke--){var l=r[Ke-1];if(l[l.length-1]==="\\"){i=r[Ke-1]+" "+i}else{break}}}}}else{i=t}return i},complete:function(n,t){t=e.extend({word:true,echo:false,escape:true},t||{});var r=pe.before_cursor(t.word).replace(/\\"/g,'"');var i=false;if(t.word){if(r.match(/^"/)){i='"'}else if(r.match(/^'/)){i="'"}if(i){r=r.replace(/^["']/,"")}}n=n.slice();if(je.clear&&e.inArray("clear",n)===-1){n.push("clear")}if(je.exit&&e.inArray("exit",n)===-1){n.push("exit")}if(de%2===0){be=pe.before_cursor(t.word)}else{var o=pe.before_cursor(t.word);if(o!==be){return}}var a=e.terminal.escape_regex(r);if(t.escape){a=a.replace(/(\\+)(["'() ])/g,function(e,n,t){if(t.match(/[()]/)){return n+"\\?\\"+t}else{return n+"?"+t}})}var s=new RegExp("^"+a);var l=[];for(var f=n.length;f--;){if(s.test(n[f])){var c=n[f];if(i==='"'){c=c.replace(/"/g,'\\"')}if(!i&&t.escape){c=c.replace(/(["'() ])/g,"\\$1")}l.push(c)}}function u(e,n){var t=pe.get_command();var r=pe.get_position();var o=new RegExp(e+"$");var a=t.substring(0,r).replace(o,"");var s=t.substring(r);var l=n+(i||"");pe.set_command(a+l+s);pe.set_position((a+l).length)}if(l.length===1){if(t.escape){u(a,l[0])}else{pe.insert(l[0].replace(s,"")+(i||""))}be=pe.before_cursor(t.word);return true}else if(l.length>1){if(++de>=2){de=0;if(t.echo){I();var p=l.reverse().join("\t");pe.echo(e.terminal.escape_brackets(p),{keepWords:true});return true}}else{var m=Q(r,l);if(m){u(r,m);be=pe.before_cursor(t.word);return true}}}},commands:function(){return He.top().interpreter},set_interpreter:function(n,t){function r(){pe.pause(je.softPause);v(n,!!t,function(n){pe.resume();var t=He.top();e.extend(t,n);Y(true)})}if(e.type(n)==="string"&&t){pe.login(g(n,t),true,r)}else{r()}return pe},greetings:function(){z();return pe},paused:function(){return Ne},pause:function(n){Re(function t(){Se();Ne=true;De.disable(n||k);if(!n){De.find(".prompt").hidden()}if(e.isFunction(je.onPause)){je.onPause.call(pe)}});return pe},resume:function(){Re(function n(){Ne=false;if(Ie&&te.front()===pe){De.enable()}De.find(".prompt").visible();var t=Oe;Oe=[];for(var r=0;r<t.length;++r){pe.exec.apply(pe,t[r])}pe.trigger("resume");var i=D.shift();if(i){i()}b();if(e.isFunction(je.onResume)){je.onResume.call(pe)}});return pe},cols:function(){if(je.numChars){return je.numChars}if(typeof _e==="undefined"){_e=K(pe,Ce)}return _e},rows:function(){if(je.numRows){return je.numRows}if(typeof we==="undefined"){we=J(pe,Ce)}return we},history:function(){return De.history()},history_state:function(e){function n(){je.historyState=true;if(!re.length){pe.save_state()}else if(te.length()>1){pe.save_state(null)}}if(e){if(typeof window.setImmediate==="undefined"){setTimeout(n,0)}else{setImmediate(n)}}else{je.historyState=false}return pe},clear_history_state:function(){ie=[];re=[];return pe},next:function(){if(te.length()===1){return pe}else{te.front().disable();var n=te.rotate().enable();var t=n.offset().top-50;e("html,body").animate({scrollTop:t},500);try{je.onTerminalChange.call(n,n)}catch(e){w(e,"onTerminalChange")}return n}},focus:function(e,n){Re(function t(){var r;if(te.length()===1){if(e===false){try{r=je.onBlur.call(pe,pe);if(!n&&r!==false||n){pe.disable()}}catch(e){w(e,"onBlur")}}else{try{r=je.onFocus.call(pe,pe);if(!n&&r!==false||n){pe.enable()}}catch(e){w(e,"onFocus")}}}else if(e===false){pe.next()}else{var i=te.front();if(i!==pe){te.forEach(function(e){if(e!==pe&&e.enabled()){e.disable()}});if(!n){try{je.onTerminalChange.call(pe,pe)}catch(e){w(e,"onTerminalChange")}}}te.set(pe);pe.enable()}});return pe},freeze:function(e){Ee(function n(){if(e){pe.disable();Pe=true}else{Pe=false;pe.enable()}})},frozen:function(){return Pe},enable:function(){if(!Ie&&!Pe){if(_e===n){pe.resize()}Re(function e(){if(!pe.paused()){De.enable()}Ie=true})}return pe},disable:function(){Re(function e(){Ie=false;De.disable()});return pe},enabled:function(){return Ie},signature:function(){var e=pe.cols();for(var n=ee.length;n--;){var t=ee[n].map(function(e){return e.length});if(Math.max.apply(null,t)<=e){return ee[n].join("\n")+"\n"}}return""},version:function(){return e.terminal.version},cmd:function(){return De},get_command:function(){return De.get()},set_command:function(e){Ee(function n(){De.set(e)});return pe},set_position:function(e,n){Ee(function t(){De.position(e,n)});return pe},get_position:function(){return De.position()},insert:function(e,n){if(typeof e==="string"){Ee(function t(){var r=pe.is_bottom();De.insert(e,n);if(je.scrollOnEcho||r){b()}});return pe}else{throw new Error(sprintf(ue().notAString,"insert"))}},set_prompt:function(n){Ee(function t(){if(E("prompt",n)){if(e.isFunction(n)){De.prompt(function(e){n(e,pe)})}else{De.prompt(n)}He.top().prompt=n}});return pe},get_prompt:function(){return He.top().prompt},set_mask:function(e){Ee(function n(){De.mask(e===true?je.maskChar:e)});return pe},get_output:function(n){if(n){return ve}else{return e.map(ve,function(n){return e.isFunction(n[0])?n[0]():n[0]}).join("\n")}},resize:function(n,t){if(!pe.is(":visible")){pe.stopTime("resize");pe.oneTime(500,"resize",function(){pe.resize(n,t)})}else{if(n&&t){pe.width(n);pe.height(t)}n=pe.width();t=pe.height();if(typeof je.numChars!=="undefined"&&typeof je.numRows!=="undefined"){return}Ce=U();var r=K(pe,Ce);var i=J(pe,Ce);if(r!==_e||i!==we){_e=r;we=i;De.resize(_e);F();var o=He.top();if(e.isFunction(o.resize)){o.resize.call(pe,pe)}else if(e.isFunction(je.onResize)){je.onResize.call(pe,pe)}b()}}return pe},flush:function(){try{var n=pe.is_bottom();var t;e.each(C,function(n,r){if(r===R){t=e("<div></div>")}else if(e.isFunction(r)){t.appendTo(ge);r(t)}else{e("<div/>").html(r).appendTo(t).width("100%")}});if(je.outputLimit>=0){var r;if(je.outputLimit===0){r=pe.rows()}else{r=je.outputLimit}var i=ge.find("div div");if(i.length+1>r){var o=i.length-r+1;var a=i.slice(0,o);var s=a.parent();a.remove();s.each(function(){var n=e(this);if(n.is(":empty")){n.remove()}})}}if(je.scrollOnEcho||n){b()}C=[]}catch(n){if(e.isFunction(je.exceptionHandler)){je.exceptionHandler.call(pe,n,"TERMINAL (Flush)")}else{alert("[Flush] "+_(n)+"\n"+n.stack)}}return pe},update:function(e,n){Ee(function t(){if(e<0){e=ve.length+e}if(!ve[e]){pe.error("Invalid line number "+e)}else{if(n===null){ve.splice(e,1)}else{ve[e][0]=n}F()}});return pe},last_index:function(){return ve.length-1},echo:function(n,t){function r(n){try{var r=e.extend({flush:true,raw:je.raw,finalize:e.noop,keepWords:false,formatters:true},t||{});if(r.raw){(function(e){r.finalize=function(n){n.addClass("raw");e(n)}})(r.finalize)}if(r.flush){if(C.length){pe.flush()}C=[]}S(n,r);ve.push([n,e.extend(r,{exec:false})]);if(r.flush){pe.flush()}}catch(n){if(e.isFunction(je.exceptionHandler)){je.exceptionHandler.call(pe,n,"TERMINAL (echo)")}else{alert("[Terminal.echo] "+_(n)+"\n"+n.stack)}}}try{if(t&&e.isFunction(t.finalize)){t.finalize(e("<div/>"))}if(e.isFunction(n.then)){e.when(n).done(r)}else{r(n)}}catch(e){w(e,"USER:echo(finalize)")}return pe},error:function(n,t){t=e.extend({},t,{raw:false,formatters:false});var r=e.terminal.escape_brackets(n).replace(/\\$/,"&#92;").replace(L,"]$1[[;;;error]");return pe.echo("[[;;;error]"+r+"]",t)},exception:function(n,t){var r=_(n);if(t){r="&#91;"+t+"&#93;: "+r}if(r){pe.error(r,{finalize:function(e){e.addClass("exception message")},keepWords:true})}if(typeof n.fileName==="string"){pe.pause(je.softPause);e.get(n.fileName,function(e){var t=n.lineNumber-1;var r=e.split("\n")[t];if(r){pe.error("["+n.lineNumber+"]: "+r)}pe.resume()},"text")}if(n.stack){var i=e.terminal.escape_brackets(n.stack);pe.echo(i.split(/\n/g).map(function(e){return"[[;;;error]"+e.replace(L,function(e){return"]"+e+"[[;;;error]"})+"]"}).join("\n"),{finalize:function(e){e.addClass("exception stack-trace")},formatters:false})}},scroll:function(e){var n;e=Math.round(e);if(me.prop){if(e>me.prop("scrollTop")&&e>0){me.prop("scrollTop",0)}n=me.prop("scrollTop");me.scrollTop(n+e)}else{if(e>me.attr("scrollTop")&&e>0){me.attr("scrollTop",0)}n=me.attr("scrollTop");me.scrollTop(n+e)}return pe},logout:function(e){if(Ae){throw new Error(sprintf(ue().notWhileLogin,"logout"))}Ee(function t(){if(e){var r=ke.pop();pe.set_token(n,true);pe.login.apply(pe,r)}else if(He.size()===1&&pe.token()){pe.logout(true)}else{while(He.size()>1){if(pe.token()){pe.logout(true).pop().pop()}else{pe.pop()}}}});return pe},token:function(e){return ze.get(pe.prefix_name(e)+"_token")},set_token:function(e,n){var t=pe.prefix_name(n)+"_token";if(typeof e==="undefined"){ze.remove(t,e)}else{ze.set(t,e)}return pe},get_token:function(e){return pe.token(e)},login_name:function(e){return ze.get(pe.prefix_name(e)+"_login")},name:function(){return He.top().name},prefix_name:function(e){var n=(je.name?je.name+"_":"")+ye;if(e&&He.size()>1){var t=He.map(function(e){return e.name||""}).slice(1).join("_");if(t){n+="_"+t}}return n},read:function(n,t){var r=new e.Deferred;pe.push(function(n){pe.pop();if(e.isFunction(t)){t(n)}r.resolve(n)},{prompt:n});return r.promise()},push:function(t,r){Re(function i(){r=r||{};var o={infiniteLogin:false};var a=e.extend({},o,r);if(!a.name&&he){a.name=he.name}if(a.prompt===n){a.prompt=(a.name||">")+" "}var s=He.top();if(s){s.mask=De.mask()}var l=Ne;function f(){je.onPush.call(pe,s,He.top(),pe);Y()}v(t,!!r.login,function(n){He.push(e.extend({},n,a));if(a.completion===true){if(e.isArray(n.completion)){He.top().completion=n.completion}else if(!n.completion){He.top().completion=false}}if(a.login){var r;var i=e.type(a.login);if(i==="function"){r=a.infiniteLogin?e.noop:pe.pop;pe.login(a.login,a.infiniteLogin,f,r)}else if(e.type(t)==="string"&&i==="string"||i==="boolean"){r=a.infiniteLogin?e.noop:pe.pop;pe.login(g(t,a.login),a.infiniteLogin,f,r)}}else{f()}if(!l&&pe.enabled()){pe.resume()}})});return pe},pop:function(t,r){if(t!==n){I(t)}var i=pe.token(true);var o;if(He.size()===1){o=He.top();if(je.login){if(!r){je.onPop.call(pe,o,null,pe)}M();if(e.isFunction(je.onExit)){try{je.onExit.call(pe,pe)}catch(e){w(e,"onExit")}}}else{pe.error(ue().canExitError)}}else{if(i){q()}var a=He.pop();o=He.top();Y();if(!r){je.onPop.call(pe,a,o)}if(Ae&&pe.get_prompt()!==ue().login+": "){Ae=false}if(e.isFunction(a.onExit)){try{a.onExit.call(pe,pe)}catch(e){w(e,"onExit")}}pe.set_mask(o.mask)}return pe},option:function(n,t){if(typeof t==="undefined"){if(typeof n==="string"){return je[n]}else if(typeof n==="object"){e.each(n,function(e,n){je[e]=n})}}else{je[n]=t}return pe},level:function(){return He.size()},reset:function(){Ee(function e(){pe.clear();while(He.size()>1){He.pop()}X()});return pe},purge:function(){Ee(function n(){var t=pe.prefix_name()+"_";var r=ze.get(t+"interpreters");if(r){e.each(JSON.parse(r),function(e,n){ze.remove(n+"_commands");ze.remove(n+"_token");ze.remove(n+"_login")})}De.purge();ze.remove(t+"interpreters")});return pe},destroy:function(){Ee(function n(){De.destroy().remove();ge.remove();We.remove();e(document).unbind(".terminal_"+pe.id());e(window).unbind(".terminal_"+pe.id());pe.unbind("click wheel mousewheel mousedown mouseup");pe.removeData("terminal").removeClass("terminal").unbind(".terminal");if(je.width){pe.css("width","")}if(je.height){pe.css("height","")}e(window).off("blur",Ge).off("focus",Ye);pe.find(".terminal-fill").remove();te.remove(ye);if(Me){Me.unobserve(pe[0])}if(qe){qe.disconnect()}pe.resizer("unbind");if(!te.length()){e(window).off("hashchange")}});return pe},scroll_to_bottom:b,is_bottom:function(){if(je.scrollBottomOffset===-1){return false}else{var n,t,r;if(pe.is("body")){n=e(document).height();t=e(window).scrollTop();r=window.innerHeight}else{n=me[0].scrollHeight;t=me.scrollTop();r=me.outerHeight()}var i=n-je.scrollBottomOffset;return t+r>i}}},function(e,n){return function(){try{return n.apply(pe,[].slice.apply(arguments))}catch(n){if(e!=="exec"&&e!=="resume"){w(n,"TERMINAL")}if(!je.exceptionHandler){throw n}}}}));if(je.ignoreSystemDescribe===true){je.describe=false}if(je.width){pe.width(je.width)}if(je.height){pe.height(je.height)}me=pe.scroll_element();e(document).bind("ajaxSend.terminal_"+pe.id(),function(e,n){ne.push(n)});var We=e('<div class="terminal-wrapper"/>').appendTo(pe);e('<div class="terminal-fill"/>').appendTo(pe);ge=e("<div>").addClass("terminal-output").attr("role","log").appendTo(We);pe.addClass("terminal");if(je.login&&e.isFunction(je.onBeforeLogin)){try{if(je.onBeforeLogin.call(pe,pe)===false){$e=false}}catch(e){w(e,"onBeforeLogin");if(!je.exceptionHandler){throw e}}}var Ue;if(typeof r==="string"){Ue=r}else if(r instanceof Array){for(var Ke=0,Je=r.length;Ke<Je;++Ke){if(typeof r[Ke]==="string"){Ue=r[Ke];break}}}if(Ue&&(typeof je.login==="string"||je.login===true)){je.login=g(Ue,je.login)}te.append(pe);pe.on("focus.terminal","textarea",function(e,n){if(!Ie&&!n){pe.enable()}});function Ye(){if(Be){pe.focus()}}function Ge(){Be=Ie;pe.disable()}function Xe(e){e=e.originalEvent;if(e.clipboardData){if(pe.enabled()){var n=e.clipboardData.items;if(n){for(var t=0;t<n.length;t++){if(n[t].type.indexOf("image")!==-1){var r=n[t].getAsFile();var i=window.URL||window.webkitURL;var o=i.createObjectURL(r);pe.echo('<img src="'+o+'"/>',{raw:true})}else if(n[t].type.indexOf("text/plain")!==-1){n[t].getAsString(pe.insert)}}}else if(e.clipboardData.getData){var a=e.clipboardData.getData("text/plain");pe.insert(a)}return false}}}e(document).on("paste.terminal_"+pe.id(),Xe);v(r,!!je.login,function(t){if(je.completion&&typeof je.completion!=="boolean"||!je.completion){t.completion="settings"}var r=e.extend({},le,je.keymap||{});He=new y(e.extend({},je.extra,{name:je.name,prompt:je.prompt,keypress:je.keypress,keydown:je.keydown,resize:je.onResize,greetings:je.greetings,mousewheel:je.mousewheel,keymap:r},t));De=e("<div/>").appendTo(We).cmd({prompt:je.prompt,history:je.memory?"memory":je.history,historyFilter:je.historyFilter,historySize:je.historySize,width:"100%",enabled:Ie&&!x,keydown:fe,keymap:r,clickTimeout:je.clickTimeout,keypress:function(n){var t=He.top();if(Ie&&(!Ne||!je.pauseEvents)){if(e.isFunction(t.keypress)){return t.keypress.call(pe,n,pe)}else if(e.isFunction(je.keypress)){return je.keypress.call(pe,n,pe)}}},onCommandChange:function(n){if(e.isFunction(je.onCommandChange)){try{je.onCommandChange.call(pe,n,pe)}catch(e){w(e,"onCommandChange");if(!je.exceptionHandler){throw e}}}b()},commands:B});if(Ie&&pe.is(":visible")&&!x){pe.focus(n,true)}else{pe.disable()}function i(n){var t=e(n.target);if(!t.closest(".terminal").length&&pe.enabled()&&je.onBlur.call(pe,pe)!==false){pe.disable()}}pe.oneTime(100,function(){e(document).bind("click.terminal_"+pe.id(),i).bind("contextmenu.terminal_"+pe.id(),i)});var o=e(window);document.addEventListener("resume",function(){pe.disable()});if(!x){o.on("focus.terminal_"+pe.id(),Ye).on("blur.terminal_"+pe.id(),Ge)}else{}if(x){pe.click(function(){if(!pe.enabled()&&!Pe){pe.focus();De.enable()}else{pe.focus(false)}})}else{(function(){var n=0;var t=false;var r="click_"+pe.id();pe.mousedown(function(r){if(r.originalEvent.button===2){return}pe.oneTime(1,function(){e(window).on("mousemove.terminal_"+pe.id(),function(){t=true;n=0;e(window).off("mousemove.terminal_"+pe.id())})})}).mouseup(function(){var i=t;t=false;e(window).off("mousemove.terminal_"+pe.id());if(!i){if(++n===1){if(!pe.enabled()&&!Pe){pe.focus();De.enable();n=0}else{pe.oneTime(je.clickTimeout,r,function(){n=0})}}else{pe.stopTime(r);n=0}}}).dblclick(function(){n=0;pe.stopTime(r)})})();(function(){var e=pe.find("textarea");pe.on("mousedown.terminal",function(n){if(n.originalEvent.button===2){if(!pe.enabled()){pe.enable()}n.preventDefault();var t=De.offset();e.css({left:n.pageX-t.left-5,top:n.pageY-t.top-5})}});pe.bind("contextmenu",function(){pe.oneTime(100,function(){e.css({left:"",top:""})})})})()}pe.delegate(".exception a","click",function(n){var t=e(this).attr("href");if(t.match(/:[0-9]+$/)){n.preventDefault();f(t)}});if(pe.is(":visible")){_e=pe.cols();De.resize(_e);if(!Ce){Ce=U()}we=J(pe,Ce)}xe.resolve();if(je.login){pe.login(je.login,true,X)}else{X()}function a(){if(pe.is(":visible")){var e=pe.width();var n=pe.height();if(Le!==n||Fe!==e){pe.resize()}Le=n;Fe=e}}if(pe.is(":visible")){pe.resizer(a)}function s(){if(Me){Me.unobserve(pe[0])}Me=new IntersectionObserver(function(e){if(e[0].intersectionRatio){pe.resizer("unbind").resizer(a);a()}else{pe.disable()}},{root:document.body});Me.observe(pe[0])}var l=!!pe.closest("body").length;var c=window.MutationObserver||window.WebKitMutationObserver;if(window.IntersectionObserver){if(c){qe=new c(function(){if(pe.closest("body").length){if(!l){pe.scroll_to_bottom();s()}l=true}else if(l){l=false}});qe.observe(document.body,{childList:true})}if(l){s()}}function u(n){var t=te.get()[n[0]];if(t&&ye===t.id()){if(n[2]){try{if(Ne){var r=e.Deferred();D.push(function(){return t.exec(n[2]).done(function(){t.save_state(n[2],true,n[1]);r.resolve()})});return r.promise()}else{return t.exec(n[2]).done(function(){t.save_state(n[2],true,n[1])})}}catch(n){var i=t.settings();if(e.isFunction(i.exceptionHandler)){i.exceptionHandler.call(pe,n,"EXEC HASH")}else{var o=e.terminal.escape_brackets(be);var a="Error while exec with command "+o;t.error(a).exception(n)}}}}}if(je.execHash){if(location.hash){setTimeout(function(){try{var e=location.hash.replace(/^#/,"");ie=JSON.parse(decodeURIComponent(e));var n=0;(function e(){var t=ie[n++];if(t){u(t).done(e)}else{oe=true}})()}catch(e){}})}else{oe=true}}else{oe=true}var p=false;e(document).bind("keydown.terminal_"+pe.id(),function(e){if(e.shiftKey){p=true}}).bind("keyup.terminal_"+pe.id(),function(e){if(e.shiftKey||e.which===16){p=false}});function m(n,t){if(!p){var r=He.top();var i;if(e.isFunction(r.mousewheel)){i=r.mousewheel(n,t,pe);if(i===false){return}}else if(e.isFunction(je.mousewheel)){i=je.mousewheel(n,t,pe);if(i===false){return}}if(t>0){pe.scroll(-40)}else{pe.scroll(40)}}}if(e.event.special.mousewheel){pe.on("mousewheel",function(e,n){m(e,n);e.preventDefault()})}else{var h;if("onwheel"in document.createElement("div")){h="wheel"}else if(document.onmousewheel!==n){h="mousewheel"}else{h="DOMMouseScroll"}pe.on(h,function(e){var n;if(h==="mousewheel"){n=-1/40*e.originalEvent.wheelDelta}else{n=e.originalEvent.deltaY||e.originalEvent.detail}m(e,-n);return false})}});pe.data("terminal",pe);return pe}})(jQuery);