/
jquery.terminal-0.11.23.min.js
39 lines (38 loc) · 67.7 KB
/
jquery.terminal-0.11.23.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**@license
* __ _____ ________ __
* / // _ /__ __ _____ ___ __ _/__ ___/__ ___ ______ __ __ __ ___ / /
* __ / // // // // // _ // _// // / / // _ // _// // // \/ // _ \/ /
* / / // // // // // ___// / / // / / // ___// / / / / // // /\ // // / /__
* \___//____ \\___//____//_/ _\_ / /_//____//_/ /_/ /_//_//_/ /_/ \__\_\___/
* \/ /____/ version DEV
*
* This file is part of jQuery Terminal. http://terminal.jcubic.pl
*
* Copyright (c) 2010-2017 Jakub Jankiewicz <http://jcubic.pl>
* 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: Sat, 04 Feb 2017 21:26:45 +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,g;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):" ";g=p[6]-String(l).length;m=p[6]?i(h,g):"";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";e.omap=function(n,t){var r={};e.each(n,function(e,i){r[e]=t.call(n,e,i)});return r};var t={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("You'r 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 r=function(e){return t.clone_object(e)};var i=function(){var e="test",n=window.localStorage;try{n.setItem(e,"1");n.removeItem(e);return true}catch(t){return false}};var o=i();function a(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 s(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 l(e){return localStorage[e]}function f(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 c(e){return delete localStorage[e]}function u(e){return s(e,"",-1)}e.extend({Storage:{set:o?a:s,get:o?l:f,remove:o?c:u}});var p=e;p.fn.extend({everyTime:function(e,n,t,r,i){return this.each(function(){p.timer.add(this,e,n,t,r,i)})},oneTime:function(e,n,t){return this.each(function(){p.timer.add(this,e,n,t,1)})},stopTime:function(e,n){return this.each(function(){p.timer.remove(this,e,n)})}});p.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(p.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(p.isFunction(t)){if(!i){i=r}r=t;t=n}n=p.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){p.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())){p(window).one("unload",function(){var e=p.timer.global;for(var n in e){if(e.hasOwnProperty(n)){var t=e[n],r=t.length;while(--r){p.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};function m(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 h(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]}},append:function(e){t.push(e)}})}function g(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 g(t.slice(0))}})}function d(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?e.parseJSON(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 v=0;e.fn.cmd=function(t){var r=this;var i=r.data("cmd");if(i){return i}var o=v++;r.addClass("cmd");r.append('<span class="prompt"></span><span></span>'+'<span class="cursor"> </span><span></span>');var a=e("<textarea>").attr({autocapitalize:"off",spellcheck:"false"}).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 h;var g=t.mask||false;var b="";var x;var k="";var T=0;var R;var C;var S=t.historySize||60;var E,A;var F=r.find(".cursor");var L;var O=0;function j(){var n=e("<span> </span>").appendTo(r);var t=n[0].getBoundingClientRect();n.remove();return t}function I(e){var n=r.find(".prompt").text().length;var t=j();var i=t.width;var o=t.height;var a=r.offset();var l=Math.floor((e.x-a.left)/i);var f=Math.floor((e.y-a.top)/o);var c=l-n+(f>0?s*f:0);var u=b.replace(/\t/g,"\x00\x00\x00\x00");var p=u.slice(0,c);var m=p.replace(/\x00{4}/g," ").replace(/\x00+/,"").length;return m>b.length?b.length:m}function P(e){var n=e.key.toUpperCase();if(n==="CONTROL"){return"CTRL"}else{var t=[];if(e.ctrlKey){t.push("CTRL")}if(e.shiftKey){t.push("SHIFT")}if(e.altKey){t.push("ALT")}if(e.key){t.push(n)}return t.join("+")}}var N;var $={"ALT+D":function(){r.set(b.slice(0,T)+b.slice(T).replace(/ *[^ ]+ *(?= )|[^ ]+$/,""),true);return false},ENTER:function(){if(A&&b&&!g&&(e.isFunction(t.historyFilter)&&t.historyFilter(b))||t.historyFilter instanceof RegExp&&b.match(t.historyFilter)||!t.historyFilter){A.append(b)}var n=b;A.reset();r.set("");if(t.commands){t.commands(n)}if(e.isFunction(R)){ie()}e(".clipboard").val("");return true},"SHIFT+ENTER":function(){r.insert("\n");return false},BACKSPACE:function(){if(c){u=u.slice(0,-1);Q()}else if(b!==""&&T>0){r["delete"](-1)}return w},TAB:function(){r.insert(" ")},DELETE:function(){r["delete"](1);return true},ARROWUP:D,"CTRL+P":D,ARROWDOWN:B,"CTRL+N":B,ARROWLEFT:W,"CTRL+B":W,"CTRL+ARROWLEFT":function(){var e=T-1;var n=0;if(b[e]===" "){--e}for(var t=e;t>0;--t){if(b[t]===" "&&b[t+1]!==" "){n=t+1;break}else if(b[t]==="\n"&&b[t+1]!=="\n"){n=t;break}}r.position(n)},"CTRL+R":function(){if(c){Z(true)}else{h=R;Q();x=b;r.set("");re();c=true}return false},"CTRL+G":function(){if(c){R=h;ie();r.set(x);re();c=false;u="";return false}},ARROWRIGHT:q,"CTRL+F":q,"CTRL+ARROWRIGHT":function(){if(b[T]===" "){++T}var e=/\S[\n\s]{2,}|[\n\s]+\S?/;var n=b.slice(T).match(e);if(!n||n[0].match(/^\s+$/)){r.position(b.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}}re()},F12:z,END:M,"CTRL+E":M,HOME:J,"CTRL+A":J,"SHIFT+INSERT":H,"CTRL+SHIFT+T":z,"CTRL+W":function(){if(b!==""&&T!==0){var e=b.slice(0,T).match(/([^ ]+ *$)/);k=r["delete"](-e[0].length);U(r,k)}return false},"CTRL+H":function(){if(b!==""&&T>0){r["delete"](-1)}return false},"CTRL+X":z,"CTRL+C":z,"CTRL+T":z,"CTRL+Y":function(){if(k!==""){r.insert(k)}},"CTRL+V":H,"CTRL+K":function(){k=r["delete"](b.length-T);U(r,k);return false},"CTRL+U":function(){if(b!==""&&T!==0){k=r["delete"](-T);U(r,k)}return false},"CTRL+TAB":function(){return false}};function z(){return true}function H(){a.val("");O=0;a.focus();a.on("input",function e(n){oe(n);a.off("input",e)})}function D(){if(ae){x=b;r.set(A.current())}else{r.set(A.previous())}ae=false}function B(){r.set(A.end()?x:A.next())}function W(){if(T>0){r.position(-1,true);re()}}function q(){if(T<b.length){r.position(1,true)}return false}function J(){r.position(0)}function M(){r.position(b.length)}function K(){var e=a.is(":focus");if(C){if(!e){a.focus();r.oneTime(10,function(){a.focus()})}}else if(e){a.blur()}}function Y(){r.oneTime(10,function(){a.val(b);if(C){r.oneTime(10,function(){try{a.caret(T)}catch(e){}})}})}if(y&&!_){L=function(e){if(e){F.addClass("blink")}else{F.removeClass("blink")}}}else{var G=false;L=function(e){if(e&&!G){G=true;F.addClass("inverted blink");r.everyTime(500,"blink",X)}else if(G&&!e){G=false;r.stopTime("blink",X);F.removeClass("inverted blink")}}}function X(){F.toggleClass("inverted")}function Q(){R="(reverse-i-search)`"+u+"': ";ie()}function V(){R=h;c=false;p=null;u=""}function Z(n){var t=A.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);re();if(u.length!==s){u=u.substring(0,s);Q()}return}}}}u=""}function ee(){var e=r.width();var n=F[0].getBoundingClientRect().width;s=Math.floor(e/n)}function ne(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(m(o,s))}else{n=[t[0]]}for(i=1;i<t.length;++i){if(t[i].length>s){n=n.concat(m(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(m(f,s))}return n}function te(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(o){alert("formatting error at formatters["+r+"]\n"+(o.stack?o.stack:o))}}return e.terminal.format(e.terminal.encode(n))}var re=function(){var n=F.prev();var t=F.next();function i(e,r){var i=e.length;if(r===i){n.html(te(e));F.html(" ");t.html("")}else if(r===0){n.html("");F.html(te(e.slice(0,1)));t.html(te(e.slice(1)))}else{var o=e.slice(0,r);n.html(te(o));var a=e.slice(r,r+1);F.html(te(a));if(r===e.length-1){t.html("")}else{t.html(te(e.slice(r+1)))}}}function o(e){return"<div>"+te(e)+"</div>"}function a(n){var r=t;e.each(n,function(n,t){r=e(o(t)).insertAfter(r)})}function f(t){e.each(t,function(e,t){n.before(o(t))})}return function(){var c;switch(typeof g){case"boolean":c=g?b.replace(/./g,"*"):b;break;case"string":c=b.replace(/./g,g);break}var u;r.find("div").remove();n.html("");if(c.length>s-l-1||c.match(/\n/)){var p=c.match(/\t/g);var m=p?p.length*3:0;if(p){c=c.replace(/\t/g,"\x00\x00\x00\x00")}var h=ne(c);if(p){h=e.map(h,function(e){return e.replace(/\x00\x00\x00\x00/g," ")})}var d=h[0].length;if(d===0&&h.length===1){}else if(T<d){i(h[0],T);a(h.slice(1))}else if(T===d){n.before(o(h[0]));i(h[1]||"",0);if(h.length>1){a(h.slice(2))}}else{var v=h.length;if(T<d){i(h[0],T);a(h.slice(1))}else if(T===d){n.before(o(h[0]));i(h[1],0);a(h.slice(2))}else{var y=h.slice(-1)[0];var _=c.length-T-m;var w=y.length;var x=0;if(_<=w){f(h.slice(0,-1));if(w===_){x=0}else{x=w-_}i(y,x)}else if(v===3){var k=te(h[0]);n.before("<div>"+k+"</div>");i(h[1],T-d-1);k=te(h[2]);t.after("<div>"+k+"</div>")}else{var R;var C;x=T;for(u=0;u<h.length;++u){var S=h[u].length;if(x>S){x-=S}else{break}}C=h[u];R=u;if(x===C.length){x=0;C=h[++R]}i(C,x);f(h.slice(0,R));a(h.slice(R+1))}}}}else if(c===""){n.html("");F.html(" ");t.html("")}else{i(c,T)}}}();var ie=function(){function n(n){f.html(e.terminal.format(e.terminal.encode(n)));l=f.text().length}return function(){switch(typeof R){case"string":n(R);break;case"function":R(n);break}}}();function oe(e){if(O++>0){return}if(e.originalEvent){e=e.originalEvent}if(r.isenabled()){var n=r.find("textarea");if(!n.is(":focus")){n.focus()}r.oneTime(100,function(){r.insert(n.val());n.val("");Y()})}}var ae=true;var se=false;var le;var fe;function ce(i){var o;if(C){if(e.isFunction(t.keydown)){o=t.keydown(i);if(o!==n){return o}}var a=P(i);fe=a==="SHIFT+INSERT";if(i.which!==38&&!(i.which===80&&i.ctrlKey)){ae=true}if(e.isFunction(N[a])){o=N[a]();if(o!==n){return o}}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)){V();ie();if(i.which===27){r.set("")}re();ce.call(this,i)}else if(i.altKey){return true}else{se=false;le=true;return}i.preventDefault()}}function ue(){if(e.isFunction(t.onCommandChange)){t.onCommandChange(b)}}e.extend(r,{name:function(e){if(e!==n){E=e;var i=A&&A.enabled()||!A;A=new d(e,S,t.history==="memory");if(!i){A.disable()}return r}else{return E}},purge:function(){A.clear();return r},history:function(){return A},"delete":function(e,n){var t;if(e===0){return r}else if(e<0){if(T>0){t=b.slice(0,T).slice(e);b=b.slice(0,T+e)+b.slice(T,b.length);if(!n){r.position(T+e)}ue()}}else if(b!==""&&T<b.length){t=b.slice(T).slice(0,e);b=b.slice(0,T)+b.slice(T+e,b.length);ue()}re();Y();return t},set:function(e,t){if(e!==n){b=e;if(!t){r.position(b.length)}re();Y();ue()}return r},keymap:function(n){if(typeof n==="undefined"){return N}else{N=e.extend({},$,n||{});return r}},insert:function(e,n){if(T===b.length){b+=e}else if(T===0){b=e+b}else{b=b.slice(0,T)+e+b.slice(T)}if(!n){r.position(e.length,true)}else{Y()}re();ue();return r},get:function(){return b},commands:function(e){if(e){t.commands=e;return r}else{return e}},destroy:function(){pe.unbind("keypress.cmd",me);pe.unbind("keydown.cmd",ce);pe.unbind("paste.cmd",oe);pe.unbind("input.cmd",he);r.stopTime("blink",X);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 R}else{if(typeof e==="string"||typeof e==="function"){R=e}else{throw new Error("prompt must be a function or string")}ie();re();return r}},kill_text:function(){return k},position:function(n,i){if(typeof n==="number"){if(i){T+=n}else if(n<0){T=0}else if(n>b.length){T=b.length}else{T=n}if(e.isFunction(t.onPositionChange)){t.onPositionChange(T)}re();Y();return r}else{return T}},visible:function(){var e=r.visible;return function(){e.apply(r,[]);re();ie()}}(),show:function(){var e=r.show;return function(){e.apply(r,[]);re();ie()}}(),resize:function(e){if(e){s=e}else{ee()}re();return r},enable:function(){C=true;r.addClass("enabled");try{a.caret(T)}catch(e){}L(true);K();return r},isenabled:function(){return C},disable:function(){C=false;r.removeClass("enabled");L(false);K();return r},mask:function(e){if(typeof e==="undefined"){return g}else{g=e;re();return r}}});r.name(t.name||t.prompt||"");if(typeof t.prompt==="string"){R=t.prompt}else{R="> "}ie();if(t.enabled===n||t.enabled===true){r.enable()}var pe=e(document.documentElement||window);r.keymap(t.keymap);function me(i){var o;le=false;if((i.ctrlKey||i.metaKey)&&[99,118,86].indexOf(i.which)!==-1){return}if(se){return}if(!c&&e.isFunction(t.keypress)){o=t.keypress(i)}if(o===n||o){if(C){if(e.inArray(i.which,[38,13,0,8])>-1&&!(i.which===38&&i.shiftKey)){if(i.keyCode===123){return}return false}else if(!i.ctrlKey&&!(i.altKey&&i.which===100)||i.altKey){if(c){u+=String.fromCharCode(i.which);Z();Q()}else{r.insert(String.fromCharCode(i.which))}return false}}}else{return o}}function he(e){if(le&&!fe){var n=a.val();if(n!==""||e.which===8){r.set(n)}}}pe.bind("keypress.cmd",me).bind("keydown.cmd",ce).bind("input.cmd",he);(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;r.oneTime(t.clickTimeout,f,function(){if(!e(s.target).is(".prompt")&&c){r.position(I({x:s.pageX,y:s.pageY}))}a=0})}else{r.stopTime(f);a=0}}i=false})})();r.data("cmd",r);return r};var y=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 _=navigator.userAgent.toLowerCase().indexOf("android")!==-1;var w=function(){return"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch}();function b(e,n){var t=n(e);if(t.length){var r=t.shift();var i=e.substring(r.length).trim();return{command:e,name:r,args:t,rest:i}}else{return{command:e,name:"",args:[],rest:""}}}var x=/(\[\[[!gbiuso]*;[^;]*;[^\]]*\](?:[^\]]*\\\][^\]]*|[^\]]*|[^[]*\[[^\]]*)\]?)/i;var k=/\[\[([!gbiuso]*);([^;]*);([^;\]]*);?([^;\]]*);?([^\]]*)\]([^\]]*\\\][^\]]*|[^\]]*|[^[]*\[[^\]]*)\]?/gi;var T=/\[\[([!gbiuso]*;[^;\]]*;[^;\]]*(?:;|[^\]()]*);?[^\]]*)\]([^\]]*\\\][^\]]*|[^\]]*|[^[]*\[[^\]]*)\]?/gi;var R=/\[\[([!gbiuso]*;[^;\]]*;[^;\]]*(?:;|[^\]()]*);?[^\]]*)\]([^\]]*\\\][^\]]*|[^\]]*|[^[]*\[[^\]]*)\]/gi;var C=/^\[\[([!gbiuso]*;[^;\]]*;[^;\]]*(?:;|[^\]()]*);?[^\]]*)\]([^\]]*\\\][^\]]*|[^\]]*|[^[]*\[[^\]]*)\]$/gi;var S=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i;var E=/(\bhttps?:\/\/(?:(?:(?!&[^;]+;)|(?=&))[^\s"'<>\][)])+\b)/gi;var A=/\b(https?:\/\/(?:(?:(?!&[^;]+;)|(?=&))[^\s"'<>\][)])+)\b(?![^[\]]*])/gi;var F=/((([^<>('")[\]\\.,;:\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 L=/('(?:[^']|\\')*'|"(\\"|[^"])*"|(?:\/(\\\/|[^\/])+\/[gimy]*)(?=:? |$)|(\\\s|\S)+|[\w-]+)/gi;var O=/(\[\[[!gbiuso]*;[^;]*;[^\]]*\])/i;var j=/^(\[\[[!gbiuso]*;[^;]*;[^\]]*\])/i;var I=/\[\[[!gbiuso]*;[^;]*;[^\]]*\]?$/i;var P=/(\[\[(?:[^\]]|\\\])*\]\])/;var N=/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/;var $=/^\/((?:\\\/|[^\/]|\[[^\]]*\/[^\]]*\])+)\/([gimy]*)$/;e.terminal={version:"DEV",color_names:["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){if(n.match(S)){return true}else{return e.inArray(n.toLowerCase(),e.terminal.color_names)!==-1}},escape_regex:function(e){if(typeof e==="string"){var n=/([-\\^$[\]()+{}?*.|])/g;return e.replace(n,"\\$1")}},have_formatting:function(e){return typeof e==="string"&&!!e.match(R)},is_formatting:function(e){return typeof e==="string"&&!!e.match(C)},format_split:function(e){return e.split(x)},split_equal:function(n,t,r){var i=false;var o=false;var a="";var s=[];var l=n.replace(T,function(e,n,t){var r=n.match(/;/g).length;if(r>=4){return e}else if(r===2){r=";;"}else if(r===3){r=";"}else{r=""}var i=t.replace(/\\\]/g,"]").replace(/\n/g,"\\n").replace(/ /g," ");return"[["+n+r+i+"]"+t+"]"}).split(/\n/g);function f(){return m.substring(y-6,y)===" "||m.substring(y-1,y)===" "}function c(){var e=d.match(T);if(e){var n=e[e.length-1];if(n[n.length-1]!=="]"){a=n.match(O)[1];d+="]"}else if(d.match(I)){d=d.replace(I,"");a=n.match(O)[1]}}}for(var u=0,p=l.length;u<p;++u){if(l[u]===""){s.push("");continue}var m=l[u];var h=0;var g=0;var d;var v=-1;for(var y=0,_=m.length;y<_;++y){if(m.substring(y).match(j)){i=true;o=false}else if(i&&m[y]==="]"){if(o){i=false;o=false}else{o=true}}else if(i&&o||!i){if(m[y]==="&"){var w=m.substring(y).match(/^(&[^;]+;)/);if(!w){throw new Error("Unclosed html entity in line "+(u+1)+" at char "+(y+1))}y+=w[1].length-2;if(y===_-1){s.push(d+w[1])}continue}else if(m[y]==="]"&&m[y-1]==="\\"){--g}else{++g}}if(f()&&(i&&o||!i||m[y]==="["&&m[y+1]==="[")){v=y}if((g===t||y===_-1)&&(i&&o||!i)){var b=e.terminal.strip(m.substring(v));b=e("<span>"+b+"</span>").text();var x=b.length;b=b.substring(0,y+t+1);var k=!!b.match(/\s/)||y+t+1>x;if(r&&v!==-1&&y!==_-1&&k){d=m.substring(h,v);y=v-1}else{d=m.substring(h,y+1)}if(r){d=d.replace(/( |\s)+$/g,"")}v=-1;h=y+1;g=0;if(a){d=a+d;if(d.match("]")){a=""}}c();s.push(d)}}}return s},encode:function(e){e=e.replace(/&(?!#[0-9]+;|[a-zA-Z]+;)/g,"&");return e.replace(/</g,"<").replace(/>/g,">").replace(/ /g," ").replace(/\t/g," ")},escape_formatting:function(n){return e.terminal.escape_brackets(e.terminal.encode(n))},format:function(n,t){var r=e.extend({},{linksNoReferrer:false},t||{});if(typeof n==="string"){var i=e.terminal.format_split(n);n=e.map(i,function(n){if(n===""){return n}else if(e.terminal.is_formatting(n)){n=n.replace(/\[\[[^\]]+\]/,function(e){return e.replace(/ /g," ")});return n.replace(k,function(n,t,i,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(i)){f+="color:"+i+";";if(t.indexOf("g")!==-1){f+="text-shadow:0 0 5px "+i+";"}}if(e.terminal.valid_color(o)){f+="background-color:"+o}var u;if(s===""){u=l}else{u=s.replace(/]/g,"]")}var p;if(t.indexOf("!")!==-1){if(u.match(F)){p='<a href="mailto:'+u+'" '}else{p='<a target="_blank" href="'+u+'" ';if(r.linksNoReferrer){p+='rel="noreferrer" '}}}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('"',""e;")+'">'+l+"</span>"}return p})}else{return"<span>"+n.replace(/\\\]/g,"]")+"</span>"}}).join("");return n.replace(/<span><br\s*\/?><\/span>/gi,"<br/>")}else{return""}},escape_brackets:function(e){return e.replace(/\[/g,"[").replace(/\]/g,"]")},strip:function(e){return e.replace(k,"$6")},active:function(){return V.front()},last_id:function(){var e=V.length();if(e){return e-1}},parse_arguments:function(n){return e.map(n.match(L)||[],function(n){var t=n.match($);if(t){return new RegExp(t[1],t[2])}else if(n[0]==="'"&&n[n.length-1]==="'"){return n.replace(/^'|'$/g,"")}else if(n[0]==='"'&&n[n.length-1]==='"'){return e.parseJSON(n)}else if(n.match(/^-?[0-9]+$/)){return parseInt(n,10)}else if(n.match(N)){return parseFloat(n)}else{return n.replace(/\\ /g," ")}})},split_arguments:function(n){return e.map(n.match(L)||[],function(e){if(e[0]==="'"&&e[e.length-1]==="'"){return e.replace(/^'|'$/g,"")}else if(e[0]==='"'&&e[e.length-1]==='"'){return e.replace(/^"|"$/g,"").replace(/\\([" ])/g,"$1")}else if(e.match(/\/.*\/[gimy]*$/)){return e}else{return e.replace(/\\ /g," ")}})},parse_command:function(n){return b(n,e.terminal.parse_arguments)},split_command:function(n){return b(n,e.terminal.split_arguments)},extended_command:function(e,n){try{ne=false;e.exec(n,true).then(function(){ne=true})}catch(t){}}};e.fn.visible=function(){return this.css("visibility","visible")};e.fn.hidden=function(){return this.css("visibility","hidden")};var z={};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(e){return typeof e.id==="number"&&typeof e.result!=="undefined"||a.method==="system.describe"&&e.name==="DemoService"&&typeof e.id!=="undefined"&&e.procs instanceof Array}z[a.url]=z[a.url]||0;var l={jsonrpc:"2.0",method:a.method,params:a.params,id:++z[a.url]};return e.ajax({url:a.url,beforeSend:function(n,t){if(e.isFunction(a.request)){a.request(n,l)}t.data=JSON.stringify(l)},success:function(n,t,r){var i=r.getResponseHeader("Content-Type");if(!i.match(/(application|text)\/json/)){var o="Response Content-Type is neither application/json"+" nor text/json";if(console&&console.warn){console.warn(o)}else{throw new Error("WARN: "+o)}}var l;try{l=e.parseJSON(n)}catch(f){if(a.error){a.error(r,"Invalid JSON",f)}else{throw new Error("Invalid JSON")}return}if(e.isFunction(a.response)){a.response(r,l)}if(s(l)){a.success(l,t,r)}else if(a.error){a.error(r,"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 H(){var n=e('<div class="terminal temp"><div class="cmd"><span cla'+'ss="cursor"> </span></div></div>').appendTo("body");var t=n.find("span");var r={width:t.width(),height:t.outerHeight()};n.remove();return r}function D(n){var t=e('<div class="terminal wrap"><span class="cursor">'+" </span></div>").appendTo("body").css("padding",0);var r=t.find("span");var i=r[0].getBoundingClientRect().width;var o=Math.floor(n.find("iframe").width()/i);t.remove();return o}function B(e){return Math.floor(e.height()/H().height)}function W(){if(window.getSelection||document.getSelection){var e=(window.getSelection||document.getSelection)();if(e.text){return e.text}else{return e.toString()}}else if(document.selection){return document.selection.createRange().text}}function q(){if(window.getSelection){if(window.getSelection().empty){window.getSelection().empty()}else if(window.getSelection().removeAllRanges){window.getSelection().removeAllRanges()}}else if(document.selection){document.selection.empty()}}function U(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(a){}r.remove()}var J=!e.terminal.version.match(/^\{\{/);var M="Copyright (c) 2011-2017 Jakub Jankiewicz <http://jcubic"+".pl>";var K=J?" v. "+e.terminal.version:" ";var Y=new RegExp(" {"+K.length+"}$");var G="jQuery Terminal Emulator"+(J?K:"");var X=[["jQuery Terminal","(c) 2011-2017 jcubic"],[G,M.replace(/^Copyright | *<.*>/g,"")],[G,M.replace(/^Copyright /,"")],[" _______ ________ __"," / / _ /_ ____________ _/__ ___/______________ _____ / /"," __ / / // / // / _ / _/ // / / / _ / _/ / / \\/ / _ \\/ /","/ / / // / // / ___/ // // / / / ___/ // / / / / /\\ / // / /__","\\___/____ \\\\__/____/_/ \\__ / /_/____/_//_/_/_/ /_/ \\/\\__\\_\\___/"," \\/ /____/ ".replace(Y," ")+K,M],[" __ _____ ________ "+" __"," / // _ /__ __ _____ ___ __ _/__ ___/__ ___ ______ __ __ __ ___ "+"/ /"," __ / // // // // // _ // _// // / / // _ // _// // // \\/ // _ "+"\\/ /","/ / // // // // // ___// / / // / / // ___// / / / / // // /\\ // // "+"/ /__","\\___//____ \\\\___//____//_/ _\\_ / /_//____//_/ /_/ /_//_//_/ /_/ \\"+"__\\_\\___/"," \\/ /____/ "+" ".replace(Y,"")+K,M]];e.terminal.defaults={prompt:"> ",history:true,exit:true,clear:true,enabled:true,historySize:60,maskChar:"*",wrap:true,checkArity:true,raw:false,exceptionHandler:null,memory:false,cancelableAjax:true,processArguments:true,linksNoReferrer:false,processRPCResponse:null,Token:true,convertLinks:true,extra:{},historyState:false,importHistory:false,echoCommand:true,scrollOnEcho:true,login:null,outputLimit:-1,formatters:[],onAjaxError:null,scrollBottomOffset:20,wordAutocomplete:true,clickTimeout:200,request:e.noop,response:e.noop,onRPCError:null,completion:false,historyFilter:null,softPause: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 ignoreSystemDescr"+"ibe or rpc without system.describe",oneInterpreterFunction:"You can't use more than one function (rpc "+"without system.describe or with option ignoreSystemDescribe cou"+"nts 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"}};var Q=[];var V=new h;var Z=[];var ee;var ne=false;var te=true;var re=true;e.fn.terminal=function(t,i){function o(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 a(n){if(e.isFunction(Re.processArguments)){return b(n,Re.processArguments)}else if(Re.processArguments){return e.terminal.parse_command(n)}else{return e.terminal.split_command(n)}}function s(n){if(typeof n==="string"){le.echo(n)}else if(n instanceof Array){le.echo(e.map(n,function(e){return JSON.stringify(e)}).join(" "))}else if(typeof n==="object"){le.echo(JSON.stringify(n))}else{le.echo(n)}}function l(n){var t=/(.*):([0-9]+):([0-9]+)$/;var r=n.match(t);if(r){le.pause(Re.softPause);e.get(r[1],function(n){var t=location.href.replace(/[^\/]+$/,"");var i=r[1].replace(t,"");le.echo("[[b;white;]"+i+"]");var o=n.split("\n");var a=+r[2]-1;le.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 f(n){if(e.isFunction(Re.onRPCError)){Re.onRPCError.call(le,n)}else{le.error("[RPC] "+n.message);if(n.error&&n.error.message){n=n.error;var t=" "+n.message;if(n.file){t+=' in file "'+n.file.replace(/.*\//,"")+'"'}if(n.at){t+=" at line "+n.at}le.error(t)}}}function c(n,t){var r=function(t,r){le.pause(Re.softPause);e.jrpc({url:n,method:t,params:r,request:function(e,n){try{Re.request.apply(le,e,n,le)}catch(t){y(t,"USER")}},response:function(e,n){try{Re.response.apply(le,e,n,le)}catch(t){y(t,"USER")}},success:function(n){if(n.error){f(n.error)}else if(e.isFunction(Re.processRPCResponse)){Re.processRPCResponse.call(le,n.result,le)}else{s(n.result)}le.resume()},error:p})};return function(e,n){if(e===""){return}try{e=a(e)}catch(i){y(i,"TERMINAL (get_processed_command)");return}if(!t||e.name==="help"){r(e.name,e.args)}else{var o=n.token();if(o){r(e.name,[o].concat(e.args))}else{n.error("[AUTH] "+Se.noTokenError)}}}}function u(t,r,i,o){return function(s,l){if(s===""){return}var f;try{f=a(s)}catch(c){if(e.isFunction(Re.exception)){Re.exception(c,le)}else{le.error(c.toString())}return}var p=t[f.name];var m=e.type(p);if(m==="function"){if(r&&p.length!==f.args.length){le.error("[Arity] "+sprintf(Se.wrongArity,f.name,p.length,f.args.length))}else{return p.apply(le,f.args)}}else if(m==="object"||m==="string"){var h=[];if(m==="object"){h=Object.keys(p);p=u(p,r,i)}l.push(p,{prompt:f.name+"> ",name:f.name,completion:m==="object"?h:n})}else if(e.isFunction(o)){o(s,le)}else if(e.isFunction(Re.onCommandNotFound)){Re.onCommandNotFound.call(le,s,le)}else{l.error(sprintf(Se.commandNotFound,f.name))}}}function p(n,t,r){le.resume();if(e.isFunction(Re.onAjaxError)){Re.onAjaxError.call(le,n,t,r)}else if(t!=="abort"){le.error("[AJAX] "+t+" - "+Se.serverResponse+":\n"+e.terminal.escape_brackets(n.responseText))}}function m(n,t,r){function i(n){if(n.error){f(n.error)}else if(e.isFunction(Re.processRPCResponse)){Re.processRPCResponse.call(le,n.result,le)}else{s(n.result)}le.resume()}function o(e,n){try{Re.request.call(le,e,n,le)}catch(t){y(t,"USER")}}function a(e,n){try{Re.response.call(le,e,n,le)}catch(t){y(t,"USER")}}function l(s){if(s.procs){var l={};e.each(s.procs,function(r,s){l[s.name]=function(){var r=t&&s.name!=="help";var l=Array.prototype.slice.call(arguments);var f=l.length+(r?1:0);if(Re.checkArity&&s.params&&s.params.length!==f){le.error("[Arity] "+sprintf(Se.wrongArity,s.name,s.params.length,f))}else{le.pause(Re.softPause);if(r){var c=le.token(true);if(c){l=[c].concat(l)}else{le.error("[AUTH] "+Se.noTokenError)}}e.jrpc({url:n,method:s.name,params:l,request:o,response:a,success:i,error:p})}}});l.help=l.help||function(n){if(typeof n==="undefined"){var t=s.procs.map(function(e){return e.name}).join(", ")+", help";le.echo("Available commands: "+t)}else{var r=false;e.each(s.procs,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}le.echo(i);return false}});if(!r){if(n==="help"){le.echo("[[bu;#fff;]help] [method]\ndisplay help "+"for the method or list of methods if not"+" specified")}else{var i="Method `"+n+"' not found ";le.error(i)}}}};r(l)}else{r(null)}}return e.jrpc({url:n,method:"system.describe",params:[],success:l,request:function(e,n){try{Re.request.call(le,e,n,le)}catch(t){y(t,"USER")}},response:function(e,n){try{Re.response.call(le,e,n,le)}catch(t){y(t,"USER")}},error:function(){r(null)}})}function h(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 f(n,r){if(n.length){var i=n[0];var a=n.slice(1);var u=e.type(i);if(u==="string"){le.pause(Re.softPause);if(Re.ignoreSystemDescribe){if(++s===1){l=c(i,t)}else{le.error(Se.oneRPCWithIgnore)}f(a,r)}else{m(i,t,function(n){if(n){e.extend(o,n)}else if(++s===1){l=c(i,t)}else{le.error(Se.oneRPCWithIgnore)}le.resume();f(a,r)})}}else if(u==="function"){if(l){le.error(Se.oneInterpreterFunction)}else{l=i}f(a,r)}else if(u==="object"){e.extend(o,i);f(a,r)}}else{r()}})(n,function(){r({interpreter:u(o,false,t,l.bind(le)),completion:Object.keys(o)})})}else if(i==="string"){if(Re.ignoreSystemDescribe){o={interpreter:c(n,t)};if(e.isArray(Re.completion)){o.completion=Re.completion}r(o)}else{le.pause(Re.softPause);m(n,t,function(e){if(e){a.interpreter=u(e,false,t);a.completion=Object.keys(e)}else{a.interpreter=c(n,t)}r(a);le.resume()})}}else if(i==="object"){r({interpreter:u(n,Re.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:Re.completion})}}function d(n,t){var r=e.type(t)==="boolean"?"login":t;return function(t,i,o){le.pause(Re.softPause);e.jrpc({url:n,method:r,params:[t,i],request:function(e,n){try{Re.request.call(le,e,n,le)}catch(t){y(t,"USER")}},response:function(e,n){try{Re.response.call(le,e,n,le)}catch(t){y(t,"USER")}},success:function(e){if(!e.error&&e.result){o(e.result)}else{o(null)}le.resume()},error:p})}}function v(e){if(typeof e==="string"){return e}else if(typeof e.fileName==="string"){return e.fileName+": "+e.message}else{return e.message}}function y(n,t){if(e.isFunction(Re.exceptionHandler)){Re.exceptionHandler.call(le,n,t)}else{le.exception(n,t)}}function _(){var e;if(fe.prop){e=fe.prop("scrollHeight")}else{e=fe.attr("scrollHeight")}fe.scrollTop(e)}function x(n,t){try{if(e.isFunction(t)){t(function(){})}else if(typeof t!=="string"){var r=n+" must be string or function";throw r}}catch(i){y(i,n.toUpperCase());return false}return true}var k=[];var T=1;function R(t,r){if(Re.convertLinks&&!r.raw){t=t.replace(F,"[[!;;]$1]").replace(A,"[[!;;]$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(l){if(e.isFunction(Re.exceptionHandler)){Re.exceptionHandler.call(le,l,"FORMATTERS")}else{alert("formatting error at formatters["+o+"]\n"+(l.stack?l.stack:l))}}}}t=e.terminal.encode(t)}k.push(T);if(!r.raw&&(t.length>ge||t.match(/\n/))&&(Re.wrap===true&&r.wrap===n||Re.wrap===false&&r.wrap===true)){var f=r.keepWords;var c=e.terminal.split_equal(t,ge,f);for(o=0,a=c.length;o<a;++o){if(c[o]===""||c[o]==="\r"){k.push("<span></span>")}else if(r.raw){k.push(c[o])}else{k.push(e.terminal.format(c[o],{linksNoReferrer:Re.linksNoReferrer}))}}}else if(!r.raw){t=e.terminal.format(t,{linksNoReferrer:Re.linksNoReferrer});t.split(/\n/).forEach(function(e){k.push(e)})}else{k.push(t)}k.push(r.finalize)}function C(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(P),function(n){if(n.match(P)&&!e.terminal.is_formatting(n)){n=n.replace(/^\[\[|\]\]$/g,"");if(r.exec){if(ce&&ce.command===n){le.error(Se.recursiveCall)}else{e.terminal.extended_command(le,n)}}return""}else{return n}}).join("");if(i!==""){R(i,r)}}}catch(o){k=[];if(e.isFunction(Re.exceptionHandler)){Re.exceptionHandler.call(le,o,"TERMINAL")}else{alert("[Internal Exception(process_line)]:"+v(o)+"\n"+o.stack)}}}function S(){De.resize(ge);var n=me.empty().detach();var t;if(Re.outputLimit>=0){var r;if(Re.outputLimit===0){r=le.rows()}else{r=Re.outputLimit}t=pe.slice(pe.length-r-1)}else{t=pe}try{k=[];e.each(t,function(e,n){C.apply(null,n)});De.before(n);le.flush()}catch(i){if(e.isFunction(Re.exceptionHandler)){Re.exceptionHandler.call(le,i,"TERMINAL (redraw)")}else{alert("Exception in redraw\n"+i.stack)}}}function L(){if(Re.greetings===n){le.echo(le.signature)}else if(Re.greetings){var e=typeof Re.greetings;if(e==="string"){le.echo(Re.greetings)}else if(e==="function"){Re.greetings.call(le,le.echo)}else{le.error(Se.wrongGreetings)}}}function O(n){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,Re.maskChar)}else{n=e.terminal.escape_formatting(n)}break}var i={finalize:function(e){e.addClass("command")}};if(e.isFunction(t)){t(function(e){le.echo(e+n,i)})}else{le.echo(t+n,i)}}function j(e){var n=V.get()[e[0]];if(!n){throw new Error(Se.invalidTerminalId)}var t=e[1];if(Z[t]){n.import_view(Z[t])}else{ne=false;var r=e[2];if(r){n.exec(r).then(function(){ne=true;Z[t]=n.export_view()})}}}function I(){if(ne){te=false;location.hash="#"+JSON.stringify(ee);setTimeout(function(){te=true},100)}}var N=true;var $=[];function z(t,r,i){if(N){N=false;if(Re.historyState||Re.execHash&&i){if(!Z.length){le.save_state()}else{le.save_state(null)}}}function o(){if(!i){ne=true;if(Re.historyState){le.save_state(t,false)}ne=f}l.resolve();if(e.isFunction(Re.onAfterCommand)){Re.onAfterCommand.call(le,le,t)}}try{if(e.isFunction(Re.onBeforeCommand)){if(Re.onBeforeCommand.call(le,le,t)===false){return}}if(!i){ce=e.terminal.split_command(t)}if(!G()){if(i&&(e.isFunction(Re.historyFilter)&&Re.historyFilter(t)||t.match(Re.historyFilter))){De.history().append(t)}}var a=He.top();if(!r&&Re.echoCommand){O(t)}var l=new e.Deferred;var f=ne;if(t.match(/^\s*login\s*$/)&&le.token(true)){if(le.level()>1){le.logout(true)}else{le.logout()}o()}else if(Re.exit&&t.match(/^\s*exit\s*$/)&&!we){var c=le.level();if(c===1&&le.get_token()||c>1){if(le.get_token(true)){le.set_token(n,true)}le.pop()}o()}else if(Re.clear&&t.match(/^\s*clear\s*$/)&&!we){le.clear();o()}else{var u=pe.length-1;var p=a.interpreter.call(le,t,le);if(p!==n){le.pause(Re.softPause);return e.when(p).then(function(e){if(e&&u===pe.length-1){s(e)}o();le.resume()})}else if(Fe){$.push(function(){o()})}else{o()}}return l.promise()}catch(m){y(m,"USER");le.resume();throw m}}function H(){if(e.isFunction(Re.onBeforeLogout)){try{if(Re.onBeforeLogout.call(le,le)===false){return}}catch(n){y(n,"onBeforeLogout")}}U();if(e.isFunction(Re.onAfterLogout)){try{Re.onAfterLogout.call(le,le)}catch(n){y(n,"onAfterlogout")}}le.login(Re.login,true,Y)}function U(){var e=le.prefix_name(true)+"_";Ce.remove(e+"token");Ce.remove(e+"login")}function J(n){var t=le.prefix_name()+"_interpreters";var r=Ce.get(t);if(r){r=e.parseJSON(r)}else{r=[]}if(e.inArray(n,r)===-1){r.push(n);Ce.set(t,JSON.stringify(r))}}function M(n){var t=He.top();var r=le.prefix_name(true);if(!G()){J(r)}De.name(r);if(e.isFunction(t.prompt)){De.prompt(function(e){t.prompt.call(le,e,le)})}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(le,e)}catch(t){y(t,"USER KEYMAP");throw t}}}))}De.set("");if(!n&&e.isFunction(t.onStart)){t.onStart.call(le,le)}}function K(){if(te&&Re.execHash){try{if(location.hash){var n=location.hash.replace(/^#/,"");ee=e.parseJSON(decodeURIComponent(n))}else{ee=[]}if(ee.length){j(ee[ee.length-1])}else if(Z[0]){le.import_view(Z[0])}}catch(t){y(t,"TERMINAL")}}}function Y(){M();L();if(pe.length){S()}var n=false;if(e.isFunction(Re.onInit)){be=function(){n=true};try{Re.onInit.call(le,le)}catch(t){y(t,"OnInit")}finally{be=e.noop;if(!n){le.resume()}}}if(re){re=false;e(window).on("hashchange",K)}}function G(){return we||De.mask()!==false}function ie(t){var r,i=He.top();if(e.isFunction(i.keydown)){r=i.keydown.call(le,t,le);if(r!==n){return r}}else if(e.isFunction(Re.keydown)){r=Re.keydown.call(le,t,le);if(r!==n){return r}}}var oe={"CTRL+D":function(){if(!we){if(De.get()===""){if(He.size()>1||Re.login!==n){le.pop("")}else{le.resume();le.echo("")}}else{le.set_command("")}}return false},"CTRL+L":function(){le.clear()},TAB:function(){var t=He.top(),r;if(Re.completion&&e.type(Re.completion)!=="boolean"&&t.completion===n){r=Re.completion}else{r=t.completion}if(r==="settings"){r=Re.completion}if(r){switch(e.type(r)){case"function":var i=le.before_cursor(Re.wordAutocomplete);if(r.length===3){var o=new Error(Re.comletionParameters);y(o,"USER");return false}r.call(le,i,function(e){le.complete(e,{echo:true})});break;case"array":le.complete(r,{echo:true});break;default:throw new Error(Se.invalidCompletion)}}else{le.insert(" ")}return false},"CTRL+V":function(){le.oneTime(1,function(){_()})},"CTRL+TAB":function(){if(V.length()>1){le.focus(false);return false}},PAGEDOWN:function(){le.scroll(le.height())},PAGEUP:function(){le.scroll(-le.height())}};function ae(t){var r,i;if(!le.paused()&&le.enabled()){r=ie(t);if(r!==n){return r}if(t.which!==9){ue=0}le.attr({scrollTop:le.attr("scrollHeight")})}else if(t.which===68&&t.ctrlKey){r=ie(t);if(r!==n){return r}if(Q.length){for(i=Q.length;i--;){var o=Q[i];if(o.readyState!==4){try{o.abort()}catch(a){if(e.isFunction(Re.exceptionHandler)){Re.exceptionHandler.call(le,t,"AJAX ABORT")}else{le.error(Se.ajaxAbortError)}}}}Q=[];le.resume()}return false}}function se(e){if(_e.state()!=="resolved"){_e.then(e.bind(le))}else{e.call(le)}}var le=this;if(this.length>1){return this.each(function(){e.fn.terminal.call(e(this),t,e.extend({name:le.selector},i))})}if(le.data("terminal")){return le.data("terminal")}if(le.length===0){throw sprintf(e.terminal.defaults.strings.invalidSelector,le.selector)}var fe;var ce;var ue=0;var pe=[];var me;var he=V.length();var ge;var de;var ve;var ye=new g;var _e=e.Deferred();var we=false;var be=e.noop;var xe,ke;var Te=[];var Re=e.extend({},e.terminal.defaults,{name:le.selector},i||{});var Ce=new o(Re.memory);var Se=e.terminal.defaults.strings;var Ee=Re.enabled,Ae=false;var Fe=false;var Le=true;e.extend(le,e.omap({id:function(){return he},clear:function(){me.html("");pe=[];try{Re.onClear.call(le,le)}catch(e){y(e,"onClear")}le.attr({scrollTop:0});return le},export_view:function(){var n={};if(e.isFunction(Re.onExport)){try{n=Re.onExport.call(le)}catch(t){y(t,"onExport")}}return e.extend({},{focus:Ee,mask:De.mask(),prompt:le.get_prompt(),command:le.get_command(),position:De.position(),lines:r(pe),interpreters:He.clone(),history:De.history().data},n)},import_view:function(n){if(we){throw new Error(sprintf(Se.notWhileLogin,"import_view"))}if(e.isFunction(Re.onImport)){try{Re.onImport.call(le,n)}catch(t){y(t,"onImport")}}se(function i(){le.set_prompt(n.prompt);le.set_command(n.command);De.position(n.position);De.mask(n.mask);if(n.focus){le.focus()}pe=r(n.lines);He=n.interpreters;if(Re.importHistory){De.history().set(n.history)}S()});return le},save_state:function(t,r,i){if(typeof i!=="undefined"){Z[i]=le.export_view()}else{Z.push(le.export_view())}if(!e.isArray(ee)){ee=[]}if(t!==n&&!r){var o=[he,Z.length-1,t];ee.push(o);I()}},exec:function(n,t,r){var i=r||new e.Deferred;se(function o(){if(e.isArray(n)){(function r(){var e=n.shift();if(e){le.exec(e,t).then(r)}else{i.resolve()}})()}else if(Fe){Te.push([n,t,i])}else{z(n,t,true).then(function(){i.resolve(le)})}});return i.promise()},autologin:function(e,n,t){le.trigger("terminal.autologin",[e,n,t]);return le},login:function(n,t,r,i){ye.push([].slice.call(arguments));if(we){throw new Error(sprintf(Se.notWhileLogin,"login"))}if(!e.isFunction(n)){throw new Error(Se.loginIsNotAFunction)}we=true;if(le.token()&&le.level()===1&&!Le){we=false;le.logout(true)}else if(le.token(true)&&le.login_name(true)){we=false;if(e.isFunction(r)){r()}return le}if(Re.history){De.history().disable()}var o=le.level();function a(n,a,s){if(a){while(le.level()>o){le.pop()}if(Re.history){De.history().enable()}var l=le.prefix_name(true)+"_";Ce.set(l+"token",a);Ce.set(l+"login",n);we=false;if(e.isFunction(r)){r()}}else{if(t){if(!s){le.error(Se.wrongPasswordTryAgain)}le.pop().set_mask(false)}else{we=false;if(!s){le.error(Se.wrongPassword)}le.pop().pop()}if(e.isFunction(i)){i()}}le.off("terminal.autologin")}le.on("terminal.autologin",function(e,n,t,r){a(n,t,r)});le.push(function(e){le.set_mask(Re.maskChar).push(function(t){try{n.call(le,e,t,function(n,t){a(e,n,t)})}catch(r){y(r,"AUTH")}},{prompt:Se.password+": ",name:"password"})},{prompt:Se.login+": ",name:"login"});return le},settings:function(){return Re},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{i=r[r.length-1];for($e=r.length-1;$e>0;$e--){var o=r[$e-1];if(o[o.length-1]==="\\"){i=r[$e-1]+" "+i}else{break}}}}else{i=t}return i},complete:function(n,t){t=e.extend({word:true,echo:false},t||{});var r=le.before_cursor(t.word);n=n.slice();if(Re.clear&&e.inArray("clear",n)===-1){n.push("clear")}if(Re.exit&&e.inArray("exit",n)===-1){n.push("exit")}if(ue%2===0){ve=le.before_cursor(t.word)}else{var i=le.before_cursor(t.word);if(i!==ve){return}}var o=new RegExp("^"+e.terminal.escape_regex(r));var a=[];for(var s=n.length;s--;){if(o.test(n[s])){a.push(n[s])}}if(a.length===1){le.insert(a[0].replace(o,""));ve=le.before_cursor(t.word);return true}else if(a.length>1){if(++ue>=2){ue=0;if(t.echo){var l=a.reverse().join(" ");le.echo(e.terminal.escape_brackets(l),{keepWords:true});return true}}else{var f=false;var c;e:for(c=r.length;c<a[0].length;++c){for(s=1;s<a.length;++s){if(a[0].charAt(c)!==a[s].charAt(c)){break e}}f=true}if(f){le.insert(a[0].slice(0,c).replace(o,""));ve=le.before_cursor(t.word);return true}}}},commands:function(){return He.top().interpreter},set_interpreter:function(n,t){function r(){le.pause(Re.softPause);h(n,!!t,function(n){le.resume();var t=He.top();e.extend(t,n);M(true)})}if(e.type(n)==="string"&&t){le.login(d(n,t),true,r)}else{r()}return le},greetings:function(){L();return le},paused:function(){return Fe},pause:function(n){se(function t(){be();Fe=true;De.disable();if(!n){De.hidden()}if(e.isFunction(Re.onPause)){Re.onPause.call(le)}});return le},resume:function(){se(function n(){Fe=false;if(V.front()===le){De.enable()}De.visible();var n=Te;Te=[];for(var t=0;t<n.length;++t){le.exec.apply(le,n[t])}le.trigger("resume");var r=$.shift();if(r){r()}_();if(e.isFunction(Re.onResume)){Re.onResume.call(le)}});return le},cols:function(){return Re.numChars?Re.numChars:D(le)},rows:function(){return Re.numRows?Re.numRows:B(le)},history:function(){return De.history()},history_state:function(e){function n(){Re.historyState=true;if(!Z.length){le.save_state()}else if(V.length()>1){le.save_state(null)}}if(e){if(typeof window.setImmediate==="undefined"){setTimeout(n,0)}else{setImmediate(n)}}else{Re.historyState=false}return le},clear_history_state:function(){ee=[];Z=[];return le},next:function(){if(V.length()===1){return le}else{V.front().disable();var n=V.rotate().enable();var t=n.offset().top-50;e("html,body").animate({scrollTop:t},500);try{Re.onTerminalChange.call(n,n)}catch(r){y(r,"onTerminalChange")}return n}},focus:function(e,n){se(function t(){var t;if(V.length()===1){if(e===false){try{t=Re.onBlur.call(le,le);if(!n&&t!==false||n){le.disable()}}catch(r){y(r,"onBlur")}}else{try{t=Re.onFocus.call(le,le);if(!n&&t!==false||n){le.enable()}}catch(r){y(r,"onFocus")}}}else if(e===false){le.next()}else{var i=V.front();if(i!==le){i.disable();if(!n){try{Re.onTerminalChange.call(le,le)}catch(r){y(r,"onTerminalChange")}}}V.set(le);le.enable()}});return le},freeze:function(e){se(function n(){if(e){le.disable();Ae=true}else{Ae=false;le.enable()}})},frozen:function(){return Ae},enable:function(){if(!Ee&&!Ae){if(ge===n){le.resize()}se(function e(){De.enable();Ee=true})}return le},disable:function(){if(Ee&&!Ae){se(function e(){Ee=false;De.disable()})}return le},enabled:function(){return Ee},signature:function(){var e=le.cols();var n;if(e<15){n=null}else if(e<35){n=0}else if(e<55){n=1}else if(e<64){n=2}else if(e<75){n=3}else{n=4}if(n!==null){return X[n].join("\n")+"\n"}else{return""}},version:function(){return e.terminal.version},cmd:function(){return De},get_command:function(){return De.get()},set_command:function(e){se(function n(){De.set(e)});return le},insert:function(e){if(typeof e==="string"){se(function n(){De.insert(e)});return le}else{throw new Error("insert function argument is not a string")}},set_prompt:function(n){se(function t(){if(x("prompt",n)){if(e.isFunction(n)){De.prompt(function(e){n(e,le)})}else{De.prompt(n)}He.top().prompt=n}});return le},get_prompt:function(){return He.top().prompt},set_mask:function(e){se(function n(){De.mask(e===true?Re.maskChar:e)});return le},get_output:function(n){if(n){return pe}else{return e.map(pe,function(n){return e.isFunction(n[0])?n[0]():n[0]}).join("\n")}},resize:function(n,t){if(!le.is(":visible")){le.stopTime("resize");le.oneTime(500,"resize",function(){le.resize(n,t)})}else{if(n&&t){le.width(n);le.height(t)}n=le.width();t=le.height();var r=le.cols();var i=le.rows();if(r!==ge||i!==de){ge=r;de=i;S();var o=He.top();if(e.isFunction(o.resize)){o.resize(le)}else if(e.isFunction(Re.onResize)){Re.onResize.call(le,le)}ke=t;xe=n;_()}}return le},flush:function(){try{var n=le.is_bottom();var t;e.each(k,function(n,r){if(r===T){t=e("<div></div>")}else if(e.isFunction(r)){t.appendTo(me);try{r(t)}catch(i){y(i,"USER:echo(finalize)")}}else{e("<div/>").html(r).appendTo(t).width("100%")}});if(Re.outputLimit>=0){var r;if(Re.outputLimit===0){r=le.rows()}else{r=Re.outputLimit}var i=me.find("div div");if(i.length>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()}})}}de=B(le);if(Re.scrollOnEcho||n){_()}k=[]}catch(l){if(e.isFunction(Re.exceptionHandler)){Re.exceptionHandler.call(le,l,"TERMINAL (Flush)")}else{alert("[Flush] "+v(l)+"\n"+l.stack)}}return le},update:function(e,n){se(function t(){if(e<0){e=pe.length+e}if(!pe[e]){le.error("Invalid line number "+e)}else{if(n===null){pe.splice(e,1)}else{pe[e][0]=n}S()}});return le},last_index:function(){return pe.length-1},echo:function(n,t){function r(n){try{var r=e.extend({flush:true,raw:Re.raw,finalize:e.noop,keepWords:false,formatters:true},t||{});if(r.flush){if(k.length){le.flush()}k=[]}C(n,r);pe.push([n,e.extend(r,{exec:false})]);if(r.flush){le.flush()}}catch(i){if(e.isFunction(Re.exceptionHandler)){Re.exceptionHandler.call(le,i,"TERMINAL (echo)")}else{alert("[Terminal.echo] "+v(i)+"\n"+i.stack)}}}n=n||"";var i=e.type(n);if(i==="function"||i==="string"){r(n)}else{e.when(n).then(r)}return le},error:function(n,t){t=e.extend({},t,{raw:false,formatters:false});var r=e.terminal.escape_brackets(n).replace(/\\$/,"\").replace(E,"]$1[[;;;error]");return le.echo("[[;;;error]"+r+"]",t)},exception:function(n,t){var r=v(n);if(t){r="["+t+"]: "+r}if(r){le.error(r,{finalize:function(e){e.addClass("exception message")},keepWords:true})}if(typeof n.fileName==="string"){le.pause(Re.softPause);e.get(n.fileName,function(e){var t=n.lineNumber-1;var r=e.split("\n")[t];if(r){le.error("["+n.lineNumber+"]: "+r)}le.resume()},"text")}if(n.stack){var i=e.terminal.escape_brackets(n.stack);le.echo(i.split(/\n/g).map(function(e){return"[[;;;error]"+e.replace(E,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(fe.prop){if(e>fe.prop("scrollTop")&&e>0){fe.prop("scrollTop",0)}n=fe.prop("scrollTop");fe.scrollTop(n+e)}else{if(e>fe.attr("scrollTop")&&e>0){fe.attr("scrollTop",0)}n=fe.attr("scrollTop");fe.scrollTop(n+e)}return le},logout:function(e){if(we){throw new Error(sprintf(Se.notWhileLogin,"logout"))}se(function t(){if(e){var t=ye.pop();le.set_token(n,true);le.login.apply(le,t)}else if(He.size()===1&&le.token()){le.logout(true)}else{while(He.size()>1){if(le.token()){le.logout(true).pop().pop()}else{le.pop()}}}});return le},token:function(e){return Ce.get(le.prefix_name(e)+"_token")},set_token:function(e,n){var t=le.prefix_name(n)+"_token";if(typeof e==="undefined"){Ce.remove(t,e)}else{Ce.set(t,e)}return le},get_token:function(e){return le.token(e)},login_name:function(e){return Ce.get(le.prefix_name(e)+"_login")},name:function(){return He.top().name},prefix_name:function(e){var n=(Re.name?Re.name+"_":"")+he;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;le.push(function(n){le.pop();if(e.isFunction(t)){t(n)}r.resolve(n)},{prompt:n});return r.promise()},push:function(t,r){se(function i(){r=r||{};var i={infiniteLogin:false,extra:{}};var o=e.extend({},i,r);if(!o.name&&ce){o.name=ce.name}if(o.prompt===n){o.prompt=(o.name||">")+" "}var a=He.top();if(a){a.mask=De.mask()}var s=Fe;function l(){Re.onPush.call(le,a,He.top(),le);M()}h(t,!!r.login,function(n){He.push(e.extend({},n,o));if(o.completion===true){if(e.isArray(n.completion)){He.top().completion=n.completion}else if(!n.completion){He.top().completion=false}}if(o.login){var r;var i=e.type(o.login);if(i==="function"){r=o.infiniteLogin?e.noop:le.pop;le.login(o.login,o.infiniteLogin,l,r)}else if(e.type(t)==="string"&&i==="string"||i==="boolean"){r=o.infiniteLogin?e.noop:le.pop;le.login(d(t,o.login),o.infiniteLogin,l,r)}}else{l()}if(!s){le.resume()}})});return le},pop:function(t){if(t!==n){O(t)}var r=le.token(true);var i;if(He.size()===1){i=He.top();if(Re.login){H();if(e.isFunction(Re.onExit)){try{Re.onExit.call(le,le)}catch(o){y(o,"onExit")}}}else{le.error(Se.canExitError)}Re.onPop.call(le,i,null,le)}else{if(r){U()}var a=He.pop();i=He.top();M();Re.onPop.call(le,a,i);if(we&&le.get_prompt()!==Se.login+": "){we=false}if(e.isFunction(a.onExit)){try{a.onExit.call(le,le)}catch(o){y(o,"onExit")}}le.set_mask(i.mask)}return le},option:function(n,t){if(typeof t==="undefined"){if(typeof n==="string"){return Re[n]}else if(typeof n==="object"){e.each(n,function(e,n){Re[e]=n})}}else{Re[n]=t}return le},level:function(){return He.size()},reset:function(){se(function e(){le.clear();while(He.size()>1){He.pop()}Y()});return le},purge:function(){se(function n(){var n=le.prefix_name()+"_";var t=Ce.get(n+"interpreters");e.each(e.parseJSON(t),function(e,n){Ce.remove(n+"_commands");Ce.remove(n+"_token");Ce.remove(n+"_login")});De.purge();Ce.remove(n+"interpreters")});return le},destroy:function(){se(function n(){De.destroy().remove();me.remove();je.remove();e(document).unbind(".terminal_"+le.id());e(window).unbind(".terminal_"+le.id());le.unbind("click mousewheel mousedown mouseup");le.removeData("terminal").removeClass("terminal");if(Re.width){le.css("width","")}if(Re.height){le.css("height","")}e(window).off("blur",qe).off("focus",We);Ie.remove();V.remove(he);if(!V.length()){e(window).off("hashchange")}});return le},scroll_to_bottom:_,is_bottom:function(){if(Re.scrollBottomOffset===-1){return false}else{var n,t,r;if(le.is("body")){n=e(document).height();t=e(window).scrollTop();r=window.innerHeight}else{n=fe[0].scrollHeight;t=fe.scrollTop();r=fe.outerHeight()}var i=n-Re.scrollBottomOffset;return t+r>i}}},function(e,n){return function(){try{return n.apply(le,[].slice.apply(arguments))}catch(t){if(e!=="exec"&&e!=="resume"){y(t,"TERMINAL")}throw t}}}));if(Re.width){le.width(Re.width)}if(Re.height){le.height(Re.height)}var Oe=navigator.userAgent.toLowerCase();if(!Oe.match(/(webkit)[ \/]([\w.]+)/)&&le[0].tagName.toLowerCase()==="body"){fe=e("html")}else{fe=le}e(document).bind("ajaxSend.terminal_"+le.id(),function(e,n){Q.push(n)});var je=e('<div class="wrapper"/>').appendTo(le);var Ie=e("<iframe/>").appendTo(je);me=e("<div>").addClass("terminal-output").appendTo(je);le.addClass("terminal");if(Re.login&&e.isFunction(Re.onBeforeLogin)){try{if(Re.onBeforeLogin.call(le,le)===false){Le=false}}catch(Pe){y(Pe,"onBeforeLogin");throw Pe}}var Ne;if(typeof t==="string"){Ne=t}else if(t instanceof Array){for(var $e=0,ze=t.length;$e<ze;++$e){if(typeof t[$e]==="string"){
Ne=t[$e];break}}}if(Ne&&(typeof Re.login==="string"||Re.login===true)){Re.login=d(Ne,Re.login)}V.append(le);var He;var De;var Be;function We(){if(Be){le.focus()}}function qe(){Be=Ee;le.disable()}h(t,!!Re.login,function(t){if(Re.completion&&typeof Re.completion!=="boolean"||!Re.completion){t.completion="settings"}var r=e.extend({},oe,Re.keymap||{});He=new g(e.extend({name:Re.name,prompt:Re.prompt,keypress:Re.keypress,keydown:Re.keydown,resize:Re.onResize,greetings:Re.greetings,mousewheel:Re.mousewheel,keymap:r,extra:Re.extra},t));De=e("<div/>").appendTo(je).cmd({prompt:Re.prompt,history:Re.memory?"memory":Re.history,historyFilter:Re.historyFilter,historySize:Re.historySize,width:"100%",enabled:Ee&&!w,keydown:ae,keymap:r,clickTimeout:Re.clickTimeout,keypress:function(n){var t=He.top();if(e.isFunction(t.keypress)){return t.keypress.call(le,n,le)}else if(e.isFunction(Re.keypress)){return Re.keypress.call(le,n,le)}},onCommandChange:function(n){if(e.isFunction(Re.onCommandChange)){try{Re.onCommandChange.call(le,n,le)}catch(t){y(t,"onCommandChange");throw t}}_()},commands:z});if(Ee&&le.is(":visible")&&!w){le.focus(n,true)}else{le.disable()}le.oneTime(100,function(){function n(n){var t=e(n.target);if(!t.closest(".terminal").length&&le.enabled()&&Re.onBlur.call(le,le)!==false){le.disable()}}e(document).bind("click.terminal_"+le.id(),n).bind("contextmenu.terminal_"+le.id(),n)});var i=e(window);if(!w){i.on("focus.terminal_"+le.id(),We).on("blur.terminal_"+le.id(),qe)}else{}if(w){le.click(function(){if(!le.enabled()&&!Ae){le.focus();De.enable()}else{le.focus(false)}})}else{(function(){var n=0;var t=false;var r;le.mousedown(function(i){r=e(i.target).parents().andSelf();le.oneTime(1,function(){e(window).on("mousemove.terminal_"+le.id(),function(){t=true;n=0;e(window).off("mousemove.terminal_"+le.id())})})}).mouseup(function(){var i=t;t=false;e(window).off("mousemove.terminal_"+le.id());if(!i){if(++n===1){if(!le.enabled()&&!Ae){le.focus();De.enable()}var o="click_"+le.id();le.oneTime(Re.clickTimeout,o,function(){q();if(!r.is(".terminal-output")&&!r.is(".cmd")&&r.is(".terminal > div")){De.position(De.get().length)}n=0})}else{le.stopTime("click_"+le.id());n=0}}}).dblclick(function(){n=0;le.stopTime("click_"+le.id())})})()}le.delegate(".exception a","click",function(n){var t=e(this).attr("href");if(t.match(/:[0-9]+$/)){n.preventDefault();l(t)}});if(!navigator.platform.match(/linux/i)){le.mousedown(function(e){if(e.which===2){var n=W();le.insert(n)}})}if(le.is(":visible")){ge=le.cols();De.resize(ge);de=B(le)}if(Re.login){le.login(Re.login,true,Y)}else{Y()}function o(){if(le.is(":visible")){var e=le.width();var n=le.height();if(ke!==n||xe!==e){le.resize()}}}le.oneTime(100,function(){function e(){Ie[0].contentWindow.onresize=o}if(Ie.is(":visible")){e()}else{Ie.on("load",e)}});function a(n){var t=V.get()[n[0]];if(t&&he===t.id()){if(n[2]){try{if(Fe){var r=e.Deferred();$.push(function(){return t.exec(n[2]).then(function(){t.save_state(n[2],true,n[1]);r.resolve()})});return r.promise()}else{return t.exec(n[2]).then(function(){t.save_state(n[2],true,n[1])})}}catch(i){var o=t.settings();if(e.isFunction(o.exceptionHandler)){o.exceptionHandler.call(le,i,"EXEC HASH")}else{var a=e.terminal.escape_brackets(ve);var s="Error while exec with command "+a;t.error(s).exception(i)}}}}}if(Re.execHash){if(location.hash){setTimeout(function(){try{var n=location.hash.replace(/^#/,"");ee=e.parseJSON(decodeURIComponent(n));var t=0;(function i(){var e=ee[t++];if(e){a(e).then(i)}else{ne=true}})()}catch(r){}})}else{ne=true}}else{ne=true}if(e.event.special.mousewheel){var s=false;e(document).bind("keydown.terminal_"+le.id(),function(e){if(e.shiftKey){s=true}}).bind("keyup.terminal_"+le.id(),function(e){if(e.shiftKey||e.which===16){s=false}});le.mousewheel(function(n,t){if(!s){var r=He.top();var i;if(e.isFunction(r.mousewheel)){i=r.mousewheel(n,t,le);if(i===false){return}}else if(e.isFunction(Re.mousewheel)){i=Re.mousewheel(n,t,le);if(i===false){return}}if(t>0){le.scroll(-40)}else{le.scroll(40)}}})}_e.resolve()});le.data("terminal",le);return le}})(jQuery);