MathJax.Extension["TeX/begingroup"]={version:"2.7.9"},MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var e=MathJax.InputJax.TeX,r=e.Definitions,s=MathJax.Object.Subclass({macros:null,environments:null,Init:function(t,n){this.macros=t||{},this.environments=n||{}},Find:function(t,n){if(this[n].hasOwnProperty(t))return this[n][t]},Def:function(t,n,i){this[i][t]=n},Undef:function(t,n){delete this[n][t]},Merge:function(t){MathJax.Hub.Insert(this.macros,t.macros),MathJax.Hub.Insert(this.environments,t.environments)},MergeGlobals:function(t){var n=this.macros;for(var i in n)n.hasOwnProperty(i)&&n[i].global&&(t.Def(i,n[i],"macros",!0),delete n[i].global,delete n[i])},Clear:function(t){if(this.environments={},t)this.macros={};else{var n=this.macros;for(var i in n)n.hasOwnProperty(i)&&!n[i].global&&delete n[i]}return this}}),c=e.nsStack=MathJax.Object.Subclass({stack:null,top:0,isEqn:!1,Init:function(t){this.isEqn=t,this.stack=[],t?this.Push(s()):this.Push(s(r.macros,r.environment))},Def:function(t,n,i,o){var a=this.top-1;if(o){for(;a>0;)this.stack[a].Undef(t,i),a--;MathJax.Object.isArray(n)||(n=[n]),this.isEqn&&(n.global=!0)}this.stack[a].Def(t,n,i)},Push:function(t){this.stack.push(t),this.top=this.stack.length},Pop:function(){var t;return this.top>1?(t=this.stack[--this.top],this.isEqn&&this.stack.pop()):this.isEqn&&this.Clear(),t},Find:function(t,n){for(var i=this.top-1;i>=0;i--){var o=this.stack[i].Find(t,n);if(o)return o}return null},Merge:function(t){t.stack[0].MergeGlobals(this),this.stack[this.top-1].Merge(t.stack[0]);var n=[this.top,this.stack.length-this.top].concat(t.stack.slice(1));this.stack.splice.apply(this.stack,n),this.top=this.stack.length},Reset:function(){this.top=this.stack.length},Clear:function(t){this.stack=[this.stack[0].Clear()],this.top=this.stack.length}},{nsFrame:s});r.Add({macros:{begingroup:"BeginGroup",endgroup:"EndGroup",global:"Global",gdef:["Macro","\\global\\def"]}},null,!0),e.Parse.Augment({BeginGroup:function(t){e.eqnStack.Push(s())},EndGroup:function(t){e.eqnStack.top>1?e.eqnStack.Pop():e.rootStack.top===1?e.Error(["ExtraEndMissingBegin","Extra %1 or missing \\begingroup",t]):(e.eqnStack.Clear(),e.rootStack.Pop())},csFindMacro:function(t){return e.eqnStack.Find(t,"macros")||e.rootStack.Find(t,"macros")},envFindName:function(t){return e.eqnStack.Find(t,"environments")||e.rootStack.Find(t,"environments")},setDef:function(t,n){n.isUser=!0,e.eqnStack.Def(t,n,"macros",this.stack.env.isGlobal),delete this.stack.env.isGlobal},setEnv:function(t,n){n.isUser=!0,e.eqnStack.Def(t,n,"environments")},Global:function(t){var n=this.i,i=this.GetCSname(t);this.i=n,i!=="let"&&i!=="def"&&i!=="newcommand"&&i!=="DeclareMathOperator"&&i!=="Newextarrow"&&e.Error(["GlobalNotFollowedBy","%1 not followed by \\let, \\def, or \\newcommand",t]),this.stack.env.isGlobal=!0}}),e.rootStack=c(),e.eqnStack=c(!0),e.prefilterHooks.Add(function(){e.rootStack.Reset(),e.eqnStack.Clear(!0)}),e.postfilterHooks.Add(function(){e.rootStack.Merge(e.eqnStack)}),MathJax.Hub.Startup.signal.Post("TeX begingroup Ready")}),MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/begingroup.js");
