(function(root,undef){var ArrayProto=Array.prototype,ObjProto=Object.prototype,slice=ArrayProto.slice,hasOwnProp=ObjProto.hasOwnProperty,nativeForEach=ArrayProto.forEach,breaker={};var _={forEach:function(obj,iterator,context){var i,l,key;if(obj===null){return;}
if(nativeForEach&&obj.forEach===nativeForEach){obj.forEach(iterator,context);}
else if(obj.length===+obj.length){for(i=0,l=obj.length;i<l;i++){if(i in obj&&iterator.call(context,obj[i],i,obj)===breaker){return;}}}
else{for(key in obj){if(hasOwnProp.call(obj,key)){if(iterator.call(context,obj[key],key,obj)===breaker){return;}}}}},extend:function(obj){this.forEach(slice.call(arguments,1),function(source){for(var prop in source){obj[prop]=source[prop];}});return obj;}};var Jed=function(options){this.defaults={"locale_data":{"messages":{"":{"domain":"messages","lang":"en","plural_forms":"nplurals=2; plural=(n != 1);"}
}},"domain":"messages"};this.options=_.extend({},this.defaults,options);this.textdomain(this.options.domain);if(options.domain&&!this.options.locale_data[this.options.domain]){throw new Error('Text domain set to non-existent domain: `'+options.domain+'`');}};Jed.context_delimiter=String.fromCharCode(4);function getPluralFormFunc(plural_form_string){return Jed.PF.compile(plural_form_string||"nplurals=2; plural=(n != 1);");}
function Chain(key,i18n){this._key=key;this._i18n=i18n;}
_.extend(Chain.prototype,{onDomain:function(domain){this._domain=domain;return this;},withContext:function(context){this._context=context;return this;},ifPlural:function(num,pkey){this._val=num;this._pkey=pkey;return this;},fetch:function(sArr){if({}.toString.call(sArr)!='[object Array]'){sArr=[].slice.call(arguments);}
return(sArr&&sArr.length?Jed.sprintf:function(x){return x;})(this._i18n.dcnpgettext(this._domain,this._context,this._key,this._pkey,this._val),sArr);}});_.extend(Jed.prototype,{translate:function(key){return new Chain(key,this);},textdomain:function(domain){if(!domain){return this._textdomain;}
this._textdomain=domain;},gettext:function(key){return this.dcnpgettext.call(this,undef,undef,key);},dgettext:function(domain,key){return this.dcnpgettext.call(this,domain,undef,key);},dcgettext:function(domain,key){return this.dcnpgettext.call(this,domain,undef,key);},ngettext:function(skey,pkey,val){return this.dcnpgettext.call(this,undef,undef,skey,pkey,val);},dngettext:function(domain,skey,pkey,val){return this.dcnpgettext.call(this,domain,undef,skey,pkey,val);},dcngettext:function(domain,skey,pkey,val){return this.dcnpgettext.call(this,domain,undef,skey,pkey,val);},pgettext:function(context,key){return this.dcnpgettext.call(this,undef,context,key);},dpgettext:function(domain,context,key){return this.dcnpgettext.call(this,domain,context,key);},dcpgettext:function(domain,context,key){return this.dcnpgettext.call(this,domain,context,key);},npgettext:function(context,skey,pkey,val){return this.dcnpgettext.call(this,undef,context,skey,pkey,val);},dnpgettext:function(domain,context,skey,pkey,val){return this.dcnpgettext.call(this,domain,context,skey,pkey,val);},dcnpgettext:function(domain,context,singular_key,plural_key,val){plural_key=plural_key||singular_key;domain=domain||this._textdomain;val=typeof val=='undefined'?1:val;var fallback;if(!this.options){fallback=new Jed();return fallback.dcnpgettext.call(fallback,undefined,undefined,singular_key,plural_key,val);}
if(!this.options.locale_data){throw new Error('No locale data provided.');}
if(!this.options.locale_data[domain]){throw new Error('Domain `'+domain+'` was not found.');}
if(!this.options.locale_data[domain][""]){throw new Error('No locale meta information provided.');}
if(!singular_key){throw new Error('No translation key found.');}
if(typeof val!='number'){val=parseInt(val,10);if(isNaN(val)){throw new Error('The number that was passed in is not a number.');}}
var key=context?context+Jed.context_delimiter+singular_key:singular_key,locale_data=this.options.locale_data,dict=locale_data[domain],pluralForms=dict[""].plural_forms||(locale_data.messages||this.defaults.locale_data.messages)[""].plural_forms,val_idx=getPluralFormFunc(pluralForms)(val)+1,val_list,res;if(!dict){throw new Error('No domain named `'+domain+'` could be found.');}
val_list=dict[key];if(!val_list||val_idx>=val_list.length){if(this.options.missing_key_callback){this.options.missing_key_callback(key);}
res=[null,singular_key,plural_key];return res[getPluralFormFunc(pluralForms)(val)+1];}
res=val_list[val_idx];if(!res){res=[null,singular_key,plural_key];return res[getPluralFormFunc(pluralForms)(val)+1];}
return res;}});var sprintf=(function(){function get_type(variable){return Object.prototype.toString.call(variable).slice(8,-1).toLowerCase();}
function str_repeat(input,multiplier){for(var output=[];multiplier>0;output[--multiplier]=input){}
return output.join('');}
var str_format=function(){if(!str_format.cache.hasOwnProperty(arguments[0])){str_format.cache[arguments[0]]=str_format.parse(arguments[0]);}
return str_format.format.call(null,str_format.cache[arguments[0]],arguments);};str_format.format=function(parse_tree,argv){var cursor=1,tree_length=parse_tree.length,node_type='',arg,output=[],i,k,match,pad,pad_character,pad_length;for(i=0;i<tree_length;i++){node_type=get_type(parse_tree[i]);if(node_type==='string'){output.push(parse_tree[i]);}
else if(node_type==='array'){match=parse_tree[i];if(match[2]){arg=argv[cursor];for(k=0;k<match[2].length;k++){if(!arg.hasOwnProperty(match[2][k])){throw(sprintf('[sprintf] property "%s" does not exist',match[2][k]));}
arg=arg[match[2][k]];}}
else if(match[1]){arg=argv[match[1]];}
else{arg=argv[cursor++];}
if(/[^s]/.test(match[8])&&(get_type(arg)!='number')){throw(sprintf('[sprintf] expecting number but found %s',get_type(arg)));}
if(typeof arg=='undefined'||arg===null){arg='';}
switch(match[8]){case'b':arg=arg.toString(2);break;case'c':arg=String.fromCharCode(arg);break;case'd':arg=parseInt(arg,10);break;case'e':arg=match[7]?arg.toExponential(match[7]):arg.toExponential();break;case'f':arg=match[7]?parseFloat(arg).toFixed(match[7]):parseFloat(arg);break;case'o':arg=arg.toString(8);break;case's':arg=((arg=String(arg))&&match[7]?arg.substring(0,match[7]):arg);break;case'u':arg=Math.abs(arg);break;case'x':arg=arg.toString(16);break;case'X':arg=arg.toString(16).toUpperCase();break;}
arg=(/[def]/.test(match[8])&&match[3]&&arg>=0?'+'+arg:arg);pad_character=match[4]?match[4]=='0'?'0':match[4].charAt(1):' ';pad_length=match[6]-String(arg).length;pad=match[6]?str_repeat(pad_character,pad_length):'';output.push(match[5]?arg+pad:pad+arg);}}
return output.join('');};str_format.cache={};str_format.parse=function(fmt){var _fmt=fmt,match=[],parse_tree=[],arg_names=0;while(_fmt){if((match=/^[^\x25]+/.exec(_fmt))!==null){parse_tree.push(match[0]);}
else if((match=/^\x25{2}/.exec(_fmt))!==null){parse_tree.push('%');}
else if((match=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt))!==null){if(match[2]){arg_names|=1;var field_list=[],replacement_field=match[2],field_match=[];if((field_match=/^([a-z_][a-z_\d]*)/i.exec(replacement_field))!==null){field_list.push(field_match[1]);while((replacement_field=replacement_field.substring(field_match[0].length))!==''){if((field_match=/^\.([a-z_][a-z_\d]*)/i.exec(replacement_field))!==null){field_list.push(field_match[1]);}
else if((field_match=/^\[(\d+)\]/.exec(replacement_field))!==null){field_list.push(field_match[1]);}
else{throw('[sprintf] huh?');}}}
else{throw('[sprintf] huh?');}
match[2]=field_list;}
else{arg_names|=2;}
if(arg_names===3){throw('[sprintf] mixing positional and named placeholders is not (yet) supported');}
parse_tree.push(match);}
else{throw('[sprintf] huh?');}
_fmt=_fmt.substring(match[0].length);}
return parse_tree;};return str_format;})();var vsprintf=function(fmt,argv){argv.unshift(fmt);return sprintf.apply(null,argv);};Jed.parse_plural=function(plural_forms,n){plural_forms=plural_forms.replace(/n/g,n);return Jed.parse_expression(plural_forms);};Jed.sprintf=function(fmt,args){if({}.toString.call(args)=='[object Array]'){return vsprintf(fmt,[].slice.call(args));}
return sprintf.apply(this,[].slice.call(arguments));};Jed.prototype.sprintf=function(){return Jed.sprintf.apply(this,arguments);};Jed.PF={};Jed.PF.parse=function(p){var plural_str=Jed.PF.extractPluralExpr(p);return Jed.PF.parser.parse.call(Jed.PF.parser,plural_str);};Jed.PF.compile=function(p){function imply(val){return(val===true?1:val?val:0);}
var ast=Jed.PF.parse(p);return function(n){return imply(Jed.PF.interpreter(ast)(n));};};Jed.PF.interpreter=function(ast){return function(n){var res;switch(ast.type){case'GROUP':return Jed.PF.interpreter(ast.expr)(n);case'TERNARY':if(Jed.PF.interpreter(ast.expr)(n)){return Jed.PF.interpreter(ast.truthy)(n);}
return Jed.PF.interpreter(ast.falsey)(n);case'OR':return Jed.PF.interpreter(ast.left)(n)||Jed.PF.interpreter(ast.right)(n);case'AND':return Jed.PF.interpreter(ast.left)(n)&&Jed.PF.interpreter(ast.right)(n);case'LT':return Jed.PF.interpreter(ast.left)(n)<Jed.PF.interpreter(ast.right)(n);case'GT':return Jed.PF.interpreter(ast.left)(n)>Jed.PF.interpreter(ast.right)(n);case'LTE':return Jed.PF.interpreter(ast.left)(n)<=Jed.PF.interpreter(ast.right)(n);case'GTE':return Jed.PF.interpreter(ast.left)(n)>=Jed.PF.interpreter(ast.right)(n);case'EQ':return Jed.PF.interpreter(ast.left)(n)==Jed.PF.interpreter(ast.right)(n);case'NEQ':return Jed.PF.interpreter(ast.left)(n)!=Jed.PF.interpreter(ast.right)(n);case'MOD':return Jed.PF.interpreter(ast.left)(n)%Jed.PF.interpreter(ast.right)(n);case'VAR':return n;case'NUM':return ast.val;default:throw new Error("Invalid Token found.");}};};Jed.PF.extractPluralExpr=function(p){p=p.replace(/^\s\s*/,'').replace(/\s\s*$/,'');if(!/;\s*$/.test(p)){p=p.concat(';');}
var nplurals_re=/nplurals\=(\d+);/,plural_re=/plural\=(.*);/,nplurals_matches=p.match(nplurals_re),res={},plural_matches;if(nplurals_matches.length>1){res.nplurals=nplurals_matches[1];}
else{throw new Error('nplurals not found in plural_forms string: '+p);}
p=p.replace(nplurals_re,"");plural_matches=p.match(plural_re);if(!(plural_matches&&plural_matches.length>1)){throw new Error('`plural` expression not found: '+p);}
return plural_matches[1];};Jed.PF.parser=(function(){var parser={trace:function trace(){},yy:{},symbols_:{"error":2,"expressions":3,"e":4,"EOF":5,"?":6,":":7,"||":8,"&&":9,"<":10,"<=":11,">":12,">=":13,"!=":14,"==":15,"%":16,"(":17,")":18,"n":19,"NUMBER":20,"$accept":0,"$end":1},terminals_:{2:"error",5:"EOF",6:"?",7:":",8:"||",9:"&&",10:"<",11:"<=",12:">",13:">=",14:"!=",15:"==",16:"%",17:"(",18:")",19:"n",20:"NUMBER"},productions_:[0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],performAction:function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return{type:'GROUP',expr:$$[$0-1]};break;case 2:this.$={type:'TERNARY',expr:$$[$0-4],truthy:$$[$0-2],falsey:$$[$0]};break;case 3:this.$={type:"OR",left:$$[$0-2],right:$$[$0]};break;case 4:this.$={type:"AND",left:$$[$0-2],right:$$[$0]};break;case 5:this.$={type:'LT',left:$$[$0-2],right:$$[$0]};break;case 6:this.$={type:'LTE',left:$$[$0-2],right:$$[$0]};break;case 7:this.$={type:'GT',left:$$[$0-2],right:$$[$0]};break;case 8:this.$={type:'GTE',left:$$[$0-2],right:$$[$0]};break;case 9:this.$={type:'NEQ',left:$$[$0-2],right:$$[$0]};break;case 10:this.$={type:'EQ',left:$$[$0-2],right:$$[$0]};break;case 11:this.$={type:'MOD',left:$$[$0-2],right:$$[$0]};break;case 12:this.$={type:'GROUP',expr:$$[$0-1]};break;case 13:this.$={type:'VAR'};break;case 14:this.$={type:'NUM',val:Number(yytext)};break;}},table:[{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],defaultActions:{6:[2,1]},parseError:function parseError(str,hash){throw new Error(str);},parse:function parse(input){var self=this,stack=[0],vstack=[null],lstack=[],table=this.table,yytext='',yylineno=0,yyleng=0,recovering=0,TERROR=2,EOF=1;this.lexer.setInput(input);this.lexer.yy=this.yy;this.yy.lexer=this.lexer;if(typeof this.lexer.yylloc=='undefined')
this.lexer.yylloc={};var yyloc=this.lexer.yylloc;lstack.push(yyloc);if(typeof this.yy.parseError==='function')
this.parseError=this.yy.parseError;function popStack(n){stack.length=stack.length-2*n;vstack.length=vstack.length-n;lstack.length=lstack.length-n;}
function lex(){var token;token=self.lexer.lex()||1;if(typeof token!=='number'){token=self.symbols_[token]||token;}
return token;}
var symbol,preErrorSymbol,state,action,a,r,yyval={},p,len,newState,expected;while(true){state=stack[stack.length-1];if(this.defaultActions[state]){action=this.defaultActions[state];}else{if(symbol==null)
symbol=lex();action=table[state]&&table[state][symbol];}
_handle_error:if(typeof action==='undefined'||!action.length||!action[0]){if(!recovering){expected=[];for(p in table[state])if(this.terminals_[p]&&p>2){expected.push("'"+this.terminals_[p]+"'");}
var errStr='';if(this.lexer.showPosition){errStr='Parse error on line '+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(', ')+", got '"+this.terminals_[symbol]+"'";}else{errStr='Parse error on line '+(yylineno+1)+": Unexpected "+
(symbol==1?"end of input":("'"+(this.terminals_[symbol]||symbol)+"'"));}
this.parseError(errStr,{text:this.lexer.match,token:this.terminals_[symbol]||symbol,line:this.lexer.yylineno,loc:yyloc,expected:expected});}
if(recovering==3){if(symbol==EOF){throw new Error(errStr||'Parsing halted.');}
yyleng=this.lexer.yyleng;yytext=this.lexer.yytext;yylineno=this.lexer.yylineno;yyloc=this.lexer.yylloc;symbol=lex();}
while(1){if((TERROR.toString())in table[state]){break;}
if(state==0){throw new Error(errStr||'Parsing halted.');}
popStack(1);state=stack[stack.length-1];}
preErrorSymbol=symbol;symbol=TERROR;state=stack[stack.length-1];action=table[state]&&table[state][TERROR];recovering=3;}
if(action[0]instanceof Array&&action.length>1){throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);}
switch(action[0]){case 1:stack.push(symbol);vstack.push(this.lexer.yytext);lstack.push(this.lexer.yylloc);stack.push(action[1]);symbol=null;if(!preErrorSymbol){yyleng=this.lexer.yyleng;yytext=this.lexer.yytext;yylineno=this.lexer.yylineno;yyloc=this.lexer.yylloc;if(recovering>0)
recovering--;}else{symbol=preErrorSymbol;preErrorSymbol=null;}
break;case 2:len=this.productions_[action[1]][1];yyval.$=vstack[vstack.length-len];yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column};r=this.performAction.call(yyval,yytext,yyleng,yylineno,this.yy,action[1],vstack,lstack);if(typeof r!=='undefined'){return r;}
if(len){stack=stack.slice(0,-1*len*2);vstack=vstack.slice(0,-1*len);lstack=lstack.slice(0,-1*len);}
stack.push(this.productions_[action[1]][0]);vstack.push(yyval.$);lstack.push(yyval._$);newState=table[stack[stack.length-2]][stack[stack.length-1]];stack.push(newState);break;case 3:return true;}}
return true;}};var lexer=(function(){var lexer=({EOF:1,parseError:function parseError(str,hash){if(this.yy.parseError){this.yy.parseError(str,hash);}else{throw new Error(str);}},setInput:function(input){this._input=input;this._more=this._less=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match='';this.conditionStack=['INITIAL'];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};return this;},input:function(){var ch=this._input[0];this.yytext+=ch;this.yyleng++;this.match+=ch;this.matched+=ch;var lines=ch.match(/\n/);if(lines)this.yylineno++;this._input=this._input.slice(1);return ch;},unput:function(ch){this._input=ch+this._input;return this;},more:function(){this._more=true;return this;},pastInput:function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?'...':'')+past.substr(-20).replace(/\n/g,"");},upcomingInput:function(){var next=this.match;if(next.length<20){next+=this._input.substr(0,20-next.length);}
return(next.substr(0,20)+(next.length>20?'...':'')).replace(/\n/g,"");},showPosition:function(){var pre=this.pastInput();var c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^";},next:function(){if(this.done){return this.EOF;}
if(!this._input)this.done=true;var token,match,col,lines;if(!this._more){this.yytext='';this.match='';}
var rules=this._currentRules();for(var i=0;i<rules.length;i++){match=this._input.match(this.rules[rules[i]]);if(match){lines=match[0].match(/\n.*/g);if(lines)this.yylineno+=lines.length;this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-1:this.yylloc.last_column+match[0].length}
this.yytext+=match[0];this.match+=match[0];this.matches=match;this.yyleng=this.yytext.length;this._more=false;this._input=this._input.slice(match[0].length);this.matched+=match[0];token=this.performAction.call(this,this.yy,this,rules[i],this.conditionStack[this.conditionStack.length-1]);if(token)return token;else return;}}
if(this._input===""){return this.EOF;}else{this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),{text:"",token:null,line:this.yylineno});}},lex:function lex(){var r=this.next();if(typeof r!=='undefined'){return r;}else{return this.lex();}},begin:function begin(condition){this.conditionStack.push(condition);},popState:function popState(){return this.conditionStack.pop();},_currentRules:function _currentRules(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;},topState:function(){return this.conditionStack[this.conditionStack.length-2];},pushState:function begin(condition){this.begin(condition);}});lexer.performAction=function anonymous(yy,yy_,$avoiding_name_collisions,YY_START){var YYSTATE=YY_START;switch($avoiding_name_collisions){case 0:break;case 1:return 20
break;case 2:return 19
break;case 3:return 8
break;case 4:return 9
break;case 5:return 6
break;case 6:return 7
break;case 7:return 11
break;case 8:return 13
break;case 9:return 10
break;case 10:return 12
break;case 11:return 14
break;case 12:return 15
break;case 13:return 16
break;case 14:return 17
break;case 15:return 18
break;case 16:return 5
break;case 17:return'INVALID'
break;}};lexer.rules=[/^\s+/,/^[0-9]+(\.[0-9]+)?\b/,/^n\b/,/^\|\|/,/^&&/,/^\?/,/^:/,/^<=/,/^>=/,/^</,/^>/,/^!=/,/^==/,/^%/,/^\(/,/^\)/,/^$/,/^./];lexer.conditions={"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"inclusive":true}};return lexer;})()
parser.lexer=lexer;return parser;})();if(typeof exports!=='undefined'){if(typeof module!=='undefined'&&module.exports){exports=module.exports=Jed;}
exports.Jed=Jed;}
else{if(typeof define==='function'&&define.amd){define('jed',function(){return Jed;});}
root['Jed']=Jed;}})(this);