!function(a,b){function c(a,b){c.modules[a]=b}function d(a){for(var b=a.split("/"),c=[],d=0;d=0;a--){var b=i[a]||0;Array.prototype.splice.apply(h.ast.body,[b,1].concat(h.resources[a].ast.body))}e()}return a>=7?e(new g("Too many nested imports.")):h.source?setTimeout(function(){k()}):void n.load(h.id,k,j)}function f(a){if(null===h.id||j.test(a))return a;var b=h.id.split("/").slice(0,-1).concat(a.split("/")).filter(function(a){return"."!==a});return b.join("/")}var h=this;this.id=a,this.resources=[],this.source=null,this.ast={type:"L20n",body:[]},this.build=e;var i=[],j=/^\/|:/}function e(a,c,d,e){function f(a){function b(a){a&&(k++,e.emit(a instanceof g?"error":"warning",a)),i--,0===i&&(k===j.resources.length&&e.emit("error",new g("Locale has no valid resources")),c())}function c(){j.ast.body=j.resources.reduce(function(a,b){return a.concat(b.ast.body)},j.ast.body),f()}function f(){j.entries=d.compile(j.ast),j.isReady=!0,a&&a()}if(!a)var h=!0;var i=j.resources.length;if(0===i)throw new g("Locale has no resources");var k=0;j.resources.forEach(function(a){a.build(0,b,h)})}function h(a){return this.entries.hasOwnProperty(a)?this.entries[a]:b}function i(a){return this.resources.some(function(b){return b.id===a})}this.id=a,this.resources=[],this.entries=null,this.ast={type:"L20n",body:[]},this.isReady=!1,this.build=f,this.getEntry=h,this.hasResource=i;var j=this}function f(c){function f(a,c){Object.keys(c).forEach(function(d){c[d]===b?delete a[d]:null===c[d]||"object"!=typeof c[d]?a[d]=c[d]:("object"!=typeof a[d]&&(a[d]={}),f(a[d],c[d]))})}function n(a){if(!a||"object"!=typeof a)throw new g("Context data must be a non-null object");f(L,a)}function o(a,b){if(!S)throw new g("Context not ready");return u.call(Y,0,a,b).value}function p(a,b){if(!S)throw new g("Context not ready");return u.call(Y,0,a,b)}function q(a,b){if(!b)throw new g("No callback passed");return s.call(Y,a,b)}function r(a){S&&setTimeout(function(){a()}),G("ready",a)}function s(a,b,c){var d={extend:function(c){for(var d=0;d"===c)break;if(!b)throw U('Expected ">"')}return d}function g(a){var b=q();if(o(),":"!==W.charAt(X))throw U('Expected ":"');return++X,o(),{type:a,key:b,value:m()}}function h(a){var b=q(),c=[];if("["===W.charAt(X)&&(++X,o(),c=T(A,"]")),o(),":"!==W.charAt(X))throw U('Expected ":"');return++X,o(),{type:a,key:b,value:m(),index:c}}function i(){++X,o();for(var a,b,c,d=[],e=!1;;){if(a=!1,"*"===W.charAt(X)){if(++X,e)throw U("Default item redefinition forbidden");a=!0,e=!0}if(b=g("HashItem"),b.default=a,d.push(b),o(),c=","===W.charAt(X),c&&(++X,o()),"}"===W.charAt(X)){++X;break}if(!c)throw U('Expected "}"')}return{type:"Hash",content:d}}function j(){var a,b=W.charAt(++X);if("u"===b){for(var c="",d=0;4>d;d++){if(b=W[++X],a=b.charCodeAt(0),!(a>96&&103>a||a>64&&71>a||a>47&&58>a))throw U("Illegal unicode escape sequence");c+=b}return String.fromCharCode(parseInt(c,16))}return b}function k(a,b){var c,d=null,e="",f=0;X+=b-1;var g=X+1;a:for(;;)switch(c=W.charAt(++X)){case"\\":e+=j();break;case"{":if("{"===W.charAt(X+1)){if(null===d&&(d=[]),f>_-1)throw U("Too many placeables, maximum allowed is "+_);if(e&&d.push({type:"String",content:e}),X+=2,o(),d.push(A()),o(),"}"!==W.charAt(X)||"}"!==W.charAt(X+1))throw U('Expected "}}"');X+=1,f++,e="";break}default:if(1===b){if(c===a){X++;break a}}else if(c===a[0]&&W.charAt(X+1)===c&&W.charAt(X+2)===c){X+=3;break a}if(e+=c,X+1>=Y)throw U("Unclosed string literal")}return null===d?{type:"String",content:e}:(e.length&&d.push({type:"String",content:e}),{type:"ComplexString",content:d,source:W.slice(g,X-b)})}function l(a,b){var c,d,e,f=W.indexOf(a,X+b);if(-1===f)throw U("Unclosed string literal");return e=W.slice(X+b,f),c=e.indexOf("{{"),-1!==c?k(a,b):(d=e.indexOf("\\"),-1!==d?k(a,b):(X=f+b,{type:"String",content:e}))}function m(a,c){if(c===b&&(c=W.charAt(X)),"'"===c||'"'===c)return c===W.charAt(X+1)&&c===W.charAt(X+2)?l(c+c+c,3):l(c,1);if("{"===c)return i();if(!a)throw U("Unknown value type");return null}function n(){for(var a=X,b=W.charCodeAt(a);32===b||10===b||9===b||13===b;)b=W.charCodeAt(++X);return X!==a}function o(){for(var a=W.charCodeAt(X);32===a||10===a||9===a||13===a;)a=W.charCodeAt(++X)}function p(){return++X,{type:"VariableExpression",id:q()}}function q(){var a=X,b=a,c=W,d=c.charCodeAt(b);if((97>d||d>122)&&(65>d||d>90)&&95!==d)throw U("Identifier has to start with [a-zA-Z_]");for(d=c.charCodeAt(++a);d>=97&&122>=d||d>=65&&90>=d||d>=48&&57>=d||95===d;)d=c.charCodeAt(++a);return X=a,{type:"Identifier",name:c.slice(b,a)}}function r(){if(X+=6,"("!==W.charAt(X))throw U('Expected "("');++X,o();var a=l(W.charAt(X),1);if(o(),")"!==W.charAt(X))throw U('Expected ")"');return++X,{type:"ImportStatement",uri:a}}function s(a){if("_"===a.name.charAt(0))throw U('Macro ID cannot start with "_"');++X;var b=T(p,")");if(n(),"{"!==W.charAt(X))throw U('Expected "{"');++X,o();var c=A();if(o(),"}"!==W.charAt(X))throw U('Expected "}"');if(++X,o(),62!==W.charCodeAt(X))throw U('Expected ">"');return++X,{type:"Macro",id:a,args:b,expression:c}}function t(a,b){if(!n())throw U("Expected white space");var c=W.charAt(X),e=m(!0,c),f=null;if(null===e){if(">"===c)throw U('Expected ">"');f=d()}else{var g=n();if(">"!==W.charAt(X)){if(!g)throw U('Expected ">"');f=d()}}return++X,{type:"Entity",id:a,value:e,index:b,attrs:f,local:95===a.name.charCodeAt(0)}}function u(){var a=W.charCodeAt(X);if(60===a){++X;var b=q();return a=W.charCodeAt(X),40===a?s(b):91===a?(++X,t(b,T(A,"]"))):t(b,null)}if(47===W.charCodeAt(X)&&42===W.charCodeAt(X+1))return c();if("import"===W.slice(X,X+6))return r();throw U("Invalid entry")}function v(){var a=[];for(o();Y>X;){try{a.push(u())}catch(b){if(!(b instanceof e))throw b;Z.emit("error",b),a.push(V())}Y>X&&o()}return{type:"L20n",body:a}}function w(){var a=[];for(o();Y>X;)a.push(u()),Y>X&&o();return{type:"L20n",body:a}}function x(a){return W=a,X=0,Y=W.length,$()}function y(a,b){if(!Z)throw new Error("Emitter not available");return Z.addEventListener(a,b)}function z(a,b){if(!Z)throw new Error("Emitter not available");return Z.removeEventListener(a,b)}function A(){return D()}function B(a,b,c,d){for(var e,f,g=d();;){if(e="",o(),f=W.charAt(X),-1===a[0].indexOf(f))break;if(e+=f,++X,a.length>1)if(f=W.charAt(X),a[1]===f)++X,e+=f;else if(a[2])return--X,g;o(),g={type:b,operator:{type:c,token:e},left:g,right:d()}}return g}function C(a,b,c,d){var e=W.charCodeAt(X);return-1===a.indexOf(e)?d():(++X,o(),{type:b,operator:{type:c,token:String.fromCharCode(e)},argument:C(a,b,c,d)})}function D(){var a=E();if(o(),63!==W.charCodeAt(X))return a;++X,o();var b=A();if(o(),58!==W.charCodeAt(X))throw U('Expected ":"');return++X,o(),{type:"ConditionalExpression",test:a,consequent:b,alternate:A()}}function E(){return B([["|"],"|",!0],"LogicalExpression","LogicalOperator",F)}function F(){return B([["&"],"&",!0],"LogicalExpression","Logicalperator",G)}function G(){return B([["=","!"],"=",!0],"BinaryExpression","BinaryOperator",H)}function H(){return B([["<",">"],"=",!1],"BinaryExpression","BinaryOperator",I)}function I(){return B([["+","-"]],"BinaryExpression","BinaryOperator",J)}function J(){return B([["%"]],"BinaryExpression","BinaryOperator",K)}function K(){return B([["*"]],"BinaryExpression","BinaryOperator",L)}function L(){return B([["/"]],"BinaryExpression","BinaryOperator",M)}function M(){return C([43,45,33],"UnaryExpression","UnaryOperator",Q)}function N(a){return o(),{type:"CallExpression",callee:a,arguments:T(A,")")}}function O(a,b){if("ParenthesisExpression"!==a.type&&"Identifier"!==a.type&&"ThisExpression"!==a.type)throw U("AttributeExpression must have Identifier, This or Parenthesis as left node");var c;if(b){if(o(),c=A(),o(),"]"!==W.charAt(X))throw U('Expected "]"');return++X,{type:"AttributeExpression",expression:a,attribute:c,computed:!0}}return c=q(),{type:"AttributeExpression",expression:a,attribute:c,computed:!1}}function P(a,b){var c;if(b){if(o(),c=A(),o(),"]"!==W.charAt(X))throw U('Expected "]"');return++X,{type:"PropertyExpression",expression:a,property:c,computed:!0}}return c=q(),{type:"PropertyExpression",expression:a,property:c,computed:!1}}function Q(){for(var a,b=R();;)if(a=W.charCodeAt(X),46===a||91===a)++X,b=P(b,91===a);else if(58===a&&58===W.charCodeAt(X+1))X+=2,91===W.charCodeAt(X)?(++X,b=O(b,!0)):b=O(b,!1);else{if(40!==a)break;++X,b=N(b)}return b}function R(){if(40===W.charCodeAt(X)){++X,o();var a={type:"ParenthesisExpression",expression:A()};if(o(),41!==W.charCodeAt(X))throw U('Expected ")"');return++X,a}return S()}function S(){for(var a=X,b=W.charCodeAt(a);b>47&&58>b;)b=W.charCodeAt(++a);if(a>X){var c=X;return X=a,{type:"Number",value:parseInt(W.slice(c,a),10)}}switch(b){case 39:case 34:case 123:case 91:return m();case 36:return p();case 64:return++X,{type:"GlobalsExpression",id:q()};case 126:return++X,{type:"ThisExpression"};default:return q()}}function T(a,b){var c;if(o(),W.charAt(X)===b)return++X,[];for(var d=[];;){if(d.push(a()),o(),c=W.charAt(X),","!==c){if(c===b){++X;break}throw U('Expected "," or "'+b+'"')}++X,o()}return d}function U(a,c){c===b&&(c=X);var d=W.lastIndexOf("<",c-1),f=W.lastIndexOf(">",c-1);d=f>d?f+1:d;var g=W.slice(d,c+10),h=a+" at pos "+c+': "'+g+'"';return new e(h,c,g)}function V(){var a,b=W.indexOf("<",X);return-1===b?(a={type:"JunkEntry",content:W.slice(X)},X=Y,a):(a={type:"JunkEntry",content:W.slice(X,b)},X=b,a)}this.parse=x,this.addEventListener=y,this.removeEventListener=z;var W,X,Y,Z,$,_=100;a?$=w:(Z=new f,$=v)}function e(a,b,c){this.name="ParserError",this.message=a,this.pos=b,this.context=c}var f=a("./events").EventEmitter;d.Error=e,e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,c.Parser=d}),c("l20n/compiler",function(a,c){function d(){function a(a,b){b||(b={});for(var c,d=0;c=a.body[d];d++){var e=Q[c.type];if(e)try{b[c.id.name]=new e(c,b)}catch(f){j(f)}}return b}function c(a){return O=a,!0}function d(a,b){return N.addEventListener(a,b)}function e(a,b){return N.removeEventListener(a,b)}function l(a,b,c,d){var e=new a(b,c,d);return N.emit("error",e),e}function m(a,b){this.id=a.id.name,this.env=b,this.local=a.local||!1,this.index=null,this.attributes=null,this.publicAttributes=null;var c;if(a.index)for(this.index=[],c=0;cM)throw new g("Placeable has too many characters, maximum allowed is "+M);l.push(n)}}catch(o){throw j(o),new h(o.message,c,a.source)}finally{e=!1}return[f,l.join("")]}}()}function z(a,b){var c=p(a,b);return function(){var a=!1;return function(d,e){if(a)throw new g("Cyclic reference detected");a=!0;var f;try{f=r(c,d,e)}catch(h){if(h instanceof i)throw h;throw j(h),l(i,h.message,b)}finally{a=!1}return[d,f]}}()}function A(a,c,d){for(var e,f={},g=d?d.shift():b,h=0;ha};if("<="===a)return function(a,b){if("number"!=typeof a||"number"!=typeof b)throw new g("The <= operator takes two numbers");return b>=a};if(">"===a)return function(a,b){if("number"!=typeof a||"number"!=typeof b)throw new g("The > operator takes two numbers");return a>b};if(">="===a)return function(a,b){if("number"!=typeof a||"number"!=typeof b)throw new g("The >= operator takes two numbers");return a>=b};if("+"===a)return function(a,b){if(!("number"==typeof a&&"number"==typeof b||"string"==typeof a&&"string"==typeof b))throw new g("The + operator takes two numbers or two strings");return a+b};if("-"===a)return function(a,b){if("number"!=typeof a||"number"!=typeof b)throw new g("The - operator takes two numbers");return a-b};if("*"===a)return function(a,b){if("number"!=typeof a||"number"!=typeof b)throw new g("The * operator takes two numbers");return a*b};if("/"===a)return function(a,b){if("number"!=typeof a||"number"!=typeof b)throw new g("The / operator takes two numbers");if(0===b)throw new g("Division by zero not allowed.");return a/b};if("%"===a)return function(a,b){if("number"!=typeof a||"number"!=typeof b)throw new g("The % operator takes two numbers");if(0===b)throw new g("Modulo zero not allowed.");return a%b};throw l(f,"Unknown token: "+a,b)}function D(a,b){if("&&"===a)return function(a,b){if("boolean"!=typeof a||"boolean"!=typeof b)throw new g("The && operator takes two booleans");return a&&b};if("||"===a)return function(a,b){if("boolean"!=typeof a||"boolean"!=typeof b)throw new g("The || operator takes two booleans");return a||b};throw l(f,"Unknown token: "+a,b)}function E(a,b){var c=B(a.operator.token,b),d=p(a.argument,b);return function(a,b){return[a,c(r(d,a,b))]}}function F(a,b){var c=p(a.left,b),d=C(a.operator.token,b),e=p(a.right,b);return function(a,b){return[a,d(r(c,a,b),r(e,a,b))]}}function G(a,b){var c=p(a.left,b),d=D(a.operator.token,b),e=p(a.right,b);return function(a,b){return[a,d(r(c,a,b),r(e,a,b))]}}function H(a,b){var c=p(a.test,b),d=p(a.consequent,b),e=p(a.alternate,b);return function(a,b){var f=r(c,a,b);if("boolean"!=typeof f)throw new g("Conditional expressions must test a boolean");return f===!0?d(a,b):e(a,b)}}function I(a,b){for(var c=p(a.callee,b),d=[],e=0;e0||"x"===d))break;4===d.length?d=d[0].toUpperCase()+d.substring(1):0!==c&&2===d.length&&(d=d.toUpperCase()),m.hasOwnProperty(d)?d=m[d]:n.hasOwnProperty(d)&&(d=n[d].preferred,1===c&&n[d].prefix===b[0]&&(b.shift(),c--)),b[c]=d,c++}for(var e=b.slice(0,c).join("-"),f=[];c1;)c++;var h=sybtags.slice(g,c).join("-");f.push(h)}f.sort();var i="";c0&&(j+="-"+f.join("-")),i.length>0&&(j.length>0?j+="-"+i:j=i),j}function f(a){if(a===b)return[];var c=[];"string"==typeof a&&(a=[a]);for(var f=a,g=f.length,h=0;g>h;){var i=h in f;if(i){var j=f[h];"string"!=typeof j&&"object"!=typeof j&&ThrowError(JSMSG_INVALID_LOCALES_ELEMENT);var k=j;d(k)||ThrowError(JSMSG_INVALID_LANGUAGE_TAG,k),k=e(k),-1===c.indexOf(k)&&c.push(k)}h++}return c}function g(a,c){for(var d=c;;){if(-1!==a.indexOf(d))return d;var e=d.lastIndexOf("-");if(-1===e)return b;e>=2&&"-"===d[e-2]&&(e-=2),d=d.substring(0,e)}}function h(a,c){for(var d=c.length,e=[],f=0;d>f;){var h=c[f],i=h.replace(k,""),j=g(a,i);j!==b&&e.push(j),f++}return e.slice(0)}function i(a,b,c){a=f(a),b=f(b);var d=h(a,b);return c?(c=e(c),-1===d.indexOf(c)&&d.push(c),d):d}String.prototype.startsWith||Object.defineProperty(String.prototype,"startsWith",{enumerable:!1,configurable:!1,writable:!1,value:function(a,b){return b=b||0,this.indexOf(a,b)===b}});var j="-u(-[a-z0-9]{2,8})+",k=(new RegExp(j),new RegExp(j,"g")),l={},m={},n={},o=function(){var a="[a-zA-Z]",b="[0-9]",c="(?:"+a+"|"+b+")",d="(?:art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)",e="(?:en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)",f="(?:"+e+"|"+d+")",g="(?:x(?:-[a-z0-9]{1,8})+)",h="(?:"+b+"|[A-WY-Za-wy-z])",i="(?:"+h+"(?:-"+c+"{2,8})+)",j="(?:"+c+"{5,8}|(?:"+b+c+"{3}))",k="(?:"+a+"{2}|"+b+"{3})",l="(?:"+a+"{4})",m="(?:"+a+"{3}(?:-"+a+"{3}){0,2})",n="(?:"+a+"{2,3}(?:-"+m+")?|"+a+"{4}|"+a+"{5,8})",o=n+"(?:-"+l+")?(?:-"+k+")?(?:-"+j+")*(?:-"+i+")*(?:-"+g+")?",p="^(?:"+o+"|"+g+"|"+f+")$";return new RegExp(p,"i")}(),p=function(){var a="[a-zA-Z]",b="[0-9]",c="(?:"+a+"|"+b+")",d="(?:"+c+"{5,8}|(?:"+b+c+"{3}))",e="(?:"+c+"{2,8}-)+("+d+")-(?:"+c+"{2,8}-)*\\1(?!"+c+")";return new RegExp(e)}(),q=function(){var a="[a-zA-Z]",b="[0-9]",c="(?:"+a+"|"+b+")",d="(?:"+b+"|[A-WY-Za-wy-z])",e="-("+d+")-(?:"+c+"+-)*\\1(?!"+c+")";return new RegExp(e)}();c.Intl={prioritizeLocales:i}}),a.L20n=h("l20n"),h("l20n/html")}(window);