var DOKU_BASE='/wiki/';var DOKU_TPL='/wiki/lib/tpl/default/';var alertText='Please enter the text you want to format.\nIt will be appended to the end of the document.';var notSavedYet='Unsaved changes will be lost.\nReally continue?';var reallyDel='Really delete selected item(s)?';LANG={"keepopen":"Keep window open on selection","hidedetails":"Hide Details","nosmblinks":"Linking to Windows shares only works in Microsoft Internet Explorer.\nYou still can copy and paste the link.","mu_btn":"Upload multiple files at once","plugins":[]};function isUndefined(prop){return(typeof prop=='undefined');}function isFunction(prop){return(typeof prop=='function');}function isString(prop){return(typeof prop=='string');}function isNumber(prop){return(typeof prop=='number');}function isNumeric(prop){return isNumber(prop)&&!isNaN(prop)&&isFinite(prop);}function isArray(prop){return(prop instanceof Array);}function isRegExp(prop){return(prop instanceof RegExp);}function isBoolean(prop){return('boolean'==typeof prop);}function isScalar(prop){return isNumeric(prop)||isString(prop);}function isEmpty(prop){if(isBoolean(prop))return false;if(isRegExp(prop)&&new RegExp("").toString()==prop.toString())return true;if(isString(prop)||isNumber(prop))return!prop;if(Boolean(prop)&&false!=prop){for(var i in prop)if(prop.hasOwnProperty(i))return false}return true;}if('undefined'==typeof Object.hasOwnProperty){Object.prototype.hasOwnProperty=function(prop){return!('undefined'==typeof this[prop]||this.constructor&&this.constructor.prototype[prop]&&this[prop]===this.constructor.prototype[prop]);}}function hasFlash(version){var ver=0;try{if(navigator.plugins!=null&&navigator.plugins.length>0){ver=navigator.plugins["Shockwave Flash"].description.split(' ')[2].split('.')[0];}else{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");ver=axo.GetVariable("$version").split(' ')[1].split(',')[0];}}catch(e){}if(ver>=version)return true;return false;}function addEvent(element,type,handler){if(!handler.$$guid)handler.$$guid=addEvent.guid++;if(!element.events)element.events={};var handlers=element.events[type];if(!handlers){handlers=element.events[type]={};if(element["on"+type]){handlers[0]=element["on"+type];}}handlers[handler.$$guid]=handler;element["on"+type]=handleEvent;};addEvent.guid=1;function removeEvent(element,type,handler){if(element.events&&element.events[type]){delete element.events[type][handler.$$guid];}};function handleEvent(event){var returnValue=true;event=event||fixEvent(window.event);var handlers=this.events[event.type];for(var i in handlers){if(!handlers.hasOwnProperty(i))continue;this.$$handleEvent=handlers[i];if(this.$$handleEvent(event)===false){returnValue=false;}}return returnValue;};function fixEvent(event){event.preventDefault=fixEvent.preventDefault;event.stopPropagation=fixEvent.stopPropagation;event.target=event.srcElement;return event;};fixEvent.preventDefault=function(){this.returnValue=false;};fixEvent.stopPropagation=function(){this.cancelBubble=true;};window.fireoninit=function(){if(arguments.callee.done)return;arguments.callee.done=true;if(_timer){clearInterval(_timer);_timer=null;}if(typeof window.oninit=='function'){window.oninit();}};if(document.addEventListener){document.addEventListener("DOMContentLoaded",window.fireoninit,null);}/*@cc_on @*//*@if(@_win32)document.write("<scr"+"ipt id=\"__ie_init\" defer=\"true\" src=\"//:\"><\/script>");var script=document.getElementById("__ie_init");script.onreadystatechange=function(){if(this.readyState=="complete"){window.fireoninit();}};/*@end @*/if(/WebKit/i.test(navigator.userAgent)){var _timer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){window.fireoninit();}},10);}window.onload=window.fireoninit;window.oninit=function(){};function addInitEvent(func){var oldoninit=window.oninit;if(typeof window.oninit!='function'){window.oninit=func;}else{window.oninit=function(){oldoninit();func();};}}DokuCookie={data:Array(),name:'DOKU_PREFS',setValue:function(key,val){DokuCookie.init();DokuCookie.data[key]=val;var now=new Date();DokuCookie.fixDate(now);now.setTime(now.getTime()+365*24*60*60*1000);var text='';for(var key in DokuCookie.data){if(!DokuCookie.data.hasOwnProperty(key))continue;text+='#'+escape(key)+'#'+DokuCookie.data[key];}DokuCookie.setCookie(DokuCookie.name,text.substr(1),now,DOKU_BASE);},getValue:function(key){DokuCookie.init();return DokuCookie.data[key];},init:function(){if(DokuCookie.data.length)return;var text=DokuCookie.getCookie(DokuCookie.name);if(text){var parts=text.split('#');for(var i=0;i<parts.length;i+=2){DokuCookie.data[unescape(parts[i])]=unescape(parts[i+1]);}}},setCookie:function(name,value,expires,path,domain,secure){var curCookie=name+"="+escape(value)+((expires)?"; expires="+expires.toGMTString():"")+((path)?"; path="+path:"")+((domain)?"; domain="+domain:"")+((secure)?"; secure":"");document.cookie=curCookie;},getCookie:function(name){var dc=document.cookie;var prefix=name+"=";var begin=dc.indexOf("; "+prefix);if(begin==-1){begin=dc.indexOf(prefix);if(begin!==0){return null;}}else{begin+=2;}var end=document.cookie.indexOf(";",begin);if(end==-1){end=dc.length;}return unescape(dc.substring(begin+prefix.length,end));},fixDate:function(date){var base=new Date(0);var skew=base.getTime();if(skew>0){date.setTime(date.getTime()-skew);}}};var clientPC=navigator.userAgent.toLowerCase();var is_macos=navigator.appVersion.indexOf('Mac')!=-1;var is_gecko=((clientPC.indexOf('gecko')!=-1)&&(clientPC.indexOf('spoofer')==-1)&&(clientPC.indexOf('khtml')==-1)&&(clientPC.indexOf('netscape/7.0')==-1));var is_safari=((clientPC.indexOf('AppleWebKit')!=-1)&&(clientPC.indexOf('spoofer')==-1));var is_khtml=(navigator.vendor=='KDE'||(document.childNodes&&!document.all&&!navigator.taintEnabled));if(clientPC.indexOf('opera')!=-1){var is_opera=true;var is_opera_preseven=(window.opera&&!document.childNodes);var is_opera_seven=(window.opera&&document.childNodes);}var toolbar='';function $(){var elements=new Array();for(var i=0;i<arguments.length;i++){var element=arguments[i];if(typeof element=='string')element=document.getElementById(element);if(arguments.length==1)return element;elements.push(element);}return elements;}function isset(varname){return(typeof(window[varname])!='undefined');}function getElementsByClass(searchClass,node,tag){var classElements=new Array();if(node==null)node=document;if(tag==null)tag='*';var els=node.getElementsByTagName(tag);var elsLen=els.length;var pattern=new RegExp("(^|\\s)"+searchClass+"(\\s|$)");for(i=0,j=0;i<elsLen;i++){if(pattern.test(els[i].className)){classElements[j]=els[i];j++;}}return classElements;}function findPosX(object){var curleft=0;var obj=$(object);if(obj.offsetParent){while(obj.offsetParent){curleft+=obj.offsetLeft;obj=obj.offsetParent;}}else if(obj.x){curleft+=obj.x;}return curleft;}function findPosY(object){var curtop=0;var obj=$(object);if(obj.offsetParent){while(obj.offsetParent){curtop+=obj.offsetTop;obj=obj.offsetParent;}}else if(obj.y){curtop+=obj.y;}return curtop;}function jsEscape(text){var re=new RegExp("\\\\","g");text=text.replace(re,"\\\\");re=new RegExp("'","g");text=text.replace(re,"\\'");re=new RegExp('"',"g");text=text.replace(re,'&quot;');re=new RegExp("\\\\\\\\n","g");text=text.replace(re,"\\n");return text;}function escapeQuotes(text){var re=new RegExp("'","g");text=text.replace(re,"\\'");re=new RegExp('"',"g");text=text.replace(re,'&quot;');re=new RegExp("\\n","g");text=text.replace(re,"\\n");return text;}function prependChild(parent,element){if(!parent.firstChild){parent.appendChild(element);}else{parent.insertBefore(element,parent.firstChild);}}function showLoadBar(){document.write('<img src="'+DOKU_BASE+'lib/images/loading.gif" '+'width="150" height="12" alt="..." />');}function hideLoadBar(id){obj=$(id);if(obj)obj.style.display="none";}function addTocToggle(){if(!document.getElementById)return;var header=$('toc__header');if(!header)return;var obj=document.createElement('span');obj.id='toc__toggle';obj.innerHTML='<span>&minus;</span>';obj.className='toc_close';obj.style.cursor='pointer';prependChild(header,obj);obj.parentNode.onclick=toggleToc;try{obj.parentNode.style.cursor='pointer';obj.parentNode.style.cursor='hand';}catch(e){}}function toggleToc(){var toc=$('toc__inside');var obj=$('toc__toggle');if(toc.style.display=='none'){toc.style.display='';obj.innerHTML='<span>&minus;</span>';obj.className='toc_close';}else{toc.style.display='none';obj.innerHTML='<span>+</span>';obj.className='toc_open';}}function checkAclLevel(){if(document.getElementById){var scope=$('acl_scope').value;if((scope.indexOf(":*")>0)||(scope=="*")){document.getElementsByName('acl_checkbox[4]')[0].disabled=false;document.getElementsByName('acl_checkbox[8]')[0].disabled=false;}else{document.getElementsByName('acl_checkbox[4]')[0].checked=false;document.getElementsByName('acl_checkbox[8]')[0].checked=false;document.getElementsByName('acl_checkbox[4]')[0].disabled=true;document.getElementsByName('acl_checkbox[8]')[0].disabled=true;}}}function footnote(e){var obj=e.target;var id=obj.id.substr(5);var fndiv=$('insitu__fn');if(!fndiv){fndiv=document.createElement('div');fndiv.id='insitu__fn';fndiv.className='insitu-footnote JSpopup dokuwiki';addEvent(fndiv,'mouseout',function(e){if(e.target!=fndiv){e.stopPropagation();return;}if(e.pageX){var bx1=findPosX(fndiv);var bx2=bx1+fndiv.offsetWidth;var by1=findPosY(fndiv);var by2=by1+fndiv.offsetHeight;var x=e.pageX;var y=e.pageY;if(x>bx1&&x<bx2&&y>by1&&y<by2){e.stopPropagation();return;}}else{if(e.offsetX>0&&e.offsetX<fndiv.offsetWidth-1&&e.offsetY>0&&e.offsetY<fndiv.offsetHeight-1){e.stopPropagation();return;}}fndiv.style.display='none';});document.body.appendChild(fndiv);}var a=$("fn__"+id);if(!a){return;}var content=new String(a.parentNode.parentNode.innerHTML);content=content.replace(/<sup>.*<\/sup>/gi,'');content=content.replace(/^\s+(,\s+)+/,'');content=content.replace(/\bid=\"(.*?)\"/gi,'id="insitu__$1');fndiv.innerHTML=content;var x;var y;if(e.pageX){x=e.pageX;y=e.pageY;}else{x=e.offsetX;y=e.offsetY;}fndiv.style.position='absolute';fndiv.style.left=(x+2)+'px';fndiv.style.top=(y+2)+'px';fndiv.style.display='';}addInitEvent(function(){var elems=getElementsByClass('fn_top',null,'a');for(var i=0;i<elems.length;i++){addEvent(elems[i],'mouseover',function(e){footnote(e);});}});function initSizeCtl(ctlid,edid){if(!document.getElementById){return;}var ctl=$(ctlid);var textarea=$(edid);if(!ctl||!textarea)return;var hgt=DokuCookie.getValue('sizeCtl');if(hgt){textarea.style.height=hgt;}else{textarea.style.height='300px';}var wrp=DokuCookie.getValue('wrapCtl');if(wrp){setWrap(textarea,wrp);}var l=document.createElement('img');var s=document.createElement('img');var w=document.createElement('img');l.src=DOKU_BASE+'lib/images/larger.gif';s.src=DOKU_BASE+'lib/images/smaller.gif';w.src=DOKU_BASE+'lib/images/wrap.gif';addEvent(l,'click',function(){sizeCtl(edid,100);});addEvent(s,'click',function(){sizeCtl(edid,-100);});addEvent(w,'click',function(){toggleWrap(edid);});ctl.appendChild(l);ctl.appendChild(s);ctl.appendChild(w);}function sizeCtl(edid,val){var textarea=$(edid);var height=parseInt(textarea.style.height.substr(0,textarea.style.height.length-2));height+=val;textarea.style.height=height+'px';DokuCookie.setValue('sizeCtl',textarea.style.height);}function toggleWrap(edid){var textarea=$(edid);var wrap=textarea.getAttribute('wrap');if(wrap&&wrap.toLowerCase()=='off'){setWrap(textarea,'soft');}else{setWrap(textarea,'off');}DokuCookie.setValue('wrapCtl',textarea.getAttribute('wrap'));}function setWrap(textarea,wrapAttrValue){textarea.setAttribute('wrap',wrapAttrValue);var parNod=textarea.parentNode;var nxtSib=textarea.nextSibling;parNod.removeChild(textarea);parNod.insertBefore(textarea,nxtSib);}function closePopups(){if(!document.getElementById){return;}var divs=document.getElementsByTagName('div');for(var i=0;i<divs.length;i++){if(divs[i].className.indexOf('JSpopup')!=-1){divs[i].style.display='none';}}}function scrollToMarker(){var obj=$('scroll__here');if(obj)obj.scrollIntoView();}function focusMarker(){var obj=$('focus__this');if(obj)obj.focus();}function cleanMsgArea(){var elems=getElementsByClass('(success|info|error)',document,'div');if(elems){for(var i=0;i<elems.length;i++){elems[i].style.display='none';}}}addInitEvent(function(){var revForm=$('page__revisions');if(!revForm)return;var elems=revForm.elements;var countTicks=0;for(var i=0;i<elems.length;i++){var input1=elems[i];if(input1.type=='checkbox'){addEvent(input1,'click',function(e){if(this.checked)countTicks++;else countTicks--;for(var j=0;j<elems.length;j++){var input2=elems[j];if(countTicks>=2)input2.disabled=(input2.type=='checkbox'&&!input2.checked);else input2.disabled=(input2.type!='checkbox');}});}}});addInitEvent(function(){var selector=$('action__selector');if(!selector)return;addEvent(selector,'change',function(e){this.form.submit();});$('action__selectorbtn').style.display='none';});function checkWindowsShares(){var elems=getElementsByClass('windows',document,'a');if(elems){for(var i=0;i<elems.length;i++){var share=elems[i];addEvent(share,'click',function(){if(document.all==null){alert(LANG['nosmblinks']);}});}}}addInitEvent(function(){checkWindowsShares();});function sack(file){this.AjaxFailedAlert="Your browser does not support the enhanced functionality of this website, and therefore you will have an experience that differs from the intended one.\n";this.requestFile=file;this.method="POST";this.URLString="";this.encodeURIString=true;this.execute=false;this.onLoading=function(){};this.onLoaded=function(){};this.onInteractive=function(){};this.onCompletion=function(){};this.afterCompletion=function(){};this.createAJAX=function(){try{this.xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{this.xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}catch(err){this.xmlhttp=null;}}if(!this.xmlhttp&&typeof XMLHttpRequest!="undefined"){this.xmlhttp=new XMLHttpRequest();}if(!this.xmlhttp){this.failed=true;}};this.setVar=function(name,value){if(this.URLString.length<3){this.URLString=name+"="+value;}else{this.URLString+="&"+name+"="+value;}};this.encVar=function(name,value){var varString=encodeURIComponent(name)+"="+encodeURIComponent(value);return varString;};this.encodeURLString=function(string){varArray=string.split('&');for(i=0;i<varArray.length;i++){urlVars=varArray[i].split('=');if(urlVars[0].indexOf('amp;')!=-1){urlVars[0]=urlVars[0].substring(4);}varArray[i]=this.encVar(urlVars[0],urlVars[1]);}return varArray.join('&');};this.runResponse=function(){eval(this.response);};this.runAJAX=function(urlstring){this.responseStatus=new Array(2);if(this.failed&&this.AjaxFailedAlert){alert(this.AjaxFailedAlert);}else{if(urlstring){if(this.URLString.length){this.URLString=this.URLString+"&"+urlstring;}else{this.URLString=urlstring;}}if(this.encodeURIString){var timeval=new Date().getTime();this.URLString=this.encodeURLString(this.URLString);this.setVar("rndval",timeval);}if(this.element){this.elementObj=document.getElementById(this.element);}if(this.xmlhttp){var self=this;if(this.method=="GET"){var totalurlstring=this.requestFile+"?"+this.URLString;this.xmlhttp.open(this.method,totalurlstring,true);}else{this.xmlhttp.open(this.method,this.requestFile,true);}if(this.method=="POST"){try{this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');}catch(e){}}this.xmlhttp.onreadystatechange=function(){switch(self.xmlhttp.readyState){case 1:self.onLoading();break;case 2:self.onLoaded();break;case 3:self.onInteractive();break;case 4:self.response=self.xmlhttp.responseText;self.responseXML=self.xmlhttp.responseXML;self.responseStatus[0]=self.xmlhttp.status;self.responseStatus[1]=self.xmlhttp.statusText;self.onCompletion();if(self.execute){self.runResponse();}if(self.elementObj){var elemNodeName=self.elementObj.nodeName;elemNodeName.toLowerCase();if(elemNodeName=="input"||elemNodeName=="select"||elemNodeName=="option"||elemNodeName=="textarea"){self.elementObj.value=self.response;}else{self.elementObj.innerHTML=self.response;}}self.afterCompletion();self.URLString="";break;}};this.xmlhttp.send(this.URLString);}}};this.createAJAX();}function ajax_qsearch_class(){this.sack=null;this.inObj=null;this.outObj=null;this.timer=null;}var ajax_qsearch=new ajax_qsearch_class();ajax_qsearch.sack=new sack(DOKU_BASE+'lib/exe/ajax.php');ajax_qsearch.sack.AjaxFailedAlert='';ajax_qsearch.sack.encodeURIString=false;ajax_qsearch.init=function(inID,outID){ajax_qsearch.inObj=document.getElementById(inID);ajax_qsearch.outObj=document.getElementById(outID);if(ajax_qsearch.inObj===null){return;}if(ajax_qsearch.outObj===null){return;}addEvent(ajax_qsearch.inObj,'keyup',ajax_qsearch.call);addEvent(ajax_qsearch.outObj,'click',function(){ajax_qsearch.outObj.style.display='none';});};ajax_qsearch.clear=function(){ajax_qsearch.outObj.style.display='none';ajax_qsearch.outObj.innerHTML='';if(ajax_qsearch.timer!==null){window.clearTimeout(ajax_qsearch.timer);ajax_qsearch.timer=null;}};ajax_qsearch.exec=function(){ajax_qsearch.clear();var value=ajax_qsearch.inObj.value;if(value===''){return;}ajax_qsearch.sack.runAJAX('call=qsearch&q='+encodeURI(value));};ajax_qsearch.sack.onCompletion=function(){var data=ajax_qsearch.sack.response;if(data===''){return;}ajax_qsearch.outObj.innerHTML=data;ajax_qsearch.outObj.style.display='block';};ajax_qsearch.call=function(){ajax_qsearch.clear();ajax_qsearch.timer=window.setTimeout("ajax_qsearch.exec()",500);};index={throbber_delay:500,treeattach:function(obj){if(!obj)return;var items=getElementsByClass('idx_dir',obj,'a');for(var i=0;i<items.length;i++){var elem=items[i];addEvent(elem,'click',function(e){return index.toggle(e,this);});var listitem=elem.parentNode;while(listitem.tagName!='LI'){listitem=listitem.parentNode;}if(listitem.getElementsByTagName('ul').length){listitem.open=true;}}},toggle:function(e,clicky){var listitem=clicky.parentNode.parentNode;listitem.open=!listitem.open;var sublists=listitem.getElementsByTagName('ul');if(!listitem.open){if(sublists.length){sublists[0].style.display='none';}listitem.className='closed';e.preventDefault();return false;}if(sublists.length&&listitem.open){sublists[0].style.display='';listitem.className='open';e.preventDefault();return false;}var ajax=new sack(DOKU_BASE+'lib/exe/ajax.php');ajax.AjaxFailedAlert='';ajax.encodeURIString=false;if(ajax.failed)return true;var ul=document.createElement('ul');ul.className='idx';timeout=window.setTimeout(function(){if(listitem.open){ul.innerHTML='<li><img src="'+DOKU_BASE+'lib/images/throbber.gif" alt="loading..." title="loading..." /></li>';listitem.appendChild(ul);listitem.className='open';}},this.throbber_delay);ajax.elementObj=ul;ajax.afterCompletion=function(){window.clearTimeout(timeout);index.treeattach(ul);if(listitem.className!='open'){if(!listitem.open){ul.style.display='none';}listitem.appendChild(ul);if(listitem.open){listitem.className='open';}}};ajax.runAJAX(clicky.search.substr(1)+'&call=index');e.preventDefault();return false;}};addInitEvent(function(){index.treeattach($('index__tree'));});addInitEvent(function(){ajax_qsearch.init('qsearch__in','qsearch__out');});addInitEvent(function(){addEvent(document,'click',closePopups);});addInitEvent(function(){addTocToggle();});acl={init:function(){this.ctl=$('acl_manager');if(!this.ctl)return;var sel=$('acl__user').getElementsByTagName('select')[0];addEvent(sel,'change',acl.userselhandler);addEvent($('acl__tree'),'click',acl.treehandler);addEvent($('acl__user').getElementsByTagName('input')[1],'click',acl.loadinfo);},userselhandler:function(e){if(this.value=='__g__'||this.value=='__u__'){$('acl__user').getElementsByTagName('input')[0].style.display='';$('acl__user').getElementsByTagName('input')[1].style.display='';}else{$('acl__user').getElementsByTagName('input')[0].style.display='none';$('acl__user').getElementsByTagName('input')[1].style.display='none';}acl.loadinfo();},loadinfo:function(){var frm=$('acl__detail').getElementsByTagName('form')[0];var ajax=new sack(DOKU_BASE+'lib/plugins/acl/ajax.php');ajax.AjaxFailedAlert='';ajax.encodeURIString=false;if(ajax.failed)return true;var data=Array();data[0]=ajax.encVar('ns',frm.elements['ns'].value);data[1]=ajax.encVar('id',frm.elements['id'].value);data[2]=ajax.encVar('acl_t',frm.elements['acl_t'].value);data[3]=ajax.encVar('acl_w',frm.elements['acl_w'].value);data[4]=ajax.encVar('ajax','info');ajax.elementObj=$('acl__info');ajax.runAJAX(data.join('&'));return false;},parseatt:function(str){if(str[0]=='?')str=str.substr(1);var attributes={};var all=str.split('&');for(var i=0;i<all.length;i++){var att=all[i].split('=');attributes[att[0]]=decodeURIComponent(att[1]);}return attributes;},hsc:function(str){str=str.replace(/&/g,"&amp;");str=str.replace(/\"/g,"&quot;");str=str.replace(/\'/g,"&#039;");str=str.replace(/</g,"&lt;");str=str.replace(/>/g,"&gt;");return str;},treetoggle:function(clicky){var listitem=clicky.parentNode.parentNode;var sublists=listitem.getElementsByTagName('ul');if(sublists.length){listitem.removeChild(sublists[0]);clicky.src=DOKU_BASE+'lib/images/plus.gif';clicky.alt='+';return false;}var link=listitem.getElementsByTagName('a')[0];var ajax=new sack(DOKU_BASE+'lib/plugins/acl/ajax.php');ajax.AjaxFailedAlert='';ajax.encodeURIString=false;if(ajax.failed)return true;var ul=document.createElement('ul');listitem.appendChild(ul);ajax.elementObj=ul;ajax.runAJAX(link.search.substr(1)+'&ajax=tree');clicky.src=DOKU_BASE+'lib/images/minus.gif';return false;},treehandler:function(e){if(e.target.src){acl.treetoggle(e.target);}else if(e.target.href){var obj=getElementsByClass('cur',$('acl__tree'),'a');for(var i=0;i<obj.length;i++){obj[i].className=obj[i].className.replace(/ cur/,'');}e.target.className+=' cur';var frm=$('acl__detail').getElementsByTagName('form')[0];if(e.target.className.search(/wikilink1/)>-1){frm.elements['ns'].value='';frm.elements['id'].value=acl.hsc(acl.parseatt(e.target.search)['id']);}else if(e.target.className.search(/idx_dir/)>-1){frm.elements['ns'].value=acl.hsc(acl.parseatt(e.target.search)['ns']);frm.elements['id'].value='';}acl.loadinfo();}e.stopPropagation();e.preventDefault();return false;}};addInitEvent(acl.init);function usrmgr_delconfirm(){if($('usrmgr__del')){addEvent($('usrmgr__del'),'click',function(){return confirm(reallyDel);});}};addInitEvent(usrmgr_delconfirm);var crypt_keys=[];var tag_enc="ENCRYPTED";var tag_pt="SECRET";var encryptForSubmitInUse=false;addInitEvent(function(){return(decryptEditSetup());});function editFormOnSubmit(){var msg="Unsaved changes will be lost [edt].\nReally continue?";if(encryptForSubmit()===false){return(false);}var rc=changeCheck(msg);if(window.event){window.event.returnValue=rc;}return rc;}function decryptEditSetup(msg){var editform=null,wikitext=null,hiddentext=null,preview=null;if(!(editform=document.getElementById('dw__editform'))){return(true);}if(!(wikitext=document.getElementById('wiki__text'))){return(false);}if(!(preview=document.getElementById('edbtn__preview'))){return(false);}if(!(hiddentext=document.createElement('input'))){return(false);}hiddentext.setAttribute('id','wiki__text_submit');hiddentext.setAttribute('name','wikitext');hiddentext.setAttribute('type','hidden');editform.insertBefore(hiddentext,null);editform.parentNode.insertBefore(wikitext,editform);if(!(decryptButton=document.createElement('input'))){return(false);}decryptButton.setAttribute('id','decryptButton');decryptButton.setAttribute('name','decryptButton');decryptButton.setAttribute('type','Button');decryptButton.setAttribute('value','DecryptSecret');decryptButton.onclick=decryptEditForm;decryptButton.setAttribute('class','button');decryptButton.setAttribute('className','button');preview.parentNode.insertBefore(decryptButton,preview);editform.onsubmit=function(){return editFormOnSubmit();};locktimer.refresh=function(){var now=new Date();if(now.getTime()-locktimer.lasttime.getTime()>30*1000){var params='call=lock&id='+encodeURIComponent(locktimer.pageid);if(locktimer.draft){var dwform=$('dw__editform');if(encryptForSubmit()===false){return(false);}params+='&prefix='+encodeURIComponent(dwform.elements.prefix.value);params+='&wikitext='+encodeURIComponent(dwform.elements.wikitext.value);params+='&suffix='+encodeURIComponent(dwform.elements.suffix.value);params+='&date='+encodeURIComponent(dwform.elements.date.value);}locktimer.sack.runAJAX(params);locktimer.lasttime=now;}};}function encryptForSubmit(){var wikitext=null,hiddentext=null;while(encryptForSubmitInUse!==false){}encryptForSubmitInUse=true;if(!(wikitext=document.getElementById('wiki__text'))){alert("failed to get wiki__text");encryptForSubmitInUse=false;return(false);}if(!(hiddentext=document.getElementById('wiki__text_submit'))){alert("failed to get wiki__text_submit");encryptForSubmitInUse=false;return(false);}var tosubmit=encryptMixedText(wikitext.value);if(tosubmit===false){encryptForSubmitInUse=false;return(false);}hiddentext.value=tosubmit;encryptForSubmitInUse=false;return(true);}function decryptEditForm(){var elem=null,newtext="";if(!(elem=document.getElementById('wiki__text'))){return(true);}if((newtext=decryptMixedText(elem.value))===false){alert("failed to decrypt wiki__text");return(false);}elem.value=newtext;return(true);}function setKeyFromAscii(pass){var s=encode_utf8(pass);var i,kmd5e,kmd5o;if(s.length==1){s+=s;}md5_init();for(i=0;i<s.length;i+=2){md5_update(s.charCodeAt(i));}md5_finish();kmd5e=byteArrayToHex(digestBits);md5_init();for(i=1;i<s.length;i+=2){md5_update(s.charCodeAt(i));}md5_finish();kmd5o=byteArrayToHex(digestBits);var hs=kmd5e+kmd5o;key=hexToByteArray(hs);hs=byteArrayToHex(key);return(key);}function toggleElemVisibility(elemid){elem=document.getElementById(elemid);if(elem.style.visibility=="visible"){elem.style.visibility="hidden";elem.style.position="absolute";}else{elem.style.visibility="visible";elem.style.position="relative";}}function toggleCryptDiv(elemid,lock,ctext){var elem=null,atab=null,key="",ptext="";var ctStr="Decrypt Encrypted Text",ptStr="Hide Plaintext";elem=document.getElementById(elemid);atag=document.getElementById(elemid+"_atag");if(elem===null||atag===null){alert("failed to find element id "+elemid);}if(atag.innerHTML==ptStr){elem.innerHTML=ctext;atag.innerHTML=ctStr;crypt_keys[lock]=undefined;}else if(atag.innerHTML==ctStr){if((ptext=verifyDecrypt(ctext,lock,false))===false){alert("unable to find key for lock "+lock);return;}elem.innerHTML=ptext;atag.innerHTML=ptStr;elem.style.visibility="visible";elem.style.position="relative";}else{alert("Broken");return;}}function getEncryptionKeyForLock(lock){if(undefined===crypt_keys[lock]){var x,y;x=prompt("Enter passphrase key for lock "+lock);if(x===null){return(false);}y=prompt("Verify passphrase key for lock "+lock);if(y===null){return(false);}if(x!=y){crypt_debug("passwords do not match\n");return(false);}crypt_debug("x="+x+" y="+y);crypt_keys[lock]=x;return(x);}else{return(crypt_keys[lock]);}}var debugval="";function crypt_debug(str){debugval+=str;}function decryptMixedText(x){var tag=tag_enc;var ret="",key="",ctext="";var tagend=0,opentag=0,blockend=0,pos=0;while((cur=x.indexOf("<"+tag,pos))!=-1){if((opentag_end=x.indexOf(">",cur))==-1){alert("unable to close to open tag");return(false);}if((closetag=x.indexOf("</"+tag+">",opentag_end))==-1){alert("unable to find close of "+tag+" tag");return(false);}if(!(ctext=decryptBlock(x.substring(cur,closetag+tag.length+3),false))){return(false);}ret+=x.substring(pos,cur)+ctext;pos=closetag+tag.length+3;}ret+=x.substring(pos);return(ret);}function encryptMixedText(x){var tag=tag_pt;var ret="",key="",ctext="";var tagend=0,opentag=0,blockend=0,pos=0;while((cur=x.indexOf("<"+tag,pos))!=-1){if((opentag_end=x.indexOf(">",cur))==-1){alert("unable to close to open tag");return(false);}if((closetag=x.indexOf("</"+tag+">",opentag_end))==-1){x=x+"</"+tag+">";closetag=x.indexOf("</"+tag+">",opentag_end);}if(!(ctext=encryptBlock(x.substring(cur,closetag+tag.length+3),false))){alert("failed to encrypt text");return(false);}ret+=x.substring(pos,cur)+ctext;pos=closetag+tag.length+3;}ret+=x.substring(pos);return(ret);}function verifyDecrypt(ctext,lock,key){var ptext=null;if(undefined!==crypt_keys[lock]){key=crypt_keys[lock];}if(key===false&&(undefined===crypt_keys[lock])){var key=prompt("Enter passphrase for lock "+lock);if(key===null){return(false);}if(!(ptext=decryptTextString(ctext,key))){var pstr="Try again: Enter passphrase for lock "+lock;while(null!==(key=prompt(pstr))){ptext=decryptTextString(ctext,key);if(ptext){break;}}if(key==null){return(false);}}crypt_keys[lock]=key;}else{var xkey=key;if(key===false){xkey=crypt_keys[lock];}if(!(ptext=decryptTextString(ctext,xkey))){if(key!==false){alert("failed to decrypt with provided key");}return(false);}}return(ptext);}function decryptBlock(data,key){var tagend=0,ptend=0,lock=null,ptext;if((tagend=data.indexOf(">"))==-1){crypt_debug("no > in "+data);return(false);}if((ptend=data.lastIndexOf("</"))==-1){crypt_debug(" no </ in "+data);return(false);}lock=getTagAttr(data.substring(0,tagend+1),"LOCK");if(lock===null){lock="default";}collapsed=getTagAttr(data.substring(0,tagend+1),"COLLAPSED");if(collapsed===null){collapsed="0";}if(!(ptext=verifyDecrypt(data.substring(tagend+1,ptend),lock,key))){return(false);}return("<"+tag_pt+" LOCK="+lock+" "+"COLLAPSED="+collapsed+">"+ptext+"</"+tag_pt+">");}function getTagAttr(opentag,attr){var loff=0;if((loff=opentag.indexOf(attr+"="))!=-1){if((t=opentag.indexOf(" ",loff+attr.length+1))!=-1){return(opentag.substring(loff+attr.length+1,t));}else{return(opentag.substring(loff+attr.length+1,opentag.length-1));}}return(null);}function encryptBlock(data,key){var tagend=0,ptend=0,lock=null,ctext;if((tagend=data.indexOf(">"))==-1){crypt_debug("no > in "+data);return(false);}if((ptend=data.lastIndexOf("</"))==-1){crypt_debug(" no </ in "+data);return(false);}lock=getTagAttr(data.substring(0,tagend+1),"LOCK");if(lock===null){lock="default";}collapsed=getTagAttr(data.substring(0,tagend+1),"COLLAPSED");if(collapsed===null){collapased="0";}if(key===false){key=getEncryptionKeyForLock(lock);if(key===false){return(false);}}if(!(ctext=encryptTextString(data.substring(tagend+1,ptend),key))){return(false);}return("<ENCRYPTED LOCK="+lock+" "+"COLLAPSED="+collapsed+">"+ctext+"</ENCRYPTED>");}function encryptTextString(ptext,akey){var v,i,ret,key;var prefix="#####  Encrypted: decrypt with ";prefix+="http://www.fourmilab.ch/javascrypt/\n";suffix="#####  End encrypted message\n";if(akey.length===0){alert("Please specify a key with which to encrypt the message.");return;}if(ptext.length===0){alert("No plain text to encrypt!");return;}ret="";key=setKeyFromAscii(akey);addEntropyTime();prng=new AESprng(keyFromEntropy());var plaintext=encode_utf8(ptext);md5_init();for(i=0;i<plaintext.length;i++){md5_update(plaintext.charCodeAt(i));}md5_finish();var header="";for(i=0;i<digestBits.length;i++){header+=String.fromCharCode(digestBits[i]);}i=plaintext.length;header+=String.fromCharCode(i>>>24);header+=String.fromCharCode(i>>>16);header+=String.fromCharCode(i>>>8);header+=String.fromCharCode(i&0xFF);var ct=rijndaelEncrypt(header+plaintext,key,"CBC");delete prng;return(prefix+armour_base64(ct)+suffix);}function decryptTextString(ctext,akey){key=setKeyFromAscii(akey);var ct=[];ct=disarm_base64(ctext);var result=rijndaelDecrypt(ct,key,"CBC");var header=result.slice(0,20);result=result.slice(20);var dl=(header[16]<<24)|(header[17]<<16)|(header[18]<<8)|header[19];if((dl<0)||(dl>result.length)){dl=result.length;}var i,plaintext="";md5_init();for(i=0;i<dl;i++){plaintext+=String.fromCharCode(result[i]);md5_update(result[i]);}md5_finish();successful=true;for(i=0;i<digestBits.length;i++){if(digestBits[i]!=header[i]){crypt_debug("Invalid decryption key.");return(false);}}return(decode_utf8(plaintext));}var keySizeInBits=256;var blockSizeInBits=128;var roundsArray=[undefined,undefined,undefined,undefined,[undefined,undefined,undefined,undefined,10,undefined,12,undefined,14],undefined,[undefined,undefined,undefined,undefined,12,undefined,12,undefined,14],undefined,[undefined,undefined,undefined,undefined,14,undefined,14,undefined,14]];var shiftOffsets=[undefined,undefined,undefined,undefined,[undefined,1,2,3],undefined,[undefined,1,2,3],undefined,[undefined,1,3,4]];var Rcon=[0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x1b,0x36,0x6c,0xd8,0xab,0x4d,0x9a,0x2f,0x5e,0xbc,0x63,0xc6,0x97,0x35,0x6a,0xd4,0xb3,0x7d,0xfa,0xef,0xc5,0x91];var SBox=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22];var SBoxInverse=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125];function cyclicShiftLeft(theArray,positions){var temp=theArray.slice(0,positions);theArray=theArray.slice(positions).concat(temp);return theArray;}var Nk=keySizeInBits/32;var Nb=blockSizeInBits/32;var Nr=roundsArray[Nk][Nb];function xtime(poly){poly<<=1;return((poly&0x100)?(poly^0x11B):(poly));}function mult_GF256(x,y){var bit,result=0;for(bit=1;bit<256;bit*=2,y=xtime(y)){if(x&bit){result^=y;}}return result;}function byteSub(state,direction){var S;if(direction=="encrypt"){S=SBox;}else{S=SBoxInverse;}for(var i=0;i<4;i++){for(var j=0;j<Nb;j++){state[i][j]=S[state[i][j]];}}}function shiftRow(state,direction){for(var i=1;i<4;i++){if(direction=="encrypt"){state[i]=cyclicShiftLeft(state[i],shiftOffsets[Nb][i]);}else{state[i]=cyclicShiftLeft(state[i],Nb-shiftOffsets[Nb][i]);}}}function mixColumn(state,direction){var b=[];var i=0;for(var j=0;j<Nb;j++){for(i=0;i<4;i++){if(direction=="encrypt"){b[i]=mult_GF256(state[i][j],2)^mult_GF256(state[(i+1)%4][j],3)^state[(i+2)%4][j]^state[(i+3)%4][j];}else{b[i]=mult_GF256(state[i][j],0xE)^mult_GF256(state[(i+1)%4][j],0xB)^mult_GF256(state[(i+2)%4][j],0xD)^mult_GF256(state[(i+3)%4][j],9);}}for(i=0;i<4;i++){state[i][j]=b[i];}}}function addRoundKey(state,roundKey){for(var j=0;j<Nb;j++){state[0][j]^=(roundKey[j]&0xFF);state[1][j]^=((roundKey[j]>>8)&0xFF);state[2][j]^=((roundKey[j]>>16)&0xFF);state[3][j]^=((roundKey[j]>>24)&0xFF);}}function keyExpansion(key){var expandedKey=[];var temp;Nk=keySizeInBits/32;Nb=blockSizeInBits/32;Nr=roundsArray[Nk][Nb];for(var j=0;j<Nk;j++){expandedKey[j]=(key[4*j])|(key[4*j+1]<<8)|(key[4*j+2]<<16)|(key[4*j+3]<<24);}for(j=Nk;j<Nb*(Nr+1);j++){temp=expandedKey[j-1];if(j%Nk===0){temp=((SBox[(temp>>8)&0xFF])|(SBox[(temp>>16)&0xFF]<<8)|(SBox[(temp>>24)&0xFF]<<16)|(SBox[temp&0xFF]<<24))^Rcon[Math.floor(j/Nk)-1];}else if(Nk>6&&j%Nk==4){temp=(SBox[(temp>>24)&0xFF]<<24)|(SBox[(temp>>16)&0xFF]<<16)|(SBox[(temp>>8)&0xFF]<<8)|(SBox[temp&0xFF]);}expandedKey[j]=expandedKey[j-Nk]^temp;}return expandedKey;}function jcRound(state,roundKey){byteSub(state,"encrypt");shiftRow(state,"encrypt");mixColumn(state,"encrypt");addRoundKey(state,roundKey);}function inverseRound(state,roundKey){addRoundKey(state,roundKey);mixColumn(state,"decrypt");shiftRow(state,"decrypt");byteSub(state,"decrypt");}function finalRound(state,roundKey){byteSub(state,"encrypt");shiftRow(state,"encrypt");addRoundKey(state,roundKey);}function inverseFinalRound(state,roundKey){addRoundKey(state,roundKey);shiftRow(state,"decrypt");byteSub(state,"decrypt");}function encrypt(block,expandedKey){var i;if(!block||block.length*8!=blockSizeInBits){return;}if(!expandedKey){return;}block=packBytes(block);addRoundKey(block,expandedKey);for(i=1;i<Nr;i++){jcRound(block,expandedKey.slice(Nb*i,Nb*(i+1)));}finalRound(block,expandedKey.slice(Nb*Nr));return unpackBytes(block);}function decrypt(block,expandedKey){var i;if(!block||block.length*8!=blockSizeInBits){return;}if(!expandedKey){return;}block=packBytes(block);inverseFinalRound(block,expandedKey.slice(Nb*Nr));for(i=Nr-1;i>0;i--){inverseRound(block,expandedKey.slice(Nb*i,Nb*(i+1)));}addRoundKey(block,expandedKey);return unpackBytes(block);}function byteArrayToHex(byteArray){var result="";if(!byteArray){return;}for(var i=0;i<byteArray.length;i++){result+=((byteArray[i]<16)?"0":"")+byteArray[i].toString(16);}return result;}function hexToByteArray(hexString){var byteArray=[];if(hexString.length%2){return;}if(hexString.indexOf("0x")===0||hexString.indexOf("0X")===0){hexString=hexString.substring(2);}for(var i=0;i<hexString.length;i+=2){byteArray[Math.floor(i/2)]=parseInt(hexString.slice(i,i+2),16);}return byteArray;}function packBytes(octets){var state=[];if(!octets||octets.length%4){return;}state[0]=[];state[1]=[];state[2]=[];state[3]=[];for(var j=0;j<octets.length;j+=4){state[0][j/4]=octets[j];state[1][j/4]=octets[j+1];state[2][j/4]=octets[j+2];state[3][j/4]=octets[j+3];}return state;}function unpackBytes(packed){var result=[];for(var j=0;j<packed[0].length;j++){result[result.length]=packed[0][j];result[result.length]=packed[1][j];result[result.length]=packed[2][j];result[result.length]=packed[3][j];}return result;}function formatPlaintext(plaintext){var bpb=blockSizeInBits/8;var i;if((!((typeof plaintext=="object")&&((typeof(plaintext[0]))=="number")))&&((typeof plaintext=="string")||plaintext.indexOf)){plaintext=plaintext.split("");for(i=0;i<plaintext.length;i++){plaintext[i]=plaintext[i].charCodeAt(0)&0xFF;}}i=plaintext.length%bpb;if(i>0){plaintext=plaintext.concat(getRandomBytes(bpb-i));}return plaintext;}function getRandomBytes(howMany){var i,bytes=[];for(i=0;i<howMany;i++){bytes[i]=prng.nextInt(255);}return bytes;}function rijndaelEncrypt(plaintext,key,mode){var expandedKey,i,aBlock;var bpb=blockSizeInBits/8;var ct;if(!plaintext||!key){return;}if(key.length*8!=keySizeInBits){return;}if(mode=="CBC"){ct=getRandomBytes(bpb);}else{mode="ECB";ct=[];}plaintext=formatPlaintext(plaintext);expandedKey=keyExpansion(key);for(var block=0;block<plaintext.length/bpb;block++){aBlock=plaintext.slice(block*bpb,(block+1)*bpb);if(mode=="CBC"){for(i=0;i<bpb;i++){aBlock[i]^=ct[(block*bpb)+i];}}ct=ct.concat(encrypt(aBlock,expandedKey));}return ct;}function rijndaelDecrypt(ciphertext,key,mode){var expandedKey;var bpb=blockSizeInBits/8;var pt=[];var aBlock;var block;if(!ciphertext||!key||typeof ciphertext=="string"){return;}if(key.length*8!=keySizeInBits){return;}if(!mode){mode="ECB";}expandedKey=keyExpansion(key);for(block=(ciphertext.length/bpb)-1;block>0;block--){aBlock=decrypt(ciphertext.slice(block*bpb,(block+1)*bpb),expandedKey);if(mode=="CBC"){for(var i=0;i<bpb;i++){pt[(block-1)*bpb+i]=aBlock[i]^ciphertext[(block-1)*bpb+i];}}else{pt=aBlock.concat(pt);}}if(mode=="ECB"){pt=decrypt(ciphertext.slice(0,bpb),expandedKey).concat(pt);}return pt;}var entropyData=[];var edlen=0;addEntropyTime();ce();function addEntropyByte(b){entropyData[edlen++]=b;}function ce(){addEntropyByte(Math.floor((((new Date()).getMilliseconds())*255)/999));}function addEntropy32(w){var i;for(i=0;i<4;i++){addEntropyByte(w&0xFF);w>>=8;}}function addEntropyTime(){addEntropy32((new Date()).getTime());}var mouseMotionCollect=0;var oldMoveHandler;function mouseMotionEntropy(maxsamp){if(mouseMotionCollect<=0){mouseMotionCollect=maxsamp;if((document.implementation.hasFeature("Events","2.0"))&&document.addEventListener){document.addEventListener("mousemove",mouseMoveEntropy,false);}else{if(document.attachEvent){document.attachEvent("onmousemove",mouseMoveEntropy);}else{oldMoveHandler=document.onmousemove;document.onmousemove=mouseMoveEntropy;}}}}var mouseEntropyTime=0;function mouseMoveEntropy(e){if(!e){e=window.event;}if(mouseMotionCollect>0){if(mouseEntropyTime--<=0){addEntropyByte(e.screenX&0xFF);addEntropyByte(e.screenY&0xFF);ce();mouseMotionCollect--;mouseEntropyTime=(entropyData[edlen-3]^entropyData[edlen-2]^entropyData[edlen-1])%19;}if(mouseMotionCollect<=0){if(document.removeEventListener){document.removeEventListener("mousemove",mouseMoveEntropy,false);}else if(document.detachEvent){document.detachEvent("onmousemove",mouseMoveEntropy);}else{document.onmousemove=oldMoveHandler;}}}}function keyFromEntropy(){var i,k=[];if(edlen===0){alert("Blooie!  Entropy vector void at call to keyFromEntropy.");}md5_init();for(i=0;i<edlen;i+=2){md5_update(entropyData[i]);}md5_finish();for(i=0;i<16;i++){k[i]=digestBits[i];}md5_init();for(i=1;i<edlen;i+=2){md5_update(entropyData[i]);}md5_finish();for(i=0;i<16;i++){k[i+16]=digestBits[i];}return k;}function AESprng(seed){this.key=[];this.key=seed;this.itext=hexToByteArray("9F489613248148F9C27945C6AE62EECA3E3367BB14064E4E6DC67A9F28AB3BD1");this.nbytes=0;this.next=AESprng_next;this.nextbits=AESprng_nextbits;this.nextInt=AESprng_nextInt;this.round=AESprng_round;bsb=blockSizeInBits;blockSizeInBits=256;var i,ct;for(i=0;i<3;i++){this.key=rijndaelEncrypt(this.itext,this.key,"ECB");}var n=1+(this.key[3]&2)+(this.key[9]&1);for(i=0;i<n;i++){this.key=rijndaelEncrypt(this.itext,this.key,"ECB");}blockSizeInBits=bsb;}function AESprng_round(){bsb=blockSizeInBits;blockSizeInBits=256;this.key=rijndaelEncrypt(this.itext,this.key,"ECB");this.nbytes=32;blockSizeInBits=bsb;}function AESprng_next(){if(this.nbytes<=0){this.round();}return(this.key[--this.nbytes]);}function AESprng_nextbits(n){var i,w=0,nbytes=Math.floor((n+7)/8);for(i=0;i<nbytes;i++){w=(w<<8)|this.next();}return w&((1<<n)-1);}function AESprng_nextInt(n){var p=1,nb=0;while(n>=p){p<<=1;nb++;}p--;while(true){var v=this.nextbits(nb)&p;if(v<=n){return v;}}}function uGen(old,a,q,r,m){var t;t=Math.floor(old/q);t=a*(old-(t*q))-(t*r);return Math.round((t<0)?(t+m):t);}function LEnext(){var i;this.gen1=uGen(this.gen1,40014,53668,12211,2147483563);this.gen2=uGen(this.gen2,40692,52774,3791,2147483399);i=Math.floor(this.state/67108862);this.state=Math.round((this.shuffle[i]+this.gen2)%2147483563);this.shuffle[i]=this.gen1;return this.state;}function LEnint(n){var p=1;while(n>=p){p<<=1;}p--;while(true){var v=this.next()&p;if(v<=n){return v;}}}function LEcuyer(s){var i;this.shuffle=[];this.gen1=this.gen2=(s&0x7FFFFFFF);for(i=0;i<19;i++){this.gen1=uGen(this.gen1,40014,53668,12211,2147483563);}for(i=0;i<32;i++){this.gen1=uGen(this.gen1,40014,53668,12211,2147483563);this.shuffle[31-i]=this.gen1;}this.state=this.shuffle[0];this.next=LEnext;this.nextInt=LEnint;}function array(n){for(i=0;i<n;i++){this[i]=0;}this.length=n;}function integer(n){return n%(0xffffffff+1);}function shr(a,b){a=integer(a);b=integer(b);if(a-0x80000000>=0){a=a%0x80000000;a>>=b;a+=0x40000000>>(b-1);}else{a>>=b;}return a;}function shl1(a){a=a%0x80000000;if(a&0x40000000==0x40000000){a-=0x40000000;a*=2;a+=0x80000000;}else{a*=2;}return a;}function shl(a,b){a=integer(a);b=integer(b);for(var i=0;i<b;i++){a=shl1(a);}return a;}function and(a,b){a=integer(a);b=integer(b);var t1=a-0x80000000;var t2=b-0x80000000;if(t1>=0){if(t2>=0){return((t1&t2)+0x80000000);}else{return(t1&b);}}else{if(t2>=0){return(a&t2);}else{return(a&b);}}}function or(a,b){a=integer(a);b=integer(b);var t1=a-0x80000000;var t2=b-0x80000000;if(t1>=0){if(t2>=0){return((t1|t2)+0x80000000);}else{return((t1|b)+0x80000000);}}else{if(t2>=0){return((a|t2)+0x80000000);}else{return(a|b);}}}function xor(a,b){a=integer(a);b=integer(b);var t1=a-0x80000000;var t2=b-0x80000000;if(t1>=0){if(t2>=0){return(t1^t2);}else{return((t1^b)+0x80000000);}}else{if(t2>=0){return((a^t2)+0x80000000);}else{return(a^b);}}}function not(a){a=integer(a);return 0xffffffff-a;}var state=[];var count=[];count[0]=0;count[1]=0;var buffer=[];var transformBuffer=[];var digestBits=[];var S11=7;var S12=12;var S13=17;var S14=22;var S21=5;var S22=9;var S23=14;var S24=20;var S31=4;var S32=11;var S33=16;var S34=23;var S41=6;var S42=10;var S43=15;var S44=21;function jcF(x,y,z){return or(and(x,y),and(not(x),z));}function jcG(x,y,z){return or(and(x,z),and(y,not(z)));}function jcH(x,y,z){return xor(xor(x,y),z);}function jcI(x,y,z){return xor(y,or(x,not(z)));}function rotateLeft(a,n){return or(shl(a,n),(shr(a,(32-n))));}function jcFF(a,b,c,d,x,s,ac){a=a+jcF(b,c,d)+x+ac;a=rotateLeft(a,s);a=a+b;return a;}function jcGG(a,b,c,d,x,s,ac){a=a+jcG(b,c,d)+x+ac;a=rotateLeft(a,s);a=a+b;return a;}function jcHH(a,b,c,d,x,s,ac){a=a+jcH(b,c,d)+x+ac;a=rotateLeft(a,s);a=a+b;return a;}function jcII(a,b,c,d,x,s,ac){a=a+jcI(b,c,d)+x+ac;a=rotateLeft(a,s);a=a+b;return a;}function transform(buf,offset){var a=0,b=0,c=0,d=0;var x=transformBuffer;a=state[0];b=state[1];c=state[2];d=state[3];for(i=0;i<16;i++){x[i]=and(buf[i*4+offset],0xFF);for(j=1;j<4;j++){x[i]+=shl(and(buf[i*4+j+offset],0xFF),j*8);}}a=jcFF(a,b,c,d,x[0],S11,0xd76aa478);d=jcFF(d,a,b,c,x[1],S12,0xe8c7b756);c=jcFF(c,d,a,b,x[2],S13,0x242070db);b=jcFF(b,c,d,a,x[3],S14,0xc1bdceee);a=jcFF(a,b,c,d,x[4],S11,0xf57c0faf);d=jcFF(d,a,b,c,x[5],S12,0x4787c62a);c=jcFF(c,d,a,b,x[6],S13,0xa8304613);b=jcFF(b,c,d,a,x[7],S14,0xfd469501);a=jcFF(a,b,c,d,x[8],S11,0x698098d8);d=jcFF(d,a,b,c,x[9],S12,0x8b44f7af);c=jcFF(c,d,a,b,x[10],S13,0xffff5bb1);b=jcFF(b,c,d,a,x[11],S14,0x895cd7be);a=jcFF(a,b,c,d,x[12],S11,0x6b901122);d=jcFF(d,a,b,c,x[13],S12,0xfd987193);c=jcFF(c,d,a,b,x[14],S13,0xa679438e);b=jcFF(b,c,d,a,x[15],S14,0x49b40821);a=jcGG(a,b,c,d,x[1],S21,0xf61e2562);d=jcGG(d,a,b,c,x[6],S22,0xc040b340);c=jcGG(c,d,a,b,x[11],S23,0x265e5a51);b=jcGG(b,c,d,a,x[0],S24,0xe9b6c7aa);a=jcGG(a,b,c,d,x[5],S21,0xd62f105d);d=jcGG(d,a,b,c,x[10],S22,0x2441453);c=jcGG(c,d,a,b,x[15],S23,0xd8a1e681);b=jcGG(b,c,d,a,x[4],S24,0xe7d3fbc8);a=jcGG(a,b,c,d,x[9],S21,0x21e1cde6);d=jcGG(d,a,b,c,x[14],S22,0xc33707d6);c=jcGG(c,d,a,b,x[3],S23,0xf4d50d87);b=jcGG(b,c,d,a,x[8],S24,0x455a14ed);a=jcGG(a,b,c,d,x[13],S21,0xa9e3e905);d=jcGG(d,a,b,c,x[2],S22,0xfcefa3f8);c=jcGG(c,d,a,b,x[7],S23,0x676f02d9);b=jcGG(b,c,d,a,x[12],S24,0x8d2a4c8a);a=jcHH(a,b,c,d,x[5],S31,0xfffa3942);d=jcHH(d,a,b,c,x[8],S32,0x8771f681);c=jcHH(c,d,a,b,x[11],S33,0x6d9d6122);b=jcHH(b,c,d,a,x[14],S34,0xfde5380c);a=jcHH(a,b,c,d,x[1],S31,0xa4beea44);d=jcHH(d,a,b,c,x[4],S32,0x4bdecfa9);c=jcHH(c,d,a,b,x[7],S33,0xf6bb4b60);b=jcHH(b,c,d,a,x[10],S34,0xbebfbc70);a=jcHH(a,b,c,d,x[13],S31,0x289b7ec6);d=jcHH(d,a,b,c,x[0],S32,0xeaa127fa);c=jcHH(c,d,a,b,x[3],S33,0xd4ef3085);b=jcHH(b,c,d,a,x[6],S34,0x4881d05);a=jcHH(a,b,c,d,x[9],S31,0xd9d4d039);d=jcHH(d,a,b,c,x[12],S32,0xe6db99e5);c=jcHH(c,d,a,b,x[15],S33,0x1fa27cf8);b=jcHH(b,c,d,a,x[2],S34,0xc4ac5665);a=jcII(a,b,c,d,x[0],S41,0xf4292244);d=jcII(d,a,b,c,x[7],S42,0x432aff97);c=jcII(c,d,a,b,x[14],S43,0xab9423a7);b=jcII(b,c,d,a,x[5],S44,0xfc93a039);a=jcII(a,b,c,d,x[12],S41,0x655b59c3);d=jcII(d,a,b,c,x[3],S42,0x8f0ccc92);c=jcII(c,d,a,b,x[10],S43,0xffeff47d);b=jcII(b,c,d,a,x[1],S44,0x85845dd1);a=jcII(a,b,c,d,x[8],S41,0x6fa87e4f);d=jcII(d,a,b,c,x[15],S42,0xfe2ce6e0);c=jcII(c,d,a,b,x[6],S43,0xa3014314);b=jcII(b,c,d,a,x[13],S44,0x4e0811a1);a=jcII(a,b,c,d,x[4],S41,0xf7537e82);d=jcII(d,a,b,c,x[11],S42,0xbd3af235);c=jcII(c,d,a,b,x[2],S43,0x2ad7d2bb);b=jcII(b,c,d,a,x[9],S44,0xeb86d391);state[0]+=a;state[1]+=b;state[2]+=c;state[3]+=d;}function md5_init(){count[0]=count[1]=0;state[0]=0x67452301;state[1]=0xefcdab89;state[2]=0x98badcfe;state[3]=0x10325476;for(i=0;i<digestBits.length;i++){digestBits[i]=0;}}function md5_update(b){var index,i;index=and(shr(count[0],3),0x3F);if(count[0]<0xFFFFFFFF-7){count[0]+=8;}else{count[1]++;count[0]-=0xFFFFFFFF+1;count[0]+=8;}buffer[index]=and(b,0xff);if(index>=63){transform(buffer,0);}}function md5_finish(){var bits=[];var padding;var i=0,index=0,padLen=0;for(i=0;i<4;i++){bits[i]=and(shr(count[0],(i*8)),0xFF);}for(i=0;i<4;i++){bits[i+4]=and(shr(count[1],(i*8)),0xFF);}index=and(shr(count[0],3),0x3F);padLen=(index<56)?(56-index):(120-index);padding=[];padding[0]=0x80;for(i=0;i<padLen;i++){md5_update(padding[i]);}for(i=0;i<8;i++){md5_update(bits[i]);}for(i=0;i<4;i++){for(j=0;j<4;j++){digestBits[i*4+j]=and(shr(state[i],(j*8)),0xFF);}}}var maxLineLength=64;var hexSentinel="?HX?",hexEndSentinel="?H";function armour_hex(b){var h=hexSentinel+byteArrayToHex(b)+hexEndSentinel;var t="";while(h.length>maxLineLength){t+=h.substring(0,maxLineLength)+"\n";h=h.substring(maxLineLength,h.length);}t+=h+"\n";return t;}function disarm_hex(s){var hexDigits="0123456789abcdefABCDEF";var hs="",i;if((i=s.indexOf(hexSentinel))>=0){s=s.substring(i+hexSentinel.length,s.length);}if((i=s.indexOf(hexEndSentinel))>=0){s=s.substring(0,i);}for(i=0;i<s.length;i++){var c=s.charAt(i);if(hexDigits.indexOf(c)>=0){hs+=c;}}return hexToByteArray(hs);}var acgcl,acgt,acgg;function armour_cg_outgroup(){if(acgcl.length>maxLineLength){acgt+=acgcl+"\n";acgcl="";}if(acgcl.length>0){acgcl+=" ";}acgcl+=acgg;acgg="";}function armour_cg_outletter(l){if(acgg.length>=5){armour_cg_outgroup();}acgg+=l;}var codegroupSentinel="ZZZZZ";function armour_codegroup(b){var charBase=("A").charCodeAt(0);acgcl=codegroupSentinel;acgt="";acgg="";var cgrng=new LEcuyer(0xbadf00d);for(i=0;i<b.length;i++){var r=cgrng.nextInt(23);armour_cg_outletter(String.fromCharCode(charBase+((((b[i]>>4)&0xF))+r)%24));r=cgrng.nextInt(23);armour_cg_outletter(String.fromCharCode(charBase+((((b[i]&0xF))+r)%24)));}delete cgrng;while(acgg.length<5){armour_cg_outletter("Z");}armour_cg_outgroup();acgg="YYYYY";armour_cg_outgroup();acgt+=acgcl+"\n";return acgt;}var dcgs,dcgi;function disarm_cg_insig(){while(dcgi<dcgs.length){var c=dcgs.charAt(dcgi++).toUpperCase();if((c>="A")&&(c<="Z")){return c;}}return"";}function disarm_codegroup(s){var b=[];var nz=0,ba,bal=0,c;dcgs=s;dcgi=0;while(nz<5){c=disarm_cg_insig();if(c=="Z"){nz++;}else if(c===""){nz=0;break;}else{nz=0;}}if(nz===0){alert("No codegroup starting symbol found in message.");return"";}var charBase=("A").charCodeAt(0);var cgrng=new LEcuyer(0xbadf00d);for(nz=0;nz<2;){c=disarm_cg_insig();if((c=="Y")||(c==="")){break;}else if(c!="Z"){var r=cgrng.nextInt(23);var n=c.charCodeAt(0)-charBase;n=(n+(24-r))%24;if(nz===0){ba=(n<<4);nz++;}else{ba|=n;b[bal++]=ba;nz=0;}}}delete cgrng;var kbo="  Attempting decoding with data received.";if(nz!==0){alert("Codegroup data truncated."+kbo);}else{if(c=="Y"){nz=1;while(nz<5){c=disarm_cg_insig();if(c!="Y"){break;}nz++;}if(nz!=5){alert("Codegroup end group incomplete."+kbo);}}else{alert("Codegroup end group missing."+kbo);}}return b;}var base64code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",base64sent="?b64",base64esent="?64b",base64addsent=true;function armour_base64(b){var b64t="";var b64l=base64addsent?base64sent:"";var i;for(i=0;i<=b.length-3;i+=3){if((b64l.length+4)>maxLineLength){b64t+=b64l+"\n";b64l="";}b64l+=base64code.charAt(b[i]>>2);b64l+=base64code.charAt(((b[i]&3)<<4)|(b[i+1]>>4));b64l+=base64code.charAt(((b[i+1]&0xF)<<2)|(b[i+2]>>6));b64l+=base64code.charAt(b[i+2]&0x3F);}if((b.length-i)==1){b64l+=base64code.charAt(b[i]>>2);b64l+=base64code.charAt(((b[i]&3)<<4));b64l+="==";}else if((b.length-i)==2){b64l+=base64code.charAt(b[i]>>2);b64l+=base64code.charAt(((b[i]&3)<<4)|(b[i+1]>>4));b64l+=base64code.charAt(((b[i+1]&0xF)<<2));b64l+="=";}if((b64l.length+4)>maxLineLength){b64t+=b64l+"\n";b64l="";}if(base64addsent){b64l+=base64esent;}b64t+=b64l+"\n";return b64t;}function disarm_base64(s){var b=[];var i=0,j,c,shortgroup=0,n=0;var d=[];if((j=s.indexOf(base64sent))>=0){s=s.substring(j+base64sent.length,s.length);}if((j=s.indexOf(base64esent))>=0){s=s.substring(0,j);}while(i<s.length){if(base64code.indexOf(s.charAt(i))!=-1){break;}i++;}while(i<s.length){for(j=0;j<4;){if(i>=s.length){if(j>0){alert("Base64 cipher text truncated.");return b;}break;}c=base64code.indexOf(s.charAt(i));if(c>=0){d[j++]=c;}else if(s.charAt(i)=="="){d[j++]=0;shortgroup++;}else if(s.substring(i,i+base64esent.length)==base64esent){i=s.length;continue;}else{}i++;}if(j==4){b[n++]=((d[0]<<2)|(d[1]>>4))&0xFF;if(shortgroup<2){b[n++]=((d[1]<<4)|(d[2]>>2))&0xFF;if(shortgroup<1){b[n++]=((d[2]<<6)|d[3])&0xFF;}}}}return b;}function unicode_to_utf8(s){var utf8="";for(var n=0;n<s.length;n++){var c=s.charCodeAt(n);if(c<=0x7F){utf8+=String.fromCharCode(c);}else if((c>=0x80)&&(c<=0x7FF)){utf8+=String.fromCharCode((c>>6)|0xC0);utf8+=String.fromCharCode((c&0x3F)|0x80);}else{utf8+=String.fromCharCode((c>>12)|0xE0);utf8+=String.fromCharCode(((c>>6)&0x3F)|0x80);utf8+=String.fromCharCode((c&0x3F)|0x80);}}return utf8;}function utf8_to_unicode(utf8){var s="",i=0,b1,b2;while(i<utf8.length){b1=utf8.charCodeAt(i);if(b1<0x80){s+=String.fromCharCode(b1);i++;}else if((b1>=0xC0)&&(b1<0xE0)){b2=utf8.charCodeAt(i+1);s+=String.fromCharCode(((b1&0x1F)<<6)|(b2&0x3F));i+=2;}else{b2=utf8.charCodeAt(i+1);b3=utf8.charCodeAt(i+2);s+=String.fromCharCode(((b1&0xF)<<12)|((b2&0x3F)<<6)|(b3&0x3F));i+=3;}}return s;}function encode_utf8(s){var i,necessary=false;for(i=0;i<s.length;i++){if((s.charCodeAt(i)==0x9D)||(s.charCodeAt(i)>0xFF)){necessary=true;break;}}if(!necessary){return s;}return String.fromCharCode(0x9D)+unicode_to_utf8(s);}function decode_utf8(s){if((s.length>0)&&(s.charCodeAt(0)==0x9D)){return utf8_to_unicode(s.substring(1));}return s;}addInitEvent(function(){scrollToMarker();});addInitEvent(function(){focusMarker();});
