var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(b,a,g){b!=Array.prototype&&b!=Object.prototype&&(b[a]=g.value)};$jscomp.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global&&null!=global?global:b};$jscomp.global=$jscomp.getGlobal(this); $jscomp.polyfill=function(b,a,g,k){if(a){g=$jscomp.global;b=b.split(".");for(k=0;kb&&(b=Math.max(0,e+b));if(null==k||k>e)k=e;k=Number(k);0>k&&(k=Math.max(0,e+k));for(b=Number(b||0);bc.className.indexOf("keymanweb-input")))return!0;c.nodeName.toLowerCase();if(c.ownerDocument&&c instanceof c.ownerDocument.defaultView.HTMLInputElement){var b=c.type.toLowerCase();if("text"!=b&&"search"!=b)return!0}else if(!(!d.touchable&&c.isContentEditable||c.ownerDocument&&c instanceof c.ownerDocument.defaultView.HTMLTextAreaElement))return!0; e.states.activeElement=c;3==c.nodeType&&(c=c.parentNode);b=c;(null==c.className||0>c.className.indexOf("keymanweb-input"))&&this instanceof e&&this.scrollBody(c);c.ownerDocument&&c instanceof c.ownerDocument.defaultView.HTMLIFrameElement&&(this.keyman.domManager._AttachToIframe(c),c=c.contentWindow.document);var h=a.states.lastActiveElement;a.states.lastActiveElement=c;this.keyman.uiManager.justActivated?this._BlurKeyboardSettings():this._FocusKeyboardSettings(h?!1:!0);if(this._CommonFocusHelper(c))return!0; c._KeymanWebSelectionStart=c._KeymanWebSelectionEnd=null;c.ownerDocument&&c instanceof c.ownerDocument.defaultView.HTMLElement&&this.keyman.domManager._SetTargDir(c);this.doControlFocused(b,a.states.lastActiveElement);d.touchable?f._Enabled=1:f.ready&&(this.keyman.keyboardManager.isCJK()&&(f._Enabled=1),f._Enabled?f._Show():f._Hide(!1));return!0}.bind(this);this._ControlBlur=function(c){c=this.keyman._GetEventObject(c);var d=this.keyman.util.eventTarget(c);if(null==d)return!0;a.states.activeElement= null;this instanceof e&&this.hideCaret();3==d.nodeType&&(d=d.parentNode);d.ownerDocument&&(d instanceof d.ownerDocument.defaultView.HTMLIFrameElement&&(d=d.contentWindow.document),d instanceof d.ownerDocument.defaultView.HTMLInputElement||d instanceof d.ownerDocument.defaultView.HTMLTextAreaElement)&&(d._KeymanWebSelectionStart=d.value._kmwCodeUnitToCodePoint(d.selectionStart),d._KeymanWebSelectionEnd=d.value._kmwCodeUnitToCodePoint(d.selectionEnd));this._BlurKeyboardSettings();a.states.lastActiveElement= d;this.keyman.uiManager.justActivated=!1;var f=this.keyman.uiManager.isActivating;f||this.keyman.keyboardManager.notifyKeyboard(0,d,0);this.doControlBlurred(d,c,f);this.keyman.osk.ready&&!f&&this.keyman.osk._Hide(!1);this.doChangeEvent(d);this.keyman.interface.resetContext();return!0}.bind(this);this._SelectionChange=function(){a.states._IgnoreNextSelChange&&a.states._IgnoreNextSelChange--;return!0}.bind(this);this._KeyDown=function(c){var d=this.keyman.keyboardManager.activeKeyboard,f=this.keyman.osk, b=this.keyman.util,h=this.keyman["interface"];a.states._KeyPressToSwallow=0;if(a.states._DisableInput||null==d)return!0;var e=b.eventTarget(c);if(b.device.touchable){if(e&&"undefined"!=typeof e.kmwInput&&0==e.kmwInput)return!0}else if(e&&0<=e.className.indexOf("kmw-disabled"))return!0;if(!f.ready)return!0;e=this._GetKeyEventProperties(c,!0);if(null==e)return!0;switch(e.Lcode){case 8:h.clearDeadkeys();break;case 16:case 17:case 18:case 20:case 144:case 145:return this.keyman.keyboardManager.notifyKeyboard(e.Lcode, e.Ltarg,1),b.device.touchable?!0:f._UpdateVKShift(e,e.Lcode-15,1)}e.LmodifierChange&&(this.keyman.keyboardManager.notifyKeyboard(0,e.Ltarg,1),f._UpdateVKShift(e,0,1));!window.event&&this.keyman.keyMapManager.browserMap.FF["k"+e.Lcode]&&(e.Lcode=this.keyman.keyMapManager.browserMap.FF["k"+e.Lcode]);if(d.KM){if(8==e.Lcode)return a.states._KeyPressToSwallow=1,h.processKeystroke(b.physicalDevice,e.Ltarg,e)||this.keyman.interface.defaultBackspace(),!1;a.states._KeyPressToSwallow=0;l=l||h.processKeystroke(b.physicalDevice, e.Ltarg,e)}else{var l=0,g=this.keyman.keyMapManager.languageMap[f._BaseLayout];g&&g["k"+e.Lcode]&&(e.Lcode=g["k"+e.Lcode]);"undefined"!=typeof d.KM||e.Lmodifiers&96||(g={Lcode:this.keyman.keyMapManager._USKeyCodeToCharCode(e),Ltarg:e.Ltarg,Lmodifiers:0,LisVirtualKey:0},h.processKeystroke(b.physicalDevice,g.Ltarg,g)&&(l=1));l=l||h.processKeystroke(b.physicalDevice,e.Ltarg,e);8==e.Lcode&&!l&&null!=e.Ltarg.className&&0<=e.Ltarg.className.indexOf("keymanweb-input")&&this.keyman.interface.defaultBackspace()}!l&& 96<=e.Lcode&&111>=e.Lcode&&!d.KM&&(h.output(0,e.Ltarg,String._kmwFromCharCode(106>e.Lcode?e.Lcode-48:e.Lcode-64)),l=1);if(l)return c&&c.preventDefault&&(c.preventDefault(),c.stopPropagation()),a.states._KeyPressToSwallow=c?this._GetEventKeyCode(c):0,!1;a.states._KeyPressToSwallow=0;return 8==e.Lcode&&null!=e.Ltarg.className&&0<=e.Ltarg.className.indexOf("keymanweb-input")?!1:"undefined"!=typeof e.Ltarg.base&&(c=f.defaultKeyOutput("",e.Lcode,e.Lmodifiers,!1,e.Ltarg))?(h.output(0,e.Ltarg,c),!1):!0}.bind(this); this._KeyPress=function(c){if(a.states._DisableInput||null==this.keyman.keyboardManager.activeKeyboard)return!0;var d=this._GetKeyEventProperties(c);if(null==d||d.LisVirtualKey)return!0;if(!this.keyman.keyboardManager.activeKeyboard.KM){if(!a.states._KeyPressToSwallow||32>d.Lcode||this.keyman._BrowserIsSafari&&63232d.Lcode)return!0;if(c=this.keyman._GetEventObject(c))c.returnValue=!1;return!1}if(a.states._KeyPressToSwallow||this.keyman["interface"].processKeystroke(this.keyman.util.physicalDevice, d.Ltarg,d))return a.states._KeyPressToSwallow=0,c&&c.preventDefault&&(c.preventDefault(),c.stopPropagation()),!1;a.states._KeyPressToSwallow=0;return!0}.bind(this);this._KeyUp=function(c){var a=this.keyman.keyboardManager,f=this.keyman.osk;c=this._GetKeyEventProperties(c,!1);if(null==c||!f.ready)return!0;switch(c.Lcode){case 13:if(c.Ltarg instanceof c.Ltarg.ownerDocument.defaultView.HTMLTextAreaElement)break;if(c.Ltarg.base&&c.Ltarg.base instanceof c.Ltarg.base.ownerDocument.defaultView.HTMLTextAreaElement)break; c.Ltarg instanceof c.Ltarg.ownerDocument.defaultView.HTMLInputElement&&(a=c.Ltarg,"search"==a.type||"submit"==a.type?a.form.submit():this.keyman.domManager.moveToNext(!1));return!0;case 16:case 17:case 18:case 20:case 144:case 145:return a.notifyKeyboard(c.Lcode,c.Ltarg,0),this.keyman.util.device.touchable?!0:f._UpdateVKShift(c,c.Lcode-15,1)}c.LmodifierChange&&(a.notifyKeyboard(0,c.Ltarg,0),f._UpdateVKShift(c,0,1));return!1}.bind(this);this.keyman=b}a.prototype.getText=function(a){return""};a.prototype.setText= function(a,c,d){};a.prototype.getTextBeforeCaret=function(a){return""};a.prototype.setTextBeforeCaret=function(a,c){};a.prototype.getTextCaret=function(a){return 0};a.prototype.setTextCaret=function(a,c){};a.prototype.hideCaret=function(){};a.prototype.updateInput=function(a){};a.prototype.doControlFocused=function(a,c){var d={};d.target=a;d.activeControl=c;return this.keyman.util.callEvent("kmw.controlfocused",d)};a.prototype.doControlBlurred=function(a,c,d){var f={};f.target=a;f.event=c;f.isActivating= d;return this.keyman.util.callEvent("kmw.controlblurred",f)};a.prototype._BlurKeyboardSettings=function(b,c){var d=this.keyman.keyboardManager.activeKeyboard?this.keyman.keyboardManager.activeKeyboard.KI:"",f=this.keyman.keyboardManager.getActiveLanguage();void 0!==b&&void 0!==c&&(d=b,f=c);(b=a.states.lastActiveElement)&&null!=b._kmwAttachment.keyboard?(b._kmwAttachment.keyboard=d,b._kmwAttachment.languageCode=f):(this.keyman.globalKeyboard=d,this.keyman.globalLanguageCode=f)};a.prototype._FocusKeyboardSettings= function(b){var c=a.states.lastActiveElement;c&&null!=c._kmwAttachment.keyboard?this.keyman.keyboardManager.setActiveKeyboard(c._kmwAttachment.keyboard,c._kmwAttachment.languageCode):b||this.keyman.keyboardManager.setActiveKeyboard(this.keyman.globalKeyboard,this.keyman.globalLanguageCode)};a.prototype._CommonFocusHelper=function(b){var c=this.keyman.uiManager;if(b.ownerDocument&&b instanceof b.ownerDocument.defaultView.HTMLIFrameElement&&(!this.keyman.domManager._IsIEEditableIframe(b,1)||!this.keyman.domManager._IsMozillaEditableIframe(b, 1)))return a.states._DisableInput=!0;a.states._DisableInput=!1;c.justActivated||(this.keyman["interface"]._DeadKeys=[],this.keyman.keyboardManager.notifyKeyboard(0,b,1));c.justActivated||a.states._SelectionControl==b||(c.isActivating=!1);c.justActivated=!1;a.states._SelectionControl=b;return!1};a.prototype._GetEventKeyCode=function(a){return a.keyCode?a.keyCode:a.which?a.which:null};a.prototype._GetKeyEventProperties=function(h,c){c=new b.keyman.KeyEvent;h=this.keyman._GetEventObject(h);c.Ltarg=this.keyman.util.eventTarget(h); if(null==c.Ltarg||!0===h.cancelBubble)return null;3==c.Ltarg.nodeType&&(c.Ltarg=c.Ltarg.parentNode);c.Lcode=this._GetEventKeyCode(h);if(null==c.Lcode)return null;var d=this.keyman.osk,f=this.keyman.keyboardManager.activeKeyboard;if(f&&f.KM&&c.Lcode!=d.keyCodes.K_SPACE){var e=d.defaultKeyOutput("K_xxxx",c.Lcode,h.getModifierState("Shift")?16:0,!1,null);e&&(c.Lcode=e.charCodeAt(0))}e=a.states.modStateFlags;var m=!1,l=!1;switch(c.Lcode){case d.keyCodes.K_CTRL:case d.keyCodes.K_LCTRL:case d.keyCodes.K_RCTRL:case d.keyCodes.K_CONTROL:case d.keyCodes.K_LCONTROL:case d.keyCodes.K_RCONTROL:m= !0;break;case d.keyCodes.K_LMENU:case d.keyCodes.K_RMENU:case d.keyCodes.K_ALT:case d.keyCodes.K_LALT:case d.keyCodes.K_RALT:l=!0}var g=0|(h.getModifierState("Shift")?16:0);h.getModifierState("Control")&&(g|=0!=h.location&&m?1==h.location?d.modifierCodes.LCTRL:d.modifierCodes.RCTRL:e&3);h.getModifierState("Alt")&&(g|=0!=h.location&&l?1==h.location?d.modifierCodes.LALT:d.modifierCodes.RALT:e&12);c.Lstates=0;h.getModifierState("CapsLock")?c.Lstates=d.modifierCodes.CAPS:c.Lstates=d.modifierCodes.NO_CAPS; h.getModifierState("NumLock")?c.Lstates|=d.modifierCodes.NUM_LOCK:c.Lstates|=d.modifierCodes.NO_NUM_LOCK;h.getModifierState("ScrollLock")||h.getModifierState("Scroll")?c.Lstates|=d.modifierCodes.SCROLL_LOCK:c.Lstates|=d.modifierCodes.NO_SCROLL_LOCK;g|=c.Lstates;c.LmodifierChange=a.states.modStateFlags!=g;a.states.modStateFlags=g;f&&f.KM&&h.getModifierState("CapsLock")&&(65<=c.Lcode&&90>=c.Lcode||97<=c.Lcode&&122>=c.Lcode)&&(g^=16,c.Lcode^=32);f=d.modifierCodes.RALT|d.modifierCodes.LCTRL;(e&f)==f&& (g&f)!=f&&(g&=~f);g&d.modifierCodes.RALT&&(g&=~d.modifierCodes.LCTRL);this.keyman.keyboardManager.isChiral()?(c.Lmodifiers=g&d.modifierBitmasks.CHIRAL,d.emulatesAltGr()&&(c.Lmodifiers&d.modifierBitmasks.ALT_GR_SIM)==d.modifierBitmasks.ALT_GR_SIM&&(c.Lmodifiers^=d.modifierBitmasks.ALT_GR_SIM,c.Lmodifiers|=d.modifierCodes.RALT)):c.Lmodifiers=g&16|(g&(d.modifierCodes.LCTRL|d.modifierCodes.RCTRL)?32:0)|(g&(d.modifierCodes.LALT|d.modifierCodes.RALT)?64:0);c.LisVirtualKeyCode="undefined"!=typeof h.charCode&& null!=h.charCode&&(0==h.charCode||0!=(c.Lmodifiers&111));c.LisVirtualKey=c.LisVirtualKeyCode||"keypress"!=h.type;return c};a.prototype.doChangeEvent=function(b){if(a.states.changed){if("function"==typeof Event)var c=new Event("change",{bubbles:!0,cancelable:!1});else c=document.createEvent("HTMLEvents"),c.initEvent("change",!0,!1);b.base&&b.base.kmw_ip&&(b=b.base);b.dispatchEvent(c)}a.states.changed=!1};a.states=new g;return a}();a.DOMEventHandlers=k;var e=function(b){function h(c){c=b.call(this, c)||this;c.setFocus=function(c){var d=this.keyman.osk,b=this.keyman.util;k.states.setFocusTimer();if(a.Util.instanceof(c,"TouchEvent"))var h=c.touches[0];else h={clientX:0,clientY:0},h.target=k.states.lastActiveElement?k.states.lastActiveElement.kmw_ip:this.keyman.domManager.sortedInputs[0].kmw_ip;c=h.clientX;var e=h.clientY,l=h.target;var g=a.Util.instanceof(l,"HTMLSpanElement")?l.parentNode:null!=l.className&&0<=l.className.indexOf("keymanweb-input")?l.firstChild:l;h=g.parentNode;k.states.activeElement!= h&&(this.hideCaret(),k.states.activeElement=h,h.focus());this.keyman.domManager._SetTargDir(h);d.ready&&!d._Visible&&d._Show();if(a.Util.instanceof(l,"HTMLDivElement"))e=b._GetAbsoluteX(g.firstChild),"rtl"==h.dir?(e+=g.firstChild.offsetWidth,d=c>e?0:1E5):d=cv;v++){var x=b._GetAbsoluteY(g)-t;if(x>e&&d>l&&d!=n)n=d,d=Math.round((d+l)/2);else if(xe&&d>l;)this.setTextCaret(h,--d);for(;b._GetAbsoluteY(g)-ta};for(v=0;16>v;v++){e=b._GetAbsoluteX(g);if(x(e,c)&&d>l&&d!=n)n=d,d=Math.round((d+l)/2);else if(!x(e, c)&&dl;)this.setTextCaret(h,--d);for(;!x(b._GetAbsoluteX(g),c)&&dd.className.indexOf("keymanweb-input"))d=d.parentNode; if(null==d.className||0>d.className.indexOf("keymanweb-input"))d=d.parentNode;if(!(null==d.className||0>d.className.indexOf("keymanweb-input"))){if(a.Util.instanceof(c,"TouchEvent")){var b=c.touches[0].screenX;var h=c.touches[0].screenY}else b=c.screenX,h=c.screenY;if("undefined"==typeof this.firstTouch||null==this.firstTouch)this.firstTouch={x:b,y:h};else{var e=this.firstTouch.x,l=this.firstTouch.y;c=d.firstChild;if("TEXTAREA"==d.base.nodeName){if(b=parseInt(c.style.top,10),isNaN(b)&&(b=0),e=l-h, -4>e||4g||4e&&(h=e),hf&&(f=0);b=a._kmwLength();if(null=== f||f>b)f=b;e=a._kmwSubstr(0,f);a=a._kmwSubstr(f);h.textContent=e;d.textContent=a}}this.updateBaseElement(c,b)};h.prototype.getTextBeforeCaret=function(c){return c&&1c.firstChild.childNodes.length)){var a=c.firstChild,f=this.caret.style,b=a.childNodes[1];this.caret.parentNode!=a&&a.appendChild(this.caret); f.left=b.offsetLeft+"px";f.top=b.offsetTop+"px";f.height=b.offsetHeight-1+"px";f.visibility="hidden";this.scrollBody(c);this.setScrollBar(c)}};h.prototype.updateInput=function(c){var a=this.keyman.util,f=c.style,b=c.base,h=window.getComputedStyle(b,null),e=parseInt(h.marginLeft,10),l=parseInt(h.marginTop,10),g=a._GetAbsoluteX(b),k=a._GetAbsoluteY(b),n=c.offsetParent;n&&(g-=a._GetAbsoluteX(n),k-=a._GetAbsoluteY(n));isNaN(e)&&(e=0);isNaN(l)&&(l=0);f.left=g-e+"px";f.top=k-l+"px";"undefined"!=typeof h.MozBoxSizing&& (f.left=g+"px",f.top=k+"px");e=b.offsetWidth;b=b.offsetHeight;l=parseInt(h.paddingLeft,10);g=parseInt(h.paddingRight,10);k=parseInt(h.paddingTop,10);n=parseInt(h.paddingBottom,10);var t=parseInt(h.borderLeft,10),z=parseInt(h.borderRight,10),x=parseInt(h.borderTop,10),B=parseInt(h.borderBottom,10),u="undefined";"undefined"!=typeof h.boxSizing?u=h.boxSizing:"undefined"!=typeof h.MozBoxSizing&&(u=h.MozBoxSizing);"content-box"==u&&(isNaN(l)||(e-=l),isNaN(g)||(e-=g),isNaN(t)||(e-=t),isNaN(z)||(e-=z),isNaN(k)|| (b-=k),isNaN(n)||(b-=n),isNaN(x)||(b-=x),isNaN(B)||(b-=B));"Android"==a.device.OS&&("undefined"!=typeof h.MozBoxSizing?(f.paddingTop=k+1+"px",f.paddingLeft=l+"px","TEXTAREA"==c.base.nodeName?f.marginTop="1px":f.marginLeft="1px",e--,b--):(e++,b++));f.width=e+"px";f.height=b+"px"};h.prototype.updateBaseElement=function(c,a){var d=c.base.ownerDocument.defaultView;c.base instanceof d.HTMLInputElement||c.base instanceof d.HTMLTextAreaElement?c.base.value=this.getText(c):c.base.textContent=this.getText(c); c.style.backgroundColor=0==a?"transparent":window.getComputedStyle(c.base,null).backgroundColor;"iOS"==this.keyman.util.device.OS&&(c.base.style.visibility=0==a?"visible":"hidden")};h.prototype.cancelInput=function(){k.states.activeElement=null;this.hideCaret();this.keyman.osk.hideNow()};h.prototype.setScrollBar=function(c){var a=c.childNodes[0],f=c.childNodes[1].style;(a.offsetWidth>c.offsetWidth||0>a.offsetLeft)&&"TEXTAREA"!=c.base.nodeName?(f.height="4px",f.width=c.offsetWidth/a.offsetWidth*100+ "%",f.left=-a.offsetLeft/a.offsetWidth*100+"%",f.top="0",f.visibility="visible"):a.offsetHeight>c.offsetHeight||0>a.offsetTop?(f.width="4px",f.height=c.offsetHeight/a.offsetHeight*100+"%",f.top=-a.offsetTop/a.offsetHeight*100+"%",f.left="0",f.visibility="visible"):f.visibility="hidden"};h.prototype.scrollInput=function(a){if(a&&a.firstChild&&null!=a.className&&!(0>a.className.indexOf("keymanweb-input"))){var c=a.firstChild;if(!(3>c.childNodes.length)){var f=this.keyman.util,b=c.childNodes[1],h=f._GetAbsoluteX(b); b=f._GetAbsoluteY(b);var e=f._GetAbsoluteX(a);f=f._GetAbsoluteY(a);var l=parseInt(c.style.left,10),g=parseInt(c.style.top,10),k=0,n=0;isNaN(l)&&(l=0);isNaN(g)&&(g=0);a.base instanceof a.base.ownerDocument.defaultView.HTMLTextAreaElement?(h=Math.round(a.offsetHeight/a.base.rows),bf+a.offsetHeight-h&&(n=b-f-a.offsetHeight+h),0!=n&&(c.style.top=(ge+a.offsetWidth-12&&(k=h-e-a.offsetWidth+12),0!=k&&(c.style.left=(la.className.indexOf("keymanweb-input"))&&c.ready){a=a.firstChild.childNodes[1];f=f._GetAbsoluteY(a);var b=window.pageYOffset;fc&&(c=0));0!=c&&window.scrollTo(0,c+window.pageYOffset)}};return h}(k);a.DOMTouchHandlers=e})(b.keyman||(b.keyman={}))})(com||(com={})); String.kmwFromCharCode=function(b){var a=[],g;for(g=0;gk||1114111k?a.push(k):(k-=65536,a.push((k>>10)+55296),a.push(k%1024+56320))}return String.fromCharCode.apply(void 0,a)}; String.prototype.kmwCharCodeAt=function(b){var a=String(this),g=0;if(0>b||b>=a.length)return NaN;for(var k=0;k=b&&a.length>g+1&&(a=a.charCodeAt(g+1),56320<=a&&57343>=a)?(b-55296<<10)+(a-56320)+65536:b};String.prototype.kmwIndexOf=function(b,a){var g=String(this);b=g.indexOf(b,a);if(0>b)return b;for(var k=a=0;null!==k&&kb)return b;for(var k=a=0;null!==k&&kb&&(b=g.kmwLength()+b);0>b&&(b=0);var k=g.kmwCodePointToCodeUnit(b),e=k;if(null===k)return"";if(2>arguments.length)e=g.length;else for(var h=0;ha){var k=b;b=a;a=k}b=g.kmwCodePointToCodeUnit(b);a=g.kmwCodePointToCodeUnit(a)}if(isNaN(b)||null===b)b=0;if(isNaN(a)||null===a)a=g.length;return g.substring(b,a)}; String.prototype.kmwNextChar=function(b){var a=String(this);if(null===b||0>b||b>=a.length-1)return null;var g=a.charCodeAt(b);return 55296<=g&&56319>=g&&a.length>b+1&&(g=a.charCodeAt(b+1),56320<=g&&57343>=g)?b==a.length-2?null:b+2:b+1};String.prototype.kmwPrevChar=function(b){var a=String(this);if(null==b||0>=b||b>a.length)return null;var g=a.charCodeAt(b-1);return 56320<=g&&57343>=g&&1=a)?b-2:b-1}; String.prototype.kmwCodePointToCodeUnit=function(b){if(null===b)return null;var a=String(this),g=0;if(0>b){g=a.length;for(var k=0;k>b;k--)g=a.kmwPrevChar(g);return g}if(b==a.kmwLength())return a.length;for(k=0;kb?a.substr(b).kmwLength():a.substr(0,b).kmwLength()};String.prototype.kmwCharAt=function(b){var a=String(this);return 0<=b?a.kmwSubstr(b,1):""}; String.prototype.kmwBMPNextChar=function(b){var a=String(this);return 0>b||b>=a.length-1?null:b+1};String.prototype.kmwBMPPrevChar=function(b){var a=String(this);return 0>=b||b>a.length?null:b-1};String.prototype.kmwBMPCodePointToCodeUnit=function(b){return b};String.prototype.kmwBMPCodeUnitToCodePoint=function(b){return b};String.prototype.kmwBMPLength=function(){return String(this).length}; String.prototype.kmwBMPSubstr=function(b,a){var g=String(this);return-1c-a)g.hideOnRelease=!1},this.keyman.util.attachDOMEvent(document.body,"touchstart",this.keyman.hideOskIfOnBody,!1),this.keyman.util.attachDOMEvent(document.body,"touchmove",this.keyman.cancelHideIfScrolling,!1),this.keyman.util.attachDOMEvent(document.body,"touchend",this.keyman.conditionallyHideOsk,!1)));this.keyman.keyboardManager.restoreCurrentKeyboard();MutationObserver? (f=document.querySelector("body"),"manual"!=this.keyman.options.attachType&&(d={childList:!0,subtree:!0},this.attachmentObserver=new MutationObserver(this._AutoAttachObserverCore),this.attachmentObserver.observe(f,d)),d={subtree:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["class","readonly"]},this.enablementObserver=new MutationObserver(this._EnablementMutationObserverCore),this.enablementObserver.observe(f,d)):console.warn("Your browser is outdated and does not support MutationObservers, a web feature needed by KeymanWeb to support dynamically-added elements."); this.keyman.setInitialized(2);return Promise.resolve()}.bind(this);this.keyman=b;b.util.device.touchable&&(this.touchHandlers=new a.DOMTouchHandlers(b));this.nonTouchHandlers=new a.DOMEventHandlers(b)}b.prototype.shutdown=function(){this.enablementObserver&&this.enablementObserver.disconnect();this.attachmentObserver&&this.attachmentObserver.disconnect();for(var a=0,b=this.inputList;ab.base.rows+1&&(b.base.rows=c)),e.width=a.width,e.minHeight=a.height): (e.minWidth=a.width,e.height=a.height);b.base.style.visibility="hidden";(function(a){a._kmwResizeHandler=function(c){window.setTimeout(function(){k.updateInput(a)},1)};a.base.addEventListener("resize",a._kmwResizeHandler,!1);a.base.addEventListener("orientationchange",a._kmwResizeHandler,!1)})(b);k.setText(b,b.base instanceof b.base.ownerDocument.defaultView.HTMLTextAreaElement||b.base instanceof b.base.ownerDocument.defaultView.HTMLInputElement?b.base.value:b.base.textContent,null);return!0};b.prototype.disableTouchElement= function(a){if("iframe"!=a.tagName.toLowerCase()){if(a.kmw_ip){var b=this.inputList.indexOf(a.kmw_ip);-1!=b&&this.inputList.splice(b,1);a.style.visibility="visible";a.disabled=!1;a.removeEventListener("resize",a.kmw_ip._kmwResizeHandler);this.disableInputElement(a.kmw_ip);a.parentNode&&a.parentNode.removeChild(a.kmw_ip);delete a.kmw_ip}this.setupNonKMWTouchElement(a)}};b.prototype.setupNonKMWTouchElement=function(a){this.keyman.util.attachDOMEvent(a,"touchstart",this.nonKMWTouchHandler,!1);this.isAttached(a)&& (a._kmwAttachment.touchEnabled=!1)};b.prototype.enableInputElement=function(a,b){b=b?a.base:a;this.isKMWDisabled(b)||(a instanceof a.ownerDocument.defaultView.HTMLIFrameElement?this._AttachToIframe(a):(b.className=b.className?b.className+" keymanweb-font":"keymanweb-font",this.inputList.push(a),this.keyman.util.attachDOMEvent(b,"focus",this.getHandlers(a)._ControlFocus),this.keyman.util.attachDOMEvent(b,"blur",this.getHandlers(a)._ControlBlur),a.onkeypress=this.getHandlers(a)._KeyPress,a.onkeydown= this.getHandlers(a)._KeyDown,a.onkeyup=this.getHandlers(a)._KeyUp))};b.prototype.disableInputElement=function(a,b){var h=b?a.base:a;if(a instanceof a.ownerDocument.defaultView.HTMLIFrameElement)this._DetachFromIframe(a);else{0l[a].className.indexOf("kmw-disabled")&& b.push({ip:l[a],x:d._GetAbsoluteX(l[a]),y:d._GetAbsoluteY(l[a])})}for(a=0;ac[a].className.indexOf("kmw-disabled")&&b.push({ip:c[a],x:d._GetAbsoluteX(c[a]),y:d._GetAbsoluteY(c[a])});b.sort(function(a,c){return a.y!=c.y?a.y-c.y:a.x-c.x});l=[];for(a=0;ab.indexOf("kmw-disabled")&&(a.className=b?b+" kmw-disabled": "kmw-disabled")};b.prototype.setKeyboardForControl=function(a,b,l){null!==b&&void 0!==b?0>b.indexOf("Keyboard_")&&""!=b&&(b="Keyboard_"+b):l=null;if(a instanceof a.ownerDocument.defaultView.HTMLIFrameElement)console.warn("'keymanweb.setKeyboardForControl' cannot set keyboard on iframes.");else if(this.isAttached(a)){a._kmwAttachment.keyboard=b;a._kmwAttachment.languageCode=l;var c=this.getLastActiveElement();!c||c!=a&&c!=a.kmw_ip||(null!=b&&null!=l?this.keyman.keyboardManager.setActiveKeyboard(b, l):this.keyman.keyboardManager.setActiveKeyboard(this.keyman.globalKeyboard,this.keyman.globalLanguageCode))}else console.error("KeymanWeb is not attached to element "+a)};b.prototype.getKeyboardForControl=function(a){if(this.isAttached(a))return a._kmwAttachment.keyboard;console.error("KeymanWeb is not attached to element "+a);return null};b.prototype.getLanguageForControl=function(a){if(this.isAttached(a))return a._kmwAttachment.languageCode;console.error("KeymanWeb is not attached to element "+ a);return null};b.prototype.focusLastActiveElement=function(){var a=this.getLastActiveElement();a&&(this.keyman.uiManager.justActivated=!0,a.ownerDocument&&a instanceof a.ownerDocument.defaultView.HTMLIFrameElement&&this.keyman.domManager._IsMozillaEditableIframe(a,0)?a.ownerDocument.defaultView.focus():a.focus&&a.focus())};b.prototype.getLastActiveElement=function(){return a.DOMEventHandlers.states.lastActiveElement};b.prototype.clearLastActiveElement=function(){a.DOMEventHandlers.states.lastActiveElement= null};b.prototype.getActiveElement=function(){return a.DOMEventHandlers.states.activeElement};b.prototype._setActiveElement=function(b){a.DOMEventHandlers.states.activeElement=b};b.prototype.setActiveElement=function(b,h){"string"==typeof b&&(b=document.getElementById(b));this.isAttached(b)||this.keyman.isEmbedded?(b=b.kmw_ip?b.kmw_ip:b,this.keyman.isEmbedded||this.keyman.touchAliasing._BlurKeyboardSettings(),a.DOMEventHandlers.states.activeElement!=b&&this.keyman.interface.resetContext(),a.DOMEventHandlers.states.activeElement= a.DOMEventHandlers.states.lastActiveElement=b,this.keyman.isEmbedded||this.keyman.touchAliasing._FocusKeyboardSettings(!1),1=e.length?h-e.length:h;h=0>h?h+e.length:h;d?(a.DOMEventHandlers.states.focusing=!0,b=e[h].kmw_ip,"undefined"==typeof b?e[h].focus():(this.keyman.domManager.setActiveElement(b),this.touchHandlers.setTextCaret(b,1E4),this.touchHandlers.scrollInput(b),b.focus())):e[h].focus()}};b.prototype.moveToElement=function(a){"string"==typeof a&&(a=document.getElementById(a)); this.keyman.util.device.touchable&&a.kmw_ip?a.kmw_ip.focus():a.focus()};b.prototype._IsIEEditableIframe=function(a,b){var h,c=a&&(h=a.tagName)&&"body"==h.toLowerCase()&&(h=a.ownerDocument)&&h.parentWindow;return!b&&c||b&&(!c||a.isContentEditable)};b.prototype._IsMozillaEditableIframe=function(a,b){var h;a=a&&(h=a.defaultView)&&h.frameElement;return!b&&a||b&&(!a||"on"==h.document.designMode.toLowerCase())};b.prototype.getBaseFont=function(){var a=this.keyman.util,b=document.getElementsByTagName("input"), g=document.getElementsByTagName("textarea"),c=0;if(0==b.length&&0==g.length)c=0;else if(0f.offsetTop?c=2:d.offsetLeftf.offsetLeft&&(c=2)}switch(c){case 0:case 1:a.getStyleValue(b[0],"font-family");case 2:var q=a.getStyleValue(g[0],"font-family")}if("undefined"==typeof q||"monospace"==q)q="Arial,sans-serif";return q};b.prototype.initializeUI=function(){this.keyman.ui&& this.keyman.ui.initialize instanceof Function?(this.keyman.ui.initialize(),this.keyman.osk._Show()):window.setTimeout(this.initializeUI.bind(this),1E3)};return b}();a.DOMManager=b})(b.keyman||(b.keyman={}))})(com||(com={})); (function(b){(function(a){var b=function(){function a(){this.touchable=!!("ontouchstart"in window);this.OS="";this.formFactor="desktop";this.dyLandscape=this.dyPortrait=0;this.version="0";this.orientation=window.orientation;this.browser=""}a.prototype.getDPI=function(){var a=document.createElement("DIV"),b=a.style,g=96;if("complete"!==document.readyState)return g;a.id="calculateDPI";b.position="absolute";b.display="block";b.visibility="hidden";b.left="10px";b.top="10px";b.width="1in";b.height="10px"; document.body.appendChild(a);g="undefined"==typeof window.devicePixelRatio?a.offsetWidth:a.offsetWidth*window.devicePixelRatio;document.body.removeChild(a);return g};a.prototype.detect=function(){var b=a._GetIEVersion();if(navigator&&navigator.userAgent){var h=navigator.userAgent;if(0<=h.indexOf("iPad"))this.OS="iOS",this.formFactor="tablet",this.dyPortrait=this.dyLandscape=0;else if(0<=h.indexOf("iPhone"))this.OS="iOS",this.formFactor="phone",this.dyPortrait=this.dyLandscape=25;else if(0<=h.indexOf("Android")){this.OS= "Android";this.formFactor="phone";this.dyPortrait=75;this.dyLandscape=25;try{this.version=h.match(/(?:Android\s+)(\d+\.\d+\.\d+)/)[1]}catch(l){}}else 0<=h.indexOf("Linux")?this.OS="Linux":0<=h.indexOf("Macintosh")?this.OS="MacOSX":0<=h.indexOf("Windows NT")&&(this.OS="Windows",0<=h.indexOf("Touch")&&(this.formFactor="phone"),"number"==typeof navigator.msMaxTouchPoints&&0Math.min(screen.width,screen.height)&&(this.formFactor= "phone");"phone"==this.formFactor&&720b)this.browser="ie";else{if("iOS"==this.OS||"macosx"==this.OS.toLowerCase())this.browser="safari";/Firefox|Chrome|OPR|Safari|Edge/.test(navigator.userAgent)&&(0<=navigator.userAgent.indexOf("Firefox")&&"onmozorientationchange"in screen?this.browser="firefox":0<=navigator.userAgent.indexOf("OPR")? this.browser="opera":0<=navigator.userAgent.indexOf(" Edge/")?this.browser="edge":0<=navigator.userAgent.indexOf("Chrome")?this.browser="chrome":0<=navigator.userAgent.indexOf("Safari")&&(this.browser="safari"))}};a._GetIEVersion=function(){var a="";"userAgent"in navigator&&(a=navigator.userAgent);if("selection"in document){var b=navigator.appVersion;var g=b.indexOf("MSIE ");if(0<=g){if("BackCompat"==document.compatMode)return 6;b=b.substr(g+5);g=b.indexOf(".");if(0g)return 999;a=a.substr(g+8);g=a.indexOf(".");return 0document.documentElement.clientWidth)return 1;var a=screen.width;this.landscapeView()?screen.widthscreen.height&&(a=screen.height);return Math.round(100*a/window.innerWidth)/100}catch(l){return 1}};e.prototype.barHeight=function(){var a=0;"phone"==this.device.formFactor&& (a=screen.height/2-window.innerHeight-(this.landscapeView()?this.device.dyLandscape:this.device.dyPortrait));return a};e.prototype._EncodeEntities=function(a){return a.replace("&","&").replace("<","<").replace(">",">")};e.prototype.createShim=function(){console.warn("The util.createShim function is deprecated, as its old functionality is no longer needed. It and references to its previously-produced shims may be safely removed.")};e.prototype.showShim=function(a,b,c){console.warn("The util.showShim function is deprecated, as its old functionality is no longer needed. It may be safely removed.")}; e.prototype.hideShim=function(a){console.warn("The util.hideShim function is deprecated, as its old functionality is no longer needed. It may be safely removed.")};e.prototype.rgba=function(a,b,c,d,f){a="transparent";try{a="rgba("+b+","+c+","+d+","+f+")"}catch(q){a="rgb("+b+","+c+","+d+")"}return a};e.prototype.addStyleSheet=function(a){var b=document.createElement("style");b.type="text/css";b.appendChild(document.createTextNode(a));a=document.getElementsByTagName("HEAD");0c.indexOf("/")&& (c=this.keyman.options.fonts+c);""!=d&&0>d.indexOf("/")&&(d=this.keyman.options.fonts+d);""!=f&&0>f.indexOf("/")&&(f=this.keyman.options.fonts+f);""!=q&&0>q.indexOf("/")&&(q=this.keyman.options.fonts+q);h="@font-face {\nfont-family:"+b.family+";\nfont-style:normal;\nfont-weight:normal;\n";if(9<=a.Device._GetIEVersion())if("iOS"==this.device.OS)if(""!=c)c=this.unCached(c),h=h+"src:url('"+c+"') format('truetype');";else return;else{f=[];"Android"==this.device.OS?(""!=q&&f.push("url('"+q+"') format('svg')"), ""!=d&&f.push("url('"+d+"') format('woff')"),""!=c&&f.push("url('"+c+"') format('truetype')")):(""!=d&&f.push("url('"+d+"') format('woff')"),""!=c&&f.push("url('"+c+"') format('truetype')"),""!=q&&f.push("url('"+q+"') format('svg')"));if(0==f.length)return;h+="src:"+f.join(",")+";"}else if(""!=f)h=h+"src:url('"+f+"');";else return;this.addStyleSheet(h+"\n}\n");this.embeddedFonts.push(b.family)}};e.prototype.unCached=function(a){return a};e.prototype.loadCookie=function(a){var b={};if(0c?(b.value=b.value._kmwSubstring(0,f)+e+b.value._kmwSubstring(d),c=0):b.value=fa&&(f.p+=c)}};c.prototype.doInputEvent=function(a){var c;"function"==typeof window.InputEvent&&(c=new window.InputEvent("input",{bubbles:!0,cancelable:!1}));a.base&&a.base.kmw_ip&& (a=a.base);a&&c&&a.dispatchEvent(c)};c.prototype.defaultBackspace=function(a){a||(a=this.keymanweb.domManager.getLastActiveElement());this.output(1,a,"");this.doInputEvent(a)};c.prototype.processKeystroke=function(a,c,b){this.keymanweb._CachedSelectionStart=null;this._DeadkeyResetMatched();this.resetContextCache();this.keymanweb.util.activeDevice=a;(a=this.keymanweb.keyboardManager.activeKeyboard.gs(c,b))&&this.doInputEvent(c);return a};c.prototype.getLastActiveElement=function(){return this.keymanweb.domManager.getLastActiveElement()}; c.prototype.focusLastActiveElement=function(){this.keymanweb.domManager.focusLastActiveElement()};c.prototype.hideHelp=function(){this.keymanweb.osk._Hide(!0)};c.prototype.showHelp=function(a,c){this.keymanweb.osk._Show(a,c)};c.prototype.showPinnedHelp=function(){this.keymanweb.osk.userPositioned=!0;this.keymanweb.osk._Show(-1,-1)};c.prototype.resetContext=function(){this.keymanweb.osk.layerId="default";this.clearDeadkeys();this.resetContextCache();this.resetVKShift();this.keymanweb.osk._Show()}; c.prototype.setNumericLayer=function(){var a;for(a=0;ah||9arguments.length||!c)c="---"; for(d=0;d=this.keyboardStubs.length)&&0!=this.keyboardStubs.length&&(a=this.keyboardStubs[0].KI,c=this.keyboardStubs[0].KLC);2"+q);var l=this;h.asyncLoader.promise=new Promise(function(a,c){window.setTimeout(function(){l.installKeyboard(a,c,h)},0)})}this.activeStub=this.keyboardStubs[f];return this.keyboardStubs[f].asyncLoader.promise}this.keymanweb.domManager._SetTargDir(this.keymanweb.domManager.getLastActiveElement())}d=this.activeKeyboard;null!==d&&String.kmwEnableSupplementaryPlane(d&&(d.KS&&1==d.KS||"Hieroglyphic"==d.KN));g._Load();return Promise.resolve()};c.prototype.installKeyboard= function(a,c,b){var d=this.keymanweb.util,f=this.keymanweb.osk,e=d._CreateElement("script");e.charset="UTF-8";e.type="text/javascript";this.keymanweb.isEmbedded&&(e.id=b.KI);var g=b.KF,h=b.KL,q=b.KN,k=this;e.addEventListener("error",function(){null!==b.asyncLoader.timer&&(window.clearTimeout(b.asyncLoader.timer),b.asyncLoader.timer=null);b.asyncLoader.callback("Cannot find the "+q+" keyboard for "+h+".","warn");b.asyncLoader=null;c()},!1);e.addEventListener("load",function(){null!==b.asyncLoader.timer&& (window.clearTimeout(b.asyncLoader.timer),b.asyncLoader.timer=null);var e=k.getKeyboardByID(b.KI);e?(b==k.activeStub&&(k.doBeforeKeyboardChange(e.KI,b.KLC),k.activeKeyboard=e,null!=k.keymanweb.domManager.getLastActiveElement()&&(k.keymanweb.uiManager.justActivated=!0,k.keymanweb.domManager._SetTargDir(k.keymanweb.domManager.getLastActiveElement())),String.kmwEnableSupplementaryPlane(e&&(e.KS&&1==e.KS||"Hieroglyphic"==e.KN)),k.saveCurrentKeyboard(e.KI,b.KLC),f._Load()),k.keymanweb.isEmbedded||d.wait(!1), b.asyncLoader=null,a()):(b.asyncLoader.callback("Error registering the "+q+" keyboard for "+h+".","error"),b.asyncLoader=null,c())},!1);e.src=this.keymanweb.getKeyboardPath(g);try{document.body.appendChild(e),this.linkedScripts.push(e)}catch(z){try{document.getElementsByTagName("head")[0].appendChild(e)}catch(x){c()}}};c.prototype.saveCurrentKeyboard=function(a,c){this.keymanweb.util.saveCookie("KeymanWeb_Keyboard",{current:a+":"+c});this.keymanweb.isEmbedded||this.keymanweb.touchAliasing._BlurKeyboardSettings(a, c)};c.prototype.restoreCurrentKeyboard=function(){var a=this.keyboardStubs,c=a.length;if(!(1>a.length)){var b=this.getSavedKeyboard();b.split(":");var e=b.split(":");2>e.length&&(e[1]="");for(b=0;bb&&(d=!1)}e&&(0arguments.length||d.LanguageCode==b)return d}return null};b.prototype.getKeyboards=function(){return this.keyboardManager.getDetailedKeyboards()};b.prototype.getSavedKeyboard=function(){return this.keyboardManager.getSavedKeyboard()};b.prototype.init=function(a){return this.domManager.init(a)};b.prototype.resetContext=function(){this.interface.resetContext()};b.prototype.setNumericLayer=function(){this.interface.setNumericLayer()};b.prototype.disableControl=function(a){this.domManager.disableControl(a)}; b.prototype.enableControl=function(a){this.domManager.enableControl(a)};b.prototype.setKeyboardForControl=function(a,b,g){this.domManager.setKeyboardForControl(a,b,g)};b.prototype.getKeyboardForControl=function(a){this.domManager.getKeyboardForControl(a)};b.prototype.getLanguageForControl=function(a){this.domManager.getLanguageForControl(a)};b.prototype.focusLastActiveElement=function(){this.domManager.focusLastActiveElement()};b.prototype.getLastActiveElement=function(){return this.domManager.getLastActiveElement()}; b.prototype.setActiveElement=function(a,b){return this.domManager.setActiveElement(a,b)};b.prototype.moveToElement=function(a){this.domManager.moveToElement(a)};b.prototype.addHotKey=function(a,b,g){this.hotkeyManager.addHotKey(a,b,g)};b.prototype.removeHotKey=function(a,b){this.hotkeyManager.removeHotkey(a,b)};b.prototype.getUIState=function(){return this.uiManager.getUIState()};b.prototype.activatingUI=function(a){this.uiManager.setActivatingUI(a)};return b}();a.KeymanBase=b})(b.keyman||(b.keyman= {}))})(com||(com={}));var scripts=document.getElementsByTagName("script"),ss=scripts[scripts.length-1].src,sPath=ss.substr(0,ss.lastIndexOf("/")+1),KeymanBase=com.keyman.KeymanBase;KeymanBase._srcPath=sPath;KeymanBase._rootPath=sPath.replace(/(https?:\/\/)([^\/]*)(.*)/,"$1$2/");KeymanBase._protocol=sPath.replace(/(.{3,5}:)(.*)/,"$1");KeymanBase.__BUILD__=203; window.keyman&&window.keyman.loaded||function(){var b=window.keyman=new KeymanBase,a=b.osk;b.ui={};a.highlightSubKeys=function(a,b,e){};a.createKeyTip=function(){};a.optionKey=function(a,b,e){};a.showKeyTip=function(a,b){};a.waitForFonts=function(a,b){return!0}}(); window.keyman.initialized||function(){var b=window.keyman,a=b.osk,g=b.util;b.debug=b.debug=function(a){if(null==b.debugElement){var e=document.createElement("DIV");var g=e.style;g.position="absolute";g.width="30%";g.maxHeight="50%";g.top="0";g.right="0";g.minHeight="50px";g.border="1px solid blue";g.whiteSpace="pre-line";g.overflowY="scroll";g=document.createElement("P");g.id="debug_output";g.style.margin="2px";e.appendChild(g);document.body.appendChild(e);b.debugElement=g}if(null!=(g=document.getElementById("debug_output")))if(0== arguments.length)"undefined"!=typeof g.textContent?g.textContent="":g.innerHTML="";else{e=(new Date).toTimeString().substr(3,5)+" ";var k,c;for(k=0;k"+g.innerHTML}};b.debugElement=null;b.delayedInit();a._BaseLayout="undefined"!==typeof window.KeymanWeb_BaseLayout?window.KeymanWeb_BaseLayout:"us";b._BrowserIsSafari=0<=navigator.userAgent.indexOf("AppleWebKit");g.attachDOMEvent(window,"load",b.domManager._WindowLoad,!1);g.attachDOMEvent(window,"unload",b.domManager._WindowUnload,!1);g.attachDOMEvent(document,"keyup",b.hotkeyManager._Process, !1);g.attachDOMEvent(window,"focus",b.interface.resetVKShift.bind(b.interface),!1);g.attachDOMEvent(window,"blur",b.interface.resetVKShift.bind(b.interface),!1);String.kmwEnableSupplementaryPlane(!1)}(); (function(b){(function(a){var b=function(){return function(a,b,g,c,d,f){this.id=a;this.text=b;this.width=g?g:"50";this.sp=c;this.nextlayer=d;this.pad=f}}();a.OSKKeySpec=b;b=function(){function a(a){this.spec=a}a.getTextWidth=function(b,e){e.fontFamily||(e.fontFamily=getComputedStyle(document.body).fontFamily);e.fontSize&&""!=e.fontSize||(e.fontSize="1em");var c=e.fontFamily,d=window.keyman.osk.getKeyEmFontSize();e=window.keyman.util.getFontSizeStyle(e.fontSize);d=e.absolute?e.val+"px":e.val*d+"px"; e=(a.getTextWidth.canvas||(a.getTextWidth.canvas=document.createElement("canvas"))).getContext("2d");e.font=d+" "+c;return e.measureText(b).width};a.prototype.getKeyWidth=function(){var a=this.objectUnits();if("px"==a)return this.spec.widthpc;if("%"==a)return a=window.keyman.osk.getWidthFromCookie(),Math.floor(a*this.spec.widthpc/100)};a.prototype.objectUnits=function(){return"desktop"==window.keyman.util.device.formFactor?"%":"px"};a.prototype.renameSpecialKey=function(a){var b=window.keyman.osk.specialCharacters; return b[a]?String.fromCharCode(57344+b[a]):a};a.prototype.generateKeyText=function(){var b=window.keyman.util,e=this.spec,c=b._CreateElement("span"),d=c.style;if(null==e.text||""==e.text){var f="\u00a0";"string"==typeof e.id&&/^U_[0-9A-F]{4}$/i.test(e.id)&&(f=String.fromCharCode(parseInt(e.id.substr(2),16)))}else f=e.text;c.className="kmw-key-text";if("1"==e.sp||"2"==e.sp)f=this.renameSpecialKey("*Tab*"==e.text&&"shift"==e.layer?"*TabLeft*":e.text);var g=window.keyman.osk;d.fontSize=g.fontSize;"string"== typeof e.font&&""!=e.font&&(d.fontFamily=e.font);"string"==typeof e.fontsize&&0!=e.fontsize&&(d.fontSize=e.fontsize);e=window.keyman.keyboardManager;var m={fontSize:d.fontSize};m.fontFamily=d.fontFamily?d.fontFamily:g.fontFamily;g=a.getTextWidth(f,m);0==g&&""!=f&&"\u00a0"!=f&&(f="\u25cc"+f,e.isRTL()&&(f="\u200f"+f),g=a.getTextWidth(f,m));b=b.getFontSizeStyle(d.fontSize);g=.9*this.getKeyWidth()/g;1>g&&(d.fontSize=b.absolute?g*b.val+"px":g*b.val+"em");c.innerHTML=f;return c};return a}();a.OSKKey=b; var k=function(a){function b(b){return a.call(this,b)||this}__extends(b,a);b.prototype.getId=function(){return this.spec.layer+"-"+this.spec.id};b.prototype.generateKeyCapLabel=function(){var a=window.keyman.osk.keyCodes[this.spec.id];switch(a){case 186:a=59;break;case 187:a=61;break;case 188:a=44;break;case 189:a=45;break;case 190:a=46;break;case 191:a=47;break;case 192:a=96;break;case 219:a=91;break;case 220:a=92;break;case 221:a=93;break;case 222:a=39;break;default:if(48>a||90?~",'{|}"']],l="K_BKQUOTE K_1 K_2 K_3 K_4 K_5 K_6 K_7 K_8 K_9 K_0 K_HYPHEN K_EQUAL K_* K_* K_* K_Q K_W K_E K_R K_T K_Y K_U K_I K_O K_P K_LBRKT K_RBRKT K_BKSLASH K_* K_* K_* K_A K_S K_D K_F K_G K_H K_J K_K K_L K_COLON K_QUOTE K_* K_* K_* K_* K_* K_oE2 K_Z K_X K_C K_V K_B K_N K_M K_COMMA K_PERIOD K_SLASH K_* K_* K_* K_* K_* K_SPACE".split(" "); a._Box=null;a._DivVKbd=null;a._DivVKbdHelp=null;a._Visible=0;a._Enabled=1;a._VShift=[];a._VKeySpans=[];a._VKeyDown=null;a._VKbdContainer=null;a._VOriginalWidth=1;a._BaseLayout="us";a._BaseLayoutEuro={};a._BaseLayoutEuro.se="\u00a71234567890+\u00b4~~~QWERTYUIOP\u00c5\u00a8'~~~ASDFGHJKL\u00d6\u00c4~~~~~.9*screen.width&&(h=.9*screen.width);f.width=h+"px";a.width=h}"height"in c&&(b=c.height-(b.offsetHeight-e.offsetHeight), b<.1*screen.height&&(b=.1*screen.height),b>.5*screen.height&&(b=.5*screen.height),f.height=b+"px",f.fontSize=b/8+"px",a.height=b);"nosize"in c&&a.resizeIcon&&(a.resizeIcon.style.display=c.nosize?"none":"block")}"nomove"in c&&(a.noDrag=c.nomove,a.pinImg&&(a.pinImg.style.display=c.nomove||!a.userPositioned?"none":"block"));a.saveCookie()}};a.getKeyEmFontSize=function(){if("desktop"==g.device.formFactor)return.8*a.getFontSizeFromCookie();var c=getComputedStyle(document.body).fontSize;c=g.getFontSizeStyle(c).val; var b=g.getFontSizeStyle(a._Box).val;return c*b};a.getPos=function(){var c=a._Box;return{left:a._Visible?c.offsetLeft:a.x,top:a._Visible?c.offsetTop:a.y}};a.setPos=a.setPos=function(c){if("undefined"!=typeof a._Box&&!k.touchable){if(a.userPositioned){var b=c.left;c=c.top;"undefined"!=typeof b&&(b<-.8*a._Box.offsetWidth&&(b=-.8*a._Box.offsetWidth),a.userPositioned&&(a._Box.style.left=b+"px",a.x=b));"undefined"!=typeof c&&(0>c&&(c=0),a.userPositioned&&(a._Box.style.top=c+"px",a.y=c))}a.pinImg&&(a.pinImg.style.display= a.userPositioned?"block":"none")}};a._VKeyGetTarget=function(a){a=b._GetEventObject(a);a=g.eventTarget(a);if(null==a)return null;3==a.nodeType&&(a=a.parentNode);"SPAN"==a.tagName&&(a=a.parentNode);return a};a.highlightKey=function(c,b){if(c&&""!=c.className&&!(0<=c.className.indexOf("kmw-key-row"))){var d=c.className;null!=a.keytip&&0>d.indexOf("kmw-key-shift")&&0>d.indexOf("kmw-spacebar")&&0>c.id.indexOf("popup")?a.showKeyTip(c,b):b&&0>d.indexOf(" kmw-key-touched")?(c.className=d+" kmw-key-touched", a.showKeyTip(null,!1)):c.className=d.replace(" kmw-key-touched","")}};a.showSubKeys=function(c){if(null!=a.keyPending){var b=document.createElement("DIV");a.getDefaultKeyObject();b.id="kmw-popup-keys";a.popupBaseKey=c;"phone"==k.formFactor&&a.prependBaseKey(c);var f=c.id.split("-");var e=f[f.length-1];if("phone"==k.formFactor&&c.subKeys[0].id!=e){e={id:e,layer:""};1h&&(e=h);0>e&&(e=0);f.left=e+"px";a.popupCallout=a.addCallout(c);f.visibility="visible";b.shim=document.createElement("DIV");b.shim.id="kmw-popup-shim";a._Box.appendChild(b.shim);"phone"==k.formFactor&&(c=b.childNodes[0].firstChild,a.keyPending=c,a.highlightKey(c,!0))}};a.prependBaseKey=function(c){if(c&&"undefined"!=typeof c.id){var b=c.id.split("-");var f=b[b.length-1]; b=c.key&&c.key.layer?c.key.layer:1arguments.length?null:d,e=b.keyboardManager.isChiral();"number"==typeof f&&(f=a.getLayerId(16*f));if(!f)switch(c){case "K_LSHIFT":case "K_RSHIFT":case "K_SHIFT":f="shift";break;case "K_LCONTROL":case "K_LCTRL":if(e){f="leftctrl";break}case "K_RCONTROL":case "K_RCTRL":if(e){f= "rightctrl";break}case "K_CTRL":f="ctrl";break;case "K_LMENU":case "K_LALT":if(e){f="leftalt";break}case "K_RMENU":case "K_RALT":if(e){f="rightalt";break}case "K_ALT":f="alt";break;case "K_ALTGR":f=e?"leftctrl-rightalt":"ctrl-alt";break;case "K_CURRENCIES":case "K_NUMERALS":case "K_SHIFTED":case "K_UPPER":case "K_LOWER":case "K_SYMBOLS":f="default"}if(!f||f==a.layerId&&"desktop"!=k.formFactor)return!1;a.updateLayer(f);a._Show();return!0};a.defaultKeyOutput=function(c,d,f,g,k){var m="",q=!1,l=k&&"undefined"!= typeof k.base;0==f?q=!0:f==a.modifierCodes.SHIFT?(q=!0,f=1):console.warn("KMW only defines default key output for the 'default' and 'shift' layers!");if(l||g)switch((l=a.keyCodes[c])||(l=d),l){case a.keyCodes.K_BKSP:e.defaultBackspace();break;case a.keyCodes.K_TAB:b.domManager.moveToNext(f);break;case a.keyCodes.K_TABBACK:b.domManager.moveToNext(!0);break;case a.keyCodes.K_TABFWD:b.domManager.moveToNext(!1);break;case a.keyCodes.K_ENTER:if("TEXTAREA"==k.nodeName||"undefined"!=typeof k.base&&"TEXTAREA"== k.base.nodeName)return"\n";g&&("INPUT"!=k.nodeName||"search"!=k.type&&"submit"!=k.type?"undefined"==typeof k.base||"search"!=k.base.type&&"submit"!=k.base.type?b.domManager.moveToNext(!1):(k.base.disabled=!1,k.base.form.submit()):k.form.submit());break;case a.keyCodes.K_SPACE:return" "}if("U_"==c.substr(0,2))c=parseInt(c.substr(2,6),16),0<=c&&31>=c||128<=c&&159>=c?console.log("Suppressing Unicode control code: U_00"+c.toString(16)):m=String.kmwFromCharCode(c);else if(q)try{d>=a.keyCodes.K_0&&d<=a.keyCodes.K_9? m=h[f][0][d-a.keyCodes.K_0]:d>=a.keyCodes.K_A&&d<=a.keyCodes.K_Z?m=String.fromCharCode(d+(f?0:32)):d>=a.keyCodes.K_COLON&&d<=a.keyCodes.K_BKQUOTE?m=h[f][1][d-a.keyCodes.K_COLON]:d>=a.keyCodes.K_LBRKT&&d<=a.keyCodes.K_QUOTE&&(m=h[f][2][d-a.keyCodes.K_LBRKT])}catch(v){console.error("Error detected with default mapping for key: code = "+d+", shift state = "+(1==f?"shift":"default"))}return m};a.clickKey=function(c){var d=b.domManager.getLastActiveElement(),f,h=b.keyboardManager.activeKeyboard;var m= c.id.split("-");if(2>m.length)return!0;"popup"==m[0]&&m.splice(0,1);if(null!=d){var l=m[0],p=m[m.length-1].toUpperCase(),r=f=a.getModifierState(a.layerId);for(f=1;f=m.Lcode||97<=m.Lcode&&122>=m.Lcode)&&(m.Lmodifiers^=16,m.Lcode^=32)}"undefined"==typeof h.KM&&(m.Lcode=b.keyMapManager._USKeyCodeToCharCode(m),m.LisVirtualKey=!1);if(!h||0!=m.Lcode&&!e.processKeystroke(g.device,d,m))switch(m.Lcode=m.vkCode,p){case "K_CAPS":case "K_NUMLOCK":case "K_SCROLL":a._stateKeys[p]= !a._stateKeys[p];a._Show();break;default:(h=a.defaultKeyOutput(p,m.Lcode,f,!0,d))&&e.output(0,d,h)}"undefined"!=typeof c.key&&null!==c.key.nextlayer&&(a.nextLayer=c.key.nextlayer);a.selectLayer(p,r);d._KeymanWebSelectionStart=null;d._KeymanWebSelectionEnd=null}b.uiManager.setActivatingUI(!1);return!0};a.getLayerId=function(b){var c="";if(0==b)return"default";b&a.modifierCodes.LCTRL&&(c=(0c.length)){var d=a.lgList=g._CreateElement("DIV");a.lgList.id="kmw-language-menu";d.shim=g._CreateElement("DIV");d.shim.id="kmw-language-menu-background";d.shim.addEventListener("touchstart",function(b){b.preventDefault();a.hideLanguageList();if(2a.spaceBar.offsetLeft&&ca.spaceBar.offsetTop&&b=l;l++){var p= g._CreateElement("P");p.innerHTML=String.fromCharCode(l+64);e.appendChild(p)}e.addEventListener("touchstart",function(b){a.scrollToLanguage(b,f,h)},!1);e.addEventListener("touchend",function(a){a.stopPropagation();a.preventDefault()},!1);d.appendChild(e);d.addEventListener("scroll",function(b){a.lgList.scrolling=!0},!1);f.addEventListener("scroll",function(a){1>f.scrollTop&&(f.scrollTop=1);f.scrollTop>f.scrollHeight-f.offsetHeight-1&&(f.scrollTop=f.scrollHeight-f.offsetHeight-1)},!1);a.lgList.activeLgNo= a.addLanguagesToMenu(h,c);a.lgList.visibility="hidden";document.body.appendChild(a.lgList);"Android"==k.OS&&"devicePixelRatio"in window&&(a.lgList.style.fontSize=2/window.devicePixelRatio+"em");"Android"==k.OS&&"tablet"==k.formFactor&&"devicePixelRatio"in window&&(l=parseInt(g.getStyleValue(d,"width"),10),c=d.style,isNaN(l)||(c.width=c.maxWidth=2*l/window.devicePixelRatio+"px"),l=parseInt(g.getStyleValue(f,"width"),10),c=f.style,isNaN(l)||(c.width=c.maxWidth=2*l/window.devicePixelRatio+"px"),l=parseInt(g.getStyleValue(h, "width"),10),c=h.style,isNaN(l)||(c.width=c.maxWidth=2*l/window.devicePixelRatio+"px"));a.adjustLanguageMenu(0);c=Math.floor(d.offsetHeight/26);p=Math.round(100*c/(e.childNodes[1].offsetTop-e.childNodes[0].offsetTop))/100;var r=.6l;l++){var v=e.childNodes[l].style;2==r&&1==l%2?v.display="none":(v.fontSize=p*r+"em",v.lineHeight=c*r+"px")}l=f.offsetWidth;f.scrollHeight>f.offsetHeight+3?l+=e.offsetWidth:e.style.display="none";d.style.width=l+"px";a.lgList.visibility= "";d=h.firstChild.offsetHeight*a.lgList.activeLgNo+1;f.scrollTop=d;f.scrollTopf.scrollHeight-f.offsetHeight-1&&(f.scrollTop=f.scrollHeight-f.offsetHeight-1)}};a.adjustLanguageMenu=function(b){var c=a.lgList,f=c.firstChild,e=f.firstChild,h=c.style;c=c.childNodes[1];var l=window.innerHeight-a.lgKey.offsetHeight-16;e=(e.childNodes.length+b-1)*e.firstChild.firstChild.offsetHeight;"iOS"==k.OS&&("phone"==k.formFactor?(b=g.landscapeView()?36:0, l=(window.innerHeight-b-16)*g.getViewportScale()):"tablet"==k.formFactor&&(b=g.landscapeView()?16:0,l-=b));h.left=g._GetAbsoluteX(a.lgKey)+"px";e>l&&(e=l);h.height=e+"px";h.top=g._GetAbsoluteY(a._Box)+a._Box.offsetHeight-e+window.pageYOffset-6+"px";h.bottom="auto";c.style.height=f.style.height=h.height};a.scrollToLanguage=function(a,b,f){a.stopImmediatePropagation();a.stopPropagation();a.preventDefault();if("P"==a.touches[0].target.nodeName){var c,d=0;a=a.touches[0].target.innerHTML.charCodeAt(0); var e=f.childNodes;try{for(c=0;c=a)break}}catch(r){}try{d=f.firstChild.offsetHeight*c+1,b.scrollTop=d}catch(r){d=0}try{b.scrollTopb.scrollHeight-b.offsetHeight-1&&(b.scrollTop=b.scrollHeight-b.offsetHeight-1)}catch(r){}}};a.addLanguagesToMenu=function(c,d){var f=d.length,e,h,l=[];for(h=0;h=this.className.indexOf("selected")&&(this.className+=" selected");a.lgList.scrolling=!1;a.lgList.y0=b.touches[0].pageY;return!0};f=function(b){b.stopImmediatePropagation();var c=a.lgList.childNodes[0],d=c.scrollHeight-c.offsetHeight;if("undefined"!=typeof b.pageY)var f=b.pageY;else if("undefined"!=typeof b.touches)f=b.touches[0].pageY;else return;var e=f-a.lgList.y0;if(0>e)c.scrollTop>=d-1&&(b.preventDefault(),a.lgList.y0=f);else if(0c.scrollTop&&(b.preventDefault(),a.lgList.y0=f);else return; if(-5>e||5u&&(u=F)}u="desktop"==d?u+5:u+15;for(l=0;lparseInt(A[0].pad,10)?(w=Math.round(parseInt(A[0].width,10)*x/u),A[0].widthpc=w,D+=w,A[0].padpc=x-D):0f.id.indexOf("popup")&&f.id!=a.popupBaseKey.id)a.highlightKey(a.keyPending,!1),a.clearPopup(),a.keyPending=null}f&&f.id&&a.optionKey(b,f.id,!1);f=b.changedTouches[0].pageX; f=2>f&&5window.innerWidth-2&&a.touchXa.keyPending.className.indexOf("hidden")&&0h.id.indexOf("BKSP")&&(a.deleting&&window.clearTimeout(a.deleting),a.deleting=0);if(a.popupVisible)null==h?(g&&a.highlightKey(g,!1),a.keyPending=null):h==a.popupBaseKey?(a.hasClass(h,"kmw-key-touched")||a.highlightKey(h,!0),a.keyPending=h):(g&&a.highlightKey(g,!1),a.keyPending=null);else{(e=document.getElementById("kmw-popup-keys"))&&"visible"==e.style.visibility&&"phone"==k.formFactor&&h==a.popupBaseKey&&(h=e.childNodes[0].firstChild);a.currentTarget=h;g&&h&&h.id!=g.id&&a.highlightKey(g, !1);a.highlightSubKeys(h,c,f);if(e&&"visible"==e.style.visibility){if(h&&0>h.id.indexOf("popup")&&h!=a.popupBaseKey)return;h&&h==a.popupBaseKey&&0>h.className.indexOf("kmw-key-touched")&&a.highlightKey(h,!0)}else g&&b.touches[0].pageYh.className.indexOf("kmw-key-touched"))&&a.highlightKey(h,!0);g&&h&&h!=g&&""!=h.id&&a.touchHold(h)}}}; a.hasClass=function(a,b){b=" "+b+" ";return 0<=(" "+a.className+" ").replace(/[\n\t\r\f]/g," ").indexOf(b)};a.keyTarget=function(b){try{if(b){if(a.hasClass(b,"kmw-key"))return b;if(b.parentNode&&a.hasClass(b.parentNode,"kmw-key"))return b.parentNode;if(b.firstChild&&a.hasClass(b.firstChild,"kmw-key"))return b.firstChild}}catch(d){}return null};a.findNearestKey=function(a,b){if(!a||"undefined"==typeof a.changedTouches||0==a.changedTouches.length)return null;for(a=a.changedTouches[0].pageX;b&&0>b.className.indexOf("key-row");)b= b.parentNode;if(!b)return null;var c,d=0,e=24,g=1E5;for(c=0;cg&&(b=b.childNodes[d],h=b.offsetLeft,k=h+b.offsetWidth,40c||10r;r++){var v=r+65*e;h.push(b[v]);vC+65*A&&(u.text="`1234567890-=\u00a7~~qwertyuiop[]\\~~~asdfghjkl;'~~~~~?zxcvbnm,./~~~~~ ~!@#$%^&*()_+\u00a7~~QWERTYUIOP{}\\~~~ASDFGHJKL:\"~~~~~?ZXCVBNM<>?~~~~~ "[C+65*A]);"undefined"==typeof u.text&&(u.text="");switch(u.id){case "K_SHIFT":d=u;break;case "K_CAPS":z=u;break;case "K_NUMLOCK":B=u;break;case "K_SCROLL":F=u}if(null!=u.sk){for(C=0;C";h.style.border="1px solid #ccc";return h};a.adjustHeights=function(){if(a._Box&&a._Box.firstChild&&a._Box.firstChild.firstChild&&a._Box.firstChild.firstChild.childNodes){var b=a._Box.firstChild.firstChild.childNodes,d=b[0].childNodes.length,f=a.getHeight(),e=Math.floor(f/(0==d?1:d)),h,l,p;var r=1;"Android"==k.OS&& "devicePixelRatio"in window&&(e/=window.devicePixelRatio);f=d*e;d=a._Box;e=d.style;e.height=e.maxHeight=f+3+"px";d=d.firstChild.firstChild;e=d.style;e.height=e.maxHeight=f+3+"px";"iOS"==k.OS&&(r/=g.getViewportScale());e.fontSize=r+"em";var v="iOS"==k.OS&&"phone"==k.formFactor&&g.landscapeView();for(r=0;r
Copyright © 2017 SIL International')};a.resizeBar=function(){var b=g._CreateElement("DIV");b.className="kmw-footer";b.onmousedown=a._CancelMouse; var d=g._CreateElement("DIV");d.className="kmw-footer-caption";d.innerHTML='KeymanWeb';d.id="keymanweb-osk-footer-caption";g.attachDOMEvent(d,"dblclick",function(b){b&&b.shiftKey&&a.showBuild()},!1);"onselectstart"in d&&(d.onselectstart=g.selectStartHandler);b.appendChild(d);d=g._CreateElement("DIV");d.className="kmw-footer-resize";d.onmousedown=a._VResizeMouseDown;d.onmouseover=d.onmouseout=a._VResizeMouseOut;b.appendChild(d);a.resizeIcon=d;return b}; a._VKbdMouseOver=function(a){b.uiManager.setActivatingUI(!0)};a._VKbdMouseOut=function(a){b.uiManager.setActivatingUI(!1)};a._VResizeMouseOver=a._VResizeMouseOut=function(c){c=b._GetEventObject(c);if(!c)return!1;c&&c.preventDefault&&c.preventDefault();var d=a.getRect();a.width=d.width;a.height=d.height;c.cancelBubble=!0;return!1};a._VResizeMouseDown=function(c){b.uiManager.justActivated=!0;c=b._GetEventObject(c);if(!c)return!0;a.resizing=1;if(c.pageX){var d=c.pageX;var f=c.pageY}else c.clientX&&(d= c.clientX+document.body.scrollLeft,f=c.clientY+document.body.scrollTop);a._ResizeMouseX=d;a._ResizeMouseY=f;document.onmousemove!=a._VResizeMouseMove&&document.onmousemove!=a._VMoveMouseMove&&(a._VPreviousMouseMove=document.onmousemove,a._VPreviousMouseUp=document.onmouseup);a._VPreviousCursor=document.body.style.cursor;a._VPreviousMouseButton="undefined"==typeof c.which?c.button:c.which;a._VOriginalWidth=a._DivVKbd.offsetWidth;a._VOriginalHeight=a._DivVKbd.offsetHeight;document.onmousemove=a._VResizeMouseMove; document.onmouseup=a._VResizeMoveMouseUp;document.body.style.cursor&&(document.body.style.cursor="se-resize");c&&c.preventDefault&&c.preventDefault();c.cancelBubble=!0;return!1};a._VResizeMouseMove=function(c){c=b._GetEventObject(c);if(!c)return!0;a.resizing=1;if(a._VPreviousMouseButton!=("undefined"==typeof c.which?c.button:c.which))return a._VResizeMoveMouseUp(c);if(c.pageX){var d=c.pageX;var f=c.pageY}else c.clientX&&(d=c.clientX+document.body.scrollLeft,f=c.clientY+document.body.scrollTop);d= a._VOriginalWidth+d-a._ResizeMouseX;f=a._VOriginalHeight+f-a._ResizeMouseY;d<.2*screen.width&&(d=.2*screen.width);f<.1*screen.height&&(f=.1*screen.height);d>.9*screen.width&&(d=.9*screen.width);f>.5*screen.height&&(d=.5*screen.height);a._DivVKbd.style.width=d+"px";a._DivVKbd.style.height=f+"px";a._DivVKbd.style.fontSize=f/8+"px";c&&c.preventDefault&&c.preventDefault();c.cancelBubble=!0;return!1};a._VMoveMouseDown=function(c){b.uiManager.justActivated=!0;c=b._GetEventObject(c);if(!c)return!0;a.resizing= 1;if(c.pageX){var d=c.pageX;var f=c.pageY}else c.clientX&&(d=c.clientX+document.body.scrollLeft,f=c.clientY+document.body.scrollTop);document.onmousemove!=a._VResizeMouseMove&&document.onmousemove!=a._VMoveMouseMove&&(a._VPreviousMouseMove=document.onmousemove,a._VPreviousMouseUp=document.onmouseup);a._VPreviousCursor=document.body.style.cursor;a._VPreviousMouseButton="undefined"==typeof c.which?c.button:c.which;a._VMoveX=d-a._Box.offsetLeft;a._VMoveY=f-a._Box.offsetTop;b.keyboardManager.isCJK()&& (a.pinImg.style.left="15px");document.onmousemove=a._VMoveMouseMove;document.onmouseup=a._VResizeMoveMouseUp;document.body.style.cursor&&(document.body.style.cursor="move");c&&c.preventDefault&&c.preventDefault();c.cancelBubble=!0;return!1};a._VMoveMouseMove=function(c){c=b._GetEventObject(c);if(!c||a.noDrag)return!0;a.resizing=1;a.userPositioned=!0;a.pinImg.style.display="block";if(a._VPreviousMouseButton!=("undefined"==typeof c.which?c.button:c.which))return a._VResizeMoveMouseUp(c);if(c.pageX){var d= c.pageX;var f=c.pageY}else c.clientX&&(d=c.clientX+document.body.scrollLeft,f=c.clientY+document.body.scrollTop);a._Box.style.left=d-a._VMoveX+"px";a._Box.style.top=f-a._VMoveY+"px";c&&c.preventDefault&&c.preventDefault();d=a.getRect();a.width=d.width;a.height=d.height;c.cancelBubble=!0;return!1};a._VResizeMoveMouseUp=function(c){c=b._GetEventObject(c);if(!c)return!0;a.resizing=0;a.currentKey=null;document.onmousemove=a._VPreviousMouseMove;document.onmouseup=a._VPreviousMouseUp;document.body.style.cursor&& (document.body.style.cursor=a._VPreviousCursor);b.domManager.focusLastActiveElement();c&&c.preventDefault&&c.preventDefault();b.uiManager.justActivated=!1;b.uiManager.setActivatingUI(!1);a._DivVKbd&&(a._VOriginalWidth=a._DivVKbd.offsetWidth,a._VOriginalHeight=a._DivVKbd.offsetHeight);a.doResizeMove();c.cancelBubble=!0;a.saveCookie();return!1};a.userLocated=function(){return a.userPositioned};a.show=function(b){0 b||b>=c.length||c[b].aligned)&&"block"==c[b].style.display){var f=a._DivVKbd.childNodes[0].offsetWidth-6;"Windows"==k.OS&&(f-=g.landscapeView()?4:40);var e,h=c[b].childNodes;for(e=0;e?~~~~~ "}),a._GenerateVisualKeyboard(e,d,h,b.keyboardManager.getKeyboardModifierBitmask())):(a.ddOSK=!1,e=g._CreateElement("DIV"), e.className="kmw-title-bar",e.appendChild(a._TitleBarInterior()),e.onmousedown=a._VMoveMouseDown,a._Box.appendChild(e),e=g._CreateElement("DIV"),e.className="kmw-osk-static",e.innerHTML=d,a._Box.appendChild(e),c.KHF&&c.KHF(a._Box));b._TitleElement&&(b._TitleElement.innerHTML=""+c.KN+" - "+b._TitleElement.innerHTML,b._TitleElement.className="",b._TitleElement.style.color="#fff")}else e=g._CreateElement("DIV"),e.className="kmw-title-bar",e.appendChild(a._TitleBarInterior()), e.onmousedown=a._VMoveMouseDown,a._Box.appendChild(e),e=g._CreateElement("DIV"),e.className="kmw-osk-none",a._Box.appendChild(e);a.createKeyTip();d=a._Box.firstChild;c=" kmw-keyboard-"+(c?c.KI.replace("Keyboard_",""):"");"keymanweb_title_bar"==d.id&&(d=d.nextSibling);d.className="kmw-osk-inner-frame"+c;a.appendStyleSheet();a._Enabled&&a._Show()}};a.appendStyleSheet=function(){var c=b.keyboardManager.activeKeyboard,d=b.keyboardManager.activeStub;if(null!=d){a.styleSheet&&g.removeStyleSheet(a.styleSheet); var e=d.KFont;d=d.KOskFont;g.addFontFaceStyleSheet(e);g.addFontFaceStyleSheet(d);b.hideInputs();var h=a.addFontStyle(e,d);null!=c&&"string"==typeof c.KCSS&&(h+=c.KCSS);a.styleSheet=g.addStyleSheet(h);a.waitForFonts(e,d)&&b.alignInputs()}};a.addFontStyle=function(a,d){var c=b.baseFont;"undefined"!=typeof a&&"undefined"!=typeof a.family&&(c=a.family);c=c.replace(/\u0022/g,"");var e=new RegExp("\\s?"+c+",?"),g=b.appliedFont.replace(/\u0022/g,"");g=g.replace(e,"");g=g.replace(/,$/,"");g='"'+(""==g?c: c+","+g).replace(/,\s?/g,'","')+'"';c=".keymanweb-font{\nfont-family:"+g+" !important;\n}\n";"undefined"!=typeof d?c=c+'.kmw-key-text{\nfont-family:"'+d.family.replace(/\u0022/g,"").replace(/,/g,'","')+'";\n}\n':"undefined"!=typeof a&&(c=c+'.kmw-key-text{\nfont-family:"'+a.family.replace(/\u0022/g,"").replace(/,/g,'","')+'";\n}\n');b.appliedFont=g;return c};a._Unload=function(){a._VShift=a._DivVKbd=a._VKeySpans=a._Box=0};a.saveCookie=function(){var b=g.loadCookie("KeymanWeb_OnScreenKeyboard"),d=a.getPos(); b.visible=a._Enabled?1:0;b.userSet=a.userPositioned?1:0;b.left=d.left;b.top=d.top;a._DivVKbd&&(b.width=a.width,b.height=a.height);g.saveCookie("KeymanWeb_OnScreenKeyboard",b)};a.loadCookie=function(){var b=g.loadCookie("KeymanWeb_OnScreenKeyboard");if("undefined"==typeof b||null==b)return a.userPositioned=!1;a._Enabled=g.toNumber(b.visible,!0);a.userPositioned=g.toNumber(b.userSet,!1);a.x=g.toNumber(b.left,-1);a.y=g.toNumber(b.top,-1);var d=g.toNumber(b.width,.3*screen.width);b=g.toNumber(b.height, .15*screen.height);d<.2*screen.width&&(d=.2*screen.width);b<.1*screen.height&&(b=.1*screen.height);d>.9*screen.width&&(d=.9*screen.width);b>.5*screen.height&&(b=.5*screen.height);a._DivVKbd&&(a._DivVKbd.style.width=d+"px",a._DivVKbd.style.height=b+"px",a._DivVKbd.style.fontSize=b/8+"px");-1!=a.x&&-1!=a.y&&a._Box||(a.userPositioned=!1);a.xa.y&&(a.x=-1,a.y=-1,a.userPositioned=!1);a.userPositioned&&a._Box&&a.setPos({left:a.x,top:a.y});return!0}; a.getWidthFromCookie=function(){var a=g.loadCookie("KeymanWeb_OnScreenKeyboard");if("undefined"==typeof a||null==a)return.3*screen.width;a=g.toNumber(a.width,.3*screen.width);a<.2*screen.width?a=.2*screen.width:a>.9*screen.width&&(a=.9*screen.width);return a};a.getFontSizeFromCookie=function(){var a=g.loadCookie("KeymanWeb_OnScreenKeyboard");if("undefined"==typeof a||null==a)return 16;a=g.toNumber(a.height,.15*screen.height);a>.5*screen.height&&(a=.5*screen.height);return a/8}}(); (function(b){(function(a){var b=function(){function a(){this.innerWidth=window.innerWidth;this.innerHeight=window.innerHeight}a.prototype.equals=function(a){return this.innerWidth==a.innerWidth&&this.innerHeight==a.innerHeight};return a}(),k=function(){function a(b){this.idlePermutationCounter=a.IDLE_PERMUTATION_CAP;this.keyman=b}a.prototype.resolve=function(){this.keyman.alignInputs();var a=this.keyman.osk;a.hideLanguageList();a._Load();this.oskVisible&&a._Show();this.isActive=!1;this.updateTimer&& (window.clearInterval(this.updateTimer),this.rotState=null)};a.prototype.initNewRotation=function(){this.oskVisible=this.keyman.osk.isVisible();this.keyman.osk.hideNow();this.isActive=!0};a.prototype.init=function(){if(!this.keyman.isEmbedded){var a=this.keyman.util.device.OS,b=this.keyman.util,c=this;"iOS"==a?(b.attachDOMEvent(window,"orientationchange",function(){c.iOSEventHandler();return!1}),b.attachDOMEvent(window,"resize",function(){c.iOSEventHandler();return!1})):"Android"==a&&("onmozorientationchange"in screen?b.attachDOMEvent(screen,"mozorientationchange",function(){c.initNewRotation();return!1}):b.attachDOMEvent(window,"orientationchange",function(){c.initNewRotation();return!1}),b.attachDOMEvent(window,"resize",function(){c.resolve();return!1}))}};a.prototype.iOSEventHandler=function(){this.isActive||(this.initNewRotation(),this.rotState=new b,this.updateTimer=window.setInterval(this.iOSEventUpdate.bind(this),a.UPDATE_INTERVAL));this.idlePermutationCounter=0};a.prototype.iOSEventUpdate=function(){var e= new b;this.rotState.equals(e)?++this.idlePermutationCounter==a.IDLE_PERMUTATION_CAP&&this.resolve():(this.rotState=e,this.idlePermutationCounter=0)};a.IDLE_PERMUTATION_CAP=15;a.UPDATE_INTERVAL=20;return a}();a.RotationManager=k})(b.keyman||(b.keyman={}))})(com||(com={})); window.keyman.initialized||function(){var b=window.keyman,a=b.osk,g=b.util,k=g.device;b.isEmbedded=!1;b.setDefaultDeviceOptions=function(a){""==a.attachType&&(a.attachType=k.touchable?"manual":"auto")};g.wait=function(a){var e=this.waiting;if("undefined"!=typeof e&&null!=e&&!b.warned){var g=e.firstChild.childNodes;a?(e.pending=!0,window.setTimeout(function(){e.pending&&(window.scrollTo(0,0),g[0].style.display="none",g[1].className="kmw-wait-text",g[1].innerHTML=a,g[2].style.display="block",e.style.display= "block")},1E3)):e.pending&&(g[1].innerHTML="",e.pending=!1,e.style.display="none")}};b.getStyleSheetPath=function(a){return g.getOption("resources")+"osk/"+a};b.getKeyboardPath=function(a){return(/^(([\.]\/)|([\.][\.]\/)|(\/))|(:)/.test(a)?"":b.options.keyboards)+a};b.KC_=function(a,g,l){var c,d="",e=l.body?l:l.ownerDocument;if(k.touchable)d=b.touchAliasing.getTextBeforeCaret(l);else if(e&&(c=e.defaultView)&&c.getSelection&&("on"==e.designMode.toLowerCase()||"true"==l.contentEditable||"plaintext-only"== l.contentEditable||""===l.contentEditable))l=c.getSelection(),3==l.focusNode.nodeType&&(d=l.focusNode.substringData(0,l.focusOffset));else if(l.setSelectionRange){if(l._KeymanWebSelectionStart)d=l._KeymanWebSelectionStart;else{if(null===b._CachedSelectionStart||l.selectionStart!==b._LastCachedSelection)b._LastCachedSelection=l.selectionStart,b._CachedSelectionStart=l.value._kmwCodeUnitToCodePoint(l.selectionStart),b._CachedSelectionEnd=l.value._kmwCodeUnitToCodePoint(l.selectionEnd);d=b._CachedSelectionStart}d= l.value._kmwSubstr(0,d)}d._kmwLength()l&&hm&&kf&&(r.fontSize=d*f+"px"));v.textContent=p.textContent;n.display="block";n.position="absolute";n.textAlign="center";n.width="100%";n.top="2%";n.bottom="auto";p=(z.width-m)/2;cwindow.innerWidth-m-p&&(t=1,c-=p);a.drawPreview(z,m,E,t);r.left=c-p+"px";r.display="block"}else e.style.display="none";e.key=b;e.state=h}};a.drawPreview=function(a,b,g,c){g=a.getContext("2d");var d=(a.width-b)/2,e=a.height,h=d,l=b+d;b+=2*d;var E=.5*e,p=.6*e,r=8;"Android"==k.OS&&(r=3);switch(c){case -1:h-= d;l-=d;break;case 1:h+=d,l+=d}g.clearRect(0,0,a.width,a.height);"Android"==k.OS?(h=l=(h+l)/2,g.fillStyle="#999"):g.fillStyle="#ffffff";g.lineWidth="1";g.strokeStyle="#cccccc";g.save();g.beginPath();g.moveTo(0+r,0);g.arcTo(b,0,b,r,r);"Android"==k.OS?(g.arcTo(b,E,l,p,r),g.arcTo(l,p,h,p,r)):(g.arcTo(b,E,l,p,r),g.arcTo(l,p,l-r,e,r),g.arcTo(l,e,h,e,r),g.arcTo(h,e,h,p-r,r));g.arcTo(h,p,0,E-r,r);g.arcTo(0,E,0,r,r);g.arcTo(0,0,0+r,0,r);g.fill();g.stroke();g.restore()};a.addCallout=function(b){if("phone"!= k.formFactor||"iOS"!=k.OS)return null;var e=g._CreateElement("div"),l=e.style;e.id="kmw-popup-callout";a._Box.appendChild(e);var c=b.offsetLeft,d=b.offsetWidth,f=b.offsetHeight;l.top=b.offsetTop-6+"px";l.left=c+"px";l.width=d+"px";l.height=f+6+"px";return e};a.touchHold=function(b){a.subkeyDelayTimer&&(window.clearTimeout(a.subkeyDelayTimer),a.subkeyDelayTimer=null);"undefined"!=typeof b.subKeys&&null!=b.subKeys&&(a.subkeyDelayTimer=window.setTimeout(function(){a.clearPopup();a.showSubKeys(b)},a.popupDelay))}; b.handleRotationEvents=function(){(new com.keyman.RotationManager(b)).init()};a.waitForFonts=function(a,h){if("undefined"==typeof a&&"undefined"==typeof h||"undefined"==typeof a.files&&"undefined"==typeof h.files)return!0;var e=g.checkFontDescriptor(a),c=g.checkFontDescriptor(h);if(e&&c)return!0;b.fontCheckTimer=window.setInterval(function(){g.checkFontDescriptor(a)&&g.checkFontDescriptor(h)&&(window.clearInterval(b.fontCheckTimer),b.fontCheckTimer=null,b.alignInputs())},100);window.setTimeout(function(){b.fontCheckTimer&& (window.clearInterval(b.fontCheckTimer),b.fontCheckTimer=null,b.alignInputs())},5E3);return!1}}(); window.keyman.initialized||(window.keyman.dfltLayout={desktop:{font:"Tahoma,Helvetica",layer:[{id:"default",row:[{id:"1",key:[{id:"K_BKQUOTE"},{id:"K_1"},{id:"K_2"},{id:"K_3"},{id:"K_4"},{id:"K_5"},{id:"K_6"},{id:"K_7"},{id:"K_8"},{id:"K_9"},{id:"K_0"},{id:"K_HYPHEN"},{id:"K_EQUAL"},{id:"K_BKSP",text:"*BkSp*",sp:"1",width:"130"}]},{id:"2",key:[{id:"K_TAB",text:"*Tab*",sp:"1",width:"130"},{id:"K_Q"},{id:"K_W"},{id:"K_E"},{id:"K_R"},{id:"K_T"},{id:"K_Y"},{id:"K_U"},{id:"K_I"},{id:"K_O"},{id:"K_P"}, {id:"K_LBRKT"},{id:"K_RBRKT"},{id:"K_BKSLASH"}]},{id:"3",key:[{id:"K_CAPS",text:"*Caps*",sp:"1",width:"165"},{id:"K_A"},{id:"K_S"},{id:"K_D"},{id:"K_F"},{id:"K_G"},{id:"K_H"},{id:"K_J"},{id:"K_K"},{id:"K_L"},{id:"K_COLON"},{id:"K_QUOTE"},{id:"K_ENTER",text:"*Enter*",sp:"1",width:"165"}]},{id:"4",key:[{id:"K_SHIFT",text:"*Shift*",sp:"1",width:"130"},{id:"K_oE2"},{id:"K_Z"},{id:"K_X"},{id:"K_C"},{id:"K_V"},{id:"K_B"},{id:"K_N"},{id:"K_M"},{id:"K_COMMA"},{id:"K_PERIOD"},{id:"K_SLASH"},{id:"K_RSHIFT", text:"*Shift*",sp:"1",width:"130"}]},{id:"5",key:[{id:"K_LCONTROL",text:"*Ctrl*",sp:"1",width:"170"},{id:"K_LALT",text:"*Alt*",sp:"1",width:"160"},{id:"K_SPACE",text:"",width:"770"},{id:"K_RALT",text:"*Alt*",sp:"1",width:"160"},{id:"K_RCONTROL",text:"*Ctrl*",sp:"1",width:"170"}]}]}]},tablet:{font:"Tahoma,Helvetica",layer:[{id:"default",row:[{id:"0",key:[{id:"K_1"},{id:"K_2"},{id:"K_3"},{id:"K_4"},{id:"K_5"},{id:"K_6"},{id:"K_7"},{id:"K_8"},{id:"K_9"},{id:"K_0"},{id:"K_HYPHEN"},{id:"K_EQUAL"},{sp:"10", width:"1"}]},{id:"1",key:[{id:"K_Q",pad:"25"},{id:"K_W"},{id:"K_E"},{id:"K_R"},{id:"K_T"},{id:"K_Y"},{id:"K_U"},{id:"K_I"},{id:"K_O"},{id:"K_P"},{id:"K_LBRKT"},{id:"K_RBRKT"},{sp:"10",width:"1"}]},{id:"2",key:[{id:"K_A",pad:"50"},{id:"K_S"},{id:"K_D"},{id:"K_F"},{id:"K_G"},{id:"K_H"},{id:"K_J"},{id:"K_K"},{id:"K_L"},{id:"K_COLON"},{id:"K_QUOTE"},{id:"K_BKSLASH",width:"90"}]},{id:"3",key:[{id:"K_oE2",width:"90"},{id:"K_Z"},{id:"K_X"},{id:"K_C"},{id:"K_V"},{id:"K_B"},{id:"K_N"},{id:"K_M"},{id:"K_COMMA"}, {id:"K_PERIOD"},{id:"K_SLASH"},{id:"K_BKQUOTE"},{sp:"10",width:"1"}]},{id:"4",key:[{id:"K_SHIFT",text:"*Shift*",sp:"1",width:"200",sk:[{id:"K_LCONTROL",text:"*Ctrl*",sp:"1",width:"50",nextlayer:"ctrl"},{id:"K_LCONTROL",text:"*LCtrl*",sp:"1",width:"50",nextlayer:"leftctrl"},{id:"K_RCONTROL",text:"*RCtrl*",sp:"1",width:"50",nextlayer:"rightctrl"},{id:"K_LALT",text:"*Alt*",sp:"1",width:"50",nextlayer:"alt"},{id:"K_LALT",text:"*LAlt*",sp:"1",width:"50",nextlayer:"leftalt"},{id:"K_RALT",text:"*RAlt*", sp:"1",width:"50",nextlayer:"rightalt"},{id:"K_ALTGR",text:"*AltGr*",sp:"1",width:"50",nextlayer:"ctrl-alt"}]},{id:"K_LOPT",text:"*Menu*",sp:"1",width:"150"},{id:"K_SPACE",text:"",width:"570"},{id:"K_BKSP",text:"*BkSp*",sp:"1",width:"150"},{id:"K_ENTER",text:"*Enter*",sp:"1",width:"200"}]}]}]},phone:{font:"Tahoma,Helvetica",layer:[{id:"default",row:[{id:"0",key:[{id:"K_1"},{id:"K_2"},{id:"K_3"},{id:"K_4"},{id:"K_5"},{id:"K_6"},{id:"K_7"},{id:"K_8"},{id:"K_9"},{id:"K_0"},{id:"K_HYPHEN"},{id:"K_EQUAL"}, {sp:"10",width:"1"}]},{id:"1",key:[{id:"K_Q",pad:"25"},{id:"K_W"},{id:"K_E"},{id:"K_R"},{id:"K_T"},{id:"K_Y"},{id:"K_U"},{id:"K_I"},{id:"K_O"},{id:"K_P"},{id:"K_LBRKT"},{id:"K_RBRKT"},{sp:"10",width:"1"}]},{id:"2",key:[{id:"K_A",pad:"50"},{id:"K_S"},{id:"K_D"},{id:"K_F"},{id:"K_G"},{id:"K_H"},{id:"K_J"},{id:"K_K"},{id:"K_L"},{id:"K_COLON"},{id:"K_QUOTE"},{id:"K_BKSLASH",width:"90"}]},{id:"3",key:[{id:"K_oE2",width:"90"},{id:"K_Z"},{id:"K_X"},{id:"K_C"},{id:"K_V"},{id:"K_B"},{id:"K_N"},{id:"K_M"}, {id:"K_COMMA"},{id:"K_PERIOD"},{id:"K_SLASH"},{id:"K_BKQUOTE"},{sp:"10",width:"1"}]},{id:"4",key:[{id:"K_SHIFT",text:"*Shift*",sp:"1",width:"200",sk:[{id:"K_LCONTROL",text:"*Ctrl*",sp:"1",width:"50",nextlayer:"ctrl"},{id:"K_LCONTROL",text:"*LCtrl*",sp:"1",width:"50",nextlayer:"leftctrl"},{id:"K_RCONTROL",text:"*RCtrl*",sp:"1",width:"50",nextlayer:"rightctrl"},{id:"K_LALT",text:"*Alt*",sp:"1",width:"50",nextlayer:"alt"},{id:"K_LALT",text:"*LAlt*",sp:"1",width:"50",nextlayer:"leftalt"},{id:"K_RALT", text:"*RAlt*",sp:"1",width:"50",nextlayer:"rightalt"},{id:"K_ALTGR",text:"*AltGr*",sp:"1",width:"50",nextlayer:"ctrl-alt"}]},{id:"K_LOPT",text:"*Menu*",width:"150",sp:"1"},{id:"K_SPACE",width:"570",text:""},{id:"K_BKSP",text:"*BkSp*",width:"150",sp:"1"},{id:"K_ENTER",text:"*Enter*",width:"200",sp:"1"}]}]}]}});(function(){var b=window.keyman,a=window.setInterval(function(){"complete"===document.readyState&&(window.clearInterval(a),b.init(null))},10)})(); var CLOSURE_NO_DEPS=!0,COMPILED=!0,goog=goog||{};goog.global=this;goog.isDef=function(b){return void 0!==b};goog.isString=function(b){return"string"==typeof b};goog.isBoolean=function(b){return"boolean"==typeof b};goog.isNumber=function(b){return"number"==typeof b};goog.exportPath_=function(b,a,g){b=b.split(".");g=g||goog.global;b[0]in g||!g.execScript||g.execScript("var "+b[0]);for(var k;b.length&&(k=b.shift());)!b.length&&goog.isDef(a)?g[k]=a:g=g[k]&&g[k]!==Object.prototype[k]?g[k]:g[k]={}}; goog.define=function(b,a){COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&void 0===goog.global.CLOSURE_UNCOMPILED_DEFINES.nodeType&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,b)?a=goog.global.CLOSURE_UNCOMPILED_DEFINES[b]:goog.global.CLOSURE_DEFINES&&void 0===goog.global.CLOSURE_DEFINES.nodeType&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,b)&&(a=goog.global.CLOSURE_DEFINES[b]));goog.exportPath_(b,a)};goog.DEBUG=!0;goog.LOCALE="en"; goog.TRUSTED_SITE=!0;goog.STRICT_MODE_COMPATIBLE=!1;goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG;goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;goog.provide=function(b){if(goog.isInModuleLoader_())throw Error("goog.provide can not be used within a goog.module.");if(!COMPILED&&goog.isProvided_(b))throw Error('Namespace "'+b+'" already declared.');goog.constructNamespace_(b)}; goog.constructNamespace_=function(b,a){if(!COMPILED){delete goog.implicitNamespaces_[b];for(var g=b;(g=g.substring(0,g.lastIndexOf(".")))&&!goog.getObjectByName(g);)goog.implicitNamespaces_[g]=!0}goog.exportPath_(b,a)};goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/; goog.module=function(b){if(!goog.isString(b)||!b||-1==b.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInModuleLoader_())throw Error("Module "+b+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module."); goog.moduleLoaderState_.moduleName=b;if(!COMPILED){if(goog.isProvided_(b))throw Error('Namespace "'+b+'" already declared.');delete goog.implicitNamespaces_[b]}};goog.module.get=function(b){return goog.module.getInternal_(b)};goog.module.getInternal_=function(b){if(!COMPILED){if(b in goog.loadedModules_)return goog.loadedModules_[b];if(!goog.implicitNamespaces_[b])return b=goog.getObjectByName(b),null!=b?b:null}return null};goog.moduleLoaderState_=null; goog.isInModuleLoader_=function(){return null!=goog.moduleLoaderState_};goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0}; goog.setTestOnly=function(b){if(goog.DISALLOW_TEST_ONLY_CODE)throw b=b||"",Error("Importing test-only code into non-debug environment"+(b?": "+b:"."));};goog.forwardDeclare=function(b){};COMPILED||(goog.isProvided_=function(b){return b in goog.loadedModules_||!goog.implicitNamespaces_[b]&&goog.isDefAndNotNull(goog.getObjectByName(b))},goog.implicitNamespaces_={"goog.module":!0}); goog.getObjectByName=function(b,a){b=b.split(".");a=a||goog.global;for(var g=0;g>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid; goog.removeHashCode=goog.removeUid;goog.cloneObject=function(b){var a=goog.typeOf(b);if("object"==a||"array"==a){if(b.clone)return b.clone();a="array"==a?[]:{};for(var g in b)a[g]=goog.cloneObject(b[g]);return a}return b};goog.bindNative_=function(b,a,g){return b.call.apply(b.bind,arguments)}; goog.bindJs_=function(b,a,g){if(!b)throw Error();if(2Number(b[1])?!1:a('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')});b("es6-impl",function(){return!0});b("es7",function(){return a("2 ** 2 == 4")});b("es8",function(){return a("async () => 1, true")});return g},goog.Transpiler.prototype.needsTranspile= function(b){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;this.requiresTranspilation_||(this.requiresTranspilation_=this.createRequiresTranspilation_());if(b in this.requiresTranspilation_)return this.requiresTranspilation_[b];throw Error("Unknown language mode: "+b);},goog.Transpiler.prototype.transpile=function(b,a){return goog.transpile_(b,a)},goog.transpiler_=new goog.Transpiler,goog.DebugLoader=function(){this.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{}, written:{},deferred:{}};this.oldIeWaiting_=!1;this.queuedModules_=[];this.lastNonModuleScriptIndex_=0},goog.DebugLoader.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.DebugLoader.prototype.earlyProcessLoad=function(b){goog.DebugLoader.IS_OLD_IE_&&this.maybeProcessDeferredDep_(b)},goog.DebugLoader.prototype.load=function(b){var a=this.getPathFromDeps_(b);if(a){var g=function(a){if(!(a in h.written||a in h.visited)){h.visited[a]=!0;if(a in h.requires)for(var b in h.requires[a])if(!l.isProvided(b))if(b in h.nameToPath)g(h.nameToPath[b]);else throw Error("Undefined nameToPath for "+b);a in e||(e[a]=!0,k.push(a))}},k=[],e={},h=this.dependencies_,l=this;g(a);for(b=0;b\x3c/script>')},goog.DebugLoader.prototype.appendScriptSrcNode_=function(b){var a=goog.global.document,g=a.createElement("script");g.type="text/javascript";g.src=b;g.defer=!1;g.async=!1;a.head.appendChild(g)},goog.DebugLoader.prototype.writeScriptTag_=function(b,a){if(this.inHtmlDocument()){var g=goog.global.document;if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&& "complete"==g.readyState){if(/\bdeps.js$/.test(b))return!1;throw Error('Cannot write "'+b+'" after document load');}void 0===a?goog.DebugLoader.IS_OLD_IE_?(this.oldIeWaiting_=!0,a=" onreadystatechange='goog.debugLoader_.onScriptLoad_(this, "+ ++this.lastNonModuleScriptIndex_+")' ",g.write('