diff --git a/java/client/client.iml b/java/client/client.iml index 0abc774de5471..1bd664acb828f 100644 --- a/java/client/client.iml +++ b/java/client/client.iml @@ -36,7 +36,6 @@ - diff --git a/java/client/src/org/openqa/selenium/android/AndroidDriver.java b/java/client/src/org/openqa/selenium/android/AndroidDriver.java deleted file mode 100644 index 0bf823f2c5a62..0000000000000 --- a/java/client/src/org/openqa/selenium/android/AndroidDriver.java +++ /dev/null @@ -1,172 +0,0 @@ -/* -Copyright 2011 Selenium committers - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - */ - -package org.openqa.selenium.android; - -import com.google.common.collect.ImmutableMap; - -import org.openqa.selenium.Capabilities; -import org.openqa.selenium.OutputType; -import org.openqa.selenium.Rotatable; -import org.openqa.selenium.ScreenOrientation; -import org.openqa.selenium.TakesScreenshot; -import org.openqa.selenium.WebDriverException; -import org.openqa.selenium.html5.AppCacheStatus; -import org.openqa.selenium.html5.ApplicationCache; -import org.openqa.selenium.html5.BrowserConnection; -import org.openqa.selenium.html5.LocalStorage; -import org.openqa.selenium.html5.Location; -import org.openqa.selenium.html5.LocationContext; -import org.openqa.selenium.html5.SessionStorage; -import org.openqa.selenium.html5.WebStorage; -import org.openqa.selenium.interactions.HasTouchScreen; -import org.openqa.selenium.interactions.TouchScreen; -import org.openqa.selenium.remote.CapabilityType; -import org.openqa.selenium.remote.DesiredCapabilities; -import org.openqa.selenium.remote.DriverCommand; -import org.openqa.selenium.remote.FileDetector; -import org.openqa.selenium.remote.RemoteTouchScreen; -import org.openqa.selenium.remote.RemoteWebDriver; -import org.openqa.selenium.remote.html5.RemoteLocalStorage; -import org.openqa.selenium.remote.html5.RemoteLocationContext; -import org.openqa.selenium.remote.html5.RemoteSessionStorage; - -import java.net.MalformedURLException; -import java.net.URL; - -/** - * A driver for running tests on an Android device or emulator. - * - * @deprecated Please use either http://selendroid.io or http://appium.io instead. - */ -@Deprecated -public class AndroidDriver extends RemoteWebDriver implements TakesScreenshot, Rotatable, - BrowserConnection, HasTouchScreen, WebStorage, LocationContext, ApplicationCache { - - private TouchScreen touch; - private RemoteLocalStorage localStorage; - private RemoteSessionStorage sessionStorage; - private RemoteLocationContext locationContext; - - /** - * The default constructor assumes the remote server is listening at http://localhost:8080/wd/hub - */ - public AndroidDriver() { - this(getDefaultUrl()); - } - - public AndroidDriver(Capabilities ignored) { - this(); - } - - public AndroidDriver(String remoteAddress) throws MalformedURLException { - this(new URL(remoteAddress)); - } - - public AndroidDriver(DesiredCapabilities caps) { - this(getDefaultUrl(), caps); - } - - public AndroidDriver(URL remoteAddress) { - super(remoteAddress, getAndroidCapabilities(null)); - init(); - } - - public AndroidDriver(URL url, DesiredCapabilities caps) { - super(url, getAndroidCapabilities(caps)); - init(); - } - - private void init() { - touch = new RemoteTouchScreen(getExecuteMethod()); - localStorage = new RemoteLocalStorage(getExecuteMethod()); - sessionStorage = new RemoteSessionStorage(getExecuteMethod()); - locationContext = new RemoteLocationContext(getExecuteMethod()); - } - - @Override - public void setFileDetector(FileDetector detector) { - throw new WebDriverException( - "Setting the file detector only works on remote webdriver instances obtained " + - "via RemoteWebDriver"); - } - - public X getScreenshotAs(OutputType target) throws WebDriverException { - String base64Png = execute(DriverCommand.SCREENSHOT).getValue().toString(); - return target.convertFromBase64Png(base64Png); - } - - public boolean isOnline() { - return (Boolean) execute(DriverCommand.IS_BROWSER_ONLINE).getValue(); - } - - public void setOnline(boolean online) throws WebDriverException { - execute(DriverCommand.SET_BROWSER_ONLINE, ImmutableMap.of("state", online)); - } - - private static DesiredCapabilities getAndroidCapabilities(DesiredCapabilities userPrefs) { - DesiredCapabilities caps = DesiredCapabilities.android(); - caps.setCapability(CapabilityType.TAKES_SCREENSHOT, true); - caps.setCapability(CapabilityType.ROTATABLE, true); - caps.setCapability(CapabilityType.SUPPORTS_BROWSER_CONNECTION, true); - if (userPrefs != null) { - caps.merge(userPrefs); - } - return caps; - } - - public void rotate(ScreenOrientation orientation) { - execute(DriverCommand.SET_SCREEN_ORIENTATION, ImmutableMap.of("orientation", orientation)); - } - - public ScreenOrientation getOrientation() { - return ScreenOrientation.valueOf( - (String) execute(DriverCommand.GET_SCREEN_ORIENTATION).getValue()); - } - - private static URL getDefaultUrl() { - try { - return new URL("http://localhost:8080/wd/hub"); - } catch (MalformedURLException e) { - throw new WebDriverException("Malformed default remote URL: " + e.getMessage()); - } - } - - public TouchScreen getTouch() { - return touch; - } - - public LocalStorage getLocalStorage() { - return localStorage; - } - - public SessionStorage getSessionStorage() { - return sessionStorage; - } - - public Location location() { - return locationContext.location(); - } - - public void setLocation(Location loc) { - locationContext.setLocation(loc); - } - - public AppCacheStatus getStatus() { - String status = (String) execute(DriverCommand.GET_APP_CACHE_STATUS).getValue(); - return AppCacheStatus.getEnum(status); - } -} diff --git a/java/client/src/org/openqa/selenium/android/build.desc b/java/client/src/org/openqa/selenium/android/build.desc deleted file mode 100644 index 18ae1c6998e32..0000000000000 --- a/java/client/src/org/openqa/selenium/android/build.desc +++ /dev/null @@ -1,17 +0,0 @@ - -java_library(name = "android", - srcs = [ - "AndroidDriver.java", - ], - deps = [ - "//java/client/src/org/openqa/selenium/remote", - ]) - -java_library(name = "android_library", - srcs = ["library/*.java"], - deps = [ - "//java/server/src/org/openqa/selenium/remote/server:server_very_core", - "//third_party/java/android", - "//third_party/java/guava-libraries", - ] -) diff --git a/java/client/src/org/openqa/selenium/android/library/AlertManager.java b/java/client/src/org/openqa/selenium/android/library/AlertManager.java deleted file mode 100644 index bb4dc64f74d9f..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/AlertManager.java +++ /dev/null @@ -1,49 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import org.openqa.selenium.Alert; - -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; - -/** - * This tracks manages all alerts and pop-up windows opened by the current views. - */ -public class AlertManager { - private static BiMap unhandledAlerts = HashBiMap.create(); - - /* package */ static void addAlertForView(ViewAdapter view, AndroidAlert alert) { - unhandledAlerts.put(view, alert); - } - - /* package */ static Alert getAlertForView(ViewAdapter view) { - return unhandledAlerts.get(view); - } - - /* package */ static void removeAllAlerts() { - unhandledAlerts.clear(); - } - - /* package */ static void removeAlertForView(ViewAdapter view) { - unhandledAlerts.remove(view); - } - - /* package */ static void removeAlert(Alert alert) { - unhandledAlerts.inverse().remove(alert); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/AndroidAlert.java b/java/client/src/org/openqa/selenium/android/library/AndroidAlert.java deleted file mode 100644 index ea1eb14ef933c..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/AndroidAlert.java +++ /dev/null @@ -1,82 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import android.webkit.JsPromptResult; -import android.webkit.JsResult; - -import org.openqa.selenium.Alert; -import org.openqa.selenium.ElementNotVisibleException; -import org.openqa.selenium.UnsupportedCommandException; -import org.openqa.selenium.security.Credentials; - -/** - * This class represents an Android alert. - */ -public class AndroidAlert implements Alert { - - private final String message; - private final JsResult result; - private String textToSend = null; - private final String defaultValue; - - /* package */ AndroidAlert(String message, JsResult result) { - this(message, result, null); - } - - /* package */ AndroidAlert(String message, JsResult result, String defaultValue) { - this.message = message; - this.result = result; - this.defaultValue = defaultValue; - } - - public void accept() { - AlertManager.removeAlert(this); - if (isPrompt()) { - JsPromptResult promptResult = (JsPromptResult) result; - String result = textToSend == null ? defaultValue : textToSend; - promptResult.confirm(result); - } else { - result.confirm(); - } - } - - private boolean isPrompt() { - return result instanceof JsPromptResult; - } - - public void dismiss() { - AlertManager.removeAlert(this); - result.cancel(); - } - - public String getText() { - return message; - } - - @Override - public void authenticateUsing(Credentials credentials) { - throw new UnsupportedCommandException("Not implemented yet"); - } - - public void sendKeys(String keys) { - if (!isPrompt()) { - throw new ElementNotVisibleException("Alert did not have text field"); - } - textToSend = (textToSend == null ? "" : textToSend) + keys; - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/AndroidAtoms.java b/java/client/src/org/openqa/selenium/android/library/AndroidAtoms.java deleted file mode 100644 index 3fa5e4b6f987f..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/AndroidAtoms.java +++ /dev/null @@ -1,9469 +0,0 @@ -/* - * Copyright 2011-2012 WebDriver committers - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.openqa.selenium.android.library; - -/** - * The WebDriver atoms are used to ensure consistent behaviour cross-browser. - */ -public enum AndroidAtoms { - - // AUTO GENERATED - DO NOT EDIT BY HAND - - EXECUTE_ASYNC_SCRIPT(new StringBuilder() - .append("function(){return function(){var l=this;\nfunction m(a){var b=typeof a;if(\"object") - .append("\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)return b;") - .append("var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"object\"") - .append(";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typeof a.sp") - .append("lice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"spli") - .append("ce\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a.call&&") - .append("\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"call\"))re") - .append("turn\"function\"}else return\"null\";else if(\"function\"==\nb&&\"undefined\"==typ") - .append("eof a.call)return\"object\";return b}function p(a){var b=m(a);return\"array\"==b||") - .append("\"object\"==b&&\"number\"==typeof a.length}function r(a){var b=typeof a;return\"ob") - .append("ject\"==b&&null!=a||\"function\"==b}function s(a,b){var c=Array.prototype.slice.ca") - .append("ll(arguments,1);return function(){var b=Array.prototype.slice.call(arguments);b.un") - .append("shift.apply(b,c);return a.apply(this,b)}}var t=Date.now||function(){return+new Dat") - .append("e};var u=0,v=13;function w(a,b){this.code=a;this.state=x[a]||y;this.message=b||\"") - .append("\";var c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase(") - .append(").replace(/^[\\s\\xa0]+/g,\"\")}),f=c.length-5;if(0>f||c.indexOf(\"Error\",f)!=f)c") - .append("+=\"Error\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack|") - .append("|\"\"}(function(){var a=w,b=Error;function c(){}c.prototype=b.prototype;a.c=b.prot") - .append("otype;a.prototype=new c})();\nvar y=\"unknown error\",x={15:\"element not selectab") - .append("le\",11:\"element not visible\",31:\"ime engine activation failed\",30:\"ime not a") - .append("vailable\",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"in") - .append("valid element state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid") - .append(" selector\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target") - .append(" out of bounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23") - .append(":\"no such window\",28:\"script timeout\",33:\"session not created\",10:\"stale el") - .append("ement reference\"};\nx[u]=\"success\";x[21]=\"timeout\";x[25]=\"unable to set cook") - .append("ie\";x[26]=\"unexpected alert open\";x[v]=y;x[9]=\"unknown command\";w.prototype.t") - .append("oString=function(){return this.name+\": \"+this.message};function z(){return l.nav") - .append("igator?l.navigator.userAgent:null};function A(a){return(a=a.exec(z()))?a[1]:\"\"}A") - .append("(/Android\\s+([0-9.]+)/)||A(/Version\\/([0-9.]+)/);function B(a){var b=0,c=String(") - .append("C).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\".\");a=String(a).replace(/^[") - .append("\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\".\");for(var f=Math.max(c.length,a.length)") - .append(",e=0;0==b&&e(0==k[1].length?\n0:parseInt(k[1],10))?1:0)||((0==h[2].length)") - .append("<(0==k[2].length)?-1:(0==h[2].length)>(0==k[2].length)?1:0)||(h[2]k[") - .append("2]?1:0)}while(0==b)}}var D=/Android\\s+([0-9\\.]+)/.exec(z()),C=D?D[1]:\"0\";B(2.3") - .append(");B(4);function E(){this.a=void 0}\nfunction F(a,b,c){switch(typeof b){case \"stri") - .append("ng\":G(b,c);break;case \"number\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;") - .append("case \"boolean\":c.push(b);break;case \"undefined\":c.push(\"null\");break;case \"") - .append("object\":if(null==b){c.push(\"null\");break}if(\"array\"==m(b)){var f=b.length;c.p") - .append("ush(\"[\");for(var e=\"\",d=0;db?e+=\"000\":256>b?e+=\"00\":40") - .append("96>b&&(e+=\"0\");return H[a]=e+b.toString(16)}),'\"')};function J(a,b){for(var c=a") - .append(".length,f=Array(c),e=\"string\"==typeof a?a.split(\"\"):a,d=0;de||c.indexOf(\"Error\",e)!=e)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;s.c=a.prototype;s.pr") - .append("ototype=new b})();\nvar v=\"unknown error\",t={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};t[13]=v;t[9]=\"unknown command\";s.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function w(){return k.navigator?k.navigator.u") - .append("serAgent:null};function x(a){return(a=a.exec(w()))?a[1]:\"\"}x(/Android\\s+([0-9.]") - .append("+)/)||x(/Version\\/([0-9.]+)/);function y(a){var b=0,c=String(z).replace(/^[\\s\\x") - .append("a0]+|[\\s\\xa0]+$/g,\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0") - .append("]+$/g,\"\").split(\".\");for(var e=Math.max(c.length,a.length),d=0;0==b&&d(0==h[1].length?\n0:parseInt(h[1],10))?1:0)||((0==g[2].length)<(0==h[2].length") - .append(")?-1:(0==g[2].length)>(0==h[2].length)?1:0)||(g[2]h[2]?1:0)}while(0=") - .append("=b)}}var A=/Android\\s+([0-9\\.]+)/.exec(w()),z=A?A[1]:\"0\";y(2.3);y(4);function ") - .append("B(){this.a=void 0}\nfunction C(a,b,c){switch(typeof b){case \"string\":D(b,c);brea") - .append("k;case \"number\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\"") - .append(":c.push(b);break;case \"undefined\":c.push(\"null\");break;case \"object\":if(null") - .append("==b){c.push(\"null\");break}if(\"array\"==l(b)){var e=b.length;c.push(\"[\");for(v") - .append("ar d=\"\",f=0;fb?d+=\"000\":256>b?d+=\"00\":4096>b&&(d+=\"0\");") - .append("return E[a]=d+b.toString(16)}),'\"')};function G(a,b){for(var c=a.length,e=Array(c") - .append("),d=\"string\"==typeof a?a.split(\"\"):a,f=0;f=arguments.length?q.slice.call(a,b):q.slice.call(a,b,c)};function v(){return h.") - .append("navigator?h.navigator.userAgent:null};function fa(a,b){var c={},d;for(d in a)b.cal") - .append("l(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function x(a,b){var c={},d;for(d in a)c[d") - .append("]=b.call(void 0,a[d],d,a);return c}function ga(a,b){for(var c in a)if(b.call(void ") - .append("0,a[c],c,a))return c};function y(a,b){if(a.contains&&1==b.nodeType)return a==b||a.") - .append("contains(b);if(\"undefined\"!=typeof a.compareDocumentPosition)return a==b||Boolea") - .append("n(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}\nfunc") - .append("tion ha(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumen") - .append("tPosition(b)&2?1:-1;if(\"sourceIndex\"in a||a.parentNode&&\"sourceIndex\"in a.pare") - .append("ntNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceI") - .append("ndex;var e=a.parentNode,f=b.parentNode;return e==f?z(a,b):!c&&y(e,b)?-1*A(a,b):!d&") - .append("&y(f,a)?A(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=9") - .append("==a.nodeType?a:a.ownerDocument||a.document;c=d.createRange();c.selectNode(a);c.col") - .append("lapse(!0);\nd=d.createRange();d.selectNode(b);d.collapse(!0);return c.compareBound") - .append("aryPoints(h.Range.START_TO_END,d)}function A(a,b){var c=a.parentNode;if(c==b)retur") - .append("n-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return z(d,a)}function z(a,b){for(") - .append("var c=b;c=c.previousSibling;)if(c==a)return-1;return 1};function B(a){return(a=a.e") - .append("xec(v()))?a[1]:\"\"}B(/Android\\s+([0-9.]+)/)||B(/Version\\/([0-9.]+)/);function C") - .append("(a){var b=0,c=String(ia).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\".\");a") - .append("=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\".\");for(var d=Math.") - .append("max(c.length,a.length),e=0;0==b&&e(0==r[1].length?\n0:parseInt(r[1],10))?") - .append("1:0)||((0==n[2].length)<(0==r[2].length)?-1:(0==n[2].length)>(0==r[2].length)?1:0)") - .append("||(n[2]r[2]?1:0)}while(0==b)}}var D=/Android\\s+([0-9\\.]+)/.exec(v(") - .append(")),ia=D?D[1]:\"0\";C(2.3);C(4);function E(a,b){this.code=a;this.state=F[a]||G;this") - .append(".message=b||\"\";var c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){return ") - .append("a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")}),d=c.length-5;if(0>d||c.indexOf(\"E") - .append("rror\",d)!=d)c+=\"Error\";this.name=c;c=Error(this.message);c.name=this.name;this.") - .append("stack=c.stack||\"\"}(function(){var a=Error;function b(){}b.prototype=a.prototype;") - .append("E.C=a.prototype;E.prototype=new b})();\nvar G=\"unknown error\",F={15:\"element no") - .append("t selectable\",11:\"element not visible\",31:\"ime engine activation failed\",30:") - .append("\"ime not available\",24:\"invalid cookie domain\",29:\"invalid element coordinate") - .append("s\",12:\"invalid element state\",32:\"invalid selector\",51:\"invalid selector\",5") - .append("2:\"invalid selector\",17:\"javascript error\",405:\"unsupported operation\",34:\"") - .append("move target out of bounds\",27:\"no such alert\",7:\"no such element\",8:\"no such") - .append(" frame\",23:\"no such window\",28:\"script timeout\",33:\"session not created\",10") - .append(":\"stale element reference\",\n0:\"success\",21:\"timeout\",25:\"unable to set coo") - .append("kie\",26:\"unexpected alert open\"};F[13]=G;F[9]=\"unknown command\";E.prototype.t") - .append("oString=function(){return this.name+\": \"+this.message};function H(a){var b=null,") - .append("c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b") - .append("||null==b?\"\":b);if(\"string\"!=typeof b)if(9==c||1==c){a=9==c?a.documentElement:") - .append("a.firstChild;for(var c=0,d=[],b=\"\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c++]") - .append("=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;re") - .append("turn\"\"+b}\nfunction I(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!") - .append("1}catch(d){return!1}return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}func") - .append("tion J(a,b,c,d,e){return ja.call(null,a,b,l(c)?c:null,l(d)?d:null,e||new K)}\nfunc") - .append("tion ja(a,b,c,d,e){b.getElementsByName&&d&&\"name\"==c?(b=b.getElementsByName(d),s") - .append("(b,function(b){a.matches(b)&&e.add(b)})):b.getElementsByClassName&&d&&\"class\"==c") - .append("?(b=b.getElementsByClassName(d),s(b,function(b){b.className==d&&a.matches(b)&&e.ad") - .append("d(b)})):b.getElementsByTagName&&(b=b.getElementsByTagName(a.getName()),s(b,functio") - .append("n(a){I(a,c,d)&&e.add(a)}));return e}function ka(a,b,c,d,e){for(b=b.firstChild;b;b=") - .append("b.nextSibling)I(b,c,d)&&a.matches(b)&&e.add(b);return e}\nfunction la(a,b,c,d,e){f") - .append("or(b=b.firstChild;b;b=b.nextSibling)I(b,c,d)&&a.matches(b)&&e.add(b),la(a,b,c,d,e)") - .append("};function K(){this.b=this.a=null;this.d=0}function ma(a){this.j=a;this.next=this.") - .append("h=null}K.prototype.unshift=function(a){a=new ma(a);a.next=this.a;this.b?this.a.h=a") - .append(":this.a=this.b=a;this.a=a;this.d++};K.prototype.add=function(a){a=new ma(a);a.h=th") - .append("is.b;this.a?this.b.next=a:this.a=this.b=a;this.b=a;this.d++};function L(a){return(") - .append("a=a.a)?a.j:null}function na(a){return(a=L(a))?H(a):\"\"}function M(a,b){this.v=a;t") - .append("his.i=(this.k=b)?a.b:a.a;this.n=null}\nM.prototype.next=function(){var a=this.i;if") - .append("(null==a)return null;var b=this.n=a;this.i=this.k?a.h:a.next;return b.j};function ") - .append("N(a,b){var c=a.evaluate(b);return c instanceof K?+na(c):+c}function O(a,b){var c=a") - .append(".evaluate(b);return c instanceof K?na(c):\"\"+c}function P(a,b){var c=a.evaluate(b") - .append(");return c instanceof K?!!c.d:!!c};function Q(a,b,c,d,e){b=b.evaluate(d);c=c.evalu") - .append("ate(d);var f;if(b instanceof K&&c instanceof K){e=new M(b,!1);for(d=e.next();d;d=e") - .append(".next())for(b=new M(c,!1),f=b.next();f;f=b.next())if(a(H(d),H(f)))return!0;return!") - .append("1}if(b instanceof K||c instanceof K){b instanceof K?e=b:(e=c,c=b);e=new M(e,!1);b=") - .append("typeof c;for(d=e.next();d;d=e.next()){switch(b){case \"number\":d=+H(d);break;case") - .append(" \"boolean\":d=!!H(d);break;case \"string\":d=H(d);break;default:throw Error(\"Ill") - .append("egal primitive type for comparison.\");}if(a(d,c))return!0}return!1}return e?\n\"b") - .append("oolean\"==typeof b||\"boolean\"==typeof c?a(!!b,!!c):\"number\"==typeof b||\"numbe") - .append("r\"==typeof c?a(+b,+c):a(b,c):a(+b,+c)}function oa(a,b,c,d){this.o=a;this.B=b;this") - .append(".l=c;this.m=d}oa.prototype.toString=function(){return this.o};var pa={};function R") - .append("(a,b,c,d){if(a in pa)throw Error(\"Binary operator already created: \"+a);a=new oa") - .append("(a,b,c,d);pa[a.toString()]=a}R(\"div\",6,1,function(a,b,c){return N(a,c)/N(b,c)});") - .append("R(\"mod\",6,1,function(a,b,c){return N(a,c)%N(b,c)});R(\"*\",6,1,function(a,b,c){r") - .append("eturn N(a,c)*N(b,c)});\nR(\"+\",5,1,function(a,b,c){return N(a,c)+N(b,c)});R(\"-\"") - .append(",5,1,function(a,b,c){return N(a,c)-N(b,c)});R(\"<\",4,2,function(a,b,c){return Q(f") - .append("unction(a,b){return a\",4,2,function(a,b,c){return Q(function(a,") - .append("b){return a>b},a,b,c)});R(\"<=\",4,2,function(a,b,c){return Q(function(a,b){return") - .append(" a<=b},a,b,c)});R(\">=\",4,2,function(a,b,c){return Q(function(a,b){return a>=b},a") - .append(",b,c)});R(\"=\",3,2,function(a,b,c){return Q(function(a,b){return a==b},a,b,c,!0)}") - .append(");\nR(\"!=\",3,2,function(a,b,c){return Q(function(a,b){return a!=b},a,b,c,!0)});R") - .append("(\"and\",2,2,function(a,b,c){return P(a,c)&&P(b,c)});R(\"or\",1,2,function(a,b,c){") - .append("return P(a,c)||P(b,c)});function qa(a,b,c,d,e,f,m,u,w){this.f=a;this.l=b;this.u=c;") - .append("this.t=d;this.s=e;this.m=f;this.r=m;this.q=void 0!==u?u:m;this.w=!!w}qa.prototype.") - .append("toString=function(){return this.f};var ra={};function S(a,b,c,d,e,f,m,u){if(a in r") - .append("a)throw Error(\"Function already created: \"+a+\".\");ra[a]=new qa(a,b,c,d,!1,e,f,") - .append("m,u)}S(\"boolean\",2,!1,!1,function(a,b){return P(b,a)},1);S(\"ceiling\",1,!1,!1,f") - .append("unction(a,b){return Math.ceil(N(b,a))},1);\nS(\"concat\",3,!1,!1,function(a,b){var") - .append(" c=ea(arguments,1);return da(c,function(b,c){return b+O(c,a)})},2,null);S(\"contai") - .append("ns\",2,!1,!1,function(a,b,c){b=O(b,a);a=O(c,a);return-1!=b.indexOf(a)},2);S(\"coun") - .append("t\",1,!1,!1,function(a,b){return b.evaluate(a).d},1,1,!0);S(\"false\",2,!1,!1,g(!1") - .append("),0);S(\"floor\",1,!1,!1,function(a,b){return Math.floor(N(b,a))},1);\nS(\"id\",4,") - .append("!1,!1,function(a,b){var c=a.c,d=9==c.nodeType?c:c.ownerDocument,c=O(b,a).split(/") - .append("\\s+/),e=[];s(c,function(a){a=d.getElementById(a);var b;if(!(b=!a)){a:if(l(e))b=l(") - .append("a)&&1==a.length?e.indexOf(a,0):-1;else{for(b=0;bb?e+=\"000\":256>b?e+=\"00\":4096>b&&(e+=\"0\");return V[a]=e+b.toS") - .append("tring(16)}),'\"')};function W(a){switch(k(a)){case \"string\":case \"number\":case") - .append(" \"boolean\":return a;case \"function\":return a.toString();case \"array\":return ") - .append("t(a,W);case \"object\":if(\"nodeType\"in a&&(1==a.nodeType||9==a.nodeType)){var b=") - .append("{};b.ELEMENT=ya(a);return b}if(\"document\"in a)return b={},b.WINDOW=ya(a),b;if(aa") - .append("(a))return t(a,W);a=fa(a,function(a,b){return\"number\"==typeof b||l(b)});return x") - .append("(a,W);default:return null}}\nfunction X(a,b){return\"array\"==k(a)?t(a,function(a)") - .append("{return X(a,b)}):ba(a)?\"function\"==typeof a?a:\"ELEMENT\"in a?za(a.ELEMENT,b):\"") - .append("WINDOW\"in a?za(a.WINDOW,b):x(a,function(a){return X(a,b)}):a}function Aa(a){a=a||") - .append("document;var b=a.$wdc_;b||(b=a.$wdc_={},b.g=p());b.g||(b.g=p());return b}function ") - .append("ya(a){var b=Aa(a.ownerDocument),c=ga(b,function(b){return b==a});c||(c=\":wdc:\"+b") - .append(".g++,b[c]=a);return c}\nfunction za(a,b){a=decodeURIComponent(a);var c=b||document") - .append(",d=Aa(c);if(!(a in d))throw new E(10,\"Element does not exist in cache\");var e=d[") - .append("a];if(\"setInterval\"in e){if(e.closed)throw delete d[a],new E(23,\"Window has bee") - .append("n closed.\");return e}for(var f=e;f;){if(f==c.documentElement)return e;f=f.parentN") - .append("ode}delete d[a];throw new E(10,\"Element is no longer attached to the DOM\");};fun") - .append("ction Ba(){var a=ua,b=[],c=window||ca,d;try{var a=l(a)?new c.Function(a):c==window") - .append("?a:new c.Function(\"return (\"+a+\").apply(null,arguments);\"),e=X(b,c.document),f") - .append("=a.apply(null,e);d={status:0,value:W(f)}}catch(m){d={status:\"code\"in m?m.code:13") - .append(",value:{message:m.message}}}a=[];U(new va,d,a);return a.join(\"\")}var Y=[\"_\"],Z") - .append("=h;Y[0]in Z||!Z.execScript||Z.execScript(\"var \"+Y[0]);for(var $;Y.length&&($=Y.s") - .append("hift());)Y.length||void 0===Ba?Z=Z[$]?Z[$]:Z[$]={}:Z[$]=Ba;; return this._.apply(n") - .append("ull,arguments);}.apply({navigator:typeof window!=undefined?window.navigator:null,d") - .append("ocument:typeof window!=undefined?window.document:null}, arguments);}") - .toString()), - - CLEAR(new StringBuilder() - .append("function(){return function(){function g(a){return function(){return this[a]}}funct") - .append("ion k(a){return function(){return a}}var l,aa=this;\nfunction ba(a){var b=typeof a") - .append(";if(\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Obje") - .append("ct)return b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)retu") - .append("rn\"object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!") - .append("=typeof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnume") - .append("rable(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=type") - .append("of a.call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(") - .append("\"call\"))return\"function\"}else return\"null\";\nelse if(\"function\"==b&&\"unde") - .append("fined\"==typeof a.call)return\"object\";return b}function n(a){return void 0!==a}f") - .append("unction ca(a){var b=ba(a);return\"array\"==b||\"object\"==b&&\"number\"==typeof a.") - .append("length}function p(a){return\"string\"==typeof a}function da(a){return\"function\"=") - .append("=ba(a)}function ea(a){var b=typeof a;return\"object\"==b&&null!=a||\"function\"==b") - .append("}var fa=\"closure_uid_\"+(1E9*Math.random()>>>0),ha=0;function ia(a,b,c){return a.") - .append("call.apply(a.bind,arguments)}\nfunction ja(a,b,c){if(!a)throw Error();if(2(0==r[1].length?\n0:parseInt(r[1],10))?1:0)||((0==v[2]") - .append(".length)<(0==r[2].length)?-1:(0==v[2].length)>(0==r[2].length)?1:0)||(v[2]r[2]?1:0)}while(0==c)}return c}function oa(a){return String(a).replace(/\\-(") - .append("[a-z])/g,function(a,c){return c.toUpperCase()})};var pa=Array.prototype;function s") - .append("(a,b,c){for(var d=a.length,e=p(a)?a.split(\"\"):a,f=0;f=arguments.l") - .append("ength?pa.slice.call(a,b):pa.slice.call(a,b,c)};var xa={aliceblue:\"#f0f8ff\",antiq") - .append("uewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beig") - .append("e:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue") - .append(":\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetb") - .append("lue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cor") - .append("nflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",") - .append("darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9") - .append("a9a9\",darkgreen:\"#006400\",\ndarkgrey:\"#a9a9a9\",darkkhaki:\"#bdb76b\",darkmage") - .append("nta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#99") - .append("32cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darksla") - .append("teblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoi") - .append("se:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\"") - .append(",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b2222") - .append("2\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:") - .append("\"#dcdcdc\",\nghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:") - .append("\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",grey:\"#808080\",honeydew:\"") - .append("#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#ff") - .append("fff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:") - .append("\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",") - .append("lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",light") - .append("green:\"#90ee90\",lightgrey:\"#d3d3d3\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07") - .append("a\",\nlightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899") - .append("\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",l") - .append("ime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon") - .append(":\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#b") - .append("a55d3\",mediumpurple:\"#9370db\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b6") - .append("8ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"") - .append("#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",\nm") - .append("occasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",o") - .append("live:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",or") - .append("chid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#") - .append("afeeee\",palevioletred:\"#db7093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",pe") - .append("ru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#") - .append("800080\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:") - .append("\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",\nseash") - .append("ell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblu") - .append("e:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springg") - .append("reen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"") - .append("#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5d") - .append("eb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9") - .append("acd32\"};var ya=\"background-color border-top-color border-right-color border-bott") - .append("om-color border-left-color color outline-color\".split(\" \"),za=/#([0-9a-fA-F])([") - .append("0-9a-fA-F])([0-9a-fA-F])/;function Aa(a){if(!Ba.test(a))throw Error(\"'\"+a+\"' is") - .append(" not a valid hex color\");4==a.length&&(a=a.replace(za,\"#$1$1$2$2$3$3\"));return ") - .append("a.toLowerCase()}var Ba=/^#(?:[0-9a-f]{3}){1,2}$/i,Ca=/^(?:rgba)?\\((\\d{1,3}),\\s?") - .append("(\\d{1,3}),\\s?(\\d{1,3}),\\s?(0|1|0\\.\\d*)\\)$/i;\nfunction Da(a){var b=a.match(") - .append("Ca);if(b){a=Number(b[1]);var c=Number(b[2]),d=Number(b[3]),b=Number(b[4]);if(0<=a&") - .append("&255>=a&&0<=c&&255>=c&&0<=d&&255>=d&&0<=b&&1>=b)return[a,c,d,b]}return[]}var Ea=/^") - .append("(?:rgb)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2})\\)$/i;fun") - .append("ction Fa(a){var b=a.match(Ea);if(b){a=Number(b[1]);var c=Number(b[2]),b=Number(b[3") - .append("]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=b&&255>=b)return[a,c,b]}return[]};function t(") - .append("a,b){this.code=a;this.state=Ga[a]||Ha;this.message=b||\"\";var c=this.state.replac") - .append("e(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,") - .append("\"\")}),d=c.length-5;if(0>d||c.indexOf(\"Error\",d)!=d)c+=\"Error\";this.name=c;c=") - .append("Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}q(t,Error);\nvar Ha=") - .append("\"unknown error\",Ga={15:\"element not selectable\",11:\"element not visible\",31:") - .append("\"ime engine activation failed\",30:\"ime not available\",24:\"invalid cookie doma") - .append("in\",29:\"invalid element coordinates\",12:\"invalid element state\",32:\"invalid ") - .append("selector\",51:\"invalid selector\",52:\"invalid selector\",17:\"javascript error\"") - .append(",405:\"unsupported operation\",34:\"move target out of bounds\",27:\"no such alert") - .append("\",7:\"no such element\",8:\"no such frame\",23:\"no such window\",28:\"script tim") - .append("eout\",33:\"session not created\",10:\"stale element reference\",\n0:\"success\",2") - .append("1:\"timeout\",25:\"unable to set cookie\",26:\"unexpected alert open\"};Ga[13]=Ha;") - .append("Ga[9]=\"unknown command\";t.prototype.toString=function(){return this.name+\": \"+") - .append("this.message};var Ia,Ja;function Ka(){return aa.navigator?aa.navigator.userAgent:n") - .append("ull}var La,Ma=aa.navigator;La=Ma&&Ma.platform||\"\";Ia=-1!=La.indexOf(\"Mac\");Ja=") - .append("-1!=La.indexOf(\"Win\");var Na=-1!=La.indexOf(\"Linux\"),Oa,Pa=\"\",Qa=/WebKit\\/(") - .append("\\S+)/.exec(Ka());Oa=Pa=Qa?Qa[1]:\"\";var Ra={};function Sa(a,b){this.x=n(a)?a:0;t") - .append("his.y=n(b)?b:0}Sa.prototype.toString=function(){return\"(\"+this.x+\", \"+this.y+") - .append("\")\"};Sa.prototype.ceil=function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this") - .append(".y);return this};Sa.prototype.floor=function(){this.x=Math.floor(this.x);this.y=Ma") - .append("th.floor(this.y);return this};Sa.prototype.round=function(){this.x=Math.round(this") - .append(".x);this.y=Math.round(this.y);return this};function Ta(a,b){this.width=a;this.heig") - .append("ht=b}Ta.prototype.toString=function(){return\"(\"+this.width+\" x \"+this.height+") - .append("\")\"};Ta.prototype.ceil=function(){this.width=Math.ceil(this.width);this.height=M") - .append("ath.ceil(this.height);return this};Ta.prototype.floor=function(){this.width=Math.f") - .append("loor(this.width);this.height=Math.floor(this.height);return this};Ta.prototype.rou") - .append("nd=function(){this.width=Math.round(this.width);this.height=Math.round(this.height") - .append(");return this};function Ua(a,b){var c={},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[") - .append("d]=a[d]);return c}function Va(a,b){var c={},d;for(d in a)c[d]=b.call(void 0,a[d],d") - .append(",a);return c}function Wa(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b}functio") - .append("n Xa(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return c};var Ya=3;function Za") - .append("(a){for(;a&&1!=a.nodeType;)a=a.previousSibling;return a}function $a(a,b){if(a.cont") - .append("ains&&1==b.nodeType)return a==b||a.contains(b);if(\"undefined\"!=typeof a.compareD") - .append("ocumentPosition)return a==b||Boolean(a.compareDocumentPosition(b)&16);for(;b&&a!=b") - .append(";)b=b.parentNode;return b==a}\nfunction ab(a,b){if(a==b)return 0;if(a.compareDocum") - .append("entPosition)return a.compareDocumentPosition(b)&2?1:-1;if(\"sourceIndex\"in a||a.p") - .append("arentNode&&\"sourceIndex\"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(") - .append("c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e") - .append("==f?cb(a,b):!c&&$a(e,b)?-1*db(a,b):!d&&$a(f,a)?db(b,a):(c?a.sourceIndex:e.sourceIn") - .append("dex)-(d?b.sourceIndex:f.sourceIndex)}d=w(a);c=d.createRange();c.selectNode(a);c.co") - .append("llapse(!0);d=d.createRange();d.selectNode(b);\nd.collapse(!0);return c.compareBoun") - .append("daryPoints(aa.Range.START_TO_END,d)}function db(a,b){var c=a.parentNode;if(c==b)re") - .append("turn-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return cb(d,a)}function cb(a,b)") - .append("{for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1}function w(a){return 9") - .append("==a.nodeType?a:a.ownerDocument||a.document}function eb(a,b,c){c||(a=a.parentNode);") - .append("for(c=0;a;){if(b(a))return a;a=a.parentNode;c++}return null}function fb(a){try{ret") - .append("urn a&&a.activeElement}catch(b){}return null}\nfunction gb(a){this.ia=a||aa.docume") - .append("nt||document}gb.prototype.e=function(a){return p(a)?this.ia.getElementById(a):a};g") - .append("b.prototype.contains=$a;function hb(a,b,c){this.q=a;this.Ja=b||1;this.p=c||1};func") - .append("tion ib(a){this.da=a;this.O=0}function jb(a){a=a.match(kb);for(var b=0;b]=|\\\\s+|.\",\"g\"),lb=/^\\s/;function ") - .append("x(a,b){return a.da[a.O+(b||0)]}ib.prototype.next=function(){return this.da[this.O+") - .append("+]};ib.prototype.back=function(){this.O--};ib.prototype.empty=function(){return th") - .append("is.da.length<=this.O};function y(a){var b=null,c=a.nodeType;1==c&&(b=a.textContent") - .append(",b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?\"\":b);if(\"string\"!=ty") - .append("peof b)if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;for(var c=0,d=[],b=\"") - .append("\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c++]=a;while(a=a.firstChild);for(;c&&!") - .append("(a=d[--c].nextSibling););}}else b=a.nodeValue;return\"\"+b}\nfunction mb(a,b,c){if") - .append("(null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!1}return null==") - .append("c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function nb(a,b,c,d,e){return ob.call") - .append("(null,a,b,p(c)?c:null,p(d)?d:null,e||new z)}\nfunction ob(a,b,c,d,e){b.getElements") - .append("ByName&&d&&\"name\"==c?(b=b.getElementsByName(d),s(b,function(b){a.matches(b)&&e.a") - .append("dd(b)})):b.getElementsByClassName&&d&&\"class\"==c?(b=b.getElementsByClassName(d),") - .append("s(b,function(b){b.className==d&&a.matches(b)&&e.add(b)})):a instanceof A?pb(a,b,c,") - .append("d,e):b.getElementsByTagName&&(b=b.getElementsByTagName(a.getName()),s(b,function(a") - .append("){mb(a,c,d)&&e.add(a)}));return e}function qb(a,b,c,d,e){for(b=b.firstChild;b;b=b.") - .append("nextSibling)mb(b,c,d)&&a.matches(b)&&e.add(b);return e}\nfunction pb(a,b,c,d,e){fo") - .append("r(b=b.firstChild;b;b=b.nextSibling)mb(b,c,d)&&a.matches(b)&&e.add(b),pb(a,b,c,d,e)") - .append("};function z(){this.p=this.k=null;this.K=0}function rb(a){this.F=a;this.next=this.") - .append("C=null}function sb(a,b){if(!a.k)return b;if(!b.k)return a;for(var c=a.k,d=b.k,e=nu") - .append("ll,f=null,h=0;c&&d;)c.F==d.F?(f=c,c=c.next,d=d.next):0\",4,2,function(a,b,c") - .append("){return Bb(function(a,b){return a>b},a,b,c)});G(\"<=\",4,2,function(a,b,c){return") - .append(" Bb(function(a,b){return a<=b},a,b,c)});G(\">=\",4,2,function(a,b,c){return Bb(fun") - .append("ction(a,b){return a>=b},a,b,c)});var Ab=G(\"=\",3,2,function(a,b,c){return Bb(func") - .append("tion(a,b){return a==b},a,b,c,!0)});G(\"!=\",3,2,function(a,b,c){return Bb(function") - .append("(a,b){return a!=b},a,b,c,!0)});G(\"and\",2,2,function(a,b,c){return yb(a,c)&&yb(b,") - .append("c)});G(\"or\",1,2,function(a,b,c){return yb(a,c)||yb(b,c)});function Eb(a,b){if(b.") - .append("s()&&4!=a.j)throw Error(\"Primary expression must evaluate to nodeset if filter ha") - .append("s predicate(s).\");C.call(this,a.j);this.ta=a;this.f=b;this.u=a.h();this.m=a.m}q(E") - .append("b,C);Eb.prototype.evaluate=function(a){a=this.ta.evaluate(a);return Fb(this.f,a)};") - .append("Eb.prototype.toString=function(){var a;a=\"Filter:\"+D(this.ta);return a+=D(this.f") - .append(")};function Gb(a,b){if(b.lengtha.Z)thro") - .append("w Error(\"Function \"+a.o+\" expects at most \"+a.Z+\" arguments, \"+b.length+\" g") - .append("iven\");a.Ga&&s(b,function(b,d){if(4!=b.j)throw Error(\"Argument \"+d+\" to functi") - .append("on \"+a.o+\" is not of type Nodeset: \"+b);});C.call(this,a.j);this.N=a;this.U=b;w") - .append("b(this,a.u||sa(b,function(a){return a.h()}));xb(this,a.Ea&&!b.length||a.Da&&!!b.le") - .append("ngth||sa(b,function(a){return a.m}))}\nq(Gb,C);Gb.prototype.evaluate=function(a){r") - .append("eturn this.N.r.apply(null,va(a,this.U))};Gb.prototype.toString=function(){var a=\"") - .append("Function: \"+this.N;if(this.U.length)var b=ra(this.U,function(a,b){return a+D(b)},") - .append("\"Arguments:\"),a=a+D(b);return a};function Hb(a,b,c,d,e,f,h,m,u){this.o=a;this.j=") - .append("b;this.u=c;this.Ea=d;this.Da=e;this.r=f;this.qa=h;this.Z=n(m)?m:h;this.Ga=!!u}Hb.p") - .append("rototype.toString=g(\"o\");var Ib={};\nfunction H(a,b,c,d,e,f,h,m){if(a in Ib)thro") - .append("w Error(\"Function already created: \"+a+\".\");Ib[a]=new Hb(a,b,c,d,!1,e,f,h,m)}H") - .append("(\"boolean\",2,!1,!1,function(a,b){return yb(b,a)},1);H(\"ceiling\",1,!1,!1,functi") - .append("on(a,b){return Math.ceil(E(b,a))},1);H(\"concat\",3,!1,!1,function(a,b){var c=wa(a") - .append("rguments,1);return ra(c,function(b,c){return b+F(c,a)},\"\")},2,null);H(\"contains") - .append("\",2,!1,!1,function(a,b,c){b=F(b,a);a=F(c,a);return-1!=b.indexOf(a)},2);H(\"count") - .append("\",1,!1,!1,function(a,b){return b.evaluate(a).s()},1,1,!0);\nH(\"false\",2,!1,!1,k") - .append("(!1),0);H(\"floor\",1,!1,!1,function(a,b){return Math.floor(E(b,a))},1);H(\"id\",4") - .append(",!1,!1,function(a,b){var c=a.q,d=9==c.nodeType?c:c.ownerDocument,c=F(b,a).split(/") - .append("\\s+/),e=[];s(c,function(a){(a=d.getElementById(a))&&!ua(e,a)&&e.push(a)});e.sort(") - .append("ab);var f=new z;s(e,function(a){f.add(a)});return f},1);H(\"lang\",2,!1,!1,k(!1),1") - .append(");H(\"last\",1,!0,!1,function(a){if(1!=arguments.length)throw Error(\"Function las") - .append("t expects ()\");return a.p},0);\nH(\"local-name\",3,!1,!0,function(a,b){var c=b?tb") - .append("(b.evaluate(a)):a.q;return c?c.nodeName.toLowerCase():\"\"},0,1,!0);H(\"name\",3,!") - .append("1,!0,function(a,b){var c=b?tb(b.evaluate(a)):a.q;return c?c.nodeName.toLowerCase()") - .append(":\"\"},0,1,!0);H(\"namespace-uri\",3,!0,!1,k(\"\"),0,1,!0);H(\"normalize-space\",3") - .append(",!1,!0,function(a,b){return(b?F(b,a):y(a.q)).replace(/[\\s\\xa0]+/g,\" \").replace") - .append("(/^\\s+|\\s+$/g,\"\")},0,1);H(\"not\",2,!1,!1,function(a,b){return!yb(b,a)},1);H(") - .append("\"number\",1,!1,!0,function(a,b){return b?E(b,a):+y(a.q)},0,1);\nH(\"position\",1,") - .append("!0,!1,function(a){return a.Ja},0);H(\"round\",1,!1,!1,function(a,b){return Math.ro") - .append("und(E(b,a))},1);H(\"starts-with\",2,!1,!1,function(a,b,c){b=F(b,a);a=F(c,a);return") - .append(" 0==b.lastIndexOf(a,0)},2);H(\"string\",3,!1,!0,function(a,b){return b?F(b,a):y(a.") - .append("q)},0,1);H(\"string-length\",1,!1,!0,function(a,b){return(b?F(b,a):y(a.q)).length}") - .append(",0,1);\nH(\"substring\",3,!1,!1,function(a,b,c,d){c=E(c,a);if(isNaN(c)||Infinity==") - .append("c||-Infinity==c)return\"\";d=d?E(d,a):Infinity;if(isNaN(d)||-Infinity===d)return\"") - .append("\";c=Math.round(c)-1;var e=Math.max(c,0);a=F(b,a);if(Infinity==d)return a.substrin") - .append("g(e);b=Math.round(d);return a.substring(e,c+b)},2,3);H(\"substring-after\",3,!1,!1") - .append(",function(a,b,c){b=F(b,a);a=F(c,a);c=b.indexOf(a);return-1==c?\"\":b.substring(c+a") - .append(".length)},2);\nH(\"substring-before\",3,!1,!1,function(a,b,c){b=F(b,a);a=F(c,a);a=") - .append("b.indexOf(a);return-1==a?\"\":b.substring(0,a)},2);H(\"sum\",1,!1,!1,function(a,b)") - .append("{for(var c=B(b.evaluate(a)),d=0,e=c.next();e;e=c.next())d+=+y(e);return d},1,1,!0)") - .append(";H(\"translate\",3,!1,!1,function(a,b,c,d){b=F(b,a);c=F(c,a);var e=F(d,a);a=[];for") - .append("(d=0;da.length)throw Error(\"Unclosed liter") - .append("al string\");return new Kb(a)}function hc(a){var b=a.b.next(),c=b.indexOf(\":\");i") - .append("f(-1==c)return new Lb(b);var d=b.substring(0,c);a=a.Ha(d);if(!a)throw Error(\"Name") - .append("space prefix not declared: \"+d);b=b.substr(c+1);return new Lb(b,a)}\nfunction ic(") - .append("a){var b,c=[],d;if(\"/\"==x(a.b)||\"//\"==x(a.b)){b=a.b.next();d=x(a.b);if(\"/\"==") - .append("b&&(a.b.empty()||\".\"!=d&&\"..\"!=d&&\"@\"!=d&&\"*\"!=d&&!/(?![0-9])[\\w]/.test(d") - .append(")))return new Pb;d=new Pb;L(a,\"Missing next location step.\");b=jc(a,b);c.push(b)") - .append("}else{a:{b=x(a.b);d=b.charAt(0);switch(d){case \"$\":throw Error(\"Variable refere") - .append("nce not allowed in HTML XPath\");case \"(\":a.b.next();b=cc(a);L(a,'unclosed \"(\"") - .append("');ec(a,\")\");break;case '\"':case \"'\":b=gc(a);break;default:if(isNaN(+b))if(!J") - .append("b(b)&&/(?![0-9])[\\w]/.test(d)&&\n\"(\"==x(a.b,1)){b=a.b.next();b=Ib[b]||null;a.b.") - .append("next();for(d=[];\")\"!=x(a.b);){L(a,\"Missing function argument list.\");d.push(cc") - .append("(a));if(\",\"!=x(a.b))break;a.b.next()}L(a,\"Unclosed function argument list.\");f") - .append("c(a);b=new Gb(b,d)}else{b=null;break a}else b=new Mb(+a.b.next())}\"[\"==x(a.b)&&(") - .append("d=new Tb(kc(a)),b=new Eb(b,d))}if(b)if(\"/\"==x(a.b)||\"//\"==x(a.b))d=b;else retu") - .append("rn b;else b=jc(a,\"/\"),d=new Qb,c.push(b)}for(;\"/\"==x(a.b)||\"//\"==x(a.b);)b=a") - .append(".b.next(),L(a,\"Missing next location step.\"),b=jc(a,b),c.push(b);\nreturn new Nb") - .append("(d,c)}\nfunction jc(a,b){var c,d,e;if(\"/\"!=b&&\"//\"!=b)throw Error('Step op sho") - .append("uld be \"/\" or \"//\"');if(\".\"==x(a.b))return d=new J(Zb,new A(\"node\")),a.b.n") - .append("ext(),d;if(\"..\"==x(a.b))return d=new J(Yb,new A(\"node\")),a.b.next(),d;var f;if") - .append("(\"@\"==x(a.b))f=Ob,a.b.next(),L(a,\"Missing attribute name\");else if(\"::\"==x(a") - .append(".b,1)){if(!/(?![0-9])[\\w]/.test(x(a.b).charAt(0)))throw Error(\"Bad token: \"+a.b") - .append(".next());c=a.b.next();f=Xb[c]||null;if(!f)throw Error(\"No axis with name: \"+c);a") - .append(".b.next();L(a,\"Missing node name\")}else f=Ub;\nc=x(a.b);if(/(?![0-9])[\\w]/.test") - .append("(c.charAt(0)))if(\"(\"==x(a.b,1)){if(!Jb(c))throw Error(\"Invalid node type: \"+c)") - .append(";c=a.b.next();if(!Jb(c))throw Error(\"Invalid type name: \"+c);ec(a,\"(\");L(a,\"B") - .append("ad nodetype\");e=x(a.b).charAt(0);var h=null;if('\"'==e||\"'\"==e)h=gc(a);L(a,\"Ba") - .append("d nodetype\");fc(a);c=new A(c,h)}else c=hc(a);else if(\"*\"==c)c=hc(a);else throw ") - .append("Error(\"Bad token: \"+a.b.next());e=new Tb(kc(a),f.G);return d||new J(f,c,e,\"//\"") - .append("==b)}\nfunction kc(a){for(var b=[];\"[\"==x(a.b);){a.b.next();L(a,\"Missing predic") - .append("ate expression.\");var c=cc(a);b.push(c);L(a,\"Unclosed predicate expression.\");e") - .append("c(a,\"]\")}return b}function dc(a){if(\"-\"==x(a.b))return a.b.next(),new $b(dc(a)") - .append(");var b=ic(a);if(\"|\"!=x(a.b))a=b;else{for(b=[b];\"|\"==a.b.next();)L(a,\"Missing") - .append(" next union location path.\"),b.push(ic(a));a.b.back();a=new ac(b)}return a};funct") - .append("ion lc(a,b){if(!a.length)throw Error(\"Empty XPath expression.\");var c=jb(a);if(c") - .append(".empty())throw Error(\"Invalid XPath expression.\");b?da(b)||(b=ka(b.lookupNamespa") - .append("ceURI,b)):b=k(null);var d=cc(new bc(c,b));if(!c.empty())throw Error(\"Bad token: ") - .append("\"+c.next());this.evaluate=function(a,b){var c=d.evaluate(new hb(a));return new M(") - .append("c,b)}}\nfunction M(a,b){if(0==b)if(a instanceof z)b=4;else if(\"string\"==typeof a") - .append(")b=2;else if(\"number\"==typeof a)b=1;else if(\"boolean\"==typeof a)b=3;else throw") - .append(" Error(\"Unexpected evaluation result.\");if(2!=b&&1!=b&&3!=b&&!(a instanceof z))t") - .append("hrow Error(\"value could not be converted to the specified type\");this.resultType") - .append("=b;var c;switch(b){case 2:this.stringValue=a instanceof z?ub(a):\"\"+a;break;case ") - .append("1:this.numberValue=a instanceof z?+ub(a):+a;break;case 3:this.booleanValue=a insta") - .append("nceof z?0=c.length?null:c[f") - .append("++]};this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error(\"snapshotItem called") - .append(" with wrong result type\");return a>=c.length||0>a?null:c[a]}}M.ANY_TYPE=0;\nM.NUM") - .append("BER_TYPE=1;M.STRING_TYPE=2;M.BOOLEAN_TYPE=3;M.UNORDERED_NODE_ITERATOR_TYPE=4;M.ORD") - .append("ERED_NODE_ITERATOR_TYPE=5;M.UNORDERED_NODE_SNAPSHOT_TYPE=6;M.ORDERED_NODE_SNAPSHOT") - .append("_TYPE=7;M.ANY_UNORDERED_NODE_TYPE=8;M.FIRST_ORDERED_NODE_TYPE=9;function mc(a){a=a") - .append("||aa;var b=a.document;b.evaluate||(a.XPathResult=M,b.evaluate=function(a,b,e,f){re") - .append("turn(new lc(a,e)).evaluate(b,f)},b.createExpression=function(a,b){return new lc(a,") - .append("b)})};var N={};N.Aa=function(){var a={Pa:\"http://www.w3.org/2000/svg\"};return fu") - .append("nction(b){return a[b]||null}}();N.r=function(a,b,c){var d=w(a);mc(d?d.parentWindow") - .append("||d.defaultView:window);try{var e=d.createNSResolver?d.createNSResolver(d.document") - .append("Element):N.Aa;return d.evaluate(b,a,e,c,null)}catch(f){throw new t(32,\"Unable to ") - .append("locate an element with the xpath expression \"+b+\" because of the following error") - .append(":\\n\"+f);}};\nN.ga=function(a,b){if(!a||1!=a.nodeType)throw new t(32,'The result ") - .append("of the xpath expression \"'+b+'\" is: '+a+\". It should be an element.\");};N.La=f") - .append("unction(a,b){var c=function(){var c=N.r(b,a,9);return c?c.singleNodeValue||null:b.") - .append("selectSingleNode?(c=w(b),c.setProperty&&c.setProperty(\"SelectionLanguage\",\"XPat") - .append("h\"),b.selectSingleNode(a)):null}();null===c||N.ga(c,a);return c};\nN.Na=function(") - .append("a,b){var c=function(){var c=N.r(b,a,7);if(c){for(var e=c.snapshotLength,f=[],h=0;h") - .append("=this.left&&a.right<=th") - .append("is.right&&a.top>=this.top&&a.bottom<=this.bottom:a.x>=this.left&&a.x<=this.right&&") - .append("a.y>=this.top&&a.y<=this.bottom:!1};\nl.ceil=function(){this.top=Math.ceil(this.to") - .append("p);this.right=Math.ceil(this.right);this.bottom=Math.ceil(this.bottom);this.left=M") - .append("ath.ceil(this.left);return this};l.floor=function(){this.top=Math.floor(this.top);") - .append("this.right=Math.floor(this.right);this.bottom=Math.floor(this.bottom);this.left=Ma") - .append("th.floor(this.left);return this};l.round=function(){this.top=Math.round(this.top);") - .append("this.right=Math.round(this.right);this.bottom=Math.round(this.bottom);this.left=Ma") - .append("th.round(this.left);return this};function O(a,b,c,d){this.left=a;this.top=b;this.w") - .append("idth=c;this.height=d}l=O.prototype;l.toString=function(){return\"(\"+this.left+\",") - .append(" \"+this.top+\" - \"+this.width+\"w x \"+this.height+\"h)\"};l.contains=function(a") - .append("){return a instanceof O?this.left<=a.left&&this.left+this.width>=a.left+a.width&&t") - .append("his.top<=a.top&&this.top+this.height>=a.top+a.height:a.x>=this.left&&a.x<=this.lef") - .append("t+this.width&&a.y>=this.top&&a.y<=this.top+this.height};\nl.ceil=function(){this.l") - .append("eft=Math.ceil(this.left);this.top=Math.ceil(this.top);this.width=Math.ceil(this.wi") - .append("dth);this.height=Math.ceil(this.height);return this};l.floor=function(){this.left=") - .append("Math.floor(this.left);this.top=Math.floor(this.top);this.width=Math.floor(this.wid") - .append("th);this.height=Math.floor(this.height);return this};l.round=function(){this.left=") - .append("Math.round(this.left);this.top=Math.round(this.top);this.width=Math.round(this.wid") - .append("th);this.height=Math.round(this.height);return this};function rc(a,b){var c=w(a);r") - .append("eturn c.defaultView&&c.defaultView.getComputedStyle&&(c=c.defaultView.getComputedS") - .append("tyle(a,null))?c[b]||c.getPropertyValue(b)||\"\":\"\"};function Q(a,b){return!!a&&1") - .append("==a.nodeType&&(!b||a.tagName.toUpperCase()==b)}var sc=\"BUTTON INPUT OPTGROUP OPTI") - .append("ON SELECT TEXTAREA\".split(\" \");\nfunction tc(a){var b=a.tagName.toUpperCase();r") - .append("eturn ua(sc,b)?a.disabled?!1:a.parentNode&&1==a.parentNode.nodeType&&\"OPTGROUP\"=") - .append("=b||\"OPTION\"==b?tc(a.parentNode):!eb(a,function(a){var b=a.parentNode;if(b&&Q(b,") - .append("\"FIELDSET\")&&b.disabled){if(!Q(a,\"LEGEND\"))return!0;for(;a=void 0!=a.previousE") - .append("lementSibling?a.previousElementSibling:Za(a.previousSibling);)if(Q(a,\"LEGEND\"))r") - .append("eturn!0}return!1},!0):!0}var uc=\"text search tel url email password number\".spli") - .append("t(\" \");\nfunction vc(a){function b(a){return\"inherit\"==a.contentEditable?(a=R(") - .append("a))?b(a):!1:\"true\"==a.contentEditable}return n(a.contentEditable)?n(a.isContentE") - .append("ditable)?a.isContentEditable:b(a):!1}function wc(a){return(Q(a,\"TEXTAREA\")?!0:Q(") - .append("a,\"INPUT\")?ua(uc,a.type.toLowerCase()):vc(a)?!0:!1)&&!a.readOnly}function R(a){f") - .append("or(a=a.parentNode;a&&1!=a.nodeType&&9!=a.nodeType&&11!=a.nodeType;)a=a.parentNode;") - .append("return Q(a)?a:null}\nfunction S(a,b){var c=oa(b);if(\"float\"==c||\"cssFloat\"==c|") - .append("|\"styleFloat\"==c)c=\"cssFloat\";c=rc(a,c)||xc(a,c);if(null===c)c=null;else if(ua") - .append("(ya,b)&&(Ba.test(\"#\"==c.charAt(0)?c:\"#\"+c)||Fa(c).length||xa&&xa[c.toLowerCase") - .append("()]||Da(c).length)){var d=Da(c);if(!d.length){a:if(d=Fa(c),!d.length){d=(d=xa[c.to") - .append("LowerCase()])?d:\"#\"==c.charAt(0)?c:\"#\"+c;if(Ba.test(d)&&(d=Aa(d),d=Aa(d),d=[pa") - .append("rseInt(d.substr(1,2),16),parseInt(d.substr(3,2),16),parseInt(d.substr(5,2),16)],d.") - .append("length))break a;d=[]}3==d.length&&d.push(1)}c=\n4!=d.length?c:\"rgba(\"+d.join(\",") - .append(" \")+\")\"}return c}function xc(a,b){var c=a.currentStyle||a.style,d=c[b];!n(d)&&d") - .append("a(c.getPropertyValue)&&(d=c.getPropertyValue(b));return\"inherit\"!=d?n(d)?d:null:") - .append("(c=R(a))?xc(c,b):null}\nfunction yc(a,b){function c(a){if(\"none\"==S(a,\"display") - .append("\"))return!1;a=R(a);return!a||c(a)}function d(a){var b=zc(a);return 0=I.left+I.width;I=f.top>=I.top+I.height;if(Y&&\"hidden\"==r.") - .append("x||I&&\"hidden\"==r.y)return T;if(Y&&\"visible\"!=r.x||I&&\"visible\"!=r.y){if(ga&") - .append("&(r=e(v),f.left>=m.scrollWidth-r.x||f.right>=m.scrollHeight-r.y))return T;f=Ac(v);") - .append("return f==T?T:\"scroll\"}}}return\"none\"}\nfunction zc(a){var b=Bc(a);if(b)return") - .append(" b.rect;if(Q(a,\"HTML\"))return a=((w(a)?w(a).parentWindow||w(a).defaultView:windo") - .append("w)||window).document,a=\"CSS1Compat\"==a.compatMode?a.documentElement:a.body,a=new") - .append(" Ta(a.clientWidth,a.clientHeight),new O(0,0,a.width,a.height);var c;try{c=a.getBou") - .append("ndingClientRect()}catch(d){return new O(0,0,0,0)}return new O(c.left,c.top,c.right") - .append("-c.left,c.bottom-c.top)}\nfunction Bc(a){var b=Q(a,\"MAP\");if(!b&&!Q(a,\"AREA\"))") - .append("return null;var c=b?a:Q(a.parentNode,\"MAP\")?a.parentNode:null,d=null,e=null;if(c") - .append("&&c.name&&(d=N.La('/descendant::*[@usemap = \"#'+c.name+'\"]',w(c)))&&(e=zc(d),!b&") - .append("&\"default\"!=a.shape.toLowerCase())){var f=Ec(a);a=Math.min(Math.max(f.left,0),e.") - .append("width);b=Math.min(Math.max(f.top,0),e.height);c=Math.min(f.width,e.width-a);f=Math") - .append(".min(f.height,e.height-b);e=new O(a+e.left,b+e.top,c,f)}return{ma:d,rect:e||new O(") - .append("0,0,0,0)}}\nfunction Ec(a){var b=a.shape.toLowerCase();a=a.coords.split(\",\");if(") - .append("\"rect\"==b&&4==a.length){var b=a[0],c=a[1];return new O(b,c,a[2]-b,a[3]-c)}if(\"c") - .append("ircle\"==b&&3==a.length)return b=a[2],new O(a[0]-b,a[1]-b,2*b,2*b);if(\"poly\"==b&") - .append("&22*this.I&&cd(this),!0):!1};\nfunction cd(a){i") - .append("f(a.I!=a.i.length){for(var b=0,c=0;b\");W(191,\"/\",\"?\");W(192,\"`\",") - .append("\"~\");W(219,\"[\",\"{\");W(220,\"\\\\\",\"|\");W(221,\"]\",\"}\");var he=W({d:59,") - .append("c:186,opera:59},\";\",\":\");W(222,\"'\",'\"');var ie=[qd,pd,Ed,X],je=new bd;je.se") - .append("t(1,X);je.set(2,pd);je.set(4,qd);je.set(8,Ed);\nvar ke=function(a){var b=new bd;s(") - .append("dd(a),function(c){b.set(a.get(c).code,c)});return b}(je);function jd(a,b,c){if(ua(") - .append("ie,b)){var d=ke.get(b.code),e=a.Ca;e.Q=c?e.Q|d:e.Q&~d}c?a.ca.add(b):a.ca.remove(b)") - .append("}id.prototype.g=function(a){return this.ca.contains(a)};\nfunction le(a,b){if(ua(i") - .append("e,b)&&a.g(b))throw new t(13,\"Cannot press a modifier key that is already pressed.") - .append("\");var c=null!==b.code&&me(a,Vc,b);if(c&&((!b.A&&b!=od||me(a,Pc,b,!c))&&c)&&(ne(a") - .append(",b),a.W))if(b.A){var c=oe(a,b),d=V(a.e(),!0)[0]+1;ad(a.e(),c);Xc(a.e(),d);a.B(Uc);") - .append("a.B(Tc);a.n=d}else switch(b){case od:a.B(Uc);Q(a.e(),\"TEXTAREA\")&&(c=V(a.e(),!0)") - .append("[0]+1,ad(a.e(),\"\\n\"),Xc(a.e(),c),a.B(Tc),a.n=c);break;case md:case Dd:c=V(a.e()") - .append(",!1);c[0]==c[1]&&(b==md?(Xc(a.e(),c[1]-1),Zc(a.e(),c[1])):Zc(a.e(),c[1]+1));\nc=V(") - .append("a.e(),!1);c=!(c[0]==a.e().value.length||0==c[1]);ad(a.e(),\"\");c&&a.B(Tc);c=V(a.e") - .append("(),!1);a.n=c[1];break;case yd:case Ad:var c=a.e(),e=V(c,!0)[0],f=V(c,!1)[1],h=d=0;") - .append("b==yd?a.g(X)?a.n==e?(d=Math.max(e-1,0),h=f,e=d):(d=e,e=h=f-1):e=e==f?Math.max(e-1,") - .append("0):e:a.g(X)?a.n==f?(d=e,e=h=Math.min(f+1,c.value.length)):(d=e+1,h=f,e=d):e=e==f?M") - .append("ath.min(f+1,c.value.length):f;a.g(X)?(Xc(c,d),Zc(c,h)):$c(c,e);a.n=e;break;case xd") - .append(":case wd:c=a.e(),d=V(c,!0)[0],h=V(c,!1)[1],b==xd?(a.g(X)?(Xc(c,0),Zc(c,a.n==d?h:d)") - .append("):$c(c,\n0),a.n=0):(a.g(X)?(a.n==d&&Xc(c,h),Zc(c,c.value.length)):$c(c,c.value.len") - .append("gth),a.n=c.value.length)}jd(a,b,!0)}function ne(a,b){if(b==od&&Q(a.e(),\"INPUT\"))") - .append("{var c=eb(a.e(),Kc,!0);if(c){var d=c.getElementsByTagName(\"input\");!sa(d,functio") - .append("n(a){a:{if(Q(a,\"INPUT\")){var b=a.type.toLowerCase();if(\"submit\"==b||\"image\"=") - .append("=b){a=!0;break a}}if(Q(a,\"BUTTON\")&&(b=a.type.toLowerCase(),\"submit\"==b)){a=!0") - .append(";break a}a=!1}return a})&&1!=d.length&&(Ra[534]||(Ra[534]=0<=na(Oa,534)))||Lc(c)}}") - .append("}\nfunction pe(a,b){if(!a.g(b))throw new t(13,\"Cannot release a key that is not p") - .append("ressed. (\"+b.code+\")\");null===b.code||me(a,Wc,b);jd(a,b,!1)}function oe(a,b){if") - .append("(!b.A)throw new t(13,\"not a character key\");return a.g(X)?b.Ka:b.A}function me(a") - .append(",b,c,d){if(null===c.code)throw new t(13,\"Key must have a keycode to be fired.\");") - .append("c={altKey:a.g(qd),ctrlKey:a.g(pd),metaKey:a.g(Ed),shiftKey:a.g(X),keyCode:c.code,c") - .append("harCode:c.A&&b==Pc?oe(a,c).charCodeAt(0):0,preventDefault:!!d};return a.X(b,c)}\nf") - .append("unction qe(a,b){Gc(a,b);a.W=wc(b);var c=Jc(a);a.W&&c&&($c(b,b.value.length),a.n=b.") - .append("value.length)};function re(a){if(!yc(a,!0)||!tc(a)||\"none\"==S(a,\"pointer-events") - .append("\"))throw new t(12,\"Element is not currently interactable and may not be manipula") - .append("ted\");}function se(a){re(a);if(!wc(a))throw new t(12,\"Element must be user-edita") - .append("ble in order to clear it.\");var b=te.Ba();Gc(b,a);Jc(b);a.value&&(a.value=\"\",Mc") - .append("(a,Rc));vc(a)&&(a.innerHTML=\" \")}\nfunction ue(a,b,c,d){function e(a){p(a)?s(a.s") - .append("plit(\"\"),function(a){if(1!=a.length)throw new t(13,\"Argument not a single chara") - .append("cter: \"+a);var b=kd[a];b||(b=a.toUpperCase(),b=W(b.charCodeAt(0),a.toLowerCase(),") - .append("b),b={key:b,shift:a!=b.A});a=b;b=f.g(X);a.shift&&!b&&le(f,X);le(f,a.key);pe(f,a.ke") - .append("y);a.shift&&!b&&pe(f,X)}):ua(ie,a)?f.g(a)?pe(f,a):le(f,a):(le(f,a),pe(f,a))}a!=fb(") - .append("w(a))&&(re(a),ve(a));var f=c||new id;qe(f,a);if(\"date\"==a.type){c=\"array\"==ba(") - .append("b)?b=b.join(\"\"):b;var h=/\\d{4}-\\d{2}-\\d{2}/;if(c.match(h)){Mc(a,\nSc);a.value") - .append("=c.match(h)[0];Mc(a,Rc);Mc(a,Qc);return}}\"array\"==ba(b)?s(b,e):e(b);d||s(ie,func") - .append("tion(a){f.g(a)&&pe(f,a)})}function te(){Fc.call(this)}q(te,Fc);(function(){var a=t") - .append("e;a.Ba=function(){return a.na?a.na:a.na=new a}})();\nfunction ve(a){if(\"scroll\"=") - .append("=Ac(a,void 0)){if(a.scrollIntoView&&(a.scrollIntoView(),\"none\"==Ac(a,void 0)))re") - .append("turn;for(var b=Dc(a,void 0),c=R(a);c;c=R(c)){var d=c,e=zc(d),f,h=d,m=f=void 0,u=vo") - .append("id 0,P=void 0,P=rc(h,\"borderLeftWidth\"),u=rc(h,\"borderRightWidth\"),m=rc(h,\"bo") - .append("rderTopWidth\");f=rc(h,\"borderBottomWidth\");f=new qc(parseFloat(m),parseFloat(u)") - .append(",parseFloat(f),parseFloat(P));h=b.left-e.left-f.left;e=b.top-e.top-f.top;f=d.clien") - .append("tHeight+b.top-b.bottom;d.scrollLeft+=Math.min(h,Math.max(h-(d.clientWidth+\nb.left") - .append("-b.right),0));d.scrollTop+=Math.min(e,Math.max(e-f,0))}Ac(a,void 0)}};function Z(a") - .append(",b,c,d){function e(){return{ra:f,keys:[]}}var f=!!d,h=[],m=e();h.push(m);s(b,funct") - .append("ion(a){s(a.split(\"\"),function(a){if(\"\\ue000\"<=a&&\"\\ue03d\">=a){var b=Z.a[a]") - .append(";if(null===b)h.push(m=e()),f&&(m.ra=!1,h.push(m=e()));else if(n(b))m.keys.push(b);") - .append("else throw Error(\"Unsupported WebDriver key: \\\\u\"+a.charCodeAt(0).toString(16)") - .append(");}else switch(a){case \"\\n\":m.keys.push(od);break;case \"\\t\":m.keys.push(nd);") - .append("break;case \"\\b\":m.keys.push(md);break;default:m.keys.push(a)}})});s(h,function(") - .append("b){ue(a,b.keys,c,b.ra)})}\nZ.a={};Z.a[\"\\ue000\"]=null;Z.a[\"\\ue003\"]=md;Z.a[\"") - .append("\\ue004\"]=nd;Z.a[\"\\ue006\"]=od;Z.a[\"\\ue007\"]=od;Z.a[\"\\ue008\"]=X;Z.a[\"\\u") - .append("e009\"]=pd;Z.a[\"\\ue00a\"]=qd;Z.a[\"\\ue00b\"]=rd;Z.a[\"\\ue00c\"]=sd;Z.a[\"\\ue0") - .append("0d\"]=td;Z.a[\"\\ue00e\"]=ud;Z.a[\"\\ue00f\"]=vd;Z.a[\"\\ue010\"]=wd;Z.a[\"\\ue011") - .append("\"]=xd;Z.a[\"\\ue012\"]=yd;Z.a[\"\\ue013\"]=zd;Z.a[\"\\ue014\"]=Ad;Z.a[\"\\ue015\"") - .append("]=Bd;Z.a[\"\\ue016\"]=Cd;Z.a[\"\\ue017\"]=Dd;Z.a[\"\\ue018\"]=he;Z.a[\"\\ue019\"]=") - .append("fe;Z.a[\"\\ue01a\"]=Fd;Z.a[\"\\ue01b\"]=Gd;Z.a[\"\\ue01c\"]=Hd;Z.a[\"\\ue01d\"]=Id") - .append(";Z.a[\"\\ue01e\"]=Jd;Z.a[\"\\ue01f\"]=Kd;\nZ.a[\"\\ue020\"]=Ld;Z.a[\"\\ue021\"]=Md") - .append(";Z.a[\"\\ue022\"]=Nd;Z.a[\"\\ue023\"]=Od;Z.a[\"\\ue024\"]=Pd;Z.a[\"\\ue025\"]=Qd;Z") - .append(".a[\"\\ue027\"]=Rd;Z.a[\"\\ue028\"]=Sd;Z.a[\"\\ue029\"]=Td;Z.a[\"\\ue026\"]=ge;Z.a") - .append("[\"\\ue031\"]=Ud;Z.a[\"\\ue032\"]=Vd;Z.a[\"\\ue033\"]=Wd;Z.a[\"\\ue034\"]=Xd;Z.a[") - .append("\"\\ue035\"]=Yd;Z.a[\"\\ue036\"]=Zd;Z.a[\"\\ue037\"]=$d;Z.a[\"\\ue038\"]=ae;Z.a[\"") - .append("\\ue039\"]=be;Z.a[\"\\ue03a\"]=ce;Z.a[\"\\ue03b\"]=de;Z.a[\"\\ue03c\"]=ee;Z.a[\"") - .append("\\ue03d\"]=Ed;function we(){this.R=void 0}\nfunction xe(a,b,c){switch(typeof b){ca") - .append("se \"string\":ye(b,c);break;case \"number\":c.push(isFinite(b)&&!isNaN(b)?b:\"null") - .append("\");break;case \"boolean\":c.push(b);break;case \"undefined\":c.push(\"null\");bre") - .append("ak;case \"object\":if(null==b){c.push(\"null\");break}if(\"array\"==ba(b)){var d=b") - .append(".length;c.push(\"[\");for(var e=\"\",f=0;fb?e+=\"000") - .append("\":256>b?e+=\"00\":4096>b&&(e+=\"0\");return ze[a]=e+b.toString(16)}),'\"')};funct") - .append("ion Be(a){switch(ba(a)){case \"string\":case \"number\":case \"boolean\":return a;") - .append("case \"function\":return a.toString();case \"array\":return qa(a,Be);case \"object") - .append("\":if(\"nodeType\"in a&&(1==a.nodeType||9==a.nodeType)){var b={};b.ELEMENT=Ce(a);r") - .append("eturn b}if(\"document\"in a)return b={},b.WINDOW=Ce(a),b;if(ca(a))return qa(a,Be);") - .append("a=Ua(a,function(a,b){return\"number\"==typeof b||p(b)});return Va(a,Be);default:re") - .append("turn null}}\nfunction De(a,b){return\"array\"==ba(a)?qa(a,function(a){return De(a,") - .append("b)}):ea(a)?\"function\"==typeof a?a:\"ELEMENT\"in a?Ee(a.ELEMENT,b):\"WINDOW\"in a") - .append("?Ee(a.WINDOW,b):Va(a,function(a){return De(a,b)}):a}function Fe(a){a=a||document;v") - .append("ar b=a.$wdc_;b||(b=a.$wdc_={},b.aa=la());b.aa||(b.aa=la());return b}function Ce(a)") - .append("{var b=Fe(a.ownerDocument),c=Xa(b,function(b){return b==a});c||(c=\":wdc:\"+b.aa++") - .append(",b[c]=a);return c}\nfunction Ee(a,b){a=decodeURIComponent(a);var c=b||document,d=F") - .append("e(c);if(!(a in d))throw new t(10,\"Element does not exist in cache\");var e=d[a];i") - .append("f(\"setInterval\"in e){if(e.closed)throw delete d[a],new t(23,\"Window has been cl") - .append("osed.\");return e}for(var f=e;f;){if(f==c.documentElement)return e;f=f.parentNode}") - .append("delete d[a];throw new t(10,\"Element is no longer attached to the DOM\");};functio") - .append("n Ge(a){var b=se;a=[a];var c=window||ma,d;try{var b=p(b)?new c.Function(b):c==wind") - .append("ow?b:new c.Function(\"return (\"+b+\").apply(null,arguments);\"),e=De(a,c.document") - .append("),f=b.apply(null,e);d={status:0,value:Be(f)}}catch(h){d={status:\"code\"in h?h.cod") - .append("e:13,value:{message:h.message}}}b=[];xe(new we,d,b);return b.join(\"\")}var He=[\"") - .append("_\"],$=aa;He[0]in $||!$.execScript||$.execScript(\"var \"+He[0]);for(var Ie;He.len") - .append("gth&&(Ie=He.shift());)He.length||void 0===Ge?$=$[Ie]?$[Ie]:$[Ie]={}:$[Ie]=Ge;; ret") - .append("urn this._.apply(null,arguments);}.apply({navigator:typeof window!=undefined?windo") - .append("w.navigator:null,document:typeof window!=undefined?window.document:null}, argument") - .append("s);}") - .toString()), - - CLEAR_LOCAL_STORAGE(new StringBuilder() - .append("function(){return function(){var k=this;\nfunction l(a){var b=typeof a;if(\"object") - .append("\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)return b;") - .append("var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"object\"") - .append(";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typeof a.sp") - .append("lice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"spli") - .append("ce\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a.call&&") - .append("\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"call\"))re") - .append("turn\"function\"}else return\"null\";else if(\"function\"==\nb&&\"undefined\"==typ") - .append("eof a.call)return\"object\";return b}function n(a){var b=l(a);return\"array\"==b||") - .append("\"object\"==b&&\"number\"==typeof a.length}function p(a){var b=typeof a;return\"ob") - .append("ject\"==b&&null!=a||\"function\"==b}var q=Date.now||function(){return+new Date};va") - .append("r r=window;function s(a,b){this.code=a;this.state=t[a]||u;this.message=b||\"\";var") - .append(" c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().repl") - .append("ace(/^[\\s\\xa0]+/g,\"\")}),e=c.length-5;if(0>e||c.indexOf(\"Error\",e)!=e)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;s.d=a.prototype;s.pr") - .append("ototype=new b})();\nvar u=\"unknown error\",t={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};t[13]=u;t[9]=\"unknown command\";s.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function v(){return k.navigator?k.navigator.u") - .append("serAgent:null}var w=k.navigator,x=-1!=(w&&w.platform||\"\").indexOf(\"Win\");funct") - .append("ion y(a){return(a=a.exec(v()))?a[1]:\"\"}y(/Android\\s+([0-9.]+)/)||y(/Version\\/(") - .append("[0-9.]+)/);function z(a){var b=0,c=String(A).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,") - .append("\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\"") - .append(".\");for(var e=Math.max(c.length,a.length),d=0;0==b&&d(0==h[1].length?\n0:") - .append("parseInt(h[1],10))?1:0)||((0==g[2].length)<(0==h[2].length)?-1:(0==g[2].length)>(0") - .append("==h[2].length)?1:0)||(g[2]h[2]?1:0)}while(0==b)}return 0<=b}var B=/A") - .append("ndroid\\s+([0-9\\.]+)/.exec(v()),A=B?B[1]:\"0\";z(2.3);z(4);function C(){this.a=vo") - .append("id 0}\nfunction D(a,b,c){switch(typeof b){case \"string\":E(b,c);break;case \"numb") - .append("er\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);br") - .append("eak;case \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(") - .append("\"null\");break}if(\"array\"==l(b)){var e=b.length;c.push(\"[\");for(var d=\"\",f=") - .append("0;fb?d+=\"000\":256>b?d+=\"00\":4096>b&&(d+=\"0\");return F[a]=") - .append("d+b.toString(16)}),'\"')};function H(a,b){for(var c=a.length,e=Array(c),d=\"string") - .append("\"==typeof a?a.split(\"\"):a,f=0;fe||c.indexOf(\"Error\",e)!=e)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;s.d=a.prototype;s.pr") - .append("ototype=new b})();\nvar u=\"unknown error\",t={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};t[13]=u;t[9]=\"unknown command\";s.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function v(){return k.navigator?k.navigator.u") - .append("serAgent:null}var w=k.navigator,x=-1!=(w&&w.platform||\"\").indexOf(\"Win\");funct") - .append("ion y(a){return(a=a.exec(v()))?a[1]:\"\"}y(/Android\\s+([0-9.]+)/)||y(/Version\\/(") - .append("[0-9.]+)/);function z(a){var b=0,c=String(A).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,") - .append("\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\"") - .append(".\");for(var e=Math.max(c.length,a.length),d=0;0==b&&d(0==h[1].length?\n0:") - .append("parseInt(h[1],10))?1:0)||((0==g[2].length)<(0==h[2].length)?-1:(0==g[2].length)>(0") - .append("==h[2].length)?1:0)||(g[2]h[2]?1:0)}while(0==b)}return 0<=b}var B=/A") - .append("ndroid\\s+([0-9\\.]+)/.exec(v()),A=B?B[1]:\"0\";z(2.3);z(4);function C(){this.a=vo") - .append("id 0}\nfunction D(a,b,c){switch(typeof b){case \"string\":E(b,c);break;case \"numb") - .append("er\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);br") - .append("eak;case \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(") - .append("\"null\");break}if(\"array\"==l(b)){var e=b.length;c.push(\"[\");for(var d=\"\",f=") - .append("0;fb?d+=\"000\":256>b?d+=\"00\":4096>b&&(d+=\"0\");return F[a]=") - .append("d+b.toString(16)}),'\"')};function H(a,b){for(var c=a.length,e=Array(c),d=\"string") - .append("\"==typeof a?a.split(\"\"):a,f=0;f>>0),ia=0;function ja(a,b,c){return a.") - .append("call.apply(a.bind,arguments)}\nfunction ka(a,b,c){if(!a)throw Error();if(2(0==r[1].length?\n0:parseInt(r[1],10))?1:0)||((0==w[2].le") - .append("ngth)<(0==r[2].length)?-1:(0==w[2].length)>(0==r[2].length)?1:0)||(w[2]r[2]?1:0)}while(0==c)}return c}function pa(a){return String(a).replace(/\\-([a-") - .append("z])/g,function(a,c){return c.toUpperCase()})};var qa=Array.prototype;function q(a,") - .append("b,c){for(var d=a.length,e=n(a)?a.split(\"\"):a,f=0;f=arguments.leng") - .append("th?qa.slice.call(a,b):qa.slice.call(a,b,c)};var ya={aliceblue:\"#f0f8ff\",antiquew") - .append("hite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:") - .append("\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:") - .append("\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetbl") - .append("ue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",corn") - .append("flowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",d") - .append("arkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a") - .append("9a9\",darkgreen:\"#006400\",\ndarkgrey:\"#a9a9a9\",darkkhaki:\"#bdb76b\",darkmagen") - .append("ta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#993") - .append("2cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslat") - .append("eblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquois") - .append("e:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",") - .append("dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222") - .append("\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:") - .append("\"#dcdcdc\",\nghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:") - .append("\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",grey:\"#808080\",honeydew:\"") - .append("#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#ff") - .append("fff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:") - .append("\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",") - .append("lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",light") - .append("green:\"#90ee90\",lightgrey:\"#d3d3d3\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07") - .append("a\",\nlightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899") - .append("\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",l") - .append("ime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon") - .append(":\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#b") - .append("a55d3\",mediumpurple:\"#9370db\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b6") - .append("8ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"") - .append("#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",\nm") - .append("occasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",o") - .append("live:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",or") - .append("chid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#") - .append("afeeee\",palevioletred:\"#db7093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",pe") - .append("ru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#") - .append("800080\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:") - .append("\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",\nseash") - .append("ell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblu") - .append("e:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springg") - .append("reen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"") - .append("#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5d") - .append("eb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9") - .append("acd32\"};var za=\"background-color border-top-color border-right-color border-bott") - .append("om-color border-left-color color outline-color\".split(\" \"),Aa=/#([0-9a-fA-F])([") - .append("0-9a-fA-F])([0-9a-fA-F])/;function Ba(a){if(!Ca.test(a))throw Error(\"'\"+a+\"' is") - .append(" not a valid hex color\");4==a.length&&(a=a.replace(Aa,\"#$1$1$2$2$3$3\"));return ") - .append("a.toLowerCase()}var Ca=/^#(?:[0-9a-f]{3}){1,2}$/i,Da=/^(?:rgba)?\\((\\d{1,3}),\\s?") - .append("(\\d{1,3}),\\s?(\\d{1,3}),\\s?(0|1|0\\.\\d*)\\)$/i;\nfunction Ea(a){var b=a.match(") - .append("Da);if(b){a=Number(b[1]);var c=Number(b[2]),d=Number(b[3]),b=Number(b[4]);if(0<=a&") - .append("&255>=a&&0<=c&&255>=c&&0<=d&&255>=d&&0<=b&&1>=b)return[a,c,d,b]}return[]}var Fa=/^") - .append("(?:rgb)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2})\\)$/i;fun") - .append("ction Ga(a){var b=a.match(Fa);if(b){a=Number(b[1]);var c=Number(b[2]),b=Number(b[3") - .append("]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=b&&255>=b)return[a,c,b]}return[]};function s(") - .append("a,b){this.code=a;this.state=Ha[a]||Ia;this.message=b||\"\";var c=this.state.replac") - .append("e(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,") - .append("\"\")}),d=c.length-5;if(0>d||c.indexOf(\"Error\",d)!=d)c+=\"Error\";this.name=c;c=") - .append("Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}p(s,Error);\nvar Ia=") - .append("\"unknown error\",Ha={15:\"element not selectable\",11:\"element not visible\",31:") - .append("\"ime engine activation failed\",30:\"ime not available\",24:\"invalid cookie doma") - .append("in\",29:\"invalid element coordinates\",12:\"invalid element state\",32:\"invalid ") - .append("selector\",51:\"invalid selector\",52:\"invalid selector\",17:\"javascript error\"") - .append(",405:\"unsupported operation\",34:\"move target out of bounds\",27:\"no such alert") - .append("\",7:\"no such element\",8:\"no such frame\",23:\"no such window\",28:\"script tim") - .append("eout\",33:\"session not created\",10:\"stale element reference\",\n0:\"success\",2") - .append("1:\"timeout\",25:\"unable to set cookie\",26:\"unexpected alert open\"};Ha[13]=Ia;") - .append("Ha[9]=\"unknown command\";s.prototype.toString=function(){return this.name+\": \"+") - .append("this.message};var Ja,Ka;function La(){return ca.navigator?ca.navigator.userAgent:n") - .append("ull}var Ma,Na=ca.navigator;Ma=Na&&Na.platform||\"\";Ja=-1!=Ma.indexOf(\"Mac\");Ka=") - .append("-1!=Ma.indexOf(\"Win\");var Oa=-1!=Ma.indexOf(\"Linux\"),Pa,Qa=\"\",Ra=/WebKit\\/(") - .append("\\S+)/.exec(La());Pa=Qa=Ra?Ra[1]:\"\";var Sa={};function t(a,b){this.x=m(a)?a:0;th") - .append("is.y=m(b)?b:0}t.prototype.toString=function(){return\"(\"+this.x+\", \"+this.y+\")") - .append("\"};t.prototype.ceil=function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);") - .append("return this};t.prototype.floor=function(){this.x=Math.floor(this.x);this.y=Math.fl") - .append("oor(this.y);return this};t.prototype.round=function(){this.x=Math.round(this.x);th") - .append("is.y=Math.round(this.y);return this};function Ta(a,b){this.width=a;this.height=b}T") - .append("a.prototype.toString=function(){return\"(\"+this.width+\" x \"+this.height+\")\"};") - .append("Ta.prototype.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.cei") - .append("l(this.height);return this};Ta.prototype.floor=function(){this.width=Math.floor(th") - .append("is.width);this.height=Math.floor(this.height);return this};Ta.prototype.round=func") - .append("tion(){this.width=Math.round(this.width);this.height=Math.round(this.height);retur") - .append("n this};function Ua(a,b){var c={},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[d]=a[d]") - .append(");return c}function Va(a,b){var c={},d;for(d in a)c[d]=b.call(void 0,a[d],d,a);ret") - .append("urn c}function Wa(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b}function Xa(a,") - .append("b){for(var c in a)if(b.call(void 0,a[c],c,a))return c};var Ya=3;function Za(a){for") - .append("(;a&&1!=a.nodeType;)a=a.previousSibling;return a}function $a(a,b){if(a.contains&&1") - .append("==b.nodeType)return a==b||a.contains(b);if(\"undefined\"!=typeof a.compareDocument") - .append("Position)return a==b||Boolean(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.p") - .append("arentNode;return b==a}\nfunction ab(a,b){if(a==b)return 0;if(a.compareDocumentPosi") - .append("tion)return a.compareDocumentPosition(b)&2?1:-1;if(\"sourceIndex\"in a||a.parentNo") - .append("de&&\"sourceIndex\"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)re") - .append("turn a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e==f?bb(") - .append("a,b):!c&&$a(e,b)?-1*cb(a,b):!d&&$a(f,a)?cb(b,a):(c?a.sourceIndex:e.sourceIndex)-(d") - .append("?b.sourceIndex:f.sourceIndex)}d=v(a);c=d.createRange();c.selectNode(a);c.collapse(") - .append("!0);d=d.createRange();d.selectNode(b);\nd.collapse(!0);return c.compareBoundaryPoi") - .append("nts(ca.Range.START_TO_END,d)}function cb(a,b){var c=a.parentNode;if(c==b)return-1;") - .append("for(var d=b;d.parentNode!=c;)d=d.parentNode;return bb(d,a)}function bb(a,b){for(va") - .append("r c=b;c=c.previousSibling;)if(c==a)return-1;return 1}function v(a){return 9==a.nod") - .append("eType?a:a.ownerDocument||a.document}function db(a,b,c){c||(a=a.parentNode);for(c=0") - .append(";a;){if(b(a))return a;a=a.parentNode;c++}return null}function eb(a){try{return a&&") - .append("a.activeElement}catch(b){}return null}\nfunction fb(a){this.ra=a||ca.document||doc") - .append("ument}fb.prototype.c=function(a){return n(a)?this.ra.getElementById(a):a};fb.proto") - .append("type.contains=$a;function gb(a,b,c){this.s=a;this.Oa=b||1;this.r=c||1};function hb") - .append("(a){this.oa=a;this.V=0}function ib(a){a=a.match(kb);for(var b=0;b]=|\\\\s+|.\",\"g\"),lb=/^\\s/;function x") - .append("(a,b){return a.oa[a.V+(b||0)]}hb.prototype.next=function(){return this.oa[this.V++") - .append("]};hb.prototype.back=function(){this.V--};hb.prototype.empty=function(){return thi") - .append("s.oa.length<=this.V};function y(a){var b=null,c=a.nodeType;1==c&&(b=a.textContent,") - .append("b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?\"\":b);if(\"string\"!=typ") - .append("eof b)if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;for(var c=0,d=[],b=\"\"") - .append(";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c++]=a;while(a=a.firstChild);for(;c&&!(a") - .append("=d[--c].nextSibling););}}else b=a.nodeValue;return\"\"+b}\nfunction mb(a,b,c){if(n") - .append("ull===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!1}return null==c?") - .append("!!a.getAttribute(b):a.getAttribute(b,2)==c}function nb(a,b,c,d,e){return ob.call(n") - .append("ull,a,b,n(c)?c:null,n(d)?d:null,e||new z)}\nfunction ob(a,b,c,d,e){b.getElementsBy") - .append("Name&&d&&\"name\"==c?(b=b.getElementsByName(d),q(b,function(b){a.matches(b)&&e.add") - .append("(b)})):b.getElementsByClassName&&d&&\"class\"==c?(b=b.getElementsByClassName(d),q(") - .append("b,function(b){b.className==d&&a.matches(b)&&e.add(b)})):a instanceof A?pb(a,b,c,d,") - .append("e):b.getElementsByTagName&&(b=b.getElementsByTagName(a.getName()),q(b,function(a){") - .append("mb(a,c,d)&&e.add(a)}));return e}function qb(a,b,c,d,e){for(b=b.firstChild;b;b=b.ne") - .append("xtSibling)mb(b,c,d)&&a.matches(b)&&e.add(b);return e}\nfunction pb(a,b,c,d,e){for(") - .append("b=b.firstChild;b;b=b.nextSibling)mb(b,c,d)&&a.matches(b)&&e.add(b),pb(a,b,c,d,e)};") - .append("function z(){this.r=this.l=null;this.N=0}function rb(a){this.H=a;this.next=this.G=") - .append("null}function sb(a,b){if(!a.l)return b;if(!b.l)return a;for(var c=a.l,d=b.l,e=null") - .append(",f=null,h=0;c&&d;)c.H==d.H?(f=c,c=c.next,d=d.next):0\",4,2,function(a,") - .append("b,c){return Bb(function(a,b){return a>b},a,b,c)});G(\"<=\",4,2,function(a,b,c){ret") - .append("urn Bb(function(a,b){return a<=b},a,b,c)});G(\">=\",4,2,function(a,b,c){return Bb(") - .append("function(a,b){return a>=b},a,b,c)});var Ab=G(\"=\",3,2,function(a,b,c){return Bb(f") - .append("unction(a,b){return a==b},a,b,c,!0)});G(\"!=\",3,2,function(a,b,c){return Bb(funct") - .append("ion(a,b){return a!=b},a,b,c,!0)});G(\"and\",2,2,function(a,b,c){return yb(a,c)&&yb") - .append("(b,c)});G(\"or\",1,2,function(a,b,c){return yb(a,c)||yb(b,c)});function Eb(a,b){if") - .append("(b.v()&&4!=a.k)throw Error(\"Primary expression must evaluate to nodeset if filter") - .append(" has predicate(s).\");C.call(this,a.k);this.Aa=a;this.g=b;this.w=a.i();this.n=a.n}") - .append("p(Eb,C);Eb.prototype.evaluate=function(a){a=this.Aa.evaluate(a);return Fb(this.g,a") - .append(")};Eb.prototype.toString=function(){var a;a=\"Filter:\"+D(this.Aa);return a+=D(thi") - .append("s.g)};function Gb(a,b){if(b.lengtha.ja") - .append(")throw Error(\"Function \"+a.p+\" expects at most \"+a.ja+\" arguments, \"+b.lengt") - .append("h+\" given\");a.La&&q(b,function(b,d){if(4!=b.k)throw Error(\"Argument \"+d+\" to ") - .append("function \"+a.p+\" is not of type Nodeset: \"+b);});C.call(this,a.k);this.U=a;this") - .append(".aa=b;wb(this,a.w||ta(b,function(a){return a.i()}));xb(this,a.Ja&&!b.length||a.Ia&") - .append("&!!b.length||ta(b,function(a){return a.n}))}\np(Gb,C);Gb.prototype.evaluate=functi") - .append("on(a){return this.U.u.apply(null,wa(a,this.aa))};Gb.prototype.toString=function(){") - .append("var a=\"Function: \"+this.U;if(this.aa.length)var b=sa(this.aa,function(a,b){retur") - .append("n a+D(b)},\"Arguments:\"),a=a+D(b);return a};function Hb(a,b,c,d,e,f,h,l,u){this.p") - .append("=a;this.k=b;this.w=c;this.Ja=d;this.Ia=e;this.u=f;this.xa=h;this.ja=m(l)?l:h;this.") - .append("La=!!u}Hb.prototype.toString=g(\"p\");var Ib={};\nfunction H(a,b,c,d,e,f,h,l){if(a") - .append(" in Ib)throw Error(\"Function already created: \"+a+\".\");Ib[a]=new Hb(a,b,c,d,!1") - .append(",e,f,h,l)}H(\"boolean\",2,!1,!1,function(a,b){return yb(b,a)},1);H(\"ceiling\",1,!") - .append("1,!1,function(a,b){return Math.ceil(E(b,a))},1);H(\"concat\",3,!1,!1,function(a,b)") - .append("{var c=xa(arguments,1);return sa(c,function(b,c){return b+F(c,a)},\"\")},2,null);H") - .append("(\"contains\",2,!1,!1,function(a,b,c){b=F(b,a);a=F(c,a);return-1!=b.indexOf(a)},2)") - .append(";H(\"count\",1,!1,!1,function(a,b){return b.evaluate(a).v()},1,1,!0);\nH(\"false\"") - .append(",2,!1,!1,aa(!1),0);H(\"floor\",1,!1,!1,function(a,b){return Math.floor(E(b,a))},1)") - .append(";H(\"id\",4,!1,!1,function(a,b){var c=a.s,d=9==c.nodeType?c:c.ownerDocument,c=F(b,") - .append("a).split(/\\s+/),e=[];q(c,function(a){(a=d.getElementById(a))&&!va(e,a)&&e.push(a)") - .append("});e.sort(ab);var f=new z;q(e,function(a){f.add(a)});return f},1);H(\"lang\",2,!1,") - .append("!1,aa(!1),1);H(\"last\",1,!0,!1,function(a){if(1!=arguments.length)throw Error(\"F") - .append("unction last expects ()\");return a.r},0);\nH(\"local-name\",3,!1,!0,function(a,b)") - .append("{var c=b?tb(b.evaluate(a)):a.s;return c?c.nodeName.toLowerCase():\"\"},0,1,!0);H(") - .append("\"name\",3,!1,!0,function(a,b){var c=b?tb(b.evaluate(a)):a.s;return c?c.nodeName.t") - .append("oLowerCase():\"\"},0,1,!0);H(\"namespace-uri\",3,!0,!1,aa(\"\"),0,1,!0);H(\"normal") - .append("ize-space\",3,!1,!0,function(a,b){return(b?F(b,a):y(a.s)).replace(/[\\s\\xa0]+/g,") - .append("\" \").replace(/^\\s+|\\s+$/g,\"\")},0,1);H(\"not\",2,!1,!1,function(a,b){return!y") - .append("b(b,a)},1);H(\"number\",1,!1,!0,function(a,b){return b?E(b,a):+y(a.s)},0,1);\nH(\"") - .append("position\",1,!0,!1,function(a){return a.Oa},0);H(\"round\",1,!1,!1,function(a,b){r") - .append("eturn Math.round(E(b,a))},1);H(\"starts-with\",2,!1,!1,function(a,b,c){b=F(b,a);a=") - .append("F(c,a);return 0==b.lastIndexOf(a,0)},2);H(\"string\",3,!1,!0,function(a,b){return ") - .append("b?F(b,a):y(a.s)},0,1);H(\"string-length\",1,!1,!0,function(a,b){return(b?F(b,a):y(") - .append("a.s)).length},0,1);\nH(\"substring\",3,!1,!1,function(a,b,c,d){c=E(c,a);if(isNaN(c") - .append(")||Infinity==c||-Infinity==c)return\"\";d=d?E(d,a):Infinity;if(isNaN(d)||-Infinity") - .append("===d)return\"\";c=Math.round(c)-1;var e=Math.max(c,0);a=F(b,a);if(Infinity==d)retu") - .append("rn a.substring(e);b=Math.round(d);return a.substring(e,c+b)},2,3);H(\"substring-af") - .append("ter\",3,!1,!1,function(a,b,c){b=F(b,a);a=F(c,a);c=b.indexOf(a);return-1==c?\"\":b.") - .append("substring(c+a.length)},2);\nH(\"substring-before\",3,!1,!1,function(a,b,c){b=F(b,a") - .append(");a=F(c,a);a=b.indexOf(a);return-1==a?\"\":b.substring(0,a)},2);H(\"sum\",1,!1,!1,") - .append("function(a,b){for(var c=B(b.evaluate(a)),d=0,e=c.next();e;e=c.next())d+=+y(e);retu") - .append("rn d},1,1,!0);H(\"translate\",3,!1,!1,function(a,b,c,d){b=F(b,a);c=F(c,a);var e=F(") - .append("d,a);a=[];for(d=0;da.length)thro") - .append("w Error(\"Unclosed literal string\");return new Kb(a)}function hc(a){var b=a.b.nex") - .append("t(),c=b.indexOf(\":\");if(-1==c)return new Lb(b);var d=b.substring(0,c);a=a.Ma(d);") - .append("if(!a)throw Error(\"Namespace prefix not declared: \"+d);b=b.substr(c+1);return ne") - .append("w Lb(b,a)}\nfunction ic(a){var b,c=[],d;if(\"/\"==x(a.b)||\"//\"==x(a.b)){b=a.b.ne") - .append("xt();d=x(a.b);if(\"/\"==b&&(a.b.empty()||\".\"!=d&&\"..\"!=d&&\"@\"!=d&&\"*\"!=d&&") - .append("!/(?![0-9])[\\w]/.test(d)))return new Pb;d=new Pb;L(a,\"Missing next location step") - .append(".\");b=jc(a,b);c.push(b)}else{a:{b=x(a.b);d=b.charAt(0);switch(d){case \"$\":throw") - .append(" Error(\"Variable reference not allowed in HTML XPath\");case \"(\":a.b.next();b=c") - .append("c(a);L(a,'unclosed \"(\"');ec(a,\")\");break;case '\"':case \"'\":b=gc(a);break;de") - .append("fault:if(isNaN(+b))if(!Jb(b)&&/(?![0-9])[\\w]/.test(d)&&\n\"(\"==x(a.b,1)){b=a.b.n") - .append("ext();b=Ib[b]||null;a.b.next();for(d=[];\")\"!=x(a.b);){L(a,\"Missing function arg") - .append("ument list.\");d.push(cc(a));if(\",\"!=x(a.b))break;a.b.next()}L(a,\"Unclosed func") - .append("tion argument list.\");fc(a);b=new Gb(b,d)}else{b=null;break a}else b=new Mb(+a.b.") - .append("next())}\"[\"==x(a.b)&&(d=new Tb(kc(a)),b=new Eb(b,d))}if(b)if(\"/\"==x(a.b)||\"//") - .append("\"==x(a.b))d=b;else return b;else b=jc(a,\"/\"),d=new Qb,c.push(b)}for(;\"/\"==x(a") - .append(".b)||\"//\"==x(a.b);)b=a.b.next(),L(a,\"Missing next location step.\"),b=jc(a,b),c") - .append(".push(b);\nreturn new Nb(d,c)}\nfunction jc(a,b){var c,d,e;if(\"/\"!=b&&\"//\"!=b)") - .append("throw Error('Step op should be \"/\" or \"//\"');if(\".\"==x(a.b))return d=new J(Z") - .append("b,new A(\"node\")),a.b.next(),d;if(\"..\"==x(a.b))return d=new J(Yb,new A(\"node\"") - .append(")),a.b.next(),d;var f;if(\"@\"==x(a.b))f=Ob,a.b.next(),L(a,\"Missing attribute nam") - .append("e\");else if(\"::\"==x(a.b,1)){if(!/(?![0-9])[\\w]/.test(x(a.b).charAt(0)))throw E") - .append("rror(\"Bad token: \"+a.b.next());c=a.b.next();f=Xb[c]||null;if(!f)throw Error(\"No") - .append(" axis with name: \"+c);a.b.next();L(a,\"Missing node name\")}else f=Ub;\nc=x(a.b);") - .append("if(/(?![0-9])[\\w]/.test(c.charAt(0)))if(\"(\"==x(a.b,1)){if(!Jb(c))throw Error(\"") - .append("Invalid node type: \"+c);c=a.b.next();if(!Jb(c))throw Error(\"Invalid type name: ") - .append("\"+c);ec(a,\"(\");L(a,\"Bad nodetype\");e=x(a.b).charAt(0);var h=null;if('\"'==e||") - .append("\"'\"==e)h=gc(a);L(a,\"Bad nodetype\");fc(a);c=new A(c,h)}else c=hc(a);else if(\"*") - .append("\"==c)c=hc(a);else throw Error(\"Bad token: \"+a.b.next());e=new Tb(kc(a),f.I);ret") - .append("urn d||new J(f,c,e,\"//\"==b)}\nfunction kc(a){for(var b=[];\"[\"==x(a.b);){a.b.ne") - .append("xt();L(a,\"Missing predicate expression.\");var c=cc(a);b.push(c);L(a,\"Unclosed p") - .append("redicate expression.\");ec(a,\"]\")}return b}function dc(a){if(\"-\"==x(a.b))retur") - .append("n a.b.next(),new $b(dc(a));var b=ic(a);if(\"|\"!=x(a.b))a=b;else{for(b=[b];\"|\"==") - .append("a.b.next();)L(a,\"Missing next union location path.\"),b.push(ic(a));a.b.back();a=") - .append("new ac(b)}return a};function lc(a,b){if(!a.length)throw Error(\"Empty XPath expres") - .append("sion.\");var c=ib(a);if(c.empty())throw Error(\"Invalid XPath expression.\");b?fa(") - .append("b)||(b=la(b.lookupNamespaceURI,b)):b=aa(null);var d=cc(new bc(c,b));if(!c.empty())") - .append("throw Error(\"Bad token: \"+c.next());this.evaluate=function(a,b){var c=d.evaluate") - .append("(new gb(a));return new M(c,b)}}\nfunction M(a,b){if(0==b)if(a instanceof z)b=4;els") - .append("e if(\"string\"==typeof a)b=2;else if(\"number\"==typeof a)b=1;else if(\"boolean\"") - .append("==typeof a)b=3;else throw Error(\"Unexpected evaluation result.\");if(2!=b&&1!=b&&") - .append("3!=b&&!(a instanceof z))throw Error(\"value could not be converted to the specifie") - .append("d type\");this.resultType=b;var c;switch(b){case 2:this.stringValue=a instanceof z") - .append("?ub(a):\"\"+a;break;case 1:this.numberValue=a instanceof z?+ub(a):+a;break;case 3:") - .append("this.booleanValue=a instanceof z?0=c.length?null:c[f++]};this.snapshotItem=function(a){if(6!=b&&7!=b)throw Er") - .append("ror(\"snapshotItem called with wrong result type\");return a>=c.length||0>a?null:c") - .append("[a]}}M.ANY_TYPE=0;\nM.NUMBER_TYPE=1;M.STRING_TYPE=2;M.BOOLEAN_TYPE=3;M.UNORDERED_N") - .append("ODE_ITERATOR_TYPE=4;M.ORDERED_NODE_ITERATOR_TYPE=5;M.UNORDERED_NODE_SNAPSHOT_TYPE=") - .append("6;M.ORDERED_NODE_SNAPSHOT_TYPE=7;M.ANY_UNORDERED_NODE_TYPE=8;M.FIRST_ORDERED_NODE_") - .append("TYPE=9;function mc(a){a=a||ca;var b=a.document;b.evaluate||(a.XPathResult=M,b.eval") - .append("uate=function(a,b,e,f){return(new lc(a,e)).evaluate(b,f)},b.createExpression=funct") - .append("ion(a,b){return new lc(a,b)})};var N={};N.Ga=function(){var a={Ya:\"http://www.w3.") - .append("org/2000/svg\"};return function(b){return a[b]||null}}();N.u=function(a,b,c){var d") - .append("=v(a);mc(d?d.parentWindow||d.defaultView:window);try{var e=d.createNSResolver?d.cr") - .append("eateNSResolver(d.documentElement):N.Ga;return d.evaluate(b,a,e,c,null)}catch(f){th") - .append("row new s(32,\"Unable to locate an element with the xpath expression \"+b+\" becau") - .append("se of the following error:\\n\"+f);}};\nN.pa=function(a,b){if(!a||1!=a.nodeType)th") - .append("row new s(32,'The result of the xpath expression \"'+b+'\" is: '+a+\". It should b") - .append("e an element.\");};N.Qa=function(a,b){var c=function(){var c=N.u(b,a,9);return c?c") - .append(".singleNodeValue||null:b.selectSingleNode?(c=v(b),c.setProperty&&c.setProperty(\"S") - .append("electionLanguage\",\"XPath\"),b.selectSingleNode(a)):null}();null===c||N.pa(c,a);r") - .append("eturn c};\nN.Va=function(a,b){var c=function(){var c=N.u(b,a,7);if(c){for(var e=c.") - .append("snapshotLength,f=[],h=0;h=this.left&&a.right<=this.right&&a.top>=this.top&&a.bottom<=this.bottom:a") - .append(".x>=this.left&&a.x<=this.right&&a.y>=this.top&&a.y<=this.bottom:!1};\nk.ceil=funct") - .append("ion(){this.top=Math.ceil(this.top);this.right=Math.ceil(this.right);this.bottom=Ma") - .append("th.ceil(this.bottom);this.left=Math.ceil(this.left);return this};k.floor=function(") - .append("){this.top=Math.floor(this.top);this.right=Math.floor(this.right);this.bottom=Math") - .append(".floor(this.bottom);this.left=Math.floor(this.left);return this};k.round=function(") - .append("){this.top=Math.round(this.top);this.right=Math.round(this.right);this.bottom=Math") - .append(".round(this.bottom);this.left=Math.round(this.left);return this};function O(a,b,c,") - .append("d){this.left=a;this.top=b;this.width=c;this.height=d}k=O.prototype;k.toString=func") - .append("tion(){return\"(\"+this.left+\", \"+this.top+\" - \"+this.width+\"w x \"+this.heig") - .append("ht+\"h)\"};k.contains=function(a){return a instanceof O?this.left<=a.left&&this.le") - .append("ft+this.width>=a.left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.heig") - .append("ht:a.x>=this.left&&a.x<=this.left+this.width&&a.y>=this.top&&a.y<=this.top+this.he") - .append("ight};\nk.ceil=function(){this.left=Math.ceil(this.left);this.top=Math.ceil(this.t") - .append("op);this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return thi") - .append("s};k.floor=function(){this.left=Math.floor(this.left);this.top=Math.floor(this.top") - .append(");this.width=Math.floor(this.width);this.height=Math.floor(this.height);return thi") - .append("s};k.round=function(){this.left=Math.round(this.left);this.top=Math.round(this.top") - .append(");this.width=Math.round(this.width);this.height=Math.round(this.height);return thi") - .append("s};function rc(a,b){var c=v(a);return c.defaultView&&c.defaultView.getComputedStyl") - .append("e&&(c=c.defaultView.getComputedStyle(a,null))?c[b]||c.getPropertyValue(b)||\"\":\"") - .append("\"}function sc(a){var b=a.offsetWidth,c=a.offsetHeight;if((!m(b)||!b&&!c)&&a.getBo") - .append("undingClientRect){a:{var d;try{d=a.getBoundingClientRect()}catch(e){a={left:0,top:") - .append("0,right:0,bottom:0};break a}a=d}return new Ta(a.right-a.left,a.bottom-a.top)}retur") - .append("n new Ta(b,c)};function P(a,b){return!!a&&1==a.nodeType&&(!b||a.tagName.toUpperCas") - .append("e()==b)}function tc(a){return uc(a,!0)&&vc(a)&&\"none\"!=Q(a,\"pointer-events\")}f") - .append("unction wc(a){return P(a,\"OPTION\")?!0:P(a,\"INPUT\")?(a=a.type.toLowerCase(),\"c") - .append("heckbox\"==a||\"radio\"==a):!1}function xc(a){if(!wc(a))throw new s(15,\"Element i") - .append("s not selectable\");var b=\"selected\",c=a.type&&a.type.toLowerCase();if(\"checkbo") - .append("x\"==c||\"radio\"==c)b=\"checked\";return!!a[b]}var yc=\"BUTTON INPUT OPTGROUP OPT") - .append("ION SELECT TEXTAREA\".split(\" \");\nfunction vc(a){var b=a.tagName.toUpperCase();") - .append("return va(yc,b)?a.disabled?!1:a.parentNode&&1==a.parentNode.nodeType&&\"OPTGROUP\"") - .append("==b||\"OPTION\"==b?vc(a.parentNode):!db(a,function(a){var b=a.parentNode;if(b&&P(b") - .append(",\"FIELDSET\")&&b.disabled){if(!P(a,\"LEGEND\"))return!0;for(;a=void 0!=a.previous") - .append("ElementSibling?a.previousElementSibling:Za(a.previousSibling);)if(P(a,\"LEGEND\"))") - .append("return!0}return!1},!0):!0}var zc=\"text search tel url email password number\".spl") - .append("it(\" \");\nfunction Ac(a){return P(a,\"TEXTAREA\")?!0:P(a,\"INPUT\")?va(zc,a.type") - .append(".toLowerCase()):Bc(a)?!0:!1}function Bc(a){function b(a){return\"inherit\"==a.cont") - .append("entEditable?(a=Cc(a))?b(a):!1:\"true\"==a.contentEditable}return m(a.contentEditab") - .append("le)?m(a.isContentEditable)?a.isContentEditable:b(a):!1}function Cc(a){for(a=a.pare") - .append("ntNode;a&&1!=a.nodeType&&9!=a.nodeType&&11!=a.nodeType;)a=a.parentNode;return P(a)") - .append("?a:null}\nfunction Q(a,b){var c=pa(b);if(\"float\"==c||\"cssFloat\"==c||\"styleFlo") - .append("at\"==c)c=\"cssFloat\";c=rc(a,c)||Dc(a,c);if(null===c)c=null;else if(va(za,b)&&(Ca") - .append(".test(\"#\"==c.charAt(0)?c:\"#\"+c)||Ga(c).length||ya&&ya[c.toLowerCase()]||Ea(c).") - .append("length)){var d=Ea(c);if(!d.length){a:if(d=Ga(c),!d.length){d=(d=ya[c.toLowerCase()") - .append("])?d:\"#\"==c.charAt(0)?c:\"#\"+c;if(Ca.test(d)&&(d=Ba(d),d=Ba(d),d=[parseInt(d.su") - .append("bstr(1,2),16),parseInt(d.substr(3,2),16),parseInt(d.substr(5,2),16)],d.length))bre") - .append("ak a;d=[]}3==d.length&&d.push(1)}c=\n4!=d.length?c:\"rgba(\"+d.join(\", \")+\")\"}") - .append("return c}function Dc(a,b){var c=a.currentStyle||a.style,d=c[b];!m(d)&&fa(c.getProp") - .append("ertyValue)&&(d=c.getPropertyValue(b));return\"inherit\"!=d?m(d)?d:null:(c=Cc(a))?D") - .append("c(c,b):null}\nfunction uc(a,b){function c(a){if(\"none\"==Q(a,\"display\"))return!") - .append("1;a=Cc(a);return!a||c(a)}function d(a){var b=Ec(a);return 0=I.left+I.width;I=f.top>=I.top+I.height;if(ba&&\"hidden\"==r.x||I") - .append("&&\"hidden\"==r.y)return R;if(ba&&\"visible\"!=r.x||I&&\"visible\"!=r.y){if(V&&(r=") - .append("e(w),f.left>=l.scrollWidth-r.x||f.right>=l.scrollHeight-r.y))return R;f=Fc(w);retu") - .append("rn f==R?R:\"scroll\"}}}return\"none\"}\nfunction Ec(a){var b=Gc(a);if(b)return b.r") - .append("ect;if(P(a,\"HTML\"))return a=((v(a)?v(a).parentWindow||v(a).defaultView:window)||") - .append("window).document,a=\"CSS1Compat\"==a.compatMode?a.documentElement:a.body,a=new Ta(") - .append("a.clientWidth,a.clientHeight),new O(0,0,a.width,a.height);var c;try{c=a.getBoundin") - .append("gClientRect()}catch(d){return new O(0,0,0,0)}return new O(c.left,c.top,c.right-c.l") - .append("eft,c.bottom-c.top)}\nfunction Gc(a){var b=P(a,\"MAP\");if(!b&&!P(a,\"AREA\"))retu") - .append("rn null;var c=b?a:P(a.parentNode,\"MAP\")?a.parentNode:null,d=null,e=null;if(c&&c.") - .append("name&&(d=N.Qa('/descendant::*[@usemap = \"#'+c.name+'\"]',v(c)))&&(e=Ec(d),!b&&\"d") - .append("efault\"!=a.shape.toLowerCase())){var f=Jc(a);a=Math.min(Math.max(f.left,0),e.widt") - .append("h);b=Math.min(Math.max(f.top,0),e.height);c=Math.min(f.width,e.width-a);f=Math.min") - .append("(f.height,e.height-b);e=new O(a+e.left,b+e.top,c,f)}return{ua:d,rect:e||new O(0,0,") - .append("0,0)}}\nfunction Jc(a){var b=a.shape.toLowerCase();a=a.coords.split(\",\");if(\"re") - .append("ct\"==b&&4==a.length){var b=a[0],c=a[1];return new O(b,c,a[2]-b,a[3]-c)}if(\"circl") - .append("e\"==b&&3==a.length)return b=a[2],new O(a[0]-b,a[1]-b,2*b,2*b);if(\"poly\"==b&&22*this.L&&sd(this),!0):!1};\nfunction sd(a){if(a.L!=a.j") - .append(".length){for(var b=0,c=0;b\");X(191,\"/\",\"?\");X(1") - .append("92,\"`\",\"~\");X(219,\"[\",\"{\");X(220,\"\\\\\",\"|\");X(221,\"]\",\"}\");var xe") - .append("=X({e:59,d:186,opera:59},\";\",\":\");X(222,\"'\",'\"');var ye=[Gd,Fd,Ud,Y],ze=new") - .append(" rd;ze.set(1,Y);ze.set(2,Fd);ze.set(4,Gd);ze.set(8,Ud);\nvar Ae=function(a){var b=") - .append("new rd;q(td(a),function(c){b.set(a.get(c).code,c)});return b}(ze);function zd(a,b,") - .append("c){if(va(ye,b)){var d=Ae.get(b.code),e=a.O;e.X=c?e.X|d:e.X&~d}c?a.na.add(b):a.na.r") - .append("emove(b)}yd.prototype.f=function(a){return this.na.contains(a)};\nfunction Be(a,b)") - .append("{if(va(ye,b)&&a.f(b))throw new s(13,\"Cannot press a modifier key that is already ") - .append("pressed.\");var c=null!==b.code&&Ce(a,kd,b);if(c&&((!b.D&&b!=Ed||Ce(a,bd,b,!c))&&c") - .append(")&&(De(a,b),a.ea))if(b.D){var c=Ee(a,b),d=W(a.c(),!0)[0]+1;qd(a.c(),c);md(a.c(),d)") - .append(";a.F(gd);a.F(fd);a.o=d}else switch(b){case Ed:a.F(gd);P(a.c(),\"TEXTAREA\")&&(c=W(") - .append("a.c(),!0)[0]+1,qd(a.c(),\"\\n\"),md(a.c(),c),a.F(fd),a.o=c);break;case Cd:case Td:") - .append("c=W(a.c(),!1);c[0]==c[1]&&(b==Cd?(md(a.c(),c[1]-1),od(a.c(),c[1])):od(a.c(),c[1]+1") - .append("));\nc=W(a.c(),!1);c=!(c[0]==a.c().value.length||0==c[1]);qd(a.c(),\"\");c&&a.F(fd") - .append(");c=W(a.c(),!1);a.o=c[1];break;case Od:case Qd:var c=a.c(),e=W(c,!0)[0],f=W(c,!1)[") - .append("1],h=d=0;b==Od?a.f(Y)?a.o==e?(d=Math.max(e-1,0),h=f,e=d):(d=e,e=h=f-1):e=e==f?Math") - .append(".max(e-1,0):e:a.f(Y)?a.o==f?(d=e,e=h=Math.min(f+1,c.value.length)):(d=e+1,h=f,e=d)") - .append(":e=e==f?Math.min(f+1,c.value.length):f;a.f(Y)?(md(c,d),od(c,h)):pd(c,e);a.o=e;brea") - .append("k;case Nd:case Md:c=a.c(),d=W(c,!0)[0],h=W(c,!1)[1],b==Nd?(a.f(Y)?(md(c,0),od(c,a.") - .append("o==d?h:d)):pd(c,\n0),a.o=0):(a.f(Y)?(a.o==d&&md(c,h),od(c,c.value.length)):pd(c,c.") - .append("value.length),a.o=c.value.length)}zd(a,b,!0)}function De(a,b){if(b==Ed&&P(a.c(),\"") - .append("INPUT\")){var c=db(a.c(),Vc,!0);if(c){var d=c.getElementsByTagName(\"input\");!ta(") - .append("d,function(a){a:{if(P(a,\"INPUT\")){var b=a.type.toLowerCase();if(\"submit\"==b||") - .append("\"image\"==b){a=!0;break a}}if(P(a,\"BUTTON\")&&(b=a.type.toLowerCase(),\"submit\"") - .append("==b)){a=!0;break a}a=!1}return a})&&1!=d.length&&(Sa[534]||(Sa[534]=0<=oa(Pa,534))") - .append(")||Wc(c)}}}\nfunction Fe(a,b){if(!a.f(b))throw new s(13,\"Cannot release a key tha") - .append("t is not pressed. (\"+b.code+\")\");null===b.code||Ce(a,ld,b);zd(a,b,!1)}function ") - .append("Ee(a,b){if(!b.D)throw new s(13,\"not a character key\");return a.f(Y)?b.Pa:b.D}fun") - .append("ction Ce(a,b,c,d){if(null===c.code)throw new s(13,\"Key must have a keycode to be ") - .append("fired.\");c={altKey:a.f(Gd),ctrlKey:a.f(Fd),metaKey:a.f(Ud),shiftKey:a.f(Y),keyCod") - .append("e:c.code,charCode:c.D&&b==bd?Ee(a,c).charCodeAt(0):0,preventDefault:!!d};return a.") - .append("ga(b,c)}\nfunction Ge(a,b){Lc(a,b);a.ea=Ac(b)&&!b.readOnly;var c=Uc(a);a.ea&&c&&(p") - .append("d(b,b.value.length),a.o=b.value.length)};function He(a,b,c){Kc.call(this,b,c);this") - .append(".S=this.q=null;this.K=new t(0,0);this.ha=this.P=!1;if(a){this.q=a.Sa;try{P(a.Ha)&&") - .append("(this.S=a.Ha)}catch(d){this.q=null}this.K=a.Ta;this.P=a.Wa;this.ha=a.Ua;try{P(a.el") - .append("ement)&&Lc(this,a.element)}catch(e){this.q=null}}}p(He,Kc);var Z={};Z[Qc]=[0,1,2,n") - .append("ull];Z[hd]=[null,null,2,null];Z[Tc]=[0,1,2,null];Z[Pc]=[0,1,2,0];Z[jd]=[0,1,2,0];Z") - .append("[id]=Z[Qc];Z[Rc]=Z[Tc];Z[Oc]=Z[Pc];\nHe.prototype.move=function(a,b){var c=tc(a),d") - .append("=Ec(a);this.K.x=b.x+d.left;this.K.y=b.y+d.top;d=this.c();if(a!=d){try{(v(d)?v(d).p") - .append("arentWindow||v(d).defaultView:window).closed&&(d=null)}catch(e){d=null}if(d){var f") - .append("=d===na.document.documentElement||d===na.document.body,d=!this.ha&&f?null:d;Ie(thi") - .append("s,Pc,a)}Lc(this,a);Ie(this,Oc,d,null,c)}Ie(this,jd,null,null,c);this.P=!1};functio") - .append("n Ie(a,b,c,d,e){a.ha=!0;return a.T(b,a.K,Je(a,b),c,d,e)}\nfunction Je(a,b){if(!(b ") - .append("in Z))return 0;var c=Z[b][null===a.q?3:a.q];if(null===c)throw new s(13,\"Event doe") - .append("s not permit the specified mouse button.\");return c};function Ke(a,b){this.x=a;th") - .append("is.y=b}p(Ke,t);Ke.prototype.add=function(a){this.x+=a.x;this.y+=a.y;return this};f") - .append("unction Le(a,b,c,d){function e(a){n(a)?q(a.split(\"\"),function(a){if(1!=a.length)") - .append("throw new s(13,\"Argument not a single character: \"+a);var b=Ad[a];b||(b=a.toUppe") - .append("rCase(),b=X(b.charCodeAt(0),a.toLowerCase(),b),b={key:b,shift:a!=b.D});a=b;b=f.f(Y") - .append(");a.shift&&!b&&Be(f,Y);Be(f,a.key);Fe(f,a.key);a.shift&&!b&&Fe(f,Y)}):va(ye,a)?f.f") - .append("(a)?Fe(f,a):Be(f,a):(Be(f,a),Fe(f,a))}if(a!=eb(v(a))){if(!tc(a))throw new s(12,\"E") - .append("lement is not currently interactable and may not be manipulated\");Me(a)}var f=c||") - .append("new yd;Ge(f,a);\nif(\"date\"==a.type){c=\"array\"==da(b)?b=b.join(\"\"):b;var h=/") - .append("\\d{4}-\\d{2}-\\d{2}/;if(c.match(h)){Xc(a,ed);a.value=c.match(h)[0];Xc(a,dd);Xc(a,") - .append("cd);return}}\"array\"==da(b)?q(b,e):e(b);d||q(ye,function(a){f.f(a)&&Fe(f,a)})}\nf") - .append("unction Ne(a,b,c){if(!uc(a,!0))throw new s(11,\"Element is not currently visible a") - .append("nd may not be manipulated\");Me(a,b||void 0);b?b=new Ke(b.x,b.y):(b=Oe(a),b=new Ke") - .append("(b.width/2,b.height/2));c=c||new He;c.move(a,b);if(null!==c.q)throw new s(13,\"Can") - .append("not press more then one button or an already pressed button.\");c.q=0;c.S=c.c();(P") - .append("(c.c(),\"OPTION\")||P(c.c(),\"SELECT\")||Ie(c,Rc))&&Uc(c);if(null===c.q)throw new ") - .append("s(13,\"Cannot release a button when no button is pressed.\");c.A&&tc(c.h)&&(a=c.A,") - .append("b=xc(c.h),!b||a.multiple)&&\n(c.h.selected=!b,a.multiple&&!(0<=oa(oc,4))||Xc(a,dd)") - .append(");Ie(c,Tc);0==c.q&&c.c()==c.S?(a=c.K,b=Je(c,Qc),tc(c.h)&&(!c.A&&wc(c.h)&&xc(c.h),c") - .append(".T(Qc,a,b,null,0,!1,void 0)),c.P&&Ie(c,id),c.P=!c.P):2==c.q&&Ie(c,hd);Sc={};c.q=nu") - .append("ll;c.S=null}\nfunction Oe(a){var b;if(\"none\"!=(rc(a,\"display\")||(a.currentStyl") - .append("e?a.currentStyle.display:null)||a.style&&a.style.display))b=sc(a);else{b=a.style;v") - .append("ar c=b.display,d=b.visibility,e=b.position;b.visibility=\"hidden\";b.position=\"ab") - .append("solute\";b.display=\"inline\";var f=sc(a);b.display=c;b.position=e;b.visibility=d;") - .append("b=f}return 0=a){var b=$.") - .append("a[a];if(null===b)h.push(l=e()),f&&(l.ya=!1,h.push(l=e()));else if(m(b))l.keys.push") - .append("(b);else throw Error(\"Unsupported WebDriver key: \\\\u\"+a.charCodeAt(0).toString") - .append("(16));}else switch(a){case \"\\n\":l.keys.push(Ed);break;case \"\\t\":l.keys.push(") - .append("Dd);break;case \"\\b\":l.keys.push(Cd);break;default:l.keys.push(a)}})});q(h,funct") - .append("ion(b){Le(a,b.keys,c,b.ya)})}\n$.a={};$.a[\"\\ue000\"]=null;$.a[\"\\ue003\"]=Cd;$.") - .append("a[\"\\ue004\"]=Dd;$.a[\"\\ue006\"]=Ed;$.a[\"\\ue007\"]=Ed;$.a[\"\\ue008\"]=Y;$.a[") - .append("\"\\ue009\"]=Fd;$.a[\"\\ue00a\"]=Gd;$.a[\"\\ue00b\"]=Hd;$.a[\"\\ue00c\"]=Id;$.a[\"") - .append("\\ue00d\"]=Jd;$.a[\"\\ue00e\"]=Kd;$.a[\"\\ue00f\"]=Ld;$.a[\"\\ue010\"]=Md;$.a[\"") - .append("\\ue011\"]=Nd;$.a[\"\\ue012\"]=Od;$.a[\"\\ue013\"]=Pd;$.a[\"\\ue014\"]=Qd;$.a[\"") - .append("\\ue015\"]=Rd;$.a[\"\\ue016\"]=Sd;$.a[\"\\ue017\"]=Td;$.a[\"\\ue018\"]=xe;$.a[\"") - .append("\\ue019\"]=ve;$.a[\"\\ue01a\"]=Vd;$.a[\"\\ue01b\"]=Wd;$.a[\"\\ue01c\"]=Xd;$.a[\"") - .append("\\ue01d\"]=Yd;$.a[\"\\ue01e\"]=Zd;$.a[\"\\ue01f\"]=$d;\n$.a[\"\\ue020\"]=ae;$.a[\"") - .append("\\ue021\"]=be;$.a[\"\\ue022\"]=ce;$.a[\"\\ue023\"]=de;$.a[\"\\ue024\"]=ee;$.a[\"") - .append("\\ue025\"]=fe;$.a[\"\\ue027\"]=ge;$.a[\"\\ue028\"]=he;$.a[\"\\ue029\"]=ie;$.a[\"") - .append("\\ue026\"]=we;$.a[\"\\ue031\"]=je;$.a[\"\\ue032\"]=ke;$.a[\"\\ue033\"]=le;$.a[\"") - .append("\\ue034\"]=me;$.a[\"\\ue035\"]=ne;$.a[\"\\ue036\"]=oe;$.a[\"\\ue037\"]=pe;$.a[\"") - .append("\\ue038\"]=qe;$.a[\"\\ue039\"]=re;$.a[\"\\ue03a\"]=se;$.a[\"\\ue03b\"]=te;$.a[\"") - .append("\\ue03c\"]=ue;$.a[\"\\ue03d\"]=Ud;function Pe(){this.Y=void 0}\nfunction Qe(a,b,c)") - .append("{switch(typeof b){case \"string\":Re(b,c);break;case \"number\":c.push(isFinite(b)") - .append("&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);break;case \"undefined\":") - .append("c.push(\"null\");break;case \"object\":if(null==b){c.push(\"null\");break}if(\"arr") - .append("ay\"==da(b)){var d=b.length;c.push(\"[\");for(var e=\"\",f=0;fb?e+=\"000\":256>b?e+=\"00\":4096>b&&(e+=\"0\");return Se[a]=e+b.toStri") - .append("ng(16)}),'\"')};function Ue(a){switch(da(a)){case \"string\":case \"number\":case ") - .append("\"boolean\":return a;case \"function\":return a.toString();case \"array\":return r") - .append("a(a,Ue);case \"object\":if(\"nodeType\"in a&&(1==a.nodeType||9==a.nodeType)){var b") - .append("={};b.ELEMENT=Ve(a);return b}if(\"document\"in a)return b={},b.WINDOW=Ve(a),b;if(e") - .append("a(a))return ra(a,Ue);a=Ua(a,function(a,b){return\"number\"==typeof b||n(b)});retur") - .append("n Va(a,Ue);default:return null}}\nfunction We(a,b){return\"array\"==da(a)?ra(a,fun") - .append("ction(a){return We(a,b)}):ga(a)?\"function\"==typeof a?a:\"ELEMENT\"in a?Xe(a.ELEM") - .append("ENT,b):\"WINDOW\"in a?Xe(a.WINDOW,b):Va(a,function(a){return We(a,b)}):a}function ") - .append("Ye(a){a=a||document;var b=a.$wdc_;b||(b=a.$wdc_={},b.la=ma());b.la||(b.la=ma());re") - .append("turn b}function Ve(a){var b=Ye(a.ownerDocument),c=Xa(b,function(b){return b==a});c") - .append("||(c=\":wdc:\"+b.la++,b[c]=a);return c}\nfunction Xe(a,b){a=decodeURIComponent(a);") - .append("var c=b||document,d=Ye(c);if(!(a in d))throw new s(10,\"Element does not exist in ") - .append("cache\");var e=d[a];if(\"setInterval\"in e){if(e.closed)throw delete d[a],new s(23") - .append(",\"Window has been closed.\");return e}for(var f=e;f;){if(f==c.documentElement)ret") - .append("urn e;f=f.parentNode}delete d[a];throw new s(10,\"Element is no longer attached to") - .append(" the DOM\");};function Ze(a){var b=Ne;a=[a];var c=window||na,d;try{var b=n(b)?new ") - .append("c.Function(b):c==window?b:new c.Function(\"return (\"+b+\").apply(null,arguments);") - .append("\"),e=We(a,c.document),f=b.apply(null,e);d={status:0,value:Ue(f)}}catch(h){d={stat") - .append("us:\"code\"in h?h.code:13,value:{message:h.message}}}b=[];Qe(new Pe,d,b);return b.") - .append("join(\"\")}var $e=[\"_\"],af=ca;$e[0]in af||!af.execScript||af.execScript(\"var \"") - .append("+$e[0]);for(var bf;$e.length&&(bf=$e.shift());)$e.length||void 0===Ze?af=af[bf]?af") - .append("[bf]:af[bf]={}:af[bf]=Ze;; return this._.apply(null,arguments);}.apply({navigator:") - .append("typeof window!=undefined?window.navigator:null,document:typeof window!=undefined?w") - .append("indow.document:null}, arguments);}") - .toString()), - - DEFAULT_CONTENT(new StringBuilder() - .append("function(){return function(){function g(a){return function(){return a}}var h=this;") - .append("\nfunction k(a){var b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return") - .append("\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);") - .append("if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==t") - .append("ypeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIs") - .append("Enumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Funct") - .append("ion]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumera") - .append("ble&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\nel") - .append("se if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b}func") - .append("tion aa(a){var b=k(a);return\"array\"==b||\"object\"==b&&\"number\"==typeof a.leng") - .append("th}function l(a){return\"string\"==typeof a}function ba(a){var b=typeof a;return\"") - .append("object\"==b&&null!=a||\"function\"==b}var p=Date.now||function(){return+new Date};") - .append("var q=window;var s=Array.prototype;function t(a,b){for(var c=a.length,d=l(a)?a.spl") - .append("it(\"\"):a,e=0;e=arguments.length?s.slice.call(a,b):s.slice.call(a,b,c)};function x(){return h.") - .append("navigator?h.navigator.userAgent:null};function ea(a,b){var c={},d;for(d in a)b.cal") - .append("l(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function y(a,b){var c={},d;for(d in a)c[d") - .append("]=b.call(void 0,a[d],d,a);return c}function fa(a,b){for(var c in a)if(b.call(void ") - .append("0,a[c],c,a))return c};function z(a,b){if(a.contains&&1==b.nodeType)return a==b||a.") - .append("contains(b);if(\"undefined\"!=typeof a.compareDocumentPosition)return a==b||Boolea") - .append("n(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}\nfunc") - .append("tion ga(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumen") - .append("tPosition(b)&2?1:-1;if(\"sourceIndex\"in a||a.parentNode&&\"sourceIndex\"in a.pare") - .append("ntNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceI") - .append("ndex;var e=a.parentNode,f=b.parentNode;return e==f?A(a,b):!c&&z(e,b)?-1*B(a,b):!d&") - .append("&z(f,a)?B(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=9") - .append("==a.nodeType?a:a.ownerDocument||a.document;c=d.createRange();c.selectNode(a);c.col") - .append("lapse(!0);\nd=d.createRange();d.selectNode(b);d.collapse(!0);return c.compareBound") - .append("aryPoints(h.Range.START_TO_END,d)}function B(a,b){var c=a.parentNode;if(c==b)retur") - .append("n-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return A(d,a)}function A(a,b){for(") - .append("var c=b;c=c.previousSibling;)if(c==a)return-1;return 1};function C(a){return(a=a.e") - .append("xec(x()))?a[1]:\"\"}C(/Android\\s+([0-9.]+)/)||C(/Version\\/([0-9.]+)/);function D") - .append("(a){var b=0,c=String(ha).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\".\");a") - .append("=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\".\");for(var d=Math.") - .append("max(c.length,a.length),e=0;0==b&&e(0==r[1].length?\n0:parseInt(r[1],10))?") - .append("1:0)||((0==n[2].length)<(0==r[2].length)?-1:(0==n[2].length)>(0==r[2].length)?1:0)") - .append("||(n[2]r[2]?1:0)}while(0==b)}}var E=/Android\\s+([0-9\\.]+)/.exec(x(") - .append(")),ha=E?E[1]:\"0\";D(2.3);D(4);function F(a,b){this.code=a;this.state=G[a]||ia;thi") - .append("s.message=b||\"\";var c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){return") - .append(" a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")}),d=c.length-5;if(0>d||c.indexOf(\"") - .append("Error\",d)!=d)c+=\"Error\";this.name=c;c=Error(this.message);c.name=this.name;this") - .append(".stack=c.stack||\"\"}(function(){var a=Error;function b(){}b.prototype=a.prototype") - .append(";F.C=a.prototype;F.prototype=new b})();\nvar ia=\"unknown error\",G={15:\"element ") - .append("not selectable\",11:\"element not visible\",31:\"ime engine activation failed\",30") - .append(":\"ime not available\",24:\"invalid cookie domain\",29:\"invalid element coordinat") - .append("es\",12:\"invalid element state\",32:\"invalid selector\",51:\"invalid selector\",") - .append("52:\"invalid selector\",17:\"javascript error\",405:\"unsupported operation\",34:") - .append("\"move target out of bounds\",27:\"no such alert\",7:\"no such element\",8:\"no su") - .append("ch frame\",23:\"no such window\",28:\"script timeout\",33:\"session not created\",") - .append("10:\"stale element reference\",\n0:\"success\",21:\"timeout\",25:\"unable to set c") - .append("ookie\",26:\"unexpected alert open\"};G[13]=ia;G[9]=\"unknown command\";F.prototyp") - .append("e.toString=function(){return this.name+\": \"+this.message};function H(a){var b=nu") - .append("ll,c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0") - .append("==b||null==b?\"\":b);if(\"string\"!=typeof b)if(9==c||1==c){a=9==c?a.documentEleme") - .append("nt:a.firstChild;for(var c=0,d=[],b=\"\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c") - .append("++]=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue") - .append(";return\"\"+b}\nfunction I(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)retu") - .append("rn!1}catch(d){return!1}return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}f") - .append("unction J(a,b,c,d,e){return ja.call(null,a,b,l(c)?c:null,l(d)?d:null,e||new K)}\nf") - .append("unction ja(a,b,c,d,e){b.getElementsByName&&d&&\"name\"==c?(b=b.getElementsByName(d") - .append("),t(b,function(b){a.matches(b)&&e.add(b)})):b.getElementsByClassName&&d&&\"class\"") - .append("==c?(b=b.getElementsByClassName(d),t(b,function(b){b.className==d&&a.matches(b)&&e") - .append(".add(b)})):b.getElementsByTagName&&(b=b.getElementsByTagName(a.getName()),t(b,func") - .append("tion(a){I(a,c,d)&&e.add(a)}));return e}function ka(a,b,c,d,e){for(b=b.firstChild;b") - .append(";b=b.nextSibling)I(b,c,d)&&a.matches(b)&&e.add(b);return e}\nfunction la(a,b,c,d,e") - .append("){for(b=b.firstChild;b;b=b.nextSibling)I(b,c,d)&&a.matches(b)&&e.add(b),la(a,b,c,d") - .append(",e)};function K(){this.b=this.a=null;this.d=0}function ma(a){this.j=a;this.next=th") - .append("is.h=null}K.prototype.unshift=function(a){a=new ma(a);a.next=this.a;this.b?this.a.") - .append("h=a:this.a=this.b=a;this.a=a;this.d++};K.prototype.add=function(a){a=new ma(a);a.h") - .append("=this.b;this.a?this.b.next=a:this.a=this.b=a;this.b=a;this.d++};function L(a){retu") - .append("rn(a=a.a)?a.j:null}function na(a){return(a=L(a))?H(a):\"\"}function M(a,b){this.v=") - .append("a;this.i=(this.k=b)?a.b:a.a;this.n=null}\nM.prototype.next=function(){var a=this.i") - .append(";if(null==a)return null;var b=this.n=a;this.i=this.k?a.h:a.next;return b.j};functi") - .append("on N(a,b){var c=a.evaluate(b);return c instanceof K?+na(c):+c}function O(a,b){var ") - .append("c=a.evaluate(b);return c instanceof K?na(c):\"\"+c}function P(a,b){var c=a.evaluat") - .append("e(b);return c instanceof K?!!c.d:!!c};function Q(a,b,c,d,e){b=b.evaluate(d);c=c.ev") - .append("aluate(d);var f;if(b instanceof K&&c instanceof K){e=new M(b,!1);for(d=e.next();d;") - .append("d=e.next())for(b=new M(c,!1),f=b.next();f;f=b.next())if(a(H(d),H(f)))return!0;retu") - .append("rn!1}if(b instanceof K||c instanceof K){b instanceof K?e=b:(e=c,c=b);e=new M(e,!1)") - .append(";b=typeof c;for(d=e.next();d;d=e.next()){switch(b){case \"number\":d=+H(d);break;c") - .append("ase \"boolean\":d=!!H(d);break;case \"string\":d=H(d);break;default:throw Error(\"") - .append("Illegal primitive type for comparison.\");}if(a(d,c))return!0}return!1}return e?\n") - .append("\"boolean\"==typeof b||\"boolean\"==typeof c?a(!!b,!!c):\"number\"==typeof b||\"nu") - .append("mber\"==typeof c?a(+b,+c):a(b,c):a(+b,+c)}function oa(a,b,c,d){this.o=a;this.B=b;t") - .append("his.l=c;this.m=d}oa.prototype.toString=function(){return this.o};var pa={};functio") - .append("n R(a,b,c,d){if(a in pa)throw Error(\"Binary operator already created: \"+a);a=new") - .append(" oa(a,b,c,d);pa[a.toString()]=a}R(\"div\",6,1,function(a,b,c){return N(a,c)/N(b,c)") - .append("});R(\"mod\",6,1,function(a,b,c){return N(a,c)%N(b,c)});R(\"*\",6,1,function(a,b,c") - .append("){return N(a,c)*N(b,c)});\nR(\"+\",5,1,function(a,b,c){return N(a,c)+N(b,c)});R(\"") - .append("-\",5,1,function(a,b,c){return N(a,c)-N(b,c)});R(\"<\",4,2,function(a,b,c){return ") - .append("Q(function(a,b){return a\",4,2,function(a,b,c){return Q(function") - .append("(a,b){return a>b},a,b,c)});R(\"<=\",4,2,function(a,b,c){return Q(function(a,b){ret") - .append("urn a<=b},a,b,c)});R(\">=\",4,2,function(a,b,c){return Q(function(a,b){return a>=b") - .append("},a,b,c)});R(\"=\",3,2,function(a,b,c){return Q(function(a,b){return a==b},a,b,c,!") - .append("0)});\nR(\"!=\",3,2,function(a,b,c){return Q(function(a,b){return a!=b},a,b,c,!0)}") - .append(");R(\"and\",2,2,function(a,b,c){return P(a,c)&&P(b,c)});R(\"or\",1,2,function(a,b,") - .append("c){return P(a,c)||P(b,c)});function qa(a,b,c,d,e,f,m,u,w){this.f=a;this.l=b;this.u") - .append("=c;this.t=d;this.s=e;this.m=f;this.r=m;this.q=void 0!==u?u:m;this.w=!!w}qa.prototy") - .append("pe.toString=function(){return this.f};var ra={};function S(a,b,c,d,e,f,m,u){if(a i") - .append("n ra)throw Error(\"Function already created: \"+a+\".\");ra[a]=new qa(a,b,c,d,!1,e") - .append(",f,m,u)}S(\"boolean\",2,!1,!1,function(a,b){return P(b,a)},1);S(\"ceiling\",1,!1,!") - .append("1,function(a,b){return Math.ceil(N(b,a))},1);\nS(\"concat\",3,!1,!1,function(a,b){") - .append("var c=da(arguments,1);return ca(c,function(b,c){return b+O(c,a)})},2,null);S(\"con") - .append("tains\",2,!1,!1,function(a,b,c){b=O(b,a);a=O(c,a);return-1!=b.indexOf(a)},2);S(\"c") - .append("ount\",1,!1,!1,function(a,b){return b.evaluate(a).d},1,1,!0);S(\"false\",2,!1,!1,g") - .append("(!1),0);S(\"floor\",1,!1,!1,function(a,b){return Math.floor(N(b,a))},1);\nS(\"id\"") - .append(",4,!1,!1,function(a,b){var c=a.c,d=9==c.nodeType?c:c.ownerDocument,c=O(b,a).split(") - .append("/\\s+/),e=[];t(c,function(a){a=d.getElementById(a);var b;if(!(b=!a)){a:if(l(e))b=l") - .append("(a)&&1==a.length?e.indexOf(a,0):-1;else{for(b=0;bb?e+=\"000\":") - .append("256>b?e+=\"00\":4096>b&&(e+=\"0\");return V[a]=e+b.toString(16)}),'\"')};function ") - .append("W(a){switch(k(a)){case \"string\":case \"number\":case \"boolean\":return a;case ") - .append("\"function\":return a.toString();case \"array\":return v(a,W);case \"object\":if(") - .append("\"nodeType\"in a&&(1==a.nodeType||9==a.nodeType)){var b={};b.ELEMENT=ya(a);return ") - .append("b}if(\"document\"in a)return b={},b.WINDOW=ya(a),b;if(aa(a))return v(a,W);a=ea(a,f") - .append("unction(a,b){return\"number\"==typeof b||l(b)});return y(a,W);default:return null}") - .append("}\nfunction X(a,b){return\"array\"==k(a)?v(a,function(a){return X(a,b)}):ba(a)?\"f") - .append("unction\"==typeof a?a:\"ELEMENT\"in a?za(a.ELEMENT,b):\"WINDOW\"in a?za(a.WINDOW,b") - .append("):y(a,function(a){return X(a,b)}):a}function Aa(a){a=a||document;var b=a.$wdc_;b||") - .append("(b=a.$wdc_={},b.g=p());b.g||(b.g=p());return b}function ya(a){var b=Aa(a.ownerDocu") - .append("ment),c=fa(b,function(b){return b==a});c||(c=\":wdc:\"+b.g++,b[c]=a);return c}\nfu") - .append("nction za(a,b){a=decodeURIComponent(a);var c=b||document,d=Aa(c);if(!(a in d))thro") - .append("w new F(10,\"Element does not exist in cache\");var e=d[a];if(\"setInterval\"in e)") - .append("{if(e.closed)throw delete d[a],new F(23,\"Window has been closed.\");return e}for(") - .append("var f=e;f;){if(f==c.documentElement)return e;f=f.parentNode}delete d[a];throw new ") - .append("F(10,\"Element is no longer attached to the DOM\");};function Ba(){var a=ua,b=[],c") - .append("=window||q,d;try{var a=l(a)?new c.Function(a):c==window?a:new c.Function(\"return ") - .append("(\"+a+\").apply(null,arguments);\"),e=X(b,c.document),f=a.apply(null,e);d={status:") - .append("0,value:W(f)}}catch(m){d={status:\"code\"in m?m.code:13,value:{message:m.message}}") - .append("}a=[];U(new va,d,a);return a.join(\"\")}var Y=[\"_\"],Z=h;Y[0]in Z||!Z.execScript|") - .append("|Z.execScript(\"var \"+Y[0]);for(var $;Y.length&&($=Y.shift());)Y.length||void 0==") - .append("=Ba?Z=Z[$]?Z[$]:Z[$]={}:Z[$]=Ba;; return this._.apply(null,arguments);}.apply({nav") - .append("igator:typeof window!=undefined?window.navigator:null,document:typeof window!=unde") - .append("fined?window.document:null}, arguments);}") - .toString()), - - FIND_ELEMENT(new StringBuilder() - .append("function(){return function(){function h(a){return function(){return this[a]}}funct") - .append("ion l(a){return function(){return a}}var n=this;\nfunction aa(a){var b=typeof a;if") - .append("(\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)") - .append("return b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return") - .append("\"object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=t") - .append("ypeof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumera") - .append("ble(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof") - .append(" a.call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"c") - .append("all\"))return\"function\"}else return\"null\";\nelse if(\"function\"==b&&\"undefin") - .append("ed\"==typeof a.call)return\"object\";return b}function ba(a){var b=aa(a);return\"a") - .append("rray\"==b||\"object\"==b&&\"number\"==typeof a.length}function p(a){return\"string") - .append("\"==typeof a}function ca(a){return\"function\"==aa(a)}function da(a){var b=typeof ") - .append("a;return\"object\"==b&&null!=a||\"function\"==b}function ea(a,b,c){return a.call.a") - .append("pply(a.bind,arguments)}\nfunction fa(a,b,c){if(!a)throw Error();if(2c?null:p(a)?a.charAt(c):a[c]}function ra(a,b){var c;a:if(p(a))c=p(b)&&1=") - .append("=b.length?a.indexOf(b,0):-1;else{for(c=0;c=arguments.length?la.slice.call(a,b):la.slice.call(a,b,c)};functi") - .append("on ua(){return n.navigator?n.navigator.userAgent:null};var va;function w(a,b){this") - .append(".x=void 0!==a?a:0;this.y=void 0!==b?b:0}w.prototype.toString=function(){return\"(") - .append("\"+this.x+\", \"+this.y+\")\"};w.prototype.ceil=function(){this.x=Math.ceil(this.x") - .append(");this.y=Math.ceil(this.y);return this};w.prototype.floor=function(){this.x=Math.f") - .append("loor(this.x);this.y=Math.floor(this.y);return this};w.prototype.round=function(){t") - .append("his.x=Math.round(this.x);this.y=Math.round(this.y);return this};function wa(a,b){t") - .append("his.width=a;this.height=b}wa.prototype.toString=function(){return\"(\"+this.width+") - .append("\" x \"+this.height+\")\"};wa.prototype.ceil=function(){this.width=Math.ceil(this.") - .append("width);this.height=Math.ceil(this.height);return this};wa.prototype.floor=function") - .append("(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return th") - .append("is};wa.prototype.round=function(){this.width=Math.round(this.width);this.height=Ma") - .append("th.round(this.height);return this};function xa(a,b){var c={},d;for(d in a)b.call(v") - .append("oid 0,a[d],d,a)&&(c[d]=a[d]);return c}function ya(a,b){var c={},d;for(d in a)c[d]=") - .append("b.call(void 0,a[d],d,a);return c}function za(a,b){for(var c in a)if(b.call(void 0,") - .append("a[c],c,a))return c};var Aa=3;function x(a){return a?new Ba(y(a)):va||(va=new Ba)}f") - .append("unction Ca(a){for(;a&&1!=a.nodeType;)a=a.previousSibling;return a}function Da(a,b)") - .append("{if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if(\"undefined\"!=typeof ") - .append("a.compareDocumentPosition)return a==b||Boolean(a.compareDocumentPosition(b)&16);fo") - .append("r(;b&&a!=b;)b=b.parentNode;return b==a}\nfunction Ea(a,b){if(a==b)return 0;if(a.co") - .append("mpareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(\"sourceIndex") - .append("\"in a||a.parentNode&&\"sourceIndex\"in a.parentNode){var c=1==a.nodeType,d=1==b.n") - .append("odeType;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNo") - .append("de;return e==f?Fa(a,b):!c&&Da(e,b)?-1*Ga(a,b):!d&&Da(f,a)?Ga(b,a):(c?a.sourceIndex") - .append(":e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=y(a);c=d.createRange();c.selectN") - .append("ode(a);c.collapse(!0);d=d.createRange();d.selectNode(b);\nd.collapse(!0);return c.") - .append("compareBoundaryPoints(n.Range.START_TO_END,d)}function Ga(a,b){var c=a.parentNode;") - .append("if(c==b)return-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return Fa(d,a)}functi") - .append("on Fa(a,b){for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1}function y(a") - .append("){return 9==a.nodeType?a:a.ownerDocument||a.document}function Ha(a,b){a=a.parentNo") - .append("de;for(var c=0;a;){if(b(a))return a;a=a.parentNode;c++}return null}function Ba(a){") - .append("this.J=a||n.document||document}\nfunction z(a,b,c,d){a=d||a.J;b=b&&\"*\"!=b?b.toUp") - .append("perCase():\"\";if(a.querySelectorAll&&a.querySelector&&(b||c))c=a.querySelectorAll") - .append("(b+(c?\".\"+c:\"\"));else if(c&&a.getElementsByClassName)if(a=a.getElementsByClass") - .append("Name(c),b){d={};for(var e=0,f=0,g;g=a[f];f++)b==g.nodeName&&(d[e++]=g);d.length=e;") - .append("c=d}else c=a;else if(a=a.getElementsByTagName(b||\"*\"),c){d={};for(f=e=0;g=a[f];f") - .append("++)b=g.className,\"function\"==typeof b.split&&ra(b.split(/\\s+/),c)&&(d[e++]=g);d") - .append(".length=e;c=d}else c=a;return c}Ba.prototype.contains=Da;var Ia={Q:function(a){ret") - .append("urn!(!a.querySelectorAll||!a.querySelector)},l:function(a,b){if(!a)throw Error(\"N") - .append("o class name specified\");a=t(a);if(1(0==k[1].length?0:") - .append("parseInt(k[1],10))?1:0)||((0==r[2].length)<(0==k[2].length)?\n-1:(0==r[2].length)>") - .append("(0==k[2].length)?1:0)||(r[2]k[2]?1:0)}while(0==b)}}var Na=/Android") - .append("\\s+([0-9\\.]+)/.exec(ua()),Ma=Na?Na[1]:\"0\";La(2.3);La(4);var Oa={l:function(a,b") - .append("){ca(b.querySelector);if(!a)throw Error(\"No selector specified\");a=t(a);var c=b.") - .append("querySelector(a);return c&&1==c.nodeType?c:null},m:function(a,b){ca(b.querySelecto") - .append("rAll);if(!a)throw Error(\"No selector specified\");a=t(a);return b.querySelectorAl") - .append("l(a)}};var Pa={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aqu") - .append("amarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:") - .append("\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",bro") - .append("wn:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",") - .append("chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff") - .append("8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b") - .append("\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",\ndarkgrey") - .append(":\"#a9a9a9\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2") - .append("f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:") - .append("\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f") - .append("4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",") - .append("deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969") - .append("\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgree") - .append("n:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",\nghostwhite:\"#f8f8ff\",g") - .append("old:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",green:\"#008000\",greenyell") - .append("ow:\"#adff2f\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred") - .append(":\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6") - .append("e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",li") - .append("ghtblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyel") - .append("low:\"#fafad2\",lightgray:\"#d3d3d3\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\"") - .append(",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",\nlightseagreen:\"#20b2aa\",lightsk") - .append("yblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteel") - .append("blue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",li") - .append("nen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa") - .append("\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370db\",medium") - .append("seagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",med") - .append("iumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mint") - .append("cream:\"#f5fffa\",mistyrose:\"#ffe4e1\",\nmoccasin:\"#ffe4b5\",navajowhite:\"#ffde") - .append("ad\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",") - .append("orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8a") - .append("a\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#db7093\",papa") - .append("yawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"") - .append("#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",red:\"#ff0000\",rosybrown:\"#b") - .append("c8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrow") - .append("n:\"#f4a460\",seagreen:\"#2e8b57\",\nseashell:\"#fff5ee\",sienna:\"#a0522d\",silve") - .append("r:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slat") - .append("egrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",t") - .append("an:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:") - .append("\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f") - .append("5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"};var Qa=\"background-color bord") - .append("er-top-color border-right-color border-bottom-color border-left-color color outlin") - .append("e-color\".split(\" \"),Ra=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/;function Sa(a") - .append("){if(!Ta.test(a))throw Error(\"'\"+a+\"' is not a valid hex color\");4==a.length&&") - .append("(a=a.replace(Ra,\"#$1$1$2$2$3$3\"));return a.toLowerCase()}var Ta=/^#(?:[0-9a-f]{3") - .append("}){1,2}$/i,Ua=/^(?:rgba)?\\((\\d{1,3}),\\s?(\\d{1,3}),\\s?(\\d{1,3}),\\s?(0|1|0\\.") - .append("\\d*)\\)$/i;\nfunction Va(a){var b=a.match(Ua);if(b){a=Number(b[1]);var c=Number(b") - .append("[2]),d=Number(b[3]),b=Number(b[4]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=d&&255>=d&&0<") - .append("=b&&1>=b)return[a,c,d,b]}return[]}var Wa=/^(?:rgb)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-") - .append("9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2})\\)$/i;function Xa(a){var b=a.match(Wa);if(b){a=N") - .append("umber(b[1]);var c=Number(b[2]),b=Number(b[3]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=b&") - .append("&255>=b)return[a,c,b]}return[]};function A(a,b){this.code=a;this.state=Ya[a]||Za;t") - .append("his.message=b||\"\";var c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){retu") - .append("rn a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")}),d=c.length-5;if(0>d||c.indexOf(") - .append("\"Error\",d)!=d)c+=\"Error\";this.name=c;c=Error(this.message);c.name=this.name;th") - .append("is.stack=c.stack||\"\"}s(A,Error);\nvar Za=\"unknown error\",Ya={15:\"element not ") - .append("selectable\",11:\"element not visible\",31:\"ime engine activation failed\",30:\"i") - .append("me not available\",24:\"invalid cookie domain\",29:\"invalid element coordinates\"") - .append(",12:\"invalid element state\",32:\"invalid selector\",51:\"invalid selector\",52:") - .append("\"invalid selector\",17:\"javascript error\",405:\"unsupported operation\",34:\"mo") - .append("ve target out of bounds\",27:\"no such alert\",7:\"no such element\",8:\"no such f") - .append("rame\",23:\"no such window\",28:\"script timeout\",33:\"session not created\",10:") - .append("\"stale element reference\",\n0:\"success\",21:\"timeout\",25:\"unable to set cook") - .append("ie\",26:\"unexpected alert open\"};Ya[13]=Za;Ya[9]=\"unknown command\";A.prototype") - .append(".toString=function(){return this.name+\": \"+this.message};function $a(a,b,c){this") - .append(".i=a;this.na=b||1;this.h=c||1};function ab(a){this.P=a;this.C=0}function bb(a){a=a") - .append(".match(cb);for(var b=0;b]=|") - .append("\\\\s+|.\",\"g\"),db=/^\\s/;function B(a,b){return a.P[a.C+(b||0)]}ab.prototype.ne") - .append("xt=function(){return this.P[this.C++]};ab.prototype.back=function(){this.C--};ab.p") - .append("rototype.empty=function(){return this.P.length<=this.C};function D(a){var b=null,c") - .append("=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b|") - .append("|null==b?\"\":b);if(\"string\"!=typeof b)if(9==c||1==c){a=9==c?a.documentElement:a") - .append(".firstChild;for(var c=0,d=[],b=\"\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c++]=") - .append("a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;ret") - .append("urn\"\"+b}\nfunction eb(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!") - .append("1}catch(d){return!1}return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}func") - .append("tion fb(a,b,c,d,e){return gb.call(null,a,b,p(c)?c:null,p(d)?d:null,e||new E)}\nfun") - .append("ction gb(a,b,c,d,e){b.getElementsByName&&d&&\"name\"==c?(b=b.getElementsByName(d),") - .append("u(b,function(b){a.matches(b)&&e.add(b)})):b.getElementsByClassName&&d&&\"class\"==") - .append("c?(b=b.getElementsByClassName(d),u(b,function(b){b.className==d&&a.matches(b)&&e.a") - .append("dd(b)})):a instanceof F?hb(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTa") - .append("gName(a.getName()),u(b,function(a){eb(a,c,d)&&e.add(a)}));return e}function ib(a,b") - .append(",c,d,e){for(b=b.firstChild;b;b=b.nextSibling)eb(b,c,d)&&a.matches(b)&&e.add(b);ret") - .append("urn e}\nfunction hb(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)eb(b,c,d)&&a.m") - .append("atches(b)&&e.add(b),hb(a,b,c,d,e)};function E(){this.h=this.e=null;this.v=0}functi") - .append("on jb(a){this.r=a;this.next=this.q=null}function kb(a,b){if(!a.e)return b;if(!b.e)") - .append("return a;for(var c=a.e,d=b.e,e=null,f=null,g=0;c&&d;)c.r==d.r?(f=c,c=c.next,d=d.ne") - .append("xt):0\",4,2,function(a,b,c){return tb(function(a,b){return a>b},a,b,c)});L(\"<=\",4,2,") - .append("function(a,b,c){return tb(function(a,b){return a<=b},a,b,c)});L(\">=\",4,2,functio") - .append("n(a,b,c){return tb(function(a,b){return a>=b},a,b,c)});var sb=L(\"=\",3,2,function") - .append("(a,b,c){return tb(function(a,b){return a==b},a,b,c,!0)});L(\"!=\",3,2,function(a,b") - .append(",c){return tb(function(a,b){return a!=b},a,b,c,!0)});L(\"and\",2,2,function(a,b,c)") - .append("{return qb(a,c)&&qb(b,c)});L(\"or\",1,2,function(a,b,c){return qb(a,c)||qb(b,c)});") - .append("function wb(a,b){if(b.k()&&4!=a.d)throw Error(\"Primary expression must evaluate t") - .append("o nodeset if filter has predicate(s).\");H.call(this,a.d);this.aa=a;this.b=b;this.") - .append("n=a.c();this.f=a.f}s(wb,H);wb.prototype.evaluate=function(a){a=this.aa.evaluate(a)") - .append(";return xb(this.b,a)};wb.prototype.toString=function(){var a;a=\"Filter:\"+I(this.") - .append("aa);return a+=I(this.b)};function yb(a,b){if(b.lengtha.L)throw Error(\"Function \"+a.g+\" expects at most \"+a.L+\" argume") - .append("nts, \"+b.length+\" given\");a.ka&&u(b,function(b,d){if(4!=b.d)throw Error(\"Argum") - .append("ent \"+d+\" to function \"+a.g+\" is not of type Nodeset: \"+b);});H.call(this,a.d") - .append(");this.B=a;this.H=b;ob(this,a.n||oa(b,function(a){return a.c()}));pb(this,a.ia&&!b") - .append(".length||a.ha&&!!b.length||oa(b,function(a){return a.f}))}\ns(yb,H);yb.prototype.e") - .append("valuate=function(a){return this.B.j.apply(null,sa(a,this.H))};yb.prototype.toStrin") - .append("g=function(){var a=\"Function: \"+this.B;if(this.H.length)var b=v(this.H,function(") - .append("a,b){return a+I(b)},\"Arguments:\"),a=a+I(b);return a};function zb(a,b,c,d,e,f,g,m") - .append(",q){this.g=a;this.d=b;this.n=c;this.ia=d;this.ha=e;this.j=f;this.Z=g;this.L=void 0") - .append("!==m?m:g;this.ka=!!q}zb.prototype.toString=h(\"g\");var Ab={};\nfunction M(a,b,c,d") - .append(",e,f,g,m){if(a in Ab)throw Error(\"Function already created: \"+a+\".\");Ab[a]=new") - .append(" zb(a,b,c,d,!1,e,f,g,m)}M(\"boolean\",2,!1,!1,function(a,b){return qb(b,a)},1);M(") - .append("\"ceiling\",1,!1,!1,function(a,b){return Math.ceil(J(b,a))},1);M(\"concat\",3,!1,!") - .append("1,function(a,b){var c=ta(arguments,1);return v(c,function(b,c){return b+K(c,a)},\"") - .append("\")},2,null);M(\"contains\",2,!1,!1,function(a,b,c){b=K(b,a);a=K(c,a);return-1!=b.") - .append("indexOf(a)},2);M(\"count\",1,!1,!1,function(a,b){return b.evaluate(a).k()},1,1,!0)") - .append(";\nM(\"false\",2,!1,!1,l(!1),0);M(\"floor\",1,!1,!1,function(a,b){return Math.floo") - .append("r(J(b,a))},1);M(\"id\",4,!1,!1,function(a,b){var c=a.i,d=9==c.nodeType?c:c.ownerDo") - .append("cument,c=K(b,a).split(/\\s+/),e=[];u(c,function(a){(a=d.getElementById(a))&&!ra(e,") - .append("a)&&e.push(a)});e.sort(Ea);var f=new E;u(e,function(a){f.add(a)});return f},1);M(") - .append("\"lang\",2,!1,!1,l(!1),1);M(\"last\",1,!0,!1,function(a){if(1!=arguments.length)th") - .append("row Error(\"Function last expects ()\");return a.h},0);\nM(\"local-name\",3,!1,!0,") - .append("function(a,b){var c=b?lb(b.evaluate(a)):a.i;return c?c.nodeName.toLowerCase():\"\"") - .append("},0,1,!0);M(\"name\",3,!1,!0,function(a,b){var c=b?lb(b.evaluate(a)):a.i;return c?") - .append("c.nodeName.toLowerCase():\"\"},0,1,!0);M(\"namespace-uri\",3,!0,!1,l(\"\"),0,1,!0)") - .append(";M(\"normalize-space\",3,!1,!0,function(a,b){return(b?K(b,a):D(a.i)).replace(/[\\s") - .append("\\xa0]+/g,\" \").replace(/^\\s+|\\s+$/g,\"\")},0,1);M(\"not\",2,!1,!1,function(a,b") - .append("){return!qb(b,a)},1);M(\"number\",1,!1,!0,function(a,b){return b?J(b,a):+D(a.i)},0") - .append(",1);\nM(\"position\",1,!0,!1,function(a){return a.na},0);M(\"round\",1,!1,!1,funct") - .append("ion(a,b){return Math.round(J(b,a))},1);M(\"starts-with\",2,!1,!1,function(a,b,c){b") - .append("=K(b,a);a=K(c,a);return 0==b.lastIndexOf(a,0)},2);M(\"string\",3,!1,!0,function(a,") - .append("b){return b?K(b,a):D(a.i)},0,1);M(\"string-length\",1,!1,!0,function(a,b){return(b") - .append("?K(b,a):D(a.i)).length},0,1);\nM(\"substring\",3,!1,!1,function(a,b,c,d){c=J(c,a);") - .append("if(isNaN(c)||Infinity==c||-Infinity==c)return\"\";d=d?J(d,a):Infinity;if(isNaN(d)|") - .append("|-Infinity===d)return\"\";c=Math.round(c)-1;var e=Math.max(c,0);a=K(b,a);if(Infini") - .append("ty==d)return a.substring(e);b=Math.round(d);return a.substring(e,c+b)},2,3);M(\"su") - .append("bstring-after\",3,!1,!1,function(a,b,c){b=K(b,a);a=K(c,a);c=b.indexOf(a);return-1=") - .append("=c?\"\":b.substring(c+a.length)},2);\nM(\"substring-before\",3,!1,!1,function(a,b,") - .append("c){b=K(b,a);a=K(c,a);a=b.indexOf(a);return-1==a?\"\":b.substring(0,a)},2);M(\"sum") - .append("\",1,!1,!1,function(a,b){for(var c=G(b.evaluate(a)),d=0,e=c.next();e;e=c.next())d+") - .append("=+D(e);return d},1,1,!0);M(\"translate\",3,!1,!1,function(a,b,c,d){b=K(b,a);c=K(c,") - .append("a);var e=K(d,a);a=[];for(d=0;da.length)throw Error(\"Unclos") - .append("ed literal string\");return new Cb(a)}function Zb(a){var b=a.a.next(),c=b.indexOf(") - .append("\":\");if(-1==c)return new Db(b);var d=b.substring(0,c);a=a.la(d);if(!a)throw Erro") - .append("r(\"Namespace prefix not declared: \"+d);b=b.substr(c+1);return new Db(b,a)}\nfunc") - .append("tion $b(a){var b,c=[],d;if(\"/\"==B(a.a)||\"//\"==B(a.a)){b=a.a.next();d=B(a.a);if") - .append("(\"/\"==b&&(a.a.empty()||\".\"!=d&&\"..\"!=d&&\"@\"!=d&&\"*\"!=d&&!/(?![0-9])[\\w]") - .append("/.test(d)))return new Hb;d=new Hb;Q(a,\"Missing next location step.\");b=ac(a,b);c") - .append(".push(b)}else{a:{b=B(a.a);d=b.charAt(0);switch(d){case \"$\":throw Error(\"Variabl") - .append("e reference not allowed in HTML XPath\");case \"(\":a.a.next();b=Ub(a);Q(a,'unclos") - .append("ed \"(\"');Wb(a,\")\");break;case '\"':case \"'\":b=Yb(a);break;default:if(isNaN(+") - .append("b))if(!Bb(b)&&/(?![0-9])[\\w]/.test(d)&&\n\"(\"==B(a.a,1)){b=a.a.next();b=Ab[b]||n") - .append("ull;a.a.next();for(d=[];\")\"!=B(a.a);){Q(a,\"Missing function argument list.\");d") - .append(".push(Ub(a));if(\",\"!=B(a.a))break;a.a.next()}Q(a,\"Unclosed function argument li") - .append("st.\");Xb(a);b=new yb(b,d)}else{b=null;break a}else b=new Eb(+a.a.next())}\"[\"==B") - .append("(a.a)&&(d=new N(bc(a)),b=new wb(b,d))}if(b)if(\"/\"==B(a.a)||\"//\"==B(a.a))d=b;el") - .append("se return b;else b=ac(a,\"/\"),d=new Ib,c.push(b)}for(;\"/\"==B(a.a)||\"//\"==B(a.") - .append("a);)b=a.a.next(),Q(a,\"Missing next location step.\"),b=ac(a,b),c.push(b);return n") - .append("ew Fb(d,\nc)}\nfunction ac(a,b){var c,d,e;if(\"/\"!=b&&\"//\"!=b)throw Error('Step") - .append(" op should be \"/\" or \"//\"');if(\".\"==B(a.a))return d=new O(Qb,new F(\"node\")") - .append("),a.a.next(),d;if(\"..\"==B(a.a))return d=new O(Pb,new F(\"node\")),a.a.next(),d;v") - .append("ar f;if(\"@\"==B(a.a))f=Gb,a.a.next(),Q(a,\"Missing attribute name\");else if(\"::") - .append("\"==B(a.a,1)){if(!/(?![0-9])[\\w]/.test(B(a.a).charAt(0)))throw Error(\"Bad token:") - .append(" \"+a.a.next());c=a.a.next();f=Ob[c]||null;if(!f)throw Error(\"No axis with name: ") - .append("\"+c);a.a.next();Q(a,\"Missing node name\")}else f=Lb;\nc=B(a.a);if(/(?![0-9])[\\w") - .append("]/.test(c.charAt(0)))if(\"(\"==B(a.a,1)){if(!Bb(c))throw Error(\"Invalid node type") - .append(": \"+c);c=a.a.next();if(!Bb(c))throw Error(\"Invalid type name: \"+c);Wb(a,\"(\");") - .append("Q(a,\"Bad nodetype\");e=B(a.a).charAt(0);var g=null;if('\"'==e||\"'\"==e)g=Yb(a);Q") - .append("(a,\"Bad nodetype\");Xb(a);c=new F(c,g)}else c=Zb(a);else if(\"*\"==c)c=Zb(a);else") - .append(" throw Error(\"Bad token: \"+a.a.next());e=new N(bc(a),f.s);return d||new O(f,c,e,") - .append("\"//\"==b)}\nfunction bc(a){for(var b=[];\"[\"==B(a.a);){a.a.next();Q(a,\"Missing ") - .append("predicate expression.\");var c=Ub(a);b.push(c);Q(a,\"Unclosed predicate expression") - .append(".\");Wb(a,\"]\")}return b}function Vb(a){if(\"-\"==B(a.a))return a.a.next(),new Rb") - .append("(Vb(a));var b=$b(a);if(\"|\"!=B(a.a))a=b;else{for(b=[b];\"|\"==a.a.next();)Q(a,\"M") - .append("issing next union location path.\"),b.push($b(a));a.a.back();a=new Sb(b)}return a}") - .append(";function cc(a,b){if(!a.length)throw Error(\"Empty XPath expression.\");var c=bb(a") - .append(");if(c.empty())throw Error(\"Invalid XPath expression.\");b?ca(b)||(b=ga(b.lookupN") - .append("amespaceURI,b)):b=l(null);var d=Ub(new Tb(c,b));if(!c.empty())throw Error(\"Bad to") - .append("ken: \"+c.next());this.evaluate=function(a,b){var c=d.evaluate(new $a(a));return n") - .append("ew S(c,b)}}\nfunction S(a,b){if(0==b)if(a instanceof E)b=4;else if(\"string\"==typ") - .append("eof a)b=2;else if(\"number\"==typeof a)b=1;else if(\"boolean\"==typeof a)b=3;else ") - .append("throw Error(\"Unexpected evaluation result.\");if(2!=b&&1!=b&&3!=b&&!(a instanceof") - .append(" E))throw Error(\"value could not be converted to the specified type\");this.resul") - .append("tType=b;var c;switch(b){case 2:this.stringValue=a instanceof E?mb(a):\"\"+a;break;") - .append("case 1:this.numberValue=a instanceof E?+mb(a):+a;break;case 3:this.booleanValue=a ") - .append("instanceof E?0=c.length?nul") - .append("l:c[f++]};this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error(\"snapshotItem c") - .append("alled with wrong result type\");return a>=c.length||0>a?null:c[a]}}S.ANY_TYPE=0;\n") - .append("S.NUMBER_TYPE=1;S.STRING_TYPE=2;S.BOOLEAN_TYPE=3;S.UNORDERED_NODE_ITERATOR_TYPE=4;") - .append("S.ORDERED_NODE_ITERATOR_TYPE=5;S.UNORDERED_NODE_SNAPSHOT_TYPE=6;S.ORDERED_NODE_SNA") - .append("PSHOT_TYPE=7;S.ANY_UNORDERED_NODE_TYPE=8;S.FIRST_ORDERED_NODE_TYPE=9;function dc(a") - .append("){a=a||n;var b=a.document;b.evaluate||(a.XPathResult=S,b.evaluate=function(a,b,e,f") - .append("){return(new cc(a,e)).evaluate(b,f)},b.createExpression=function(a,b){return new c") - .append("c(a,b)})};var T={};T.ga=function(){var a={qa:\"http://www.w3.org/2000/svg\"};retur") - .append("n function(b){return a[b]||null}}();T.j=function(a,b,c){var d=y(a);dc(d?d.parentWi") - .append("ndow||d.defaultView:window);try{var e=d.createNSResolver?d.createNSResolver(d.docu") - .append("mentElement):T.ga;return d.evaluate(b,a,e,c,null)}catch(f){throw new A(32,\"Unable") - .append(" to locate an element with the xpath expression \"+b+\" because of the following e") - .append("rror:\\n\"+f);}};\nT.R=function(a,b){if(!a||1!=a.nodeType)throw new A(32,'The resu") - .append("lt of the xpath expression \"'+b+'\" is: '+a+\". It should be an element.\");};T.l") - .append("=function(a,b){var c=function(){var c=T.j(b,a,9);return c?c.singleNodeValue||null:") - .append("b.selectSingleNode?(c=y(b),c.setProperty&&c.setProperty(\"SelectionLanguage\",\"XP") - .append("ath\"),b.selectSingleNode(a)):null}();null===c||T.R(c,a);return c};\nT.m=function(") - .append("a,b){var c=function(){var c=T.j(b,a,7);if(c){for(var e=c.snapshotLength,f=[],g=0;g") - .append("=this.left&&a.right<=this.right&&a.top>=") - .append("this.top&&a.bottom<=this.bottom:a.x>=this.left&&a.x<=this.right&&a.y>=this.top&&a.") - .append("y<=this.bottom:!1};\nU.prototype.ceil=function(){this.top=Math.ceil(this.top);this") - .append(".right=Math.ceil(this.right);this.bottom=Math.ceil(this.bottom);this.left=Math.cei") - .append("l(this.left);return this};U.prototype.floor=function(){this.top=Math.floor(this.to") - .append("p);this.right=Math.floor(this.right);this.bottom=Math.floor(this.bottom);this.left") - .append("=Math.floor(this.left);return this};\nU.prototype.round=function(){this.top=Math.r") - .append("ound(this.top);this.right=Math.round(this.right);this.bottom=Math.round(this.botto") - .append("m);this.left=Math.round(this.left);return this};function V(a,b,c,d){this.left=a;th") - .append("is.top=b;this.width=c;this.height=d}V.prototype.toString=function(){return\"(\"+th") - .append("is.left+\", \"+this.top+\" - \"+this.width+\"w x \"+this.height+\"h)\"};V.prototyp") - .append("e.contains=function(a){return a instanceof V?this.left<=a.left&&this.left+this.wid") - .append("th>=a.left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.height:a.x>=thi") - .append("s.left&&a.x<=this.left+this.width&&a.y>=this.top&&a.y<=this.top+this.height};\nV.p") - .append("rototype.ceil=function(){this.left=Math.ceil(this.left);this.top=Math.ceil(this.to") - .append("p);this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this") - .append("};V.prototype.floor=function(){this.left=Math.floor(this.left);this.top=Math.floor") - .append("(this.top);this.width=Math.floor(this.width);this.height=Math.floor(this.height);r") - .append("eturn this};\nV.prototype.round=function(){this.left=Math.round(this.left);this.to") - .append("p=Math.round(this.top);this.width=Math.round(this.width);this.height=Math.round(th") - .append("is.height);return this};function W(a,b){return!!a&&1==a.nodeType&&(!b||a.tagName.t") - .append("oUpperCase()==b)}var ec=/[;]+(?=(?:(?:[^\"]*\"){2})*[^\"]*$)(?=(?:(?:[^']*'){2})*[") - .append("^']*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;function fc(a){var b=[];u(a.split(ec),fu") - .append("nction(a){var d=a.indexOf(\":\");0=C.left+C.width;C=e.top>=C.top+C.height") - .append(";if(R&&\"hidden\"==k.x||C&&\"hidden\"==k.y)return Y;if(R&&\"visible\"!=k.x||C&&\"v") - .append("isible\"!=k.y){if(r&&(k=d(a),e.left>=g.scrollWidth-k.x||e.right>=g.scrollHeight-k.") - .append("y))return Y;e=lc(a);return e==Y?Y:\"scroll\"}}}return\"none\"}\nfunction kc(a){var") - .append(" b=mc(a);if(b)return b.rect;if(W(a,\"HTML\"))return a=((y(a)?y(a).parentWindow||y(") - .append("a).defaultView:window)||window).document,a=\"CSS1Compat\"==a.compatMode?a.document") - .append("Element:a.body,a=new wa(a.clientWidth,a.clientHeight),new V(0,0,a.width,a.height);") - .append("var c;try{c=a.getBoundingClientRect()}catch(d){return new V(0,0,0,0)}return new V(") - .append("c.left,c.top,c.right-c.left,c.bottom-c.top)}\nfunction mc(a){var b=W(a,\"MAP\");if") - .append("(!b&&!W(a,\"AREA\"))return null;var c=b?a:W(a.parentNode,\"MAP\")?a.parentNode:nul") - .append("l,d=null,e=null;if(c&&c.name&&(d=T.l('/descendant::*[@usemap = \"#'+c.name+'\"]',y") - .append("(c)))&&(e=kc(d),!b&&\"default\"!=a.shape.toLowerCase())){var f=pc(a);a=Math.min(Ma") - .append("th.max(f.left,0),e.width);b=Math.min(Math.max(f.top,0),e.height);c=Math.min(f.widt") - .append("h,e.width-a);f=Math.min(f.height,e.height-b);e=new V(a+e.left,b+e.top,c,f)}return{") - .append("V:d,rect:e||new V(0,0,0,0)}}\nfunction pc(a){var b=a.shape.toLowerCase();a=a.coord") - .append("s.split(\",\");if(\"rect\"==b&&4==a.length){var b=a[0],c=a[1];return new V(b,c,a[2") - .append("]-b,a[3]-c)}if(\"circle\"==b&&3==a.length)return b=a[2],new V(a[0]-b,a[1]-b,2*b,2*") - .append("b);if(\"poly\"==b&&2b?e+=\"000\":") - .append("256>b?e+=\"00\":4096>b&&(e+=\"0\");return Cc[a]=e+b.toString(16)}),'\"')};function") - .append(" Ec(a){switch(aa(a)){case \"string\":case \"number\":case \"boolean\":return a;cas") - .append("e \"function\":return a.toString();case \"array\":return na(a,Ec);case \"object\":") - .append("if(\"nodeType\"in a&&(1==a.nodeType||9==a.nodeType)){var b={};b.ELEMENT=Fc(a);retu") - .append("rn b}if(\"document\"in a)return b={},b.WINDOW=Fc(a),b;if(ba(a))return na(a,Ec);a=x") - .append("a(a,function(a,b){return\"number\"==typeof b||p(b)});return ya(a,Ec);default:retur") - .append("n null}}\nfunction Gc(a,b){return\"array\"==aa(a)?na(a,function(a){return Gc(a,b)}") - .append("):da(a)?\"function\"==typeof a?a:\"ELEMENT\"in a?Hc(a.ELEMENT,b):\"WINDOW\"in a?Hc") - .append("(a.WINDOW,b):ya(a,function(a){return Gc(a,b)}):a}function Ic(a){a=a||document;var ") - .append("b=a.$wdc_;b||(b=a.$wdc_={},b.N=ha());b.N||(b.N=ha());return b}function Fc(a){var b") - .append("=Ic(a.ownerDocument),c=za(b,function(b){return b==a});c||(c=\":wdc:\"+b.N++,b[c]=a") - .append(");return c}\nfunction Hc(a,b){a=decodeURIComponent(a);var c=b||document,d=Ic(c);if") - .append("(!(a in d))throw new A(10,\"Element does not exist in cache\");var e=d[a];if(\"set") - .append("Interval\"in e){if(e.closed)throw delete d[a],new A(23,\"Window has been closed.\"") - .append(");return e}for(var f=e;f;){if(f==c.documentElement)return e;f=f.parentNode}delete ") - .append("d[a];throw new A(10,\"Element is no longer attached to the DOM\");};function Jc(a,") - .append("b,c){var d={};d[a]=b;a=yc;c=[d,c];var d=window||ia,e;try{a=p(a)?new d.Function(a):") - .append("d==window?a:new d.Function(\"return (\"+a+\").apply(null,arguments);\");var f=Gc(c") - .append(",d.document),g=a.apply(null,f);e={status:0,value:Ec(g)}}catch(m){e={status:\"code") - .append("\"in m?m.code:13,value:{message:m.message}}}f=[];Ac(new zc,e,f);return f.join(\"\"") - .append(")}var Kc=[\"_\"],$=n;Kc[0]in $||!$.execScript||$.execScript(\"var \"+Kc[0]);for(va") - .append("r Lc;Kc.length&&(Lc=Kc.shift());)Kc.length||void 0===Jc?$=$[Lc]?$[Lc]:$[Lc]={}:$[L") - .append("c]=Jc;; return this._.apply(null,arguments);}.apply({navigator:typeof window!=unde") - .append("fined?window.navigator:null,document:typeof window!=undefined?window.document:null") - .append("}, arguments);}") - .toString()), - - FIND_ELEMENTS(new StringBuilder() - .append("function(){return function(){function h(a){return function(){return this[a]}}funct") - .append("ion l(a){return function(){return a}}var n=this;\nfunction aa(a){var b=typeof a;if") - .append("(\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)") - .append("return b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return") - .append("\"object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=t") - .append("ypeof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumera") - .append("ble(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof") - .append(" a.call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"c") - .append("all\"))return\"function\"}else return\"null\";\nelse if(\"function\"==b&&\"undefin") - .append("ed\"==typeof a.call)return\"object\";return b}function ba(a){var b=aa(a);return\"a") - .append("rray\"==b||\"object\"==b&&\"number\"==typeof a.length}function p(a){return\"string") - .append("\"==typeof a}function ca(a){return\"function\"==aa(a)}function da(a){var b=typeof ") - .append("a;return\"object\"==b&&null!=a||\"function\"==b}function ea(a,b,c){return a.call.a") - .append("pply(a.bind,arguments)}\nfunction fa(a,b,c){if(!a)throw Error();if(2c?null:p(a)?a.charAt(c):a[c]}function ra(a,b){var c;a:if(p(a))c=p(b)&&1=") - .append("=b.length?a.indexOf(b,0):-1;else{for(c=0;c=arguments.length?la.slice.call(a,b):la.slice.call(a,b,c)};functi") - .append("on ua(){return n.navigator?n.navigator.userAgent:null};var va;function w(a,b){this") - .append(".x=void 0!==a?a:0;this.y=void 0!==b?b:0}w.prototype.toString=function(){return\"(") - .append("\"+this.x+\", \"+this.y+\")\"};w.prototype.ceil=function(){this.x=Math.ceil(this.x") - .append(");this.y=Math.ceil(this.y);return this};w.prototype.floor=function(){this.x=Math.f") - .append("loor(this.x);this.y=Math.floor(this.y);return this};w.prototype.round=function(){t") - .append("his.x=Math.round(this.x);this.y=Math.round(this.y);return this};function wa(a,b){t") - .append("his.width=a;this.height=b}wa.prototype.toString=function(){return\"(\"+this.width+") - .append("\" x \"+this.height+\")\"};wa.prototype.ceil=function(){this.width=Math.ceil(this.") - .append("width);this.height=Math.ceil(this.height);return this};wa.prototype.floor=function") - .append("(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return th") - .append("is};wa.prototype.round=function(){this.width=Math.round(this.width);this.height=Ma") - .append("th.round(this.height);return this};function xa(a,b){var c={},d;for(d in a)b.call(v") - .append("oid 0,a[d],d,a)&&(c[d]=a[d]);return c}function ya(a,b){var c={},d;for(d in a)c[d]=") - .append("b.call(void 0,a[d],d,a);return c}function za(a,b){for(var c in a)if(b.call(void 0,") - .append("a[c],c,a))return c};var Aa=3;function x(a){return a?new Ba(y(a)):va||(va=new Ba)}f") - .append("unction Ca(a){for(;a&&1!=a.nodeType;)a=a.previousSibling;return a}function Da(a,b)") - .append("{if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if(\"undefined\"!=typeof ") - .append("a.compareDocumentPosition)return a==b||Boolean(a.compareDocumentPosition(b)&16);fo") - .append("r(;b&&a!=b;)b=b.parentNode;return b==a}\nfunction Ea(a,b){if(a==b)return 0;if(a.co") - .append("mpareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(\"sourceIndex") - .append("\"in a||a.parentNode&&\"sourceIndex\"in a.parentNode){var c=1==a.nodeType,d=1==b.n") - .append("odeType;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNo") - .append("de;return e==f?Fa(a,b):!c&&Da(e,b)?-1*Ga(a,b):!d&&Da(f,a)?Ga(b,a):(c?a.sourceIndex") - .append(":e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=y(a);c=d.createRange();c.selectN") - .append("ode(a);c.collapse(!0);d=d.createRange();d.selectNode(b);\nd.collapse(!0);return c.") - .append("compareBoundaryPoints(n.Range.START_TO_END,d)}function Ga(a,b){var c=a.parentNode;") - .append("if(c==b)return-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return Fa(d,a)}functi") - .append("on Fa(a,b){for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1}function y(a") - .append("){return 9==a.nodeType?a:a.ownerDocument||a.document}function Ha(a,b){a=a.parentNo") - .append("de;for(var c=0;a;){if(b(a))return a;a=a.parentNode;c++}return null}function Ba(a){") - .append("this.J=a||n.document||document}\nfunction z(a,b,c,d){a=d||a.J;b=b&&\"*\"!=b?b.toUp") - .append("perCase():\"\";if(a.querySelectorAll&&a.querySelector&&(b||c))c=a.querySelectorAll") - .append("(b+(c?\".\"+c:\"\"));else if(c&&a.getElementsByClassName)if(a=a.getElementsByClass") - .append("Name(c),b){d={};for(var e=0,f=0,g;g=a[f];f++)b==g.nodeName&&(d[e++]=g);d.length=e;") - .append("c=d}else c=a;else if(a=a.getElementsByTagName(b||\"*\"),c){d={};for(f=e=0;g=a[f];f") - .append("++)b=g.className,\"function\"==typeof b.split&&ra(b.split(/\\s+/),c)&&(d[e++]=g);d") - .append(".length=e;c=d}else c=a;return c}Ba.prototype.contains=Da;var Ia={Q:function(a){ret") - .append("urn!(!a.querySelectorAll||!a.querySelector)},p:function(a,b){if(!a)throw Error(\"N") - .append("o class name specified\");a=t(a);if(1(0==k[1].length?0:") - .append("parseInt(k[1],10))?1:0)||((0==r[2].length)<(0==k[2].length)?\n-1:(0==r[2].length)>") - .append("(0==k[2].length)?1:0)||(r[2]k[2]?1:0)}while(0==b)}}var Na=/Android") - .append("\\s+([0-9\\.]+)/.exec(ua()),Ma=Na?Na[1]:\"0\";La(2.3);La(4);var Oa={p:function(a,b") - .append("){ca(b.querySelector);if(!a)throw Error(\"No selector specified\");a=t(a);var c=b.") - .append("querySelector(a);return c&&1==c.nodeType?c:null},i:function(a,b){ca(b.querySelecto") - .append("rAll);if(!a)throw Error(\"No selector specified\");a=t(a);return b.querySelectorAl") - .append("l(a)}};var Pa={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aqu") - .append("amarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:") - .append("\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",bro") - .append("wn:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",") - .append("chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff") - .append("8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b") - .append("\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",\ndarkgrey") - .append(":\"#a9a9a9\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2") - .append("f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:") - .append("\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f") - .append("4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",") - .append("deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969") - .append("\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgree") - .append("n:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",\nghostwhite:\"#f8f8ff\",g") - .append("old:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",green:\"#008000\",greenyell") - .append("ow:\"#adff2f\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred") - .append(":\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6") - .append("e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",li") - .append("ghtblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyel") - .append("low:\"#fafad2\",lightgray:\"#d3d3d3\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\"") - .append(",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",\nlightseagreen:\"#20b2aa\",lightsk") - .append("yblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteel") - .append("blue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",li") - .append("nen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa") - .append("\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370db\",medium") - .append("seagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",med") - .append("iumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mint") - .append("cream:\"#f5fffa\",mistyrose:\"#ffe4e1\",\nmoccasin:\"#ffe4b5\",navajowhite:\"#ffde") - .append("ad\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",") - .append("orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8a") - .append("a\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#db7093\",papa") - .append("yawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"") - .append("#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",red:\"#ff0000\",rosybrown:\"#b") - .append("c8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrow") - .append("n:\"#f4a460\",seagreen:\"#2e8b57\",\nseashell:\"#fff5ee\",sienna:\"#a0522d\",silve") - .append("r:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slat") - .append("egrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",t") - .append("an:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:") - .append("\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f") - .append("5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"};var Qa=\"background-color bord") - .append("er-top-color border-right-color border-bottom-color border-left-color color outlin") - .append("e-color\".split(\" \"),Ra=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/;function Sa(a") - .append("){if(!Ta.test(a))throw Error(\"'\"+a+\"' is not a valid hex color\");4==a.length&&") - .append("(a=a.replace(Ra,\"#$1$1$2$2$3$3\"));return a.toLowerCase()}var Ta=/^#(?:[0-9a-f]{3") - .append("}){1,2}$/i,Ua=/^(?:rgba)?\\((\\d{1,3}),\\s?(\\d{1,3}),\\s?(\\d{1,3}),\\s?(0|1|0\\.") - .append("\\d*)\\)$/i;\nfunction Va(a){var b=a.match(Ua);if(b){a=Number(b[1]);var c=Number(b") - .append("[2]),d=Number(b[3]),b=Number(b[4]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=d&&255>=d&&0<") - .append("=b&&1>=b)return[a,c,d,b]}return[]}var Wa=/^(?:rgb)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-") - .append("9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2})\\)$/i;function Xa(a){var b=a.match(Wa);if(b){a=N") - .append("umber(b[1]);var c=Number(b[2]),b=Number(b[3]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=b&") - .append("&255>=b)return[a,c,b]}return[]};function A(a,b){this.code=a;this.state=Ya[a]||Za;t") - .append("his.message=b||\"\";var c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){retu") - .append("rn a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")}),d=c.length-5;if(0>d||c.indexOf(") - .append("\"Error\",d)!=d)c+=\"Error\";this.name=c;c=Error(this.message);c.name=this.name;th") - .append("is.stack=c.stack||\"\"}s(A,Error);\nvar Za=\"unknown error\",Ya={15:\"element not ") - .append("selectable\",11:\"element not visible\",31:\"ime engine activation failed\",30:\"i") - .append("me not available\",24:\"invalid cookie domain\",29:\"invalid element coordinates\"") - .append(",12:\"invalid element state\",32:\"invalid selector\",51:\"invalid selector\",52:") - .append("\"invalid selector\",17:\"javascript error\",405:\"unsupported operation\",34:\"mo") - .append("ve target out of bounds\",27:\"no such alert\",7:\"no such element\",8:\"no such f") - .append("rame\",23:\"no such window\",28:\"script timeout\",33:\"session not created\",10:") - .append("\"stale element reference\",\n0:\"success\",21:\"timeout\",25:\"unable to set cook") - .append("ie\",26:\"unexpected alert open\"};Ya[13]=Za;Ya[9]=\"unknown command\";A.prototype") - .append(".toString=function(){return this.name+\": \"+this.message};function $a(a,b,c){this") - .append(".j=a;this.na=b||1;this.h=c||1};function ab(a){this.P=a;this.C=0}function bb(a){a=a") - .append(".match(cb);for(var b=0;b]=|") - .append("\\\\s+|.\",\"g\"),db=/^\\s/;function B(a,b){return a.P[a.C+(b||0)]}ab.prototype.ne") - .append("xt=function(){return this.P[this.C++]};ab.prototype.back=function(){this.C--};ab.p") - .append("rototype.empty=function(){return this.P.length<=this.C};function D(a){var b=null,c") - .append("=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b|") - .append("|null==b?\"\":b);if(\"string\"!=typeof b)if(9==c||1==c){a=9==c?a.documentElement:a") - .append(".firstChild;for(var c=0,d=[],b=\"\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c++]=") - .append("a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;ret") - .append("urn\"\"+b}\nfunction eb(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!") - .append("1}catch(d){return!1}return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}func") - .append("tion fb(a,b,c,d,e){return gb.call(null,a,b,p(c)?c:null,p(d)?d:null,e||new E)}\nfun") - .append("ction gb(a,b,c,d,e){b.getElementsByName&&d&&\"name\"==c?(b=b.getElementsByName(d),") - .append("u(b,function(b){a.matches(b)&&e.add(b)})):b.getElementsByClassName&&d&&\"class\"==") - .append("c?(b=b.getElementsByClassName(d),u(b,function(b){b.className==d&&a.matches(b)&&e.a") - .append("dd(b)})):a instanceof F?hb(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTa") - .append("gName(a.getName()),u(b,function(a){eb(a,c,d)&&e.add(a)}));return e}function ib(a,b") - .append(",c,d,e){for(b=b.firstChild;b;b=b.nextSibling)eb(b,c,d)&&a.matches(b)&&e.add(b);ret") - .append("urn e}\nfunction hb(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)eb(b,c,d)&&a.m") - .append("atches(b)&&e.add(b),hb(a,b,c,d,e)};function E(){this.h=this.e=null;this.v=0}functi") - .append("on jb(a){this.r=a;this.next=this.q=null}function kb(a,b){if(!a.e)return b;if(!b.e)") - .append("return a;for(var c=a.e,d=b.e,e=null,f=null,g=0;c&&d;)c.r==d.r?(f=c,c=c.next,d=d.ne") - .append("xt):0\",4,2,function(a,b,c){return tb(function(a,b){return a>b},a,b,c)});L(\"<=\",4,2,") - .append("function(a,b,c){return tb(function(a,b){return a<=b},a,b,c)});L(\">=\",4,2,functio") - .append("n(a,b,c){return tb(function(a,b){return a>=b},a,b,c)});var sb=L(\"=\",3,2,function") - .append("(a,b,c){return tb(function(a,b){return a==b},a,b,c,!0)});L(\"!=\",3,2,function(a,b") - .append(",c){return tb(function(a,b){return a!=b},a,b,c,!0)});L(\"and\",2,2,function(a,b,c)") - .append("{return qb(a,c)&&qb(b,c)});L(\"or\",1,2,function(a,b,c){return qb(a,c)||qb(b,c)});") - .append("function wb(a,b){if(b.l()&&4!=a.d)throw Error(\"Primary expression must evaluate t") - .append("o nodeset if filter has predicate(s).\");H.call(this,a.d);this.aa=a;this.b=b;this.") - .append("m=a.c();this.f=a.f}s(wb,H);wb.prototype.evaluate=function(a){a=this.aa.evaluate(a)") - .append(";return xb(this.b,a)};wb.prototype.toString=function(){var a;a=\"Filter:\"+I(this.") - .append("aa);return a+=I(this.b)};function yb(a,b){if(b.lengtha.L)throw Error(\"Function \"+a.g+\" expects at most \"+a.L+\" argume") - .append("nts, \"+b.length+\" given\");a.ka&&u(b,function(b,d){if(4!=b.d)throw Error(\"Argum") - .append("ent \"+d+\" to function \"+a.g+\" is not of type Nodeset: \"+b);});H.call(this,a.d") - .append(");this.B=a;this.H=b;ob(this,a.m||oa(b,function(a){return a.c()}));pb(this,a.ia&&!b") - .append(".length||a.ha&&!!b.length||oa(b,function(a){return a.f}))}\ns(yb,H);yb.prototype.e") - .append("valuate=function(a){return this.B.k.apply(null,sa(a,this.H))};yb.prototype.toStrin") - .append("g=function(){var a=\"Function: \"+this.B;if(this.H.length)var b=v(this.H,function(") - .append("a,b){return a+I(b)},\"Arguments:\"),a=a+I(b);return a};function zb(a,b,c,d,e,f,g,m") - .append(",q){this.g=a;this.d=b;this.m=c;this.ia=d;this.ha=e;this.k=f;this.Z=g;this.L=void 0") - .append("!==m?m:g;this.ka=!!q}zb.prototype.toString=h(\"g\");var Ab={};\nfunction M(a,b,c,d") - .append(",e,f,g,m){if(a in Ab)throw Error(\"Function already created: \"+a+\".\");Ab[a]=new") - .append(" zb(a,b,c,d,!1,e,f,g,m)}M(\"boolean\",2,!1,!1,function(a,b){return qb(b,a)},1);M(") - .append("\"ceiling\",1,!1,!1,function(a,b){return Math.ceil(J(b,a))},1);M(\"concat\",3,!1,!") - .append("1,function(a,b){var c=ta(arguments,1);return v(c,function(b,c){return b+K(c,a)},\"") - .append("\")},2,null);M(\"contains\",2,!1,!1,function(a,b,c){b=K(b,a);a=K(c,a);return-1!=b.") - .append("indexOf(a)},2);M(\"count\",1,!1,!1,function(a,b){return b.evaluate(a).l()},1,1,!0)") - .append(";\nM(\"false\",2,!1,!1,l(!1),0);M(\"floor\",1,!1,!1,function(a,b){return Math.floo") - .append("r(J(b,a))},1);M(\"id\",4,!1,!1,function(a,b){var c=a.j,d=9==c.nodeType?c:c.ownerDo") - .append("cument,c=K(b,a).split(/\\s+/),e=[];u(c,function(a){(a=d.getElementById(a))&&!ra(e,") - .append("a)&&e.push(a)});e.sort(Ea);var f=new E;u(e,function(a){f.add(a)});return f},1);M(") - .append("\"lang\",2,!1,!1,l(!1),1);M(\"last\",1,!0,!1,function(a){if(1!=arguments.length)th") - .append("row Error(\"Function last expects ()\");return a.h},0);\nM(\"local-name\",3,!1,!0,") - .append("function(a,b){var c=b?lb(b.evaluate(a)):a.j;return c?c.nodeName.toLowerCase():\"\"") - .append("},0,1,!0);M(\"name\",3,!1,!0,function(a,b){var c=b?lb(b.evaluate(a)):a.j;return c?") - .append("c.nodeName.toLowerCase():\"\"},0,1,!0);M(\"namespace-uri\",3,!0,!1,l(\"\"),0,1,!0)") - .append(";M(\"normalize-space\",3,!1,!0,function(a,b){return(b?K(b,a):D(a.j)).replace(/[\\s") - .append("\\xa0]+/g,\" \").replace(/^\\s+|\\s+$/g,\"\")},0,1);M(\"not\",2,!1,!1,function(a,b") - .append("){return!qb(b,a)},1);M(\"number\",1,!1,!0,function(a,b){return b?J(b,a):+D(a.j)},0") - .append(",1);\nM(\"position\",1,!0,!1,function(a){return a.na},0);M(\"round\",1,!1,!1,funct") - .append("ion(a,b){return Math.round(J(b,a))},1);M(\"starts-with\",2,!1,!1,function(a,b,c){b") - .append("=K(b,a);a=K(c,a);return 0==b.lastIndexOf(a,0)},2);M(\"string\",3,!1,!0,function(a,") - .append("b){return b?K(b,a):D(a.j)},0,1);M(\"string-length\",1,!1,!0,function(a,b){return(b") - .append("?K(b,a):D(a.j)).length},0,1);\nM(\"substring\",3,!1,!1,function(a,b,c,d){c=J(c,a);") - .append("if(isNaN(c)||Infinity==c||-Infinity==c)return\"\";d=d?J(d,a):Infinity;if(isNaN(d)|") - .append("|-Infinity===d)return\"\";c=Math.round(c)-1;var e=Math.max(c,0);a=K(b,a);if(Infini") - .append("ty==d)return a.substring(e);b=Math.round(d);return a.substring(e,c+b)},2,3);M(\"su") - .append("bstring-after\",3,!1,!1,function(a,b,c){b=K(b,a);a=K(c,a);c=b.indexOf(a);return-1=") - .append("=c?\"\":b.substring(c+a.length)},2);\nM(\"substring-before\",3,!1,!1,function(a,b,") - .append("c){b=K(b,a);a=K(c,a);a=b.indexOf(a);return-1==a?\"\":b.substring(0,a)},2);M(\"sum") - .append("\",1,!1,!1,function(a,b){for(var c=G(b.evaluate(a)),d=0,e=c.next();e;e=c.next())d+") - .append("=+D(e);return d},1,1,!0);M(\"translate\",3,!1,!1,function(a,b,c,d){b=K(b,a);c=K(c,") - .append("a);var e=K(d,a);a=[];for(d=0;da.length)throw Error(\"Unclos") - .append("ed literal string\");return new Cb(a)}function Zb(a){var b=a.a.next(),c=b.indexOf(") - .append("\":\");if(-1==c)return new Db(b);var d=b.substring(0,c);a=a.la(d);if(!a)throw Erro") - .append("r(\"Namespace prefix not declared: \"+d);b=b.substr(c+1);return new Db(b,a)}\nfunc") - .append("tion $b(a){var b,c=[],d;if(\"/\"==B(a.a)||\"//\"==B(a.a)){b=a.a.next();d=B(a.a);if") - .append("(\"/\"==b&&(a.a.empty()||\".\"!=d&&\"..\"!=d&&\"@\"!=d&&\"*\"!=d&&!/(?![0-9])[\\w]") - .append("/.test(d)))return new Hb;d=new Hb;Q(a,\"Missing next location step.\");b=ac(a,b);c") - .append(".push(b)}else{a:{b=B(a.a);d=b.charAt(0);switch(d){case \"$\":throw Error(\"Variabl") - .append("e reference not allowed in HTML XPath\");case \"(\":a.a.next();b=Ub(a);Q(a,'unclos") - .append("ed \"(\"');Wb(a,\")\");break;case '\"':case \"'\":b=Yb(a);break;default:if(isNaN(+") - .append("b))if(!Bb(b)&&/(?![0-9])[\\w]/.test(d)&&\n\"(\"==B(a.a,1)){b=a.a.next();b=Ab[b]||n") - .append("ull;a.a.next();for(d=[];\")\"!=B(a.a);){Q(a,\"Missing function argument list.\");d") - .append(".push(Ub(a));if(\",\"!=B(a.a))break;a.a.next()}Q(a,\"Unclosed function argument li") - .append("st.\");Xb(a);b=new yb(b,d)}else{b=null;break a}else b=new Eb(+a.a.next())}\"[\"==B") - .append("(a.a)&&(d=new N(bc(a)),b=new wb(b,d))}if(b)if(\"/\"==B(a.a)||\"//\"==B(a.a))d=b;el") - .append("se return b;else b=ac(a,\"/\"),d=new Ib,c.push(b)}for(;\"/\"==B(a.a)||\"//\"==B(a.") - .append("a);)b=a.a.next(),Q(a,\"Missing next location step.\"),b=ac(a,b),c.push(b);return n") - .append("ew Fb(d,\nc)}\nfunction ac(a,b){var c,d,e;if(\"/\"!=b&&\"//\"!=b)throw Error('Step") - .append(" op should be \"/\" or \"//\"');if(\".\"==B(a.a))return d=new O(Qb,new F(\"node\")") - .append("),a.a.next(),d;if(\"..\"==B(a.a))return d=new O(Pb,new F(\"node\")),a.a.next(),d;v") - .append("ar f;if(\"@\"==B(a.a))f=Gb,a.a.next(),Q(a,\"Missing attribute name\");else if(\"::") - .append("\"==B(a.a,1)){if(!/(?![0-9])[\\w]/.test(B(a.a).charAt(0)))throw Error(\"Bad token:") - .append(" \"+a.a.next());c=a.a.next();f=Ob[c]||null;if(!f)throw Error(\"No axis with name: ") - .append("\"+c);a.a.next();Q(a,\"Missing node name\")}else f=Lb;\nc=B(a.a);if(/(?![0-9])[\\w") - .append("]/.test(c.charAt(0)))if(\"(\"==B(a.a,1)){if(!Bb(c))throw Error(\"Invalid node type") - .append(": \"+c);c=a.a.next();if(!Bb(c))throw Error(\"Invalid type name: \"+c);Wb(a,\"(\");") - .append("Q(a,\"Bad nodetype\");e=B(a.a).charAt(0);var g=null;if('\"'==e||\"'\"==e)g=Yb(a);Q") - .append("(a,\"Bad nodetype\");Xb(a);c=new F(c,g)}else c=Zb(a);else if(\"*\"==c)c=Zb(a);else") - .append(" throw Error(\"Bad token: \"+a.a.next());e=new N(bc(a),f.s);return d||new O(f,c,e,") - .append("\"//\"==b)}\nfunction bc(a){for(var b=[];\"[\"==B(a.a);){a.a.next();Q(a,\"Missing ") - .append("predicate expression.\");var c=Ub(a);b.push(c);Q(a,\"Unclosed predicate expression") - .append(".\");Wb(a,\"]\")}return b}function Vb(a){if(\"-\"==B(a.a))return a.a.next(),new Rb") - .append("(Vb(a));var b=$b(a);if(\"|\"!=B(a.a))a=b;else{for(b=[b];\"|\"==a.a.next();)Q(a,\"M") - .append("issing next union location path.\"),b.push($b(a));a.a.back();a=new Sb(b)}return a}") - .append(";function cc(a,b){if(!a.length)throw Error(\"Empty XPath expression.\");var c=bb(a") - .append(");if(c.empty())throw Error(\"Invalid XPath expression.\");b?ca(b)||(b=ga(b.lookupN") - .append("amespaceURI,b)):b=l(null);var d=Ub(new Tb(c,b));if(!c.empty())throw Error(\"Bad to") - .append("ken: \"+c.next());this.evaluate=function(a,b){var c=d.evaluate(new $a(a));return n") - .append("ew S(c,b)}}\nfunction S(a,b){if(0==b)if(a instanceof E)b=4;else if(\"string\"==typ") - .append("eof a)b=2;else if(\"number\"==typeof a)b=1;else if(\"boolean\"==typeof a)b=3;else ") - .append("throw Error(\"Unexpected evaluation result.\");if(2!=b&&1!=b&&3!=b&&!(a instanceof") - .append(" E))throw Error(\"value could not be converted to the specified type\");this.resul") - .append("tType=b;var c;switch(b){case 2:this.stringValue=a instanceof E?mb(a):\"\"+a;break;") - .append("case 1:this.numberValue=a instanceof E?+mb(a):+a;break;case 3:this.booleanValue=a ") - .append("instanceof E?0=c.length?nul") - .append("l:c[f++]};this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error(\"snapshotItem c") - .append("alled with wrong result type\");return a>=c.length||0>a?null:c[a]}}S.ANY_TYPE=0;\n") - .append("S.NUMBER_TYPE=1;S.STRING_TYPE=2;S.BOOLEAN_TYPE=3;S.UNORDERED_NODE_ITERATOR_TYPE=4;") - .append("S.ORDERED_NODE_ITERATOR_TYPE=5;S.UNORDERED_NODE_SNAPSHOT_TYPE=6;S.ORDERED_NODE_SNA") - .append("PSHOT_TYPE=7;S.ANY_UNORDERED_NODE_TYPE=8;S.FIRST_ORDERED_NODE_TYPE=9;function dc(a") - .append("){a=a||n;var b=a.document;b.evaluate||(a.XPathResult=S,b.evaluate=function(a,b,e,f") - .append("){return(new cc(a,e)).evaluate(b,f)},b.createExpression=function(a,b){return new c") - .append("c(a,b)})};var T={};T.ga=function(){var a={qa:\"http://www.w3.org/2000/svg\"};retur") - .append("n function(b){return a[b]||null}}();T.k=function(a,b,c){var d=y(a);dc(d?d.parentWi") - .append("ndow||d.defaultView:window);try{var e=d.createNSResolver?d.createNSResolver(d.docu") - .append("mentElement):T.ga;return d.evaluate(b,a,e,c,null)}catch(f){throw new A(32,\"Unable") - .append(" to locate an element with the xpath expression \"+b+\" because of the following e") - .append("rror:\\n\"+f);}};\nT.R=function(a,b){if(!a||1!=a.nodeType)throw new A(32,'The resu") - .append("lt of the xpath expression \"'+b+'\" is: '+a+\". It should be an element.\");};T.p") - .append("=function(a,b){var c=function(){var c=T.k(b,a,9);return c?c.singleNodeValue||null:") - .append("b.selectSingleNode?(c=y(b),c.setProperty&&c.setProperty(\"SelectionLanguage\",\"XP") - .append("ath\"),b.selectSingleNode(a)):null}();null===c||T.R(c,a);return c};\nT.i=function(") - .append("a,b){var c=function(){var c=T.k(b,a,7);if(c){for(var e=c.snapshotLength,f=[],g=0;g") - .append("=this.left&&a.right<=this.right&&a.top>=") - .append("this.top&&a.bottom<=this.bottom:a.x>=this.left&&a.x<=this.right&&a.y>=this.top&&a.") - .append("y<=this.bottom:!1};\nU.prototype.ceil=function(){this.top=Math.ceil(this.top);this") - .append(".right=Math.ceil(this.right);this.bottom=Math.ceil(this.bottom);this.left=Math.cei") - .append("l(this.left);return this};U.prototype.floor=function(){this.top=Math.floor(this.to") - .append("p);this.right=Math.floor(this.right);this.bottom=Math.floor(this.bottom);this.left") - .append("=Math.floor(this.left);return this};\nU.prototype.round=function(){this.top=Math.r") - .append("ound(this.top);this.right=Math.round(this.right);this.bottom=Math.round(this.botto") - .append("m);this.left=Math.round(this.left);return this};function V(a,b,c,d){this.left=a;th") - .append("is.top=b;this.width=c;this.height=d}V.prototype.toString=function(){return\"(\"+th") - .append("is.left+\", \"+this.top+\" - \"+this.width+\"w x \"+this.height+\"h)\"};V.prototyp") - .append("e.contains=function(a){return a instanceof V?this.left<=a.left&&this.left+this.wid") - .append("th>=a.left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.height:a.x>=thi") - .append("s.left&&a.x<=this.left+this.width&&a.y>=this.top&&a.y<=this.top+this.height};\nV.p") - .append("rototype.ceil=function(){this.left=Math.ceil(this.left);this.top=Math.ceil(this.to") - .append("p);this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this") - .append("};V.prototype.floor=function(){this.left=Math.floor(this.left);this.top=Math.floor") - .append("(this.top);this.width=Math.floor(this.width);this.height=Math.floor(this.height);r") - .append("eturn this};\nV.prototype.round=function(){this.left=Math.round(this.left);this.to") - .append("p=Math.round(this.top);this.width=Math.round(this.width);this.height=Math.round(th") - .append("is.height);return this};function W(a,b){return!!a&&1==a.nodeType&&(!b||a.tagName.t") - .append("oUpperCase()==b)}var ec=/[;]+(?=(?:(?:[^\"]*\"){2})*[^\"]*$)(?=(?:(?:[^']*'){2})*[") - .append("^']*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;function fc(a){var b=[];u(a.split(ec),fu") - .append("nction(a){var d=a.indexOf(\":\");0=C.left+C.width;C=e.top>=C.top+C.height") - .append(";if(R&&\"hidden\"==k.x||C&&\"hidden\"==k.y)return Y;if(R&&\"visible\"!=k.x||C&&\"v") - .append("isible\"!=k.y){if(r&&(k=d(a),e.left>=g.scrollWidth-k.x||e.right>=g.scrollHeight-k.") - .append("y))return Y;e=lc(a);return e==Y?Y:\"scroll\"}}}return\"none\"}\nfunction kc(a){var") - .append(" b=mc(a);if(b)return b.rect;if(W(a,\"HTML\"))return a=((y(a)?y(a).parentWindow||y(") - .append("a).defaultView:window)||window).document,a=\"CSS1Compat\"==a.compatMode?a.document") - .append("Element:a.body,a=new wa(a.clientWidth,a.clientHeight),new V(0,0,a.width,a.height);") - .append("var c;try{c=a.getBoundingClientRect()}catch(d){return new V(0,0,0,0)}return new V(") - .append("c.left,c.top,c.right-c.left,c.bottom-c.top)}\nfunction mc(a){var b=W(a,\"MAP\");if") - .append("(!b&&!W(a,\"AREA\"))return null;var c=b?a:W(a.parentNode,\"MAP\")?a.parentNode:nul") - .append("l,d=null,e=null;if(c&&c.name&&(d=T.p('/descendant::*[@usemap = \"#'+c.name+'\"]',y") - .append("(c)))&&(e=kc(d),!b&&\"default\"!=a.shape.toLowerCase())){var f=pc(a);a=Math.min(Ma") - .append("th.max(f.left,0),e.width);b=Math.min(Math.max(f.top,0),e.height);c=Math.min(f.widt") - .append("h,e.width-a);f=Math.min(f.height,e.height-b);e=new V(a+e.left,b+e.top,c,f)}return{") - .append("V:d,rect:e||new V(0,0,0,0)}}\nfunction pc(a){var b=a.shape.toLowerCase();a=a.coord") - .append("s.split(\",\");if(\"rect\"==b&&4==a.length){var b=a[0],c=a[1];return new V(b,c,a[2") - .append("]-b,a[3]-c)}if(\"circle\"==b&&3==a.length)return b=a[2],new V(a[0]-b,a[1]-b,2*b,2*") - .append("b);if(\"poly\"==b&&2b?e+=\"000\":") - .append("256>b?e+=\"00\":4096>b&&(e+=\"0\");return Cc[a]=e+b.toString(16)}),'\"')};function") - .append(" Ec(a){switch(aa(a)){case \"string\":case \"number\":case \"boolean\":return a;cas") - .append("e \"function\":return a.toString();case \"array\":return na(a,Ec);case \"object\":") - .append("if(\"nodeType\"in a&&(1==a.nodeType||9==a.nodeType)){var b={};b.ELEMENT=Fc(a);retu") - .append("rn b}if(\"document\"in a)return b={},b.WINDOW=Fc(a),b;if(ba(a))return na(a,Ec);a=x") - .append("a(a,function(a,b){return\"number\"==typeof b||p(b)});return ya(a,Ec);default:retur") - .append("n null}}\nfunction Gc(a,b){return\"array\"==aa(a)?na(a,function(a){return Gc(a,b)}") - .append("):da(a)?\"function\"==typeof a?a:\"ELEMENT\"in a?Hc(a.ELEMENT,b):\"WINDOW\"in a?Hc") - .append("(a.WINDOW,b):ya(a,function(a){return Gc(a,b)}):a}function Ic(a){a=a||document;var ") - .append("b=a.$wdc_;b||(b=a.$wdc_={},b.N=ha());b.N||(b.N=ha());return b}function Fc(a){var b") - .append("=Ic(a.ownerDocument),c=za(b,function(b){return b==a});c||(c=\":wdc:\"+b.N++,b[c]=a") - .append(");return c}\nfunction Hc(a,b){a=decodeURIComponent(a);var c=b||document,d=Ic(c);if") - .append("(!(a in d))throw new A(10,\"Element does not exist in cache\");var e=d[a];if(\"set") - .append("Interval\"in e){if(e.closed)throw delete d[a],new A(23,\"Window has been closed.\"") - .append(");return e}for(var f=e;f;){if(f==c.documentElement)return e;f=f.parentNode}delete ") - .append("d[a];throw new A(10,\"Element is no longer attached to the DOM\");};function Jc(a,") - .append("b,c){var d={};d[a]=b;a=yc;c=[d,c];var d=window||ia,e;try{a=p(a)?new d.Function(a):") - .append("d==window?a:new d.Function(\"return (\"+a+\").apply(null,arguments);\");var f=Gc(c") - .append(",d.document),g=a.apply(null,f);e={status:0,value:Ec(g)}}catch(m){e={status:\"code") - .append("\"in m?m.code:13,value:{message:m.message}}}f=[];Ac(new zc,e,f);return f.join(\"\"") - .append(")}var Kc=[\"_\"],$=n;Kc[0]in $||!$.execScript||$.execScript(\"var \"+Kc[0]);for(va") - .append("r Lc;Kc.length&&(Lc=Kc.shift());)Kc.length||void 0===Jc?$=$[Lc]?$[Lc]:$[Lc]={}:$[L") - .append("c]=Jc;; return this._.apply(null,arguments);}.apply({navigator:typeof window!=unde") - .append("fined?window.navigator:null,document:typeof window!=undefined?window.document:null") - .append("}, arguments);}") - .toString()), - - FRAME_BY_ID_OR_NAME(new StringBuilder() - .append("function(){return function(){function h(a){return function(){return this[a]}}funct") - .append("ion l(a){return function(){return a}}var n=this;\nfunction aa(a){var b=typeof a;if") - .append("(\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)") - .append("return b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return") - .append("\"object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=t") - .append("ypeof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumera") - .append("ble(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof") - .append(" a.call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"c") - .append("all\"))return\"function\"}else return\"null\";\nelse if(\"function\"==b&&\"undefin") - .append("ed\"==typeof a.call)return\"object\";return b}function ba(a){var b=aa(a);return\"a") - .append("rray\"==b||\"object\"==b&&\"number\"==typeof a.length}function q(a){return\"string") - .append("\"==typeof a}function ca(a){return\"function\"==aa(a)}function da(a){var b=typeof ") - .append("a;return\"object\"==b&&null!=a||\"function\"==b}function ea(a,b,c){return a.call.a") - .append("pply(a.bind,arguments)}\nfunction fa(a,b,c){if(!a)throw Error();if(2c?null:q(a)?a.charAt(c):a[c]}function ra(a,b){var c;a:if(q(a))c=q(b)&&1=") - .append("=b.length?a.indexOf(b,0):-1;else{for(c=0;c=arguments.length?la.slice.call(a,b):la.slice.call(a,b,c)};functi") - .append("on ua(){return n.navigator?n.navigator.userAgent:null};var va;function w(a,b){this") - .append(".x=void 0!==a?a:0;this.y=void 0!==b?b:0}w.prototype.toString=function(){return\"(") - .append("\"+this.x+\", \"+this.y+\")\"};w.prototype.ceil=function(){this.x=Math.ceil(this.x") - .append(");this.y=Math.ceil(this.y);return this};w.prototype.floor=function(){this.x=Math.f") - .append("loor(this.x);this.y=Math.floor(this.y);return this};w.prototype.round=function(){t") - .append("his.x=Math.round(this.x);this.y=Math.round(this.y);return this};function wa(a,b){t") - .append("his.width=a;this.height=b}wa.prototype.toString=function(){return\"(\"+this.width+") - .append("\" x \"+this.height+\")\"};wa.prototype.ceil=function(){this.width=Math.ceil(this.") - .append("width);this.height=Math.ceil(this.height);return this};wa.prototype.floor=function") - .append("(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return th") - .append("is};wa.prototype.round=function(){this.width=Math.round(this.width);this.height=Ma") - .append("th.round(this.height);return this};function xa(a,b){var c={},d;for(d in a)b.call(v") - .append("oid 0,a[d],d,a)&&(c[d]=a[d]);return c}function ya(a,b){var c={},d;for(d in a)c[d]=") - .append("b.call(void 0,a[d],d,a);return c}function za(a,b){for(var c in a)if(b.call(void 0,") - .append("a[c],c,a))return c};var Aa=3;function x(a){return a?new Ba(y(a)):va||(va=new Ba)}f") - .append("unction Ca(a){for(;a&&1!=a.nodeType;)a=a.previousSibling;return a}function Da(a,b)") - .append("{if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if(\"undefined\"!=typeof ") - .append("a.compareDocumentPosition)return a==b||Boolean(a.compareDocumentPosition(b)&16);fo") - .append("r(;b&&a!=b;)b=b.parentNode;return b==a}\nfunction Ea(a,b){if(a==b)return 0;if(a.co") - .append("mpareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(\"sourceIndex") - .append("\"in a||a.parentNode&&\"sourceIndex\"in a.parentNode){var c=1==a.nodeType,d=1==b.n") - .append("odeType;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNo") - .append("de;return e==f?Fa(a,b):!c&&Da(e,b)?-1*Ga(a,b):!d&&Da(f,a)?Ga(b,a):(c?a.sourceIndex") - .append(":e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=y(a);c=d.createRange();c.selectN") - .append("ode(a);c.collapse(!0);d=d.createRange();d.selectNode(b);\nd.collapse(!0);return c.") - .append("compareBoundaryPoints(n.Range.START_TO_END,d)}function Ga(a,b){var c=a.parentNode;") - .append("if(c==b)return-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return Fa(d,a)}functi") - .append("on Fa(a,b){for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1}function y(a") - .append("){return 9==a.nodeType?a:a.ownerDocument||a.document}function Ha(a,b){a=a.parentNo") - .append("de;for(var c=0;a;){if(b(a))return a;a=a.parentNode;c++}return null}function Ba(a){") - .append("this.J=a||n.document||document}\nfunction z(a,b,c,d){a=d||a.J;b=b&&\"*\"!=b?b.toUp") - .append("perCase():\"\";if(a.querySelectorAll&&a.querySelector&&(b||c))c=a.querySelectorAll") - .append("(b+(c?\".\"+c:\"\"));else if(c&&a.getElementsByClassName)if(a=a.getElementsByClass") - .append("Name(c),b){d={};for(var e=0,f=0,g;g=a[f];f++)b==g.nodeName&&(d[e++]=g);d.length=e;") - .append("c=d}else c=a;else if(a=a.getElementsByTagName(b||\"*\"),c){d={};for(f=e=0;g=a[f];f") - .append("++)b=g.className,\"function\"==typeof b.split&&ra(b.split(/\\s+/),c)&&(d[e++]=g);d") - .append(".length=e;c=d}else c=a;return c}Ba.prototype.contains=Da;var Ia={Q:function(a){ret") - .append("urn!(!a.querySelectorAll||!a.querySelector)},p:function(a,b){if(!a)throw Error(\"N") - .append("o class name specified\");a=t(a);if(1(0==k[1].length?0:") - .append("parseInt(k[1],10))?1:0)||((0==r[2].length)<(0==k[2].length)?\n-1:(0==r[2].length)>") - .append("(0==k[2].length)?1:0)||(r[2]k[2]?1:0)}while(0==b)}}var Na=/Android") - .append("\\s+([0-9\\.]+)/.exec(ua()),Ma=Na?Na[1]:\"0\";La(2.3);La(4);var Oa={p:function(a,b") - .append("){ca(b.querySelector);if(!a)throw Error(\"No selector specified\");a=t(a);var c=b.") - .append("querySelector(a);return c&&1==c.nodeType?c:null},i:function(a,b){ca(b.querySelecto") - .append("rAll);if(!a)throw Error(\"No selector specified\");a=t(a);return b.querySelectorAl") - .append("l(a)}};var Pa={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aqu") - .append("amarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:") - .append("\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",bro") - .append("wn:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",") - .append("chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff") - .append("8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b") - .append("\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",\ndarkgrey") - .append(":\"#a9a9a9\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2") - .append("f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:") - .append("\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f") - .append("4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",") - .append("deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969") - .append("\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgree") - .append("n:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",\nghostwhite:\"#f8f8ff\",g") - .append("old:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",green:\"#008000\",greenyell") - .append("ow:\"#adff2f\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred") - .append(":\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6") - .append("e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",li") - .append("ghtblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyel") - .append("low:\"#fafad2\",lightgray:\"#d3d3d3\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\"") - .append(",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",\nlightseagreen:\"#20b2aa\",lightsk") - .append("yblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteel") - .append("blue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",li") - .append("nen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa") - .append("\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370db\",medium") - .append("seagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",med") - .append("iumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mint") - .append("cream:\"#f5fffa\",mistyrose:\"#ffe4e1\",\nmoccasin:\"#ffe4b5\",navajowhite:\"#ffde") - .append("ad\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",") - .append("orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8a") - .append("a\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#db7093\",papa") - .append("yawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"") - .append("#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",red:\"#ff0000\",rosybrown:\"#b") - .append("c8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrow") - .append("n:\"#f4a460\",seagreen:\"#2e8b57\",\nseashell:\"#fff5ee\",sienna:\"#a0522d\",silve") - .append("r:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slat") - .append("egrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",t") - .append("an:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:") - .append("\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f") - .append("5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"};var Qa=\"background-color bord") - .append("er-top-color border-right-color border-bottom-color border-left-color color outlin") - .append("e-color\".split(\" \"),Ra=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/;function Sa(a") - .append("){if(!Ta.test(a))throw Error(\"'\"+a+\"' is not a valid hex color\");4==a.length&&") - .append("(a=a.replace(Ra,\"#$1$1$2$2$3$3\"));return a.toLowerCase()}var Ta=/^#(?:[0-9a-f]{3") - .append("}){1,2}$/i,Ua=/^(?:rgba)?\\((\\d{1,3}),\\s?(\\d{1,3}),\\s?(\\d{1,3}),\\s?(0|1|0\\.") - .append("\\d*)\\)$/i;\nfunction Va(a){var b=a.match(Ua);if(b){a=Number(b[1]);var c=Number(b") - .append("[2]),d=Number(b[3]),b=Number(b[4]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=d&&255>=d&&0<") - .append("=b&&1>=b)return[a,c,d,b]}return[]}var Wa=/^(?:rgb)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-") - .append("9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2})\\)$/i;function Xa(a){var b=a.match(Wa);if(b){a=N") - .append("umber(b[1]);var c=Number(b[2]),b=Number(b[3]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=b&") - .append("&255>=b)return[a,c,b]}return[]};function A(a,b){this.code=a;this.state=Ya[a]||Za;t") - .append("his.message=b||\"\";var c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){retu") - .append("rn a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")}),d=c.length-5;if(0>d||c.indexOf(") - .append("\"Error\",d)!=d)c+=\"Error\";this.name=c;c=Error(this.message);c.name=this.name;th") - .append("is.stack=c.stack||\"\"}s(A,Error);\nvar Za=\"unknown error\",Ya={15:\"element not ") - .append("selectable\",11:\"element not visible\",31:\"ime engine activation failed\",30:\"i") - .append("me not available\",24:\"invalid cookie domain\",29:\"invalid element coordinates\"") - .append(",12:\"invalid element state\",32:\"invalid selector\",51:\"invalid selector\",52:") - .append("\"invalid selector\",17:\"javascript error\",405:\"unsupported operation\",34:\"mo") - .append("ve target out of bounds\",27:\"no such alert\",7:\"no such element\",8:\"no such f") - .append("rame\",23:\"no such window\",28:\"script timeout\",33:\"session not created\",10:") - .append("\"stale element reference\",\n0:\"success\",21:\"timeout\",25:\"unable to set cook") - .append("ie\",26:\"unexpected alert open\"};Ya[13]=Za;Ya[9]=\"unknown command\";A.prototype") - .append(".toString=function(){return this.name+\": \"+this.message};function $a(a,b,c){this") - .append(".j=a;this.na=b||1;this.h=c||1};function ab(a){this.P=a;this.C=0}function bb(a){a=a") - .append(".match(cb);for(var b=0;b]=|") - .append("\\\\s+|.\",\"g\"),db=/^\\s/;function B(a,b){return a.P[a.C+(b||0)]}ab.prototype.ne") - .append("xt=function(){return this.P[this.C++]};ab.prototype.back=function(){this.C--};ab.p") - .append("rototype.empty=function(){return this.P.length<=this.C};function D(a){var b=null,c") - .append("=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b|") - .append("|null==b?\"\":b);if(\"string\"!=typeof b)if(9==c||1==c){a=9==c?a.documentElement:a") - .append(".firstChild;for(var c=0,d=[],b=\"\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c++]=") - .append("a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;ret") - .append("urn\"\"+b}\nfunction eb(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!") - .append("1}catch(d){return!1}return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}func") - .append("tion fb(a,b,c,d,e){return gb.call(null,a,b,q(c)?c:null,q(d)?d:null,e||new E)}\nfun") - .append("ction gb(a,b,c,d,e){b.getElementsByName&&d&&\"name\"==c?(b=b.getElementsByName(d),") - .append("u(b,function(b){a.matches(b)&&e.add(b)})):b.getElementsByClassName&&d&&\"class\"==") - .append("c?(b=b.getElementsByClassName(d),u(b,function(b){b.className==d&&a.matches(b)&&e.a") - .append("dd(b)})):a instanceof F?hb(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTa") - .append("gName(a.getName()),u(b,function(a){eb(a,c,d)&&e.add(a)}));return e}function ib(a,b") - .append(",c,d,e){for(b=b.firstChild;b;b=b.nextSibling)eb(b,c,d)&&a.matches(b)&&e.add(b);ret") - .append("urn e}\nfunction hb(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)eb(b,c,d)&&a.m") - .append("atches(b)&&e.add(b),hb(a,b,c,d,e)};function E(){this.h=this.e=null;this.v=0}functi") - .append("on jb(a){this.r=a;this.next=this.q=null}function kb(a,b){if(!a.e)return b;if(!b.e)") - .append("return a;for(var c=a.e,d=b.e,e=null,f=null,g=0;c&&d;)c.r==d.r?(f=c,c=c.next,d=d.ne") - .append("xt):0\",4,2,function(a,b,c){return tb(function(a,b){return a>b},a,b,c)});L(\"<=\",4,2,") - .append("function(a,b,c){return tb(function(a,b){return a<=b},a,b,c)});L(\">=\",4,2,functio") - .append("n(a,b,c){return tb(function(a,b){return a>=b},a,b,c)});var sb=L(\"=\",3,2,function") - .append("(a,b,c){return tb(function(a,b){return a==b},a,b,c,!0)});L(\"!=\",3,2,function(a,b") - .append(",c){return tb(function(a,b){return a!=b},a,b,c,!0)});L(\"and\",2,2,function(a,b,c)") - .append("{return qb(a,c)&&qb(b,c)});L(\"or\",1,2,function(a,b,c){return qb(a,c)||qb(b,c)});") - .append("function wb(a,b){if(b.l()&&4!=a.d)throw Error(\"Primary expression must evaluate t") - .append("o nodeset if filter has predicate(s).\");H.call(this,a.d);this.aa=a;this.b=b;this.") - .append("m=a.c();this.f=a.f}s(wb,H);wb.prototype.evaluate=function(a){a=this.aa.evaluate(a)") - .append(";return xb(this.b,a)};wb.prototype.toString=function(){var a;a=\"Filter:\"+I(this.") - .append("aa);return a+=I(this.b)};function yb(a,b){if(b.lengtha.L)throw Error(\"Function \"+a.g+\" expects at most \"+a.L+\" argume") - .append("nts, \"+b.length+\" given\");a.ka&&u(b,function(b,d){if(4!=b.d)throw Error(\"Argum") - .append("ent \"+d+\" to function \"+a.g+\" is not of type Nodeset: \"+b);});H.call(this,a.d") - .append(");this.B=a;this.H=b;ob(this,a.m||oa(b,function(a){return a.c()}));pb(this,a.ia&&!b") - .append(".length||a.ha&&!!b.length||oa(b,function(a){return a.f}))}\ns(yb,H);yb.prototype.e") - .append("valuate=function(a){return this.B.k.apply(null,sa(a,this.H))};yb.prototype.toStrin") - .append("g=function(){var a=\"Function: \"+this.B;if(this.H.length)var b=v(this.H,function(") - .append("a,b){return a+I(b)},\"Arguments:\"),a=a+I(b);return a};function zb(a,b,c,d,e,f,g,m") - .append(",p){this.g=a;this.d=b;this.m=c;this.ia=d;this.ha=e;this.k=f;this.Z=g;this.L=void 0") - .append("!==m?m:g;this.ka=!!p}zb.prototype.toString=h(\"g\");var Ab={};\nfunction M(a,b,c,d") - .append(",e,f,g,m){if(a in Ab)throw Error(\"Function already created: \"+a+\".\");Ab[a]=new") - .append(" zb(a,b,c,d,!1,e,f,g,m)}M(\"boolean\",2,!1,!1,function(a,b){return qb(b,a)},1);M(") - .append("\"ceiling\",1,!1,!1,function(a,b){return Math.ceil(J(b,a))},1);M(\"concat\",3,!1,!") - .append("1,function(a,b){var c=ta(arguments,1);return v(c,function(b,c){return b+K(c,a)},\"") - .append("\")},2,null);M(\"contains\",2,!1,!1,function(a,b,c){b=K(b,a);a=K(c,a);return-1!=b.") - .append("indexOf(a)},2);M(\"count\",1,!1,!1,function(a,b){return b.evaluate(a).l()},1,1,!0)") - .append(";\nM(\"false\",2,!1,!1,l(!1),0);M(\"floor\",1,!1,!1,function(a,b){return Math.floo") - .append("r(J(b,a))},1);M(\"id\",4,!1,!1,function(a,b){var c=a.j,d=9==c.nodeType?c:c.ownerDo") - .append("cument,c=K(b,a).split(/\\s+/),e=[];u(c,function(a){(a=d.getElementById(a))&&!ra(e,") - .append("a)&&e.push(a)});e.sort(Ea);var f=new E;u(e,function(a){f.add(a)});return f},1);M(") - .append("\"lang\",2,!1,!1,l(!1),1);M(\"last\",1,!0,!1,function(a){if(1!=arguments.length)th") - .append("row Error(\"Function last expects ()\");return a.h},0);\nM(\"local-name\",3,!1,!0,") - .append("function(a,b){var c=b?lb(b.evaluate(a)):a.j;return c?c.nodeName.toLowerCase():\"\"") - .append("},0,1,!0);M(\"name\",3,!1,!0,function(a,b){var c=b?lb(b.evaluate(a)):a.j;return c?") - .append("c.nodeName.toLowerCase():\"\"},0,1,!0);M(\"namespace-uri\",3,!0,!1,l(\"\"),0,1,!0)") - .append(";M(\"normalize-space\",3,!1,!0,function(a,b){return(b?K(b,a):D(a.j)).replace(/[\\s") - .append("\\xa0]+/g,\" \").replace(/^\\s+|\\s+$/g,\"\")},0,1);M(\"not\",2,!1,!1,function(a,b") - .append("){return!qb(b,a)},1);M(\"number\",1,!1,!0,function(a,b){return b?J(b,a):+D(a.j)},0") - .append(",1);\nM(\"position\",1,!0,!1,function(a){return a.na},0);M(\"round\",1,!1,!1,funct") - .append("ion(a,b){return Math.round(J(b,a))},1);M(\"starts-with\",2,!1,!1,function(a,b,c){b") - .append("=K(b,a);a=K(c,a);return 0==b.lastIndexOf(a,0)},2);M(\"string\",3,!1,!0,function(a,") - .append("b){return b?K(b,a):D(a.j)},0,1);M(\"string-length\",1,!1,!0,function(a,b){return(b") - .append("?K(b,a):D(a.j)).length},0,1);\nM(\"substring\",3,!1,!1,function(a,b,c,d){c=J(c,a);") - .append("if(isNaN(c)||Infinity==c||-Infinity==c)return\"\";d=d?J(d,a):Infinity;if(isNaN(d)|") - .append("|-Infinity===d)return\"\";c=Math.round(c)-1;var e=Math.max(c,0);a=K(b,a);if(Infini") - .append("ty==d)return a.substring(e);b=Math.round(d);return a.substring(e,c+b)},2,3);M(\"su") - .append("bstring-after\",3,!1,!1,function(a,b,c){b=K(b,a);a=K(c,a);c=b.indexOf(a);return-1=") - .append("=c?\"\":b.substring(c+a.length)},2);\nM(\"substring-before\",3,!1,!1,function(a,b,") - .append("c){b=K(b,a);a=K(c,a);a=b.indexOf(a);return-1==a?\"\":b.substring(0,a)},2);M(\"sum") - .append("\",1,!1,!1,function(a,b){for(var c=G(b.evaluate(a)),d=0,e=c.next();e;e=c.next())d+") - .append("=+D(e);return d},1,1,!0);M(\"translate\",3,!1,!1,function(a,b,c,d){b=K(b,a);c=K(c,") - .append("a);var e=K(d,a);a=[];for(d=0;da.length)throw Error(\"Unclos") - .append("ed literal string\");return new Cb(a)}function Zb(a){var b=a.a.next(),c=b.indexOf(") - .append("\":\");if(-1==c)return new Db(b);var d=b.substring(0,c);a=a.la(d);if(!a)throw Erro") - .append("r(\"Namespace prefix not declared: \"+d);b=b.substr(c+1);return new Db(b,a)}\nfunc") - .append("tion $b(a){var b,c=[],d;if(\"/\"==B(a.a)||\"//\"==B(a.a)){b=a.a.next();d=B(a.a);if") - .append("(\"/\"==b&&(a.a.empty()||\".\"!=d&&\"..\"!=d&&\"@\"!=d&&\"*\"!=d&&!/(?![0-9])[\\w]") - .append("/.test(d)))return new Hb;d=new Hb;Q(a,\"Missing next location step.\");b=ac(a,b);c") - .append(".push(b)}else{a:{b=B(a.a);d=b.charAt(0);switch(d){case \"$\":throw Error(\"Variabl") - .append("e reference not allowed in HTML XPath\");case \"(\":a.a.next();b=Ub(a);Q(a,'unclos") - .append("ed \"(\"');Wb(a,\")\");break;case '\"':case \"'\":b=Yb(a);break;default:if(isNaN(+") - .append("b))if(!Bb(b)&&/(?![0-9])[\\w]/.test(d)&&\n\"(\"==B(a.a,1)){b=a.a.next();b=Ab[b]||n") - .append("ull;a.a.next();for(d=[];\")\"!=B(a.a);){Q(a,\"Missing function argument list.\");d") - .append(".push(Ub(a));if(\",\"!=B(a.a))break;a.a.next()}Q(a,\"Unclosed function argument li") - .append("st.\");Xb(a);b=new yb(b,d)}else{b=null;break a}else b=new Eb(+a.a.next())}\"[\"==B") - .append("(a.a)&&(d=new N(bc(a)),b=new wb(b,d))}if(b)if(\"/\"==B(a.a)||\"//\"==B(a.a))d=b;el") - .append("se return b;else b=ac(a,\"/\"),d=new Ib,c.push(b)}for(;\"/\"==B(a.a)||\"//\"==B(a.") - .append("a);)b=a.a.next(),Q(a,\"Missing next location step.\"),b=ac(a,b),c.push(b);return n") - .append("ew Fb(d,\nc)}\nfunction ac(a,b){var c,d,e;if(\"/\"!=b&&\"//\"!=b)throw Error('Step") - .append(" op should be \"/\" or \"//\"');if(\".\"==B(a.a))return d=new O(Qb,new F(\"node\")") - .append("),a.a.next(),d;if(\"..\"==B(a.a))return d=new O(Pb,new F(\"node\")),a.a.next(),d;v") - .append("ar f;if(\"@\"==B(a.a))f=Gb,a.a.next(),Q(a,\"Missing attribute name\");else if(\"::") - .append("\"==B(a.a,1)){if(!/(?![0-9])[\\w]/.test(B(a.a).charAt(0)))throw Error(\"Bad token:") - .append(" \"+a.a.next());c=a.a.next();f=Ob[c]||null;if(!f)throw Error(\"No axis with name: ") - .append("\"+c);a.a.next();Q(a,\"Missing node name\")}else f=Lb;\nc=B(a.a);if(/(?![0-9])[\\w") - .append("]/.test(c.charAt(0)))if(\"(\"==B(a.a,1)){if(!Bb(c))throw Error(\"Invalid node type") - .append(": \"+c);c=a.a.next();if(!Bb(c))throw Error(\"Invalid type name: \"+c);Wb(a,\"(\");") - .append("Q(a,\"Bad nodetype\");e=B(a.a).charAt(0);var g=null;if('\"'==e||\"'\"==e)g=Yb(a);Q") - .append("(a,\"Bad nodetype\");Xb(a);c=new F(c,g)}else c=Zb(a);else if(\"*\"==c)c=Zb(a);else") - .append(" throw Error(\"Bad token: \"+a.a.next());e=new N(bc(a),f.s);return d||new O(f,c,e,") - .append("\"//\"==b)}\nfunction bc(a){for(var b=[];\"[\"==B(a.a);){a.a.next();Q(a,\"Missing ") - .append("predicate expression.\");var c=Ub(a);b.push(c);Q(a,\"Unclosed predicate expression") - .append(".\");Wb(a,\"]\")}return b}function Vb(a){if(\"-\"==B(a.a))return a.a.next(),new Rb") - .append("(Vb(a));var b=$b(a);if(\"|\"!=B(a.a))a=b;else{for(b=[b];\"|\"==a.a.next();)Q(a,\"M") - .append("issing next union location path.\"),b.push($b(a));a.a.back();a=new Sb(b)}return a}") - .append(";function cc(a,b){if(!a.length)throw Error(\"Empty XPath expression.\");var c=bb(a") - .append(");if(c.empty())throw Error(\"Invalid XPath expression.\");b?ca(b)||(b=ga(b.lookupN") - .append("amespaceURI,b)):b=l(null);var d=Ub(new Tb(c,b));if(!c.empty())throw Error(\"Bad to") - .append("ken: \"+c.next());this.evaluate=function(a,b){var c=d.evaluate(new $a(a));return n") - .append("ew S(c,b)}}\nfunction S(a,b){if(0==b)if(a instanceof E)b=4;else if(\"string\"==typ") - .append("eof a)b=2;else if(\"number\"==typeof a)b=1;else if(\"boolean\"==typeof a)b=3;else ") - .append("throw Error(\"Unexpected evaluation result.\");if(2!=b&&1!=b&&3!=b&&!(a instanceof") - .append(" E))throw Error(\"value could not be converted to the specified type\");this.resul") - .append("tType=b;var c;switch(b){case 2:this.stringValue=a instanceof E?mb(a):\"\"+a;break;") - .append("case 1:this.numberValue=a instanceof E?+mb(a):+a;break;case 3:this.booleanValue=a ") - .append("instanceof E?0=c.length?nul") - .append("l:c[f++]};this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error(\"snapshotItem c") - .append("alled with wrong result type\");return a>=c.length||0>a?null:c[a]}}S.ANY_TYPE=0;\n") - .append("S.NUMBER_TYPE=1;S.STRING_TYPE=2;S.BOOLEAN_TYPE=3;S.UNORDERED_NODE_ITERATOR_TYPE=4;") - .append("S.ORDERED_NODE_ITERATOR_TYPE=5;S.UNORDERED_NODE_SNAPSHOT_TYPE=6;S.ORDERED_NODE_SNA") - .append("PSHOT_TYPE=7;S.ANY_UNORDERED_NODE_TYPE=8;S.FIRST_ORDERED_NODE_TYPE=9;function dc(a") - .append("){a=a||n;var b=a.document;b.evaluate||(a.XPathResult=S,b.evaluate=function(a,b,e,f") - .append("){return(new cc(a,e)).evaluate(b,f)},b.createExpression=function(a,b){return new c") - .append("c(a,b)})};var T={};T.ga=function(){var a={qa:\"http://www.w3.org/2000/svg\"};retur") - .append("n function(b){return a[b]||null}}();T.k=function(a,b,c){var d=y(a);dc(d?d.parentWi") - .append("ndow||d.defaultView:window);try{var e=d.createNSResolver?d.createNSResolver(d.docu") - .append("mentElement):T.ga;return d.evaluate(b,a,e,c,null)}catch(f){throw new A(32,\"Unable") - .append(" to locate an element with the xpath expression \"+b+\" because of the following e") - .append("rror:\\n\"+f);}};\nT.R=function(a,b){if(!a||1!=a.nodeType)throw new A(32,'The resu") - .append("lt of the xpath expression \"'+b+'\" is: '+a+\". It should be an element.\");};T.p") - .append("=function(a,b){var c=function(){var c=T.k(b,a,9);return c?c.singleNodeValue||null:") - .append("b.selectSingleNode?(c=y(b),c.setProperty&&c.setProperty(\"SelectionLanguage\",\"XP") - .append("ath\"),b.selectSingleNode(a)):null}();null===c||T.R(c,a);return c};\nT.i=function(") - .append("a,b){var c=function(){var c=T.k(b,a,7);if(c){for(var e=c.snapshotLength,f=[],g=0;g") - .append("=this.left&&a.right<=this.right&&a.top>=") - .append("this.top&&a.bottom<=this.bottom:a.x>=this.left&&a.x<=this.right&&a.y>=this.top&&a.") - .append("y<=this.bottom:!1};\nU.prototype.ceil=function(){this.top=Math.ceil(this.top);this") - .append(".right=Math.ceil(this.right);this.bottom=Math.ceil(this.bottom);this.left=Math.cei") - .append("l(this.left);return this};U.prototype.floor=function(){this.top=Math.floor(this.to") - .append("p);this.right=Math.floor(this.right);this.bottom=Math.floor(this.bottom);this.left") - .append("=Math.floor(this.left);return this};\nU.prototype.round=function(){this.top=Math.r") - .append("ound(this.top);this.right=Math.round(this.right);this.bottom=Math.round(this.botto") - .append("m);this.left=Math.round(this.left);return this};function V(a,b,c,d){this.left=a;th") - .append("is.top=b;this.width=c;this.height=d}V.prototype.toString=function(){return\"(\"+th") - .append("is.left+\", \"+this.top+\" - \"+this.width+\"w x \"+this.height+\"h)\"};V.prototyp") - .append("e.contains=function(a){return a instanceof V?this.left<=a.left&&this.left+this.wid") - .append("th>=a.left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.height:a.x>=thi") - .append("s.left&&a.x<=this.left+this.width&&a.y>=this.top&&a.y<=this.top+this.height};\nV.p") - .append("rototype.ceil=function(){this.left=Math.ceil(this.left);this.top=Math.ceil(this.to") - .append("p);this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this") - .append("};V.prototype.floor=function(){this.left=Math.floor(this.left);this.top=Math.floor") - .append("(this.top);this.width=Math.floor(this.width);this.height=Math.floor(this.height);r") - .append("eturn this};\nV.prototype.round=function(){this.left=Math.round(this.left);this.to") - .append("p=Math.round(this.top);this.width=Math.round(this.width);this.height=Math.round(th") - .append("is.height);return this};function W(a,b){return!!a&&1==a.nodeType&&(!b||a.tagName.t") - .append("oUpperCase()==b)}var ec=/[;]+(?=(?:(?:[^\"]*\"){2})*[^\"]*$)(?=(?:(?:[^']*'){2})*[") - .append("^']*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;function fc(a){var b=[];u(a.split(ec),fu") - .append("nction(a){var d=a.indexOf(\":\");0=C.left+C.width;C=e.top>=C.top+C.height") - .append(";if(R&&\"hidden\"==k.x||C&&\"hidden\"==k.y)return Y;if(R&&\"visible\"!=k.x||C&&\"v") - .append("isible\"!=k.y){if(r&&(k=d(a),e.left>=g.scrollWidth-k.x||e.right>=g.scrollHeight-k.") - .append("y))return Y;e=lc(a);return e==Y?Y:\"scroll\"}}}return\"none\"}\nfunction kc(a){var") - .append(" b=mc(a);if(b)return b.rect;if(W(a,\"HTML\"))return a=((y(a)?y(a).parentWindow||y(") - .append("a).defaultView:window)||window).document,a=\"CSS1Compat\"==a.compatMode?a.document") - .append("Element:a.body,a=new wa(a.clientWidth,a.clientHeight),new V(0,0,a.width,a.height);") - .append("var c;try{c=a.getBoundingClientRect()}catch(d){return new V(0,0,0,0)}return new V(") - .append("c.left,c.top,c.right-c.left,c.bottom-c.top)}\nfunction mc(a){var b=W(a,\"MAP\");if") - .append("(!b&&!W(a,\"AREA\"))return null;var c=b?a:W(a.parentNode,\"MAP\")?a.parentNode:nul") - .append("l,d=null,e=null;if(c&&c.name&&(d=T.p('/descendant::*[@usemap = \"#'+c.name+'\"]',y") - .append("(c)))&&(e=kc(d),!b&&\"default\"!=a.shape.toLowerCase())){var f=pc(a);a=Math.min(Ma") - .append("th.max(f.left,0),e.width);b=Math.min(Math.max(f.top,0),e.height);c=Math.min(f.widt") - .append("h,e.width-a);f=Math.min(f.height,e.height-b);e=new V(a+e.left,b+e.top,c,f)}return{") - .append("V:d,rect:e||new V(0,0,0,0)}}\nfunction pc(a){var b=a.shape.toLowerCase();a=a.coord") - .append("s.split(\",\");if(\"rect\"==b&&4==a.length){var b=a[0],c=a[1];return new V(b,c,a[2") - .append("]-b,a[3]-c)}if(\"circle\"==b&&3==a.length)return b=a[2],new V(a[0]-b,a[1]-b,2*b,2*") - .append("b);if(\"poly\"==b&&2") - .append("b?e+=\"000\":256>b?e+=\"00\":4096>b&&(e+=\"0\");return Cc[a]=e+b.toString(16)}),'") - .append("\"')};function Ec(a){switch(aa(a)){case \"string\":case \"number\":case \"boolean") - .append("\":return a;case \"function\":return a.toString();case \"array\":return na(a,Ec);c") - .append("ase \"object\":if(\"nodeType\"in a&&(1==a.nodeType||9==a.nodeType)){var b={};b.ELE") - .append("MENT=Fc(a);return b}if(\"document\"in a)return b={},b.WINDOW=Fc(a),b;if(ba(a))retu") - .append("rn na(a,Ec);a=xa(a,function(a,b){return\"number\"==typeof b||q(b)});return ya(a,Ec") - .append(");default:return null}}\nfunction Gc(a,b){return\"array\"==aa(a)?na(a,function(a){") - .append("return Gc(a,b)}):da(a)?\"function\"==typeof a?a:\"ELEMENT\"in a?Hc(a.ELEMENT,b):\"") - .append("WINDOW\"in a?Hc(a.WINDOW,b):ya(a,function(a){return Gc(a,b)}):a}function Ic(a){a=a") - .append("||document;var b=a.$wdc_;b||(b=a.$wdc_={},b.N=ha());b.N||(b.N=ha());return b}funct") - .append("ion Fc(a){var b=Ic(a.ownerDocument),c=za(b,function(b){return b==a});c||(c=\":wdc:") - .append("\"+b.N++,b[c]=a);return c}\nfunction Hc(a,b){a=decodeURIComponent(a);var c=b||docu") - .append("ment,d=Ic(c);if(!(a in d))throw new A(10,\"Element does not exist in cache\");var ") - .append("e=d[a];if(\"setInterval\"in e){if(e.closed)throw delete d[a],new A(23,\"Window has") - .append(" been closed.\");return e}for(var f=e;f;){if(f==c.documentElement)return e;f=f.par") - .append("entNode}delete d[a];throw new A(10,\"Element is no longer attached to the DOM\");}") - .append(";function Jc(a,b){var c=yc,d=[a,b],e=window||ia,f;try{var c=q(c)?new e.Function(c)") - .append(":e==window?c:new e.Function(\"return (\"+c+\").apply(null,arguments);\"),g=Gc(d,e.") - .append("document),m=c.apply(null,g);f={status:0,value:Ec(m)}}catch(p){f={status:\"code\"in") - .append(" p?p.code:13,value:{message:p.message}}}c=[];Ac(new zc,f,c);return c.join(\"\")}va") - .append("r Kc=[\"_\"],$=n;Kc[0]in $||!$.execScript||$.execScript(\"var \"+Kc[0]);for(var Lc") - .append(";Kc.length&&(Lc=Kc.shift());)Kc.length||void 0===Jc?$=$[Lc]?$[Lc]:$[Lc]={}:$[Lc]=J") - .append("c;; return this._.apply(null,arguments);}.apply({navigator:typeof window!=undefine") - .append("d?window.navigator:null,document:typeof window!=undefined?window.document:null}, a") - .append("rguments);}") - .toString()), - - FRAME_BY_INDEX(new StringBuilder() - .append("function(){return function(){function g(a){return function(){return a}}var h=this;") - .append("\nfunction k(a){var b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return") - .append("\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);") - .append("if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==t") - .append("ypeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIs") - .append("Enumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Funct") - .append("ion]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumera") - .append("ble&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\nel") - .append("se if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b}func") - .append("tion aa(a){var b=k(a);return\"array\"==b||\"object\"==b&&\"number\"==typeof a.leng") - .append("th}function l(a){return\"string\"==typeof a}function ba(a){var b=typeof a;return\"") - .append("object\"==b&&null!=a||\"function\"==b}var n=Date.now||function(){return+new Date};") - .append("var p=window;var t=Array.prototype;function u(a,b){for(var c=a.length,d=l(a)?a.spl") - .append("it(\"\"):a,e=0;e=arguments.length?t.slice.call(a,b):t.slice.call(a,b,c)};function x(){return h.") - .append("navigator?h.navigator.userAgent:null};function ea(a,b){var c={},d;for(d in a)b.cal") - .append("l(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function y(a,b){var c={},d;for(d in a)c[d") - .append("]=b.call(void 0,a[d],d,a);return c}function fa(a,b){for(var c in a)if(b.call(void ") - .append("0,a[c],c,a))return c};function z(a,b){if(a.contains&&1==b.nodeType)return a==b||a.") - .append("contains(b);if(\"undefined\"!=typeof a.compareDocumentPosition)return a==b||Boolea") - .append("n(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}\nfunc") - .append("tion ga(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumen") - .append("tPosition(b)&2?1:-1;if(\"sourceIndex\"in a||a.parentNode&&\"sourceIndex\"in a.pare") - .append("ntNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceI") - .append("ndex;var e=a.parentNode,f=b.parentNode;return e==f?A(a,b):!c&&z(e,b)?-1*B(a,b):!d&") - .append("&z(f,a)?B(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=9") - .append("==a.nodeType?a:a.ownerDocument||a.document;c=d.createRange();c.selectNode(a);c.col") - .append("lapse(!0);\nd=d.createRange();d.selectNode(b);d.collapse(!0);return c.compareBound") - .append("aryPoints(h.Range.START_TO_END,d)}function B(a,b){var c=a.parentNode;if(c==b)retur") - .append("n-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return A(d,a)}function A(a,b){for(") - .append("var c=b;c=c.previousSibling;)if(c==a)return-1;return 1};function C(a){return(a=a.e") - .append("xec(x()))?a[1]:\"\"}C(/Android\\s+([0-9.]+)/)||C(/Version\\/([0-9.]+)/);function D") - .append("(a){var b=0,c=String(ha).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\".\");a") - .append("=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\".\");for(var d=Math.") - .append("max(c.length,a.length),e=0;0==b&&e(0==s[1].length?\n0:parseInt(s[1],10))?") - .append("1:0)||((0==m[2].length)<(0==s[2].length)?-1:(0==m[2].length)>(0==s[2].length)?1:0)") - .append("||(m[2]s[2]?1:0)}while(0==b)}}var E=/Android\\s+([0-9\\.]+)/.exec(x(") - .append(")),ha=E?E[1]:\"0\";D(2.3);D(4);function F(a,b){this.code=a;this.state=G[a]||ia;thi") - .append("s.message=b||\"\";var c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){return") - .append(" a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")}),d=c.length-5;if(0>d||c.indexOf(\"") - .append("Error\",d)!=d)c+=\"Error\";this.name=c;c=Error(this.message);c.name=this.name;this") - .append(".stack=c.stack||\"\"}(function(){var a=Error;function b(){}b.prototype=a.prototype") - .append(";F.C=a.prototype;F.prototype=new b})();\nvar ia=\"unknown error\",G={15:\"element ") - .append("not selectable\",11:\"element not visible\",31:\"ime engine activation failed\",30") - .append(":\"ime not available\",24:\"invalid cookie domain\",29:\"invalid element coordinat") - .append("es\",12:\"invalid element state\",32:\"invalid selector\",51:\"invalid selector\",") - .append("52:\"invalid selector\",17:\"javascript error\",405:\"unsupported operation\",34:") - .append("\"move target out of bounds\",27:\"no such alert\",7:\"no such element\",8:\"no su") - .append("ch frame\",23:\"no such window\",28:\"script timeout\",33:\"session not created\",") - .append("10:\"stale element reference\",\n0:\"success\",21:\"timeout\",25:\"unable to set c") - .append("ookie\",26:\"unexpected alert open\"};G[13]=ia;G[9]=\"unknown command\";F.prototyp") - .append("e.toString=function(){return this.name+\": \"+this.message};function H(a){var b=nu") - .append("ll,c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0") - .append("==b||null==b?\"\":b);if(\"string\"!=typeof b)if(9==c||1==c){a=9==c?a.documentEleme") - .append("nt:a.firstChild;for(var c=0,d=[],b=\"\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c") - .append("++]=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue") - .append(";return\"\"+b}\nfunction I(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)retu") - .append("rn!1}catch(d){return!1}return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}f") - .append("unction J(a,b,c,d,e){return ja.call(null,a,b,l(c)?c:null,l(d)?d:null,e||new K)}\nf") - .append("unction ja(a,b,c,d,e){b.getElementsByName&&d&&\"name\"==c?(b=b.getElementsByName(d") - .append("),u(b,function(b){a.matches(b)&&e.add(b)})):b.getElementsByClassName&&d&&\"class\"") - .append("==c?(b=b.getElementsByClassName(d),u(b,function(b){b.className==d&&a.matches(b)&&e") - .append(".add(b)})):b.getElementsByTagName&&(b=b.getElementsByTagName(a.getName()),u(b,func") - .append("tion(a){I(a,c,d)&&e.add(a)}));return e}function ka(a,b,c,d,e){for(b=b.firstChild;b") - .append(";b=b.nextSibling)I(b,c,d)&&a.matches(b)&&e.add(b);return e}\nfunction la(a,b,c,d,e") - .append("){for(b=b.firstChild;b;b=b.nextSibling)I(b,c,d)&&a.matches(b)&&e.add(b),la(a,b,c,d") - .append(",e)};function K(){this.b=this.a=null;this.d=0}function ma(a){this.j=a;this.next=th") - .append("is.h=null}K.prototype.unshift=function(a){a=new ma(a);a.next=this.a;this.b?this.a.") - .append("h=a:this.a=this.b=a;this.a=a;this.d++};K.prototype.add=function(a){a=new ma(a);a.h") - .append("=this.b;this.a?this.b.next=a:this.a=this.b=a;this.b=a;this.d++};function L(a){retu") - .append("rn(a=a.a)?a.j:null}function na(a){return(a=L(a))?H(a):\"\"}function M(a,b){this.v=") - .append("a;this.i=(this.k=b)?a.b:a.a;this.n=null}\nM.prototype.next=function(){var a=this.i") - .append(";if(null==a)return null;var b=this.n=a;this.i=this.k?a.h:a.next;return b.j};functi") - .append("on N(a,b){var c=a.evaluate(b);return c instanceof K?+na(c):+c}function O(a,b){var ") - .append("c=a.evaluate(b);return c instanceof K?na(c):\"\"+c}function P(a,b){var c=a.evaluat") - .append("e(b);return c instanceof K?!!c.d:!!c};function Q(a,b,c,d,e){b=b.evaluate(d);c=c.ev") - .append("aluate(d);var f;if(b instanceof K&&c instanceof K){e=new M(b,!1);for(d=e.next();d;") - .append("d=e.next())for(b=new M(c,!1),f=b.next();f;f=b.next())if(a(H(d),H(f)))return!0;retu") - .append("rn!1}if(b instanceof K||c instanceof K){b instanceof K?e=b:(e=c,c=b);e=new M(e,!1)") - .append(";b=typeof c;for(d=e.next();d;d=e.next()){switch(b){case \"number\":d=+H(d);break;c") - .append("ase \"boolean\":d=!!H(d);break;case \"string\":d=H(d);break;default:throw Error(\"") - .append("Illegal primitive type for comparison.\");}if(a(d,c))return!0}return!1}return e?\n") - .append("\"boolean\"==typeof b||\"boolean\"==typeof c?a(!!b,!!c):\"number\"==typeof b||\"nu") - .append("mber\"==typeof c?a(+b,+c):a(b,c):a(+b,+c)}function oa(a,b,c,d){this.o=a;this.B=b;t") - .append("his.l=c;this.m=d}oa.prototype.toString=function(){return this.o};var pa={};functio") - .append("n R(a,b,c,d){if(a in pa)throw Error(\"Binary operator already created: \"+a);a=new") - .append(" oa(a,b,c,d);pa[a.toString()]=a}R(\"div\",6,1,function(a,b,c){return N(a,c)/N(b,c)") - .append("});R(\"mod\",6,1,function(a,b,c){return N(a,c)%N(b,c)});R(\"*\",6,1,function(a,b,c") - .append("){return N(a,c)*N(b,c)});\nR(\"+\",5,1,function(a,b,c){return N(a,c)+N(b,c)});R(\"") - .append("-\",5,1,function(a,b,c){return N(a,c)-N(b,c)});R(\"<\",4,2,function(a,b,c){return ") - .append("Q(function(a,b){return a\",4,2,function(a,b,c){return Q(function") - .append("(a,b){return a>b},a,b,c)});R(\"<=\",4,2,function(a,b,c){return Q(function(a,b){ret") - .append("urn a<=b},a,b,c)});R(\">=\",4,2,function(a,b,c){return Q(function(a,b){return a>=b") - .append("},a,b,c)});R(\"=\",3,2,function(a,b,c){return Q(function(a,b){return a==b},a,b,c,!") - .append("0)});\nR(\"!=\",3,2,function(a,b,c){return Q(function(a,b){return a!=b},a,b,c,!0)}") - .append(");R(\"and\",2,2,function(a,b,c){return P(a,c)&&P(b,c)});R(\"or\",1,2,function(a,b,") - .append("c){return P(a,c)||P(b,c)});function qa(a,b,c,d,e,f,q,v,r){this.f=a;this.l=b;this.u") - .append("=c;this.t=d;this.s=e;this.m=f;this.r=q;this.q=void 0!==v?v:q;this.w=!!r}qa.prototy") - .append("pe.toString=function(){return this.f};var ra={};function S(a,b,c,d,e,f,q,v){if(a i") - .append("n ra)throw Error(\"Function already created: \"+a+\".\");ra[a]=new qa(a,b,c,d,!1,e") - .append(",f,q,v)}S(\"boolean\",2,!1,!1,function(a,b){return P(b,a)},1);S(\"ceiling\",1,!1,!") - .append("1,function(a,b){return Math.ceil(N(b,a))},1);\nS(\"concat\",3,!1,!1,function(a,b){") - .append("var c=da(arguments,1);return ca(c,function(b,c){return b+O(c,a)})},2,null);S(\"con") - .append("tains\",2,!1,!1,function(a,b,c){b=O(b,a);a=O(c,a);return-1!=b.indexOf(a)},2);S(\"c") - .append("ount\",1,!1,!1,function(a,b){return b.evaluate(a).d},1,1,!0);S(\"false\",2,!1,!1,g") - .append("(!1),0);S(\"floor\",1,!1,!1,function(a,b){return Math.floor(N(b,a))},1);\nS(\"id\"") - .append(",4,!1,!1,function(a,b){var c=a.c,d=9==c.nodeType?c:c.ownerDocument,c=O(b,a).split(") - .append("/\\s+/),e=[];u(c,function(a){a=d.getElementById(a);var b;if(!(b=!a)){a:if(l(e))b=l") - .append("(a)&&1==a.length?e.indexOf(a,0):-1;else{for(b=0;bb?e+=\"000\":256>b?e+=\"00\":4096>b&&(e+=\"0\");return V[a]=e+b.toStrin") - .append("g(16)}),'\"')};function W(a){switch(k(a)){case \"string\":case \"number\":case \"b") - .append("oolean\":return a;case \"function\":return a.toString();case \"array\":return w(a,") - .append("W);case \"object\":if(\"nodeType\"in a&&(1==a.nodeType||9==a.nodeType)){var b={};b") - .append(".ELEMENT=ya(a);return b}if(\"document\"in a)return b={},b.WINDOW=ya(a),b;if(aa(a))") - .append("return w(a,W);a=ea(a,function(a,b){return\"number\"==typeof b||l(b)});return y(a,W") - .append(");default:return null}}\nfunction X(a,b){return\"array\"==k(a)?w(a,function(a){ret") - .append("urn X(a,b)}):ba(a)?\"function\"==typeof a?a:\"ELEMENT\"in a?za(a.ELEMENT,b):\"WIND") - .append("OW\"in a?za(a.WINDOW,b):y(a,function(a){return X(a,b)}):a}function Aa(a){a=a||docu") - .append("ment;var b=a.$wdc_;b||(b=a.$wdc_={},b.g=n());b.g||(b.g=n());return b}function ya(a") - .append("){var b=Aa(a.ownerDocument),c=fa(b,function(b){return b==a});c||(c=\":wdc:\"+b.g++") - .append(",b[c]=a);return c}\nfunction za(a,b){a=decodeURIComponent(a);var c=b||document,d=A") - .append("a(c);if(!(a in d))throw new F(10,\"Element does not exist in cache\");var e=d[a];i") - .append("f(\"setInterval\"in e){if(e.closed)throw delete d[a],new F(23,\"Window has been cl") - .append("osed.\");return e}for(var f=e;f;){if(f==c.documentElement)return e;f=f.parentNode}") - .append("delete d[a];throw new F(10,\"Element is no longer attached to the DOM\");};functio") - .append("n Ba(a,b){var c=ua,d=[a,b],e=window||p,f;try{var c=l(c)?new e.Function(c):e==windo") - .append("w?c:new e.Function(\"return (\"+c+\").apply(null,arguments);\"),q=X(d,e.document),") - .append("v=c.apply(null,q);f={status:0,value:W(v)}}catch(r){f={status:\"code\"in r?r.code:1") - .append("3,value:{message:r.message}}}c=[];U(new va,f,c);return c.join(\"\")}var Y=[\"_\"],") - .append("Z=h;Y[0]in Z||!Z.execScript||Z.execScript(\"var \"+Y[0]);for(var $;Y.length&&($=Y.") - .append("shift());)Y.length||void 0===Ba?Z=Z[$]?Z[$]:Z[$]={}:Z[$]=Ba;; return this._.apply(") - .append("null,arguments);}.apply({navigator:typeof window!=undefined?window.navigator:null,") - .append("document:typeof window!=undefined?window.document:null}, arguments);}") - .toString()), - - GET_ATTRIBUTE_VALUE(new StringBuilder() - .append("function(){return function(){function f(a){return function(){return a}}var h=this;") - .append("\nfunction k(a){var b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return") - .append("\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);") - .append("if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==t") - .append("ypeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIs") - .append("Enumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Funct") - .append("ion]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumera") - .append("ble&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\nel") - .append("se if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b}func") - .append("tion aa(a){var b=k(a);return\"array\"==b||\"object\"==b&&\"number\"==typeof a.leng") - .append("th}function l(a){return\"string\"==typeof a}function m(a){var b=typeof a;return\"o") - .append("bject\"==b&&null!=a||\"function\"==b}var ba=Date.now||function(){return+new Date};") - .append("var ca=window;var da=Array.prototype;function ea(a,b){if(l(a))return l(b)&&1==b.le") - .append("ngth?a.indexOf(b,0):-1;for(var c=0;c=arguments.length?da.slic") - .append("e.call(a,b):da.slice.call(a,b,c)};function s(a,b){this.code=a;this.state=t[a]||ha;") - .append("this.message=b||\"\";var c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){ret") - .append("urn a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")}),d=c.length-5;if(0>d||c.indexOf") - .append("(\"Error\",d)!=d)c+=\"Error\";this.name=c;c=Error(this.message);c.name=this.name;t") - .append("his.stack=c.stack||\"\"}(function(){var a=Error;function b(){}b.prototype=a.protot") - .append("ype;s.L=a.prototype;s.prototype=new b})();\nvar ha=\"unknown error\",t={15:\"eleme") - .append("nt not selectable\",11:\"element not visible\",31:\"ime engine activation failed\"") - .append(",30:\"ime not available\",24:\"invalid cookie domain\",29:\"invalid element coordi") - .append("nates\",12:\"invalid element state\",32:\"invalid selector\",51:\"invalid selector") - .append("\",52:\"invalid selector\",17:\"javascript error\",405:\"unsupported operation\",3") - .append("4:\"move target out of bounds\",27:\"no such alert\",7:\"no such element\",8:\"no ") - .append("such frame\",23:\"no such window\",28:\"script timeout\",33:\"session not created") - .append("\",10:\"stale element reference\",\n0:\"success\",21:\"timeout\",25:\"unable to se") - .append("t cookie\",26:\"unexpected alert open\"};t[13]=ha;t[9]=\"unknown command\";s.proto") - .append("type.toString=function(){return this.name+\": \"+this.message};var x,y;function ia") - .append("(){return h.navigator?h.navigator.userAgent:null}var z,ja=h.navigator;z=ja&&ja.pla") - .append("tform||\"\";x=-1!=z.indexOf(\"Mac\");y=-1!=z.indexOf(\"Win\");var A=-1!=z.indexOf(") - .append("\"Linux\");function ka(a,b){var c={},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[d]=a") - .append("[d]);return c}function la(a,b){var c={},d;for(d in a)c[d]=b.call(void 0,a[d],d,a);") - .append("return c}function ma(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return c};func") - .append("tion na(a,b){if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if(\"undefine") - .append("d\"!=typeof a.compareDocumentPosition)return a==b||Boolean(a.compareDocumentPositi") - .append("on(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}\nfunction oa(a,b){if(a==b)retu") - .append("rn 0;if(a.compareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(\"") - .append("sourceIndex\"in a||a.parentNode&&\"sourceIndex\"in a.parentNode){var c=1==a.nodeTy") - .append("pe,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,g") - .append("=b.parentNode;return e==g?pa(a,b):!c&&na(e,b)?-1*qa(a,b):!d&&na(g,a)?qa(b,a):(c?a.") - .append("sourceIndex:e.sourceIndex)-(d?b.sourceIndex:g.sourceIndex)}d=9==a.nodeType?a:a.own") - .append("erDocument||a.document;c=d.createRange();c.selectNode(a);c.collapse(!0);\nd=d.crea") - .append("teRange();d.selectNode(b);d.collapse(!0);return c.compareBoundaryPoints(h.Range.ST") - .append("ART_TO_END,d)}function qa(a,b){var c=a.parentNode;if(c==b)return-1;for(var d=b;d.p") - .append("arentNode!=c;)d=d.parentNode;return pa(d,a)}function pa(a,b){for(var c=b;c=c.previ") - .append("ousSibling;)if(c==a)return-1;return 1};function B(a){var b=null,c=a.nodeType;1==c&") - .append("&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?\"\":b);") - .append("if(\"string\"!=typeof b)if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;for(v") - .append("ar c=0,d=[],b=\"\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c++]=a;while(a=a.first") - .append("Child);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;return\"\"+b}\nfunct") - .append("ion C(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!") - .append("1}return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function D(a,b,c,d,e){") - .append("return ra.call(null,a,b,l(c)?c:null,l(d)?d:null,e||new E)}\nfunction ra(a,b,c,d,e)") - .append("{b.getElementsByName&&d&&\"name\"==c?(b=b.getElementsByName(d),n(b,function(b){a.m") - .append("atches(b)&&e.add(b)})):b.getElementsByClassName&&d&&\"class\"==c?(b=b.getElementsB") - .append("yClassName(d),n(b,function(b){b.className==d&&a.matches(b)&&e.add(b)})):b.getEleme") - .append("ntsByTagName&&(b=b.getElementsByTagName(a.getName()),n(b,function(a){C(a,c,d)&&e.a") - .append("dd(a)}));return e}function sa(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)C(b,") - .append("c,d)&&a.matches(b)&&e.add(b);return e}\nfunction ta(a,b,c,d,e){for(b=b.firstChild;") - .append("b;b=b.nextSibling)C(b,c,d)&&a.matches(b)&&e.add(b),ta(a,b,c,d,e)};function E(){thi") - .append("s.e=this.d=null;this.h=0}function ua(a){this.o=a;this.next=this.m=null}E.prototype") - .append(".unshift=function(a){a=new ua(a);a.next=this.d;this.e?this.d.m=a:this.d=this.e=a;t") - .append("his.d=a;this.h++};E.prototype.add=function(a){a=new ua(a);a.m=this.e;this.d?this.e") - .append(".next=a:this.d=this.e=a;this.e=a;this.h++};function F(a){return(a=a.d)?a.o:null}fu") - .append("nction va(a){return(a=F(a))?B(a):\"\"}function G(a,b){this.G=a;this.n=(this.p=b)?a") - .append(".e:a.d;this.t=null}\nG.prototype.next=function(){var a=this.n;if(null==a)return nu") - .append("ll;var b=this.t=a;this.n=this.p?a.m:a.next;return b.o};function H(a,b){var c=a.eva") - .append("luate(b);return c instanceof E?+va(c):+c}function I(a,b){var c=a.evaluate(b);retur") - .append("n c instanceof E?va(c):\"\"+c}function J(a,b){var c=a.evaluate(b);return c instanc") - .append("eof E?!!c.h:!!c};function K(a,b,c,d,e){b=b.evaluate(d);c=c.evaluate(d);var g;if(b ") - .append("instanceof E&&c instanceof E){e=new G(b,!1);for(d=e.next();d;d=e.next())for(b=new ") - .append("G(c,!1),g=b.next();g;g=b.next())if(a(B(d),B(g)))return!0;return!1}if(b instanceof ") - .append("E||c instanceof E){b instanceof E?e=b:(e=c,c=b);e=new G(e,!1);b=typeof c;for(d=e.n") - .append("ext();d;d=e.next()){switch(b){case \"number\":d=+B(d);break;case \"boolean\":d=!!B") - .append("(d);break;case \"string\":d=B(d);break;default:throw Error(\"Illegal primitive typ") - .append("e for comparison.\");}if(a(d,c))return!0}return!1}return e?\n\"boolean\"==typeof b") - .append("||\"boolean\"==typeof c?a(!!b,!!c):\"number\"==typeof b||\"number\"==typeof c?a(+b") - .append(",+c):a(b,c):a(+b,+c)}function wa(a,b,c,d){this.u=a;this.J=b;this.r=c;this.s=d}wa.p") - .append("rototype.toString=function(){return this.u};var xa={};function L(a,b,c,d){if(a in ") - .append("xa)throw Error(\"Binary operator already created: \"+a);a=new wa(a,b,c,d);xa[a.toS") - .append("tring()]=a}L(\"div\",6,1,function(a,b,c){return H(a,c)/H(b,c)});L(\"mod\",6,1,func") - .append("tion(a,b,c){return H(a,c)%H(b,c)});L(\"*\",6,1,function(a,b,c){return H(a,c)*H(b,c") - .append(")});\nL(\"+\",5,1,function(a,b,c){return H(a,c)+H(b,c)});L(\"-\",5,1,function(a,b,") - .append("c){return H(a,c)-H(b,c)});L(\"<\",4,2,function(a,b,c){return K(function(a,b){retur") - .append("n a\",4,2,function(a,b,c){return K(function(a,b){return a>b},a,b") - .append(",c)});L(\"<=\",4,2,function(a,b,c){return K(function(a,b){return a<=b},a,b,c)});L(") - .append("\">=\",4,2,function(a,b,c){return K(function(a,b){return a>=b},a,b,c)});L(\"=\",3,") - .append("2,function(a,b,c){return K(function(a,b){return a==b},a,b,c,!0)});\nL(\"!=\",3,2,f") - .append("unction(a,b,c){return K(function(a,b){return a!=b},a,b,c,!0)});L(\"and\",2,2,funct") - .append("ion(a,b,c){return J(a,c)&&J(b,c)});L(\"or\",1,2,function(a,b,c){return J(a,c)||J(b") - .append(",c)});function ya(a,b,c,d,e,g,r,w,u){this.k=a;this.r=b;this.F=c;this.D=d;this.C=e;") - .append("this.s=g;this.B=r;this.A=void 0!==w?w:r;this.H=!!u}ya.prototype.toString=function(") - .append("){return this.k};var za={};function M(a,b,c,d,e,g,r,w){if(a in za)throw Error(\"Fu") - .append("nction already created: \"+a+\".\");za[a]=new ya(a,b,c,d,!1,e,g,r,w)}M(\"boolean\"") - .append(",2,!1,!1,function(a,b){return J(b,a)},1);M(\"ceiling\",1,!1,!1,function(a,b){retur") - .append("n Math.ceil(H(b,a))},1);\nM(\"concat\",3,!1,!1,function(a,b){var c=ga(arguments,1)") - .append(";return fa(c,function(b,c){return b+I(c,a)})},2,null);M(\"contains\",2,!1,!1,funct") - .append("ion(a,b,c){b=I(b,a);a=I(c,a);return-1!=b.indexOf(a)},2);M(\"count\",1,!1,!1,functi") - .append("on(a,b){return b.evaluate(a).h},1,1,!0);M(\"false\",2,!1,!1,f(!1),0);M(\"floor\",1") - .append(",!1,!1,function(a,b){return Math.floor(H(b,a))},1);\nM(\"id\",4,!1,!1,function(a,b") - .append("){var c=a.g,d=9==c.nodeType?c:c.ownerDocument,c=I(b,a).split(/\\s+/),e=[];n(c,func") - .append("tion(a){a=d.getElementById(a);!a||0<=ea(e,a)||e.push(a)});e.sort(oa);var g=new E;n") - .append("(e,function(a){g.add(a)});return g},1);M(\"lang\",2,!1,!1,f(!1),1);M(\"last\",1,!0") - .append(",!1,function(a){if(1!=arguments.length)throw Error(\"Function last expects ()\");r") - .append("eturn a.e},0);M(\"local-name\",3,!1,!0,function(a,b){var c=b?F(b.evaluate(a)):a.g;") - .append("return c?c.nodeName.toLowerCase():\"\"},0,1,!0);\nM(\"name\",3,!1,!0,function(a,b)") - .append("{var c=b?F(b.evaluate(a)):a.g;return c?c.nodeName.toLowerCase():\"\"},0,1,!0);M(\"") - .append("namespace-uri\",3,!0,!1,f(\"\"),0,1,!0);M(\"normalize-space\",3,!1,!0,function(a,b") - .append("){return(b?I(b,a):B(a.g)).replace(/[\\s\\xa0]+/g,\" \").replace(/^\\s+|\\s+$/g,\"") - .append("\")},0,1);M(\"not\",2,!1,!1,function(a,b){return!J(b,a)},1);M(\"number\",1,!1,!0,f") - .append("unction(a,b){return b?H(b,a):+B(a.g)},0,1);M(\"position\",1,!0,!1,function(a){retu") - .append("rn a.I},0);M(\"round\",1,!1,!1,function(a,b){return Math.round(H(b,a))},1);\nM(\"s") - .append("tarts-with\",2,!1,!1,function(a,b,c){b=I(b,a);a=I(c,a);return 0==b.lastIndexOf(a,0") - .append(")},2);M(\"string\",3,!1,!0,function(a,b){return b?I(b,a):B(a.g)},0,1);M(\"string-l") - .append("ength\",1,!1,!0,function(a,b){return(b?I(b,a):B(a.g)).length},0,1);\nM(\"substring") - .append("\",3,!1,!1,function(a,b,c,d){c=H(c,a);if(isNaN(c)||Infinity==c||-Infinity==c)retur") - .append("n\"\";d=d?H(d,a):Infinity;if(isNaN(d)||-Infinity===d)return\"\";c=Math.round(c)-1;") - .append("var e=Math.max(c,0);a=I(b,a);if(Infinity==d)return a.substring(e);b=Math.round(d);") - .append("return a.substring(e,c+b)},2,3);M(\"substring-after\",3,!1,!1,function(a,b,c){b=I(") - .append("b,a);a=I(c,a);c=b.indexOf(a);return-1==c?\"\":b.substring(c+a.length)},2);\nM(\"su") - .append("bstring-before\",3,!1,!1,function(a,b,c){b=I(b,a);a=I(c,a);a=b.indexOf(a);return-1") - .append("==a?\"\":b.substring(0,a)},2);M(\"sum\",1,!1,!1,function(a,b){var c;c=b.evaluate(a") - .append(");c=new G(c,!1);for(var d=0,e=c.next();e;e=c.next())d+=+B(e);return d},1,1,!0);M(") - .append("\"translate\",3,!1,!1,function(a,b,c,d){b=I(b,a);c=I(c,a);var e=I(d,a);a=[];for(d=") - .append("0;d(0==v[1].length?\n0:parseInt(v[1],10))?1:0)||((0==q[2].length)<(0==v[2].l") - .append("ength)?-1:(0==q[2].length)>(0==v[2].length)?1:0)||(q[2]v[2]?1:0)}whi") - .append("le(0==b)}}var Ea=/Android\\s+([0-9\\.]+)/.exec(ia()),Da=Ea?Ea[1]:\"0\";O(2.3);O(4)") - .append(";function P(a,b){return!!a&&1==a.nodeType&&(!b||a.tagName.toUpperCase()==b)}functi") - .append("on Fa(a){return P(a,\"OPTION\")?!0:P(a,\"INPUT\")?(a=a.type.toLowerCase(),\"checkb") - .append("ox\"==a||\"radio\"==a):!1}var Ga=/[;]+(?=(?:(?:[^\"]*\"){2})*[^\"]*$)(?=(?:(?:[^']") - .append("*'){2})*[^']*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;\nfunction Ha(a){var b=[];n(a.s") - .append("plit(Ga),function(a){var d=a.indexOf(\":\");0\");") - .append("T(191,\"/\",\"?\");T(192,\"`\",\"~\");T(219,\"[\",\"{\");T(220,\"\\\\\",\"|\");T(2") - .append("21,\"]\",\"}\");T({b:59,a:186,opera:59},\";\",\":\");T(222,\"'\",'\"');var U=new R") - .append(";U.set(1,La);U.set(2,Ma);U.set(4,Na);U.set(8,Oa);(function(a){var b=new R;n(Ia(a),") - .append("function(c){b.set(a.get(c).code,c)});return b})(U);var Pa={\"class\":\"className\"") - .append(",readonly:\"readOnly\"},Qa=\"async autofocus autoplay checked compact complete con") - .append("trols declare defaultchecked defaultselected defer disabled draggable ended formno") - .append("validate hidden indeterminate iscontenteditable ismap itemscope loop multiple mute") - .append("d nohref noresize noshade novalidate nowrap open paused pubdate readonly required ") - .append("reversed scoped seamless seeking selected spellcheck truespeed willvalidate\".spli") - .append("t(\" \");\nfunction Ra(a,b){var c=null,d=b.toLowerCase();if(\"style\"==d)return(c=") - .append("a.style)&&!l(c)&&(c=c.cssText),c;if((\"selected\"==d||\"checked\"==d)&&Fa(a)){if(!") - .append("Fa(a))throw new s(15,\"Element is not selectable\");var d=\"selected\",e=a.type&&a") - .append(".type.toLowerCase();if(\"checkbox\"==e||\"radio\"==e)d=\"checked\";return a[d]?\"t") - .append("rue\":null}c=P(a,\"A\");if(P(a,\"IMG\")&&\"src\"==d||c&&\"href\"==d)return(c=Q(a,d") - .append("))&&(c=a[d]),c;c=Pa[b]||b;if(0<=ea(Qa,d))return(c=null!==Q(a,b)||a[c])?\"true\":nu") - .append("ll;try{e=a[c]}catch(g){}c=null==e||m(e)?Q(a,b):e;\nreturn null!=c?c.toString():nul") - .append("l};function Sa(){this.i=void 0}\nfunction V(a,b,c){switch(typeof b){case \"string") - .append("\":Ta(b,c);break;case \"number\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;c") - .append("ase \"boolean\":c.push(b);break;case \"undefined\":c.push(\"null\");break;case \"o") - .append("bject\":if(null==b){c.push(\"null\");break}if(\"array\"==k(b)){var d=b.length;c.pu") - .append("sh(\"[\");for(var e=\"\",g=0;gb?e+=\"000\":256>b?e+=\"00\":") - .append("4096>b&&(e+=\"0\");return W[a]=e+b.toString(16)}),'\"')};function X(a){switch(k(a)") - .append("){case \"string\":case \"number\":case \"boolean\":return a;case \"function\":retu") - .append("rn a.toString();case \"array\":return p(a,X);case \"object\":if(\"nodeType\"in a&&") - .append("(1==a.nodeType||9==a.nodeType)){var b={};b.ELEMENT=Va(a);return b}if(\"document\"i") - .append("n a)return b={},b.WINDOW=Va(a),b;if(aa(a))return p(a,X);a=ka(a,function(a,b){retur") - .append("n\"number\"==typeof b||l(b)});return la(a,X);default:return null}}\nfunction Wa(a,") - .append("b){return\"array\"==k(a)?p(a,function(a){return Wa(a,b)}):m(a)?\"function\"==typeo") - .append("f a?a:\"ELEMENT\"in a?Xa(a.ELEMENT,b):\"WINDOW\"in a?Xa(a.WINDOW,b):la(a,function(") - .append("a){return Wa(a,b)}):a}function Ya(a){a=a||document;var b=a.$wdc_;b||(b=a.$wdc_={},") - .append("b.l=ba());b.l||(b.l=ba());return b}function Va(a){var b=Ya(a.ownerDocument),c=ma(b") - .append(",function(b){return b==a});c||(c=\":wdc:\"+b.l++,b[c]=a);return c}\nfunction Xa(a,") - .append("b){a=decodeURIComponent(a);var c=b||document,d=Ya(c);if(!(a in d))throw new s(10,") - .append("\"Element does not exist in cache\");var e=d[a];if(\"setInterval\"in e){if(e.close") - .append("d)throw delete d[a],new s(23,\"Window has been closed.\");return e}for(var g=e;g;)") - .append("{if(g==c.documentElement)return e;g=g.parentNode}delete d[a];throw new s(10,\"Elem") - .append("ent is no longer attached to the DOM\");};function Za(a,b){var c=Ra,d=[a,b],e=wind") - .append("ow||ca,g;try{var c=l(c)?new e.Function(c):e==window?c:new e.Function(\"return (\"+") - .append("c+\").apply(null,arguments);\"),r=Wa(d,e.document),w=c.apply(null,r);g={status:0,v") - .append("alue:X(w)}}catch(u){g={status:\"code\"in u?u.code:13,value:{message:u.message}}}c=") - .append("[];V(new Sa,g,c);return c.join(\"\")}var Y=[\"_\"],Z=h;Y[0]in Z||!Z.execScript||Z.") - .append("execScript(\"var \"+Y[0]);for(var $;Y.length&&($=Y.shift());)Y.length||void 0===Za") - .append("?Z=Z[$]?Z[$]:Z[$]={}:Z[$]=Za;; return this._.apply(null,arguments);}.apply({naviga") - .append("tor:typeof window!=undefined?window.navigator:null,document:typeof window!=undefin") - .append("ed?window.document:null}, arguments);}") - .toString()), - - GET_FRAME_WINDOW(new StringBuilder() - .append("function(){return function(){function g(a){return function(){return a}}var h=this;") - .append("\nfunction k(a){var b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return") - .append("\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);") - .append("if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==t") - .append("ypeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIs") - .append("Enumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Funct") - .append("ion]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumera") - .append("ble&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\nel") - .append("se if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b}func") - .append("tion aa(a){var b=k(a);return\"array\"==b||\"object\"==b&&\"number\"==typeof a.leng") - .append("th}function l(a){return\"string\"==typeof a}function ba(a){var b=typeof a;return\"") - .append("object\"==b&&null!=a||\"function\"==b}var p=Date.now||function(){return+new Date};") - .append("var ca=window;var q=Array.prototype;function s(a,b){for(var c=a.length,d=l(a)?a.sp") - .append("lit(\"\"):a,e=0;e=arguments.length?q.slice.call(a,b):q.slice.call(a,b,c)};function v(){return h.") - .append("navigator?h.navigator.userAgent:null};function fa(a,b){var c={},d;for(d in a)b.cal") - .append("l(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function x(a,b){var c={},d;for(d in a)c[d") - .append("]=b.call(void 0,a[d],d,a);return c}function ga(a,b){for(var c in a)if(b.call(void ") - .append("0,a[c],c,a))return c};function y(a,b){if(a.contains&&1==b.nodeType)return a==b||a.") - .append("contains(b);if(\"undefined\"!=typeof a.compareDocumentPosition)return a==b||Boolea") - .append("n(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}\nfunc") - .append("tion ha(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumen") - .append("tPosition(b)&2?1:-1;if(\"sourceIndex\"in a||a.parentNode&&\"sourceIndex\"in a.pare") - .append("ntNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceI") - .append("ndex;var e=a.parentNode,f=b.parentNode;return e==f?z(a,b):!c&&y(e,b)?-1*A(a,b):!d&") - .append("&y(f,a)?A(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=9") - .append("==a.nodeType?a:a.ownerDocument||a.document;c=d.createRange();c.selectNode(a);c.col") - .append("lapse(!0);\nd=d.createRange();d.selectNode(b);d.collapse(!0);return c.compareBound") - .append("aryPoints(h.Range.START_TO_END,d)}function A(a,b){var c=a.parentNode;if(c==b)retur") - .append("n-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return z(d,a)}function z(a,b){for(") - .append("var c=b;c=c.previousSibling;)if(c==a)return-1;return 1};function B(a){return(a=a.e") - .append("xec(v()))?a[1]:\"\"}B(/Android\\s+([0-9.]+)/)||B(/Version\\/([0-9.]+)/);function C") - .append("(a){var b=0,c=String(ia).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\".\");a") - .append("=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\".\");for(var d=Math.") - .append("max(c.length,a.length),e=0;0==b&&e(0==r[1].length?\n0:parseInt(r[1],10))?") - .append("1:0)||((0==n[2].length)<(0==r[2].length)?-1:(0==n[2].length)>(0==r[2].length)?1:0)") - .append("||(n[2]r[2]?1:0)}while(0==b)}}var D=/Android\\s+([0-9\\.]+)/.exec(v(") - .append(")),ia=D?D[1]:\"0\";C(2.3);C(4);function E(a,b){this.code=a;this.state=F[a]||G;this") - .append(".message=b||\"\";var c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){return ") - .append("a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")}),d=c.length-5;if(0>d||c.indexOf(\"E") - .append("rror\",d)!=d)c+=\"Error\";this.name=c;c=Error(this.message);c.name=this.name;this.") - .append("stack=c.stack||\"\"}(function(){var a=Error;function b(){}b.prototype=a.prototype;") - .append("E.C=a.prototype;E.prototype=new b})();\nvar G=\"unknown error\",F={15:\"element no") - .append("t selectable\",11:\"element not visible\",31:\"ime engine activation failed\",30:") - .append("\"ime not available\",24:\"invalid cookie domain\",29:\"invalid element coordinate") - .append("s\",12:\"invalid element state\",32:\"invalid selector\",51:\"invalid selector\",5") - .append("2:\"invalid selector\",17:\"javascript error\",405:\"unsupported operation\",34:\"") - .append("move target out of bounds\",27:\"no such alert\",7:\"no such element\",8:\"no such") - .append(" frame\",23:\"no such window\",28:\"script timeout\",33:\"session not created\",10") - .append(":\"stale element reference\",\n0:\"success\",21:\"timeout\",25:\"unable to set coo") - .append("kie\",26:\"unexpected alert open\"};F[13]=G;F[9]=\"unknown command\";E.prototype.t") - .append("oString=function(){return this.name+\": \"+this.message};function H(a){var b=null,") - .append("c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b") - .append("||null==b?\"\":b);if(\"string\"!=typeof b)if(9==c||1==c){a=9==c?a.documentElement:") - .append("a.firstChild;for(var c=0,d=[],b=\"\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c++]") - .append("=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;re") - .append("turn\"\"+b}\nfunction I(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!") - .append("1}catch(d){return!1}return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}func") - .append("tion J(a,b,c,d,e){return ja.call(null,a,b,l(c)?c:null,l(d)?d:null,e||new K)}\nfunc") - .append("tion ja(a,b,c,d,e){b.getElementsByName&&d&&\"name\"==c?(b=b.getElementsByName(d),s") - .append("(b,function(b){a.matches(b)&&e.add(b)})):b.getElementsByClassName&&d&&\"class\"==c") - .append("?(b=b.getElementsByClassName(d),s(b,function(b){b.className==d&&a.matches(b)&&e.ad") - .append("d(b)})):b.getElementsByTagName&&(b=b.getElementsByTagName(a.getName()),s(b,functio") - .append("n(a){I(a,c,d)&&e.add(a)}));return e}function ka(a,b,c,d,e){for(b=b.firstChild;b;b=") - .append("b.nextSibling)I(b,c,d)&&a.matches(b)&&e.add(b);return e}\nfunction la(a,b,c,d,e){f") - .append("or(b=b.firstChild;b;b=b.nextSibling)I(b,c,d)&&a.matches(b)&&e.add(b),la(a,b,c,d,e)") - .append("};function K(){this.b=this.a=null;this.d=0}function ma(a){this.j=a;this.next=this.") - .append("h=null}K.prototype.unshift=function(a){a=new ma(a);a.next=this.a;this.b?this.a.h=a") - .append(":this.a=this.b=a;this.a=a;this.d++};K.prototype.add=function(a){a=new ma(a);a.h=th") - .append("is.b;this.a?this.b.next=a:this.a=this.b=a;this.b=a;this.d++};function L(a){return(") - .append("a=a.a)?a.j:null}function na(a){return(a=L(a))?H(a):\"\"}function M(a,b){this.v=a;t") - .append("his.i=(this.k=b)?a.b:a.a;this.n=null}\nM.prototype.next=function(){var a=this.i;if") - .append("(null==a)return null;var b=this.n=a;this.i=this.k?a.h:a.next;return b.j};function ") - .append("N(a,b){var c=a.evaluate(b);return c instanceof K?+na(c):+c}function O(a,b){var c=a") - .append(".evaluate(b);return c instanceof K?na(c):\"\"+c}function P(a,b){var c=a.evaluate(b") - .append(");return c instanceof K?!!c.d:!!c};function Q(a,b,c,d,e){b=b.evaluate(d);c=c.evalu") - .append("ate(d);var f;if(b instanceof K&&c instanceof K){e=new M(b,!1);for(d=e.next();d;d=e") - .append(".next())for(b=new M(c,!1),f=b.next();f;f=b.next())if(a(H(d),H(f)))return!0;return!") - .append("1}if(b instanceof K||c instanceof K){b instanceof K?e=b:(e=c,c=b);e=new M(e,!1);b=") - .append("typeof c;for(d=e.next();d;d=e.next()){switch(b){case \"number\":d=+H(d);break;case") - .append(" \"boolean\":d=!!H(d);break;case \"string\":d=H(d);break;default:throw Error(\"Ill") - .append("egal primitive type for comparison.\");}if(a(d,c))return!0}return!1}return e?\n\"b") - .append("oolean\"==typeof b||\"boolean\"==typeof c?a(!!b,!!c):\"number\"==typeof b||\"numbe") - .append("r\"==typeof c?a(+b,+c):a(b,c):a(+b,+c)}function oa(a,b,c,d){this.o=a;this.B=b;this") - .append(".l=c;this.m=d}oa.prototype.toString=function(){return this.o};var pa={};function R") - .append("(a,b,c,d){if(a in pa)throw Error(\"Binary operator already created: \"+a);a=new oa") - .append("(a,b,c,d);pa[a.toString()]=a}R(\"div\",6,1,function(a,b,c){return N(a,c)/N(b,c)});") - .append("R(\"mod\",6,1,function(a,b,c){return N(a,c)%N(b,c)});R(\"*\",6,1,function(a,b,c){r") - .append("eturn N(a,c)*N(b,c)});\nR(\"+\",5,1,function(a,b,c){return N(a,c)+N(b,c)});R(\"-\"") - .append(",5,1,function(a,b,c){return N(a,c)-N(b,c)});R(\"<\",4,2,function(a,b,c){return Q(f") - .append("unction(a,b){return a\",4,2,function(a,b,c){return Q(function(a,") - .append("b){return a>b},a,b,c)});R(\"<=\",4,2,function(a,b,c){return Q(function(a,b){return") - .append(" a<=b},a,b,c)});R(\">=\",4,2,function(a,b,c){return Q(function(a,b){return a>=b},a") - .append(",b,c)});R(\"=\",3,2,function(a,b,c){return Q(function(a,b){return a==b},a,b,c,!0)}") - .append(");\nR(\"!=\",3,2,function(a,b,c){return Q(function(a,b){return a!=b},a,b,c,!0)});R") - .append("(\"and\",2,2,function(a,b,c){return P(a,c)&&P(b,c)});R(\"or\",1,2,function(a,b,c){") - .append("return P(a,c)||P(b,c)});function qa(a,b,c,d,e,f,m,u,w){this.f=a;this.l=b;this.u=c;") - .append("this.t=d;this.s=e;this.m=f;this.r=m;this.q=void 0!==u?u:m;this.w=!!w}qa.prototype.") - .append("toString=function(){return this.f};var ra={};function S(a,b,c,d,e,f,m,u){if(a in r") - .append("a)throw Error(\"Function already created: \"+a+\".\");ra[a]=new qa(a,b,c,d,!1,e,f,") - .append("m,u)}S(\"boolean\",2,!1,!1,function(a,b){return P(b,a)},1);S(\"ceiling\",1,!1,!1,f") - .append("unction(a,b){return Math.ceil(N(b,a))},1);\nS(\"concat\",3,!1,!1,function(a,b){var") - .append(" c=ea(arguments,1);return da(c,function(b,c){return b+O(c,a)})},2,null);S(\"contai") - .append("ns\",2,!1,!1,function(a,b,c){b=O(b,a);a=O(c,a);return-1!=b.indexOf(a)},2);S(\"coun") - .append("t\",1,!1,!1,function(a,b){return b.evaluate(a).d},1,1,!0);S(\"false\",2,!1,!1,g(!1") - .append("),0);S(\"floor\",1,!1,!1,function(a,b){return Math.floor(N(b,a))},1);\nS(\"id\",4,") - .append("!1,!1,function(a,b){var c=a.c,d=9==c.nodeType?c:c.ownerDocument,c=O(b,a).split(/") - .append("\\s+/),e=[];s(c,function(a){a=d.getElementById(a);var b;if(!(b=!a)){a:if(l(e))b=l(") - .append("a)&&1==a.length?e.indexOf(a,0):-1;else{for(b=0;bb?e+=\"000\":256>b?e+=\"00\":4096>b&&") - .append("(e+=\"0\");return V[a]=e+b.toString(16)}),'\"')};function W(a){switch(k(a)){case ") - .append("\"string\":case \"number\":case \"boolean\":return a;case \"function\":return a.to") - .append("String();case \"array\":return t(a,W);case \"object\":if(\"nodeType\"in a&&(1==a.n") - .append("odeType||9==a.nodeType)){var b={};b.ELEMENT=ya(a);return b}if(\"document\"in a)ret") - .append("urn b={},b.WINDOW=ya(a),b;if(aa(a))return t(a,W);a=fa(a,function(a,b){return\"numb") - .append("er\"==typeof b||l(b)});return x(a,W);default:return null}}\nfunction X(a,b){return") - .append("\"array\"==k(a)?t(a,function(a){return X(a,b)}):ba(a)?\"function\"==typeof a?a:\"E") - .append("LEMENT\"in a?za(a.ELEMENT,b):\"WINDOW\"in a?za(a.WINDOW,b):x(a,function(a){return ") - .append("X(a,b)}):a}function Aa(a){a=a||document;var b=a.$wdc_;b||(b=a.$wdc_={},b.g=p());b.") - .append("g||(b.g=p());return b}function ya(a){var b=Aa(a.ownerDocument),c=ga(b,function(b){") - .append("return b==a});c||(c=\":wdc:\"+b.g++,b[c]=a);return c}\nfunction za(a,b){a=decodeUR") - .append("IComponent(a);var c=b||document,d=Aa(c);if(!(a in d))throw new E(10,\"Element does") - .append(" not exist in cache\");var e=d[a];if(\"setInterval\"in e){if(e.closed)throw delete") - .append(" d[a],new E(23,\"Window has been closed.\");return e}for(var f=e;f;){if(f==c.docum") - .append("entElement)return e;f=f.parentNode}delete d[a];throw new E(10,\"Element is no long") - .append("er attached to the DOM\");};function Ba(a){var b=ua;a=[a];var c=window||ca,d;try{v") - .append("ar b=l(b)?new c.Function(b):c==window?b:new c.Function(\"return (\"+b+\").apply(nu") - .append("ll,arguments);\"),e=X(a,c.document),f=b.apply(null,e);d={status:0,value:W(f)}}catc") - .append("h(m){d={status:\"code\"in m?m.code:13,value:{message:m.message}}}b=[];U(new va,d,b") - .append(");return b.join(\"\")}var Y=[\"_\"],Z=h;Y[0]in Z||!Z.execScript||Z.execScript(\"va") - .append("r \"+Y[0]);for(var $;Y.length&&($=Y.shift());)Y.length||void 0===Ba?Z=Z[$]?Z[$]:Z[") - .append("$]={}:Z[$]=Ba;; return this._.apply(null,arguments);}.apply({navigator:typeof wind") - .append("ow!=undefined?window.navigator:null,document:typeof window!=undefined?window.docum") - .append("ent:null}, arguments);}") - .toString()), - - GET_LOCAL_STORAGE_ITEM(new StringBuilder() - .append("function(){return function(){var k=this;\nfunction l(a){var b=typeof a;if(\"object") - .append("\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)return b;") - .append("var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"object\"") - .append(";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typeof a.sp") - .append("lice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"spli") - .append("ce\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a.call&&") - .append("\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"call\"))re") - .append("turn\"function\"}else return\"null\";else if(\"function\"==\nb&&\"undefined\"==typ") - .append("eof a.call)return\"object\";return b}function n(a){var b=l(a);return\"array\"==b||") - .append("\"object\"==b&&\"number\"==typeof a.length}function p(a){var b=typeof a;return\"ob") - .append("ject\"==b&&null!=a||\"function\"==b}var q=Date.now||function(){return+new Date};va") - .append("r r=window;function s(a,b){this.code=a;this.state=t[a]||u;this.message=b||\"\";var") - .append(" c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().repl") - .append("ace(/^[\\s\\xa0]+/g,\"\")}),e=c.length-5;if(0>e||c.indexOf(\"Error\",e)!=e)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;s.d=a.prototype;s.pr") - .append("ototype=new b})();\nvar u=\"unknown error\",t={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};t[13]=u;t[9]=\"unknown command\";s.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function v(){return k.navigator?k.navigator.u") - .append("serAgent:null}var w=k.navigator,x=-1!=(w&&w.platform||\"\").indexOf(\"Win\");funct") - .append("ion y(a){return(a=a.exec(v()))?a[1]:\"\"}y(/Android\\s+([0-9.]+)/)||y(/Version\\/(") - .append("[0-9.]+)/);function z(a){var b=0,c=String(A).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,") - .append("\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\"") - .append(".\");for(var e=Math.max(c.length,a.length),d=0;0==b&&d(0==h[1].length?\n0:") - .append("parseInt(h[1],10))?1:0)||((0==g[2].length)<(0==h[2].length)?-1:(0==g[2].length)>(0") - .append("==h[2].length)?1:0)||(g[2]h[2]?1:0)}while(0==b)}return 0<=b}var B=/A") - .append("ndroid\\s+([0-9\\.]+)/.exec(v()),A=B?B[1]:\"0\";z(2.3);z(4);function C(){this.a=vo") - .append("id 0}\nfunction D(a,b,c){switch(typeof b){case \"string\":E(b,c);break;case \"numb") - .append("er\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);br") - .append("eak;case \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(") - .append("\"null\");break}if(\"array\"==l(b)){var e=b.length;c.push(\"[\");for(var d=\"\",f=") - .append("0;fb?d+=\"000\":256>b?d+=\"00\":4096>b&&(d+=\"0\");return F[a]=") - .append("d+b.toString(16)}),'\"')};function H(a,b){for(var c=a.length,e=Array(c),d=\"string") - .append("\"==typeof a?a.split(\"\"):a,f=0;fd||c.indexOf(\"Error\",d)!=d)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;s.d=a.prototype;s.pr") - .append("ototype=new b})();\nvar u=\"unknown error\",t={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};t[13]=u;t[9]=\"unknown command\";s.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function v(){return k.navigator?k.navigator.u") - .append("serAgent:null}var w=k.navigator,x=-1!=(w&&w.platform||\"\").indexOf(\"Win\");funct") - .append("ion y(a){return(a=a.exec(v()))?a[1]:\"\"}y(/Android\\s+([0-9.]+)/)||y(/Version\\/(") - .append("[0-9.]+)/);function z(a){var b=0,c=String(A).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,") - .append("\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\"") - .append(".\");for(var d=Math.max(c.length,a.length),e=0;0==b&&e(0==h[1].length?\n0:") - .append("parseInt(h[1],10))?1:0)||((0==g[2].length)<(0==h[2].length)?-1:(0==g[2].length)>(0") - .append("==h[2].length)?1:0)||(g[2]h[2]?1:0)}while(0==b)}return 0<=b}var B=/A") - .append("ndroid\\s+([0-9\\.]+)/.exec(v()),A=B?B[1]:\"0\";z(2.3);z(4);function C(){this.a=vo") - .append("id 0}\nfunction D(a,b,c){switch(typeof b){case \"string\":E(b,c);break;case \"numb") - .append("er\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);br") - .append("eak;case \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(") - .append("\"null\");break}if(\"array\"==l(b)){var d=b.length;c.push(\"[\");for(var e=\"\",f=") - .append("0;fb?e+=\"000\":256>b?e+=\"00\":4096>b&&(e+=\"0\");return F[a]=") - .append("e+b.toString(16)}),'\"')};function H(a,b){for(var c=a.length,d=Array(c),e=\"string") - .append("\"==typeof a?a.split(\"\"):a,f=0;fe||c.indexOf(\"Error\",e)!=e)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;s.d=a.prototype;s.pr") - .append("ototype=new b})();\nvar u=\"unknown error\",t={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};t[13]=u;t[9]=\"unknown command\";s.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function v(){return k.navigator?k.navigator.u") - .append("serAgent:null}var w=k.navigator,x=-1!=(w&&w.platform||\"\").indexOf(\"Win\");funct") - .append("ion y(a){return(a=a.exec(v()))?a[1]:\"\"}y(/Android\\s+([0-9.]+)/)||y(/Version\\/(") - .append("[0-9.]+)/);function z(a){var b=0,c=String(A).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,") - .append("\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\"") - .append(".\");for(var e=Math.max(c.length,a.length),d=0;0==b&&d(0==h[1].length?\n0:") - .append("parseInt(h[1],10))?1:0)||((0==g[2].length)<(0==h[2].length)?-1:(0==g[2].length)>(0") - .append("==h[2].length)?1:0)||(g[2]h[2]?1:0)}while(0==b)}return 0<=b}var B=/A") - .append("ndroid\\s+([0-9\\.]+)/.exec(v()),A=B?B[1]:\"0\";z(2.3);z(4);function C(){this.a=vo") - .append("id 0}\nfunction D(a,b,c){switch(typeof b){case \"string\":E(b,c);break;case \"numb") - .append("er\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);br") - .append("eak;case \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(") - .append("\"null\");break}if(\"array\"==l(b)){var e=b.length;c.push(\"[\");for(var d=\"\",f=") - .append("0;fb?d+=\"000\":256>b?d+=\"00\":4096>b&&(d+=\"0\");return F[a]=") - .append("d+b.toString(16)}),'\"')};function H(a,b){for(var c=a.length,e=Array(c),d=\"string") - .append("\"==typeof a?a.split(\"\"):a,f=0;fe||c.indexOf(\"Error\",e)!=e)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;s.d=a.prototype;s.pr") - .append("ototype=new b})();\nvar u=\"unknown error\",t={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};t[13]=u;t[9]=\"unknown command\";s.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function v(){return k.navigator?k.navigator.u") - .append("serAgent:null}var w=k.navigator,x=-1!=(w&&w.platform||\"\").indexOf(\"Win\");funct") - .append("ion y(a){return(a=a.exec(v()))?a[1]:\"\"}y(/Android\\s+([0-9.]+)/)||y(/Version\\/(") - .append("[0-9.]+)/);function z(a){var b=0,c=String(A).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,") - .append("\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\"") - .append(".\");for(var e=Math.max(c.length,a.length),d=0;0==b&&d(0==h[1].length?\n0:") - .append("parseInt(h[1],10))?1:0)||((0==g[2].length)<(0==h[2].length)?-1:(0==g[2].length)>(0") - .append("==h[2].length)?1:0)||(g[2]h[2]?1:0)}while(0==b)}return 0<=b}var B=/A") - .append("ndroid\\s+([0-9\\.]+)/.exec(v()),A=B?B[1]:\"0\";z(2.3);z(4);function C(){this.a=vo") - .append("id 0}\nfunction D(a,b,c){switch(typeof b){case \"string\":E(b,c);break;case \"numb") - .append("er\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);br") - .append("eak;case \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(") - .append("\"null\");break}if(\"array\"==l(b)){var e=b.length;c.push(\"[\");for(var d=\"\",f=") - .append("0;fb?d+=\"000\":256>b?d+=\"00\":4096>b&&(d+=\"0\");return F[a]=") - .append("d+b.toString(16)}),'\"')};function H(a,b){for(var c=a.length,e=Array(c),d=\"string") - .append("\"==typeof a?a.split(\"\"):a,f=0;fd||c.indexOf(\"Error\",d)!=d)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;s.d=a.prototype;s.pr") - .append("ototype=new b})();\nvar u=\"unknown error\",t={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};t[13]=u;t[9]=\"unknown command\";s.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function v(){return k.navigator?k.navigator.u") - .append("serAgent:null}var w=k.navigator,x=-1!=(w&&w.platform||\"\").indexOf(\"Win\");funct") - .append("ion y(a){return(a=a.exec(v()))?a[1]:\"\"}y(/Android\\s+([0-9.]+)/)||y(/Version\\/(") - .append("[0-9.]+)/);function z(a){var b=0,c=String(A).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,") - .append("\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\"") - .append(".\");for(var d=Math.max(c.length,a.length),e=0;0==b&&e(0==h[1].length?\n0:") - .append("parseInt(h[1],10))?1:0)||((0==g[2].length)<(0==h[2].length)?-1:(0==g[2].length)>(0") - .append("==h[2].length)?1:0)||(g[2]h[2]?1:0)}while(0==b)}return 0<=b}var B=/A") - .append("ndroid\\s+([0-9\\.]+)/.exec(v()),A=B?B[1]:\"0\";z(2.3);z(4);function C(){this.a=vo") - .append("id 0}\nfunction D(a,b,c){switch(typeof b){case \"string\":E(b,c);break;case \"numb") - .append("er\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);br") - .append("eak;case \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(") - .append("\"null\");break}if(\"array\"==l(b)){var d=b.length;c.push(\"[\");for(var e=\"\",f=") - .append("0;fb?e+=\"000\":256>b?e+=\"00\":4096>b&&(e+=\"0\");return F[a]=") - .append("e+b.toString(16)}),'\"')};function H(a,b){for(var c=a.length,d=Array(c),e=\"string") - .append("\"==typeof a?a.split(\"\"):a,f=0;fe||c.indexOf(\"Error\",e)!=e)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;s.d=a.prototype;s.pr") - .append("ototype=new b})();\nvar u=\"unknown error\",t={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};t[13]=u;t[9]=\"unknown command\";s.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function v(){return k.navigator?k.navigator.u") - .append("serAgent:null}var w=k.navigator,x=-1!=(w&&w.platform||\"\").indexOf(\"Win\");funct") - .append("ion y(a){return(a=a.exec(v()))?a[1]:\"\"}y(/Android\\s+([0-9.]+)/)||y(/Version\\/(") - .append("[0-9.]+)/);function z(a){var b=0,c=String(A).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,") - .append("\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\"") - .append(".\");for(var e=Math.max(c.length,a.length),d=0;0==b&&d(0==h[1].length?\n0:") - .append("parseInt(h[1],10))?1:0)||((0==g[2].length)<(0==h[2].length)?-1:(0==g[2].length)>(0") - .append("==h[2].length)?1:0)||(g[2]h[2]?1:0)}while(0==b)}return 0<=b}var B=/A") - .append("ndroid\\s+([0-9\\.]+)/.exec(v()),A=B?B[1]:\"0\";z(2.3);z(4);function C(){this.a=vo") - .append("id 0}\nfunction D(a,b,c){switch(typeof b){case \"string\":E(b,c);break;case \"numb") - .append("er\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);br") - .append("eak;case \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(") - .append("\"null\");break}if(\"array\"==l(b)){var e=b.length;c.push(\"[\");for(var d=\"\",f=") - .append("0;fb?d+=\"000\":256>b?d+=\"00\":4096>b&&(d+=\"0\");return F[a]=") - .append("d+b.toString(16)}),'\"')};function H(a,b){for(var c=a.length,e=Array(c),d=\"string") - .append("\"==typeof a?a.split(\"\"):a,f=0;f=arguments.length?ha") - .append(".slice.call(a,b):ha.slice.call(a,b,c)};function u(a,b){this.code=a;this.state=ma[a") - .append("]||na;this.message=b||\"\";var c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(") - .append("a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")}),d=c.length-5;if(0>d||c.i") - .append("ndexOf(\"Error\",d)!=d)c+=\"Error\";this.name=c;c=Error(this.message);c.name=this.") - .append("name;this.stack=c.stack||\"\"}q(u,Error);\nvar na=\"unknown error\",ma={15:\"eleme") - .append("nt not selectable\",11:\"element not visible\",31:\"ime engine activation failed\"") - .append(",30:\"ime not available\",24:\"invalid cookie domain\",29:\"invalid element coordi") - .append("nates\",12:\"invalid element state\",32:\"invalid selector\",51:\"invalid selector") - .append("\",52:\"invalid selector\",17:\"javascript error\",405:\"unsupported operation\",3") - .append("4:\"move target out of bounds\",27:\"no such alert\",7:\"no such element\",8:\"no ") - .append("such frame\",23:\"no such window\",28:\"script timeout\",33:\"session not created") - .append("\",10:\"stale element reference\",\n0:\"success\",21:\"timeout\",25:\"unable to se") - .append("t cookie\",26:\"unexpected alert open\"};ma[13]=na;ma[9]=\"unknown command\";u.pro") - .append("totype.toString=function(){return this.name+\": \"+this.message};var oa,pa;functio") - .append("n qa(){return l.navigator?l.navigator.userAgent:null}var ra,sa=l.navigator;ra=sa&&") - .append("sa.platform||\"\";oa=-1!=ra.indexOf(\"Mac\");pa=-1!=ra.indexOf(\"Win\");var v=-1!=") - .append("ra.indexOf(\"Linux\");function w(a,b){this.width=a;this.height=b}w.prototype.toStr") - .append("ing=function(){return\"(\"+this.width+\" x \"+this.height+\")\"};w.prototype.ceil=") - .append("function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);ret") - .append("urn this};w.prototype.floor=function(){this.width=Math.floor(this.width);this.heig") - .append("ht=Math.floor(this.height);return this};w.prototype.round=function(){this.width=Ma") - .append("th.round(this.width);this.height=Math.round(this.height);return this};function ta(") - .append("a,b){var c={},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function ") - .append("ua(a,b){var c={},d;for(d in a)c[d]=b.call(void 0,a[d],d,a);return c}function va(a,") - .append("b){for(var c in a)if(b.call(void 0,a[c],c,a))return c};function wa(a,b){if(a.conta") - .append("ins&&1==b.nodeType)return a==b||a.contains(b);if(\"undefined\"!=typeof a.compareDo") - .append("cumentPosition)return a==b||Boolean(a.compareDocumentPosition(b)&16);for(;b&&a!=b;") - .append(")b=b.parentNode;return b==a}\nfunction xa(a,b){if(a==b)return 0;if(a.compareDocume") - .append("ntPosition)return a.compareDocumentPosition(b)&2?1:-1;if(\"sourceIndex\"in a||a.pa") - .append("rentNode&&\"sourceIndex\"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(c") - .append("&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e=") - .append("=f?ya(a,b):!c&&wa(e,b)?-1*za(a,b):!d&&wa(f,a)?za(b,a):(c?a.sourceIndex:e.sourceInd") - .append("ex)-(d?b.sourceIndex:f.sourceIndex)}d=y(a);c=d.createRange();c.selectNode(a);c.col") - .append("lapse(!0);d=d.createRange();d.selectNode(b);\nd.collapse(!0);return c.compareBound") - .append("aryPoints(l.Range.START_TO_END,d)}function za(a,b){var c=a.parentNode;if(c==b)retu") - .append("rn-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return ya(d,a)}function ya(a,b){f") - .append("or(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1}function y(a){return 9==") - .append("a.nodeType?a:a.ownerDocument||a.document};function z(a,b,c){this.l=a;this.na=b||1;") - .append("this.k=c||1};function Aa(a){this.R=a;this.G=0}function Ba(a){a=a.match(Ca);for(var") - .append(" b=0;b]=|\\\\s+|.\",\"g\"),Da=") - .append("/^\\s/;function A(a,b){return a.R[a.G+(b||0)]}Aa.prototype.next=function(){return ") - .append("this.R[this.G++]};Aa.prototype.back=function(){this.G--};Aa.prototype.empty=functi") - .append("on(){return this.R.length<=this.G};function B(a){var b=null,c=a.nodeType;1==c&&(b=") - .append("a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?\"\":b);if(") - .append("\"string\"!=typeof b)if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;for(var ") - .append("c=0,d=[],b=\"\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c++]=a;while(a=a.firstChi") - .append("ld);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;return\"\"+b}\nfunction") - .append(" C(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!1}r") - .append("eturn null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function E(a,b,c,d,e){ret") - .append("urn Ea.call(null,a,b,p(c)?c:null,p(d)?d:null,e||new F)}\nfunction Ea(a,b,c,d,e){b.") - .append("getElementsByName&&d&&\"name\"==c?(b=b.getElementsByName(d),r(b,function(b){a.matc") - .append("hes(b)&&e.add(b)})):b.getElementsByClassName&&d&&\"class\"==c?(b=b.getElementsByCl") - .append("assName(d),r(b,function(b){b.className==d&&a.matches(b)&&e.add(b)})):a instanceof ") - .append("G?Fa(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTagName(a.getName()),r(b") - .append(",function(a){C(a,c,d)&&e.add(a)}));return e}function Ga(a,b,c,d,e){for(b=b.firstCh") - .append("ild;b;b=b.nextSibling)C(b,c,d)&&a.matches(b)&&e.add(b);return e}\nfunction Fa(a,b,") - .append("c,d,e){for(b=b.firstChild;b;b=b.nextSibling)C(b,c,d)&&a.matches(b)&&e.add(b),Fa(a,") - .append("b,c,d,e)};function F(){this.k=this.h=null;this.B=0}function Ha(a){this.t=a;this.ne") - .append("xt=this.s=null}function Ia(a,b){if(!a.h)return b;if(!b.h)return a;for(var c=a.h,d=") - .append("b.h,e=null,f=null,h=0;c&&d;)c.t==d.t?(f=c,c=c.next,d=d.next):0\",4,2,function(a,b,c){return O(") - .append("function(a,b){return a>b},a,b,c)});P(\"<=\",4,2,function(a,b,c){return O(function(") - .append("a,b){return a<=b},a,b,c)});P(\">=\",4,2,function(a,b,c){return O(function(a,b){ret") - .append("urn a>=b},a,b,c)});var Oa=P(\"=\",3,2,function(a,b,c){return O(function(a,b){retur") - .append("n a==b},a,b,c,!0)});P(\"!=\",3,2,function(a,b,c){return O(function(a,b){return a!=") - .append("b},a,b,c,!0)});P(\"and\",2,2,function(a,b,c){return M(a,c)&&M(b,c)});P(\"or\",1,2,") - .append("function(a,b,c){return M(a,c)||M(b,c)});function Ra(a,b){if(b.n()&&4!=a.g)throw Er") - .append("ror(\"Primary expression must evaluate to nodeset if filter has predicate(s).\");I") - .append(".call(this,a.g);this.$=a;this.d=b;this.o=a.e();this.i=a.i}q(Ra,I);Ra.prototype.eva") - .append("luate=function(a){a=this.$.evaluate(a);return Sa(this.d,a)};Ra.prototype.toString=") - .append("function(){var a;a=\"Filter:\"+J(this.$);return a+=J(this.d)};function Ta(a,b){if(") - .append("b.lengtha.N)throw Error(\"Function \"+a.j") - .append("+\" expects at most \"+a.N+\" arguments, \"+b.length+\" given\");a.ka&&r(b,functio") - .append("n(b,d){if(4!=b.g)throw Error(\"Argument \"+d+\" to function \"+a.j+\" is not of ty") - .append("pe Nodeset: \"+b);});I.call(this,a.g);this.F=a;this.K=b;Ma(this,a.o||ja(b,function") - .append("(a){return a.e()}));Na(this,a.ia&&!b.length||a.ha&&!!b.length||ja(b,function(a){re") - .append("turn a.i}))}\nq(Ta,I);Ta.prototype.evaluate=function(a){return this.F.m.apply(null") - .append(",ka(a,this.K))};Ta.prototype.toString=function(){var a=\"Function: \"+this.F;if(th") - .append("is.K.length)var b=s(this.K,function(a,b){return a+J(b)},\"Arguments:\"),a=a+J(b);r") - .append("eturn a};function Ua(a,b,c,d,e,f,h,n,t){this.j=a;this.g=b;this.o=c;this.ia=d;this.") - .append("ha=e;this.m=f;this.Y=h;this.N=void 0!==n?n:h;this.ka=!!t}Ua.prototype.toString=g(") - .append("\"j\");var Va={};\nfunction Q(a,b,c,d,e,f,h,n){if(a in Va)throw Error(\"Function a") - .append("lready created: \"+a+\".\");Va[a]=new Ua(a,b,c,d,!1,e,f,h,n)}Q(\"boolean\",2,!1,!1") - .append(",function(a,b){return M(b,a)},1);Q(\"ceiling\",1,!1,!1,function(a,b){return Math.c") - .append("eil(K(b,a))},1);Q(\"concat\",3,!1,!1,function(a,b){var c=la(arguments,1);return s(") - .append("c,function(b,c){return b+L(c,a)},\"\")},2,null);Q(\"contains\",2,!1,!1,function(a,") - .append("b,c){b=L(b,a);a=L(c,a);return-1!=b.indexOf(a)},2);Q(\"count\",1,!1,!1,function(a,b") - .append("){return b.evaluate(a).n()},1,1,!0);\nQ(\"false\",2,!1,!1,k(!1),0);Q(\"floor\",1,!") - .append("1,!1,function(a,b){return Math.floor(K(b,a))},1);Q(\"id\",4,!1,!1,function(a,b){va") - .append("r c=a.l,d=9==c.nodeType?c:c.ownerDocument,c=L(b,a).split(/\\s+/),e=[];r(c,function") - .append("(a){a=d.getElementById(a);var b;if(!(b=!a)){a:if(p(e))b=p(a)&&1==a.length?e.indexO") - .append("f(a,0):-1;else{for(b=0;ba.length)throw Error(\"Unclosed literal string\");retu") - .append("rn new Xa(a)}function tb(a){var b=a.a.next(),c=b.indexOf(\":\");if(-1==c)return ne") - .append("w Ya(b);var d=b.substring(0,c);a=a.la(d);if(!a)throw Error(\"Namespace prefix not ") - .append("declared: \"+d);b=b.substr(c+1);return new Ya(b,a)}\nfunction ub(a){var b,c=[],d;i") - .append("f(\"/\"==A(a.a)||\"//\"==A(a.a)){b=a.a.next();d=A(a.a);if(\"/\"==b&&(a.a.empty()||") - .append("\".\"!=d&&\"..\"!=d&&\"@\"!=d&&\"*\"!=d&&!/(?![0-9])[\\w]/.test(d)))return new bb;") - .append("d=new bb;U(a,\"Missing next location step.\");b=vb(a,b);c.push(b)}else{a:{b=A(a.a)") - .append(";d=b.charAt(0);switch(d){case \"$\":throw Error(\"Variable reference not allowed i") - .append("n HTML XPath\");case \"(\":a.a.next();b=ob(a);U(a,'unclosed \"(\"');qb(a,\")\");br") - .append("eak;case '\"':case \"'\":b=sb(a);break;default:if(isNaN(+b))if(!Wa(b)&&/(?![0-9])[") - .append("\\w]/.test(d)&&\n\"(\"==A(a.a,1)){b=a.a.next();b=Va[b]||null;a.a.next();for(d=[];") - .append("\")\"!=A(a.a);){U(a,\"Missing function argument list.\");d.push(ob(a));if(\",\"!=A") - .append("(a.a))break;a.a.next()}U(a,\"Unclosed function argument list.\");rb(a);b=new Ta(b,") - .append("d)}else{b=null;break a}else b=new Za(+a.a.next())}\"[\"==A(a.a)&&(d=new R(wb(a)),b") - .append("=new Ra(b,d))}if(b)if(\"/\"==A(a.a)||\"//\"==A(a.a))d=b;else return b;else b=vb(a,") - .append("\"/\"),d=new cb,c.push(b)}for(;\"/\"==A(a.a)||\"//\"==A(a.a);)b=a.a.next(),U(a,\"M") - .append("issing next location step.\"),b=vb(a,b),c.push(b);return new $a(d,\nc)}\nfunction ") - .append("vb(a,b){var c,d,e;if(\"/\"!=b&&\"//\"!=b)throw Error('Step op should be \"/\" or ") - .append("\"//\"');if(\".\"==A(a.a))return d=new S(kb,new G(\"node\")),a.a.next(),d;if(\"..") - .append("\"==A(a.a))return d=new S(jb,new G(\"node\")),a.a.next(),d;var f;if(\"@\"==A(a.a))") - .append("f=ab,a.a.next(),U(a,\"Missing attribute name\");else if(\"::\"==A(a.a,1)){if(!/(?!") - .append("[0-9])[\\w]/.test(A(a.a).charAt(0)))throw Error(\"Bad token: \"+a.a.next());c=a.a.") - .append("next();f=ib[c]||null;if(!f)throw Error(\"No axis with name: \"+c);a.a.next();U(a,") - .append("\"Missing node name\")}else f=fb;\nc=A(a.a);if(/(?![0-9])[\\w]/.test(c.charAt(0)))") - .append("if(\"(\"==A(a.a,1)){if(!Wa(c))throw Error(\"Invalid node type: \"+c);c=a.a.next();") - .append("if(!Wa(c))throw Error(\"Invalid type name: \"+c);qb(a,\"(\");U(a,\"Bad nodetype\")") - .append(";e=A(a.a).charAt(0);var h=null;if('\"'==e||\"'\"==e)h=sb(a);U(a,\"Bad nodetype\");") - .append("rb(a);c=new G(c,h)}else c=tb(a);else if(\"*\"==c)c=tb(a);else throw Error(\"Bad to") - .append("ken: \"+a.a.next());e=new R(wb(a),f.u);return d||new S(f,c,e,\"//\"==b)}\nfunction") - .append(" wb(a){for(var b=[];\"[\"==A(a.a);){a.a.next();U(a,\"Missing predicate expression.") - .append("\");var c=ob(a);b.push(c);U(a,\"Unclosed predicate expression.\");qb(a,\"]\")}retu") - .append("rn b}function pb(a){if(\"-\"==A(a.a))return a.a.next(),new lb(pb(a));var b=ub(a);i") - .append("f(\"|\"!=A(a.a))a=b;else{for(b=[b];\"|\"==a.a.next();)U(a,\"Missing next union loc") - .append("ation path.\"),b.push(ub(a));a.a.back();a=new mb(b)}return a};function xb(a,b){if(") - .append("!a.length)throw Error(\"Empty XPath expression.\");var c=Ba(a);if(c.empty())throw ") - .append("Error(\"Invalid XPath expression.\");b?\"function\"==m(b)||(b=ea(b.lookupNamespace") - .append("URI,b)):b=k(null);var d=ob(new nb(c,b));if(!c.empty())throw Error(\"Bad token: \"+") - .append("c.next());this.evaluate=function(a,b){var c=d.evaluate(new z(a));return new V(c,b)") - .append("}}\nfunction V(a,b){if(0==b)if(a instanceof F)b=4;else if(\"string\"==typeof a)b=2") - .append(";else if(\"number\"==typeof a)b=1;else if(\"boolean\"==typeof a)b=3;else throw Err") - .append("or(\"Unexpected evaluation result.\");if(2!=b&&1!=b&&3!=b&&!(a instanceof F))throw") - .append(" Error(\"value could not be converted to the specified type\");this.resultType=b;v") - .append("ar c;switch(b){case 2:this.stringValue=a instanceof F?Ka(a):\"\"+a;break;case 1:th") - .append("is.numberValue=a instanceof F?+Ka(a):+a;break;case 3:this.booleanValue=a instanceo") - .append("f F?0=c.length?null:c[f++]}") - .append(";this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error(\"snapshotItem called wit") - .append("h wrong result type\");return a>=c.length||0>a?null:c[a]}}V.ANY_TYPE=0;\nV.NUMBER_") - .append("TYPE=1;V.STRING_TYPE=2;V.BOOLEAN_TYPE=3;V.UNORDERED_NODE_ITERATOR_TYPE=4;V.ORDERED") - .append("_NODE_ITERATOR_TYPE=5;V.UNORDERED_NODE_SNAPSHOT_TYPE=6;V.ORDERED_NODE_SNAPSHOT_TYP") - .append("E=7;V.ANY_UNORDERED_NODE_TYPE=8;V.FIRST_ORDERED_NODE_TYPE=9;function yb(a){a=a||l;") - .append("var b=a.document;b.evaluate||(a.XPathResult=V,b.evaluate=function(a,b,e,f){return(") - .append("new xb(a,e)).evaluate(b,f)},b.createExpression=function(a,b){return new xb(a,b)})}") - .append(";var W={};W.fa=function(){var a={ua:\"http://www.w3.org/2000/svg\"};return functio") - .append("n(b){return a[b]||null}}();W.m=function(a,b,c){var d=y(a);yb(d?d.parentWindow||d.d") - .append("efaultView:window);try{var e=d.createNSResolver?d.createNSResolver(d.documentEleme") - .append("nt):W.fa;return d.evaluate(b,a,e,c,null)}catch(f){throw new u(32,\"Unable to locat") - .append("e an element with the xpath expression \"+b+\" because of the following error:\\n") - .append("\"+f);}};\nW.S=function(a,b){if(!a||1!=a.nodeType)throw new u(32,'The result of th") - .append("e xpath expression \"'+b+'\" is: '+a+\". It should be an element.\");};W.oa=functi") - .append("on(a,b){var c=function(){var c=W.m(b,a,9);return c?c.singleNodeValue||null:b.selec") - .append("tSingleNode?(c=y(b),c.setProperty&&c.setProperty(\"SelectionLanguage\",\"XPath\"),") - .append("b.selectSingleNode(a)):null}();null===c||W.S(c,a);return c};\nW.ra=function(a,b){v") - .append("ar c=function(){var c=W.m(b,a,7);if(c){for(var e=c.snapshotLength,f=[],h=0;h(0==\nD[1].length?0:parseInt(D[1],10))?1:0)||((0==x[2].length)<(0") - .append("==D[2].length)?-1:(0==x[2].length)>(0==D[2].length)?1:0)||(x[2]D[2]?") - .append("1:0)}while(0==b)}}var Cb=/Android\\s+([0-9\\.]+)/.exec(qa()),Bb=Cb?Cb[1]:\"0\";Ab(") - .append("2.3);Ab(4);function X(a,b,c,d){this.left=a;this.top=b;this.width=c;this.height=d}X") - .append(".prototype.toString=function(){return\"(\"+this.left+\", \"+this.top+\" - \"+this.") - .append("width+\"w x \"+this.height+\"h)\"};X.prototype.contains=function(a){return a insta") - .append("nceof X?this.left<=a.left&&this.left+this.width>=a.left+a.width&&this.top<=a.top&&") - .append("this.top+this.height>=a.top+a.height:a.x>=this.left&&a.x<=this.left+this.width&&a.") - .append("y>=this.top&&a.y<=this.top+this.height};\nX.prototype.ceil=function(){this.left=Ma") - .append("th.ceil(this.left);this.top=Math.ceil(this.top);this.width=Math.ceil(this.width);t") - .append("his.height=Math.ceil(this.height);return this};X.prototype.floor=function(){this.l") - .append("eft=Math.floor(this.left);this.top=Math.floor(this.top);this.width=Math.floor(this") - .append(".width);this.height=Math.floor(this.height);return this};\nX.prototype.round=funct") - .append("ion(){this.left=Math.round(this.left);this.top=Math.round(this.top);this.width=Mat") - .append("h.round(this.width);this.height=Math.round(this.height);return this};function Db(a") - .append(",b){return!!a&&1==a.nodeType&&(!b||a.tagName.toUpperCase()==b)}\nfunction Eb(a){va") - .append("r b;var c=Db(a,\"MAP\");if(c||Db(a,\"AREA\")){var d=c?a:Db(a.parentNode,\"MAP\")?a") - .append(".parentNode:null,e=b=null;if(d&&d.name&&(b=W.oa('/descendant::*[@usemap = \"#'+d.n") - .append("ame+'\"]',y(d)))&&(e=Eb(b),!c&&\"default\"!=a.shape.toLowerCase()))var f=Fb(a),c=M") - .append("ath.min(Math.max(f.left,0),e.width),d=Math.min(Math.max(f.top,0),e.height),h=Math.") - .append("min(f.width,e.width-c),f=Math.min(f.height,e.height-d),e=new X(c+e.left,d+e.top,h,") - .append("f);b={qa:b,rect:e||new X(0,0,0,0)}}else b=null;if(b)return b.rect;if(Db(a,\"HTML\"") - .append("))return a=\n((y(a)?y(a).parentWindow||y(a).defaultView:window)||window).document,") - .append("a=\"CSS1Compat\"==a.compatMode?a.documentElement:a.body,a=new w(a.clientWidth,a.cl") - .append("ientHeight),new X(0,0,a.width,a.height);var n;try{n=a.getBoundingClientRect()}catc") - .append("h(t){return new X(0,0,0,0)}return new X(n.left,n.top,n.right-n.left,n.bottom-n.top") - .append(")}\nfunction Fb(a){var b=a.shape.toLowerCase();a=a.coords.split(\",\");if(\"rect\"") - .append("==b&&4==a.length){var b=a[0],c=a[1];return new X(b,c,a[2]-b,a[3]-c)}if(\"circle\"=") - .append("=b&&3==a.length)return b=a[2],new X(a[0]-b,a[1]-b,2*b,2*b);if(\"poly\"==b&&22*this.A&&Hb(this)") - .append(",!0):!1};function Hb(a){if(a.A!=a.f.length){for(var b=0,c=0;b\");Z(191,\"/\",\"?\");Z(192,\"`\",\"~\");Z(219,\"[\",\"{\");Z") - .append("(220,\"\\\\\",\"|\");Z(221,\"]\",\"}\");Z({c:59,b:186,opera:59},\";\",\":\");Z(222") - .append(",\"'\",'\"');var Ob=new Y;Ob.set(1,Kb);Ob.set(2,Lb);Ob.set(4,Mb);Ob.set(8,Nb);(fun") - .append("ction(a){var b=new Y;r(Gb(a),function(c){b.set(a.get(c).code,c)});return b})(Ob);f") - .append("unction Pb(){this.I=void 0}\nfunction Qb(a,b,c){switch(typeof b){case \"string\":R") - .append("b(b,c);break;case \"number\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case ") - .append("\"boolean\":c.push(b);break;case \"undefined\":c.push(\"null\");break;case \"objec") - .append("t\":if(null==b){c.push(\"null\");break}if(\"array\"==m(b)){var d=b.length;c.push(") - .append("\"[\");for(var e=\"\",f=0;fb?e+=\"000\":256>b?e+=\"00") - .append("\":4096>b&&(e+=\"0\");return Sb[a]=e+b.toString(16)}),'\"')};function Ub(a){switch") - .append("(m(a)){case \"string\":case \"number\":case \"boolean\":return a;case \"function\"") - .append(":return a.toString();case \"array\":return ia(a,Ub);case \"object\":if(\"nodeType") - .append("\"in a&&(1==a.nodeType||9==a.nodeType)){var b={};b.ELEMENT=Vb(a);return b}if(\"doc") - .append("ument\"in a)return b={},b.WINDOW=Vb(a),b;if(aa(a))return ia(a,Ub);a=ta(a,function(") - .append("a,b){return\"number\"==typeof b||p(b)});return ua(a,Ub);default:return null}}\nfun") - .append("ction Wb(a,b){return\"array\"==m(a)?ia(a,function(a){return Wb(a,b)}):ba(a)?\"func") - .append("tion\"==typeof a?a:\"ELEMENT\"in a?Xb(a.ELEMENT,b):\"WINDOW\"in a?Xb(a.WINDOW,b):u") - .append("a(a,function(a){return Wb(a,b)}):a}function Yb(a){a=a||document;var b=a.$wdc_;b||(") - .append("b=a.$wdc_={},b.P=fa());b.P||(b.P=fa());return b}function Vb(a){var b=Yb(a.ownerDoc") - .append("ument),c=va(b,function(b){return b==a});c||(c=\":wdc:\"+b.P++,b[c]=a);return c}\nf") - .append("unction Xb(a,b){a=decodeURIComponent(a);var c=b||document,d=Yb(c);if(!(a in d))thr") - .append("ow new u(10,\"Element does not exist in cache\");var e=d[a];if(\"setInterval\"in e") - .append("){if(e.closed)throw delete d[a],new u(23,\"Window has been closed.\");return e}for") - .append("(var f=e;f;){if(f==c.documentElement)return e;f=f.parentNode}delete d[a];throw new") - .append(" u(10,\"Element is no longer attached to the DOM\");};function Zb(a,b){var c=a,d=w") - .append("indow||ga,e;try{var c=p(c)?new d.Function(c):d==window?c:new d.Function(\"return (") - .append("\"+c+\").apply(null,arguments);\"),f=Wb(b,d.document),h=c.apply(null,f);e={status:") - .append("0,value:Ub(h)}}catch(n){e={status:\"code\"in n?n.code:13,value:{message:n.message}") - .append("}}c=[];Qb(new Pb,e,c);return c.join(\"\")};function $b(a){return Zb(function(a){a=") - .append("Eb(a);return{width:a.width,height:a.height}},[a])}var ac=[\"_\"],$=l;ac[0]in $||!$") - .append(".execScript||$.execScript(\"var \"+ac[0]);for(var bc;ac.length&&(bc=ac.shift());)a") - .append("c.length||void 0===$b?$=$[bc]?$[bc]:$[bc]={}:$[bc]=$b;; return this._.apply(null,a") - .append("rguments);}.apply({navigator:typeof window!=undefined?window.navigator:null,docume") - .append("nt:typeof window!=undefined?window.document:null}, arguments);}") - .toString()), - - GET_TEXT(new StringBuilder() - .append("function(){return function(){function g(a){return function(){return this[a]}}funct") - .append("ion k(a){return function(){return a}}var l=this;\nfunction n(a){var b=typeof a;if(") - .append("\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)r") - .append("eturn b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"") - .append("object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typ") - .append("eof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerabl") - .append("e(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a") - .append(".call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"cal") - .append("l\"))return\"function\"}else return\"null\";\nelse if(\"function\"==b&&\"undefined") - .append("\"==typeof a.call)return\"object\";return b}function aa(a){var b=n(a);return\"arra") - .append("y\"==b||\"object\"==b&&\"number\"==typeof a.length}function p(a){return\"string\"=") - .append("=typeof a}function ba(a){var b=typeof a;return\"object\"==b&&null!=a||\"function\"") - .append("==b}function ca(a,b,c){return a.call.apply(a.bind,arguments)}\nfunction da(a,b,c){") - .append("if(!a)throw Error();if(2") - .append("=arguments.length?ja.slice.call(a,b):ja.slice.call(a,b,c)};var qa={aliceblue:\"#f0") - .append("f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f") - .append("0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#f") - .append("febcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb") - .append("887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#") - .append("ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:") - .append("\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",da") - .append("rkgray:\"#a9a9a9\",darkgreen:\"#006400\",\ndarkgrey:\"#a9a9a9\",darkkhaki:\"#bdb76") - .append("b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",dark") - .append("orchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc") - .append("8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\"") - .append(",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue") - .append(":\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebr") - .append("ick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff") - .append("\",gainsboro:\"#dcdcdc\",\nghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#da") - .append("a520\",gray:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",grey:\"#808080\"") - .append(",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\"") - .append(",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5") - .append("\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral") - .append(":\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d") - .append("3d3d3\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\",lightpink:\"#ffb6c1\",lightsa") - .append("lmon:\"#ffa07a\",\nlightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategr") - .append("ay:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:") - .append("\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff") - .append("00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",medi") - .append("umorchid:\"#ba55d3\",mediumpurple:\"#9370db\",mediumseagreen:\"#3cb371\",mediumsla") - .append("teblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediu") - .append("mvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"") - .append("#ffe4e1\",\nmoccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:") - .append("\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:") - .append("\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",pal") - .append("eturquoise:\"#afeeee\",palevioletred:\"#db7093\",papayawhip:\"#ffefd5\",peachpuff:") - .append("\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e") - .append("6\",purple:\"#800080\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\"") - .append(",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8") - .append("b57\",\nseashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ce") - .append("eb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fff") - .append("afa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080") - .append("\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\"") - .append(",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yel") - .append("lowgreen:\"#9acd32\"};var ra=\"background-color border-top-color border-right-colo") - .append("r border-bottom-color border-left-color color outline-color\".split(\" \"),sa=/#([") - .append("0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/;function ta(a){if(!ua.test(a))throw Error(") - .append("\"'\"+a+\"' is not a valid hex color\");4==a.length&&(a=a.replace(sa,\"#$1$1$2$2$3") - .append("$3\"));return a.toLowerCase()}var ua=/^#(?:[0-9a-f]{3}){1,2}$/i,va=/^(?:rgba)?\\((") - .append("\\d{1,3}),\\s?(\\d{1,3}),\\s?(\\d{1,3}),\\s?(0|1|0\\.\\d*)\\)$/i;\nfunction wa(a){") - .append("var b=a.match(va);if(b){a=Number(b[1]);var c=Number(b[2]),d=Number(b[3]),b=Number(") - .append("b[4]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=d&&255>=d&&0<=b&&1>=b)return[a,c,d,b]}retu") - .append("rn[]}var xa=/^(?:rgb)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0") - .append(",2})\\)$/i;function ya(a){var b=a.match(xa);if(b){a=Number(b[1]);var c=Number(b[2]") - .append("),b=Number(b[3]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=b&&255>=b)return[a,c,b]}return[") - .append("]};function w(a,b){this.code=a;this.state=za[a]||Aa;this.message=b||\"\";var c=thi") - .append("s.state.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^") - .append("[\\s\\xa0]+/g,\"\")}),d=c.length-5;if(0>d||c.indexOf(\"Error\",d)!=d)c+=\"Error\";") - .append("this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}t(w,Er") - .append("ror);\nvar Aa=\"unknown error\",za={15:\"element not selectable\",11:\"element not") - .append(" visible\",31:\"ime engine activation failed\",30:\"ime not available\",24:\"inval") - .append("id cookie domain\",29:\"invalid element coordinates\",12:\"invalid element state\"") - .append(",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector\",17:\"java") - .append("script error\",405:\"unsupported operation\",34:\"move target out of bounds\",27:") - .append("\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no such window\",") - .append("28:\"script timeout\",33:\"session not created\",10:\"stale element reference\",\n") - .append("0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpected alert ope") - .append("n\"};za[13]=Aa;za[9]=\"unknown command\";w.prototype.toString=function(){return th") - .append("is.name+\": \"+this.message};var Ba,Ca;function Da(){return l.navigator?l.navigato") - .append("r.userAgent:null}var Ea,Fa=l.navigator;Ea=Fa&&Fa.platform||\"\";Ba=-1!=Ea.indexOf(") - .append("\"Mac\");Ca=-1!=Ea.indexOf(\"Win\");var Ha=-1!=Ea.indexOf(\"Linux\");function x(a,") - .append("b){this.x=void 0!==a?a:0;this.y=void 0!==b?b:0}x.prototype.toString=function(){ret") - .append("urn\"(\"+this.x+\", \"+this.y+\")\"};x.prototype.ceil=function(){this.x=Math.ceil(") - .append("this.x);this.y=Math.ceil(this.y);return this};x.prototype.floor=function(){this.x=") - .append("Math.floor(this.x);this.y=Math.floor(this.y);return this};x.prototype.round=functi") - .append("on(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this};function Ia(") - .append("a,b){this.width=a;this.height=b}Ia.prototype.toString=function(){return\"(\"+this.") - .append("width+\" x \"+this.height+\")\"};Ia.prototype.ceil=function(){this.width=Math.ceil") - .append("(this.width);this.height=Math.ceil(this.height);return this};Ia.prototype.floor=fu") - .append("nction(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);ret") - .append("urn this};Ia.prototype.round=function(){this.width=Math.round(this.width);this.hei") - .append("ght=Math.round(this.height);return this};function Ja(a,b){var c={},d;for(d in a)b.") - .append("call(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function Ka(a,b){var c={},d;for(d in a") - .append(")c[d]=b.call(void 0,a[d],d,a);return c}function La(a,b){for(var c in a)if(b.call(v") - .append("oid 0,a[c],c,a))return c};var Ma=3;function Na(a){for(;a&&1!=a.nodeType;)a=a.previ") - .append("ousSibling;return a}function Oa(a,b){if(a.contains&&1==b.nodeType)return a==b||a.c") - .append("ontains(b);if(\"undefined\"!=typeof a.compareDocumentPosition)return a==b||Boolean") - .append("(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}\nfunct") - .append("ion Pa(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocument") - .append("Position(b)&2?1:-1;if(\"sourceIndex\"in a||a.parentNode&&\"sourceIndex\"in a.paren") - .append("tNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceIn") - .append("dex;var e=a.parentNode,f=b.parentNode;return e==f?Qa(a,b):!c&&Oa(e,b)?-1*Ra(a,b):!") - .append("d&&Oa(f,a)?Ra(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)") - .append("}d=y(a);c=d.createRange();c.selectNode(a);c.collapse(!0);d=d.createRange();d.selec") - .append("tNode(b);\nd.collapse(!0);return c.compareBoundaryPoints(l.Range.START_TO_END,d)}f") - .append("unction Ra(a,b){var c=a.parentNode;if(c==b)return-1;for(var d=b;d.parentNode!=c;)d") - .append("=d.parentNode;return Qa(d,a)}function Qa(a,b){for(var c=b;c=c.previousSibling;)if(") - .append("c==a)return-1;return 1}function y(a){return 9==a.nodeType?a:a.ownerDocument||a.doc") - .append("ument}function Sa(a,b){a=a.parentNode;for(var c=0;a;){if(b(a))return a;a=a.parentN") - .append("ode;c++}return null}function Ta(a){this.ia=a||l.document||document}Ta.prototype.co") - .append("ntains=Oa;function z(a,b,c){this.l=a;this.pa=b||1;this.k=c||1};function Ua(a){this") - .append(".R=a;this.G=0}function Va(a){a=a.match(Wa);for(var b=0;b]=|\\\\s+|.\",\"g\"),Xa=/^\\s/;function A(a,b){return") - .append(" a.R[a.G+(b||0)]}Ua.prototype.next=function(){return this.R[this.G++]};Ua.prototyp") - .append("e.back=function(){this.G--};Ua.prototype.empty=function(){return this.R.length<=th") - .append("is.G};function B(a){var b=null,c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||nu") - .append("ll==b?a.innerText:b,b=void 0==b||null==b?\"\":b);if(\"string\"!=typeof b)if(9==c||") - .append("1==c){a=9==c?a.documentElement:a.firstChild;for(var c=0,d=[],b=\"\";a;){do 1!=a.no") - .append("deType&&(b+=a.nodeValue),d[c++]=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSib") - .append("ling););}}else b=a.nodeValue;return\"\"+b}\nfunction Ya(a,b,c){if(null===b)return!") - .append("0;try{if(!a.getAttribute)return!1}catch(d){return!1}return null==c?!!a.getAttribut") - .append("e(b):a.getAttribute(b,2)==c}function Za(a,b,c,d,e){return $a.call(null,a,b,p(c)?c:") - .append("null,p(d)?d:null,e||new D)}\nfunction $a(a,b,c,d,e){b.getElementsByName&&d&&\"name") - .append("\"==c?(b=b.getElementsByName(d),u(b,function(b){a.matches(b)&&e.add(b)})):b.getEle") - .append("mentsByClassName&&d&&\"class\"==c?(b=b.getElementsByClassName(d),u(b,function(b){b") - .append(".className==d&&a.matches(b)&&e.add(b)})):a instanceof E?ab(a,b,c,d,e):b.getElement") - .append("sByTagName&&(b=b.getElementsByTagName(a.getName()),u(b,function(a){Ya(a,c,d)&&e.ad") - .append("d(a)}));return e}function bb(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)Ya(b,") - .append("c,d)&&a.matches(b)&&e.add(b);return e}\nfunction ab(a,b,c,d,e){for(b=b.firstChild;") - .append("b;b=b.nextSibling)Ya(b,c,d)&&a.matches(b)&&e.add(b),ab(a,b,c,d,e)};function D(){th") - .append("is.k=this.h=null;this.B=0}function cb(a){this.t=a;this.next=this.s=null}function d") - .append("b(a,b){if(!a.h)return b;if(!b.h)return a;for(var c=a.h,d=b.h,e=null,f=null,h=0;c&&") - .append("d;)c.t==d.t?(f=c,c=c.next,d=d.next):0\",4,2,function(a,b,c){return mb(function(a,b){re") - .append("turn a>b},a,b,c)});K(\"<=\",4,2,function(a,b,c){return mb(function(a,b){return a<=") - .append("b},a,b,c)});K(\">=\",4,2,function(a,b,c){return mb(function(a,b){return a>=b},a,b,") - .append("c)});var lb=K(\"=\",3,2,function(a,b,c){return mb(function(a,b){return a==b},a,b,c") - .append(",!0)});K(\"!=\",3,2,function(a,b,c){return mb(function(a,b){return a!=b},a,b,c,!0)") - .append("});K(\"and\",2,2,function(a,b,c){return jb(a,c)&&jb(b,c)});K(\"or\",1,2,function(a") - .append(",b,c){return jb(a,c)||jb(b,c)});function pb(a,b){if(b.n()&&4!=a.g)throw Error(\"Pr") - .append("imary expression must evaluate to nodeset if filter has predicate(s).\");G.call(th") - .append("is,a.g);this.aa=a;this.d=b;this.o=a.e();this.i=a.i}t(pb,G);pb.prototype.evaluate=f") - .append("unction(a){a=this.aa.evaluate(a);return qb(this.d,a)};pb.prototype.toString=functi") - .append("on(){var a;a=\"Filter:\"+H(this.aa);return a+=H(this.d)};function rb(a,b){if(b.len") - .append("gtha.N)throw Error(\"Function \"+a.j+\" e") - .append("xpects at most \"+a.N+\" arguments, \"+b.length+\" given\");a.ma&&u(b,function(b,d") - .append("){if(4!=b.g)throw Error(\"Argument \"+d+\" to function \"+a.j+\" is not of type No") - .append("deset: \"+b);});G.call(this,a.g);this.F=a;this.K=b;hb(this,a.o||la(b,function(a){r") - .append("eturn a.e()}));ib(this,a.ka&&!b.length||a.ja&&!!b.length||la(b,function(a){return ") - .append("a.i}))}\nt(rb,G);rb.prototype.evaluate=function(a){return this.F.m.apply(null,oa(a") - .append(",this.K))};rb.prototype.toString=function(){var a=\"Function: \"+this.F;if(this.K.") - .append("length)var b=v(this.K,function(a,b){return a+H(b)},\"Arguments:\"),a=a+H(b);return") - .append(" a};function sb(a,b,c,d,e,f,h,q,r){this.j=a;this.g=b;this.o=c;this.ka=d;this.ja=e;") - .append("this.m=f;this.Z=h;this.N=void 0!==q?q:h;this.ma=!!r}sb.prototype.toString=g(\"j\")") - .append(";var tb={};\nfunction L(a,b,c,d,e,f,h,q){if(a in tb)throw Error(\"Function already") - .append(" created: \"+a+\".\");tb[a]=new sb(a,b,c,d,!1,e,f,h,q)}L(\"boolean\",2,!1,!1,funct") - .append("ion(a,b){return jb(b,a)},1);L(\"ceiling\",1,!1,!1,function(a,b){return Math.ceil(I") - .append("(b,a))},1);L(\"concat\",3,!1,!1,function(a,b){var c=pa(arguments,1);return v(c,fun") - .append("ction(b,c){return b+J(c,a)},\"\")},2,null);L(\"contains\",2,!1,!1,function(a,b,c){") - .append("b=J(b,a);a=J(c,a);return-1!=b.indexOf(a)},2);L(\"count\",1,!1,!1,function(a,b){ret") - .append("urn b.evaluate(a).n()},1,1,!0);\nL(\"false\",2,!1,!1,k(!1),0);L(\"floor\",1,!1,!1,") - .append("function(a,b){return Math.floor(I(b,a))},1);L(\"id\",4,!1,!1,function(a,b){var c=a") - .append(".l,d=9==c.nodeType?c:c.ownerDocument,c=J(b,a).split(/\\s+/),e=[];u(c,function(a){(") - .append("a=d.getElementById(a))&&!na(e,a)&&e.push(a)});e.sort(Pa);var f=new D;u(e,function(") - .append("a){f.add(a)});return f},1);L(\"lang\",2,!1,!1,k(!1),1);L(\"last\",1,!0,!1,function") - .append("(a){if(1!=arguments.length)throw Error(\"Function last expects ()\");return a.k},0") - .append(");\nL(\"local-name\",3,!1,!0,function(a,b){var c=b?eb(b.evaluate(a)):a.l;return c?") - .append("c.nodeName.toLowerCase():\"\"},0,1,!0);L(\"name\",3,!1,!0,function(a,b){var c=b?eb") - .append("(b.evaluate(a)):a.l;return c?c.nodeName.toLowerCase():\"\"},0,1,!0);L(\"namespace-") - .append("uri\",3,!0,!1,k(\"\"),0,1,!0);L(\"normalize-space\",3,!1,!0,function(a,b){return(b") - .append("?J(b,a):B(a.l)).replace(/[\\s\\xa0]+/g,\" \").replace(/^\\s+|\\s+$/g,\"\")},0,1);L") - .append("(\"not\",2,!1,!1,function(a,b){return!jb(b,a)},1);L(\"number\",1,!1,!0,function(a,") - .append("b){return b?I(b,a):+B(a.l)},0,1);\nL(\"position\",1,!0,!1,function(a){return a.pa}") - .append(",0);L(\"round\",1,!1,!1,function(a,b){return Math.round(I(b,a))},1);L(\"starts-wit") - .append("h\",2,!1,!1,function(a,b,c){b=J(b,a);a=J(c,a);return 0==b.lastIndexOf(a,0)},2);L(") - .append("\"string\",3,!1,!0,function(a,b){return b?J(b,a):B(a.l)},0,1);L(\"string-length\",") - .append("1,!1,!0,function(a,b){return(b?J(b,a):B(a.l)).length},0,1);\nL(\"substring\",3,!1,") - .append("!1,function(a,b,c,d){c=I(c,a);if(isNaN(c)||Infinity==c||-Infinity==c)return\"\";d=") - .append("d?I(d,a):Infinity;if(isNaN(d)||-Infinity===d)return\"\";c=Math.round(c)-1;var e=Ma") - .append("th.max(c,0);a=J(b,a);if(Infinity==d)return a.substring(e);b=Math.round(d);return a") - .append(".substring(e,c+b)},2,3);L(\"substring-after\",3,!1,!1,function(a,b,c){b=J(b,a);a=J") - .append("(c,a);c=b.indexOf(a);return-1==c?\"\":b.substring(c+a.length)},2);\nL(\"substring-") - .append("before\",3,!1,!1,function(a,b,c){b=J(b,a);a=J(c,a);a=b.indexOf(a);return-1==a?\"\"") - .append(":b.substring(0,a)},2);L(\"sum\",1,!1,!1,function(a,b){for(var c=F(b.evaluate(a)),d") - .append("=0,e=c.next();e;e=c.next())d+=+B(e);return d},1,1,!0);L(\"translate\",3,!1,!1,func") - .append("tion(a,b,c,d){b=J(b,a);c=J(c,a);var e=J(d,a);a=[];for(d=0;da.len") - .append("gth)throw Error(\"Unclosed literal string\");return new vb(a)}function Sb(a){var b") - .append("=a.a.next(),c=b.indexOf(\":\");if(-1==c)return new wb(b);var d=b.substring(0,c);a=") - .append("a.na(d);if(!a)throw Error(\"Namespace prefix not declared: \"+d);b=b.substr(c+1);r") - .append("eturn new wb(b,a)}\nfunction Tb(a){var b,c=[],d;if(\"/\"==A(a.a)||\"//\"==A(a.a)){") - .append("b=a.a.next();d=A(a.a);if(\"/\"==b&&(a.a.empty()||\".\"!=d&&\"..\"!=d&&\"@\"!=d&&\"") - .append("*\"!=d&&!/(?![0-9])[\\w]/.test(d)))return new Ab;d=new Ab;Q(a,\"Missing next locat") - .append("ion step.\");b=Ub(a,b);c.push(b)}else{a:{b=A(a.a);d=b.charAt(0);switch(d){case \"$") - .append("\":throw Error(\"Variable reference not allowed in HTML XPath\");case \"(\":a.a.ne") - .append("xt();b=Nb(a);Q(a,'unclosed \"(\"');Pb(a,\")\");break;case '\"':case \"'\":b=Rb(a);") - .append("break;default:if(isNaN(+b))if(!ub(b)&&/(?![0-9])[\\w]/.test(d)&&\n\"(\"==A(a.a,1))") - .append("{b=a.a.next();b=tb[b]||null;a.a.next();for(d=[];\")\"!=A(a.a);){Q(a,\"Missing func") - .append("tion argument list.\");d.push(Nb(a));if(\",\"!=A(a.a))break;a.a.next()}Q(a,\"Unclo") - .append("sed function argument list.\");Qb(a);b=new rb(b,d)}else{b=null;break a}else b=new ") - .append("xb(+a.a.next())}\"[\"==A(a.a)&&(d=new M(Vb(a)),b=new pb(b,d))}if(b)if(\"/\"==A(a.a") - .append(")||\"//\"==A(a.a))d=b;else return b;else b=Ub(a,\"/\"),d=new Bb,c.push(b)}for(;\"/") - .append("\"==A(a.a)||\"//\"==A(a.a);)b=a.a.next(),Q(a,\"Missing next location step.\"),b=Ub") - .append("(a,b),c.push(b);return new yb(d,\nc)}\nfunction Ub(a,b){var c,d,e;if(\"/\"!=b&&\"/") - .append("/\"!=b)throw Error('Step op should be \"/\" or \"//\"');if(\".\"==A(a.a))return d=") - .append("new N(Jb,new E(\"node\")),a.a.next(),d;if(\"..\"==A(a.a))return d=new N(Ib,new E(") - .append("\"node\")),a.a.next(),d;var f;if(\"@\"==A(a.a))f=zb,a.a.next(),Q(a,\"Missing attri") - .append("bute name\");else if(\"::\"==A(a.a,1)){if(!/(?![0-9])[\\w]/.test(A(a.a).charAt(0))") - .append(")throw Error(\"Bad token: \"+a.a.next());c=a.a.next();f=Hb[c]||null;if(!f)throw Er") - .append("ror(\"No axis with name: \"+c);a.a.next();Q(a,\"Missing node name\")}else f=Eb;\nc") - .append("=A(a.a);if(/(?![0-9])[\\w]/.test(c.charAt(0)))if(\"(\"==A(a.a,1)){if(!ub(c))throw ") - .append("Error(\"Invalid node type: \"+c);c=a.a.next();if(!ub(c))throw Error(\"Invalid type") - .append(" name: \"+c);Pb(a,\"(\");Q(a,\"Bad nodetype\");e=A(a.a).charAt(0);var h=null;if('") - .append("\"'==e||\"'\"==e)h=Rb(a);Q(a,\"Bad nodetype\");Qb(a);c=new E(c,h)}else c=Sb(a);els") - .append("e if(\"*\"==c)c=Sb(a);else throw Error(\"Bad token: \"+a.a.next());e=new M(Vb(a),f") - .append(".u);return d||new N(f,c,e,\"//\"==b)}\nfunction Vb(a){for(var b=[];\"[\"==A(a.a);)") - .append("{a.a.next();Q(a,\"Missing predicate expression.\");var c=Nb(a);b.push(c);Q(a,\"Unc") - .append("losed predicate expression.\");Pb(a,\"]\")}return b}function Ob(a){if(\"-\"==A(a.a") - .append("))return a.a.next(),new Kb(Ob(a));var b=Tb(a);if(\"|\"!=A(a.a))a=b;else{for(b=[b];") - .append("\"|\"==a.a.next();)Q(a,\"Missing next union location path.\"),b.push(Tb(a));a.a.ba") - .append("ck();a=new Lb(b)}return a};function Wb(a,b){if(!a.length)throw Error(\"Empty XPath") - .append(" expression.\");var c=Va(a);if(c.empty())throw Error(\"Invalid XPath expression.\"") - .append(");b?\"function\"==n(b)||(b=ea(b.lookupNamespaceURI,b)):b=k(null);var d=Nb(new Mb(c") - .append(",b));if(!c.empty())throw Error(\"Bad token: \"+c.next());this.evaluate=function(a,") - .append("b){var c=d.evaluate(new z(a));return new R(c,b)}}\nfunction R(a,b){if(0==b)if(a in") - .append("stanceof D)b=4;else if(\"string\"==typeof a)b=2;else if(\"number\"==typeof a)b=1;e") - .append("lse if(\"boolean\"==typeof a)b=3;else throw Error(\"Unexpected evaluation result.") - .append("\");if(2!=b&&1!=b&&3!=b&&!(a instanceof D))throw Error(\"value could not be conver") - .append("ted to the specified type\");this.resultType=b;var c;switch(b){case 2:this.stringV") - .append("alue=a instanceof D?fb(a):\"\"+a;break;case 1:this.numberValue=a instanceof D?+fb(") - .append("a):+a;break;case 3:this.booleanValue=a instanceof D?0=c.length?null:c[f++]};this.snapshotItem=function(a){if(") - .append("6!=b&&7!=b)throw Error(\"snapshotItem called with wrong result type\");return a>=c") - .append(".length||0>a?null:c[a]}}R.ANY_TYPE=0;\nR.NUMBER_TYPE=1;R.STRING_TYPE=2;R.BOOLEAN_T") - .append("YPE=3;R.UNORDERED_NODE_ITERATOR_TYPE=4;R.ORDERED_NODE_ITERATOR_TYPE=5;R.UNORDERED_") - .append("NODE_SNAPSHOT_TYPE=6;R.ORDERED_NODE_SNAPSHOT_TYPE=7;R.ANY_UNORDERED_NODE_TYPE=8;R.") - .append("FIRST_ORDERED_NODE_TYPE=9;function Xb(a){a=a||l;var b=a.document;b.evaluate||(a.XP") - .append("athResult=R,b.evaluate=function(a,b,e,f){return(new Wb(a,e)).evaluate(b,f)},b.crea") - .append("teExpression=function(a,b){return new Wb(a,b)})};var S={};S.ga=function(){var a={v") - .append("a:\"http://www.w3.org/2000/svg\"};return function(b){return a[b]||null}}();S.m=fun") - .append("ction(a,b,c){var d=y(a);Xb(d?d.parentWindow||d.defaultView:window);try{var e=d.cre") - .append("ateNSResolver?d.createNSResolver(d.documentElement):S.ga;return d.evaluate(b,a,e,c") - .append(",null)}catch(f){throw new w(32,\"Unable to locate an element with the xpath expres") - .append("sion \"+b+\" because of the following error:\\n\"+f);}};\nS.S=function(a,b){if(!a|") - .append("|1!=a.nodeType)throw new w(32,'The result of the xpath expression \"'+b+'\" is: '+") - .append("a+\". It should be an element.\");};S.qa=function(a,b){var c=function(){var c=S.m(") - .append("b,a,9);return c?c.singleNodeValue||null:b.selectSingleNode?(c=y(b),c.setProperty&&") - .append("c.setProperty(\"SelectionLanguage\",\"XPath\"),b.selectSingleNode(a)):null}();null") - .append("===c||S.S(c,a);return c};\nS.sa=function(a,b){var c=function(){var c=S.m(b,a,7);if") - .append("(c){for(var e=c.snapshotLength,f=[],h=0;h(0==\nm[1].length?") - .append("0:parseInt(m[1],10))?1:0)||((0==s[2].length)<(0==m[2].length)?-1:(0==s[2].length)>") - .append("(0==m[2].length)?1:0)||(s[2]m[2]?1:0)}while(0==b)}}var ac=/Android") - .append("\\s+([0-9\\.]+)/.exec(Da()),$b=ac?ac[1]:\"0\";Zb(2.3);Zb(4);function T(a,b,c,d){th") - .append("is.top=a;this.right=b;this.bottom=c;this.left=d}T.prototype.toString=function(){re") - .append("turn\"(\"+this.top+\"t, \"+this.right+\"r, \"+this.bottom+\"b, \"+this.left+\"l)\"") - .append("};T.prototype.contains=function(a){return this&&a?a instanceof T?a.left>=this.left") - .append("&&a.right<=this.right&&a.top>=this.top&&a.bottom<=this.bottom:a.x>=this.left&&a.x<") - .append("=this.right&&a.y>=this.top&&a.y<=this.bottom:!1};\nT.prototype.ceil=function(){thi") - .append("s.top=Math.ceil(this.top);this.right=Math.ceil(this.right);this.bottom=Math.ceil(t") - .append("his.bottom);this.left=Math.ceil(this.left);return this};T.prototype.floor=function") - .append("(){this.top=Math.floor(this.top);this.right=Math.floor(this.right);this.bottom=Mat") - .append("h.floor(this.bottom);this.left=Math.floor(this.left);return this};\nT.prototype.ro") - .append("und=function(){this.top=Math.round(this.top);this.right=Math.round(this.right);thi") - .append("s.bottom=Math.round(this.bottom);this.left=Math.round(this.left);return this};func") - .append("tion U(a,b,c,d){this.left=a;this.top=b;this.width=c;this.height=d}U.prototype.toSt") - .append("ring=function(){return\"(\"+this.left+\", \"+this.top+\" - \"+this.width+\"w x \"+") - .append("this.height+\"h)\"};U.prototype.contains=function(a){return a instanceof U?this.le") - .append("ft<=a.left&&this.left+this.width>=a.left+a.width&&this.top<=a.top&&this.top+this.h") - .append("eight>=a.top+a.height:a.x>=this.left&&a.x<=this.left+this.width&&a.y>=this.top&&a.") - .append("y<=this.top+this.height};\nU.prototype.ceil=function(){this.left=Math.ceil(this.le") - .append("ft);this.top=Math.ceil(this.top);this.width=Math.ceil(this.width);this.height=Math") - .append(".ceil(this.height);return this};U.prototype.floor=function(){this.left=Math.floor(") - .append("this.left);this.top=Math.floor(this.top);this.width=Math.floor(this.width);this.he") - .append("ight=Math.floor(this.height);return this};\nU.prototype.round=function(){this.left") - .append("=Math.round(this.left);this.top=Math.round(this.top);this.width=Math.round(this.wi") - .append("dth);this.height=Math.round(this.height);return this};function V(a,b){return!!a&&1") - .append("==a.nodeType&&(!b||a.tagName.toUpperCase()==b)}function bc(a){for(a=a.parentNode;a") - .append("&&1!=a.nodeType&&9!=a.nodeType&&11!=a.nodeType;)a=a.parentNode;return V(a)?a:null}") - .append("\nfunction W(a,b){var c=ia(b);if(\"float\"==c||\"cssFloat\"==c||\"styleFloat\"==c)") - .append("c=\"cssFloat\";var d;a:{d=c;var e=y(a);if(e.defaultView&&e.defaultView.getComputed") - .append("Style&&(e=e.defaultView.getComputedStyle(a,null))){d=e[d]||e.getPropertyValue(d)||") - .append("\"\";break a}d=\"\"}c=d||cc(a,c);if(null===c)c=null;else if(na(ra,b)&&(ua.test(\"#") - .append("\"==c.charAt(0)?c:\"#\"+c)||ya(c).length||qa&&qa[c.toLowerCase()]||wa(c).length)){") - .append("d=wa(c);if(!d.length){a:if(d=ya(c),!d.length){d=(d=qa[c.toLowerCase()])?d:\"#\"==c") - .append(".charAt(0)?c:\"#\"+c;if(ua.test(d)&&\n(d=ta(d),d=ta(d),d=[parseInt(d.substr(1,2),1") - .append("6),parseInt(d.substr(3,2),16),parseInt(d.substr(5,2),16)],d.length))break a;d=[]}3") - .append("==d.length&&d.push(1)}c=4!=d.length?c:\"rgba(\"+d.join(\", \")+\")\"}return c}func") - .append("tion cc(a,b){var c=a.currentStyle||a.style,d=c[b];void 0===d&&\"function\"==n(c.ge") - .append("tPropertyValue)&&(d=c.getPropertyValue(b));return\"inherit\"!=d?void 0!==d?d:null:") - .append("(c=bc(a))?cc(c,b):null}\nfunction dc(a,b){function c(a){if(\"none\"==W(a,\"display") - .append("\"))return!1;a=bc(a);return!a||c(a)}function d(a){var b=ec(a);return 0=C.left+C.width;C=e.top>=C.top+C.height;if(P&&\"hidden\"==m.x||C&&") - .append("\"hidden\"==m.y)return X;if(P&&\"visible\"!=m.x||C&&\"visible\"!=m.y){if(s&&(m=d(a") - .append("),e.left>=h.scrollWidth-m.x||e.right>=h.scrollHeight-m.y))return X;e=fc(a);return ") - .append("e==X?X:\"scroll\"}}}return\"none\"}\nfunction ec(a){var b=gc(a);if(b)return b.rect") - .append(";if(V(a,\"HTML\"))return a=((y(a)?y(a).parentWindow||y(a).defaultView:window)||win") - .append("dow).document,a=\"CSS1Compat\"==a.compatMode?a.documentElement:a.body,a=new Ia(a.c") - .append("lientWidth,a.clientHeight),new U(0,0,a.width,a.height);var c;try{c=a.getBoundingCl") - .append("ientRect()}catch(d){return new U(0,0,0,0)}return new U(c.left,c.top,c.right-c.left") - .append(",c.bottom-c.top)}\nfunction gc(a){var b=V(a,\"MAP\");if(!b&&!V(a,\"AREA\"))return ") - .append("null;var c=b?a:V(a.parentNode,\"MAP\")?a.parentNode:null,d=null,e=null;if(c&&c.nam") - .append("e&&(d=S.qa('/descendant::*[@usemap = \"#'+c.name+'\"]',y(c)))&&(e=ec(d),!b&&\"defa") - .append("ult\"!=a.shape.toLowerCase())){var f=jc(a);a=Math.min(Math.max(f.left,0),e.width);") - .append("b=Math.min(Math.max(f.top,0),e.height);c=Math.min(f.width,e.width-a);f=Math.min(f.") - .append("height,e.height-b);e=new U(a+e.left,b+e.top,c,f)}return{W:d,rect:e||new U(0,0,0,0)") - .append("}}\nfunction jc(a){var b=a.shape.toLowerCase();a=a.coords.split(\",\");if(\"rect\"") - .append("==b&&4==a.length){var b=a[0],c=a[1];return new U(b,c,a[2]-b,a[3]-c)}if(\"circle\"=") - .append("=b&&3==a.length)return b=a[2],new U(a[0]-b,a[1]-b,2*b,2*b);if(\"poly\"==b&&22*this") - .append(".A&&qc(this),!0):!1};function qc(a){if(a.A!=a.f.length){for(var b=0,c=0;b\");Z(191,\"/\",\"?\");Z(192,\"`\",\"~\");Z(21") - .append("9,\"[\",\"{\");Z(220,\"\\\\\",\"|\");Z(221,\"]\",\"}\");Z({c:59,b:186,opera:59},\"") - .append(";\",\":\");Z(222,\"'\",'\"');var xc=new Y;xc.set(1,tc);xc.set(2,uc);xc.set(4,vc);x") - .append("c.set(8,wc);\n(function(a){var b=new Y;u(pc(a),function(c){b.set(a.get(c).code,c)}") - .append(");return b})(xc);function yc(){this.I=void 0}\nfunction zc(a,b,c){switch(typeof b)") - .append("{case \"string\":Ac(b,c);break;case \"number\":c.push(isFinite(b)&&!isNaN(b)?b:\"n") - .append("ull\");break;case \"boolean\":c.push(b);break;case \"undefined\":c.push(\"null\");") - .append("break;case \"object\":if(null==b){c.push(\"null\");break}if(\"array\"==n(b)){var d") - .append("=b.length;c.push(\"[\");for(var e=\"\",f=0;fb?e+=\"000") - .append("\":256>b?e+=\"00\":4096>b&&(e+=\"0\");return Bc[a]=e+b.toString(16)}),'\"')};funct") - .append("ion Dc(a){switch(n(a)){case \"string\":case \"number\":case \"boolean\":return a;c") - .append("ase \"function\":return a.toString();case \"array\":return ka(a,Dc);case \"object") - .append("\":if(\"nodeType\"in a&&(1==a.nodeType||9==a.nodeType)){var b={};b.ELEMENT=Ec(a);r") - .append("eturn b}if(\"document\"in a)return b={},b.WINDOW=Ec(a),b;if(aa(a))return ka(a,Dc);") - .append("a=Ja(a,function(a,b){return\"number\"==typeof b||p(b)});return Ka(a,Dc);default:re") - .append("turn null}}\nfunction Fc(a,b){return\"array\"==n(a)?ka(a,function(a){return Fc(a,b") - .append(")}):ba(a)?\"function\"==typeof a?a:\"ELEMENT\"in a?Gc(a.ELEMENT,b):\"WINDOW\"in a?") - .append("Gc(a.WINDOW,b):Ka(a,function(a){return Fc(a,b)}):a}function Hc(a){a=a||document;va") - .append("r b=a.$wdc_;b||(b=a.$wdc_={},b.P=fa());b.P||(b.P=fa());return b}function Ec(a){var") - .append(" b=Hc(a.ownerDocument),c=La(b,function(b){return b==a});c||(c=\":wdc:\"+b.P++,b[c]") - .append("=a);return c}\nfunction Gc(a,b){a=decodeURIComponent(a);var c=b||document,d=Hc(c);") - .append("if(!(a in d))throw new w(10,\"Element does not exist in cache\");var e=d[a];if(\"s") - .append("etInterval\"in e){if(e.closed)throw delete d[a],new w(23,\"Window has been closed.") - .append("\");return e}for(var f=e;f;){if(f==c.documentElement)return e;f=f.parentNode}delet") - .append("e d[a];throw new w(10,\"Element is no longer attached to the DOM\");};function Ic(") - .append("a){var b=lc;a=[a];var c=window||ga,d;try{var b=p(b)?new c.Function(b):c==window?b:") - .append("new c.Function(\"return (\"+b+\").apply(null,arguments);\"),e=Fc(a,c.document),f=b") - .append(".apply(null,e);d={status:0,value:Dc(f)}}catch(h){d={status:\"code\"in h?h.code:13,") - .append("value:{message:h.message}}}b=[];zc(new yc,d,b);return b.join(\"\")}var Jc=[\"_\"],") - .append("$=l;Jc[0]in $||!$.execScript||$.execScript(\"var \"+Jc[0]);for(var Kc;Jc.length&&(") - .append("Kc=Jc.shift());)Jc.length||void 0===Ic?$=$[Kc]?$[Kc]:$[Kc]={}:$[Kc]=Ic;; return th") - .append("is._.apply(null,arguments);}.apply({navigator:typeof window!=undefined?window.navi") - .append("gator:null,document:typeof window!=undefined?window.document:null}, arguments);}") - .toString()), - - GET_TOP_LEFT_COORDINATES(new StringBuilder() - .append("function(){return function(){function g(a){return function(){return this[a]}}funct") - .append("ion k(a){return function(){return a}}var m=this;\nfunction n(a){var b=typeof a;if(") - .append("\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)r") - .append("eturn b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"") - .append("object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typ") - .append("eof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerabl") - .append("e(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a") - .append(".call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"cal") - .append("l\"))return\"function\"}else return\"null\";\nelse if(\"function\"==b&&\"undefined") - .append("\"==typeof a.call)return\"object\";return b}function aa(a){var b=n(a);return\"arra") - .append("y\"==b||\"object\"==b&&\"number\"==typeof a.length}function p(a){return\"string\"=") - .append("=typeof a}function ba(a){var b=typeof a;return\"object\"==b&&null!=a||\"function\"") - .append("==b}function ca(a,b,c){return a.call.apply(a.bind,arguments)}\nfunction da(a,b,c){") - .append("if(!a)throw Error();if(2=arguments.length?ia.slice.c") - .append("all(a,b):ia.slice.call(a,b,c)};var oa={aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd") - .append("7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bi") - .append("sque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blu") - .append("eviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",") - .append("chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6") - .append("495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#0000") - .append("8b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgreen") - .append(":\"#006400\",\ndarkgrey:\"#a9a9a9\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",") - .append("darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:") - .append("\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8") - .append("b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",") - .append("darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696") - .append("969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite") - .append(":\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",\ng") - .append("hostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",gree") - .append("n:\"#008000\",greenyellow:\"#adff2f\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpin") - .append("k:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#") - .append("f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemo") - .append("nchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0f") - .append("fff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgreen:\"#90ee90") - .append("\",lightgrey:\"#d3d3d3\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",\nlightseag") - .append("reen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899\",lightslategre") - .append("y:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",") - .append("limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",med") - .append("iumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpu") - .append("rple:\"#9370db\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspri") - .append("nggreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnig") - .append("htblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",\nmoccasin:\"#ffe4b") - .append("5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\"") - .append(",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\"") - .append(",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevio") - .append("letred:\"#db7093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",p") - .append("ink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",red:\"#") - .append("ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmo") - .append("n:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",\nseashell:\"#fff5ee\",s") - .append("ienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",sla") - .append("tegray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",") - .append("steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:") - .append("\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ff") - .append("ffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"};var pa=") - .append("\"background-color border-top-color border-right-color border-bottom-color border-") - .append("left-color color outline-color\".split(\" \"),qa=/#([0-9a-fA-F])([0-9a-fA-F])([0-9") - .append("a-fA-F])/;function ra(a){if(!sa.test(a))throw Error(\"'\"+a+\"' is not a valid hex") - .append(" color\");4==a.length&&(a=a.replace(qa,\"#$1$1$2$2$3$3\"));return a.toLowerCase()}") - .append("var sa=/^#(?:[0-9a-f]{3}){1,2}$/i,ta=/^(?:rgba)?\\((\\d{1,3}),\\s?(\\d{1,3}),\\s?(") - .append("\\d{1,3}),\\s?(0|1|0\\.\\d*)\\)$/i;\nfunction ua(a){var b=a.match(ta);if(b){a=Numb") - .append("er(b[1]);var c=Number(b[2]),d=Number(b[3]),b=Number(b[4]);if(0<=a&&255>=a&&0<=c&&2") - .append("55>=c&&0<=d&&255>=d&&0<=b&&1>=b)return[a,c,d,b]}return[]}var va=/^(?:rgb)?\\((0|[1") - .append("-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2})\\)$/i;function wa(a){var ") - .append("b=a.match(va);if(b){a=Number(b[1]);var c=Number(b[2]),b=Number(b[3]);if(0<=a&&255>") - .append("=a&&0<=c&&255>=c&&0<=b&&255>=b)return[a,c,b]}return[]};function w(a,b){this.code=a") - .append(";this.state=xa[a]||ya;this.message=b||\"\";var c=this.state.replace(/((?:^|\\s+)[a") - .append("-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")}),d=c.leng") - .append("th-5;if(0>d||c.indexOf(\"Error\",d)!=d)c+=\"Error\";this.name=c;c=Error(this.messa") - .append("ge);c.name=this.name;this.stack=c.stack||\"\"}r(w,Error);\nvar ya=\"unknown error") - .append("\",xa={15:\"element not selectable\",11:\"element not visible\",31:\"ime engine ac") - .append("tivation failed\",30:\"ime not available\",24:\"invalid cookie domain\",29:\"inval") - .append("id element coordinates\",12:\"invalid element state\",32:\"invalid selector\",51:") - .append("\"invalid selector\",52:\"invalid selector\",17:\"javascript error\",405:\"unsuppo") - .append("rted operation\",34:\"move target out of bounds\",27:\"no such alert\",7:\"no such") - .append(" element\",8:\"no such frame\",23:\"no such window\",28:\"script timeout\",33:\"se") - .append("ssion not created\",10:\"stale element reference\",\n0:\"success\",21:\"timeout\",") - .append("25:\"unable to set cookie\",26:\"unexpected alert open\"};xa[13]=ya;xa[9]=\"unknow") - .append("n command\";w.prototype.toString=function(){return this.name+\": \"+this.message};") - .append("var za,Aa;function Ba(){return m.navigator?m.navigator.userAgent:null}var Ca,Da=m.") - .append("navigator;Ca=Da&&Da.platform||\"\";za=-1!=Ca.indexOf(\"Mac\");Aa=-1!=Ca.indexOf(\"") - .append("Win\");var Ea=-1!=Ca.indexOf(\"Linux\");function y(a,b){this.x=void 0!==a?a:0;this") - .append(".y=void 0!==b?b:0}y.prototype.toString=function(){return\"(\"+this.x+\", \"+this.y") - .append("+\")\"};y.prototype.ceil=function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this") - .append(".y);return this};y.prototype.floor=function(){this.x=Math.floor(this.x);this.y=Mat") - .append("h.floor(this.y);return this};y.prototype.round=function(){this.x=Math.round(this.x") - .append(");this.y=Math.round(this.y);return this};function Fa(a,b){this.width=a;this.height") - .append("=b}Fa.prototype.toString=function(){return\"(\"+this.width+\" x \"+this.height+\")") - .append("\"};Fa.prototype.ceil=function(){this.width=Math.ceil(this.width);this.height=Math") - .append(".ceil(this.height);return this};Fa.prototype.floor=function(){this.width=Math.floo") - .append("r(this.width);this.height=Math.floor(this.height);return this};Fa.prototype.round=") - .append("function(){this.width=Math.round(this.width);this.height=Math.round(this.height);r") - .append("eturn this};function Ga(a,b){var c={},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[d]=") - .append("a[d]);return c}function Ha(a,b){var c={},d;for(d in a)c[d]=b.call(void 0,a[d],d,a)") - .append(";return c}function Ja(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return c};fun") - .append("ction Ka(a,b){if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if(\"undefin") - .append("ed\"!=typeof a.compareDocumentPosition)return a==b||Boolean(a.compareDocumentPosit") - .append("ion(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}\nfunction La(a,b){if(a==b)ret") - .append("urn 0;if(a.compareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(") - .append("\"sourceIndex\"in a||a.parentNode&&\"sourceIndex\"in a.parentNode){var c=1==a.node") - .append("Type,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode") - .append(",f=b.parentNode;return e==f?Ma(a,b):!c&&Ka(e,b)?-1*Na(a,b):!d&&Ka(f,a)?Na(b,a):(c?") - .append("a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=z(a);c=d.createRang") - .append("e();c.selectNode(a);c.collapse(!0);d=d.createRange();d.selectNode(b);\nd.collapse(") - .append("!0);return c.compareBoundaryPoints(m.Range.START_TO_END,d)}function Na(a,b){var c=") - .append("a.parentNode;if(c==b)return-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return M") - .append("a(d,a)}function Ma(a,b){for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1") - .append("}function z(a){return 9==a.nodeType?a:a.ownerDocument||a.document}function Oa(a){t") - .append("his.ha=a||m.document||document}Oa.prototype.contains=Ka;function A(a,b,c){this.l=a") - .append(";this.oa=b||1;this.k=c||1};function Pa(a){this.R=a;this.G=0}function Qa(a){a=a.mat") - .append("ch(Ra);for(var b=0;b]=|\\\\s+") - .append("|.\",\"g\"),Sa=/^\\s/;function C(a,b){return a.R[a.G+(b||0)]}Pa.prototype.next=fun") - .append("ction(){return this.R[this.G++]};Pa.prototype.back=function(){this.G--};Pa.prototy") - .append("pe.empty=function(){return this.R.length<=this.G};function D(a){var b=null,c=a.nod") - .append("eType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null=") - .append("=b?\"\":b);if(\"string\"!=typeof b)if(9==c||1==c){a=9==c?a.documentElement:a.first") - .append("Child;for(var c=0,d=[],b=\"\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c++]=a;whil") - .append("e(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;return\"") - .append("\"+b}\nfunction E(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!1}catc") - .append("h(d){return!1}return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function T") - .append("a(a,b,c,d,e){return Ua.call(null,a,b,p(c)?c:null,p(d)?d:null,e||new F)}\nfunction ") - .append("Ua(a,b,c,d,e){b.getElementsByName&&d&&\"name\"==c?(b=b.getElementsByName(d),s(b,fu") - .append("nction(b){a.matches(b)&&e.add(b)})):b.getElementsByClassName&&d&&\"class\"==c?(b=b") - .append(".getElementsByClassName(d),s(b,function(b){b.className==d&&a.matches(b)&&e.add(b)}") - .append(")):a instanceof G?Va(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTagName(") - .append("a.getName()),s(b,function(a){E(a,c,d)&&e.add(a)}));return e}function Wa(a,b,c,d,e)") - .append("{for(b=b.firstChild;b;b=b.nextSibling)E(b,c,d)&&a.matches(b)&&e.add(b);return e}\n") - .append("function Va(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)E(b,c,d)&&a.matches(b)") - .append("&&e.add(b),Va(a,b,c,d,e)};function F(){this.k=this.h=null;this.B=0}function Xa(a){") - .append("this.t=a;this.next=this.s=null}function Ya(a,b){if(!a.h)return b;if(!b.h)return a;") - .append("for(var c=a.h,d=b.h,e=null,f=null,h=0;c&&d;)c.t==d.t?(f=c,c=c.next,d=d.next):0\",4,2,") - .append("function(a,b,c){return gb(function(a,b){return a>b},a,b,c)});N(\"<=\",4,2,function") - .append("(a,b,c){return gb(function(a,b){return a<=b},a,b,c)});N(\">=\",4,2,function(a,b,c)") - .append("{return gb(function(a,b){return a>=b},a,b,c)});var fb=N(\"=\",3,2,function(a,b,c){") - .append("return gb(function(a,b){return a==b},a,b,c,!0)});N(\"!=\",3,2,function(a,b,c){retu") - .append("rn gb(function(a,b){return a!=b},a,b,c,!0)});N(\"and\",2,2,function(a,b,c){return ") - .append("db(a,c)&&db(b,c)});N(\"or\",1,2,function(a,b,c){return db(a,c)||db(b,c)});function") - .append(" jb(a,b){if(b.n()&&4!=a.g)throw Error(\"Primary expression must evaluate to nodese") - .append("t if filter has predicate(s).\");I.call(this,a.g);this.$=a;this.d=b;this.o=a.e();t") - .append("his.i=a.i}r(jb,I);jb.prototype.evaluate=function(a){a=this.$.evaluate(a);return kb") - .append("(this.d,a)};jb.prototype.toString=function(){var a;a=\"Filter:\"+J(this.$);return ") - .append("a+=J(this.d)};function lb(a,b){if(b.lengtha.N)throw Error(\"Function \"+a.j+\" expects at most \"+a.N+\" arguments, \"+b.le") - .append("ngth+\" given\");a.la&&s(b,function(b,d){if(4!=b.g)throw Error(\"Argument \"+d+\" ") - .append("to function \"+a.j+\" is not of type Nodeset: \"+b);});I.call(this,a.g);this.F=a;t") - .append("his.K=b;bb(this,a.o||ka(b,function(a){return a.e()}));cb(this,a.ja&&!b.length||a.i") - .append("a&&!!b.length||ka(b,function(a){return a.i}))}\nr(lb,I);lb.prototype.evaluate=func") - .append("tion(a){return this.F.m.apply(null,ma(a,this.K))};lb.prototype.toString=function()") - .append("{var a=\"Function: \"+this.F;if(this.K.length)var b=u(this.K,function(a,b){return ") - .append("a+J(b)},\"Arguments:\"),a=a+J(b);return a};function mb(a,b,c,d,e,f,h,l,q){this.j=a") - .append(";this.g=b;this.o=c;this.ja=d;this.ia=e;this.m=f;this.Y=h;this.N=void 0!==l?l:h;thi") - .append("s.la=!!q}mb.prototype.toString=g(\"j\");var nb={};\nfunction O(a,b,c,d,e,f,h,l){if") - .append("(a in nb)throw Error(\"Function already created: \"+a+\".\");nb[a]=new mb(a,b,c,d,") - .append("!1,e,f,h,l)}O(\"boolean\",2,!1,!1,function(a,b){return db(b,a)},1);O(\"ceiling\",1") - .append(",!1,!1,function(a,b){return Math.ceil(K(b,a))},1);O(\"concat\",3,!1,!1,function(a,") - .append("b){var c=na(arguments,1);return u(c,function(b,c){return b+M(c,a)},\"\")},2,null);") - .append("O(\"contains\",2,!1,!1,function(a,b,c){b=M(b,a);a=M(c,a);return-1!=b.indexOf(a)},2") - .append(");O(\"count\",1,!1,!1,function(a,b){return b.evaluate(a).n()},1,1,!0);\nO(\"false") - .append("\",2,!1,!1,k(!1),0);O(\"floor\",1,!1,!1,function(a,b){return Math.floor(K(b,a))},1") - .append(");O(\"id\",4,!1,!1,function(a,b){var c=a.l,d=9==c.nodeType?c:c.ownerDocument,c=M(b") - .append(",a).split(/\\s+/),e=[];s(c,function(a){(a=d.getElementById(a))&&!la(e,a)&&e.push(a") - .append(")});e.sort(La);var f=new F;s(e,function(a){f.add(a)});return f},1);O(\"lang\",2,!1") - .append(",!1,k(!1),1);O(\"last\",1,!0,!1,function(a){if(1!=arguments.length)throw Error(\"F") - .append("unction last expects ()\");return a.k},0);\nO(\"local-name\",3,!1,!0,function(a,b)") - .append("{var c=b?Za(b.evaluate(a)):a.l;return c?c.nodeName.toLowerCase():\"\"},0,1,!0);O(") - .append("\"name\",3,!1,!0,function(a,b){var c=b?Za(b.evaluate(a)):a.l;return c?c.nodeName.t") - .append("oLowerCase():\"\"},0,1,!0);O(\"namespace-uri\",3,!0,!1,k(\"\"),0,1,!0);O(\"normali") - .append("ze-space\",3,!1,!0,function(a,b){return(b?M(b,a):D(a.l)).replace(/[\\s\\xa0]+/g,\"") - .append(" \").replace(/^\\s+|\\s+$/g,\"\")},0,1);O(\"not\",2,!1,!1,function(a,b){return!db(") - .append("b,a)},1);O(\"number\",1,!1,!0,function(a,b){return b?K(b,a):+D(a.l)},0,1);\nO(\"po") - .append("sition\",1,!0,!1,function(a){return a.oa},0);O(\"round\",1,!1,!1,function(a,b){ret") - .append("urn Math.round(K(b,a))},1);O(\"starts-with\",2,!1,!1,function(a,b,c){b=M(b,a);a=M(") - .append("c,a);return 0==b.lastIndexOf(a,0)},2);O(\"string\",3,!1,!0,function(a,b){return b?") - .append("M(b,a):D(a.l)},0,1);O(\"string-length\",1,!1,!0,function(a,b){return(b?M(b,a):D(a.") - .append("l)).length},0,1);\nO(\"substring\",3,!1,!1,function(a,b,c,d){c=K(c,a);if(isNaN(c)|") - .append("|Infinity==c||-Infinity==c)return\"\";d=d?K(d,a):Infinity;if(isNaN(d)||-Infinity==") - .append("=d)return\"\";c=Math.round(c)-1;var e=Math.max(c,0);a=M(b,a);if(Infinity==d)return") - .append(" a.substring(e);b=Math.round(d);return a.substring(e,c+b)},2,3);O(\"substring-afte") - .append("r\",3,!1,!1,function(a,b,c){b=M(b,a);a=M(c,a);c=b.indexOf(a);return-1==c?\"\":b.su") - .append("bstring(c+a.length)},2);\nO(\"substring-before\",3,!1,!1,function(a,b,c){b=M(b,a);") - .append("a=M(c,a);a=b.indexOf(a);return-1==a?\"\":b.substring(0,a)},2);O(\"sum\",1,!1,!1,fu") - .append("nction(a,b){for(var c=H(b.evaluate(a)),d=0,e=c.next();e;e=c.next())d+=+D(e);return") - .append(" d},1,1,!0);O(\"translate\",3,!1,!1,function(a,b,c,d){b=M(b,a);c=M(c,a);var e=M(d,") - .append("a);a=[];for(d=0;da.length)throw Error(\"Unclosed literal string\")") - .append(";return new pb(a)}function Mb(a){var b=a.a.next(),c=b.indexOf(\":\");if(-1==c)retu") - .append("rn new qb(b);var d=b.substring(0,c);a=a.ma(d);if(!a)throw Error(\"Namespace prefix") - .append(" not declared: \"+d);b=b.substr(c+1);return new qb(b,a)}\nfunction Nb(a){var b,c=[") - .append("],d;if(\"/\"==C(a.a)||\"//\"==C(a.a)){b=a.a.next();d=C(a.a);if(\"/\"==b&&(a.a.empt") - .append("y()||\".\"!=d&&\"..\"!=d&&\"@\"!=d&&\"*\"!=d&&!/(?![0-9])[\\w]/.test(d)))return ne") - .append("w ub;d=new ub;T(a,\"Missing next location step.\");b=Ob(a,b);c.push(b)}else{a:{b=C") - .append("(a.a);d=b.charAt(0);switch(d){case \"$\":throw Error(\"Variable reference not allo") - .append("wed in HTML XPath\");case \"(\":a.a.next();b=Hb(a);T(a,'unclosed \"(\"');Jb(a,\")") - .append("\");break;case '\"':case \"'\":b=Lb(a);break;default:if(isNaN(+b))if(!ob(b)&&/(?![") - .append("0-9])[\\w]/.test(d)&&\n\"(\"==C(a.a,1)){b=a.a.next();b=nb[b]||null;a.a.next();for(") - .append("d=[];\")\"!=C(a.a);){T(a,\"Missing function argument list.\");d.push(Hb(a));if(\",") - .append("\"!=C(a.a))break;a.a.next()}T(a,\"Unclosed function argument list.\");Kb(a);b=new ") - .append("lb(b,d)}else{b=null;break a}else b=new rb(+a.a.next())}\"[\"==C(a.a)&&(d=new Q(Pb(") - .append("a)),b=new jb(b,d))}if(b)if(\"/\"==C(a.a)||\"//\"==C(a.a))d=b;else return b;else b=") - .append("Ob(a,\"/\"),d=new vb,c.push(b)}for(;\"/\"==C(a.a)||\"//\"==C(a.a);)b=a.a.next(),T(") - .append("a,\"Missing next location step.\"),b=Ob(a,b),c.push(b);return new sb(d,\nc)}\nfunc") - .append("tion Ob(a,b){var c,d,e;if(\"/\"!=b&&\"//\"!=b)throw Error('Step op should be \"/\"") - .append(" or \"//\"');if(\".\"==C(a.a))return d=new R(Db,new G(\"node\")),a.a.next(),d;if(") - .append("\"..\"==C(a.a))return d=new R(Cb,new G(\"node\")),a.a.next(),d;var f;if(\"@\"==C(a") - .append(".a))f=tb,a.a.next(),T(a,\"Missing attribute name\");else if(\"::\"==C(a.a,1)){if(!") - .append("/(?![0-9])[\\w]/.test(C(a.a).charAt(0)))throw Error(\"Bad token: \"+a.a.next());c=") - .append("a.a.next();f=Bb[c]||null;if(!f)throw Error(\"No axis with name: \"+c);a.a.next();T") - .append("(a,\"Missing node name\")}else f=yb;\nc=C(a.a);if(/(?![0-9])[\\w]/.test(c.charAt(0") - .append(")))if(\"(\"==C(a.a,1)){if(!ob(c))throw Error(\"Invalid node type: \"+c);c=a.a.next") - .append("();if(!ob(c))throw Error(\"Invalid type name: \"+c);Jb(a,\"(\");T(a,\"Bad nodetype") - .append("\");e=C(a.a).charAt(0);var h=null;if('\"'==e||\"'\"==e)h=Lb(a);T(a,\"Bad nodetype") - .append("\");Kb(a);c=new G(c,h)}else c=Mb(a);else if(\"*\"==c)c=Mb(a);else throw Error(\"Ba") - .append("d token: \"+a.a.next());e=new Q(Pb(a),f.u);return d||new R(f,c,e,\"//\"==b)}\nfunc") - .append("tion Pb(a){for(var b=[];\"[\"==C(a.a);){a.a.next();T(a,\"Missing predicate express") - .append("ion.\");var c=Hb(a);b.push(c);T(a,\"Unclosed predicate expression.\");Jb(a,\"]\")}") - .append("return b}function Ib(a){if(\"-\"==C(a.a))return a.a.next(),new Eb(Ib(a));var b=Nb(") - .append("a);if(\"|\"!=C(a.a))a=b;else{for(b=[b];\"|\"==a.a.next();)T(a,\"Missing next union") - .append(" location path.\"),b.push(Nb(a));a.a.back();a=new Fb(b)}return a};function Qb(a,b)") - .append("{if(!a.length)throw Error(\"Empty XPath expression.\");var c=Qa(a);if(c.empty())th") - .append("row Error(\"Invalid XPath expression.\");b?\"function\"==n(b)||(b=ea(b.lookupNames") - .append("paceURI,b)):b=k(null);var d=Hb(new Gb(c,b));if(!c.empty())throw Error(\"Bad token:") - .append(" \"+c.next());this.evaluate=function(a,b){var c=d.evaluate(new A(a));return new U(") - .append("c,b)}}\nfunction U(a,b){if(0==b)if(a instanceof F)b=4;else if(\"string\"==typeof a") - .append(")b=2;else if(\"number\"==typeof a)b=1;else if(\"boolean\"==typeof a)b=3;else throw") - .append(" Error(\"Unexpected evaluation result.\");if(2!=b&&1!=b&&3!=b&&!(a instanceof F))t") - .append("hrow Error(\"value could not be converted to the specified type\");this.resultType") - .append("=b;var c;switch(b){case 2:this.stringValue=a instanceof F?$a(a):\"\"+a;break;case ") - .append("1:this.numberValue=a instanceof F?+$a(a):+a;break;case 3:this.booleanValue=a insta") - .append("nceof F?0=c.length?null:c[f") - .append("++]};this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error(\"snapshotItem called") - .append(" with wrong result type\");return a>=c.length||0>a?null:c[a]}}U.ANY_TYPE=0;\nU.NUM") - .append("BER_TYPE=1;U.STRING_TYPE=2;U.BOOLEAN_TYPE=3;U.UNORDERED_NODE_ITERATOR_TYPE=4;U.ORD") - .append("ERED_NODE_ITERATOR_TYPE=5;U.UNORDERED_NODE_SNAPSHOT_TYPE=6;U.ORDERED_NODE_SNAPSHOT") - .append("_TYPE=7;U.ANY_UNORDERED_NODE_TYPE=8;U.FIRST_ORDERED_NODE_TYPE=9;function Rb(a){a=a") - .append("||m;var b=a.document;b.evaluate||(a.XPathResult=U,b.evaluate=function(a,b,e,f){ret") - .append("urn(new Qb(a,e)).evaluate(b,f)},b.createExpression=function(a,b){return new Qb(a,b") - .append(")})};var V={};V.fa=function(){var a={va:\"http://www.w3.org/2000/svg\"};return fun") - .append("ction(b){return a[b]||null}}();V.m=function(a,b,c){var d=z(a);Rb(d?d.parentWindow|") - .append("|d.defaultView:window);try{var e=d.createNSResolver?d.createNSResolver(d.documentE") - .append("lement):V.fa;return d.evaluate(b,a,e,c,null)}catch(f){throw new w(32,\"Unable to l") - .append("ocate an element with the xpath expression \"+b+\" because of the following error:") - .append("\\n\"+f);}};\nV.S=function(a,b){if(!a||1!=a.nodeType)throw new w(32,'The result of") - .append(" the xpath expression \"'+b+'\" is: '+a+\". It should be an element.\");};V.pa=fun") - .append("ction(a,b){var c=function(){var c=V.m(b,a,9);return c?c.singleNodeValue||null:b.se") - .append("lectSingleNode?(c=z(b),c.setProperty&&c.setProperty(\"SelectionLanguage\",\"XPath") - .append("\"),b.selectSingleNode(a)):null}();null===c||V.S(c,a);return c};\nV.sa=function(a,") - .append("b){var c=function(){var c=V.m(b,a,7);if(c){for(var e=c.snapshotLength,f=[],h=0;h(0==\nv[1].length?0:parseInt(v[1],10))?1:0)||((0==t[2].length)") - .append("<(0==v[2].length)?-1:(0==t[2].length)>(0==v[2].length)?1:0)||(t[2]v[") - .append("2]?1:0)}while(0==b)}}var Vb=/Android\\s+([0-9\\.]+)/.exec(Ba()),Ub=Vb?Vb[1]:\"0\";") - .append("Tb(2.3);Tb(4);function W(a,b,c,d){this.top=a;this.right=b;this.bottom=c;this.left=") - .append("d}W.prototype.toString=function(){return\"(\"+this.top+\"t, \"+this.right+\"r, \"+") - .append("this.bottom+\"b, \"+this.left+\"l)\"};W.prototype.contains=function(a){return this") - .append("&&a?a instanceof W?a.left>=this.left&&a.right<=this.right&&a.top>=this.top&&a.bott") - .append("om<=this.bottom:a.x>=this.left&&a.x<=this.right&&a.y>=this.top&&a.y<=this.bottom:!") - .append("1};\nW.prototype.ceil=function(){this.top=Math.ceil(this.top);this.right=Math.ceil") - .append("(this.right);this.bottom=Math.ceil(this.bottom);this.left=Math.ceil(this.left);ret") - .append("urn this};W.prototype.floor=function(){this.top=Math.floor(this.top);this.right=Ma") - .append("th.floor(this.right);this.bottom=Math.floor(this.bottom);this.left=Math.floor(this") - .append(".left);return this};\nW.prototype.round=function(){this.top=Math.round(this.top);t") - .append("his.right=Math.round(this.right);this.bottom=Math.round(this.bottom);this.left=Mat") - .append("h.round(this.left);return this};function X(a,b,c,d){this.left=a;this.top=b;this.wi") - .append("dth=c;this.height=d}X.prototype.toString=function(){return\"(\"+this.left+\", \"+t") - .append("his.top+\" - \"+this.width+\"w x \"+this.height+\"h)\"};X.prototype.contains=funct") - .append("ion(a){return a instanceof X?this.left<=a.left&&this.left+this.width>=a.left+a.wid") - .append("th&&this.top<=a.top&&this.top+this.height>=a.top+a.height:a.x>=this.left&&a.x<=thi") - .append("s.left+this.width&&a.y>=this.top&&a.y<=this.top+this.height};\nX.prototype.ceil=fu") - .append("nction(){this.left=Math.ceil(this.left);this.top=Math.ceil(this.top);this.width=Ma") - .append("th.ceil(this.width);this.height=Math.ceil(this.height);return this};X.prototype.fl") - .append("oor=function(){this.left=Math.floor(this.left);this.top=Math.floor(this.top);this.") - .append("width=Math.floor(this.width);this.height=Math.floor(this.height);return this};\nX.") - .append("prototype.round=function(){this.left=Math.round(this.left);this.top=Math.round(thi") - .append("s.top);this.width=Math.round(this.width);this.height=Math.round(this.height);retur") - .append("n this};function Wb(a,b){var c=z(a);return c.defaultView&&c.defaultView.getCompute") - .append("dStyle&&(c=c.defaultView.getComputedStyle(a,null))?c[b]||c.getPropertyValue(b)||\"") - .append("\":\"\"};function Xb(a,b){return!!a&&1==a.nodeType&&(!b||a.tagName.toUpperCase()==") - .append("b)}function Yb(a){for(a=a.parentNode;a&&1!=a.nodeType&&9!=a.nodeType&&11!=a.nodeTy") - .append("pe;)a=a.parentNode;return Xb(a)?a:null}\nfunction Zb(a,b){var c=ha(b);if(\"float\"") - .append("==c||\"cssFloat\"==c||\"styleFloat\"==c)c=\"cssFloat\";c=Wb(a,c)||$b(a,c);if(null=") - .append("==c)c=null;else if(la(pa,b)&&(sa.test(\"#\"==c.charAt(0)?c:\"#\"+c)||wa(c).length|") - .append("|oa&&oa[c.toLowerCase()]||ua(c).length)){var d=ua(c);if(!d.length){a:if(d=wa(c),!d") - .append(".length){d=(d=oa[c.toLowerCase()])?d:\"#\"==c.charAt(0)?c:\"#\"+c;if(sa.test(d)&&(") - .append("d=ra(d),d=ra(d),d=[parseInt(d.substr(1,2),16),parseInt(d.substr(3,2),16),parseInt(") - .append("d.substr(5,2),16)],d.length))break a;d=[]}3==d.length&&d.push(1)}c=\n4!=d.length?c") - .append(":\"rgba(\"+d.join(\", \")+\")\"}return c}function $b(a,b){var c=a.currentStyle||a.") - .append("style,d=c[b];void 0===d&&\"function\"==n(c.getPropertyValue)&&(d=c.getPropertyValu") - .append("e(b));return\"inherit\"!=d?void 0!==d?d:null:(c=Yb(a))?$b(c,b):null}\nfunction ac(") - .append("a,b){function c(a){var b=Zb(a,\"position\");if(\"fixed\"==b)return v=!0,l;for(a=Yb") - .append("(a);a&&a!=l&&(0==Zb(a,\"display\").lastIndexOf(\"inline\",0)||\"absolute\"==b&&\"s") - .append("tatic\"==Zb(a,\"position\"));)a=Yb(a);return a}function d(a){var b=a;if(\"visible") - .append("\"==t)if(a==l&&q)b=q;else if(a==q)return{x:\"visible\",y:\"visible\"};b={x:Zb(b,\"") - .append("overflow-x\"),y:Zb(b,\"overflow-y\")};a==l&&(b.x=\"visible\"==b.x?\"auto\":b.x,b.y") - .append("=\"visible\"==b.y?\"auto\":b.y);return b}function e(a){if(a==l){var b=(new Oa(h)).") - .append("ha;a=b.body||b.documentElement;\nb=b.parentWindow||b.defaultView;a=new y(b.pageXOf") - .append("fset||a.scrollLeft,b.pageYOffset||a.scrollTop)}else a=new y(a.scrollLeft,a.scrollT") - .append("op);return a}for(var f=bc(a,b),h=z(a),l=h.documentElement,q=h.body,t=Zb(l,\"overfl") - .append("ow\"),v,L=c(a);L;L=c(L)){var x=d(L);if(\"visible\"!=x.x||\"visible\"!=x.y){var B=c") - .append("c(L);if(0==B.width||0==B.height)return\"hidden\";var P=f.right=B.left+B.width;B=f.top>=B.top+B.height;if(P&") - .append("&\"hidden\"==x.x||B&&\"hidden\"==x.y)return\"hidden\";if(P&&\"visible\"!=x.x||B&&") - .append("\"visible\"!=x.y){if(v&&(x=e(L),f.left>=l.scrollWidth-x.x||f.right>=l.scrollHeight") - .append("-x.y))return\"hidden\";f=ac(L);return\"hidden\"==f?\"hidden\":\"scroll\"}}}return") - .append("\"none\"}\nfunction cc(a){var b;var c=Xb(a,\"MAP\");if(c||Xb(a,\"AREA\")){var d=c?") - .append("a:Xb(a.parentNode,\"MAP\")?a.parentNode:null,e=b=null;if(d&&d.name&&(b=V.pa('/desc") - .append("endant::*[@usemap = \"#'+d.name+'\"]',z(d)))&&(e=cc(b),!c&&\"default\"!=a.shape.to") - .append("LowerCase()))var f=dc(a),c=Math.min(Math.max(f.left,0),e.width),d=Math.min(Math.ma") - .append("x(f.top,0),e.height),h=Math.min(f.width,e.width-c),f=Math.min(f.height,e.height-d)") - .append(",e=new X(c+e.left,d+e.top,h,f);b={ra:b,rect:e||new X(0,0,0,0)}}else b=null;if(b)re") - .append("turn b.rect;if(Xb(a,\"HTML\"))return a=\n((z(a)?z(a).parentWindow||z(a).defaultVie") - .append("w:window)||window).document,a=\"CSS1Compat\"==a.compatMode?a.documentElement:a.bod") - .append("y,a=new Fa(a.clientWidth,a.clientHeight),new X(0,0,a.width,a.height);var l;try{l=a") - .append(".getBoundingClientRect()}catch(q){return new X(0,0,0,0)}return new X(l.left,l.top,") - .append("l.right-l.left,l.bottom-l.top)}\nfunction dc(a){var b=a.shape.toLowerCase();a=a.co") - .append("ords.split(\",\");if(\"rect\"==b&&4==a.length){var b=a[0],c=a[1];return new X(b,c,") - .append("a[2]-b,a[3]-c)}if(\"circle\"==b&&3==a.length)return b=a[2],new X(a[0]-b,a[1]-b,2*b") - .append(",2*b);if(\"poly\"==b&&22*this.A&&fc(this),!0):!1};func") - .append("tion fc(a){if(a.A!=a.f.length){for(var b=0,c=0;b\");Z(191,\"/\",\"?\");Z(192,\"`\",\"~\");Z(219,\"[\",\"{\");Z(220,\"") - .append("\\\\\",\"|\");Z(221,\"]\",\"}\");Z({c:59,b:186,opera:59},\";\",\":\");Z(222,\"'\",") - .append("'\"');var mc=new Y;mc.set(1,ic);mc.set(2,jc);mc.set(4,kc);mc.set(8,lc);\n(function") - .append("(a){var b=new Y;s(ec(a),function(c){b.set(a.get(c).code,c)});return b})(mc);functi") - .append("on nc(a,b){a:if(\"scroll\"==ac(a,b)){if(a.scrollIntoView&&(a.scrollIntoView(),\"no") - .append("ne\"==ac(a,b)))break a;for(var c=bc(a,b),d=Yb(a);d;d=Yb(d)){var e=d,f=cc(e),h,l=e,") - .append("q=h=void 0,t=void 0,v=void 0,v=Wb(l,\"borderLeftWidth\"),t=Wb(l,\"borderRightWidth") - .append("\"),q=Wb(l,\"borderTopWidth\");h=Wb(l,\"borderBottomWidth\");h=new W(parseFloat(q)") - .append(",parseFloat(t),parseFloat(h),parseFloat(v));l=c.left-f.left-h.left;f=c.top-f.top-h") - .append(".top;h=e.clientHeight+c.top-c.bottom;e.scrollLeft+=Math.min(l,Math.max(l-(e.client") - .append("Width+c.left-c.right),\n0));e.scrollTop+=Math.min(f,Math.max(f-h,0))}ac(a,b)}c=bc(") - .append("a,b);return new y(c.left,c.top)};function oc(){this.I=void 0}\nfunction pc(a,b,c){") - .append("switch(typeof b){case \"string\":qc(b,c);break;case \"number\":c.push(isFinite(b)&") - .append("&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);break;case \"undefined\":c") - .append(".push(\"null\");break;case \"object\":if(null==b){c.push(\"null\");break}if(\"arra") - .append("y\"==n(b)){var d=b.length;c.push(\"[\");for(var e=\"\",f=0;fb?e+=\"000\":256>b?e+=\"00\":4096>b&&(e+=\"0\");return rc[a]=e+b.toStri") - .append("ng(16)}),'\"')};function tc(a){switch(n(a)){case \"string\":case \"number\":case ") - .append("\"boolean\":return a;case \"function\":return a.toString();case \"array\":return j") - .append("a(a,tc);case \"object\":if(\"nodeType\"in a&&(1==a.nodeType||9==a.nodeType)){var b") - .append("={};b.ELEMENT=uc(a);return b}if(\"document\"in a)return b={},b.WINDOW=uc(a),b;if(a") - .append("a(a))return ja(a,tc);a=Ga(a,function(a,b){return\"number\"==typeof b||p(b)});retur") - .append("n Ha(a,tc);default:return null}}\nfunction vc(a,b){return\"array\"==n(a)?ja(a,func") - .append("tion(a){return vc(a,b)}):ba(a)?\"function\"==typeof a?a:\"ELEMENT\"in a?wc(a.ELEME") - .append("NT,b):\"WINDOW\"in a?wc(a.WINDOW,b):Ha(a,function(a){return vc(a,b)}):a}function x") - .append("c(a){a=a||document;var b=a.$wdc_;b||(b=a.$wdc_={},b.P=fa());b.P||(b.P=fa());return") - .append(" b}function uc(a){var b=xc(a.ownerDocument),c=Ja(b,function(b){return b==a});c||(c") - .append("=\":wdc:\"+b.P++,b[c]=a);return c}\nfunction wc(a,b){a=decodeURIComponent(a);var c") - .append("=b||document,d=xc(c);if(!(a in d))throw new w(10,\"Element does not exist in cache") - .append("\");var e=d[a];if(\"setInterval\"in e){if(e.closed)throw delete d[a],new w(23,\"Wi") - .append("ndow has been closed.\");return e}for(var f=e;f;){if(f==c.documentElement)return e") - .append(";f=f.parentNode}delete d[a];throw new w(10,\"Element is no longer attached to the ") - .append("DOM\");};function yc(a){var b=nc;a=[a];var c=window||ga,d;try{var b=p(b)?new c.Fun") - .append("ction(b):c==window?b:new c.Function(\"return (\"+b+\").apply(null,arguments);\"),e") - .append("=vc(a,c.document),f=b.apply(null,e);d={status:0,value:tc(f)}}catch(h){d={status:\"") - .append("code\"in h?h.code:13,value:{message:h.message}}}b=[];pc(new oc,d,b);return b.join(") - .append("\"\")}var zc=[\"_\"],$=m;zc[0]in $||!$.execScript||$.execScript(\"var \"+zc[0]);fo") - .append("r(var Ac;zc.length&&(Ac=zc.shift());)zc.length||void 0===yc?$=$[Ac]?$[Ac]:$[Ac]={}") - .append(":$[Ac]=yc;; return this._.apply(null,arguments);}.apply({navigator:typeof window!=") - .append("undefined?window.navigator:null,document:typeof window!=undefined?window.document:") - .append("null}, arguments);}") - .toString()), - - GET_VALUE_OF_CSS_PROPERTY(new StringBuilder() - .append("function(){return function(){function f(a){return function(){return a}}var h=this;") - .append("\nfunction k(a){var b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return") - .append("\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);") - .append("if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==t") - .append("ypeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIs") - .append("Enumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Funct") - .append("ion]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumera") - .append("ble&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\nel") - .append("se if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b}func") - .append("tion aa(a){var b=k(a);return\"array\"==b||\"object\"==b&&\"number\"==typeof a.leng") - .append("th}function l(a){return\"string\"==typeof a}function ba(a){var b=typeof a;return\"") - .append("object\"==b&&null!=a||\"function\"==b}var ca=Date.now||function(){return+new Date}") - .append(";var da=window;function ea(a){return String(a).replace(/\\-([a-z])/g,function(a,c)") - .append("{return c.toUpperCase()})};var fa=Array.prototype;function m(a,b){for(var c=a.leng") - .append("th,d=l(a)?a.split(\"\"):a,e=0;e=") - .append("arguments.length?fa.slice.call(a,b):fa.slice.call(a,b,c)};var p={aliceblue:\"#f0f8") - .append("ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0f") - .append("fff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffe") - .append("bcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb88") - .append("7\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff") - .append("7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"") - .append("#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",dark") - .append("gray:\"#a9a9a9\",darkgreen:\"#006400\",\ndarkgrey:\"#a9a9a9\",darkkhaki:\"#bdb76b") - .append("\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darko") - .append("rchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8") - .append("f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",") - .append("darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:") - .append("\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebri") - .append("ck:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\"") - .append(",gainsboro:\"#dcdcdc\",\nghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa5") - .append("20\",gray:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",grey:\"#808080\",h") - .append("oneydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",i") - .append("vory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",") - .append("lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"") - .append("#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3") - .append("d3\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\",lightpink:\"#ffb6c1\",lightsalmo") - .append("n:\"#ffa07a\",\nlightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:") - .append("\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#f") - .append("fffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff") - .append("\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumor") - .append("chid:\"#ba55d3\",mediumpurple:\"#9370db\",mediumseagreen:\"#3cb371\",mediumslatebl") - .append("ue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvio") - .append("letred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe") - .append("4e1\",\nmoccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#f") - .append("df5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff") - .append("4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturq") - .append("uoise:\"#afeeee\",palevioletred:\"#db7093\",papayawhip:\"#ffefd5\",peachpuff:\"#ff") - .append("dab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",p") - .append("urple:\"#800080\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",sadd") - .append("lebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\"") - .append(",\nseashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",") - .append("slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\"") - .append(",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",th") - .append("istle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",whea") - .append("t:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgr") - .append("een:\"#9acd32\"};var ja=\"background-color border-top-color border-right-color bor") - .append("der-bottom-color border-left-color color outline-color\".split(\" \"),ka=/#([0-9a-") - .append("fA-F])([0-9a-fA-F])([0-9a-fA-F])/;function la(a){if(!s.test(a))throw Error(\"'\"+a") - .append("+\"' is not a valid hex color\");4==a.length&&(a=a.replace(ka,\"#$1$1$2$2$3$3\"));") - .append("return a.toLowerCase()}var s=/^#(?:[0-9a-f]{3}){1,2}$/i,ma=/^(?:rgba)?\\((\\d{1,3}") - .append("),\\s?(\\d{1,3}),\\s?(\\d{1,3}),\\s?(0|1|0\\.\\d*)\\)$/i;\nfunction na(a){var b=a.") - .append("match(ma);if(b){a=Number(b[1]);var c=Number(b[2]),d=Number(b[3]),b=Number(b[4]);if") - .append("(0<=a&&255>=a&&0<=c&&255>=c&&0<=d&&255>=d&&0<=b&&1>=b)return[a,c,d,b]}return[]}var") - .append(" oa=/^(?:rgb)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2})\\)$") - .append("/i;function pa(a){var b=a.match(oa);if(b){a=Number(b[1]);var c=Number(b[2]),b=Numb") - .append("er(b[3]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=b&&255>=b)return[a,c,b]}return[]};funct") - .append("ion v(a,b){this.code=a;this.state=x[a]||qa;this.message=b||\"\";var c=this.state.r") - .append("eplace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0") - .append("]+/g,\"\")}),d=c.length-5;if(0>d||c.indexOf(\"Error\",d)!=d)c+=\"Error\";this.name") - .append("=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}(function(){var") - .append(" a=Error;function b(){}b.prototype=a.prototype;v.L=a.prototype;v.prototype=new b})") - .append("();\nvar qa=\"unknown error\",x={15:\"element not selectable\",11:\"element not vi") - .append("sible\",31:\"ime engine activation failed\",30:\"ime not available\",24:\"invalid ") - .append("cookie domain\",29:\"invalid element coordinates\",12:\"invalid element state\",32") - .append(":\"invalid selector\",51:\"invalid selector\",52:\"invalid selector\",17:\"javascr") - .append("ipt error\",405:\"unsupported operation\",34:\"move target out of bounds\",27:\"no") - .append(" such alert\",7:\"no such element\",8:\"no such frame\",23:\"no such window\",28:") - .append("\"script timeout\",33:\"session not created\",10:\"stale element reference\",\n0:") - .append("\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpected alert open") - .append("\"};x[13]=qa;x[9]=\"unknown command\";v.prototype.toString=function(){return this.") - .append("name+\": \"+this.message};var y,z;function ra(){return h.navigator?h.navigator.use") - .append("rAgent:null}var A,sa=h.navigator;A=sa&&sa.platform||\"\";y=-1!=A.indexOf(\"Mac\");") - .append("z=-1!=A.indexOf(\"Win\");var B=-1!=A.indexOf(\"Linux\");function ta(a,b){var c={},") - .append("d;for(d in a)b.call(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function ua(a,b){var c=") - .append("{},d;for(d in a)c[d]=b.call(void 0,a[d],d,a);return c}function va(a,b){for(var c i") - .append("n a)if(b.call(void 0,a[c],c,a))return c};function wa(a,b){if(a.contains&&1==b.node") - .append("Type)return a==b||a.contains(b);if(\"undefined\"!=typeof a.compareDocumentPosition") - .append(")return a==b||Boolean(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNod") - .append("e;return b==a}\nfunction xa(a,b){if(a==b)return 0;if(a.compareDocumentPosition)ret") - .append("urn a.compareDocumentPosition(b)&2?1:-1;if(\"sourceIndex\"in a||a.parentNode&&\"so") - .append("urceIndex\"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.s") - .append("ourceIndex-b.sourceIndex;var e=a.parentNode,g=b.parentNode;return e==g?ya(a,b):!c&") - .append("&wa(e,b)?-1*za(a,b):!d&&wa(g,a)?za(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourc") - .append("eIndex:g.sourceIndex)}d=9==a.nodeType?a:a.ownerDocument||a.document;c=d.createRang") - .append("e();c.selectNode(a);c.collapse(!0);\nd=d.createRange();d.selectNode(b);d.collapse(") - .append("!0);return c.compareBoundaryPoints(h.Range.START_TO_END,d)}function za(a,b){var c=") - .append("a.parentNode;if(c==b)return-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return y") - .append("a(d,a)}function ya(a,b){for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1") - .append("};function C(a){var b=null,c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==") - .append("b?a.innerText:b,b=void 0==b||null==b?\"\":b);if(\"string\"!=typeof b)if(9==c||1==c") - .append("){a=9==c?a.documentElement:a.firstChild;for(var c=0,d=[],b=\"\";a;){do 1!=a.nodeTy") - .append("pe&&(b+=a.nodeValue),d[c++]=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling") - .append("););}}else b=a.nodeValue;return\"\"+b}\nfunction D(a,b,c){if(null===b)return!0;try") - .append("{if(!a.getAttribute)return!1}catch(d){return!1}return null==c?!!a.getAttribute(b):") - .append("a.getAttribute(b,2)==c}function E(a,b,c,d,e){return Aa.call(null,a,b,l(c)?c:null,l") - .append("(d)?d:null,e||new F)}\nfunction Aa(a,b,c,d,e){b.getElementsByName&&d&&\"name\"==c?") - .append("(b=b.getElementsByName(d),m(b,function(b){a.matches(b)&&e.add(b)})):b.getElementsB") - .append("yClassName&&d&&\"class\"==c?(b=b.getElementsByClassName(d),m(b,function(b){b.class") - .append("Name==d&&a.matches(b)&&e.add(b)})):b.getElementsByTagName&&(b=b.getElementsByTagNa") - .append("me(a.getName()),m(b,function(a){D(a,c,d)&&e.add(a)}));return e}function Ba(a,b,c,d") - .append(",e){for(b=b.firstChild;b;b=b.nextSibling)D(b,c,d)&&a.matches(b)&&e.add(b);return e") - .append("}\nfunction Ca(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)D(b,c,d)&&a.matches") - .append("(b)&&e.add(b),Ca(a,b,c,d,e)};function F(){this.e=this.d=null;this.h=0}function Da(") - .append("a){this.o=a;this.next=this.m=null}F.prototype.unshift=function(a){a=new Da(a);a.ne") - .append("xt=this.d;this.e?this.d.m=a:this.d=this.e=a;this.d=a;this.h++};F.prototype.add=fun") - .append("ction(a){a=new Da(a);a.m=this.e;this.d?this.e.next=a:this.d=this.e=a;this.e=a;this") - .append(".h++};function G(a){return(a=a.d)?a.o:null}function Ea(a){return(a=G(a))?C(a):\"\"") - .append("}function H(a,b){this.G=a;this.n=(this.p=b)?a.e:a.d;this.t=null}\nH.prototype.next") - .append("=function(){var a=this.n;if(null==a)return null;var b=this.t=a;this.n=this.p?a.m:a") - .append(".next;return b.o};function I(a,b){var c=a.evaluate(b);return c instanceof F?+Ea(c)") - .append(":+c}function J(a,b){var c=a.evaluate(b);return c instanceof F?Ea(c):\"\"+c}functio") - .append("n K(a,b){var c=a.evaluate(b);return c instanceof F?!!c.h:!!c};function L(a,b,c,d,e") - .append("){b=b.evaluate(d);c=c.evaluate(d);var g;if(b instanceof F&&c instanceof F){e=new H") - .append("(b,!1);for(d=e.next();d;d=e.next())for(b=new H(c,!1),g=b.next();g;g=b.next())if(a(") - .append("C(d),C(g)))return!0;return!1}if(b instanceof F||c instanceof F){b instanceof F?e=b") - .append(":(e=c,c=b);e=new H(e,!1);b=typeof c;for(d=e.next();d;d=e.next()){switch(b){case \"") - .append("number\":d=+C(d);break;case \"boolean\":d=!!C(d);break;case \"string\":d=C(d);brea") - .append("k;default:throw Error(\"Illegal primitive type for comparison.\");}if(a(d,c))retur") - .append("n!0}return!1}return e?\n\"boolean\"==typeof b||\"boolean\"==typeof c?a(!!b,!!c):\"") - .append("number\"==typeof b||\"number\"==typeof c?a(+b,+c):a(b,c):a(+b,+c)}function Fa(a,b,") - .append("c,d){this.u=a;this.J=b;this.r=c;this.s=d}Fa.prototype.toString=function(){return t") - .append("his.u};var Ga={};function M(a,b,c,d){if(a in Ga)throw Error(\"Binary operator alre") - .append("ady created: \"+a);a=new Fa(a,b,c,d);Ga[a.toString()]=a}M(\"div\",6,1,function(a,b") - .append(",c){return I(a,c)/I(b,c)});M(\"mod\",6,1,function(a,b,c){return I(a,c)%I(b,c)});M(") - .append("\"*\",6,1,function(a,b,c){return I(a,c)*I(b,c)});\nM(\"+\",5,1,function(a,b,c){ret") - .append("urn I(a,c)+I(b,c)});M(\"-\",5,1,function(a,b,c){return I(a,c)-I(b,c)});M(\"<\",4,2") - .append(",function(a,b,c){return L(function(a,b){return a\",4,2,function(") - .append("a,b,c){return L(function(a,b){return a>b},a,b,c)});M(\"<=\",4,2,function(a,b,c){re") - .append("turn L(function(a,b){return a<=b},a,b,c)});M(\">=\",4,2,function(a,b,c){return L(f") - .append("unction(a,b){return a>=b},a,b,c)});M(\"=\",3,2,function(a,b,c){return L(function(a") - .append(",b){return a==b},a,b,c,!0)});\nM(\"!=\",3,2,function(a,b,c){return L(function(a,b)") - .append("{return a!=b},a,b,c,!0)});M(\"and\",2,2,function(a,b,c){return K(a,c)&&K(b,c)});M(") - .append("\"or\",1,2,function(a,b,c){return K(a,c)||K(b,c)});function Ha(a,b,c,d,e,g,r,w,t){") - .append("this.k=a;this.r=b;this.F=c;this.D=d;this.C=e;this.s=g;this.B=r;this.A=void 0!==w?w") - .append(":r;this.H=!!t}Ha.prototype.toString=function(){return this.k};var Ia={};function N") - .append("(a,b,c,d,e,g,r,w){if(a in Ia)throw Error(\"Function already created: \"+a+\".\");I") - .append("a[a]=new Ha(a,b,c,d,!1,e,g,r,w)}N(\"boolean\",2,!1,!1,function(a,b){return K(b,a)}") - .append(",1);N(\"ceiling\",1,!1,!1,function(a,b){return Math.ceil(I(b,a))},1);\nN(\"concat") - .append("\",3,!1,!1,function(a,b){var c=ia(arguments,1);return ga(c,function(b,c){return b+") - .append("J(c,a)})},2,null);N(\"contains\",2,!1,!1,function(a,b,c){b=J(b,a);a=J(c,a);return-") - .append("1!=b.indexOf(a)},2);N(\"count\",1,!1,!1,function(a,b){return b.evaluate(a).h},1,1,") - .append("!0);N(\"false\",2,!1,!1,f(!1),0);N(\"floor\",1,!1,!1,function(a,b){return Math.flo") - .append("or(I(b,a))},1);\nN(\"id\",4,!1,!1,function(a,b){var c=a.g,d=9==c.nodeType?c:c.owne") - .append("rDocument,c=J(b,a).split(/\\s+/),e=[];m(c,function(a){(a=d.getElementById(a))&&!ha") - .append("(e,a)&&e.push(a)});e.sort(xa);var g=new F;m(e,function(a){g.add(a)});return g},1);") - .append("N(\"lang\",2,!1,!1,f(!1),1);N(\"last\",1,!0,!1,function(a){if(1!=arguments.length)") - .append("throw Error(\"Function last expects ()\");return a.e},0);N(\"local-name\",3,!1,!0,") - .append("function(a,b){var c=b?G(b.evaluate(a)):a.g;return c?c.nodeName.toLowerCase():\"\"}") - .append(",0,1,!0);\nN(\"name\",3,!1,!0,function(a,b){var c=b?G(b.evaluate(a)):a.g;return c?") - .append("c.nodeName.toLowerCase():\"\"},0,1,!0);N(\"namespace-uri\",3,!0,!1,f(\"\"),0,1,!0)") - .append(";N(\"normalize-space\",3,!1,!0,function(a,b){return(b?J(b,a):C(a.g)).replace(/[\\s") - .append("\\xa0]+/g,\" \").replace(/^\\s+|\\s+$/g,\"\")},0,1);N(\"not\",2,!1,!1,function(a,b") - .append("){return!K(b,a)},1);N(\"number\",1,!1,!0,function(a,b){return b?I(b,a):+C(a.g)},0,") - .append("1);N(\"position\",1,!0,!1,function(a){return a.I},0);N(\"round\",1,!1,!1,function(") - .append("a,b){return Math.round(I(b,a))},1);\nN(\"starts-with\",2,!1,!1,function(a,b,c){b=J") - .append("(b,a);a=J(c,a);return 0==b.lastIndexOf(a,0)},2);N(\"string\",3,!1,!0,function(a,b)") - .append("{return b?J(b,a):C(a.g)},0,1);N(\"string-length\",1,!1,!0,function(a,b){return(b?J") - .append("(b,a):C(a.g)).length},0,1);\nN(\"substring\",3,!1,!1,function(a,b,c,d){c=I(c,a);if") - .append("(isNaN(c)||Infinity==c||-Infinity==c)return\"\";d=d?I(d,a):Infinity;if(isNaN(d)||-") - .append("Infinity===d)return\"\";c=Math.round(c)-1;var e=Math.max(c,0);a=J(b,a);if(Infinity") - .append("==d)return a.substring(e);b=Math.round(d);return a.substring(e,c+b)},2,3);N(\"subs") - .append("tring-after\",3,!1,!1,function(a,b,c){b=J(b,a);a=J(c,a);c=b.indexOf(a);return-1==c") - .append("?\"\":b.substring(c+a.length)},2);\nN(\"substring-before\",3,!1,!1,function(a,b,c)") - .append("{b=J(b,a);a=J(c,a);a=b.indexOf(a);return-1==a?\"\":b.substring(0,a)},2);N(\"sum\",") - .append("1,!1,!1,function(a,b){var c;c=b.evaluate(a);c=new H(c,!1);for(var d=0,e=c.next();e") - .append(";e=c.next())d+=+C(e);return d},1,1,!0);N(\"translate\",3,!1,!1,function(a,b,c,d){b") - .append("=J(b,a);c=J(c,a);var e=J(d,a);a=[];for(d=0;d(0==u[1].length?\n0:parseInt(u[1],1") - .append("0))?1:0)||((0==q[2].length)<(0==u[2].length)?-1:(0==q[2].length)>(0==u[2].length)?") - .append("1:0)||(q[2]u[2]?1:0)}while(0==b)}}var Na=/Android\\s+([0-9\\.]+)/.ex") - .append("ec(ra()),Ma=Na?Na[1]:\"0\";P(2.3);P(4);function Oa(a,b){var c=ea(b);if(\"float\"==") - .append("c||\"cssFloat\"==c||\"styleFloat\"==c)c=\"cssFloat\";var d;a:{d=c;var e=9==a.nodeT") - .append("ype?a:a.ownerDocument||a.document;if(e.defaultView&&e.defaultView.getComputedStyle") - .append("&&(e=e.defaultView.getComputedStyle(a,null))){d=e[d]||e.getPropertyValue(d)||\"\";") - .append("break a}d=\"\"}c=d||Pa(a,c);if(null===c)c=null;else if(ha(ja,b)&&(s.test(\"#\"==c.") - .append("charAt(0)?c:\"#\"+c)||pa(c).length||p&&p[c.toLowerCase()]||na(c).length)){d=na(c);") - .append("if(!d.length){a:if(d=pa(c),!d.length){d=(d=p[c.toLowerCase()])?d:\n\"#\"==c.charAt") - .append("(0)?c:\"#\"+c;if(s.test(d)&&(d=la(d),d=la(d),d=[parseInt(d.substr(1,2),16),parseIn") - .append("t(d.substr(3,2),16),parseInt(d.substr(5,2),16)],d.length))break a;d=[]}3==d.length") - .append("&&d.push(1)}c=4!=d.length?c:\"rgba(\"+d.join(\", \")+\")\"}return c}\nfunction Pa(") - .append("a,b){var c=a.currentStyle||a.style,d=c[b];void 0===d&&\"function\"==k(c.getPropert") - .append("yValue)&&(d=c.getPropertyValue(b));if(\"inherit\"!=d)return void 0!==d?d:null;for(") - .append("c=a.parentNode;c&&1!=c.nodeType&&9!=c.nodeType&&11!=c.nodeType;)c=c.parentNode;ret") - .append("urn(c=c&&1==c.nodeType?c:null)?Pa(c,b):null};P(4);function Q(a,b){this.f={};this.c") - .append("=[];var c=arguments.length;if(1\");S(191,\"/\",\"?\");S(192,\"`\",\"~\");S(219,\"[\",\"{") - .append("\");S(220,\"\\\\\",\"|\");S(221,\"]\",\"}\");S({b:59,a:186,opera:59},\";\",\":\");") - .append("S(222,\"'\",'\"');var T=new Q;T.set(1,Ta);T.set(2,Ua);T.set(4,Va);T.set(8,Wa);(fun") - .append("ction(a){var b=new Q;m(Qa(a),function(c){b.set(a.get(c).code,c)});return b})(T);fu") - .append("nction Xa(){this.i=void 0}\nfunction U(a,b,c){switch(typeof b){case \"string\":Ya(") - .append("b,c);break;case \"number\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"") - .append("boolean\":c.push(b);break;case \"undefined\":c.push(\"null\");break;case \"object") - .append("\":if(null==b){c.push(\"null\");break}if(\"array\"==k(b)){var d=b.length;c.push(\"") - .append("[\");for(var e=\"\",g=0;gb?e+=\"000\":256>b?e+=\"00\":4096>") - .append("b&&(e+=\"0\");return V[a]=e+b.toString(16)}),'\"')};function W(a){switch(k(a)){cas") - .append("e \"string\":case \"number\":case \"boolean\":return a;case \"function\":return a.") - .append("toString();case \"array\":return n(a,W);case \"object\":if(\"nodeType\"in a&&(1==a") - .append(".nodeType||9==a.nodeType)){var b={};b.ELEMENT=$a(a);return b}if(\"document\"in a)r") - .append("eturn b={},b.WINDOW=$a(a),b;if(aa(a))return n(a,W);a=ta(a,function(a,b){return\"nu") - .append("mber\"==typeof b||l(b)});return ua(a,W);default:return null}}\nfunction X(a,b){ret") - .append("urn\"array\"==k(a)?n(a,function(a){return X(a,b)}):ba(a)?\"function\"==typeof a?a:") - .append("\"ELEMENT\"in a?ab(a.ELEMENT,b):\"WINDOW\"in a?ab(a.WINDOW,b):ua(a,function(a){ret") - .append("urn X(a,b)}):a}function bb(a){a=a||document;var b=a.$wdc_;b||(b=a.$wdc_={},b.l=ca(") - .append("));b.l||(b.l=ca());return b}function $a(a){var b=bb(a.ownerDocument),c=va(b,functi") - .append("on(b){return b==a});c||(c=\":wdc:\"+b.l++,b[c]=a);return c}\nfunction ab(a,b){a=de") - .append("codeURIComponent(a);var c=b||document,d=bb(c);if(!(a in d))throw new v(10,\"Elemen") - .append("t does not exist in cache\");var e=d[a];if(\"setInterval\"in e){if(e.closed)throw ") - .append("delete d[a],new v(23,\"Window has been closed.\");return e}for(var g=e;g;){if(g==c") - .append(".documentElement)return e;g=g.parentNode}delete d[a];throw new v(10,\"Element is n") - .append("o longer attached to the DOM\");};function cb(a,b){var c=Oa,d=[a,b],e=window||da,g") - .append(";try{var c=l(c)?new e.Function(c):e==window?c:new e.Function(\"return (\"+c+\").ap") - .append("ply(null,arguments);\"),r=X(d,e.document),w=c.apply(null,r);g={status:0,value:W(w)") - .append("}}catch(t){g={status:\"code\"in t?t.code:13,value:{message:t.message}}}c=[];U(new ") - .append("Xa,g,c);return c.join(\"\")}var Y=[\"_\"],Z=h;Y[0]in Z||!Z.execScript||Z.execScrip") - .append("t(\"var \"+Y[0]);for(var $;Y.length&&($=Y.shift());)Y.length||void 0===cb?Z=Z[$]?Z") - .append("[$]:Z[$]={}:Z[$]=cb;; return this._.apply(null,arguments);}.apply({navigator:typeo") - .append("f window!=undefined?window.navigator:null,document:typeof window!=undefined?window") - .append(".document:null}, arguments);}") - .toString()), - - IS_DISPLAYED(new StringBuilder() - .append("function(){return function(){function g(a){return function(){return this[a]}}funct") - .append("ion k(a){return function(){return a}}var l=this;\nfunction n(a){var b=typeof a;if(") - .append("\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)r") - .append("eturn b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"") - .append("object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typ") - .append("eof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerabl") - .append("e(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a") - .append(".call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"cal") - .append("l\"))return\"function\"}else return\"null\";\nelse if(\"function\"==b&&\"undefined") - .append("\"==typeof a.call)return\"object\";return b}function aa(a){var b=n(a);return\"arra") - .append("y\"==b||\"object\"==b&&\"number\"==typeof a.length}function p(a){return\"string\"=") - .append("=typeof a}function ba(a){var b=typeof a;return\"object\"==b&&null!=a||\"function\"") - .append("==b}function ca(a,b,c){return a.call.apply(a.bind,arguments)}\nfunction da(a,b,c){") - .append("if(!a)throw Error();if(2=arguments.length?ia.slice.call(a,b):ia.slice.call(a,b,c)};var pa={") - .append("aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fff") - .append("d4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blan") - .append("chedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",b") - .append("urlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d26") - .append("91e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"") - .append("#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod") - .append(":\"#b8860b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",\ndarkgrey:\"#a9a9a9\",dar") - .append("kkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:") - .append("\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",dark") - .append("seagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslate") - .append("grey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff14") - .append("93\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"") - .append("#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fu") - .append("chsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",\nghostwhite:\"#f8f8ff\",gold:\"#ffd700\",") - .append("goldenrod:\"#daa520\",gray:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",g") - .append("rey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",ind") - .append("igo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderb") - .append("lush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e") - .append("6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",") - .append("lightgray:\"#d3d3d3\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\",lightpink:\"#ff") - .append("b6c1\",lightsalmon:\"#ffa07a\",\nlightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa") - .append("\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de") - .append("\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6") - .append("\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:") - .append("\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370db\",mediumseagreen:\"#3c") - .append("b371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:") - .append("\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5ff") - .append("fa\",mistyrose:\"#ffe4e1\",\nmoccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#") - .append("000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa") - .append("500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen") - .append(":\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#db7093\",papayawhip:\"#ffe") - .append("fd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",pow") - .append("derblue:\"#b0e0e6\",purple:\"#800080\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royal") - .append("blue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\"") - .append(",seagreen:\"#2e8b57\",\nseashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\"") - .append(",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#7080") - .append("90\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c") - .append("\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",v") - .append("iolet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yello") - .append("w:\"#ffff00\",yellowgreen:\"#9acd32\"};var qa=\"background-color border-top-color ") - .append("border-right-color border-bottom-color border-left-color color outline-color\".spl") - .append("it(\" \"),ra=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/;function sa(a){if(!ta.test") - .append("(a))throw Error(\"'\"+a+\"' is not a valid hex color\");4==a.length&&(a=a.replace(") - .append("ra,\"#$1$1$2$2$3$3\"));return a.toLowerCase()}var ta=/^#(?:[0-9a-f]{3}){1,2}$/i,ua") - .append("=/^(?:rgba)?\\((\\d{1,3}),\\s?(\\d{1,3}),\\s?(\\d{1,3}),\\s?(0|1|0\\.\\d*)\\)$/i;") - .append("\nfunction va(a){var b=a.match(ua);if(b){a=Number(b[1]);var c=Number(b[2]),d=Numbe") - .append("r(b[3]),b=Number(b[4]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=d&&255>=d&&0<=b&&1>=b)ret") - .append("urn[a,c,d,b]}return[]}var wa=/^(?:rgb)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),") - .append("\\s?(0|[1-9]\\d{0,2})\\)$/i;function xa(a){var b=a.match(wa);if(b){a=Number(b[1]);") - .append("var c=Number(b[2]),b=Number(b[3]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=b&&255>=b)retu") - .append("rn[a,c,b]}return[]};function w(a,b){this.code=a;this.state=ya[a]||za;this.message=") - .append("b||\"\";var c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpper") - .append("Case().replace(/^[\\s\\xa0]+/g,\"\")}),d=c.length-5;if(0>d||c.indexOf(\"Error\",d)") - .append("!=d)c+=\"Error\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.s") - .append("tack||\"\"}q(w,Error);\nvar za=\"unknown error\",ya={15:\"element not selectable\"") - .append(",11:\"element not visible\",31:\"ime engine activation failed\",30:\"ime not avail") - .append("able\",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invali") - .append("d element state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid sel") - .append("ector\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out") - .append(" of bounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"n") - .append("o such window\",28:\"script timeout\",33:\"session not created\",10:\"stale elemen") - .append("t reference\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unex") - .append("pected alert open\"};ya[13]=za;ya[9]=\"unknown command\";w.prototype.toString=func") - .append("tion(){return this.name+\": \"+this.message};var Aa,Ba;function Ca(){return l.navi") - .append("gator?l.navigator.userAgent:null}var Da,Ea=l.navigator;Da=Ea&&Ea.platform||\"\";Aa") - .append("=-1!=Da.indexOf(\"Mac\");Ba=-1!=Da.indexOf(\"Win\");var Ga=-1!=Da.indexOf(\"Linux") - .append("\");function x(a,b){this.x=void 0!==a?a:0;this.y=void 0!==b?b:0}x.prototype.toStri") - .append("ng=function(){return\"(\"+this.x+\", \"+this.y+\")\"};x.prototype.ceil=function(){") - .append("this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this};x.prototype.floor=f") - .append("unction(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this};x.proto") - .append("type.round=function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return t") - .append("his};function Ha(a,b){this.width=a;this.height=b}Ha.prototype.toString=function(){") - .append("return\"(\"+this.width+\" x \"+this.height+\")\"};Ha.prototype.ceil=function(){thi") - .append("s.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};Ha.p") - .append("rototype.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor") - .append("(this.height);return this};Ha.prototype.round=function(){this.width=Math.round(thi") - .append("s.width);this.height=Math.round(this.height);return this};function Ia(a,b){var c={") - .append("},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function Ja(a,b){var ") - .append("c={},d;for(d in a)c[d]=b.call(void 0,a[d],d,a);return c}function Ka(a,b){for(var c") - .append(" in a)if(b.call(void 0,a[c],c,a))return c};var La=3;function Ma(a,b){if(a.contains") - .append("&&1==b.nodeType)return a==b||a.contains(b);if(\"undefined\"!=typeof a.compareDocum") - .append("entPosition)return a==b||Boolean(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=") - .append("b.parentNode;return b==a}\nfunction Na(a,b){if(a==b)return 0;if(a.compareDocumentP") - .append("osition)return a.compareDocumentPosition(b)&2?1:-1;if(\"sourceIndex\"in a||a.paren") - .append("tNode&&\"sourceIndex\"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d") - .append(")return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e==f?") - .append("Oa(a,b):!c&&Ma(e,b)?-1*Pa(a,b):!d&&Ma(f,a)?Pa(b,a):(c?a.sourceIndex:e.sourceIndex)") - .append("-(d?b.sourceIndex:f.sourceIndex)}d=y(a);c=d.createRange();c.selectNode(a);c.collap") - .append("se(!0);d=d.createRange();d.selectNode(b);\nd.collapse(!0);return c.compareBoundary") - .append("Points(l.Range.START_TO_END,d)}function Pa(a,b){var c=a.parentNode;if(c==b)return-") - .append("1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return Oa(d,a)}function Oa(a,b){for(") - .append("var c=b;c=c.previousSibling;)if(c==a)return-1;return 1}function y(a){return 9==a.n") - .append("odeType?a:a.ownerDocument||a.document}function Qa(a,b){a=a.parentNode;for(var c=0;") - .append("a;){if(b(a))return a;a=a.parentNode;c++}return null}function Ra(a){this.ia=a||l.do") - .append("cument||document}Ra.prototype.contains=Ma;function z(a,b,c){this.l=a;this.pa=b||1;") - .append("this.k=c||1};function Sa(a){this.R=a;this.G=0}function Ta(a){a=a.match(Ua);for(var") - .append(" b=0;b]=|\\\\s+|.\",\"g\"),Va=") - .append("/^\\s/;function A(a,b){return a.R[a.G+(b||0)]}Sa.prototype.next=function(){return ") - .append("this.R[this.G++]};Sa.prototype.back=function(){this.G--};Sa.prototype.empty=functi") - .append("on(){return this.R.length<=this.G};function C(a){var b=null,c=a.nodeType;1==c&&(b=") - .append("a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?\"\":b);if(") - .append("\"string\"!=typeof b)if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;for(var ") - .append("c=0,d=[],b=\"\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c++]=a;while(a=a.firstChi") - .append("ld);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;return\"\"+b}\nfunction") - .append(" Wa(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!1}") - .append("return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function Xa(a,b,c,d,e){r") - .append("eturn Ya.call(null,a,b,p(c)?c:null,p(d)?d:null,e||new D)}\nfunction Ya(a,b,c,d,e){") - .append("b.getElementsByName&&d&&\"name\"==c?(b=b.getElementsByName(d),r(b,function(b){a.ma") - .append("tches(b)&&e.add(b)})):b.getElementsByClassName&&d&&\"class\"==c?(b=b.getElementsBy") - .append("ClassName(d),r(b,function(b){b.className==d&&a.matches(b)&&e.add(b)})):a instanceo") - .append("f E?Za(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTagName(a.getName()),r") - .append("(b,function(a){Wa(a,c,d)&&e.add(a)}));return e}function $a(a,b,c,d,e){for(b=b.firs") - .append("tChild;b;b=b.nextSibling)Wa(b,c,d)&&a.matches(b)&&e.add(b);return e}\nfunction Za(") - .append("a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)Wa(b,c,d)&&a.matches(b)&&e.add(b),") - .append("Za(a,b,c,d,e)};function D(){this.k=this.h=null;this.B=0}function ab(a){this.t=a;th") - .append("is.next=this.s=null}function bb(a,b){if(!a.h)return b;if(!b.h)return a;for(var c=a") - .append(".h,d=b.h,e=null,f=null,h=0;c&&d;)c.t==d.t?(f=c,c=c.next,d=d.next):0\",4,2,function(a,b,") - .append("c){return kb(function(a,b){return a>b},a,b,c)});K(\"<=\",4,2,function(a,b,c){retur") - .append("n kb(function(a,b){return a<=b},a,b,c)});K(\">=\",4,2,function(a,b,c){return kb(fu") - .append("nction(a,b){return a>=b},a,b,c)});var jb=K(\"=\",3,2,function(a,b,c){return kb(fun") - .append("ction(a,b){return a==b},a,b,c,!0)});K(\"!=\",3,2,function(a,b,c){return kb(functio") - .append("n(a,b){return a!=b},a,b,c,!0)});K(\"and\",2,2,function(a,b,c){return hb(a,c)&&hb(b") - .append(",c)});K(\"or\",1,2,function(a,b,c){return hb(a,c)||hb(b,c)});function nb(a,b){if(b") - .append(".n()&&4!=a.g)throw Error(\"Primary expression must evaluate to nodeset if filter h") - .append("as predicate(s).\");G.call(this,a.g);this.aa=a;this.d=b;this.o=a.e();this.i=a.i}q(") - .append("nb,G);nb.prototype.evaluate=function(a){a=this.aa.evaluate(a);return ob(this.d,a)}") - .append(";nb.prototype.toString=function(){var a;a=\"Filter:\"+H(this.aa);return a+=H(this.") - .append("d)};function pb(a,b){if(b.lengtha.N)throw") - .append(" Error(\"Function \"+a.j+\" expects at most \"+a.N+\" arguments, \"+b.length+\" gi") - .append("ven\");a.ma&&r(b,function(b,d){if(4!=b.g)throw Error(\"Argument \"+d+\" to functio") - .append("n \"+a.j+\" is not of type Nodeset: \"+b);});G.call(this,a.g);this.F=a;this.K=b;fb") - .append("(this,a.o||ka(b,function(a){return a.e()}));gb(this,a.ka&&!b.length||a.ja&&!!b.len") - .append("gth||ka(b,function(a){return a.i}))}\nq(pb,G);pb.prototype.evaluate=function(a){re") - .append("turn this.F.m.apply(null,na(a,this.K))};pb.prototype.toString=function(){var a=\"F") - .append("unction: \"+this.F;if(this.K.length)var b=s(this.K,function(a,b){return a+H(b)},\"") - .append("Arguments:\"),a=a+H(b);return a};function qb(a,b,c,d,e,f,h,t,u){this.j=a;this.g=b;") - .append("this.o=c;this.ka=d;this.ja=e;this.m=f;this.Z=h;this.N=void 0!==t?t:h;this.ma=!!u}q") - .append("b.prototype.toString=g(\"j\");var rb={};\nfunction L(a,b,c,d,e,f,h,t){if(a in rb)t") - .append("hrow Error(\"Function already created: \"+a+\".\");rb[a]=new qb(a,b,c,d,!1,e,f,h,t") - .append(")}L(\"boolean\",2,!1,!1,function(a,b){return hb(b,a)},1);L(\"ceiling\",1,!1,!1,fun") - .append("ction(a,b){return Math.ceil(I(b,a))},1);L(\"concat\",3,!1,!1,function(a,b){var c=o") - .append("a(arguments,1);return s(c,function(b,c){return b+J(c,a)},\"\")},2,null);L(\"contai") - .append("ns\",2,!1,!1,function(a,b,c){b=J(b,a);a=J(c,a);return-1!=b.indexOf(a)},2);L(\"coun") - .append("t\",1,!1,!1,function(a,b){return b.evaluate(a).n()},1,1,!0);\nL(\"false\",2,!1,!1,") - .append("k(!1),0);L(\"floor\",1,!1,!1,function(a,b){return Math.floor(I(b,a))},1);L(\"id\",") - .append("4,!1,!1,function(a,b){var c=a.l,d=9==c.nodeType?c:c.ownerDocument,c=J(b,a).split(/") - .append("\\s+/),e=[];r(c,function(a){(a=d.getElementById(a))&&!ma(e,a)&&e.push(a)});e.sort(") - .append("Na);var f=new D;r(e,function(a){f.add(a)});return f},1);L(\"lang\",2,!1,!1,k(!1),1") - .append(");L(\"last\",1,!0,!1,function(a){if(1!=arguments.length)throw Error(\"Function las") - .append("t expects ()\");return a.k},0);\nL(\"local-name\",3,!1,!0,function(a,b){var c=b?cb") - .append("(b.evaluate(a)):a.l;return c?c.nodeName.toLowerCase():\"\"},0,1,!0);L(\"name\",3,!") - .append("1,!0,function(a,b){var c=b?cb(b.evaluate(a)):a.l;return c?c.nodeName.toLowerCase()") - .append(":\"\"},0,1,!0);L(\"namespace-uri\",3,!0,!1,k(\"\"),0,1,!0);L(\"normalize-space\",3") - .append(",!1,!0,function(a,b){return(b?J(b,a):C(a.l)).replace(/[\\s\\xa0]+/g,\" \").replace") - .append("(/^\\s+|\\s+$/g,\"\")},0,1);L(\"not\",2,!1,!1,function(a,b){return!hb(b,a)},1);L(") - .append("\"number\",1,!1,!0,function(a,b){return b?I(b,a):+C(a.l)},0,1);\nL(\"position\",1,") - .append("!0,!1,function(a){return a.pa},0);L(\"round\",1,!1,!1,function(a,b){return Math.ro") - .append("und(I(b,a))},1);L(\"starts-with\",2,!1,!1,function(a,b,c){b=J(b,a);a=J(c,a);return") - .append(" 0==b.lastIndexOf(a,0)},2);L(\"string\",3,!1,!0,function(a,b){return b?J(b,a):C(a.") - .append("l)},0,1);L(\"string-length\",1,!1,!0,function(a,b){return(b?J(b,a):C(a.l)).length}") - .append(",0,1);\nL(\"substring\",3,!1,!1,function(a,b,c,d){c=I(c,a);if(isNaN(c)||Infinity==") - .append("c||-Infinity==c)return\"\";d=d?I(d,a):Infinity;if(isNaN(d)||-Infinity===d)return\"") - .append("\";c=Math.round(c)-1;var e=Math.max(c,0);a=J(b,a);if(Infinity==d)return a.substrin") - .append("g(e);b=Math.round(d);return a.substring(e,c+b)},2,3);L(\"substring-after\",3,!1,!1") - .append(",function(a,b,c){b=J(b,a);a=J(c,a);c=b.indexOf(a);return-1==c?\"\":b.substring(c+a") - .append(".length)},2);\nL(\"substring-before\",3,!1,!1,function(a,b,c){b=J(b,a);a=J(c,a);a=") - .append("b.indexOf(a);return-1==a?\"\":b.substring(0,a)},2);L(\"sum\",1,!1,!1,function(a,b)") - .append("{for(var c=F(b.evaluate(a)),d=0,e=c.next();e;e=c.next())d+=+C(e);return d},1,1,!0)") - .append(";L(\"translate\",3,!1,!1,function(a,b,c,d){b=J(b,a);c=J(c,a);var e=J(d,a);a=[];for") - .append("(d=0;da.length)throw Error(\"Unclosed literal string\");return ") - .append("new tb(a)}function Qb(a){var b=a.a.next(),c=b.indexOf(\":\");if(-1==c)return new u") - .append("b(b);var d=b.substring(0,c);a=a.na(d);if(!a)throw Error(\"Namespace prefix not dec") - .append("lared: \"+d);b=b.substr(c+1);return new ub(b,a)}\nfunction Rb(a){var b,c=[],d;if(") - .append("\"/\"==A(a.a)||\"//\"==A(a.a)){b=a.a.next();d=A(a.a);if(\"/\"==b&&(a.a.empty()||\"") - .append(".\"!=d&&\"..\"!=d&&\"@\"!=d&&\"*\"!=d&&!/(?![0-9])[\\w]/.test(d)))return new yb;d=") - .append("new yb;Q(a,\"Missing next location step.\");b=Sb(a,b);c.push(b)}else{a:{b=A(a.a);d") - .append("=b.charAt(0);switch(d){case \"$\":throw Error(\"Variable reference not allowed in ") - .append("HTML XPath\");case \"(\":a.a.next();b=Lb(a);Q(a,'unclosed \"(\"');Nb(a,\")\");brea") - .append("k;case '\"':case \"'\":b=Pb(a);break;default:if(isNaN(+b))if(!sb(b)&&/(?![0-9])[") - .append("\\w]/.test(d)&&\n\"(\"==A(a.a,1)){b=a.a.next();b=rb[b]||null;a.a.next();for(d=[];") - .append("\")\"!=A(a.a);){Q(a,\"Missing function argument list.\");d.push(Lb(a));if(\",\"!=A") - .append("(a.a))break;a.a.next()}Q(a,\"Unclosed function argument list.\");Ob(a);b=new pb(b,") - .append("d)}else{b=null;break a}else b=new vb(+a.a.next())}\"[\"==A(a.a)&&(d=new M(Tb(a)),b") - .append("=new nb(b,d))}if(b)if(\"/\"==A(a.a)||\"//\"==A(a.a))d=b;else return b;else b=Sb(a,") - .append("\"/\"),d=new zb,c.push(b)}for(;\"/\"==A(a.a)||\"//\"==A(a.a);)b=a.a.next(),Q(a,\"M") - .append("issing next location step.\"),b=Sb(a,b),c.push(b);return new wb(d,\nc)}\nfunction ") - .append("Sb(a,b){var c,d,e;if(\"/\"!=b&&\"//\"!=b)throw Error('Step op should be \"/\" or ") - .append("\"//\"');if(\".\"==A(a.a))return d=new N(Hb,new E(\"node\")),a.a.next(),d;if(\"..") - .append("\"==A(a.a))return d=new N(Gb,new E(\"node\")),a.a.next(),d;var f;if(\"@\"==A(a.a))") - .append("f=xb,a.a.next(),Q(a,\"Missing attribute name\");else if(\"::\"==A(a.a,1)){if(!/(?!") - .append("[0-9])[\\w]/.test(A(a.a).charAt(0)))throw Error(\"Bad token: \"+a.a.next());c=a.a.") - .append("next();f=Fb[c]||null;if(!f)throw Error(\"No axis with name: \"+c);a.a.next();Q(a,") - .append("\"Missing node name\")}else f=Cb;\nc=A(a.a);if(/(?![0-9])[\\w]/.test(c.charAt(0)))") - .append("if(\"(\"==A(a.a,1)){if(!sb(c))throw Error(\"Invalid node type: \"+c);c=a.a.next();") - .append("if(!sb(c))throw Error(\"Invalid type name: \"+c);Nb(a,\"(\");Q(a,\"Bad nodetype\")") - .append(";e=A(a.a).charAt(0);var h=null;if('\"'==e||\"'\"==e)h=Pb(a);Q(a,\"Bad nodetype\");") - .append("Ob(a);c=new E(c,h)}else c=Qb(a);else if(\"*\"==c)c=Qb(a);else throw Error(\"Bad to") - .append("ken: \"+a.a.next());e=new M(Tb(a),f.u);return d||new N(f,c,e,\"//\"==b)}\nfunction") - .append(" Tb(a){for(var b=[];\"[\"==A(a.a);){a.a.next();Q(a,\"Missing predicate expression.") - .append("\");var c=Lb(a);b.push(c);Q(a,\"Unclosed predicate expression.\");Nb(a,\"]\")}retu") - .append("rn b}function Mb(a){if(\"-\"==A(a.a))return a.a.next(),new Ib(Mb(a));var b=Rb(a);i") - .append("f(\"|\"!=A(a.a))a=b;else{for(b=[b];\"|\"==a.a.next();)Q(a,\"Missing next union loc") - .append("ation path.\"),b.push(Rb(a));a.a.back();a=new Jb(b)}return a};function Ub(a,b){if(") - .append("!a.length)throw Error(\"Empty XPath expression.\");var c=Ta(a);if(c.empty())throw ") - .append("Error(\"Invalid XPath expression.\");b?\"function\"==n(b)||(b=ea(b.lookupNamespace") - .append("URI,b)):b=k(null);var d=Lb(new Kb(c,b));if(!c.empty())throw Error(\"Bad token: \"+") - .append("c.next());this.evaluate=function(a,b){var c=d.evaluate(new z(a));return new R(c,b)") - .append("}}\nfunction R(a,b){if(0==b)if(a instanceof D)b=4;else if(\"string\"==typeof a)b=2") - .append(";else if(\"number\"==typeof a)b=1;else if(\"boolean\"==typeof a)b=3;else throw Err") - .append("or(\"Unexpected evaluation result.\");if(2!=b&&1!=b&&3!=b&&!(a instanceof D))throw") - .append(" Error(\"value could not be converted to the specified type\");this.resultType=b;v") - .append("ar c;switch(b){case 2:this.stringValue=a instanceof D?db(a):\"\"+a;break;case 1:th") - .append("is.numberValue=a instanceof D?+db(a):+a;break;case 3:this.booleanValue=a instanceo") - .append("f D?0=c.length?null:c[f++]}") - .append(";this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error(\"snapshotItem called wit") - .append("h wrong result type\");return a>=c.length||0>a?null:c[a]}}R.ANY_TYPE=0;\nR.NUMBER_") - .append("TYPE=1;R.STRING_TYPE=2;R.BOOLEAN_TYPE=3;R.UNORDERED_NODE_ITERATOR_TYPE=4;R.ORDERED") - .append("_NODE_ITERATOR_TYPE=5;R.UNORDERED_NODE_SNAPSHOT_TYPE=6;R.ORDERED_NODE_SNAPSHOT_TYP") - .append("E=7;R.ANY_UNORDERED_NODE_TYPE=8;R.FIRST_ORDERED_NODE_TYPE=9;function Vb(a){a=a||l;") - .append("var b=a.document;b.evaluate||(a.XPathResult=R,b.evaluate=function(a,b,e,f){return(") - .append("new Ub(a,e)).evaluate(b,f)},b.createExpression=function(a,b){return new Ub(a,b)})}") - .append(";var S={};S.ga=function(){var a={va:\"http://www.w3.org/2000/svg\"};return functio") - .append("n(b){return a[b]||null}}();S.m=function(a,b,c){var d=y(a);Vb(d?d.parentWindow||d.d") - .append("efaultView:window);try{var e=d.createNSResolver?d.createNSResolver(d.documentEleme") - .append("nt):S.ga;return d.evaluate(b,a,e,c,null)}catch(f){throw new w(32,\"Unable to locat") - .append("e an element with the xpath expression \"+b+\" because of the following error:\\n") - .append("\"+f);}};\nS.S=function(a,b){if(!a||1!=a.nodeType)throw new w(32,'The result of th") - .append("e xpath expression \"'+b+'\" is: '+a+\". It should be an element.\");};S.qa=functi") - .append("on(a,b){var c=function(){var c=S.m(b,a,9);return c?c.singleNodeValue||null:b.selec") - .append("tSingleNode?(c=y(b),c.setProperty&&c.setProperty(\"SelectionLanguage\",\"XPath\"),") - .append("b.selectSingleNode(a)):null}();null===c||S.S(c,a);return c};\nS.sa=function(a,b){v") - .append("ar c=function(){var c=S.m(b,a,7);if(c){for(var e=c.snapshotLength,f=[],h=0;h(0==\nm[1].length?0:parseInt(m[1],10))?1:0)||((0==v[2].length)<(0") - .append("==m[2].length)?-1:(0==v[2].length)>(0==m[2].length)?1:0)||(v[2]m[2]?") - .append("1:0)}while(0==b)}}var Zb=/Android\\s+([0-9\\.]+)/.exec(Ca()),Yb=Zb?Zb[1]:\"0\";Xb(") - .append("2.3);Xb(4);function T(a,b,c,d){this.top=a;this.right=b;this.bottom=c;this.left=d}T") - .append(".prototype.toString=function(){return\"(\"+this.top+\"t, \"+this.right+\"r, \"+thi") - .append("s.bottom+\"b, \"+this.left+\"l)\"};T.prototype.contains=function(a){return this&&a") - .append("?a instanceof T?a.left>=this.left&&a.right<=this.right&&a.top>=this.top&&a.bottom<") - .append("=this.bottom:a.x>=this.left&&a.x<=this.right&&a.y>=this.top&&a.y<=this.bottom:!1};") - .append("\nT.prototype.ceil=function(){this.top=Math.ceil(this.top);this.right=Math.ceil(th") - .append("is.right);this.bottom=Math.ceil(this.bottom);this.left=Math.ceil(this.left);return") - .append(" this};T.prototype.floor=function(){this.top=Math.floor(this.top);this.right=Math.") - .append("floor(this.right);this.bottom=Math.floor(this.bottom);this.left=Math.floor(this.le") - .append("ft);return this};\nT.prototype.round=function(){this.top=Math.round(this.top);this") - .append(".right=Math.round(this.right);this.bottom=Math.round(this.bottom);this.left=Math.r") - .append("ound(this.left);return this};function U(a,b,c,d){this.left=a;this.top=b;this.width") - .append("=c;this.height=d}U.prototype.toString=function(){return\"(\"+this.left+\", \"+this") - .append(".top+\" - \"+this.width+\"w x \"+this.height+\"h)\"};U.prototype.contains=function") - .append("(a){return a instanceof U?this.left<=a.left&&this.left+this.width>=a.left+a.width&") - .append("&this.top<=a.top&&this.top+this.height>=a.top+a.height:a.x>=this.left&&a.x<=this.l") - .append("eft+this.width&&a.y>=this.top&&a.y<=this.top+this.height};\nU.prototype.ceil=funct") - .append("ion(){this.left=Math.ceil(this.left);this.top=Math.ceil(this.top);this.width=Math.") - .append("ceil(this.width);this.height=Math.ceil(this.height);return this};U.prototype.floor") - .append("=function(){this.left=Math.floor(this.left);this.top=Math.floor(this.top);this.wid") - .append("th=Math.floor(this.width);this.height=Math.floor(this.height);return this};\nU.pro") - .append("totype.round=function(){this.left=Math.round(this.left);this.top=Math.round(this.t") - .append("op);this.width=Math.round(this.width);this.height=Math.round(this.height);return t") - .append("his};function V(a,b){return!!a&&1==a.nodeType&&(!b||a.tagName.toUpperCase()==b)}fu") - .append("nction $b(a){for(a=a.parentNode;a&&1!=a.nodeType&&9!=a.nodeType&&11!=a.nodeType;)a") - .append("=a.parentNode;return V(a)?a:null}\nfunction W(a,b){var c=ha(b);if(\"float\"==c||\"") - .append("cssFloat\"==c||\"styleFloat\"==c)c=\"cssFloat\";var d;a:{d=c;var e=y(a);if(e.defau") - .append("ltView&&e.defaultView.getComputedStyle&&(e=e.defaultView.getComputedStyle(a,null))") - .append("){d=e[d]||e.getPropertyValue(d)||\"\";break a}d=\"\"}c=d||ac(a,c);if(null===c)c=nu") - .append("ll;else if(ma(qa,b)&&(ta.test(\"#\"==c.charAt(0)?c:\"#\"+c)||xa(c).length||pa&&pa[") - .append("c.toLowerCase()]||va(c).length)){d=va(c);if(!d.length){a:if(d=xa(c),!d.length){d=(") - .append("d=pa[c.toLowerCase()])?d:\"#\"==c.charAt(0)?c:\"#\"+c;if(ta.test(d)&&\n(d=sa(d),d=") - .append("sa(d),d=[parseInt(d.substr(1,2),16),parseInt(d.substr(3,2),16),parseInt(d.substr(5") - .append(",2),16)],d.length))break a;d=[]}3==d.length&&d.push(1)}c=4!=d.length?c:\"rgba(\"+d") - .append(".join(\", \")+\")\"}return c}function ac(a,b){var c=a.currentStyle||a.style,d=c[b]") - .append(";void 0===d&&\"function\"==n(c.getPropertyValue)&&(d=c.getPropertyValue(b));return") - .append("\"inherit\"!=d?void 0!==d?d:null:(c=$b(a))?ac(c,b):null}\nfunction bc(a,b){functio") - .append("n c(a){if(\"none\"==W(a,\"display\"))return!1;a=$b(a);return!a||c(a)}function d(a)") - .append("{var b=cc(a);return 0=B.left+B.width;B=e.top>=B.top+B.") - .append("height;if(P&&\"hidden\"==m.x||B&&\"hidden\"==m.y)return X;if(P&&\"visible\"!=m.x||") - .append("B&&\"visible\"!=m.y){if(v&&(m=d(a),e.left>=h.scrollWidth-m.x||e.right>=h.scrollHei") - .append("ght-m.y))return X;e=dc(a);return e==X?X:\"scroll\"}}}return\"none\"}\nfunction cc(") - .append("a){var b=ec(a);if(b)return b.rect;if(V(a,\"HTML\"))return a=((y(a)?y(a).parentWind") - .append("ow||y(a).defaultView:window)||window).document,a=\"CSS1Compat\"==a.compatMode?a.do") - .append("cumentElement:a.body,a=new Ha(a.clientWidth,a.clientHeight),new U(0,0,a.width,a.he") - .append("ight);var c;try{c=a.getBoundingClientRect()}catch(d){return new U(0,0,0,0)}return ") - .append("new U(c.left,c.top,c.right-c.left,c.bottom-c.top)}\nfunction ec(a){var b=V(a,\"MAP") - .append("\");if(!b&&!V(a,\"AREA\"))return null;var c=b?a:V(a.parentNode,\"MAP\")?a.parentNo") - .append("de:null,d=null,e=null;if(c&&c.name&&(d=S.qa('/descendant::*[@usemap = \"#'+c.name+") - .append("'\"]',y(c)))&&(e=cc(d),!b&&\"default\"!=a.shape.toLowerCase())){var f=hc(a);a=Math") - .append(".min(Math.max(f.left,0),e.width);b=Math.min(Math.max(f.top,0),e.height);c=Math.min") - .append("(f.width,e.width-a);f=Math.min(f.height,e.height-b);e=new U(a+e.left,b+e.top,c,f)}") - .append("return{W:d,rect:e||new U(0,0,0,0)}}\nfunction hc(a){var b=a.shape.toLowerCase();a=") - .append("a.coords.split(\",\");if(\"rect\"==b&&4==a.length){var b=a[0],c=a[1];return new U(") - .append("b,c,a[2]-b,a[3]-c)}if(\"circle\"==b&&3==a.length)return b=a[2],new U(a[0]-b,a[1]-b") - .append(",2*b,2*b);if(\"poly\"==b&&22*this.A&&jc(this),!0):!1};function jc(a){if(a.A!=a.f.lengt") - .append("h){for(var b=0,c=0;b\");Z(191,\"/\",\"?") - .append("\");Z(192,\"`\",\"~\");Z(219,\"[\",\"{\");Z(220,\"\\\\\",\"|\");Z(221,\"]\",\"}\")") - .append(";Z({c:59,b:186,opera:59},\";\",\":\");Z(222,\"'\",'\"');var qc=new Y;qc.set(1,mc);") - .append("qc.set(2,nc);qc.set(4,oc);qc.set(8,pc);\n(function(a){var b=new Y;r(ic(a),function") - .append("(c){b.set(a.get(c).code,c)});return b})(qc);function rc(){this.I=void 0}\nfunction") - .append(" sc(a,b,c){switch(typeof b){case \"string\":tc(b,c);break;case \"number\":c.push(i") - .append("sFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);break;case \"un") - .append("defined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(\"null\");brea") - .append("k}if(\"array\"==n(b)){var d=b.length;c.push(\"[\");for(var e=\"\",f=0;fb?e+=\"000\":256>b?e+=\"00\":4096>b&&(e+=\"0\");return uc[a]=e+b.") - .append("toString(16)}),'\"')};function wc(a){switch(n(a)){case \"string\":case \"number\":") - .append("case \"boolean\":return a;case \"function\":return a.toString();case \"array\":ret") - .append("urn ja(a,wc);case \"object\":if(\"nodeType\"in a&&(1==a.nodeType||9==a.nodeType)){") - .append("var b={};b.ELEMENT=xc(a);return b}if(\"document\"in a)return b={},b.WINDOW=xc(a),b") - .append(";if(aa(a))return ja(a,wc);a=Ia(a,function(a,b){return\"number\"==typeof b||p(b)});") - .append("return Ja(a,wc);default:return null}}\nfunction yc(a,b){return\"array\"==n(a)?ja(a") - .append(",function(a){return yc(a,b)}):ba(a)?\"function\"==typeof a?a:\"ELEMENT\"in a?zc(a.") - .append("ELEMENT,b):\"WINDOW\"in a?zc(a.WINDOW,b):Ja(a,function(a){return yc(a,b)}):a}funct") - .append("ion Ac(a){a=a||document;var b=a.$wdc_;b||(b=a.$wdc_={},b.P=fa());b.P||(b.P=fa());r") - .append("eturn b}function xc(a){var b=Ac(a.ownerDocument),c=Ka(b,function(b){return b==a});") - .append("c||(c=\":wdc:\"+b.P++,b[c]=a);return c}\nfunction zc(a,b){a=decodeURIComponent(a);") - .append("var c=b||document,d=Ac(c);if(!(a in d))throw new w(10,\"Element does not exist in ") - .append("cache\");var e=d[a];if(\"setInterval\"in e){if(e.closed)throw delete d[a],new w(23") - .append(",\"Window has been closed.\");return e}for(var f=e;f;){if(f==c.documentElement)ret") - .append("urn e;f=f.parentNode}delete d[a];throw new w(10,\"Element is no longer attached to") - .append(" the DOM\");};function Bc(a){var b=bc;a=[a,!0];var c=window||ga,d;try{var b=p(b)?n") - .append("ew c.Function(b):c==window?b:new c.Function(\"return (\"+b+\").apply(null,argument") - .append("s);\"),e=yc(a,c.document),f=b.apply(null,e);d={status:0,value:wc(f)}}catch(h){d={s") - .append("tatus:\"code\"in h?h.code:13,value:{message:h.message}}}b=[];sc(new rc,d,b);return") - .append(" b.join(\"\")}var Cc=[\"_\"],$=l;Cc[0]in $||!$.execScript||$.execScript(\"var \"+C") - .append("c[0]);for(var Dc;Cc.length&&(Dc=Cc.shift());)Cc.length||void 0===Bc?$=$[Dc]?$[Dc]:") - .append("$[Dc]={}:$[Dc]=Bc;; return this._.apply(null,arguments);}.apply({navigator:typeof ") - .append("window!=undefined?window.navigator:null,document:typeof window!=undefined?window.d") - .append("ocument:null}, arguments);}") - .toString()), - - IS_ENABLED(new StringBuilder() - .append("function(){return function(){function f(a){return function(){return a}}var h=this;") - .append("\nfunction k(a){var b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return") - .append("\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);") - .append("if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==t") - .append("ypeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIs") - .append("Enumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Funct") - .append("ion]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumera") - .append("ble&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\nel") - .append("se if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b}func") - .append("tion aa(a){var b=k(a);return\"array\"==b||\"object\"==b&&\"number\"==typeof a.leng") - .append("th}function l(a){return\"string\"==typeof a}function m(a){var b=typeof a;return\"o") - .append("bject\"==b&&null!=a||\"function\"==b}var ba=Date.now||function(){return+new Date};") - .append("var ca=window;var da=Array.prototype;function ea(a,b){if(l(a))return l(b)&&1==b.le") - .append("ngth?a.indexOf(b,0):-1;for(var c=0;c=arguments.length?da.slic") - .append("e.call(a,b):da.slice.call(a,b,c)};function s(a,b){this.code=a;this.state=u[a]||ha;") - .append("this.message=b||\"\";var c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){ret") - .append("urn a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")}),d=c.length-5;if(0>d||c.indexOf") - .append("(\"Error\",d)!=d)c+=\"Error\";this.name=c;c=Error(this.message);c.name=this.name;t") - .append("his.stack=c.stack||\"\"}(function(){var a=Error;function b(){}b.prototype=a.protot") - .append("ype;s.L=a.prototype;s.prototype=new b})();\nvar ha=\"unknown error\",u={15:\"eleme") - .append("nt not selectable\",11:\"element not visible\",31:\"ime engine activation failed\"") - .append(",30:\"ime not available\",24:\"invalid cookie domain\",29:\"invalid element coordi") - .append("nates\",12:\"invalid element state\",32:\"invalid selector\",51:\"invalid selector") - .append("\",52:\"invalid selector\",17:\"javascript error\",405:\"unsupported operation\",3") - .append("4:\"move target out of bounds\",27:\"no such alert\",7:\"no such element\",8:\"no ") - .append("such frame\",23:\"no such window\",28:\"script timeout\",33:\"session not created") - .append("\",10:\"stale element reference\",\n0:\"success\",21:\"timeout\",25:\"unable to se") - .append("t cookie\",26:\"unexpected alert open\"};u[13]=ha;u[9]=\"unknown command\";s.proto") - .append("type.toString=function(){return this.name+\": \"+this.message};var w,x;function ia") - .append("(){return h.navigator?h.navigator.userAgent:null}var z,ja=h.navigator;z=ja&&ja.pla") - .append("tform||\"\";w=-1!=z.indexOf(\"Mac\");x=-1!=z.indexOf(\"Win\");var A=-1!=z.indexOf(") - .append("\"Linux\");function ka(a,b){var c={},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[d]=a") - .append("[d]);return c}function la(a,b){var c={},d;for(d in a)c[d]=b.call(void 0,a[d],d,a);") - .append("return c}function ma(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return c};func") - .append("tion na(a){for(;a&&1!=a.nodeType;)a=a.previousSibling;return a}function oa(a,b){if") - .append("(a.contains&&1==b.nodeType)return a==b||a.contains(b);if(\"undefined\"!=typeof a.c") - .append("ompareDocumentPosition)return a==b||Boolean(a.compareDocumentPosition(b)&16);for(;") - .append("b&&a!=b;)b=b.parentNode;return b==a}\nfunction pa(a,b){if(a==b)return 0;if(a.compa") - .append("reDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(\"sourceIndex\"in") - .append(" a||a.parentNode&&\"sourceIndex\"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeT") - .append("ype;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,g=b.parentNode;r") - .append("eturn e==g?qa(a,b):!c&&oa(e,b)?-1*ra(a,b):!d&&oa(g,a)?ra(b,a):(c?a.sourceIndex:e.s") - .append("ourceIndex)-(d?b.sourceIndex:g.sourceIndex)}d=9==a.nodeType?a:a.ownerDocument||a.d") - .append("ocument;c=d.createRange();c.selectNode(a);c.collapse(!0);\nd=d.createRange();d.sel") - .append("ectNode(b);d.collapse(!0);return c.compareBoundaryPoints(h.Range.START_TO_END,d)}f") - .append("unction ra(a,b){var c=a.parentNode;if(c==b)return-1;for(var d=b;d.parentNode!=c;)d") - .append("=d.parentNode;return qa(d,a)}function qa(a,b){for(var c=b;c=c.previousSibling;)if(") - .append("c==a)return-1;return 1}function sa(a,b){for(var c=0;a;){if(b(a))return a;a=a.paren") - .append("tNode;c++}return null};function B(a){var b=null,c=a.nodeType;1==c&&(b=a.textConten") - .append("t,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?\"\":b);if(\"string\"!=t") - .append("ypeof b)if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;for(var c=0,d=[],b=\"") - .append("\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c++]=a;while(a=a.firstChild);for(;c&&!") - .append("(a=d[--c].nextSibling););}}else b=a.nodeValue;return\"\"+b}\nfunction C(a,b,c){if(") - .append("null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!1}return null==c") - .append("?!!a.getAttribute(b):a.getAttribute(b,2)==c}function D(a,b,c,d,e){return ta.call(n") - .append("ull,a,b,l(c)?c:null,l(d)?d:null,e||new E)}\nfunction ta(a,b,c,d,e){b.getElementsBy") - .append("Name&&d&&\"name\"==c?(b=b.getElementsByName(d),p(b,function(b){a.matches(b)&&e.add") - .append("(b)})):b.getElementsByClassName&&d&&\"class\"==c?(b=b.getElementsByClassName(d),p(") - .append("b,function(b){b.className==d&&a.matches(b)&&e.add(b)})):b.getElementsByTagName&&(b") - .append("=b.getElementsByTagName(a.getName()),p(b,function(a){C(a,c,d)&&e.add(a)}));return ") - .append("e}function ua(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)C(b,c,d)&&a.matches(") - .append("b)&&e.add(b);return e}\nfunction va(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSiblin") - .append("g)C(b,c,d)&&a.matches(b)&&e.add(b),va(a,b,c,d,e)};function E(){this.e=this.d=null;") - .append("this.h=0}function wa(a){this.o=a;this.next=this.m=null}E.prototype.unshift=functio") - .append("n(a){a=new wa(a);a.next=this.d;this.e?this.d.m=a:this.d=this.e=a;this.d=a;this.h++") - .append("};E.prototype.add=function(a){a=new wa(a);a.m=this.e;this.d?this.e.next=a:this.d=t") - .append("his.e=a;this.e=a;this.h++};function F(a){return(a=a.d)?a.o:null}function xa(a){ret") - .append("urn(a=F(a))?B(a):\"\"}function G(a,b){this.G=a;this.n=(this.p=b)?a.e:a.d;this.t=nu") - .append("ll}\nG.prototype.next=function(){var a=this.n;if(null==a)return null;var b=this.t=") - .append("a;this.n=this.p?a.m:a.next;return b.o};function H(a,b){var c=a.evaluate(b);return ") - .append("c instanceof E?+xa(c):+c}function I(a,b){var c=a.evaluate(b);return c instanceof E") - .append("?xa(c):\"\"+c}function J(a,b){var c=a.evaluate(b);return c instanceof E?!!c.h:!!c}") - .append(";function K(a,b,c,d,e){b=b.evaluate(d);c=c.evaluate(d);var g;if(b instanceof E&&c ") - .append("instanceof E){e=new G(b,!1);for(d=e.next();d;d=e.next())for(b=new G(c,!1),g=b.next") - .append("();g;g=b.next())if(a(B(d),B(g)))return!0;return!1}if(b instanceof E||c instanceof ") - .append("E){b instanceof E?e=b:(e=c,c=b);e=new G(e,!1);b=typeof c;for(d=e.next();d;d=e.next") - .append("()){switch(b){case \"number\":d=+B(d);break;case \"boolean\":d=!!B(d);break;case ") - .append("\"string\":d=B(d);break;default:throw Error(\"Illegal primitive type for compariso") - .append("n.\");}if(a(d,c))return!0}return!1}return e?\n\"boolean\"==typeof b||\"boolean\"==") - .append("typeof c?a(!!b,!!c):\"number\"==typeof b||\"number\"==typeof c?a(+b,+c):a(b,c):a(+") - .append("b,+c)}function ya(a,b,c,d){this.u=a;this.J=b;this.r=c;this.s=d}ya.prototype.toStri") - .append("ng=function(){return this.u};var za={};function L(a,b,c,d){if(a in za)throw Error(") - .append("\"Binary operator already created: \"+a);a=new ya(a,b,c,d);za[a.toString()]=a}L(\"") - .append("div\",6,1,function(a,b,c){return H(a,c)/H(b,c)});L(\"mod\",6,1,function(a,b,c){ret") - .append("urn H(a,c)%H(b,c)});L(\"*\",6,1,function(a,b,c){return H(a,c)*H(b,c)});\nL(\"+\",5") - .append(",1,function(a,b,c){return H(a,c)+H(b,c)});L(\"-\",5,1,function(a,b,c){return H(a,c") - .append(")-H(b,c)});L(\"<\",4,2,function(a,b,c){return K(function(a,b){return a\",4,2,function(a,b,c){return K(function(a,b){return a>b},a,b,c)});L(\"<=\",") - .append("4,2,function(a,b,c){return K(function(a,b){return a<=b},a,b,c)});L(\">=\",4,2,func") - .append("tion(a,b,c){return K(function(a,b){return a>=b},a,b,c)});L(\"=\",3,2,function(a,b,") - .append("c){return K(function(a,b){return a==b},a,b,c,!0)});\nL(\"!=\",3,2,function(a,b,c){") - .append("return K(function(a,b){return a!=b},a,b,c,!0)});L(\"and\",2,2,function(a,b,c){retu") - .append("rn J(a,c)&&J(b,c)});L(\"or\",1,2,function(a,b,c){return J(a,c)||J(b,c)});function ") - .append("Aa(a,b,c,d,e,g,n,v,y){this.k=a;this.r=b;this.F=c;this.D=d;this.C=e;this.s=g;this.B") - .append("=n;this.A=void 0!==v?v:n;this.H=!!y}Aa.prototype.toString=function(){return this.k") - .append("};var Ba={};function M(a,b,c,d,e,g,n,v){if(a in Ba)throw Error(\"Function already ") - .append("created: \"+a+\".\");Ba[a]=new Aa(a,b,c,d,!1,e,g,n,v)}M(\"boolean\",2,!1,!1,functi") - .append("on(a,b){return J(b,a)},1);M(\"ceiling\",1,!1,!1,function(a,b){return Math.ceil(H(b") - .append(",a))},1);\nM(\"concat\",3,!1,!1,function(a,b){var c=ga(arguments,1);return fa(c,fu") - .append("nction(b,c){return b+I(c,a)})},2,null);M(\"contains\",2,!1,!1,function(a,b,c){b=I(") - .append("b,a);a=I(c,a);return-1!=b.indexOf(a)},2);M(\"count\",1,!1,!1,function(a,b){return ") - .append("b.evaluate(a).h},1,1,!0);M(\"false\",2,!1,!1,f(!1),0);M(\"floor\",1,!1,!1,function") - .append("(a,b){return Math.floor(H(b,a))},1);\nM(\"id\",4,!1,!1,function(a,b){var c=a.g,d=9") - .append("==c.nodeType?c:c.ownerDocument,c=I(b,a).split(/\\s+/),e=[];p(c,function(a){a=d.get") - .append("ElementById(a);!a||0<=ea(e,a)||e.push(a)});e.sort(pa);var g=new E;p(e,function(a){") - .append("g.add(a)});return g},1);M(\"lang\",2,!1,!1,f(!1),1);M(\"last\",1,!0,!1,function(a)") - .append("{if(1!=arguments.length)throw Error(\"Function last expects ()\");return a.e},0);M") - .append("(\"local-name\",3,!1,!0,function(a,b){var c=b?F(b.evaluate(a)):a.g;return c?c.node") - .append("Name.toLowerCase():\"\"},0,1,!0);\nM(\"name\",3,!1,!0,function(a,b){var c=b?F(b.ev") - .append("aluate(a)):a.g;return c?c.nodeName.toLowerCase():\"\"},0,1,!0);M(\"namespace-uri\"") - .append(",3,!0,!1,f(\"\"),0,1,!0);M(\"normalize-space\",3,!1,!0,function(a,b){return(b?I(b,") - .append("a):B(a.g)).replace(/[\\s\\xa0]+/g,\" \").replace(/^\\s+|\\s+$/g,\"\")},0,1);M(\"no") - .append("t\",2,!1,!1,function(a,b){return!J(b,a)},1);M(\"number\",1,!1,!0,function(a,b){ret") - .append("urn b?H(b,a):+B(a.g)},0,1);M(\"position\",1,!0,!1,function(a){return a.I},0);M(\"r") - .append("ound\",1,!1,!1,function(a,b){return Math.round(H(b,a))},1);\nM(\"starts-with\",2,!") - .append("1,!1,function(a,b,c){b=I(b,a);a=I(c,a);return 0==b.lastIndexOf(a,0)},2);M(\"string") - .append("\",3,!1,!0,function(a,b){return b?I(b,a):B(a.g)},0,1);M(\"string-length\",1,!1,!0,") - .append("function(a,b){return(b?I(b,a):B(a.g)).length},0,1);\nM(\"substring\",3,!1,!1,funct") - .append("ion(a,b,c,d){c=H(c,a);if(isNaN(c)||Infinity==c||-Infinity==c)return\"\";d=d?H(d,a)") - .append(":Infinity;if(isNaN(d)||-Infinity===d)return\"\";c=Math.round(c)-1;var e=Math.max(c") - .append(",0);a=I(b,a);if(Infinity==d)return a.substring(e);b=Math.round(d);return a.substri") - .append("ng(e,c+b)},2,3);M(\"substring-after\",3,!1,!1,function(a,b,c){b=I(b,a);a=I(c,a);c=") - .append("b.indexOf(a);return-1==c?\"\":b.substring(c+a.length)},2);\nM(\"substring-before\"") - .append(",3,!1,!1,function(a,b,c){b=I(b,a);a=I(c,a);a=b.indexOf(a);return-1==a?\"\":b.subst") - .append("ring(0,a)},2);M(\"sum\",1,!1,!1,function(a,b){var c;c=b.evaluate(a);c=new G(c,!1);") - .append("for(var d=0,e=c.next();e;e=c.next())d+=+B(e);return d},1,1,!0);M(\"translate\",3,!") - .append("1,!1,function(a,b,c,d){b=I(b,a);c=I(c,a);var e=I(d,a);a=[];for(d=0;d(0==t[1].len") - .append("gth?\n0:parseInt(t[1],10))?1:0)||((0==r[2].length)<(0==t[2].length)?-1:(0==r[2].le") - .append("ngth)>(0==t[2].length)?1:0)||(r[2]t[2]?1:0)}while(0==b)}}var Ga=/And") - .append("roid\\s+([0-9\\.]+)/.exec(ia()),Fa=Ga?Ga[1]:\"0\";O(2.3);O(4);function P(a,b){retu") - .append("rn!!a&&1==a.nodeType&&(!b||a.tagName.toUpperCase()==b)}var Ha=\"BUTTON INPUT OPTGR") - .append("OUP OPTION SELECT TEXTAREA\".split(\" \");\nfunction Ia(a){var b=a.tagName.toUpper") - .append("Case();return 0<=ea(Ha,b)?a.disabled?!1:a.parentNode&&1==a.parentNode.nodeType&&\"") - .append("OPTGROUP\"==b||\"OPTION\"==b?Ia(a.parentNode):!sa(a,function(a){var b=a.parentNode") - .append(";if(b&&P(b,\"FIELDSET\")&&b.disabled){if(!P(a,\"LEGEND\"))return!0;for(;a=void 0!=") - .append("a.previousElementSibling?a.previousElementSibling:na(a.previousSibling);)if(P(a,\"") - .append("LEGEND\"))return!0}return!1}):!0};O(4);function Q(a,b){this.f={};this.c=[];var c=a") - .append("rguments.length;if(1\");S(191,\"/\",\"?\");S(192,\"`\",\"~\");S(219,\"[\",\"{\");S(220,") - .append("\"\\\\\",\"|\");S(221,\"]\",\"}\");S({b:59,a:186,opera:59},\";\",\":\");S(222,\"'") - .append("\",'\"');var T=new Q;T.set(1,Ma);T.set(2,Na);T.set(4,Oa);T.set(8,Pa);(function(a){") - .append("var b=new Q;p(Ja(a),function(c){b.set(a.get(c).code,c)});return b})(T);function Qa") - .append("(){this.i=void 0}\nfunction U(a,b,c){switch(typeof b){case \"string\":Ra(b,c);brea") - .append("k;case \"number\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\"") - .append(":c.push(b);break;case \"undefined\":c.push(\"null\");break;case \"object\":if(null") - .append("==b){c.push(\"null\");break}if(\"array\"==k(b)){var d=b.length;c.push(\"[\");for(v") - .append("ar e=\"\",g=0;gb?e+=\"000\":256>b?e+=\"00\":4096>b&&(e+=\"0") - .append("\");return V[a]=e+b.toString(16)}),'\"')};function W(a){switch(k(a)){case \"string") - .append("\":case \"number\":case \"boolean\":return a;case \"function\":return a.toString()") - .append(";case \"array\":return q(a,W);case \"object\":if(\"nodeType\"in a&&(1==a.nodeType|") - .append("|9==a.nodeType)){var b={};b.ELEMENT=Ta(a);return b}if(\"document\"in a)return b={}") - .append(",b.WINDOW=Ta(a),b;if(aa(a))return q(a,W);a=ka(a,function(a,b){return\"number\"==ty") - .append("peof b||l(b)});return la(a,W);default:return null}}\nfunction X(a,b){return\"array") - .append("\"==k(a)?q(a,function(a){return X(a,b)}):m(a)?\"function\"==typeof a?a:\"ELEMENT\"") - .append("in a?Ua(a.ELEMENT,b):\"WINDOW\"in a?Ua(a.WINDOW,b):la(a,function(a){return X(a,b)}") - .append("):a}function Va(a){a=a||document;var b=a.$wdc_;b||(b=a.$wdc_={},b.l=ba());b.l||(b.") - .append("l=ba());return b}function Ta(a){var b=Va(a.ownerDocument),c=ma(b,function(b){retur") - .append("n b==a});c||(c=\":wdc:\"+b.l++,b[c]=a);return c}\nfunction Ua(a,b){a=decodeURIComp") - .append("onent(a);var c=b||document,d=Va(c);if(!(a in d))throw new s(10,\"Element does not ") - .append("exist in cache\");var e=d[a];if(\"setInterval\"in e){if(e.closed)throw delete d[a]") - .append(",new s(23,\"Window has been closed.\");return e}for(var g=e;g;){if(g==c.documentEl") - .append("ement)return e;g=g.parentNode}delete d[a];throw new s(10,\"Element is no longer at") - .append("tached to the DOM\");};function Wa(a){var b=Ia;a=[a];var c=window||ca,d;try{var b=") - .append("l(b)?new c.Function(b):c==window?b:new c.Function(\"return (\"+b+\").apply(null,ar") - .append("guments);\"),e=X(a,c.document),g=b.apply(null,e);d={status:0,value:W(g)}}catch(n){") - .append("d={status:\"code\"in n?n.code:13,value:{message:n.message}}}b=[];U(new Qa,d,b);ret") - .append("urn b.join(\"\")}var Y=[\"_\"],Z=h;Y[0]in Z||!Z.execScript||Z.execScript(\"var \"+") - .append("Y[0]);for(var $;Y.length&&($=Y.shift());)Y.length||void 0===Wa?Z=Z[$]?Z[$]:Z[$]={}") - .append(":Z[$]=Wa;; return this._.apply(null,arguments);}.apply({navigator:typeof window!=u") - .append("ndefined?window.navigator:null,document:typeof window!=undefined?window.document:n") - .append("ull}, arguments);}") - .toString()), - - IS_SELECTED(new StringBuilder() - .append("function(){return function(){function f(a){return function(){return a}}var h=this;") - .append("\nfunction k(a){var b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return") - .append("\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);") - .append("if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==t") - .append("ypeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIs") - .append("Enumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Funct") - .append("ion]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumera") - .append("ble&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\nel") - .append("se if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b}func") - .append("tion aa(a){var b=k(a);return\"array\"==b||\"object\"==b&&\"number\"==typeof a.leng") - .append("th}function l(a){return\"string\"==typeof a}function m(a){var b=typeof a;return\"o") - .append("bject\"==b&&null!=a||\"function\"==b}var p=Date.now||function(){return+new Date};v") - .append("ar ba=window;var ca=Array.prototype;function q(a,b){for(var c=a.length,d=l(a)?a.sp") - .append("lit(\"\"):a,e=0;e=arguments.length?ca.slice.call(a,b):ca.slice.call(a,b,c)};function u(a,b){this") - .append(".code=a;this.state=w[a]||fa;this.message=b||\"\";var c=this.state.replace(/((?:^|") - .append("\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")}),d") - .append("=c.length-5;if(0>d||c.indexOf(\"Error\",d)!=d)c+=\"Error\";this.name=c;c=Error(thi") - .append("s.message);c.name=this.name;this.stack=c.stack||\"\"}(function(){var a=Error;funct") - .append("ion b(){}b.prototype=a.prototype;u.L=a.prototype;u.prototype=new b})();\nvar fa=\"") - .append("unknown error\",w={15:\"element not selectable\",11:\"element not visible\",31:\"i") - .append("me engine activation failed\",30:\"ime not available\",24:\"invalid cookie domain") - .append("\",29:\"invalid element coordinates\",12:\"invalid element state\",32:\"invalid se") - .append("lector\",51:\"invalid selector\",52:\"invalid selector\",17:\"javascript error\",4") - .append("05:\"unsupported operation\",34:\"move target out of bounds\",27:\"no such alert\"") - .append(",7:\"no such element\",8:\"no such frame\",23:\"no such window\",28:\"script timeo") - .append("ut\",33:\"session not created\",10:\"stale element reference\",\n0:\"success\",21:") - .append("\"timeout\",25:\"unable to set cookie\",26:\"unexpected alert open\"};w[13]=fa;w[9") - .append("]=\"unknown command\";u.prototype.toString=function(){return this.name+\": \"+this") - .append(".message};var x,y;function ga(){return h.navigator?h.navigator.userAgent:null}var ") - .append("A,ha=h.navigator;A=ha&&ha.platform||\"\";x=-1!=A.indexOf(\"Mac\");y=-1!=A.indexOf(") - .append("\"Win\");var B=-1!=A.indexOf(\"Linux\");function ia(a,b){var c={},d;for(d in a)b.c") - .append("all(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function ja(a,b){var c={},d;for(d in a)") - .append("c[d]=b.call(void 0,a[d],d,a);return c}function ka(a,b){for(var c in a)if(b.call(vo") - .append("id 0,a[c],c,a))return c};function la(a,b){if(a.contains&&1==b.nodeType)return a==b") - .append("||a.contains(b);if(\"undefined\"!=typeof a.compareDocumentPosition)return a==b||Bo") - .append("olean(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}\n") - .append("function ma(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDoc") - .append("umentPosition(b)&2?1:-1;if(\"sourceIndex\"in a||a.parentNode&&\"sourceIndex\"in a.") - .append("parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sou") - .append("rceIndex;var e=a.parentNode,g=b.parentNode;return e==g?na(a,b):!c&&la(e,b)?-1*oa(a") - .append(",b):!d&&la(g,a)?oa(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:g.sourceI") - .append("ndex)}d=9==a.nodeType?a:a.ownerDocument||a.document;c=d.createRange();c.selectNode") - .append("(a);c.collapse(!0);\nd=d.createRange();d.selectNode(b);d.collapse(!0);return c.com") - .append("pareBoundaryPoints(h.Range.START_TO_END,d)}function oa(a,b){var c=a.parentNode;if(") - .append("c==b)return-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return na(d,a)}function ") - .append("na(a,b){for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1};function C(a){") - .append("var b=null,c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,") - .append("b=void 0==b||null==b?\"\":b);if(\"string\"!=typeof b)if(9==c||1==c){a=9==c?a.docum") - .append("entElement:a.firstChild;for(var c=0,d=[],b=\"\";a;){do 1!=a.nodeType&&(b+=a.nodeVa") - .append("lue),d[c++]=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.n") - .append("odeValue;return\"\"+b}\nfunction D(a,b,c){if(null===b)return!0;try{if(!a.getAttrib") - .append("ute)return!1}catch(d){return!1}return null==c?!!a.getAttribute(b):a.getAttribute(b") - .append(",2)==c}function E(a,b,c,d,e){return pa.call(null,a,b,l(c)?c:null,l(d)?d:null,e||ne") - .append("w F)}\nfunction pa(a,b,c,d,e){b.getElementsByName&&d&&\"name\"==c?(b=b.getElements") - .append("ByName(d),q(b,function(b){a.matches(b)&&e.add(b)})):b.getElementsByClassName&&d&&") - .append("\"class\"==c?(b=b.getElementsByClassName(d),q(b,function(b){b.className==d&&a.matc") - .append("hes(b)&&e.add(b)})):b.getElementsByTagName&&(b=b.getElementsByTagName(a.getName())") - .append(",q(b,function(a){D(a,c,d)&&e.add(a)}));return e}function qa(a,b,c,d,e){for(b=b.fir") - .append("stChild;b;b=b.nextSibling)D(b,c,d)&&a.matches(b)&&e.add(b);return e}\nfunction ra(") - .append("a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)D(b,c,d)&&a.matches(b)&&e.add(b),r") - .append("a(a,b,c,d,e)};function F(){this.e=this.d=null;this.h=0}function sa(a){this.o=a;thi") - .append("s.next=this.m=null}F.prototype.unshift=function(a){a=new sa(a);a.next=this.d;this.") - .append("e?this.d.m=a:this.d=this.e=a;this.d=a;this.h++};F.prototype.add=function(a){a=new ") - .append("sa(a);a.m=this.e;this.d?this.e.next=a:this.d=this.e=a;this.e=a;this.h++};function ") - .append("G(a){return(a=a.d)?a.o:null}function ta(a){return(a=G(a))?C(a):\"\"}function H(a,b") - .append("){this.G=a;this.n=(this.p=b)?a.e:a.d;this.t=null}\nH.prototype.next=function(){var") - .append(" a=this.n;if(null==a)return null;var b=this.t=a;this.n=this.p?a.m:a.next;return b.") - .append("o};function I(a,b){var c=a.evaluate(b);return c instanceof F?+ta(c):+c}function J(") - .append("a,b){var c=a.evaluate(b);return c instanceof F?ta(c):\"\"+c}function K(a,b){var c=") - .append("a.evaluate(b);return c instanceof F?!!c.h:!!c};function L(a,b,c,d,e){b=b.evaluate(") - .append("d);c=c.evaluate(d);var g;if(b instanceof F&&c instanceof F){e=new H(b,!1);for(d=e.") - .append("next();d;d=e.next())for(b=new H(c,!1),g=b.next();g;g=b.next())if(a(C(d),C(g)))retu") - .append("rn!0;return!1}if(b instanceof F||c instanceof F){b instanceof F?e=b:(e=c,c=b);e=ne") - .append("w H(e,!1);b=typeof c;for(d=e.next();d;d=e.next()){switch(b){case \"number\":d=+C(d") - .append(");break;case \"boolean\":d=!!C(d);break;case \"string\":d=C(d);break;default:throw") - .append(" Error(\"Illegal primitive type for comparison.\");}if(a(d,c))return!0}return!1}re") - .append("turn e?\n\"boolean\"==typeof b||\"boolean\"==typeof c?a(!!b,!!c):\"number\"==typeo") - .append("f b||\"number\"==typeof c?a(+b,+c):a(b,c):a(+b,+c)}function ua(a,b,c,d){this.u=a;t") - .append("his.J=b;this.r=c;this.s=d}ua.prototype.toString=function(){return this.u};var va={") - .append("};function M(a,b,c,d){if(a in va)throw Error(\"Binary operator already created: \"") - .append("+a);a=new ua(a,b,c,d);va[a.toString()]=a}M(\"div\",6,1,function(a,b,c){return I(a,") - .append("c)/I(b,c)});M(\"mod\",6,1,function(a,b,c){return I(a,c)%I(b,c)});M(\"*\",6,1,funct") - .append("ion(a,b,c){return I(a,c)*I(b,c)});\nM(\"+\",5,1,function(a,b,c){return I(a,c)+I(b,") - .append("c)});M(\"-\",5,1,function(a,b,c){return I(a,c)-I(b,c)});M(\"<\",4,2,function(a,b,c") - .append("){return L(function(a,b){return a\",4,2,function(a,b,c){return L") - .append("(function(a,b){return a>b},a,b,c)});M(\"<=\",4,2,function(a,b,c){return L(function") - .append("(a,b){return a<=b},a,b,c)});M(\">=\",4,2,function(a,b,c){return L(function(a,b){re") - .append("turn a>=b},a,b,c)});M(\"=\",3,2,function(a,b,c){return L(function(a,b){return a==b") - .append("},a,b,c,!0)});\nM(\"!=\",3,2,function(a,b,c){return L(function(a,b){return a!=b},a") - .append(",b,c,!0)});M(\"and\",2,2,function(a,b,c){return K(a,c)&&K(b,c)});M(\"or\",1,2,func") - .append("tion(a,b,c){return K(a,c)||K(b,c)});function wa(a,b,c,d,e,g,n,v,z){this.k=a;this.r") - .append("=b;this.F=c;this.D=d;this.C=e;this.s=g;this.B=n;this.A=void 0!==v?v:n;this.H=!!z}w") - .append("a.prototype.toString=function(){return this.k};var xa={};function N(a,b,c,d,e,g,n,") - .append("v){if(a in xa)throw Error(\"Function already created: \"+a+\".\");xa[a]=new wa(a,b") - .append(",c,d,!1,e,g,n,v)}N(\"boolean\",2,!1,!1,function(a,b){return K(b,a)},1);N(\"ceiling") - .append("\",1,!1,!1,function(a,b){return Math.ceil(I(b,a))},1);\nN(\"concat\",3,!1,!1,funct") - .append("ion(a,b){var c=ea(arguments,1);return da(c,function(b,c){return b+J(c,a)})},2,null") - .append(");N(\"contains\",2,!1,!1,function(a,b,c){b=J(b,a);a=J(c,a);return-1!=b.indexOf(a)}") - .append(",2);N(\"count\",1,!1,!1,function(a,b){return b.evaluate(a).h},1,1,!0);N(\"false\",") - .append("2,!1,!1,f(!1),0);N(\"floor\",1,!1,!1,function(a,b){return Math.floor(I(b,a))},1);") - .append("\nN(\"id\",4,!1,!1,function(a,b){var c=a.g,d=9==c.nodeType?c:c.ownerDocument,c=J(b") - .append(",a).split(/\\s+/),e=[];q(c,function(a){a=d.getElementById(a);var b;if(!(b=!a)){a:i") - .append("f(l(e))b=l(a)&&1==a.length?e.indexOf(a,0):-1;else{for(b=0;b(0==t") - .append("[1].length?\n0:parseInt(t[1],10))?1:0)||((0==r[2].length)<(0==t[2].length)?-1:(0==") - .append("r[2].length)>(0==t[2].length)?1:0)||(r[2]t[2]?1:0)}while(0==b)}}var ") - .append("Ca=/Android\\s+([0-9\\.]+)/.exec(ga()),Ba=Ca?Ca[1]:\"0\";P(2.3);P(4);function Da(a") - .append("){var b;a&&1==a.nodeType&&\"OPTION\"==a.tagName.toUpperCase()?b=!0:a&&1==a.nodeTyp") - .append("e&&\"INPUT\"==a.tagName.toUpperCase()?(b=a.type.toLowerCase(),b=\"checkbox\"==b||") - .append("\"radio\"==b):b=!1;if(!b)throw new u(15,\"Element is not selectable\");b=\"selecte") - .append("d\";var c=a.type&&a.type.toLowerCase();if(\"checkbox\"==c||\"radio\"==c)b=\"checke") - .append("d\";return!!a[b]};P(4);function Q(a,b){this.f={};this.c=[];var c=arguments.length;") - .append("if(1\");") - .append("S(191,\"/\",\"?\");S(192,\"`\",\"~\");S(219,\"[\",\"{\");S(220,\"\\\\\",\"|\");S(2") - .append("21,\"]\",\"}\");S({b:59,a:186,opera:59},\";\",\":\");S(222,\"'\",'\"');var T=new Q") - .append(";T.set(1,Ha);T.set(2,Ia);T.set(4,Ja);T.set(8,Ka);(function(a){var b=new Q;q(Ea(a),") - .append("function(c){b.set(a.get(c).code,c)});return b})(T);function La(){this.i=void 0}\nf") - .append("unction U(a,b,c){switch(typeof b){case \"string\":Ma(b,c);break;case \"number\":c.") - .append("push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);break;cas") - .append("e \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(\"null\"") - .append(");break}if(\"array\"==k(b)){var d=b.length;c.push(\"[\");for(var e=\"\",g=0;gb?e+=\"000\":256>b?e+=\"00\":4096>b&&(e+=\"0\");return V[a]") - .append("=e+b.toString(16)}),'\"')};function W(a){switch(k(a)){case \"string\":case \"numbe") - .append("r\":case \"boolean\":return a;case \"function\":return a.toString();case \"array\"") - .append(":return s(a,W);case \"object\":if(\"nodeType\"in a&&(1==a.nodeType||9==a.nodeType)") - .append("){var b={};b.ELEMENT=Oa(a);return b}if(\"document\"in a)return b={},b.WINDOW=Oa(a)") - .append(",b;if(aa(a))return s(a,W);a=ia(a,function(a,b){return\"number\"==typeof b||l(b)});") - .append("return ja(a,W);default:return null}}\nfunction X(a,b){return\"array\"==k(a)?s(a,fu") - .append("nction(a){return X(a,b)}):m(a)?\"function\"==typeof a?a:\"ELEMENT\"in a?Pa(a.ELEME") - .append("NT,b):\"WINDOW\"in a?Pa(a.WINDOW,b):ja(a,function(a){return X(a,b)}):a}function Qa") - .append("(a){a=a||document;var b=a.$wdc_;b||(b=a.$wdc_={},b.l=p());b.l||(b.l=p());return b}") - .append("function Oa(a){var b=Qa(a.ownerDocument),c=ka(b,function(b){return b==a});c||(c=\"") - .append(":wdc:\"+b.l++,b[c]=a);return c}\nfunction Pa(a,b){a=decodeURIComponent(a);var c=b|") - .append("|document,d=Qa(c);if(!(a in d))throw new u(10,\"Element does not exist in cache\")") - .append(";var e=d[a];if(\"setInterval\"in e){if(e.closed)throw delete d[a],new u(23,\"Windo") - .append("w has been closed.\");return e}for(var g=e;g;){if(g==c.documentElement)return e;g=") - .append("g.parentNode}delete d[a];throw new u(10,\"Element is no longer attached to the DOM") - .append("\");};function Ra(a){var b=Da;a=[a];var c=window||ba,d;try{var b=l(b)?new c.Functi") - .append("on(b):c==window?b:new c.Function(\"return (\"+b+\").apply(null,arguments);\"),e=X(") - .append("a,c.document),g=b.apply(null,e);d={status:0,value:W(g)}}catch(n){d={status:\"code") - .append("\"in n?n.code:13,value:{message:n.message}}}b=[];U(new La,d,b);return b.join(\"\")") - .append("}var Y=[\"_\"],Z=h;Y[0]in Z||!Z.execScript||Z.execScript(\"var \"+Y[0]);for(var $;") - .append("Y.length&&($=Y.shift());)Y.length||void 0===Ra?Z=Z[$]?Z[$]:Z[$]={}:Z[$]=Ra;; retur") - .append("n this._.apply(null,arguments);}.apply({navigator:typeof window!=undefined?window.") - .append("navigator:null,document:typeof window!=undefined?window.document:null}, arguments)") - .append(";}") - .toString()), - - REMOVE_LOCAL_STORAGE_ITEM(new StringBuilder() - .append("function(){return function(){var k=this;\nfunction l(a){var b=typeof a;if(\"object") - .append("\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)return b;") - .append("var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"object\"") - .append(";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typeof a.sp") - .append("lice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"spli") - .append("ce\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a.call&&") - .append("\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"call\"))re") - .append("turn\"function\"}else return\"null\";else if(\"function\"==\nb&&\"undefined\"==typ") - .append("eof a.call)return\"object\";return b}function n(a){var b=l(a);return\"array\"==b||") - .append("\"object\"==b&&\"number\"==typeof a.length}function p(a){var b=typeof a;return\"ob") - .append("ject\"==b&&null!=a||\"function\"==b}var q=Date.now||function(){return+new Date};va") - .append("r r=window;function s(a,b){this.code=a;this.state=t[a]||u;this.message=b||\"\";var") - .append(" c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().repl") - .append("ace(/^[\\s\\xa0]+/g,\"\")}),e=c.length-5;if(0>e||c.indexOf(\"Error\",e)!=e)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;s.d=a.prototype;s.pr") - .append("ototype=new b})();\nvar u=\"unknown error\",t={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};t[13]=u;t[9]=\"unknown command\";s.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function v(){return k.navigator?k.navigator.u") - .append("serAgent:null}var w=k.navigator,x=-1!=(w&&w.platform||\"\").indexOf(\"Win\");funct") - .append("ion y(a){return(a=a.exec(v()))?a[1]:\"\"}y(/Android\\s+([0-9.]+)/)||y(/Version\\/(") - .append("[0-9.]+)/);function z(a){var b=0,c=String(A).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,") - .append("\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\"") - .append(".\");for(var e=Math.max(c.length,a.length),d=0;0==b&&d(0==h[1].length?\n0:") - .append("parseInt(h[1],10))?1:0)||((0==g[2].length)<(0==h[2].length)?-1:(0==g[2].length)>(0") - .append("==h[2].length)?1:0)||(g[2]h[2]?1:0)}while(0==b)}return 0<=b}var B=/A") - .append("ndroid\\s+([0-9\\.]+)/.exec(v()),A=B?B[1]:\"0\";z(2.3);z(4);function C(){this.a=vo") - .append("id 0}\nfunction D(a,b,c){switch(typeof b){case \"string\":E(b,c);break;case \"numb") - .append("er\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);br") - .append("eak;case \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(") - .append("\"null\");break}if(\"array\"==l(b)){var e=b.length;c.push(\"[\");for(var d=\"\",f=") - .append("0;fb?d+=\"000\":256>b?d+=\"00\":4096>b&&(d+=\"0\");return F[a]=") - .append("d+b.toString(16)}),'\"')};function H(a,b){for(var c=a.length,e=Array(c),d=\"string") - .append("\"==typeof a?a.split(\"\"):a,f=0;fe||c.indexOf(\"Error\",e)!=e)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;s.d=a.prototype;s.pr") - .append("ototype=new b})();\nvar u=\"unknown error\",t={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};t[13]=u;t[9]=\"unknown command\";s.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function v(){return k.navigator?k.navigator.u") - .append("serAgent:null}var w=k.navigator,x=-1!=(w&&w.platform||\"\").indexOf(\"Win\");funct") - .append("ion y(a){return(a=a.exec(v()))?a[1]:\"\"}y(/Android\\s+([0-9.]+)/)||y(/Version\\/(") - .append("[0-9.]+)/);function z(a){var b=0,c=String(A).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,") - .append("\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\"") - .append(".\");for(var e=Math.max(c.length,a.length),d=0;0==b&&d(0==h[1].length?\n0:") - .append("parseInt(h[1],10))?1:0)||((0==g[2].length)<(0==h[2].length)?-1:(0==g[2].length)>(0") - .append("==h[2].length)?1:0)||(g[2]h[2]?1:0)}while(0==b)}return 0<=b}var B=/A") - .append("ndroid\\s+([0-9\\.]+)/.exec(v()),A=B?B[1]:\"0\";z(2.3);z(4);function C(){this.a=vo") - .append("id 0}\nfunction D(a,b,c){switch(typeof b){case \"string\":E(b,c);break;case \"numb") - .append("er\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);br") - .append("eak;case \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(") - .append("\"null\");break}if(\"array\"==l(b)){var e=b.length;c.push(\"[\");for(var d=\"\",f=") - .append("0;fb?d+=\"000\":256>b?d+=\"00\":4096>b&&(d+=\"0\");return F[a]=") - .append("d+b.toString(16)}),'\"')};function H(a,b){for(var c=a.length,e=Array(c),d=\"string") - .append("\"==typeof a?a.split(\"\"):a,f=0;fe||c.indexOf(\"Error\",e)!=e)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;s.d=a.prototype;s.pr") - .append("ototype=new b})();\nvar u=\"unknown error\",t={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};t[13]=u;t[9]=\"unknown command\";s.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function v(){return g.navigator?g.navigator.u") - .append("serAgent:null}var y=g.navigator,z=-1!=(y&&y.platform||\"\").indexOf(\"Win\");funct") - .append("ion A(a){return(a=a.exec(v()))?a[1]:\"\"}A(/Android\\s+([0-9.]+)/)||A(/Version\\/(") - .append("[0-9.]+)/);function B(a){var b=0,c=String(C).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,") - .append("\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\"") - .append(".\");for(var e=Math.max(c.length,a.length),d=0;0==b&&d(0==k[1].length?\n0:") - .append("parseInt(k[1],10))?1:0)||((0==h[2].length)<(0==k[2].length)?-1:(0==h[2].length)>(0") - .append("==k[2].length)?1:0)||(h[2]k[2]?1:0)}while(0==b)}return 0<=b}var D=/A") - .append("ndroid\\s+([0-9\\.]+)/.exec(v()),C=D?D[1]:\"0\";B(2.3);B(4);function E(){this.a=vo") - .append("id 0}\nfunction F(a,b,c){switch(typeof b){case \"string\":G(b,c);break;case \"numb") - .append("er\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);br") - .append("eak;case \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(") - .append("\"null\");break}if(\"array\"==l(b)){var e=b.length;c.push(\"[\");for(var d=\"\",f=") - .append("0;fb?d+=\"000\":256>b?d+=\"00\":4096>b&&(d+=\"0\");return H[a]=") - .append("d+b.toString(16)}),'\"')};function J(a,b){for(var c=a.length,e=Array(c),d=\"string") - .append("\"==typeof a?a.split(\"\"):a,f=0;fe||c.indexOf(\"Error\",e)!=e)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;s.d=a.prototype;s.pr") - .append("ototype=new b})();\nvar u=\"unknown error\",t={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};t[13]=u;t[9]=\"unknown command\";s.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function v(){return g.navigator?g.navigator.u") - .append("serAgent:null}var y=g.navigator,z=-1!=(y&&y.platform||\"\").indexOf(\"Win\");funct") - .append("ion A(a){return(a=a.exec(v()))?a[1]:\"\"}A(/Android\\s+([0-9.]+)/)||A(/Version\\/(") - .append("[0-9.]+)/);function B(a){var b=0,c=String(C).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,") - .append("\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\"") - .append(".\");for(var e=Math.max(c.length,a.length),d=0;0==b&&d(0==k[1].length?\n0:") - .append("parseInt(k[1],10))?1:0)||((0==h[2].length)<(0==k[2].length)?-1:(0==h[2].length)>(0") - .append("==k[2].length)?1:0)||(h[2]k[2]?1:0)}while(0==b)}return 0<=b}var D=/A") - .append("ndroid\\s+([0-9\\.]+)/.exec(v()),C=D?D[1]:\"0\";B(2.3);B(4);function E(){this.a=vo") - .append("id 0}\nfunction F(a,b,c){switch(typeof b){case \"string\":G(b,c);break;case \"numb") - .append("er\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);br") - .append("eak;case \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(") - .append("\"null\");break}if(\"array\"==l(b)){var e=b.length;c.push(\"[\");for(var d=\"\",f=") - .append("0;fb?d+=\"000\":256>b?d+=\"00\":4096>b&&(d+=\"0\");return H[a]=") - .append("d+b.toString(16)}),'\"')};function J(a,b){for(var c=a.length,e=Array(c),d=\"string") - .append("\"==typeof a?a.split(\"\"):a,f=0;f>>0),ha=0;function ia(a,b,c){return a.") - .append("call.apply(a.bind,arguments)}\nfunction ja(a,b,c){if(!a)throw Error();if(2(0==r[1].length?\n0:parseInt(r[1],10))?1:0)||((0==v[2]") - .append(".length)<(0==r[2].length)?-1:(0==v[2].length)>(0==r[2].length)?1:0)||(v[2]r[2]?1:0)}while(0==c)}return c}function oa(a){return String(a).replace(/\\-(") - .append("[a-z])/g,function(a,c){return c.toUpperCase()})};var pa=Array.prototype;function s") - .append("(a,b,c){for(var d=a.length,e=p(a)?a.split(\"\"):a,f=0;f=arguments.l") - .append("ength?pa.slice.call(a,b):pa.slice.call(a,b,c)};var xa={aliceblue:\"#f0f8ff\",antiq") - .append("uewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beig") - .append("e:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue") - .append(":\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetb") - .append("lue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cor") - .append("nflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",") - .append("darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9") - .append("a9a9\",darkgreen:\"#006400\",\ndarkgrey:\"#a9a9a9\",darkkhaki:\"#bdb76b\",darkmage") - .append("nta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#99") - .append("32cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darksla") - .append("teblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoi") - .append("se:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\"") - .append(",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b2222") - .append("2\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:") - .append("\"#dcdcdc\",\nghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:") - .append("\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",grey:\"#808080\",honeydew:\"") - .append("#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#ff") - .append("fff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:") - .append("\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",") - .append("lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",light") - .append("green:\"#90ee90\",lightgrey:\"#d3d3d3\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07") - .append("a\",\nlightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899") - .append("\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",l") - .append("ime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon") - .append(":\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#b") - .append("a55d3\",mediumpurple:\"#9370db\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b6") - .append("8ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"") - .append("#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",\nm") - .append("occasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",o") - .append("live:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",or") - .append("chid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#") - .append("afeeee\",palevioletred:\"#db7093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",pe") - .append("ru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#") - .append("800080\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:") - .append("\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",\nseash") - .append("ell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblu") - .append("e:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springg") - .append("reen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"") - .append("#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5d") - .append("eb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9") - .append("acd32\"};var ya=\"background-color border-top-color border-right-color border-bott") - .append("om-color border-left-color color outline-color\".split(\" \"),za=/#([0-9a-fA-F])([") - .append("0-9a-fA-F])([0-9a-fA-F])/;function Aa(a){if(!Ba.test(a))throw Error(\"'\"+a+\"' is") - .append(" not a valid hex color\");4==a.length&&(a=a.replace(za,\"#$1$1$2$2$3$3\"));return ") - .append("a.toLowerCase()}var Ba=/^#(?:[0-9a-f]{3}){1,2}$/i,Ca=/^(?:rgba)?\\((\\d{1,3}),\\s?") - .append("(\\d{1,3}),\\s?(\\d{1,3}),\\s?(0|1|0\\.\\d*)\\)$/i;\nfunction Da(a){var b=a.match(") - .append("Ca);if(b){a=Number(b[1]);var c=Number(b[2]),d=Number(b[3]),b=Number(b[4]);if(0<=a&") - .append("&255>=a&&0<=c&&255>=c&&0<=d&&255>=d&&0<=b&&1>=b)return[a,c,d,b]}return[]}var Ea=/^") - .append("(?:rgb)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2})\\)$/i;fun") - .append("ction Fa(a){var b=a.match(Ea);if(b){a=Number(b[1]);var c=Number(b[2]),b=Number(b[3") - .append("]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=b&&255>=b)return[a,c,b]}return[]};function t(") - .append("a,b){this.code=a;this.state=Ga[a]||Ha;this.message=b||\"\";var c=this.state.replac") - .append("e(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,") - .append("\"\")}),d=c.length-5;if(0>d||c.indexOf(\"Error\",d)!=d)c+=\"Error\";this.name=c;c=") - .append("Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}q(t,Error);\nvar Ha=") - .append("\"unknown error\",Ga={15:\"element not selectable\",11:\"element not visible\",31:") - .append("\"ime engine activation failed\",30:\"ime not available\",24:\"invalid cookie doma") - .append("in\",29:\"invalid element coordinates\",12:\"invalid element state\",32:\"invalid ") - .append("selector\",51:\"invalid selector\",52:\"invalid selector\",17:\"javascript error\"") - .append(",405:\"unsupported operation\",34:\"move target out of bounds\",27:\"no such alert") - .append("\",7:\"no such element\",8:\"no such frame\",23:\"no such window\",28:\"script tim") - .append("eout\",33:\"session not created\",10:\"stale element reference\",\n0:\"success\",2") - .append("1:\"timeout\",25:\"unable to set cookie\",26:\"unexpected alert open\"};Ga[13]=Ha;") - .append("Ga[9]=\"unknown command\";t.prototype.toString=function(){return this.name+\": \"+") - .append("this.message};var Ia,Ja;function Ka(){return aa.navigator?aa.navigator.userAgent:n") - .append("ull}var La,Ma=aa.navigator;La=Ma&&Ma.platform||\"\";Ia=-1!=La.indexOf(\"Mac\");Ja=") - .append("-1!=La.indexOf(\"Win\");var Na=-1!=La.indexOf(\"Linux\"),Oa,Pa=\"\",Qa=/WebKit\\/(") - .append("\\S+)/.exec(Ka());Oa=Pa=Qa?Qa[1]:\"\";var Ra={};function Sa(a,b){this.x=n(a)?a:0;t") - .append("his.y=n(b)?b:0}Sa.prototype.toString=function(){return\"(\"+this.x+\", \"+this.y+") - .append("\")\"};Sa.prototype.ceil=function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this") - .append(".y);return this};Sa.prototype.floor=function(){this.x=Math.floor(this.x);this.y=Ma") - .append("th.floor(this.y);return this};Sa.prototype.round=function(){this.x=Math.round(this") - .append(".x);this.y=Math.round(this.y);return this};function Ta(a,b){this.width=a;this.heig") - .append("ht=b}Ta.prototype.toString=function(){return\"(\"+this.width+\" x \"+this.height+") - .append("\")\"};Ta.prototype.ceil=function(){this.width=Math.ceil(this.width);this.height=M") - .append("ath.ceil(this.height);return this};Ta.prototype.floor=function(){this.width=Math.f") - .append("loor(this.width);this.height=Math.floor(this.height);return this};Ta.prototype.rou") - .append("nd=function(){this.width=Math.round(this.width);this.height=Math.round(this.height") - .append(");return this};function Ua(a,b){var c={},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[") - .append("d]=a[d]);return c}function Va(a,b){var c={},d;for(d in a)c[d]=b.call(void 0,a[d],d") - .append(",a);return c}function Wa(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b}functio") - .append("n Xa(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return c};var Ya=3;function Za") - .append("(a){for(;a&&1!=a.nodeType;)a=a.previousSibling;return a}function $a(a,b){if(a.cont") - .append("ains&&1==b.nodeType)return a==b||a.contains(b);if(\"undefined\"!=typeof a.compareD") - .append("ocumentPosition)return a==b||Boolean(a.compareDocumentPosition(b)&16);for(;b&&a!=b") - .append(";)b=b.parentNode;return b==a}\nfunction ab(a,b){if(a==b)return 0;if(a.compareDocum") - .append("entPosition)return a.compareDocumentPosition(b)&2?1:-1;if(\"sourceIndex\"in a||a.p") - .append("arentNode&&\"sourceIndex\"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(") - .append("c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e") - .append("==f?cb(a,b):!c&&$a(e,b)?-1*db(a,b):!d&&$a(f,a)?db(b,a):(c?a.sourceIndex:e.sourceIn") - .append("dex)-(d?b.sourceIndex:f.sourceIndex)}d=w(a);c=d.createRange();c.selectNode(a);c.co") - .append("llapse(!0);d=d.createRange();d.selectNode(b);\nd.collapse(!0);return c.compareBoun") - .append("daryPoints(aa.Range.START_TO_END,d)}function db(a,b){var c=a.parentNode;if(c==b)re") - .append("turn-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return cb(d,a)}function cb(a,b)") - .append("{for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1}function w(a){return 9") - .append("==a.nodeType?a:a.ownerDocument||a.document}function eb(a,b,c){c||(a=a.parentNode);") - .append("for(c=0;a;){if(b(a))return a;a=a.parentNode;c++}return null}function fb(a){this.ia") - .append("=a||aa.document||document}\nfb.prototype.e=function(a){return p(a)?this.ia.getElem") - .append("entById(a):a};fb.prototype.contains=$a;function gb(a,b,c){this.q=a;this.Ja=b||1;th") - .append("is.p=c||1};function hb(a){this.da=a;this.O=0}function ib(a){a=a.match(jb);for(var ") - .append("b=0;b]=|\\\\s+|.\",\"g\"),kb=") - .append("/^\\s/;function x(a,b){return a.da[a.O+(b||0)]}hb.prototype.next=function(){return") - .append(" this.da[this.O++]};hb.prototype.back=function(){this.O--};hb.prototype.empty=func") - .append("tion(){return this.da.length<=this.O};function y(a){var b=null,c=a.nodeType;1==c&&") - .append("(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?\"\":b);i") - .append("f(\"string\"!=typeof b)if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;for(va") - .append("r c=0,d=[],b=\"\";a;){do 1!=a.nodeType&&(b+=a.nodeValue),d[c++]=a;while(a=a.firstC") - .append("hild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;return\"\"+b}\nfuncti") - .append("on lb(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!") - .append("1}return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function mb(a,b,c,d,e)") - .append("{return nb.call(null,a,b,p(c)?c:null,p(d)?d:null,e||new z)}\nfunction nb(a,b,c,d,e") - .append("){b.getElementsByName&&d&&\"name\"==c?(b=b.getElementsByName(d),s(b,function(b){a.") - .append("matches(b)&&e.add(b)})):b.getElementsByClassName&&d&&\"class\"==c?(b=b.getElements") - .append("ByClassName(d),s(b,function(b){b.className==d&&a.matches(b)&&e.add(b)})):a instanc") - .append("eof A?ob(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTagName(a.getName())") - .append(",s(b,function(a){lb(a,c,d)&&e.add(a)}));return e}function pb(a,b,c,d,e){for(b=b.fi") - .append("rstChild;b;b=b.nextSibling)lb(b,c,d)&&a.matches(b)&&e.add(b);return e}\nfunction o") - .append("b(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)lb(b,c,d)&&a.matches(b)&&e.add(b") - .append("),ob(a,b,c,d,e)};function z(){this.p=this.k=null;this.K=0}function qb(a){this.F=a;") - .append("this.next=this.C=null}function rb(a,b){if(!a.k)return b;if(!b.k)return a;for(var c") - .append("=a.k,d=b.k,e=null,f=null,h=0;c&&d;)c.F==d.F?(f=c,c=c.next,d=d.next):0\",4,2,") - .append("function(a,b,c){return Ab(function(a,b){return a>b},a,b,c)});G(\"<=\",4,2,function") - .append("(a,b,c){return Ab(function(a,b){return a<=b},a,b,c)});G(\">=\",4,2,function(a,b,c)") - .append("{return Ab(function(a,b){return a>=b},a,b,c)});var zb=G(\"=\",3,2,function(a,b,c){") - .append("return Ab(function(a,b){return a==b},a,b,c,!0)});G(\"!=\",3,2,function(a,b,c){retu") - .append("rn Ab(function(a,b){return a!=b},a,b,c,!0)});G(\"and\",2,2,function(a,b,c){return ") - .append("xb(a,c)&&xb(b,c)});G(\"or\",1,2,function(a,b,c){return xb(a,c)||xb(b,c)});function") - .append(" Db(a,b){if(b.s()&&4!=a.j)throw Error(\"Primary expression must evaluate to nodese") - .append("t if filter has predicate(s).\");C.call(this,a.j);this.ta=a;this.f=b;this.u=a.h();") - .append("this.m=a.m}q(Db,C);Db.prototype.evaluate=function(a){a=this.ta.evaluate(a);return ") - .append("Eb(this.f,a)};Db.prototype.toString=function(){var a;a=\"Filter:\"+D(this.ta);retu") - .append("rn a+=D(this.f)};function Fb(a,b){if(b.lengtha.Z)throw Error(\"Function \"+a.o+\" expects at most \"+a.Z+\" arguments, ") - .append("\"+b.length+\" given\");a.Ga&&s(b,function(b,d){if(4!=b.j)throw Error(\"Argument ") - .append("\"+d+\" to function \"+a.o+\" is not of type Nodeset: \"+b);});C.call(this,a.j);th") - .append("is.N=a;this.U=b;vb(this,a.u||sa(b,function(a){return a.h()}));wb(this,a.Ea&&!b.len") - .append("gth||a.Da&&!!b.length||sa(b,function(a){return a.m}))}\nq(Fb,C);Fb.prototype.evalu") - .append("ate=function(a){return this.N.r.apply(null,va(a,this.U))};Fb.prototype.toString=fu") - .append("nction(){var a=\"Function: \"+this.N;if(this.U.length)var b=ra(this.U,function(a,b") - .append("){return a+D(b)},\"Arguments:\"),a=a+D(b);return a};function Gb(a,b,c,d,e,f,h,m,u)") - .append("{this.o=a;this.j=b;this.u=c;this.Ea=d;this.Da=e;this.r=f;this.qa=h;this.Z=n(m)?m:h") - .append(";this.Ga=!!u}Gb.prototype.toString=g(\"o\");var Hb={};\nfunction H(a,b,c,d,e,f,h,m") - .append("){if(a in Hb)throw Error(\"Function already created: \"+a+\".\");Hb[a]=new Gb(a,b,") - .append("c,d,!1,e,f,h,m)}H(\"boolean\",2,!1,!1,function(a,b){return xb(b,a)},1);H(\"ceiling") - .append("\",1,!1,!1,function(a,b){return Math.ceil(E(b,a))},1);H(\"concat\",3,!1,!1,functio") - .append("n(a,b){var c=wa(arguments,1);return ra(c,function(b,c){return b+F(c,a)},\"\")},2,n") - .append("ull);H(\"contains\",2,!1,!1,function(a,b,c){b=F(b,a);a=F(c,a);return-1!=b.indexOf(") - .append("a)},2);H(\"count\",1,!1,!1,function(a,b){return b.evaluate(a).s()},1,1,!0);\nH(\"f") - .append("alse\",2,!1,!1,k(!1),0);H(\"floor\",1,!1,!1,function(a,b){return Math.floor(E(b,a)") - .append(")},1);H(\"id\",4,!1,!1,function(a,b){var c=a.q,d=9==c.nodeType?c:c.ownerDocument,c") - .append("=F(b,a).split(/\\s+/),e=[];s(c,function(a){(a=d.getElementById(a))&&!ua(e,a)&&e.pu") - .append("sh(a)});e.sort(ab);var f=new z;s(e,function(a){f.add(a)});return f},1);H(\"lang\",") - .append("2,!1,!1,k(!1),1);H(\"last\",1,!0,!1,function(a){if(1!=arguments.length)throw Error") - .append("(\"Function last expects ()\");return a.p},0);\nH(\"local-name\",3,!1,!0,function(") - .append("a,b){var c=b?sb(b.evaluate(a)):a.q;return c?c.nodeName.toLowerCase():\"\"},0,1,!0)") - .append(";H(\"name\",3,!1,!0,function(a,b){var c=b?sb(b.evaluate(a)):a.q;return c?c.nodeNam") - .append("e.toLowerCase():\"\"},0,1,!0);H(\"namespace-uri\",3,!0,!1,k(\"\"),0,1,!0);H(\"norm") - .append("alize-space\",3,!1,!0,function(a,b){return(b?F(b,a):y(a.q)).replace(/[\\s\\xa0]+/g") - .append(",\" \").replace(/^\\s+|\\s+$/g,\"\")},0,1);H(\"not\",2,!1,!1,function(a,b){return!") - .append("xb(b,a)},1);H(\"number\",1,!1,!0,function(a,b){return b?E(b,a):+y(a.q)},0,1);\nH(") - .append("\"position\",1,!0,!1,function(a){return a.Ja},0);H(\"round\",1,!1,!1,function(a,b)") - .append("{return Math.round(E(b,a))},1);H(\"starts-with\",2,!1,!1,function(a,b,c){b=F(b,a);") - .append("a=F(c,a);return 0==b.lastIndexOf(a,0)},2);H(\"string\",3,!1,!0,function(a,b){retur") - .append("n b?F(b,a):y(a.q)},0,1);H(\"string-length\",1,!1,!0,function(a,b){return(b?F(b,a):") - .append("y(a.q)).length},0,1);\nH(\"substring\",3,!1,!1,function(a,b,c,d){c=E(c,a);if(isNaN") - .append("(c)||Infinity==c||-Infinity==c)return\"\";d=d?E(d,a):Infinity;if(isNaN(d)||-Infini") - .append("ty===d)return\"\";c=Math.round(c)-1;var e=Math.max(c,0);a=F(b,a);if(Infinity==d)re") - .append("turn a.substring(e);b=Math.round(d);return a.substring(e,c+b)},2,3);H(\"substring-") - .append("after\",3,!1,!1,function(a,b,c){b=F(b,a);a=F(c,a);c=b.indexOf(a);return-1==c?\"\":") - .append("b.substring(c+a.length)},2);\nH(\"substring-before\",3,!1,!1,function(a,b,c){b=F(b") - .append(",a);a=F(c,a);a=b.indexOf(a);return-1==a?\"\":b.substring(0,a)},2);H(\"sum\",1,!1,!") - .append("1,function(a,b){for(var c=B(b.evaluate(a)),d=0,e=c.next();e;e=c.next())d+=+y(e);re") - .append("turn d},1,1,!0);H(\"translate\",3,!1,!1,function(a,b,c,d){b=F(b,a);c=F(c,a);var e=") - .append("F(d,a);a=[];for(d=0;da.length)throw Error") - .append("(\"Unclosed literal string\");return new Jb(a)}function gc(a){var b=a.b.next(),c=b") - .append(".indexOf(\":\");if(-1==c)return new Kb(b);var d=b.substring(0,c);a=a.Ha(d);if(!a)t") - .append("hrow Error(\"Namespace prefix not declared: \"+d);b=b.substr(c+1);return new Kb(b,") - .append("a)}\nfunction hc(a){var b,c=[],d;if(\"/\"==x(a.b)||\"//\"==x(a.b)){b=a.b.next();d=") - .append("x(a.b);if(\"/\"==b&&(a.b.empty()||\".\"!=d&&\"..\"!=d&&\"@\"!=d&&\"*\"!=d&&!/(?![0") - .append("-9])[\\w]/.test(d)))return new Ob;d=new Ob;L(a,\"Missing next location step.\");b=") - .append("ic(a,b);c.push(b)}else{a:{b=x(a.b);d=b.charAt(0);switch(d){case \"$\":throw Error(") - .append("\"Variable reference not allowed in HTML XPath\");case \"(\":a.b.next();b=bc(a);L(") - .append("a,'unclosed \"(\"');dc(a,\")\");break;case '\"':case \"'\":b=fc(a);break;default:i") - .append("f(isNaN(+b))if(!Ib(b)&&/(?![0-9])[\\w]/.test(d)&&\n\"(\"==x(a.b,1)){b=a.b.next();b") - .append("=Hb[b]||null;a.b.next();for(d=[];\")\"!=x(a.b);){L(a,\"Missing function argument l") - .append("ist.\");d.push(bc(a));if(\",\"!=x(a.b))break;a.b.next()}L(a,\"Unclosed function ar") - .append("gument list.\");ec(a);b=new Fb(b,d)}else{b=null;break a}else b=new Lb(+a.b.next())") - .append("}\"[\"==x(a.b)&&(d=new Sb(jc(a)),b=new Db(b,d))}if(b)if(\"/\"==x(a.b)||\"//\"==x(a") - .append(".b))d=b;else return b;else b=ic(a,\"/\"),d=new Pb,c.push(b)}for(;\"/\"==x(a.b)||\"") - .append("//\"==x(a.b);)b=a.b.next(),L(a,\"Missing next location step.\"),b=ic(a,b),c.push(b") - .append(");\nreturn new Mb(d,c)}\nfunction ic(a,b){var c,d,e;if(\"/\"!=b&&\"//\"!=b)throw E") - .append("rror('Step op should be \"/\" or \"//\"');if(\".\"==x(a.b))return d=new J(Yb,new A") - .append("(\"node\")),a.b.next(),d;if(\"..\"==x(a.b))return d=new J(Xb,new A(\"node\")),a.b.") - .append("next(),d;var f;if(\"@\"==x(a.b))f=Nb,a.b.next(),L(a,\"Missing attribute name\");el") - .append("se if(\"::\"==x(a.b,1)){if(!/(?![0-9])[\\w]/.test(x(a.b).charAt(0)))throw Error(\"") - .append("Bad token: \"+a.b.next());c=a.b.next();f=Wb[c]||null;if(!f)throw Error(\"No axis w") - .append("ith name: \"+c);a.b.next();L(a,\"Missing node name\")}else f=Tb;\nc=x(a.b);if(/(?!") - .append("[0-9])[\\w]/.test(c.charAt(0)))if(\"(\"==x(a.b,1)){if(!Ib(c))throw Error(\"Invalid") - .append(" node type: \"+c);c=a.b.next();if(!Ib(c))throw Error(\"Invalid type name: \"+c);dc") - .append("(a,\"(\");L(a,\"Bad nodetype\");e=x(a.b).charAt(0);var h=null;if('\"'==e||\"'\"==e") - .append(")h=fc(a);L(a,\"Bad nodetype\");ec(a);c=new A(c,h)}else c=gc(a);else if(\"*\"==c)c=") - .append("gc(a);else throw Error(\"Bad token: \"+a.b.next());e=new Sb(jc(a),f.G);return d||n") - .append("ew J(f,c,e,\"//\"==b)}\nfunction jc(a){for(var b=[];\"[\"==x(a.b);){a.b.next();L(a") - .append(",\"Missing predicate expression.\");var c=bc(a);b.push(c);L(a,\"Unclosed predicate") - .append(" expression.\");dc(a,\"]\")}return b}function cc(a){if(\"-\"==x(a.b))return a.b.ne") - .append("xt(),new Zb(cc(a));var b=hc(a);if(\"|\"!=x(a.b))a=b;else{for(b=[b];\"|\"==a.b.next") - .append("();)L(a,\"Missing next union location path.\"),b.push(hc(a));a.b.back();a=new $b(b") - .append(")}return a};function kc(a,b){if(!a.length)throw Error(\"Empty XPath expression.\")") - .append(";var c=ib(a);if(c.empty())throw Error(\"Invalid XPath expression.\");b?da(b)||(b=k") - .append("a(b.lookupNamespaceURI,b)):b=k(null);var d=bc(new ac(c,b));if(!c.empty())throw Err") - .append("or(\"Bad token: \"+c.next());this.evaluate=function(a,b){var c=d.evaluate(new gb(a") - .append("));return new M(c,b)}}\nfunction M(a,b){if(0==b)if(a instanceof z)b=4;else if(\"st") - .append("ring\"==typeof a)b=2;else if(\"number\"==typeof a)b=1;else if(\"boolean\"==typeof ") - .append("a)b=3;else throw Error(\"Unexpected evaluation result.\");if(2!=b&&1!=b&&3!=b&&!(a") - .append(" instanceof z))throw Error(\"value could not be converted to the specified type\")") - .append(";this.resultType=b;var c;switch(b){case 2:this.stringValue=a instanceof z?tb(a):\"") - .append("\"+a;break;case 1:this.numberValue=a instanceof z?+tb(a):+a;break;case 3:this.bool") - .append("eanValue=a instanceof z?0=c") - .append(".length?null:c[f++]};this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error(\"sna") - .append("pshotItem called with wrong result type\");return a>=c.length||0>a?null:c[a]}}M.AN") - .append("Y_TYPE=0;\nM.NUMBER_TYPE=1;M.STRING_TYPE=2;M.BOOLEAN_TYPE=3;M.UNORDERED_NODE_ITERA") - .append("TOR_TYPE=4;M.ORDERED_NODE_ITERATOR_TYPE=5;M.UNORDERED_NODE_SNAPSHOT_TYPE=6;M.ORDER") - .append("ED_NODE_SNAPSHOT_TYPE=7;M.ANY_UNORDERED_NODE_TYPE=8;M.FIRST_ORDERED_NODE_TYPE=9;fu") - .append("nction lc(a){a=a||aa;var b=a.document;b.evaluate||(a.XPathResult=M,b.evaluate=func") - .append("tion(a,b,e,f){return(new kc(a,e)).evaluate(b,f)},b.createExpression=function(a,b){") - .append("return new kc(a,b)})};var N={};N.Aa=function(){var a={Pa:\"http://www.w3.org/2000/") - .append("svg\"};return function(b){return a[b]||null}}();N.r=function(a,b,c){var d=w(a);lc(") - .append("d?d.parentWindow||d.defaultView:window);try{var e=d.createNSResolver?d.createNSRes") - .append("olver(d.documentElement):N.Aa;return d.evaluate(b,a,e,c,null)}catch(f){throw new t") - .append("(32,\"Unable to locate an element with the xpath expression \"+b+\" because of the") - .append(" following error:\\n\"+f);}};\nN.ga=function(a,b){if(!a||1!=a.nodeType)throw new t") - .append("(32,'The result of the xpath expression \"'+b+'\" is: '+a+\". It should be an elem") - .append("ent.\");};N.La=function(a,b){var c=function(){var c=N.r(b,a,9);return c?c.singleNo") - .append("deValue||null:b.selectSingleNode?(c=w(b),c.setProperty&&c.setProperty(\"SelectionL") - .append("anguage\",\"XPath\"),b.selectSingleNode(a)):null}();null===c||N.ga(c,a);return c};") - .append("\nN.Na=function(a,b){var c=function(){var c=N.r(b,a,7);if(c){for(var e=c.snapshotL") - .append("ength,f=[],h=0;h=this.l") - .append("eft&&a.right<=this.right&&a.top>=this.top&&a.bottom<=this.bottom:a.x>=this.left&&a") - .append(".x<=this.right&&a.y>=this.top&&a.y<=this.bottom:!1};\nl.ceil=function(){this.top=M") - .append("ath.ceil(this.top);this.right=Math.ceil(this.right);this.bottom=Math.ceil(this.bot") - .append("tom);this.left=Math.ceil(this.left);return this};l.floor=function(){this.top=Math.") - .append("floor(this.top);this.right=Math.floor(this.right);this.bottom=Math.floor(this.bott") - .append("om);this.left=Math.floor(this.left);return this};l.round=function(){this.top=Math.") - .append("round(this.top);this.right=Math.round(this.right);this.bottom=Math.round(this.bott") - .append("om);this.left=Math.round(this.left);return this};function O(a,b,c,d){this.left=a;t") - .append("his.top=b;this.width=c;this.height=d}l=O.prototype;l.toString=function(){return\"(") - .append("\"+this.left+\", \"+this.top+\" - \"+this.width+\"w x \"+this.height+\"h)\"};l.con") - .append("tains=function(a){return a instanceof O?this.left<=a.left&&this.left+this.width>=a") - .append(".left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.height:a.x>=this.lef") - .append("t&&a.x<=this.left+this.width&&a.y>=this.top&&a.y<=this.top+this.height};\nl.ceil=f") - .append("unction(){this.left=Math.ceil(this.left);this.top=Math.ceil(this.top);this.width=M") - .append("ath.ceil(this.width);this.height=Math.ceil(this.height);return this};l.floor=funct") - .append("ion(){this.left=Math.floor(this.left);this.top=Math.floor(this.top);this.width=Mat") - .append("h.floor(this.width);this.height=Math.floor(this.height);return this};l.round=funct") - .append("ion(){this.left=Math.round(this.left);this.top=Math.round(this.top);this.width=Mat") - .append("h.round(this.width);this.height=Math.round(this.height);return this};function qc(a") - .append(",b){var c=w(a);return c.defaultView&&c.defaultView.getComputedStyle&&(c=c.defaultV") - .append("iew.getComputedStyle(a,null))?c[b]||c.getPropertyValue(b)||\"\":\"\"};function rc(") - .append("a){var b;a:{a=w(a);try{b=a&&a.activeElement;break a}catch(c){}b=null}return b}func") - .append("tion Q(a,b){return!!a&&1==a.nodeType&&(!b||a.tagName.toUpperCase()==b)}var sc=\"BU") - .append("TTON INPUT OPTGROUP OPTION SELECT TEXTAREA\".split(\" \");\nfunction tc(a){var b=a") - .append(".tagName.toUpperCase();return ua(sc,b)?a.disabled?!1:a.parentNode&&1==a.parentNode") - .append(".nodeType&&\"OPTGROUP\"==b||\"OPTION\"==b?tc(a.parentNode):!eb(a,function(a){var b") - .append("=a.parentNode;if(b&&Q(b,\"FIELDSET\")&&b.disabled){if(!Q(a,\"LEGEND\"))return!0;fo") - .append("r(;a=void 0!=a.previousElementSibling?a.previousElementSibling:Za(a.previousSiblin") - .append("g);)if(Q(a,\"LEGEND\"))return!0}return!1},!0):!0}var uc=\"text search tel url emai") - .append("l password number\".split(\" \");\nfunction vc(a){return Q(a,\"TEXTAREA\")?!0:Q(a,") - .append("\"INPUT\")?ua(uc,a.type.toLowerCase()):wc(a)?!0:!1}function wc(a){function b(a){re") - .append("turn\"inherit\"==a.contentEditable?(a=R(a))?b(a):!1:\"true\"==a.contentEditable}re") - .append("turn n(a.contentEditable)?n(a.isContentEditable)?a.isContentEditable:b(a):!1}funct") - .append("ion R(a){for(a=a.parentNode;a&&1!=a.nodeType&&9!=a.nodeType&&11!=a.nodeType;)a=a.p") - .append("arentNode;return Q(a)?a:null}\nfunction S(a,b){var c=oa(b);if(\"float\"==c||\"cssF") - .append("loat\"==c||\"styleFloat\"==c)c=\"cssFloat\";c=qc(a,c)||xc(a,c);if(null===c)c=null;") - .append("else if(ua(ya,b)&&(Ba.test(\"#\"==c.charAt(0)?c:\"#\"+c)||Fa(c).length||xa&&xa[c.t") - .append("oLowerCase()]||Da(c).length)){var d=Da(c);if(!d.length){a:if(d=Fa(c),!d.length){d=") - .append("(d=xa[c.toLowerCase()])?d:\"#\"==c.charAt(0)?c:\"#\"+c;if(Ba.test(d)&&(d=Aa(d),d=A") - .append("a(d),d=[parseInt(d.substr(1,2),16),parseInt(d.substr(3,2),16),parseInt(d.substr(5,") - .append("2),16)],d.length))break a;d=[]}3==d.length&&d.push(1)}c=\n4!=d.length?c:\"rgba(\"+") - .append("d.join(\", \")+\")\"}return c}function xc(a,b){var c=a.currentStyle||a.style,d=c[b") - .append("];!n(d)&&da(c.getPropertyValue)&&(d=c.getPropertyValue(b));return\"inherit\"!=d?n(") - .append("d)?d:null:(c=R(a))?xc(c,b):null}\nfunction yc(a,b){function c(a){if(\"none\"==S(a,") - .append("\"display\"))return!1;a=R(a);return!a||c(a)}function d(a){var b=zc(a);return 0=I.left+I.width;I=f.top>=I.top+I.height;if(Y&&\"hidd") - .append("en\"==r.x||I&&\"hidden\"==r.y)return T;if(Y&&\"visible\"!=r.x||I&&\"visible\"!=r.y") - .append("){if(fa&&(r=e(v),f.left>=m.scrollWidth-r.x||f.right>=m.scrollHeight-r.y))return T;") - .append("f=Ac(v);return f==T?T:\"scroll\"}}}return\"none\"}\nfunction zc(a){var b=Bc(a);if(") - .append("b)return b.rect;if(Q(a,\"HTML\"))return a=((w(a)?w(a).parentWindow||w(a).defaultVi") - .append("ew:window)||window).document,a=\"CSS1Compat\"==a.compatMode?a.documentElement:a.bo") - .append("dy,a=new Ta(a.clientWidth,a.clientHeight),new O(0,0,a.width,a.height);var c;try{c=") - .append("a.getBoundingClientRect()}catch(d){return new O(0,0,0,0)}return new O(c.left,c.top") - .append(",c.right-c.left,c.bottom-c.top)}\nfunction Bc(a){var b=Q(a,\"MAP\");if(!b&&!Q(a,\"") - .append("AREA\"))return null;var c=b?a:Q(a.parentNode,\"MAP\")?a.parentNode:null,d=null,e=n") - .append("ull;if(c&&c.name&&(d=N.La('/descendant::*[@usemap = \"#'+c.name+'\"]',w(c)))&&(e=z") - .append("c(d),!b&&\"default\"!=a.shape.toLowerCase())){var f=Ec(a);a=Math.min(Math.max(f.le") - .append("ft,0),e.width);b=Math.min(Math.max(f.top,0),e.height);c=Math.min(f.width,e.width-a") - .append(");f=Math.min(f.height,e.height-b);e=new O(a+e.left,b+e.top,c,f)}return{ma:d,rect:e") - .append("||new O(0,0,0,0)}}\nfunction Ec(a){var b=a.shape.toLowerCase();a=a.coords.split(\"") - .append(",\");if(\"rect\"==b&&4==a.length){var b=a[0],c=a[1];return new O(b,c,a[2]-b,a[3]-c") - .append(")}if(\"circle\"==b&&3==a.length)return b=a[2],new O(a[0]-b,a[1]-b,2*b,2*b);if(\"po") - .append("ly\"==b&&22*this.I&&bd(this),!0):!1};\nfunction") - .append(" bd(a){if(a.I!=a.i.length){for(var b=0,c=0;b\");W") - .append("(191,\"/\",\"?\");W(192,\"`\",\"~\");W(219,\"[\",\"{\");W(220,\"\\\\\",\"|\");W(22") - .append("1,\"]\",\"}\");var ge=W({d:59,c:186,opera:59},\";\",\":\");W(222,\"'\",'\"');var h") - .append("e=[pd,od,Dd,X],ie=new ad;ie.set(1,X);ie.set(2,od);ie.set(4,pd);ie.set(8,Dd);\nvar ") - .append("je=function(a){var b=new ad;s(cd(a),function(c){b.set(a.get(c).code,c)});return b}") - .append("(ie);function id(a,b,c){if(ua(he,b)){var d=je.get(b.code),e=a.Ca;e.Q=c?e.Q|d:e.Q&~") - .append("d}c?a.ca.add(b):a.ca.remove(b)}hd.prototype.g=function(a){return this.ca.contains(") - .append("a)};\nfunction ke(a,b){if(ua(he,b)&&a.g(b))throw new t(13,\"Cannot press a modifie") - .append("r key that is already pressed.\");var c=null!==b.code&&le(a,Uc,b);if(c&&((!b.A&&b!") - .append("=nd||le(a,Oc,b,!c))&&c)&&(me(a,b),a.W))if(b.A){var c=ne(a,b),d=V(a.e(),!0)[0]+1;$c") - .append("(a.e(),c);Wc(a.e(),d);a.B(Tc);a.B(Sc);a.n=d}else switch(b){case nd:a.B(Tc);Q(a.e()") - .append(",\"TEXTAREA\")&&(c=V(a.e(),!0)[0]+1,$c(a.e(),\"\\n\"),Wc(a.e(),c),a.B(Sc),a.n=c);b") - .append("reak;case ld:case Cd:c=V(a.e(),!1);c[0]==c[1]&&(b==ld?(Wc(a.e(),c[1]-1),Yc(a.e(),c") - .append("[1])):Yc(a.e(),c[1]+1));\nc=V(a.e(),!1);c=!(c[0]==a.e().value.length||0==c[1]);$c(") - .append("a.e(),\"\");c&&a.B(Sc);c=V(a.e(),!1);a.n=c[1];break;case xd:case zd:var c=a.e(),e=") - .append("V(c,!0)[0],f=V(c,!1)[1],h=d=0;b==xd?a.g(X)?a.n==e?(d=Math.max(e-1,0),h=f,e=d):(d=e") - .append(",e=h=f-1):e=e==f?Math.max(e-1,0):e:a.g(X)?a.n==f?(d=e,e=h=Math.min(f+1,c.value.len") - .append("gth)):(d=e+1,h=f,e=d):e=e==f?Math.min(f+1,c.value.length):f;a.g(X)?(Wc(c,d),Yc(c,h") - .append(")):Zc(c,e);a.n=e;break;case wd:case vd:c=a.e(),d=V(c,!0)[0],h=V(c,!1)[1],b==wd?(a.") - .append("g(X)?(Wc(c,0),Yc(c,a.n==d?h:d)):Zc(c,\n0),a.n=0):(a.g(X)?(a.n==d&&Wc(c,h),Yc(c,c.v") - .append("alue.length)):Zc(c,c.value.length),a.n=c.value.length)}id(a,b,!0)}function me(a,b)") - .append("{if(b==nd&&Q(a.e(),\"INPUT\")){var c=eb(a.e(),Jc,!0);if(c){var d=c.getElementsByTa") - .append("gName(\"input\");!sa(d,function(a){a:{if(Q(a,\"INPUT\")){var b=a.type.toLowerCase(") - .append(");if(\"submit\"==b||\"image\"==b){a=!0;break a}}if(Q(a,\"BUTTON\")&&(b=a.type.toLo") - .append("werCase(),\"submit\"==b)){a=!0;break a}a=!1}return a})&&1!=d.length&&(Ra[534]||(Ra") - .append("[534]=0<=na(Oa,534)))||Kc(c)}}}\nfunction oe(a,b){if(!a.g(b))throw new t(13,\"Cann") - .append("ot release a key that is not pressed. (\"+b.code+\")\");null===b.code||le(a,Vc,b);") - .append("id(a,b,!1)}function ne(a,b){if(!b.A)throw new t(13,\"not a character key\");return") - .append(" a.g(X)?b.Ka:b.A}function le(a,b,c,d){if(null===c.code)throw new t(13,\"Key must h") - .append("ave a keycode to be fired.\");c={altKey:a.g(pd),ctrlKey:a.g(od),metaKey:a.g(Dd),sh") - .append("iftKey:a.g(X),keyCode:c.code,charCode:c.A&&b==Oc?ne(a,c).charCodeAt(0):0,preventDe") - .append("fault:!!d};return a.X(b,c)}\nfunction pe(a,b){Gc(a,b);a.W=vc(b)&&!b.readOnly;var c") - .append(";c=a.va||a.D;var d=rc(c);if(c==d)c=!1;else{if(d&&da(d.blur)&&!Q(d,\"BODY\"))try{d.") - .append("blur()}catch(e){throw e;}da(c.focus)?(c.focus(),c=!0):c=!1}a.W&&c&&(Zc(b,b.value.l") - .append("ength),a.n=b.value.length)};function qe(a,b,c,d){function e(a){p(a)?s(a.split(\"\"") - .append("),function(a){if(1!=a.length)throw new t(13,\"Argument not a single character: \"+") - .append("a);var b=jd[a];b||(b=a.toUpperCase(),b=W(b.charCodeAt(0),a.toLowerCase(),b),b={key") - .append(":b,shift:a!=b.A});a=b;b=f.g(X);a.shift&&!b&&ke(f,X);ke(f,a.key);oe(f,a.key);a.shif") - .append("t&&!b&&oe(f,X)}):ua(he,a)?f.g(a)?oe(f,a):ke(f,a):(ke(f,a),oe(f,a))}if(a!=rc(a)){if") - .append("(!yc(a,!0)||!tc(a)||\"none\"==S(a,\"pointer-events\"))throw new t(12,\"Element is ") - .append("not currently interactable and may not be manipulated\");\nre(a)}var f=c||new hd;p") - .append("e(f,a);if(\"date\"==a.type){c=\"array\"==ba(b)?b=b.join(\"\"):b;var h=/\\d{4}-\\d{") - .append("2}-\\d{2}/;if(c.match(h)){Lc(a,Rc);a.value=c.match(h)[0];Lc(a,Qc);Lc(a,Pc);return}") - .append("}\"array\"==ba(b)?s(b,e):e(b);d||s(he,function(a){f.g(a)&&oe(f,a)})}function se(a)") - .append("{var b=eb(a,Jc,!0);if(!b)throw new t(7,\"Element was not in a form, so could not s") - .append("ubmit.\");var c=te.Ba();Gc(c,a);Kc(b)}function te(){Fc.call(this)}q(te,Fc);(functi") - .append("on(){var a=te;a.Ba=function(){return a.na?a.na:a.na=new a}})();\nfunction re(a){if") - .append("(\"scroll\"==Ac(a,void 0)){if(a.scrollIntoView&&(a.scrollIntoView(),\"none\"==Ac(a") - .append(",void 0)))return;for(var b=Dc(a,void 0),c=R(a);c;c=R(c)){var d=c,e=zc(d),f,h=d,m=f") - .append("=void 0,u=void 0,P=void 0,P=qc(h,\"borderLeftWidth\"),u=qc(h,\"borderRightWidth\")") - .append(",m=qc(h,\"borderTopWidth\");f=qc(h,\"borderBottomWidth\");f=new pc(parseFloat(m),p") - .append("arseFloat(u),parseFloat(f),parseFloat(P));h=b.left-e.left-f.left;e=b.top-e.top-f.t") - .append("op;f=d.clientHeight+b.top-b.bottom;d.scrollLeft+=Math.min(h,Math.max(h-(d.clientWi") - .append("dth+\nb.left-b.right),0));d.scrollTop+=Math.min(e,Math.max(e-f,0))}Ac(a,void 0)}};") - .append("function Z(a,b,c,d){function e(){return{ra:f,keys:[]}}var f=!!d,h=[],m=e();h.push(") - .append("m);s(b,function(a){s(a.split(\"\"),function(a){if(\"\\ue000\"<=a&&\"\\ue03d\">=a){") - .append("var b=Z.a[a];if(null===b)h.push(m=e()),f&&(m.ra=!1,h.push(m=e()));else if(n(b))m.k") - .append("eys.push(b);else throw Error(\"Unsupported WebDriver key: \\\\u\"+a.charCodeAt(0).") - .append("toString(16));}else switch(a){case \"\\n\":m.keys.push(nd);break;case \"\\t\":m.ke") - .append("ys.push(md);break;case \"\\b\":m.keys.push(ld);break;default:m.keys.push(a)}})});s") - .append("(h,function(b){qe(a,b.keys,c,b.ra)})}\nZ.a={};Z.a[\"\\ue000\"]=null;Z.a[\"\\ue003") - .append("\"]=ld;Z.a[\"\\ue004\"]=md;Z.a[\"\\ue006\"]=nd;Z.a[\"\\ue007\"]=nd;Z.a[\"\\ue008\"") - .append("]=X;Z.a[\"\\ue009\"]=od;Z.a[\"\\ue00a\"]=pd;Z.a[\"\\ue00b\"]=qd;Z.a[\"\\ue00c\"]=r") - .append("d;Z.a[\"\\ue00d\"]=sd;Z.a[\"\\ue00e\"]=td;Z.a[\"\\ue00f\"]=ud;Z.a[\"\\ue010\"]=vd;") - .append("Z.a[\"\\ue011\"]=wd;Z.a[\"\\ue012\"]=xd;Z.a[\"\\ue013\"]=yd;Z.a[\"\\ue014\"]=zd;Z.") - .append("a[\"\\ue015\"]=Ad;Z.a[\"\\ue016\"]=Bd;Z.a[\"\\ue017\"]=Cd;Z.a[\"\\ue018\"]=ge;Z.a[") - .append("\"\\ue019\"]=ee;Z.a[\"\\ue01a\"]=Ed;Z.a[\"\\ue01b\"]=Fd;Z.a[\"\\ue01c\"]=Gd;Z.a[\"") - .append("\\ue01d\"]=Hd;Z.a[\"\\ue01e\"]=Id;Z.a[\"\\ue01f\"]=Jd;\nZ.a[\"\\ue020\"]=Kd;Z.a[\"") - .append("\\ue021\"]=Ld;Z.a[\"\\ue022\"]=Md;Z.a[\"\\ue023\"]=Nd;Z.a[\"\\ue024\"]=Od;Z.a[\"") - .append("\\ue025\"]=Pd;Z.a[\"\\ue027\"]=Qd;Z.a[\"\\ue028\"]=Rd;Z.a[\"\\ue029\"]=Sd;Z.a[\"") - .append("\\ue026\"]=fe;Z.a[\"\\ue031\"]=Td;Z.a[\"\\ue032\"]=Ud;Z.a[\"\\ue033\"]=Vd;Z.a[\"") - .append("\\ue034\"]=Wd;Z.a[\"\\ue035\"]=Xd;Z.a[\"\\ue036\"]=Yd;Z.a[\"\\ue037\"]=Zd;Z.a[\"") - .append("\\ue038\"]=$d;Z.a[\"\\ue039\"]=ae;Z.a[\"\\ue03a\"]=be;Z.a[\"\\ue03b\"]=ce;Z.a[\"") - .append("\\ue03c\"]=de;Z.a[\"\\ue03d\"]=Dd;function ue(){this.R=void 0}\nfunction ve(a,b,c)") - .append("{switch(typeof b){case \"string\":we(b,c);break;case \"number\":c.push(isFinite(b)") - .append("&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);break;case \"undefined\":") - .append("c.push(\"null\");break;case \"object\":if(null==b){c.push(\"null\");break}if(\"arr") - .append("ay\"==ba(b)){var d=b.length;c.push(\"[\");for(var e=\"\",f=0;fb?e+=\"000\":256>b?e+=\"00\":4096>b&&(e+=\"0\");return xe[a]=e+b.toStri") - .append("ng(16)}),'\"')};function ze(a){switch(ba(a)){case \"string\":case \"number\":case ") - .append("\"boolean\":return a;case \"function\":return a.toString();case \"array\":return q") - .append("a(a,ze);case \"object\":if(\"nodeType\"in a&&(1==a.nodeType||9==a.nodeType)){var b") - .append("={};b.ELEMENT=Ae(a);return b}if(\"document\"in a)return b={},b.WINDOW=Ae(a),b;if(c") - .append("a(a))return qa(a,ze);a=Ua(a,function(a,b){return\"number\"==typeof b||p(b)});retur") - .append("n Va(a,ze);default:return null}}\nfunction Be(a,b){return\"array\"==ba(a)?qa(a,fun") - .append("ction(a){return Be(a,b)}):ea(a)?\"function\"==typeof a?a:\"ELEMENT\"in a?Ce(a.ELEM") - .append("ENT,b):\"WINDOW\"in a?Ce(a.WINDOW,b):Va(a,function(a){return Be(a,b)}):a}function ") - .append("De(a){a=a||document;var b=a.$wdc_;b||(b=a.$wdc_={},b.aa=la());b.aa||(b.aa=la());re") - .append("turn b}function Ae(a){var b=De(a.ownerDocument),c=Xa(b,function(b){return b==a});c") - .append("||(c=\":wdc:\"+b.aa++,b[c]=a);return c}\nfunction Ce(a,b){a=decodeURIComponent(a);") - .append("var c=b||document,d=De(c);if(!(a in d))throw new t(10,\"Element does not exist in ") - .append("cache\");var e=d[a];if(\"setInterval\"in e){if(e.closed)throw delete d[a],new t(23") - .append(",\"Window has been closed.\");return e}for(var f=e;f;){if(f==c.documentElement)ret") - .append("urn e;f=f.parentNode}delete d[a];throw new t(10,\"Element is no longer attached to") - .append(" the DOM\");};function Ee(a){var b=se;a=[a];var c=window||ma,d;try{var b=p(b)?new ") - .append("c.Function(b):c==window?b:new c.Function(\"return (\"+b+\").apply(null,arguments);") - .append("\"),e=Be(a,c.document),f=b.apply(null,e);d={status:0,value:ze(f)}}catch(h){d={stat") - .append("us:\"code\"in h?h.code:13,value:{message:h.message}}}b=[];ve(new ue,d,b);return b.") - .append("join(\"\")}var Fe=[\"_\"],$=aa;Fe[0]in $||!$.execScript||$.execScript(\"var \"+Fe[") - .append("0]);for(var Ge;Fe.length&&(Ge=Fe.shift());)Fe.length||void 0===Ee?$=$[Ge]?$[Ge]:$[") - .append("Ge]={}:$[Ge]=Ee;; return this._.apply(null,arguments);}.apply({navigator:typeof wi") - .append("ndow!=undefined?window.navigator:null,document:typeof window!=undefined?window.doc") - .append("ument:null}, arguments);}") - .toString()), - - GET_APPCACHE_STATUS(new StringBuilder() - .append("function(){return function(){var k=this;\nfunction l(a){var b=typeof a;if(\"object") - .append("\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)return b;") - .append("var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"object\"") - .append(";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typeof a.sp") - .append("lice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"spli") - .append("ce\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a.call&&") - .append("\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"call\"))re") - .append("turn\"function\"}else return\"null\";else if(\"function\"==\nb&&\"undefined\"==typ") - .append("eof a.call)return\"object\";return b}function m(a){var b=l(a);return\"array\"==b||") - .append("\"object\"==b&&\"number\"==typeof a.length}function n(a){var b=typeof a;return\"ob") - .append("ject\"==b&&null!=a||\"function\"==b}var p=Date.now||function(){return+new Date};va") - .append("r q=window;function r(a,b){this.code=a;this.state=s[a]||t;this.message=b||\"\";var") - .append(" c=this.state.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().repl") - .append("ace(/^[\\s\\xa0]+/g,\"\")}),e=c.length-5;if(0>e||c.indexOf(\"Error\",e)!=e)c+=\"Er") - .append("ror\";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||\"\"}") - .append("(function(){var a=Error;function b(){}b.prototype=a.prototype;r.c=a.prototype;r.pr") - .append("ototype=new b})();\nvar t=\"unknown error\",s={15:\"element not selectable\",11:\"") - .append("element not visible\",31:\"ime engine activation failed\",30:\"ime not available\"") - .append(",24:\"invalid cookie domain\",29:\"invalid element coordinates\",12:\"invalid elem") - .append("ent state\",32:\"invalid selector\",51:\"invalid selector\",52:\"invalid selector") - .append("\",17:\"javascript error\",405:\"unsupported operation\",34:\"move target out of b") - .append("ounds\",27:\"no such alert\",7:\"no such element\",8:\"no such frame\",23:\"no suc") - .append("h window\",28:\"script timeout\",33:\"session not created\",10:\"stale element ref") - .append("erence\",\n0:\"success\",21:\"timeout\",25:\"unable to set cookie\",26:\"unexpecte") - .append("d alert open\"};s[13]=t;s[9]=\"unknown command\";r.prototype.toString=function(){r") - .append("eturn this.name+\": \"+this.message};function u(){return k.navigator?k.navigator.u") - .append("serAgent:null}var v=k.navigator,w=-1!=(v&&v.platform||\"\").indexOf(\"Win\");funct") - .append("ion x(a){return(a=a.exec(u()))?a[1]:\"\"}x(/Android\\s+([0-9.]+)/)||x(/Version\\/(") - .append("[0-9.]+)/);function y(a){var b=0,c=String(z).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,") - .append("\"\").split(\".\");a=String(a).replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\").split(\"") - .append(".\");for(var e=Math.max(c.length,a.length),d=0;0==b&&d(0==h[1].length?\n0:") - .append("parseInt(h[1],10))?1:0)||((0==g[2].length)<(0==h[2].length)?-1:(0==g[2].length)>(0") - .append("==h[2].length)?1:0)||(g[2]h[2]?1:0)}while(0==b)}return 0<=b}var A=/A") - .append("ndroid\\s+([0-9\\.]+)/.exec(u()),z=A?A[1]:\"0\";y(2.3);y(4);function B(){this.a=vo") - .append("id 0}\nfunction C(a,b,c){switch(typeof b){case \"string\":D(b,c);break;case \"numb") - .append("er\":c.push(isFinite(b)&&!isNaN(b)?b:\"null\");break;case \"boolean\":c.push(b);br") - .append("eak;case \"undefined\":c.push(\"null\");break;case \"object\":if(null==b){c.push(") - .append("\"null\");break}if(\"array\"==l(b)){var e=b.length;c.push(\"[\");for(var d=\"\",f=") - .append("0;fb?d+=\"000\":256>b?d+=\"00\":4096>b&&(d+=\"0\");return E[a]=") - .append("d+b.toString(16)}),'\"')};function G(a,b){for(var c=a.length,e=Array(c),d=\"string") - .append("\"==typeof a?a.split(\"\"):a,f=0;f keyMapping = new HashMap() {{ - put(Keys.SPACE, KeyEvent.KEYCODE_SPACE); - put(Keys.ARROW_DOWN, KeyEvent.KEYCODE_DPAD_DOWN); - put(Keys.DOWN, KeyEvent.KEYCODE_DPAD_DOWN); - put(Keys.ARROW_LEFT, KeyEvent.KEYCODE_DPAD_LEFT); - put(Keys.LEFT, KeyEvent.KEYCODE_DPAD_LEFT); - put(Keys.ARROW_RIGHT, KeyEvent.KEYCODE_DPAD_RIGHT); - put(Keys.RIGHT, KeyEvent.KEYCODE_DPAD_RIGHT); - put(Keys.ARROW_UP, KeyEvent.KEYCODE_DPAD_UP); - put(Keys.UP, KeyEvent.KEYCODE_DPAD_UP); - put(Keys.BACK_SPACE, KeyEvent.KEYCODE_DEL); - put(Keys.DELETE, KeyEvent.KEYCODE_DEL); - put(Keys.ENTER, KeyEvent.KEYCODE_ENTER); - put(Keys.RETURN, KeyEvent.KEYCODE_ENTER); - put(Keys.TAB, KeyEvent.KEYCODE_TAB); - put(Keys.CLEAR, KeyEvent.KEYCODE_CLEAR); - put(Keys.SHIFT, KeyEvent.KEYCODE_SHIFT_RIGHT); - put(Keys.LEFT_SHIFT, KeyEvent.KEYCODE_SHIFT_LEFT); - put(Keys.ALT, KeyEvent.KEYCODE_ALT_RIGHT); - put(Keys.LEFT_ALT, KeyEvent.KEYCODE_ALT_LEFT); - put(Keys.PAUSE, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE); - put(Keys.HOME, KeyEvent.KEYCODE_HOME); - put(Keys.SEMICOLON, KeyEvent.KEYCODE_SEMICOLON); - put(Keys.EQUALS, KeyEvent.KEYCODE_EQUALS); - put(Keys.NUMPAD0, KeyEvent.KEYCODE_0); - put(Keys.NUMPAD1, KeyEvent.KEYCODE_1); - put(Keys.NUMPAD2, KeyEvent.KEYCODE_2); - put(Keys.NUMPAD3, KeyEvent.KEYCODE_3); - put(Keys.NUMPAD4, KeyEvent.KEYCODE_4); - put(Keys.NUMPAD5, KeyEvent.KEYCODE_5); - put(Keys.NUMPAD6, KeyEvent.KEYCODE_6); - put(Keys.NUMPAD7, KeyEvent.KEYCODE_7); - put(Keys.NUMPAD8, KeyEvent.KEYCODE_8); - put(Keys.NUMPAD9, KeyEvent.KEYCODE_9); - put(Keys.ADD, KeyEvent.KEYCODE_PLUS); - put(Keys.SUBTRACT, KeyEvent.KEYCODE_MINUS); - put(Keys.DECIMAL, KeyEvent.KEYCODE_NUM); - }}; - - /* package */ static int getKeyEventFromUnicodeKey(char key) { - if (key == '\b') { - return KeyEvent.KEYCODE_DEL; - } else if (key == '\r') { - return KeyEvent.KEYCODE_ENTER; - } - for (Keys seleniumKey : keyMapping.keySet()) { - if (seleniumKey.charAt(0) == key) { - return keyMapping.get(seleniumKey); - } - } - return -1; - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/AndroidLocalStorage.java b/java/client/src/org/openqa/selenium/android/library/AndroidLocalStorage.java deleted file mode 100644 index 7d8f05e345cc0..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/AndroidLocalStorage.java +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright 2011 Selenium committers - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import org.openqa.selenium.html5.LocalStorage; - -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; - -class AndroidLocalStorage implements LocalStorage { - private final AndroidWebDriver driver; - - /* package */ AndroidLocalStorage(AndroidWebDriver driver) { - this.driver = driver; - } - - public String getItem(String key) { - return (String) driver.executeAtom(AndroidAtoms.GET_LOCAL_STORAGE_ITEM.getValue(), key); - } - - public Set keySet() { - return new HashSet - ((Collection) driver.executeAtom(AndroidAtoms.GET_LOCAL_STORAGE_KEYS.getValue())); - } - - public void setItem(String key, String value) { - driver.executeAtom(AndroidAtoms.SET_LOCAL_STORAGE_ITEM.getValue(), key, value); - } - - public String removeItem(String key) { - return (String) driver.executeAtom(AndroidAtoms.REMOVE_LOCAL_STORAGE_ITEM.getValue(), key); - } - - public void clear() { - driver.executeAtom(AndroidAtoms.CLEAR_LOCAL_STORAGE.getValue()); - } - - public int size() { - return ((Long) driver.executeAtom(AndroidAtoms.GET_LOCAL_STORAGE_SIZE.getValue())).intValue(); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/AndroidLogs.java b/java/client/src/org/openqa/selenium/android/library/AndroidLogs.java deleted file mode 100644 index 8bf369a08d303..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/AndroidLogs.java +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import org.openqa.selenium.logging.LogEntries; -import org.openqa.selenium.logging.LogEntry; -import org.openqa.selenium.logging.LogType; -import org.openqa.selenium.logging.LoggingHandler; -import org.openqa.selenium.logging.Logs; - -import java.util.List; -import java.util.Set; - -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; - -public class AndroidLogs implements Logs { - - public LogEntries get(String logType) { - if (LogType.CLIENT.equals(logType)) { - LoggingHandler loggingHandler = LoggingHandler.getInstance(); - List entries = loggingHandler.getRecords(); - loggingHandler.flush(); - return new LogEntries(entries); - } - return new LogEntries(Lists.newArrayList()); - } - - public Set getAvailableLogTypes() { - return ImmutableSet.of(LogType.CLIENT); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/AndroidSessionStorage.java b/java/client/src/org/openqa/selenium/android/library/AndroidSessionStorage.java deleted file mode 100644 index 3f386cbc6be2b..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/AndroidSessionStorage.java +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright 2011 Selenium committers - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import org.openqa.selenium.html5.SessionStorage; - -import java.util.Collection; -import java.util.HashSet; -import java.util.Set; - -class AndroidSessionStorage implements SessionStorage { - private final AndroidWebDriver driver; - - /* package */ AndroidSessionStorage(AndroidWebDriver driver) { - this.driver = driver; - } - - public String getItem(String key) { - return (String) driver.executeAtom(AndroidAtoms.GET_SESSION_STORAGE_ITEM.getValue(), key); - } - - public Set keySet() { - return new HashSet - ((Collection) driver.executeAtom(AndroidAtoms.GET_SESSION_STORAGE_KEYS.getValue())); - } - - public void setItem(String key, String value) { - driver.executeAtom(AndroidAtoms.SET_SESSION_STORAGE_ITEM.getValue(), key, value); - } - - public String removeItem(String key) { - return (String) driver.executeAtom(AndroidAtoms.REMOVE_SESSION_STORAGE_ITEM.getValue(), key); - } - - public void clear() { - driver.executeAtom(AndroidAtoms.CLEAR_SESSION_STORAGE.getValue()); - } - - public int size() { - return ((Long) driver.executeAtom(AndroidAtoms.GET_SESSION_STORAGE_SIZE.getValue())).intValue(); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/AndroidTouchScreen.java b/java/client/src/org/openqa/selenium/android/library/AndroidTouchScreen.java deleted file mode 100644 index 06b0b6f9cbfbb..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/AndroidTouchScreen.java +++ /dev/null @@ -1,246 +0,0 @@ -/* -Copyright 2011 Selenium committers - - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import com.google.common.collect.Lists; - -import android.os.SystemClock; -import android.view.MotionEvent; - -import org.openqa.selenium.Point; -import org.openqa.selenium.interactions.TouchScreen; -import org.openqa.selenium.interactions.internal.Coordinates; - -import java.util.List; - -/** - * Implements touch capabilities of a device. - * - */ -class AndroidTouchScreen implements TouchScreen { - - private final AndroidWebDriver driver; - - /* package */ AndroidTouchScreen(AndroidWebDriver driver) { - this.driver = driver; - } - - public void singleTap(Coordinates where) { - Point toTap = where.onScreen(); - List motionEvents = Lists.newArrayList(); - long downTime = SystemClock.uptimeMillis(); - motionEvents.add(getMotionEvent(downTime, downTime, MotionEvent.ACTION_DOWN, toTap)); - motionEvents.add(getMotionEvent(downTime, downTime, MotionEvent.ACTION_UP, toTap)); - sendMotionEvents(motionEvents); - } - - public void down(int x, int y) { - List event = Lists.newArrayList(); - long downTime = SystemClock.uptimeMillis(); - Point coords = new Point(x, y); - event.add(getMotionEvent(downTime, downTime, MotionEvent.ACTION_DOWN, coords)); - sendMotionEvents(event); - } - - public void up(int x, int y) { - List event = Lists.newArrayList(); - long downTime = SystemClock.uptimeMillis(); - Point coords = new Point(x, y); - event.add(getMotionEvent(downTime, downTime, MotionEvent.ACTION_UP, coords)); - sendMotionEvents(event); - } - - public void move(int x, int y) { - List event = Lists.newArrayList(); - long downTime = SystemClock.uptimeMillis(); - Point coords = new Point(x, y); - event.add(getMotionEvent(downTime, downTime, MotionEvent.ACTION_MOVE, coords)); - sendMotionEvents(event); - } - - public void scroll(Coordinates where, int xOffset, int yOffset) { - long downTime = SystemClock.uptimeMillis(); - List motionEvents = Lists.newArrayList(); - Point origin = where.onScreen(); - Point destination = new Point(origin.x + xOffset, origin.y + yOffset); - motionEvents.add(getMotionEvent(downTime, downTime, MotionEvent.ACTION_DOWN, origin)); - - Scroll scroll = new Scroll(origin, destination, downTime); - // Initial acceleration from origin to reference point - motionEvents.addAll(getMoveEvents(downTime, downTime, origin, scroll.getDecelerationPoint(), - scroll.INITIAL_STEPS, scroll.TIME_BETWEEN_EVENTS)); - // Deceleration phase from reference point to destination - motionEvents.addAll(getMoveEvents(downTime, scroll.getEventTimeForReferencePoint(), - scroll.getDecelerationPoint(), destination, scroll.DECELERATION_STEPS, - scroll.TIME_BETWEEN_EVENTS)); - - motionEvents.add(getMotionEvent(downTime, (downTime + scroll.getEventTimeForDestinationPoint()), - MotionEvent.ACTION_UP, destination)); - sendMotionEvents(motionEvents); - } - - public void doubleTap(Coordinates where) { - Point toDoubleTap = where.onScreen(); - List motionEvents = Lists.newArrayList(); - long downTime = SystemClock.uptimeMillis(); - motionEvents.add(getMotionEvent(downTime, downTime, MotionEvent.ACTION_DOWN, toDoubleTap)); - motionEvents.add(getMotionEvent(downTime, downTime, MotionEvent.ACTION_UP, toDoubleTap)); - motionEvents.add(getMotionEvent(downTime, downTime, MotionEvent.ACTION_DOWN, toDoubleTap)); - motionEvents.add(getMotionEvent(downTime, downTime, MotionEvent.ACTION_UP, toDoubleTap)); - sendMotionEvents(motionEvents); - } - - public void longPress(Coordinates where) { - long downTime = SystemClock.uptimeMillis(); - List motionEvents = Lists.newArrayList(); - Point point = where.onScreen(); - motionEvents.add(getMotionEvent(downTime, downTime, MotionEvent.ACTION_DOWN, point)); - motionEvents.add(getMotionEvent(downTime, (downTime + 3000), MotionEvent.ACTION_UP, point)); - sendMotionEvents(motionEvents); - } - - public void scroll(final int xOffset, final int yOffset) { - driver.getActivity().runOnUiThread(new Runnable() { - public void run() { - driver.getWebView().scrollBy(xOffset, yOffset); - } - }); - } - - public void flick(final int speedX, final int speedY) { - driver.getActivity().runOnUiThread(new Runnable() { - public void run() { - driver.getWebView().flingScroll(speedX, speedY); - } - }); - } - - public void flick(Coordinates where, int xOffset, int yOffset, int speed) { - long downTime = SystemClock.uptimeMillis(); - List motionEvents = Lists.newArrayList(); - Point origin = where.onScreen(); - Point destination = new Point(origin.x + xOffset, origin.y + yOffset); - Flick flick = new Flick(speed); - motionEvents.add(getMotionEvent(downTime, downTime, MotionEvent.ACTION_DOWN, origin)); - motionEvents.addAll(getMoveEvents(downTime, downTime, origin, destination, flick.STEPS, - flick.getTimeBetweenEvents())); - motionEvents.add(getMotionEvent(downTime, flick.getTimeForDestinationPoint(downTime), - MotionEvent.ACTION_UP, destination)); - sendMotionEvents(motionEvents); - } - - private MotionEvent getMotionEvent(long start, long eventTime, int action, Point coords) { - return MotionEvent.obtain(start, eventTime, action, coords.x, coords.y, 0); - } - - private List getMoveEvents(long downTime, long startingEVentTime, Point origin, - Point destination, int steps, long timeBetweenEvents) { - List move = Lists.newArrayList(); - MotionEvent event = null; - - float xStep = (destination.x - origin.x) / steps; - float yStep = (destination.y - origin.y) / steps; - float x = origin.x; - float y = origin.y; - long eventTime = startingEVentTime; - - for (int i = 0; i < steps - 1; i++) { - x += xStep; - y += yStep; - eventTime += timeBetweenEvents; - event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, x, y, 0); - move.add(event); - } - - eventTime += timeBetweenEvents; - move.add(getMotionEvent(downTime, eventTime, MotionEvent.ACTION_MOVE, destination)); - return move; - } - - private void sendMotionEvents(final List eventsToSend) { - driver.setEditAreaHasFocus(false); - EventSender.sendMotion(eventsToSend, driver.getWebView(), driver.getActivity()); - // If the page started loading we should wait until the page is done loading. - driver.waitForPageToLoad(); - } - - final class Scroll { - - private Point origin; - private Point destination; - private long downTime; - // A regular scroll usually has 15 gestures, where the last 5 are used for deceleration - final static int INITIAL_STEPS = 10; - final static int DECELERATION_STEPS = 5; - final int TOTAL_STEPS = INITIAL_STEPS + DECELERATION_STEPS; - // Time in milliseconds to provide a speed similar to scroll - final long TIME_BETWEEN_EVENTS = 50; - - public Scroll(Point origin, Point destination, long downTime) { - this.origin = origin; - this.destination = destination; - this.downTime = downTime; - } - - // This method is used to calculate the point where the deceleration will start at 20% of the - // distance to the destination point - private Point getDecelerationPoint() { - int deltaX = (destination.x - origin.x); - int deltaY = (destination.y - origin.y); - // Coordinates of reference point where deceleration should start for scroll gesture, on the - // last 20% of the total distance to scroll - int xRef = (int)(deltaX * 0.8); - int yRef = (int)(deltaY * 0.8); - return new Point(origin.x + xRef, origin.y + yRef); - } - - private long getEventTimeForReferencePoint() { - return (downTime + INITIAL_STEPS * TIME_BETWEEN_EVENTS); - } - - private long getEventTimeForDestinationPoint() { - return (downTime + TOTAL_STEPS * TIME_BETWEEN_EVENTS); - } - } - - final class Flick { - - private final int SPEED_NORMAL = 0; - private final int SPEED_FAST = 1; - // A regular scroll usually has 4 gestures - private final static int STEPS = 4; - private int speed; - - public Flick(int speed) { - this.speed = speed; - } - - private long getTimeBetweenEvents() { - if (speed == SPEED_NORMAL) { - return 25; // Time in milliseconds to provide a speed similar to normal flick - } else if (speed == SPEED_FAST) { - return 9; // Time in milliseconds to provide a speed similar to fast flick - } - return 0; - } - - private long getTimeForDestinationPoint(long downTime) { - return (downTime + STEPS * getTimeBetweenEvents()); - } - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/AndroidWebDriver.java b/java/client/src/org/openqa/selenium/android/library/AndroidWebDriver.java deleted file mode 100644 index 2ab707fa0d58f..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/AndroidWebDriver.java +++ /dev/null @@ -1,1367 +0,0 @@ -/* -Copyright 2011 Selenium committers - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import com.google.common.base.Supplier; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.Picture; -import android.location.LocationListener; -import android.location.LocationManager; -import android.os.Bundle; -import android.os.Environment; -import android.os.Looper; -import android.provider.Settings; -import android.view.View; -import android.webkit.CookieManager; -import android.webkit.CookieSyncManager; -import android.webkit.WebView; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; -import org.openqa.selenium.Alert; -import org.openqa.selenium.Beta; -import org.openqa.selenium.By; -import org.openqa.selenium.Cookie; -import org.openqa.selenium.JavascriptExecutor; -import org.openqa.selenium.NoAlertPresentException; -import org.openqa.selenium.NoSuchElementException; -import org.openqa.selenium.NoSuchFrameException; -import org.openqa.selenium.NoSuchWindowException; -import org.openqa.selenium.OutputType; -import org.openqa.selenium.Rotatable; -import org.openqa.selenium.ScreenOrientation; -import org.openqa.selenium.SearchContext; -import org.openqa.selenium.StaleElementReferenceException; -import org.openqa.selenium.TakesScreenshot; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebDriverException; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.html5.AppCacheStatus; -import org.openqa.selenium.html5.ApplicationCache; -import org.openqa.selenium.html5.BrowserConnection; -import org.openqa.selenium.html5.LocalStorage; -import org.openqa.selenium.html5.Location; -import org.openqa.selenium.html5.LocationContext; -import org.openqa.selenium.html5.SessionStorage; -import org.openqa.selenium.html5.WebStorage; -import org.openqa.selenium.interactions.HasTouchScreen; -import org.openqa.selenium.interactions.TouchScreen; -import org.openqa.selenium.internal.Base64Encoder; -import org.openqa.selenium.internal.FindsByClassName; -import org.openqa.selenium.internal.FindsByCssSelector; -import org.openqa.selenium.internal.FindsById; -import org.openqa.selenium.internal.FindsByLinkText; -import org.openqa.selenium.internal.FindsByName; -import org.openqa.selenium.internal.FindsByTagName; -import org.openqa.selenium.internal.FindsByXPath; -import org.openqa.selenium.internal.WrapsElement; -import org.openqa.selenium.io.IOUtils; -import org.openqa.selenium.logging.Logs; -import org.openqa.selenium.remote.ErrorCodes; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileWriter; -import java.io.IOException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.TimeUnit; -import java.util.logging.Level; - -public class AndroidWebDriver implements WebDriver, SearchContext, JavascriptExecutor, - TakesScreenshot, Rotatable, BrowserConnection, HasTouchScreen, - WebStorage, LocationContext, LocationListener, ApplicationCache { - - private static final String ELEMENT_KEY = "ELEMENT"; - private static final String WINDOW_KEY = "WINDOW"; - private static final String STATUS = "status"; - private static final String VALUE = "value"; - - private AndroidWebElement element; - private DomWindow currentWindowOrFrame; - private long implicitWait = 0; - - // Maps the element ID to the AndroidWebElement - private Map store; - private AndroidTouchScreen touchScreen; - private AndroidNavigation navigation; - private AndroidOptions options; - private AndroidLocalStorage localStorage; - private AndroidSessionStorage sessionStorage; - private AndroidTargetLocator targetLocator; - private AndroidFindBy findBy; - private AndroidLogs logs; - - // Use for control redirect, contains the last url loaded (updated after each redirect) - private volatile String lastUrlLoaded; - - private SessionCookieManager sessionCookieManager; - private ViewAdapter view; - private WebDriverViewManager viewManager; - private final Object syncObject = new Object(); - private volatile boolean pageDoneLoading; - private NetworkStateHandler networkHandler; - private Activity activity; - private volatile boolean editAreaHasFocus; - - private volatile String result; - private volatile boolean resultReady; - - // Timeouts in milliseconds - private static final long LOADING_TIMEOUT = 30000L; - private static final long START_LOADING_TIMEOUT = 700L; - static final long RESPONSE_TIMEOUT = 10000L; - private static final long FOCUS_TIMEOUT = 1000L; - private static final long POLLING_INTERVAL = 50L; - static final long UI_TIMEOUT = 3000L; - - private boolean acceptSslCerts; - private volatile boolean pageStartedLoading; - private boolean done = false; - - private Supplier locManagerSupplier; - private String locationProvider; - - private JavascriptResultNotifier notifier = new JavascriptResultNotifier() { - public void notifyResultReady(String updated) { - synchronized (syncObject) { - result = updated; - resultReady = true; - syncObject.notify(); - } - } - }; - - private AndroidWebElement getOrCreateWebElement(String id) { - if (store.get(id) != null) { - return store.get(id); - } else { - AndroidWebElement toReturn = new AndroidWebElement(this, id); - store.put(id, toReturn); - return toReturn; - } - } - - public void setAcceptSslCerts(boolean accept) { - acceptSslCerts = accept; - } - - public boolean getAcceptSslCerts() { - return acceptSslCerts; - } - - private void initDriverState() { - store = Maps.newHashMap(); - findBy = new AndroidFindBy(); - currentWindowOrFrame = new DomWindow(""); - store = Maps.newHashMap(); - touchScreen = new AndroidTouchScreen(this); - navigation = new AndroidNavigation(); - options = new AndroidOptions(); - element = getOrCreateWebElement(""); - localStorage = new AndroidLocalStorage(this); - sessionStorage = new AndroidSessionStorage(this); - targetLocator = new AndroidTargetLocator(); - viewManager = new WebDriverViewManager(); - logs = new AndroidLogs(); - - Looper.prepare(); - try { - locationProvider = LocationManager.GPS_PROVIDER; - final LocationManager locManager = - (LocationManager)activity.getSystemService(Context.LOCATION_SERVICE); - locManagerSupplier = new Supplier() { - public LocationManager get() { - return locManager; - } - }; - locManager.addTestProvider(locationProvider, - true, true, true, true, true, true, true, 0, 5); - locManager.setTestProviderEnabled(locationProvider, true); - locManager.requestLocationUpdates(locationProvider, 0, 0, this); - } catch (SecurityException e) { - // Devices require manually setting up to allow location, 99% of tests don't need location, - // ignore the relevant exception here - locManagerSupplier = new Supplier() { - public LocationManager get() { - throw new IllegalStateException( - "The permission to ALLOW_MOCK_LOCATION needs to be set on your android device, " + - "but currently is not. Cannot perform location actions without this permission."); - } - }; - } - } - - private void initCookiesState() { - // Needs to be called before CookieMAnager::getInstance() - CookieSyncManager.createInstance(activity); - sessionCookieManager = new SessionCookieManager(); - CookieManager cookieManager = CookieManager.getInstance(); - cookieManager.removeAllCookie(); - } - - /** - * Use this contructor to use WebDriver with a WebView that has the same settings as - * the Android browser. - * - * @param activity the activity context where the WebView will be created. - */ - public AndroidWebDriver(Activity activity) { - this.activity = activity; - initDriverState(); - ChromeClientWrapper chromeWrapper = new ChromeClientWrapper("android.webkit.WebChromeClient", - new DefaultChromeClient()); - ViewClientWrapper viewClientWrapper = new ViewClientWrapper("android.webkit.WebViewClient", - new DefaultViewClient()); - WebDriverView wdview = new WebDriverView(this, new DefaultWebViewFactory(), - viewClientWrapper, chromeWrapper, null); - // Create a new view and delete existing windows. - newWebView( /*Delete existing windows*/true, wdview); - initCookiesState(); - networkHandler = new NetworkStateHandler(activity, view); - } - - /** - * Use this constructor to use WebDriver with a custom view. - * - * @param activity the activity context where the view will be displayed. - * @param viewFactory a implementation of the ViewFactory interface. WebDriver will - * use this creation mechanism to create views when needed (e.g. when clicking on a link - * that opens a new window). - * @param viewClient the ViewClientWrapper used by the custom WebView. - * @param chromeClient the ChromeClientWrapper used by the custom WebView. - */ - public AndroidWebDriver(Activity activity, ViewFactory viewFactory, - ViewClientWrapper viewClient, ChromeClientWrapper chromeClient) { - this.activity = activity; - initDriverState(); - WebDriverView wdview = new WebDriverView(this, viewFactory, viewClient, chromeClient, - null); - newWebView(/*Delete existing windows*/true, wdview); - initCookiesState(); - networkHandler = new NetworkStateHandler(activity, view); - } - - /** - * Use this constructor to use WebDriver with a custom view and a custom - * View.OnFocusChangeListener for that view.. - * - * @param activity the activity context where the view will be displayed. - * @param viewFactory a implementation of the ViewFactory interface. WebDriver will - * use this creation mechanism to create views when needed (e.g. when clicking on a link - * that opens a new window). - * @param viewClient the ViewClientWrapper used by the custom WebView. - * @param chromeClient the ChromeClientWrapper used by the custom WebView. - * @param focusListener the listener used by the view that will be created by the viewFactory. - */ - public AndroidWebDriver(Activity activity, ViewFactory viewFactory, - ViewClientWrapper viewClient, ChromeClientWrapper chromeClient, - View.OnFocusChangeListener focusListener) { - this.activity = activity; - initDriverState(); - WebDriverView wdview = new WebDriverView(this, viewFactory, viewClient, chromeClient, - focusListener); - newWebView(/*Delete existing windows*/true, wdview); - initCookiesState(); - networkHandler = new NetworkStateHandler(activity, view); - } - - String getLastUrlLoaded() { - return lastUrlLoaded; - } - - void setLastUrlLoaded(String url) { - this.lastUrlLoaded = url; - } - - void setEditAreaHasFocus(boolean focused) { - editAreaHasFocus = focused; - } - - boolean getEditAreaHasFocus() { - return editAreaHasFocus; - } - - void resetPageIsLoading() { - pageStartedLoading = false; - pageDoneLoading = false; - } - - void notifyPageStartedLoading() { - synchronized (syncObject) { - pageStartedLoading = true; - pageDoneLoading = false; - syncObject.notify(); - } - } - - void notifyPageDoneLoading() { - synchronized (syncObject) { - pageDoneLoading = true; - syncObject.notify(); - } - } - - void waitForPageToLoad() { - synchronized (syncObject) { - long timeout = System.currentTimeMillis() + START_LOADING_TIMEOUT; - while (!pageStartedLoading && (System.currentTimeMillis() < timeout)) { - try { - syncObject.wait(POLLING_INTERVAL); - } catch (InterruptedException e) { - throw new RuntimeException(); - } - } - - long end = System.currentTimeMillis() + LOADING_TIMEOUT; - while (!pageDoneLoading && pageStartedLoading && (System.currentTimeMillis() < end)) { - try { - syncObject.wait(LOADING_TIMEOUT); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } - } - } - - void waitUntilEditAreaHasFocus() { - long timeout = System.currentTimeMillis() + FOCUS_TIMEOUT; - while (!editAreaHasFocus && (System.currentTimeMillis() < timeout)) { - try { - Thread.sleep(POLLING_INTERVAL); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } - } - - public WebView getWebView() { - if (view.getUnderlyingView() instanceof WebView) { - return (WebView) view.getUnderlyingView(); - } - throw new WebDriverException("This WebDriver instance is not using a WebView!"); - } - - public Object getView() { - return view.getUnderlyingView(); - } - - void newWebView(boolean newDriver, final WebDriverView wdview) { - // If we are requesting a new driver, then close all - // existing window before opening a new one. - if (newDriver) { - quit(); - } - long start = System.currentTimeMillis(); - long end = start + UI_TIMEOUT; - done = false; - activity.runOnUiThread(new Runnable() { - public void run() { - synchronized (syncObject) { - final ViewAdapter newView = wdview.create(); - view = newView; - viewManager.addView(view); - activity.setContentView((View) view.getUnderlyingView()); - done = true; - syncObject.notify(); - } - } - }); - waitForDone(end, UI_TIMEOUT, "Failed to create WebView."); - } - - private void waitForDone(long end, long timeout, String error) { - synchronized (syncObject) { - while (!done && System.currentTimeMillis() < end) { - try { - syncObject.wait(timeout); - } catch (InterruptedException e) { - throw new WebDriverException(error, e); - } - } - } - } - - WebDriverViewManager getViewManager() { - return viewManager; - } - - public Activity getActivity() { - return activity; - } - - public String getCurrentUrl() { - if (view == null) { - throw new WebDriverException("No open windows."); - } - done = false; - - long end = System.currentTimeMillis() + UI_TIMEOUT; - final String[] url = new String[1]; - activity.runOnUiThread(new Runnable() { - public void run() { - synchronized (syncObject) { - url[0] = view.getUrl(); - done = true; - syncObject.notify(); - } - } - }); - waitForDone(end, UI_TIMEOUT, "Failed to get current url."); - return url[0]; - } - - public String getTitle() { - if (view == null) { - throw new WebDriverException("No open windows."); - } - long end = System.currentTimeMillis() + UI_TIMEOUT; - final String[] title = new String[1]; - done = false; - activity.runOnUiThread(new Runnable() { - public void run() { - synchronized (syncObject) { - title[0] = view.getTitle(); - done = true; - syncObject.notify(); - } - } - }); - waitForDone(end, UI_TIMEOUT, "Failed to get title"); - return title[0]; - } - - public void get(String url) { - navigation.to(url); - } - - public String getPageSource() { - return (String) executeScript( - "return (new XMLSerializer()).serializeToString(document.documentElement);"); - } - - public void close() { - if (view == null) { - throw new WebDriverException("No open windows."); - } - - // Dispose of existing alerts (if any) for this view. - AlertManager.removeAlertForView(view); - - done = false; - long end = System.currentTimeMillis() + RESPONSE_TIMEOUT; - activity.runOnUiThread(new Runnable() { - public void run() { - synchronized (syncObject) { - view.destroy(); - viewManager.removeView(view); - done = true; - syncObject.notify(); - } - } - }); - waitForDone(end, RESPONSE_TIMEOUT, "Failed to close window."); - view = null; - } - - public void quit() { - AlertManager.removeAllAlerts(); - activity.runOnUiThread(new Runnable() { - public void run() { - viewManager.closeAll(); - view = null; - } - }); - } - - public WebElement findElement(By by) { - long start = System.currentTimeMillis(); - while (true) { - try { - return by.findElement(findBy); - } catch (NoSuchElementException e) { - if (System.currentTimeMillis() - start > implicitWait) { - throw e; - } - sleepQuietly(100); - } - } - } - - public List findElements(By by) { - long start = System.currentTimeMillis(); - List found = by.findElements(findBy); - while (found.isEmpty() && (System.currentTimeMillis() - start <= implicitWait)) { - sleepQuietly(100); - found = by.findElements(findBy); - } - return found; - } - - public AppCacheStatus getStatus() { - Long scriptRes = (Long) executeRawScript("(" + AndroidAtoms.GET_APPCACHE_STATUS.getValue() + ")()"); - return AppCacheStatus.getEnum(scriptRes.intValue()); - } - - private class AndroidFindBy implements SearchContext, FindsByTagName, FindsById, - FindsByLinkText, FindsByName, FindsByXPath, FindsByCssSelector, FindsByClassName { - - public WebElement findElement(By by) { - long start = System.currentTimeMillis(); - while (true) { - try { - return by.findElement(findBy); - } catch (NoSuchElementException e) { - if (System.currentTimeMillis() - start > implicitWait) { - throw e; - } - sleepQuietly(100); - } - } - } - - public List findElements(By by) { - long start = System.currentTimeMillis(); - List found = by.findElements(findBy); - while (found.isEmpty() && (System.currentTimeMillis() - start <= implicitWait)) { - sleepQuietly(100); - found = by.findElements(this); - } - return found; - } - - public WebElement findElementByLinkText(String using) { - return element.getFinder().findElementByLinkText(using); - } - - public List findElementsByLinkText(String using) { - return element.getFinder().findElementsByLinkText(using); - } - - public WebElement findElementById(String id) { - return element.getFinder().findElementById(id); - } - - public List findElementsById(String id) { - return findElementsByXPath("//*[@id='" + id + "']"); - } - - public WebElement findElementByName(String using) { - return element.getFinder().findElementByName(using); - } - - public List findElementsByName(String using) { - return element.getFinder().findElementsByName(using); - } - - public WebElement findElementByTagName(String using) { - return element.getFinder().findElementByTagName(using); - } - - public List findElementsByTagName(String using) { - return element.getFinder().findElementsByTagName(using); - } - - public WebElement findElementByXPath(String using) { - return element.getFinder().findElementByXPath(using); - } - - public List findElementsByXPath(String using) { - return element.getFinder().findElementsByXPath(using); - } - - public WebElement findElementByPartialLinkText(String using) { - return element.getFinder().findElementByPartialLinkText(using); - } - - public List findElementsByPartialLinkText(String using) { - return element.getFinder().findElementsByPartialLinkText(using); - } - - public WebElement findElementByCssSelector(String using) { - return element.getFinder().findElementByCssSelector(using); - } - - public List findElementsByCssSelector(String using) { - return element.getFinder().findElementsByCssSelector(using); - } - - public WebElement findElementByClassName(String using) { - return element.getFinder().findElementByClassName(using); - } - - public List findElementsByClassName(String using) { - return element.getFinder().findElementsByClassName(using); - } - } - - private static void sleepQuietly(long ms) { - try { - Thread.sleep(ms); - } catch (InterruptedException cause) { - Thread.currentThread().interrupt(); - throw new WebDriverException(cause); - } - } - - public Set getWindowHandles() { - return viewManager.getAllHandles(); - } - - public String getWindowHandle() { - String r = viewManager.getWindowHandle(view); - if (r == null) { - throw new WebDriverException("FATAL ERROR HANDLE IS NULL"); - } - return r; - } - - public TargetLocator switchTo() { - return targetLocator; - } - - public LocalStorage getLocalStorage() { - return localStorage; - } - - public SessionStorage getSessionStorage() { - return sessionStorage; - } - - private class AndroidTargetLocator implements TargetLocator { - - public WebElement activeElement() { - return (WebElement) executeRawScript("(" + AndroidAtoms.ACTIVE_ELEMENT.getValue() + ")()"); - } - - public WebDriver defaultContent() { - executeRawScript("(" + AndroidAtoms.DEFAULT_CONTENT.getValue() + ")()"); - return AndroidWebDriver.this; - } - - public WebDriver frame(int index) { - DomWindow window = executeRawFrameSwitchingJs( - "(" + AndroidAtoms.FRAME_BY_INDEX.getValue() + ")(" + index + ")"); - currentWindowOrFrame = window; - return AndroidWebDriver.this; - } - - public WebDriver frame(String frameNameOrId) { - DomWindow window = executeRawFrameSwitchingJs( - "(" + AndroidAtoms.FRAME_BY_ID_OR_NAME.getValue() + ")('" + frameNameOrId + "')"); - - currentWindowOrFrame = window; - return AndroidWebDriver.this; - } - - public WebDriver frame(WebElement frameElement) { - DomWindow window = executeFrameSwitchingJs("return arguments[0].contentWindow;", - ((WrapsElement) frameElement).getWrappedElement()); - - currentWindowOrFrame = window; - return AndroidWebDriver.this; - } - - private DomWindow executeRawFrameSwitchingJs(String js) { - Object result; - - try { - result = executeRawScript(js); - } catch (WebDriverException e) { - throw new NoSuchFrameException("Cannot switch to frame", e); - } - - return processFrameResult(result); - } - - private DomWindow executeFrameSwitchingJs(String js, Object arg) { - Object result; - - try { - result = executeScript(js, arg); - } catch (WebDriverException e) { - throw new NoSuchFrameException("Cannot switch to frame", e); - } - - return processFrameResult(result); - } - - - private DomWindow processFrameResult(Object result) { - if (result == null) { - throw new NoSuchFrameException("Cannot switch to frame"); - } - - if (!(result instanceof DomWindow)) { - throw new NoSuchFrameException("A result was returned, but it was not a window: " + result); - } - return (DomWindow) result; - } - - public WebDriver window(final String nameOrHandle) { - final boolean[] shouldhTrow = new boolean[1]; - shouldhTrow[0] = false; - - done = false; - long end = System.currentTimeMillis() + RESPONSE_TIMEOUT; - activity.runOnUiThread(new Runnable() { - public void run() { - synchronized (syncObject) { - ViewAdapter v = viewManager.getView(nameOrHandle); - if (v != null) { - view = v; - } else { - // Can't throw an exception in the UI thread - // Or the App crashes - shouldhTrow[0] = true; - } - activity.setContentView((View) view.getUnderlyingView()); - done = true; - syncObject.notify(); - } - } - }); - waitForDone(end, RESPONSE_TIMEOUT, "Failed to switch to window: " + nameOrHandle); - if (shouldhTrow[0]) { - throw new NoSuchWindowException( - "Window '" + nameOrHandle + "' does not exist."); - } - return AndroidWebDriver.this; - } - - public Alert alert() { - if (view == null) { - // An alert may have popped up when the window was closed. - // If there is an alert, just return it. - throw new WebDriverException("Asked for an alert without a window context. " + - "switchTo().window(...) first."); - } - - Alert foundAlert = AlertManager.getAlertForView(view); - - if (foundAlert == null) { - throw new NoAlertPresentException("No alert in current view."); - } - - return foundAlert; - } - } - - public Navigation navigate() { - return navigation; - } - - public boolean isJavascriptEnabled() { - return true; - } - - public Object executeScript(String script, Object... args) { - return injectJavascript(script, false, args); - } - - public Object executeAsyncScript(String script, Object... args) { - throw new UnsupportedOperationException("This is feature will be implemented soon!"); - } - - /** - * Converts the arguments passed to a JavaScript friendly format. - * - * @param args The arguments to convert. - * @return Comma separated Strings containing the arguments. - */ - private String convertToJsArgs(final Object... args) { - StringBuilder toReturn = new StringBuilder(); - int length = args.length; - for (int i = 0; i < length; i++) { - toReturn.append((i > 0) ? "," : ""); - if (args[i] instanceof List) { - toReturn.append("["); - List aList = (List) args[i]; - for (int j = 0; j < aList.size(); j++) { - String comma = ((j == 0) ? "" : ","); - toReturn.append(comma + convertToJsArgs(aList.get(j))); - } - toReturn.append("]"); - } else if (args[i] instanceof Map) { - Map aMap = (Map) args[i]; - String toAdd = "{"; - for (Object key : aMap.keySet()) { - toAdd += key + ":" - + convertToJsArgs(aMap.get(key)) + ","; - } - toReturn.append(toAdd.substring(0, toAdd.length() - 1) + "}"); - } else if (args[i] instanceof WebElement) { - // A WebElement is represented in JavaScript by an Object as - // follow: {"ELEMENT":"id"} where "id" refers to the id - // of the HTML element in the javascript cache that can - // be accessed throught bot.inject.cache.getCache_() - toReturn.append("{\"" + ELEMENT_KEY + "\":\"" - + ((AndroidWebElement) args[i]).getId() + "\"}"); - } else if (args[i] instanceof DomWindow) { - // A DomWindow is represented in JavaScript by an Object as - // follow {"WINDOW":"id"} where "id" refers to the id of the - // DOM window in the cache. - toReturn.append("{\"" + WINDOW_KEY + "\":\"" + ((DomWindow) args[i]).getKey() + "\"}"); - } else if (args[i] instanceof Number || args[i] instanceof Boolean) { - toReturn.append(String.valueOf(args[i])); - } else if (args[i] instanceof String) { - toReturn.append(escapeAndQuote((String) args[i])); - } else { - throw new IllegalArgumentException( - "Javascript arguments can be " - + "a Number, a Boolean, a String, a WebElement, " - + "or a List or a Map of those. Got: " - + ((args[i] == null) ? "null" : args[i].getClass() - + ", value: " + args[i].toString())); - } - } - return toReturn.toString(); - } - - /** - * Wraps the given string into quotes and escape existing quotes and backslashes. "foo" -> - * "\"foo\"" "foo\"" -> "\"foo\\\"\"" "fo\o" -> "\"fo\\o\"" - * - * @param toWrap The String to wrap in quotes - * @return a String wrapping the original String in quotes - */ - private static String escapeAndQuote(final String toWrap) { - StringBuilder toReturn = new StringBuilder("\""); - for (int i = 0; i < toWrap.length(); i++) { - char c = toWrap.charAt(i); - if (c == '\"') { - toReturn.append("\\\""); - } else if (c == '\\') { - toReturn.append("\\\\"); - } else { - toReturn.append(c); - } - } - toReturn.append("\""); - return toReturn.toString(); - } - - void writeTo(String name, String toWrite) { - try { - File f = new File(Environment.getExternalStorageDirectory(), - name); - FileWriter w = new FileWriter(f); - w.append(toWrite); - w.flush(); - w.close(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - - private Object executeRawScript(String toExecute) { - String result = executeJavascriptInWebView("window.webdriver.resultMethod(" + toExecute + ")"); - - if (result == null || "undefined".equals(result)) { - return null; - } - try { - JSONObject json = new JSONObject(result); - throwIfError(json); - Object value = json.get(VALUE); - return convertJsonToJavaObject(value); - } catch (JSONException e) { - throw new RuntimeException("Failed to parse JavaScript result: " - + result.toString(), e); - } - } - - Object executeAtom(String toExecute, Object... args) { - String scriptInWindow = - "(function(){ " - + " var win; try{win=" + getWindowString() + "}catch(e){win=window;}" - + "with(win){return (" - + toExecute + ")(" + convertToJsArgs(args) + ")}})()"; - return executeRawScript(scriptInWindow); - } - - private String getWindowString() { - String window = ""; - if (!currentWindowOrFrame.getKey().equals("")) { - window = "document['$wdc_']['" + currentWindowOrFrame.getKey() + "'] ||"; - } - return (window += "window;"); - } - - Object injectJavascript(String toExecute, boolean isAsync, Object... args) { - String executeScript = AndroidAtoms.EXECUTE_SCRIPT.getValue(); - toExecute = "var win_context; try{win_context= " + getWindowString() + "}catch(e){" - + "win_context=window;}with(win_context){" + toExecute + "}"; - String wrappedScript = - "(function(){" - + "var win; try{win=" + getWindowString() + "}catch(e){win=window}" - + "with(win){return (" + executeScript + ")(" - + escapeAndQuote(toExecute) + ", [" + convertToJsArgs(args) + "], true)}})()"; - return executeRawScript(wrappedScript); - } - - private Object convertJsonToJavaObject(final Object toConvert) { - try { - if (toConvert == null - || toConvert.equals(null) - || "undefined".equals(toConvert) - || "null".equals(toConvert)) { - return null; - } else if (toConvert instanceof Boolean) { - return toConvert; - } else if (toConvert instanceof Double - || toConvert instanceof Float) { - return Double.valueOf(String.valueOf(toConvert)); - } else if (toConvert instanceof Integer - || toConvert instanceof Long) { - return Long.valueOf(String.valueOf(toConvert)); - } else if (toConvert instanceof JSONArray) { // List - return convertJsonArrayToList((JSONArray) toConvert); - } else if (toConvert instanceof JSONObject) { // Map or WebElment - JSONObject map = (JSONObject) toConvert; - if (map.opt(ELEMENT_KEY) != null) { // WebElement - return getOrCreateWebElement((String) map.get(ELEMENT_KEY)); - } else if (map.opt(WINDOW_KEY) != null) { // DomWindow - return new DomWindow((String) map.get(WINDOW_KEY)); - } else { // Map - return convertJsonObjectToMap(map); - } - } else { - return toConvert.toString(); - } - } catch (JSONException e) { - throw new RuntimeException("Failed to parse JavaScript result: " - + toConvert.toString(), e); - } - } - - private List convertJsonArrayToList(final JSONArray json) { - List toReturn = Lists.newArrayList(); - for (int i = 0; i < json.length(); i++) { - try { - toReturn.add(convertJsonToJavaObject(json.get(i))); - } catch (JSONException e) { - throw new RuntimeException("Failed to parse JSON: " - + json.toString(), e); - } - } - return toReturn; - } - - private Map convertJsonObjectToMap(final JSONObject json) { - Map toReturn = Maps.newHashMap(); - for (Iterator it = json.keys(); it.hasNext();) { - String key = (String) it.next(); - try { - Object value = json.get(key); - toReturn.put(convertJsonToJavaObject(key), - convertJsonToJavaObject(value)); - } catch (JSONException e) { - throw new RuntimeException("Failed to parse JSON:" - + json.toString(), e); - } - } - return toReturn; - } - - - private void throwIfError(final JSONObject jsonObject) { - int status; - String errorMsg; - try { - status = (Integer) jsonObject.get(STATUS); - errorMsg = String.valueOf(jsonObject.get(VALUE)); - } catch (JSONException e) { - throw new RuntimeException("Failed to parse JSON Object: " - + jsonObject, e); - } - switch (status) { - case ErrorCodes.SUCCESS: - return; - case ErrorCodes.NO_SUCH_ELEMENT: - throw new NoSuchElementException("Could not find " - + "WebElement."); - case ErrorCodes.STALE_ELEMENT_REFERENCE: - throw new StaleElementReferenceException("WebElement is stale."); - default: - if (jsonObject.toString().contains("Result of expression 'd.evaluate' [undefined] is" - + " not a function.")) { - throw new WebDriverException("You are using a version of Android WebDriver APK" - + " compatible with ICS SDKs or more recent SDKs. For more info take a look at" - + " http://code.google.com/p/selenium/wiki/AndroidDriver#Supported_Platforms. Error:" - + " " + jsonObject.toString()); - } - throw new WebDriverException("Error: " + errorMsg); - } - } - - /** - * Executes the given Javascript in the WebView and wait until it is done executing. If the - * Javascript executed returns a value, the later is updated in the class variable jsResult when - * the event is broadcasted. - * - * @param script the Javascript to be executed - */ - private String executeJavascriptInWebView(final String script) { - if (view == null) { - throw new WebDriverException("No open windows."); - } - result = null; - resultReady = false; - activity.runOnUiThread(new Runnable() { - public void run() { - org.openqa.selenium.android.library.JavascriptExecutor.executeJs( - view, notifier, script); - } - }); - long timeout = System.currentTimeMillis() + RESPONSE_TIMEOUT; - synchronized (syncObject) { - while (!resultReady && (System.currentTimeMillis() < timeout)) { - try { - syncObject.wait(RESPONSE_TIMEOUT); - } catch (InterruptedException e) { - throw new WebDriverException(e); - } - } - - return result; - } - } - - protected Object processJsonObject(Object res) throws JSONException { - if (res instanceof JSONArray) { - return convertJsonArray2List((JSONArray) res); - } else if ("undefined".equals(res)) { - return null; - } - return res; - } - - private List convertJsonArray2List(JSONArray arr) throws JSONException { - List list = new ArrayList(); - for (int i = 0; i < arr.length(); i++) { - list.add(processJsonObject(arr.get(i))); - } - return list; - } - - public void setProxy(String host, int port) { - if ((host != null) && (host.length() > 0)) { - System.getProperties().put("proxySet", "true"); - System.getProperties().put("proxyHost", host); - System.getProperties().put("proxyPort", port); - } - } - - public Options manage() { - return options; - } - - private class AndroidOptions implements Options { - - public Logs logs() { - return logs; - } - - public void addCookie(Cookie cookie) { - if (view == null) { - throw new WebDriverException("No open windows."); - } - sessionCookieManager.addCookie(getCurrentUrl(), cookie); - } - - public void deleteCookieNamed(String name) { - if (view == null) { - throw new WebDriverException("No open windows."); - } - sessionCookieManager.remove(getCurrentUrl(), name); - } - - public void deleteCookie(Cookie cookie) { - if (view == null) { - throw new WebDriverException("No open windows."); - } - sessionCookieManager.remove(getCurrentUrl(), cookie.getName()); - } - - public void deleteAllCookies() { - if (view == null) { - throw new WebDriverException("No open windows."); - } - sessionCookieManager.removeAllCookies(getCurrentUrl()); - } - - public Set getCookies() { - if (view == null) { - throw new WebDriverException("No open windows."); - } - return sessionCookieManager.getAllCookies(getCurrentUrl()); - } - - public Cookie getCookieNamed(String name) { - if (view == null) { - throw new WebDriverException("No open windows."); - } - return sessionCookieManager.getCookie(getCurrentUrl(), name); - } - - public Timeouts timeouts() { - return new AndroidTimeouts(); - } - - public ImeHandler ime() { - throw new UnsupportedOperationException("Not implementing IME input just yet."); - } - - @Beta - public Window window() { - throw new UnsupportedOperationException("Window handling not supported on Android"); - } - - } - - private class AndroidTimeouts implements Timeouts { - - public Timeouts implicitlyWait(long time, TimeUnit unit) { - implicitWait = TimeUnit.MILLISECONDS.convert(Math.max(0, time), unit); - return this; - } - - public Timeouts setScriptTimeout(long time, TimeUnit unit) { - //asyncScriptTimeout = TimeUnit.MILLISECONDS.convert(Math.max(0, time), unit); - return this; - } - - public Timeouts pageLoadTimeout(long time, TimeUnit unit) { - throw new UnsupportedOperationException("pageLoadTimeout"); - } - } - - public Location location() { - android.location.Location loc = locManagerSupplier.get().getLastKnownLocation(locationProvider); - return new Location(loc.getLatitude(), loc.getLongitude(), loc.getAltitude()); - } - - public void setLocation(Location loc) { - android.location.Location location = - new android.location.Location(locationProvider); - location.setLatitude(loc.getLatitude()); - location.setLongitude(loc.getLongitude()); - location.setAltitude(loc.getAltitude()); - // set the time so it's not ignored! - location.setTime(System.currentTimeMillis()); - locManagerSupplier.get().setTestProviderLocation(locationProvider, location); - } - - public void onLocationChanged(android.location.Location location) { - Logger.log(Level.WARNING, AndroidWebDriver.class.getName(), "onLocationChanged", - "New location: " + location.toString()); - } - - public void onStatusChanged(String s, int i, Bundle bundle) { - } - - public void onProviderEnabled(String s) { - } - - public void onProviderDisabled(String s) { - } - - private byte[] takeScreenshot() { - if (view == null) { - throw new WebDriverException("No open windows."); - } - done = false; - long end = System.currentTimeMillis() + RESPONSE_TIMEOUT; - final byte[][] rawPng = new byte[1][1]; - activity.runOnUiThread(new Runnable() { - public void run() { - synchronized (syncObject) { - Picture pic = view.capturePicture(); - // Bitmap of the entire document - Bitmap raw = Bitmap.createBitmap( - pic.getWidth(), - pic.getHeight(), - Bitmap.Config.RGB_565); - // Drawing on a canvas - Canvas cv = new Canvas(raw); - cv.drawPicture(pic); - - ByteArrayOutputStream stream = new ByteArrayOutputStream(); - if (!raw.compress(Bitmap.CompressFormat.PNG, 100, stream)) { - throw new RuntimeException( - "Error while compressing screenshot image."); - } - try { - stream.flush(); - stream.close(); - } catch (IOException e) { - throw new RuntimeException( - "I/O Error while capturing screenshot: " + e.getMessage()); - } finally { - IOUtils.closeQuietly(stream); - } - rawPng[0] = stream.toByteArray(); - done = true; - syncObject.notify(); - } - } - }); - - waitForDone(end, RESPONSE_TIMEOUT, "Failed to take screenshot."); - return rawPng[0]; - } - - public X getScreenshotAs(OutputType target) throws WebDriverException { - byte[] rawPng = takeScreenshot(); - String base64Png = new Base64Encoder().encode(rawPng); - return target.convertFromBase64Png(base64Png); - } - - public ScreenOrientation getOrientation() { - int value = activity.getRequestedOrientation(); - if (value == 0) { - return ScreenOrientation.LANDSCAPE; - } - return ScreenOrientation.PORTRAIT; - } - - public void rotate(ScreenOrientation orientation) { - activity.setRequestedOrientation(getAndroidScreenOrientation(orientation)); - } - - private int getAndroidScreenOrientation(ScreenOrientation orientation) { - if (ScreenOrientation.LANDSCAPE.equals(orientation)) { - return 0; - } - return 1; - } - - public boolean isOnline() { - return Settings.System.getInt(getActivity().getContentResolver(), - Settings.System.AIRPLANE_MODE_ON, 0) != 1; - } - - public void setOnline(boolean online) throws WebDriverException { - Settings.System.putInt(getActivity().getContentResolver(), - Settings.System.AIRPLANE_MODE_ON, online ? 0 : 1); - - Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); - intent.putExtra("state", online); - getActivity().sendBroadcast(intent); - } - - public TouchScreen getTouch() { - return touchScreen; - } - - private class AndroidNavigation implements Navigation { - - public void back() { - if (view == null) { - throw new WebDriverException("No open windows."); - } - pageDoneLoading = false; - activity.runOnUiThread(new Runnable() { - public void run() { - view.goBack(); - } - }); - waitForPageLoadToComplete(); - } - - public void forward() { - if (view == null) { - throw new WebDriverException("No open windows."); - } - pageDoneLoading = false; - activity.runOnUiThread(new Runnable() { - public void run() { - view.goForward(); - } - }); - waitForPageLoadToComplete(); - } - - public void to(final String url) { - if (url == null) { - return; - } - if (view == null) { - throw new WebDriverException("No open windows."); - } - pageDoneLoading = false; - activity.runOnUiThread(new Runnable() { - public void run() { - try { - view.loadUrl(url); - } catch (Exception e) { - // For some dark reason WebView sometimes throws an - // NPE here. - } - } - }); - waitForPageLoadToComplete(); - } - - public void to(URL url) { - to(url.toString()); - } - - public void refresh() { - if (view == null) { - throw new WebDriverException("No open windows."); - } - pageDoneLoading = false; - activity.runOnUiThread(new Runnable() { - public void run() { - view.reload(); - } - }); - waitForPageLoadToComplete(); - } - - private void waitForPageLoadToComplete() { - long timeout = System.currentTimeMillis() + LOADING_TIMEOUT; - synchronized (syncObject) { - while (!pageDoneLoading && (System.currentTimeMillis() < timeout)) { - try { - syncObject.wait(LOADING_TIMEOUT); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } - } - } - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/AndroidWebElement.java b/java/client/src/org/openqa/selenium/android/library/AndroidWebElement.java deleted file mode 100644 index a452ea34f5967..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/AndroidWebElement.java +++ /dev/null @@ -1,410 +0,0 @@ -/* -Copyright 2010 Selenium committers - - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import com.google.common.collect.Lists; - -import android.os.SystemClock; -import android.view.MotionEvent; -import android.webkit.WebView; - -import org.openqa.selenium.By; -import org.openqa.selenium.Dimension; -import org.openqa.selenium.ElementNotVisibleException; -import org.openqa.selenium.InvalidElementStateException; -import org.openqa.selenium.NoSuchElementException; -import org.openqa.selenium.Point; -import org.openqa.selenium.SearchContext; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebDriverException; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.interactions.internal.Coordinates; -import org.openqa.selenium.internal.FindsByClassName; -import org.openqa.selenium.internal.FindsByCssSelector; -import org.openqa.selenium.internal.FindsById; -import org.openqa.selenium.internal.FindsByLinkText; -import org.openqa.selenium.internal.FindsByTagName; -import org.openqa.selenium.internal.FindsByXPath; -import org.openqa.selenium.internal.Locatable; -import org.openqa.selenium.internal.WrapsDriver; -import org.openqa.selenium.internal.WrapsElement; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.Semaphore; - -import java.util.List; -import java.util.Map; - -/** - * Represents an Android HTML element. - */ -public class AndroidWebElement implements WebElement, - SearchContext, WrapsDriver, Locatable { - - private final AndroidWebDriver driver; - private final String elementId; - private AndroidCoordinates coordinates; - private FindByImpl findsBy; - - private static final String LOCATOR_ID = "id"; - private static final String LOCATOR_LINK_TEXT = "linkText"; - private static final String LOCATOR_PARTIAL_LINK_TEXT = "partialLinkText"; - private static final String LOCATOR_NAME = "name"; - private static final String LOCATOR_TAG_NAME = "tagName"; - private static final String LOCATOR_XPATH = "xpath"; - private static final String LOCATOR_CSS_SELECTOR = "css"; - private static final String LOCATOR_CLASS_NAME = "className"; - - AndroidWebElement(AndroidWebDriver driver, String elementId) { - this.driver = driver; - this.elementId = elementId; - findsBy = new FindByImpl(); - } - - String getId() { - return elementId; - } - - @Override - public boolean equals(Object o) { - if (!(o instanceof WebElement)) { - return false; - } - WebElement e = (WebElement) o; - if (e instanceof WrapsElement) { - e = ((WrapsElement) o).getWrappedElement(); - } - if (!(e instanceof AndroidWebElement)) { - return false; - } - return elementId.equals(((AndroidWebElement) e).getId()); - } - - @Override - public int hashCode() { - return elementId.hashCode(); - } - - private Point getCenterCoordinates() { - if (!isDisplayed()) { - throw new ElementNotVisibleException( - "This WebElement is not visisble and may not be clicked."); - } - driver.setEditAreaHasFocus(false); - Point topLeft = getLocation(); - String sizeJs = - "var __webdriver_w = 0;" + - "var __webdriver_h = 0;" + - "if (arguments[0].getClientRects && arguments[0].getClientRects()[0]) {" + - " __webdriver_w = arguments[0].getClientRects()[0].width;" + - " __webdriver_h = arguments[0].getClientRects()[0].height;" + - " } else {" + - " __webdriver_w = arguments[0].offsetWidth;" + - " __webdriver_h = arguments[0].offsetHeight;" + - "}; return __webdriver_w + ',' + __webdriver_h;"; - String[] result = ((String) driver.executeScript(sizeJs, this)).split(","); - return new Point(topLeft.x + Integer.parseInt(result[0]) / 2, - topLeft.y + Integer.parseInt(result[1]) / 2); - } - - public void click() { - if ("OPTION".equals(getTagName().toUpperCase())) { - driver.resetPageIsLoading(); - driver.executeAtom(AndroidAtoms.CLICK.getValue(), this); - driver.waitForPageToLoad(); - } - - Point center = getCenterCoordinates(); - long downTime = SystemClock.uptimeMillis(); - final List events = Lists.newArrayList(); - - MotionEvent downEvent = MotionEvent.obtain(downTime, - SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, center.x, center.y, 0); - events.add(downEvent); - MotionEvent upEvent = MotionEvent.obtain(downTime, - SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, center.x, center.y, 0); - - events.add(upEvent); - - driver.resetPageIsLoading(); - - EventSender.sendMotion(events, driver.getWebView(), driver.getActivity()); - - // If the page started loading we should wait - // until the page is done loading. - driver.waitForPageToLoad(); - } - - public void submit() { - String tagName = getTagName(); - if ("button".equalsIgnoreCase(tagName) - || "submit".equalsIgnoreCase(getAttribute("type")) - || "img".equalsIgnoreCase(tagName)) { - this.click(); - } else { - driver.resetPageIsLoading(); - driver.executeAtom(AndroidAtoms.SUBMIT.getValue(), this); - driver.waitForPageToLoad(); - } - } - - public void clear() { - driver.executeAtom(AndroidAtoms.CLEAR.getValue(), this); - } - - public void sendKeys(final CharSequence... value) { - if (value == null || value.length == 0) { - return; - } - if (!isEnabled()) { - throw new InvalidElementStateException("Cannot send keys to disabled element."); - } - // focus on the element - this.click(); - driver.waitUntilEditAreaHasFocus(); - // Move the cursor to the end of the test input. - // The trick is to set the value after the cursor - driver.executeScript("arguments[0].focus();arguments[0].value=arguments[0].value;", - this); - - final WebView view = driver.getWebView(); - - final Semaphore sem = new Semaphore(0); - driver.getActivity().runOnUiThread(new Runnable() { - public void run() { - EventSender.sendKeys(view, driver.getActivity(), value); - sem.release(); - } - }); - - - try { - sem.tryAcquire(AndroidWebDriver.UI_TIMEOUT, TimeUnit.MILLISECONDS); - } catch (InterruptedException e) { - throw new WebDriverException("Error while sending keys.", e); - } - } - - public String getTagName() { - String tagName = (String) driver.executeScript("return arguments[0].tagName", this); - return tagName.toLowerCase(); - - } - - public String getAttribute(String name) { - return (String) driver - .executeAtom(AndroidAtoms.GET_ATTRIBUTE_VALUE.getValue(), this, name); - } - - public boolean isSelected() { - return (Boolean) driver.executeAtom(AndroidAtoms.IS_SELECTED.getValue(), this); - } - - public boolean isEnabled() { - return (Boolean) driver.executeAtom(AndroidAtoms.IS_ENABLED.getValue(), this); - } - - public String getText() { - return (String) driver.executeAtom(AndroidAtoms.GET_TEXT.getValue(), this); - } - - public WebElement findElement(By by) { - return by.findElement(findsBy); - } - - public List findElements(By by) { - return by.findElements(findsBy); - } - - FindByImpl getFinder() { - return findsBy; - } - - class FindByImpl implements SearchContext, FindsById, FindsByLinkText, - FindsByXPath, FindsByTagName, FindsByCssSelector, FindsByClassName { - - public WebElement findElement(By by) { - return by.findElement(findsBy); - } - - public List findElements(By by) { - return by.findElements(findsBy); - } - - public WebElement findElementById(String using) { - return lookupElement(LOCATOR_ID, using); - } - - public List findElementsById(String using) { - return lookupElements(LOCATOR_ID, using); - } - - public WebElement findElementByXPath(String using) { - return lookupElement(LOCATOR_XPATH, using); - } - - public List findElementsByXPath(String using) { - return lookupElements(LOCATOR_XPATH, using); - } - - public WebElement findElementByLinkText(String using) { - return lookupElement(LOCATOR_LINK_TEXT, using); - } - - public List findElementsByLinkText(String using) { - return lookupElements(LOCATOR_LINK_TEXT, using); - } - - public WebElement findElementByPartialLinkText(String using) { - return lookupElement(LOCATOR_PARTIAL_LINK_TEXT, using); - } - - public List findElementsByPartialLinkText(String using) { - return lookupElements(LOCATOR_PARTIAL_LINK_TEXT, using); - } - - public WebElement findElementByTagName(String using) { - return lookupElement(LOCATOR_TAG_NAME, using); - } - - public List findElementsByTagName(String using) { - return lookupElements(LOCATOR_TAG_NAME, using); - } - - public WebElement findElementByName(String using) { - return lookupElement(LOCATOR_NAME, using); - } - - public List findElementsByName(String using) { - return lookupElements(LOCATOR_NAME, using); - } - - public WebElement findElementByCssSelector(String using) { - return lookupElement(LOCATOR_CSS_SELECTOR, using); - } - - public List findElementsByCssSelector(String using) { - return lookupElements(LOCATOR_CSS_SELECTOR, using); - } - - public WebElement findElementByClassName(String using) { - return lookupElement(LOCATOR_CLASS_NAME, using); - } - - public List findElementsByClassName(String using) { - return lookupElements(LOCATOR_CLASS_NAME, using); - } - } - - private List lookupElements(String strategy, String locator) { - List results; - try { - // If the Id is empty, this refers to the window document context. - if (elementId.equals("")) { - results = (List) driver - .executeAtom(AndroidAtoms.FIND_ELEMENTS.getValue(), strategy, locator); - } else { - results = (List) driver - .executeAtom(AndroidAtoms.FIND_ELEMENTS.getValue(), strategy, locator, this); - } - } catch (RuntimeException e) { - // TODO(simon): This is probably not the Right Thing to do. - results = Lists.newArrayList(); - } - - if (results == null) { - return Lists.newArrayList(); - } - return results; - } - - private WebElement lookupElement(String strategy, String locator) { - WebElement el; - // If the element Id is empty, this reffers to the window document context. - if (elementId.equals("")) { - el = (WebElement) driver - .executeAtom(AndroidAtoms.FIND_ELEMENT.getValue(), strategy, locator); - } else { - el = (WebElement) driver - .executeAtom(AndroidAtoms.FIND_ELEMENT.getValue(), strategy, locator, this); - } - if (el == null) { - throw new NoSuchElementException("Could not find element " - + "with " + strategy + ": " + locator); - } - return el; - } - - public void dragAndDropBy(int moveRightBy, int moveDownBy) { - throw new UnsupportedOperationException("Action not supported."); - } - - public void dragAndDropOn(AndroidWebElement element) { - throw new UnsupportedOperationException("Action not supported."); - } - - /** - * Where on the page is the top left-hand corner of the rendered element? it's part of - * RenderedWebElement - * - * @return A point, containing the location of the top left-hand corner of the element - */ - public Point getLocation() { - Map map = (Map) driver.executeAtom( - AndroidAtoms.GET_TOP_LEFT_COORDINATES.getValue(), this); - return new Point(map.get("x").intValue(), map.get("y").intValue()); - } - - /** - * @return a {@link Point} where x is the width, and y is the height. - */ - public Dimension getSize() { - Map map = (Map) driver.executeAtom( - AndroidAtoms.GET_SIZE.getValue(), this); - return new Dimension(map.get("width").intValue(), - map.get("height").intValue()); - } - - public String getValueOfCssProperty(String property) { - return (String) driver - .executeAtom(AndroidAtoms.GET_VALUE_OF_CSS_PROPERTY.getValue(), this, property); - } - - public void hover() { - throw new UnsupportedOperationException("Android does not support hover event"); - } - - public boolean isDisplayed() { - return (Boolean) driver.executeAtom(AndroidAtoms.IS_DISPLAYED.getValue(), this); - } - - public WebDriver getWrappedDriver() { - return driver; - } - - public String getCssValue(String propertyName) { - throw new UnsupportedOperationException("Getting CSS values is not supported yet."); - } - - public Coordinates getCoordinates() { - if (coordinates == null) { - coordinates = new AndroidCoordinates(elementId, - elementId.equals("0") ? new Point(0, 0) : getCenterCoordinates()); - } - return coordinates; - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/ChromeClientWrapper.java b/java/client/src/org/openqa/selenium/android/library/ChromeClientWrapper.java deleted file mode 100644 index b8de83e979978..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/ChromeClientWrapper.java +++ /dev/null @@ -1,92 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import org.openqa.selenium.WebDriverException; - -/** - * This class wraps a chrome client that must have the *same* API as - * WebChromeClient. This chrome client will be used with the view used - * by WebDriver to monitor events. - * - *

Sample usage: - * // If the underlying view is a WebView, you can use WebDriver's default - * // chrome client assuming you don't have any custom bahavior defined in - * // WebView's WebChromeClient. - * ChromeClientWrapper chromeClient = new ChromeClientWrapper( - * "android.webkit.WebChromeClient", - * new DefaultChromeClient()); - * - * // If the underlying view is a WebView, you can use WebDriver default - * // chrome client with a custom WebChromeClient that defines the bahavior - * // you want. - * class MyCustomChromeClient extends WebChromeClient { - * ... - * } - * - * MyCustomChromeClient customChrome = new MyCustomChromeClient(); - * ChromeClientWrapper chromeClient = new ChromeClientWrapper( - * "android.webkit.WebChromeClient", - * new DefaultChromeClient(customChrome)) - * - * Note that WebDriver needs the DefaultChromeClient in order to be able - * to listen to events that happen on the page. If you don't want to use - * the DefaultChromeClient, you can write your own client under the condition - * that your client calls all WebDriverChromeClient methods. - */ -public class ChromeClientWrapper implements DriverProvider, ViewProvider { - private final String className; - private final Object client; - - /** - * - * @param className the fully qualified class name of the client's class. - * @param client the client to use. Typically this client will be a - * WebChromeClient (or extend the latter). if not this client must have - * the same API methods as WebChromeClient. Additionally this chrome - * client must implement the DriverProvider and ViewProvider interfaces. - */ - public ChromeClientWrapper(String className, Object client) { - this.className = className; - this.client = client; - } - - /* package */ Class getClassForUnderlyingClient() { - try { - return Class.forName(className); - } catch (ClassNotFoundException e) { - throw new WebDriverException("Failed to get class for underlying view with class name: " - + className, e); - } - } - - /* package */ Object getUnderlyingClient() { - return client; - } - - public void setDriver(AndroidWebDriver driver) { - Class[] argsClass = {AndroidWebDriver.class}; - Object[] args = {driver}; - ReflexionHelper.invoke(client, "setDriver", argsClass, args); - } - - public void setWebDriverView(WebDriverView view) { - Class[] argsClass = {WebDriverView.class}; - Object[] args = {view}; - ReflexionHelper.invoke(client, "setWebDriverView", argsClass, args); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/DefaultChromeClient.java b/java/client/src/org/openqa/selenium/android/library/DefaultChromeClient.java deleted file mode 100644 index f5328a5de2d4b..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/DefaultChromeClient.java +++ /dev/null @@ -1,214 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import android.graphics.Bitmap; -import android.os.Message; -import android.view.View; -import android.webkit.ConsoleMessage; -import android.webkit.GeolocationPermissions; -import android.webkit.JsPromptResult; -import android.webkit.JsResult; -import android.webkit.ValueCallback; -import android.webkit.WebChromeClient; -import android.webkit.WebStorage; -import android.webkit.WebView; - -/** - * Default implementation for WebDriver's chrome client. This chrome client - * allows WebDriver to listen to interesting events on the page. - * - * Note that this class handles the creation and destruction of new windows. - * onCreateWindow will create a new view using the ViewFactory provided - * to WebDriver. onCloseWindow will destroy the view. - */ -public class DefaultChromeClient extends WebChromeClient implements DriverProvider, ViewProvider { - private final WebChromeClient delegate; - private WebDriverView wdView; - - private WebDriverChromeClient wdChromeClient; - - /** - * Default chrome client. Use this if the WebView you are using does not - * have custom settings in the WebChromeClient. - */ - public DefaultChromeClient() { - this(null); - } - - /** - * Use this constructor if the WebView you are using with WebDriver does - * have custom setting defined in the WebChromeClient. - * - * @param client the WebChromeClient used by the WebView that WebDriver - * is driving. - */ - public DefaultChromeClient(WebChromeClient client) { - if (client == null) { - delegate = new WebChromeClient(); - } else { - delegate = client; - } - } - - public void setDriver(AndroidWebDriver driver) { - this.wdChromeClient = new WebDriverChromeClient(driver); - } - - public void setWebDriverView(WebDriverView view) { - this.wdView = view; - } - - @Override - public void onCloseWindow(WebView window) { - wdChromeClient.onCloseWindow(window); - delegate.onCloseWindow(window); - } - - @Override - public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, - Message resultMsg) { - ViewAdapter newView = wdView.create(); - WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj; - transport.setWebView((WebView) newView.getUnderlyingView()); - resultMsg.sendToTarget(); - - wdChromeClient.onCreateWindow(newView); - return delegate.onCreateWindow(view, dialog, userGesture, resultMsg); - } - - @Override - public void onRequestFocus(WebView view) { - delegate.onRequestFocus(view); - } - - @Override - public void onProgressChanged(WebView view, int newProgress) { - wdChromeClient.onProgressChanged(view, newProgress); - delegate.onProgressChanged(view, newProgress); - } - - @Override - public void onReceivedTitle(WebView view, String title) { - delegate.onReceivedTitle(view, title); - } - - @Override - public void onReceivedIcon(WebView view, Bitmap icon) { - delegate.onReceivedIcon(view, icon); - } - - @Override - public void onReceivedTouchIconUrl(WebView view, String url, boolean precomposed) { - delegate.onReceivedTouchIconUrl(view, url, precomposed); - } - - @Override - public void onShowCustomView(View view, CustomViewCallback callback) { - delegate.onShowCustomView(view, callback); - } - - @Override - public void onShowCustomView(View view, int requestedOrientation, - CustomViewCallback callback) { - delegate.onShowCustomView(view, requestedOrientation, callback); - } - - @Override - public void onHideCustomView() { - delegate.onHideCustomView(); - } - - @Override - public boolean onJsAlert(WebView view, String url, String message, JsResult result) { - wdChromeClient.onJsAlert(view, message, result); - return delegate.onJsAlert(view, url, message, result); - } - - @Override - public boolean onJsConfirm(WebView view, String url, String message, JsResult result) { - wdChromeClient.onJsConfirm(view, message, result); - return delegate.onJsConfirm(view, url, message, result); - } - - @Override - public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, - JsPromptResult result) { - wdChromeClient.onJsPrompt(view, message, defaultValue, result); - return delegate.onJsPrompt(view, url, message, defaultValue, result); - } - - @Override - public boolean onJsBeforeUnload(WebView view, String url, String message, JsResult result) { - return super.onJsBeforeUnload(view, url, message, result); - } - - @Override - public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, - long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) { - delegate.onExceededDatabaseQuota(url, databaseIdentifier, currentQuota, estimatedSize, - totalUsedQuota, quotaUpdater); - } - - @Override - public void onReachedMaxAppCacheSize(long spaceNeeded, long totalUsedQuota, - WebStorage.QuotaUpdater quotaUpdater) { - delegate.onReachedMaxAppCacheSize(spaceNeeded, totalUsedQuota, quotaUpdater); - } - - @Override - public void onGeolocationPermissionsShowPrompt(String origin, - GeolocationPermissions.Callback callback) { - wdChromeClient.onGeolocationPermissionsShowPrompt(origin, callback); - delegate.onGeolocationPermissionsShowPrompt(origin, callback); - } - - @Override - public void onGeolocationPermissionsHidePrompt() { - delegate.onGeolocationPermissionsHidePrompt(); - } - - @Override - public boolean onJsTimeout() { - return delegate.onJsTimeout(); - } - - @Override - public void onConsoleMessage(String message, int lineNumber, String sourceID) { - delegate.onConsoleMessage(message, lineNumber, sourceID); - } - - @Override - public boolean onConsoleMessage(ConsoleMessage consoleMessage) { - return delegate.onConsoleMessage(consoleMessage); - } - - @Override - public Bitmap getDefaultVideoPoster() { - return delegate.getDefaultVideoPoster(); - } - - @Override - public View getVideoLoadingProgressView() { - return delegate.getVideoLoadingProgressView(); - } - - @Override - public void getVisitedHistory(ValueCallback callback) { - delegate.getVisitedHistory(callback); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/DefaultViewClient.java b/java/client/src/org/openqa/selenium/android/library/DefaultViewClient.java deleted file mode 100644 index 488a5af457af6..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/DefaultViewClient.java +++ /dev/null @@ -1,146 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import android.graphics.Bitmap; -import android.net.http.SslError; -import android.os.Message; -import android.view.KeyEvent; -import android.webkit.HttpAuthHandler; -import android.webkit.SslErrorHandler; -import android.webkit.WebResourceResponse; -import android.webkit.WebView; -import android.webkit.WebViewClient; - -/** - * This class provides a default implementation for WebViewClient to be used - * by WebDriver. - * - * This class overrides WebView default behavior when loading new URL. It makes sure that the URL - * is always loaded by the WebView. - */ -class DefaultViewClient extends WebViewClient implements DriverProvider { - private final WebViewClient delegate; - private WebDriverViewClient wdViewClient; - - /** - * Use this constructor if the WebView used does not have custom - * bahvior defined in the WebViewClient. - */ - public DefaultViewClient() { - this(null); - } - - /** - * Use this constructor if the WebView used has custom behavior defined - * in the WebViewClient. - * - * @param client the WebViewClient used by the WebView. - */ - public DefaultViewClient(WebViewClient client) { - if (client == null) { - delegate = new WebViewClient(); - } else { - delegate = client; - } - } - - public void setDriver(AndroidWebDriver driver) { - this.wdViewClient = new WebDriverViewClient(driver); - } - - @Override - public void onReceivedError(WebView view, int errorCode, String description, - String failingUrl) { - wdViewClient.onReceivedError(view, errorCode, description, failingUrl); - delegate.onReceivedError(view, errorCode, description, failingUrl); - } - - @Override - public void onFormResubmission(WebView view, Message dontResend, Message resend) { - delegate.onFormResubmission(view, dontResend, resend); - } - - @Override - public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) { - delegate.doUpdateVisitedHistory(view, url, isReload); - } - - @Override - public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { - wdViewClient.onReceivedSslError(view, handler, error); - delegate.onReceivedSslError(view, handler, error); - } - - @Override - public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, - String realm) { - delegate.onReceivedHttpAuthRequest(view, handler, host, realm); - } - - @Override - public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) { - return delegate.shouldOverrideKeyEvent(view, event); - } - - @Override - public void onUnhandledKeyEvent(WebView view, KeyEvent event) { - delegate.onUnhandledKeyEvent(view, event); - } - - @Override - public void onScaleChanged(WebView view, float oldScale, float newScale) { - delegate.onScaleChanged(view, oldScale, newScale); - } - - @Override - public void onReceivedLoginRequest(WebView view, String realm, String account, String args) { - delegate.onReceivedLoginRequest(view, realm, account, args); - } - - @Override - public boolean shouldOverrideUrlLoading(WebView view, String url) { - return delegate.shouldOverrideUrlLoading(view, url); - } - - @Override - public void onPageStarted(WebView view, String url, Bitmap favicon) { - wdViewClient.onPageStarted(view, url); - delegate.onPageStarted(view, url, favicon); - } - - @Override - public void onPageFinished(WebView view, String url) { - wdViewClient.onPageFinished(view, url); - delegate.onPageFinished(view, url); - } - - @Override - public void onLoadResource(WebView view, String url) { - delegate.onLoadResource(view, url); - } - - @Override - public WebResourceResponse shouldInterceptRequest(WebView view, String url) { - return delegate.shouldInterceptRequest(view, url); - } - - @Override - public void onTooManyRedirects(WebView view, Message cancelMsg, Message continueMsg) { - delegate.onTooManyRedirects(view, cancelMsg, continueMsg); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/DefaultWebViewFactory.java b/java/client/src/org/openqa/selenium/android/library/DefaultWebViewFactory.java deleted file mode 100644 index 8d65a49cbd59a..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/DefaultWebViewFactory.java +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import android.app.Activity; -import android.webkit.WebView; - -/** - * Provides a default ViewAdapter to be used by WebDriver. This ViewAdapter - * contains a view with the same settings as the Android browser. - * - * Use this if you want to use WebDriver with a view with the same settings as - * the Android browser. - */ -public class DefaultWebViewFactory implements ViewFactory { - - public ViewAdapter createNewView(Activity activity) { - return new ViewAdapter("android.webkit.WebView", new WebView(activity)); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/DomWindow.java b/java/client/src/org/openqa/selenium/android/library/DomWindow.java deleted file mode 100644 index 35eb3ecc954d0..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/DomWindow.java +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2011 Selenium committers - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -class DomWindow { - private final String key; - - /* package */ DomWindow(String key) { - this.key = key; - } - - /* package */ String getKey() { - return key; - } - - /* package */ String getJsObject() { - return "{'WINDOW':'" + key + "'}"; - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/DriverProvider.java b/java/client/src/org/openqa/selenium/android/library/DriverProvider.java deleted file mode 100644 index d7f7f1eac6233..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/DriverProvider.java +++ /dev/null @@ -1,24 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -/** - * The chrome and view clients need to implement this interface. - */ -public interface DriverProvider { - public void setDriver(AndroidWebDriver driver); -} diff --git a/java/client/src/org/openqa/selenium/android/library/EventSender.java b/java/client/src/org/openqa/selenium/android/library/EventSender.java deleted file mode 100644 index fe91427b3284c..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/EventSender.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright 2011 Selenium committers - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.openqa.selenium.android.library; - -import android.app.Activity; -import android.view.InputDevice; -import android.view.KeyCharacterMap; -import android.view.KeyEvent; -import android.view.MotionEvent; -import android.webkit.WebView; - -import org.openqa.selenium.WebDriverException; - -import java.util.List; - -class EventSender { - - private static MotionEvent lastSent; - private static final Object syncObject = new Object(); - private static volatile boolean done; - - /* package */ static MotionEvent getLastEvent() { - return lastSent; - } - - /* package */ static void sendMotion(final List events, - final WebView view, Activity activity) { - - long timeout = System.currentTimeMillis() + AndroidWebDriver.RESPONSE_TIMEOUT; - - synchronized (syncObject) { - // We keep track of the last motion event sent, so the WebView.onTouchEvent() listener can - // detect when the last Motion Event has been received, allowing new events to be triggered. - lastSent = events.get(events.size() - 1); - done = false; - - activity.runOnUiThread(new Runnable() { - public void run() { - float zoom = view.getScale(); - for (MotionEvent event : events) { - event.setLocation(zoom * event.getX(), zoom * event.getY()); - try { - event.setSource(InputDevice.SOURCE_CLASS_POINTER); - } catch (NoSuchMethodError e) { - throw new WebDriverException("You are using an Android WebDriver APK " - + "for ICS SDKs or more recent SDK versions. For more info see " - + "http://code.google.com/p/selenium/wiki/AndroidDriver#Supported_Platforms.", e); - } - view.dispatchTouchEvent(event); - synchronized (syncObject) { - done = true; - syncObject.notify(); - } - } - } - }); - waitForNotification(timeout, "Failed to send motion events."); - } - } - - private static void waitForNotification(long timeout, String errorMsg) { - while (!done && (System.currentTimeMillis() < timeout)) { - try { - syncObject.wait(AndroidWebDriver.RESPONSE_TIMEOUT); - } catch (InterruptedException e) { - throw new WebDriverException(errorMsg, e); - } - } - } - - /** - * Sends key strokes to the given text to the element in focus within the webview. - * - * Note: This assumes that the focus has been set before on the element at sake. - * - * @param webview - * @param text - */ - /* package */ static void sendKeys(final WebView webview, - Activity activity, final CharSequence... text) { - final KeyCharacterMap characterMap = - KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD); - - long timeout = System.currentTimeMillis() + AndroidWebDriver.RESPONSE_TIMEOUT; - - synchronized (syncObject) { - done = false; - - activity.runOnUiThread(new Runnable() { - public void run() { - for (CharSequence sequence : text) { - for (int i = 0; i < sequence.length(); i++) { - char c = sequence.charAt(i); - int code = AndroidKeys.getKeyEventFromUnicodeKey(c); - if (code != -1) { - webview.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, code)); - webview.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, code)); - } else { - KeyEvent[] arr = characterMap.getEvents(new char[]{c}); - if (arr != null) { - for (int j = 0; j < arr.length; j++) { - webview.dispatchKeyEvent(arr[j]); - } - } - } - } - } - done = true; - syncObject.notify(); - } - }); - } - waitForNotification(timeout, "Failed to send keys."); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/JavascriptExecutor.java b/java/client/src/org/openqa/selenium/android/library/JavascriptExecutor.java deleted file mode 100644 index b6147aa7772d4..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/JavascriptExecutor.java +++ /dev/null @@ -1,49 +0,0 @@ -/* -Copyright 2010 Selenium committers - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -/** - * Class that wraps synchronization housekeeping of execution of JavaScript code within WebView. - */ -class JavascriptExecutor { - private static JavascriptResultNotifier resNotifier; - - /** - * Executes a given JavaScript code within WebView and returns execution result.

Note: - * execution is limited in time to AndroidWebDriver.INTENT_TIMEOUT to prevent "application - * not responding" alerts. - * - * @param jsCode JavaScript code to execute. - */ - /* package */ static void executeJs(final ViewAdapter webview, - JavascriptResultNotifier notifier, final String jsCode) { - resNotifier = notifier; - if (webview.getUrl() == null) { - return; - } - webview.loadUrl("javascript:" + jsCode); - } - - /** - * Callback to report results of JavaScript code execution. - * - * @param result Results (if returned) or an empty string. - */ - /* package */ void resultAvailable(String result) { - resNotifier.notifyResultReady(result); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/JavascriptInterface.java b/java/client/src/org/openqa/selenium/android/library/JavascriptInterface.java deleted file mode 100644 index 85d19ad6ede81..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/JavascriptInterface.java +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2010 Selenium committers - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -/** - * Custom module that is added to the WebView's JavaScript engine to enable callbacks to java - * code. This is required since WebView doesn't expose the underlying DOM. - */ -final class JavascriptInterface { - private final JavascriptExecutor executor; - - /* package */ JavascriptInterface(JavascriptExecutor executor) { - this.executor = executor; - } - - /** - * A callback from JavaScript to Java that passes execution result as a parameter. - * - * This method is accessible from WebView's JS DOM as windows.webdriver.resultMethod(). - * - * @param result Result that should be returned to Java code from WebView. - */ - public void resultMethod(String result) { - executor.resultAvailable(result); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/JavascriptResultNotifier.java b/java/client/src/org/openqa/selenium/android/library/JavascriptResultNotifier.java deleted file mode 100644 index c82e64f71d916..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/JavascriptResultNotifier.java +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright 2011 Selenium committers - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -interface JavascriptResultNotifier { - void notifyResultReady(String result); -} diff --git a/java/client/src/org/openqa/selenium/android/library/Logger.java b/java/client/src/org/openqa/selenium/android/library/Logger.java deleted file mode 100644 index bf649cf03a695..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/Logger.java +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright 2010 Selenium committers - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import java.util.logging.Level; - -public class Logger { - private static final java.util.logging.Logger logger; - - static { - logger = java.util.logging.Logger.getLogger("AndroidWebDriver"); - logger.setLevel(Level.WARNING); - } - - /** - * Sets the logging level for this logger. - * @param level - */ - public static void setLevel(Level level) { - logger.setLevel(level); - } - - public static void log(Level value, String className, String methodName, String message) { - logger.logp(value, className, methodName, message); - } - - public static void setDebugMode(boolean enabled) { - setLevel(Level.FINE); - } - - public static java.util.logging.Logger getLogger() { - return logger; - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/NetworkStateHandler.java b/java/client/src/org/openqa/selenium/android/library/NetworkStateHandler.java deleted file mode 100644 index 3c9aa28578cc4..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/NetworkStateHandler.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright 2011 Selenium committers - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.openqa.selenium.android.library; - -import android.app.Activity; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; - -import java.lang.reflect.Method; - -class NetworkStateHandler { - private Activity activity; - private IntentFilter filter; - private BroadcastReceiver receiver; - private boolean isConnected; - private boolean isNetworkUp; - private final ViewAdapter view; - - /* package */ NetworkStateHandler(Activity activity, final ViewAdapter view) { - this.activity = activity; - this.view = view; - - ConnectivityManager cm = (ConnectivityManager) activity - .getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo info = cm.getActiveNetworkInfo(); - if (info != null) { - isConnected = info.isConnected(); - isNetworkUp = info.isAvailable(); - } - - filter = new IntentFilter(); - filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); - - receiver = new BroadcastReceiver() { - public void onReceive(Context context, Intent intent) { - if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) { - NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); - String typeName = info.getTypeName(); - String subType = info.getSubtypeName(); - isConnected = info.isConnected(); - if (view != null) { - try { - Method setNetworkType = view.getClass().getMethod("setNetworkType", - String.class, String.class); - setNetworkType.invoke(view, typeName, (subType == null? "" : subType)); - - boolean noConnection = intent.getBooleanExtra( - ConnectivityManager.EXTRA_NO_CONNECTIVITY, false); - onNetworkChange(!noConnection); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - } - } - }; - } - - /* package */ void onNetworkChange(boolean up) { - if (up == isNetworkUp) { - return; - } else if (up) { - isNetworkUp = true; - } else { - isNetworkUp = false; - } - - if (view != null) { - view.setNetworkAvailable(isNetworkUp); - } - } - - /* package */ boolean isNetworkUp() { - return isNetworkUp; - } - - /* package */ boolean isConnected() { - return isConnected; - } - - /* package */ void onPause() { - // unregister network state listener - activity.unregisterReceiver(receiver); - } - - /* package */ void onResume() { - activity.registerReceiver(receiver, filter); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/ReflexionHelper.java b/java/client/src/org/openqa/selenium/android/library/ReflexionHelper.java deleted file mode 100644 index e4c0f7664caf6..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/ReflexionHelper.java +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import org.openqa.selenium.WebDriverException; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -/** - * Helper methods used for reflexion. - */ -/* package */ class ReflexionHelper { - - private static Method getMethod(Object obj, String name, Class[] argsClazz) { - try { - return obj.getClass().getMethod(name, argsClazz); - } catch (NoSuchMethodException e) { - try { - return obj.getClass().getDeclaredMethod(name, argsClazz); - } catch (NoSuchMethodException ex) { - throw new WebDriverException( - "The object you are using does not have " - + "a " + name + " method", ex); - } - } - } - - /* package */ static Object invoke(Object obj, String name, - Class[] argsClazz, Object[] args) { - Method method = getMethod(obj, name, argsClazz); - try { - return method.invoke(obj, args); - } catch (IllegalAccessException e) { - throw new WebDriverException(e); - } catch (InvocationTargetException e) { - throw new WebDriverException(e); - } - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/SessionCookieManager.java b/java/client/src/org/openqa/selenium/android/library/SessionCookieManager.java deleted file mode 100644 index 49893d96e3597..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/SessionCookieManager.java +++ /dev/null @@ -1,202 +0,0 @@ -/* -Copyright 2010 Selenium committers - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import com.google.common.collect.Sets; - -import android.webkit.CookieManager; - -import org.openqa.selenium.Cookie; -import org.openqa.selenium.WebDriverException; - -import java.net.MalformedURLException; -import java.net.URL; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; - -/** - * Class that manages cookies the webview. - */ -class SessionCookieManager { - private static final String COOKIE_DATE_FORMAT = "EEE, dd MMM yyyy hh:mm:ss z"; - - public static final String COOKIE_SEPARATOR = ";"; - - private CookieManager cookieManager; - - public SessionCookieManager() { - cookieManager = CookieManager.getInstance(); - } - - /** - * Gets all cookies for a given domain name - * - * @param domain Domain name to fetch cookies for - * @return Set of cookie objects for given domain - */ - /* package */ List getCookies(String domain) { - cookieManager.removeExpiredCookie(); - String cookies = cookieManager.getCookie(domain); - List result = new LinkedList(); - if (cookies == null) { - return result; - } - for (String cookie : cookies.split(COOKIE_SEPARATOR)) { - String[] cookieValues = cookie.split("="); - if (cookieValues.length >= 2) { - result.add(new Cookie(cookieValues[0].trim(), cookieValues[1], domain, null, null)); - } - } - return result; - } - - /** - * Gets all cookies associated to a URL. - * - * @param url - * @return A string containing comma separated cookies - */ - /* package */ Set getAllCookies(String url) { - Set cookieSet = Sets.newHashSet(); - List domains; - try { - domains = getDomainsFromUrl(new URL(url)); - } catch (MalformedURLException e) { - throw new WebDriverException("Error while adding cookie. " + e); - } - - for (String domain : domains) { - cookieSet.addAll(getCookies(domain)); - } - return cookieSet; - } - - /** - * Gets the list of domains associated to a URL. - * - * @param url - * @return List of domains as strings - */ - private List getDomainsFromUrl(URL url) { - String host = url.getHost(); - String[] paths = new String[] {}; - if (url.getPath() != null) { - paths = url.getPath().split("/"); - } - List domains = new ArrayList(paths.length + 1); - StringBuilder relative = new StringBuilder().append("http://").append(host).append("/"); - domains.add(relative.toString()); - for (String path : paths) { - if (path.length() > 0) { - relative.append(path).append("/"); - domains.add(relative.toString()); - } - } - return domains; - } - - /** - * Gets a cookie with specific name for a URL. - * - * @param url - * @param name Cookie name to search - * @return Cookie object (if found) or null - */ - /* package */ Cookie getCookie(String url, String name) { - List cookies; - try { - cookies = getCookies(getDomainsFromUrl(new URL(url)).get(0)); - } catch (MalformedURLException e) { - throw new WebDriverException("Error while adding cookie. " + e); - } - // No cookies for given domain - if (cookies == null || cookies.size() == 0) { - return null; - } - for (Cookie cookie : cookies) - if (cookie.getName().equals(name)) { - return cookie; - } - return null; // No cookie with given name - } - - /** - * Removes all cookies for a given URL. - * - * @param url to remove all the cookies for - */ - /* package */ void removeAllCookies(String url) { - // TODO(berrada): this removes all cookies, we should remove only cookies for - // the current URL. Given that this is single session it is ok for now. - cookieManager.removeAllCookie(); - } - - /** - * Removes cookie by name for a URL. - * - * @param url to remove cookie for - * @param name of the cookie to remove - */ - /* package */ void remove(String url, String name) { - List domains; - try { - domains = getDomainsFromUrl(new URL(url)); - } catch (MalformedURLException e) { - throw new WebDriverException("Error while adding cookie. " + e); - } - for (String domain : domains) { - List cookies = getCookies(domain); - for (Cookie c : cookies) { - if (c.getName().equals(name)) { - cookies.remove(c); - // To remove a cookie we set the date somewhere in the past. - cookieManager.setCookie(domain, String.format("%s=; expires=%s", name, - new SimpleDateFormat(COOKIE_DATE_FORMAT).format(System.currentTimeMillis() - 500))); - break; - } - } - } - cookieManager.removeExpiredCookie(); - } - - /** - * Adds a cookie to a URL domain. - * - * @param url to add the cookie to - * @param cookie Cookie to be added - */ - /* package */ void addCookie(String url, Cookie cookie) { - URL urlObj; - try { - urlObj = new URL(url); - } catch (MalformedURLException e) { - throw new WebDriverException("Error while adding cookie. ", e); - } - String domain = "http://" + urlObj.getHost() + cookie.getPath(); - if (!domain.endsWith("/")) { - domain = domain + "/"; - } - cookieManager.setCookie(domain, stringifyCookie(cookie)); - } - - private String stringifyCookie(Cookie cookie) { - return String.format("%s=%s", cookie.getName(), cookie.getValue()); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/ViewAdapter.java b/java/client/src/org/openqa/selenium/android/library/ViewAdapter.java deleted file mode 100644 index e71e2c1568a79..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/ViewAdapter.java +++ /dev/null @@ -1,243 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import static org.openqa.selenium.android.library.ReflexionHelper.invoke; - -import android.graphics.Picture; -import android.view.KeyEvent; -import android.view.MotionEvent; -import android.view.View; -import android.webkit.WebSettings; - -import org.openqa.selenium.WebDriverException; - -/** - * Adapter class to allow WebDriver to work with any View that has the same - * API as WebView. - * - * This class implements the WebView methods used by WebDriver, with the - * same signature as WebView's. Calls to those methods delegate to the - * underlying view (which in turn must implement those methods). - * - * Note thae the underlying view must be part of the Android View hierarchy. - */ -public class ViewAdapter { - private final Object view; - private final String className; - - /** - * Constructs an adapter for any View to work with WebDriver. Note that the - * view must implement the same method as WebView's. - * - * Sample usage for custom WebViews: - * WebView view = new WebView(acivity); - * ViewAdapter adapter = new ViewAdapter("android.webkit.WebView", view); - * - * Sample usage for custom Views: - * MyCustomView view = new MyCustomView(); - * ViewAdapter adapter = new ViewAdapter("custom.view.package.MyCustomView", - * view); - * - * @param className the fully qualified class name of the View. For instance: - * For WebView use "android.webkit.WebView". - * @param view the view that will be used by the driver. The view must - * fullfill those two criterion : - * - the view must belong to Android's View hierarchy - * - the view must implement the same methods as WebView's. If the view - * is a WebView, this is always true. - */ - public ViewAdapter(String className, Object view) { - this.view = view; - this.className = className; - } - - /* package */ Class getClassForUnderlyingView() { - try { - return Class.forName(className); - } catch (ClassNotFoundException e) { - throw new WebDriverException("Failed to get class for underlying View with class name: " - + className, e); - } - } - - public void scrollBy(int x, int y) { - Class[] argsType = {int.class, int.class}; - Object[] args = {x, y}; - invoke(view, "scrollBy", argsType, args); - } - - public void flingScroll(int vx, int vy) { - Class[] argsType = {int.class, int.class}; - Object[] args = {vx, vy}; - invoke(view, "flingScroll", argsType, args); - } - - public void dispatchTouchEvent(MotionEvent ev) { - Class[] argsType = {MotionEvent.class}; - Object[] args = {ev}; - invoke(view, "dispatchTouchEvent", argsType, args); - } - - public float getScale() { - Class[] argsType = {}; - Object[] args = {}; - return ((Float) invoke(view, "getScale", argsType, args)).floatValue(); - } - - public void dispatchKeyEvent(KeyEvent event) { - Class[] argsType = {KeyEvent.class}; - Object[] args = {event}; - invoke(view, "dispatchKeyEvent", argsType, args); - } - - public String getUrl() { - Class[] argsType = {}; - Object[] args = {}; - return (String) invoke(view, "getUrl", argsType, args); - } - - public String getTitle() { - Class[] argsType = {}; - Object[] args = {}; - return (String) invoke(view, "getTitle", argsType, args); - } - - public Picture capturePicture() { - Class[] argsType = {}; - Object[] args = {}; - return (Picture) invoke(view, "capturePicture", argsType, args); - } - - public void goBack() { - Class[] argsType = {}; - Object[] args = {}; - invoke(view, "goBack", argsType, args); - } - - public void goForward() { - Class[] argsType = {}; - Object[] args = {}; - invoke(view, "goForward", argsType, args); - } - - public void loadUrl(String url) { - Class[] argsType = {String.class}; - Object[] args = {url}; - invoke(view, "loadUrl", argsType, args); - } - - public void reload() { - Class[] argsType = {}; - Object[] args = {}; - invoke(view, "reload", argsType, args); - } - - public void setNetworkAvailable(boolean networkUp) { - Class[] argsType = {boolean.class}; - Object[] args = {networkUp}; - invoke(view, "setNetworkAvailable", argsType, args); - } - - public WebSettings getSettings() { - Class[] argsType = {}; - Object[] args = {}; - return (WebSettings) invoke(view, "getSettings", argsType, args); - } - - public void setWebChromeClient(ChromeClientWrapper client) { - Class[] argsType = {client.getClassForUnderlyingClient()}; - Object[] args = {client.getUnderlyingClient()}; - invoke(view, "setWebChromeClient", argsType, args); - } - - public void setWebViewClient(ViewClientWrapper client) { - Class[] argsType = {client.getClassForUnderlyingClient()}; - Object[] args = {client.getUnderlyingClient()}; - invoke(view, "setWebViewClient", argsType, args); - } - - public void setOnFocusChangeListener(View.OnFocusChangeListener l) { - Class[] argsType = {View.OnFocusChangeListener.class}; - Object[] args = {l}; - invoke(view, "setOnFocusChangeListener", argsType, args); - } - - public void addJavascriptInterface(Object obj, String interfaceName) { - Class[] argsType = {Object.class, String.class}; - Object[] args = {obj, interfaceName}; - invoke(view, "addJavascriptInterface", argsType, args); - } - - public void clearCache(boolean includeDiskFiles) { - Class[] argsType = {boolean.class}; - Object[] args = {includeDiskFiles}; - invoke(view, "clearCache", argsType, args); - } - - public void clearFormData() { - Class[] argsType = {}; - Object[] args = {}; - invoke(view, "clearFormData", argsType, args); - } - - public void clearHistory() { - Class[] argsType = {}; - Object[] args = {}; - invoke(view, "clearHistory", argsType, args); - } - - public void clearView() { - Class[] argsType = {}; - Object[] args = {}; - invoke(view, "clearView", argsType, args); - } - - public boolean requestFocus(int direction) { - Class[] argsType = {int.class}; - Object[] args = {direction}; - return ((Boolean) invoke(view, "requestFocus", argsType, args)).booleanValue(); - } - - public void setFocusable(boolean focusable) { - Class[] argsType = {boolean.class}; - Object[] args = {focusable}; - invoke(view, "setFocusable", argsType, args); - } - - public void setFocusableInTouchMode(boolean focusableInTouchMode) { - Class[] argsType = {boolean.class}; - Object[] args = {focusableInTouchMode}; - invoke(view, "setFocusableInTouchMode", argsType, args); - } - - public Object getUnderlyingView() { - return view; - } - - public void removeAllViews() { - Class[] argsType = {}; - Object[] args = {}; - invoke(view, "removeAllViews", argsType, args); - } - - public void destroy() { - Class[] argsType = {}; - Object[] args = {}; - invoke(view, "destroy", argsType, args); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/ViewClientWrapper.java b/java/client/src/org/openqa/selenium/android/library/ViewClientWrapper.java deleted file mode 100644 index c6ce62367de17..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/ViewClientWrapper.java +++ /dev/null @@ -1,82 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import org.openqa.selenium.WebDriverException; - -/** - * This class wraps a view client that must have the *same* API as - * WebViewClient. The underlying client will be used by WebDriver to listen to - * interesting events on the page. - * - *

Sample usage: - * // If the underlying view is a WebView you can use WebDriver's default - * // view client DefaultViewClient as follow. - * ViewClientWrapper viewWrapper = new ViewClientWrapper( - * "android.webkit.WebViewClient", new DefaultViewClient()); - * - * // If the underlying view is a WebView and it has custom WebViewClient - * // settings, use the DefaultViewClient as follow: - * class MyCustomClient extends WebViewClient { - * ... - * } - * - * MyCustomClient myClient = new MyCustomClient(); - * ViewClientWrapper viewWrapper = new ViewClientWrapper( - * "android.webkit.WebViewClient", new DefaultViewClient(myClient)); - */ -public class ViewClientWrapper implements DriverProvider { - private final String className; - private final Object client; - - /** - * - * @param className the fully qualified class name of the client's - * class name. - * @param client the client to use. Typically this client will be a - * WebViewClient (or extend the latter). If not this client must have - * the same API as WebViewClient. Additionally this client view must - * implement the DriverProvider interface. - */ - public ViewClientWrapper(String className, Object client) { - this.className = className; - this.client = client; - } - - /* package */ Class getClassForUnderlyingClient() { - try { - return Class.forName(className); - } catch (ClassNotFoundException e) { - throw new WebDriverException("Failed to get class for underlying view with class name: " - + className, e); - } - } - - /* package */ Object getUnderlyingClient() { - return client; - } - - public void setDriver(AndroidWebDriver driver) { - try { - ((DefaultViewClient)client).setDriver(driver); - } catch (ClassCastException e) { - Class[] argsClass = {AndroidWebDriver.class}; - Object[] args = {driver}; - ReflexionHelper.invoke(client, "setDriver", argsClass, args); - } - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/ViewFactory.java b/java/client/src/org/openqa/selenium/android/library/ViewFactory.java deleted file mode 100644 index 978f1d4861144..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/ViewFactory.java +++ /dev/null @@ -1,38 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import android.app.Activity; - -/** - * This interface should be implemented when using WebDriver with custom Views - * (typically a custom WebView). - * - * WebDriver will call the createNewView method to create new Views when needed, - * for instance when cliking on a link that opens a new window. - */ -public interface ViewFactory { - - /** - * Creates a rendering view. This should return a WebView, or an object - * with the same API as WebView. - * - * @param activity the activity to attach the view to. - * @return a ViewAdapter. - */ - public ViewAdapter createNewView(Activity activity); -} diff --git a/java/client/src/org/openqa/selenium/android/library/ViewProvider.java b/java/client/src/org/openqa/selenium/android/library/ViewProvider.java deleted file mode 100644 index afc24b583d17a..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/ViewProvider.java +++ /dev/null @@ -1,24 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -/** - * This should be implemented by the chrome client provided to AndroidWebDriver. - */ -public interface ViewProvider { - public void setWebDriverView(WebDriverView view); -} diff --git a/java/client/src/org/openqa/selenium/android/library/WebDriverChromeClient.java b/java/client/src/org/openqa/selenium/android/library/WebDriverChromeClient.java deleted file mode 100644 index 5f2ec504cf554..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/WebDriverChromeClient.java +++ /dev/null @@ -1,81 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import static org.openqa.selenium.android.library.WebDriverViewManager.getViewAdapterFor; - -import android.webkit.GeolocationPermissions; -import android.webkit.JsPromptResult; -import android.webkit.JsResult; - -import java.util.logging.Level; - -/** - * This class provides methods that must be called by a custom chrome client - * if you decide not to use the DefaultChromeClient. - * - * If you are using this class you should really know what you are doing. - */ -public class WebDriverChromeClient { - private AndroidWebDriver driver; - - public WebDriverChromeClient(AndroidWebDriver driver) { - this.driver = driver; - } - - public void onCloseWindow(Object window) { - // Dispose of unhandled alerts, if any. - AlertManager.removeAlertForView(getViewAdapterFor(window)); - driver.getViewManager().removeView(getViewAdapterFor(window)); - } - - - public void onCreateWindow(ViewAdapter newView) { - driver.getViewManager().addView(newView); - } - - public void onProgressChanged(Object view, int newProgress) { - if (newProgress == 100 && driver.getLastUrlLoaded() != null - && driver.getLastUrlLoaded().equals(getViewAdapterFor(view).getUrl())) { - driver.notifyPageDoneLoading(); - } - } - - public void onJsAlert(Object view, String message, JsResult result) { - AlertManager.addAlertForView(getViewAdapterFor(view), new AndroidAlert(message, result)); - } - - public void onJsConfirm(Object view, String message, JsResult result) { - AlertManager.addAlertForView(getViewAdapterFor(view), new AndroidAlert(message, result)); - } - - public void onJsPrompt(Object view, String message, String defaultValue, - JsPromptResult result) { - AlertManager.addAlertForView(getViewAdapterFor(view), - new AndroidAlert(message, result, defaultValue)); - } - - public void onGeolocationPermissionsShowPrompt(String origin, - GeolocationPermissions.Callback callback) { - callback.invoke(origin, true, true); - } - - public void onJsTimeout() { - Logger.log(Level.WARNING, WebDriverChromeClient.class.getName(), "onJsTimeout", - "WARNING THE JAVASCRIPT EXECUTING TIMED OUT!"); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/WebDriverView.java b/java/client/src/org/openqa/selenium/android/library/WebDriverView.java deleted file mode 100644 index fbad151a79f5c..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/WebDriverView.java +++ /dev/null @@ -1,130 +0,0 @@ -/* -Copyright 2010 Selenium committers - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - */ - -package org.openqa.selenium.android.library; - -import android.view.View; -import android.webkit.WebSettings; -import android.webkit.WebSettings.LayoutAlgorithm; -import android.webkit.WebSettings.ZoomDensity; - -import com.google.common.base.Preconditions; - -/* package */ class WebDriverView { - private static JavascriptInterface jsInterface = - new JavascriptInterface(new JavascriptExecutor()); - private AndroidWebDriver driver; - private ViewFactory factory; - private ViewClientWrapper viewc; - private ChromeClientWrapper chromec; - private View.OnFocusChangeListener focusListener; - - /* package */ WebDriverView(final AndroidWebDriver driver, - ViewFactory factory, ViewClientWrapper viewc, - ChromeClientWrapper chromec, View.OnFocusChangeListener focusListener) { - Preconditions.checkNotNull(driver); - Preconditions.checkNotNull(factory); - this.driver = driver; - this.factory = factory; - - this.viewc = viewc; - this.chromec = chromec; - this.chromec.setWebDriverView(this); - - this.focusListener = focusListener == null ? new View.OnFocusChangeListener(){ - public void onFocusChange(View view, boolean b) { - } - } : focusListener; - } - - /* package */ ViewAdapter create() { - - //WebChromeClient chromeClient = new WebDriverChromeClient(driver, this, chromec); - //WebViewClient viewClient = new DefaultViewClient(driver, viewc); - chromec.setDriver(driver); - viewc.setDriver(driver); - - ViewAdapter view = factory.createNewView(driver.getActivity()); - - view.setWebChromeClient(chromec); - view.setWebViewClient(viewc); - - view.setOnFocusChangeListener(new View.OnFocusChangeListener() { - public void onFocusChange(View view, boolean focused) { - // When a text area is focused, webview's focus is false - if (!focused) { - driver.setEditAreaHasFocus(true); - } - focusListener.onFocusChange(view, focused); - } - }); - - view.addJavascriptInterface(jsInterface, "webdriver"); - - initWebViewSettings(view); - - return view; - } - - private WebDriverView() {} - - private static void initWebViewSettings(ViewAdapter view) { - // Clearing the view - view.clearCache(true); - view.clearFormData(); - view.clearHistory(); - view.clearView(); - - view.requestFocus(View.FOCUS_DOWN); - view.setFocusable(true); - view.setFocusableInTouchMode(true); - - // Webview settings - WebSettings settings = view.getSettings(); - settings.setJavaScriptCanOpenWindowsAutomatically(true); - settings.setSupportMultipleWindows(true); - settings.setBuiltInZoomControls(true); - settings.setJavaScriptEnabled(true); - settings.setAppCacheEnabled(true); - settings.setAppCacheMaxSize(10*1024*1024); - settings.setAppCachePath(""); - settings.setDatabaseEnabled(true); - settings.setDomStorageEnabled(true); - settings.setGeolocationEnabled(true); - settings.setSaveFormData(true); - settings.setSavePassword(false); - settings.setRenderPriority(WebSettings.RenderPriority.HIGH); - - // Same as the browser settings - settings.setLoadWithOverviewMode(true); - settings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); - settings.setDefaultZoom(ZoomDensity.valueOf("MEDIUM")); - settings.setUseWideViewPort(true); - settings.setMinimumFontSize(1); - settings.setMinimumLogicalFontSize(1); - settings.setDefaultFontSize(16); - settings.setDefaultFixedFontSize(13); - - // Flash settings - settings.setPluginState(WebSettings.PluginState.ON); - - // Geo location settings - settings.setGeolocationEnabled(true); - settings.setGeolocationDatabasePath("/data/data/webdriver"); - - view.setNetworkAvailable(true); - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/WebDriverViewClient.java b/java/client/src/org/openqa/selenium/android/library/WebDriverViewClient.java deleted file mode 100644 index 05b9c2af43439..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/WebDriverViewClient.java +++ /dev/null @@ -1,78 +0,0 @@ -/* -Copyright 2011 Software Freedom Conservatory. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import android.net.http.SslError; -import android.webkit.SslErrorHandler; -import android.webkit.WebView; - -import java.util.logging.Level; - -/** - * This class provides methods that must be called by a custom view client - * if you decide not to use the DefaultViewClient. - * - * If you are using this class you should really know what you are doing. - */ -public class WebDriverViewClient { - private final AndroidWebDriver driver; - private final String LOG_TAG = WebDriverViewClient.class.getName(); - private String tmpUrl; - - public WebDriverViewClient(AndroidWebDriver driver) { - this.driver = driver; - } - - public void onReceivedError(WebView view, int errorCode, String description, - String failingUrl) { - Logger.log(Level.WARNING, LOG_TAG, "onReceiveError", description - + ", error code: " + errorCode); - } - - public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { - boolean shouldAcceptSslCerts = driver.getAcceptSslCerts(); - Logger.log(Level.WARNING, LOG_TAG, "onReceivedSslError", error.toString() - + ", shouldAcceptSslCerts: " + shouldAcceptSslCerts); - - if (shouldAcceptSslCerts) { - handler.proceed(); - } - } - - public void onPageStarted(WebView view, String url) { - // To avoid blocking on background windows - if (driver.getWebView().equals(view)) { - driver.setLastUrlLoaded(url); - tmpUrl = url; - driver.notifyPageStartedLoading(); - } - } - - - public void onPageFinished(WebView view, String url) { - // To avoid blocking on background windows - if (driver.getWebView().equals(view)) { - driver.setLastUrlLoaded(url); - - // If it is a html fragment or the current url loaded, the page is - // not reloaded and the onProgessChanged function is not called. - if (url != null && tmpUrl != null && url.contains("#") && tmpUrl.equals(url.split("#")[0])) { - driver.notifyPageDoneLoading(); - } - } - } -} diff --git a/java/client/src/org/openqa/selenium/android/library/WebDriverViewManager.java b/java/client/src/org/openqa/selenium/android/library/WebDriverViewManager.java deleted file mode 100644 index 28f9f0e1979ec..0000000000000 --- a/java/client/src/org/openqa/selenium/android/library/WebDriverViewManager.java +++ /dev/null @@ -1,147 +0,0 @@ -/* -Copyright 2010 Selenium committers - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package org.openqa.selenium.android.library; - -import org.openqa.selenium.WebDriverException; - -import com.google.common.collect.HashBiMap; - -import java.util.Iterator; -import java.util.Set; -import java.util.UUID; - -class WebDriverViewManager implements JavascriptResultNotifier { - // Mapping from the ViewAdapter's handle (uuid) and the ViewAdapter - private static HashBiMap map = HashBiMap.create(); - // Keeps track of the views and their corresponding ViewAdapter - private static HashBiMap views = HashBiMap.create(); - private volatile boolean done; - private volatile String result; - private Object syncObject = new Object(); - - /* package */ static ViewAdapter getViewAdapterFor(Object view) { - return views.get(view); - } - - /* package */ ViewAdapter getView(String nameOrHandle) { - synchronized (syncObject) { - ViewAdapter toReturn = searchForViewByHandle(nameOrHandle); - return toReturn == null ? searchForViewByWindowName(nameOrHandle) : toReturn; - } - } - - /* package */ void addView(ViewAdapter view) { - synchronized (syncObject) { - String u = UUID.randomUUID().toString(); - map.put(u, view); - views.put(view.getUnderlyingView(), view); - } - } - - /* package */ ViewAdapter getNextView() { - synchronized (syncObject) { - String key = map.keySet().iterator().next(); - return map.get(key); - } - } - - /* package */ void removeView(String nameOrHandle) { - synchronized (syncObject) { - ViewAdapter toRemove = searchForViewByHandle(nameOrHandle); - toRemove = toRemove != null ? toRemove : searchForViewByWindowName(nameOrHandle); - removeView(toRemove); - } - } - - /* package */ void removeView(ViewAdapter view) { - synchronized (syncObject) { - map.inverse().remove(view); - views.inverse().remove(view); - } - } - - /* package */ void removeView(Object viewImpl) { - synchronized (syncObject) { - for (ViewAdapter adapter : map.values()) { - if (adapter.getClassForUnderlyingView().equals(viewImpl)) { - removeView(adapter); - break; - } - } - } - } - - /* package */ Set getAllHandles() { - synchronized (syncObject) { - return map.keySet(); - } - } - - private ViewAdapter searchForViewByHandle(String handle) { - synchronized (syncObject) { - return map.get(handle); - } - } - - private ViewAdapter searchForViewByWindowName(String windowName) { - synchronized (syncObject) { - for (ViewAdapter view : map.inverse().keySet()) { - done = false; - JavascriptExecutor.executeJs( - view, this, "window.webdriver.resultMethod(window.name);"); - long timeout = System.currentTimeMillis() + AndroidWebDriver.RESPONSE_TIMEOUT; - while (!done && (System.currentTimeMillis() < timeout)) { - try { - syncObject.wait(AndroidWebDriver.RESPONSE_TIMEOUT); - } catch (InterruptedException e) { - throw new WebDriverException(e); - } - } - if (result != null && result.equals(windowName)) { - return view; - } - } - return null; - } - } - - /* package */ String getWindowHandle(ViewAdapter view) { - synchronized (syncObject) { - return map.inverse().get(view); - } - } - - /* package */ void closeAll() { - String s; - for (Iterator it = map.keySet().iterator(); it.hasNext(); ) { - s = it.next(); - ViewAdapter viewAdapter = map.get(s); - viewAdapter.removeAllViews(); - viewAdapter.destroy(); - views.inverse().remove(viewAdapter); - it.remove(); - } - } - - public void notifyResultReady(String result) { - synchronized (syncObject) { - this.result = result; - done = true; - syncObject.notify(); - } - } -} diff --git a/java/client/src/org/openqa/selenium/build.desc b/java/client/src/org/openqa/selenium/build.desc index 44ac7f17c58b6..0e7238799674c 100644 --- a/java/client/src/org/openqa/selenium/build.desc +++ b/java/client/src/org/openqa/selenium/build.desc @@ -120,7 +120,6 @@ java_library(name = "webdriver-backed-selenium", java_library(name = "client-combined", deps = [ "//java/client/src/com/thoughtworks/selenium:selenium", - "//java/client/src/org/openqa/selenium/android", "//java/client/src/org/openqa/selenium/chrome", "//java/client/src/org/openqa/selenium/htmlunit", "//java/client/src/org/openqa/selenium/firefox", diff --git a/java/client/test/org/openqa/selenium/testing/drivers/Browser.java b/java/client/test/org/openqa/selenium/testing/drivers/Browser.java index 25c2b513c9925..f7bf5632674df 100644 --- a/java/client/test/org/openqa/selenium/testing/drivers/Browser.java +++ b/java/client/test/org/openqa/selenium/testing/drivers/Browser.java @@ -22,8 +22,6 @@ public enum Browser { - android, - android_real_phone, chrome, ff, htmlunit { diff --git a/java/client/test/org/openqa/selenium/testing/drivers/BrowserToCapabilities.java b/java/client/test/org/openqa/selenium/testing/drivers/BrowserToCapabilities.java index 5ad4af0306b81..aa63242894af7 100644 --- a/java/client/test/org/openqa/selenium/testing/drivers/BrowserToCapabilities.java +++ b/java/client/test/org/openqa/selenium/testing/drivers/BrowserToCapabilities.java @@ -35,11 +35,6 @@ public static DesiredCapabilities of(Browser browser) { DesiredCapabilities caps; switch (browser) { - case android: - case android_real_phone: - caps = DesiredCapabilities.android(); - break; - case chrome: caps = DesiredCapabilities.chrome(); break; diff --git a/java/client/test/org/openqa/selenium/testing/drivers/ReflectionBackedDriverSupplier.java b/java/client/test/org/openqa/selenium/testing/drivers/ReflectionBackedDriverSupplier.java index 3cc5799b2b65a..5ae6ede66e891 100644 --- a/java/client/test/org/openqa/selenium/testing/drivers/ReflectionBackedDriverSupplier.java +++ b/java/client/test/org/openqa/selenium/testing/drivers/ReflectionBackedDriverSupplier.java @@ -96,9 +96,7 @@ private Class mapToClass(Capabilities caps) { String name = caps == null ? "" : caps.getBrowserName(); String className = null; - if (DesiredCapabilities.android().getBrowserName().equals(name)) { - className = "org.openqa.selenium.android.AndroidDriver"; - } else if (DesiredCapabilities.chrome().getBrowserName().equals(name)) { + if (DesiredCapabilities.chrome().getBrowserName().equals(name)) { className = "org.openqa.selenium.testing.drivers.TestChromeDriver"; } else if (DesiredCapabilities.firefox().getBrowserName().equals(name)) { className = getFirefoxClassName(); diff --git a/java/client/test/org/openqa/selenium/testing/drivers/TestIgnorance.java b/java/client/test/org/openqa/selenium/testing/drivers/TestIgnorance.java index 6ffff64f40a03..a4c76e8089dbd 100644 --- a/java/client/test/org/openqa/selenium/testing/drivers/TestIgnorance.java +++ b/java/client/test/org/openqa/selenium/testing/drivers/TestIgnorance.java @@ -17,25 +17,10 @@ package org.openqa.selenium.testing.drivers; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Sets; - -import org.junit.runners.model.FrameworkMethod; -import org.openqa.selenium.Platform; -import org.openqa.selenium.testing.Ignore; -import org.openqa.selenium.testing.IgnoreComparator; -import org.openqa.selenium.testing.JavascriptEnabled; -import org.openqa.selenium.testing.NativeEventsRequired; -import org.openqa.selenium.testing.NeedsLocalEnvironment; - -import java.util.Arrays; -import java.util.Set; - import static com.google.common.base.Preconditions.checkNotNull; import static org.openqa.selenium.Platform.LINUX; import static org.openqa.selenium.Platform.WINDOWS; import static org.openqa.selenium.testing.Ignore.Driver.ALL; -import static org.openqa.selenium.testing.Ignore.Driver.ANDROID; import static org.openqa.selenium.testing.Ignore.Driver.CHROME; import static org.openqa.selenium.testing.Ignore.Driver.FIREFOX; import static org.openqa.selenium.testing.Ignore.Driver.HTMLUNIT; @@ -47,7 +32,6 @@ import static org.openqa.selenium.testing.Ignore.Driver.PHANTOMJS; import static org.openqa.selenium.testing.Ignore.Driver.REMOTE; import static org.openqa.selenium.testing.Ignore.Driver.SAFARI; -import static org.openqa.selenium.testing.drivers.Browser.android; import static org.openqa.selenium.testing.drivers.Browser.chrome; import static org.openqa.selenium.testing.drivers.Browser.htmlunit; import static org.openqa.selenium.testing.drivers.Browser.htmlunit_js; @@ -57,6 +41,20 @@ import static org.openqa.selenium.testing.drivers.Browser.opera; import static org.openqa.selenium.testing.drivers.Browser.phantomjs; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Sets; + +import org.junit.runners.model.FrameworkMethod; +import org.openqa.selenium.Platform; +import org.openqa.selenium.testing.Ignore; +import org.openqa.selenium.testing.IgnoreComparator; +import org.openqa.selenium.testing.JavascriptEnabled; +import org.openqa.selenium.testing.NativeEventsRequired; +import org.openqa.selenium.testing.NeedsLocalEnvironment; + +import java.util.Arrays; +import java.util.Set; + /** * Class that decides whether a test class or method should be ignored. */ @@ -64,7 +62,7 @@ public class TestIgnorance { private Set alwaysNativeEvents = ImmutableSet.of(chrome, ie, opera); private Set neverNativeEvents = ImmutableSet.of( - htmlunit, htmlunit_js, ipad, iphone, android, phantomjs); + htmlunit, htmlunit_js, ipad, iphone, phantomjs); private IgnoreComparator ignoreComparator = new IgnoreComparator(); private Set methods = Sets.newHashSet(); private Set only = Sets.newHashSet(); @@ -168,12 +166,6 @@ private void addIgnoresForBrowser(Browser browser, IgnoreComparator comparator) } switch (browser) { - case android: - case android_real_phone: - comparator.addDriver(ANDROID); - comparator.addDriver(REMOTE); - break; - case chrome: comparator.addDriver(CHROME); break; diff --git a/java/server/src/org/openqa/selenium/remote/server/DefaultDriverSessions.java b/java/server/src/org/openqa/selenium/remote/server/DefaultDriverSessions.java index 50cbb8f2fb0f9..74daa22174bf6 100644 --- a/java/server/src/org/openqa/selenium/remote/server/DefaultDriverSessions.java +++ b/java/server/src/org/openqa/selenium/remote/server/DefaultDriverSessions.java @@ -70,12 +70,6 @@ protected DefaultDriverSessions(Platform runningOn, DriverFactory factory) { } private void registerDefaults(Platform current) { - if (current.equals(Platform.ANDROID)) { - // AndroidDriver is here for backward-compatibility reasons, it should be removed at some point - registerDriver(DesiredCapabilities.android(), "org.openqa.selenium.android.AndroidDriver"); - registerDriver(DesiredCapabilities.android(), "org.openqa.selenium.android.AndroidApkDriver"); - return; - } for (Map.Entry entry : defaultDrivers.entrySet()) { Capabilities caps = entry.getKey(); if (caps.getPlatform() != null && caps.getPlatform().is(current)) { diff --git a/maven/android-driver/pom.xml b/maven/android-driver/pom.xml deleted file mode 100644 index df31be904f4ff..0000000000000 --- a/maven/android-driver/pom.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - 4.0.0 - - - org.seleniumhq.selenium - selenium-parent - 2.0-SNAPSHOT - - selenium-android-driver - selenium-android-driver - - - - org.seleniumhq.selenium - selenium-remote-driver - ${project.version} - - - com.google.android - android - 4.0.1.2 - provided - - - - - - - - maven-antrun-plugin - - - copy_java_files - generate-sources - - - - - - - - - - - - run - - - - - - - - diff --git a/maven/java/pom.xml b/maven/java/pom.xml index 3c15747b23e6b..ca3f96178b575 100644 --- a/maven/java/pom.xml +++ b/maven/java/pom.xml @@ -12,11 +12,6 @@ selenium-java - - org.seleniumhq.selenium - selenium-android-driver - ${project.version} - org.seleniumhq.selenium selenium-chrome-driver @@ -88,7 +83,6 @@ - diff --git a/maven/pom.xml b/maven/pom.xml index cd44043f607a2..e82bf706ad275 100644 --- a/maven/pom.xml +++ b/maven/pom.xml @@ -117,7 +117,6 @@ - android-driver api chrome-driver firefox-driver diff --git a/properties.yml b/properties.yml deleted file mode 100644 index a0a9a93e58c74..0000000000000 --- a/properties.yml +++ /dev/null @@ -1,12 +0,0 @@ -default: - android: - # Path to the android sdk - androidsdkpath : "../../android-sdk/" - # Target id. To get a list of all targets do "./android list targets". - # We want whatever matches the latest android 4.0 (IceCreamSandwich, currently API level 15) - # - # Note: Android WebDriver will not work on Gingerbread (SDK 2.3) emulator because of - # an emulator bug. However it will work with Gingerbread (SDK 2.3) devices. - androidtarget : "android-15" - # Android platform. You can find supported platforms under androidsdkpath/platforms/ - androidplatform : "android-15" diff --git a/rake-tasks/checks.rb b/rake-tasks/checks.rb index 7800e55fddc33..27537e184f2c9 100644 --- a/rake-tasks/checks.rb +++ b/rake-tasks/checks.rb @@ -133,18 +133,6 @@ def iPhoneSDKVersion? end end -def AndroidSDK? - if $androidSDK.nil? - prop = YAML.load_file( './properties.yml' ) - properties=prop["default"]["android"] - if (prop[ENV["USER"]]) - properties=prop[ENV["USER"]]["android"]; - end - $androidSDK = File.exists?(properties["androidsdkpath"]) - end - $androidSDK -end - def vcs_revision @vcs_revision ||= `git rev-parse --short HEAD` end diff --git a/selenium.eml b/selenium.eml index 5032ac52b0cc5..9abd77fb2a06a 100644 --- a/selenium.eml +++ b/selenium.eml @@ -187,9 +187,6 @@ - - - diff --git a/third_party/java/android/android-14.jar b/third_party/java/android/android-14.jar deleted file mode 100644 index edd1c82164f5e..0000000000000 Binary files a/third_party/java/android/android-14.jar and /dev/null differ diff --git a/third_party/java/android/build.desc b/third_party/java/android/build.desc deleted file mode 100644 index f8bee4eb2d659..0000000000000 --- a/third_party/java/android/build.desc +++ /dev/null @@ -1,6 +0,0 @@ - -# android-14.jar is ICS -java_library(name = "android", - deps = [ - "android-14.jar" - ])