/* goog.require('goog.array'); goog.require('goog.dom'); goog.require('goog.ui.AdvancedTooltip'); goog.require('goog.ui.ScrollFloater'); function replace_iframe(node) { var div = document.createElement('div'); div.innerHTML = node.getAttribute('data-iframe-code'); div.className = 'replaced-iframe-container'; node.parentNode.replaceChild(div, node); return false; } window['replaceIframe'] = replace_iframe; function togglePrefaceDetails() { var details = document.getElementById('preface-details'); details.style.display = (details.style.display == '') ? 'none' : ''; return false; } window['togglePrefaceDetails'] = togglePrefaceDetails; var scrollfloater = new goog.ui.ScrollFloater(); scrollfloater.decorate(goog.dom.getElement('navbar-top')); //scrollfloater.setScrollingEnabled(true); var glossterms = goog.dom.getElementsByClass('glossterm'); goog.array.forEach(glossterms, function(term) { var tooltip = new goog.ui.AdvancedTooltip(); tooltip.setCursorTracking(true); tooltip.setHideDelayMs(250); tooltip.className = 'glossdef-tooltip'; tooltip.setHtml(goog.dom.getNextElementSibling(term).innerHTML); tooltip.attach(term); }); */ function f(a){throw a;}var i=void 0,l=!0,m=null,r=!1;function s(a){return function(){return this[a]}}var u,y=this;function aa(){} function ba(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null"; else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function ca(a){return"array"==ba(a)}function da(a){var b=ba(a);return"array"==b||"object"==b&&"number"==typeof a.length}function z(a){return"string"==typeof a}function ea(a){return"function"==ba(a)}function fa(a){var b=typeof a;return"object"==b&&a!=m||"function"==b}function ga(a){return a[ha]||(a[ha]=++ia)}var ha="closure_uid_"+Math.floor(2147483648*Math.random()).toString(36),ia=0; function ja(a,b,c){return a.call.apply(a.bind,arguments)}function ka(a,b,c){a||f(Error());if(2")&&(a=a.replace(ra,">"));-1!=a.indexOf('"')&&(a=a.replace(sa,"""));return a}var pa=/&/g,qa=//g,sa=/\"/g,oa=/[&<>\"]/;var C=Array.prototype,ta=C.indexOf?function(a,b,c){return C.indexOf.call(a,b,c)}:function(a,b,c){c=c==m?0:0>c?Math.max(0,a.length+c):c;if(z(a))return!z(b)||1!=b.length?-1:a.indexOf(b,c);for(;c=arguments.length?C.slice.call(a,b):C.slice.call(a,b,c)};var xa,ya,za,Aa,Ba,Ca;function Da(){return y.navigator?y.navigator.userAgent:m}function Ea(){return y.navigator}Ba=Aa=za=ya=xa=r;var Fa;if(Fa=Da()){var Ga=Ea();xa=0==Fa.indexOf("Opera");ya=!xa&&-1!=Fa.indexOf("MSIE");Aa=(za=!xa&&-1!=Fa.indexOf("WebKit"))&&-1!=Fa.indexOf("Mobile");Ba=!xa&&!za&&"Gecko"==Ga.product}var Ha=xa,D=ya,E=Ba,F=za,Ia=Aa,Ja=Ea();Ca=-1!=(Ja&&Ja.platform||"").indexOf("Mac");var Ka=!!Ea()&&-1!=(Ea().appVersion||"").indexOf("X11"),La; a:{var Ma="",Na;if(Ha&&y.opera)var Oa=y.opera.version,Ma="function"==typeof Oa?Oa():Oa;else if(E?Na=/rv\:([^\);]+)(\)|;)/:D?Na=/MSIE\s+([^\);]+)(\)|;)/:F&&(Na=/WebKit\/(\S+)/),Na)var Pa=Na.exec(Da()),Ma=Pa?Pa[1]:"";if(D){var Qa,Ra=y.document;Qa=Ra?Ra.documentMode:i;if(Qa>parseFloat(Ma)){La=String(Qa);break a}}La=Ma}var Sa={}; function G(a){var b;if(!(b=Sa[a])){b=0;for(var c=String(La).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),d=String(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),g=Math.max(c.length,d.length),e=0;0==b&&e(0==n[1].length?0:parseInt(n[1],10))?1:0)||((0==q[2].length)<(0==n[2].length)?-1:(0==q[2].length)>(0==n[2].length)?1:0)||(q[2]n[2]?1:0)}while(0==b)}b=Sa[a]=0<=b}return b}var Ta={};function Ua(a){return Ta[a]||(Ta[a]=D&&!!document.documentMode&&document.documentMode>=a)};var Va,Wa=!D||Ua(9);!E&&!D||D&&Ua(9)||E&&G("1.9.1");D&&G("9");function Xa(a,b){var c;c=a.className;c=z(c)&&c.match(/\S+/g)||[];for(var d=wa(arguments,1),g=c.length+d.length,e=c,h=0;h");e=e.join("")}e=d.createElement(e);if(h)if(z(h))e.className=h;else if(ca(h))Xa.apply(m,[e].concat(h));else{var k=e;Za(h,function(a,b){"style"==b?k.style.cssText=a:"class"==b?k.className=a:"for"==b?k.htmlFor=a:b in eb?k.setAttribute(eb[b],a):0==b.lastIndexOf("aria-",0)||0== b.lastIndexOf("data-",0)?k.setAttribute(b,a):k[b]=a})}if(2=a.keyCode)a.keyCode=-1}catch(b){}};u.Va=s("q");function pb(){}var qb=0;u=pb.prototype;u.key=0;u.w=r;u.ba=r;u.S=function(a,b,c,d,g,e){ea(a)?this.Ga=l:a&&a.handleEvent&&ea(a.handleEvent)?this.Ga=r:f(Error("Invalid listener argument"));this.H=a;this.Pa=b;this.src=c;this.type=d;this.capture=!!g;this.ha=e;this.ba=r;this.key=++qb;this.w=r};u.handleEvent=function(a){return this.Ga?this.H.call(this.ha||this.src,a):this.H.handleEvent.call(this.H,a)};var O={},P={},rb={},sb={}; function S(a,b,c,d,g){if(b){if(ca(b)){for(var e=0;ee.keyCode||e.returnValue!=i)return l;a:{var p=r;if(0==e.keyCode)try{e.keyCode=-1;break a}catch(q){p=l}if(p||e.returnValue==i)e.returnValue=l}}p=new ob;p.S(e,this);e=l;try{if(j){for(var n=[],t=p.currentTarget;t;t=t.parentNode)n.push(t);h=g[l];h.k=h.f;for(var x= n.length-1;!p.t&&0<=x&&h.k;x--)p.currentTarget=n[x],e&=yb(h,n[x],d,l,p);if(k){h=g[r];h.k=h.f;for(x=0;!p.t&&x=this.left&&a.right<=this.right&&a.top>=this.top&&a.bottom<=this.bottom:a.x>=this.left&&a.x<=this.right&&a.y>=this.top&&a.y<=this.bottom}; function Db(a,b){var c=b.xa.right?b.x-a.right:0,d=b.ya.bottom?b.y-a.bottom:0;return Math.sqrt(c*c+d*d)};function U(a,b,c,d){this.left=a;this.top=b;this.width=c;this.height=d}U.prototype.o=function(){return new U(this.left,this.top,this.width,this.height)};function Eb(a){return new T(a.top,a.left+a.width,a.top+a.height,a.left)}U.prototype.toString=function(){return"("+this.left+", "+this.top+" - "+this.width+"w x "+this.height+"h)"}; U.prototype.Fa=function(a){var b=Math.max(this.left,a.left),c=Math.min(this.left+this.width,a.left+a.width);if(b<=c){var d=Math.max(this.top,a.top),a=Math.min(this.top+this.height,a.top+a.height);if(d<=a)return this.left=b,this.top=d,this.width=c-b,this.height=a-d,l}return r}; U.prototype.contains=function(a){return a instanceof U?this.left<=a.left&&this.left+this.width>=a.left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.height:a.x>=this.left&&a.x<=this.left+this.width&&a.y>=this.top&&a.y<=this.top+this.height};function Fb(a,b,c){a.style[String(c).replace(/\-([a-z])/g,function(a,b){return b.toUpperCase()})]=b}function V(a,b){var c=L(a);return c.defaultView&&c.defaultView.getComputedStyle&&(c=c.defaultView.getComputedStyle(a,m))?c[b]||c.getPropertyValue(b)||"":""}function W(a,b){return V(a,b)||(a.currentStyle?a.currentStyle[b]:m)||a.style&&a.style[b]}function Gb(a){a=a?L(a):document;return D&&!Ua(9)&&!gb(K(a))?a.body:a.documentElement} function Hb(a){if(Ia&&F){var b=a.ownerDocument.defaultView;if(b!=b.top)return r}return!!a.getBoundingClientRect}function Ib(a){var b=a.getBoundingClientRect();D&&(a=a.ownerDocument,b.left-=a.documentElement.clientLeft+a.body.clientLeft,b.top-=a.documentElement.clientTop+a.body.clientTop);return b} function Jb(a){if(D&&!Ua(8))return a.offsetParent;for(var b=L(a),c=W(a,"position"),d="fixed"==c||"absolute"==c,a=a.parentNode;a&&a!=b;a=a.parentNode)if(c=W(a,"position"),d=d&&"static"==c&&a!=b.documentElement&&a!=b.body,!d&&(a.scrollWidth>a.clientWidth||a.scrollHeight>a.clientHeight||"fixed"==c||"absolute"==c||"relative"==c))return a;return m} function Kb(a){for(var b=new T(0,Infinity,Infinity,0),c=K(a),d=c.b.body,g=c.b.documentElement,e=!F&&"CSS1Compat"==c.b.compatMode?c.b.documentElement:c.b.body;a=Jb(a);)if((!D||0!=a.clientWidth)&&(!F||0!=a.clientHeight||a!=d)&&a!=d&&a!=g&&"visible"!=W(a,"overflow")){var h=X(a),j;j=a;if(E&&!G("1.9")){var k=parseFloat(V(j,"borderLeftWidth"));if(Lb(j))var p=j.offsetWidth-j.clientWidth-k-parseFloat(V(j,"borderRightWidth")),k=k+p;j=new H(k,parseFloat(V(j,"borderTopWidth")))}else j=new H(j.clientLeft,j.clientTop); h.x+=j.x;h.y+=j.y;b.top=Math.max(b.top,h.y);b.right=Math.min(b.right,h.x+a.clientWidth);b.bottom=Math.min(b.bottom,h.y+a.clientHeight);b.left=Math.max(b.left,h.x)}d=e.scrollLeft;e=e.scrollTop;b.left=Math.max(b.left,d);b.top=Math.max(b.top,e);c=(c.b.parentWindow||c.b.defaultView||window).document;c="CSS1Compat"==c.compatMode?c.documentElement:c.body;c=new J(c.clientWidth,c.clientHeight);b.right=Math.min(b.right,d+c.width);b.bottom=Math.min(b.bottom,e+c.height);return 0<=b.top&&0<=b.left&&b.bottom> b.top&&b.right>b.left?b:m} function X(a){var b,c=L(a),d=W(a,"position"),g=E&&c.getBoxObjectFor&&!a.getBoundingClientRect&&"absolute"==d&&(b=c.getBoxObjectFor(a))&&(0>b.screenX||0>b.screenY),e=new H(0,0),h=Gb(c);if(a==h)return e;if(Hb(a))b=Ib(a),a=hb(K(c)),e.x=b.left+a.x,e.y=b.top+a.y;else if(c.getBoxObjectFor&&!g)b=c.getBoxObjectFor(a),a=c.getBoxObjectFor(h),e.x=b.screenX-a.screenX,e.y=b.screenY-a.screenY;else{b=a;do{e.x+=b.offsetLeft;e.y+=b.offsetTop;b!=a&&(e.x+=b.clientLeft||0,e.y+=b.clientTop||0);if(F&&"fixed"==W(b,"position")){e.x+= c.body.scrollLeft;e.y+=c.body.scrollTop;break}b=b.offsetParent}while(b&&b!=a);if(Ha||F&&"absolute"==d)e.y-=c.body.offsetTop;for(b=a;(b=Jb(b))&&b!=c.body&&b!=h;)if(e.x-=b.scrollLeft,!Ha||"TR"!=b.tagName)e.y-=b.scrollTop}return e}function Mb(a,b){"number"==typeof a&&(a=(b?Math.round(a):a)+"px");return a} function Nb(a){if("none"!=W(a,"display"))return Ob(a);var b=a.style,c=b.display,d=b.visibility,g=b.position;b.visibility="hidden";b.position="absolute";b.display="inline";a=Ob(a);b.display=c;b.position=g;b.visibility=d;return a}function Ob(a){var b=a.offsetWidth,c=a.offsetHeight,d=F&&!b&&!c;return(b===i||d)&&a.getBoundingClientRect?(a=Ib(a),new J(a.right-a.left,a.bottom-a.top)):new J(b,c)}function Pb(a){var b=X(a),a=Nb(a);return new U(b.x,b.y,a.width,a.height)} function Qb(a,b){a.style.display=b?"":"none"}function Lb(a){return"rtl"==W(a,"direction")}function Rb(a,b,c,d){if(/^\d+px?$/.test(b))return parseInt(b,10);var g=a.style[c],e=a.runtimeStyle[c];a.runtimeStyle[c]=a.currentStyle[c];a.style[c]=b;b=a.style[d];a.style[c]=g;a.runtimeStyle[c]=e;return b}function Sb(a,b){return Rb(a,a.currentStyle?a.currentStyle[b]:m,"left","pixelLeft")} function Tb(a){if(D){var b=Sb(a,"paddingLeft"),c=Sb(a,"paddingRight"),d=Sb(a,"paddingTop"),a=Sb(a,"paddingBottom");return new T(d,c,a,b)}b=V(a,"paddingLeft");c=V(a,"paddingRight");d=V(a,"paddingTop");a=V(a,"paddingBottom");return new T(parseFloat(d),parseFloat(c),parseFloat(a),parseFloat(b))}var Ub={thin:2,medium:4,thick:6}; function Vb(a,b){if("none"==(a.currentStyle?a.currentStyle[b+"Style"]:m))return 0;var c=a.currentStyle?a.currentStyle[b+"Width"]:m;return c in Ub?Ub[c]:Rb(a,c,"left","pixelLeft")}function Wb(a){if(D){var b=Vb(a,"borderLeft"),c=Vb(a,"borderRight"),d=Vb(a,"borderTop"),a=Vb(a,"borderBottom");return new T(d,c,a,b)}b=V(a,"borderLeftWidth");c=V(a,"borderRightWidth");d=V(a,"borderTopWidth");a=V(a,"borderBottomWidth");return new T(parseFloat(d),parseFloat(c),parseFloat(a),parseFloat(b))}var Xb=/matrix\([0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, ([0-9\.\-]+)p?x?, ([0-9\.\-]+)p?x?\)/;function Yb(a,b,c,d,g,e,h,j){var k,p;if(k=c.offsetParent){var q="HTML"==k.tagName||"BODY"==k.tagName;if(!q||"static"!=W(k,"position"))p=X(k),q||(q=(q=Lb(k))&&E?-k.scrollLeft:q&&(!D||!G("8"))?k.scrollWidth-k.clientWidth-k.scrollLeft:k.scrollLeft,p=Ya(p,new H(q,k.scrollTop)))}k=p||new H;p=Pb(a);(q=Kb(a))&&p.Fa(new U(q.left,q.top,q.right-q.left,q.bottom-q.top));var q=K(a),n=K(c);if(q.b!=n.b){var t=q.b.body,n=n.b.parentWindow||n.b.defaultView,x=new H(0,0),N=L(t)?L(t).parentWindow||L(t).defaultView:window, mb=t;do{var v;if(N==n)v=X(mb);else{v=mb;var Q=new H;if(1==v.nodeType){if(Hb(v)){var w=Ib(v);Q.x=w.left;Q.y=w.top}else{var w=hb(K(v)),I=X(v);Q.x=I.x-w.x;Q.y=I.y-w.y}E&&!G(12)&&(w=i,w=i,D?w="-ms-transform":F?w="-webkit-transform":Ha?w="-o-transform":E&&(w="-moz-transform"),I=i,w&&(I=W(v,w)),I||(I=W(v,"transform")),I?(v=I.match(Xb),w=!v?new H(0,0):new H(parseFloat(v[1]),parseFloat(v[2]))):w=new H(0,0),Q=new H(Q.x+w.x,Q.y+w.y))}else w=ea(v.Va),I=v,v.targetTouches?I=v.targetTouches[0]:w&&v.q.targetTouches&& (I=v.q.targetTouches[0]),Q.x=I.clientX,Q.y=I.clientY;v=Q}x.x+=v.x;x.y+=v.y}while(N&&N!=n&&(mb=N.frameElement)&&(N=N.parent));t=Ya(x,X(t));D&&!gb(q)&&(t=Ya(t,hb(q)));p.left+=t.x;p.top+=t.y}a=(b&4&&Lb(a)?b^2:b)&-5;b=new H(a&2?p.left+p.width:p.left,a&1?p.top+p.height:p.top);b=Ya(b,k);g&&(b.x+=(a&2?-1:1)*g.x,b.y+=(a&1?-1:1)*g.y);var R;if(h&&(R=Kb(c)))R.top-=k.y,R.right-=k.x,R.bottom-=k.y,R.left-=k.x;return Zb(b,c,d,e,R,h,j)} function Zb(a,b,c,d,g,e,h){var a=a.o(),j=0,k=(c&4&&Lb(b)?c^2:c)&-5,c=Nb(b),h=h?h.o():c.o();if(d||0!=k)k&2?a.x-=h.width+(d?d.right:0):d&&(a.x+=d.left),k&1?a.y-=h.height+(d?d.bottom:0):d&&(a.y+=d.top);if(e){if(g){j=a;d=0;if(65==(e&65)&&(j.x=g.right))e&=-2;if(132==(e&132)&&(j.y=g.bottom))e&=-5;j.xg.right&&e&16)&&(h.width=Math.max(h.width-(j.x+h.width-g.right),0),d|=4);j.x+h.width>g.right&&e&1&&(j.x=Math.max(g.right-h.width, g.left),d|=1);e&2&&(d|=(j.xg.right?32:0));j.y=g.top&&(j.y+h.height>g.bottom&&e&32)&&(h.height=Math.max(h.height-(j.y+h.height-g.bottom),0),d|=8);j.y+h.height>g.bottom&&e&4&&(j.y=Math.max(g.bottom-h.height,g.top),d|=2);e&8&&(d|=(j.yg.bottom?128:0));j=d}else j=256;if(j&496)return j}e=a;g=E&&(Ca||Ka)&&G("1.9");e instanceof H?(a=e.x,e=e.y):(a=e,e=i);b.style.left=Mb(a,g);b.style.top=Mb(e,g);if(!(c==h||(!c||!h?0:c.width== h.width&&c.height==h.height)))a=gb(K(L(b))),D&&(!a||!G("8"))?(c=b.style,a?(a=Tb(b),b=Wb(b),c.pixelWidth=h.width-b.left-a.left-a.right-b.right,c.pixelHeight=h.height-b.top-a.top-a.bottom-b.bottom):(c.pixelWidth=h.width,c.pixelHeight=h.height)):(b=b.style,E?b.MozBoxSizing="border-box":F?b.WebkitBoxSizing="border-box":b.boxSizing="border-box",b.width=Math.max(h.width,0)+"px",b.height=Math.max(h.height,0)+"px");return j};function $b(){}$b.prototype.n=function(){};function ac(a,b,c){this.element=a;this.va=b;this.cb=c}B(ac,$b);ac.prototype.n=function(a,b,c){Yb(this.element,this.va,a,b,i,c,this.cb)};function bc(a,b){this.da=a instanceof H?a:new H(a,b)}B(bc,$b);bc.prototype.n=function(a,b,c,d){Yb(Gb(a),0,a,b,this.da,c,m,d)};function cc(a){if("function"==typeof a.C)return a.C();if(z(a))return a.split("");if(da(a)){for(var b=[],c=a.length,d=0;d2*this.f&&ec(this),l):r}; function ec(a){if(a.f!=a.d.length){for(var b=0,c=0;bma()-this.ia))&&mc(this,a)};u.bb=function(a){27==a.keyCode&&mc(this,a.target)&&(a.preventDefault(),a.stopPropagation())}; u.La=function(a){if(this.Ua){var b=L(this.c);if(D||Ha){if(a=b.activeElement,!a||M(this.c,a)||"BODY"==a.tagName)return}else if(a.target!=b)return;150>ma()-this.ia||mc(this)}};function nc(a,b){this.fb=4;this.na=b||i;kc.call(this,a)}B(nc,kc);nc.prototype.n=function(){if(this.na){var a=!this.h&&"move_offscreen"!=this.z,b=this.a();a&&(b.style.visibility="hidden",Qb(b,l));this.na.n(b,this.fb,this.jb);a&&Qb(b,r)}};function oc(a,b,c){this.l=c||(a?K(z(a)?document.getElementById(a):a):K());nc.call(this,this.l.B("div",{style:"position:absolute;display:none;"}));this.s=new H(1,1);this.N=new fc;a&&pc(this,a);if(b!=m)if(a=this.a(),"textContent"in a)a.textContent=b;else if(a.firstChild&&3==a.firstChild.nodeType){for(;a.lastChild!=a.firstChild;)a.removeChild(a.lastChild);a.firstChild.data=b}else{for(;c=a.firstChild;)a.removeChild(c);a.appendChild(L(a).createTextNode(b))}}B(oc,nc);var qc=[];u=oc.prototype;u.e=m; u.className="goog-tooltip";u.Qa=500;u.Ba=0;u.g=s("l");function pc(a,b){b=z(b)?document.getElementById(b):b;a.N.add(b);S(b,"mouseover",a.Xa,r,a);S(b,"mouseout",a.za,r,a);S(b,"mousemove",a.F,r,a);S(b,"focus",a.Wa,r,a);S(b,"blur",a.za,r,a)}u.fa=s("Ba");u.qa=function(a){var b=this.a();b&&b&&b.parentNode&&b.parentNode.removeChild(b);oc.i.qa.call(this,a);a&&(b=this.l.b.body,b.insertBefore(a,b.lastChild))};function rc(a){return a.r?a.h?4:1:a.v?3:a.h?2:0} u.T=function(a){if(!this.h)return r;var b=X(this.a()),c=Nb(this.a());return b.x<=a.x&&a.x<=b.x+c.width&&b.y<=a.y&&a.y<=b.y+c.height};u.ja=function(){if(!kc.prototype.ja.call(this))return r;if(this.anchor)for(var a,b=0;a=qc[b];b++)M(a.a(),this.anchor)||lc(a,r);0<=ta(qc,this)||qc.push(this);a=this.a();a.className=this.className;sc(this);S(a,"mouseover",this.ga,r,this);S(a,"mouseout",this.Aa,r,this);tc(this);return l}; u.I=function(){va(qc,this);for(var a=this.a(),b,c=0;b=qc[c];c++)b.anchor&&M(a,b.anchor)&&lc(b,r);this.Oa&&uc(this.Oa);vb(a,"mouseover",this.ga,r,this);vb(a,"mouseout",this.Aa,r,this);this.anchor=i;0==rc(this)&&(this.Y=r);kc.prototype.I.call(this)};u.Ja=function(a,b){this.anchor==a&&this.N.contains(this.anchor)&&(this.Y||!this.kb?(lc(this,r),this.h||(this.anchor=a,this.na=b||vc(this,0)||i,this.h&&this.n(),lc(this,l))):this.anchor=i);this.r=i};u.ea=s("e"); u.Ia=function(a){this.v=i;a==this.anchor&&(this.e==m||this.e!=this.a()&&!this.N.contains(this.e))&&(!this.u||!this.u.e)&&lc(this,r)};function wc(a,b){var c=hb(a.l);a.s.x=b.clientX+c.x;a.s.y=b.clientY+c.y}u.Xa=function(a){var b=xc(this,a.target);this.e=b;sc(this);b!=this.anchor&&(this.anchor=b,this.r||(this.r=Cb(A(this.Ja,this,b,i),this.Qa)),yc(this),wc(this,a))};function xc(a,b){try{for(;b&&!a.N.contains(b);)b=b.parentNode;return b}catch(c){return m}}u.F=function(a){wc(this,a);this.Y=l}; u.Wa=function(a){this.e=a=xc(this,a.target);this.Y=l;if(this.anchor!=a){this.anchor=a;var b=vc(this,1);sc(this);this.r||(this.r=Cb(A(this.Ja,this,a,b),this.Qa));yc(this)}};function vc(a,b){if(0==b){var c=a.s.o();return new zc(c)}return new Ac(a.e)}function yc(a){if(a.anchor)for(var b,c=0;b=qc[c];c++)M(b.a(),a.anchor)&&(b.u=a,a.Oa=b)} u.za=function(a){var b=xc(this,a.target),c=xc(this,a.relatedTarget);b!=c&&(b==this.e&&(this.e=m),tc(this),this.Y=r,this.h&&(!a.relatedTarget||!M(this.a(),a.relatedTarget))?uc(this):this.anchor=i)};u.ga=function(){var a=this.a();this.e!=a&&(sc(this),this.e=a)};u.Aa=function(a){var b=this.a();if(this.e==b&&(!a.relatedTarget||!M(b,a.relatedTarget)))this.e=m,uc(this)};function tc(a){a.r&&(Bb.clearTimeout(a.r),a.r=i)}function uc(a){2==rc(a)&&(a.v=Cb(A(a.Ia,a,a.anchor),a.fa()))} function sc(a){a.v&&(Bb.clearTimeout(a.v),a.v=i)}function zc(a,b){bc.call(this,a,b)}B(zc,bc);zc.prototype.n=function(a,b,c){b=Gb(a);b=Kb(b);c=c?new T(c.top+10,c.right,c.bottom,c.left+10):new T(10,0,0,10);Zb(this.da,a,4,c,b,9)&496&&Zb(this.da,a,4,c,b,5)};function Ac(a){ac.call(this,a,3)}B(Ac,ac);Ac.prototype.n=function(a,b,c){var d=new H(10,0);Yb(this.element,this.va,a,b,d,c,9)&496&&Yb(this.element,2,a,1,d,c,5)};function Y(a,b,c){oc.call(this,a,b,c)}B(Y,oc);u=Y.prototype;u.wa=r;u.Ta=100;u.J=r;u.V=function(){Y.i.V.call(this);this.K=Eb(Pb(this.a()));this.anchor&&(this.aa=Eb(Pb(this.anchor)));this.J=this.wa;S(fb(this.g()),"mousemove",this.F,r,this)};u.I=function(){vb(fb(this.g()),"mousemove",this.F,r,this);this.aa=this.K=m;this.J=r;Y.i.I.call(this)}; u.T=function(a){if(this.R){var b=X(this.a()),c=Nb(this.a());return b.x-this.R.left<=a.x&&a.x<=b.x+c.width+this.R.right&&b.y-this.R.top<=a.y&&a.y<=b.y+c.height+this.R.bottom}return Y.i.T.call(this,a)};function Bc(a,b){if(a.aa&&a.aa.contains(b)||a.T(b))return l;var c=a.u;return!!c&&c.T(b)}u.Ia=function(a){this.v=i;a==this.anchor&&(!Bc(this,this.s)&&(!this.ea()&&(!this.u||!this.u.e))&&(!E||!(0==this.s.x&&0==this.s.y)))&&lc(this,r)}; u.F=function(a){var b=this.h;if(this.K){var c=hb(this.g()),c=new H(a.clientX+c.x,a.clientY+c.y);Bc(this,c)?b=r:this.J&&(b=Db(this.K,c)>=Db(this.K,this.s))}if(b){if(uc(this),this.e=m,b=this.u)b.e=m}else 3==rc(this)&&sc(this);Y.i.F.call(this,a)};u.ga=function(){this.ea()!=this.a()&&(this.J=r,this.e=this.a())};u.fa=function(){return this.J?this.Ta:Y.i.fa.call(this)};function Z(){}Z.ya=function(){return Z.Ea?Z.Ea:Z.Ea=new Z};Z.prototype.ab=0;Z.ya();function Cc(a){this.M=r;this.l=a||K();this.gb=Dc}B(Cc,Ab);Cc.prototype.$a=Z.ya();var Dc=m;u=Cc.prototype;u.Da=m;u.G=r;u.c=m;u.gb=m;u.ma=m;u.A=m;u.ca=m;u.ib=r;u.a=s("c");u.ra=function(a){this.ma&&this.ma!=a&&f(Error("Method not supported"));Cc.i.ra.call(this,a)};u.g=s("l");u.B=function(){this.c=this.l.createElement("div")};u.L=function(a){this.c=a};u.O=function(){function a(a){!a.G&&a.a()&&a.O()}this.G=l;this.A&&ua(this.A,a,i)}; function Ec(a){function b(a){a.G&&Ec(a)}a.A&&ua(a.A,b,i);a.D&&a.D.oa();a.G=r}u.removeChild=function(a,b){if(a){var c=z(a)?a:a.Da||(a.Da=":"+(a.$a.ab++).toString(36)),d;this.ca&&c?(d=this.ca,d=(c in d?d[c]:i)||m):d=m;a=d;c&&a&&(d=this.ca,c in d&&delete d[c],va(this.A,a),b&&(Ec(a),a.c&&(c=a.c)&&c.parentNode&&c.parentNode.removeChild(c)),c=a,c==m&&f(Error("Unable to set parent component")),c.ma=m,Cc.i.ra.call(c,m))}a||f(Error("Child is not in parent component"));return a};function $(a,b){var c=a?K(a):b;Cc.call(this,c);this.ka=a||fb(this.g()).body;this.W={}}B($,Cc);$.prototype.pa=l;$.prototype.P=r;var Fc=["position","top","left","width","cssFloat"],Gc="position top left display cssFloat marginTop marginLeft marginRight marginBottom".split(" ");u=$.prototype;u.B=function(){$.i.B.call(this);this.L(this.a())};u.L=function(a){$.i.L.call(this,a);Xa(a,"goog-scrollfloater")}; u.O=function(){$.i.O.call(this);this.m||(this.m=this.g().B("div",{style:"visibility:hidden"}));this.Na=X(this.a()).y;var a=this.pa;if(this.pa=a){if(Hc(this)&&(a=fb(this.g()),a=Gb(a),"none"==a.currentStyle.backgroundImage)){var b=a.style,c=this.g();b.backgroundImage="https:"==(c.b.parentWindow||c.b.defaultView).location.protocol?"url(https:///)":"url(about:blank)";a.style.backgroundAttachment="fixed"}this.sa()}else Ic(this);jc(this.D||(this.D=new hc(this)),window,"scroll",this.sa);jc(this.D||(this.D= new hc(this)),window,"resize",this.Ya)}; u.sa=function(){if(this.pa)if(this.g(),hb(this.g()).y>this.Na){if(!this.P&&this.dispatchEvent("float")){var a=this.a();this.g();var b=X(a).x,c;var d=L(a);if((c=D&&a.currentStyle)&&gb(K(d))&&"auto"!=c.width&&"auto"!=c.height&&!c.boxSizing)d=Rb(a,c.width,"width","pixelWidth"),c=Rb(a,c.height,"height","pixelHeight"),c=new J(d,c);else{c=new J(a.offsetWidth,a.offsetHeight);var d=Tb(a),g=Wb(a);c=new J(c.width-g.left-d.left-d.right-g.right,c.height-g.top-d.top-d.bottom-g.bottom)}c=c.width;this.W={};Za(Fc, function(b){this.W[b]=a.style[b]},this);Za(Gc,function(b){this.m.style[b]=a.style[b]||(a.currentStyle?a.currentStyle[b]:m)||V(a,b)},this);var d=this.m,g=a.offsetWidth,e=a.offsetHeight;g instanceof J?(e=g.height,g=g.width):e==i&&f(Error("missing height argument"));d.style.width=Mb(g,l);d.style.height=Mb(e,l);b={left:b+"px",width:c+"px",cssFloat:"none"};z(b)?Fb(a,i,b):Za(b,la(Fb,a));a.parentNode==this.ka?a.parentNode.insertBefore(this.m,a):(a.parentNode.replaceChild(this.m,a),this.ka.appendChild(a)); Hc(this)?(a.style.position="absolute",a.style.setExpression("top",'document.compatMode=="CSS1Compat"?documentElement.scrollTop:document.body.scrollTop')):(a.style.position="fixed",a.style.top="0");this.P=l}}else Ic(this)};function Ic(a){if(a.P&&a.dispatchEvent("dock")){var b=a.a(),c;for(c in a.W)b.style[c]=a.W[c];Hc(a)&&b.style.removeExpression("top");a.m.parentNode==a.ka?a.m.parentNode.removeChild(a.m):a.m.parentNode.replaceChild(b,a.m);a.P=r}}u.Ya=function(){Ic(this);this.Na=X(this.a()).y;this.sa()}; function Hc(a){return D&&!(G("7")&&gb(a.g()))};window.replaceIframe=function(a){var b=document.createElement("div");b.innerHTML=a.getAttribute("data-iframe-code");b.className="replaced-iframe-container";a.parentNode.replaceChild(b,a);return r};window.togglePrefaceDetails=function(){var a=document.getElementById("preface-details");a.style.display=""==a.style.display?"none":"";return r};var Jc=new $,Kc=z("navbar-top")?document.getElementById("navbar-top"):"navbar-top";Jc.G&&f(Error("Component already rendered")); if(Kc){Jc.ib=l;if(!Jc.l||Jc.l.b!=L(Kc))Jc.l=K(Kc);Jc.L(Kc);Jc.O()}else f(Error("Invalid element to decorate"));var Lc,Mc=document;Lc=Mc.querySelectorAll&&Mc.querySelector?Mc.querySelectorAll(".glossterm"):Mc.getElementsByClassName?Mc.getElementsByClassName("glossterm"):db();ua(Lc,function(a){var b=new Y;b.wa=l;b.Ba=250;b.className="glossdef-tooltip";var c;if(a.nextElementSibling!=i)c=a.nextElementSibling;else for(c=a.nextSibling;c&&1!=c.nodeType;)c=c.nextSibling;b.a().innerHTML=c.innerHTML;pc(b,a)});