v>AV`#R?#XPeYv$k>tyTXqpL
dQ__NR{sJQY_=nW5Q$zp&002ovPDHLkV1kotOhNzv
literal 0
HcmV?d00001
diff --git a/public/marvinjs/docs/index.html b/public/marvinjs/docs/index.html
new file mode 100644
index 000000000..1621ef386
--- /dev/null
+++ b/public/marvinjs/docs/index.html
@@ -0,0 +1,28 @@
+
+
+
+
+Marvin JS Documentation
+
+
+
+Marvin JS Documentation
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/marvinjs/docs/installationguide.html b/public/marvinjs/docs/installationguide.html
new file mode 100644
index 000000000..b93a5c6b6
--- /dev/null
+++ b/public/marvinjs/docs/installationguide.html
@@ -0,0 +1,81 @@
+
+
+
+
+Marvin JS - Installation Guide
+
+
+
+Marvin JS - Installation Guide
+
+
+Software requirement
+Marvin JS is a web based editor. Please, upload it to a web server and
+refer to its URL in your browser.
+Server side
+
+OR
+
+Please, consider that JChem Webservices (under version 15.10.26) requires Standardizer licence for the auto mapper functionality. From version 15.10.26 this web service is available with Marvin JS license.
+We only recommend the usage of JChem WebServices if you use additional search, calculation or structure checker functions, which are not included in Marvin JS Web Services.
+Client side
+
+
+License requirement
+Marvin JS requires Marvin JS license. Consult with the sales team where you have to place the license file where your copy
+of Marvin JS package can access.
+JChem Webservices also accepts Marvin JS license, it is used by only Marvin JS. Consult with its manual how to setup its license.
+
+Installation
+
+Deploy Marvin JS
+
+Download the Marvin JS zip package from the ChemAxon site.
+
+Deploy Marvin JS into an Apache Tomcat Container
+JChem Webservice requires a servlet container like Apache Tomcat. If you would like to install both Marvin JS and JChem Webservices, it worths
+to install both of them into the Tomcat Container. In this case, the web root can be an ideal place where you can deploy Marvin JS:
+
+ Navigate into the webapps folder of Tomcat and enter its ROOT subdirectory.
+ Create a new folder in this directory (e.g. marvinjs ).
+ Extract the Marvin JS zip file into this new directory.
+
+
+Deploy Marvin JS under any web server
+Extract the zip file into a new empty directory (e.g. marvinjs
) and deploy it under your web server.
+(Consult with the manual of the server or its administrator how to deploy new content there.)
+
+Install web services for Marvin JS
+If you need extended functionalities, ChemAxon JChem Webservices is required.
+Marvin JS can communicate with other web service implementations that are compatible with the ChemAxon provided version.
+See the required web service specifications
+
+Download ChemAxon JChem Webservices (v14.7.21 or above).
+ Install the required web services under the same domain as the web server hosts.
+Please consult with the appropriate installation guide of JChem Webservices. You can find the download link for the recommended webservice version on the Marvin JS download site.
+Marvin JS searches web services on the following URL: /webservices2
. If your web service copy is available on a different URL,
+please, modify settings in Marvin JS.
+
+ Modify web service location in the webservices.js file, which you can find in the root of the Marvin JS package.
+
+
+
+
+Note: If web services and Marvin JS are located on different domains, the browser can block the access of web services at runtime
+since the request may harm the same origin policy of the browser.
+
+Try the deployed version
+Open examples of Marvin JS package from your web server in your browser to check whether the deployment was successful:
+http://<web server url>/<marvinjs directory path>/examples/
+
+
+
+
diff --git a/public/marvinjs/docs/manual/index.html b/public/marvinjs/docs/manual/index.html
new file mode 100644
index 000000000..f1a287dba
--- /dev/null
+++ b/public/marvinjs/docs/manual/index.html
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/public/marvinjs/docs/troubleshoot.html b/public/marvinjs/docs/troubleshoot.html
new file mode 100644
index 000000000..4bb10af89
--- /dev/null
+++ b/public/marvinjs/docs/troubleshoot.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+ Marvin JS - Troubleshoot
+
+
+
+
+
+Marvin JS - Troubleshoot
+
+
+Sketch does not appear in the iframe on my page
+
+
+Please, check whether the reference to editor.html or editorws.html in the src attribute of the iframe is correct.
+Sketch requires HTML5 canvas. Please, check whether your browser support HTML5 canvas . It is not available in old browsers like IE8.
+
+
+Import / Export button does not work on demo example page
+The initialization of the example failed, the custom JavaScript code does not find the reference to the sketcher.
+Reasons:
+
+ When the iframe is empty the editor is not alive, thus it can not be referred.
+ Error message on the JavaScript console: Error: Permission denied to access property 'marvin'
: The browser blocks accessing of the iframe content from external JavaScript code if it
+ violates the same-origin policy. The browser considers that the hosted page and the iframe content come from the same-origin. If both arrives from the local filesystem (file://...), in most cases they
+ are identified as different origins. See: Same-origin policy for file: URIs
+
+
+ 2D clean drops error
+Please, note that 2D coordinate calculation is performed at server side. Marvin JS posts the structure to the Clean2D web service that generates the new coordinates and sends it back to the editor in an MRV.
+The clean 2D operation can fail if
+
+ The web service is not available on the expected URL.
+ The browser may block the communication between Marvin JS and the server since it harms the same orgin policy of the browser.
+ Internal server error occurs during performing the calculation.
+
+Please, check that web service is available and it is installed properly, see the installation guide of Marvin JS.
+If it is necessary, consult with the system administrator of the server that hosts the web services.
+
+
+Stereo calculation drops error
+It uses Stereo Info web service to calculate stereo info. It may be the same problem than 2D clean issue .
+
+
SMILES format does not work in Open and in Save dialog
+SMILES import/export requires MolConvert web service. If it is configured for the editor but it cannot be accessed, you can get an error message.
+Conversion can fail in the similar cases than 2D clean fails .
+
+Download button in Save dialog does nothing
+This error may appear in the following situation:
+
+ Desired output format is different than MDL molfile or Marvin Document (output file is generated on the remote server by the MolConvert Webservice).
+ The web page where Marvin JS is embedded is accessed via HTTP secure protocol (its URL address starts with https://
).
+ A proxy is configured as a frontend for Tomcat servlet container (where MolConvert Webservice is located) and the proxy is configured for https while Tomcat not.
+
+In this case, the URL of the output file generated by the webservice is incorrect: starts with http
instead of https
.
+The browser will block downloading this unsecure content in current secure environment. On the JavaScript console you can find the trace of the blocking.
+Solution
+To resolve the issue, modify the proxy settings :
+
+then edit Tomcat server.xml : add the following to the <Host>
section:
+<Valve className="org.apache.catalina.valves.RemoteIpValve"
+remoteIpHeader="x-forwarded-for"
+remoteIpProxiesHeader="x-forwarded-by"
+protocolHeader="x-forwarded-proto"/>
+
+There are other values that can be set and used: see Tomcat documentation
+
+
+
+At the first time after updating the package on the site, the editor is not launched.
+It may be a browser caching issue. This problem occurs when the content of Marvin JS package is modified (replace to a new version) but the browser still attempts to load the old one.
+Since the browser has already cached the old version earlier, it tries to prefer the cached version instead of the new one.
+In most cases, the user may not realize that the browser loads out-dated resources by running the editor. He faces with the issue when an out-dated resource requires any resource
+that does exist anymore on the server.
+To resolve the issue, purge out-dated content from this cache. If you apply a Shift+Reload on the current page, browser refreshes only those content in the local cache that belongs to this page.
+Clearing of the whole browser cache also resolves the issue.
+
+If you would like to prevent your users to run into this issue, modify the configuration of the server where Marvin JS package is hosted.
+When the web server hosts a content, it can indicate that it is cacheable or not.
+As the browser receives the content, it considers to cache it by those information that the server wrote in the header of the content.
+These info can be the expiration date or various caching directives.
+The best practice is skipping the caching of each file (from Marvin JS package) whose name contains the .nocache.
pattern.
+Apache2
+If Marvin JS package is hosted by an Apache server, the recommended settings is specifying a Cache-Control
directive the HTTP headers of those files where the given pattern match.
+When you modify its config file, please, check whether the mod_expires module is switched on.
+<ifmodule mod_expires.c>
+ <Files *.nocache.*>
+ ExpiresActive on
+ ExpiresDefault "access"
+ Header merge Cache-Control "public, max-age=0, must-revalidate"
+ </Files>
+</ifmodule>
+Tomcat 7
+If Marvin JS is wrapped into a web application, there is the chance to control what directives appear in the HTTP headers of web application contents.
+Under Tomcat 7, you can apply a built in filter or define a new one to modify HTTP headers for your web application.
+Please consult with the manual of your servlet container, how to switch off caching for each file whose name contains the .nocache.
pattern.
+If you manage to achieve that the response header contains the following lines at *.nocache.*
files, it is enough to prevent their caching.
+
Cache-Control no-cache, no-store
+Pragma no-cache
+
+
+
diff --git a/public/marvinjs/editor.html b/public/marvinjs/editor.html
new file mode 100644
index 000000000..81d83189f
--- /dev/null
+++ b/public/marvinjs/editor.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+ Marvin JS
+
+
+
+
+
+
+
+
+
+
Your web browser must have JavaScript enabled in order for this application to display correctly.
+
+
+
+
+
diff --git a/public/marvinjs/editorws.html b/public/marvinjs/editorws.html
new file mode 100644
index 000000000..fda36c0ed
--- /dev/null
+++ b/public/marvinjs/editorws.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+ Marvin JS
+
+
+
+
+
+
+
+
+
+
+
Your web browser must have JavaScript enabled in order for this
+ application to display correctly.
+
+
+
+
+
diff --git a/public/marvinjs/examples/abbreviations/demoabbrev.json b/public/marvinjs/examples/abbreviations/demoabbrev.json
new file mode 100644
index 000000000..25c1ada91
--- /dev/null
+++ b/public/marvinjs/examples/abbreviations/demoabbrev.json
@@ -0,0 +1,9 @@
+{
+ "templates": [{
+ "structure": " ",
+ "name": "Ac"
+ },
+ {"structure":"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ","name":"Custom AA"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/public/marvinjs/examples/abbreviations/myabbreviations.mrv b/public/marvinjs/examples/abbreviations/myabbreviations.mrv
new file mode 100644
index 000000000..3cc3ceca0
--- /dev/null
+++ b/public/marvinjs/examples/abbreviations/myabbreviations.mrv
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/public/marvinjs/examples/abbreviations/myabbreviations.sdf b/public/marvinjs/examples/abbreviations/myabbreviations.sdf
new file mode 100644
index 000000000..c3ffc99db
--- /dev/null
+++ b/public/marvinjs/examples/abbreviations/myabbreviations.sdf
@@ -0,0 +1,44 @@
+Ac
+ Mrv1641104201715272D
+
+ 3 2 0 0 0 0 999 V2000
+ 1.2375 -0.7145 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
+ 1.9520 -1.1270 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
+ 2.6664 -0.7145 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 2 1 0 0 0 0
+ 2 3 2 0 0 0 0
+M STY 1 1 SUP
+M SAL 1 3 1 2 3
+M SMT 1 Ac
+M SAP 1 1 2 0 1
+M SDS EXP 1 1
+M END
+$$$$
+Custom AA
+ Mrv1641104201715272D
+
+ 9 8 0 0 0 0 999 V2000
+ 0.3197 2.1289 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
+ 0.3197 1.3039 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
+ -0.3948 0.8914 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
+ 1.0342 0.8914 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
+ 1.7486 1.3039 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
+ 1.0342 2.5414 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
+ -1.8237 0.8914 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
+ -1.1092 1.3039 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
+ -1.1092 2.1289 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
+ 1 2 1 0 0 0 0
+ 2 4 1 0 0 0 0
+ 4 5 2 0 0 0 0
+ 1 6 1 0 0 0 0
+ 3 8 1 0 0 0 0
+ 7 8 1 0 0 0 0
+ 8 9 2 0 0 0 0
+ 2 3 1 0 0 0 0
+M STY 1 1 SUP
+M SAL 1 9 1 2 3 4 5 6 7 8 9
+M SMT 1 Custom AA
+M SAP 1 1 4 0 1
+M SDS EXP 1 1
+M END
+$$$$
diff --git a/public/marvinjs/examples/checker/example-checker.html b/public/marvinjs/examples/checker/example-checker.html
new file mode 100644
index 000000000..b658a7548
--- /dev/null
+++ b/public/marvinjs/examples/checker/example-checker.html
@@ -0,0 +1,527 @@
+
+
+
+
+Marvin JS Example - Structure checker
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Marvin JS Example - Structure Checker
+
+Here is an example how to integrate Structure Checker web service into Marvin JS editor (In this case JChem WS requires the Structure Checker license).
+If the molecule changes, its source will be sent to the Structure Checker to evaluate the structure with the selected types of checkers.
+If any structure error is detected, it is highlighted on the structure and a detailed error message appears below the editor.
+In this example, only Bond Length , Bond Angle and Atom Map checkers are used.
+The full list of checkers are available here: Checker List
+
+
+
+
+
Structure Checker configuration
+
+
Structure Errors
+
+
+
+
Code comments
+
This examples requires molchange.js
that defines MolChangeHandler
class to aggregate molecule change events.
+
First of all, CheckersWS
checks which services are availables. It provides a Promise to notify when the list of the available
+services arrived (or notify if services are unreachables).
+
After that, the following steps will be executed:
+
+ With the add
function of the Checkers
object, selected structure checkers are initialized.
+ Retrieves the reference for the sketcher that runs in the iframe and runs the onSketchLoaded
function.
+
+
$(document).ready(function handleDocumentReady (e) {
+ var config = [
+ {id: "BondLengthChecker", color: "#ffe211", title: "Bond length"},
+ {id: "BondAngleChecker", color: "#ef6671", title: "Bond angle"},
+ {id: "AtomMapChecker", color: "#d26ff1", title: "Atom map"}
+ ];
+ CheckersWS.then(function(services) {
+ for(var i = 0; i < config.length; i++) {
+ if($.inArray(config[i].id, services)) {
+ Checkers.add(config[i].id, config[i].color, config[i].title);
+ }
+ }
+ MarvinJSUtil.getEditor("#sketch").then(onSketchLoaded, function () {
+ alert("Cannot retrieve sketcher instance from iframe");
+ });
+ }, function(error) {
+ $('#checkers-panel-result').html('structure checker is not available ');
+ });
+});
+});
+
The onSketchLoaded
function instantiates a MolChangeHandler
. Its first parameter is the reference of the editor to listen.
+The second one is a callback function that is performed at each mol change event.
+
function onSketchLoaded(sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ // aggregator for molecule change events
+ new MolChangeHandler(sketcherInstance, onMolChange);
+}
+
If you take a look at the add
function of Checkers
, you can see that it creates a CheckerWidget
object for each checker.
+
/** Appends a new checker to the document.
+ * @param id - the name of the checker as referred in JChem WS (see JChem WS documentation)
+ * @param color - colorizes the result (atoms/bonds) in the editor with this color
+ * @param title - the short description of the checker that displays in the config panel below.
+ */
+ function add(id, color, title) {
+ var widget = new CheckerWidget(id, color, title);
+ $("#checkers-panel-config").append(widget.asWidget());
+ widgets.push(widget);
+ }
+
Returning to the onMolChange
function, you can see that it resets the current highlight on the sketcher, gets the source of the current structure and performs a
+structure check on it.
+
function reset() {
+ // reset current highlight
+ marvinSketcherInstance.setHighlight({});
+ $('#checkers-panel-result').empty();
+}
+
+var last = null;
+
+function onMolChange(e) {
+ last = e;
+ reset();
+ e.target.exportStructure("mrv").then(function(source) {
+ if(!e.isDeprecated) { // unless a newer molchange event deprecate this event
+ e.source = source;
+ Checkers.check(source);
+ }
+ },alert);
+}
+
If you take a closer look at the Checkers.check
function, you can see those CheckerWidget
s are enabled where the checkboxes were previously checked. It creates the input for the Structure Checker web service.
+Finally, it calls the send
method with the created object.
+
/**
+ * Performs the structure checking on the given molecule source.
+ * @param source - the molecule source in MRV format.
+ */
+ function check(source) {
+ var json = {};
+ json.structure = source;
+ json.parameters = {};
+ json.parameters.checkers = [];
+ for(var i = 0; i < widgets.length; i++) {
+ var widget = widgets[i];
+ if(widget.isEnabled()) {
+ json.parameters.checkers.push({"checkerId": widget.getId() });
+ }
+ }
+ if(json.parameters.checkers.length == 0) {
+ return;
+ }
+ send(json);
+ }
+
The send
invokes the web service, then call onSuccess
function when the response of web service is received or onFail
if any error occured.
+
/* Sends an async request to Structure checker web service. */
+ function send(json) {
+ var wsBase = getDefaultServicesPrefix();
+ // arrange the input for the Structure Checker web service
+ $.ajax({
+ "url": wsBase + "/rest-v0/util/calculate/structureChecker"
+ ,"type": "POST"
+ ,"dataType": "json"
+ ,"contentType": "application/json"
+ ,"data": JSON.stringify(json)
+ }).done(function (data, textStatus, jqXHR) {
+ onSuccess(data);
+ }).fail(onFail);
+ }
+
The onSuccess
function gets the response of the web service as a parameter (data
). Its header
field contains the id of the performed checkers.
+Each checker result can be referred with its own id. E.g. data.bondlength
describes the result of bondlength
checker.
+A checker result can contain many fields but only the following one are relevant in this case:
+
+ checkerName: the title of the checker
+ description: the error message
+ errors: a complex object that also describes which atoms and bonds are affected.
+
+The
checkerName
and the
decription
is displayed on the current page in the
checkers-panel-result
div.
+Meanwhile the affected atoms and bonds are highlighted in the sketcher.
+
/* Callback to process web service result. */
+ function onSuccess(data) {
+ var highlights = [];
+ if(typeof data.headers == 'object') {
+ for(checkerId in data.headers) {
+ if(data.headers.hasOwnProperty(checkerId) && isCheckerResult(data[checkerId])) {
+ var widget = getWidget(checkerId);
+ if(widget) {
+ // display error message
+ var message = "("+data[checkerId].checkerName+"): "+data[checkerId].description;
+ $('#checkers-panel-result').append(widget.createErrorWidget(message));
+ // calculate context to highlight
+ if(typeof data[checkerId].errors == 'object') {
+ var indexes = {};
+ indexes.atoms = getAtoms(data[checkerId].errors.atoms);
+ indexes.bonds = getBonds(data[checkerId].errors.bonds);
+ if(indexes.atoms.length || indexes.bonds.length) { // add highlight unless context is empty
+ highlights.push({
+ 'style': {
+ 'color': widget.getColor(),
+ 'opacity': 0.25
+ },
+ 'indexes': indexes
+ });
+ }
+ }
+ }
+ }
+ }
+ }
+ // highlight atoms and bonds
+ marvinSketcherInstance.setHighlight(highlights);
+ }
+
Changing of the configuration (check/uncheck checkbox or modify checker color) also triggers the checking of the structure
+(whose source was already stored in the source
property of the last molchange event).
+
function onConfigChange(e) {
+ // reevaluate last consumed molchange event when congfiguration is changed
+ if(last && !last.isDeprecated && (typeof last.source == 'string')) {
+ reset();
+ Checkers.check(last.source);
+ }
+}
+
+
+
+
diff --git a/public/marvinjs/examples/checker/molchange.js b/public/marvinjs/examples/checker/molchange.js
new file mode 100644
index 000000000..d7994ea48
--- /dev/null
+++ b/public/marvinjs/examples/checker/molchange.js
@@ -0,0 +1,61 @@
+
+/* Notify about molchange events and provides the mol source of the new structure. */
+var MolChangeHandler = (function() {
+
+ function createEvent(sketcher) {
+ return {
+ date: new Date(),
+ target: sketcher,
+ isDeprecated: false
+ }
+ }
+
+ // purge event queue (deactivate events that found there)
+ function reset(eventQueue) {
+ for(var i = 0; i < eventQueue.length; i++) {
+ eventQueue[i].isDeprecated = true;
+ }
+ eventQueue = [];
+ }
+
+ var DELAY = 1000;
+
+ /*
+ * Constructor of MolChangeHandler.
+ * @param bind to this Marvin JS editor instance
+ * @param triggered function at molchange event.
+ * */
+ function MolChangeHandler(sketcher, onSuccess) {
+ this.sketcher = sketcher;
+ this.onSuccess = onSuccess;
+ this.pending = false;
+ this.eventQueue = [];
+ var that = this;
+ this.sketcher.on('molchange', function() {
+ onMolChange(that);
+ });
+ }
+
+ // wait to aggregate molchange events
+ function onMolChange(that) {
+ if(!that.pending) {
+ that.pending = true;
+ setTimeout(function() {
+ that.pending = false;
+ fireEvent(that);
+ }, DELAY);
+ }
+ }
+
+ // trigger a new event
+ function fireEvent(that){
+ var e = createEvent(that.sketcher);
+ reset(that.eventQueue);
+ that.eventQueue.push(e);
+ var callback = that.onSuccess;
+ callback(e);
+ }
+
+ return MolChangeHandler;
+}());
+
diff --git a/public/marvinjs/examples/demo.html b/public/marvinjs/examples/demo.html
new file mode 100644
index 000000000..7b0cf635e
--- /dev/null
+++ b/public/marvinjs/examples/demo.html
@@ -0,0 +1,427 @@
+
+
+
+
+ Marvin JS Examples - Demo
+
+
+
+
+
+
+
+
+
+ Marvin JS Examples - Demo
+
+
+
+
+
+ In this example, you can import a molecule from MDL molfile or MRV format into the editor with the help of the Import and Paste buttons. While the Import
button overwrites the canvas content, submitting of the Paste
button preserves the current structure and appends the new one.
+
+ With the Molfile Export and MRV Export buttons, you can retrieve canvas content in the desired format.
+
+ In this example, you can also control display settings of the editor with the proper checkboxes.
+
+ You can find the commented code below:
+ The InputControllerClass
is responsible for the input form that involves the Import , Paste , Reset , Mol Export , MRV Export buttons, the format selector combo box and the text area for molecule source.
+ It manages the click events of the buttons and provides functions to get/set text from/to the text box.
+
+
+
+ var InputControllerClass = (function () {
+
+ var delay = 5;
+
+ function InputControllerClass (importButton, pasteButton, formatDropdown, resetButton, molExportButton, mrvExportButton, srcTextBox) {
+
+ this.importButton = importButton;
+ this.pasteButton = pasteButton;
+ this.formatDropdown = formatDropdown;
+ this.resetButton = resetButton;
+ this.molExportButton = molExportButton;
+ this.mrvExportButton = mrvExportButton;
+ this.srcTextBox = srcTextBox;
+ this.init();
+ }
+
+ InputControllerClass.prototype.init = function init () {
+ this.importButton.on("click", $.proxy(this.handleImportBtnClick, this));
+ this.pasteButton.on("click", $.proxy(this.handlePasteBtnClick, this));
+ this.resetButton.on("click", $.proxy(this.clearTxt, this));
+ this.molExportButton.on("click", $.proxy(this.handleMolExportBtnClick, this));
+ this.mrvExportButton.on("click", $.proxy(this.handleMrvExportBtnClick, this));
+ };
+
+ InputControllerClass.prototype.handleImportBtnClick = function handleImportBtnClick (e) {
+ this.delayCall(importMolAction, [this.getTxt(), this.getFormat()]);
+ };
+
+ InputControllerClass.prototype.handlePasteBtnClick = function handleImportBtnClick (e) {
+ this.delayCall(pasteMolAction, [this.getTxt(), this.getFormat()]);
+ };
+
+ InputControllerClass.prototype.handleMolExportBtnClick = function handleMolExportBtnClick (e) {
+ this.delayCall(exportMolAction, ["mol"]);
+ };
+
+ InputControllerClass.prototype.handleMrvExportBtnClick = function handleMolExportBtnClick (e) {
+ this.delayCall(exportMolAction, ["mrv"]);
+ };
+
+ InputControllerClass.prototype.delayCall = function delayCall (method, args) {
+ setTimeout(function () {
+ method.apply(null, args);
+ }, delay);
+ };
+
+ InputControllerClass.prototype.getTxt = function getTxt () {
+ return this.srcTextBox.val();
+ };
+
+ InputControllerClass.prototype.setTxt = function setTxt (txt) {
+ this.srcTextBox.val(txt);
+ };
+
+ InputControllerClass.prototype.clearTxt = function clearTxt () {
+ this.setTxt("");
+ };
+
+ InputControllerClass.prototype.getFormat = function getFormat (e) {
+ return this.formatDropdown.val();
+ };
+
+ return InputControllerClass;
+
+ }());
+
+ The MarvinControllerClass
is responsible for updating display settings if the state of the CPK coloring or Carbon label visibility checkboxes are modified on the current page.
+
The MarvinControllerClass
also provides a reference to the sketcher instance. It is necessary to be able to call the molecule import / export function of the sketcher.
+
+ var MarvinControllerClass = (function () {
+
+ function MarvinControllerClass ( sketcherInstance, cpkCheckbox, mapCheckbox, carbonCheckbox) {
+ this.sketcherInstance = sketcherInstance;
+ this.cpkCheckbox = cpkCheckbox;
+ this.mapCheckbox = mapCheckbox;
+ this.carbonCheckbox = carbonCheckbox;
+ this.init();
+ }
+
+ MarvinControllerClass.prototype.init = function init () {
+ this.carbonCheckbox.on("change", $.proxy(this.handleCarbonCheckBoxChange, this));
+ this.mapCheckbox.on("change", $.proxy(this.handleMapCheckBoxChange, this));
+ this.cpkCheckbox.on("change", $.proxy(this.handleCpkCheckBoxChange, this));
+ };
+
+ MarvinControllerClass.prototype.handleCarbonCheckBoxChange = function handleCarbonCheckBoxChange (e) {
+ this.sketcherInstance.setDisplaySettings({
+ "carbonLabelVisible" : this.carbonCheckbox.is(':checked')
+ });
+ };
+
+ MarvinControllerClass.prototype.handleMapCheckBoxChange = function handleMapCheckBoxChange (e) {
+ this.sketcherInstance.setDisplaySettings({
+ "atomMapsVisible" : this.mapCheckbox.is(':checked')
+ });
+ };
+
+ MarvinControllerClass.prototype.handleCpkCheckBoxChange = function handleCpkCheckBoxChange (e) {
+ this.sketcherInstance.setDisplaySettings({
+ "cpkColoring" : this.cpkCheckbox.is(':checked')
+ });
+ };
+
+ return MarvinControllerClass;
+
+ }());
+ Both InputControllerClass
and MarvinControllerClass
are instantiated when the page is loaded and the sketcher is loaded: getMarvinSketchIntstance("#sketch").done(...)
.
+ The initial value of the text box is set after page loading is finised.
+
+ $(document).ready(function handleDocumentReady (e) {
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+
+ marvinController = new MarvinControllerClass(
+ sketcherInstance,
+ $("#chbx-coloring"),
+ $("#chbx-map"),
+ $("#chbx-carbonVis")
+ );
+
+ inputController = new InputControllerClass(
+ $("#btn-setMdlmolfile"),
+ $("#btn-paste"),
+ $("#list-inputformat"),
+ $("#btn-clearTxt"),
+ $("#btn-molExport"),
+ $("#btn-mrvExport"),
+ $("#molsource-box")
+ );
+
+ }, function () {
+ alert("Cannot retrieve sketcher instance from iframe");
+ });
+
+ $("#molsource-box").val(caffeineSource);
+ });
+
+ InputControllerClass
calls one of these functions with some delay when Import , Export as Mol or Export As Mrv button is pressed.
+
+ function pasteMolAction (txt, format) {
+ var pastePromise = marvinController.sketcherInstance.pasteStructure(format, txt);
+ pastePromise.then(function() {}, function(error) {
+ alert(error);
+ });
+ }
+
+ function importMolAction (txt, format) {
+ var importPromise = marvinController.sketcherInstance.importStructure(format, txt);
+ importPromise.then(function() {}, function(error) {
+ alert(error);
+ });
+ }
+
+ function exportMolAction (format) {
+ var ic = inputController;
+
+ var exportPromise = marvinController.sketcherInstance.exportStructure(format, null);
+ exportPromise.then(function(source) {
+ ic.setTxt(source);
+ }, function(error) {
+ ic.setTxt(error);
+ });
+ }
+
+
+
+
diff --git a/public/marvinjs/examples/eflow/alternative-eflow.html b/public/marvinjs/examples/eflow/alternative-eflow.html
new file mode 100644
index 000000000..275493e07
--- /dev/null
+++ b/public/marvinjs/examples/eflow/alternative-eflow.html
@@ -0,0 +1,34 @@
+
+
+
+
+ Marvin JS Example - Alternative electron flow arrow
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-abbrevs.html b/public/marvinjs/examples/example-abbrevs.html
new file mode 100644
index 000000000..8db841c13
--- /dev/null
+++ b/public/marvinjs/examples/example-abbrevs.html
@@ -0,0 +1,124 @@
+
+
+
+
+ Marvin JS Example - Load Custom Abbreviation list
+
+
+
+
+
+
+
+
+ Marvin JS Example - Load Custom Abbreviation list
+
+ In this example, custom abbreviation list is loaded, which contains Ac group abbreviation and a custom abbreviated group, named Custom AA .
+ Just specify the URL of the custom abbreviation list in the data-abbrevsurl attribute of the iframe that contains the editor.
+ Each group in the abbreviation list is described in MDL molfile V2000 or MRV format.
+ Each group is a titled compound both in molfile and in MRV format the molecule name has to be specified. The molecule name is parsed
+ as the label of the menu item in the Abbreviation dialog.
+ Each compound describes an expanded abbreviated (superatom) S-group.
+ The abbreviation list can be accepted in the following flavors:
+
+ SD file
+ MRV file
+ JSON
+
+
+
+
+
+
+
Resource file
+
+
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-addbutton.html b/public/marvinjs/examples/example-addbutton.html
new file mode 100644
index 000000000..5b5321791
--- /dev/null
+++ b/public/marvinjs/examples/example-addbutton.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+ Marvin JS Example - Add custom button to the toolbar
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Add custom button to the toolbar
+
+
+
+
Append a custom button to the toolbar at startup (the icon URL is relative to the editor.html document):
+
+ var marvinSketcherInstance;
+ var buttonAttributes;
+
+ $(document).ready(function handleDocumentReady (e) {
+
+
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ buttonAttributes = {
+ "name" : "custom",
+ "image-url" : "examples/images/custom-icon.png",
+ "toolbar" : "W"
+ };
+ marvinSketcherInstance.addButton(buttonAttributes, function() {
+ alert('The custom button has been pushed.');
+ });
+ }, function () {
+ alert("Cannot retrieve sketcher instance from iframe");
+ });
+});
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-addtemplate.html b/public/marvinjs/examples/example-addtemplate.html
new file mode 100644
index 000000000..26acb2f32
--- /dev/null
+++ b/public/marvinjs/examples/example-addtemplate.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+ Marvin JS Example - Add custom template button to the toolbar
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Add custom template button to the toolbar
+
+
+
+
Append a custom template button to the toolbar at startup:
+
$(document).ready(function handleDocumentReady (e) {
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ var templateAttributes = {
+ 'structure':"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<cml xmlns=\"http://www.chemaxon.com\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.chemaxon.com/marvin/help/formats/schema/mrvSchema_6_1_0.xsd\" version=\"ChemAxon file format v6.1, generated by v6.1.0\">\n<MDocument>\n <MChemicalStruct>\n <molecule molID=\"m1\">\n <atomArray atomID=\"a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12\" elementType=\"C C N C C C O C C O C O\" x2=\"3.189999994039537 1.6499999940395358 0.8799999940395326 -0.6600000059604675 -1.4300000059604656 -2.970000005960466 -3.7400000059604674 -0.6600000059604636 -1.4300000059604623 -0.6600000059604607 0.8799999940395365 1.6499999940395358\" y2=\"-0.831839567470531 -0.8318395674705295 -2.165518689298567 -2.1655186892985645 -0.8318395674705278 -0.8318395674705257 -2.16551868929856 0.5018395543575072 1.8355186761855429 3.1691977980135775 0.501839554357506 1.8355186761855407\"/>\n <bondArray>\n <bond id=\"b1\" atomRefs2=\"a1 a2\" order=\"1\"/>\n <bond id=\"b2\" atomRefs2=\"a2 a3\" order=\"2\"/>\n <bond id=\"b3\" atomRefs2=\"a2 a11\" order=\"1\"/>\n <bond id=\"b4\" atomRefs2=\"a3 a4\" order=\"1\"/>\n <bond id=\"b5\" atomRefs2=\"a4 a5\" order=\"2\"/>\n <bond id=\"b6\" atomRefs2=\"a5 a6\" order=\"1\"/>\n <bond id=\"b7\" atomRefs2=\"a5 a8\" order=\"1\"/>\n <bond id=\"b8\" atomRefs2=\"a6 a7\" order=\"1\"/>\n <bond id=\"b9\" atomRefs2=\"a8 a9\" order=\"1\"/>\n <bond id=\"b10\" atomRefs2=\"a8 a11\" order=\"2\"/>\n <bond id=\"b11\" atomRefs2=\"a9 a10\" order=\"1\"/>\n <bond id=\"b12\" atomRefs2=\"a11 a12\" order=\"1\"/>\n </bondArray>\n </molecule>\n </MChemicalStruct>\n</MDocument>\n</cml>",
+ 'name':"Vitamin B6",
+ 'icon':"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAB/ElEQVRIS82Uv0scQRTHZ7eQK4KxUYxy7AbBRhDOYBnuQhqLEJImpFOwUBslnZVckSpVOpsUh3+ACBo0YHFJETHkjktjYaKsYKGIqElzBPY2n2dm5Vh33d3kDhz43Oy9mff9vjf7w1BtHkab9dXtMfCUGqDbC7gsip+TJN0n7gCDMQRF9B4ckfi1ZQaIF3XVl3OaEdtBl1LWmVIfEc2z+SCNuC4qNuUDO7YgtPq4exPbAcK/4CW8DysFgxniX6LuTRKDCZLH4VHQAHGL2DewEJIn7NpIYiBJZShprkQeKLXCo1RDJPT4kt4D2VeAdXgLde2QYx6F/rDK/VjSDnwDh8Renbyvr1ti4B/RBqIZbXDKvKqP77+OaAIRQboIDptADWQ+b1oc5NqFn8EjyhN8Df45S85DWIRXIQZ3iX2CPm0kW37AMnTDbtDAIfhGFprEFrgehmdQbjbJZHqL9frRLLElWNNr8t5s62t5fP8Onuk5pucECoFKbf7Lh+0Yhvy1XO6dZZrujud51Wp1WroMHQbC0oqIbEqlEd+bImvTMA8lX2lkZHGv0VCTtdpM+SaDJyzeh8+IVyI28s1T3+FONvtC9fQ8Vq7rPTUMs9M0vcNKZco/kmvpSd8DSTShQ07QtseV4xz85gVuRFXux9MYxGmF34N/ykqR1PYO/gD34W6BfraGuwAAAABJRU5ErkJggg=="
+ };
+ sketcherInstance.addTemplate(templateAttributes);
+ }, function () {
+ alert("Cannot retrieve sketcher instance from iframe");
+ });
+});
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-copyasmrv.html b/public/marvinjs/examples/example-copyasmrv.html
new file mode 100644
index 000000000..55b31d8ed
--- /dev/null
+++ b/public/marvinjs/examples/example-copyasmrv.html
@@ -0,0 +1,95 @@
+
+
+
+
+ Marvin JS Example - Copy As MRV
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Copy As MRV
+
+
+
+
+
+
+
This example demonstrates how to control what is placed to the clipboard at copy.
+ When MRV as copy format checkbox is checked, the structure is placed as MRV to the clipboard at copy.
+ When the checkbox is unchecked, the default copy format is MDL molfile .
+ To see the difference, draw something into the editor, select it and press CTR+C shortcut to copy the structure to the clipboard.
+ After that, click into the textbox and press CTRL+V to paste the clipboard content into the editor.
+ The format of the pasted content (MRV or MDL molfile ) depend on the state of the above checkbox.
+
If you would like to clear the textbox content, press apply the Reset textbox button.
+
+
At startup, the copyasmrv parameter of Marvin JS editor is setup.
+
<iframe src="../editorws.html" id="sketch" class="sketcher-frame" data-toolbars="reporting" data-copyasmrv=true></iframe>
+
First of all, you need a reference for the editor. MarvinJSUtil.getEditor(String)
provides a Promise object for you to get it
+ when the editor is ready.
+
After the editor is loaded, run the initcontrol()
function to bind actions to the MRV as copy format checkbox and to
+ the Reset textbox button.
+
var marvinSketcherInstance;
+
+ $(document).ready(function handleDocumentReady (e) {
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ initControl();
+ },function (error) {
+ alert("Cannot retrieve sketcher instance from iframe:"+error);
+ });
+ });
+
Changing of the checkbox value, trigger update settings of the editor.
+ In the change event handler, the target
of the change event is the checkbox. If the checkbox is checked, setup copyasmrv
property to true
else false
.
+ You can update settings of the editor with its setDisplaySettings(settings) function. At update, specify also the toolbars property
+ to preserve current toolbar layout.
+
function initControl () {
+ $("#chbx-copyasmrv").on("change", function (e) {
+ var settings = {}
+ settings.copyasmrv = e.target.checked;
+ settings.toolbars = "reporting";
+ marvinSketcherInstance.setDisplaySettings(settings);
+ });
+ $("#btn-reset").on("click", function (e) {
+ $("#txt").val("");
+ });
+ }
+
+
+
+
diff --git a/public/marvinjs/examples/example-couple-editors.html b/public/marvinjs/examples/example-couple-editors.html
new file mode 100644
index 000000000..df1d88cb6
--- /dev/null
+++ b/public/marvinjs/examples/example-couple-editors.html
@@ -0,0 +1,232 @@
+
+
+
+
+ Marvin JS Example - Couple of Editors
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Couple of Editors
+
+ This example demonstrates that you can embed several editors into the same page without any conflict.
+
+
+
Your web browser must have JavaScript enabled in order for this
+ application to display correctly.
+
+
+
+
+
+
+
+ Identify each IFRAME to be able to distinguish the sketcher instances.
+
+ <iframe src="../editor.html" id="box1_sketch" class="sketcher-frame"></iframe>
+
+
+ <iframe src="../editor.html" id="box2_sketch" class="sketcher-frame"></iframe>
+
+ Create SketchControlClass for each sketcher object. Bind controller to the sketcher when it is ready. The controller also manages checkboxes for display settings.
+
+
+ var sk1Controller,
+ sk2Controller;
+
+ $(document).ready(function handleDocumentReady (e) {
+
+ MarvinJSUtil.getEditor("#box1_sketch").then(function (sketcherInstance) {
+ sk1Controller = new SketcherControllerClass(
+ sketcherInstance,
+ $("#box1_chbx-carbonVis"),
+ $("#box1_chbx-coloring"),
+ $("#box1_btn-setmol")
+ );
+ }, function () {
+ alert("Failed to retrieve sketcher in box 1");
+ });;
+
+ MarvinJSUtil.getEditor("#box2_sketch").then(function (sketcherInstance) {
+ sk2Controller = new SketcherControllerClass(
+ sketcherInstance,
+ $("#box2_chbx-carbonVis"),
+ $("#box2_chbx-coloring"),
+ $("#box2_btn-setmol")
+ );
+ }, function () {
+ alert("Failed to retrieve sketcher in box 2");
+ });
+
+ });
+
+ var SketcherControllerClass = (function () {
+
+ function SketcherControllerClass (sketcherInstance, carbonCheckbox, cpkCheckbox, importButton) {
+ this.sketcherInstance = sketcherInstance;
+ this.carbonCheckbox = carbonCheckbox;
+ this.cpkCheckbox = cpkCheckbox;
+ this.importButton = importButton;
+
+ this.init();
+ }
+
+ SketcherControllerClass.prototype.init = function init () {
+ this.carbonCheckbox.on("change", $.proxy(this.handleCarbonCheckBoxChange, this));
+ this.cpkCheckbox.on("change", $.proxy(this.handleCpkCheckBoxChange, this));
+ this.importButton.on("click", $.proxy(this.handleImportButtonClick, this));
+ };
+
+ SketcherControllerClass.prototype.handleCarbonCheckBoxChange = function handleCarbonCheckBoxChange (e) {
+ this.updateDisplaySettings("carbonLabelVisible", this.carbonCheckbox.is(':checked'));
+ };
+
+ SketcherControllerClass.prototype.handleCpkCheckBoxChange = function handleCpkCheckBoxChange (e) {
+ this.updateDisplaySettings("cpkColoring", this.cpkCheckbox.is(':checked'));
+ };
+
+ SketcherControllerClass.prototype.handleImportButtonClick = function handleImportButtonClick (e) {
+ this.sketcherInstance.importStructure("mol", caffeineStr);
+ };
+
+ SketcherControllerClass.prototype.updateDisplaySettings = function updateDisplaySettings (key, value) {
+ var settings = this.sketcherInstance.getDisplaySettings();
+ settings[key] = value;
+ this.sketcherInstance.setDisplaySettings(settings);
+ };
+
+ return SketcherControllerClass;
+
+ }());
+
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-create-abbreviation.html b/public/marvinjs/examples/example-create-abbreviation.html
new file mode 100644
index 000000000..a904c0d35
--- /dev/null
+++ b/public/marvinjs/examples/example-create-abbreviation.html
@@ -0,0 +1,106 @@
+
+
+
+
+ Create Abbreviation list for Marvin JS
+
+
+
+
+
+
+
+
+ Create Abbreviation list for Marvin JS
+
+ You can generate abbreviation group list for Marvin JS with the help of the following form. Just fill the form and push the Add button.
+
By repeating these steps, you can append further and further abbreviation group to the templates object.
+ Finally, you can copy the textual result (from the textbox) in a file that you can refer later in Marvin JS.
+
+
+
Your web browser must have JavaScript enabled in order for this application to display correctly.
+
+
+
+ Input
+ In the Structure field , an MRV source is expected that contains only one compound, an abbreviated S-group.
+ The Name field specifies the label of the menu item in the Abbreviated group dialog. If you do not specify it, its value will be the name of the abbreviation (specified in the MRV file).
+
+
structure:
+
+ name:
+
+
+
+
+
+
+
+ Result
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/marvinjs/examples/example-create-image.html b/public/marvinjs/examples/example-create-image.html
new file mode 100644
index 000000000..977983528
--- /dev/null
+++ b/public/marvinjs/examples/example-create-image.html
@@ -0,0 +1,307 @@
+
+
+
+
+ Marvin JS Examples - Convert Structure To Image
+
+
+
+
+
+
+
+
+
+
+
+ Marvin JS Examples - Convert Structure To Image
+
+ In this example, you can create PNG, JPEG or SVG picture from the given molecule source.
+
+
+
Your web browser must have JavaScript enabled in order for this application to display correctly.
+
+
+
+
+
+
+
+
+
Create a DIV element where the generated images will be embedded. It is hidden till the image is inserted.
+
<div id="imageContainer" class="left10" style="display: none;">
+ <img id="image" class="bordered" />
+</div>
+
The following dependencies are used in this example:
+
+ jquery-1.9.1.min.js - The example is written in JQuery but the ImageExporter API does not require it.
+ promise-1.0.0.min.js - Promise overlay (required if the current browser does not provide a Promise implementation).
+ marvinjslauncher.js - The MarvinJSUtil is a helper API to get the marvin
object from the iframe.
+ webservices.js - Defines the getDefaultServices
function that provides the settings of the expected services.
+
+
<script src="../js/lib/jquery-1.9.1.min.js"></script>
+ <script src="../gui/lib/promise-1.0.0.min.js"></script>
+ <script src="../js/marvinjslauncher.js"></script>
+ <script src="../js/webservices.js"></script>
+
You need the marvin.ImageExporter class to convert structure to image. Loads this API into a separate iframe to avoid potential css conflicts.
+ Use the
marvinpack.html that loads the
marvin namespace.
+
+
$(document).ready(function handleDocumentReady (e) {
+ // load marvin namespace in a separate frame to avoid css conflict
+ // the display attribute of this iframe cannot be "none", but you can hide it somewhere
+ $('body').append($('<iframe>', { id: "marvinjs-iframe", src: "../marvinpack.html"}));
+ // wait for the reference of marvin namespace from the iframe
+ MarvinJSUtil.getPackage("#marvinjs-iframe").then(function(marvinNameSpace) {
+ // the reference to the namespace is arrived but there is no guaranty that its initalization has been finished
+ // because of it, wait till the ready state to be sure the whole API is available
+ marvinNameSpace.onReady(function() {
+ marvin = marvinNameSpace;
+ initControl();
+ });
+ }, function(error) {
+ alert("Cannot retrieve marvin instance from iframe:"+error);
+ });
+ });
+
+
To hide the iframe, the following CSS settings are used:
+
iframe#marvinjs-iframe {
+ width: 0;
+ height: 0;
+ display: initial;
+ position: absolute;
+ left: -1000;
+ top: -1000;
+ margin: 0;
+ padding: 0;
+ }
+
The initcontrol
function bind click handler for the buttons.
+
function initControl() {
+ $("#molsource-box").val(source);
+ $("#createPNG").on("click", function() {
+ createImage("image/png", applyDataUri);
+ });
+ $("#createJPEG").on("click", function() {
+ createImage("image/jpeg", applyDataUri);
+ });
+ $("#createSVG").on("click", function() {
+ createImage("image/svg", applySvg);
+ });
+ }
+
The createImage
function creates a new instance of ImageExporter class and call its render function to convert the given string to image.
+ It is an asynchrone exporter, the render
function returns with a Promise
instance. The given callback
function processes the result of the image export. It is automatically evaluated when the export process is completed.
+
function createImage(imageType, callback) {
+ var exporter = createExporter(imageType);
+ exporter.render($("#molsource-box").val()).then(callback, alert);
+ }
+
The createExporter
function retrieves the current settings to create a new ImageExporter object with these settings.
+
function createExporter(imageType) {
+ var settings = {
+ 'carbonLabelVisible' : $("#chbx-carbonVis").is(':checked'),
+ 'cpkColoring' : $("#chbx-coloring").is(':checked'),
+ 'chiralFlagVisible': $("#chbx-chiral").is(':checked'),
+ 'atomMapsVisible': $("#chbx-atommaps").is(':checked'),
+ 'lonePairsVisible' : $("#lonepairs").val() != '0',
+ 'lonepaircalculationenabled' : $("#lonepairs").val() == '2',
+ 'atomIndicesVisible': $("#chbx-atomIndeces").is(':checked'),
+ 'implicitHydrogen' : $("#implicittype").val(),
+ 'displayMode' : $("#displayMode").val(),
+ 'background-color': $('#bg').val(),
+ 'zoomMode' : $("#zoommode").val(),
+ 'width' : parseInt($("#w").val(), 10),
+ 'height' : parseInt($("#h").val(), 10)
+ };
+
+ var inputFormat = $("input[type='radio'][name='inputFormat']:checked").val();
+ if(inputFormat == "") {
+ inputFormat = null;
+ }
+ var defaultServices = getDefaultServices();
+ var services = {};
+ services['molconvertws'] = defaultServices['molconvertws'];
+ if($('#chbx-calcStereo').is(":checked")) {
+ services['stereoinfows'] = defaultServices['stereoinfows']; // enable stereo calculation
+ }
+ var params = {
+ 'imageType': imageType, // type of output image
+ 'settings': settings, // display settings
+ 'inputFormat': inputFormat, // renderer will expect molecule source in this format
+ 'services': services // to resolve any molecule format and be able to calculate stereo info
+ }
+ return new marvin.ImageExporter(params);
+ }
+
At PNG and JPEG image generation, ImageExporter generates a base64 based data URI. To display it, create a new img
tag and set the result string to its src
attribute.
+
function applyDataUri(dataUri) {
+ $('#imageContainer').empty();
+ var img = $(' ', { src: dataUri}).appendTo($("#imageContainer"));
+ $("#imageContainer").css("display", "inline-block");
+ }
+
At SVG export, ImageExporter generates a serialized SVG tag that includes a scalable vector graphics. To display it, insert the result as raw data into an empty DOM element.
+
function applySvg(svg) {
+ $("#imageContainer").html(svg);
+ $("#imageContainer").css("display", "inline-block");
+ }
+
+
+
+
diff --git a/public/marvinjs/examples/example-create-template.html b/public/marvinjs/examples/example-create-template.html
new file mode 100644
index 000000000..145e6a067
--- /dev/null
+++ b/public/marvinjs/examples/example-create-template.html
@@ -0,0 +1,159 @@
+
+
+
+
+ Create Templates for Marvin JS
+
+
+
+
+
+
+
+
+ Create Templates for Marvin JS
+
+ You can generate templates for Marvin JS with the help of the following form. Just fill the form and push the Add button.
+ The template source appears in the Result text box, and the generated (24x24 )icon displays above it.
+ By repeating these steps, you can append further and further template to the templates object.
+ Finally, you can copy the textual result (from the textbox) in a file that you can refer later in Marvin JS.
+
+
+
Your web browser must have JavaScript enabled in order for this application to display correctly.
+
+
+
+ Input
+
+
structure:
+
+ format:
+
+
+ Marvin Document (mrv)
+
+
+ name:
+
+ icon:
+
+
+
+
+
+
+
+ Result
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/marvinjs/examples/example-customize-service.html b/public/marvinjs/examples/example-customize-service.html
new file mode 100644
index 000000000..c6f568a56
--- /dev/null
+++ b/public/marvinjs/examples/example-customize-service.html
@@ -0,0 +1,113 @@
+
+
+
+
+ Marvin JS Example to customize service
+
+
+
+
+
+
+
+
+
+
+ Marvin JS Example to customize service
+
+ The Clean2D webservice is not available at startup (its icon is missing from the toolbar). You have an input form where you can specify the location of the Clean2D
+ webservice. As you apply the form, it disappears and the Clean2D service is registered to the sketcher with the given URL. After that, the Clean icon appears
+ on the toolbar and you can perform clean operation on the drawn structure.
+
+ Clean operation can fail in the following cases:
+
+ Wrong URL
+ The server where the URL points is not available.
+ The webservice is located on different domain than the editor (browser can block the request via the webservice if it harms its same origin policy).
+ The webservice is not compatible with the current JChem Webservice version that Marvin JS expects (e.g.: unexpected input or output data).
+
+
+
+ Clean2D Webservice location:
+
+
+
+
+
+
+
+
+
+
Initialize the input form at startup. When the Apply Service button is submitted, the setServices
function of the sketcher
+ is called to apply the given service to the editor. The function expects a JavaScript object that describes one or more webservices.
+ Finally, hide the input form to prevent applying further services.
+
+ $(document).ready(function handleDocumentReady (e) {
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ resetForm();
+ initControls();
+ }, function () {
+ alert("Cannot retrieve sketcher instance from iframe");
+ });
+ });
+
+ function initControls () {
+ $("#restoreButton").on("click", resetForm);
+ $("#applyButton").on("click", function (e) {
+ submitService($("#clean2dws-location").val());
+
+ });
+ }
+
+ function resetForm() {
+ $("#clean2dws-location").val(getDefaultServices()["clean2dws"]);
+ }
+
+ function submitService(url) {
+ var services = {
+ "clean2dws" : (url == "") ? null : url
+ };
+ marvinSketcherInstance.setServices(services);
+ $("#serviceForm").hide();
+ }
+
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-defaulttool.html b/public/marvinjs/examples/example-defaulttool.html
new file mode 100644
index 000000000..b8672677d
--- /dev/null
+++ b/public/marvinjs/examples/example-defaulttool.html
@@ -0,0 +1,100 @@
+
+
+
+
+ Marvin JS Example - Change the default tool
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Change default tool
+
+
+
+
In this example, you can change the default tool of the editor.
+ Select the default tool. Default tool is not the same as the actual tool of the editor. By contrast the actual tool, default tool has relevance in such situations when it is not clear which tool should be activated. In these cases you can denote a tool which should be selected as the default one. For example after pushing the Esc keyboard button.
+
+ <div style="padding-bottom: 0.8em;">
+ <input type="radio" name="defaulttool-group" value="rectangleSelection" checked>Rectangle</input>
+ <input type="radio" name="defaulttool-group" value="lassoSelection">Lasso</input>
+ </div>
+
+
+
When you take a look at the source code, you can see that a listener function is bound to the change events of radio buttons.
+ When a change event is invoked, the updateDefaultTool(value)
function is performed.
+ This function assembles a JavaScript object that describes display settings and call the setDisplaySettings(settings)
function of the sketcher.
+ Only give settings that you would like to overwrite. In this case, this is the defaultTool property.
+
+
+ var marvinSketcherInstance;
+
+ $(document).ready(function handleDocumentReady (e) {
+ // after editor in the sketch iframe is ready store its reference
+ // and activate controls
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ initControls();
+ },function (error) {
+ alert("Cannot retrieve sketcher instance from iframe:"+error);
+ });
+ });
+
+ function initControls () {
+ // change layout
+ $("input[name='defaulttool-group']").change(function(e) {
+ var s = $(this).val();
+ updateDefaultTool(s);
+ });
+ }
+
+ function updateDefaultTool(tool) {
+ marvinSketcherInstance.setDisplaySettings({
+ "defaultTool": tool
+ });
+ }
+
+
+
+
diff --git a/public/marvinjs/examples/example-edit-images.html b/public/marvinjs/examples/example-edit-images.html
new file mode 100644
index 000000000..1f82fa77e
--- /dev/null
+++ b/public/marvinjs/examples/example-edit-images.html
@@ -0,0 +1,249 @@
+
+
+
+
+
+ Marvin JS Examples - Edit images
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Marvin JS Examples - Edit images
+
+A molecule table should be displayed as the loading of the page is finished. See below the commented code
+
+
+
+ Your web browser must have JavaScript enabled in order for this
+ application to display correctly.
+
+
+
Preparation of the page is in progress ...
+
+
+
+
+
+
There is a DIV where generated images will appear.
+
<div id="imageContainer" class="image-container">
+<p>Preparation of the page is in progress ...</p>
+</div>
+
+
We need a hidden DIV with the highest z-index. It is the popup window with a close button and with the editor iframe. This popup window appears when a picture is edited.
+
<div id="popup" class="popup-window" style="position: fixed; left:0px; top:0px; z-index:100; visibility: hidden; opacity: 0;">
+ <div class="wrapper">
+ <div id="title-bar"><input id="close" type="button" class="close-button" value="Done ×"></div>
+ <div id="sketchContainer">
+ <iframe id="sketchImg" src="../editor.html" ></iframe>
+ </div>
+ </div>
+</div>
+
You will need the following JS libraries for this example. They are bundled to the header of the example page.
+The first one is a promise implementation, the second loads MarvinJSUtil
.
+
<script src="../gui/lib/promise-1.0.0.min.js"></script>
+ <script src="../js/marvinjslauncher.js"></script>
+
These global variables are also defined in this example:
+
+marvin
- reference to the Marvin JS API
+marvinSketcherInstance
- reference to the editor in the iframe
+editorControl
- controller to open / close the editor and modify images
+molecules
- molecule sources
+
+
Below you can see the code that is embedded into the $(document).ready(function handleDocumentReady (e) { ... });
block.
+
To hide the editor when the close button is submit, bind an event handler to the close button.
+
$("#close").bind("click", function() {
+ editorControl.close();
+ });
+
+
For the image export, marvin object is required that encapsulates the whole Marvin JS API into a common namespace.
+Since you have an editor in an iframe where marvin
is already available, you can use this instance.
+The MarvinJSUtil.getPackage(String) helps to receive its reference.
+When marvin
is ready, the exportImages()
function creates initial molecule images.
+
MarvinJSUtil.getPackage("sketchImg").then(function (marvinNameSpace) {
+ marvinNameSpace.onReady(function () {
+ marvin = marvinNameSpace;
+ exportImages();
+ });
+ }, function () {
+ alert("Cannot retrieve marvin instance from iframe");
+ });
+
+
Meanwhile, you can get the reference to the editor with the help of MarvinJSUtil.getEditor(String) .
+When you received it, save it for later usage and attempt to open the editor with the selected image.
+
MarvinJSUtil.getEditor("sketchImg").then(function (sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ // open editor if any image is selected
+ editorControl.open();
+ }, function () {
+ alert("Cannot retrieve sketcher instance from iframe");
+ });
+
+
Thus, that has happened in the document.ready
block.
+
As above mentioned, exportImages()
function creates inital molecule images and insert them into the proper DIV element on the page.
+This function creates a new image tag for each molecule.
+The marvin.ImageExporter.mrvToDataUrl(String)
function creates a image data URI from an MRV source.
+The MRV source is also inserted into the new image tag as the alt
attribute.
+
function exportImages() {
+ var docFrag = document.createDocumentFragment();
+ for(i=0; i<molecules.length;i++) {
+ var imgData = marvin.ImageExporter.mrvToDataUrl(molecules[i]);
+ if(imgData != null) {
+ var dv = $('<div>', { class: "mol-cell" });
+ $('<span>', { text: ("Compound #" + (i+1))}).appendTo(dv);
+ $('<img>', { name: "pict", src: imgData, alt: escape(molecules[i]), onclick:"clickOnImage(this)"}).appendTo(dv);
+ dv.appendTo(docFrag);
+ }
+ }
+ $('<div>', { class: "table-bottom" }).appendTo(docFrag);
+ $("#imageContainer").append(docFrag);
+ }
+
+
The editorControl
is responsible to show the editor with the proper structure or hide it and refresh its image.
+The currentPict
is a reference to the <img>
from the DOM that you would like to edit.
+If it is null, it means that no image has been selected yet to edit.
+The molecule source for an image is stored in its alt
attribute.
+
var editorControl = (function() {
+
+ var currentPict = null;
+
+ var controlObject = {
+ "picture" : function picture(pict) {
+ currentPict = pict;
+ }
+ ,"open" : function openEditor() {
+ if(currentPict != null) {
+ marvinSketcherInstance.importStructure("mrv", unescape(currentPict.alt));
+ $("#popup").css("visibility", "visible");
+ $("#popup").css("opacity", 1);
+ }
+ }
+ ,"close" : function closeEditor() {
+ if(marvinSketcherInstance != null) {
+ var cp = currentPict;
+ marvinSketcherInstance.exportStructure("mrv").then(function(s) {
+ cp.alt = escape(s);
+ cp.src = marvin.ImageExporter.mrvToDataUrl(s);
+ }, function(error) {
+ alert(error);
+ });
+ }
+ $("#popup").css("visibility", "hidden");
+ $("#popup").css("opacity", 0);
+ }
+ };
+ return controlObject;
+ }());
+
+
When a click event is invoked on an <img>
tag, the clickOnImage
function is performed.
+It passes the reference of the current image to the editorControl
+and ask it to open the editor.
+
+ function clickOnImage(pict) {
+ editorControl.picture(pict);
+ editorControl.open();
+ }
+
+
+
+
diff --git a/public/marvinjs/examples/example-get-selection.html b/public/marvinjs/examples/example-get-selection.html
new file mode 100644
index 000000000..4d1278ca9
--- /dev/null
+++ b/public/marvinjs/examples/example-get-selection.html
@@ -0,0 +1,155 @@
+
+
+
+
+ Marvin JS Examples - Get Selection
+
+
+
+
+
+
+
+
+
+ Marvin JS Examples - Get Selection
+
+
+ This example demonstrates how to inject selection information into the generated MRV source.
+ When Get Selection button is pushed, the getSelection function is called that retrieves the canvas content in MRV format. Since exportStructure is an asynchronous request, we get index of selected atoms when the MRV source received.
+ After that, inject selection information into the MRV source with the help of mrvWithSelection function.
+ Its result displays in the below text box
+ $(document).ready(function handleDocumentReady (e) {
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ // initalize sketcher
+ sketcherInstance.importStructure("mol",caffeineSource);
+ sketcherInstance.setDisplaySettings({
+ 'carbonLabelVisible' : true,
+ 'atomIndicesVisible' : true
+ });
+
+ getSelection = function () {
+ sketcherInstance.exportStructure("mrv").then(function(source) {
+ var selection = sketcherInstance.getSelection();
+ $("#molsource").val(mrvWithSelection(source, selection));
+ }, function(error) {
+ alert("Cannot retrieve the molecule source");
+ });
+ };
+
+ $("#getSelectionButton").on("click", getSelection);
+
+
+ }, function () {
+ alert("Cannot retrieve sketcher instance from iframe");
+ });
+ });
+
+ The mrvWithSelection function checks whether selection is empty.
+ If yes, it does nothing just returns with the original MRV source.
+
+ If the selection contains one or more atom indeces, it builds up a DOM object from the MRV source and iterates over the list of indeces to find the appropriate atom tags. Append the "isSelect" attribute to each atom tag that matched.
+ Finally, it serializes the above DOM object and returns with the generated string
+ function mrvWithSelection(mrv, selection) {
+ var parser = new DOMParser();
+ if(selection && selection.atoms) {
+ var xml = parser.parseFromString(mrv, "text/xml");
+ var atoms = xml.getElementsByTagName('atom');
+ var selectedAtoms = selection.atoms.split(",");
+ for(var i = 0; i < selectedAtoms.length; i++) {
+ var index = selectedAtoms[i]-1;
+ if(atoms[index]) {
+ atoms[index].setAttribute("isSelected", true);
+ }
+ }
+ return new XMLSerializer().serializeToString(xml);
+ }
+ return mrv;
+ }
+
+
+
diff --git a/public/marvinjs/examples/example-getimage.html b/public/marvinjs/examples/example-getimage.html
new file mode 100644
index 000000000..2577ca6b4
--- /dev/null
+++ b/public/marvinjs/examples/example-getimage.html
@@ -0,0 +1,112 @@
+
+
+
+
+ Marvin JS Example - Get The Image
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Get The Image
+
+
+
+
+
+
+
+
This example demonstrates how to retrieve the molecule image from the sketcher. When you push the Export
+ button, the current molecule is exported as a JPEG image. The result is shown next to the editor.
+
First of all, you need a reference for the current editor.
+ MarvinJSUtil.getEditor(String)
provides a Promise object for you to get it when the editor is ready.
+
After the editor is loaded, run the initcontrol()
function to bind action the the Export button.
+
When the button is clicked, the exportImage(String)
function of the editor is called. It provides a Promise object to access the result
+ of the export process. Call its then(...)
function with the callback function that describes what you would like to do with the export result.
+ In this case, the src
attribute of the <img>
tag is updated with the image source.
+
var marvinSketcherInstance;
+
+ $(document).ready(function handleDocumentReady (e) {
+ // get the reference to the Marvin JS editor
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ initControl();
+ },function (error) {
+ alert("Cannot retrieve sketcher instance from iframe:"+error);
+ });
+ });
+
+ function initControl () {
+
+ // the export button
+ $("#btn-export").on("click", function (e) {
+ var settings = marvinSketcherInstance.getDisplaySettings();
+ settings.width = 420;
+ settings.height = 420;
+ settings.backgroundColor = "#ffffff";
+ marvinSketcherInstance.exportStructure("jpeg", settings).then(function(source) {
+ exportImage(source);
+ }, function(error) {
+ alert("Image export failed:"+error);
+ });
+ });
+ }
+
+ function exportImage(dataUrl) {
+ // set image source for the existing hidden image tag and display it.
+ $("#image").attr("src", dataUrl);
+ $("#imageContainer").css("display", "inline-block");
+ }
+
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-getmol-with-ws.html b/public/marvinjs/examples/example-getmol-with-ws.html
new file mode 100644
index 000000000..0a47f8a3c
--- /dev/null
+++ b/public/marvinjs/examples/example-getmol-with-ws.html
@@ -0,0 +1,106 @@
+
+
+
+
+ Marvin JS Example - Get The Molecule via webservices
+
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Get The Molecule
+
+
+
+
+
+
+
+
This example demonstrates how to retrieve a structure from Marvin JS editor, using extra export options.
+
+
JChem Webservices (the web service implementation provided by ChemAxon) can accept special
+ export options . The exportStructure() API function of Marvin JS gives the chance to specify export parameters for the molExport service.
+
In this example, +H export option (adding explicit Hydrogens to the structure) is passed to the molExport service. If the extra option has been specified, the exportStructure passes the request directly to the remote service instead of evaluating it on client side.
+ If the location of the service has not been specified, an error message is thrown.
+
Please, take care that Marvin JS does not check whether the extra export options passed to WS are valid or not.
+
+
When the Get mol button is pressed, the current molecule is retrieved from the editor in mol format and the result is displayed in the textbox.
+
By unchecking the webservice checkbox, you can switch off the molExport web service. After this, pressing the Get mol button results in an error message, saying: "Unsupported format mol:+H" .
+
var marvinSketcherInstance;
+
+$(document).ready(function handleDocumentReady (e) {
+ var p = MarvinJSUtil.getEditor("#sketch");
+ p.then(function (sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ initControl();
+ }, function (error) {
+ alert("Cannot retrieve sketcher instance from iframe:"+error);
+ });
+});
+
+function initControl () {
+
+ // get mol button
+ $("#btn-getmol").on("click", function (e) {
+ marvinSketcherInstance.exportStructure("mol", {"extra": "+H"}).then(function(source) {
+ $("#molsource").text(source);
+ }, function(error) {
+ alert("Molecule export failed:"+error);
+ });
+ });
+ var molconvertws_value = getDefaultServices()["molconvertws"]
+ $("#btn-service").change(function(e) {
+ var services = {
+ "molconvertws" : (e.target['checked']) ? molconvertws_value : null
+ };
+ marvinSketcherInstance.setServices(services);
+ });
+}
+
+
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-getmol.html b/public/marvinjs/examples/example-getmol.html
new file mode 100644
index 000000000..4295cca99
--- /dev/null
+++ b/public/marvinjs/examples/example-getmol.html
@@ -0,0 +1,88 @@
+
+
+
+
+ Marvin JS Example - Get The Molecule
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Get The Molecule
+
+
+
+
+
+
+
+
This example demonstrates how to retrieve the molecule from the sketcher. When you push the Get mol
+ button, the current molecule is retrieved from the editor in MRV format and the result is displayed in the textbox.
+
First of all, you need a reference for the editor. MarvinJSUtil.getEditor(String)
provides a Promise object for you to get it
+ when the editor is ready.
+
After the editor is loaded, run the initcontrol()
function to bind action the the Get mol button.
+
When the button is clicked, the exportStructure(String)
function of the editor is called. Its provides a Promise object to access the result
+ of the export process. Call its then(...)
function with the callback function that describes what you would like to do with the export result.
+ In this case, it is displayed in the molsource textbox.
+
var marvinSketcherInstance;
+
+$(document).ready(function handleDocumentReady (e) {
+ var p = MarvinJSUtil.getEditor("#sketch");
+ p.then(function (sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ initControl();
+ }, function (error) {
+ alert("Cannot retrieve sketcher instance from iframe:"+error);
+ });
+});
+
+function initControl () {
+
+ // get mol button
+ $("#btn-getmol").on("click", function (e) {
+ marvinSketcherInstance.exportStructure("mrv").then(function(source) {
+ $("#molsource").text(source);
+ }, function(error) {
+ alert("Molecule export failed:"+error);
+ });
+ });
+}
+
+
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-highlight-by-index.html b/public/marvinjs/examples/example-highlight-by-index.html
new file mode 100644
index 000000000..44a3d4f8a
--- /dev/null
+++ b/public/marvinjs/examples/example-highlight-by-index.html
@@ -0,0 +1,132 @@
+
+
+
+
+ Marvin JS Examples - Highlight By Index
+
+
+
+
+
+
+
+
+
+ Marvin JS Examples - Highlight By Index
+
+
+
+
+
+ Color:
+ Opacity (0-100%):
+ Size (40-200%):
+
+
+
+ This example demonstrates how to paint a custom patch for atom and bonds.
+ How to try it:
+ Draw a structure and select those atoms and bonds that you would like to highlight with colored patch.
+ After that, specify the style: select color, setup opacity value between 0.0 and 1.0
+ (0 is full transparent, 1 is total opaque).
+ Then, set the relative size of the patch (relative to the selection feedback).
+ Finally, apply settings. If you push the Overwrite highlight button, the previously set patches will be deleted.
+ If you choose Append highlight , the current patches are preserved and new settings are appended to them.
+
Notes:
+
+ If several styles are applied to the editor, the patches may overlaps each other.
+ Reaction converter is switched off to avoid atom index collision (among reaction compounds).
+
+
+
+ You can see the code comment below.
+ First of all, we request a reference to the loaded editor.
+ Then, we bind click handler for the submit buttons.
+ We will need an array (highlights
)where we cache applied styles.
+
var marvinSketcherInstance;
+ var highlights = [];
+
+ $(document).ready(function handleDocumentReady (e) {
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ // initalize sketcher
+ marvinSketcherInstance = sketcherInstance;
+ $('#overwriteButton').click(onButtonClick);
+ $('#appendButton').click(onButtonClick);
+ });
+ });
+
+ The onButtonClick
function, determines the current behaviour: append or overwrite the current style with the new one.
+ After that, we retrieve the selection from the editor to apply the new style to the desired atoms/bonds.
+ In the selection, the atoms and bonds are referred by atom indexes.
+ If we choose overwrite option, we reset the previously stored highlight history (highlights
).
+ The createHighlight
function is responsible to create the new highlight style from the given data.
+ The new highlight object is added to the highlights
array.
+ This array is applied to the setHighlight
function of the editor.
+ function onButtonClick(e) {
+ var b = (e.target.id =='overwriteButton');
+ var selection = marvinSketcherInstance.getSelection();
+ if(b) {
+ highlights = [];
+ }
+ highlights.push(createHighlight(selection));
+ marvinSketcherInstance.setHighlight(highlights);
+ }
+ The createHighlight
function expects the selection object.
+ The highlight
object has an indexes
property. It is an object with an atom and a bond list.
+ The atom index list of selection object is a string that represents a comma separated list of indexes. Convert it to string array before assign it to the highlight.indexes
.
+ Do the same with the bond index list.
+
After that, you can create highlight.style
object. Retrieve the value of the color input field.
+ Convert value of the opacity
field into the 0 - 1 range. Do the same with the size
value.
+ The created highlight objects defines atoms and bonds by UID and specify style with color, opacity and size properties.
+ function createHighlight(selection) {
+ var highlight = {};
+ highlight.indexes = {}
+ highlight.indexes.atoms = (selection.atoms.length == 0)? [] : selection.atoms.split(',');
+ highlight.indexes.bonds = (selection.bonds.length == 0)? [] : selection.bonds.split(',');
+ highlight.style = {}
+ highlight.style.color = $('#colorValue').val();
+ var opacity = $('#opacityValue').val()/100;
+ highlight.style.opacity = opacity;
+ var size = $('#sizeValue').val()/100;
+ highlight.style.size = size;
+ return highlight;
+ }
+
+
+
diff --git a/public/marvinjs/examples/example-highlight.html b/public/marvinjs/examples/example-highlight.html
new file mode 100644
index 000000000..82189b6f6
--- /dev/null
+++ b/public/marvinjs/examples/example-highlight.html
@@ -0,0 +1,209 @@
+
+
+
+
+ Marvin JS Examples - Highlight By Unique ID
+
+
+
+
+
+
+
+
+
+ Marvin JS Examples - Highlight By Unique ID
+
+
+
+
+
+ Color:
+ Opacity (0-100%):
+ Size (40-200%):
+
+
+
+ This example demonstrates how to paint a custom patch for atoms and bonds.
+ How to try it:
+ Draw a structure and select those atoms and bonds that you would like to highlight with colored patch.
+ After that, specify the style: select color, setup opacity value between 0.0 and 1.0 (0 is full transparent, 1 is total opaque).
+ Then, set the relative size of the patch (relative to the selection feedback). Finally, apply settings.
+ If you push Overwrite highlight button, the previously set patches will be deleted.
+ If you choose Append highlight , the current patches will be preserved and new settings will be appended to them.
+ Notes:
+
+ If several styles are applied to the editor, the patches may overlaps each other.
+ Reaction converter is switched off to avoid atom index collision (among reaction compounds).
+
+
+
+ You can see the code comment below.
+ First of all, we request a reference to the loaded editor. Then, we bind click handler for the submit buttons.
+ We will need an array (highlights)were we cache the applied styles and a DOM parser (parser) that helps us to seek data in MRV sources.
+ var marvinSketcherInstance;
+ var highlights = [];
+ var parser = new DOMParser();
+
+ $(document).ready(function handleDocumentReady (e) {
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ // initalize sketcher
+ marvinSketcherInstance = sketcherInstance;
+ $('#overwriteButton').click(onButtonClick);
+ $('#appendButton').click(onButtonClick);
+ });
+ });
+
+ The onButtonClick
function, determines the current behavior: append or overwrite the current style with the new one.
+ After that, we retrieve the selection from the editor to apply the new style to the desired atoms/bonds.
+ In the selection, the atoms and bonds are referred by atom indexes.
+ To retrieve the unique ID (UID) of these atoms, we have to get the molecule source of the structure.
+ To do that, specify hasUID
export option in exportStructure
function.
+ When the molecule source arrived, we are ready to create the new highlight settings.
+ If we choose the overwrite option, we reset the previously stored highlight history (highlights
).
+ The createHighlight
function is responsible to create the new highlight style from the given data.
+ The new highlight object is added to the highlights
array.
+ This array is applied to the setHighlight
function of the editor.
+ function onButtonClick(e) {
+ var b = (e.target.id =='overwriteButton');
+ var selection = marvinSketcherInstance.getSelection();
+ marvinSketcherInstance.exportStructure('mrv', { hasUID: true}).then(function(source) {
+ if(b) {
+ highlights = [];
+ }
+ highlights.push(createHighlight(source, selection));
+ marvinSketcherInstance.setHighlight(highlights);
+ }, alert);
+ }
+ The createHighlight
function expects two parameters: the molecule source and the selection object.
+ First of all, an xml object is created from the MRV source to be able to seek the UID properties.
+ Atom UID is stored in a child (scalar
) tag of the atom tag.
+ The atoms
field of the selection
object gives index of selected atoms.
+ The ID of the scalar tag that describes the UID property of the n-th atom can describe in the following format:
+ a<index> .prop1
where <index>
is the index of the atom.
+ Get it with the help of the getElementById
function, and appends its value to the highlight.uids.atoms
array.
+ You can get bond UID in a similar way. In this case, the ID of the scalar tag is in the following format:
+ a <index of begin atom>a <index of end atom>.prop1
.
+ The bond UIDs are collected into highlight.uids.bond
array.
+ After that, you can create the highlight.style
object. Retrieve the value of the color input field.
+ Convert value of the opacity
field into the 0 - 1 range. Do the same with the size
value.
+ The created highlight objects define atoms and bonds by UID and specify style with color, opacity and size properties.
+ function createHighlight(source, selection) {
+ var xml = parser.parseFromString(source, "text/xml");
+ var highlight = {};
+ highlight.uids = {};
+ highlight.uids.atoms = [];
+ highlight.uids.bonds = [];
+ var atoms = (selection.atoms.length == 0)? [] : selection.atoms.split(',');
+ var bonds = (selection.bonds.length == 0)? [] : selection.bonds.split(',');
+ for(i = 0; i < atoms.length; i++) {
+ var atom = selectById(xml, 'a'+atoms[i]+'.prop1');
+ if(atom) {
+ var uid = atom.textContent;
+ highlight.uids.atoms.push(uid);
+ } else {
+ console.log('Cannot find property#a'+atoms[i]+'.prop1');
+ }
+ }
+ for(i = 0; i < bonds.length; i++) {
+ var edges = bonds[i].split('-');
+ var bond = selectById(xml, 'a'+edges[0]+'a'+edges[1]+'.prop1');
+ if(bond) {
+ var buid = bond.textContent;
+ highlight.uids.bonds.push(buid);
+ } else {
+ console.log('Cannot find property#a'+edges[0]+'a'+edges[1]+'.prop1');
+ }
+ }
+ highlight.style = {}
+ highlight.style.color = $('#colorValue').val();
+ var opacity = $('#opacityValue').val()/100;
+ highlight.style.opacity = opacity;
+ var size = $('#sizeValue').val()/100;
+ highlight.style.size = size;
+ return highlight;
+ }
+
+
+
diff --git a/public/marvinjs/examples/example-lazyinit.html b/public/marvinjs/examples/example-lazyinit.html
new file mode 100644
index 000000000..77079b499
--- /dev/null
+++ b/public/marvinjs/examples/example-lazyinit.html
@@ -0,0 +1,37 @@
+
+
+
+
+ Marvin JS Example - Lazy init
+
+
+
+
+
+
+
+ Marvin JS Example - Lazy init
+
+
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-lonepair.html b/public/marvinjs/examples/example-lonepair.html
new file mode 100644
index 000000000..06be60158
--- /dev/null
+++ b/public/marvinjs/examples/example-lonepair.html
@@ -0,0 +1,150 @@
+
+
+
+
+
+ Marvin JS Example - Set lone pairs manually
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - How to change the editor settings for adding lone pairs manually feature
+
+
+ EDUCATION MODE
+
+
+
+
+
+
This example demonstrates all of the preparations which should be made before applying the manual lone pair usage.
+ When EDUCATION MODE is activated via its checkbox, the following settings will be applied:
+
+ automatic lone pair calculation is disabled , every atom gets 0 lone pairs immediately
+ 'Increase lone pairs' button is enabled on the toolbar, and becomes ready to use
+ on copy, any structure is placed in MRV format to the clipboard
+ implicit hydrogens are hidden
+ valence errors are hidden .
+ circled plus / minus sign at charge.
+
+ When the checkbox is
inactivated , the DEFAULT settings will be applied:
+
+ automatic lone pair calculation is enabled , the lone pairs are recalculated on every atom
+ 'Increase lone pairs' button is disabled on the toolbar
+ on copy, any structure is placed as MDL MOL file to the clipboard
+ implicit hydrogens are visible on terminal and hetero atoms
+ valence errors are visible .
+ normal plus / minus sign at charge.
+
+ To see the differences between the two settings, some structures are set to the editor. (This example will return to this initial state on page refresh.)
+
+
+ In this example, the
reporting preset has been set, and the display of lone pairs has been turned on. Please, note that lone pairs are not visible by default in Marvin JS and 'Increase lone pairs' button is only available in the
education and the
reporting preset.
+
+
+
At startup, EDUCATION MODE is not set in Marvin JS.
+
<iframe src="../editorws.html" id="sketch" class="sketcher-frame" data-toolbars="reporting" ></iframe>
+
First of all, a reference is needed for the editor. MarvinJSUtil.getEditor(String)
provides a Promise object to get it
+ when the editor is ready.
+
After the editor is loaded and an initial molecule is set, initcontrol()
function binds actions to the EDUCATION MODE checkbox. Invoking initcontrol()
function ensures that the initial state of the checkbox is consistent with the initial settings of the editor in this example.
+
+ var marvinSketcherInstance;
+
+ var molecule = "\n\n\n"+
+ " 6 3 0 0 0 0 0 0 0 0999 V2000\n"+
+ " 0.0000 -0.0418 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 2.4274 0.0000 0.0000 Ne 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 3.1419 0.4125 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 1.7129 0.4125 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 2.4274 -0.8250 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " -1.7299 -0.0558 0.0000 Kr 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 2 3 1 0 0 0 0\n"+
+ " 2 4 1 0 0 0 0\n"+
+ " 2 5 1 0 0 0 0\n"+
+ "M END\n";
+
+ $(document).ready(function handleDocumentReady (e) {
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ marvinSketcherInstance.importStructure("mol",molecule);
+ initControl();
+ update($("#chbx-educationmode"));
+ },function (error) {
+ alert("Cannot retrieve sketcher instance from iframe:"+error);
+ });
+ });
+
Changing the checkbox value triggers the update of the editor settings.
+ In the change event handler, the target
of the change event is the checkbox. If the checkbox is checked, the new settings are applied to the editor.
+ Settings of the editor can be updated with its setDisplaySettings(settings) function.
+
+ function initControl () {
+ $("#chbx-educationmode").on("change", function (e) {
+ update(e.target);
+ });
+ }
+
+ function update(checkBox){
+ var settings = {};
+ settings.lonePairsVisible= true;
+ settings.lonepaircalculationenabled = !(checkBox.checked);
+ settings.copyasmrv = checkBox.checked;
+ settings.implicitHydrogen = (checkBox.checked) ? "OFF" : "TERMINAL_AND_HETERO";
+ settings.valenceErrorVisible = !(checkBox.checked);
+ settings.circledsign = checkBox.checked;
+ marvinSketcherInstance.setDisplaySettings(settings);
+ }
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-more-images-immediately.html b/public/marvinjs/examples/example-more-images-immediately.html
new file mode 100644
index 000000000..bcec5280c
--- /dev/null
+++ b/public/marvinjs/examples/example-more-images-immediately.html
@@ -0,0 +1,136 @@
+
+
+
+
+
+ Marvin JS Examples - Display More Images Immediately
+
+
+
+
+
+
+
+
+
+
+
+
+Marvin JS Examples - Display More Images Immediately
+
+A molecule table should be displayed as the loading of the page is finished. See below the commented code
+
+
+
+ Your web browser must have JavaScript enabled in order for this
+ application to display correctly.
+
+
+
+
Preparation of the page is in progress ...
+
+
+
+
+
First of all, you need the marvin object that encapsulates the whole Marvin JS API into a common namespace. The MarvinJSUtil loads it asynchronously with the help of an invisible iframe.
+After marvin
is available, the exportImages
function is called automatically.
+
var marvin;
+ $(document).ready(function handleDocumentReady (e) {
+ // load marvin namespace in a separate frame to avoid css conflict
+ // the display attribute of this iframe cannot be "none", but you can hide it somewhere
+ $('body').append($('<iframe>', { id: "marvinjs-iframe", src: "../marvinpack.html"}));
+ // wait for the reference of marvin namespace from the iframe
+ MarvinJSUtil.getPackage("#marvinjs-iframe").then(function (marvinNameSpace) {
+ // the reference to the namespace is arrived but there is no guaranty that its initalization has been finished
+ // because of it, wait till the ready state to be sure the whole API is available
+ marvinNameSpace.onReady(function() {
+ marvin = marvinNameSpace;
+ exportImages();
+ });
+ },function (error) {
+ alert("Cannot retrieve marvin instance from iframe:"+error);
+ });
+ });
+
The exportImages
function converts predefined molecules into images and renders them into a table.
+
function exportImages() {
+ // initalize table
+ $("#imageContainer").empty();
+ // iterate the array of molecule sources to create images
+ $.each(molecules, function(index, value) {
+ var imgData = marvin.ImageExporter.molToDataUrl(value);
+ // create a new cell with the new image and append to the table
+ if(imgData != null) {
+ var molCell = $('<div>', { class: "mol-cell"});
+ $("#imageContainer").append(molCell);
+ molCell.append($('<span>', { text: (index+1) }));
+ var img = $('<img>');
+ img.attr('src', imgData);
+ img.attr('data-mol', escape(value));
+ molCell.append(img);
+ }
+ });
+ // close table
+ $("#imageContainer").append($('<div>', { class: "table-bottom"}));
+ }
+
+
+
+
diff --git a/public/marvinjs/examples/example-qrcode.html b/public/marvinjs/examples/example-qrcode.html
new file mode 100644
index 000000000..341dc1051
--- /dev/null
+++ b/public/marvinjs/examples/example-qrcode.html
@@ -0,0 +1,314 @@
+
+
+
+
+ Marvin JS Example - Create QR Code
+
+
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Create QR Code
+
+ You can create QR Code from the drawn structure. If the MolConvert web service is not available, error message appears on the page when you attempt to convert the structure.
+ In the text field above the sketcher, you can specify the target URL encoded into the QR Code.
+ Please, press the button on the left toolbar to generate QR Code image from the current structure. The generated code can be scanned by your mobile phone
+ (eg. with these apps: iOS ,
+ Android ).
+
+ QR Code target:
+
+
+
+
+
+
+
+
+
+ When the page is loaded, setup a molecule for the sketcher, define a custom button to submit QR Code generation process and provide an option to change
+ the URL prefix of the generated code by the creating a textbox.
+
+var marvinSketcherInstance;
+
+$(document).ready(function handleDocumentReady (e) {
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ $("#resetButton").on("click", function handlegetQRCodeButton () {
+ qrCodeControl.reset();
+ });
+ var buttonAttributes = {
+ "name" : "Generate QR Code",
+ "image-url" : "examples/images/qr.png",
+ "toolbar" : "W"
+ };
+ sketcherInstance.addButton(buttonAttributes, function() {
+ qrCodeControl.getQRCode();
+ });
+
+ var s = "\n\n\n"+
+ " 14 15 0 0 0 0 0 0 0 0999 V2000\n"+
+ " 0.5089 7.8316 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 1.2234 6.5941 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 1.2234 7.4191 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " -0.2055 6.5941 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " -0.9200 7.8316 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 0.5089 5.3566 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " -0.2055 7.4191 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 0.5089 6.1816 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " -0.9200 6.1816 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 0.5089 8.6566 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 2.4929 7.0066 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 2.0080 7.6740 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 2.0080 6.3391 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 2.2630 8.4586 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 1 7 1 0 0 0 0\n"+
+ " 8 2 1 0 0 0 0\n"+
+ " 1 3 1 0 0 0 0\n"+
+ " 2 3 2 0 0 0 0\n"+
+ " 7 4 1 0 0 0 0\n"+
+ " 4 8 1 0 0 0 0\n"+
+ " 4 9 2 0 0 0 0\n"+
+ " 7 5 1 0 0 0 0\n"+
+ " 8 6 1 0 0 0 0\n"+
+ " 1 10 2 0 0 0 0\n"+
+ " 3 12 1 0 0 0 0\n"+
+ " 2 13 1 0 0 0 0\n"+
+ " 13 11 2 0 0 0 0\n"+
+ " 12 11 1 0 0 0 0\n"+
+ " 12 14 1 0 0 0 0\n"+
+ "M END\n";
+
+ sketcherInstance.importStructure("mol", s).catch(function(error) {
+ alert("Import structure failed:"+error);
+ });
+ }, function () {
+ alert("Cannot retrieve sketcher instance from iframe");
+ });
+});
+
+ The qrCodeControl object is responsible to retrieve the structure from the editor. It communicates with the MolConvert webservice via AJAX request
+ to convert the molecule to SMILES format. It provides the input for the QR Code generator. The QR Code generator expects a DOM object to insert into and a text data to encode.
+
+var qrCodeControl = (function () {
+
+ function getMolConvertURL() {
+ var ws = getDefaultServices();
+ return ws['molconvertws'];
+ };
+
+ function handleRequestError (qXHR, textStatus, errorThrown) {
+ if (qXHR.status == 0) { // UNSENT request
+ var errMsg = "ERROR: MolConvert failed.\nThe request has not been sent.\nThe request may violate the cross domain policy.";
+ errorConsole.print(errMsg);
+ } else {
+ errorConsole.print("ERROR: MolConvert failed (status code "+ qXHR.status + ")\n" + qXHR.responseText);
+ }
+ };
+ var controlObject = {
+ "getQRCode": function getQRCode () {
+ errorConsole.reset();
+ var s = marvinSketcherInstance.exportAsMrv();
+ var data = JSON.stringify({
+ "structure" : s,
+ "inputFormat" : "mrv",
+ "parameters" : "smiles"
+ });
+ $.ajax({
+ "url": getMolConvertURL()
+ ,"type": "POST"
+ ,"dataType": "json"
+ ,"contentType": "application/json"
+ ,"data": data
+ }).done(function (data, textStatus, jqXHR) {
+ qrCodeControl.convertsmilesToQRCode(data['structure']);
+ }).fail(handleRequestError);
+ }
+
+ , "reset": function reset () {
+ $("#targetField").val("http://www.chemicalize.org/structure/#!mol=");
+ $("#result").empty();
+ errorConsole.reset();
+ }
+
+ , "convertsmilesToQRCode": function convertsmilesToQRCode(smiles) {
+ $("#result").empty();
+ var qrCode = new QRCode(document.getElementById("result"), { "width" : 450, "height" : 450 , "correctLevel" : QRCode.CorrectLevel.M });
+ var s = $("#targetField").val() + escape(smiles);
+ qrCode.makeCode(s);
+ }
+ }
+ return controlObject;
+}());
+
+ The errorConsole object is responsible to display error messages.
+
+var errorConsole = (function () {
+ var controlObject = {
+ "reset" : function() {
+ $("#error").children("p").html("");
+ }
+ , "print" : function(txt) {
+ $("#error").children("p").html(txt);
+ }
+ , "isEmpty" : function() {
+ return ($("#error").children("p").html() === "");
+ }
+ };
+ return controlObject;
+}());
+
+ The following additional JavaScript libraries are required:
+
+ <script src="e;../js/lib/jquery-1.9.1.min.js"e;></script>
+ <script src="e;../js/webservices.js"e;></script>
+ <script src="e;../js/util.js"e;></script>
+ <script src="e;../js/lib/qrcode/qrcode.min.js"e;></script>
+
+
+ The QR Code generation uses a contributed JavaScript library, it is under MIT license .
+
+
+
diff --git a/public/marvinjs/examples/example-reaction.html b/public/marvinjs/examples/example-reaction.html
new file mode 100644
index 000000000..0471f66da
--- /dev/null
+++ b/public/marvinjs/examples/example-reaction.html
@@ -0,0 +1,97 @@
+
+
+
+
+
+ Marvin JS Example - No reaction
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Reaction handling
+
+
+
+ Create editor where reaction is:
+
+ OFF
+ BASIC
+ EXTERNAL
+
+ and ReactionConverter WS is
+ enabled.
+
+
+
+
+
+
+
+
+
+
+ To control how to handle reactions, specify the
data-reaction attribute
+ in the
iframe of the sketcher.
+ It accepts the following values:
+
+ OFF
+ Canvas content is never applied as reaction.
+ Example:
<iframe src="../editor.html" data-reaction="OFF" id="sketch" class="sketcher-frame"></iframe>
+
+ BASIC
+ Built-in (native) mechanism to resolve single-step reactions at molecule export.
+ Example:
<iframe src="../editor.html" data-reaction="BASIC" id="sketch" class="sketcher-frame"></iframe>
+
+ EXTERNAL
+ Legacy behavior. The reactionconvertws webservice is responsible for
+ resolving reactions. If the webservice is not available, the behavior of the editor is similar than in OFF mode.
+ If the service is available, the service attempts to convert canvas content to a single step reaction at molecule export.
+ Example:
<iframe src="../editor.html" data-reaction="EXTERNAL" id="sketch" class="sketcher-frame"></iframe>
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-removedefaultservicefromtoolbar.html b/public/marvinjs/examples/example-removedefaultservicefromtoolbar.html
new file mode 100644
index 000000000..f4f38a3a1
--- /dev/null
+++ b/public/marvinjs/examples/example-removedefaultservicefromtoolbar.html
@@ -0,0 +1,97 @@
+
+
+
+
+ Marvin JS Example - Configure toolbars and services
+
+
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Configure toolbars and services
+
+
+ This example demonstrates how to switch off certain server-side features in an editor that has a specific toolbar setting. New buttons can not be added through this usecase, and only those buttons can be removed which would be available with the toolbar preset.
+
+
+
+
Embed the Marvin JS editor without the default webservices (editor.html
) and specify the search layout:
+
<div class="resizable">
+ <iframe src="../editor.html" id="sketch" class="sketcher-frame" data-toolbars="search"></iframe>
+</div>
+
+
Include webservices.js
in order to reach default webservice locations.
+
<script src="../js/webservices.js"></script>
+
+
Bind a listener to the loading of the sketcher. When the sketcher is loaded, the setServices
method setups the services.
+
+$(document).ready(function handleDocumentReady (e) {
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ setServices(sketcherInstance);
+ },function (error) {
+ //what should happen if marvinjs initiation fails.
+ });
+});
+
The setServices
method receives the reference to the sketcher object as parameter.
+ The excluded
object declares services to switch off.
+ With the predefined getDefaultServices()
, you can get factory settings of services.
+
When you merge the above objects, the new one specifies all services (those ones that are not specified in
+ excluded
inherits the default value, the others are overwritten).
+
Finally, call setServices
function of the sketcher with the above settings.
+ After then, enabled services are activated (if current layout includes their button) and buttons of disabled
+ services are removed.
+
+function setServices(marvinSketcherInstance) {
+ // set null value for those services that you would like to switch off
+ var excluded = {
+ "stereoinfows": null,
+ "hydrogenizews": null,
+ }
+ // all services
+ var defaultServices = getDefaultServices();
+ // merge defaultServices and excluded into an empty object
+ // the new object contains the result
+ var services = $.extend({}, defaultServices, excluded);
+ marvinSketcherInstance.setServices(services);
+}
+
+
+
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-selection.html b/public/marvinjs/examples/example-selection.html
new file mode 100644
index 000000000..150c27222
--- /dev/null
+++ b/public/marvinjs/examples/example-selection.html
@@ -0,0 +1,296 @@
+
+
+
+
+ Marvin JS Examples - Demo
+
+
+
+
+
+
+
+
+
+ Marvin JS Examples - Manage selection
+
+
+ This example demonstrates how to control selection via JavaScript API and how to monitor the changing of the structure.
+ When selection information is retrieved from the sketcher, lists of selected atoms and bonds appear in the following textboxes: Atoms and Bonds .
+ If the checkbox titled as Get selection automatically is checked in, lists of selected atoms and bonds are retrieved automatically as the selected context is changed on the canvas.
+ When this functionality is disabled, you can retrieve the selection by submitting the Get selection button.
+
+ You can edit both the atom list and bond list in the form.
+ Atoms can be referred to by their atom index. A bond can be described with the atom index of its nodes.
+ With the Set selection button, you can update selection in the editor. Those atoms and bonds will be selected that are enumerated on the selection form.
+
+ To get the molecule source each time when the drawn structure is changed in the sketcher, check in the Retrieve mol source at mol change checkbox. The retrieved data appears in the
+ textbox beside the sketcher. You can find a counter next to the checkbox, that indicates how many times the mol change event is invoked. You can reset this counter by submitting the Reset counter button.
+
+ You can see the code comment below.
+
+ var marvinSketcherInstance;
+ var molChangeCounter;
+
+ $(document).ready(function handleDocumentReady (e) {
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ // initalize sketcher
+ marvinSketcherInstance = sketcherInstance;
+ marvinSketcherInstance.importStructure("mol",caffeineSource).catch(function(error) {
+ alert("Import failed:"+error);
+ });
+ marvinSketcherInstance.setDisplaySettings({
+ 'carbonLabelVisible' : true,
+ 'atomIndicesVisible' : true
+ });
+
+
+ getSelection = function () {
+ $("#atoms").val("");
+ $("#bonds").val("");
+ var selection = marvinSketcherInstance.getSelection();
+ $("#atoms").val(selection['atoms']);
+ $("#bonds").val(selection['bonds']);
+ };
+
+ setSelection = function () {
+ marvinSketcherInstance.setSelection({
+ 'atoms' : $('#atoms').val(),
+ 'bonds' : $('#bonds').val()
+ });
+ };
+
+ $("#getSelectionButton").on("click", getSelection);
+
+ $("#setSelectionButton").on("click", setSelection);
+
+ // true to switch on auto retrieve of selection, false to switch it off
+ setSelectionChangeListener = function(b) {
+ if(b) {
+ // add selection change event listener
+ marvinSketcherInstance.on("selectionchange", getSelection);
+ // disable manual retrieve when selection change event listener is active
+ $("#getSelectionButton").attr("disabled", "disabled");
+ } else {
+ // remove selection change event listener
+ marvinSketcherInstance.off("selectionchange", getSelection);
+ // enable Get Selection button when selection change event listener is inactive
+ $("#getSelectionButton").removeAttr("disabled");
+ }
+ };
+
+ // when the checkbox is checked in/out by the user
+ $("#selectionChangeCheckbox").change(function () {
+ setSelectionChangeListener(this.checked);
+ });
+ // activate the listener at startup if its checkbox is selected
+ if($("#selectionChangeCheckbox").prop('checked')) {
+ setSelectionChangeListener(true);
+ }
+
+ molChangeCounter = 0;
+
+ // update counter and display retrieved molecule source
+ handleMolChangeEvent = function () {
+ molChangeCounter = molChangeCounter+1;
+ $("#molChangeCounterDisplay").text(molChangeCounter);
+ marvinSketcherInstance.exportStructure("mrv").then(function(molsource) {
+ $("#molsource").val(molsource);
+ }, function () {});
+ };
+
+ // true to switch on auto retrieve of the molecule, false to switch it off
+ setMolChangeListener = function(b) {
+ if(b) {
+ // add mol change event listener
+ marvinSketcherInstance.on("molchange", handleMolChangeEvent);
+ } else {
+ // remove mol change event listener
+ marvinSketcherInstance.off("molchange", handleMolChangeEvent);
+ }
+ };
+
+ // when the checkbox is checked in/out by the user
+ $("#molChangeCheckbox").change(function () {
+ setMolChangeListener(this.checked);
+ });
+ // activate the listener at startup if its checkbox is selected
+ if($("#molChangeCheckbox").prop('checked')) {
+ setMolChangeListener(true);
+ }
+
+ // when reset button is submitted by the user
+ $("#resetMolChangeCounterButton").on("click", function() {
+ molChangeCounter = 0;
+ $("#molChangeCounterDisplay").text(molChangeCounter);
+ });
+
+ }, function () {
+ alert("Cannot retrieve sketcher instance from iframe");
+ });
+ });
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-setmol.html b/public/marvinjs/examples/example-setmol.html
new file mode 100644
index 000000000..d1de05fe0
--- /dev/null
+++ b/public/marvinjs/examples/example-setmol.html
@@ -0,0 +1,192 @@
+
+
+
+
+ Marvin JS Example - Set a Molecule
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Set a Molecule
+
+
+
+
To be able to embed the Marvin JS editor into a web page, you need one of the following HTML files:
+
+ editor.html - the pure editor
+ editorws.html - the editor extended with default webservices
+
+
+
These HTML files are responsible for loading all resources that the editor component requires.
+
+
First of all, create an iframe that loads the proper HTML file.
+ (In this example, the editorws.html file is preferred to be able to use extra functionalities that webservices provide.)
+ The editor component fills the iframe
. As you resize the iframe
, the editor follows the changing of the
+ iframe
width and height. In this example, the iframe
size is determined by its CSS class,
+ which is defined in docs.css
: sketcher-frame
+
+
+ <div class="resizable">
+ <iframe src="../editorws.html" id="sketch" class="sketcher-frame"></iframe>
+</div>
+
+
+
The host page is where the iframe
is inserted.
+
+
The loading of the editor is not synchronized with the loading of the hosted page. The sketcher object is instantiated inside the iframe
. Thus, there is no guaranty that the sketcher is already available
+ when the loading of the hosted page is finished.
+
If you would like to access the sketcher object, use the MarvinJSUtil.getEditor(iframeID )
helper function from the js/marvinjslauncher.js
.
+
To use it, please include the following script in the header of the HTML document where you would like to use.
+
<script src="../gui/lib/promise-1.0.0.min.js"></script>
+ <script src="../js/marvinjslauncher.js"></script>
+
+
Below, you can see its usage.
+ Call MarvinJSUtil.getEditor
with the ID of the iframe that contains the editor. It returns with a promise.
+ After then, call the then
method of the promise object. Here, you can specify which code should be evaluated when loading of the sketcher is successful and which one when it fails.
+
+ MarvinJSUtil.getEditor("#sketch").then(function(sketcherInstance) {
+ // code performed when the sketcher loaded successful (sketcherInstance is a reference to the editor object)
+ }, function() {
+ // code performed when the sketcher loading failed
+ });
+
The fail branch can be evaluated in the following cases:
+
+ Unable to get iframe with the given ID.
+ Unable to find sketcherInstance in iframe with the given ID.
+ Unable to find marvin package
+ Unable to retrieve sketcher instance.
+
+
Please, take care that in certain case the browser can reject accessing of the sketcher despite it is loaded into the iframe. It happens when the JavaScript request violates the security concept of the browser
+ (same origin policy ).
See the
Troubleshoot section of the documentation for more details.
+
+
In this example, when sketcher is loaded, the initial molecule is setup by calling the importStructure
function, and the initControls()
function is performed. It binds even handlers
+ for the checkboxes above the editor (CPK coloring and Carbon label visibility).
+
+
var marvinSketcherInstance;
+
+$(document).ready(function handleDocumentReady (e) {
+ var p = MarvinJSUtil.getEditor("#sketch");
+ p.then(function (sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ marvinSketcherInstance.importStructure("mol", s).catch(function(error) {
+ alert(error);
+ });
+ initControls();
+ }, function (error) {
+ alert("Cannot retrieve sketcher instance from iframe:"+error);
+ });
+});
+
+function initControls () {
+
+ // Reset mol button
+ $("#btn-setmol").on("click", function (e) {
+ marvinSketcherInstance.importStructure("mol", s);
+ });
+}
+
+var s = "\n\n\n"+
+ " 14 15 0 0 0 0 0 0 0 0999 V2000\n"+
+ " 0.5089 7.8316 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 1.2234 6.5941 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 1.2234 7.4191 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " -0.2055 6.5941 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " -0.9200 7.8316 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 0.5089 5.3566 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " -0.2055 7.4191 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 0.5089 6.1816 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " -0.9200 6.1816 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 0.5089 8.6566 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 2.4929 7.0066 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 2.0080 7.6740 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 2.0080 6.3391 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 2.2630 8.4586 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n"+
+ " 1 7 1 0 0 0 0\n"+
+ " 8 2 1 0 0 0 0\n"+
+ " 1 3 1 0 0 0 0\n"+
+ " 2 3 2 0 0 0 0\n"+
+ " 7 4 1 0 0 0 0\n"+
+ " 4 8 1 0 0 0 0\n"+
+ " 4 9 2 0 0 0 0\n"+
+ " 7 5 1 0 0 0 0\n"+
+ " 8 6 1 0 0 0 0\n"+
+ " 1 10 2 0 0 0 0\n"+
+ " 3 12 1 0 0 0 0\n"+
+ " 2 13 1 0 0 0 0\n"+
+ " 13 11 2 0 0 0 0\n"+
+ " 12 11 1 0 0 0 0\n"+
+ " 12 14 1 0 0 0 0\n"+
+ "M END\n";
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-templates-default.html b/public/marvinjs/examples/example-templates-default.html
new file mode 100644
index 000000000..000f156e2
--- /dev/null
+++ b/public/marvinjs/examples/example-templates-default.html
@@ -0,0 +1,28 @@
+
+
+
+
+ Marvin JS Example - Load Custom Templates (in JSON format)
+
+
+
+
+
+
+ Marvin JS Example - Load Custom Templates (in JSON format)
+
+
+
+
+
+
In this example, custom templates are loaded. These templates are stored in templates/default_templates_with_naphtalane.json (URL is relative to the directory of Marvin JS package).
+ To display them on custom template toolbar, define the location of their source file in the data-templateurl attribute of the iframe
tag of the editor.
+
<div class="resizable">
+ <iframe src="../editorws.html" id="sketch" class="sketcher-frame" data-templateurl="templates/default_templates_with_naphtalane.json"></iframe>
+</div>
+
+
You can generate your own templates file via the following form: Create template
+
+
+
+
diff --git a/public/marvinjs/examples/example-templates.html b/public/marvinjs/examples/example-templates.html
new file mode 100644
index 000000000..979cd756b
--- /dev/null
+++ b/public/marvinjs/examples/example-templates.html
@@ -0,0 +1,28 @@
+
+
+
+
+ Marvin JS Example - Load Custom Templates
+
+
+
+
+
+
+ Marvin JS Example - Load Custom Templates
+
+
+
+
+
+
In this example, custom templates are loaded. These templates are stored in templates/mytemplates.mrv (URL is relative to the directory of Marvin JS package).
+ It is an MRV file that contains several molecule structures.
+ They will appear on custom templates toolbar if location of their source file is defined in the data-templateurl attribute of the iframe
tag of the editor.
+
<div class="resizable">
+ <iframe src="../editorws.html" id="sketch" class="sketcher-frame" data-templateurl="templates/mytemplates.mrv"></iframe>
+</div>
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-templates_with_displaysettings.html b/public/marvinjs/examples/example-templates_with_displaysettings.html
new file mode 100644
index 000000000..910afe642
--- /dev/null
+++ b/public/marvinjs/examples/example-templates_with_displaysettings.html
@@ -0,0 +1,98 @@
+
+
+
+
+ Marvin JS Example - Overwrite custom templates toolbar
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Overwrite custom templates toolbar
+
+
+
+
In this example, you can change the content of the custom template toolbar without reloading of the editor.
+ To do this, type the URL of a template source file into the given input field and submit the Update Templates button.
+
When you take a look at the source code, you can see that a listener function is bind to the submit button.
+ (URLs are relative to the root directory of Marvin JS package.)
+ When the click event is invoked, the updateToolbars(value)
function is performed unless the input field is empty.
+ This function creates a JavaScript object that contains a templateurl property . To update toolbar pass this object to the setDisplaySettings(settings)
function of the sketcher.
+
+ var marvinSketcherInstance;
+
+ $(document).ready(function handleDocumentReady (e) {
+ // after editor in the sketch iframe is ready store its reference
+ // and activate controls
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ initControls();
+ },function (error) {
+ alert("Cannot retrieve sketcher instance from iframe:"+error);
+ });
+ });
+
+ function initControls () {
+ // overwrite custom templates toolbar
+ $("#updateCustomTemplates").on("click", function(e) {
+ var s = $("#templateurl").val();
+ if(typeof s != "undefined" && s.length > 0) {
+ updateCustomToolbar(s);
+ }
+ });
+ }
+
+ function updateCustomToolbar(url) {
+ var settings = {
+ "templateurl": url
+ };
+ marvinSketcherInstance.setDisplaySettings(settings);
+ }
+
+
+
+
diff --git a/public/marvinjs/examples/example-toolbars.html b/public/marvinjs/examples/example-toolbars.html
new file mode 100644
index 000000000..b0b0b7d0a
--- /dev/null
+++ b/public/marvinjs/examples/example-toolbars.html
@@ -0,0 +1,84 @@
+
+
+
+
+ Marvin JS Example - Toolbars
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Toolbars
+
+
+
+
+
In this example, the sketcher is initalized with the standard toolbars.
+
This layout setting is defined in the data-toolbars attribute of the iframe
, which loads the editor.
+
<div class="resizable">
+<iframe src="../editorws.html" id="sketch" class="sketcher-frame" data-toolbars="standard"></iframe>
+</div>
+
Further presets are enumerated above the sketcher. To switch another layout, select its radio button.
+ It triggers the reload of the iframe with the new setting.
+ If you select the Markush layout, the editor will be reloaded with the Markush layout.
+
When you take a look at the source code, you can see that a listener function is bind to the change events of radio buttons.
+ When a change event is invoked, the value of data-toolbars attribute of the iframe
tag is overwritten
+ with the selected value and the reload of the iframe is triggered.
+
+ $(document).ready(function handleDocumentReady (e) {
+ initControls();
+ });
+
+ function initControls () {
+ // bind event listener to all radio buttons from layout-group
+ $("input[name='layout-group']").change(function(e) {
+ var s = $(this).val();
+ reload(s);
+ });
+ }
+
+ function reload(layout) {
+ $("#sketch").attr("data-toolbars", layout);
+ $("#sketch")[0].contentWindow.location.reload(true);
+ }
+
+
+
+
+
diff --git a/public/marvinjs/examples/example-toolbars_with_displaysettings.html b/public/marvinjs/examples/example-toolbars_with_displaysettings.html
new file mode 100644
index 000000000..eaba42781
--- /dev/null
+++ b/public/marvinjs/examples/example-toolbars_with_displaysettings.html
@@ -0,0 +1,98 @@
+
+
+
+
+ Marvin JS Example - Toolbars with display settings
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Toolbars with display settings
+
+
+
+
In this example, you can change layout without reloading of the editor.
+ Select the desired layout to rerender editor toolbars.
+
When you take a look at the source code, you can see that a listener function is bind to the change events of radio buttons.
+ When a change event is invoked, the updateToolbars(value)
function is performed.
+ This function assembles a JavaScript object that describes display settings and call the setDisplaySettings(settings)
function of the sketcher.
+ Only give settings that you would like to overwrite. In this case, this is the toolbars property.
+
+ var marvinSketcherInstance;
+
+ $(document).ready(function handleDocumentReady (e) {
+ // after editor in the sketch iframe is ready store its reference
+ // and activate controls
+ MarvinJSUtil.getEditor("#sketch").then(function (sketcherInstance) {
+ marvinSketcherInstance = sketcherInstance;
+ initControls();
+ },function (error) {
+ alert("Cannot retrieve sketcher instance from iframe:"+error);
+ });
+ });
+
+ function initControls () {
+ // change layout
+ $("input[name='layout-group']").change(function(e) {
+ var s = $(this).val();
+ updateToolbars(s);
+ });
+ }
+
+ function updateToolbars(layout) {
+ marvinSketcherInstance.setDisplaySettings({
+ "toolbars": layout
+ });
+ }
+
+
+
+
diff --git a/public/marvinjs/examples/form/echo.php b/public/marvinjs/examples/form/echo.php
new file mode 100644
index 000000000..45a21d5a1
--- /dev/null
+++ b/public/marvinjs/examples/form/echo.php
@@ -0,0 +1,12 @@
+
+
+
+
+
+mrv field of the posted form
+
+
+No posted form with mrv field
+
+
+
\ No newline at end of file
diff --git a/public/marvinjs/examples/form/example-submit-form.html b/public/marvinjs/examples/form/example-submit-form.html
new file mode 100644
index 000000000..5689f2a59
--- /dev/null
+++ b/public/marvinjs/examples/form/example-submit-form.html
@@ -0,0 +1,51 @@
+
+
+
+
+ Marvin JS Example - Get SVG
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Submit a form
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/marvinjs/examples/images/custom-icon.png b/public/marvinjs/examples/images/custom-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..399237e95a00fe2ef8ac33ba04b396b938af3acf
GIT binary patch
literal 918
zcmV;H18Mw;P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D11m{HK~zXf?Nn(<
z6;T*Hg)Nx2Xtt^)8HD7L6xpg)R`$%-Q_G6>Xv#K2!m`y~WmsV=K~WKHP|!j~CKa~t
z5%nV~BFiXj!3-2C@67GodDH$B?MFYN1BZ`u=KJn9_kME+|MA!0`MRHMRNh-!vX(e3
zy>P;qi2}V4=S3;5h|jpg_&_hPGQL713bKWPTv3JP#Tj&3kPXOsR`ekiv`(i+$&Tle
zrT-;1xs@PW-HVsL4+qO;Pub*Uw3`N@nf}NSZ?K4Oo>i7^xz$1YkpUM+$aXh|t3|(h
zzo9--ix*=i7oVpWSssw1ufYaUfo=LKQ}3rfqE{f_(k^I0XHsOqg%LH*zz<_S6=5nH
zq{)%Wu-Ro
z#`{fJB0gZX?lg5C^$zO2y3?$3q1t2l5n-@#ut{tXEj^Txn3&j3EvlkBT~|aRhLmmL90xVjzSorvp*GseMg1Rz0rB9(EnF#(#miF7{CWL{Q9rmMVmXiY{U;PMQFidX2)Mf#Eh
z$zh~}979ebHGXvyi$}Z4>ISuwPQBmo@63qej8W%
spF#aSTaul~u4K3sl~%r***_293oD$BxPH&95dZ)H07*qoM6N<$g4t`Z%K!iX
literal 0
HcmV?d00001
diff --git a/public/marvinjs/examples/images/qr.png b/public/marvinjs/examples/images/qr.png
new file mode 100644
index 0000000000000000000000000000000000000000..78b193f975112e17ce791d247aa1975853bc4076
GIT binary patch
literal 630
zcmV-+0*U>JP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0t-n*K~zXf-H<_R
z6Hyd}XK*r6614?gC@6(4gc8IqtduUYXg6K7#A=CR1O;oVm`b&vPC-GW?ZP)xH6)D-
ztxH{n{sMnNaG9UrZ^)v@oXNdKLfSX$9yq-F?mgdqnK;K&HK&%Vy7iWEqs~V+MC5)#
z-EH8TyBnJ|dz>-DEE&P=iqiGgv(yU|y%KJEi~F~|yLjY1`TH{U>Nm}ry#=orXP6};
zxLqGI+nuG8D_A|Xj`x`m8=22A*{`T(f5c|Z9%sxjOGa?J-VTMRoLNV^-Tsoq%#sn@
zuGi-bXu^d;0czfx&F0Vkp5_I&YwdyotqGTSE_4aeDq9va^dgd#8-yPGw!ibe*W-+tZkCMT$4ZX#50QRvCs07*qoM6N<$g4sAK8UO$Q
literal 0
HcmV?d00001
diff --git a/public/marvinjs/examples/images/search.png b/public/marvinjs/examples/images/search.png
new file mode 100644
index 0000000000000000000000000000000000000000..02441484df2990247761d8612f5eea915257ed8f
GIT binary patch
literal 1125
zcmV-r1e*JaP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1NuosK~zXfy;N;X
zn^hD(>wu-xWp2wv=eIL%OD1m4ZHYg0%*6QZ_^?@E1klzWO4u^!8W!xEEzktczJderP&AT-cm(HT)11K};Npv_RMp+h7Ylo^yBG&;m9{qQ)0;tz1n=XRW
ziFdM8`|+E~VR%!zC68Snf@vwjrEI0`WT4@3xL3L+hh(B(Xs2@ES?QV_%v#vL!d@3z
ziY(F8=8SI?0F`u24hXQqatNMFGwr#$6e$}geTNZhTGQb!>6ScpR)Sf76yD}}<6d~Q
ztPBoP)fk>X4oaQ@KH%#57+_V?23WIE*?8Xh5^NQY$>JfS`csZlUGwy1odL9GUW4sS
z#-!)AL;Ba>HI{!rHvIG0%*^~eB8EbL2j}MIu0$e{_vv%Bq*)$kUxX*qY)AZw&$6bu
z8Nc{#gg6kVrlzpFyBpnZH+FP%;K<1B^>8@+3kmI%RLjG$74F}xtZYcNS57hcs-`Bq
z>Kj9f6kA$aFgG_Bv$C?{%xE;?`1m-B+$50ua7DvggH4mg23f+k#htyoiCg}
z_aLk%ZWZO`8Yen>i{9Q|k#I>DkE~;GWT^U_xE$feJd&Barz+aRXOT{(HuPEc1M_SVIn;qj}VDsbaWJpii*Tu
zadELIXS&rT+DehM@vy%IJMK1Z^MKPa&m!Cd+*}0(1u>C|iVAF|=CfEVsL^O*>zu3h
z_I4pmB45$4R?;p8{~9U}!vXyTO4t6#gdW|%*)FY&1JP(acF1=eLf$SmX^jus;jHTO~`LZ(%cy&vW>4z
z4k9lLL2JK~{lPuL#QaoVub0
+
+
+
+ Marvin JS - Examples
+
+
+
+ Marvin JS Examples
+
+ Sketch
+ The pure editor
+ The editor extended with default webservices
+
+
Import / export structures
+
+
+ Customization
+
+
+ Further examples
+
+
+ ImageExport
+
+
+
diff --git a/public/marvinjs/examples/jqueryui/dialog.html b/public/marvinjs/examples/jqueryui/dialog.html
new file mode 100644
index 000000000..2ab1eb4c4
--- /dev/null
+++ b/public/marvinjs/examples/jqueryui/dialog.html
@@ -0,0 +1,74 @@
+
+
+
+
+ Marvin JS Editor in jQuery UI Dialog
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Open
+
+
+
+
diff --git a/public/marvinjs/examples/properties/example-set-properties.html b/public/marvinjs/examples/properties/example-set-properties.html
new file mode 100644
index 000000000..bc63ebe05
--- /dev/null
+++ b/public/marvinjs/examples/properties/example-set-properties.html
@@ -0,0 +1,298 @@
+
+
+
+
+ Marvin JS Example - Molecule property
+
+
+
+
+
+
+
+
+
+ Marvin JS Example - Molecule property
+
+
+
+
+
+
+
+
+
This example demonstrates how to insert molecule properties into MRV source.
+
Marvin JS can parse molecule properties if they has been bound to the scaffold:
+
<cml>
+ <MDocument>
+ <MChemicalStruct>
+ <molecule molID="m1">
+ <propertyList>
+ <property dictRef="my property" title="my property" >
+ <scalar>value of my property</scalar>
+ </property>
+ <propertyList>
+ <atomArray> ... </atomArray>
+ <bondArray> ... </bondArray>
+ ...
+ </molecule>
+ </MChemicalStruct>
+ </MDocument>
+ </cml>
+
+ At single step reaction the canvas content is separated to identical reaction compounds. In this case, molecule properties
+ does not supported.
+
About the example: Draw something and submit the Get properties button. It retrieves the canvas content. The MRV source appears
+ in the Feadback box. If the scaffold contained molecule properties, they also appears in the Properties box.
+
Setup properties: Type key-value pairs (separated by "=" sign) into the Properties box. Each line represents a property (key-value pair).
+ Pressing the Set properties button trigger a request to retrieve the canvas content (as MRV).
+ When the mrv export is finished, the content of the Properties box is evaluated. Insert defined molecule properties into
+ the given MRV source then update the editor with the modified MRV. In the Feadback box, the modified MRV also appears.
+
+
+
+
diff --git a/public/marvinjs/examples/properties/xmlindent.js b/public/marvinjs/examples/properties/xmlindent.js
new file mode 100644
index 000000000..d3d635fb6
--- /dev/null
+++ b/public/marvinjs/examples/properties/xmlindent.js
@@ -0,0 +1,55 @@
+/**
+* @author Tamas Vertse
+* @Copyright 1998-2017 ChemAxon Ltd.
+*/
+(function() {
+
+ var open = /^\s*<\w+/;
+ var close = /(\/|<\/\w+)\s*>\s*$/;
+
+ function xmlindent(xml) {
+ var lines = tokenize(xml);
+ var n = lines.length;
+ var indent = 0;
+ var result = "";
+ for(var i = 0; i < n; i++) {
+ var line = lines[i];
+ var diff = 0;
+ if(open.test(line)) {
+ diff += 1;
+ }
+ if(close.test(line)) {
+ diff -= 1;
+ }
+ if(diff == -1) {
+ result += leftIndent(--indent, line);
+ } else {
+ result += leftIndent(indent, line);
+ indent += diff;
+ }
+ }
+ return result;
+ }
+
+ function tokenize(xml) {
+ var reg = /[^\]]><[^\!]/;
+ var end = xml.search(reg)+2;
+ var s = xml;
+ var tokens = new Array();
+ while(end > 1) {
+ var next = s.slice(0, end);
+ tokens.push(next);
+ s = s.substring(end);
+ end = s.search(reg)+2;
+ }
+ tokens.push(s);
+ return tokens;
+ }
+
+ function leftIndent(n, s) {
+ var result = s + '\n';
+ return (n > 0)? ' '.repeat(n*2)+result : result;
+ }
+
+ window.xmlindent = xmlindent;
+})();
\ No newline at end of file
diff --git a/public/marvinjs/examples/query/substructuresearch.html b/public/marvinjs/examples/query/substructuresearch.html
new file mode 100644
index 000000000..0b332616c
--- /dev/null
+++ b/public/marvinjs/examples/query/substructuresearch.html
@@ -0,0 +1,138 @@
+
+
+
+
+Marvin JS Substructure Search
+
+
+
+
+
+
+
+
+
+
+
+Marvin JS Substructure Search
+Draw a query and perform a substructure search with JChem Webservices on an example data base, the target hints will be displayed on the bottom of the page.
+Please, take care that Complex Query Search Webservice with valid license is required for this example.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/marvinjs/examples/textbox/textbox.html b/public/marvinjs/examples/textbox/textbox.html
new file mode 100644
index 000000000..64d63a463
--- /dev/null
+++ b/public/marvinjs/examples/textbox/textbox.html
@@ -0,0 +1,41 @@
+
+
+
+
+ Marvin JS
+
+
+
+
+
+
+
+
+ Format:
+
+ MDL molfile
+ MRV
+
+
+
+
+
\ No newline at end of file
diff --git a/public/marvinjs/gui/5C5DC5E8F823390618266388A9FBC038.cache.js b/public/marvinjs/gui/5C5DC5E8F823390618266388A9FBC038.cache.js
new file mode 100644
index 000000000..67cf688b4
--- /dev/null
+++ b/public/marvinjs/gui/5C5DC5E8F823390618266388A9FBC038.cache.js
@@ -0,0 +1,7878 @@
+var $wnd = $wnd || window.parent;var __gwtModuleFunction = $wnd.gui;var $sendStats = __gwtModuleFunction.__sendStats;$sendStats('moduleStartup', 'moduleEvalStart');var $gwt_version = "2.8.2";var $strongName = '5C5DC5E8F823390618266388A9FBC038';var $gwt = {};var $doc = $wnd.document;var $moduleName, $moduleBase;function __gwtStartLoadingFragment(frag) {var fragFile = 'deferredjs/' + $strongName + '/' + frag + '.cache.js';return __gwtModuleFunction.__startLoadingFragment(fragFile);}function __gwtInstallCode(code) {return __gwtModuleFunction.__installRunAsyncCode(code);}function __gwt_isKnownPropertyValue(propName, propValue) {return __gwtModuleFunction.__gwt_isKnownPropertyValue(propName, propValue);}function __gwt_getMetaProperty(name) {return __gwtModuleFunction.__gwt_getMetaProperty(name);}var $stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent && $wnd.__gwtStatsEvent(a);} : null;var $sessionId = $wnd.__gwtStatsSessionId ? $wnd.__gwtStatsSessionId : null;function S(){}
+function cc(){}
+function Ic(){}
+function _e(){}
+function af(){}
+function ff(){}
+function gf(){}
+function jf(){}
+function Df(){}
+function Ki(){}
+function Ui(){}
+function Yi(){}
+function Ys(){}
+function os(){}
+function Uj(){}
+function Wj(){}
+function qp(){}
+function wp(){}
+function Rp(){}
+function bq(){}
+function zt(){}
+function Kt(){}
+function Vt(){}
+function lu(){}
+function $u(){}
+function _u(){}
+function Ev(){}
+function Fv(){}
+function yz(){}
+function Uz(){}
+function bA(){}
+function lB(){}
+function NB(){}
+function OB(){}
+function pD(){}
+function fG(){}
+function fM(){}
+function aJ(){}
+function RJ(){}
+function SJ(){}
+function FO(){}
+function CR(){}
+function ER(){}
+function rT(){}
+function CT(){}
+function eU(){}
+function ZV(){}
+function mX(){}
+function yX(){}
+function XX(){}
+function qZ(){}
+function rZ(){}
+function b_(){}
+function R_(){}
+function R3(){}
+function P3(){}
+function $3(){}
+function $4(){}
+function l4(){}
+function V0(){}
+function g2(){}
+function h2(){}
+function $5(){}
+function a6(){}
+function c6(){}
+function g6(){}
+function _6(){}
+function o7(){}
+function s7(){}
+function I7(){}
+function J7(){}
+function M7(){}
+function N7(){}
+function q8(){}
+function s8(){}
+function u8(){}
+function z8(){}
+function A8(){}
+function H8(){}
+function L8(){}
+function M8(){}
+function O8(){}
+function t9c(){}
+function p9c(){}
+function lod(){}
+function Hbb(){}
+function Ibb(){}
+function hcb(){}
+function $cb(){}
+function $kb(){}
+function Bgb(){}
+function Dgb(){}
+function Egb(){}
+function Tgb(){}
+function fjb(){}
+function gjb(){}
+function njb(){}
+function gmb(){}
+function hmb(){}
+function imb(){}
+function kmb(){}
+function rmb(){}
+function _qb(){}
+function tub(){}
+function txb(){}
+function cxb(){}
+function lwb(){}
+function fzb(){}
+function OAb(){}
+function aBb(){}
+function QBb(){}
+function SBb(){}
+function ECb(){}
+function FCb(){}
+function XCb(){}
+function YCb(){}
+function ZCb(){}
+function $Cb(){}
+function _Eb(){}
+function iFb(){}
+function kFb(){}
+function DFb(){}
+function wGb(){}
+function RGb(){}
+function jJb(){}
+function uKb(){}
+function wLb(){}
+function wMb(){}
+function vMb(){}
+function xMb(){}
+function yMb(){}
+function zMb(){}
+function AMb(){}
+function BMb(){}
+function CMb(){}
+function RMb(){}
+function SMb(){}
+function TMb(){}
+function UMb(){}
+function VMb(){}
+function WMb(){}
+function iNb(){}
+function jNb(){}
+function oNb(){}
+function pNb(){}
+function uNb(){}
+function vNb(){}
+function BNb(){}
+function CNb(){}
+function DNb(){}
+function oPb(){}
+function pPb(){}
+function qPb(){}
+function uPb(){}
+function ZPb(){}
+function rQb(){}
+function GQb(){}
+function SQb(){}
+function UQb(){}
+function qSb(){}
+function RUb(){}
+function $0b(){}
+function $9b(){}
+function y9b(){}
+function P9b(){}
+function I7b(){}
+function Bdc(){}
+function Agc(){}
+function yic(){}
+function Kic(){}
+function _nc(){}
+function goc(){}
+function ooc(){}
+function roc(){}
+function woc(){}
+function zoc(){}
+function Coc(){}
+function Foc(){}
+function Moc(){}
+function Soc(){}
+function Voc(){}
+function Yoc(){}
+function apc(){}
+function dpc(){}
+function gpc(){}
+function jpc(){}
+function mpc(){}
+function ppc(){}
+function spc(){}
+function vpc(){}
+function ypc(){}
+function Hpc(){}
+function Kpc(){}
+function Opc(){}
+function Rpc(){}
+function Upc(){}
+function Zpc(){}
+function aqc(){}
+function dqc(){}
+function Osc(){}
+function mtc(){}
+function stc(){}
+function utc(){}
+function vtc(){}
+function Ytc(){}
+function aad(){}
+function dad(){}
+function fad(){}
+function had(){}
+function hdd(){}
+function ndd(){}
+function pdd(){}
+function Fdd(){}
+function Gdd(){}
+function Ndd(){}
+function Odd(){}
+function Vdd(){}
+function Abd(){}
+function Ebd(){}
+function Sbd(){}
+function ucd(){}
+function uid(){}
+function tid(){}
+function kfd(){}
+function mfd(){}
+function Xjd(){}
+function dkd(){}
+function cmd(){}
+function Trd(){}
+function esd(){}
+function hsd(){}
+function isd(){}
+function jsd(){}
+function Gsd(){}
+function vud(){}
+function Bud(){}
+function Cud(){}
+function Dud(){}
+function zvd(){}
+function Qvd(){}
+function Vvd(){}
+function Wvd(){}
+function Xvd(){}
+function vwd(){}
+function Fwd(){}
+function txd(){}
+function tMd(){}
+function wMd(a){}
+function lOd(a,b){}
+function bF(){aF()}
+function eF(){dF()}
+function hF(){gF()}
+function nF(){mF()}
+function ae(){_d()}
+function Ci(){Bi()}
+function Qw(){Pw()}
+function J3(){I3()}
+function m6(){k6()}
+function teb(){reb()}
+function HGb(){FGb()}
+function u7b(){t7b()}
+function ckc(){ujc()}
+function okc(){ujc()}
+function akd(){Vjd()}
+function $jd(){Vjd()}
+function Xcd(){Vcd()}
+function hcd(){gcd()}
+function xcd(){wcd()}
+function Ycd(){Icd()}
+function gkd(){fkd()}
+function iPd(){Ttd()}
+function OPd(){Ttd()}
+function Hic(a){Gic()}
+function DNd(a,b,c){}
+function _f(a,b){a.U=b}
+function xg(a,b){a.S=b}
+function El(a,b){a.i=b}
+function Fl(a,b){a.f=b}
+function Gl(a,b){a.j=b}
+function Jl(a,b){a.p=b}
+function Kl(a,b){a.o=b}
+function Ll(a,b){a.q=b}
+function En(a,b){a.a=b}
+function Uo(a,b){a.b=b}
+function Vo(a,b){a.d=b}
+function Vz(a,b){a.c=b}
+function Pu(a,b){a.n=b}
+function vH(a,b){a.k=b}
+function s5(a,b){a.e=b}
+function ENd(a,b,c,d){}
+function Lcd(a){jbd(a)}
+function Ed(a){this.a=a}
+function Fd(a){this.a=a}
+function Hd(a){this.a=a}
+function Td(a){this.a=a}
+function ze(a){this.a=a}
+function Me(a){this.a=a}
+function Ne(a){this.a=a}
+function Ve(a){this.a=a}
+function Af(a){this.a=a}
+function gh(a){this.a=a}
+function Mh(a){this.a=a}
+function Oh(a){this.a=a}
+function Uh(a){this.a=a}
+function Xh(a){this.a=a}
+function Yh(a){this.a=a}
+function _h(a){this.a=a}
+function ei(a){this.a=a}
+function si(a){this.a=a}
+function Si(a){this.a=a}
+function Ti(a){this.a=a}
+function Vi(a){this.a=a}
+function Xi(a){this.a=a}
+function ej(a){this.a=a}
+function fj(a){this.a=a}
+function qj(a){this.a=a}
+function rj(a){this.a=a}
+function Mj(a){this.a=a}
+function tj(a){this.b=a}
+function el(a){this.b=a}
+function em(a){this.a=a}
+function fm(a){this.a=a}
+function lm(a){this.a=a}
+function Nm(a){this.a=a}
+function Om(a){this.a=a}
+function Ok(a){this.a=a}
+function hk(a){this.a=a}
+function Uk(a){this.a=a}
+function Pm(a){this.a=a}
+function On(a){this.a=a}
+function Qn(a){this.a=a}
+function Bo(a){this.a=a}
+function Co(a){this.a=a}
+function Do(a){this.a=a}
+function Eo(a){this.a=a}
+function Fo(a){this.a=a}
+function Go(a){this.a=a}
+function Ho(a){this.a=a}
+function Io(a){this.a=a}
+function Jo(a){this.a=a}
+function Ko(a){this.a=a}
+function ap(a){this.a=a}
+function bp(a){this.a=a}
+function cp(a){this.a=a}
+function dp(a){this.a=a}
+function ep(a){this.a=a}
+function Lp(a){this.a=a}
+function kq(a){this.a=a}
+function nq(a){this.a=a}
+function ks(a){this.a=a}
+function $s(a){this.a=a}
+function ss(a){this.b=a}
+function Uu(a){this.b=a}
+function Xu(a){this.a=a}
+function Yu(a){this.a=a}
+function Yt(a){this.a=a}
+function jt(a){this.a=a}
+function vt(a){this.a=a}
+function Dt(a){this.a=a}
+function vv(a){this.a=a}
+function ww(a){this.a=a}
+function xw(a){this.a=a}
+function $w(a){this.a=a}
+function Yz(a){this.a=a}
+function _B(a){this.a=a}
+function QB(a){this.b=a}
+function pA(a){this.o=a}
+function vC(a){this.a=a}
+function VC(a){this.a=a}
+function WC(a){this.a=a}
+function XC(a){this.a=a}
+function yD(a){this.a=a}
+function jD(a){this.j=a}
+function ID(a){this.c=a}
+function IE(a){this.a=a}
+function SE(a){this.a=a}
+function iF(a){this.a=a}
+function JF(a){this.a=a}
+function lG(a){this.a=a}
+function xG(a){this.a=a}
+function iI(a){this.a=a}
+function gJ(a){this.a=a}
+function GK(a){this.a=a}
+function bM(a){this.a=a}
+function qN(a){this.a=a}
+function rN(a){this.a=a}
+function sN(a){this.a=a}
+function tN(a){this.a=a}
+function wN(a){this.a=a}
+function ON(a){this.b=a}
+function aO(a){this.a=a}
+function qP(a){this.a=a}
+function vP(a){this.a=a}
+function yP(a){this.a=a}
+function cP(a){this.c=a}
+function wS(a){this.a=a}
+function qT(a){this.a=a}
+function TT(a){this.a=a}
+function hW(a){this.a=a}
+function uW(a){this.a=a}
+function lX(a){this.a=a}
+function YX(a){this.a=a}
+function rX(a){this.b=a}
+function pZ(a){this.a=a}
+function yZ(a){this.a=a}
+function R$(a){this.a=a}
+function W$(a){this.a=a}
+function c_(a){this.a=a}
+function d0(a){this.a=a}
+function i2(a){this.a=a}
+function r3(a){this.a=a}
+function N3(a){this.a=a}
+function b6(a){this.a=a}
+function w9(a){this.a=a}
+function b5(){this.a=''}
+function es(){Ur(this)}
+function fs(){Ur(this)}
+function Nw(){yw(this)}
+function By(){kx(this)}
+function uMd(){ug(this)}
+function XMd(){sB(this)}
+function $Md(){aC(this)}
+function kNd(){AJ(this)}
+function tNd(){PO(this)}
+function uNd(){TO(this)}
+function vNd(){XO(this)}
+function NOd(){return 1}
+function ROd(){return 0}
+function pab(a){this.a=a}
+function Gbb(a){this.a=a}
+function xbb(a){this.c=a}
+function Ffb(a){this.c=a}
+function pfb(a){this.a=a}
+function Bcb(a){this.a=a}
+function gcb(a){this.b=a}
+function edb(a){this.a=a}
+function kdb(a){this.a=a}
+function ldb(a){this.a=a}
+function Peb(a){this.a=a}
+function bgb(a){this.a=a}
+function fgb(a){this.a=a}
+function Agb(a){this.a=a}
+function Lhb(a){this.a=a}
+function aib(a){this.a=a}
+function Mkb(a){this.a=a}
+function Nkb(a){this.a=a}
+function _kb(a){this.a=a}
+function _lb(a){this.a=a}
+function Xlb(a){this.a=a}
+function Ylb(a){this.a=a}
+function Zlb(a){this.a=a}
+function $lb(a){this.a=a}
+function amb(a){this.a=a}
+function bmb(a){this.a=a}
+function dmb(a){this.a=a}
+function fmb(a){this.a=a}
+function omb(a){this.a=a}
+function zmb(a){this.a=a}
+function Amb(a){this.a=a}
+function nnb(a){this.a=a}
+function Mnb(a){this.a=a}
+function Nnb(a){this.a=a}
+function Mob(a){this.a=a}
+function Sob(a){this.a=a}
+function Yob(a){this.a=a}
+function upb(a){this.a=a}
+function Jpb(a){this.a=a}
+function Kpb(a){this.a=a}
+function Lpb(a){this.a=a}
+function Mpb(a){this.a=a}
+function cqb(a){this.a=a}
+function dqb(a){this.a=a}
+function lqb(a){this.a=a}
+function sqb(a){this.a=a}
+function uqb(a){this.a=a}
+function Tqb(a){this.a=a}
+function Wqb(a){this.a=a}
+function Zqb(a){this.a=a}
+function arb(a){this.a=a}
+function trb(a){this.a=a}
+function yub(a){this.a=a}
+function Oub(a){this.a=a}
+function Vub(a){this.a=a}
+function Mvb(a){this.a=a}
+function Tvb(a){this.a=a}
+function Yvb(a){this.a=a}
+function _vb(a){this.a=a}
+function cwb(a){this.a=a}
+function owb(a){this.a=a}
+function sxb(a){this.a=a}
+function uxb(a){this.a=a}
+function Cxb(a){this.a=a}
+function Dxb(a){this.a=a}
+function Oxb(a){this.a=a}
+function tyb(a){this.a=a}
+function Hyb(a){this.a=a}
+function szb(a){this.a=a}
+function tzb(a){this.a=a}
+function Azb(a){this.a=a}
+function Dzb(a){this.a=a}
+function Izb(a){this.a=a}
+function Wzb(a){this.a=a}
+function bAb(a){this.a=a}
+function cAb(a){this.a=a}
+function KAb(a){this.a=a}
+function SAb(a){this.a=a}
+function uBb(a){this.a=a}
+function MBb(a){this.a=a}
+function eCb(a){this.a=a}
+function lCb(a){this.a=a}
+function DCb(a){this.a=a}
+function RCb(a){this.a=a}
+function cDb(a){this.a=a}
+function dDb(a){this.a=a}
+function rDb(a){this.a=a}
+function uDb(a){this.a=a}
+function yDb(a){this.a=a}
+function zDb(a){this.a=a}
+function ADb(a){this.a=a}
+function DDb(a){this.a=a}
+function jEb(a){this.a=a}
+function qEb(a){this.a=a}
+function rEb(a){this.a=a}
+function SEb(a){this.a=a}
+function XEb(a){this.a=a}
+function YEb(a){this.a=a}
+function cFb(a){this.a=a}
+function nFb(a){this.a=a}
+function PFb(a){this.a=a}
+function RFb(a){this.a=a}
+function dGb(a){this.a=a}
+function gGb(a){this.a=a}
+function iGb(a){this.a=a}
+function jGb(a){this.a=a}
+function qGb(a){this.a=a}
+function uGb(a){this.a=a}
+function yGb(a){this.a=a}
+function CGb(a){this.a=a}
+function VGb(a){this.a=a}
+function WGb(a){this.a=a}
+function XGb(a){this.a=a}
+function NGb(a){this.b=a}
+function fHb(a){this.a=a}
+function gHb(a){this.a=a}
+function hHb(a){this.a=a}
+function iHb(a){this.a=a}
+function jHb(a){this.a=a}
+function mHb(a){this.a=a}
+function pHb(a){this.a=a}
+function qHb(a){this.a=a}
+function tHb(a){this.a=a}
+function CHb(a){this.a=a}
+function DHb(a){this.a=a}
+function EHb(a){this.a=a}
+function CIb(a){this.a=a}
+function DIb(a){this.a=a}
+function JIb(a){this.a=a}
+function tJb(a){this.a=a}
+function tKb(a){this.c=a}
+function AKb(a){this.a=a}
+function BKb(a){this.a=a}
+function FKb(a){this.c=a}
+function SKb(a){this.c=a}
+function WKb(a){this.a=a}
+function mLb(a){this.a=a}
+function qLb(a){this.a=a}
+function rLb(a){this.a=a}
+function uLb(a){this.a=a}
+function ELb(a){this.a=a}
+function RLb(a){this.a=a}
+function gLb(a){this.b=a}
+function ZNb(a){this.a=a}
+function tOb(a){this.a=a}
+function OPb(a){this.a=a}
+function QPb(a){this.a=a}
+function iQb(a){this.a=a}
+function kQb(a){this.a=a}
+function lQb(a){this.a=a}
+function tQb(a){this.a=a}
+function vQb(a){this.a=a}
+function wQb(a){this.a=a}
+function xQb(a){this.a=a}
+function yQb(a){this.a=a}
+function zQb(a){this.a=a}
+function AQb(a){this.a=a}
+function BQb(a){this.a=a}
+function CQb(a){this.a=a}
+function DQb(a){this.a=a}
+function EQb(a){this.a=a}
+function FQb(a){this.a=a}
+function HQb(a){this.a=a}
+function IQb(a){this.a=a}
+function MQb(a){this.a=a}
+function NQb(a){this.a=a}
+function OQb(a){this.a=a}
+function pRb(a){this.a=a}
+function TRb(a){this.a=a}
+function _Rb(a){this.a=a}
+function dSb(a){this.a=a}
+function eSb(a){this.a=a}
+function lSb(a){this.a=a}
+function mSb(a){this.a=a}
+function tSb(a){this.a=a}
+function ASb(a){this.a=a}
+function GSb(a){this.a=a}
+function PSb(a){this.a=a}
+function TSb(a){this.a=a}
+function ZSb(a){this.a=a}
+function hUb(a){this.a=a}
+function iUb(a){this.a=a}
+function yUb(a){this.a=a}
+function zUb(a){this.a=a}
+function DUb(a){this.a=a}
+function QUb(a){this.a=a}
+function UWb(a){this.a=a}
+function CXb(a){this.a=a}
+function wRb(){this.a=20}
+function w$b(a){this.c=a}
+function g$b(){d$b(this)}
+function jlb(){hlb(this)}
+function olb(){mlb(this)}
+function Lmb(){Jmb(this)}
+function Rmb(){Pmb(this)}
+function Zmb(){Wmb(this)}
+function _nb(){$nb(this)}
+function H1b(a){a.b=null}
+function M4b(a){this.a=a}
+function b6b(a){this.a=a}
+function C6b(a){this.a=a}
+function N7b(a){this.a=a}
+function Q7b(a){this.a=a}
+function Y8b(a){this.a=a}
+function rdc(a){this.a=a}
+function zdc(a){this.a=a}
+function Edc(a){this.a=a}
+function Ldc(a){this.a=a}
+function Sdc(a){this.a=a}
+function Dic(a){this.a=a}
+function Eic(a){this.a=a}
+function zpc(a){this.a=a}
+function Wpc(a){this.a=a}
+function gqc(a){this.a=a}
+function jqc(a){this.a=a}
+function Fqc(a){this.a=a}
+function _qc(a){this.a=a}
+function _hc(a){this.b=a}
+function drc(a){this.a=a}
+function duc(a){this.a=a}
+function Ptc(a){this.a=a}
+function Ttc(a){this.a=a}
+function Ztc(a){this.a=a}
+function tad(a){this.a=a}
+function Cbd(a){this.a=a}
+function Pdd(a){this.a=a}
+function led(a){this.a=a}
+function xed(a){this.a=a}
+function Nfd(a){this.a=a}
+function rgd(a){this.a=a}
+function wgd(a){this.a=a}
+function Ygd(a){this.a=a}
+function $gd(a){this.a=a}
+function _gd(a){this.a=a}
+function jgd(a){this.b=a}
+function xhd(a){this.a=a}
+function Ahd(a){this.a=a}
+function Bhd(a){this.a=a}
+function Fid(a){this.a=a}
+function Gid(a){this.a=a}
+function Iid(a){this.a=a}
+function Pid(a){this.a=a}
+function mjd(a){this.a=a}
+function Ljd(a){this.c=a}
+function ikd(a){this.a=a}
+function Kkd(a){this.a=a}
+function Yld(a){this.a=a}
+function imd(a){this.a=a}
+function umd(a){this.a=a}
+function gnd(a){this.a=a}
+function Sqd(a){this.a=a}
+function Zqd(a){this.d=a}
+function ard(a){this.a=a}
+function brd(a){this.a=a}
+function drd(a){this.a=a}
+function erd(a){this.a=a}
+function jrd(a){this.a=a}
+function krd(a){this.a=a}
+function lrd(a){this.a=a}
+function Srd(a){this.a=a}
+function Frd(a){this.c=a}
+function xsd(a){this.c=a}
+function ksd(a){this.a=a}
+function Bsd(a){this.a=a}
+function Csd(a){this.a=a}
+function Hsd(a){this.a=a}
+function Wsd(a){this.a=a}
+function osd(a){this.b=a}
+function qsd(a){this.b=a}
+function vtd(a){this.a=a}
+function gud(a){this.a=a}
+function Kwd(a){this.a=a}
+function Dpc(){this.a={}}
+function hm(a){gm(this,a)}
+function GMd(a){fp(this)}
+function APd(){Yqd(this)}
+function QPd(){return ''}
+function HNd(a){return 0}
+function zOd(a){return a}
+function GOd(a,b,c,d,e){}
+function Ag(a,b){yg(b,a)}
+function Ww(a){Yw(a,a.d)}
+function YMd(){YD(this.a)}
+function ZMd(){WD(this.a)}
+function _Md(){rC(this.a)}
+function DOd(){Lg(this.a)}
+function Wp(){this.a=Vp()}
+function oW(){this.b=null}
+function TW(a){a.b=new is}
+function DS(a){a.a=new es}
+function iV(a){a.e=new es}
+function He(a,b){a.a.nb(b)}
+function te(a,b){Hl(a.a,b)}
+function we(a,b){fg(a.a,b)}
+function Sd(a,b){Jd(a.a,b)}
+function zf(a,b){vf(a.a,b)}
+function Cf(a,b){wf(a.a,b)}
+function Bf(a,b){zf(a.b,b)}
+function Ck(a,b){Hk(a.b,b)}
+function wk(a,b){Lr(a.a,b)}
+function FA(a,b){JA(a.a,b)}
+function IL(a,b){ML(a.a,b)}
+function mN(a,b){yN(a.e,b)}
+function yN(a,b){vN(a.b,b)}
+function BN(a,b){kN(a.b,b)}
+function iS(a,b){Ji(a.b,b)}
+function W_(a,b){lt(a.b,b)}
+function V_(a,b){lt(a.a,b)}
+function u2(a,b){Gl(a.a,b)}
+function Mk(a,b){a.a.Mc(b)}
+function Mub(a){a.d=Eub(a)}
+function ijc(b,a){b.id=a}
+function alc(b,a){b.alt=a}
+function clc(b,a){b.src=a}
+function pjc(b,a){b.href=a}
+function Pgc(b,a){b.font=a}
+function hoc(b,a){b.rows=a}
+function I8c(a){return a.e}
+function EOd(){return RAd}
+function JOd(){return mJd}
+function KOd(){return pJd}
+function BOd(a){return a.o}
+function INd(a){return 7.5}
+function FNd(){return true}
+function WMd(){return this}
+function UMd(){return null}
+function kuc(){return null}
+function Zd(){Yd(this,null)}
+function mNd(a){QK(this,a)}
+function nNd(a){RK(this,a)}
+function xMd(a){Hi(this.a)}
+function EPd(){this.a.Tc()}
+function nf(){this.a=new xf}
+function al(){this.a=new es}
+function Ik(){this.b=new Yi}
+function is(){es.call(this)}
+function mt(){es.call(this)}
+function ti(){Tc.call(this)}
+function $y(){By.call(this)}
+function LA(){KA.call(this)}
+function MA(){KA.call(this)}
+function NA(){KA.call(this)}
+function q2(){M1.call(this)}
+function v2(){M1.call(this)}
+function LV(){this.a=new is}
+function wB(){this.a=new es}
+function OJ(){this.a=new es}
+function Y6(){this.a=new es}
+function E7(){this.a=new es}
+function O7(){this.j=new es}
+function B4(a){this.a=f2(a)}
+function j6(a){this.a=f2(a)}
+function ns(a){return ms(a)}
+function Ws(a){return Xs(a)}
+function zm(a,b){oed(a.d,b)}
+function Hr(a,b){Kqd(a.b,b)}
+function K1(a,b){wVb(a.a,b)}
+function s2(a,b){CWb(a.a,b)}
+function Ccb(a,b){Wr(a.a,b)}
+function sdb(a,b){Wr(a.r,b)}
+function udb(a,b){Wr(a.v,b)}
+function Sdb(a,b){_r(a.w,b)}
+function K4b(a,b){_r(a.b,b)}
+function ERb(a,b){Wr(a.b,b)}
+function xwb(a,b){Ht(a.b,b)}
+function fDb(a,b){rl(a.a,b)}
+function nIb(a,b){zw(a.o,b)}
+function Ldd(a,b){Cg(a.p,b)}
+function Ged(a,b){Eg(a.b,b)}
+function zKb(a,b){a.a.ob(b)}
+function jid(a,b){a.a.Mo(b)}
+function rjc(b,a){b.width=a}
+function aXb(a){_Wb(this,a)}
+function K8(){y8.call(this)}
+function N8(){y8.call(this)}
+function P8(){y8.call(this)}
+function LPd(a){wud(this,a)}
+function Ihc(a){Hhc=a;eic()}
+function Ghc(){this.a=Ohc()}
+function Qtd(){this.a=Ltd()}
+function Hoc(){this.c=++Goc}
+function Sb(){this.a=new ntd}
+function ak(){this.a=new ltd}
+function It(){this.a=new ltd}
+function KA(){this.a=new ltd}
+function yu(){this.a=new wtd}
+function FQ(a){EQ();this.a=a}
+function cf(a){bf();return a}
+function aNd(a){return null}
+function GNd(a){return true}
+function xNd(){return false}
+function y8(){this.a=new ltd}
+function FR(){this.a=new yod}
+function ocb(){this.a=new es}
+function Dcb(){this.a=new es}
+function $fb(){this.a=new es}
+function Wfb(a,b){Zfb(b,a.a)}
+function Xfb(a,b){Zfb(b,a.b)}
+function Qdb(a,b){Leb(a.a,b)}
+function emb(a,b){zub(a.a,b)}
+function Kjb(a,b){yqd(a.a,b)}
+function _gb(a,b){ptd(a.d,b)}
+function xkb(a,b){Bkb(a.c,b)}
+function bvb(a,b){ivb(a.b,b)}
+function Bxb(a,b){wxb(a.a,b)}
+function oH(a,b){yQ(a.o.f,b)}
+function lO(a,b){yQ(a.c.f,b)}
+function Rn(a,b){a.a.O.Nb(b)}
+function gDb(a,b){Ugd(a.a,b)}
+function qDb(a,b){nDb(a.a,b)}
+function REb(a,b){elc(a.a,b)}
+function QHb(a,b){ptd(a.a,b)}
+function pLb(a,b){zKb(a.a,b)}
+function wSb(a,b){HSb(a.a,b)}
+function xSb(a,b){JSb(a.b,b)}
+function ySb(a,b){JSb(a.a,b)}
+function gD(a){yE(bD(a),a.b)}
+function OL(a){a.a&&(a.b=-1)}
+function bXb(a,b){odb(a.a,b)}
+function M3b(a,b){a.b=mnd(b)}
+function Ivb(){this.a=new es}
+function m9b(){this.a=new es}
+function bDb(){this.a=new tp}
+function pDb(){this.c=new is}
+function F$b(){this.a=new By}
+function bdd(){this.b=new es}
+function Bad(){Bad=p9c;Had()}
+function Phd(){Phd=p9c;Thd()}
+function $yb(){Mn.call(this)}
+function CBb(){Mn.call(this)}
+function ICb(){Tc.call(this)}
+function mQb(){Tc.call(this)}
+function LSb(){Tc.call(this)}
+function Sjd(){Sjd=p9c;Rjd()}
+function vMd(){Ch(this,null)}
+function _ud(){this.a=new es}
+function Cwd(a,b){a.length=b}
+function qjc(b,a){b.height=a}
+function Cpc(a,b,c){a.a[b]=c}
+function Qdc(a,b){ejc(b,a.a)}
+function phd(a,b){Eid(b,a.e)}
+function Aid(a,b){HEb(a.a,b)}
+function Bid(a,b){IEb(a.a,b)}
+function EMd(a){Hi(this.a.f)}
+function FMd(a){Hi(this.a.k)}
+function gNd(a){Jl(this,a.c)}
+function wNd(a){AP(this,a.c)}
+function fNd(a){return false}
+function CNd(){return this.e}
+function LNd(){return this.f}
+function NNd(){return this.r}
+function AMd(){return this.a}
+function BMd(){return this.d}
+function IMd(){return this.n}
+function JMd(){return this.i}
+function KMd(){return this.b}
+function VMd(){return this.c}
+function aOd(){return this.k}
+function FOd(){return this.q}
+function OOd(){return this.o}
+function POd(){return this.p}
+function QOd(){return this.s}
+function SOd(){return this.u}
+function UOd(){return this.C}
+function VOd(){return this.t}
+function cPd(){return this.j}
+function $hd(a){return ':'+a}
+function nOd(a){return a.$()}
+function As(a,b){return a?a:b}
+function XNd(a){Wr(this.a,a)}
+function LOd(a){Bf(this.a,a)}
+function oOd(a){Ii(this.a,1)}
+function HOd(a){this.a.ob(a)}
+function IOd(a){this.a.tb(a)}
+function vd(a){this.gb(Cyd,a)}
+function AC(a){uVb(a.c.C,a.a)}
+function Lt(a,b){mqc(a.b,b,a)}
+function KE(a,b){b.vm(a._l())}
+function elb(){blb.call(this)}
+function xgb(){$fb.call(this)}
+function EKb(){qKb.call(this)}
+function A1b(){uTb.call(this)}
+function dbb(){this.a=new yod}
+function ccb(){this.a=new ltd}
+function xcb(){this.a=new ltd}
+function Tib(){this.a=new ltd}
+function Hkb(){this.a=new ltd}
+function mub(){this.a=new ltd}
+function JKb(){this.a=new ltd}
+function eJb(){this.a=new _td}
+function I9c(){this.a=new yod}
+function Iqc(){this.a=new Cqc}
+function Pbd(){this.b=new Rbd}
+function Sgc(b,a){b.lineCap=a}
+function elc(b,a){b.checked=a}
+function hlc(b,a){b.htmlFor=a}
+function Mgc(b,a){b.rotate(a)}
+function zic(a){return a.Gc()}
+function mec(a){En(this,a.id)}
+function Ioc(){Hoc.call(this)}
+function ged(){wdc.call(this)}
+function Ned(){wdc.call(this)}
+function rhd(){shd.call(this)}
+function wkd(){qkd.call(this)}
+function ykd(){qkd.call(this)}
+function mmd(){kmd.call(this)}
+function mtd(){Oqd.call(this)}
+function ntd(){Oqd.call(this)}
+function ltd(){Nqd.call(this)}
+function kmd(){mQb.call(this)}
+function and(){mQb.call(this)}
+function dnd(){mQb.call(this)}
+function tnd(){mQb.call(this)}
+function Fod(){mQb.call(this)}
+function Isd(){mQb.call(this)}
+function Msd(){mQb.call(this)}
+function Eud(){mQb.call(this)}
+function wtd(){Nqd.call(this)}
+function std(){this.a=new ltd}
+function ttd(){this.a=new mtd}
+function _vd(){this.a=new ltd}
+function Nvd(){this.a=new rvd}
+function eNd(a){Oe(a.a.p,a.b)}
+function sMd(a){return a.ab()}
+function yPd(a){return Nld(a)}
+function IPd(a){return this.a}
+function PNd(a,b){return null}
+function Hnd(a,b){return a===b}
+function dg(a,b){hjc(a.xb(),b)}
+function _g(a,b){Eg(a,b);Tg(a)}
+function Jg(){Jg=p9c;Ig=E8c()}
+function Xj(){Xj=p9c;Tj=new Wj}
+function rp(){rp=p9c;op=new qp}
+function xp(){xp=p9c;up=new wp}
+function Up(){Up=p9c;Pp=new Rp}
+function dq(){dq=p9c;_p=new bq}
+function ct(){this.b=(gt(),ft)}
+function ul(a){tl.call(this,a)}
+function Uc(a){Rc.call(this,a)}
+function Wc(a){Uc.call(this,a)}
+function Yc(a){Wc.call(this,a)}
+function Ce(a){ze.call(this,a)}
+function Ge(a){ze.call(this,a)}
+function js(a){gs.call(this,a)}
+function $t(a){Yt.call(this,a)}
+function mu(a){Mt.call(this,a)}
+function Cu(a){Mt.call(this,a)}
+function Cy(a){by.call(this,a)}
+function mOd(a){xSb(this.a,a)}
+function eG(a){a.b=true;a.ic()}
+function oA(a){a.Wf();a.n.Uf()}
+function oG(a,b){a.a.a.a.kg(b)}
+function mG(a,b){a.a.a.a.fg(b)}
+function nG(a,b){a.a.a.a.gg(b)}
+function pG(a,b){a.a.a.a.hg(b)}
+function qG(a,b){a.a.a.a.lg(b)}
+function rG(a,b){a.a.a.a.mg(b)}
+function uG(a,b){a.a.a.a.ng(b)}
+function wG(a,b){a.a.a.a.og(b)}
+function Yr(a,b){return a.a[b]}
+function YO(a){$G.call(this,a)}
+function QO(a){$G.call(this,a)}
+function dH(a){$G.call(this,a)}
+function dP(a){$G.call(this,a)}
+function cJ(a){$G.call(this,a)}
+function MK(a){$G.call(this,a)}
+function DM(a){$G.call(this,a)}
+function KN(a){$G.call(this,a)}
+function NW(a){return JW(CW,a)}
+function OW(a){return JW(DW,a)}
+function PW(a){return JW(EW,a)}
+function o6(a,b){!!b&&N2b(a,b)}
+function p6(a,b){!!b&&K2b(a,b)}
+function $W(a,b){ZW(a,b.a,b.b)}
+function F$(a,b){b.uf(a.a,a.b)}
+function Xub(a,b){mqc(a.a,b,a)}
+function jQ(a,b,c){qQ(a.a,b,c)}
+function aGb(a,b){HEb(a.a.a,b)}
+function fGb(a,b,c){eGb(a,b,c)}
+function yHb(a,b){Ugd(a.e,b.k)}
+function RKb(a,b){a.a=b;QKb(a)}
+function SVb(a,b){vqc(a.b,b,a)}
+function Q2b(a,b){!!b&&(a.k=b)}
+function Owb(a){!!a.b&&Lg(a.b)}
+function O3b(a,b){a.c=b;vTb(a)}
+function Q8(a){S7.call(this,a)}
+function i7b(a){h7b();this.a=a}
+function l7b(a){k7b();this.a=a}
+function o7b(a){n7b();this.a=a}
+function r7b(a){q7b();this.a=a}
+function x7b(a){w7b();this.a=a}
+function A7b(a){z7b();this.a=a}
+function D7b(a){C7b();this.a=a}
+function dib(a){cib();this.a=a}
+function zbc(a){wbc();this.a=a}
+function Tgc(b,a){b.lineJoin=a}
+function glc(b,a){b.disabled=a}
+function ljc(b,a){b.tabIndex=a}
+function Fjc(a,b,c){a.add(b,c)}
+function Cjd(a,b){Fjd(a,b,a.c)}
+function Pud(a){Lud();this.a=a}
+function yMd(a){Ii(this.a,500)}
+function CMd(a){this.a.c=false}
+function dvd(a){a.b=null;a.c=0}
+function DMd(){return this.b.a}
+function KNd(){return this.c.a}
+function MNd(){return this.c.c}
+function UNd(){return this.a.a}
+function rNd(){return YM(this)}
+function BNd(){return pS(this)}
+function ZNd(){return 'M RBC'}
+function $Nd(){return 'M SUB'}
+function _Nd(){return 'M UNS'}
+function vOd(){return this.b.b}
+function MOd(){return this.a.c}
+function _Od(){return !!this.b}
+function Ot(){Ot=p9c;Nt=new Vt}
+function yt(){yt=p9c;xt=new zt}
+function NS(){NS=p9c;MS=new rT}
+function lW(){lW=p9c;kW=new oW}
+function xX(){xX=p9c;wX=new yX}
+function a_(){a_=p9c;_$=new b_}
+function _d(){_d=p9c;$d=new Hoc}
+function ce(){ce=p9c;be=new Hoc}
+function Bi(){Bi=p9c;Ai=new Hoc}
+function Pw(){Pw=p9c;Ow=new Ioc}
+function aF(){aF=p9c;_E=new Hoc}
+function dF(){dF=p9c;cF=new Hoc}
+function gF(){gF=p9c;fF=new Ioc}
+function mF(){mF=p9c;lF=new Hoc}
+function xgd(){xgd=p9c;new ltd}
+function EQ(){EQ=p9c;DQ=new Hoc}
+function bC(a){this.a=new gs(a)}
+function gx(a){Ry(a.b);a.a=null}
+function U$(a,b){return a.a=b,a}
+function Rf(a){return abd(),a.U}
+function LZ(a){return GX(a,a.i)}
+function yn(a){return a.b?a.c:0}
+function vN(a,b){a.b=true;a.c=b}
+function Q1(a,b){a.n=_0b(b,a.n)}
+function V1(a,b){a.n=c1b(b,a.n)}
+function VNd(a,b){s3(this,a,b)}
+function l9(a,b){f9(b)&&m9(a,b)}
+function o9(a,b){g9(b)&&p9(a,b)}
+function o5(a,b){Wr(a.a,mnd(b))}
+function Rb(a,b,c){Hqd(a.a,b,c)}
+function Vr(a,b,c){zwd(a.a,b,c)}
+function Pt(a,b,c){Ytd(a.c,b,c)}
+function aU(a,b,c){Qsd(a.b,b,c)}
+function _Fb(a,b){YFb(this,a,b)}
+function $Jb(a){Yt.call(this,a)}
+function fab(a){S7.call(this,a)}
+function nQb(a){Uc.call(this,a)}
+function MSb(a){Uc.call(this,a)}
+function k0b(a){P1.call(this,a)}
+function YPb(a){TPb();Wr(SPb,a)}
+function v5b(a){O5b(a.a,r5b(a))}
+function pxb(a){Lg(a.a);xm(a.a)}
+function BWb(a,b){a.d=b;Rt(b.a)}
+function d$b(a){a.b=(p$b(),n$b)}
+function o9b(a){!!a&&(this.a=a)}
+function Roc(a){!!a.a&&slc(a.a)}
+function arc(a){Uc.call(this,a)}
+function r7(a){this.c=new ss(a)}
+function _5(a){this.a=new H7(a)}
+function UEb(){this.a=Nkc($doc)}
+function Xhd(){Zhd.call(this,2)}
+function bmd(a){Uc.call(this,a)}
+function _md(a){Rc.call(this,a)}
+function vqd(a){Uc.call(this,a)}
+function Ogc(b,a){b.fillStyle=a}
+function Ugc(b,a){b.lineWidth=a}
+function DPb(b,a){b[b.length]=a}
+function qMd(a){return this===a}
+function rrd(a){return a.b==a.c}
+function jvd(a){return !!a&&a.b}
+function WNd(){return kcc(),Wbc}
+function YNd(){return kcc(),Tbc}
+function uOd(){return kcc(),hcc}
+function HPd(){return Xrd(),Wrd}
+function rMd(){return Zwd(this)}
+function MPd(){return V(this.a)}
+function Jnd(a,b){return b.Ep(a)}
+function Oe(a,b){Se(a.a,b);Qe(a)}
+function $f(a,b){_f(a,(abd(),b))}
+function Jad(a,b){qjc(a.Un(),b)}
+function Kad(a,b){rjc(a.Un(),b)}
+function Lgd(a,b){Tgd(a,b,b,-1)}
+function $Qb(a,b,c){Xz(a.b,b,c)}
+function mm(a,b){Eg(a.q,b);Tg(a)}
+function Bwd(a,b){a.splice(b,1)}
+function No(a,b){Oo((abd(),a),b)}
+function sOd(a){pxb(new qxb(a))}
+function sk(a){this.a=new Srd(a)}
+function gi(a){this.a=a;this.b=0}
+function kt(a){this.a=a;this.b=0}
+function Rm(a){this.b=a;this.a=0}
+function Whc(){Whc=p9c;Vhc=$wnd}
+function YJ(a){this.b=a;this.a=0}
+function Pj(a){a.a.yc()||jj(a.a)}
+function GG(a,b){a.c=b;s5(a.c,a)}
+function Su(a,b){a.w=b;a.w.If(a)}
+function WG(a,b){a.rg(b);a.sg(b)}
+function VZ(a,b){a.si(b,a.c,a.a)}
+function zQ(a,b){vqc(a.a,b,null)}
+function M4(a,b){Jqd(a.a,mnd(b))}
+function bcb(a,b,c){Iqd(a.a,b,c)}
+function whb(a,b,c){Hqd(a.e,b,c)}
+function Tt(a,b,c){St(a,b).Sd(c)}
+function vu(a,b,c){xu(a,b).od(c)}
+function OU(a,b,c){a.f+=b;a.i+=c}
+function Jjb(a,b,c){Psd(a.a,b,c)}
+function Hjb(a){a.a=new Tsd(qLc)}
+function Vib(a){Ffb.call(this,a)}
+function Xib(a){Ffb.call(this,a)}
+function flb(a){clb.call(this,a)}
+function Lm(){ol();Vl.call(this)}
+function Am(){Jg();Bm.call(this)}
+function Hj(){hj();Cj.call(this)}
+function lzb(a){wyb.call(this,a)}
+function zzb(a){wyb.call(this,a)}
+function Ymb(a){a.apply(null,[])}
+function wmb(a){Slb(a.b,a.a,cHd)}
+function rqb(a){tqb(a.a.a,a.a.c)}
+function hIb(a,b){cJb(a.i,a.b,b)}
+function dwb(a,b){qkc(a.a,tFd,b)}
+function XJb(a,b){QJb(b,a.c,a.d)}
+function Kdc(a,b){gjc(b,_zd,a.a)}
+function DWb(a,b,c){Iqd(a.f,b,c)}
+function z0b(a,b,c){Hqd(a.b,b,c)}
+function A0b(a,b,c){Hqd(a.c,b,c)}
+function Ngc(c,a,b){c.scale(a,b)}
+function Nec(a){Sdc.call(this,a)}
+function Tdc(a){Sdc.call(this,a)}
+function $hc(a,b){a.c=b;return a}
+function Ojc(a){ujc();return a|0}
+function Xhc(a,b){Whc();a.text=b}
+function o8b(a,b){return a*a+b*b}
+function ebc(a){return a.b.b+a.a}
+function B6(a){return a!=0?4-a:0}
+function Eqc(a){Dqc.call(this,a)}
+function Lqc(a){Jqc.call(this,a)}
+function Prc(a){Lrc.call(this,a)}
+function Utc(a){nQb.call(this,a)}
+function Vtc(a){pQb.call(this,a)}
+function Ddd(a){Lqc.call(this,a)}
+function Ccd(a,b){a.__listener=b}
+function Qfd(a){Nfd.call(this,a)}
+function Xfd(a,b){Cfd(a,b);--a.b}
+function ied(a){return abd(),a.a}
+function Yhd(a){Zhd.call(this,a)}
+function Hkd(a){nQb.call(this,a)}
+function Okd(a){Kkd.call(this,a)}
+function Qkd(a){Okd.call(this,a)}
+function Rkd(a){Okd.call(this,a)}
+function Skd(a){Rkd.call(this,a)}
+function Tkd(a){Skd.call(this,a)}
+function Ukd(a){Rkd.call(this,a)}
+function Zkd(a){Okd.call(this,a)}
+function bld(a){Okd.call(this,a)}
+function gld(a){Okd.call(this,a)}
+function jld(a){Kkd.call(this,a)}
+function lld(a){jld.call(this,a)}
+function mld(a){Okd.call(this,a)}
+function fkd(){fkd=p9c;ekd=hkd()}
+function abd(){abd=p9c;$ad=A8c()}
+function Zbd(){Zbd=p9c;Vbd=B8c()}
+function Kdd(){Kdd=p9c;Jdd=C8c()}
+function old(){old=p9c;nld=G8c()}
+function ujc(){ujc=p9c;tjc=z8c()}
+function Khc(){Khc=p9c;Jhc=new S}
+function FGb(){FGb=p9c;EGb=IGb()}
+function F4(){E4();this.a=new l4}
+function z3(){y3();this.a=new $3}
+function jmd(a){nQb.call(this,a)}
+function lmd(a){nQb.call(this,a)}
+function bnd(a){nQb.call(this,a)}
+function end(a){nQb.call(this,a)}
+function und(a){nQb.call(this,a)}
+function cnd(a){pQb.call(this,a)}
+function God(a){nQb.call(this,a)}
+function Aod(a){imd.call(this,a)}
+function Bod(a){lmd.call(this,a)}
+function nmd(a){lmd.call(this,a)}
+function And(a){bnd.call(this,a)}
+function Asd(a){ysd.call(this,a)}
+function ysd(a){osd.call(this,a)}
+function Dsd(a){vsd.call(this,a)}
+function xvd(a){jrd.call(this,a)}
+function Lwd(a){Kwd.call(this,a)}
+function Fud(a){nQb.call(this,a)}
+function ood(){imd.call(this,'')}
+function pod(){imd.call(this,'')}
+function yod(){imd.call(this,'')}
+function zod(){imd.call(this,'')}
+function ONd(){return EZ(this.c)}
+function lPd(){return ot(this.a)}
+function Imd(a){return a.e&&a.e()}
+function xc(a){return a<=0||a>111}
+function Oj(a,b){return ij(a.a,b)}
+function Qj(a,b){return a.a.Bc(b)}
+function Rj(a,b){return a.a.Cc(b)}
+function Xk(a,b){return Yr(a.a,b)}
+function Wg(a,b){!!a.u&&_r(a.u,b)}
+function eg(a,b,c){kg(a.xb(),b,c)}
+function Gg(a){_f(this,(abd(),a))}
+function tl(a){_f(this,(abd(),a))}
+function sl(a){nl.Fo((abd(),a.U))}
+function pj(a){wic((pic(),oic),a)}
+function pNd(a){az(this.o.i.A,a)}
+function Jmd(a){Hmd(a);return a.p}
+function Htd(){Htd=p9c;Gtd=Jtd()}
+function Ttd(){throw I8c(new Fod)}
+function _x(a,b){return Or(a.w,b)}
+function Yx(a,b){return Or(a.q,b)}
+function $x(a,b){return Or(a.u,b)}
+function ay(a,b){return Or(a.B,b)}
+function ty(a,b){return Or(a.A,b)}
+function sy(a,b){return _r(a.A,b)}
+function qy(a,b){return _r(a.s,b)}
+function ry(a,b){return _r(a.u,b)}
+function yy(a,b){return Or(a.C,b)}
+function V$(a,b){return U$(a.a,b)}
+function _V(a,b){return a.a.Uh(b)}
+function GX(a,b){return a.u.ce(b)}
+function Veb(a){return a?a.c:null}
+function J8(a){return Xtd(I8(),a)}
+function Hp(a,b){Ip(a,b,fxb(a.a))}
+function DJ(a,b){!!a.c&&(a.b=b.c)}
+function Oo(a,b){a.style[JAd]=b.a}
+function Vxd(a,b){Sxd();a[lMd]=b}
+function dCb(a,b){a.c=b;a.b=false}
+function WHb(a,b){vqc(a.e,b,null)}
+function HIb(a,b){Pgc(a.a.el(),b)}
+function yLb(a,b){this.a=nLb(a,b)}
+function ymb(a){this.a=new Ekb(a)}
+function tnb(a){this.a=new unb(a)}
+function bB(){this.a=new Tsd(RXc)}
+function kS(){this.b=new lS(this)}
+function ebb(a){this.b=a;this.a=0}
+function QRb(a){Lg(a.b);sl(a.f.a)}
+function Qyb(a){Pyb(a);return a.j}
+function NWb(a,b){PWb(a,OWb(a,b))}
+function bPb(b,a){b.cpkColoring=a}
+function dPb(b,a){b.circledsign=a}
+function ePb(b,a){b.displayMode=a}
+function TPb(){TPb=p9c;SPb=new es}
+function oub(){oub=p9c;nub=new es}
+function co(){eo.call(this,false)}
+function cec(){Ldc.call(this,TJd)}
+function aec(){Ldc.call(this,RJd)}
+function bec(){Ldc.call(this,SJd)}
+function Aec(){Ldc.call(this,UJd)}
+function Bec(){Ldc.call(this,VJd)}
+function Cec(){Ldc.call(this,WJd)}
+function Eec(){Ldc.call(this,XJd)}
+function Fec(){Ldc.call(this,YJd)}
+function Oec(){Ldc.call(this,ZJd)}
+function Odc(){Ldc.call(this,NJd)}
+function Ndc(){Ldc.call(this,MJd)}
+function Ydc(){Ldc.call(this,OJd)}
+function Zdc(){Ldc.call(this,PJd)}
+function $dc(){Ldc.call(this,QJd)}
+function Sec(){Ldc.call(this,$Jd)}
+function dec(){Ldc.call(this,rAd)}
+function pgc(){Ldc.call(this,aAd)}
+function fgc(){Ldc.call(this,nJd)}
+function igc(){Ldc.call(this,_Jd)}
+function Igc(c,a,b){c.lineTo(a,b)}
+function Kgc(c,a,b){c.moveTo(a,b)}
+function quc(a,b){return Qmd(a,b)}
+function huc(a){return new Ztc(a)}
+function juc(a){return new puc(a)}
+function ttc(a){return a[4]||a[1]}
+function $md(a){return Cnd(),''+a}
+function scd(a){!!ocd&&lqc(ocd,a)}
+function slc(a){(ujc(),tjc).Bn(a)}
+function ojc(a){a=bod(a);return a}
+function mod(a,b){a.a+=b;return a}
+function sod(a,b){return a.a+=b,a}
+function rsd(a,b){return T(a.a,b)}
+function Dwd(a,b){return wuc(a,b)}
+function Oxd(a,b,c){return b(a,c)}
+function HMd(a){return ds(this,a)}
+function LMd(a){return mx(this,a)}
+function MMd(a){return nx(this,a)}
+function NMd(a){return px(this,a)}
+function OMd(a){return rx(this,a)}
+function PMd(a){return tx(this,a)}
+function RMd(a){return zx(this,a)}
+function pad(){qad.call(this,0,0)}
+function dOd(){return dsd(this.q)}
+function eOd(){return dsd(this.r)}
+function fOd(){return dsd(this.s)}
+function gOd(){return dsd(this.t)}
+function hOd(){return dsd(this.u)}
+function iOd(){return dsd(this.w)}
+function jOd(){return dsd(this.A)}
+function TOd(){return dsd(this.n)}
+function bPd(){return dsd(this.a)}
+function mPd(){return dxd(this.a)}
+function xPd(){return zld(this.a)}
+function CPd(){return this.a.vd()}
+function DPd(){return this.a.Rc()}
+function bNd(){f0b(this.b,this.a)}
+function cNd(){a0b(this.b,this.a)}
+function PPd(){return s9c(this.a)}
+function KPd(){return s9c(this.b)}
+function GPd(){throw I8c(new Eud)}
+function zMd(){throw I8c(new Fod)}
+function Pvd(a){this.a=new svd(a)}
+function Gd(a,b){this.a=a;this.b=b}
+function fe(a,b){this.a=a;this.b=b}
+function ge(a,b){this.b=a;this.a=b}
+function qe(a,b){this.b=a;this.a=b}
+function se(a,b){this.b=a;this.a=b}
+function gc(a,b){this.j=a;this.k=b}
+function Ke(a,b){this.b=a;this.a=b}
+function Le(a,b){this.b=a;this.a=b}
+function oc(a,b){gc.call(this,a,b)}
+function gg(a,b){mg((abd(),a.U),b)}
+function Of(a,b){kg(a.xb(),b,true)}
+function iid(a){a.P&&a.a.Lo(true)}
+function fdd(a){kdd(a.a);a.a=null}
+function Ie(a,b,c){a.a=b;a.a.nb(c)}
+function qg(a,b){!!a.R&&oqc(a.R,b)}
+function Nh(a,b){this.a=a;this.b=b}
+function Ph(a,b){this.a=a;this.b=b}
+function Qh(a,b){this.a=a;this.b=b}
+function hi(a,b){this.a=a;this.b=b}
+function ni(a,b){this.a=a;this.b=b}
+function uk(a,b){this.a=a;this.b=b}
+function vk(a,b){this.a=a;this.b=b}
+function Pk(a,b){this.b=a;this.a=b}
+function Sh(a,b){this.b=a;this.a=b}
+function ui(a,b){this.b=b;this.a=a}
+function bl(a,b){this.a=a;this.b=b}
+function yj(a,b){gc.call(this,a,b)}
+function Ym(a,b){gc.call(this,a,b)}
+function on(a,b){gc.call(this,a,b)}
+function Gn(a,b){this.b=a;this.a=b}
+function _j(a,b){return Cqd(a.a,b)}
+function to(a,b){return Djd(a.i,b)}
+function un(a){return a.b?a.f:null}
+function Mm(a){Fm(a.a);a.a.c=false}
+function Mp(a,b){this.a=a;this.b=b}
+function pq(a,b){this.a=a;this.b=b}
+function wt(a,b){this.b=a;this.a=b}
+function Du(a,b){this.b=a;this.a=b}
+function du(a,b){gc.call(this,a,b)}
+function ht(a,b){gc.call(this,a,b)}
+function ev(a,b){gc.call(this,a,b)}
+function jz(a,b){gc.call(this,a,b)}
+function tz(a,b){gc.call(this,a,b)}
+function Mz(a,b){gc.call(this,a,b)}
+function lA(a,b){gc.call(this,a,b)}
+function _A(a,b){return Nsd(a.a,b)}
+function aB(a,b){return Osd(a.a,b)}
+function hw(a,b){return tIb(a.a,b)}
+function TB(a,b){this.b=a;this.a=b}
+function UC(a,b){this.b=a;this.a=b}
+function GE(a,b){this.b=a;this.a=b}
+function eE(a,b){this.c=a;this.b=b}
+function SB(a,b){this.a=a;this.b=b}
+function oF(a,b){this.a=a;this.b=b}
+function qF(a,b){oF.call(this,a,b)}
+function rF(a,b){oF.call(this,a,b)}
+function sF(a,b){oF.call(this,a,b)}
+function xF(a,b){oF.call(this,a,b)}
+function ZE(a,b){gc.call(this,a,b)}
+function BF(a,b){this.a=a;this.b=b}
+function IF(a,b){this.a=a;this.b=b}
+function hJ(a,b){this.a=a;this.b=b}
+function QJ(a,b){this.b=a;this.a=b}
+function EF(a,b){this.b=a;this.a=b}
+function KL(a,b){this.b=a;this.a=b}
+function _I(a,b){this.a=b;this.c=a}
+function wM(a,b){this.a=a;this.c=b}
+function TN(a,b){this.a=a;this.b=b}
+function UK(a,b){TK.call(this,a,b)}
+function vM(a,b){TK.call(this,a,b)}
+function pO(a,b){this.a=a;this.b=b}
+function qO(a,b){this.a=a;this.b=b}
+function yO(a,b){this.a=a;this.b=b}
+function zO(a,b){this.a=a;this.b=b}
+function GL(a,b){Dx(a.a);qx(a.a,b)}
+function BO(a,b){return Eqd(a.b,b)}
+function hO(a,b){return dtd(a.d,b)}
+function ZS(a,b){return Xtd(a.d,b)}
+function bT(a,b){return Eqd(a.i,b)}
+function iT(a,b){return Eqd(a.u,b)}
+function bO(a){return a==43||a==45}
+function bW(a,b){this.b=a;this.a=b}
+function BW(a,b){this.b=a;this.a=b}
+function RW(a,b){this.b=a;this.a=b}
+function tQ(a,b){this.a=a;this.b=b}
+function $X(a,b){this.a=a;this.b=b}
+function jX(a,b){this.c=a;this.b=b}
+function wY(a,b){this.e=b;this.c=a}
+function AZ(a,b){this.a=a;this.b=b}
+function UZ(a,b){this.a=a;this.b=b}
+function p$(a,b){this.b=b;this.a=a}
+function G$(a,b){this.a=b;this.b=a}
+function X$(a,b){this.a=a;this.b=b}
+function fQ(a,b){gc.call(this,a,b)}
+function B_(a,b){gc.call(this,a,b)}
+function R0(a,b){gc.call(this,a,b)}
+function xZ(a,b){wY.call(this,a,b)}
+function Y_(a,b){this.b=a;this.a=b}
+function O1(a,b){this.b=a;this.a=b}
+function m3(a,b){this.b=a;this.a=b}
+function o3(a,b){this.b=a;this.a=b}
+function E3(a,b){this.a=a;this.b=b}
+function C4(a,b){this.a=a;this.b=b}
+function _4(a,b){this.b=a;this.a=b}
+function Y9(a,b){gc.call(this,a,b)}
+function T1(a,b){return Eqd(a.p,b)}
+function Ddb(a,b){return _r(a.p,b)}
+function Fdb(a,b){return _r(a.t,b)}
+function ZX(a){return kbc(a.a,a.b)}
+function S5(a,b){return Vnd(b,a.a)}
+function Kdb(a){Jdb.call(this,a,a)}
+function Ghb(a,b){Iib(a.n.c,a.f,b)}
+function _hb(a,b,c){eld(a.a.f,b,c)}
+function Qgc(b,a){b.globalAlpha=a}
+function Vgc(b,a){b.strokeStyle=a}
+function Ojb(a){Hjb(this);this.a=a}
+function Wgb(){Sgb();this.a=new es}
+function Sgb(){Sgb=p9c;Rgb=new Tgb}
+function Ucb(){Ucb=p9c;Tcb=new $cb}
+function cib(){cib=p9c;bib=new fjb}
+function Cnd(){Cnd=p9c;Bnd=new lod}
+function axb(){axb=p9c;_wb=new cxb}
+function fjd(){fjd=p9c;ol();rjd()}
+function i9c(){g9c==null&&(g9c=[])}
+function Fib(a){Gib.call(this,a,0)}
+function blb(){clb.call(this,null)}
+function $mb(a){Wmb(this);this.a=a}
+function Pub(a){a.b.qe();Ww(a.a.b)}
+function nrb(a){!!a.b.i&&$v(a.b.i)}
+function Wvb(a,b){return q3(a.c,b)}
+function mDb(a,b){nDb(a,hs(a.c,b))}
+function IEb(a,b){HEb(a,a.b.Id(b))}
+function AAb(a,b,c){BAb(a,a.b,b,c)}
+function eHb(a){this.f=a;aHb(this)}
+function wo(){this.i=new Ijd(this)}
+function bxb(a){return !a?'':zS(a)}
+function aFb(){aFb=p9c;ZEb=new _Eb}
+function DMb(){DMb=p9c;nMb=new vMb}
+function EMb(){EMb=p9c;oMb=new wMb}
+function FMb(){FMb=p9c;pMb=new xMb}
+function GMb(){GMb=p9c;qMb=new yMb}
+function HMb(){HMb=p9c;rMb=new zMb}
+function IMb(){IMb=p9c;sMb=new AMb}
+function JMb(){JMb=p9c;tMb=new BMb}
+function KMb(){KMb=p9c;uMb=new CMb}
+function XMb(){XMb=p9c;LMb=new RMb}
+function YMb(){YMb=p9c;MMb=new SMb}
+function ZMb(){ZMb=p9c;NMb=new TMb}
+function $Mb(){$Mb=p9c;OMb=new UMb}
+function _Mb(){_Mb=p9c;PMb=new VMb}
+function aNb(){aNb=p9c;QMb=new WMb}
+function kNb(){kNb=p9c;gNb=new iNb}
+function lNb(){lNb=p9c;hNb=new jNb}
+function qNb(){qNb=p9c;mNb=new oNb}
+function rNb(){rNb=p9c;nNb=new pNb}
+function wNb(){wNb=p9c;sNb=new uNb}
+function xNb(){xNb=p9c;tNb=new vNb}
+function ENb(){ENb=p9c;yNb=new BNb}
+function FNb(){FNb=p9c;zNb=new CNb}
+function GNb(){GNb=p9c;ANb=new DNb}
+function VQb(){VQb=p9c;PQb=new SQb}
+function WQb(){WQb=p9c;QQb=new UQb}
+function FUb(){FUb=p9c;EUb=new RUb}
+function Z0b(){Z0b=p9c;Y0b=new $0b}
+function h7b(){h7b=p9c;g7b=new Hoc}
+function k7b(){k7b=p9c;j7b=new Hoc}
+function n7b(){n7b=p9c;m7b=new Hoc}
+function q7b(){q7b=p9c;p7b=new Hoc}
+function t7b(){t7b=p9c;s7b=new Hoc}
+function w7b(){w7b=p9c;v7b=new Hoc}
+function z7b(){z7b=p9c;y7b=new Hoc}
+function C7b(){C7b=p9c;B7b=new Hoc}
+function V9b(){U9b(this,0,0,-1,-1)}
+function LQb(a,b){kHb(new lHb,a,b)}
+function HSb(a,b){a.b.tl(ISb(a,b))}
+function JSb(a,b){a.b.ul(ISb(a,b))}
+function hWb(a,b){return hs(a.o,b)}
+function fXb(a,b){return qy(a.a,b)}
+function Y7b(a,b){return Yr(a.b,b)}
+function I2b(a,b){Jud(b,yJd);a.c=b}
+function L2b(a,b){Jud(b,yJd);a.d=b}
+function fPb(b,a){b.eflowmidline=a}
+function Wgc(b,a){b.textBaseline=a}
+function qkc(c,a,b){c.setData(a,b)}
+function xgc(a){_f(this,(abd(),a))}
+function Wdc(a){Qdc((kgc(),jgc),a)}
+function v9c(b,a){return b.exec(a)}
+function x9c(b,a){return b.test(a)}
+function Xuc(a){return a.l|a.m<<22}
+function Zhc(a){a.a=false;return a}
+function krc(){krc=p9c;jrc=new ltd}
+function wbc(){wbc=p9c;vbc=new Wud}
+function pic(){pic=p9c;oic=new yic}
+function boc(){boc=p9c;aoc=new goc}
+function Lsc(){Lsc=p9c;Ksc=new Osc}
+function Xtc(){Xtc=p9c;Wtc=new Ytc}
+function gcd(){gcd=p9c;fcd=new Ioc}
+function wcd(){wcd=p9c;vcd=new Ioc}
+function rcd(){rcd=p9c;pcd=new hdd}
+function Dod(){Dod=p9c;Cod=new cmd}
+function ncd(){qqc.call(this,null)}
+function ted(a){ued.call(this,a.a)}
+function gdd(a){a.a=jdd();idd(a.a)}
+function ofd(a){_f(this,(abd(),a))}
+function oed(a,b){zed(a.a,b,false)}
+function lsd(a,b){return a.b.qd(b)}
+function msd(a,b){return a.b.rd(b)}
+function nsd(a,b){return a.b.xd(b)}
+function ssd(a,b){return a.a.zd(b)}
+function tsd(a,b){return a.a.Ad(b)}
+function crd(a,b){return a.a.rp(b)}
+function qtd(a,b){return a.a.lp(b)}
+function _hd(a){return a.substr(1)}
+function Mqd(a){return a.d.c+a.e.b}
+function Aqd(a){return !a?null:a.d}
+function vPd(a){return Uhd(this,a)}
+function zPd(){return this.vd()==0}
+function rvd(){svd.call(this,null)}
+function ktd(a){this.c=a;htd(this)}
+function tOd(a){Yyb(this.a,this.b)}
+function xOd(a){ABb(this.a,this.b)}
+function Vgd(a){(abd(),a.U).size=1}
+function ig(a,b){nbd((abd(),a.U),b)}
+function Yf(a,b){kg(a.xb(),b,false)}
+function $n(a,b){Rn(a.b,b);return a}
+function Cp(a){Bp(a);return Kp(a.c)}
+function qu(a,b,c){return pu(a,b,c)}
+function su(a,b,c){return ru(a,b,c)}
+function bh(a,b){a.Yb(new zhd(a,b))}
+function JA(a,b){Hqd(a.a,b,a.Yf(b))}
+function BB(a,b){this.a=new _D(a,b)}
+function UB(a,b){this.a=new _D(a,b)}
+function Vn(a){this.a=new Hg(Tn(a))}
+function Fu(){this.a=new vc(new Hc)}
+function JPd(a){throw I8c(new Fod)}
+function gsd(){gsd=p9c;fsd=new hsd}
+function Fsd(){Fsd=p9c;Esd=new Gsd}
+function Sxd(){Sxd=p9c;Rxd=new Ixd}
+function mj(a){a.Dc();a.d=(xj(),uj)}
+function gu(a){Ot();Ut.call(this,a)}
+function TI(a){wI();$G.call(this,a)}
+function Mi(a){$wnd.clearTimeout(a)}
+function NJ(a,b){Wr(a.a,b);return a}
+function JV(a,b){Xr(a.a,b);return b}
+function Jeb(a,b){this.a=a;this.b=b}
+function Acb(a,b){this.a=a;this.b=b}
+function vbb(a,b){this.b=a;this.a=b}
+function jdb(a,b){this.b=a;this.a=b}
+function geb(a,b){this.b=a;this.a=b}
+function gfb(a,b){this.b=a;this.a=b}
+function kgb(a,b){this.b=a;this.a=b}
+function QL(){this.b=-1;this.a=true}
+function ghb(a,b){this.b=a;this.a=b}
+function vgb(a,b){return ald(a.a,b)}
+function tgb(a,b){return $kd(a.a,b)}
+function Xeb(a,b){return Fqd(a.a,b)}
+function Khb(a,b){return Ehb(a.a,b)}
+function Cfb(a,b){return Nib(a.c,b)}
+function Dfb(a,b){return Pib(a.c,b)}
+function Zgb(a,b){return ugb(a.c,b)}
+function $gb(a,b){return vgb(a.c,b)}
+function Pib(a,b){return ugb(a.b,b)}
+function n8(a,b){return Q7(a.a,b)+1}
+function SS(a,b,c){return a.s.k?c:b}
+function Qib(a,b){this.b=a;this.c=b}
+function smb(a,b){this.b=a;this.a=b}
+function tmb(a,b){this.b=a;this.a=b}
+function umb(a,b){this.b=a;this.a=b}
+function vmb(a,b){this.b=a;this.a=b}
+function xmb(a,b){this.b=a;this.a=b}
+function jmb(a,b){this.a=a;this.b=b}
+function lmb(a,b){this.a=a;this.b=b}
+function mmb(a,b){this.a=a;this.b=b}
+function nmb(a,b){this.a=a;this.b=b}
+function Bmb(a,b){this.a=a;this.b=b}
+function skb(a,b){this.a=a;this.b=b}
+function Jkb(a,b){this.a=a;this.b=b}
+function Ckb(a,b){this.c=a;this.b=b}
+function knb(a,b){this.a=a;this.b=b}
+function Knb(a,b){this.a=a;this.b=b}
+function Pnb(a,b){this.a=a;this.b=b}
+function pob(a,b){this.a=a;this.b=b}
+function tob(a,b){this.a=a;this.b=b}
+function bpb(a,b){this.a=a;this.b=b}
+function xpb(a,b){this.a=a;this.b=b}
+function Upb(a,b){this.a=a;this.b=b}
+function Ypb(a,b){this.a=a;this.b=b}
+function fqb(a,b){this.a=a;this.b=b}
+function Vqb(a,b){this.a=a;this.b=b}
+function grb(a,b){this.a=a;this.b=b}
+function qrb(a,b){this.a=a;this.b=b}
+function jub(a,b){this.a=a;this.b=b}
+function uub(a,b){this.a=a;this.b=b}
+function Sub(a,b){this.a=a;this.b=b}
+function mvb(a,b){this.a=a;this.b=b}
+function Rwb(a,b){this.a=a;this.b=b}
+function Exb(a,b){this.a=a;this.b=b}
+function Nxb(a,b){this.a=a;this.b=b}
+function Pxb(a,b){this.a=a;this.b=b}
+function Jyb(a,b){this.a=a;this.b=b}
+function _yb(a,b){this.a=a;this.b=b}
+function azb(a,b){this.a=a;this.b=b}
+function bzb(a,b){this.a=a;this.b=b}
+function czb(a,b){this.a=a;this.b=b}
+function dzb(a,b){this.a=a;this.b=b}
+function ezb(a,b){this.a=a;this.b=b}
+function qAb(a,b){this.a=a;this.b=b}
+function DBb(a,b){this.a=a;this.b=b}
+function EBb(a,b){this.a=a;this.b=b}
+function FBb(a,b){this.a=a;this.b=b}
+function GBb(a,b){this.a=a;this.b=b}
+function HBb(a,b){this.a=a;this.b=b}
+function IBb(a,b){this.a=a;this.b=b}
+function hrb(a,b){this.b=a;this.c=b}
+function Qwb(a,b){this.b=a;this.a=b}
+function QCb(a,b){this.a=a;this.b=b}
+function CDb(a,b){this.a=a;this.b=b}
+function fEb(a,b){this.a=a;this.b=b}
+function gEb(a,b){this.a=a;this.b=b}
+function eFb(a,b){this.a=a;this.b=b}
+function Djb(a,b){gc.call(this,a,b)}
+function Evb(a,b){gc.call(this,a,b)}
+function Fwb(a,b){gc.call(this,a,b)}
+function XAb(a,b){gc.call(this,a,b)}
+function rFb(a,b){this.a=a;this.b=b}
+function oGb(a,b){this.a=a;this.b=b}
+function pGb(a,b){this.a=a;this.b=b}
+function DGb(a,b){this.a=a;this.b=b}
+function mGb(a,b){this.b=a;this.a=b}
+function pFb(a,b){a.b=b;gg(a.c,!!b)}
+function dBb(a,b){return VBb(a.a,b)}
+function gIb(a,b){return bJb(a.i,b)}
+function rIb(a,b){return DJb(a.j,b)}
+function sIb(a,b){return EJb(a.j,b)}
+function uIb(a,b){return FJb(a.j,b)}
+function vIb(a,b){return GJb(a.j,b)}
+function fIb(a){return aJb(a.i,a.b)}
+function nCb(a){return a.c?null:a.f}
+function fFb(a){return a==60||a==62}
+function Uwb(a){Xwb(a);return !!a.c}
+function cIb(a){kJb(a.k);return a.k}
+function IIb(a,b){Wgc(a.a.el(),b.a)}
+function JHb(a,b,c){Ngc(a.el(),b,c)}
+function NIb(a,b){gc.call(this,a,b)}
+function NKb(a,b){gc.call(this,a,b)}
+function hJb(){iJb.call(this,false)}
+function Fmb(){rlb();Tlb.call(this)}
+function kEb(a){a.f||a.b.ob(lEb(a))}
+function lJb(a,b){mJb(a,_Hb(a.b),b)}
+function oOb(a,b){gc.call(this,a,b)}
+function xKb(a,b){this.b=a;this.a=b}
+function ZKb(a,b){this.b=a;this.a=b}
+function _Kb(a,b){this.b=a;this.a=b}
+function FLb(a,b){this.b=a;this.a=b}
+function MPb(a,b){this.b=a;this.a=b}
+function RPb(a,b){this.b=a;this.a=b}
+function gQb(a,b){this.b=a;this.a=b}
+function KQb(a,b){this.b=a;this.a=b}
+function eQb(a,b){this.a=a;this.b=b}
+function fQb(a,b){this.a=a;this.b=b}
+function fSb(a,b){this.a=a;this.b=b}
+function hSb(a,b){this.a=a;this.b=b}
+function yKb(a,b){this.a=a;this.b=b}
+function HLb(a,b){this.a=a;this.b=b}
+function PNb(a,b){this.a=a;this.b=b}
+function SNb(a,b){this.a=a;this.b=b}
+function $Pb(a,b){this.a=a;this.b=b}
+function NRb(a,b){this.a=a;this.b=b}
+function CSb(a,b){this.a=a;this.b=b}
+function WSb(a,b){this.a=a;this.b=b}
+function iSb(a,b){this.b=a;this.a=b}
+function rSb(a,b){this.b=a;this.a=b}
+function KSb(a,b){this.b=a;this.a=b}
+function bTb(a,b){this.b=a;this.a=b}
+function _Ub(a,b){this.b=a;this.c=b}
+function vSb(a,b){this.b=b;this.a=a}
+function oQb(a,b){Vc.call(this,a,b)}
+function KTb(a,b){gc.call(this,a,b)}
+function wXb(a,b){gc.call(this,a,b)}
+function P$b(a,b){gc.call(this,a,b)}
+function P1b(a,b){gc.call(this,a,b)}
+function V_b(a,b){gc.call(this,a,b)}
+function h4b(a,b){gc.call(this,a,b)}
+function W4b(a,b){gc.call(this,a,b)}
+function j5b(a,b){this.c=a;this.a=b}
+function A6b(a,b){this.b=a;this.a=b}
+function d6b(a,b){this.b=a;this.c=b}
+function O4b(a,b){this.b=a;this.c=b}
+function G0b(a,b){this.a=a;this.b=b}
+function _3b(a,b){this.b=b;this.a=a}
+function Jdc(a,b){this.b=a;this.a=b}
+function Pcc(a,b){gc.call(this,a,b)}
+function e7b(a,b){gc.call(this,a,b)}
+function W8b(a,b){gc.call(this,a,b)}
+function Lec(a,b){gc.call(this,a,b)}
+function Rac(){Sac.call(this,0,0,0)}
+function nec(){Ldc.call(this,'img')}
+function sec(){Ldc.call(this,'log')}
+function bgc(){Ldc.call(this,'row')}
+function mgc(){Ldc.call(this,'tab')}
+function Slc(a,b){gc.call(this,a,b)}
+function Ulc(){Slc.call(this,wAd,0)}
+function pmc(a,b){gc.call(this,a,b)}
+function rmc(){pmc.call(this,$Ed,0)}
+function smc(){pmc.call(this,BCd,1)}
+function zmc(a,b){gc.call(this,a,b)}
+function Bmc(){zmc.call(this,$Ed,0)}
+function Cmc(){zmc.call(this,ACd,1)}
+function Kmc(a,b){gc.call(this,a,b)}
+function Vmc(a,b){gc.call(this,a,b)}
+function enc(a,b){gc.call(this,a,b)}
+function gnc(){enc.call(this,uAd,0)}
+function inc(){enc.call(this,iBd,2)}
+function jnc(){enc.call(this,hBd,3)}
+function unc(a,b){gc.call(this,a,b)}
+function Lnc(a,b){gc.call(this,a,b)}
+function Nnc(){Lnc.call(this,$Ed,0)}
+function Apc(a,b){this.a=a;this.b=b}
+function nXb(a,b){a.c.Cm()&&(a.b=b)}
+function USb(a,b){return SSb(a.b,b)}
+function cXb(a,b){return rdb(a.a,b)}
+function eXb(a,b){return Ddb(a.a,b)}
+function pqc(a,b){return Bqc(a.a,b)}
+function Bqc(a,b){return Cqd(a.d,b)}
+function tic(a){return !!a.a||!!a.f}
+function Q8c(a,b){return L8c(a,b)>0}
+function S8c(a,b){return L8c(a,b)<0}
+function Csc(a,b){gc.call(this,a,b)}
+function Isc(a,b){gc.call(this,a,b)}
+function B9c(a,b){Vc.call(this,a,b)}
+function Cqc(){Dqc.call(this,false)}
+function $qc(a,b){this.b=a;this.a=b}
+function D9c(a,b){this.b=a;this.a=b}
+function E9c(a,b){this.a=a;this.b=b}
+function qad(a,b){this.a=a;this.b=b}
+function ddd(a,b){this.a=a;this.b=b}
+function Red(a,b){this.a=a;this.b=b}
+function nbd(a,b){abd();$ad.ho(a,b)}
+function obd(a,b){abd();$ad.io(a,b)}
+function oTb(a,b){a.t=b.b;a.mm(b.a)}
+function thd(a,b){this.b=a;this.a=b}
+function Fgd(a,b){this.a=a;this.b=b}
+function zhd(a,b){this.a=a;this.b=b}
+function ggd(a,b){this.a=b;this.b=a}
+function Jid(a,b){this.a=a;this.b=b}
+function Oid(a,b){this.b=a;this.a=b}
+function Ghd(a,b){gc.call(this,a,b)}
+function _id(a,b){return cjd(a.a,b)}
+function sjd(a,b){gc.call(this,a,b)}
+function ujd(){sjd.call(this,uAd,0)}
+function wjd(){sjd.call(this,iBd,2)}
+function xjd(){sjd.call(this,hBd,3)}
+function xad(a){Qic(a.parentNode,a)}
+function wld(a){old();return a.data}
+function dld(a,b){return tld(a.a,b)}
+function Zld(a){a.a.Pn(a.d,a.c,a.b)}
+function Tfd(a){Rfd.Fo((abd(),a.U))}
+function hjd(a){(abd(),a.U).cols=60}
+function Tld(){Sld();Old.call(this)}
+function Mbd(){this.a=new qqc(null)}
+function Htc(){this.r=new $wnd.Date}
+function Ysd(a,b){this.b=a;this.a=b}
+function grd(a,b){this.d=a;this.e=b}
+function Nsd(a,b){return ctd(a.a,b)}
+function emd(a,b){return Dnd(a.a,b)}
+function Wtd(a,b){return Cqd(a.c,b)}
+function ird(a,b){return !!evd(a,b)}
+function Ntd(a,b){return a.a.get(b)}
+function Wqd(a){return a.b-1&&b==a.a}
+function yTb(a,b){a.o=b;wTb(a);vTb(a)}
+function L3b(a,b){a.d=lad(b,a.a.Lh())}
+function gvb(a,b,c){Gvb(Eqd(a.a,b),c)}
+function Fhb(a,b){b&&eld(a.f,dFd,jzd)}
+function Rdc(a,b,c){gjc(b,a.a,Pdc(c))}
+function qmb(a){ts(a);pxb(new qxb(a))}
+function H3b(){eTb();I3b.call(this,0)}
+function xLb(a){yLb.call(this,a,null)}
+function M0b(a){N0b.call(this,null,a)}
+function Mdc(){Ldc.call(this,'alert')}
+function qgc(){Ldc.call(this,'timer')}
+function jec(){Ldc.call(this,'group')}
+function Rec(){Ldc.call(this,'radio')}
+function nic(){aic!=0&&(aic=0);dic=-1}
+function TIb(a){a.d=(MIb(),LIb);a.b=1}
+function _Ob(b,a){b.atomMapsVisible=a}
+function aPb(b,a){b.backgroundColor=a}
+function w9b(a,b){return pbc(a)?b-1:b}
+function xlc(a,b){return (ujc(),a)[b]}
+function Mic(a){return Ajc((ujc(),a))}
+function Xic(a){return yjc((ujc(),a))}
+function ubd(a){return zcd((abd(),a))}
+function Njd(a,b){return new Qjd(b,a)}
+function kjc(a,b){(ujc(),tjc).Ln(a,b)}
+function Uic(a,b){(ujc(),tjc).vn(a,b)}
+function Ftc(a,b){a.r.setTime(c9c(b))}
+function nuc(a){throw I8c(new Utc(a))}
+function Wld(a){throw I8c(new Wkd(a))}
+function Bqd(a){return !a?null:a.Ok()}
+function hmd(a,b){return Xnd(a.a,0,b)}
+function Qsd(a,b,c){return Psd(a,b,c)}
+function zld(a){old();return a.length}
+function Mld(a,b){old();a.nodeValue=b}
+function vhd(a,b){this.b=a;this.a=a+b}
+function Ctd(a){this.a=Ltd();this.b=a}
+function mbd(a){abd();_ad=a;$ad.go(a)}
+function Hud(a){return a!=null?V(a):0}
+function kOd(a,b){return new Hcb(a,b)}
+function QMd(a,b){return wx(this,a,b)}
+function TMd(a,b){return Xx(this,a,b)}
+function fPd(){return dsd(this.a.a.a)}
+function ePd(){return Xrd(),Xrd(),Vrd}
+function JNd(){return Xrd(),Xrd(),Urd}
+function cOd(){return Xrd(),Xrd(),Wrd}
+function FPd(){return Xrd(),gsd(),fsd}
+function wPd(){return _ic(this.f,OHd)}
+function Pf(a){return Vic((abd(),a.U))}
+function Qf(a){return Wic((abd(),a.U))}
+function pPd(a){ljc((abd(),this.U),a)}
+function yOd(a){fjc(Rf(this.a.c),CId)}
+function jud(){vtd.call(this,new _td)}
+function dmd(){bmd.call(this,'UTF-8')}
+function Nwd(){Kwd.call(this,'UTF-8')}
+function xnc(){unc.call(this,'PCT',1)}
+function Pnc(){Lnc.call(this,'PRE',2)}
+function Ek(a){Dk.call(this,new ek(a))}
+function Rk(a,b){a.b.a=new Ok(b);Qk(a)}
+function Sk(a,b){a.b.a=new Uk(b);Qk(a)}
+function tu(a,b){return xu(a.c,b).vd()}
+function an(a,b){return un(Osd(a.a,b))}
+function AF(a,b){return Bac(b,a.a,a.b)}
+function Jt(a){return Jkd(),pld(Ikd,a)}
+function RPd(){return this.a.a.length}
+function bs(a,b){Prd(a.a,a.a.length,b)}
+function vG(a){!!a.a.a.a&&a.a.a.a.Rd()}
+function EG(a){FG(a);a.b=false;vG(a.d)}
+function EA(a){IA(a.a);IA(a.b);IA(a.c)}
+function N$(a,b){b.vf(a.a,a.b,a.d,a.c)}
+function E0(a,b){return H0(b,a.b.Yd())}
+function qm(a,b){vm((soc(b),toc(b),a))}
+function O4(a,b,c){Wr(a.e,new _4(b,c))}
+function YC(a,b,c){BA.call(this,a,b,c)}
+function BP(a,b,c){nP.call(this,a,b,c)}
+function r0(a,b,c){n0.call(this,a,b,c)}
+function I0(a,b,c){n0.call(this,a,b,c)}
+function Fjb(){Djb.call(this,'FLAG',0)}
+function unb(a){Ki.call(this);this.a=a}
+function Mt(a){this.b=new Iqc;this.d=a}
+function pU(a,b){this.b=qU(a);this.a=b}
+function CB(a){this.b=a;this.a=uD(a.C)}
+function Akb(a){this.b=a;this.a=new es}
+function nxb(){this.a=new Bm;mxb(this)}
+function YIb(){Nw.call(this);TIb(this)}
+function Hmb(a){rlb();Vlb.call(this,a)}
+function TGb(a){QGb(a.d,bod(CEb(a.e)))}
+function Uvb(a){return Wvb(a,Pvb(a.a))}
+function wjb(a,b){return a.b.Uj(a.a,b)}
+function fUb(a,b){return gUb(a.Bm(),b)}
+function xdb(a,b){return hs(a.n,b)!=-1}
+function mTb(a,b){a.v=b?new js(b):null}
+function ZJb(){this.c=null;this.d=null}
+function a6b(a){this.c=a;this.b=new is}
+function VSb(a){this.b=a;this.a=new es}
+function Idc(a){this.a=a;Ki.call(this)}
+function xN(a){a.b.b=false;a.a.b=false}
+function hPb(b,a){b.lonePairsVisible=a}
+function gPb(b,a){b.implicitHydrogen=a}
+function ejc(b,a){b.removeAttribute(a)}
+function T6b(a,b){S6b.call(this,a,b,b)}
+function U6b(a,b){S6b.call(this,a,b,b)}
+function qqc(a){rqc.call(this,a,false)}
+function lgc(){Ldc.call(this,'status')}
+function hgc(){Ldc.call(this,'slider')}
+function Vdc(){Ldc.call(this,'banner')}
+function Tec(){Ldc.call(this,'region')}
+function Pmc(){Kmc.call(this,'AUTO',3)}
+function rad(a){qad.call(this,a.a,a.b)}
+function Hid(a,b){sl(a.a.a);zid(a.a,b)}
+function rdd(a,b){yo(a,!b?null:b.Cb())}
+function agd(a,b,c){bgd(a,b,(abd(),c))}
+function Yid(a,b,c){Zid(a,b,c,a.a.i.c)}
+function G2b(a,b,c,d){B5b(b.a,a,c.a,d)}
+function Znc(a){Xnc();DPb(Unc,a);$nc()}
+function Gld(a){old();return a.tagName}
+function qwd(a,b){if(ewd){return}a.b=b}
+function Ohd(a){this.a=a;Ki.call(this)}
+function Qqc(a){this.a=a;Ki.call(this)}
+function lNd(a){!!this.k&&WG(this.k,a)}
+function bvd(a){cvd.call(this,a,'','')}
+function Jvd(){Fvd.call(this,'Tail',3)}
+function Hvd(){Fvd.call(this,'Head',1)}
+function Hg(a){Fg.call(this);this.Ub(a)}
+function hh(a){kh(a);ph(a.b);a.d.a.Pb()}
+function Wd(a,b,c){!!a.a&&a.a.c.gb(b,c)}
+function Zh(a,b,c){a.b=b;a.c=c;return a}
+function Mo(a,b){(abd(),a)['align']=b.a}
+function pl(a){return !(abd(),a.U)[mAd]}
+function ZOd(a){return Xrd(),Xrd(),Wrd}
+function $Od(a){return Xrd(),Xrd(),Urd}
+function guc(a){return Stc(),a?Rtc:Qtc}
+function Jxd(a){return a&&a.g?a.g:null}
+function Qt(a,b,c){return St(a,b).Qd(c)}
+function wu(a,b,c){return xu(a,b).zd(c)}
+function df(a){bf();return new Error(a)}
+function VJ(a,b){return UJ(a,b+a.c,a.b)}
+function zK(a,b){return iK(b,a.o.i,a.b)}
+function MH(a,b){NH.call(this,a,b,true)}
+function yJ(a){fJ.call(this,a,'\u2022')}
+function GJ(a){$G.call(this,a);EJ(this)}
+function VM(a){DM.call(this,a);TM(this)}
+function Pv(a){Ov(a,(Lz(),Hz));a.w.Hf()}
+function $v(a){Ov(a,(Lz(),Iz));a.w.Hf()}
+function WP(a){if(!a.c){return}a.c=null}
+function CS(a){return a!=null?bod(a):''}
+function Fc(){Fc=p9c;Ec=new Gc(new Ic)}
+function VT(){VT=p9c;UT=new YT(new Gdb)}
+function PZ(){PZ=p9c;OZ=new UZ(uBd,uBd)}
+function Wpb(){Wpb=p9c;Vpb=(s6b(),g6b)}
+function ho(){ho=p9c;go=(Os(),Fs);fo=go}
+function i_(a){e_();g_.call(this,MBd,a)}
+function j_(a){e_();h_.call(this,MBd,a)}
+function Y8(a,b){U7();Z7.call(this,a,b)}
+function IW(a,b){FW();this.a=a;this.b=b}
+function jO(a,b){this.c=a;this.d=$sd(b)}
+function Scb(a){this.b=a;this.a=new ltd}
+function Udb(a){Gdb.call(this);this.a=a}
+function ljb(a){this.c=a;this.a=new njb}
+function Gjb(){Djb.call(this,'VALUE',1)}
+function Gqb(a){this.f=a;this.a=new jud}
+function Lab(a){Kab();return Osd(Iab,a)}
+function ugb(a,b){return _kd(a.a,a.b,b)}
+function J4(a,b){return Eqd(a.a,mnd(b))}
+function K4(a,b){return Eqd(a.b,mnd(b))}
+function K3(a,b){return a.substr(7,b-7)}
+function S$(a,b){b.wf(a.a,a.c,true,a.b)}
+function O$(a,b,c){a.a=b;a.b=c;return a}
+function Jwb(a,b,c){Iwb(a,new red(b),c)}
+function bhb(a,b,c){c!=null&&eld(a,b,c)}
+function tLb(a,b,c){return Cib(a.a,b,c)}
+function hwb(a){return new myb(a.a,a.c)}
+function Swb(a){return U(a)==PXc?null:a}
+function a1b(a){return a?new js(a):null}
+function IOb(){this.a=false;this.b=null}
+function nwb(a){this.a=a;this.b=new Awb}
+function IWb(){Gdb.call(this);rVb(this)}
+function $Fb(a){sl(a.a);ZFb()&&FEb(a.a)}
+function oEb(a){a.f=true;a.b.pb(lEb(a))}
+function bSb(a){Bd(a,a.b.a.a.length!=0)}
+function Y1b(a,b){return -a.c<=b&&b<=-1}
+function l1b(a){i1b();return h1b[a-1].a}
+function ZOb(b,a){b.chiralFlagVisible=a}
+function Udc(){Ldc.call(this,'article')}
+function uec(){Ldc.call(this,'marquee')}
+function yec(){Ldc.call(this,'menubar')}
+function rgc(){Ldc.call(this,'toolbar')}
+function sgc(){Ldc.call(this,'tooltip')}
+function ngc(){Ldc.call(this,'tablist')}
+function kec(){Ldc.call(this,'heading')}
+function qec(){Ldc.call(this,'listbox')}
+function bmc(){Slc.call(this,'FLEX',17)}
+function dmc(){Slc.call(this,'BLOCK',1)}
+function jmc(){Slc.call(this,'TABLE',7)}
+function $mc(){Vmc.call(this,'FIXED',3)}
+function W9b(a,b,c,d){U9b(this,a,b,c,d)}
+function Lgc(e,a,b,c,d){e.rect(a,b,c,d)}
+function Bgc(c,a,b){c.addColorStop(a,b)}
+function gjc(c,a,b){c.setAttribute(a,b)}
+function sjc(b,a){return b.toDataURL(a)}
+function zuc(a){return Auc(a.l,a.m,a.h)}
+function Ibd(a){Hbd();return Lbd(Fbd,a)}
+function rmd(a){qmd();return Cnd(),''+a}
+function Bld(a){old();return a.nodeName}
+function itd(a){return a.ab?1:0}
+function Wxd(a,b){Sxd();return Gxd(a,b)}
+function Xxd(a){Sxd();return Hxd(Rxd,a)}
+function Ivd(){Fvd.call(this,'Range',2)}
+function Nhd(a){wdc.call(this);this.a=a}
+function Dqc(a){this.d=new ltd;this.c=a}
+function iud(a){this.c=a;this.b=a.a.b.a}
+function qPd(a){this.Ob(!a?null:a.Cb())}
+function Ur(a){a.a=suc(_5c,lyd,1,0,5,1)}
+function eTb(){eTb=p9c;dTb=new qad(0,0)}
+function eo(a){this.a=a;this.b=new Vn(a)}
+function lf(a,b){sf(a.a,b,null);return a}
+function mf(a,b){sf(a.a,null,b);return a}
+function uB(a,b){!!b&&Wr(a.a,b);return a}
+function o5b(a,b,c){Wr(a.b,b);Wr(a.c,c)}
+function AG(a,b){return !!a.i&&RF(a.i,b)}
+function YK(a,b){return Nr(a,b)&&Nr(b,a)}
+function Dnd(a,b){return a.charCodeAt(b)}
+function RC(a,b){return new QC(b,a,null)}
+function Dw(a,b){a.e=b;!!a.f&&eIb(a.f.a)}
+function ML(a,b){b.a?(a.c=a.a):(a.c=a.b)}
+function QM(a,b){TM(a);Jl(a,b.c);a.b=b.c}
+function fp(a){Hi(a.e);a.b=null;a.c=null}
+function HB(){HB=p9c;FB=new NB;GB=new OB}
+function VL(){VL=p9c;UL=new qad(ZBd,ZBd)}
+function WM(a){UK.call(this,a,(QQ(),OQ))}
+function oN(a){pN.call(this,a,(Os(),Ns))}
+function EN(a){FN.call(this,a,new XM(a))}
+function o0(a,b){p0.call(this,a,b,false)}
+function rn(){on.call(this,'VERTICAL',1)}
+function Gf(){Ff=Yxd(function(a){Kf(a)})}
+function ccd(){if(!Ybd){mdd();Ybd=true}}
+function bcd(){if(!Tbd){ldd();Tbd=true}}
+function IV(a,b){!!b&&Wr(a.a,b);return b}
+function N1(a,b){wVb(a.b.a,b);a0b(a.a,b)}
+function iO(a,b){return a.Ug(b)&&a.Tg(b)}
+function DX(a){return Aac(a.Yh(),a.Zh())}
+function Twb(a){return a.c?a.c.Ji():null}
+function LGb(a){return Hnd(iyd,a)?null:a}
+function yfb(a){zfb.call(this,a,new teb)}
+function ibb(){jbb.call(this,new dbb,'')}
+function Tlb(){rlb();Vlb.call(this,null)}
+function lab(a,b){U7();Z7.call(this,a,b)}
+function IY(a,b,c){bU(a.f).Ah(b,a.d,c,c)}
+function eZ(a,b,c,d,e,f){a.fl(f,b,c,d,e)}
+function cNb(a,b){Iqd(a.b,b.Ic(),b.ld())}
+function THb(a){UHb(a,_Ib(a.i,a.b).Vn())}
+function _Hb(a){return _Ib(a.i,a.b).Vn()}
+function dNb(a){return tPb(Fqd(a.b,a.a))}
+function VVb(a,b){return ssd(dsd(a.n),b)}
+function YVb(a,b){return ssd(dsd(a.p),b)}
+function gWb(a,b){return tsd(dsd(a.p),b)}
+function fWb(a,b){return tsd(dsd(a.n),b)}
+function fVb(a,b){return Zr(a.a,b,0)!=-1}
+function J5b(a,b){return Zr(a.f,b,0)!=-1}
+function w6b(a){return ic((z6b(),y6b),a)}
+function ucc(a){return a.b==null?'=':a.b}
+function Gcc(a){return ic((Jcc(),Icc),a)}
+function $cc(a){return ic((bdc(),adc),a)}
+function KOb(a){Iud(a);return new JOb(a)}
+function u6b(a){s6b();return !!a&&f6b==a}
+function KEb(a){(abd(),a.U).maxLength=15}
+function pVb(a){qVb.call(this,a,new pad)}
+function zec(){Ldc.call(this,'menuitem')}
+function rec(){Ldc.call(this,'listitem')}
+function fec(){Ldc.call(this,'document')}
+function iec(){Ldc.call(this,'gridcell')}
+function ogc(){Ldc.call(this,'tabpanel')}
+function vgc(){Ldc.call(this,'treeitem')}
+function ugc(){Ldc.call(this,'treegrid')}
+function cgc(){Ldc.call(this,'rowgroup')}
+function _dc(){Ldc.call(this,'combobox')}
+function Z3b(a,b){this.d=a;this.c=Y3b(b)}
+function jbb(a,b){this.b=a;this.a='\\'+b}
+function $Ob(b,a){b.atomIndicesVisible=a}
+function cPb(b,a){b.carbonLabelVisible=a}
+function xic(a,b){a.c=Aic(a.c,[b,false])}
+function Vic(a){return (ujc(),tjc).Cn(a)}
+function Wic(a){return (ujc(),tjc).Dn(a)}
+function Zic(a){return (ujc(),tjc).Hn(a)}
+function ajc(a){return (ujc(),tjc).In(a)}
+function bjc(a){return (ujc(),tjc).Mn(a)}
+function cjc(a){return (ujc(),tjc).Jn(a)}
+function Skc(a){return (ujc(),tjc).En(a)}
+function Tkc(a){return (ujc(),tjc).Fn(a)}
+function ilc(a){return (ujc(),tjc).wn(a)}
+function jlc(a){return (ujc(),tjc).xn(a)}
+function rlc(a){return (ujc(),a).touches}
+function vlc(a){return (ujc(),a).options}
+function Orc(){Orc=p9c;krc();Nrc=new ltd}
+function e2(){e2=p9c;c2=new g2;d2=new h2}
+function emc(){Slc.call(this,'INLINE',2)}
+function imc(){Slc.call(this,'RUN_IN',6)}
+function Nmc(){Kmc.call(this,'HIDDEN',1)}
+function Dmc(){zmc.call(this,'BOLDER',2)}
+function Omc(){Kmc.call(this,'SCROLL',2)}
+function Xmc(){Vmc.call(this,'STATIC',0)}
+function Onc(){Lnc.call(this,'NOWRAP',1)}
+function did(a){this.a=[];aid(this,a,'')}
+function dbd(a){abd();return $ad._n(a,0)}
+function Dld(a){old();return a.nodeValue}
+function ild(a,b){return Pkd(Kld(a.a,b))}
+function kld(a,b){return Pkd(Ald(a.a,b))}
+function z9c(a,b){return new RegExp(a,b)}
+function lgd(a,b){return abd(),a.rows[b]}
+function zgd(a){return (abd(),a.U).width}
+function kad(a){return qvc(a.a)^qvc(a.b)}
+function Lvd(a,b){return Aqd(fvd(a.a,b))}
+function Oud(a,b){return a.a!=null?a.a:b}
+function rtd(a,b){return a.a.qp(b)!=null}
+function Ond(a,b){return a.lastIndexOf(b)}
+function Nnd(a,b,c){return a.indexOf(b,c)}
+function Auc(a,b,c){return {l:a,m:b,h:c}}
+function Ggc(d,a,b,c){d.drawImage(a,b,c)}
+function Txd(a,b,c){Sxd();zxd(Rxd,a,b,c)}
+function Ztd(a,b){if(a.a){cud(b);bud(b)}}
+function Ncd(a){(ujc(),tjc).Bn(a);Ocd(a)}
+function Wh(a){xic((pic(),oic),new Yh(a))}
+function wl(a){!a.d&&Cl(a,a.o);return a.d}
+function ag(a,b){(abd(),a.U).style[czd]=b}
+function hg(a,b){(abd(),a.U).style[ezd]=b}
+function Dn(a){(abd(),a.U).style[yAd]=ozd}
+function am(a){if(a.a){a.a.tc();a.a=null}}
+function cs(a){return wwd(a.a,a.a.length)}
+function Jn(a){a.d.M&&Lid(a.c,Kid(a.c)+1)}
+function vm(a){a.n=false;kbd((abd(),a.U))}
+function nA(a){a.n=a.Xf();a.n.eb();a.Vf()}
+function dD(a,b){a.a!=b&&(a.i=null);a.a=b}
+function Hu(a,b){Mt.call(this,a);this.a=b}
+function fJ(a,b){$G.call(this,a);this.e=b}
+function zJ(a,b){dH.call(this,a);this.a=b}
+function BJ(a,b){$G.call(this,a);this.a=b}
+function Nn(a){Mn.call(this);En(this.d,a)}
+function lL(a,b){$G.call(this,a);this.b=b}
+function HM(a,b){$G.call(this,a);this.b=b}
+function Tc(){Jc(this);Lc(this);this.bb()}
+function xf(){this.c=new es;this.b=new es}
+function nk(){nk=p9c;mk=new ok;lk=new ltd}
+function Lud(){Lud=p9c;Kud=new Pud(null)}
+function ol(){ol=p9c;nl=(Vjd(),Vjd(),Ujd)}
+function HF(a,b,c){return AF(b,kH(c,a.a))}
+function tK(a,b,c){return a.o.i.a.o.k?c:b}
+function $M(a,b){return b?a.b:a.b-a.b%ZBd}
+function pT(a,b){return hV(a,b.s,b.u,b.n)}
+function mV(a,b,c){return new oV(a,b,b,c)}
+function FX(a,b,c,d){return a.v.Jf(b,c,d)}
+function Vu(a,b){this.a=a;Uu.call(this,b)}
+function hQ(a,b){iQ.call(this,a,b,new kS)}
+function lQ(a,b){$G.call(this,a);this.a=b}
+function UO(a,b){$G.call(this,a);this.c=b}
+function lV(a,b){PU.call(this,a);this.c=b}
+function nbb(a){mbb.call(this,new cbb(a))}
+function obb(a){nbb.call(this,new ebb(a))}
+function veb(a,b){!!b&&Wr(a.a,new o9b(b))}
+function ydb(a,b){return !!b&&Nr(a.n,b.a)}
+function Vnb(a,b){return b>=0?a.a[b]:null}
+function ucb(a){return a.length==0?null:a}
+function $eb(a){return Xrd(),new ysd(a.b)}
+function jwb(a){return new sHb(a.c.i,a.b)}
+function oBb(a,b){return new HCb(b,a,dyd)}
+function qCb(a,b){return !a.c&&vCb(a.f,b)}
+function Slb(a,b,c){O8c(b,a.t)&&ew(a.G,c)}
+function $Ib(a,b,c){Ytd(a.a,b,new fJb(c))}
+function nkb(a,b,c){bcb(a.a,b,c);return c}
+function Okb(a,b,c){cn(a.b,b,c,(Os(),Fs))}
+function aLb(a,b,c){this.a=new BLb(a,b,c)}
+function LVb(a,b,c){return tqc(a.b,b,a,c)}
+function TVb(a){return Xrd(),new ysd(a.i)}
+function pjb(a){Xrd();a.Fd(null);return a}
+function x$b(a,b){wx(a.a,b,null);return a}
+function y$b(a,b){wx(a.a,null,b);return a}
+function bGb(a,b){gg(a.a.a,b);gg(a.a.c,b)}
+function Qub(a,b){a.b.qe();Hub(a.a,a.c,b)}
+function myb(a,b){nyb.call(this,oyb(a),b)}
+function XZb(a,b){YZb.call(this,a,b,true)}
+function eec(){Ldc.call(this,'directory')}
+function egc(){Ldc.call(this,'scrollbar')}
+function dgc(){Ldc.call(this,'rowheader')}
+function ggc(){Ldc.call(this,'separator')}
+function vcc(a,b){tcc();this.b=a;this.a=b}
+function oRb(a,b){lRb();this.b=a;this.a=b}
+function YT(a){VT();this.a=a;this.b=ZT(a)}
+function rQ(){this.a=new CR;this.b=new ER}
+function iPb(b,a){b.valenceErrorVisible=a}
+function Qic(b,a){return b.removeChild(a)}
+function Lic(b,a){return b.appendChild(a)}
+function Jgc(b,a){return b.measureText(a)}
+function $ic(b,a){return parseInt(b[a])|0}
+function xkc(a,b){return vjc((ujc(),a),b)}
+function Qkc(a){return wjc((ujc(),a),tFd)}
+function w9c(c,a,b){return a.replace(c,b)}
+function Lfd(a,b,c){return Jfd(a.a.c,b,c)}
+function kgd(a,b){return lgd((abd(),a),b)}
+function Mxd(a,b){for(p in b){a[p]=b[p]}}
+function uld(a){old();return a.attributes}
+function vld(a){old();return a.childNodes}
+function Fld(a){old();return a.parentNode}
+function Old(){old();this.a=new DOMParser}
+function qmd(){qmd=p9c;omd=false;pmd=true}
+function Vcd(){Vcd=p9c;Icd();Fcd[dLd]=Mcd}
+function Acd(a){if(!ycd){a.co();ycd=true}}
+function pid(a){vdd.call(this,a);sg(this)}
+function vsd(a){osd.call(this,a);this.a=a}
+function wsd(a){qsd.call(this,a);this.a=a}
+function vjd(){sjd.call(this,'JUSTIFY',1)}
+function hnc(){enc.call(this,'JUSTIFY',1)}
+function Mmc(){Kmc.call(this,'VISIBLE',0)}
+function tmc(){pmc.call(this,'OBLIQUE',2)}
+function Emc(){zmc.call(this,'LIGHTER',3)}
+function Ovd(a){Nvd.call(this);Lr(this,a)}
+function hNd(a){Jl(this,a.c);oI(this,a.c)}
+function zNd(a){Jl(this,a.c);VG(this,a.c)}
+function kpd(a){Nod();lpd.call(this,a,10)}
+function SNd(){return new ibc(this.a,0,0)}
+function Zwd(a){return a.$H||(a.$H=++Ywd)}
+function ymd(a){return a>=56320&&a<=57343}
+function kvc(a,b){return a!=null&&gvc(a,b)}
+function fc(a){return a.j!=null?a.j:''+a.k}
+function Nud(a){Swd(a.a!=null);return a.a}
+function dtd(a,b){return !!b&&a.b[b.k]==b}
+function Xnd(a,b,c){return a.substr(b,c-b)}
+function Xgc(d,a,b,c){d.strokeText(a,b,c)}
+function Xwd(b,c,d){try{b[c]=d}catch(a){}}
+function Vf(a){return _ic((abd(),a.U),azd)}
+function Sf(a){return $ic((abd(),a.U),$yd)}
+function Tf(a){return $ic((abd(),a.U),_yd)}
+function sh(a){(Sfd(),Rfd).Fo((abd(),a.U))}
+function $(){$=p9c;Z=twd((Hmd(Cvc),Cvc.p))}
+function Jc(a){a.k=suc(b6c,lyd,2352,0,0,1)}
+function Pl(a){Ol.call(this);Ydd(this.o,a)}
+function Ql(a){Ol.call(this);Zdd(this.o,a)}
+function qn(){on.call(this,'HORIZONTAL',0)}
+function Fn(){Jg();nm.call(this,false,zAd)}
+function dz(){$y.call(this);this.a=new Cqc}
+function Ue(){this.b=new es;this.a=new std}
+function Zj(){this.a=new ltd;this.b=new ak}
+function Yk(a,b){this.a=a;this.b=new Nk(b)}
+function Hc(){Fc();this.a=true;this.b=true}
+function HD(a){this.b=a;this.a=new Yu(a.A)}
+function KC(a){return a.a.sd()?a:new js(a)}
+function uz(a){sz();return ic((xz(),wz),a)}
+function kz(a){iz();return ic((nz(),mz),a)}
+function xh(a){if(Bh(a)){return}a.j&&Dh(a)}
+function sn(a){if(a.f){throw I8c(new dnd)}}
+function iL(a){aL.call(this,a,(s6b(),g6b))}
+function ED(a,b,c){FD.call(this,a,a.C,b,c)}
+function dS(a,b,c,d){eS.call(this,a,b,c,d)}
+function bV(a,b,c){a.k&&a.i.Fh().Ch(b,a,c)}
+function kP(a,b,c){WT(a.i,b,a.o.i.j,KBd,c)}
+function JY(a,b,c,d){bU(a.f).Ah(b,a.d,c,d)}
+function RZ(a,b,c,d){cU(a.d).Dh(b,a.c,c,d)}
+function XZ(a,b,c,d){WZ.call(this,b,a,c,d)}
+function $Z(a,b,c,d){WZ.call(this,b,a,c,d)}
+function eX(a,b,c,d){return b-c.Nh()*a.a-d}
+function VQ(a,b){return WQ(a)?0.22*b*0.5:0}
+function x$(a){return a!=null&&a.length!=0}
+function FG(a){a.k=null;a.j=null;a.a=false}
+function YI(a){a.b=null;mIb(a.a,(Ez(),Az))}
+function yw(a){a.n=(sz(),rz);a.j=(iz(),hz)}
+function nN(a){a.b.b=false;xN(a.e);xN(a.f)}
+function wn(a,b,c){sn(a);a.f=b;a.c=c;xn(a)}
+function I9(a,b,c,d){p8.call(this,a,b,c,d)}
+function Vcb(a,b,c,d){return a.b.Ij(b,c,d)}
+function ndb(a,b){hs(a.n,b)!=-1||Wr(a.n,b)}
+function odb(a,b){hs(a.p,b)!=-1||Wr(a.p,b)}
+function pdb(a,b){hs(a.q,b)!=-1||Wr(a.q,b)}
+function vdb(a,b){hs(a.o,b)!=-1||Wr(a.o,b)}
+function Vvb(a,b){bt(a.b.nd(b),new Yvb(a))}
+function awb(a,b){return Zvb(new _vb(b),a)}
+function Nwb(a,b){rm(a.b,false);Wwb(a.a,b)}
+function YN(a,b){this.a=new aO(a);this.b=b}
+function Yfb(){this.a=new es;this.b=new es}
+function kcb(){this.a=new es;this.b=new es}
+function Neb(){this.b=new is;this.a=new is}
+function JOb(a){DOb();this.a=true;this.b=a}
+function zob(a){vd.call(this,oHd);this.a=a}
+function xRb(a,b){Uu.call(this,b);this.a=a}
+function dOb(a){_Nb();fOb.call(this,a,$Nb)}
+function _bb(){_bb=p9c;$bb=new Rs(16,3,28)}
+function dyb(a,b,c,d){qd(b,new uyb(a,d,c))}
+function ZBb(a,b){return !!a.c&&Cqd(a.c,b)}
+function EVb(a,b){sVb(a,dsd(a.o).b.vd(),b)}
+function TWb(a,b){PWb(a,Qqd(a.a.i,b.Me()))}
+function a5(a,b){a.a=a.a+(''+b.substr(11))}
+function f2b(a){this.a=new pad;e2b(this,a)}
+function IRb(){this.a=new es;this.b=new es}
+function kVb(){this.b=new es;this.a=new es}
+function F0b(a){E0b();this.a=a;this.b=null}
+function y2b(a){h2b();v2b.call(this,a.k+1)}
+function H4b(a,b,c){G4b.call(this,a,b,c,0)}
+function Tac(a,b){Sac.call(this,a.a,a.b,b)}
+function JWb(a){Hdb.call(this,a);rVb(this)}
+function Rxb(a){xg(a,(Vxb(),Txb));return a}
+function Sxb(a){xg(a,(Vxb(),Uxb));return a}
+function uQb(a){if(a<=0){return 0}return a}
+function ulc(a){(ujc(),a).options.length=0}
+function nlc(a){return (ujc(),a).keyCode|0}
+function olc(a){return !!(ujc(),a).metaKey}
+function mlc(a){return !!(ujc(),a).ctrlKey}
+function Yic(a){return (ujc(),a).innerHTML}
+function Juc(a){return a.l+a.m*vzd+a.h*$Kd}
+function Nu(a){!!a.p&&!!a.p.a&&Yv(a,a.p.a)}
+function t5b(a){!!a.b&&c5b(new j5b(a,a.b))}
+function ebd(a,b){abd();return $ad.bo(a,b)}
+function Cad(a,b){return new $wnd.C2S(a,b)}
+function Btc(a,b){a.r.setHours(b);ztc(a,b)}
+function yld(a,b){old();return nld._o(a,b)}
+function $id(a,b){ded(a.a,b);kqc(a,mnd(b))}
+function H9c(a,b){nod(a.a,R9c(b));return a}
+function Lqd(a){a.d=new Ctd(a);a.e=new Qtd}
+function Utd(a){a.b=new dud(a);a.c=new ltd}
+function Yqd(a){a.d.Dd(a.c);a.b=a.c;a.c=-1}
+function Cid(a){if(_i(a)){a.c=null;yid(a)}}
+function Ard(a){if(!a){throw I8c(new Isd)}}
+function Swd(a){if(!a){throw I8c(new Eud)}}
+function jwd(a,b){if(ewd){return}Wr(a.a,b)}
+function Kxd(a,b){return a!=null?a[b]:null}
+function dud(a){eud.call(this,a,null,null)}
+function amc(){Slc.call(this,'INITIAL',16)}
+function Ymc(){Vmc.call(this,'RELATIVE',1)}
+function Zmc(){Vmc.call(this,'ABSOLUTE',2)}
+function Qnc(){Lnc.call(this,'PRE_LINE',3)}
+function Rnc(){Lnc.call(this,'PRE_WRAP',4)}
+function xid(a){this.c=a;this.a=!!this.c.O}
+function ek(a){this.b=a;this.d=hAd;this.a=0}
+function QNd(){return cbc(this.a,this.a.c)}
+function oPd(){return 'safe: "'+this.a+'"'}
+function xi(a,b){return a.a?b.dataset:yi(b)}
+function rt(a,b){return jvc(a)?a.zd(b):a[b]}
+function of(a,b){this.a=a;b.ub(a,new Af(a))}
+function fx(a){this.a=new jx(this);this.c=a}
+function jx(a){this.c=a;this.b=new _y(this)}
+function hPd(a){!!L5b(this.a,a)&&hTb(this)}
+function PA(a,b,c){QA.call(this,a,b,c,null)}
+function nw(a,b,c){ow.call(this,a,b,true,c)}
+function DD(a,b){FD.call(this,a,a.C,b,null)}
+function aN(a,b){a.c=b;a.d=uN(b.b);a.f=null}
+function PL(a,b,c){a.b=b;(b>=0||c)&&(a.a=c)}
+function kO(a,b){bt(PGb(a.a,0),new pO(a,b))}
+function tO(a,b){bt(Xob(a.b,b),new yO(a,b))}
+function AO(a,b,c){Cqd(a.b,b)&&Hqd(a.b,b,c)}
+function qQ(a,b,c){LQb(DR(b),new tQ(c,a.a))}
+function oC(a,b){return !Zrd(a.Ml(),b.Ml())}
+function zh(a){if(Bh(a)){return}!a.j&&Dh(a)}
+function pb(a){if(a<=1){return a}return 2-a}
+function Hmd(a){if(a.p!=null){return}Smd(a)}
+function tn(a){if(!a.f){throw I8c(new dnd)}}
+function KR(a){LR.call(this,a,false,new es)}
+function wT(a,b){uT.call(this,a,a?0:2,!a,b)}
+function xT(a,b){vT.call(this,a,a?0:2,!a,b)}
+function L$(a,b){J$();return new K$(H$,a,b)}
+function gV(a,b,c){return QW(new RW(b,c),a)}
+function bU(a){return Osd(a.b,a.a.a.j).Gh()}
+function cU(a){return Osd(a.b,a.a.a.j).Hh()}
+function lw(a){zIb(a.a);a.j.c=true;a.w.Hf()}
+function mw(a){AIb(a.a);a.j.c=true;a.w.Hf()}
+function Z4(a){this.a=a;X4.call(this,a,CDd)}
+function Eab(a,b,c,d){p8.call(this,a,b,c,d)}
+function zbb(a,b){xbb.call(this,a);this.a=b}
+function zfb(a,b){xbb.call(this,a);this.a=b}
+function Jfb(a,b){Ffb.call(this,a);this.a=b}
+function ggb(a){$fb.call(this);Xr(this.a,a)}
+function dU(a){this.b=new Tsd(kAc);this.a=a}
+function UR(){this.c=new yod;this.d=new _ud}
+function W4(){this.a=new ltd;this.b=new _ud}
+function Qgb(){this.a=new es;this.b=new ltd}
+function bxd(){bxd=p9c;$wd=new S;axd=new S}
+function fib(){fib=p9c;eib=(i1b(),h1b[5].c)}
+function Qeb(a,b){return new W0b(b,a.a,a.c)}
+function seb(a){return yeb(new Ceb(s9c(a)))}
+function eBb(a,b,c){return UBb(a.a,b,a.c,c)}
+function zAb(a,b,c){BAb(a,a.a,b,c);a.d=true}
+function Mab(a,b){Psd(Iab,a,b);Iqd(Jab,b,a)}
+function Mzb(a,b){wyb.call(this,a);this.a=b}
+function rzb(a,b){wyb.call(this,a);this.c=b}
+function xyb(a,b){wyb.call(this,a);this.b=b}
+function Njb(a){Ojb.call(this,new Usd(a.a))}
+function nHb(a){rm(a,false);eq(a.a);eq(a.a)}
+function oHb(a){Jg();this.a=a;Bm.call(this)}
+function syb(a){Jg();this.a=a;Bm.call(this)}
+function tEb(a){Jg();this.a=a;Bm.call(this)}
+function CEb(a){return _ic((abd(),a.U),OHd)}
+function PPb(a,b,c,d){return KPb(a.a,b,c,d)}
+function RHb(a,b){tqc(a.e,(aF(),_E),null,b)}
+function SHb(a,b){tqc(a.e,(mF(),lF),null,b)}
+function MUb(a,b){GUb(a,b);return a.a.Rm(b)}
+function pP(a){!a.b&&(a.b=oP(a));return a.b}
+function qQb(a,b){nQb.call(this,a);this.a=b}
+function iLb(a,b){gLb.call(this,b);this.a=a}
+function oLb(a,b){gLb.call(this,b);this.a=a}
+function o0b(a,b){l0b.call(this,b);this.a=a}
+function n0b(a,b){k0b.call(this,b);this.a=a}
+function n9b(a){m9b.call(this);Xr(this.a,a)}
+function v2b(a){h2b();w2b.call(this,a,null)}
+function I3b(a){eTb();J3b.call(this,a,null)}
+function URb(a){Jg();this.a=a;Bm.call(this)}
+function _Sb(a,b){this.a=a;this.b=new vt(b)}
+function vjc(a,b){return a.createElement(b)}
+function Q0b(a){return !a.c.fn()&&!a.a.fn()}
+function Y9b(a){return new W9b(a.a,a.b,0,0)}
+function tGb(){return typeof $wnd.Blob!=$Id}
+function plc(a){return !!(ujc(),a).shiftKey}
+function fbd(a){abd();return yjc((ujc(),a))}
+function gbd(a){abd();return Ajc((ujc(),a))}
+function Rbd(){ol();tl.call(this,skc($doc))}
+function Ufd(){Sfd();Gg.call(this,Rfd.Eo())}
+function hmc(){Slc.call(this,'LIST_ITEM',5)}
+function aPd(a){(!a||a!=this.b)&&(this.b=a)}
+function Tkb(a){if(a.a){throw I8c(new dnd)}}
+function tlc(a){(ujc(),a).stopPropagation()}
+function xe(a,b){Zdd(xl(a.a),b);Zdd(a.a.o,b)}
+function Qed(a,b,c){b?Agd(c,a.b):Agd(c,a.a)}
+function Gkd(c,a,b){c.setRequestHeader(a,b)}
+function Pc(a,b){a.e=b;b!=null&&Xwd(b,ryd,a)}
+function Pi(a,b){return $wnd.setTimeout(a,b)}
+function mh(a,b){return uh(a,b,a.b.a.length)}
+function oh(a,b){return vh(a,b,a.b.a.length)}
+function yrd(a){return a.c-a.b&a.a.length-1}
+function Vd(a,b){return a.a?a.a.c.fb(b):null}
+function ls(a){return a!=null?new ks(a):null}
+function st(a){return jvc(a)?a.vd():a.length}
+function nj(a){a.d==(xj(),wj)&&a.Fc();a.d=vj}
+function Erd(a){a.b=a.a++;return a.c.a[a.b]}
+function Yv(a,b){Uo(a.a,(Lz(),Kz));WG(b,a.a)}
+function bw(a,b){a.d=b;Ov(a,(Lz(),Iz));Uv(a)}
+function Rw(a,b){og(b,a.e,(Loc(),Loc(),Koc))}
+function Hk(a,b){og(b,a.b,(lpc(),lpc(),kpc))}
+function Nf(a,b){eg(a,jg(a.xb())+'-'+b,true)}
+function ih(a,b,c){jh(a,Zh(new _h(a.c),b,c))}
+function AT(a,b,c){BT.call(this,a,b,c,false)}
+function hI(a){QH();$G.call(this,a);ZH(this)}
+function Vl(){ol();Ol.call(this);dg(this,Rl)}
+function gs(a){Ur(this);Awd(this.a,0,a.wd())}
+function zE(a){return new Tac(a.Lh(),a.Ki())}
+function M$(a){J$();return new K$(I$,a,null)}
+function Cnb(a,b){return Ikb(new Jkb(a.d,b))}
+function U8(a){return a.length>0&&a.length<4}
+function Xob(a,b){return JQb(new KQb(b,a.a))}
+function spb(a,b){return new qqb(b,a.a,true)}
+function Bwb(a,b){return a?mrc(b,a,null):'-'}
+function VBb(a,b){return a.c?Eqd(a.c,b):null}
+function JH(a,b){a.a=GH(a);a.c=3;yQ(a.o.f,b)}
+function ZH(a){a.a=new sud;a.b=new sud;a.j=0}
+function bfb(){this.b=new std;this.a=new ltd}
+function ecb(a){this.a=a;this.b=new gcb('m')}
+function LRb(a,b){this.b=b;this.a=new _Rb(a)}
+function kob(a,b,c,d){gob.call(this,a,b,c,d)}
+function E9(a,b,c,d){J9(b,a.b,(W9(),N9),c,d)}
+function hVb(a,b){return Yr(a.b,Zr(a.a,b,0))}
+function gVb(a,b){return Yr(a.a,Zr(a.b,b,0))}
+function zOb(a){if(a){return us(a)}return {}}
+function c1b(a,b){!!a&&!!b&&b.td(a);return b}
+function IJb(a,b){if(!b){zJb(a);return}a.a=b}
+function Thc(){!Phc&&(Phc=Uhc());return Phc}
+function Kkb(){Lkb.call(this,($e(),$e(),Xe))}
+function HNb(){INb.call(this,null,null,null)}
+function WFb(){UFb();vFb.call(this,SFb,null)}
+function ncc(a,b){mcc.call(this,a,b,'',true)}
+function itc(a){Qsc();htc.call(this,a,false)}
+function zkc(a){return wjc((ujc(),a),'file')}
+function Hkc(a){return (ujc(),tjc).sn(a,OJd)}
+function Oic(a,b){return (ujc(),tjc).Kn(a,b)}
+function Wkc(b,a){return b.getElementById(a)}
+function Eld(a){old();return a.ownerDocument}
+function frd(a,b){var c;c=a.e;a.e=b;return c}
+function hbd(a,b,c){abd();$ad.eo(a,lbd(b),c)}
+function Dgc(e,a,b,c,d){e.clearRect(a,b,c,d)}
+function abc(){abc=p9c;_ac=new hbc(0,0,0,0)}
+function Sfd(){Sfd=p9c;Rfd=(Vjd(),Vjd(),Tjd)}
+function Jkd(){Jkd=p9c;Ikd=(old(),old(),nld)}
+function vvd(a){wvd.call(this,a,(Evd(),Avd))}
+function _lc(){Slc.call(this,'TABLE_ROW',15)}
+function gPd(){return T1(this.a,(O$b(),M$b))}
+function ctd(a,b){return kvc(b,10)&&dtd(a,b)}
+function etd(a,b){return kvc(b,10)&&ftd(a,b)}
+function ywd(a,b){return Dwd(new Array(b),a)}
+function ivc(a){return String.fromCharCode(a)}
+function Jtc(a){this.r=new $wnd.Date(c9c(a))}
+function rqc(a,b){this.a=new Eqc(b);this.b=a}
+function Lpc(){this.a='ontouchstart' in $wnd}
+function iNd(a){VG(this,a.c);this.o.i.w.Hf()}
+function Vtd(a){Lqd(a.c);a.b.b=a.b;a.b.a=a.b}
+function Etd(a,b){var c;c=a[QAd];c.call(a,b)}
+function Mc(a,b){Pwd(true,qyd);a.f=b;return a}
+function vc(a){rc();this.a=(Fc(),Ec);this.a=a}
+function kf(a,b,c){this.b=a;this.c=b;this.a=c}
+function md(a,b,c){gc.call(this,a,b);this.a=c}
+function Fg(){Gg.call(this,(abd(),wkc($doc)))}
+function eb(){eb=p9c;db=twd((Hmd(wvc),wvc.p))}
+function ib(){ib=p9c;hb=twd((Hmd(xvc),xvc.p))}
+function ob(){ob=p9c;nb=twd((Hmd(yvc),yvc.p))}
+function wb(){wb=p9c;vb=twd((Hmd(zvc),zvc.p))}
+function Cb(){Cb=p9c;Bb=twd((Hmd(Avc),Avc.p))}
+function Pb(){Pb=p9c;Ob=twd((Hmd(Dvc),Dvc.p))}
+function Ub(){Ub=p9c;Tb=twd((Hmd(Fvc),Fvc.p))}
+function rc(){rc=p9c;qc=twd((Hmd(Ivc),Ivc.p))}
+function _l(a){bm(a,!!a.b.Uc()&&Ad(a.b.Uc()))}
+function lq(a,b){mq(Rf(a.a.i),b)||a.a.b.to(b)}
+function Il(a,b){Xdd((!a.d&&Cl(a,a.o),a.d),b)}
+function Kg(a,b){!a.u&&(a.u=new es);Wr(a.u,b)}
+function Oi(a,b){return $wnd.setInterval(a,b)}
+function ao(a,b){bo(b,a.a);return $n(a,b.b.a)}
+function nB(a,b){this.a=a;this.c=a.f;this.b=b}
+function JD(a,b){this.b=a;this.c=a.e;this.a=b}
+function oD(a,b,c){this.a=c;this.b=a;this.c=b}
+function Th(a,b,c){this.a=a;this.b=b;this.c=c}
+function _k(a,b,c){this.a=a;this.b=b;this.c=c}
+function Rs(a,b,c){this.a=a;this.b=b;this.c=c}
+function OF(a,b,c){this.a=a;this.b=b;this.c=c}
+function WB(a,b,c){this.b=a;this.a=b;this.c=c}
+function WJ(a,b,c){this.b=a;this.a=b;this.c=c}
+function EB(a,b,c){this.c=a;this.a=b;this.b=c}
+function TJ(a,b,c){this.c=a;this.b=b;this.a=c}
+function IK(a,b,c){this.b=a;this.c=c;this.a=b}
+function nQ(a,b,c){this.c=a;this.a=b;this.b=c}
+function vQ(a,b,c){this.c=a;this.a=b;this.b=c}
+function vJ(a,b,c){fJ.call(this,a,b);this.a=c}
+function Fz(a,b,c){gc.call(this,a,b);this.a=c}
+function pL(a,b,c){gc.call(this,a,b);this.a=c}
+function eR(a,b,c){gc.call(this,a,b);this.a=c}
+function yR(a,b,c){gc.call(this,a,b);this.a=c}
+function jU(a,b,c){gc.call(this,a,b);this.a=c}
+function sU(a,b,c){this.c=b;this.a=a;this.b=c}
+function pV(a,b,c){this.c=a;this.b=b;this.a=c}
+function fX(a,b,c){gc.call(this,a,b);this.a=c}
+function mD(a,b,c){nD.call(this,a,dsd(b.r),c)}
+function xJ(a){fJ.call(this,a,'\u2022\u2022')}
+function aZ(a,b,c){gc.call(this,a,b);this.a=c}
+function LY(a,b,c){this.b=a;this.c=b;this.a=c}
+function HX(a,b,c){this.w=a;this.u=b;this.v=c}
+function n$(a,b,c){this.o=a;this.a=b;this.b=c}
+function T$(a,b,c){this.a=a;this.c=b;this.b=c}
+function a0(a,b,c){this.c=a;this.a=b;this.b=c}
+function u0(a,b,c){this.c=a;this.b=b;this.a=c}
+function K$(a,b,c){this.c=a;this.b=c;this.a=b}
+function A0(a,b,c){gc.call(this,a,b);this.a=c}
+function A5(a,b,c){gc.call(this,a,b);this.a=c}
+function T5(a,b,c){gc.call(this,a,b);this.a=c}
+function h3(a,b,c){gc.call(this,a,b);this.a=c}
+function W6(a,b,c){this.a=a;this.c=b;this.b=c}
+function Mcb(a,b){this.a=Icb(a);this.b=Icb(b)}
+function Lkb(a){this.a=a;this.b=new Mkb(this)}
+function HS(a){DS(this);Xr(this.a,new Srd(a))}
+function zpb(a,b,c){Apb.call(this,a,b,null,c)}
+function US(a,b,c,d){return TS(a,YS(a,b),c,d)}
+function cn(a,b,c,d){wn(Osd(a.a,b),c,d);hn(a)}
+function GR(a,b){a.b||IR(a.c,b,false);HR(a,b)}
+function uN(a){a.b||vN(a,a.a.md());return a.c}
+function cM(a){!a.b&&(a.b=new _td);return a.b}
+function Gcb(a,b){b.Aj(a.i,a.c.a);return null}
+function rfb(a,b){qfb(a,b,null,null);return a}
+function HUb(a,b){GUb(a,b.p);return a.a.Mm(b)}
+function IUb(a,b){GUb(a,b.p);return a.a.Nm(b)}
+function JUb(a,b){GUb(a,b.p);return a.a.Om(b)}
+function KUb(a,b){GUb(a,b.p);return a.a.Pm(b)}
+function LUb(a,b){GUb(a,b.p);return a.a.Qm(b)}
+function NUb(a,b){GUb(a,b.p);return a.a.Sm(b)}
+function $ub(a,b){return !a.a.sd()||!b.a.sd()}
+function GOb(a,b){return a.a&&a.b!=null?a.b:b}
+function NAb(a){return (p$b(),m$b)==a||o$b==a}
+function E6b(a){return Aac(a.c.gn(),a.a.gn())}
+function kvb(a){this.c=new lh(a);this.a=hvb()}
+function $Gb(a){this.b=a;this.c=new eHb(this)}
+function tCb(a,b){this.d=a;this.a=b?b:new FCb}
+function F8b(a,b){G8b.call(this,a,aJd,null,b)}
+function pcc(a,b,c){qcc.call(this,a,b,c,null)}
+function lcc(a,b){mcc.call(this,a,b,'',false)}
+function Zlc(){Slc.call(this,'TABLE_CELL',13)}
+function ZIb(a){yw(this);zw(this,a);TIb(this)}
+function E1b(a){eTb();A1b.call(this);this.a=a}
+function G1b(a){eTb();A1b.call(this);this.a=a}
+function xdc(a){this.k=new zdc(this);this.t=a}
+function kjd(){fjd();ljd.call(this,Qkc($doc))}
+function Qsc(){Qsc=p9c;Nsc((Lsc(),Lsc(),Ksc))}
+function wI(){wI=p9c;vI=UI(true);uI=UI(false)}
+function rwd(a,b){if(ewd){return}!!b&&(a.d=b)}
+function Ead(a,b){Bad();Fad();return Cad(a,b)}
+function Lld(a,b,c){old();a.setAttribute(b,c)}
+function hld(a,b,c,d){a.setAttributeNS(b,c,d)}
+function KRb(a,b,c){X5b(c.jh(),!b);$Rb(a.a,c)}
+function fic(a,b,c){return a.apply(b,c);var d}
+function Jfd(a,b,c){return a.rows[b].cells[c]}
+function fnd(a,b){return kvc(b,215)&&b.a==a.a}
+function Kd(a,b){return tqc(a.b,(Bi(),Ai),a,b)}
+function tt(a,b){return jvc(a)?a.xd(b):pt(a,b)}
+function lt(a,b){return a.a[a.a.length]=b,true}
+function Wr(a,b){a.a[a.a.length]=b;return true}
+function rOd(){this.b.a.md().Zb();return true}
+function pI(a){var b;b=MWb();FVb(b,a);return b}
+function tf(a){var b;b=new es;Xr(b,a);return b}
+function dt(a){var b;b=new ct;at(b,a);return b}
+function l2b(a){if(a.e){return a.e.a}return 0}
+function jod(a){Cnd();return kod(a,0,a.length)}
+function tbd(a){return abd(),a.__eventBits||0}
+function bz(a,b){return tqc(a.a,(dF(),cF),a,b)}
+function q3(a,b){return p3(a.a.a.o).Id(LWb(b))}
+function ru(a,b,c){return Gu(wu(a.c,b,c).xm())}
+function eJ(a,b,c){yQ(a.o.f,new rB(a.o.i,b,c))}
+function Reb(a,b,c){this.b=a;this.a=b;this.c=c}
+function cjb(a,b,c){gc.call(this,a,b);this.a=c}
+function fnb(a,b,c){gnb.call(this,a,b,c,false)}
+function aY(a,b,c,d,e){PX.call(this,a,b,c,d,e)}
+function FN(a,b){GN.call(this,a,b,new oN(a.i))}
+function Oz(a,b){a.c.b=OOb(b);return Pz(b,a.c)}
+function Snb(a,b){if(b.b.a.T){return}ao(a.a,b)}
+function tlb(a,b){b.a&&FOb(b)&&mKb(a.B,EOb(b))}
+function fkb(a,b){return oob(a.f,jUb(b.b),b.a)}
+function hl(a,b){return a.length>b&&a[b]||null}
+function Xnb(a,b,c){this.c=a;this.a=b;this.b=c}
+function Inb(a,b,c){this.a=a;this.b=b;this.c=c}
+function Pqb(a,b,c){this.a=a;this.b=b;this.c=c}
+function frb(a,b,c){this.a=a;this.b=b;this.c=c}
+function Rub(a,b,c){this.a=a;this.b=b;this.c=c}
+function uyb(a,b,c){this.a=a;this.b=b;this.c=c}
+function rAb(a,b,c){this.a=a;this.b=b;this.c=c}
+function Iyb(a,b,c){this.a=a;this.c=b;this.b=c}
+function CCb(a,b,c){this.a=a;this.c=b;this.b=c}
+function HCb(a,b,c){this.a=a;this.c=b;this.b=c}
+function xFb(a,b,c){this.a=a;this.c=b;this.b=c}
+function lxb(a,b,c){this.d=a;this.c=b;this.a=c}
+function Xvb(a,b,c){this.b=b;this.c=c;this.a=a}
+function oJb(a,b,c){this.a=a;this.b=b;this.c=c}
+function PKb(a,b,c){this.c=a;this.b=b;this.a=c}
+function CLb(a,b,c){this.a=a;this.c=b;this.b=c}
+function DLb(a,b,c){this.a=a;this.c=b;this.b=c}
+function NLb(a,b,c){this.b=a;this.a=b;this.c=c}
+function INb(a,b,c){this.b=a;this.a=c;this.c=b}
+function Aob(a,b,c){wd.call(this,b,c);this.a=a}
+function Zob(a,b,c){xd.call(this,a,b);this.a=c}
+function iAb(a,b,c){gc.call(this,a,b);this.a=c}
+function cQb(a,b,c){gc.call(this,a,b);this.a=c}
+function _Qb(a,b,c){this.c=a;this.a=b;this.b=c}
+function cTb(a,b,c){this.c=a;this.b=b;this.a=c}
+function LEb(a,b,c){JEb.call(this,a,b,c);Lsc()}
+function cUb(a,b,c){gc.call(this,a,b);this.a=c}
+function ARb(a,b,c,d,e){a.fillEllipse(b,c,d,e)}
+function iTb(a,b){if(_r(a.o,b)){hTb(a);a.bm()}}
+function PWb(a,b){b&&SVb(a.a,new u7b);return b}
+function POb(a){if(a){return us(a)}return null}
+function PIb(a){MIb();return ic((SIb(),RIb),a)}
+function _Zb(a){WZb();return ic((c$b(),b$b),a)}
+function OOb(a){return jvc(a)?a.vi():a.size||1}
+function bIb(a){return _Ib(a.i,a.b).Un().width}
+function m_b(a,b,c){gc.call(this,a,b);this.a=c}
+function C3b(a,b,c){gc.call(this,a,b);this.a=c}
+function t6b(a,b,c){gc.call(this,a,b);this.a=c}
+function Jac(a,b,c){gc.call(this,a,b);this.a=c}
+function Dcc(a,b,c){gc.call(this,a,b);this.a=c}
+function Ycc(a,b,c){gc.call(this,a,b);this.a=c}
+function Y4b(a,b,c){this.c=b;this.a=a;this.b=c}
+function P5b(a,b,c){Q5b.call(this,a,b,cy(a),c)}
+function jhc(a,b,c){gc.call(this,a,b);this.a=c}
+function phc(a,b,c){gc.call(this,a,b);this.a=c}
+function vhc(a,b,c){gc.call(this,a,b);this.a=c}
+function Ehc(a,b,c){gc.call(this,a,b);this.a=c}
+function E8b(a){G8b.call(this,a.e,a.c,a.a,a.b)}
+function P2b(a,b){a.o!=b&&(a.i=false);yTb(a,b)}
+function Z5b(a){!a.a&&(a.a=new ltd);return a.a}
+function ndc(a){var b;b=kdc(a);return qdc(a,b)}
+function nac(a){lac();return ic((qac(),pac),a)}
+function Ykc(a){return ajc(xjc((ujc(),tjc),a))}
+function qlc(a){return (ujc(),a).targetTouches}
+function Nic(c,a,b){return c.insertBefore(a,b)}
+function Ric(c,a,b){return c.replaceChild(a,b)}
+function sqc(a,b){!a.a&&(a.a=new es);Wr(a.a,b)}
+function Msc(a){!a.a&&(a.a=new utc);return a.a}
+function Nsc(a){!a.b&&(a.b=new stc);return a.b}
+function Cjb(){Cjb=p9c;Ajb=new Fjb;Bjb=new Gjb}
+function Cdd(){Cdd=p9c;Add=new Fdd;Bdd=new Gdd}
+function h5(){h5=p9c;g5=new RegExp('^-?\\d+$')}
+function U_(a){this.b=new _td;this.a=new d0(a)}
+function yad(a,b,c){this.b=a;this.c=b;this.a=c}
+function gtd(a,b,c){this.a=a;this.b=b;this.c=c}
+function Std(a,b,c){this.a=a;this.b=b;this.c=c}
+function uud(a,b,c){this.d=a;this.b=c;this.a=b}
+function Pad(a,b,c){gc.call(this,a,b);this.a=c}
+function oxd(a,b,c){this.a=c;this.b=a;this.c=b}
+function Qhd(b,a){Phd();b.__gwt_resolve=Rhd(a)}
+function Ild(a){old();return a.hasChildNodes()}
+function xld(a){old();return a.documentElement}
+function iod(a){Cnd();return a==null?iyd:s9c(a)}
+function Ktc(a){return a<10?'0'+a:(Cnd(),''+a)}
+function cmc(){Slc.call(this,'INLINE_FLEX',18)}
+function fmc(){Slc.call(this,'INLINE_BLOCK',3)}
+function gmc(){Slc.call(this,'INLINE_TABLE',4)}
+function wd(a,b){vd.call(this,a);this.gb(Dyd,b)}
+function xd(a,b){vd.call(this,a);this.gb(Eyd,b)}
+function Kj(){hj();Cj.call(this);this.a=new ltd}
+function Xl(a){ol();Ql.call(this,a);dg(this,Rl)}
+function uvd(a){Yqd(a.a);mvd(a.c,a.b);a.b=null}
+function Lv(a,b){YHb(a.a,b);a.j.c=true;a.w.Hf()}
+function aw(a,b){kIb(a.a,b);a.j.c=true;a.w.Hf()}
+function ew(a,b){a.D=b;Ov(a,(Lz(),Iz));a.w.Hf()}
+function Bd(a,b){a.gb(Byd,(qmd(),b?true:false))}
+function Bs(a,b){return a?a:Jud(b,'defaultObj')}
+function jH(a){return $wnd.Math.atan2(-a.b,a.a)}
+function QH(){QH=p9c;OH=$wnd.Math.sqrt(3)*LBd/2}
+function g$(){g$=p9c;f$=new vT(true,3,true,hCd)}
+function Mu(a){!a.s&&(a.s=new fx(a));return a.s}
+function SF(a){!a.e&&(a.e=new lG(a));return a.e}
+function _w(a){!a.b&&(a.b=(e_(),d_));return a.b}
+function Omd(){var a;a=Lmd(null);a.i=2;return a}
+function g_(a,b){this.a=Zsd(b);this.b=new O_(a)}
+function Z$(a,b){this.a=a;this.c=b;this.b=nr(a)}
+function E$(a,b){this.c=a;this.b=b;this.a=false}
+function ejb(a,b){this.b=a;this.c='m1';this.a=b}
+function Gib(a,b){this.a=a?a:(g3(),f3);this.b=b}
+function irb(a,b,c){hrb.call(this,a,b);this.a=c}
+function lrb(a,b,c){hrb.call(this,a,b);this.a=c}
+function prb(a,b,c){hrb.call(this,a,b);this.a=c}
+function fdb(a){xbb.call(this,a);this.a=new ltd}
+function Tz(a){this.c=a;this.b=(iU(),fU)==a?0:1}
+function $wb(a,b){Jp.call(this,a,(axb(),_wb),b)}
+function Wub(a,b){return Hqc(a.a,(Pw(),Ow),a,b)}
+function Ogb(a,b){Nkd(kld(Yr(a.a,b),pFd),'1 1')}
+function ywb(a,b){Ft(a.b);zwb(a,b.b);xwb(a,b.a)}
+function DA(a){Lqd(a.a.a);Lqd(a.b.a);Lqd(a.c.a)}
+function cH(a){a.n=false;a.Rd();!!a.k&&a.k.tg()}
+function P7(a){return a.j.a.length+a.a.a.length}
+function W7(a){return a.j.a.length+a.c.a.length}
+function aIb(a){return _Ib(a.i,a.b).Un().height}
+function sLb(a,b){return Cib(a.a,b,(Sgb(),Rgb))}
+function vCb(a,b){return a==null?b==null:T(a,b)}
+function HEb(a,b){(abd(),a.U)[OHd]=b!=null?b:''}
+function ATb(a,b){a.a=b;!!a.A&&SVb(a.A,new u7b)}
+function oVb(a,b){a.c=b;!!a.b&&SVb(a.b,new u7b)}
+function wlb(a,b){b.a&&FOb(b)&&xkb(a.n,!EOb(b))}
+function G3b(a,b){a.b=b;!!a.A&&SVb(a.A,new u7b)}
+function pIb(a,b,c){c!=bJb(a.i,b)&&dJb(a.i,b,c)}
+function BAb(a,b,c,d){CAb(b,c.Cb(),d);Wr(a.c,c)}
+function U9b(a,b,c,d,e){a.c=b;a.a=d;a.d=c;a.b=e}
+function NHb(a,b){this.a=b;this.c=a;this.b=true}
+function p0b(a,b,c){_Ub.call(this,a,b);this.a=c}
+function l8b(a,b,c){g8b.call(this,a,b);this.a=c}
+function ETb(a,b){eTb();FTb.call(this,a,b,null)}
+function Yyb(a,b){Cic((pic(),new ezb(a,b)),200)}
+function wic(a,b){a.a=Aic(a.a,[b,false]);uic(a)}
+function GWb(a){!!a.d&&St(a.d.a,(cu(),au)).Nd()}
+function Dyb(a){!!a.f&&a.b.a.length!=0&&Lg(a.f)}
+function Cdc(a){$wnd.cancelAnimationFrame(a.id)}
+function Rgc(b,a){b.globalCompositeOperation=a}
+function noc(){noc=p9c;moc=new Joc(Zyd,new ooc)}
+function Eoc(){Eoc=p9c;Doc=new Joc(Zzd,new Foc)}
+function Boc(){Boc=p9c;Aoc=new Joc($zd,new Coc)}
+function voc(){voc=p9c;uoc=new Joc(TId,new woc)}
+function yoc(){yoc=p9c;xoc=new Joc(eKd,new zoc)}
+function Xoc(){Xoc=p9c;Woc=new Joc(Yyd,new Yoc)}
+function _oc(){_oc=p9c;$oc=new Joc(cAd,new apc)}
+function cpc(){cpc=p9c;bpc=new Joc(eAd,new dpc)}
+function fpc(){fpc=p9c;epc=new Joc(dAd,new gpc)}
+function ipc(){ipc=p9c;hpc=new Joc(pKd,new jpc)}
+function lpc(){lpc=p9c;kpc=new Joc(qKd,new mpc)}
+function opc(){opc=p9c;npc=new Joc(rKd,new ppc)}
+function rpc(){rpc=p9c;qpc=new Joc(sKd,new spc)}
+function upc(){upc=p9c;tpc=new Joc(tKd,new vpc)}
+function Gpc(){Gpc=p9c;Fpc=new Joc(uKd,new Hpc)}
+function Qpc(){Qpc=p9c;Ppc=new Joc(vKd,new Rpc)}
+function xpc(){xpc=p9c;wpc=new Joc(Yzd,new ypc)}
+function usd(a,b,c){return new vsd(a.a.Gd(b,c))}
+function oad(a){return 'Point('+a.a+','+a.b+')'}
+function irc(){return ['USD','US$',2,'US$','$']}
+function RNd(){return dbc(cbc(this.a,this.a.c))}
+function qOd(){return !dsd(this.c.i.A.r).a.sd()}
+function vid(){pid.call(this,(oid(),$doc.body))}
+function $lc(){Slc.call(this,'TABLE_COLUMN',14)}
+function kmc(){Slc.call(this,'TABLE_CAPTION',8)}
+function Vqc(a,b){frc(rJd,b);return Uqc(a,'',b)}
+function qld(a,b){old();return a.appendChild(b)}
+function Awd(a,b,c){xwd(c,0,a,b,c.length,false)}
+function eud(a,b,c){this.c=a;grd.call(this,b,c)}
+function At(a,b){Iud(a);Iud(b);this.a=a;this.b=b}
+function ZD(a,b){Ry(a.d.A);Ou(a.d,a.a);Ou(a.d,b)}
+function bj(a){if(a.d.a.yc()){return}Oe(a.b,a.c)}
+function Xd(a){if(!a.b){return}Xld(a.b);a.b=null}
+function dI(a){if(!a.k){return}Zld(a.k);a.k=null}
+function eK(a){if(a.b){return fK(a)}return gK(a)}
+function Mmd(a){var b;b=Lmd(a);Umd(a,b);return b}
+function rf(a){var b;b=new nf;wf(b.a,a);return b}
+function PJ(a){var b;b=new OJ;Wr(b.a,a);return b}
+function kH(a,b){return new qad(a.a+b.a,a.b+b.b)}
+function Ni(a,b){return Yxd(function(){a.hc(b)})}
+function h_(a,b){e_();g_.call(this,a,new Srd(b))}
+function PC(a,b){QC.call(this,new Idb(b),a,null)}
+function p0(a,b,c){q0.call(this,a,b,c,(z0(),y0))}
+function eS(a,b,c,d){fS.call(this,a,b,c,d,false)}
+function IU(a,b,c,d){JU.call(this,a,b,c,d,false)}
+function C9(a,b,c,d){J9(b,a.a,(W9(),L9),c,l8(d))}
+function xQ(a){nrd(a.d);nrd(a.c);zQ(a,new FQ(3))}
+function xm(a){!a.o&&(a.o=acd(new led(a)));ah(a)}
+function TM(a){a.b=null;a.c=null;a.a=false;BM(a)}
+function X4(a,b){this.b=new es;Iqd(a.a,b,this.b)}
+function uM(a,b){this.a=a;this.b=new es;this.d=b}
+function ukb(a,b){this.a=b.a;this.b=b.b;this.c=a}
+function u5(a,b){this.i=a;this.p=b;this.a=new es}
+function _ab(a,b){return a.b[(a.c+b)%a.b.length]}
+function pmb(a){return a!=null?a:'unknown error'}
+function Hwb(a,b,c){Iwb(a,new ted(b),new red(c))}
+function nJb(a,b,c){Kad(a.a,b);Jad(a.a,c);kJb(a)}
+function Mbb(a,b){a.lm(Qbb(b));Wbb(a,b);Vbb(a,b)}
+function wKb(a,b,c){b.pb(oKb(a.b,a.b.b,c,a.b.a))}
+function yCb(a,b){var c;c=Zr(a.a,b,0);Ugd(a.b,c)}
+function Sac(a,b,c){this.a=new qad(a,b);this.b=c}
+function Cgc(f,a,b,c,d,e){f.arc(a,b,c,d,e,false)}
+function BRb(a,b,c,d,e){a.strokeEllipse(b,c,d,e)}
+function uqc(a,b,c,d){var e;e=xqc(a,b,c);e.od(d)}
+function bqc(a){var b;if(_pc){b=new aqc;a.Fb(b)}}
+function h2b(){h2b=p9c;eTb();g2b=new Du(false,0)}
+function Kr(){Kr=p9c;Jr=$wnd.devicePixelRatio||1}
+function klc(a){return Ojc((ujc(),a).clientX||0)}
+function llc(a){return Ojc((ujc(),a).clientY||0)}
+function rbd(a){return abd(),zcd((ujc(),a).type)}
+function Qgd(a){return (abd(),a.U).selectedIndex}
+function Gad(){Bad();return typeof $wnd.C2S!=$Id}
+function Ald(a,b){old();return a.getNamedItem(b)}
+function tld(a,b){old();return a.getAttribute(b)}
+function _9(a){if(lUb(a)){return 0}return a.Tl()}
+function vTb(a){if(!a.p){return}SVb(a.p,new u7b)}
+function jtd(a){a.b=a.a;htd(a);return a.c.b[a.b]}
+function cdd(a){var b=a[lLd];return b==null?-1:b}
+function cud(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null}
+function lud(a,b){mud(a,b,a.c.b,a.c);return true}
+function Prd(a,b,c){Rwd(b,a.length);Nrd(a,0,b,c)}
+function ef(a,b,c,d,e){bf();a.nb(new hf(d,b,e,c))}
+function Vkb(a,b){bn(a.b,(Xm(),ic((_m(),$m),b)))}
+function Xkb(a,b){fn(a.b,(Xm(),ic((_m(),$m),b)))}
+function Ov(a,b){if(a.a){Uo(a.a,b);hIb(a.a,true)}}
+function Jw(a,b){if(a.f){throw I8c(new dnd)}a.f=b}
+function bt(a,b){a.b==(gt(),et)?b.tb(a.c):(a.a=b)}
+function qH(a,b){Jl(a,b.c);vH(a,b.d);a.o.i.w.Hf()}
+function Jv(a){XHb(a.a,false);a.j.c=true;a.w.Hf()}
+function vdd(a){wo.call(this);_f(this,(abd(),a))}
+function XM(a){vM.call(this,a,(QQ(),OQ));SK(this)}
+function cB(a,b,c){BA.call(this,a,a.C,b);this.a=c}
+function wtc(a,b){this.c=a;this.b=b;this.a=false}
+function HQ(a,b){a>0&&(this.b=a);b<=0&&(this.a=b)}
+function Pdb(a,b){!!b&&(hs(a.w,b)!=-1||Wr(a.w,b))}
+function qhb(a,b,c){!!b&&Xr(a.i,b);!!c&&Xr(a.k,c)}
+function Skb(a,b,c,d){return Ukb(a,new mo(b,c),d)}
+function eV(a,b,c){return cbc(new ibc(a,0,0),b*c)}
+function HV(a,b,c){return a.Jf(c,b.b,(z0(),y0)).c}
+function Zcb(a,b,c){return (RTb(),MTb)==a?b:b*2+c}
+function ZK(a,b){return dL(cWb(a.o.i.C),dsd(b.r))}
+function zG(a,b){return !!a.j&&a.a&&sac(b,a.j)<=5}
+function Lu(a){return !a.s&&(a.s=new fx(a)),a.s.a}
+function xJb(a){return FJb(a,a.a?a.a:(abc(),_ac))}
+function snd(a){return a==0||isNaN(a)?a:a<0?-1:1}
+function fJb(a){this.a=a;this.b=false;this.c=true}
+function nBb(a){this.b=new es;this.a=a;this.c=a.b}
+function xDb(a){this.a=new ltd;this.c=a;wDb(this)}
+function oeb(a){this.a=a;!!a&&(this.b=ieb(a,ZEd))}
+function W0b(a,b,c){V0b.call(this,new nUb(a),b,c)}
+function job(a,b,c){vd.call(this,a);fob(this,b,c)}
+function z2b(a,b){h2b();y2b.call(this,a);this.e=b}
+function K2b(a,b){if(a.j!=b){a.j=b;wTb(a);vTb(a)}}
+function N2b(a,b){if(a.e!=b){a.e=b;wTb(a);vTb(a)}}
+function RWb(a,b){return !b?a.a.e:QWb(a,dsd(b.r))}
+function F9b(a,b){return H9b(a.Lh(),b,K9b(a),LBd)}
+function sac(a,b){return rac(a.a,a.b,0,b.a,b.b,0)}
+function b1b(a){return !!a&&a.vd()>0?a.zd(0):null}
+function iad(a,b){return new qad(a.a/b.a,a.b/b.b)}
+function lad(a,b){return new qad(a.a-b.a,a.b-b.b)}
+function mad(a,b){return new qad(a.a*b.a,a.b*b.b)}
+function mKb(a,b){var c;c=kKb(a,b);!!c&&Xw(a.b,c)}
+function C1b(a,b){Y_b();Gqd(X_b,b)&&ATb(a,$_b(b))}
+function Ul(a,b){b==null&&(b=(qmd(),omd));Tl(a,b)}
+function ehd(a,b){fhd.call(this,a,false);this.b=b}
+function ued(a){sed.call(this);zed(this.a,a,true)}
+function JCb(){Uc.call(this,'cannot accept null')}
+function Q5b(a,b,c,d){R5b.call(this,a,b,c,d,null)}
+function EIb(a,b,c,d,e){sJb(a.d,_Hb(a.a),b,c,d,e)}
+function cld(a,b,c){return a.createElementNS(b,c)}
+function ypd(a,b){return (a.a[b>>5]&1<<(b&31))!=0}
+function Osd(a,b){return ctd(a.a,b)?a.b[b.k]:null}
+function Qe(a){if(a.c){return}a.c=true;a.b.qb(a.d)}
+function Rh(a){a.b.c!=null?Qub(a.a,a.b.c):Pub(a.a)}
+function p8b(a){var b;b=n8b(a);_r(a.b,b);return b}
+function UVb(a){!a.a&&(a.a=new UWb(a));return a.a}
+function kud(a){vtd.call(this,new _td);Lr(this,a)}
+function Xsd(a){this.c=a;this.a=new ktd(this.c.a)}
+function Hdc(){this.a=new es;this.b=new Idc(this)}
+function zk(){this.a=new Pvd((Cnd(),Bnd));this.b=2}
+function ee(a,b,c){ce();this.a=a;this.b=c;this.c=b}
+function bo(a,b){if(a.a==b){return}a.a=b;Un(a.b,b)}
+function Em(a,b){Yd(a.a,b);Gm(a);Cm(a);a.e=jm(a.f)}
+function rm(a,b){if(a.o){Zld(a.o.a);a.o=null}Sg(a)}
+function IG(a,b){b.length==1?(a.k=b[0]):(a.k=null)}
+function VK(a,b){return b.b.vd()<2||aVb(a.o.i.C,b)}
+function RL(a,b){yQ(a.o.f,b);Ry(Lu(a.o.i).b);SL(a)}
+function Xf(a,b){eg(a,jg((abd(),a.U))+'-'+b,false)}
+function ql(a){var b;sg(a);b=a.$c();-1==b&&a._c(0)}
+function Zt(a,b){var c;if(Xt){c=new Yt(b);a.Fb(c)}}
+function Pz(a,b){var c;c=or(MOb(a));b.a=c;return b}
+function Rbb(a,b){var c;c=jUb(a);Mbb(c,b);return c}
+function _1(a){var b;b=new Z1(a);b.k=true;return b}
+function Dkd(a){a.onreadystatechange=function(){}}
+function cN(a,b){DM.call(this,a);this.a=b;_M(this)}
+function Kgb(a,b){this.c=a;this.b=b;this.a=new Qgb}
+function qKb(){this.e=new tKb(this);this.f=new JKb}
+function GD(a,b){this.a=Ndb(new Idb(b),a);this.b=a}
+function ewb(a){if(!a){throw I8c(new tnd)}this.a=a}
+function qVb(a,b){this.a=new pad;this.c=a;this.a=b}
+function jkb(a,b,c){return new Aob(new yub(a),b,c)}
+function dN(a,b,c){return uN(b.a)&&jN(a,c,uN(b.b))}
+function JNb(a,b){return tqc(a.a,(Bi(),Ai),null,b)}
+function hub(a,b){return a.b.gc(b)?Xeb(a.a,b):null}
+function MOb(a){return jvc(a)?a.ti():a.color||null}
+function E7b(a,b){F7b.call(this,a.d,a.a,a.c,a.b,b)}
+function x2b(a,b,c){w2b.call(this,a,b);lTb(this,c)}
+function $1b(a,b,c,d,e){_1b.call(this,a,b,c,d,e,e)}
+function red(a){ped.call(this);zed(this.a,a,false)}
+function zo(){wo.call(this);$f(this,xkc($doc,Nzd))}
+function Gv(){Uc.call(this,'Cannot resolve pivot')}
+function Ylc(){Slc.call(this,'TABLE_ROW_GROUP',12)}
+function Uoc(){Uoc=p9c;Toc=new Joc('drop',new Voc)}
+function Nqd(){this.d=new Ctd(this);this.e=new Qtd}
+function Oqd(){this.d=new Ctd(this);this.e=new Qtd}
+function utd(a){this.a=(a.vd(),new mtd);Lr(this,a)}
+function Psd(a,b,c){atd(a.a,b);return Ssd(a,b.k,c)}
+function sld(a,b){old();return a.createTextNode(b)}
+function Mtd(a,b){return !(a.a.get(b)===undefined)}
+function yh(a){if(Bh(a)){return}a.j?Eh(a):undefined}
+function Ah(a){if(Bh(a)){return}a.j?undefined:Eh(a)}
+function _i(a){if(a.p){return a.p.Gb()}return false}
+function ec(){var a;a=new cc;a.b=(nc(),mc);return a}
+function _sd(a,b){var c;c=$sd(a);Yrd(c,b);return c}
+function Pmd(a){var b;b=Lmd(a);b.o=a;b.i=1;return b}
+function Ak(a,b){og(b,a,(_oc(),_oc(),$oc));return a}
+function pk(a,b){this.a=aod(a,(Aud(),yud));this.b=b}
+function Rc(a){Jc(this);this.i=a;Lc(this);this.bb()}
+function ax(a){return (!a.b&&(a.b=(e_(),d_)),a.b).b}
+function Iu(a,b){!!a.A&&!!a.B&&Hqd(a.B,b,bz(a.A,b))}
+function v8(a,b,c){c!=null&&Hqd(a.a,mnd(b),s9c(c))}
+function K6(a,b,c){var d;for(d=0;d0&&(a.a+=',',a);a.a+=b}
+function Efd(a,b){!!a.e&&(b.a=a.e.a);a.e=b;hgd(a.e)}
+function Aic(a,b){!a&&(a=[]);a[a.length]=b;return a}
+function d9c(a){if(mvc(a)){return a|0}return Xuc(a)}
+function Qbd(){if(Gad()){return new Pbd}return null}
+function Qud(a){Lud();return !a?Kud:new Pud(Iud(a))}
+function Hld(a){old();return a.attributes.length!=0}
+function Jqd(a,b){return ovc(b)?Kqd(a,b):Btd(a.d,b)}
+function rPd(a){return og(this,a,(Gpc(),Gpc(),Fpc))}
+function sPd(a){return og(this,a,(Jpc(),Jpc(),Ipc))}
+function tPd(a){return og(this,a,(Npc(),Npc(),Mpc))}
+function uPd(a){return og(this,a,(Qpc(),Qpc(),Ppc))}
+function svd(a){this.b=null;this.a=(Fsd(),!a?Esd:a)}
+function A9c(){Uc.call(this,'eval() returned null')}
+function jp(a){this.d=a;this.a=5;this.e=new np(this)}
+function Vnd(a,b){return Hnd(a.substr(0,b.length),b)}
+function Wf(a){return (abd(),a.U).style.display!=bzd}
+function dhd(a){eg(a,jg((abd(),a.U))+'-'+Dzd,false)}
+function Vx(a,b){if(b){return _r(a.t,b)}return false}
+function Zx(a,b){if(b){return Or(a.t,b)}return false}
+function $r(a,b){var c;c=a.zd(b);Bwd(a.a,b);return c}
+function as(a,b,c){var d;d=a.zd(b);a.a[b]=c;return d}
+function dJb(a,b,c){var d;if(b){d=Xtd(a.a,b);d.c=c}}
+function dB(a,b,c){return eB(a,b,(Xrd(),new ksd(c)))}
+function fB(a,b,c){return gB(a,b,(Xrd(),new ksd(c)))}
+function jB(a,b,c){return kB(a,b,(Xrd(),new ksd(c)))}
+function jvc(a){return !Array.isArray(a)&&a.Hp===t9c}
+function Xw(a,b){var c;c=a.d;a.d=b;c==a.a&&Yw(a,a.d)}
+function JE(a,b){LE(a.Me(),b.Me());LE(a.Ne(),b.Ne())}
+function qR(a,b){return new qad(dR(a.a,b),xR(a.b,b))}
+function BS(a){return a!=null&&!Hnd(a,'=')?bod(a):''}
+function RT(a,b,c,d){return new QT(a,c,new qad(b,d))}
+function GV(a,b,c){return cbc(new ibc(a,0,0),10/b*c)}
+function b$(a,b){this.a=cbc(new ibc(a,0,0),10*b/2.5)}
+function b4(a){if(a!=null){return Xmd(a,10)}return 0}
+function YM(a){var b;b=new By;qx(b,a.o.i.A);return b}
+function d9(a){var b;b=0;lUb(a)||(b=a.Tl());return b}
+function TE(a){UE.call(this,a,(YE(),VE),false,false)}
+function TA(a,b,c){pA.call(this,a);this.b=b;this.a=c}
+function wH(a,b,c){$G.call(this,a);this.e=b;this.n=c}
+function yK(a,b,c){$G.call(this,a);this.a=b;this.c=c}
+function xjb(a,b,c){yjb.call(this,a,b,c,(Cjb(),Bjb))}
+function fOb(a,b){eOb.call(this,a,new YNb,new iOb,b)}
+function Xud(a,b){if(a<0||a>=b){throw I8c(new mmd)}}
+function AJb(a,b){var c;if(b){c=a.a;zJb(a);IJb(a,c)}}
+function Pkb(a,b,c){Zn(Ynb(a.e,As(c,(enb(),bnb))),b)}
+function Hgc(d,a,b,c){d.fillText&&d.fillText(a,b,c)}
+function Fmd(){Fmd=p9c;Emd=suc(N5c,lyd,392,128,0,1)}
+function ond(){ond=p9c;nnd=suc(W5c,lyd,215,256,0,1)}
+function DOb(){DOb=p9c;COb=new IOb;BOb=new JOb(null)}
+function OUb(){FUb();this.a=EUb;this.c=new QUb(this)}
+function jKb(){cKb();this.b=(Os(),Ls);this.a=new Iqc}
+function N0b(a,b){this.c=a;this.b=b;this.a=a?a.a+1:0}
+function ibc(a,b,c){abc();this.b=a;this.a=c;this.c=b}
+function p5b(a){this.b=new es;this.c=new es;this.a=a}
+function iXb(a){if(a.a){return a.a.c}return a.d.Bm()}
+function Hqc(a,b,c,d){return new Fqc(tqc(a.a,b,c,d))}
+function Z8c(a,b){return M8c(Suc(mvc(a)?b9c(a):a,b))}
+function $8c(a,b){return M8c(Tuc(mvc(a)?b9c(a):a,b))}
+function _8c(a,b){return M8c(Uuc(mvc(a)?b9c(a):a,b))}
+function uFb(a){return Yr(a.c,Rf(a.a).selectedIndex)}
+function wCb(a){return Yr(a.a,Rf(a.b).selectedIndex)}
+function AOb(a){return jvc(a)?a.Pi():a.hasUID||false}
+function Mkc(a){return (ujc(),a).createElement('td')}
+function Nkc(a){return (ujc(),a).createElement('tr')}
+function Fdc(a,b){_r(a.a,b);a.a.a.length==0&&Hi(a.b)}
+function Yqc(a,b){Tqc();Zqc.call(this,!a?null:a.a,b)}
+function tqd(a){bnd.call(this,(Cnd(),a==null?iyd:a))}
+function uqd(a){bnd.call(this,(Cnd(),a==null?iyd:a))}
+function Vlc(){Slc.call(this,'TABLE_COLUMN_GROUP',9)}
+function fgd(a){this.c=a;this.d=this.c.i.b;dgd(this)}
+function gpd(a,b,c){Nod();this.e=a;this.d=b;this.a=c}
+function Jld(a,b,c){old();return a.insertBefore(b,c)}
+function qid(a){oid();try{a.Jb()}finally{rtd(nid,a)}}
+function tud(a){a.c=a.b;a.b=a.b.a;++a.a;return a.c.c}
+function ptd(a,b){var c;c=a.a.pp(b,a);return c==null}
+function Ssd(a,b,c){var d;d=a.b[b];a.b[b]=c;return d}
+function Ap(a,b){var c;Fp(a,b);c=Yr(a.c,b);ixb(a.a,c)}
+function fw(a,b){if(!b){return null}return rIb(a.a,b)}
+function gw(a,b){if(!b){return null}return sIb(a.a,b)}
+function iw(a,b){if(!b){return null}return uIb(a.a,b)}
+function jw(a,b){if(!b){return null}return vIb(a.a,b)}
+function Gi(a){if(!a){return null}return a.Yc(new Ui)}
+function hp(a){if(a.length>0){return a[0]}return null}
+function Y(a){X();if(a>=W.length)return 0;return W[a]}
+function Yy(a,b){var c;c=_r(a.w,b);c&&a.rf();return c}
+function Sy(a,b){var c;c=_r(a.q,b);c&&a.rf();return c}
+function Ty(a,b){var c;c=_r(a.r,b);c&&a.rf();return c}
+function Wy(a,b){var c;c=_r(a.C,b);c&&a.rf();return c}
+function Zy(a,b){var c;c=_r(a.B,b);c&&a.rf();return c}
+function ro(a,b){if(b<0||b>a.i.c){throw I8c(new kmd)}}
+function BC(a,b){this.a=b;this.c=a;this.b=new Yu(a.A)}
+function LR(a,b,c){this.b=b;this.c=a;this.a=new gs(c)}
+function JG(a,b,c){this.i=a;this.d=new xG(c);this.f=b}
+function _W(a){TW(this);this.a=a?a:(dX(),bX);this.c=0}
+function b2(a,b){Z1.call(this,a);this.n=_0b(b,this.n)}
+function gob(a,b,c,d){wd.call(this,a,b);fob(this,c,d)}
+function hob(a,b,c,d){xd.call(this,a,b);fob(this,c,d)}
+function TS(a,b,c,d){return new KY(b,c,d,a.n,a.f,a.f)}
+function jN(a,b,c){return !!c&&sac(jw(a.i,c),b)0?1:0}
+function dm(a){return a.Uc().fb(Gyd)!=null?new cm(a):a}
+function Vs(a){return a==null||a.length==0?0:Xmd(a,10)}
+function hx(a){return tF(_w(a.c),a.c.a.b,a.c.c.C).bg()}
+function Gx(a,b,c){return hs(a.r,b)!=-1&&hs(a.r,c)!=-1}
+function iK(a,b,c){return !!a&&!eK(new hK(a,b,c)).sd()}
+function de(a,b,c,d){ce();ee.call(this,b,c,d);this.f=a}
+function $G(a){if(!a){throw I8c(new bnd(JBd))}this.o=a}
+function qo(a,b){if(b<0||b>=a.i.c){throw I8c(new kmd)}}
+function XP(a){if(a.c){return a.c.c}return a.a.a[0][0]}
+function OX(a,b,c){return KF(a,b)||sac(dbc(MF(a)),b)=0&&a.Bb(b+dzd);c>=0&&a.zb(c+dzd)}
+function Kib(a,b,c){b!=null&&!Hnd(b,'0')&&Otd(c.e,a,b)}
+function dM(a){a.a=null;Vtd((!a.b&&(a.b=new _td),a.b))}
+function HZ(a){return (O1b(),M1b)==a.n?a.k.e:GX(a,a.i)}
+function IZ(a){return (O1b(),M1b)==a.n?GX(a,a.i):a.k.e}
+function Znb(a,b){return Fqd(a.a,b.j!=null?b.j:''+b.k)}
+function dpb(a,b){yQ(a.b.f,new DD(a.b.i,b));a.b.a.Rd()}
+function DRb(a,b){if(b.sd()){return}Xr(a.a,b);GRb(a,b)}
+function kTb(a,b){a.p=b;a.bm();!!a.A&&SVb(a.A,new u7b)}
+function pTb(a,b){a.s=b;hTb(a);!!a.A&&SVb(a.A,new u7b)}
+function Oac(a,b){return new Tac(lad(a.a,b.a),a.b-b.b)}
+function Pac(a,b){return new Tac(mad(a.a,b.a),a.b*b.b)}
+function s8b(a,b){var c;c=new utd(b);Qqd(c,a);return c}
+function xGb(a){var b=URL.createObjectURL(a);return b}
+function Jkc(a){return (ujc(),a).createElement('span')}
+function Jpc(){Jpc=p9c;Ipc=new Joc('touchend',new Kpc)}
+function Loc(){Loc=p9c;Koc=new Joc('dblclick',new Moc)}
+function Qoc(){Qoc=p9c;Poc=new Joc('dragover',new Soc)}
+function eQ(){eQ=p9c;cQ=new fQ(iBd,0);dQ=new fQ(hBd,1)}
+function ffd(a,b){var c;c=a.S;c.b=b.a;!!c.d&&Mo(c.d,b)}
+function gfd(a,b){var c;c=a.S;c.e=b.a;!!c.d&&No(c.d,b)}
+function hqc(a,b){var c;if(fqc){c=new gqc(b);oqc(a,c)}}
+function qod(a,b){a.a+=String.fromCharCode(b);return a}
+function rld(a,b){old();return a.createCDATASection(b)}
+function kwd(a,b){if(!cwd){return}pwd(a,(Uvd(),Rvd),b)}
+function lwd(a,b){if(!cwd){return}pwd(a,(Uvd(),Svd),b)}
+function Ewd(a,b){var c;c=console[a];c.call(console,b)}
+function wwd(a,b){var c;c=a.slice(0,b);return wuc(c,a)}
+function Czb(a,b,c){wyb.call(this,b);this.c=c;this.b=a}
+function T2b(a,b,c,d){S2b.call(this,a,b,c);xTb(this,d)}
+function sgb(a,b,c){this.b=a;Ffb.call(this,b);this.a=c}
+function sNd(a){!!this.k&&this.k.og(a);bH(this,this.a)}
+function sud(){this.a=new vud;this.c=new vud;rud(this)}
+function kic(a){$wnd.setTimeout(function(){throw a},0)}
+function Wlc(){Slc.call(this,'TABLE_HEADER_GROUP',10)}
+function Xlc(){Slc.call(this,'TABLE_FOOTER_GROUP',11)}
+function iu(a,b){Ot();Ut.call(this,b);this.a=a;Rt(this)}
+function vA(a,b){this.b=a;this.a=new Cy(b);Wx(this.a,a)}
+function HA(){this.a=new LA;this.b=new NA;this.c=new MA}
+function Lk(a){Kk();return Jk.hasOwnProperty(a)?Jk[a]:a}
+function jK(a,b,c,d){return !a?null:bK(new hK(a,b,c),d)}
+function qt(a,b){return jvc(a)?a.od(b):(a.push(b),true)}
+function AV(a,b){return BV(a,new jX((HU(),AU),false),b)}
+function Ad(a){return pvc((qmd(),pmd))===pvc(a.fb(Gyd))}
+function yd(a){return pvc((qmd(),pmd))===pvc(a.fb(Byd))}
+function zd(a){return pvc((qmd(),pmd))===pvc(a.fb(Fyd))}
+function l0(a){return new q0(a.c,a.o,false,B0(a.d,a.j))}
+function e0(a){return new G$(new vT(true,5,true,gCd),a)}
+function UX(a,b){return kH(Bac(b,new qad(0,0),a.e),a.f)}
+function Id(a,b){a.c==b?Od(a,Md(a,a.c)):Od(a,Rd(a.c,b))}
+function De(a,b){b!=null&&(1&wl(a.a).a)>0!=b&&a.a.dd(b)}
+function P4(a,b,c){var d;d=Eqd(a.a,mnd(b));!!d&&d.km(c)}
+function ckb(a,b,c,d,e,f){nkb(a,b,new sob(c,d,e,a.f,f))}
+function D1(a,b,c,d,e,f){E1.call(this,a,b,c,d,e,true,f)}
+function cpb(a,b,c,d,e){kob.call(this,a,b,c,d);this.a=e}
+function UV(a,b,c,d,e){this.b=a;this.a=TV(this,b,c,d,e)}
+function aQ(a){this.d=a;this.a=UP(this);this.b=VP(this)}
+function NL(){this.a=new QL;this.b=new QL;this.c=this.a}
+function Pwb(a){if(a){this.a=a;this.b=new Am;Mwb(this)}}
+function JPb(a,b,c,d){this.b=a;this.a=b;this.c=nLb(c,d)}
+function Zyb(a,b){wyb.call(this,b);this.a=null;this.b=a}
+function S3b(a,b,c){R3b.call(this,null,a,b);xTb(this,c)}
+function urb(a){trb.call(this,new Agb(O7b(new Q7b(a))))}
+function Qkb(a,b){Tkb(a);a.a=new jub(b,Zkb(a.d));Rkb(a)}
+function nDb(a,b){if(b!=a.e){a.e=b;!!a.b&&PCb(a.b,a.e)}}
+function BTb(a,b){a.b=new gs(b);!!a.A&&SVb(a.A,new u7b)}
+function A8b(a,b,c){B8b(a,b,c)&&!!a.d&&SVb(a.d,new u7b)}
+function tqb(a,b){yQ(a.a.f.f,oqb(a.a,b));a.a.f.i.w.Hf()}
+function T9b(a){return new hbc(a.c,a.d,a.a-a.c,a.b-a.d)}
+function dbc(a){return new qad(a.b.a+a.c/2,a.b.b+a.a/2)}
+function Ckc(a){return (ujc(),a).createElement('label')}
+function Okc(a){return (ujc(),a).createElement('table')}
+function Lkc(a){return (ujc(),a).createElement('tbody')}
+function RH(a){if(a==(s6b(),m6b)){return h6b}return m6b}
+function lcb(a){if(a!=null){return Xmd(a,10)}return dyd}
+function Iud(a){if(a==null){throw I8c(new tnd)}return a}
+function puc(a){if(a==null){throw I8c(new tnd)}this.a=a}
+function Pwd(a,b){if(!a){throw I8c(new bnd((Cnd(),b)))}}
+function lvd(a,b){var c;c=new zvd;nvd(a,b,c);return c.d}
+function eoc(a,b){var c;c=coc(b);Lic(doc(a),c);return c}
+function hq(a){!a.o&&(a.o=jm(oq(new nq(a))));return a.o}
+function qNd(a){this.c&&!a.d&&Ry(this.o.i.A);RK(this,a)}
+function Xac(a){a?(this.a=a):(this.a=(Xrd(),Xrd(),Wrd))}
+function Dgd(a){xgd();Cgd.call(this,(Z9c(),new U9c(a)))}
+function Ih(a,b){pg(a.b,new gh(b),_pc?_pc:(_pc=new Ioc))}
+function Pn(a){pg(a,new On(a),(!Vpc&&(Vpc=new Ioc),Vpc))}
+function Npc(){Npc=p9c;Mpc=new Joc('touchmove',new Opc)}
+function Xnc(){Xnc=p9c;Unc=[];Vnc=[];Wnc=[];Snc=new _nc}
+function End(a,b){var c,d;c=a;d=b;return c==d?0:c0)&&Ml(a)}
+function Dy(a,b){return lsd(dsd(a.r),b)||lsd(dsd(a.s),b)}
+function COd(a){return Snd(fc(a),'_',' ').toLowerCase()}
+function cod(a){return String.fromCharCode.apply(null,a)}
+function ws(a,b,c){return typeof a[b]!==undefined?a[b]:c}
+function UE(a,b,c,d){this.c=a;this.a=b;this.d=c;this.b=d}
+function zF(a,b,c,d){this.c=a;this.d=b;this.a=c;this.b=d}
+function hf(a,b,c,d){this.c=a;this.d=b;this.b=c;this.a=d}
+function BT(a,b,c,d){this.d=a;this.c=b;this.b=c;this.a=d}
+function LS(a,b,c,d){this.b=a;this.c=d;this.d=b;this.a=c}
+function IX(a,b,c,d){this.c=c;this.d=d;this.b=a;this.a=b}
+function RX(a,b,c,d){this.b=a;this.d=b;this.a=c;this.c=d}
+function WZ(a,b,c,d){this.d=b;this.b=a;this.c=c;this.a=d}
+function P$(a,b,c,d){this.a=a;this.b=b;this.c=d;this.d=c}
+function $$(a,b,c,d){this.a=a;this.b=d;this.c=b;this.d=c}
+function nV(a,b,c,d){this.a=c;this.b=d;lV.call(this,a,b)}
+function oV(a,b,c,d){this.b=c;this.a=d;lV.call(this,a,b)}
+function lr(a,b,c,d){gc.call(this,a,b);this.b=c;this.a=d}
+function OT(a,b,c,d){gc.call(this,a,b);this.b=c;this.a=d}
+function rR(a,b,c,d){gc.call(this,a,b);this.a=c;this.b=d}
+function Y5(a,b,c,d){gc.call(this,a,b);this.a=c;this.b=d}
+function Xcb(a){Ucb();Ycb.call(this,a,(Xrd(),Xrd(),Urd))}
+function Vlb(a){rlb();Ulb.call(this,new Dmb(a,null),qlb)}
+function CWb(a,b){if(a.e==b){return}a.e=b;SVb(a,new u7b)}
+function uVb(a,b){if(!b){return}HVb(a,dsd(a.n).b.vd(),b)}
+function XBb(a,b){return new utd(b!=(Kbc(),Jbc)?b.b:a.d)}
+function Hqb(a,b){a.a=b;ud(a,Gyd,(qmd(),a.a?true:false))}
+function oXb(a,b){a.f=b>0.95?0.95:b<-0.95?-0.95:b;vTb(a)}
+function kQ(a,b){jQ(a,new Y8b(''),new nQ(a.o.i,a.o.f,b))}
+function L5b(a,b){return kvc(b,63)?jVb(a.a,b):jVb(a.b,b)}
+function Q3b(a){R3b.call(this,a,(O1b(),M1b),(s6b(),m6b))}
+function Y_b(){Y_b=p9c;X_b=new ltd;Z_b(W_b());Z_b(n_b())}
+function MWb(){var a;a=new IWb;BWb(a,new hu(a));return a}
+function S0b(a){var b;b=new gs(a.a.a);Wr(b,a.b);return b}
+function Z7b(a){this.b=new gs(a);this.a=new es;W7b(this)}
+function tfb(){this.b=new es;this.c=new es;this.a=new es}
+function Sz(){this.b=new Tz((iU(),fU));this.c=new Tz(hU)}
+function Lrc(a){krc();this.b=new es;this.a=a;yrc(this,a)}
+function Med(a,b){tdc(a);gg(b.a,b.c);b.c&&b.a.O.Ab(true)}
+function zid(a,b){a.c=b.b;Aid(a,a.c);a.d.d.Vb();kqc(a,b)}
+function Jed(a){Ied.call(this,(Ved(),Ted),(Ued(),Sed),a)}
+function qkd(){this.f=this.vc();this.b=(abd(),wkc($doc))}
+function Ekc(a){return (ujc(),tjc).tn(a,dKd,false,false)}
+function Akc(a){return (ujc(),a).createElement('iframe')}
+function Dkc(a){return (ujc(),a).createElement('legend')}
+function Ikc(a){return (ujc(),a).createElement('select')}
+function Eqd(a,b){return ovc(b)?Fqd(a,b):Bqd(ztd(a.d,b))}
+function Rsd(a,b){return etd(a.a,b)?Ssd(a,b.k,null):null}
+function k1b(a){i1b();return a>0&&a<=126?h1b[a-1].c:null}
+function n1b(a){i1b();return a>0&&a<=126&&h1b[a-1].a==0}
+function sj(a){if(a.a){return}a.a=true;wic((pic(),oic),a)}
+function hid(a){if(kvc(a.a,1010)){return a.a}return null}
+function AUb(a){if(a!=(s6b(),h6b)){return h6b}return q6b}
+function Wod(a){var b;b=a.a[0];return a.e>0||b==EId?b:-b}
+function dqd(a,b){hqd(a.a,a.a,a.d,b.a,b.d);Qod(a);a.b=-2}
+function fmd(a,b,c,d){a.a=Xnd(a.a,0,b)+(''+d)+Ynd(a.a,c)}
+function Aw(a,b){a.o=b;!!a.f&&cJb(a.f.a.i,(Lz(),Iz),true)}
+function Bw(a,b){a.p=b;!!a.f&&cJb(a.f.a.i,(Lz(),Iz),true)}
+function Cw(a,b){a.q=b;!!a.f&&cJb(a.f.a.i,(Lz(),Iz),true)}
+function Ew(a,b){a.r=b;!!a.f&&cJb(a.f.a.i,(Lz(),Iz),true)}
+function Fw(a,b){a.s=b;!!a.f&&cJb(a.f.a.i,(Lz(),Iz),true)}
+function Hw(a,b){a.j=b;!!a.f&&cJb(a.f.a.i,(Lz(),Iz),true)}
+function Iw(a,b){a.k=b;!!a.f&&cJb(a.f.a.i,(Lz(),Iz),true)}
+function Kw(a,b){a.n=b;!!a.f&&cJb(a.f.a.i,(Lz(),Iz),true)}
+function Lw(a,b){a.t=b;!!a.f&&cJb(a.f.a.i,(Lz(),Iz),true)}
+function Mw(a,b){a.u=b;!!a.f&&cJb(a.f.a.i,(Lz(),Iz),true)}
+function cz(a,b){if(a.b!=b){a.b=b;a.b||vqc(a.a,new eF,a)}}
+function DB(a){if(a.b){!a.d&&(a.d=vE(a.c.C,a.a));yB(a.d)}}
+function Drd(a){this.d=a;this.a=this.d.b;this.b=this.d.c}
+function Re(a){this.b=a;this.d=new Ve(this);this.a=new Ue}
+function WF(a){a.a=null;QF(a);a.c=null;bG(a);return false}
+function LL(a){if(a.c==a.a){return oL(),mL}return oL(),nL}
+function p7(a){if(a==2){return X1b(),T1b}return X1b(),U1b}
+function KB(a,b){HB();return new JB(new o0b(null,a),b,FB)}
+function wJ(a,b,c){return new vJ(a,c,Bs(tJ(b),new gJ(b)))}
+function Ju(a,b){return nqc(a.o,(!Xt&&(Xt=new Ioc),Xt),b)}
+function pr(a,b){return !Zrd(a,b)&&!a.b.rd(b)&&!b.b.rd(a)}
+function $N(a){return a.a!=null&&ZN((Swd(a.a!=null),a.a))}
+function m$(a,b){g$();n$.call(this,a,b,(Xrd(),Xrd(),Urd))}
+function dY(a,b,c,d,e,f){PX.call(this,a,b,d,e,f);this.a=c}
+function Heb(a,b,c,d){gc.call(this,a,b);this.b=d;this.a=c}
+function vab(a,b,c,d){gc.call(this,a,b);this.b=c;this.a=d}
+function yjb(a,b,c,d){gc.call(this,a,b);this.a=c;this.b=d}
+function gnb(a,b,c,d){gc.call(this,a,b);this.a=c;this.b=d}
+function Gnb(a,b,c,d){this.b=a;this.a=b;this.c=c;this.d=d}
+function v4(a,b,c){gc.call(this,a,b);this.a=new RegExp(c)}
+function hpb(a,b,c){job.call(this,jAd,a,b);ud(this,Dyd,c)}
+function mcb(a,b,c){c!=null&&!Hnd(c,'0')&&Wr(a.a,b+'='+c)}
+function Vmb(a,b){return b!=null&&kvc(b,395)&&nt(a.a,b.a)}
+function gzb(a,b){return !!a&&!!b&&a.a.c==b.vd()&&Nr(a,b)}
+function EFb(a){return gJb(a.a,uFb(a.b.d).d,a.d,KFb(a.b))}
+function mjb(a){var b;return b=new Xjb,a.Tm(b),s9c(b.c.b)}
+function Ovb(a){var b;b=new DD(a.a.i,a.a.i.A);yQ(a.a.f,b)}
+function Kwb(a,b){Iwb(a,new red('Build Date'),new red(b))}
+function QNb(a){PNb.call(this,new dOb(new Kt),new iQb(a))}
+function Tob(a,b,c,d){return new cpb(a,b,c,new sO(c,d),d)}
+function Wxb(a,b,c,d){gc.call(this,a,b);this.b=c;this.a=d}
+function uUb(a,b,c,d){gc.call(this,a,b);this.b=c;this.a=d}
+function q$b(a,b,c,d){gc.call(this,a,b);this.b=c;this.a=d}
+function STb(a,b,c,d){gc.call(this,a,b);this.b=d;this.a=c}
+function v0b(a,b,c,d){gc.call(this,a,b);this.a=c;this.b=d}
+function w1b(a,b,c,d){gc.call(this,a,b);this.a=d;this.b=c}
+function G4b(a,b,c,d){gc.call(this,a,b);this.a=c;this.b=d}
+function R8b(a,b,c,d){gc.call(this,a,b);this.a=c;this.b=d}
+function h9b(a,b,c,d){gc.call(this,a,b);this.b=c;this.a=d}
+function OGb(a,b,c,d){this.a=a;this.d=b;this.b=c;this.c=d}
+function XKb(a,b,c,d){this.a=a;this.d=b;this.c=c;this.b=d}
+function hGb(a,b,c,d){this.d=a;this.b=d;this.c=c;this.a=b}
+function F9c(a,b,c,d){this.b=a;this.a=d;this.d=c;this.c=b}
+function mcc(a,b,c,d){gc.call(this,a,b);this.b=c;this.a=d}
+function Idd(a){ol();Hdd.call(this);jjc((abd(),this.U),a)}
+function $dd(a,b,c,d){this.b=c;this.a=d;this.e=a;this.c=b}
+function wgb(a){this.a=a;this.b='http://www.chemaxon.com'}
+function iOb(){this.a=(krc(),Mrc(Msc((Lsc(),Lsc(),Ksc))))}
+function ned(a){_f(this,(abd(),a));this.a=new Aed(this.U)}
+function $ld(a,b,c,d){this.a=a;this.d=b;this.c=c;this.b=d}
+function _ld(a,b,c,d){this.a=a;this.d=b;this.c=c;this.b=d}
+function amd(a,b,c,d){this.a=a;this.d=b;this.c=c;this.b=d}
+function vfd(a,b){var c;c=a.rows[b];return c.cells.length}
+function wcc(a,b){var c;c=new vcc(a,b);Wr(scc,c);return c}
+function Aac(a,b){return new qad((a.a+b.a)/2,(a.b+b.b)/2)}
+function Hqd(a,b,c){return ovc(b)?Iqd(a,b,c):Atd(a.d,b,c)}
+function Kqd(a,b){return b==null?Btd(a.d,null):Ptd(a.e,b)}
+function Gud(a,b){return pvc(a)===pvc(b)||a!=null&&T(a,b)}
+function kbd(a){abd();!!_ad&&a==_ad&&(_ad=null);$ad.fo(a)}
+function Lc(a){if(a.o){a.e!==pyd&&a.bb();a.k=null}return a}
+function Jbb(a){if(a.b.a.length!=0){return a.b}return a.a}
+function Alb(a){if(!Q0((P0(),O0))){return null}return a.i}
+function Exd(a,b){var c;c=Eqd(a.b,b);return c?c.Xj():null}
+function Te(a){var b;b=a.b;a.b=new es;a.a=new std;return b}
+function dc(a){var b;b=new cc;b.b=(nc(),kc);b.a=a;return b}
+function Bg(a){var b;b=a.Qb();while(b.Rc()){b.Sc();b.Tc()}}
+function bwd(a,b){this.a=a;this.b=b;Dod();P8c(Date.now())}
+function UN(a,b,c){this.d=a;this.b=b;this.c=c;this.a=WN(b)}
+function ND(a,b){this.a=new ltd;this.c=b;this.b=a;LD(this)}
+function Od(a,b){if(a.c==b){return}a.c=b;vqc(a.b,new Ci,a)}
+function Vjb(a,b){if(b.length==0){return}Wjb(a);gbb(a.d,b)}
+function Lgb(a,b,c){Hqd(a.b,b,mnd(a.a.a.length));Xr(a.a,c)}
+function xk(a,b){return Mvd(a.a,b)||b.length>=a.b&&yk(a,b)}
+function Lf(a,b){return ((a.__capturedEventBits||0)&b)!==0}
+function Blb(a,b){return {importFormats:a,exportFormats:b}}
+function JBb(a,b){return !!a&&!!b&&a.vd()==b.vd()&&a.rd(b)}
+function lkb(a,b,c,d,e){return new Bob(new yub(a),b,d,e,c)}
+function j1b(a,b,c,d,e,f,g){h1b[a-1]=new s1b(b,c,d,e,f,g)}
+function KS(a,b,c){uX(new vX(a.b,a.d,c,a.c,$S(a.b),a.a),b)}
+function sFb(a,b){return nqc(a.b,(!Xt&&(Xt=new Ioc),Xt),b)}
+function yJb(a,b){return aa.a.i.c-2){throw I8c(new kmd)}}
+function jh(a,b){if(a.d.a.vd()==0){return}$g(a.c,b);sh(a.b)}
+function Se(a,b){if(qtd(a.a,b)){return}Wr(a.b,b);ptd(a.a,b)}
+function Nb(a,b,c){if(b==0&&c==0){return dc(-a)}return ec()}
+function Nxd(a,b,c,d){var e=b.apply(a,d);return [c?c(e):e]}
+function Cld(a){old();var b=a.nodeType;return b==null?-1:b}
+function oid(){oid=p9c;lid=new tid;mid=new ltd;nid=new std}
+function Xrd(){Xrd=p9c;Urd=new esd;Vrd=new isd;Wrd=new jsd}
+function Aud(){Aud=p9c;xud=new Bud;yud=new Cud;zud=new Dud}
+function Uvd(){Uvd=p9c;Rvd=new Vvd;Svd=new Wvd;Tvd=new Xvd}
+function exd(){if(_wd==256){$wd=axd;axd=new S;_wd=0}++_wd}
+function ko(a){wic((pic(),oic),(!a.p&&(a.p=new Ko(a)),a.p))}
+function PP(a,b,c){nP.call(this,a,b,c);this.a=new vv(a.i.r)}
+function sI(a,b){fD(a.a,dsd(a.b.o.i.C.n));hD(a.a,new JF(b))}
+function PB(a){return dsd(a.a.f).b.vd()-dsd(a.a.a.a).b.vd()}
+function NF(a){return vuc(quc(T1c,1),tBd,5,0,[a.a,a.b,a.c])}
+function gX(){dX();return vuc(quc(RFc,1),nyd,549,0,[cX,bX])}
+function gQ(){eQ();return vuc(quc(EEc,1),nyd,569,0,[cQ,dQ])}
+function qL(){oL();return vuc(quc(tDc,1),nyd,541,0,[nL,mL])}
+function it(){gt();return vuc(quc(mzc,1),nyd,484,0,[ft,et])}
+function i3(){g3();return vuc(quc(CHc,1),nyd,477,0,[e3,f3])}
+function Z5(){X5();return vuc(quc(fIc,1),nyd,459,0,[W5,V5])}
+function o2(){l2();return vuc(quc(yHc,1),pDd,349,0,[k2,j2])}
+function hZ(a,b,c,d){HHb(a,d,vuc(quc(T1c,1),tBd,5,0,[b,c]))}
+function H6(a,b,c,d){var e;for(e=0;e=0&&Hnd(a.substr(c,b.length),b)}
+function Ykd(a){return Xnd(a,0,$wnd.Math.min(a.length,128))}
+function Obd(a){return $wnd.decodeURI(a.replace('%23','#'))}
+function hu(a){this.a=new iu(a,vuc(quc(Czc,1),lyd,462,0,[]))}
+function Jf(){this.a=new std;ptd(this.a,Yyd);ptd(this.a,Zyd)}
+function eL(a){return !a.a.sd()&&msd(dsd(Ey(a.a.zd(0)).r),a)}
+function VG(a,b){Ry(Lu(a.o.i).b);!!b&&dx(Mu(a.o.i),b);a.pg()}
+function Pfd(a,b){(a.a.oo(0,b),abd(),Jfd(a.a.c,0,b))[sLd]=2}
+function wod(a,b,c){a.a=Xnd(a.a,0,b)+''+Ynd(a.a,c);return a}
+function St(a,b){var c;c=Xtd(a.c,b);if(c){return c}return Nt}
+function lgb(a,b){var c;c=Pib(a.c,PEd);eld(c,NEd,b);return c}
+function Qc(a,b){var c;c=Jmd(a.Fp);return b==null?c:c+': '+b}
+function Uxd(a,b,c,d,e,f){Sxd();return Axd(Rxd,a,b,c,d,e,f)}
+function Jvb(a,b){if(Sx(a.a.a.a.i.A)){return}dwb(b,Uvb(a.a))}
+function ZF(a,b){if(!b||b.a.length!=2){a.d=null;return}a.d=b}
+function yS(a,b){if(a){return b?', '+AS(a):AS(a)}return null}
+function F8(a){if(Cqd(a,(kcc(),gcc))){return '*'}return null}
+function KBb(a,b){if(a.a.c){return !b}return JBb(b,nCb(a.a))}
+function ABb(a,b){zBb(a,false);Cic((pic(),new IBb(a,b)),200)}
+function dKb(a,b){return Hqc(a.a,(!Xt&&(Xt=new Ioc),Xt),a,b)}
+function Ynb(a,b){return Fqd(a.a,(b.j!=null?b.j:''+b.k)+hHd)}
+function tpb(a,b){return a.a?new qqb(b,a.a,false):new Gqb(b)}
+function k0(a,b){D0(a.i,new q0(a.c,a.o,false,B0(a.d,a.j)),b)}
+function HRb(a,b){a.a.a=suc(_5c,lyd,1,0,5,1);FRb(a);DRb(a,b)}
+function kUb(){var a;a=jUb((WZb(),GXb).a);a.gm('*');return a}
+function cg(a){(abd(),a.U).style[ezd]=fzd;a.U.style[czd]=fzd}
+function xCb(a){return Rf(a.b).selectedIndex==a.a.a.length-1}
+function GPb(a,b,c,d){return {north:a,south:b,west:c,east:d}}
+function LOb(a){DOb();return a!=null?(Iud(a),new JOb(a)):BOb}
+function E0b(){E0b=p9c;C0b=new G0b(2,'D');D0b=new G0b(3,'T')}
+function Uqd(a){var b;a.c=a.a;b=a.a.Sc();a.b=Tqd(a);return b}
+function uhd(a,b){var c;c=a.b-b.b;c==0&&(c=b.a-a.a);return c}
+function zsd(a,b){var c;for(c=0;c=a.a.i.c-2){throw I8c(new kmd)}}
+function Jud(a,b){if(a==null){throw I8c(new und(b))}return a}
+function J9c(a){if(a==null){throw I8c(new und(bLd))}this.a=a}
+function G9c(a){if(a==null){throw I8c(new und(bLd))}this.a=a}
+function Jd(a,b){pvc((qmd(),pmd))===pvc(b.a.fb(Byd))&&Od(a,b)}
+function Kfd(a,b,c){qfd(a.a,b,c);return abd(),Jfd(a.a.c,b,c)}
+function vn(a){tn(a);if(!a.b){return}efd(a.d.c,a.f);a.b=false}
+function _s(a){var b;if(!a.a){return}b=a.a;a.a=null;b.tb(a.c)}
+function at(a,b){if(a.b==(gt(),et)){return}a.c=b;a.b=et;_s(a)}
+function BL(a,b){Ry(Lu(a.o.i).b);cx(Mu(a.o.i),b);a.o.i.w.Hf()}
+function pOd(){dx(Mu(this.a.c.i),jw(this.a.c.i,this.b.Lh()))}
+function cE(a,b,c){this.d=a;this.b=b;this.a=c;this.c=aE(this)}
+function QT(a,b,c){this.b=a;this.c=b;this.d=c;this.a=new ltd}
+function _O(a,b){dH.call(this,a);this.f=b;this.e=new cP(this)}
+function zN(a,b,c){this.b=new wN(b);this.a=new wN(c);this.c=a}
+function jm(a){var b,c;b=new hm(a);c=km(b.a);im(c,a);return c}
+function s0(a){var b;b=new r0(a.b,a.d,a.c);m0(b,a.c);return b}
+function HN(a){var b;b=LN(a);if(b){return Ey(b)}return new By}
+function o8(a,b){var c;c=b.o;if(c){return c}return Eqd(a.i,b)}
+function TP(a){var b;b=MWb();wVb(b,a.d);return new aQ(PVb(b))}
+function ztd(a,b){return xtd(a,b,ytd(a,b==null?0:a.b.tp(b)))}
+function fvb(a,b){return og(b,new mvb(a,b),(yoc(),yoc(),xoc))}
+function CX(a,b,c,d,e){return e?new BX(a,b,Tu(c),d):(xX(),wX)}
+function Fnd(a,b){return End(a.toLowerCase(),b.toLowerCase())}
+function xxb(a,b){return b<0||b>a.b.a.length-1?null:Yr(a.b,b)}
+function Lcb(a){return !!a.a&&Mqd(a.a)!=0||!!a.b&&Mqd(a.b)!=0}
+function cHb(a,b,c){IEb(a.e,b);!!a.a&&Ugd(a.a,_Gb(c));Lg(a.b)}
+function zwb(a,b){oed(a.d,b.b);oed(a.c,b.c);oed(a.a,vwb(b.a))}
+function dFb(a,b){rm(a.b,false);yQ(a.a.a.f,new ND(a.a.a.i,b))}
+function oSb(a,b,c){bcb(b,'abbreviations',new cSb(a.a,a.b,c))}
+function yXb(a,b,c){return new pXb(new hUb(b),new iUb(c),a.a)}
+function zXb(a,b,c){return new pXb(new hUb(b),new zUb(c),a.a)}
+function BXb(a,b,c){return new pXb(new yUb(b),new zUb(c),a.a)}
+function AXb(a,b,c){return new pXb(new yUb(b),new iUb(c),a.a)}
+function Oqc(a){if(!a.d){return}Mqc(a);a.a.ql(a,new crc(a.b))}
+function PAb(a,b){if(a.b.c&&b==null){return false}return true}
+function MZ(a,b){a.j=null;b>0&&(a.j=(Cnd(),''+b));return null}
+function ZZ(a,b,c){b.yf(dbc(a.d),a.d.c*0.5,a.d.a*0.5,false,c)}
+function Ldb(a,b,c){msd(b,dsd(a.r))&&(c.a[c.a.length]=a,true)}
+function a7b(a,b,c){this.a=Z6b(b,c);this.b=$wnd.Math.max(a,0)}
+function R3b(a,b,c){this.a=a;this.c=b;this.d=null;yTb(this,c)}
+function cGb(a,b){HEb(a.a.a,Fxb(vuc(quc(g6c,1),eyd,2,6,[b])))}
+function Ofd(a,b,c){(a.a.oo(b,0),abd(),Jfd(a.a.c,b,0))[Czd]=c}
+function ljd(a){gjd.call(this,a);(abd(),this.U).className=rId}
+function AOd(a){return qmd(),a.i&&(s6b(),h6b)==a.o?true:false}
+function qvc(a){return Math.max(Math.min(a,dyd),-2147483648)|0}
+function Bk(a){return a.key||String.fromCharCode(a.keyCode|0)}
+function dsd(a){Xrd();return kvc(a,291)?new Dsd(a):new vsd(a)}
+function tcd(){rcd();if(!qcd){gdd(pcd);$bd(new ucd);qcd=true}}
+function $nc(){Xnc();if(!Tnc){Tnc=true;xic((pic(),oic),Snc)}}
+function bc(a){if(a.b!=(nc(),kc)){throw I8c(new Zc)}return a.a}
+function r9c(a){function b(){}
+;b.prototype=a||{};return new b}
+function Rmd(a){if(a.jp()){return null}var b=a.o;return l9c[b]}
+function $l(a){if(!a.b.Uc()){return}a.a=a.b.Uc().cb(new fm(a))}
+function bud(a){var b;b=a.c.b.b;a.b=b;a.a=a.c.b;b.a=a.c.b.b=a}
+function Vk(a,b){var c;if(a.c){return}c=new al;kl(b,c);a.c=c.a}
+function Qo(a,b){var c;c=Ro(a);abd();Lic(a.c,lbd(c));oo(a,b,c)}
+function Yd(a,b){a.a=b;Xd(a);Ud(a);!!a.a&&sd(a,null,null,null)}
+function Vc(a,b){Jc(this);this.f=b;this.i=a;Lc(this);this.bb()}
+function Xc(a){Vc.call(this,'Error in valence calculation.',a)}
+function tw(a){!!a.a.d&&!a.a.d.sd()&&sw(a);uw(a,a.a.C);Wv(a.a)}
+function pkd(b,a){b.f.contentWindow.document.body.innerHTML=a}
+function Ckd(b,c,d){try{b.setSelectionRange(c,c+d)}catch(a){}}
+function RB(a,b,c){this.a=a;this.c=b;this.b=c;this.d=c?a.c:a.a}
+function Ir(){this.a=vuc(quc(_5c,1),lyd,1,5,[]);this.b=new ltd}
+function pn(){nn();return vuc(quc(hyc,1),nyd,316,0,[kn,mn,ln])}
+function eu(){cu();return vuc(quc(Dzc,1),nyd,351,0,[bu,_t,au])}
+function $E(){YE();return vuc(quc(_Bc,1),nyd,451,0,[VE,WE,XE])}
+function zj(){xj();return vuc(quc(lxc,1),nyd,429,0,[vj,uj,wj])}
+function zR(){wR();return vuc(quc(UEc,1),nyd,416,0,[vR,uR,tR])}
+function fR(){cR();return vuc(quc(SEc,1),nyd,415,0,[aR,_Q,bR])}
+function fv(){dv();return vuc(quc(Vzc,1),nyd,437,0,[cv,av,bv])}
+function kU(){iU();return vuc(quc(tFc,1),nyd,414,0,[fU,gU,hU])}
+function x4(){u4();return vuc(quc(PHc,1),nyd,380,0,[r4,s4,t4])}
+function Oab(){Oab=p9c;Nab=vuc(quc(g6c,1),eyd,2,6,['cml',UDd])}
+function Vjd(){Vjd=p9c;Tjd=D8c();Ujd=kvc(Tjd,500)?new Xjd:Tjd}
+function dX(){dX=p9c;cX=new fX('TOP',0,0);bX=new fX(FBd,1,0.5)}
+function eB(a,b,c){var d;return iB(a,b,(d=new By,vx(d,c),d),c)}
+function kB(a,b,c){var d;return iB(a,b,(d=new By,zx(d,c),d),c)}
+function FV(a,b,c,d,e){return new kV(a,sV(a,lbc(b,c),d),b,d,e)}
+function heb(a,b){var c;return c=kld(a.So(),b),c?Dld(c.a):null}
+function Qnb(a,b){var c;c=hub(a.c.a,b);if(!c){return}Zn(a.a,c)}
+function Fob(a,b){return !!b&&Gob(a,dsd(b.r))||Gob(a,dsd(b.s))}
+function Hpb(a){return new zpb(a,'Flip vertically',new Mpb(a))}
+function hlb(a){if(!glb){glb=true;Sxd();z0b(Rxd,OLc,a);ilb(a)}}
+function mlb(a){if(!llb){llb=true;Sxd();z0b(Rxd,QLc,a);nlb(a)}}
+function Pmb(a){if(!Omb){Omb=true;Sxd();z0b(Rxd,xMc,a);Qmb(a)}}
+function Wmb(a){if(!Umb){Umb=true;Sxd();z0b(Rxd,mMc,a);Xmb(a)}}
+function gP(a){if(!a.k){a.k=TP(a.j);a.i=new YT(a.k)}return a.k}
+function yOb(a){!a.settings&&(a.settings={});return a.settings}
+function Sfb(a,b){this.c=b;this.a=a;this.b=Ix(a);this.d=this.b}
+function PU(a){this.f=a.b.a;this.i=a.b.b;this.e=a.c;this.d=a.a}
+function Pic(a){while(a.lastChild){a.removeChild(a.lastChild)}}
+function Keb(a,b){if(hs(a.a,b)==-1){Wr(a.a,b);T0b(b);b.p=null}}
+function B6b(a,b){if(!!a&&!!b){return new A6b(a,b)}return null}
+function gBb(a,b,c){return b!=null?new uCb(a,b,c):new tCb(a,c)}
+function Egc(e,a,b,c,d){return e.createLinearGradient(a,b,c,d)}
+function JVb(a,b,c,d){var e;e=new S2b(b,c,d);vVb(a,e);return e}
+function Eub(a){var b;b=new is;Aub(b);Cub(a,b);Bub(b);return b}
+function Kid(a){var b;b=a.i;if(b){return Zr(a.f,b,0)}return -1}
+function xjc(a,b){var c;c=a.Gn(b);return c?c:b.documentElement}
+function tdd(a,b){var c;c=vo(a,b);c&&wdd((abd(),b.U));return c}
+function nhd(a,b){b=ohd(a,b);b=Snd(b,'\\s+',' ');return bod(b)}
+function urd(a,b){if(ord(a,b)){Crd(a);return true}return false}
+function Qmd(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.fp(b))}
+function Pcd(a){var b;b=(ujc(),tjc).yn(a);b[kLd]=a.type;Ocd(a)}
+function jdd(){return Yxd(function(){rcd();qcd&&scd(new xcd)})}
+function Fqd(a,b){return b==null?Bqd(ztd(a.d,null)):Ntd(a.e,b)}
+function An(a){return $ic((abd(),a.U),$yd)-(a.U.clientHeight|0)}
+function hud(a){Swd(a.b!=a.c.a.b);a.a=a.b;a.b=a.b.a;return a.a}
+function pt(c,a){for(var b=0;b0){return true}return false}
+function Vh(a){Wf(a.a)&&(a.a.d.d.M?Yf(a.a.a,Jzd):Of(a.a.a,Jzd))}
+function SK(a){a.c=false;a.e=null;Ry(Lu(a.o.i).b);a.d.Kg(null)}
+function lI(a){a.c=null;a.b=null;ex(Mu(a.o.i),a.a);a.o.i.w.Hf()}
+function vLb(a,b,c,d){this.a=new JPb(c,(C1(),m1),a,d);this.b=b}
+function sS(a,b,c,d){this.a=a;this.c=b;this.d=d1b(c.n);this.e=d}
+function mB(a,b){this.a=a;this.b=b;this.c=a.a?a.a.a:(vXb(),uXb)}
+function tkb(a){this.c=a.b.a;this.d=a.b.b;this.b=a.c;this.a=a.a}
+function Mn(){this.c=new Mid;this.d=this.hd();mm(this.d,this.c)}
+function eid(){ol();Ol.call(this);(abd(),this.U).className=yLd}
+function WPb(a){TPb();XPb.call(this,a,(Tqc(),Sqc),(bQb(),_Pb))}
+function rob(a,b,c,d){kob.call(this,a,b,c,new MH(c,d));this.a=d}
+function Tpb(a,b,c,d){kob.call(this,a,b,c,new PK(c,d));this.a=d}
+function Fpb(a,b,c){return $B(new _B(a.i),b,new zF(c.a,0,-1,1))}
+function Gpb(a,b,c){return $B(new _B(a.i),b,new zF(0,c.b,1,-1))}
+function jBb(a,b){return !b?new tCb(a,null):new uCb(a,b.a,null)}
+function vB(a,b){return new AB(b,ds(a.a,suc(PEc,ABd,38,0,0,1)))}
+function Ejb(){Cjb();return vuc(quc(pLc,1),nyd,366,0,[Ajb,Bjb])}
+function OKb(){MKb();return vuc(quc(pTc,1),nyd,486,0,[LKb,KKb])}
+function QIb(){MIb();return vuc(quc(TSc,1),nyd,304,0,[LIb,KIb])}
+function dQb(){bQb();return vuc(quc(MUc,1),nyd,474,0,[_Pb,aQb])}
+function Xxb(){Vxb();return vuc(quc(qPc,1),nyd,547,0,[Uxb,Txb])}
+function Gwb(){Ewb();return vuc(quc(VOc,1),nyd,546,0,[Cwb,Dwb])}
+function BPb(a,b,c){return {items:a,defaultItem:b,isFloating:c}}
+function igb(a,b,c){var d;d=new es;d.a[d.a.length]=b;jgb(a,d,c)}
+function TEb(a,b){var c;c=Mkc($doc);c.appendChild(b);Lic(a.a,c)}
+function iVb(a,b){var c;c=Zr(a.b,b,0);return c>=0?c:Zr(a.a,b,0)}
+function H$b(a){var b;b=new is;I$b(a,b);return Xrd(),new Dsd(b)}
+function gkb(a){var b;b=new Zj;pkb(a,b,new ard(a.a.a));return b}
+function mPb(a){qJd in a&&!(eJd in a)&&(a[eJd]=a[qJd]);return a}
+function X9b(a){return new W9b(a.b.a,a.b.b,a.b.a+a.c,a.b.b+a.a)}
+function rVb(a){a.b=new Cqc;a.c=new XUb;a.i=new std;a.f=new ltd}
+function Xpc(a,b){var c;if(Vpc){c=new Wpc(b);!!a.R&&oqc(a.R,c)}}
+function ix(a,b){var c;c=!a.a?!!b:a.a!=b;if(c){a.a=b;Pv(a.c.c)}}
+function Qhc(a,b){var c=Phc[a.charCodeAt(0)];return c==null?a:c}
+function Gab(a,b){if(b==null){return ''}return ' '+a+'='+Hab(b)}
+function $bd(a){Zbd();bcd();return _bd(_pc?_pc:(_pc=new Ioc),a)}
+function f7b(){d7b();return vuc(quc(_Xc,1),nyd,570,0,[c7b,b7b])}
+function x0b(){t0b();return vuc(quc(_Wc,1),nyd,508,0,[r0b,s0b])}
+function x1b(){v1b();return vuc(quc(iXc,1),nyd,503,0,[t1b,u1b])}
+function Q1b(){O1b();return vuc(quc(nXc,1),nyd,501,0,[M1b,N1b])}
+function X8b(){V8b();return vuc(quc(AYc,1),nyd,502,0,[U8b,T8b])}
+function Iqd(a,b,c){return b==null?Atd(a.d,null,c):Otd(a.e,b,c)}
+function Mfd(a,b,c,d){a.a.oo(b,c);Jfd(a.a.c,b,c).style[JAd]=d.a}
+function X0b(a,b,c,d){V0b.call(this,new nUb(a),b,c);xTb(this,d)}
+function otd(a){this.d=new Ctd(this);this.e=new Qtd;yqd(this,a)}
+function tp(){vp((xp(),up));this.a=new zo;Of(this.a,'mjs-obf-B')}
+function Cn(a,b){(abd(),a.U).style['maxHeight']=(Cnd(),''+b+dzd)}
+function ytd(a,b){var c;c=a.a.get(b);return c==null?new Array:c}
+function rx(a,b){if(hs(a.u,b)==-1){return Wr(a.u,b)}return false}
+function lx(a,b){if(hs(a.q,b)==-1){return Wr(a.q,b)}return false}
+function mx(a,b){if(hs(a.r,b)==-1){return Wr(a.r,b)}return false}
+function nx(a,b){if(hs(a.s,b)==-1){return Wr(a.s,b)}return false}
+function px(a,b){if(hs(a.C,b)==-1){return Wr(a.C,b)}return false}
+function sx(a,b){if(hs(a.w,b)==-1){return Wr(a.w,b)}return false}
+function tx(a,b){if(hs(a.A,b)==-1){return Wr(a.A,b)}return false}
+function ux(a,b){if(hs(a.B,b)==-1){return Wr(a.B,b)}return false}
+function Rqd(a,b){if(kvc(b,185)){return wqd(a.a,b)}return false}
+function xod(a,b,c){a.a=Xnd(a.a,0,b)+(''+c)+Ynd(a.a,b);return a}
+function VH(a,b){dI(a);yQ(a.o.f,b);dI(a);a.k=wQ(a.o.f,new iI(a))}
+function IH(a,b){hy(Lu(a.o.i).b)?LH(a):!Sx(Lu(a.o.i).b)||DH(a,b)}
+function aH(a){!!a.k&&a.k.Rd();ex(Mu(a.o.i),a.eg());a.o.i.w.Hf()}
+function tm(a,b,c){abd();if(!_ad){a.n=true;mbd(a.U);a.j=b;a.k=c}}
+function hK(a,b,c){this.a=a;this.c=this.a.Rl();this.d=b;this.b=c}
+function JB(a,b,c){pA.call(this,null);this.b=c;this.d=b;this.c=a}
+function Pcb(a,b){xbb.call(this,a);this.a=b;this.b=new Scb(this)}
+function JEb(a,b,c){ol();tl.call(this,a);Lsc();this.b=b;this.a=c}
+function HL(a){$G.call(this,a);this.d=new JL(this);this.a=new By}
+function SGb(a,b){HEb(a.e,b);Lg(a.a);wic((pic(),oic),new XGb(a))}
+function Bpb(a){return new zpb(a,'Flip horizontally',new Lpb(a))}
+function FIb(a,b,c){this.a=a;this.b=c;this.c=b;this.d=new tJb(c)}
+function hjb(a,b,c){c.indexOf(oyd)!=-1?Mib(a.c,b,c):Oib(a.c,b,c)}
+function Hab(a){if(a.indexOf(' ')!=-1){return '"'+a+'"'}return a}
+function oCb(a){if(a.a.Zk()){return qCb(a,a.a.Yk())}return false}
+function tBb(a,b){if(!sBb(a,b)){throw I8c(new ICb)}return rBb(b)}
+function BJb(a,b){if(!a.a||a.a.c<=0){return}a.c=kH(a.c,CJb(a,b))}
+function f4b(a){if(d4b==a){return ''}return a.j!=null?a.j:''+a.k}
+function xcc(a){tcc();var b;b=ycc(a);return b?b:new vcc(a,false)}
+function MHb(a,b,c){cj(a.c,b,c);if(a.b){XHb(a.a,true);a.b=false}}
+function I6b(a,b,c){this.c=new C6b(a);this.a=new C6b(b);this.d=c}
+function NNb(){this.a=new Cqc;MNb(this,'/marvin4js-license.cxl')}
+function wed(){sed.call(this);(abd(),this.U).className='Caption'}
+function Xgd(){ol();Wgd.call(this);(abd(),this.U).multiple=false}
+function qed(a){ned.call(this,(Ind('span',(ujc(),a).tagName),a))}
+function gmd(a,b,c){fmd(a,b,b+1,(Cnd(),String.fromCharCode(c)))}
+function _qd(a,b,c){Uwd(b,c,a.vd());this.c=a;this.a=b;this.b=c-b}
+function pdc(a,b,c){return kH(mad(new qad(a.a-c.a,a.b-c.b),b),c)}
+function pc(){nc();return vuc(quc(Gvc,1),nyd,370,0,[kc,jc,mc,lc])}
+function E4(){E4=p9c;D4=vuc(quc(g6c,1),eyd,2,6,[uDd,'extindex'])}
+function lz(){iz();return vuc(quc(kAc,1),nyd,249,0,[hz,ez,gz,fz])}
+function vz(){sz();return vuc(quc(lAc,1),nyd,120,0,[qz,pz,rz,oz])}
+function Nz(){Lz();return vuc(quc(oAc,1),nyd,217,0,[Iz,Jz,Hz,Kz])}
+function WOd(){return new Srd(vuc(quc(tWc,1),zBd,49,0,[this.a]))}
+function bx(a,b){return dtd(btd((!a.b&&(a.b=(e_(),d_)),a.b).a),b)}
+function CA(a){return Mqd(a.a.a)==0&&Mqd(a.b.a)==0&&Mqd(a.c.a)==0}
+function lH(a,b){return !!Ku(a.o.i,jw(a.o.i,gH(a.f,gw(a.o.i,b))))}
+function lbd(a){abd();return a.__gwt_resolve?a.__gwt_resolve():a}
+function ah(a){if(a.M){return}else a.P&&vg(a);Mhd(a.L,true,false)}
+function HK(a,b){return lad(iad(lad(b,a.b),new qad(a.a,a.a)),a.c)}
+function uJ(){rJ();return vuc(quc(VCc,1),nyd,313,0,[nJ,qJ,oJ,pJ])}
+function auc(a,b){if(b==null){throw I8c(new tnd)}return buc(a,b)}
+function SN(a,b){var c;c=QN(a);if(!c){return b}return new TN(b,c)}
+function Dbd(){var a;a=ygc();if(a){return new Cbd(a)}return null}
+function Atc(a,b){var c;c=a.r.getHours();a.r.setDate(b);ztc(a,c)}
+function LE(a,b){var c;for(c=0;c0&&GEb(a,b)}
+function Dtc(a,b){var c;c=a.r.getHours();a.r.setMonth(b);ztc(a,c)}
+function yed(a){var b;b=a.c?Xic(a.a):a.a;return (ujc(),tjc).Hn(b)}
+function mbc(a,b){if(obc(a,b)){Wr(a.a,b);return true}return false}
+function sWb(a,b){if(_r(a.v,b)){xWb(a,b);return true}return false}
+function uWb(a,b){if(_r(a.w,b)){xWb(a,b);return true}return false}
+function njc(a){if(Sic(a)){return !!a&&a.nodeType==1}return false}
+function edd(a,b){for(var c in a){a.hasOwnProperty(c)&&b(c,a[c])}}
+function Snd(a,b,c){c=hod(c);return a.replace(new RegExp(b,'g'),c)}
+function mrd(a,b){Iud(b);a.b=a.b-1&a.a.length-1;a.a[a.b]=b;qrd(a)}
+function pd(a,b){return !a.e&&(a.e=new Cqc),tqc(a.e,(_d(),$d),a,b)}
+function Sl(a){return qmd(),!a.d&&Cl(a,a.o),(1&a.d.a)>0?true:false}
+function djd(a){wo.call(this);_f(this,(abd(),wkc($doc)));this.a=a}
+function Ozb(a,b,c,d){wyb.call(this,b);this.a=a;this.c=d;this.d=c}
+function Aed(a){this.a=a;this.c=false;this.b=grc(a);this.d=this.b}
+function tI(a,b){this.b=a;this.a=new jD(a.o.i);eD(this.a,dsd(b.r))}
+function kI(a,b){Ry(Lu(a.o.i).b);!!b&&cx(Mu(a.o.i),b);a.o.i.w.Hf()}
+function _S(a,b){if(pT(b.c,a.s)&&pT(b.d,a.s)){return MS}return a.a}
+function Sc(b){if(!('stack' in b)){try{throw b}catch(a){}}return b}
+function Fab(a,b){if(b==0){return ''}return ' '+a+'='+(Cnd(),''+b)}
+function $qb(a,b){if(a.a=a.c){throw I8c(new kmd)}return a.a[b]}
+function lfd(a){this.b=(qgd(),ngd).a;this.e=(vgd(),ugd).a;this.a=a}
+function oS(){oS=p9c;mS=(HU(),vU);nS=new p0((pR(),kR),mS.b,mS.b.a)}
+function ppb(){ppb=p9c;npb();kpb=new opb((Z9c(),new U9c(mpb)),lpb)}
+function O1b(){O1b=p9c;M1b=new P1b('BEGIN',0);N1b=new P1b('END',1)}
+function Z9c(){Z9c=p9c;new RegExp('%5B','g');new RegExp('%5D','g')}
+function k6(){k6=p9c;new RegExp('^( | \\d| \\d\\d|\\d\\d\\d)+')}
+function hj(){hj=p9c;gj=(Q9c(),new J9c(' <\/span> '))}
+function rid(){oid();try{Edd(nid,lid)}finally{nid.a.Pb();Lqd(mid)}}
+function az(a,b){cz(a,true);try{return Ny(a,b)}finally{cz(a,false)}}
+function pv(a,b){if(qv(a,b)){return LUb(a.a,b).vd()==1}return false}
+function Lo(a,b){if(b.T!=a){return null}return abd(),abd(),Mic(b.U)}
+function nt(a,b){return !!a&&!!a.equals?a.equals(b):pvc(a)===pvc(b)}
+function le(a,b){b!=null&&(!a.d&&Cl(a,a.o),(1&a.d.a)>0!=b)&&Km(a,b)}
+function Qod(a){while(a.d>0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)}
+function RM(a,b){Jl(a,b.c);a.a=b.b;a.c=lad(a.p,a.b);CM(a,LM(a),a.a)}
+function EE(a,b,c){var d;d=_Vb(a.a,b);!d&&(d=YVb(a.a,c));return d.o}
+function DE(a,b){var c;c=VVb(a.a,b);if(c){return c.Lh()}return null}
+function $D(a,b){var c;c=new Cy(a);Wx(c,UD(b));Wx(c,VD(b));return c}
+function xP(a,b,c,d){var e;e=wP(a,c);!!e&&uB(b,new vA(e,new Cy(d)))}
+function rd(a){a.f&&a.db()&&(!a.e&&(a.e=new Cqc),vqc(a.e,new ae,a))}
+function U4(a,b){if(Hnd(CDd,b)){return new Z4(a)}return new X4(a,b)}
+function Beb(a,b){if(a.b==b){return}veb(a,a.b.b);a.b=b;veb(a,a.b.a)}
+function hhb(a,b){if(!b.sd()){Nhb(a.a,b);Thb(a.c,b);Xr(a.i,b.Pe())}}
+function Mmb(a,b){Mlb(a,(Sxd(),Dxd(b,suc(E$c,lyd,0,b.length,2,1))))}
+function Smb(a,b){Mlb(a,(Sxd(),Dxd(b,suc(E$c,lyd,0,b.length,2,1))))}
+function Qlb(a,b){b.a&&(a.o=GOb(b,(qmd(),pmd))?(C1(),m1):(C1(),k1))}
+function ai(a,b,c,d){return $wnd.Math.max(c,$wnd.Math.min(a,d-b-1))}
+function JU(a,b,c,d,e){gc.call(this,a,b);this.b=c;this.a=d;this.c=e}
+function Zpb(a,b,c){vd.call(this,a);this.b=b;Wr(c.a,this);this.Gk()}
+function zn(a,b,c){this.d=a;this.e=b;this.a=c;this.b=false;this.c=0}
+function Dqb(a,b,c,d){gob.call(this,'Smart R-group',a,b,c);this.a=d}
+function NEb(a,b){ol();LEb.call(this,a,(!jFb&&(jFb=new kFb),jFb),b)}
+function sRb(a,b){return iad(b,new qad(a.a*(lRb(),kRb),-(a.a*kRb)))}
+function vRb(a,b){return mad(b,new qad(a.a*(lRb(),kRb),-(a.a*kRb)))}
+function iwb(a){return new AFb(a.c.i.a.o,Vw(a.c),a.i,a.e,!!a.c.i.q)}
+function _G(a){a.n=true;ex(Mu(a.o.i),a.eg());!!a.k&&a.k.qg();a.Rd()}
+function HWb(a){if(a.d){St(a.d.a,(cu(),bu)).Nd();St(a.d.a,_t).Nd()}}
+function AIb(a){JJb(a.j,true);cJb(a.i,(Lz(),Iz),true);WHb(a,new nF)}
+function kXb(a){var b;b=new es;Wr(b,a.c.Bm());Wr(b,iXb(a));return b}
+function j2b(a){var b;if(a.A){b=a.A;HWb(b)}else{Gl(a,g2b);r2b(a,0)}}
+function Iob(a){if(!Sx(a.a.i.A)){return Fob(a,a.a.i.A)}return false}
+function qXb(a,b){if(T(a,b)){return false}return Zrd(a.Ml(),b.Ml())}
+function C8b(a,b){!!b&&!jad(b,a.e.b)&&D8b(a,new ibc(b,a.e.c,a.e.a))}
+function Mf(a,b){a.__capturedEventBits=(a.__capturedEventBits||0)|b}
+function wab(){tab();return vuc(quc(lJc,1),nyd,306,0,[qab,sab,rab])}
+function Ieb(){Geb();return vuc(quc(kKc,1),nyd,445,0,[Deb,Feb,Eeb])}
+function Ujb(){Sjb();return vuc(quc(sLc,1),nyd,435,0,[Pjb,Qjb,Rjb])}
+function LTb(){JTb();return vuc(quc(mWc,1),nyd,425,0,[GTb,HTb,ITb])}
+function YAb(){WAb();return vuc(quc(kQc,1),nyd,289,0,[VAb,TAb,UAb])}
+function j4b(){e4b();return vuc(quc(zXc,1),nyd,281,0,[d4b,c4b,b4b])}
+function Hcc(){Ccc();return vuc(quc(XYc,1),nyd,236,0,[zcc,Bcc,Acc])}
+function qmc(){omc();return vuc(quc(n_c,1),nyd,277,0,[mmc,lmc,nmc])}
+function qhc(){ohc();return vuc(quc(z$c,1),nyd,412,0,[lhc,mhc,nhc])}
+function whc(){uhc();return vuc(quc(A$c,1),nyd,413,0,[rhc,shc,thc])}
+function Hhd(){Fhd();return vuc(quc(X3c,1),nyd,410,0,[Chd,Dhd,Ehd])}
+function Rad(){Oad();return vuc(quc(X1c,1),nyd,352,0,[Lad,Mad,Nad])}
+function Jsc(){Hsc();return vuc(quc(l1c,1),nyd,405,0,[Gsc,Fsc,Esc])}
+function xtc(a,b){return Q8c(P8c(a.r.getTime()),P8c(b.r.getTime()))}
+function ytc(a,b){return S8c(P8c(a.r.getTime()),P8c(b.r.getTime()))}
+function Sic(b){try{return !!b&&!!b.nodeType}catch(a){return false}}
+function Ded(a,b){if(b==a.a.O){Eed(a,null);return true}return false}
+function Hf(a,b){if(!a.a.a.lp(Yyd)){return}!Ff&&Gf();If((abd(),b.U))}
+function Bcd(a){var b=a.__listener;return !nvc(b)&&kvc(b,35)?b:null}
+function km(a){var b;b=new fh;Of(b,(Os(),Hs));Eg(b,a);Tg(b);return b}
+function Ml(a){var b,c;c=(!a.d&&Cl(a,a.o),a.d.a^1);b=yl(a,c);Cl(a,b)}
+function Ct(a,b){var c;c=yed(a.a.a);Of(a.a,cBd);oed(a.a,b);fg(a.a,c)}
+function Bu(a,b){var c;c=$wnd.Math.max(0,$wnd.Math.min(b,4));a.nm(c)}
+function ou(a,b,c){var d;d=wu(a.c,b,c);return kvc(d,63)?E2b(d,b):a.a}
+function bsd(a){Xrd();var b;b=new ttd;b.a.pp(a,b);return new ysd(b)}
+function Kbd(){Hbd();var a;a=Jbd();if(!Hnd(a,Gbd)){Gbd=a;Zt(Fbd,a)}}
+function Zm(){Xm();return vuc(quc(eyc,1),nyd,273,0,[Um,Tm,Vm,Wm,Sm])}
+function Gz(){Ez();return vuc(quc(nAc,1),nyd,302,0,[Bz,zz,Az,Cz,Dz])}
+function yF(a,b){return new qad((b.a-a.c)*a.a+a.c,(b.b-a.d)*a.b+a.d)}
+function iW(a,b){if(!Hnd(UBd,b)&&!!a&&a.a!=null){return a.a}return b}
+function S1(a){if(a.k){return null}!a.j&&(a.j=new DUb(a));return a.j}
+function _8(a){switch(a.k){case 1:return 1;case 2:return 2;}return 0}
+function Dtd(a){this.e=a;this.b=this.e.a.entries();this.a=new Array}
+function tT(a,b,c,d){this.c=a;this.e=b;this.d=c;this.a=d;this.b=null}
+function sT(a,b,c,d){this.c=a;this.e=b;this.d=c;this.a=null;this.b=d}
+function Zab(a,b,c,d,e){gc.call(this,a,b);this.a=c;this.b=d;this.c=e}
+function yr(a,b,c,d){gc.call(this,a,b);this.b=new RegExp(c);this.a=d}
+function TK(a,b){$G.call(this,a);this.d=this.Gg(a);this.b=b;SK(this)}
+function Sqb(a,b,c,d,e){this.a=a;this.d=b;this.b=c;this.c=d;this.e=e}
+function AD(a){var b;this.a=a;b=new F$b;B$b(b,dsd(a.C.t));this.b=b.a}
+function Lib(a,b){var c;if(kvc(a,93)){c=a.b;Iqd(b,pEd,(Cnd(),''+c))}}
+function Ipb(a,b){return new Apb(a,'Mirror vertically',b,new Kpb(a))}
+function gwb(a){return new zxb(new Mxb,new BLb(a.c,a.i,a.d),new lwb)}
+function qub(a){oub();nub?Wr(nub,a):(Rlb(a.a),JNb(a.a.u,new Zlb(a)))}
+function lob(a,b){if(Hnd(lHd,b)){return $Zb(a.a.Hl())}return td(a,b)}
+function vwb(a){if(!!a&&xtc(a,rwb)){return 'Never'}return Bwb(a,pwb)}
+function _cb(a,b,c,d){if(c==0){return -(d+1)}return Zcb(b,c-a.b.d,d)}
+function Ezb(a){if(!a.a){return}og(a.a,new Izb(a),(voc(),voc(),uoc))}
+function dXb(a){if(a.b){return new Cy(a.a)}return x$b(new F$b,a.c).a}
+function xTb(a,b){if(b==null&&a.n==null||a.n==b){return}a.n=b;vTb(a)}
+function iDb(a){if(a.a==-1){a.a=a.c.a.length;Wr(a.c,null)}return a.a}
+function c9c(a){var b;if(mvc(a)){b=a;return b==-0.?0:b}return Wuc(a)}
+function Kld(a,b){old();if(b>=a.length){return null}return a.item(b)}
+function Lid(a,b){var c;c=a.f;b>-1&&b=0&&a=_Jb){return 1}if(a.b<=aKb){return -1}return 0}
+function cyb(a){var b;b=Yxb(a,THd);if(kvc(b,78)){return b}return null}
+function Zcd(a,b){var c;c=cdd(b);if(c<0){return null}return Yr(a.b,c)}
+function mcd(a){var b;lcd();b=jcd.np(a);return !b?null:b.zd(b.vd()-1)}
+function btd(a){var b;b=wwd(a.b,a.b.length);return new gtd(a.a,b,a.c)}
+function Knd(a,b,c){Vwd(0,b,a.length);Vwd(0,b,c.length);Lnd(a,0,b,c,0)}
+function gxd(a){var b;a.j=0;a.n=0;for(b=0;b0){++a.e;return true}return false}
+function In(a){var b;if(!a.d.M){return null}b=a.c.i;return !b?null:b.a}
+function FE(a,b,c){var d;d=WVb(a.a,b);!d&&(d=VVb(a.a,c));return d.Ol()}
+function CE(a,b,c){var d;d=WVb(a.a,b);!d&&(d=VVb(a.a,c));return d.Lh()}
+function ZI(a,b){if(b.a==(YE(),XE)){return}mIb(a.a,(Ez(),Az));a.b=null}
+function tk(a,b){if(gk(b)){return false}return xk(a.a,fod('',kk(b.a)))}
+function qK(a,b){mK(a.Kf(),a.Pf());a.Lf(true);nK(a.Kf(),b);a.Lf(false)}
+function Yl(a,b){!!a.b&&Xld(a.b);a.b=null;a.a=b;!!a.a&&(a.b=Dd(a,a.a))}
+function iH(a,b){this.a=a;this.b=b;this.c=new qad(-this.a.a,-this.a.b)}
+function Hdb(a){Jdb.call(this,a,a);Xr(this.v,a.ih());Xr(this.r,a.hh())}
+function xib(a,b){var c;kjb(new ljb(a),b);c=new Xib(a);return Wib(c,b)}
+function Cpb(a,b){return new Apb(a,'Mirror horizontally',b,new Jpb(a))}
+function oqb(a,b){return a.d?new UB(a.c,a.f.i):new rE(Vw(a.f),b,a.f.i)}
+function xR(a,b){return (new qad(b.b.a+b.c/2,b.b.b+b.a/2)).b+b.a/2*a.a}
+function dR(a,b){return (new qad(b.b.a+b.c/2,b.b.b+b.a/2)).a+b.c/2*a.a}
+function _kc(a){return Hnd(a.compatMode,bKd)?a.documentElement:a.body}
+function jPd(a){return Hnd(a.compatMode,bKd)?a.documentElement:a.body}
+function yxb(a,b,c){rm(Ixb(a.d),false);ALb(a.c,b,a.a,new FLb(c,false))}
+function rdb(a,b){if(hs(a.s,b)==-1){Wr(a.s,b);return true}return false}
+function vJb(a,b){if(!!a.a&&a.a.c>=0&&a.a.a>=0){AJb(a,b);wJb(a,a.a,b)}}
+function jRb(a,b){this.c=a;this.b=b;Gad()&&(this.a=new zRb(new Sbd,a))}
+function gXb(a){this.b=a.kh();this.c=new utd(a.eh());this.a=new Hdb(a)}
+function Jqb(a,b,c){wd.call(this,'Zoom in',c);this.a=a;dKb(b.j.e,this)}
+function odc(a,b,c){return Qac(Pac(new Tac(lad(a.a,c.a),a.b-c.b),b),c)}
+function Fgc(g,a,b,c,d,e,f){return g.createRadialGradient(a,b,c,d,e,f)}
+function Jm(a,b,c,d){return a>=c&&a<=c+(Os(),Gs)&&b>=d&&b<=c+(Os(),Gs)}
+function Bjc(a,b){var c;return ajc((c=Qjc(a,b),c?c:b.documentElement))}
+function djc(a,b){var c;b=ojc(b);c=mjc(a.className||'',b);return c!=-1}
+function O2b(a,b){var c;c=b&&(s6b(),h6b)==a.o;if(a.i!=c){a.i=c;vTb(a)}}
+function foc(a,b){var c;c=coc(b);Nic(doc(a),c,a.a.firstChild);return c}
+function frc(a,b){if(null==b){throw I8c(new und(a+' cannot be null'))}}
+function T9c(a,b){if(!kvc(b,2236)){return false}return Hnd(a.a,b.Qc())}
+function U9c(a){if(a==null){throw I8c(new und('uri is null'))}this.a=a}
+function Umc(){Umc=p9c;Tmc=new Xmc;Smc=new Ymc;Qmc=new Zmc;Rmc=new $mc}
+function ymc(){ymc=p9c;xmc=new Bmc;umc=new Cmc;vmc=new Dmc;wmc=new Emc}
+function Jmc(){Jmc=p9c;Imc=new Mmc;Gmc=new Nmc;Hmc=new Omc;Fmc=new Pmc}
+function dnc(){dnc=p9c;_mc=new gnc;anc=new hnc;bnc=new inc;cnc=new jnc}
+function WCb(){WCb=p9c;VCb=new $Cb;UCb=new ZCb;SCb=new YCb;TCb=new XCb}
+function rjd(){rjd=p9c;njd=new ujd;ojd=new vjd;pjd=new wjd;qjd=new xjd}
+function Ewb(){Ewb=p9c;Cwb=new Fwb('DATE',0);Dwb=new Fwb('LICENSEE',1)}
+function oL(){oL=p9c;nL=new pL('GROUP',0,false);mL=new pL(YBd,1,true)}
+function s$(){s$=p9c;q$=new xT(false,KCd);r$=new vT(true,1.5,true,uBd)}
+function I3(){I3=p9c;H3=vuc(quc(g6c,1),eyd,2,6,[uDd,'atom1','atom2'])}
+function jNd(){return new h_(MBd,vuc(quc(UGc,1),nyd,34,0,[(A_(),v_)]))}
+function ANd(){return new h_(MBd,vuc(quc(UGc,1),nyd,34,0,[(A_(),z_)]))}
+function zqd(a,b){return b===a?'(this Map)':(Cnd(),b==null?iyd:s9c(b))}
+function Jgd(a,b,c,d){Igd.call(this,a,b);rjc((abd(),a.U),c);qjc(a.U,d)}
+function sfd(a,b,c,d){var e;e=Lfd(a.d,b,c);Afd(a,(abd(),e),d);return e}
+function csd(a,b){Xrd();var c;c=new mtd;Atd(c.d,a,b);return new xsd(c)}
+function twd(a){hwd();if(ewd){return new swd(null)}return $vd(awd(),a)}
+function G8c(){switch(x8c){case 2:case 5:return new Tld;}return new Old}
+function F8c(){switch(x8c){case 2:case 5:return new ykd;}return new wkd}
+function E8c(){switch(x8c){case 2:case 5:return new dkd;}return new gkd}
+function D8c(){switch(x8c){case 2:case 5:return new akd;}return new $jd}
+function C8c(){switch(x8c){case 2:case 5:return new Odd;}return new Ndd}
+function B8c(){switch(x8c){case 2:case 5:return new ndd;}return new pdd}
+function A8c(){switch(x8c){case 2:case 5:return new Ycd;}return new Xcd}
+function z8c(){switch(x8c){case 2:case 5:return new okc;}return new ckc}
+function Wad(){var a;if(!Tad||Yad()){a=new ltd;Xad(a);Tad=a}return Tad}
+function Ojd(a){++a.a;while(a.a$wnd.Math.abs(hw(a.o.i,0.77))}
+function zT(a,b){AT.call(this,a.d,a.c,new ibc(kH(a.b.b,b),a.b.c,a.b.a))}
+function tB(a,b){BA.call(this,a,a.C,C$b(new F$b,new Srd(b)).a);this.a=b}
+function cgd(a){wo.call(this);$f(this,wkc($doc));jjc((abd(),this.U),a)}
+function okd(b,a){a?b.f.contentWindow.focus():b.f.contentWindow.blur()}
+function nO(a,b,c){if(c.a!=0){XN(b,c.a);yQ(a.c.f,new EB(a.c.i,b,true))}}
+function adb(a,b,c,d){if(c=0&&a.a[c]===b[c];c--);return c<0}
+function bJb(a,b){var c;if(b){c=Xtd(a.a,b);return !!c&&c.c}return false}
+function KWb(a){var b;if(kvc(a,275)){return a}b=MWb();wVb(b,a);return b}
+function Kvb(a,b){if(Sx(a.a.a.a.i.A)){return}dwb(b,Uvb(a.a));Ovb(a.a.a)}
+function ydc(a,b){vdc(a.a,b)?(a.a.r=a.a.t.nn(a.a.k,a.a.o)):(a.a.r=null)}
+function Fkd(c,a){var b=c;c.onreadystatechange=Yxd(function(){a.Qn(b)})}
+function nPd(a){if(!kvc(a,1009)){return false}return Hnd(this.a,a.Qc())}
+function swd(a){hwd();if(ewd){return}this.c=a;this.e=true;this.a=new es}
+function Cj(){hj();this.b=this.vc();this.d=(xj(),vj);this.c=new tj(this)}
+function hwd(){hwd=p9c;ewd=true;cwd=false;dwd=false;gwd=false;fwd=false}
+function vl(a){if(a.k||a.n){kbd((abd(),a.U));a.k=false;a.n=false;a.bd()}}
+function ll(a,b){a.a=b;!!a.b&&Xld(a.b);a.b=null;!!a.a&&(a.b=Cd(a.p,a.a))}
+function Gp(a,b){b>-1&&b0&&a<=VZb.length){return VZb[a-1]}return null}
+function Anb(a){if(Cnb(a,(kA(),eA))!=null){return new Mnb(a)}return null}
+function Sbb(a){if(a.Fj(xEd)){return Und(a.Cj(xEd),':',0)[0]}return null}
+function Aib(a){var b;b=new Yfb;Wfb(b,dsd(a.n));Xfb(b,dsd(a.p));return b}
+function t7(a,b){var c,d;d=(c=O6(a,b),r2(N6(b,c)));u7(b)&&q7(b);return d}
+function u8b(a,b){var c,d;d=lad(b,a.b);c=t8b(a,d);return c*a.a<0?a.c:a.d}
+function VFb(a,b){if(b){gg(a.a,true)}else{tFb(a,SFb.a[1]);gg(a.a,false)}}
+function Bp(a){var b;if(a.e!=-1){Hp(a,a.e)}else{b=fxb(a.a);!!b&&yp(a,b)}}
+function Gtc(a,b){var c;c=a.r.getHours();a.r.setFullYear(b+KKd);ztc(a,c)}
+function Hjd(a,b){var c;c=Ejd(a,b);if(c==-1){throw I8c(new Eud)}Gjd(a,c)}
+function Kjd(a){if(!a.a){throw I8c(new dnd)}a.c.b.Rb(a.a);--a.b;a.a=null}
+function U3b(a,b){if(!b){throw I8c(new tnd)}return a.c.length-b.c.length}
+function $td(a,b){var c;c=Jqd(a.c,b);if(c){cud(c);return c.e}return null}
+function yxd(a,b){var c=a[b];var d=0;for(k in c)d=Math.max(d,k);return d}
+function Gxd(a,b){var c=[a];for(i=0;i0&&Whd(a,b,'',d,c);return d}
+function Nmd(a,b,c){var d;d=Lmd(a);Umd(a,d);d.i=c?8:0;d.f=b;d.e=c;return d}
+function Grd(a,b){var c,d;c=(d=a.slice(0,b),wuc(d,a));c.length=b;return c}
+function hrd(a,b){var c,d;c=b.yp();d=evd(a,c);return !!d&&Gud(d.e,b.Ok())}
+function Lh(a,b){var c,d;c=new Uh(b);d=pg(a,c,_pc?_pc:(_pc=new Ioc));c.b=d}
+function acd(a){Zbd();bcd();ccd();return _bd((!fqc&&(fqc=new Ioc),fqc),a)}
+function _n(a,b,c){if(b.a.length==0){return a}return $n(a,Im(new Qd(b,c)))}
+function cpd(a,b){if(b==0||a.e==0){return a}return b>0?tpd(a,b):wpd(a,-b)}
+function dpd(a,b){if(b==0||a.e==0){return a}return b>0?wpd(a,b):tpd(a,-b)}
+function Ku(a,b){if(dsd(a.C.n).b.vd()==0||!b){return null}return hT(a.j,b)}
+function Mgd(a,b){if(b<0||b>=vlc((abd(),a.U)).length){throw I8c(new kmd)}}
+function Yo(a){if(pl(a.a.e)){lo(a.a,a.a.o+(ho(),fo));Ji(a,200)}else{Hi(a)}}
+function $o(a){if(pl(a.a.j)){lo(a.a,a.a.o-(ho(),fo));Ji(a,200)}else{Hi(a)}}
+function dL(a,b){if(a.a.length==0||b.a.sd()){return false}return !Zrd(a,b)}
+function XJ(a,b){var c;c=b!=null&&kvc(b,215)?b.a:a.a;return mnd(VJ(a.b,c))}
+function Ip(a,b,c){var d;if(b!=-1){as(a.c,b,c);d=xfd(a.b,b);oed(d,bxb(c))}}
+function po(a,b,c){var d;ro(a,c);if(b.T==a){d=Ejd(a.i,b);d=0&&b!=a.d){a.d=b;a.j=null;!!a.A&&SVb(a.A,new u7b)}}
+function WU(a){i1b();if(a>0&&a<=126){return YU(),Eqd(XU,mnd(a))}return uBd}
+function Ydd(a,b){a.d=(abd(),b.U);!!a.e.d&&Wdd(a.e.d)==Wdd(a)&&Dl(a.e,a.d)}
+function efd(a,b){var c;c=vo(a,b);if(c){b==a.a&&(a.a=null);dfd(a)}return c}
+function Xtd(a,b){var c;c=Eqd(a.c,b);if(c){Ztd(a,c);return c.e}return null}
+function avd(a,b){!a.a?(a.a=new Aod(a.d)):nod(a.a,a.b);nod(a.a,b);return a}
+function H6b(a,b,c){I6b.call(this,a.gn(),b.gn(),c);F6b(this,a);G6b(this,b)}
+function kPd(a,b,c){this.b>0?sqc(this,new amd(this,a,b,c)):wqc(this,a,b,c)}
+function idd(a){$wnd.addEventListener&&$wnd.addEventListener(mLd,a,false)}
+function ZZb(a){return ivc(Cmd(a.charCodeAt(0)))+a.substr(1).toLowerCase()}
+function n7(){l7();return vuc(quc(xIc,1),nyd,241,0,[k7,g7,e7,h7,i7,f7,j7])}
+function PHb(){PHb=p9c;OHb=vuc(quc(oAc,1),nyd,217,0,[(Lz(),Iz),Jz,Hz,Kz])}
+function nz(){nz=p9c;mz=hc((iz(),vuc(quc(kAc,1),nyd,249,0,[hz,ez,gz,fz])))}
+function xz(){xz=p9c;wz=hc((sz(),vuc(quc(lAc,1),nyd,120,0,[qz,pz,rz,oz])))}
+function SIb(){SIb=p9c;RIb=hc((MIb(),vuc(quc(TSc,1),nyd,304,0,[LIb,KIb])))}
+function V8b(){V8b=p9c;U8b=new W8b('RECTANGLE',0);T8b=new W8b('ELLIPSE',1)}
+function Ts(){Ts=p9c;Ss=new RegExp('^(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?.*')}
+function pu(a,b,c){var d;return (d=wu(a.c,b,c),kvc(d,63)?E2b(d,b):a.a).Hl()}
+function gB(a,b,c){var d;Jud(b,BBd);return hB(a,c,(d=new lB,new fE(d,b,c)))}
+function hdb(a,b,c,d){if(Wtd(a.c,c)){return gdb(a,b,c,d)!=null}return false}
+function DR(a){var b;if(a){b=new FR;a.Tm(b);return X9c(b.a.a).a}return null}
+function _r(a,b){var c;c=a.Ad(b);if(c==-1){return false}$r(a,c);return true}
+function Fk(a,b){var c,d;c=a.a-b.a;d=a.b-b.b;return $wnd.Math.sqrt(c*c+d*d)}
+function Lvb(a,b){var c;c=b.a.getData(tFd);c!=null&&c.length!=0&&Vvb(a.a,c)}
+function Tg(a){var b;b=a.O;if(b){a.v!=null&&b.zb(a.v);a.w!=null&&b.Bb(a.w)}}
+function dx(a,b){if(!!b&&!!a.c.j&&!!a.c.C){PS(a.c.j,a.a,b);zy(a.a.b,a.c.C)}}
+function PCb(a,b){fDb(a.b,pvc((s6b(),h6b))===pvc(jDb(a.a.j))||kDb(a.a.j,b))}
+function Mqb(a,b,c,d){this.b=new es;this.c=c;this.d=a;this.a=b;Xr(this.b,d)}
+function cbb(a){this.a=a;this.b=suc(uvc,jyd,23,6,15,1);this.c=0;bbb(this,6)}
+function lnb(a){this.b=a;this.a='Cannot drop file: unsupported file format'}
+function XVb(a){var b;for(b=0;b0){return a.files[0]}return null}
+function X7b(a,b){var c;c=Zr(a.b,b,0);if(c>-1){return Yr(a.a,c)}return null}
+function d2b(a){var b;b=new is;if(a){Xr(b,a.d);Xr(b,a.a);Xr(b,a.c)}return b}
+function v8b(a,b){var c;c=new qad(b.a-a.a,b.b-a.b);return new qad(-c.b,c.a)}
+function bbc(a,b){return b.a>a.b.a&&b.b>a.b.b&&b.a3||a.Nl()<-3){return 0}return a.Nl()!=0?4-a.Nl():0}
+function od(a){if(a==9||a==17||a==35||a==53||a==85)return true;return false}
+function Im(a){if(a.a.a.length==0||!a.c){throw I8c(new and)}return new Hm(a)}
+function uu(a){this.a=new y2b((WZb(),DXb));this.c=new yu;nu(this,new w$b(a))}
+function To(a,b){var c,d;d=gbd((abd(),b.U));c=vo(a,b);c&&Qic(a.c,d);return c}
+function TOb(a,b){var c,d;d=(c=us({}),c);d['atoms']=a;d['bonds']=b;return d}
+function Tid(a,b){var c;Rid(a,b);c=to(a.a,b+1);c==a.b&&(a.b=null);To(a.a,c)}
+function Bl(a,b){var c;c=(b.a&1)==1;agc();Xdc((abd(),a.U),(Kec(),c?Iec:Gec))}
+function yuc(a){var b,c,d;b=a&XKd;c=a>>22&XKd;d=a<0?YKd:0;return Auc(b,c,d)}
+function QR(a,b){a.b=true;a.a=true;a.c=new yod;return Q9c(),new J9c(RR(a,b))}
+function uH(a){a.d=null;a.j=null;a.k=false;ex(Mu(a.o.i),a.eg());a.o.i.w.Hf()}
+function _M(a){a.a.a=null;a.a.c=false;a.b=0;a.d=null;a.c=null;a.e=null;BM(a)}
+function GQ(a,b){return kvc(b,657)&&a.a!=null&&a.b!=null&&a.a==b.a&&a.b==b.b}
+function gn(a,b,c,d){return $wnd.Math.max(b-yn(Osd(a.a,c))-yn(Osd(a.a,d)),0)}
+function uV(a,b,c,d,e){var f;f=new UV(a,b,c,d,e);return new QV(c,d,a.Yd(),f)}
+function fT(a,b){var c;c=Xtd(a.d,b);return c?c:new dV(b,a.n,a.f,a.f,a.f,a.s)}
+function Nbd(){var a;a=Yxd(Kbd);$wnd.addEventListener('hashchange',a,false)}
+function g3(){g3=p9c;e3=new h3('HAS_UID',0,true);f3=new h3('NO_UID',1,false)}
+function J$(){J$=p9c;H$=new vT(true,1.5,true,ECd);I$=new vT(true,3,true,ECd)}
+function FAb(a){var b;b=new Kgd;kg((abd(),b.U),rId,true);return new RAb(b,a)}
+function hab(a){var b,c;c=Tr(T7,a);c<0?(b=a.a/2|0):(b=4+c);return Cnd(),''+b}
+function Tw(a,b){RE(b,a.e);QE(b,a.e);NE(b,a.e);ME(b,a.e);OE(b,a.e);PE(b,a.e)}
+function Lnb(a,b,c){return Enb(a.a,(kA(),eA),vPb(b,false,xPb(znb(c))),a.a.c)}
+function RRb(a){if(PRb(a)==-1){return}rm(a.b,false);JRb(a.a,PRb(a),Qdd(a.c))}
+function QKb(a){if(!(!!a.b&&!!a.a)){return}rrb(new urb(a.b),a.a);a.c.tb(a.b)}
+function KZ(a){if(!JZ(a)){return Xrd(),Xrd(),Urd}return Xrd(),new ksd(JZ(a))}
+function v6b(a){s6b();if(a!=null){if(U(a)==RXc){return a}}return w6b(s9c(a))}
+function Fcc(a){Ccc();if(a!=null){if(U(a)==XYc){return a}}return Gcc(s9c(a))}
+function Zcc(a){Xcc();if(a!=null){if(U(a)==ZYc){return a}}return $cc(s9c(a))}
+function $pc(a,b){var c;if(Ypc){c=new Zpc;c.b=b;a.Fb(c);return c}return null}
+function nVb(a,b){var c;if(b){c=a.a;a.a=b;jad(b,c)||!!a.b&&SVb(a.b,new u7b)}}
+function Iwb(a,b,c){Vfd(a.a,a.a.b);Ffd(a.a,a.a.b-1,0,b);Ffd(a.a,a.a.b-1,1,c)}
+function Bab(a,b,c,d,e){b.a+=c;b.a+=' 0';nod(b,zab(a,l8(d)));nod(b,Aab(a,e))}
+function VKb(a,b){var c;WKb.call(this,(c=new MPb(new Jkb(a,(kA(),hA)),b),c))}
+function KJ(a,b,c,d){IJ();$G.call(this,a);this.c=new i_(c);this.b=d;this.a=b}
+function Ifd(){Gfd.call(this);Vo(this,new Qfd(this));Efd(this,new jgd(this))}
+function sed(){qed.call(this,wkc($doc));(abd(),this.U).className='gwt-HTML'}
+function ped(){ned.call(this,wkc($doc));(abd(),this.U).className='gwt-Label'}
+function Crd(a){if(vrd(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1}
+function q7(a){if(ps(a.c)){++a.b;a.a=qs(a.c);return a.a}a.a=null;return null}
+function Src(a){switch(a.k){case 0:case 1:return true;default:return false;}}
+function Zi(a){if(!a.p){throw I8c(new end('initWidget() is not called yet'))}}
+function Vwd(a,b,c){if(a<0||b>c||b0&&a.jm(d)}}
+function cx(a,b){if(!!b&&!!a.c.j&&!!a.c.C){RS(a.c.j,a.a.b,b);zy(a.a.b,a.c.C)}}
+function aA(a,b){if(!!a.a&&a.a!=b||!b){a.a=null;throw I8c(new Gv)}else{a.a=b}}
+function C6(a){switch(a){case 3:return s6b(),i6b;default:throw I8c(new and);}}
+function WL(a){if(a.c){$L(a)}else{a.c=true;a.b=new pad;ZL(a,a.d);iS(a.j,100)}}
+function Rfb(a,b){this.c=b;this.a=a.a;this.b=dsd(a.a.a.b);this.d=dsd(a.a.a.a)}
+function Ekb(a){this.a=a;this.b=true;this.b?Of(this.a.T,PGd):Yf(this.a.T,PGd)}
+function fh(){Jg();eh.call(this,true);kg(Ig.Ho(fbd((abd(),this.U))),Azd,true)}
+function feb(){geb.call(this,Q0((P0(),M0))?new kdb(new Kt):new Kt,f2(Q0(K0)))}
+function bqb(a,b){this.a=new is;Wub(a,new cqb(this));!!b&&Iu(b,new dqb(this))}
+function Yqb(a,b){var c,d;c=new _qb;d=Xqb(a,b);Prd(d.a,d.a.length,c);return d}
+function ffb(a,b){var c;c=efb(a,b);b.a.length==0&&Xr(b,cfb(a,a.a.k));return c}
+function Cob(a){var b;return b=Dob(a),qmd(),(b?Eob(a,b):Vw(a.a).e)?true:false}
+function jjb(a,b,c){var d;hjb(a,(d=Pib(a.c,oFd),eld(d,tDd,tFd),Lkd(b,d),d),c)}
+function fhb(a,b,c){bhb(c,'topology',b.j.a);bhb(c,HEd,Vfb(b.e));a.a.Nj(b.n,c)}
+function UHb(a,b){Dgc(b,0,0,_Ib(a.i,a.b).Un().width,_Ib(a.i,a.b).Un().height)}
+function uCb(a,b,c){tCb.call(this,a,c);this.f=b;this.c=false;this.e=new $s(b)}
+function Hzb(a,b,c,d){wyb.call(this,b);this.a=null;this.e=d;this.b=a;this.c=c}
+function crc(a){arc.call(this,'A request timeout has expired after '+a+' ms')}
+function EOb(a){if(!FOb(a)){throw I8c(new Fud('No value present'))}return a.b}
+function E2b(a,b){if(b!=a.c&&b!=a.d){throw I8c(new and)}return b==a.d?a.c:a.d}
+function Uod(a){var b;if(a.e==0){return -1}b=Tod(a);return (b<<5)+knd(a.a[b])}
+function Mqc(a){var b;if(!a.d){return}Hi(a.c);b=a.d;a.d=null;Dkd(b);b.abort()}
+function qS(a){if(!a.b){a.b=new vS(a);!!a.d&&!a.d.sd()&&xS(a.d,a.b)}return a.b}
+function yV(a,b,c){if(b!=null){return xV(a,new jX((HU(),GU),!c),b)}return null}
+function WOb(b){var a=b.backgroundColor||null;if(a==WId){return null}return a}
+function F3(a,b){var c;c=a.exec(b);if(c){return Und(c[0],'=',0)[1]}return null}
+function y6(a){if(a==1){return Ccc(),Bcc}if(a==2){return Ccc(),Acc}return null}
+function cab(a){switch(a.k){case 3:return 1;case 1:return 2;default:return 0;}}
+function Leb(a,b){var c;if(b){c=Meb(a,b.b);if(c){Keb(a,Qeb(c,b.a));_r(a.b,c)}}}
+function Bt(a){if(djc(Rf(a.a),cBd)){Yf(a.a,cBd);oed(a.a,Vf(a.a));fg(a.a,null)}}
+function _m(){_m=p9c;$m=hc((Xm(),vuc(quc(eyc,1),nyd,273,0,[Um,Tm,Vm,Wm,Sm])))}
+function mA(){kA();return vuc(quc(yAc,1),nyd,218,0,[eA,fA,hA,jA,iA,gA,dA,cA])}
+function gH(a,b){return hH(a,$wnd.Math.ceil(jH(kH(b,a.c))*30/jBd-0.5)/30*jBd)}
+function nob(a,b){return oob(a,new v2b(b),(i1b(),b>0&&b<=126?h1b[b-1].d:null))}
+function ihb(a,b,c){var d;d=lhb(a,b,(bjb(),Yib));Yhb(d,b1b(d1b(b.n)),b.Lh(),c)}
+function b3(a,b,c,d,e,f){gc.call(this,a,b);this.d=c;this.a=f;this.b=d;this.c=e}
+function kJ(a,b,c,d,e,f){fJ.call(this,a,f);this.a=b;this.d=c;this.c=d;this.b=e}
+function ZAb(a,b,c){this.a=a;this.b=new zCb(b,c);a.c||yCb(this.b,a.c?null:a.f)}
+function Ixb(a){if(!a.b){a.b=new Bm;zm(a.b,'Import');mm(a.b,Gxb(a))}return a.b}
+function onb(a){if(!a){throw I8c(new und('Indicator cannot be null'))}this.a=a}
+function Jmb(a){if(!Imb){Imb=true;Sxd();z0b(Rxd,uMc,a);new Zmb;new Rmb;Kmb(a)}}
+function UKb(a,b){var c;c=new JPb(a.a,null,(C1(),m1),null);return new ZKb(c,b)}
+function Yxb(a,b){if(Hnd(THd,b)){return !a.a&&(a.a=new Nvd),a.a}return td(a,b)}
+function __b(a,b){if(mx(a,b)){!!a.v&&SVb(a.v,new u7b);return true}return false}
+function K0b(a,b){var c;c=a;while(c){if(c.b==b){return true}c=c.c}return false}
+function lUb(a){var b;if(kvc(a,68)){b=a.e;if(b){return b.b!=null}}return false}
+function L7b(a,b,c){if(b.a.length>1){return new l8b(a,b,c)}return new r8b(a,b)}
+function qRb(a){this.a=a;this.c=new JIb(new pRb(Rf(Dbd().a).getContext('2d')))}
+function vAb(a,b){var c;AAb(a,(c=new SBb,new RAb(MEb(Rf(new kjd),c,c),b)),iId)}
+function _cd(a,b){var c;c=cdd(b);b[lLd]=null;as(a.b,c,null);a.a=new ddd(c,a.a)}
+function Etc(a,b){var c;c=a.r.getHours()+(b/3600|0);a.r.setSeconds(b);ztc(a,c)}
+function Z_b(a){var b,c,d;for(c=0,d=a.length;c=c||b<0){throw I8c(new lmd(vLd+b+wLd+c))}}
+function Ocd(a){var b;b=Tcd(a);if(!b){return}cbd(a,b.nodeType!=1?null:b,Bcd(b))}
+function c2b(){X1b();return vuc(quc(qXc,1),nyd,137,0,[U1b,T1b,R1b,S1b,W1b,V1b])}
+function _cc(){Xcc();return vuc(quc(ZYc,1),nyd,206,0,[Wcc,Rcc,Ucc,Scc,Tcc,Vcc])}
+function Fhc(){Dhc();return vuc(quc(B$c,1),nyd,278,0,[xhc,yhc,zhc,Ahc,Bhc,Chc])}
+function yNd(){return new h_(MBd,vuc(quc(UGc,1),nyd,34,0,[(A_(),l_),n_,r_,x_]))}
+function Pnd(a){return (new RegExp('^([a-z]+|#[0-9]+|#x[0-9a-fA-F]+)$')).test(a)}
+function kdd(a){$wnd.removeEventListener&&$wnd.removeEventListener(mLd,a,false)}
+function Qm(a,b){a.a=$wnd.Math.max(0,a.a+(b?1:-1));Wf(a.b)!=a.a>0&&gg(a.b,a.a>0)}
+function gp(a){!!a.b&&!!a.c&&mp(a.d,qvc(a.c.a),qvc(a.c.b),qvc(a.b.a),qvc(a.b.b))}
+function je(a,b){if(b){Ydd(a.o,b);Ydd((!a.f&&Fl(a,new $dd(a,a.o,Qyd,1)),a.f),b)}}
+function wad(){if(!uad){uad=wkc($doc);mg(uad,false);Lic((oid(),$doc.body),uad)}}
+function Evd(){Evd=p9c;Avd=new Fvd('All',0);Bvd=new Hvd;Cvd=new Ivd;Dvd=new Jvd}
+function _1b(a,b,c,d,e,f){gc.call(this,a,b);this.a=c;this.b=d;this.c=e;this.d=f}
+function mac(a,b,c,d,e,f){gc.call(this,a,b);this.d=c;this.c=d;this.a=e;this.b=f}
+function yc(a,b,c){var d,e;e=0;for(d=0;d4}
+function sY(a,b){if(b){return 1.5}if(1.5*a.c.Yd()<1){return 1/a.c.Yd()}return 1.5}
+function zkb(a,b){var c,d,e;for(d=0,e=b.length;d0&&dsd(a.k).a.sd()&&!b.c.fn()&&!b.a.fn()}
+function lGb(a,b){var c;c=b?b.ab():'';pFb(a.b.a,null);cGb(a.b.d,a.a.Ic()+':\n'+c)}
+function wuc(a,b){ruc(b)!=10&&vuc(U(b),b.Gp,b.__elementTypeId$,ruc(b),a);return a}
+function bbd(a,b){abd();var c;c=Bcd(b);if(!c){return false}cbd(a,b,c);return true}
+function dob(a){Yw(a.c,a.d);ud(a,Fyd,(qmd(),T(a.d,a.c.a)?true:false));return true}
+function Vfd(a,b){var c,d;d=zfd(a,b);++a.b;for(c=0;c=a.c.c){throw I8c(new Eud)}a.a=a.c.a[a.b];++a.b;return a.a}
+function atd(a,b){var c;c=b.k;if(!a.b[c]){a.b[c]=b;++a.c;return true}return false}
+function Lwb(){this.a=new $fd(0,2);this.a.f[MAd]=3;Of(this.a,'mjs-padded-header')}
+function _D(a,b){this.d=b;this.b=new gs(a);this.c=XD(this,a);this.a=$D(this.d.A,a)}
+function VX(a,b,c,d,e){$wnd.Math.abs(d)$wnd.Math.max(a.o.i.a.j.e.b*10,1)}
+function Br(a,b,c){if(!c){return}Iqd(a.b,b,Cr(a,Gqd(a.b,b)?hvc(Fqd(a.b,b)):a.a,c))}
+function VI(a,b){if(b.a==(YE(),XE)){return}if(a.b){aw(a.c,lad(b.c,a.b));Uo(a,b.c)}}
+function Tv(a){Uo(a.a,(Lz(),Hz));if(fIb(a.a)&&gIb(a.a,Hz)){hIb(a.a,false);qw(a.e)}}
+function Xv(a){Uo(a.a,(Lz(),Jz));if(fIb(a.a)&&gIb(a.a,Jz)){hIb(a.a,false);vw(a.e)}}
+function Kn(a){a.d.M&&(Kid(a.c)==-1?Lid(a.c,a.c.f.a.length-1):Lid(a.c,Kid(a.c)-1))}
+function W0(a){var b;this.a=(b=Imd(pHc),new gtd(b,ywd(b,b.length),0));Lr(this.a,a)}
+function YP(a){var b;if(a.c){b=new gs(a.d.Ne());Wr(b,a.c);return b}return a.d.Ne()}
+function XW(a){if(a.b.a.length==0||a.a==(dX(),cX)){return a.c}return a.b.a[0].Qh()}
+function Gub(a){if(a.f.a.a.length!=0){Qm(a.e,true);bt(a.f.a.a[0].xl(),new Vub(a))}}
+function Gvb(a,b){if(b.a.length==0){return}a.a.a.length==0||Wr(a.a,null);Xr(a.a,b)}
+function qfb(a,b,c,d){if(b){Wr(a.b,b);Wr(a.c,c);Wr(a.a,d);return true}return false}
+function B$(a,b,c,d,e){s$();var f;f=new z$(a,b,c,d,false);f.c=tS(c,d,e,f);return f}
+function bbb(a,b){var c;for(c=0;c0&&dsd(a.k).b.vd()==1&&Q0b(dsd(a.k).a.zd(0))}
+function d1b(a){return a?(Xrd(),kvc(a,291)?new Dsd(a):new vsd(a)):(Xrd(),Xrd(),Urd)}
+function APb(a){return ys(BPb(CPb(zPb(a)),a.defaultItem||null,a.isFloating||false))}
+function f$b(a){if(a.b.a==null){return null}return a.b.a+(''+(a.a==-1?'':mnd(a.a)))}
+function $od(a,b){if(b.e==0){return Mod}if(a.e==0){return Mod}return lqd(),mqd(a,b)}
+function ftd(a,b){if(!!b&&a.b[b.k]==b){a.b[b.k]=null;--a.c;return true}return false}
+function zgc(a){ol();!wgc&&(wgc=new Agc);if(!a.getContext){return false}return true}
+function kw(a,b,c,d){if(yIb(a.a,b,c,d)){a.j.c=true;a.w.Hf();return true}return false}
+function Bj(c,a){var b=c.b.contentWindow.document;return b.queryCommandSupported(a)}
+function zjc(a){var b=a.nextSibling;while(b&&b.nodeType!=1)b=b.nextSibling;return b}
+function hvc(a){var b;a==null||Array.isArray(a)&&(b=ruc(a),!(b>=14&&b<=16));return a}
+function htd(a){var b;++a.a;for(b=a.c.a.length;a.aa.b+a.j&&emd(b,a.b+a.j)>=53){c=a.b+a.j-1;ftc(a,b,c)}}
+function RK(a,b){var c;if(a.c){Jl(a,b.c);c=hx(Lu(a.o.i));a.Fg(c);SK(a);a.o.i.w.Hf()}}
+function bK(a,b){var c;c=eK(a);if(c.sd()){return null}return a.b?cK(a,b,c):dK(a,b,c)}
+function i5(a,b){h5();var c;return c=bod(a.substr(b,b+3-b)),c.length==0?0:Xmd(c,10)}
+function t2(a,b){var c,d;for(d=b.mp().Qb();d.Rc();){c=d.Sc();DWb(a.a,c.yp(),c.Ok())}}
+function CH(a,b){return a.Gl()==null&&b.Gl()==null||a.Gl()!=null&&Hnd(a.Gl(),b.Gl())}
+function pQ(a,b){dH.call(this,a);this.a=new lQ(a,b);this.c=new VM(a);bH(this,this.a)}
+function CQ(){this.a=new Cqc;this.d=new zrd(this.b);this.c=new zrd(this.b);this.b=40}
+function uC(a,b,c){this.o=a;this.j=new _td;this.b=new _td;this.e=b;this.a=lC(this,c)}
+function Cgd(a){xgd();En(this,new Igd(this,a));(abd(),this.U).className='gwt-Image'}
+function gjd(a){JEb.call(this,a,(!gad&&(gad=new had),gad),(!ead&&(ead=new fad),ead))}
+function aud(a){ltd.call(this);Utd(this);this.b.b=this.b;this.b.a=this.b;yqd(this,a)}
+function hxd(a,b){a.k[a.n++]=b;if(a.n==a.k.length){lxd(a,a.k,0);a.n=0}a.j=J8c(a.j,1)}
+function vyb(a,b){if(b!=a.j){if(b){Yf(a.i,YHd);a.j=true}else{Of(a.i,YHd);a.j=false}}}
+function xn(a){tn(a);if(a.b){return}cfd(a.d.c,a.f,a.e);a.a.gd(a.d.c,a.f,a.c);a.b=true}
+function A2b(a){var b;b=new T2b(a.o,a.c,a.d,a.n);b.b=a1b(a.b);M2b(b,F2b(a));return b}
+function QF(a){var b;b=false;b=b|dG(a.f);b=b|dG(a.k);b=b|dG(a.i);b=b|dG(a.j);return b}
+function Z9b(a){var b,c,d;b=new V9b;for(d=a.Qb();d.Rc();){c=d.Sc();Q9b(b,c)}return b}
+function zB(a){var b;b=new $qd(a.a,a.a.a.length);while(b.b>0){b.a.zd(b.c=--b.b).Uf()}}
+function bG(a){if(a.b.c){a.b.c.c=false;a.n.w.Hf()}if(a.b.d){a.b.d.c=false;a.n.w.Hf()}}
+function LK(a,b){a.b=false;VG(a,b.c);jy(Lu(a.o.i).b)?(a.a=new NK(a,NG(a))):(a.a=null)}
+function sQ(b,c){try{b.a.lh(AR(b.b,c))}catch(a){a=H8c(a);if(!kvc(a,46))throw I8c(a)}}
+function pW(a,b,c){lW();this.a=b;Mqd(b.c)==0?(this.b=null):(this.b=xW(new yW(a,b,c)))}
+function z$(a,b,c,d,e){this.o=a;this.e=new es;this.b=c;this.k=d;this.d=e;Xr(this.e,b)}
+function dkb(a,b,c,d,e,f){nkb(a,b,new Aob(c,d+Es((Cnd(),String.fromCharCode(f))),e))}
+function WN(a){if(P4b(a)!=(V4b(),S4b)){throw I8c(new and)}return Xmd(Nud(VN(a).d),10)}
+function Q6(a){if(q7(a)==null){throw I8c(new vqd('Space of meta data is missing.'))}}
+function IS(a){if(a.a.length==0){return a_(),_$}return a.a.length==1?a.a[0]:new GS(a)}
+function tib(a){switch(a.k){case 4:return 'W';case 5:return 'H';default:return null;}}
+function $xb(a,b){if(Hnd(Fyd,b)&&(zd(a.b)||zd(a.c))){return td(a,b)}return lob(a.a,b)}
+function Hlb(a,b){a.F=vlb(a,!(b.a&&FOb(b)));b.a&&FOb(b)&&bt(jQb(EOb(b)),new bmb(a.F))}
+function g8(a,b){var c,d;for(d=a.e.nj(b).Qb();d.Rc();){c=d.Sc();Wr(a.j,c);ptd(a.d,c)}}
+function qxb(a){var b;b=a.indexOf(oyd);b>0&&(this.c=a.substr(0,b));this.b=a;oxb(this)}
+function PRb(a){var b;b=CEb(a.f.a);if(b==null||b.length==0){return -1}return ORb(a,b)}
+function RBb(a){var b;if(a!=null){b=bod(s9c(a));if(b.length!=0){return b}}return null}
+function ROb(b,c){try{var d=JSON.parse(b);if(d[c]){return d[c]}}catch(a){}return null}
+function yVb(a,b){if(tx(a,b)){a!=b.b&&(b.b=a);SVb(a,new u7b);return true}return false}
+function GVb(a,b){if(rx(a,b)){a!=b.d&&(b.d=a);SVb(a,new u7b);return true}return false}
+function m1b(a,b){i1b();if(b){return Ind((E0b(),C0b).b,a)}return Hnd((E0b(),C0b).b,a)}
+function o1b(a,b){i1b();if(b){return Ind((E0b(),D0b).b,a)}return Hnd((E0b(),D0b).b,a)}
+function sdc(a){if(a){if(dsd(a.p).a.sd()){return a}return ndc(new rdc(a))}return null}
+function MNb(a,b){if(b==null||b.length==0){return}a.b=new Je(new QNb(b));zQ(a,new Ci)}
+function lTb(a,b){if(b==null&&a.q==null||a.q==b){return}a.q=b;!!a.A&&SVb(a.A,new u7b)}
+function F9(a,b,c){if(c!=null){X9((W9(),U9),a);a.a+=''+b;a.a+=' ';a.a+=''+c;a.a+=oyd}}
+function ric(a){var b,c;if(a.c){c=null;do{b=a.c;a.c=null;c=Bic(b,c)}while(a.c);a.c=c}}
+function qic(a){var b,c;if(a.b){c=null;do{b=a.b;a.b=null;c=Bic(b,c)}while(a.b);a.b=c}}
+function $Ub(a){var b,c;b=a.b.Lh();c=a.c.Lh();return new qad((b.a+c.a)/2,(b.b+c.b)/2)}
+function Tcd(a){var b;b=(ujc(),tjc).yn(a);while(!!b&&!Bcd(b)){b=b.parentNode}return b}
+function Lmd(a){var b;b=new Kmd;b.p='Class$'+(a?'S'+a:''+b.k);b.b=b.p;b.n=b.p;return b}
+function zfd(a,b){var c;b!=a.no()&&rfd(a,b);c=(abd(),Nkc($doc));hbd(a.c,c,b);return b}
+function Zf(a,b){var c=a.parentNode;if(!c){return}c.insertBefore(b,a);c.removeChild(a)}
+function Jj(c){var a=c.b;var b=c;a.onload=Yxd(function(){a.onload=null;b.Hc();b.Ac()})}
+function Aj(a){return $doc.activeElement===a.b&&a.b.contentWindow.document.hasFocus()}
+function Vkc(a){return (Hnd(a.compatMode,bKd)?a.documentElement:a.body).clientWidth|0}
+function Dl(a,b){if(a.e!=b){!!a.e&&Qic((abd(),a.U),a.e);a.e=b;abd();Lic(a.U,lbd(a.e))}}
+function Lr(a,b){var c,d,e;c=false;for(e=b.Qb();e.Rc();){d=e.Sc();c=c|a.od(d)}return c}
+function zx(a,b){var c,d,e;e=false;for(d=b.Qb();d.Rc();){c=d.Sc();e=e|a.He(c)}return e}
+function Cx(a,b){var c,d,e;e=false;for(d=b.Qb();d.Rc();){c=d.Sc();e=e|a.Ge(c)}return e}
+function Ax(a,b){var c,d,e;e=false;for(d=b.Qb();d.Rc();){c=d.Sc();e=e|a.df(c)}return e}
+function Bx(a,b){var c,d,e;e=false;for(d=b.Qb();d.Rc();){c=d.Sc();e=e|a.ef(c)}return e}
+function Jp(a,b,c){this.c=new is;Qp((Up(),Pp));this.d=b;Xr(this.c,c);this.a=a;Dp(this)}
+function QC(a,b,c){this.o=b;this.b=new std;this.c=new gXb(a);IC(this);this.d=c?c:zD(b)}
+function eH(a,b){dH.call(this,a);this.a=new BH(a,b);this.b=new qI(a,b);bH(this,this.a)}
+function OC(a,b){PC.call(this,a,y$b(new F$b,new Srd(vuc(quc(xWc,1),lyd,715,0,[b]))).a)}
+function e_(){e_=p9c;d_=new h_(MBd,(A_(),vuc(quc(UGc,1),nyd,34,0,[l_,n_,r_,x_,t_])))}
+function SQ(){SQ=p9c;RQ=new RegExp('rgb *\\( *([0-9]+), *([0-9]+), *([0-9]+) *\\)')}
+function wR(){wR=p9c;vR=new yR('TOP',0,-1);uR=new yR(FBd,1,0);tR=new yR('BOTTOM',2,1)}
+function Hsc(){Hsc=p9c;Gsc=new Isc('RTL',0);Fsc=new Isc('LTR',1);Esc=new Isc(sBd,2)}
+function AR(a,b){var c,d;return c=Rf(new ted(QR(new UR,s9c(b)))),d=new m9b,BR(a,c,d),d}
+function lhb(a,b,c){var d,e;d=new Jhb(a.n,a,false);e=shb(d,c);return Ahb(a,e,b,c,null)}
+function Xgb(a,b,c){var d,e;d=new Jhb(a,c,false);e=b.a;hhb(d,e);thb(d);uhb(d);return d}
+function zlb(a,b){var c,d,e,f;f=Dr(a.v,b);for(d=0,e=f.length;d'+zl(a.a)+Uyd):Rnd(zl(a.a),c,b))}
+function BX(a,b,c,d){this.c=b;this.a=d.Jf(YCd,(NT(),ET),(z0(),y0));this.b=zX(this,a,c)}
+function Iqb(a,b){wd.call(this,a,b);this.a=null;ud(this,Gyd,(qmd(),this.a?true:false))}
+function MJb(a){this.b=new ZJb;this.d=a;this.e=new jKb;this.c=new qad(0,0);this.a=null}
+function wOb(a){var b;b=a.p;this.a=fWb(b,a.c);this.c=fWb(b,a.d);this.b=tsd(dsd(b.p),a)}
+function ZGb(a){var b;a.a=new ct;b=a.b;cHb(a.c,BO(b,(O$b(),N$b)),BO(b,K$b));return a.a}
+function sSb(a){var b,c,d;b=new es;for(d=a.Qb();d.Rc();){c=d.Sc();Wr(b,c.$())}return b}
+function iWb(a){var b,c;for(c=new qsd(dsd(a.o).b.Qb());c.b.Rc();){b=c.b.Sc();b.d=null}}
+function jWb(a){var b,c;for(c=new qsd(dsd(a.o).b.Qb());c.b.Rc();){b=c.b.Sc();b.b=null}}
+function WAb(){WAb=p9c;VAb=new XAb('OFF',0);TAb=new XAb(syd,1);UAb=new XAb('NUMBER',2)}
+function d7b(){d7b=p9c;c7b=new e7b('SINGLE_ELECTRON',0);b7b=new e7b('ELECTRON_PAIR',1)}
+function jjd(){fjd();gjd.call(this,Pkc($doc));(abd(),this.U).className='gwt-TextArea'}
+function dcd(){Zbd();var a;if(Tbd){a=new hcd;!!Ubd&&oqc(Ubd,a);return null}return null}
+function tVb(a,b){if(mdb(a,b)){a!=b.b&&(b.b=a);SVb(a,new u7b);return true}return false}
+function CVb(a,b){if(tdb(a,b)){a!=b.b&&(b.b=a);SVb(a,new u7b);return true}return false}
+function cjd(a,b){var c;c=Ejd(a.i,b);if(c!=-1){Tid(a.a,c);return ced(a,b)}return false}
+function qud(a,b){var c;c=b.c;b.a.b=b.b;b.b.a=b.a;b.a=b.b=null;b.c=null;--a.b;return c}
+function q9c(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d}
+function Er(a,b){var c;for(c=a.length-1;c>=0;c=c-1){if(Vmb(b,a[c])){return c}}return -1}
+function doc(a){var b;if(!a.a){b=$doc.getElementsByTagName('head')[0];a.a=b}return a.a}
+function aP(a){if(a.c.o.i.q){return qmd(),O0b(Vw(a.c.o))?true:false}return qmd(),false}
+function mbb(a){if(a.b.length<6){throw I8c(new bnd('LA must be at least 6!'))}this.a=a}
+function Zl(a){ol();Vl.call(this);Yl(this,a);kg((abd(),this.U),'mjs-toggleButton',true)}
+function nfd(){ol();ofd.call(this,zkc($doc));(abd(),this.U).className='gwt-FileUpload'}
+function nM(a){ex(Mu(a.o.i),(e_(),d_));a.o.i.w.Hf();a.a=null;a.p=null;a.e=null;a.f=null}
+function EJ(a){a.p=null;a.b=null;a.c=null;a.a=null;ex(Mu(a.o.i),(e_(),d_));a.o.i.w.Hf()}
+function xI(a,b){a.e=true;a.a=a.i;a.i=b.Lh();OI(a,b.Lh(),H9b(b.Lh(),false,K9b(b),LBd))}
+function k$(a,b,c){var d,e;for(e=a.b.Qb();e.Rc();){d=e.Sc();d.zh(b,c,(pR(),nR),d.yh())}}
+function p5(a,b){var c,d;c=(!a.b&&(a.b=new ltd),a.b);d=c.d.c+c.e.b;Hqd(c,mnd(d),mnd(b))}
+function Tub(a,b){var c,d;d=new Frd(b);c=Uub(a,d);return c!=null&&Uub(a,d)==null?c:null}
+function Hhb(a,b){var c;if(b){c=b.a.Ad(a);return c>-1?(Cnd(),''+(c+1)):null}return null}
+function Wkb(a,b,c){if(nt(a.c,b)&&Ird(a.d,c)){return}a.c=b;Uo(a.a,Zkb(c));!!a.a&&Rkb(a)}
+function ynb(a,b,c,d){var e;e=c?(kA(),fA):(kA(),eA);return Dnb(a,e,vPb(b,c,xPb(d)),a.c)}
+function iB(a,b,c,d){var e,f;Jud(b,BBd);f=(e=new lB,new fE(e,b,d));return new cB(a,c,f)}
+function zGb(a,b){var c;c=RId in document.createElement('a')?b:null;this.a=new lFb(a,c)}
+function JM(a,b){if(kvc(b,49)){mx(a,b)}else if(kvc(b,63)){nx(a,b);mx(a,b.c);mx(a,b.d)}}
+function XRb(a){var b;if(a.fh()==1){b=a.Me().zd(0);if(kvc(b,167)){return b}}return null}
+function NVb(a,b,c){if(!c||c==b||hs(a.n,b)==-1||hs(a.n,c)!=-1){return false}return true}
+function Jxb(a){if(!a.c){a.c=new red('Unsupported file format.');Of(a.c,cBd)}return a.c}
+function xbc(a,b){if(a===b){return true}if(kvc(b,307)){return Hrd(a.a,b.a)}return false}
+function Ntc(d,a){var b=d.a[a];var c=(fuc(),euc)[typeof b];return c?c(b):ouc(typeof b)}
+function t8b(a,b){var c,d;c=-a.e.b;d=a.e.a;return (c*b.a+d*b.b)/$wnd.Math.sqrt(c*c+d*d)}
+function udc(a,b){tdc(a);a.p=true;a.q=false;a.n=200;a.u=b;a.o=null;++a.s;ydc(a.k,Ohc())}
+function Nqc(a,b){var c,d;if(!a.d){return}Hi(a.c);d=a.d;a.d=null;c=new drc(d);b.rl(a,c)}
+function coc(a){var b;b=Kkc($doc);b['language']='text/css';(ujc(),tjc).Ln(b,a);return b}
+function Had(){var a;if(!Gad()){a=(rp(),op,pp());Yhc($hc(Zhc((Whc(),new _hc(a))),Vhc))}}
+function oac(){lac();return vuc(quc(MYc,1),nyd,183,0,[hac,eac,kac,dac,jac,iac,gac,fac])}
+function Mbc(){Kbc();return vuc(quc(TYc,1),nyd,191,0,[Cbc,Gbc,Hbc,Ebc,Fbc,Dbc,Ibc,Jbc])}
+function S8b(){P8b();return vuc(quc(zYc,1),nyd,155,0,[N8b,O8b,J8b,I8b,M8b,L8b,H8b,K8b])}
+function eUb(){aUb();return vuc(quc(pWc,1),nyd,201,0,[ZTb,_Tb,XTb,YTb,WTb,UTb,$Tb,VTb])}
+function _Nb(){_Nb=p9c;$Nb=vuc(quc(g6c,1),eyd,2,6,['Marvin for JavaScript','BioEddie'])}
+function MKb(){MKb=p9c;LKb=new NKb('KILL_PLUS_SIGNS',0);KKb=new NKb('ADD_LONE_PAIRS',1)}
+function Jwd(){Jwd=p9c;Iwd=new Nwd;Hwd=new Lwd('ISO-LATIN-1');Gwd=new Lwd('ISO-8859-1')}
+function l0b(a){P1.call(this,A$b(y$b(x$b(new F$b,a),cy(a)),m0b(a)).a);vx(this,Hx(this))}
+function JO(a,b){if(!a){throw I8c(new bnd('cannot accept null value'))}this.a=a;this.b=b}
+function QK(a,b){if(!!a.e&&sac(a.e,b.c)>10){a.c=true;Jl(a,b.c);a.d.Lg(b.c);a.o.i.w.Hf()}}
+function Wuc(a){if(Nuc(a,(cvc(),bvc))<0){return -Juc(Quc(a))}return a.l+a.m*vzd+a.h*$Kd}
+function Ukc(a){return (Hnd(a.compatMode,bKd)?a.documentElement:a.body).clientHeight|0}
+function TNd(){return dbc(cbc(this.a,$wnd.Math.max(2,$wnd.Math.min(10,5*this.b.Yd()))))}
+function $j(a,b){var c;c=(Cqd(a.a,b)?Eqd(a.a,b).a:0)+1;c<=0?Jqd(a.a,b):Hqd(a.a,b,mnd(c))}
+function OR(a,b,c){var d;d=b.substr(c+1);nod(a.c,d);if(d.length!=0){a.a=false;a.b=false}}
+function D_(a,b,c){var d,e;if(!a){return a_(),_$}e=dT(b.j,c);d=L$(e.oh(),zS(a));return d}
+function Umd(a,b){var c;if(!a){return}b.o=a;var d=Rmd(b);if(!d){l9c[a]=[b];return}d.Fp=b}
+function RSb(a,b){var c;if(!QSb(a,b)){throw I8c(new LSb)}c=new VSb(a);kl(b,c);return c.a}
+function jSb(a){var b,c;c=new es;for(b=0;b'}
+function zed(a,b,c){a.c=false;c?jjc(a.a,b):kjc(a.a,b);if(a.d!=a.b){a.d=a.b;hrc(a.a,a.b)}}
+function uT(a,b,c,d){this.c=a?(iU(),fU):(iU(),hU);this.e=b;this.d=c;this.a=null;this.b=d}
+function vT(a,b,c,d){this.c=a?(iU(),fU):(iU(),hU);this.e=b;this.d=c;this.a=d;this.b=null}
+function s1b(a,b,c,d,e,f){this.c=a;this.d=b;this.a=c;this.f=d>0?d:0.77;this.b=e;this.e=f}
+function i$b(a,b){h$b.call(this,a);(a==(p$b(),o$b)||a==m$b)&&(b>0?(this.a=b):(this.a=1))}
+function o9c(a,b){for(var c in b){b[c]['configurable']=true}Object.defineProperties(a,b)}
+function lkd(b){var a=b.f;return a.contentWindow.document.designMode.toUpperCase()=='ON'}
+function pfd(a,b,c){var d,e,f;e=a.rows[b];for(d=0;dc&&c>=0){return a.a.e}return null}
+function IHb(a,b,c){if(!b){return}Ygc(a.el(),b.a,b.b);Mgc(a.el(),-c);Ygc(a.el(),-b.a,-b.b)}
+function Llb(a,b){if(b.a&&FOb(b)){ySb(a.b,(Xrd(),Xrd(),Urd));bt(jQb(EOb(b)),new Xlb(a.b))}}
+function pyb(a){var b;b=Yxb(a,THd);return pvc((qmd(),pmd))===pvc(Yxb(a,Fyd))&&!!b&&!b.sd()}
+function hTb(a){var b,c,d;d=a.Re();for(c=new qsd(d.b.Qb());c.b.Rc();){b=c.b.Sc();b.d=null}}
+function BVb(a,b){if(!b){return}if(hs(a.r,b)==-1){Wr(a.r,b);KVb(a,b);b.v=a;SVb(a,new u7b)}}
+function BUb(a,b){switch(b.k){case 0:return CUb(a);case 1:return AUb(a);default:return a;}}
+function zjd(a,b){var c,d;d=gbd((abd(),b.U));c=vo(a,b);c&&Qic(a.e,Ajc((ujc(),d)));return c}
+function k5(a,b,c,d,e){var f;f=(Cnd(),''+c);f=b&&c==0?'-'+f:f;n5(a,d-f.length,e);a.a+=''+f}
+function zxd(a,b,c,d){var e,f;f=d?a.c:a.a;e=Bqd(ztd(f.d,b));!e?(e=c):Mxd(e,c);Atd(f.d,b,e)}
+function kwb(a,b,c,d,e,f,g){this.c=a;this.f=b;this.b=c;this.a=d;this.i=e;this.d=f;this.e=g}
+function TL(a){dH.call(this,a);this.d=new VM(this.o);this.a=new HL(this.o);bH(this,this.a)}
+function mg(a,b){a.style.display=b?'':bzd;b?a.removeAttribute(izd):a.setAttribute(izd,jzd)}
+function k9c(a,b){typeof window===Zxd&&typeof window['$gwt']===Zxd&&(window['$gwt'][a]=b)}
+function Arc(a,b){while(b[0]=0){++b[0]}}
+function Zvd(a,b){((hwd(),ewd)?null:b.c).length==0&&jwd(b,new vwd);Iqd(a.a,ewd?null:b.c,b)}
+function h6(a,b){var c;return c=new r7(s9c(b)),a.a.Oi(sdc(l6((!a.b&&(a.b=new m6),null),c)))}
+function HP(a,b){var c,d;for(d=gP(a).d.Me().Qb();d.Rc();){c=d.Sc();c.lm(new Tac(c.Lh(),b))}}
+function Sn(a){var b,c;for(c=a.a.O.Qb();c.Rc();){b=c.Sc();kvc(b,714)&&b.Vc(null)}a.a.O.Pb()}
+function iq(a){if(a.b){Tl(a.a,a.b.uo());Tl(a.d,a.b.vo());Tl(a.j,a.b.wo());Tl(a.k,a.b.xo())}}
+function Ri(a,b){return new Xi(vuc(quc(W0c,1),Iyd,340,0,[b.Zc(a),b.Yc(a),b.Xc(a),b.Wc(a)]))}
+function Qzb(){Qzb=p9c;Pzb=new Srd(vuc(quc(UYc,1),nyd,69,0,[(kcc(),Xbc),Qbc,Rbc,Sbc,Vbc]))}
+function bdc(){bdc=p9c;adc=hc((Xcc(),vuc(quc(ZYc,1),nyd,206,0,[Wcc,Rcc,Ucc,Scc,Tcc,Vcc])))}
+function $ab(){Yab();return vuc(quc(oJc,1),nyd,184,0,[Wab,Qab,Tab,Rab,Uab,Sab,Vab,Xab,Pab])}
+function $kc(a){return ((Hnd(a.compatMode,bKd)?a.documentElement:a.body).scrollWidth||0)|0}
+function Wjb(a){if(a.b!=a.a){gbb(a.c,ojb(pjb(Ljb(Ijb(a.b,a.a)))));a.b=a.a;a.a=new Njb(a.b)}}
+function zxb(a,b,c){this.d=a;this.c=b;this.b=G1(false,jLb(b.b));this.a=c;Kxb(a,Axb(this.b))}
+function SZ(a,b,c,d,e,f){PZ();this.d=b;this.b=c;this.c=new NZ(a,b,c,d,e,f);this.a=TZ(a,f.r)}
+function Lub(a,b,c){var d;d=Dub(a,c);if(d){bt(d.xl(),new Sub(a,b));return true}return false}
+function Nib(a,b){var c;if(b){c='o'+$md(++a.a);eld(b,WDd,c);Lkd(a.c,b);return c}return null}
+function pib(a){fib();var b;b=Eqd(a.Vl(),(kcc(),Qbc));if(b!=null){return s9c(b)}return null}
+function Efb(a,b){var c;c=Pib(a.c,eEd);eld(c,'x',(Cnd(),''+b.a));eld(c,'y',''+b.b);return c}
+function y8b(a,b){var c;if(Cqd(b.c,a)){return Eqd(b.c,a)}c=new E8b(a);Hqd(b.c,a,c);return c}
+function cRb(a,b){var c;c=new qad(20,-20);return iad(lad(b,kH(new qad(a.b/2,a.a/2),a.d)),c)}
+function Ptd(a,b){var c;c=a.a.get(b);if(c===undefined){++a.c}else{Etd(a.a,b);--a.b}return c}
+function Ng(a,b){var c;c=(ujc(),tjc).An(b);if(njc(c)){return Oic((abd(),a.U),c)}return false}
+function _H(a){a.d=false;(!hy(Lu(a.o.i).b)||a.i!=LG(a))&&ZH(a);iy(Lu(a.o.i).b)||(a.f=false)}
+function bH(a,b){if(b!=a&&b!=a.k){Jl(b,a.p);!!a.k&&a.n&&a.k.tg();a.k=b;!!a.k&&a.n&&a.k.qg()}}
+function O6(a,b){k6();var c;c=a!=null?a.length==0?null:a:R6(b);Q6(b);M6(b);return new b6(c)}
+function OM(a,b){if(Ex(b,a.c)){if(!Ex(b,a.d)){return 0}}else if(Ex(b,a.d)){return 1}return 2}
+function OFb(){var a;a=new Kgd;kg((abd(),a.U),GHd,true);a.U.size=4;a.U.maxLength=4;return a}
+function rPb(a){var b,c,d;d=new es;b=a[aGd]||[];for(c=0;c2.31){SP(gP(a));a.a=true}else a.a&&WP(gP(a))}
+function rM(a,b){dH.call(this,a);this.c=b;bH(this,(!this.b&&(this.b=new qM(this.o)),this.b))}
+function kV(a,b,c,d,e){iV(this);Xr(this.e,a);this.b=b;this.a=lbc(this.b,e);this.d=c;this.c=d}
+function wcb(a,b,c){var d;Lqd(a.a);Bfb(b,a.a);if(Gqd(a.a,tEd)){d=Fqd(a.a,tEd);Q2b(c,Abc(d))}}
+function Zhb(a,b,c){var d,e;while(b.Rc()){d=b.Sc();e=xhb(a.a,(bjb(),Yib),'');Yhb(e,d,c,iFd)}}
+function Ihb(a,b){var c,d;for(d=new Vqd((new Sqd(b)).a);d.b;){c=Uqd(d);_hb(a,c.yp(),c.Ok())}}
+function Ofb(a,b){var c,d;for(d=new Vqd((new Sqd(a)).a);d.b;){c=Uqd(d);eld(b,c.yp(),c.Ok())}}
+function Bhb(a,b){var c,d;return d=(c=Eqd(a.e,b),!c&&!!a.j?Dhb(a.j,b):c),d?tld(d.a,WDd):null}
+function Ehb(a,b){var c,d;d=(c=Eqd(a.e,b),!c&&!!a.j?Dhb(a.j,b):c);return d?tld(d.a,WDd):null}
+function Rqb(a,b,c){var d;d=ynb(a.e,b,a.c,c);if(d){bt(d,new Wqb(a));return true}return false}
+function ORb(a,b){var c;for(c=0;c0;--d){IR(Yr(a.a,d-1),b,true)}c||IR(a.c,b,true)}
+function UU(a,b,c){var d,e;return VU((d=uBd,e=p1b(a),e!=-1&&(d=(YU(),Eqd(XU,mnd(e)))),d),b,c)}
+function t8(a,b,c){var d,e;d=a.wg();e=Bqd(ztd(b.d,d));if(e!=null){nod(c,a.oj(s9c(e)));return}}
+function T_(a){var b;b=a[RAd]||{};if(!!b&&(b.color||null)!=null){return new Y$(b)}return null}
+function Mgb(a,b,c){var d,e;d=Eqd(a.b,b);if(d){e=b.Xl().d+c;Ogb(a,d.a+e);return e*2}return -1}
+function znb(a){var b,c,d,e;b=new is;for(d=0,e=a.length;d=0&&a.a.b.c.vd()>b){return dbc(a.a.b.c.zd(b))}return tW(a,b)}
+function pJb(a,b){var c;c=new jRb(a.b,false);return 'data:image/svg+xml;base64,'+Ws(iRb(c,b))}
+function Fnb(a,b){var c;return Dnb(a,(kA(),jA),(c={'structure':b},JSON.stringify(c)),new uPb)}
+function aTb(a,b){var c,d,e;c=new es;for(e=b.Qb();e.Rc();){d=e.Sc();Wr(c,new mSb(d))}return c}
+function AEb(a,b){this.c=new es;this.e=VEb(new WEb(this));this.b=new iFb;this.d=b;xEb(this,a)}
+function pqb(a,b,c,d){this.f=a;this.c=new jud;this.d=d;this.e=b;this.b=c;this.a=new uqb(this)}
+function Wz(a,b,c,d,e){this.e=a;this.a=c;this.f=b;this.d=d;this.i=e;this.b=lbc(this.e,this.f)}
+function Bgd(a){xgd();En(this,new Jgd(this,a.c,a.d,a.a));(abd(),this.U).className='gwt-Image'}
+function Pod(a){var b;b=suc(uvc,jyd,23,a.d,15,1);Eod(a.a,0,b,0,a.d);return new gpd(a.e,a.d,b)}
+function Xod(a,b){var c;if(b.e<=0){throw I8c(new jmd(PLd))}c=bpd(a,b);return c.e<0?Xpd(c,b):c}
+function O9b(a,b){var c,d;return c=a,d=b,Zmd(a,0)<0&&(c=kBd+a),Zmd(b,0)<0&&(d=kBd+b),Zmd(c,d)}
+function mJb(a,b,c){var d;d=b.globalAlpha;b.globalAlpha=c;Ggc(b,a.a.Un(),0,0);b.globalAlpha=d}
+function vpd(a,b,c){var d,e,f;d=0;for(e=0;e>>31}d!=0&&(a[c]=d)}
+function Nr(a,b){var c,d;for(d=b.Qb();d.Rc();){c=d.Sc();if(!a.qd(c)){return false}}return true}
+function FWb(a,b){if(_r(a.w,b)||_r(a.v,b)||_r(a.r,b)){SVb(a,new u7b);return true}return false}
+function td(a,b){if(b==Byd){return qmd(),a.f?true:false}if(!a.i){return null}return Fqd(a.i,b)}
+function cad(a){if(!a){return ''}return Vsc((Qsc(),!Psc&&(Psc=new itc(irc())),Qsc(),Psc),a.a)}
+function l$(a,b,c,d){g$();var e;n$.call(this,b,c,(e=e$(b),Xrd(),new ksd(o$(new p$(c,d),a,e))))}
+function P1(a){by.call(this,A$b(C$b(y$b(x$b(new F$b,dsd(a.r)),dsd(a.s)),dsd(a.A)),dsd(a.u)).a)}
+function FPb(a){return ys(GPb(EPb(a['north']),EPb(a['south']),EPb(a['west']),EPb(a['east'])))}
+function Xkc(a){return ((Hnd(a.compatMode,bKd)?a.documentElement:a.body).scrollHeight||0)|0}
+function CP(a){return (kBd+$wnd.Math.ceil($wnd.Math.atan2(a.b,a.a)*30/jBd-0.5)/30*jBd%kBd)%kBd}
+function mdd(){var b=$wnd.onresize;$wnd.onresize=Yxd(function(a){try{ecd()}finally{b&&b(a)}})}
+function aqb(a){var b,c;for(c=new Frd(a.a);c.a=a.c.length){throw I8c(new Eud)}a.b=a.a;b=a.c[a.a];Ojd(a);return b}
+function Tod(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b}
+function ptc(a){var b;if(a==0){return 'UTC'}if(a<0){a=-a;b='UTC+'}else{b='UTC-'}return b+rtc(a)}
+function rtc(a){var b,c;b=a/60|0;c=a%60;if(c==0){return Cnd(),''+b}return Cnd(),''+b+':'+(''+c)}
+function jg(a){var b,c;b=a.className||'';c=Mnd(b,dod(32));if(c>=0){return b.substr(0,c)}return b}
+function SD(a){var b,c;if(a.d){for(c=new iud(new gud(a.d));c.b!=c.c.a.b;){b=hud(c);b.d.lm(b.e)}}}
+function Ifb(a,b){var c,d;for(d=new qsd(dsd(b.k).b.Qb());d.b.Rc();){c=d.b.Sc();Cfb(a,Hfb(a,c))}}
+function Ht(a,b){var c,d;for(d=b.Jd().Qb();d.Rc();){c=d.Sc();Cqd(a.a,c)&&Ct(Eqd(a.a,c),b.Kd(c))}}
+function eyb(a,b){var c,d;for(d=new Frd(b);d.a0){for(b=0;b0&&b<=126?h1b[b-1].c:null),nob(a.f,b))}}
+function DEb(b){try{return EEb(b)}catch(a){a=H8c(a);if(kvc(a,46)){return null}else throw I8c(a)}}
+function xfb(b,c,d){try{yVb(b.c,new qVb(seb(d),c))}catch(a){a=H8c(a);if(!kvc(a,46))throw I8c(a)}}
+function YRb(a){var b,c;for(c=a.jh().Qb();c.Rc();){b=c.Sc();if(kvc(b,189)){return b}}return null}
+function m0b(a){var b,c,d;d=new std;for(c=a.Qb();c.Rc();){b=c.Sc();Lr(d,b.Ul())}return new gs(d)}
+function cbc(a,b){var c,d,e;d=new qad(a.b.a-b,a.b.b-b);e=a.c+2*b;c=a.a+2*b;return new ibc(d,e,c)}
+function uP(a,b){this.c=new es;this.d=new xT(true,eCd);this.f=a;this.e=b;En(this.e,new vP(this))}
+function PEb(a,b,c,d,e){this.a=b;this.b=new NEb(d,a.b);KEb(this.b);this.c=new SEb(e);OEb(this,c)}
+function aob(a,b){vd.call(this,'+ R-group attachment');this.a=b;Hqc(a.a,(Pw(),Ow),a,this)}
+function mqb(a,b){vd.call(this,'- R-group attachment');this.a=b;Hqc(a.a,(Pw(),Ow),a,this)}
+function Kgd(){ol();LEb.call(this,Qkc($doc),(!bad&&(bad=new dad),bad),(!$9c&&($9c=new aad),$9c))}
+function SL(a){!!a.k&&a.k.Rd();ex(Mu(a.o.i),(e_(),d_));a.o.i.w.Hf();a.b=null;a.c=false;bH(a,a.a)}
+function Rgd(a){var b;b=(abd(),a.U).selectedIndex;return b==-1?null:(Mgd(a,b),vlc(a.U)[b].value)}
+function xmd(a){smd==null&&(smd=new RegExp(sCd));return smd.test((Cnd(),String.fromCharCode(a)))}
+function ihd(a,b){var c,d;for(d=new Frd(b);d.a0&&a.a-1&&b0&&a<=126&&h1b[a-1].a==0){return eib}return a>0&&a<=126?h1b[a-1].c:null}
+function KU(){HU();return vuc(quc(wFc,1),nyd,141,0,[tU,BU,zU,AU,xU,yU,CU,uU,GU,vU,DU,EU,wU,FU])}
+function U5(){R5();return vuc(quc(eIc,1),nyd,151,0,[Q5,P5,O5,F5,G5,H5,L5,M5,N5,I5,E5,K5,J5,D5])}
+function cZ(){_Y();return vuc(quc(oGc,1),nyd,140,0,[VY,PY,ZY,NY,$Y,TY,YY,QY,RY,XY,WY,SY,MY,OY,UY])}
+function qac(){qac=p9c;pac=hc((lac(),vuc(quc(MYc,1),nyd,183,0,[hac,eac,kac,dac,jac,iac,gac,fac])))}
+function Egd(a,b){var c;c=_ic((abd(),b.U),kLd);Hnd(dKd,c)&&(a.a=new Fgd(a,b),wic((pic(),oic),a.a))}
+function he(a,b){var c;pe(a,b);c=new qe(a,b);return !b.e&&(b.e=new Cqc),tqc(b.e,(ce(),ce(),be),b,c)}
+function wvd(a,b){var c;this.c=a;c=new es;gvd(a,c,b,a.b,null,false,null,false);this.a=new $qd(c,0)}
+function Mud(a,b){var c;if(b===a){return true}if(!kvc(b,309)){return false}c=b;return Gud(a.a,c.a)}
+function h4(a,b){var c,d;d=1;c=K4(a,d++);while(c){if(Nr(C2b(c),b)){return c}c=K4(a,d++)}return null}
+function W3(a){var b;b=Xmd(a,10);switch(b){case -1:return '0';case 0:return null;default:return a;}}
+function Y3(a){switch(a){case 1:return X1b(),S1b;case 2:return X1b(),T1b;default:return X1b(),U1b;}}
+function AGb(){var a;if(tGb()){a=(FGb(),new HGb);if(EGb){return new CGb(a)}}return new uGb(new wGb)}
+function lEb(a){var b,c;c=DEb(a.e);!c&&(c=mnd(0));b=Wf(a.a)?Qdd(a.a):null;return new KL(mnd(c.a),b)}
+function QWb(a,b){var c,d;for(d=b.Qb();d.Rc();){c=d.Sc();if(qtd(a.a.i,c)){return true}}return false}
+function Cgb(a,b){var c,d;c=new ltd;d=b.Lh();Iqd(c,a.Pj(),$md(d.a));Iqd(c,a.Qj(),$md(d.b));return c}
+function xEb(a,b){var c,d;for(d=new Vqd((new Sqd(wEb(b))).a);d.b;){c=Uqd(d);uEb(a,c.yp().a,c.Ok())}}
+function DSb(a){var b;b=auc(a,'templates');if(!b||!b.Rn()){throw I8c(new vqd(cuc(a)))}return b.Rn()}
+function jbd(a){abd();var b;b=Bbd(qbd,a);if(!b&&!!a){(ujc(),a).stopPropagation();tjc.Bn(a)}return b}
+function ded(a,b){var c;qo(a,b);c=a.b;a.b=Djd(a.i,b);if(a.b!=c){!_dd&&(_dd=new ged);fed(_dd,c,a.b)}}
+function D8b(a,b){if(!!b&&(!jad(b.b,a.e.b)||b.c!=a.e.c||b.a!=a.e.a)){a.e=b;!!a.d&&SVb(a.d,new u7b)}}
+function T(a,b){return ovc(a)?Hnd(a,b):mvc(a)?a===b:lvc(a)?a===b:jvc(a)?a.V(b):uuc(a)?a===b:nt(a,b)}
+function V(a){return ovc(a)?dxd(a):mvc(a)?qvc(a):lvc(a)?a?1231:1237:jvc(a)?a.X():uuc(a)?Zwd(a):ot(a)}
+function ij(b,c){try{return b.wc(c)}catch(a){a=H8c(a);if(kvc(a,109)){return false}else throw I8c(a)}}
+function Xr(a,b){var c,d;c=b.wd();d=c.length;if(d==0){return false}Awd(a.a,a.a.length,c);return true}
+function Yrd(a,b){Xrd();var c,d,e,f;f=false;for(d=0,e=b.length;d=0||a.b-a.d>=0)){U9b(a,b.a,b.b,b.a,b.b);return}S9b(a,b.a,b.b,b.a,b.b)}
+function mCb(a,b){b.Pd()&&(b._k()||(b.md(),false)?(a.c=true):sCb(a,b.md()));Uo(a,b.Pd());return true}
+function gTb(a){var b;b=new ltd;yqd(b,a.Wl());Hqd(b,(kcc(),_bc),a.Ji());Hqd(b,Obc,mnd(a.u));return b}
+function y1b(a){var b;b=gTb(a);Hqd(b,(kcc(),$bc),mnd(a.p));Hqd(b,acc,a.r);Hqd(b,gcc,a.bn());return b}
+function egd(a){var b;if(a.b>=a.d.a.length){throw I8c(new Eud)}b=Yr(a.d,a.b);a.a=a.b;dgd(a);return b}
+function N9b(a,b,c){var d,e,f,g;g=(c-b)/(a+1);d=new es;e=b;for(f=0;f>>24<<24>>24;b[++c]=a>>>16<<24>>24;b[++c]=a>>>8<<24>>24;b[++c]=a<<24>>24}
+function dVb(a,b,c){if(Zr(a.b,b,0)==-1&&Zr(a.a,c,0)==-1){Wr(a.b,b);Wr(a.a,c);return true}return false}
+function $3b(a,b){if(b){if(a.b==b.b){if(a.a!=null){return Hnd(a.a,b.a)}return b.a==null}}return false}
+function Tqd(a){if(a.a.Rc()){return true}if(a.a!=a.d){return false}a.a=new Dtd(a.e.d);return a.a.Rc()}
+function GI(a){switch(a.k){case 0:return s6b(),h6b;case 1:return s6b(),q6b;default:return s6b(),m6b;}}
+function kab(a){switch(a.k){case 4:return 1;case 5:return 3;case 6:case 7:return 2;default:return 0;}}
+function sm(a,b){var c;c=(ujc(),tjc).An(b);if(njc(c)){return Oic(Mic((abd(),hed(a.q))),c)}return false}
+function Pr(a,b){var c,d,e;c=false;for(d=a.Qb();d.Rc();){e=d.Sc();if(!b.qd(e)){d.Tc();c=true}}return c}
+function yH(a,b){var c,d;for(d=b.Ml().Qb();d.Rc();){c=d.Sc();if(E2b(c,b)==a){return true}}return false}
+function rk(a){nk();var b;for(b=0;b 0){return r2(a.a.Oi(ceb(Pkd(Kld(c.a,0)))))}return MWb()}
+function nZ(a,b,c){var d;d=(b?b.k+1:0)*lZ+(c?c.k+1:0);!a.a[d]&&(a.a[d]=new p0(b,c,true));return a.a[d]}
+function V4(a,b,c,d){var e,f,g;g=Fqd(a.a,b);if(g){for(f=g.Qb();f.Rc();){e=f.Sc();d.Ui(e,c)}}Kqd(a.a,b)}
+function LD(a){var b,c;for(c=new qsd(dsd(a.b.C.v).b.Qb());c.b.Rc();){b=c.b.Sc();Hqd(a.a,mnd(b.a),b.b)}}
+function Ugb(a,b){var c,d;for(d=new Frd(b);d.a*<\/b>';this.f=a}
+function Vzb(a,b,c){Qzb();wyb.call(this,b);if(Tr(Pzb,a)==-1){throw I8c(new bnd(tId))}this.b=a;this.d=c}
+function aAb(a,b,c){Yzb();wyb.call(this,b);if(Tr(Xzb,a)==-1){throw I8c(new bnd(tId))}this.a=a;this.c=c}
+function Zmd(a,b){if(ab){return 1}if(a==b){return 0}return isNaN(a)?isNaN(b)?0:1:-1}
+function lib(a){if(a==119){return (WZb(),DXb).a+':'}else if(a==120){return (WZb(),gZb).a+':'}return '0'}
+function nwd(a){if(ewd){return suc(_7c,dMd,536,0,0,1)}return ds(a.a,suc(_7c,dMd,536,a.a.a.length,0,1))}
+function Fkc(a,b,c,d,e){return (ujc(),tjc).un(a,eKd,true,true,0,b,c,d,e,false,false,false,false,2,null)}
+function Hgd(a,b,c,d){!!a.a&&((abd(),a.U)[kLd]='',undefined);clc((abd(),a.U),b.a);rjc(a.U,c);qjc(a.U,d)}
+function cbd(a,b,c){abd();var d;d=Zad;Zad=a;b==_ad&&zcd((ujc(),a).type)==8192&&(_ad=null);c.Ib(a);Zad=d}
+function rpd(a,b){var c;c=b>>5;a.d+=c+(jnd(a.a[a.d-1])-(b&31)>=0?0:1);upd(a.a,a.a,c,b&31);Qod(a);a.b=-2}
+function t9b(a,b){var c;c=b!=(Iac(),Fac)?nac(b.j!=null?b.j:''+b.k):null;!!c&&Wr(a,(c.d+c.c)/2);return a}
+function Vid(a,b){var c,d;d=a.a.i.c-1;for(c=1;c>22);e=a.h+b.h+(d>>22);return Auc(c&XKd,d&XKd,e&YKd)}
+function Vuc(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return Auc(c&XKd,d&XKd,e&YKd)}
+function kl(a,b){var c,d,e;d=new el(a);while(d.a<=d.b.length){e=cl(d);c=new Aod(e);jl(d,c)&&b.Pc(e,c.a)}}
+function lg(a,b){if(!a){throw I8c(new nQb(gzd))}b=bod(b);if(b.length==0){throw I8c(new bnd(hzd))}ng(a,b)}
+function Cg(a,b){if(a.Tb()){throw I8c(new end('SimplePanel can only contain one child widget'))}a.Ub(b)}
+function $fd(a,b){Gfd.call(this);Vo(this,new Nfd(this));Efd(this,new jgd(this));Yfd(this,b);Zfd(this,a)}
+function zdd(){ol();ydd.call(this);zed(this.a,nLd,false);(abd(),this.U).href=nLd;this.U.target='_blank'}
+function BI(a,b){var c,d;c=Ku(a.o.i,b);d=OBd;if(!c){d=DI(a,b);c=CI(a,d)}!!c&&c.Lh()!=a.i?KI(a,c):LI(a,d)}
+function h8(a,b){var c,d;if(b1b(d1b(b.b))){for(d=a.e.mj(b).Qb();d.Rc();){c=d.Sc();Wr(a.j,c);ptd(a.d,c)}}}
+function QP(a,b,c){if(!b){return}_P(a,b.Lh(),lad(b.Lh(),XP(a).Lh()),c);if(a.c){I2b(a.c,b);a.c.d.zl(a.c)}}
+function LU(a,b,c){return $wnd.Math.max(c?d9c(P8c($wnd.Math.round(b))):d9c(P8c($wnd.Math.round(a*b))),1)}
+function vxb(a,b){ALb(a.c,xxb(a,Rf(b.a.d).selectedIndex),a.a,new FLb(CEb(b.a.f),b.b));rm(Ixb(a.d),false)}
+function Fbb(a,b){var c;if(Lcb(a.a.f)){if(b.Fj(qEd)){c=b.Cj(qEd);return J4(a.a.f,Xmd(c,10))}}return null}
+function krb(a){var b,c;b=new std;c=a.b.i;if(!Sx(c.A)){Lr(b,dsd(c.A.r));Qqd(b,cWb(c.C))}return new gs(b)}
+function bZ(a){_Y();var b,c,d,e;for(c=cZ(),d=0,e=c.length;d1&&(b=Xnd(b,1,b.length-1));return b}
+function ind(a){var b;if(a<0){return EId}else if(a==0){return 0}else{for(b=OLd;(b&a)==0;b>>=1);return b}}
+function cl(a){var b;b=dl(a);a.aa.b&&(d=trd(a.d),d);zQ(a,new FQ(0))}
+function S_(a,b){var c,d;if(b){d=T_(b);if(d){c=b0(a.a,b);c.a.a.length==0&&c.b.a.length==0||Ytd(a.b,d,c)}}}
+function nbc(a){var b,c,d;d=new es;b=a.e;if(b>0){c=a.a.a.length;Xr(d,c>b?z9b(b,a.a,a.d,a.f):a.a)}return d}
+function Zsc(a,b){var c,d,e;e=a.a.length;for(d=0;d=48&&c<=57&&gmd(a,d,c-48+b&hyd)}}
+function fg(a,b){b==null||b.length==0?((abd(),a.U).removeAttribute(azd),undefined):gjc((abd(),a.U),azd,b)}
+function kGb(a,b){aGb(a.b.d,a.a.Di()?'':b.b);En(a.b.a,'marvinjs_untitled_file.'+a.a.Ai()[0]);pFb(a.b.a,b)}
+function Xld(a){var b,c,d,e;if(a.a==null){return}for(c=a.a,d=0,e=c.length;d-1&&d==b.a)){e=jDb(b);return new fE(c,e,a.a)}return null}
+function Chb(a,b){var c,d;d=Eqd(a.e,b);if(d){c=tld(d.a,GEd);if(c!=null){return Und(c,' ',0)[0]}}return null}
+function BG(a,b){var c;if(a.k){for(c=0;c3||b.Nl()<-3){return true}}return false}
+function jrb(a){var b,c;for(c=a.Qb();c.Rc();){b=c.Sc();if(b.Hl()==1&&b.Zl()=='H'){return false}}return true}
+function w0b(a,b){var c,d;if(!b.sd()){d=b.Ad(a)+1;c=d0)&&Ml(a);b?kg((abd(),a.U),tAd,true):kg((abd(),a.U),tAd,false)}
+function qIb(a,b,c){c!=null&&c.length!=0?ZHb(a,c):Vnd(b.toLowerCase(),rDd)||ZHb(a,XCd);return a.p.Xn(Qad(b))}
+function Cdb(a){return a.n.a.length==0&&a.k.a.length==0&&a.t.a.length==0&&a.u.a.length==0&&a.A.a.length==0}
+function Zjd(){return function(a){var b=this.parentNode;b.onfocus&&$wnd.setTimeout(function(){b.focus()},0)}}
+function Mcd(a){Icd();var b;b=!jbd(a);if(b||!Ecd){return}bbd(a,Ecd)&&((ujc(),a).stopPropagation(),undefined)}
+function yv(a,b){var c,d;c=a.c;d=a.d;if(b.c==c||b.d==c){return c}else if(b.c==d||b.d==d){return d}return null}
+function M3(a){var b;if(ps(a.a.c)){b=q7(a.a);if(Hnd(b.substr(0,7),vDd)){return L3(b,a.a)}return b}return null}
+function DAb(a){var b;b=new ajd;Yid(b,a.b,'Basic');a.d&&Yid(b,a.a,'Advanced');Uid(b.b,0);Nf(b.b,eId);return b}
+function kk(a){var b,c,d,e;b=new es;for(d=0,e=a.length;d0&&b<=126?h1b[b-1].c:null)))}return c}
+function wEb(a){var b,c,d;d=new ltd;for(c=new qsd(a.b.Qb());c.b.Rc();){b=c.b.Sc();Hqd(d,mnd(b.a),b.b)}return d}
+function Ffd(a,b,c,d){var e;a.oo(b,c);e=sfd(a,b,c,true);if(d){vg(d);$cd(a.i,d);abd();Lic(e,lbd(d.U));yg(d,a)}}
+function Qfb(a,b,c,d){var e;e=ugb(a.c,oEd);eld(e,uEd,b);eld(e,IEd,(Cnd(),''+c));d!=null&&eld(e,FEd,d);return e}
+function sCb(a,b){var c;c=b;!!a.a&&(c=a.a.$k(b));if(!a.c&&vCb(a.f,c)){return false}a.f=c;a.c=false;return true}
+function Kpd(a,b){var c,d;c=b>>5;if(a.d>>d:0;Qod(a)}
+function $pd(a,b,c){var d;for(d=c-1;d>=0&&a[d]===b[d];d--);return d<0?0:S8c(K8c(a[d],SLd),K8c(b[d],SLd))?-1:1}
+function sd(a,b,c,d){if(b!=null&&c!=null&&d!=null&&T(c,d)){return}!a.e&&(a.e=new Cqc);vqc(a.e,new ee(b,c,d),a)}
+function zC(a,b){if(!!a&&!!a.C&&!dsd(a.C.q).a.sd()){return vB(uB(uB(new wB,new HD(a)),new yC(a,b)),a)}return b}
+function vGb(a){if(window.URL&&window.URL.createObjectURL&&(!a||tGb())){return new uGb(new yGb(a))}return null}
+function $Ab(a,b){if((WAb(),UAb)==a){if(!b){throw I8c(new vqd(AId))}return Cnd(),''+b.a}return TAb==a?'*':null}
+function $_b(a){Y_b();if(Gqd(X_b,a)){return Fqd(X_b,a)}throw I8c(new bnd('No enum constant HomologyGroup.'+a))}
+function Yud(a){var b;b=a.a.a.length;if(b>0){return Xud(b-1,a.a.a.length),Yr(a.a,b-1)}else{throw I8c(new Msd)}}
+function Zud(a){var b;b=a.a.a.length;if(b>0){return Xud(b-1,a.a.a.length),$r(a.a,b-1)}else{throw I8c(new Msd)}}
+function b8b(a){var b,c,d;d=0;c=a.a.a[0];for(b=1;bc){c=Yr(a.a,b);d=b}}return d}
+function tfd(a){var b,c,d;for(c=0;cc&&b.a.length!=0&&(b.a.length==1?Pr(a,z9b(c,a,b.a[0],kBd)):u9b(a,c,b))}
+function qgb(a,b){var c,d,e;for(d=new Frd(b);d.a-1){Ugd(a.a,c);Zt(a,b)}else{throw I8c(new bnd('No item to select'))}}
+function BH(a,b){wH.call(this,a,(s6b(),m6b),true);if(!b){throw I8c(new und('Prototype cannot be null'))}this.a=b}
+function Ooc(){var a;this.a=(a=document.createElement(Nzd),'draggable' in a||'ondragstart' in a&&'ondrop' in a)}
+function e9(a){var b,c,d;d=0;for(c=new Frd(a);c.a=0&&Wr(e,mnd(zgb(a.a,c)))}return e}
+function WNb(a){var b,c,d;Xrd();a.Fd(null);b=new yod;for(d=a.Qb();d.Rc();){c=d.Sc();b.a+=''+c;b.a+=oyd}return b.a}
+function zEb(a){var b,c;gg(a.a,false);for(c=new Frd(a.c);c.a=a.c){throw I8c(new kmd)}--a.c;for(c=b;c1&&OX(a.c.c[1],b,c)){return true}return JX(a,b,c)&&sac(a.f,b)=0&&b<=127?Mnd(a.a,dod(b))!=-1?a.b.qj('\\'+String.fromCharCode(b)):a.b.pj(b):a.b.qj(hbb(b))}
+function XSb(b,c){try{return YSb(n3(b.a,c))}catch(a){a=H8c(a);if(kvc(a,46)){throw I8c(new LSb)}else throw I8c(a)}}
+function Hnb(b,c){var d;try{at(b.b,b.c.Hd(c))}catch(a){a=H8c(a);if(kvc(a,46)){d=a;b.a.a.uk(d.i)}else throw I8c(a)}}
+function ozb(b){var c;try{c=Xmd(CEb(b.b),10);return c}catch(a){a=H8c(a);if(kvc(a,65)){return -1}else throw I8c(a)}}
+function LAb(a,b){if((p$b(),m$b)==a||o$b==a){if(!b)throw I8c(new vqd(AId));return new i$b(a,b.a)}return new h$b(a)}
+function cG(a,b){this.b=b;this.n=a;this.k=new gG(this);this.f=new hG(this);this.i=new iG(this);this.j=new jG(this)}
+function RAb(a,b){this.a=a;this.b=b;this.c=QAb(this.a,b);this.c.Bb(nId);og(this.a,new SAb(this),(cpc(),cpc(),bpc))}
+function $ob(a){vd.call(this,'R\u2423');ud(this,Lyd,'R\u2423');ud(this,zGd,new hk(jk(Und('R, ',',',0))));this.a=a}
+function Fxb(a){var b,c;c='Cannot load renderer module for %s';for(b=0;b1||b>=0&&a.b<3}
+function dl(a){var b;b=a.a;while(a.a1&&Wr(a.d,new W0b(d,Cqd(a.a,c)?Eqd(a.a,c):c,b.o))}}
+function AM(a,b){var c,d;d=b.Kf();d.Pb();a.Mg(b,a.Ng());d.gl();a.Sg(d);c=a.Qg();i0(a.o.i,b.Kf(),c);a.Rg(c,b);d.qe()}
+function AL(a,b){var c,d;c=gH(new iH(a.f.Lh(),LBd),gw(a.o.i,b));d=E9b(a.f);return rac(c.a,c.b,0,d.a,d.b,0)<0.77?d:c}
+function xS(a,b){var c,d,e;if(a){for(d=a.Qb();d.Rc();){c=d.Sc();e=Hnd(BS(c.b.b),'')?'= ':'';uS(b,c.a+' '+e,AS(c))}}}
+function Lpd(a,b){var c,d;d=b>>5==a.d-1&&a.a[a.d-1]==1<<(b&31);if(d){for(c=0;d&&cc.b.a&&b.b>c.b.b&&b.aa.a.length){throw I8c(new bnd('too much delimiters'))}this.b=new Z7b(a);this.c=b}
+function Ii(a,b){if(b<0){throw I8c(new bnd('must be non-negative'))}!!a.e&&Hi(a);a.d=false;a.e=mnd(Pi(Ni(a,a.c),b))}
+function jY(a,b,c,d){var e,f;e=new p0((pR(),jR),(NT(),KT),true);f=tY(a,d,c);f!=null&&b.tf(new qad(d*0.5,0),f,a.i,e)}
+function C$(a,b,c,d,e){s$();var f;f=new z$(a,new es,c,d,false);f.f=T1(e,(O$b(),M$b));f.c=tS(c,d,e,f);f.a=b;return f}
+function Xbb(a){var b,c,d,e;e=new es;for(c=0,d=a.length;c0){c=b.Ml().Qb();while(c.Rc()&&d>0){hs(a.s,c.Sc())!=-1||--d}}return d>0}
+function Brd(a){var b;Swd(a.a!=a.b);b=a.d.a[a.a];Ard(a.b==a.d.c&&b!=null);a.c=a.a;a.a=a.a+1&a.d.a.length-1;return b}
+function Vod(a){var b;if(a.c!=0){return a.c}for(b=0;b0&&a<=126&&h1b[a-1].a==0&&a!=119&&a!=120){return a>0&&a<=126?h1b[a-1].c:null}return '0'}
+function ZFb(){if(typeof $wnd.MSInputMethodContext!=$Id||typeof $wnd.msIsStaticHTML!=$Id){return false}return true}
+function eod(){Cnd();try{return sqd('UTF-8')}catch(a){a=H8c(a);if(kvc(a,580)){throw I8c(new dmd)}else throw I8c(a)}}
+function uhc(){uhc=p9c;rhc=new vhc('BEVEL',0,'bevel');shc=new vhc('MITER',1,'miter');thc=new vhc('ROUND',2,'round')}
+function ohc(){ohc=p9c;lhc=new phc('BUTT',0,'butt');mhc=new phc('ROUND',1,'round');nhc=new phc('SQUARE',2,'square')}
+function n4(){n4=p9c;m4=new RegExp('\\w+=((\\w+|-?\\d+.?\\d*|[<>=]+)|\\(\\d+( (\\w+|-?\\d+\\.?\\d*))+\\)|\\".*\\")')}
+function Hv(a,b,c){var d,e,f;for(f=new qsd(c.b.Qb());f.b.Rc();){e=f.b.Sc();d=dT(a.j,e);!!d&&!!d.gh()&&Q9b(b,d.gh())}}
+function rhb(a,b){var c,d;c=new ltd;Iqd(c,azd,T1(b,(O$b(),M$b)));d=T1(b,L$b);d!=null&&Otd(c.e,'leftName',d);Ihb(a,c)}
+function bm(a,b){var c;mg((abd(),a.U),b);c=Mic(a.U);!!c&&(Ind((ujc(),c).tagName,'td')||Ind(c.tagName,'th'))&&mg(c,b)}
+function yib(a,b){var c;eld(b,'rgroupID',$md(a.a));if(a.b){c=a.b;c.b&&eld(b,'restH','on');c.a!=null&&eld(b,REd,c.a)}}
+function Ysc(a,b,c,d){var e;if(d>0){for(e=d;e=d||b>24}return b}
+function $J(a){var b,c,d,e;b=-a.a.Xl().c;e=a.d.a.o.t&&a.c>0?a.c*2:0;d=new std;for(c=b;c$wnd.Math.abs(hw(a.o.i,LBd))}
+function TO(a){a.p=null;a.b=null;a.a=true;ex(Mu(a.o.i),new h_(MBd,vuc(quc(UGc,1),nyd,34,0,[(A_(),v_)])));a.o.i.w.Hf()}
+function VP(a){var b,c,d;d=new es;if(Tx(new Cy(a.d))){for(c=a.d.Ne().Qb();c.Rc();){b=c.Sc();Wr(d,new qP(b))}}return d}
+function Z_(a,b){var c,d,e;e=new es;for(d=0;d=0&&HEb(a.e,''+c);Sdd(a.a,(qmd(),pmd==b.a?true:false));gg(a.a,b.a!=null)}
+function Axb(a){var b,c,d;d=new es;for(c=new Frd(a);c.a=((kcc(),Vbc)==a.b?3:-1)){return ''+b}}return null}
+function SOb(b,a){if(b[a]){if(typeof b[a]==cyd){return b[a].split(',')}if(Array.isArray(b[a])){return b[a]}}return []}
+function trd(a){var b;b=a.a[a.c-1&a.a.length-1];if(b==null){return null}a.c=a.c-1&a.a.length-1;a.a[a.c]=null;return b}
+function Dxd(a,b){var c,d,e,f;f=a;d=f.length;for(c=0;c=a.p||eb&&d.Wg(a[f-1],a[f])>0;--f){g=a[f];a[f]=a[f-1];a[f-1]=g}}}
+function lxd(a,b,c){var d;d=b[c]<<24;d|=(b[++c]&255)<<16;d|=(b[++c]&255)<<8;d|=b[++c]&255;a.f[a.i]=d;++a.i==16&&kxd(a)}
+function kh(a){var b,c;for(c=new Frd(a.a);c.a180&&(d=-180+(d-180));if(a.a.a!=null){e=ZM(c,d);a.e=e+UAd}else{a.e=null}}
+function HO(a,b){var c,d;c=cbc(a.a.e,a.b);d=cbc(a.a.e,-a.b);if(GO(b,a.a.b,c)&&!GO(b,a.a.b,d)){return IO(a,b)}return null}
+function SWb(a,b){var c,d,e;for(d=new Frd(b);d.ae){f=c;d=a.a[c];e=d.f}}return f}
+function Bbc(a){var b,c,d,e;b=(d=a>>>0,d.toString(16));e=new yod;for(c=0;c<8-b.length;c++){e.a+='0'}e.a+=''+b;return e.a}
+function Oc(a){var b,c,d,e;for(b=(a.k==null&&(a.k=(Gic(),e=suc(b6c,lyd,2352,0,0,1),Iic(e))),a.k),c=0,d=b.length;c-129&&a<128){b=a+128;c=(ond(),nnd)[b];!c&&(c=nnd[b]=new gnd(a));return c}return new gnd(a)}
+function nh(a,b,c){var d;if(a.j){d=(abd(),Nkc($doc));hbd(a.d,d,b);Lic(d,lbd(c))}else{d=dbd(a.d);abd();$ad.eo(d,lbd(c),b)}}
+function DG(a,b){if(a.d.a.a.a){nG(a.d,new UE(new qad(soc(b),toc(b)),yG(ilc(b.a)),plc(b.a),mlc(b.a)||olc(b.a)));a.o=true}}
+function DY(a){if(a.k==null){if(!a.j.b.d){a.k=Lac(a.j.e,a.c.Lh(),fV(a.j));a.k=a.k+(a.k>0?EX(a):0)}else{a.k=0}}return a.k}
+function MJ(a,b){var c,d;for(d=new Frd(a.a);d.a=0&&a.a.b.c.vd()>b+1){return Aac(dbc(a.a.b.c.zd(b)),dbc(a.a.b.c.zd(b+1)))}return tW(a,b)}
+function AY(a){if(a.d==null){if(!a.c.th()){a.d=Lac(a.c.Lh(),a.j.e,fV(a.c));a.d=a.d+(a.d>0?EX(a):0)}else{a.d=0}}return a.d}
+function EY(a){if(!a.e){AY(a);a.e=tac(a.c.Lh(),a.j.e,AY(a)*(a.w.a==(s6b(),r6b)||a.w.a==l6b||a.w.a==p6b?0.8:1))}return a.e}
+function Hn(){var a;a=new nm(false,zAd);(Jg(),Ig).Ho(fbd((abd(),a.U))).className=AAd;a.K=true;Xg(a,(Fhd(),Ehd));return a}
+function vF(a){var b;b=new Cy(a.a);Xx(b,null,Lx(a.a));Xx(b,null,Ix(b));$x(b,Nx(b));Zx(b,Mx(a.a));wF(b);zy(b,a.b);return b}
+function wV(a,b,c){var d,e;d=xV(a,new jX((HU(),tU),false),b);e=lad(c,new qad(d.f+d.e/2,d.i+d.d/2));OU(d,e.a,e.b);return d}
+function hRb(a,b,c){this.a=a;this.c=new xRb(b,c);this.d=new oT(a,a.e,new vv(new OUb));this.b=new LS(this.d,a.e,a,this.c)}
+function mob(a,b,c,d){job.call(this,c,a,new BH(a,b));ud(this,Lyd,b.Zl());ud(this,Nyd,WU(b.Hl()));ud(this,zGd,d);this.a=b}
+function Mfb(a,b,c){eld(c,lEd,'*');Ofb(a.b.Oj(b),c);eld(c,iEd,(Cnd(),!b.b&&(b.p?GWb(b.p):(b.b=mnd(0))),''+(b.b?b.b.a:0)))}
+function PV(a,b){var c;if(b){c=a.a.b.a-b.e-a.f;OU(b,c,a.a.b.b-b.d/2);RV(a.b,b);Wr(a.d,new ibc(new qad(b.f,b.i),b.e,b.d))}}
+function X5b(a,b){var c,d;for(d=U5b(a).Qb();d.Rc();){c=d.Sc();b?!!c.e&&lsd(dsd(c.e.w),c)&&Z4b(new j5b(c.i,c.e)):t5b(c.i)}}
+function T6(a,b){var c,d,e;for(d=new Frd(b);d.a=17){if(c<7&&c%2==0){if(Hb(a)==c){return -a.f-a.b.Xl().c}}}return -b-a.b.Xl().c}
+function jC(a,b){var c,d;for(d=new Vqd((new Sqd(a.a)).a);d.b;){c=Uqd(d);if(pvc(c.Ok())===pvc(b)){return c.yp()}}return null}
+function jl(a,b){var c;while(a.a<=a.b.length){c=cl(a);b.a+=oyd;b.a+=c;if(Hnd(c.substr(0,6),kAd)){return il(a)}}return false}
+function zD(a){var b;if(a){b=a.C;if(!!a.q||b.e||(!b.a&&(b.a=new UWb(b)),b.a).a.i.a.vd()!=0){return new yD(a)}}return new pD}
+function BV(a,b,c){var d,e;if(c!=null){e=a.Jf(c,b.c.b,(z0(),y0));d=VQ(c,e.a)+e.a/2;b.a=d;return new nV(e,b,b,c)}return null}
+function D$(a){var b,c;if(P4b(a)==(V4b(),S4b)&&!!VN(a)){return eO(WN(a))}b=i4b(T1(a,(O$b(),K$b)));c=!b?null:f4b(b);return c}
+function Kf(a){var b,c,d;b=(ujc(),tjc).yn(a);if(!njc(b)){return}d=b;if(Lf(d,(abd(),zcd(a.type)))){c=Bcd(d);!!c&&cbd(a,d,c)}}
+function s9c(a){var b;if(Array.isArray(a)&&a.Hp===t9c){return Jmd(U(a))+'@'+(b=V(a)>>>0,b.toString(16))}return a.toString()}
+function hL(a,b){return !a.d.Ig().sd()&&b.b.vd()==2&&Zrd(b.a.zd(0).Ml(),b.a.zd(1).Ml())&&Zrd(b.a.zd(0).Ul(),b.a.zd(1).Ul())}
+function owd(a,b){return cwd?b.Dp()>=(mwd(a),800):dwd?b.Dp()>=(Uvd(),800):gwd?b.Dp()>=(Uvd(),900):fwd&&b.Dp()>=(Uvd(),hAd)}
+function nqd(a,b,c,d,e){lqd();if(b==0||d==0){return}b==1?(e[d]=pqd(e,c,d,a[0])):d==1?(e[b]=pqd(e,a,b,c[0])):oqd(a,c,e,b,d)}
+function I4(a){var b,c,d;for(c=new Frd(a.e);c.a0){return true}}return false}
+function H4(a,b,c){var d,e;d=new Srd(vuc(quc(tWc,1),zBd,49,0,[b]));e=new Z1(d);Y1(e,(O$b(),N$b),c);Y1(e,K$b,'ht');Wr(a.i,e)}
+function J4b(){F4b();return vuc(quc(AXc,1),nyd,94,0,[o4b,p4b,q4b,r4b,s4b,t4b,u4b,v4b,w4b,x4b,y4b,z4b,A4b,B4b,C4b,D4b,E4b])}
+function wdc(){xdc.call(this,(!Adc&&(Adc=!!$wnd.requestAnimationFrame&&!!$wnd.cancelAnimationFrame?new Bdc:new Hdc),Adc))}
+function SA(a,b){BA.call(this,b,b.C,y$b(new F$b,new Srd(vuc(quc(xWc,1),lyd,715,0,[a]))).a);this.a=a;this.b=new Yu(this.o.A)}
+function V0b(a,b,c){if(!b||!a){throw I8c(new bnd('End atom or Begin atomset cannot be null'))}this.a=a;this.b=b;yTb(this,c)}
+function S9b(a,b,c,d,e){a.c=$wnd.Math.min(a.c,b);a.d=$wnd.Math.min(a.d,c);a.a=$wnd.Math.max(a.a,d);a.b=$wnd.Math.max(a.b,e)}
+function eIb(a){a.o.e!=null?!!Rf(a.p.Tn())&&!!Mic(Rf(a.p.Tn()))&&(Mic(Rf(a.p.Tn())).style[eJd]=a.o.e,undefined):Dw(a.o,qBd)}
+function cdc(a){var b,c;c=new std;if(a.a.length!=0){Lr(c,a.a[0].op());for(b=1;b0?(Hsc(),Fsc):(Hsc(),Gsc)}return Hsc(),Gsc}
+function xB(a){var b,c;for(c=new Frd(a.a);c.a0&&(d.a+=',',d);nod(d,Ntc(a,c))}d.a+=']';return d.a}
+function d$(a,b){var c,d;for(d=new Frd(a.o);d.a1?b.c.a[1]:null;!!c&&(a.e=c.xh())}}
+function v9(a,b){var c,d;this.a=a;O7.call(this);for(d=new qsd(dsd(b.n).b.Qb());d.b.Rc();){c=d.b.Sc();U(c)==lWc&&Wr(this.j,c)}}
+function Meb(a,b){var c,d;for(d=new Frd(a.b);d.a=0;f--){g=Ppd(g,g,d,e);(c.a[f>>5]&1<<(f&31))!=0&&(g=Ppd(g,b,d,e))}return g}
+function I4b(){F4b();var a,b,c,d,e;a=new es;for(c=J4b(),d=0,e=c.length;de){d=b.yp();e=b.Ok().a}}return d}
+function Ecb(a){var b,c,d,e,f;d=a.c;for(c=(f=(new drd(d.a)).a.mp().Qb(),new erd(f));c.a.Rc();){b=(e=c.a.Sc(),e.Ok());ndb(a.k,b)}}
+function Dmb(a,b){var c,d,e,f;this.b=sid(a);d=(e={},Cmb(e,Emb()),Cmb(e,Rf(this.b)),e);c=(f=zOb(b),vs(yOb(f),d,false),f);this.a=c}
+function Joc(a,b){var c;Ioc.call(this);this.a=b;!ioc&&(ioc=new Dpc);c=Yr(ioc,a);if(!c){c=new es;Cpc(ioc,a,c)}c.od(this);this.b=a}
+function Tjb(a,b,c){gc.call(this,a,b);this.a=new Tsd(qLc);Psd(this.a,(vjb(),ujb),c[0]);Psd(this.a,tjb,c[1]);Psd(this.a,rjb,c[2])}
+function pld(b,c){var d;try{return Pkd(b.ap(c))}catch(a){a=H8c(a);if(kvc(a,109)){d=a;throw I8c(new Xkd(c,d))}else throw I8c(a)}}
+function ms(b){var c;try{return fuc(),muc(s9c(b))}catch(a){a=H8c(a);if(kvc(a,452)){c=a;throw I8c(new vqd(c.i))}else throw I8c(a)}}
+function mwd(a){var b,c;if(a.b){return a.b}c=ewd?null:a.d;while(c){b=ewd?null:c.b;if(b){return b}c=ewd?null:c.d}return Uvd(),Tvd}
+function iab(a){switch(a.k){case 5:return -1;case 1:return 1;case 2:return 4;case 3:return 8;case 4:return 12;default:return 0;}}
+function nUb(a){this.a=new jud;if(!a||a.vd()<2){throw I8c(new bnd('Atoms must contain at least 2 different atoms'))}Lr(this.a,a)}
+function aW(a,b,c,d){var e,f;if(!c||c.sd()){return}for(f=c.Qb();f.Rc();){e=f.Sc();$V(a,b,new qad(e.b.a+e.c/2,e.b.b+e.a/2),1.2,d)}}
+function d6(a,b,c){var d;d=new Z1((Xrd(),new ksd(ssd(dsd(a.n),b-1))));Y1(d,(O$b(),K$b),fc((e4b(),d4b)));Y1(d,N$b,'1-'+c);FVb(a,d)}
+function Uw(a,b){og(b,a.e,(Qpc(),Qpc(),Ppc));og(b,a.e,(Npc(),Npc(),Mpc));og(b,a.e,(Jpc(),Jpc(),Ipc));og(b,a.e,(Gpc(),Gpc(),Fpc))}
+function Vv(a){var b,c;Uo(a.a,(Lz(),Iz));if(fIb(a.a)&&gIb(a.a,Iz)){hIb(a.a,false);c=a.C;nT(a.j,c);b=JS(a.b,c);xIb(a.a,b);tw(a.e)}}
+function Ac(a){var b,c;a.i=true;for(c=0;c=0;d--){g=J8c(Z8c(f,32),K8c(a[d],SLd));e=Gpd(g,c);f=d9c($8c(e,32))}return d9c(f)}
+function Dub(a,b){var c,d;for(d=new Frd(a.f.a);d.a0){d[--b]=Dnd(a,--c)}return Cnd(),kod(d,0,d.length)}
+function DJb(a,b){var c,d;if(!b){return null}c=EJb(a,b.b);d=EJb(a,new qad(b.b.a+b.c,b.b.b+b.a));return abc(),jbc(c.a,c.b,d.a,d.b)}
+function FJb(a,b){var c,d;if(!b){return null}c=GJb(a,b.b);d=GJb(a,new qad(b.b.a+b.c,b.b.b+b.a));return abc(),jbc(c.a,c.b,d.a,d.b)}
+function bRb(a,b){var c,d;if(!b){return null}c=cRb(a,b.b);d=cRb(a,new qad(b.b.a+b.c,b.b.b+b.a));return abc(),jbc(c.a,c.b,d.a,d.b)}
+function eRb(a,b){var c,d;if(!b){return null}c=fRb(a,b.b);d=fRb(a,new qad(b.b.a+b.c,b.b.b+b.a));return abc(),jbc(c.a,c.b,d.a,d.b)}
+function rRb(a,b){var c,d;if(!b){return null}c=sRb(a,b.b);d=sRb(a,new qad(b.b.a+b.c,b.b.b+b.a));return abc(),jbc(c.a,c.b,d.a,d.b)}
+function uRb(a,b){var c,d;if(!b){return null}c=vRb(a,b.b);d=vRb(a,new qad(b.b.a+b.c,b.b.b+b.a));return abc(),jbc(c.a,c.b,d.a,d.b)}
+function $sc(a,b){var c,d;c=vuc(quc(uvc,1),jyd,23,15,[0]);d=_sc(a,b,c);if(c[0]==0||c[0]!=b.length){throw I8c(new And(b))}return d}
+function qpd(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Tod(a);if(d==a.d-1){--c;c=c|0}}b-=jnd(c);return b}
+function fvd(a,b){var c,d,e;d=null;e=a.b;while(e){c=a.a.Wg(b,e.d);if(c==0){return e}if(c>=0){e=e.a[1]}else{d=e;e=e.a[0]}}return d}
+function bWb(a,b,c){var d,e;for(e=new qsd(dsd(a.q).b.Qb());e.b.Rc();){d=e.b.Sc();if(d.c.Bm()==b&&iXb(d)==c){return d}}return null}
+function IVb(a,b,c,d){var e;e=new Q3b(b);if(!lsd(dsd(a.n),b)){return null}yTb(e,c);e.c=d;vTb(e);sVb(a,dsd(a.o).b.vd(),e);return e}
+function hbb(a){var b,c,d,e;b=new zod;b.a+='\\u';e=(d=a>>>0,d.toString(16));for(c=e.length;c<4;c++){b.a+='0'}b.a+=''+e;return b.a}
+function CK(a,b,c,d){dH.call(this,a);this.b=c;this.f=d?(t0b(),s0b):(t0b(),r0b);this.a=new yK(a,c,this.f);bH(this,this.a);this.i=b}
+function cob(a,b){vd.call(this,'Add to this group');ud(this,Lyd,'R[+]');this.a=b;this.b=a;Wub(this.a,this);Iu(a.i,this);bob(this)}
+function ipd(a){Nod();if(a.length==0){this.e=0;this.d=1;this.a=vuc(quc(uvc,1),jyd,23,15,[0])}else{this.e=1;apd(this,a);Qod(this)}}
+function rP(a){if(a.c.a.length!=0){if(a.a>=0.5){a.b=-0.1}else if(a.a<=0){Hi(a.e.b);a.c.a=suc(_5c,lyd,1,0,5,1)}a.a+=a.b;a.f.w.Hf()}}
+function rib(a){switch(a.k){case 9:return 'SD';case 10:return 'SA';case 11:return 'DA';case 12:return 'Any';default:return null;}}
+function Uwd(a,b,c){if(a<0||b>c){throw I8c(new lmd(fMd+a+gMd+b+', size: '+c))}if(a>b){throw I8c(new bnd(fMd+a+' > toIndex: '+b))}}
+function Us(a){var b;b=v9c(Ss,a);if(!b){throw I8c(new vqd('Invalid version string: '+a))}return new Rs(Vs(b[1]),Vs(b[2]),Vs(b[3]))}
+function dK(a,b,c){var d;d=ZJ(a,b);if(d<0){return null}d+=-a.a.Xl().c;if(d<0&&!b2b(d)){return null}return c.qd(mnd(d))?mnd(d):null}
+function KCb(a,b,c){var d;if(b!=null){for(d=1;d=0&&((abd(),a.U).style[ezd]=b+dzd,undefined),c>=0&&((abd(),a.U).style[czd]=c+dzd,undefined))}
+function en(a,b,c){b>=0&&((abd(),a.U).style[ezd]=b+dzd,undefined);c>=0&&((abd(),a.U).style[czd]=c+dzd,undefined);a.d=b;a.b=c;hn(a)}
+function Hgb(a,b,c,d){var e;e=Pib(a.c,VEd);eld(e,pFd,c?'0 0':'0');eld(e,DEd,d?'1':'0');Lkd(e,Ggb(a,b));c&&Lkd(e,Ggb(a,b));return e}
+function Erc(a,b,c,d){var e,f;f=c-b;if(f<3){while(f<3){a*=10;++f}}else{e=1;while(f>3){e*=10;--f}a=(a+(e>>1))/e|0}d.j=a;return true}
+function nud(a,b){var c,d;if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c0&&dsd(c.k).b.vd()==1&&Q0b(dsd(c.k).a.zd(0))&&Xz(new Yz(a),b,Tu(a.v))}}
+function qh(a,b,c){var d;if(!b.c){return}Ch(a,b);if(c&&!!b.b){a._b();(Sfd(),Rfd).Do((abd(),a.U));d=b.b;xic((pic(),oic),new $gd(d))}}
+function $kd(b,c){var d;try{return Pkd(rld(b.a,c))}catch(a){a=H8c(a);if(kvc(a,109)){d=a;throw I8c(new Vkd(d,b))}else throw I8c(a)}}
+function ald(b,c){var d;try{return Pkd(sld(b.a,c))}catch(a){a=H8c(a);if(kvc(a,109)){d=a;throw I8c(new Vkd(d,b))}else throw I8c(a)}}
+function Tlc(){Rlc();return vuc(quc(j_c,1),nyd,67,0,[Glc,ylc,Blc,Clc,Elc,Flc,Hlc,Ilc,Jlc,Mlc,Olc,Nlc,Qlc,Klc,Llc,Plc,Alc,zlc,Dlc])}
+function mpd(a){Nod();if(a.length==0){throw I8c(new And(RLd))}if(a[0]<0){this.e=-1;_od(this,a)}else{this.e=1;apd(this,a)}Qod(this)}
+function cV(a,b){this.i=a.i;this.a=a.a;this.e=kH(a.e,b);this.b=new jV(a.b,b);this.j=a.j;this.n=a.n;this.c=a.c;this.d=a.d;this.f=a.f}
+function Wud(){Uud();var a,b,c;c=Tud+++Date.now();a=qvc($wnd.Math.floor(c*bMd))&16777215;b=qvc(c-a*gLd);this.a=a^1502;this.b=b^aMd}
+function Ind(a,b){if(b==null){return false}if(Hnd(a,b)){return true}return a.length==b.length&&Hnd(a.toLowerCase(),b.toLowerCase())}
+function cK(a,b,c){var d,e;d=ZJ(a,b);if(d<0){return null}d+=-a.a.Xl().c;if(d<0){return null}e=d/2|0;return c.qd(mnd(e))?mnd(e):null}
+function bab(a,b,c){var d,e;if(ztd(a.d,b)){d=s9c(Bqd(ztd(a.d,b)));e=Hnd('*',d)?-2:Hnd('0',d)?-1:Xmd(d,10);return Fab(c,e)}return ''}
+function jeb(a,b){var c,d,e;e=new es;c=a.To();for(d=0;d1){return e}}}return null}
+function M6b(a,b){var c,d,e;e=dsd(a.r);for(d=new qsd(dsd(b.r).b.Qb());d.b.Rc();){c=d.b.Sc();if(e.b.qd(c)){return true}}return false}
+function cqd(a,b,c){var d,e;d=K8c(c,SLd);for(e=0;L8c(d,0)!=0&&ed.a){return 1}if(c.bd.b){return 1}return 0}
+function tbc(a){var b,c,d,e;c=a.a.length;if(c<2){return a}d=0;while(d<=c-1){b=ubc(a,d++);e=a.a[b];$r(a,b);a.a[a.a.length]=e}return a}
+function Zsd(a){var b,c,d,e;if(kvc(a,272)){return btd(a)}!a.sd();d=a.Qb();c=d.Sc();e=$sd(c);while(d.Rc()){b=d.Sc();atd(e,b)}return e}
+function soc(a){var b,c;c=a.b;if(c){return b=a.a,Ojc((ujc(),b).clientX||0)-tjc.Cn(c)+tjc.In(c)+Ykc(c.ownerDocument)}return klc(a.a)}
+function Bn(a){var b,c,d,e;return $wnd.Math.max((b=Qf(a.a),c=(Zbd(),Zkc($doc)),b-c),(d=Qf(a.a),e=Zkc($doc)+Ukc($doc),e-(d+Sf(a.a))))}
+function $h(a,b){if(b=Zkc($doc)+Ukc($doc)-a.c){return a.c-b}return ai(a.c,b,Zkc($doc),Zkc($doc)+Ukc($doc))}
+function mMb(){jMb();return vuc(quc(TTc,1),nyd,114,0,[aMb,_Lb,VLb,iMb,hMb,fMb,TLb,YLb,dMb,ZLb,ULb,eMb,SLb,WLb,XLb,gMb,$Lb,cMb,bMb])}
+function l5(a,b){var c,d;if(b.length>3){nod(a,b.substr(0,3))}else{d=$wnd.Math.max(0,3-b.length);for(c=0;c36){throw I8c(new And('Radix out of range'))}if(a.length==0){throw I8c(new And(RLd))}opd(this,a,b)}
+function Yg(a){a.G=true;if(!a.A){a.A=wkc($doc);hjc(a.A,a.C);a.A.style[xzd]=(Umc(),yzd);a.A.style[pzd]=(tnc(),qzd);a.A.style[rzd]=qzd}}
+function Xs(c){return $wnd.btoa(encodeURIComponent(c).replace(/%([0-9A-F]{2})/g,function d(a,b){return String.fromCharCode('0x'+b)}))}
+function TZ(a,b){var c,d;if(!b){return OZ}d=a.a.Cf()!=null?uBd:WU(a.a.Hl());c=new UZ(d,uBd);return (O1b(),M1b)==a.c?c:new UZ(c.b,c.a)}
+function J1(){C1();return vuc(quc(qHc,1),pDd,87,0,[m1,k1,t1,r1,q1,z1,d1,y1,c1,g1,h1,e1,f1,n1,_0,l1,u1,s1,v1,w1,a1,b1,Z0,$0,x1,p1,o1])}
+function m5(a,b){k5(a,b<0,(h5(),qvc(b)),5,32);a.a+='.';k5(a,false,qvc($wnd.Math.abs(b*$wnd.Math.pow(10,4)%$wnd.Math.pow(10,4))),4,48)}
+function E8(a){var b;if(!a.a){b=new es;Wr(b,new z8);Wr(b,new A8);Wr(b,new L8);Wr(b,new M8);Wr(b,new O8);Wr(b,new u8);a.a=b}return a.a}
+function WUb(a,b){var c,d,e;c=new es;if(b!=null){for(e=new Vqd((new Sqd(a.a)).a);e.b;){d=Uqd(e);Hnd(b,d.Ok())&&Wr(c,d.yp())}}return c}
+function idc(a){var b,c,d,e,f;f=new otd(a.Vl());for(c=occ(),d=0,e=c.length;d',-1);if(c.length==1){return c}for(b=0;b'+c[b+1]}return c}
+function _fb(b,c){var d;d=agb(b,c);if(d!=null){try{return new ggb(cgb(d))}catch(a){a=H8c(a);if(!kvc(a,46))throw I8c(a)}}return new xgb}
+function yEb(b){var c;gg(b.a,false);c=null;try{c=vEb(b)}catch(a){a=H8c(a);if(kvc(a,20)){gg(b.a,true)}else throw I8c(a)}!!c&&dFb(b.d,c)}
+function Yw(a,b){var c;if(a.a==b){return}c=null;if(a.a){c=a.a.p;a.a.tg()}a.a=b;if(a.a){Jl(a.a,c);a.a.qg()}mqc(a.b,new hF,a);a.i.w.Hf()}
+function K5b(a,b){var c;a.f.a.length==0&&a.r.a.length!=0&&Wr(a.f,a.r.a[0]);c=$5b((!a.d&&(a.d=new a6b(a)),a.d),b);return c?c:F5b(a,a.i)}
+function Cuc(a,b){if(a.h==ZKd&&a.m==0&&a.l==0){b&&(xuc=Auc(0,0,0));return zuc((cvc(),avc))}b&&(xuc=Auc(a.l,a.m,a.h));return Auc(0,0,0)}
+function OWb(a,b){var c;c=dsd(b.r);if(msd(dsd(a.a.n),c)){if(!Tx(b)){return Lr(a.a.i,dsd(Bdb(a.a,b).n))}return Lr(a.a.i,c)}return false}
+function ced(a,b){var c,d;c=(abd(),abd(),Mic(b.U));d=vo(a,b);if(d){b.Bb('');b.zb('');b.Ab(true);Qic(a.U,c);a.b==b&&(a.b=null)}return d}
+function k5b(a){var b,c,d,e;e=new std;for(d=new qsd(dsd(a.a.a.a).b.Qb());d.b.Rc();){c=d.b.Sc();b=E2b(c,a);U(b)==PXc&&ptd(e,b)}return e}
+function L4b(a){var b,c,d;this.b=new is;this.a=new is;for(d=a.Qb();d.Rc();){c=d.Sc();b=c.o;!b?Wr(this.a,new O4b(this,c)):Wr(this.b,c)}}
+function iqb(a,b){vd.call(this,'Remove from this group');ud(this,Lyd,'R[-]');this.a=b;this.b=a;Wub(this.a,this);Iu(a.i,this);hqb(this)}
+function qpb(a,b){var c;wd.call(this,'Zoom all (\u21B2)',b);ud(this,HFd,(nk(),c=Und('ENTER',iAd,0),qk(c[c.length-1],rk(c))));this.a=a}
+function P4b(a){if(a.k){return V4b(),R4b}if(a.Fp==OXc){return V4b(),U4b}if(T1(a,(O$b(),N$b))!=null){return V4b(),T4b}return V4b(),S4b}
+function z0(){z0=p9c;v0=new A0(ACd,0,'bold ');x0=new A0(BCd,1,'italic ');w0=new A0('BOLD_ITALIC',2,'bold italic ');y0=new A0(wAd,3,'')}
+function xnb(a,b){var c;return Dnb(a,(kA(),dA),(c={'structure':b,'parameters':{'autoMappingStyle':'COMPLETE'}},JSON.stringify(c)),a.c)}
+function Jic(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error}
+function aed(){var a;a=(abd(),wkc($doc));a.style[ezd]=fzd;a.style[czd]='0px';a.style['padding']='0px';a.style['margin']='0px';return a}
+function _kd(b,c,d){var e;try{return Pkd(cld(b.a,c,d))}catch(a){a=H8c(a);if(kvc(a,109)){e=a;throw I8c(new Vkd(e,b))}else throw I8c(a)}}
+function Jpd(a,b){var c;c=b-1;if(a.e>0){while(!epd(a,c)){--c}return b-1-c}else{while(epd(a,c)){--c}return b-1-$wnd.Math.max(c,Uod(a))}}
+function kib(a){fib();if(Hnd((WZb(),GXb).a,a.Il())&&Hnd('*',a.Gl())){return jib(6)}else if(kvc(a,261)){return a.bn()}return jib(a.Hl())}
+function GH(a){if(iy(Lu(a.o.i).b)){return MG(a)}else if(my(Lu(a.o.i).b)){return SG(a)}else if(ky(Lu(a.o.i).b)){return PG(a)}return null}
+function vo(a,b){var c;if(b.T!=a){return false}try{yg(b,null)}finally{c=(abd(),b.U);Qic((null,Ajc((ujc(),c))),c);Hjd(a.i,b)}return true}
+function nib(a){fib();var b,c;if(kvc(a,177)){return mib(a)}b=lib(a.Hl());c=oib(a.Vl());if(c.length!=0){return Hnd(b,'0')?c:b+c}return b}
+function u2b(a){var b,c,d;if(n2b(a)||o2b(a)){b=Y6b(new a7b(a.f,dsd(a.a),a));if(!!a.A&&!!a.A&&!b.sd()){d=a.A;c=new By;yx(c,b);xWb(d,c)}}}
+function PR(a,b){var c,d;if(SR(a,b)){d=false;while(!d&&a.d.a.a.length!=0){c=Zud(a.d);d=c.c==b;JR(c,a.c,d&&((cS(),XR)==b||$R==b)&&a.a)}}}
+function y5b(a,b){var c,d;c=G5b(a,b);d=E2b(b,a.i);c.c!=d&&c.d!=d&&(Ex(a,c.c)?(Jud(d,yJd),c.d=d):(Jud(d,yJd),c.c=d));return dVb(a.a,c,b)}
+function d0b(a,b){var c,d;for(d=new Frd(S0b(b));d.ad&&(b[d]=null);return b}
+function aeb(a,b){var c,d,e,f;f=new es;c=eeb(a,b);for(d=0;db.e){return 1}if(a.eb.d){return a.e}if(a.d0?mnd(c):''))}catch(a){a=H8c(a);if(kvc(a,65)){HEb(b.b,'1')}else throw I8c(a)}}
+function KLb(a,b){var c,d,e,f,g;c=JLb(a);if(c!=null){for(e=b.Ai(),f=0,g=e.length;f>5;b&=31;e=a.d+c+(b==0?0:1);d=suc(uvc,jyd,23,e,15,1);upd(d,a.a,c,b);f=new gpd(a.e,e,d);Qod(f);return f}
+function wPb(a,b,c){var d={'structure':a,'parameters':{method:b?vBd:'DEHYDROGENIZE'}};c&&(d.parameters.atoms=c);return JSON.stringify(d)}
+function Mrc(a){krc();var b,c;b=Msc((Lsc(),Lsc(),Ksc));c=null;a==b&&(c=Fqd(jrc,CHd));if(!c){c=new Lrc(CHd);a==b&&Iqd(jrc,CHd,c)}return c}
+function vmd(a,b,c){var d,e;d=Dnd(a,b++);if(d>=55296&&d<=56319&&ba.length||c>b.length){return false}d=a.substr(0,c);e=b.substr(0,c);return Ind(d,e)}
+function Bfd(a,b){var c;if(b.T!=a){return false}try{yg(b,null)}finally{c=(abd(),b.U);Qic((null,Ajc((ujc(),c))),c);_cd(a.i,c)}return true}
+function nLb(a,b){var c,d;d=new yod;c=a?a.Ic():'';d.a+=''+c;if(b!=null){c.indexOf(':')!=-1?(d.a+=',',d):(d.a+=':',d);d.a+=''+b}return d.a}
+function uOb(a){var b,c,d;d=new es;for(c=new qsd(a.b.Qb());c.b.Rc();){b=c.b.Sc();Wr(d,new wOb(b))}Xrd();Prd(d.a,d.a.length,null);return d}
+function $Vb(a,b,c){var d,e;for(e=new qsd(dsd(a.p).b.Qb());e.b.Rc();){d=e.b.Sc();if(d.c==b&&d.d==c||d.c==c&&d.d==b){return d}}return null}
+function Q8b(a,b,c){var d,e,f,g;d=a.a==-1?c.a:b.b.a;e=a.a==1?c.a:b.b.a+b.c;f=a.b==-1?c.b:b.b.b;g=a.b==1?c.b:b.b.b+b.a;return jbc(d,f,e,g)}
+function vrd(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;Ard(c=f){wrd(a,b);return -1}else{xrd(a,b);return 1}}
+function xA(a,b,c){if(!b){throw I8c(new bnd(yBd))}this.e=a;this.c=a.C;new Yu(a.A);this.b=new GE(this.c,b);this.d=c?c:this.c;this.a=new HA}
+function Rwd(a,b){if(0>a){throw I8c(new bnd('fromIndex: 0 > toIndex: '+a))}if(a>b){throw I8c(new nmd('fromIndex: 0, toIndex: '+a+eMd+b))}}
+function kL(a,b){var c;c=new f2b(a.b.a);e2b(c,gw(a.o.i,b));yQ(a.o.f,new PC(a.o.i,B$b(new F$b,new Srd(vuc(quc(jXc,1),lyd,1005,0,[c]))).a))}
+function XN(a,b){if(P4b(a)!=(V4b(),S4b)){throw I8c(new and)}P4b(a)==S4b&&!!VN(a)&&V1(a,VN(a));Q1(a,new pcc(cCd,(Cnd(),''+b),(tcc(),rcc)))}
+function vh(a,b,c){if(c<0||c>a.b.a.length){throw I8c(new kmd)}a.j&&((abd(),b.U)[Czd]=2,undefined);nh(a,c,(abd(),b.U));Vr(a.b,c,b);return b}
+function $U(a){if(a.a.Cf()!=null){return a.a.Cf()}else if(U(a.a)!=sXc||!a.d){return VU(uBd,a.a.Ki(),a.c)}return UU(a.a.Il(),a.a.Ki(),a.c)}
+function D8(a){var b;if(U(a)==lWc){return C8(a)}b=J8(mnd(a.Hl()));if(b!=null){return b}b=F8(a.Vl());if(b!=null){return b}return '#'+a.Hl()}
+function RG(a){var b,c;if(YG(a)){for(c=new qsd(dsd(a.o.i.C.v).b.Qb());c.b.Rc();){b=c.b.Sc();if(fy(Mu(a.o.i).a.b,b)){return b}}}return null}
+function yL(a){var b,c,d;d=new es;for(c=new qsd(dsd(a.o.i.C.v).b.Qb());c.b.Rc();){b=c.b.Sc();Zr(d,mnd(b.a),0)!=-1||Wr(d,mnd(b.a))}return d}
+function e8b(a){var b,c,d,e;b=dyd;c=null;for(e=new Frd(a);e.ad.vd()){b=d.vd();c=d}}return c}
+function jpb(a,b){var c,d,e,f;c=new es;f=cWb(a.C);for(e=new Frd(f);e.a>5;b=a&31;d=suc(uvc,jyd,23,c+1,15,1);d[c]=1<14&&kxd(a);a.f[14]=d9c(_8c(b,32));a.f[15]=d9c(K8c(b,-1));kxd(a)}
+function b9(a,b){this.b=new Q8(a);this.c=new Y8(this.b,a);this.a=new v9(this,a);this.d=new I9(this.b,this.c,a,b);Fl(this,a.j);s5(this,a.e)}
+function qI(a,b){var c,d;$G.call(this,a);this.d=s5b(b,new B0b);d=this.d.a;this.a=new tI(this,d);c=pI(d);this.c=new YT(c);this.b=dbc(Adb(c))}
+function enb(){enb=p9c;bnb=new fnb('NORTH',0,'N');anb=new gnb('EAST',1,'E',true);cnb=new fnb('SOUTH',2,'S');dnb=new gnb('WEST',3,'W',true)}
+function Occ(){Occ=p9c;Kcc=new Pcc('EDGETYPE',0);Ncc=new Pcc('TOPOLOGY',1);Lcc=new Pcc('REACTING_CENTER',2);Mcc=new Pcc('STEREO_SEARCH',3)}
+function RNb(b,c){try{b.b.pb(cOb(b.a.a,c))}catch(a){a=H8c(a);if(kvc(a,46)){b.b.ob(null)}else if(kvc(a,42)){b.b.ob(null)}else throw I8c(a)}}
+function mH(a,b){a.j=a.ug();a.j.mm(b);if(!a.i){a.i=new S2b(a.e,a.d,a.j)}else{I2b(a.i,a.d);L2b(a.i,a.j)}lsd(dsd(a.o.i.C.n),a.d)&&a.d.dm(a.i)}
+function s6(a,b){var c;if(!a||!b){return}c=b.Lh();b.lm(new Sac(c.a,c.b,b.Ki()));b.hm(a.Nl());b.rm((kcc(),Qbc),Eqd(a.Vl(),Qbc));b.om(a.Sl())}
+function s$b(a){var b,c;if(!a.a){a.a=new is;for(c=new qsd(dsd(a.c.n).b.Qb());c.b.Rc();){b=c.b.Sc();U(b)==PXc?Xr(a.a,dsd(b.a.r)):Wr(a.a,b)}}}
+function PUb(a){FUb();var b,c;for(c=new qsd(dsd(a.p).b.Qb());c.b.Rc();){b=c.b.Sc();if(b.o==(s6b(),h6b)||b.o==f6b){return true}}return false}
+function YUb(a,b){var c,d,e;e=a.Me();for(d=new Frd(b);d.a0?(Cnd(),''+a):''));c.a+=' ';if(b){nod(c,b.a!=null?b.a:'*');b.b&&(c.a+=', Rest H',c)}else{c.a+='*'}c.a+=oyd}
+function DZ(a){if(a.b==null){if((O1b(),M1b)==a.n&&!a.k.b.d){a.b=Lac(a.k.e,GX(a,a.i),fV(a.k));a.b=a.b+(a.b>0?EX(a):0)}else{a.b=0}}return a.b}
+function FZ(a){if(a.f==null){if((O1b(),M1b)!=a.n&&!a.k.b.d){a.f=Lac(a.k.e,GX(a,a.i),fV(a.k));a.f=a.f+(a.f>0?EX(a):0)}else{a.f=0}}return a.f}
+function Pbb(a,b){var c,d,e;e=a.charCodeAt(0);c=Und(a.substr(1),(Cnd(),String.fromCharCode(e)),0);d=new ETb(e!=33,Xbb(c));Mbb(d,b);return d}
+function dy(a,b){var c,d,e;e=new es;for(d=new qsd(dsd(a.s).b.Qb());d.b.Rc();){c=d.b.Sc();(c.c==b||c.d==b)&&(e.a[e.a.length]=c,true)}return e}
+function zA(a,b,c){var d,e,f;f=Bdb(b,y$b(new F$b,c).a);for(e=new qsd(dsd(f.w).b.Qb());e.b.Rc();){d=e.b.Sc();!!d&&Zr(a.e,d,0)==-1&&Wr(a.e,d)}}
+function AA(a,b,c){var d,e,f;f=Bdb(b,C$b(new F$b,c).a);for(e=new qsd(dsd(f.w).b.Qb());e.b.Rc();){d=e.b.Sc();!!d&&Zr(a.e,d,0)==-1&&Wr(a.e,d)}}
+function Ngb(a,b,c){var d,e;e=Und(Dld(kld(Yr(a.a,b),pFd).a),' ',0);d='1';if(e.length==2){e[c]='1';d=e[0]+' '+e[1]}Nkd(kld(Yr(a.a,b),pFd),d)}
+function $B(a,b,c){var d,e;d=new nD(a.a,dsd(b.r),c);e=ZB(dsd(b.s));return e.a.length==0?d:new AB(a.a,vuc(quc(PEc,1),ABd,38,0,[d,new bC(e)]))}
+function RD(a,b,c){var d,e,f;if(0==c){d=new qad(a.a.b,a.a.a.b);e=a.b}else{d=new qad(a.a.a.a,a.a.b);e=a.c}f=Cac(OD(b,c),d,e);return QD(f,b,c)}
+function iE(a){var b,c,d,e;e=Cac(gE(new drd(a.o)),a.b,a.j);d=0;for(c=new iud(new gud(a.o));c.b!=c.c.a.b;){b=hud(c);b.d.mm(kH(e[d],a.n));++d}}
+function fbc(a,b){if(a.c<=0||a.a<0||b.c<=0||b.a<0){return false}return b.b.a<=a.b.a+a.c&&a.b.a=a.b){throw I8c(new lmd(vLd+b+wLd+a.b))}}
+function R1(a,b){var c;c=a.o;if(c){if(b.qd(c)){throw I8c(new bnd('Cannot append twice an s-group to the chain of parents'))}b.od(c);R1(c,b)}}
+function Jhd(a){if(!a.j){Ihd(a);a.c||tdd((oid(),sid(null)),a.a)}(Jg(),Ig).Io(Rf(a.a),'rect(auto, auto, auto, auto)');Rf(a.a).style[yAd]=tzd}
+function Cc(a,b,c){var d;a.b=c;a.k=b;a.a=a.b.Hl();a.j=tu(a.k,a.b);a.i=false;for(d=0;d0.0154){return false}}return !d.sd()}
+function yqb(a){var b,c;for(c=new qsd(dsd(a.r).b.Qb());c.b.Rc();){b=c.b.Sc();if(edc(vuc(quc(tWc,1),zBd,49,0,[b]))){return true}}return false}
+function dWb(a,b){var c,d,e;e=new es;for(d=new Frd(b);d.a=0&&a.b>=0)){return}b=an(a,(Xm(),Sm));kvc(b,990)&&(c=gn(a,a.d,Wm,Tm),d=gn(a,a.b,Um,Vm),b.uc(c,d),undefined)}
+function FL(a,b){var c,d,e;e=new I3b(uL(a,0));c=new S2b((s6b(),m6b),a.f,e);pTb(e,AL(a,b));d=new By;mx(d,e);nx(d,c);yQ(a.o.f,new PC(a.o.i,d))}
+function ZQ(a){return Hnd(iCd,a)||Hnd(jCd,a)||Hnd(kCd,a)||Hnd(lCd,a)||Hnd(mCd,a)||Hnd(nCd,a)||Hnd(oCd,a)||Hnd(pCd,a)||Hnd(qCd,a)||Hnd(rCd,a)}
+function hxb(){var a,b,c;b=(tcc(),ds(scc,suc(VYc,IHd,282,0,0,1)));c=suc(g6c,eyd,2,b.length,6,1);for(a=0;a=0;--e,c=c.c){f[e]=c.b}return new Z3b(b,f)}
+function QLb(e,f){if(e){var g=new FileReader;g.onload=function(c,d){return function(a){var b=a.target.result;d.nl(b)}}(e,f);g.readAsText(e)}}
+function ppd(a){Nod();if(L8c(a,0)<0){if(L8c(a,-1)!=0){return new hpd(-1,W8c(a))}return Hod}else return L8c(a,10)<=0?Jod[d9c(a)]:new hpd(1,a)}
+function kod(a,b,c){Cnd();var d,e,f,g;f=b+c;Vwd(b,f,a.length);g='';for(e=b;e0-gv){if(gv>b.b&&b.a<0){return false}return true}return false}
+function ey(a,b){var c,d,e;e=new es;for(d=new qsd(dsd(a.u).b.Qb());d.b.Rc();){c=d.b.Sc();Zr(S0b(c),b,0)!=-1&&(e.a[e.a.length]=c,true)}return e}
+function v$b(a){var b,c;if(!a.e){a.e=new is;for(c=new qsd(dsd(a.c.n).b.Qb());c.b.Rc();){b=c.b.Sc();U(b)==PXc&&Wr(a.e,b.a)}Xr(a.e,dsd(a.c.w))}}
+function vS(a){var b;this.d=a;this.c=new is;this.b=new is;this.a=(oS(),mS).b.b*a.a.Yd();b=e$(a.e.o);this.e=b.b.a+b.c/2;this.f=b.b.b+b.a+this.a}
+function cac(a,b,c){var d;this.a=a;d=a.Rl();this.b=b;if(a.Xl()==(X1b(),S1b)){this.c=(c?d:0)+S1b.d;this.d=0}else{this.c=c?d:0;this.d=a.Xl().c}}
+function tUb(){tUb=p9c;pUb=new uUb('E',0,'E','(E)');sUb=new uUb('Z',1,'Z','(Z)');qUb=new uUb('EZ',2,'E/Z','(?)');rUb=new uUb(wAd,3,null,null)}
+function xUb(a,b,c){if(Zr(C2b(a.a),c,0)!=-1){return true}if((vXb(),sXb)==b){return !qXb(a.a.c,c)}if(tXb==b){return !qXb(a.a.d,c)}return false}
+function Qr(a,b){var c,d,e;e=a.vd();b.lengthe&&(b[e]=null);return b}
+function Uy(a,b){var c;c=false;kvc(b,63)?(c=_r(a.s,b)):kvc(b,210)?(c=_r(a.A,b)):kvc(b,118)&&(c=_r(a.u,b));c&&(a.b||vqc(a.a,new eF,a));return c}
+function BM(a){ex(Mu(a.o.i),new h_(MBd,vuc(quc(UGc,1),nyd,34,0,[(A_(),l_),t_,n_,r_,x_,k_,u_,z_,v_,w_])));a.o.i.w.Hf();a.f=null;Ry(Lu(a.o.i).b)}
+function w4(a){u4();var b,c,d,e;for(c=vuc(quc(PHc,1),nyd,380,0,[r4,s4,t4]),d=0,e=c.length;d=f&&d<=e}
+function toc(a){var b,c;c=a.b;if(c){return b=a.a,Ojc((ujc(),b).clientY||0)-tjc.Dn(c)+((c.scrollTop||0)|0)+Zkc(c.ownerDocument)}return llc(a.a)}
+function jpd(a){Nod();if(a.length==0){this.e=0;this.d=1;this.a=vuc(quc(uvc,1),jyd,23,15,[0])}else{this.e=1;this.d=a.length;this.a=a;Qod(this)}}
+function Kc(a,b){Pwd(b!=a,'Exception can not suppress itself.');if(a.j){return}a.n==null?(a.n=vuc(quc(h6c,1),lyd,42,0,[b])):(a.n[a.n.length]=b)}
+function bi(a,b){var c,d,e;e=new es;c=new ei(new hi(a.a,b));while((d=ci(c))!=null){e.a[e.a.length]=d}return ds(e,suc(_5c,lyd,1,e.a.length,5,1))}
+function Qob(a){var b,c,d,e;e=new es;c=new gs(dsd(a.r));while(c.a.length!=0){b=c.a[0];d=Ey(b);_r(c,b);Or(c,dsd(d.r));e.a[e.a.length]=d}return e}
+function ZB(a){var b,c,d;d=new es;for(c=new qsd(a.b.Qb());c.b.Rc();){b=c.b.Sc();(b.o==(s6b(),r6b)||b.o==l6b)&&(d.a[d.a.length]=b,true)}return d}
+function ik(a){var b,c;c=suc(zxc,gAd,187,a.length,0,1);for(b=0;b0');dAb=new iAb('AS_DRAWN',2,vId);eAb=new iAb('EXACTLY',3,wId)}
+function n_b(){l_b();return vuc(quc(WWc,1),zJd,101,0,[W$b,V$b,X$b,U$b,c_b,$$b,a_b,b_b,Y$b,_$b,Z$b,f_b,h_b,S$b,d_b,R$b,e_b,g_b,T$b,j_b,k_b,i_b])}
+function Iic(a){var b,c;c=$wnd.Math.min(a.length,5);for(b=c-1;b>=0;b--){if(null.Ip()||null.Ip()){a.length>=b+1&&a.splice(0,b+1);break}}return a}
+function Krd(a){var b,c,d,e;if(a==null){return 0}e=1;for(c=0,d=a.length;c2000){cic=a;dic=$wnd.setTimeout(nic,10)}}if(aic++==0){qic((pic(),oic));return true}return false}
+function sD(a,b,c){if(!b){throw I8c(new bnd(yBd))}this.i=a;this.e=b;this.d=a.C;this.c=new Yu(a.A);this.b=new GE(this.d,b);this.f=c;this.a=new HA}
+function Apb(a,b,c,d){vd.call(this,b);this.gb(Myd,c);this.a=a;this.b=d;Iu(a.i,this);this.c=$z(this.a.i.A);ud(this,Byd,(qmd(),this.c?true:false))}
+function OS(a,b){var c,d,e,f;for(e=(f=(new ard((new kud(new drd(a))).a)).a.mp().Qb(),new brd(f));e.a.Rc();){d=(c=e.a.Sc(),c.yp());Q9b(b,d.gh())}}
+function Yj(a,b,c){var d,e;if(!c||!b){throw I8c(new tnd)}Hqd(a.a,b,c);for(e=new Frd(fk(b));e.a=b.length*8){return new ipd(b)}else{c=suc(rvc,Kzd,23,qpd(a)/8|0,15,1);Eod(b,0,c,0,c.length);return new ipd(c)}}
+function xb(a,b,c){var d;if(a>4){d=6-a-c}else if(a>2){c+a>4?(d=6-a-c):(d=4-a-c)}else{c-=b;c+a>4?(d=6-a-c):c+a>2?(d=4-a-c):(d=2-a-c);d-=b}return d}
+function gl(a){var b=!/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(a.replace(/"(\\.|[^"\\])*"/g,''));if(!b){return null}return eval('('+a+')')||null}
+function ex(a,b){if(!b){throw I8c(new bnd('HighlightRenderer cannot be null in Highlight'))}if(!f_((!a.b&&(a.b=(e_(),d_)),a.b),b)){a.b=b;Pv(a.c)}}
+function dE(a,b,c){var d,e;BA.call(this,a,a.C,x$b(new F$b,c).a);this.b=b;this.a=new ltd;for(e=c.Qb();e.Rc();){d=e.Sc();Hqd(this.a,d,mnd(d.Nl()))}}
+function pS(a){var b,c,d;b=new V9b;for(d=new qsd(dsd(qS(a).c).b.Qb());d.b.Rc();){c=d.b.Sc();Q9b(b,c.xh())}return new hbc(b.c,b.d,b.a-b.c,b.b-b.d)}
+function G3(a){D3();var b,c,d;if(x9c(C3,a)){c=F3(B3,a);if(c!=null){b=F3(A3,a);if(b!=null){d=v3(c);return new E3(Xmd(u3(b)[0],10),d)}}}return null}
+function B5(a){z5();var b,c,d,e;for(c=vuc(quc(dIc,1),nyd,329,0,[y5,w5,v5,x5]),d=0,e=c.length;d-1){return Ynd(a.name||null,b+1).toLowerCase()}}return null}
+function rOb(a,b){var c,d;d=suc(uvc,jyd,23,b.vd(),15,1);for(c=0;c0){Wr(a.b,new wtc(b.a,c));d=b.a.length;0d&&(b.a+=jod(suc(svc,fyd,23,-d,15,1)))}}
+function Eod(a,b,c,d,e){Dod();var f,g;U(a);U(c);g=a.length;f=c.length;if(b<0||d<0||e<0||b+e>g||d+e>f){throw I8c(new kmd)}e>0&&xwd(a,b,c,d,e,true)}
+function Sj(){var a,b;this.a=y8c();a=this.a.b;_f(this,(abd(),a));this.U.tabIndex=0;b=(!Nj&&(Nj=new Uj),Xj(),Tj);Vj(b);this.U.className='mjs-obf-A'}
+function XB(a){var b,c,d;d=new F$b;for(c=new Vqd((new Sqd(a.a)).a);c.b;){b=Uqd(c);nXb(b.yp(),b.Ok().a)}z$b(d,new ard(a.a));Sx(d.a)||zVb(a.b.C,d.a)}
+function SI(a,b,c){var d,e;for(e=new qsd(dsd(a.o.i.C.p).b.Qb());e.b.Rc();){d=e.b.Sc();if(d.c==b&&d.d==c||d.c==c&&d.d==b){return false}}return true}
+function ojb(a){var b,c,d;if(a.sd()){return ''}b=new Aod('{');for(d=a.Qb();d.Rc();){c=d.Sc();b.a+=''+c;b.a+=','}gmd(b,b.a.length-1,125);return b.a}
+function W3b(a){var b;if(!a.b){a.b=new es;for(b=0;b=0&&d>5]|=1<<(c&31))}return d}
+function Ep(a,b,c){var d;d=new red(bxb(c));Of(d,(Up(),'mjs-obf-E'));Ffd(a.b,b,0,d);Ffd(a.b,b,1,new Cgd((Tp(),Op).c));Ffd(a.b,b,2,new Cgd((Sp(),Np).c))}
+function Fr(a,b,c){var d,e;if(!c){return}e=Gqd(a.b,b)?hvc(Fqd(a.b,b)):a.a;d=Er(e,c);if(d==-1){return}Iqd(a.b,b,Gr(a,Gqd(a.b,b)?hvc(Fqd(a.b,b)):a.a,d))}
+function dw(a,b){!!b&&dsd(b.p).a.sd()&&HWb(b);nT(a.j,b);xIb(a.a,JS(a.b,b));XHb(a.a,a.f);Ov(a,(Lz(),Iz));a.v.d=false;Ru(a,b);Ry(a.A);a.w.Hf();Zt(a,a.C)}
+function EM(a,b){var c,d;d=jw(a.o.i,FM(a));if(rac(d.a,d.b,0,b.a,b.b,0)<(a.b.d+4)*1.5){return gw(a.o.i,d)}c=Ku(a.o.i,b);if(c){return c.Lh()}return null}
+function wE(a,b){var c,d,e;for(d=new Frd(a.$m());d.a11){Wr(b,c.substr(0,11));c=c.substr(11)}b.a[b.a.length]=c;return ds(b,suc(g6c,eyd,2,b.a.length,6,1))}
+function H7(a){if(a==null||a.length==0){throw I8c(new bnd('empty line'))}if(a.length<3){throw I8c(new bnd('too short line'))}this.b=a;this.a=7;this.c=3}
+function yeb(a){while(_ab(a.c,0)!=-1){_ab(a.c,0)==123?xeb(a):_ab(a.c,0)==10?(bbb(a.c,1),ueb(a,(g9b(),b9b))):Wr(a.a,new Y8b(Aeb(a)))}return new n9b(a.a)}
+function wqb(a){var b,c;b=0;c=0;Hnd('ARROWDOWN',a)&&(c=-50);Hnd('ARROWUP',a)&&(c=50);Hnd('ARROWLEFT',a)&&(b=50);Hnd(WFd,a)&&(b=-50);return new qad(b,c)}
+function Zvb(a,b){return new Yld(vuc(quc(w5c,1),Iyd,293,0,[og(b,a,(Boc(),Aoc)),og(b,a,(Eoc(),Doc)),og(b,(xpc(),$wnd.clipboardData?new zpc(a):a),wpc)]))}
+function Jzb(a){var b,c;c=(X1b(),vuc(quc(qXc,1),nyd,137,0,[U1b,T1b,R1b,S1b,W1b,V1b]));for(b=0;bd&&a.charCodeAt(b-1)<=32){--b}return d>0||b=(mwd(a),800):dwd?b.Dp()>=(Uvd(),800):gwd?b.Dp()>=(Uvd(),900):fwd&&b.Dp()>=(Uvd(),hAd))&&(d=new bwd(b,c),iwd(a,d))}
+function lp(a){var b;if((Os(),Ns)&&kvc(a,95)){b=$wnd.navigator.platform;(b.indexOf('iPad')!=-1||b.indexOf(Ozd)!=-1)&&kg(a.xb(),Pzd,true);Ri(new jp(a),a)}}
+function gq(a,b,c){var d;d=new Xl(b);og(d,a.c,(voc(),voc(),uoc));c.length==0?((abd(),d.U).removeAttribute(azd),undefined):gjc((abd(),d.U),azd,c);return d}
+function PK(a,b){dH.call(this,a);this.d=b;this.c=(s6b(),g6b)==b?new iL(a):new aL(this.o,b);this.a=new NH(a,b,false);this.b=new VM(this.o);bH(this,this.a)}
+function ZO(a){if(aP(a.e)){return new h_(MBd,vuc(quc(UGc,1),nyd,34,0,[(A_(),l_),k_,v_]))}return new h_(MBd,vuc(quc(UGc,1),nyd,34,0,[(A_(),l_),k_,v_,u_]))}
+function fP(a,b){var c,d,e;if(!!a&&!!b&&a!=b&&a.Kl()*b.Kl()>0){e=new utd(a.Ml());for(d=b.Ml().Qb();d.Rc();){c=d.Sc();if(e.a.lp(c)){return c}}}return null}
+function j8b(a,b){var c,d,e;if(b.vd()>a.c.a.length+1){return true}e=new std;for(d=b.Qb();d.Rc();){c=d.Sc();if(!Zrd(e,c)){return true}Lr(e,c)}return false}
+function L4(a,b){var c,d,e,f;for(d=(f=(new ard(a.f.a)).a.mp().Qb(),new brd(f));d.a.Rc();){c=(e=d.a.Sc(),e.yp());if(rsd(dsd(c.r),b)){return c}}return null}
+function Vfb(a){Ufb();if(a==(Xcc(),Vcc)){return '-1'}if(a==Rcc){return '1'}if(a==Ucc){return '4'}if(a==Scc){return '8'}if(a==Tcc){return '12'}return null}
+function HAb(){var a,b,c,d,e;e=new es;for(b=(X1b(),vuc(quc(qXc,1),nyd,137,0,[U1b,T1b,R1b,S1b,W1b,V1b])),c=0,d=b.length;c1&&c.Ni(new Srd(vuc(quc(WYc,1),lyd,176,0,[b.zd(0)])))}}}
+function Nac(a){var b,c,d,e;e=OBd;d=LJd;for(c=new qsd(dsd(a.n).b.Qb());c.b.Rc();){b=c.b.Sc();e>b.Ki()&&(e=b.Ki());d=2&&a.d.Ml().vd()<2){return a.c.Ml().vd()>2}else if(a.d.Ml().vd()>=2&&a.c.Ml().vd()<2){return a.d.Ml().vd()>2}return false}
+function VN(a){var b,c;for(c=d1b(a.n).Qb();c.Rc();){b=c.Sc();if(Hnd(cCd,b.a)&&(tcc(),rcc)==b.b&&(b.c==null||b.c.length==0)&&$N(b.d)){return b}}return null}
+function $P(a){var b,c,d;d=false;if(a.a.a.length>1){d=true;b=$r(a.a,0);Wr(a.a,b)}if(a.b.a.length>1){d=true;c=$r(a.b,0);Wr(a.b,c)}if(d&&!!a.c){WP(a);SP(a)}}
+function Ohb(a,b,c){var d;if(U(b)==PXc){d=b;Kfb(a.c.n.a,b,'R',c);a.c.n.f.Tj(b,tld(c.a,WDd),'atomprop',c);_gb(a.c.n,d);Wr(a.c.k,d);return true}return false}
+function ayb(a,b){var c;if(!b){return false}c=lob(a.a,lHd);if(c){if(pvc((qmd(),pmd))===pvc($xb(a,Fyd))){b.od(c)}else{b.td(c);_xb(a,Fyd,false)}}return true}
+function izb(a){var b,c,d,e,f;f=0;b='';for(d=a.Qb();d.Rc();){c=d.Sc();e=jzb(c);b+=(i1b(),(e>0&&e<=126?h1b[e-1].c:null)+(f==a.vd()-1?'':' ,'));++f}return b}
+function occ(){kcc();return vuc(quc(UYc,1),nyd,69,0,[jcc,gcc,bcc,icc,dcc,ccc,Nbc,fcc,$bc,acc,_bc,hcc,ecc,Obc,Zbc,Xbc,Sbc,Qbc,Rbc,Ubc,Vbc,Tbc,Wbc,Ybc,Pbc])}
+function Fuc(a,b){var c,d,e;if(b<=22){c=a.l&(1<c+3&&(d=d.substr(0,c+2))}else{d=d+d9c(P8c($wnd.Math.round((b-b%6)%360)))}return d}
+function MP(a){var b;if(!gP(a).c){b=new By;!eP(a.b,gP(a).b.a[0].a)&&nx(b,gP(a).b.a[0].a);mx(b,gP(a).b.a[0].a.c);mx(b,gP(a).b.a[0].a.d);return b}return null}
+function beb(b,c){var d,e;try{return b.b.Ld(s9c(c))}catch(a){a=H8c(a);if(kvc(a,310)){d=a;e=new vqd(d.i);Pwd(d!=e,qyd);e.f=d;throw I8c(e)}else throw I8c(a)}}
+function kyb(a){if(Yxb(a.d,Fyd)){jyb(a,a.d)}else if(Yxb(a.e,Fyd)){jyb(a,a.e)}else{ud(a.d,Fyd,(qmd(),false));ud(a.e,Fyd,false);gg(a.c,false);ryb(a.a,false)}}
+function oKb(a,b,c,d){HKb(a.f,c);return (b==RGd?d.c==-1&&d.a==-1?new oRb(d,_j(a.f,(MKb(),LKb))):new jRb(d,_j(a.f,(MKb(),LKb))):new PKb(b,d,sKb(a.e))).Id(c)}
+function aOb(a,b){var c,d,e;e=new jld(yld(b.a,'License'));for(d=0;d$wnd.Math.max(a.o.i.a.j.e.b*10,1)}
+function OK(a){var b,c,d;if(hy(Lu(a.o.i).b)){d=LG(a);for(c=d.Ul().Qb();c.Rc();){b=c.Sc();if(b.b==d&&(s6b(),g6b)==b.o==(g6b==a.d)){return true}}}return false}
+function bL(a,b){var c,d,e,f;if(a.b.vd()>1){f=new nUb(a);c=new y2b((WZb(),UXb));oTb(c,D9b(f));d=new By;mx(d,c);e=new V0b(f,c,b);rx(d,e);return d}return null}
+function CM(a,b,c){var d,e;if(!a.f){a.f=new jD(a.o.i);e=new gs(dsd(Vw(a.o).n));d=dsd(a.o.i.A.r);Or(e,d);fD(a.f,e);eD(a.f,d)}dD(a.f,c);!!b&&hD(a.f,b);iD(a.f)}
+function mU(a,b){var c,d,e,f;c=new es;f=0;for(d=0;d=0||a.b-a.d>=0)){U9b(a,b.b.a,b.b.b,b.b.a+b.c,b.b.b+b.a);return}if(b.c<0||b.a<0){return}S9b(a,b.b.a,b.b.b,b.b.a+b.c,b.b.b+b.a)}
+function zac(a,b,c,d,e,f,g){var h,j,l,m,n,o,q,r;j=c-a;l=d-b;o=g-e;q=0-f;h=j*q-l*o;if(h==0){return null}m=e-a;n=f-b;r=(m*q-n*o)/h;return new qad(a+r*j,b+r*l)}
+function rrc(a){var b,c,d;b=false;d=a.b.a.length;for(c=0;cbKb[b]*(Os(),Ls)&&a.b<=bKb[b+1]*Ls){a.b=bKb[b]*Ls;Xub(a,new $Jb(mnd(fKb(a))));return}}}}
+function f0b(a,b){var c;c=ty(a,b.Re());c=c|$x(a,b.Pe());c=c|Zx(a,b.Oe());c=c|Yx(a,b.Le());c=c|_x(a,b.Qe());c=c|ay(a,b.Se());c=c|i0b(a,b.Me(),b.Ne());return c}
+function Y6b(a){var b,c,d;if(!a.a||a.a.a.length==0){return Xrd(),Xrd(),Wrd}d=new std;for(c=a.b;c<4;++c){b=Yr(a.a,c);b.sd()||$6b(a,b)||Lr(d,b)}_6b(a);return d}
+function iqd(a,b,c,d){var e;if(c>d){return 1}else if(c=0&&a[e]===b[e];e--);return e<0?0:S8c(K8c(a[e],SLd),K8c(b[e],SLd))?-1:1}}
+function hvd(a,b,c,d,e,f,g){var h,j;if(b.Bp()&&(j=a.a.Wg(c,d),j<0||!e&&j==0)){return false}if(b.Cp()&&(h=a.a.Wg(c,f),h>0||!g&&h==0)){return false}return true}
+function Dm(a,b,c){if(a.c){if(!(Os(),Ns)&&Jm(b,c,Tf(a.b)-Gs,Sf(a.b)-Gs)){Fm(a)}else{Vd(a.a,Fyd)!=null&&Wd(a.a,Fyd,(qmd(),pmd));Km(a.b,true);rd(a.a)}a.c=false}}
+function jJ(a,b){var c,d;d=iJ(a,Eqd(b.Vl(),a.a));c=d+a.d;if(a.a.a&&(ca.b)){if(a.a.a&&(da.b)){return ''+(a.d>0?a.c:a.b)}return null}return ''+c}
+function ifb(a){var b,c,d,e;b=heb(a.j,'connect');c=heb(a.j,azd);if(b==null||c==null){return null}return d=mfb(a),e=new Z1(d),Y1(e,(O$b(),K$b),b),Y1(e,N$b,c),e}
+function bjb(){bjb=p9c;Zib=new cjb(HDd,0,mFd);Yib=new cjb('DATA',1,gFd);$ib=new cjb('MULTICENTER',2,lFd);_ib=new cjb(zDd,3,'SruSgroup');ajb=new cjb(GDd,4,kFd)}
+function Jlb(a){var b,c,d,e;e=new es;for(c=0,d=a.length;c0&&b<=126){return b>0&&b<=126?h1b[b-1].c:null}return null}
+function gKb(a){var b;if(fKb(a)!=1){for(b=0;b=bKb[b]*(Os(),Ls)&&a.b>22);e+=d>>22;if(e<0){return false}a.l=c&XKd;a.m=d&XKd;a.h=e&YKd;return true}
+function QD(a,b,c){var d,e,f,g,h;h=new es;d=0;for(f=b.Qb();f.Rc();){e=f.Sc();g=a[d];0==c?Wr(h,new Sac(e.a.a,g.b,g.a)):Wr(h,new Sac(g.a,e.a.b,g.b));++d}return h}
+function k8b(a,b){var c,d,e,f,g,h;h=new is;for(f=b.Qb();f.Rc();){e=f.Sc();g=new is;for(d=e.Qb();d.Rc();){c=d.Sc();Wr(g,Y7b(a.b,c.a))}h.a[h.a.length]=g}return h}
+function wL(a,b){var c,d,e,f,g;g=-1;c=Ndb(a.o.i.C,b);if(!dsd(c.v).a.sd()){f=dyd;for(e=new qsd(dsd(c.v).b.Qb());e.b.Rc();){d=e.b.Sc();d.ac.Wh()+c.Xh())){return}a.d=c;fY(a,d,e,!!a.c.pe());iY(a,b);for(g=c.ph().Qb();g.Rc();){f=g.Sc();vY(b,f,d)}}
+function uAb(a,b){var c,d;c=new Srd(vuc(quc(L5c,1),lyd,583,8,[(qmd(),pmd),omd]));d=new Srd(vuc(quc(g6c,1),eyd,2,6,[UHd,VHd]));AAb(a,new ZAb(b,c,d),'List type')}
+function ve(a,b){var c;c=null;b.fb(Myd)!=null?(c=new Bgd(b.fb(Myd))):b.fb(Eyd)!=null?(c=new Dgd(s9c(b.fb(Eyd)))):b.fb(Dyd)!=null&&(c=new Cgd(b.fb(Dyd)));ue(a,c)}
+function u4(){u4=p9c;r4=new v4('LIST',0,'^\\(\\d+( (\\w+|-?\\d+\\.?\\d*))*\\)');s4=new v4('QUATED',1,'^\\".*\\"');t4=new v4(tyd,2,'^(\\w+|-?\\d+.?\\d*|[<>=]+)')}
+function Ubb(a,b){var c,d;if(b.Gj(yEd,'-')){d=b.Dj(yEd,'-');if(!Hnd(d,'-')){c=new ltd;Hqd(c,(kcc(),Qbc),d);a.qm(c)}}if(b.Fj(xEd)){c=Zbb(b.Cj(xEd));!!c&&a.qm(c)}}
+function gib(a,b){var c;c=a.a;if((kcc(),Pbc)==c){return Hnd('a',b)?'a1':'a0'}if(Ybc==c){return 'u1'}if(Ubc==c){if(Hnd('',b)){return a.b+'256'}}return a.b+(''+b)}
+function _Gb(a){var b,c,d,e,f,g;c=0;b=i4b(a);for(e=(e4b(),vuc(quc(zXc,1),nyd,281,0,[d4b,c4b,b4b])),f=0,g=e.length;f1){return ec()}d=a==0&&b==0&&c==0?0:1-a-c-b;return dc(d)}
+function Bc(a){var b,c;a.e=false;a.f=a.b.Ol();for(c=0;c1){return new Xac(d)}return new Xac(null)}
+function xE(a,b,c){var d,e;for(e=new Frd(a.$m());e.a1){return Kbc(),Jbc}else if(d.a.vd()==1){return c=(new ard(d.a)).a.mp().Qb(),b=(new brd(c)).a.Sc(),b.yp()}return null}
+function Pqc(a,b,c){this.c=new Qqc(this);if(!a){throw I8c(new tnd)}if(!c){throw I8c(new tnd)}if(b<0){throw I8c(new and)}this.a=c;this.b=b;this.d=a;b>0&&Ii(this.c,b)}
+function wrc(a,b){var c,d,e;d=new Htc;e=new Itc(d.r.getFullYear()-KKd,d.r.getMonth(),d.r.getDate());c=vrc(a,b,e);if(c==0||c>19;l=b.h>>19;if(j!=l){return l-j}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f}
+function NC(a){var b;if(a.e){CWb(a,false);b=new WWb((!a.a&&(a.a=new UWb(a)),a.a));NWb((!a.a&&(a.a=new UWb(a)),a.a),new Cy(new Q7b(a)));return new UC(b,a)}return null}
+function GF(a,b,c,d,e,f){var g,h,j;c-=a;d-=b;e-=a;f-=b;g=e*c+f*d;if(g<=0){j=0}else{e=c-e;f=d-f;g=e*c+f*d;g<=0?(j=0):(j=g*g/(c*c+d*d))}h=e*e+f*f-j;h<0&&(h=0);return h}
+function fO(a,b){var c,d;for(d=new qsd(dsd(Vw(a.c).w).b.Qb());d.b.Rc();){c=d.b.Sc();if(msd(dsd(b.r),dsd(c.r))&&msd(dsd(c.r),dsd(b.r))&&a.Ug(c)){return c}}return null}
+function RR(a,b){var c,d,e,f;e=Und(b,'<',-1);nod(a.c,e[0]);a.b=a.c.a.length==0;for(c=1;c ',zCd);return TR(f)}
+function MW(a,b){var c,d,e,f;if(LW(a)==2){d=b.ce(a.Lh());c=KW(a);e=b.ce(c.a[0]);f=b.ce(c.a[1]);return $wnd.Math.abs(d.b-e.b)<1&&$wnd.Math.abs(d.b-f.b)<1}return false}
+function j$(a){var b,c,d;b=new V9b;for(d=a.b.Qb();d.Rc();){c=d.Sc();Q9b(b,cbc(c.xh(),4*a.a.Yd()))}return b.a-b.c>=0||b.b-b.d>=0?new hbc(b.c,b.d,b.a-b.c,b.b-b.d):null}
+function d8(a){var b;if(a!=null){b=Und(a,'\\.',0);return b.length==3&&b[0].length==2&&(b[1].length==1||b[1].length==2)&&(b[2].length==1||b[2].length==2)}return false}
+function k9(a,b){var c,d,e;for(d=0;d0?Pkd(Kld(c.a,0)):null);if(!b){return 'ChemAxon file format v0.0.0, generated by v0.0.0.0'}return leb(b)}
+function Gfb(a,b,c){var d,e,f;if(b){e=Eqd(a.a,b.b);d=Lab(b.a);if(e!=null&&d!=null){f=Pib(a.c,fEd);eld(f,'rectRef',e);eld(f,'pos',d);Lkd(c,f);return true}}return false}
+function KFb(a){var b,c,d;c=new YIb;zHb(a.b,c);WIb(c,(d=DEb(a.i),!d?IFb:d.a));UIb(c,(b=DEb(a.e),!b?HFb:b.a));Dw(c,uFb(a.a));XIb(c,fc(uFb(a.j)).toLowerCase());return c}
+function lPb(){return {toolbars:oJd,templateurl:null,lonepaircalculationenabled:true,copyasmrv:false,autoreaction:false,allowreaction:true,prefernativereaction:false}}
+function qs(a){var b;if(a.a>a.b.length){throw I8c(new Eud)}b=dl(a);a.a=a.a+(a.a')){while(ps(a.c)&&q7(a).length>0);}else{break}}return b}
+function z7(a,b){var c,d,e,f,g;g=Ynd(b,(R5(),J5).a.length);c=(h5(),f=bod(g.substr(0,3)),f.length==0?0:Xmd(f,10));e=g.substr(3);for(d=0;d0&&(d=e)}return d}
+function xxd(a){var b,c,d,e,f;f=Und(a,'\\.',0);e=$wnd;b=0;for(c=f.length-1;bd&&(b.a+=jod(suc(svc,fyd,23,-d,15,1)))}
+function x6(a){switch(a){case 1:return Xcc(),Rcc;case -1:return Xcc(),Vcc;case 4:return Xcc(),Ucc;case 8:return Xcc(),Scc;case 12:return Xcc(),Tcc;default:return null;}}
+function G9(a,b,c,d){var e,f;F9(b,d,T1(c,(O$b(),M$b)));e=qtd(a.c,c);f=e?k8(c.i):Ix(c);J9(b,a.b,(W9(),N9),d,f);D9(a,b,d,c);if(!e){X9(R9,b);b.a+=' 1 ';b.a+=''+d;b.a+=oyd}}
+function mfb(a){var b,c,d,e,f,g;c=a.c;g=heb(a.j,NEd);f=new es;if(g!=null){d=Und(g,' ',0);for(e=0;ea.d&&(d=a.d);while(d>c&&Dnd(b.a,d-1)==48){--d}if(d5){e=d9c(W8c(P8c($wnd.Math.round((b.a-a.f.a)/c))));d=d9c(W8c(P8c($wnd.Math.round((b.b-a.f.b)/c))));a.i=mad(UL,new qad(d,e))}}
+function P0(){P0=p9c;L0=new R0('CUSTOMIZE',0);M0=new R0('ENCODING',1);O0=new R0('VIEWPORT',2);N0=new R0(kDd,3);K0=new R0('ATTACHEDDATA',4);J0=new R0('ATOM_PROPERTIES',5)}
+function l2(){l2=p9c;k2=new m2('PNG',0,'png','PNG',rDd,true,vuc(quc(g6c,1),eyd,2,6,['png']));j2=new m2('JPEG',1,'jpeg','JPEG',sDd,false,vuc(quc(g6c,1),eyd,2,6,['jpeg']))}
+function dcb(a){var b,c,d,e,f,g;g=new ltd;d=new gcb('a');for(c=(f=(new drd(a)).a.mp().Qb(),new erd(f));c.a.Rc();){b=(e=c.a.Sc(),e.Ok());Iqd(g,(++d.a,d.b+d.a),b)}return g}
+function L9b(a,b){var c,d,e,f,g;c=new es;for(g=(e=(new ard(b.a)).a.mp().Qb(),new brd(e));g.a.Rc();){f=(d=g.a.Sc(),d.yp());Wr(c,$wnd.Math.atan2(f.b-a.b,f.a-a.a))}return c}
+function vjb(){vjb=p9c;qjb=new yjb(ACd,0,SAd,(Cjb(),Ajb));rjb=new xjb('DY',1,'dy');sjb=new yjb(BCd,2,TAd,Ajb);tjb=new xjb('SCALE',3,'scale');ujb=new xjb('SUBL',4,'subL')}
+function mkb(a,b){var c;return lkb(a,'Import'+(Ds().length==0||'O'.length==0?'':' ('+Ds()+'+'+'O'+')'),'Open',b,(nk(),c=Und('SHORTCUT+O',iAd,0),qk(c[c.length-1],rk(c))))}
+function ylb(a,b,c,d){var e,f,g,h;e=a.G.C;h=eLb(a.r,b,c,d);f=h.Qi(e);g=new $lb(f);return bf(),cf(new $wnd.Promise(q9c(kf.prototype.rb,kf,[new umb(a,g),new Qvd,new ff])))}
+function Kxb(a,b){var c,d;ulc(Rf(a.d));for(d=new Frd(b);d.a');Ugd(a.d,vlc(Rf(a.d)).length-1)}
+function Qx(a){var b,c,d,e;for(c=new Frd(a.r);c.ae){e=f;g=h;d=false}else f==e&&(d=true)}if(d){return null}return g}
+function o2b(a){var b,c;if(dsd(a.a).a.sd()){return false}for(c=new qsd(dsd(a.a).b.Qb());c.b.Rc();){b=c.b.Sc();if(b.c.Bm()==a&&b.b<0&&!b2b(b.b)){return true}}return false}
+function N8c(a,b){var c;if(mvc(a)&&mvc(b)){c=a/b;if(aLdf;e--){Bwd(d.a,e)}j=jhd(a,g,d);h=new Pid(j);Eid(c,h)}
+function Mkd(b,c,d){var e,f,g,h;try{g=c.a;d?(h=d.a):(h=null);f=Jld(b.a,g,h);return Pkd(f)}catch(a){a=H8c(a);if(kvc(a,109)){e=a;throw I8c(new Vkd(e,b))}else throw I8c(a)}}
+function Eh(a){var b,c,d;if(!a.i){return}c=Zr(a.f,a.i,0);b=c;while(true){c=c-1;c<0&&(c=a.f.a.length-1);if(c==b){d=Yr(a.f,b);break}else{d=Yr(a.f,c);if(d.c){break}}}Ch(a,d)}
+function di(a){var b;b=a.a.fc();if(b<0){throw I8c(new bmd('EOF'))}if(b==128){throw I8c(new bmd('Indefinite form'))}if((b&128)!=0){throw I8c(new bmd('Long form'))}return b}
+function Ru(a,b){!!a.t&&Xld(a.t);!!a.q&&dsd(b.n).b.vd()>0&&dsd(b.k).b.vd()==1&&Q0b(dsd(b.k).a.zd(0))&&!dsd(b.t).a.sd()&&xWb(b,B$b(new F$b,dsd(b.t)).a);a.C=b;a.t=Wu(a.u,b)}
+function NO(a,b){var c,d,e;PO(a);VG(a,b.c);if(gy(Lu(a.o.i).b)){c=KG(a);d=dT(a.o.i.j,c);e=d.di(b.c);if(0==e){a.c=true;a.a=c;a.b=b.c}else if(1==e){a.c=false;a.a=c;a.b=b.c}}}
+function AX(a,b){var c,d,e,f;e=new V9b;for(d=new Frd(b);d.a=52){d=(h5(),c=bod(b.substr(49,3)),c.length==0?0:Xmd(c,10));if(d>0){a.rm((kcc(),Qbc),(Cnd(),''+(d==15?0:d)));return true}}return false}
+function S7(a){var b,c;O7.call(this);this.b=new es;this.a=new es;Xr(this.b,cWb(a));Xr(this.j,this.cj(a));for(c=new qsd(dsd(a.s).b.Qb());c.b.Rc();){b=c.b.Sc();this.bj(b.a)}}
+function ncb(a){var b,c,d;for(c=new Frd(a.a);c.a36){return -1}if(a>=48&&a<48+$wnd.Math.min(b,10)){return a-48}if(a>=97&&a=65&&a=15){c=a.b.Nl();f=a.b.Xl().c;if(c==-1&&f==0){d=zc(a.k,a.b,17,(ld(),gd));e=zc(a.k,a.b,9,gd);if(d==6||e==6){return true}}}return false}
+function xv(a,b){var c,d,e,f,g,h;e=yv(a,b);c=E2b(a,e);d=E2b(b,e);f=lad(c.Lh(),e.Lh());g=lad(d.Lh(),e.Lh());h=zv(g,-$wnd.Math.atan2(f.b,f.a));return $wnd.Math.atan2(h.b,h.a)}
+function qx(a,b){var c;c=a.Je(b.Me(),b.Ne());c=c|a.ff(b.Re());c=c|a.hf(b.Oe());c=c|a.gf(b.Le());c=c|a.jf(b.Qe());c=c|a.lf(b.Te());c=c|a.kf(b.Se());c=c|zx(a,b.Pe());return c}
+function PF(a,b){var c;c=new _td;if(sac(a.a[0],b.a[0])jBd?1:-1)}
+function e8(a){var b,c,d;c=p9b;if(d8(c)){a.a+=' MJ';b=Und(c,'\\.',0);d=b[0]+(b[1].length==1?'0':'')+b[1]+(b[2].length==1?'0':'')+b[2];a.a+=d;a.a+=' '}}
+function Szb(a){if(!a.a||!a.c){a.c=new Kgd;hg(a.c,nId);a.a=new Wl(new Cgd((dub(),Osb)),new Cgd((Ctb(),lsb)));Of(a.a,qId);og(a.a,new Wzb(a),(voc(),voc(),uoc));Uzb(a);Tzb(a)}}
+function wAb(a,b){var c;zAb(a,(c=new zCb(new Srd((WAb(),vuc(quc(kQc,1),nyd,289,0,[VAb,TAb,UAb]))),new Srd(vuc(quc(g6c,1),eyd,2,6,[sId,vId,wId]))),new BCb(b,c,new aBb)),xId)}
+function yAb(a,b){var c;zAb(a,(c=new zCb(new Srd((WAb(),vuc(quc(kQc,1),nyd,289,0,[VAb,TAb,UAb]))),new Srd(vuc(quc(g6c,1),eyd,2,6,[sId,vId,wId]))),new BCb(b,c,new aBb)),zId)}
+function NSb(a,b){var c,d,e;e=new es;for(d=b.Qb();d.Rc();){c=d.Sc();Wr(e,$Sb(c[tDd]||c.name||c.tooltip,ls(nSb(c,(Kr(),Jr>=2))),OSb(a,c['structure']||c.structure)))}return e}
+function lXb(a){var b,c,d;d=new es;Xr(d,a.c.Me());for(c=new Zqd(a.d.Me());c.b1){return ec()}e=1-a-c-d;if(e==1){return ec()}return dc(e)}
+function _v(a){var b,c,d,e;for(c=new qsd(dsd(a.C.n).b.Qb());c.b.Rc();){b=c.b.Sc();b.um((aUb(),VTb))}for(e=new qsd(dsd(a.C.p).b.Qb());e.b.Rc();){d=e.b.Sc();Fl(d,(tUb(),rUb))}}
+function UI(a){var b,c,d,e;d=a?6:5;e=suc(T1c,tBd,5,d,0,1);b=kBd/d;for(c=0;c0',wId]))),new BCb(b,c,new aBb)),yId)}
+function OIb(a){MIb();var b,c,d,e;if(a!=null){for(c=vuc(quc(TSc,1),nyd,304,0,[LIb,KIb]),d=0,e=c.length;db){Xfd(a,a.b-1)}}}
+function Jtd(){function b(){try{return (new Map).entries().next().done}catch(a){return false}}
+if(typeof Map===byd&&Map.prototype.entries&&b()){return Map}else{return Ktd()}}
+function GY(a,b,c,d,e){HX.call(this,a.c,d,e);this.i=b1b(a.b.Ji());this.n=a.b.Lh();this.p=a.b.Wm();this.c=b;this.j=c;this.a=a.a;this.t=a.b.Xm();this.o=a.b.Ym();this.r=a.b.Zm()}
+function sZ(a,b){var c,d,e;c=sac(a.e.pi(a.d),a.e.qi(a.d));d=new qad(0,0);e=new qad(c,0);HHb(b,new tT((iU(),hU),1.5,true,'rgba(0,255,255, 0.5)'),vuc(quc(T1c,1),tBd,5,0,[d,e]))}
+function F_(a,b,c){var d,e,f,g;if(!b||b.sd()){return a_(),_$}e=new es;for(g=b.Qb();g.Rc();){f=g.Sc();d=G_(a,f,c);e.a[e.a.length]=d}return new HS(ds(e,suc(nFc,nBd,106,0,0,1)))}
+function G7(a,b){var c,d,e;if(0<=b&&b=d){e=Xnd(a.b,c,d);return Hnd(e,' ')?0:Xmd(bod(e),10)}return 0}throw I8c(new lmd((Cnd(),''+b)))}
+function zab(a,b){var c,d,e;e=new yod;e.a+=' ';e.a+=xDd;e.a+='=(';nod(e,(Cnd(),''+b.vd()));for(d=b.Qb();d.Rc();){c=d.Sc();e.a+=' ';nod(e,''+(Q7(a.a,c)+1))}e.a+=')';return e.a}
+function mzb(a){var b,c;c=Sgd(a.a,Rf(a.a).selectedIndex);b=Hnd((p$b(),o$b).b,c)||Hnd(m$b.b,c);rl(a.b,b);CEb(a.b).length==0&&b?HEb(a.b,'1'):CEb(a.b).length!=0&&!b&&HEb(a.b,'')}
+function oDb(a,b){var c,d,e,f;f=new is;for(d=new Frd(a.c);d.a=0){e=Dnd(b.a,c);if(e==57){gmd(b,c--,48)}else{gmd(b,c,e+1&hyd);d=false}}if(d){b.a=b.a.substr(0,0)+'1'+b.a.substr(0);++a.b;++a.d}}
+function Hl(a,b){var c,d;if(!(abd(),a.U)[mAd]!=b){c=(!a.d&&Cl(a,a.o),a.d.a^4);c&=-3;d=yl(a,c);Cl(a,d);a.U[mAd]=!b;if(b){Bl(a,(!a.d&&Cl(a,a.o),a.d))}else{vl(a);agc();Wdc(a.U)}}}
+function eI(a){a.n=0;a.i=null;a.f=false;rud(a.a);rud(a.b);a.j=0;a.e=false;a.d=false;a.c=false;ex(Mu(a.o.i),new h_(MBd,vuc(quc(UGc,1),nyd,34,0,[(A_(),l_),n_,x_])));a.o.i.w.Hf()}
+function fN(a,b){var c,d,e,f;if(!uN(a.f.b)){return}e=new xT(true,'#00ee00');f=new vT(false,2,false,uBd);c=b.ce(uN(a.f.b));d=a.d;GHb(b.Kf(),c,d,false,e);GHb(b.Kf(),c,d,false,f)}
+function zS(a){var b;if(a){b=new yod;nod(b,a.a);b.a+=' ';nod(b,ucc(a.b));if(a.d.a!=null){b.a+=' ';nod(b,bod(Snd(Oud(a.d,''),'\\s+',' ')));nod(b,CS(a.c))}return b.a}return null}
+function iX(a,b,c){var d,e;if(!a){return b}if(!b){return a}d=a.f+a.e+c-b.f;e=(new qad(a.f+a.e/2,a.i+a.d/2)).b-(new qad(b.f+b.e/2,b.i+b.d/2)).b;b.f+=d;b.i+=e;return new hX(a,b)}
+function wbb(a,b){this.b=a;if(b.a.length!=2){throw I8c(new bnd('only 2 atoms are expected'))}this.a=tbb(b.a[0],b.a[1]);if(!this.a){throw I8c(new bnd('source cannot be null'))}}
+function Kyb(a,b,c,d){var e,f,g;e=new ped;jjc((abd(),e.U),b);f=d.c.rows.length;Ffd(d,f,0,e);Ffd(d,f,1,Ryb((g=new gs(c.Mk()),Wr(g,c.i),ds(g,suc(D3c,_Hd,21,0,0,1)))));ptd(a.d,c)}
+function _Bb(a){this.a=a;this.b=edc(ds(a,suc(tWc,zBd,49,0,0,1)));this.d=fdc(hdc(ds(a,suc(tWc,zBd,49,0,0,1))));this.c=a.a.length==1?idc(a.a[0]):ddc(ds(a,suc(tWc,zBd,49,0,0,1)))}
+function cJb(a,b,c){var d,e,f;f=false;if(c){for(e=new iud(new gud(a.a));e.b!=e.c.a.b;){d=hud(e);pvc(d.d)===pvc(b)&&(f=true);f&&(d.e.b=true,undefined)}}else{Xtd(a.a,b).b=false}}
+function kPb(a){var b;b={};ZOb(b,a.o);$Ob(b,a.p);cPb(b,a.s);bPb(b,a.r);gPb(b,fc(a.n));iPb(b,a.u);hPb(b,a.t);aPb(b,a.e);ePb(b,fc(a.j));_Ob(b,a.q);fPb(b,a.k);dPb(b,a.i);return b}
+function Tic(a,b){var c,d;b=ojc(b);d=a.className||'';c=mjc(d,b);if(c==-1){d.length>0?(a.className=d+' '+b||'',undefined):(a.className=b||'',undefined);return true}return false}
+function ixd(a,b,c,d){while(a.n!=0&&d>0){hxd(a,b[c]);++c;--d}while(d>a.k.length){lxd(a,b,c);c+=a.k.length;d-=a.k.length;a.j=J8c(a.j,a.k.length)}while(d>0){hxd(a,b[c]);++c;--d}}
+function H_(a,b,c){var d,e,f;if(kvc(b,100)){d=eT(c.j,b);return v$(d,a.a)}else if(kvc(b,168)){e=b;d=eT(c.j,e);return f=new es,h$(d,f),Wr(f,L$(e$(d.o),null)),IS(f)}return a_(),_$}
+function rnb(a,b,c,d){bcb(a,NGd,qnb('Expand and Clean',(qtb(),_rb),d,new qqb(b,c.a,true)));bcb(a,OGd,qnb('Ungroup and Clean',(cub(),Nsb),d,c.a?new qqb(b,c.a,false):new Gqb(b)))}
+function oxb(a){var b,c;a.a=new Bm;zm(a.a,'Error');if(a.c!=null){b=new Jed(a.c);kg((abd(),b.U),'mjs-errorpanel',true);Ced(b,rxb(a.b));Cg(a.a,b)}else{Cg(a.a,(c=new red(a.b),c))}}
+function pzb(b){var c,d,e;d=null;e=Sgd(b.a,Rf(b.a).selectedIndex);try{c=k$b(e);!!c&&(d=new i$b(c,ozb(b)))}catch(a){a=H8c(a);if(kvc(a,20)){return null}else throw I8c(a)}return d}
+function CTb(a,b){rTb(a,b);b.lp((kcc(),Nbc))&&jTb(a,b.np(Nbc));b.lp($bc)&&kTb(a,b.np($bc).a);b.lp(acc)&&nTb(a,b.np(acc));b.lp(dcc)&&ATb(a,b.np(dcc));b.lp(ccc)&&BTb(a,b.np(ccc))}
+function igd(a,b,c){var d,e;b=$wnd.Math.max(b,1);e=a.a.childNodes.length;if(eb){for(d=e;d>b;d--){Qic(a.a,a.a.lastChild)}}}
+function Uid(a,b){var c;Rid(a,b);c=$pc(a,mnd(b));if(!!c&&c.a){return false}Wid(a.b,false);if(b==-1){a.b=null;return true}a.b=to(a.a,b+1);Wid(a.b,true);kqc(a,mnd(b));return true}
+function $g(a,b){(abd(),a.U).style[nzd]=ozd;!!a.A&&(a.A.style[nzd]=ozd,undefined);a.Zb();b.ec($ic(a.U,_yd),$ic(a.U,$yd));a.U.style[nzd]=tzd;!!a.A&&(a.A.style[nzd]=tzd,undefined)}
+function VO(a,b){if(!a.a){return 0}if(a.a.Sl()==0&&b.Sl()==0){return WO(a)}if(a.a.Sl()>0&&b.Sl()!=a.a.Sl()){return a.a.Sl()}if(b.Sl()>0&&b.Sl()!=a.a.Sl()){return b.Sl()}return 0}
+function l3(c,d){var e;try{return c.b.Hd(d)}catch(b){b=H8c(b);if(kvc(b,46)){e=b;try{return c.a.Hd(d)}catch(a){a=H8c(a);if(!kvc(a,46))throw I8c(a)}throw I8c(e)}else throw I8c(b)}}
+function n3(c,d){var e;try{return aeb(c.b,d)}catch(b){b=H8c(b);if(kvc(b,46)){e=b;try{return i6(c.a,d)}catch(a){a=H8c(a);if(!kvc(a,46))throw I8c(a)}throw I8c(e)}else throw I8c(b)}}
+function cgb(a){var b,c,d,e,f;e=new es;if(a!=null){f=Und(a,',',0);b=a.charCodeAt(0)==48?1:0;for(d=b;da.a.Dp()){return}c=(d=a.a.Dp(),d>=hAd?'error':d>=900?'warn':d>=800?'info':'log');Ewd(c,a.b)}
+function m9c(){l9c={};!Array.isArray&&(Array.isArray=function(a){return Object.prototype.toString.call(a)===$xd});function b(){return (new Date).getTime()}
+!Date.now&&(Date.now=b)}
+function Nv(a){var b,c,d,e,f;b=false;for(d=(Lz(),vuc(quc(oAc,1),nyd,217,0,[Iz,Jz,Hz,Kz])),e=0,f=d.length;e0){return lgb(a,g.a.substr(1))}return null}
+function NFb(a,b){this.d=new wFb;this.a=new WFb;this.j=new QFb(new Srd((MIb(),vuc(quc(TSc,1),nyd,304,0,[LIb,KIb]))));this.b=new BHb(b);sFb(this.d,new PFb(this));this.c=a;LFb(this)}
+function kKb(a,b){if(Hnd(jJd,b)){return a.d}else if(Hnd(kJd,b)){return a.c}else if(Hnd(yHd,b)){return a.f}else if(Hnd(xHd,b)){return a.a}else if(Hnd(zHd,b)){return a.e}return null}
+function RVb(a,b){var c,d,e,f,g,h,j;j=new std;for(d=(h=(new ard(a.i.a)).a.mp().Qb(),new brd(h));d.a.Rc();){c=(f=d.a.Sc(),f.yp());e=Eqd(b.b,c);!!e&&(g=j.a.pp(e,j),g==null)}return j}
+function b5b(a,b){var c,d,e;e=a.c.a;for(d=new qsd(b.b.Qb());d.b.Rc();){c=d.b.Sc();if(Ex(c,E5b(e))&&c!=e){c.Ze(dsd(e.r),dsd(e.s));c.Ye((Xrd(),Xrd(),Urd));c.$e(dsd(e.u));c.Ee(a.c)}}}
+function hpd(a,b){this.e=a;if(O8c(K8c(b,-4294967296),0)){this.d=1;this.a=vuc(quc(uvc,1),jyd,23,15,[d9c(b)])}else{this.d=2;this.a=vuc(quc(uvc,1),jyd,23,15,[d9c(b),d9c($8c(b,32))])}}
+function Cpd(a){var b,c,d;if(L8c(a,0)>=0){c=N8c(a,_Kd);d=U8c(a,_Kd)}else{b=_8c(a,1);c=N8c(b,500000000);d=U8c(b,500000000);d=J8c(Z8c(d,1),K8c(a,1))}return Y8c(Z8c(d,32),K8c(c,SLd))}
+function F1(){C1();var a,b,c,d,e;if(A1==null){e=new es;for(b=J1(),c=0,d=b.length;c\'"]');K9c=new RegExp('&','g');L9c=new RegExp('>','g');N9c=new RegExp('<','g');P9c=new RegExp("'",'g');O9c=new RegExp('"','g')}
+function god(a,b){Cnd();var c,d,e,f;f=new bvd(a);for(d=0,e=b.length;d0&&dsd(a.k).b.vd()==1&&Q0b(dsd(a.k).a.zd(0))){c=J7b(new N7b(false),a);B$b(b,tD(Uac(Zac(c.d))));B$b(b,tD(Uac(Zac(c.c))))}return b.a}
+function CV(a,b,c,d,e,f){var g,h,j;h=new _W((dX(),bX));if(d){g=vV(a,b,c,e,f);VW(h,g)}UW(h,IV(e,xV(a,new jX((HU(),CU),true),(j=qV(c),j.a.length==0?null:'('+fod(',',j)+')'))));return h}
+function Gdb(){this.n=new is;this.p=new is;this.w=new is;this.v=new is;this.r=new is;this.o=new is;this.q=new is;this.k=new is;this.t=new is;this.u=new is;this.s=new is;this.A=new is}
+function orb(a){var b,c,d,e,f;f=Vw(a.b);for(c=new qsd(dsd(f.n).b.Qb());c.b.Rc();){b=c.b.Sc();b.um((aUb(),VTb))}for(e=new qsd(dsd(f.p).b.Qb());e.b.Rc();){d=e.b.Sc();Fl(d,(tUb(),rUb))}}
+function kdc(a){var b,c,d,e;d=new ltd;for(c=new qsd(dsd(a.a.p).b.Qb());c.b.Rc();){b=c.b.Sc();jdc(d,new Tac(b.c.Lh(),b.c.Ki()),new Tac(b.d.Lh(),b.d.Ki()))}e=mdc(d);return e!=0?LBd/e:1}
+function zCb(a,b){var c,d,e;this.b=new Wgd;this.a=new es;Xr(this.a,a);Wr(this.a,null);c=0;for(e=b.Qb();e.Rc();){d=e.Sc();Lgd(this.b,d);++c}Lgd(this.b,'');hg(this.b,$Hd);Ugd(this.b,c)}
+function iIb(a){var b,c,d,e;for(d=(e=(new ard(a.a.a)).a.mp().Qb(),new brd(e));d.a.Rc();){c=(b=d.a.Sc(),b.yp());(!c.C||dsd(c.C.n).b.vd()==0)&&IJb(c.a.j,null);Ov(c,(Lz(),Iz));c.w.Hf()}}
+function a2b(a){X1b();var b,c,d,e;if(a==null){return U1b}for(c=vuc(quc(qXc,1),nyd,137,0,[U1b,T1b,R1b,S1b,W1b,V1b]),d=0,e=c.length;d>5;a.d-=d;if(!xpd(a.a,a.d,a.a,d,b&31)&&e<0){for(c=0;cc;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<4||c==50?(d=4-e):(d=e%2);return dc(d)}
+function ub(a,b,c,d){var e,f;owd(nb,(Uvd(),Svd))&&lwd(nb,'SetValenceOfNWithDoubleBondO method called.');f=d.b?5:3;if(a==2){e=b+c==4||b+c==f?0:f-b-c;return dc(e)}else{return dc(f-b-c)}}
+function HE(a){var b,c,d;b=MWb();wVb(b,PVb(a.a));JE(a.a,b);d=new Frd(cWb(a.a));c=new Frd(cWb(b));while(d.af&&Vnd(l,_nd(c[h],xud))){e=h;f=j}}e>=0&&(d[0]=b+f);return e}
+function Uud(){Uud=p9c;var a,b,c,d;Rud=suc(tvc,fyd,23,25,15,1);Sud=suc(tvc,fyd,23,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){Sud[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){Rud[a]=c;c*=0.5}}
+function Px(a){var b,c,d,e;for(c=new Frd(a.r);c.a1&&!dsd(a.u).a.sd()){d=new utd(dsd(a.r));for(c=new qsd(dsd(a.u).b.Qb());c.b.Rc();){b=c.b.Sc();rtd(d,b.b)}if(d.a.vd()>1){return d}}return null}
+function by(a){kx(this);Xr(this.r,a.Me());Xr(this.s,a.Ne());Xr(this.A,a.Re());Xr(this.t,a.Oe());Xr(this.q,a.Le());Xr(this.w,a.Qe());Xr(this.C,a.Te());Xr(this.B,a.Se());Xr(this.u,a.Pe())}
+function ZL(a,b){var c,d;for(d=new qsd(dsd(a.o.i.C.n).b.Qb());d.b.Rc();){c=d.b.Sc();Ytd((!b.b&&(b.b=new _td),b.b),c,new Tac(c.Lh(),c.Ki()))}En(b,uac((!b.b&&(b.b=new _td),new drd(b.b))))}
+function nW(a,b){var c,d,e;if(!a.b||!Wtd(a.a,b)){return Xrd(),Xrd(),Urd}e=new es;for(d=new Frd(a.b);d.a0&&Hld(a.a)){d=kld(new lld(uld(a.a)),b);if(d){e=Dld(d.a);if(e!=null&&bod(e).length>0){Nkd(d,e+' '+c);chb(Pkd(Fld(a.a)),b,c)}}}}
+function rub(a){if(!('console' in window)){var b=function(){};window.console={log:b,info:b,warn:b,error:b,assert:b,trace:b,time:b,timeEnd:b}}console.log('[marvin UncaughtException]:'+a)}
+function PBb(a){var b,c,d,e;if(!a){return null}b=new yod;for(d=a.Qb();d.Rc();){c=d.Sc();e=jzb(c);b.a+=',';nod(b,(i1b(),e>0&&e<=126?h1b[e-1].c:null))}return b.a.length>0?b.a.substr(1):''}
+function gFb(a){var b,c,d,e,f;if(a!=null){f=Und(bod((Cnd(),a==null?iyd:s9c(a))),',',0);b=new yod;for(d=0,e=f.length;d=0&&Hnd(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return zrc(a,c,d)}if(b>=0&&Hnd(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return zrc(a,c,d)}return zrc(a,c,d)}
+function Cd(a,b){var c,d,e,f;f=new Ce(a);e=new Ed(b);(Sfd(),abd(),a.U).tabIndex=-1;Be(f,b);d=(c=new Fd(f),c);return new Yld(vuc(quc(w5c,1),Iyd,293,0,[b.cb(d),og(a,e,(voc(),voc(),uoc))]))}
+function Pe(b){var c,d,e;for(d=new Frd(b);d.a=rac(e.a,e.b,0,f.a,f.b,0)?d:e}
+function lbc(a,b){abc();var c,d,e,f;c=$wnd.Math.min(a.b.a,b.b.a);e=$wnd.Math.min(a.b.b,b.b.b);d=$wnd.Math.max(a.b.a+a.c,b.b.a+b.c);f=$wnd.Math.max(a.b.b+a.a,b.b.b+b.a);return jbc(c,e,d,f)}
+function ovd(a,b,c,d){var e,f;f=b;e=f.d==null||a.a.Wg(c.d,f.d)>0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.Wg(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null}
+function Dp(a){var b,c;c=a.c.a.length;a.b=new $fd(c,3);Of(a.b,(Up(),'mjs-obf-F'));for(b=0;b'+Yic(Wdd(a.a.o))+Uyd);Xdd(xl(a.a),Tyd+b+';">'+Yic(Wdd(xl(a.a)))+Uyd)}else{Rnd(Yic(Wdd(a.a.o)),c,b);Rnd(Yic(Wdd(xl(a.a))),c,b)}}}
+function tE(a,b){var c,d,e,f,g;this.c=new ltd;this.a=a;this.b=b;for(d=(O$b(),vuc(quc(VWc,1),nyd,311,0,[M$b,L$b,N$b,K$b])),e=0,f=d.length;ea.c.a?(c=a.c.a):(c=b.c.a);b.c.b>a.c.b?(d=a.c.b):(d=b.c.b);a.b=new ibc(new qad(c,d),$wnd.Math.abs(b.c.a-a.c.a),$wnd.Math.abs(b.c.b-a.c.b));kI(a,a.b);a.o.i.w.Hf()}
+function Aab(a,b){var c,d,e;e=new yod;if(!b.sd()){e.a+=' ';e.a+='XBONDS';e.a+='=(';nod(e,(Cnd(),''+b.vd()));for(d=b.Qb();d.Rc();){c=d.Sc();e.a+=' ';nod(e,''+(Y7(a.b,c)+1))}e.a+=')'}return e.a}
+function Uzb(b){var c,d;if(!b.d&&!!b.f){Ul(b.a,(qmd(),false));d=Eqd(b.f,b.b);c=null;if(d!=null){try{c=mnd(Xmd(d,10))}catch(a){a=H8c(a);if(kvc(a,65)){c=null}else throw I8c(a)}}!!c&&IEb(b.c,c)}}
+function uEb(a,b,c){var d,e,f,g,h;g=new UEb;f=b!=0?(Cnd(),'R'+(''+b)):'R';TEb(g,Rf(new red(f)));h=Rf(new kjd);d=(abd(),tkc($doc));TEb(g,h);TEb(g,d);Lic(a.f,g.a);e=new PEb(a,b,c,h,d);Wr(a.c,e)}
+function ZVb(a,b,c){var d,e,f,g;if(hs(a.n,b)!=-1&&hs(a.n,c)!=-1){for(e=new qsd(dsd(a.p).b.Qb());e.b.Rc();){d=e.b.Sc();f=d.c;g=d.d;if((T(b,f)||T(c,f))&&(T(b,g)||T(c,g))){return d}}}return null}
+function w2b(a,b){uTb.call(this);this.i=(aUb(),VTb);this.a=new es;i1b();if(!(a>0&&a<=126)){throw I8c(new bnd('There is no element in the periodic table with this index:'+a))}this.b=a;this.e=b}
+function _5b(a){var b,c,d,e,f;c=Y5b(a);if(!c.sd()){f=a.b.a.length;for(d=0;d=gyd){b=55296+(a-gyd>>10&1023)&hyd;c=56320+(a-gyd&1023)&hyd;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&hyd)}}
+function Ei(a,b){var c,d;if(!a){return null}d=null;(Os(),Ns)&&!!a&&(d=Fi(a,b));!!a&&(c=$wnd.navigator.platform,!(c.indexOf('iPad')!=-1||c.indexOf(Ozd)!=-1))&&(d=Wi(d,Di(a,new Qi(b))));return d}
+function gC(a,b,c){var d,e,f,g,h,j;f=new By;for(e=c.Qb();e.Rc();){d=e.Sc();g=Ey(d);for(j=new Frd(cVb(Bdb(a.e,g)));j.a1&&bO(Dnd(a,a.length-1))?ivc(Dnd(a,a.length-1))+Xnd(a,0,a.length-1):a;switch(b){case '+':return 1;case '-':return -1;case '':return 0;default:return Xmd(b,10);}}
+function nU(a,b,c){var d,e,f,g,h;if(a.b.length!=0){g=Und(a.b,oyd,0);d=mU(a,g);h=lU(d).c;f=new o0((pR(),nR),(NT(),ET));for(e=0;e0){return '0:N'+e.a}return null}
+function UBb(a,b,c,d){var e,f;e=WBb(a,d);if(e.d.c+e.e.b!=0){if((Kbc(),Jbc)==c||Ibc==c||a.b==c&&!Cqd(e,(kcc(),jcc))){return new rB(b,a.a,e)}else{f=bCb(c,e);return new QA(b,f,a.a,e)}}return null}
+function KPb(a,b,c,d){var e,f;e=new Df;if(Ikb(a.b)!=null){a.a.pl(Ikb(a.b)).ol((f={'structure':b,'parameters':c},d&&(f.inputFormat=d),JSON.stringify(f)),new OPb(e));return new pf(e)}return null}
+function xrc(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=a.charCodeAt(d);while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=a.charCodeAt(d)}d>b[0]?(b[0]=d):(e=-1);return e}
+function Bbd(a,b){var c,d,e,f,g;if(!!wbd&&!!a&&pqc(a,wbd)){c=xbd.a;d=xbd.b;e=xbd.c;f=xbd.d;ybd(xbd);Vo(xbd,b);oqc(a,xbd);g=!(xbd.a&&!xbd.b);xbd.a=c;xbd.b=d;xbd.c=e;xbd.d=f;return g}return true}
+function dV(a,b,c,d,e,f){this.i=b;this.a=a;this.e=c.ce(a.Lh());this.b=tV(c,d,f,a,eV(this.e,Osd(b.b,b.a.a.j).Fh().Bh(a.Hl()),c.Yd()));this.j=f.u;this.d=f.r;this.f=f.t;this.n=c.Yd();this.c=e.pe()}
+function $7(a,b,c){var d;d=Eqd(a.a,b);if(d==null){d=suc(g6c,eyd,2,2,6,1);d[0]=V7(a.b,c.c);d[1]=V7(a.b,c.d);Hqd(a.a,b,d)}else{Hnd('0',d[0])&&(d[0]=V7(a.b,c.c));Hnd('0',d[1])&&(d[1]=V7(a.b,c.d))}}
+function Bub(a){var b,c,d,e,f,g,h,j;for(c=E3b(),d=0,e=c.length;d0&&nX(this,d,false)}
+function uZ(a,b,c,d,e){var f,g;g=2.8*((s6b(),q6b)==a.d.w.a||o6b==a.d.w.a?0.6:m6b==a.d.w.a?1.5:1);f=wZ(e,g);HHb(b,f,vuc(quc(T1c,1),tBd,5,0,[c,d]));HHb(b,vZ(a,f,c,d),vuc(quc(T1c,1),tBd,5,0,[c,d]))}
+function o4(a){var b,c,d;if(a.a.a.length>0&&x9c(m4,a.a.a)){d=a.a.a.indexOf('=');if(d!=-1){b=hmd(a.a,d);c=d+1}else{b=a.a.a;c=a.a.a.length}wod(a.a,0,c);return new C4(bod(b),bod(p4(a)))}return null}
+function J9(a,b,c,d,e){var f,g,h,j,l;l=0;j=e.vd();while(j>0){g=$wnd.Math.min(j,15);j=j-g;X9(c,a);a.a+=''+d;nod(a,W8(g));for(h=0;h0&&dsd(e.k).b.vd()==1&&Q0b(dsd(e.k).a.zd(0))){if(!dsd(d.n).a.sd()&&!dsd(d.k).a.sd()){c=uD(d);zVb(d,c)}}return d}
+function E3b(){B3b();return vuc(quc(uXc,1),MId,57,0,[c3b,d3b,f3b,e3b,A3b,U2b,V2b,i3b,j3b,a3b,b3b,$2b,_2b,W2b,X2b,s3b,t3b,Y2b,Z2b,m3b,n3b,k3b,l3b,g3b,h3b,q3b,r3b,o3b,p3b,w3b,x3b,u3b,v3b,y3b,z3b])}
+function n5b(a){var b,c,d,e,f,g;f=new gs(a.c);e=new gs(a.c);Xrd();bs(e,a.a);d=new es;for(c=new Frd(e);c.a0)){return Xrd(),Xrd(),Wrd}d=_J(a);for(c=a.a.Oe().Qb();c.Rc();){b=c.Sc();T(b.c.Bm(),a.a)&&rtd(d,mnd((JTb(),HTb)==b.e.a?b.b:b.b<0?b.b:b.b/2|0))}return d}
+function iQ(a,b,c){dH.call(this,a);this.d=new uP(a.i,c);this.e=new aQ(b);this.a=new JP(this.o,this.e,this.d);this.b=new PP(this.o,this.e,this.d);this.c=new BP(this.o,this.e,this.d);bH(this,this.c)}
+function Kzb(a){var b,c,d,e,f;f=Sgd(a.b,Rf(a.b).selectedIndex);for(c=(X1b(),vuc(quc(qXc,1),nyd,137,0,[U1b,T1b,R1b,S1b,W1b,V1b])),d=0,e=c.length;d>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<>>e|c[g+d+1]<>>e;++g}return f}
+function rC(a){var b,c,d,e,f,g;for(g=(e=(new ard(a.j)).a.mp().Qb(),new brd(e));g.a.Rc();){f=(b=g.a.Sc(),b.yp());tWb(a.e,f)}for(d=new qsd(dsd(a.e.v).b.Qb());d.b.Rc();){c=d.b.Sc();ty(c,new ard(a.j))}}
+function r5(a){var b,c;if(a.e){if(Hnd('MRV_IMPLICIT_H',a.e.b)){c=(!a.d&&(a.d=new b5),a.d).a;b=new RegExp('^IMPL_H[1-9]$');if(c!=null&&b.test(c)){return mnd(Xmd(Tnd(c,'IMPL_H',''),10))}}}return null}
+function V8(a){var b,c,d;if(a.length==3){return a}b=new yod;b.a+=''+a;d=$wnd.Math.max(0,3-a.length);c=suc(svc,fyd,23,d,15,1);Jrd(c,c.length,32);b.a+=(Cnd(),kod(c,0,c.length));return b.a.substr(0,3)}
+function z9(a,b,c){var d,e,f,g;if(c.a.length!=0){d=c.a.length;f=new Frd(c);while(d>0){a.a+=b;g=$wnd.Math.min(8,d);nod(a,W8(g));for(e=0;eh){j=h;g=c}}return g}
+function Uyb(a,b,c){this.d=new jud;this.j=new ltd;if(!a){throw I8c(new bnd('Type must not be null, and properties must not be null or empty if type is VARIOUS'))}this.n=a;this.i=c;this.c=b;Nyb(this)}
+function iBb(b,c,d){var e,f,g;e=oBb(d,mnd(0));g=new tCb(c,e);if(ZBb(b.a,c)){try{g=new uCb(c,GCb(e,VBb(b.a,c)),e)}catch(a){a=H8c(a);if(!kvc(a,268))throw I8c(a)}}f=oCb(g)||$Bb(b.a,g.d);g.b=!f;return g}
+function tcc(){tcc=p9c;scc=new is;rcc=wcc(null,false);wcc('=',true);wcc('<>',true);wcc('<',true);wcc('<=',true);wcc('>',true);wcc('>=',true);wcc('between',true);wcc('like',true);wcc('contains',true)}
+function oqc(b,c){var d,e;!c.e||c.Xd();e=c.f;Fl(c,b.b);try{vqc(b.a,c,null)}catch(a){a=H8c(a);if(kvc(a,274)){d=a;throw I8c(new Lqc(d.a))}else throw I8c(a)}finally{e==null?(c.e=true,c.f=null):(c.f=e)}}
+function Dsc(){Bsc();return vuc(quc(i1c,1),nyd,70,0,[esc,msc,Trc,Urc,Vrc,Wrc,nsc,osc,psc,qsc,Xrc,Yrc,Zrc,$rc,_rc,csc,dsc,asc,bsc,fsc,gsc,hsc,isc,jsc,ksc,lsc,rsc,ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc])}
+function y$(a,b){var c,d;c=a.e.a.length%2==0?'rgba(70,130,180, 0.3)':'rgba(255,0,0, 0.3)';d=u$(a,b,c);!!a.c&&rS(a.c,b);if(a.d){d&&b.sf(e$(a.o),a.n,a.j,new vT(true,3,true,c));b.sf(e$(a.o),a.n,a.j,r$)}}
+function jcb(a,b,c){var d;if(a.b.a.length==0||c>=Yr(a.b,a.b.a.length-1).a){Wr(a.a,b);Wr(a.b,mnd(c))}else{d=a.b.a.length-1;while(d>=0){if(c=0){return a.d.a.c.b}c=(Xrd(),Xrd(),Urd);d=(null,Urd);if(0==b){c=yL(a);d=rL(a,zL(a))}else if(1==b){c=zL(a);d=sL(a,yL(a))}d.Fd(null);e=vL(c,d);return e?e.a:xL(d)}
+function c4(a){var b,c,d;c=b4(a);d=vuc(quc(uvc,1),jyd,23,15,[0,1,4,8,12,-1]);for(b=0;b0)&&IEb(a.d,b)}}
+function dUb(a){aUb();var b,c,d,e;if(a==null){return VTb}for(c=vuc(quc(pWc,1),nyd,201,0,[ZTb,_Tb,XTb,YTb,WTb,UTb,$Tb,VTb]),d=0,e=c.length;df)&&(d=f);if(d==f){Fjc(h,g,null)}else{e=h.options[d];Fjc(h,g,e)}}
+function $b(a,b){var c,d,e,f,g;g=a.k;c=a.b;for(d=0;d111){return true}for(e=0;eOH/2&&b=0;d--){if(a[d]!==e[d]){c=a[d]!=0&&Q8c(K8c(a[d],SLd),K8c(e[d],SLd));break}}}g=new gpd(1,f+1,a);c&&dqd(g,b);Qod(g);return g}
+function Atd(a,b,c){var d,e,f,g;g=b==null?0:a.b.tp(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=xtd(a,b,e);if(f){return f.zp(c)}}e[e.length]=new grd(b,c);++a.c;return null}
+function fb(a,b,c){var d,e,f;owd(db,(Uvd(),Svd))&&lwd(db,'Checking valence for the Boron.');d=(b>0?(f=b):b<0?(f=$wnd.Math.abs(b)-2):(f=0),f);if(d>3){return ec()}if(c>3){return ec()}e=3-a-d-c;return dc(e)}
+function pe(a,b){me(a,b.a?b.a.c.fb(Lyd):null);fg(a,b.a?b.a.c.fb(Cyd):null);le(a,b.a?b.a.c.fb(Fyd):null);ie(a,b.a?b.a.c.fb(Byd):null);oe(a,b.a?b.a.c.fb(Nyd):null,null);ne(a,b.a?b.a.c.fb(Oyd):null);ke(a,b)}
+function uh(a,b,c){var d,e;if(c<0||c>a.b.a.length){throw I8c(new kmd)}Vr(a.b,c,b);e=0;for(d=0;d>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return Auc(d&XKd,e&XKd,f&YKd)}
+function u6(a){if(a.length==0){throw I8c(new bnd(MDd+a))}return i1b(),m1b(a,false)||o1b(a,false)||Hnd(a,'R#')||Hnd(a,'L')||Hnd(a,'*')||p1b(a)!=-1?jUb(a):(eTb(),Y_b(),Gqd(X_b,a)?new E1b($_b(a)):new G1b(a))}
+function Bfb(a,b){var c,d,e,f,g;if(a.Wo()){g=a.To();for(c=0;c=0||c.b-c.d>=0)&&Lv(a,rIb(a.a,new hbc(c.c,c.d,c.a-c.c,c.b-c.d)))}
+function sC(a,b){var c,d,e,f;f=cVb(Bdb(a.e,x$b(new F$b,b).a));e=new es;for(d=new Frd(f);d.a=2147483648&&(c-=4294967296);return c}
+function XF(a,b){var c;c=false;if(a.a){QF(a);a.a=null;a.c=null;c=true}if(Os(),Ns){bG(a);return c}if(!c&&!!a.b.c){Vz(a.b.c,bbc(a.b.c.b,b));a.n.w.Hf()}if(!c&&!!a.b.d){Vz(a.b.d,bbc(a.b.d.b,b));a.n.w.Hf()}return c}
+function jV(a,b){var c,d,e;iV(this);e=new es;for(d=new Frd(a.e);d.a1&&(b=T1(a,(O$b(),K$b)),b==null||(e4b(),d4b)==i4b(b))){return x9c(new RegExp('^1-([2-9]|[1-9]\\d{1,2})$'),T1(a,(O$b(),N$b)))}return false}
+function oi(b){var c,d,e;try{e=hvc(ci(new ei(new gi(b))));d=suc(j6c,lyd,50,e.length,0,1);for(c=0;c>1);Ord(b,a,j,l,-e,f);Ord(b,a,l,h,-e,f);if(f.Wg(a[l-1],a[l])<=0){while(c0&&(b=b.substring(c+'base64,'.length));e.nl(b)}}(f,g);h.readAsDataURL(f)}}
+function Ked(a){var b;this.a=a;Gg.call(this,(abd(),rkc($doc)));b=this.U;b['href']='javascript:void(0);';b.style[pLd]='block';this.Q==-1?obd(this.U,1|(this.U.__eventBits||0)):(this.Q|=1);this.U.className='header'}
+function wxd(a,b){var c=[];for(i=0;i=a&&Object.prototype.toString.apply(b[e])===$xd){c.push(b[e])}else{var f=[];for(i=e;id.b.a&&c.b>d.b.b&&c.a=0&&b.a<255){return ''+b}}return uId}
+function yPb(a){var b,c,d,e,f,g;g=[];for(f=new kt((new jt(a.categories)).a);f.b0&&a.Mb(b);a.Db();a.Kb();Xpc(a,true)}
+function qM(a){jM();$G.call(this,a);this.j=new vT(false,2,false,_Bd);this.i=new vT(false,1,false,_Bd);this.c=new xT(true,_Bd);this.k=new vT(false,4,false,aCd);this.b=new vT(false,4,false,'firebrick');this.d=new fM}
+function UP(a){var b,c,d,e,f,g;g=new es;c=a.d.Me();for(f=0;f0&&e<=2){d=new y2b((WZb(),UXb));pTb(d,H9b(b.Lh(),false,K9b(b),LBd));Wr(g,vuc(quc(tWc,1),zBd,49,0,[b,d]))}}return g}
+function sV(a,b,c){var d,e,f,g,h;f=new V9b;Q9b(f,b);for(h=new Frd(a);h.a0&&Ii(a.b,$wnd.Math.max(5,16-(Ohc()-c.a)))}
+function _9c(b){var c;if(Hnd('',s9c(b))){return null}try{return mnd(qvc(rnd($sc((Qsc(),!Psc&&(Psc=new itc(irc())),Qsc(),Psc),s9c(b)))))}catch(a){a=H8c(a);if(kvc(a,65)){c=a;throw I8c(new vqd(c.i))}else throw I8c(a)}}
+function Fjd(a,b,c){var d,e,f;if(c<0||c>a.c){throw I8c(new kmd)}if(a.c==a.a.length){f=suc(R4c,_Hd,29,a.a.length*2,0,1);for(e=0;ec;--d){a.a[d]=a.a[d-1]}a.a[c]=b}
+function kC(a,b){var c,d,e,f,g,h;e=b.a.a;g=new es;for(d=(h=(new ard(e.a)).a.mp().Qb(),new brd(h));d.a.Rc();){c=(f=d.a.Sc(),f.yp());Cqd(a.a,c)?qtd(b.a.a,Eqd(a.a,c))||Wr(g,Eqd(a.a,c)):(g.a[g.a.length]=c,true)}return g}
+function lC(a,b){var c,d,e,f,g;a.k=new es;f=new _td;for(d=new Vqd((new Sqd(b)).a);d.b;){c=Uqd(d);g=c.Ok();e=c.yp();if(kvc(g,167)){if(PB(g)2&&b<13||b<1){throw I8c(new bnd('Element with atom num:'+a+' is not in a Main Group Of Elements (This is a metal or pseudo element)'))}return b-10}
+function M5b(a,b){var c,d,e,f,g,h;g=new Tac((f=E5b(a),f?f.Lh():new pad),(e=E5b(a),e?e.Ki():0));h=new Tac(lad(b.a,g.a),b.b-g.b);for(d=new qsd(dsd(a.r).b.Qb());d.b.Rc();){c=d.b.Sc();c.lm(Qac(new Tac(c.Lh(),c.Ki()),h))}}
+function J9b(a,b,c){var d,e,f,g,h;g=new es;d=B9b(c);for(f=new Frd(N9b(b,d.a,d.b));f.a=0;f--){h=Pod(g);Kpd(h,c);g=$od(g,h);if((e.a[f>>5]&1<<(f&31))!=0){g=$od(g,d);Kpd(g,c)}}Kpd(g,c);return g}
+function OO(a,b){var c,d,e,f;d=lad(gw(a.o.i,b),gw(a.o.i,a.b));e=jw(a.o.i,kH(a.a.c.gn(),a.c?d:new qad(0,0)));f=jw(a.o.i,kH(a.a.a.gn(),a.c?new qad(0,0):d));c=$wnd.Math.abs(hw(a.o.i,LBd));return rac(e.a,e.b,0,f.a,f.b,0)>c}
+function NU(a){var b,c,d,e,f;if(a==null){return null}f=Und(a.toLowerCase(),' ',0);for(d=0,e=f.length;da.d*2&&(a.d=(a.c+1)/2|0);if((RTb(),MTb)==b){c=a.d++}else if(NTb==b){a.c%2==0&&(a.c=a.d*2);c=a.c++}return c}
+function pXb(a,b,c){var d;this.e=c?(RTb(),MTb):(RTb(),NTb);this.c=a;this.d=b;sac(this.c.Bm().Lh(),jXb(this))<3.08&&(this.f=0.75,vTb(this));if(a.Dm()){this.b=-100}else if(!c){d=a.Bm().Xl();(X1b(),U1b)==d||(this.b=-d.c)}}
+function xwd(a,b,c,d,e,f){var g,h,j,l,m;if(pvc(a)===pvc(c)){a=a.slice(b,b+e);b=0}j=c;for(h=b,l=b+e;hMarvin<\/font> JS<\/font><\/b>'));qwb=Qrc((Bsc(),$rc));pwb=Qrc(Wrc);rwb=wrc((Orc(),Rrc(CHd,Msc((Lsc(),Lsc(),Ksc)))),'2099-12-31')}
+function bac(a,b){var c,d,e,f;f=new _td;e=new Frd(b);for(d=0;e.ac[1]+d[0]?(eQ(),cQ):(eQ(),dQ)}
+function D0(a,b,c){var d,e,f;d=a.f.Jf(c,b.e,b.c);a.e=kH(a.e,new qad(d.c,0));f=a.e;if((wR(),tR)==b.b.b){e=E0(a,b.e);f=kH(f,new qad(0,-e))}else if(vR==b.b.b){e=E0(a,b.e);f=kH(f,new qad(0,e))}R9b(a.a,a.e);R9b(a.a,f);a.d=b.e}
+function oIb(a,b,c){Kad(a.p,b);Jad(a.p,c);Kad(_Ib(a.i,(Lz(),Iz)),b);Jad(_Ib(a.i,Iz),c);Kad(_Ib(a.i,Jz),b);Jad(_Ib(a.i,Jz),c);Kad(_Ib(a.i,Hz),b);Jad(_Ib(a.i,Hz),c);Kad(_Ib(a.i,Kz),b);Jad(_Ib(a.i,Kz),c);nJb(a.k,b,c);iIb(a)}
+function a5b(a){var b,c,d,e;for(d=new qsd(dsd(a.a.w).b.Qb());d.b.Rc();){b=d.b.Sc();$4b(a,b)}for(e=new qsd(dsd(a.a.v).b.Qb());e.b.Rc();){b=e.b.Sc();$4b(a,b)}for(c=new qsd(dsd(a.a.r).b.Qb());c.b.Rc();){b=c.b.Sc();$4b(a,b)}}
+function f5b(a){var b,c,d,e;for(d=new qsd(dsd(a.a.w).b.Qb());d.b.Rc();){b=d.b.Sc();d5b(a,b)}for(e=new qsd(dsd(a.a.v).b.Qb());e.b.Rc();){b=e.b.Sc();d5b(a,b)}for(c=new qsd(dsd(a.a.r).b.Qb());c.b.Rc();){b=c.b.Sc();d5b(a,b)}}
+function Shc(b){var c=Thc();var d=b.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(a){return Qhc(a,c)});return '"'+d+'"'}
+function Tdd(a){var b;ul.call(this,(abd(),Jkc($doc)));this.b=a;this.c=Ckc($doc);Lic(this.U,this.b);Lic(this.U,this.c);b=Rkc($doc);this.b[WDd]=b;hlc(this.c,b);this.a=new Aed(this.c);!!this.b&&(this.b.tabIndex=0,undefined)}
+function TV(a,b,c,d,e){var f,g,h,j,l;h=e&&b.Rl()>0&&b.Ue();if(b.Xl().c+(h?b.Rl():0)==0){return lW(),kW}f=cbc(c,2*a.b.Yd());j=1.2*a.b.Yd();l=new pW(f,aac((g=new cac(b,d,h),!_9b&&(_9b=new y9b),g)),j);return !l.b?(lW(),kW):l}
+function HW(a,b,c,d){var e,f;e=a.a.ce(b.Lh()).a;f=a.a.ce(KW(b).a[0]).a;if(e>=f+0.5){return Iac(),Gac}else if(f>=e+0.5){return Iac(),Eac}return JW(CW,c)||d>1&&JW(EW,c)?(Iac(),Eac):JW(DW,c)||JW(EW,c)?(Iac(),Gac):(Iac(),Fac)}
+function Hvb(a,b){var c,d,e,f,g;for(d=new Frd(a.a);d.ag.a){e=-1;f=a.e.qi(a.d);g=a.e.pi(a.d)}c=g.a-f.a;d=g.b-f.b;b.gl();Ygc(b.el(),f.a,f.b);IHb(b,new pad,-$wnd.Math.atan2(d,c));a.ki(b,e,a.d.bi());a.mi(b);b.qe()}
+function Vgb(a,b){var c,d,e,f,g;e=new gs(a.a);for(d=new Frd(b);d.a-1){_r(e,c);f=dsd(c.a.r);if(f.b.vd()>0){Vr(e,g,f.a.zd(0));Xr(e,usd(f,1,f.b.vd()))}}}return new Agb(e)}
+function alb(){var a,b,c,d,e;for(b=(P0(),vuc(quc(pHc,1),nyd,199,0,[L0,M0,O0,N0,K0,J0])),c=0,d=b.length;ctr>td{padding:5px;}'));return true}return false}
+function cb(a){$();var b,c,d,e;owd(Z,(Uvd(),Rvd))&&kwd(Z,'Checking valence for the 1st group.');b=a.a;if(Y(b)==1){d=a.d;e=a.b.Xl().c;if(e>1){return ec()}c=a.b.Nl();return b==1?bb(d,c,e):ab(d,c,e)}else{throw I8c(new Yc(kyd+b))}}
+function XA(){var a;XA=p9c;WA=(a=new bB,$A(a,vuc(quc(RXc,1),nyd,112,0,[(s6b(),m6b),h6b,q6b])),$A(a,vuc(quc(RXc,1),nyd,112,0,[e6b,o6b])),$A(a,vuc(quc(RXc,1),nyd,112,0,[n6b,k6b,f6b])),$A(a,vuc(quc(RXc,1),nyd,112,0,[i6b,j6b])),a)}
+function EC(a,b){var c,d,e,f,g,h;f=a.o.C;for(d=new Frd(LC(a));d.a>2)+(d==0?0:1);a.a=suc(uvc,jyd,23,a.d,15,1);e=0;while(c>d){a.a[e++]=b[--c]&255|(b[--c]&255)<<8|(b[--c]&255)<<16|(b[--c]&255)<<24}for(f=0;f=3){var b=parseInt(a[1])*1000000+parseInt(a[2])*hAd+parseInt(a.length>=5&&!isNaN(a[4])?a[4]:0);return b}return -1}
+function tc(b,c){var d;if(c.d<0){owd(qc,(Uvd(),Rvd))&&kwd(qc,'Electrons in bonds < 0');return ec()}if(c.c[4]>0){return Zb(c,b.a)}else{try{return uc(b,c)}catch(a){a=H8c(a);if(kvc(a,239)){d=a;throw I8c(new Xc(d))}else throw I8c(a)}}}
+function LP(a){var b,c,d,e,f,g;c=NP(a);if(a.p){b=a.b.c.Lh();f=lad(a.b.d.Lh(),b);e=(kBd+(kBd-$wnd.Math.atan2(f.b,f.a))%kBd)%kBd;g=Bac(lad(gw(a.o.i,a.p),b),new pad,e);d=c;g.b>0?(d=(eQ(),cQ)):g.b<0&&(d=(eQ(),dQ));d!=c&&(c=d)}return c}
+function fY(a,b,c,d){var e,f,g,h,j,l,m;j=a.e.pi(a.d);l=a.e.qi(a.d);f=b;m=c;if(j.a>l.a){f=c;m=b}g=new qad(0,0);h=new qad(rac(j.a,j.b,0,l.a,l.b,0),0);a.f=eY(a,g,h,f,m,(iU(),hU),d);a.i=(e=Hnd(UBd,f)&&Hnd(f,m)?f:uBd,e);a.ji(g,h,f,m,d)}
+function B7(a,b){var c,d,e,f,g,h,j;j=Ynd(b,(R5(),L5).a.length);c=(h5(),g=bod(j.substr(0,3)),g.length==0?0:Xmd(g,10));h=j.substr(3);for(d=0;d0){if(Gqd(a.c,UEd)){b=Xtd(a,UEd);this.a=b.length>0?Und(Xtd(a,UEd),' ',0):suc(g6c,eyd,2,0,6,1)}else{throw I8c(new bnd('atomID is missing'))}}else{this.a=suc(g6c,eyd,2,0,6,1)}}
+function sib(a){var b;b=new ltd;if((s6b(),p6b)==a){Otd(b.e,KEd,'MDL');Otd(b.e,MEd,'4')}else if(i6b==a){Otd(b.e,KEd,'MDL');Otd(b.e,MEd,'3')}else if(j6b==a){Otd(b.e,KEd,'ChemAxon');Otd(b.e,MEd,'CTUnspec')}return b.d.c+b.e.b==0?null:b}
+function xlb(a,b,c){var d,e,f;d=!c?{}:mPb(us(c));e=new hJb;return bf(),cf($wnd.Promise.resolve(gJb(e,b.d,a.G.C,(f=new ZIb(d),WIb(f,d.width||200),UIb(f,d.height||200),Dw(f,WOb(d)),Uo(f,d.svgScaling||1),XIb(f,d.zoomMode||'fit'),f))))}
+function kgc(){kgc=p9c;new Nec('aria-busy');new Tdc('aria-checked');new Nec('aria-disabled');new Tdc('aria-expanded');new Tdc('aria-grabbed');new Nec(izd);new Tdc('aria-invalid');jgc=new Tdc('aria-pressed');new Tdc('aria-selected')}
+function tqc(a,b,c,d){var e;if(!b){throw I8c(new und('Cannot add a handler with a null type'))}if(d==null){throw I8c(new und('Cannot add a null handler'))}a.b>0?sqc(a,new _ld(a,b,c,d)):(e=xqc(a,b,c),e.od(d));return new $ld(a,b,c,d)}
+function ktc(a){var b,c;c=-a.a;b=vuc(quc(svc,1),fyd,23,15,[43,48,48,58,48,48]);if(c<0){b[0]=45;c=-c}b[1]=b[1]+((c/60|0)/10|0)&hyd;b[2]=b[2]+(c/60|0)%10&hyd;b[4]=b[4]+(c%60/10|0)&hyd;b[5]=b[5]+c%10&hyd;return Cnd(),kod(b,0,b.length)}
+function ntc(a){var b;b=vuc(quc(svc,1),fyd,23,15,[71,77,84,45,48,48,58,48,48]);if(a<=0){b[3]=43;a=-a}b[4]=b[4]+((a/60|0)/10|0)&hyd;b[5]=b[5]+(a/60|0)%10&hyd;b[7]=b[7]+(a%60/10|0)&hyd;b[8]=b[8]+a%10&hyd;return Cnd(),kod(b,0,b.length)}
+function zad(){if(x9c(new RegExp('(iPad|iPhone|iPod)'),$wnd.navigator.userAgent)&&Aad()){return $wnd.Math.min($wnd.Math.max(0,((oid(),$doc.body).offsetWidth||0)|0),5000)}return $wnd.Math.min($wnd.Math.max(0,parent.innerWidth),5000)}
+function _fd(a,b,c){var d=$doc.createElement('td');d.innerHTML=dJd;var e=$doc.createElement('tr');for(var f=0;f>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-4096;b=d>>16&4;c+=b;a<<=b;d=a-16384;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}}
+function $i(a,b){var c;if(a.p){throw I8c(new end('Composite.initWidget() may only be called once.'))}if(!b){throw I8c(new und('widget cannot be null'))}kvc(b,174)&&b;vg(b);c=(abd(),b.U);_f(a,c);(Phd(),ibd(c))&&Qhd(c,a);a.p=b;yg(b,a)}
+function Sp(){Sp=p9c;Np=new F9c(QAd,(Z9c(),new U9c('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAANElEQVR42mNgQAMBAQH/YZgBnyQhzEAyIMnUUcV0U/yTgOIfcMWBgYGteDT89Pf3bwGpAwAW+9lyZeWNbwAAAABJRU5ErkJggg==')),11,14)}
+function Sr(a,b){var c,d,e,f,g;if(b===a){return true}if(!kvc(b,160)){return false}g=b;if(a.vd()!=g.vd()){return false}f=g.Qb();for(d=a.Qb();d.Rc();){c=d.Sc();e=f.Sc();if(!(pvc(c)===pvc(e)||c!=null&&T(c,e))){return false}}return true}
+function nv(a){var b,c,d,e,f;d=new std;Lr(d,a.c.Ml());Lr(d,a.d.Ml());d.a.qp(a)!=null;for(c=(f=(new ard(d.a)).a.mp().Qb(),new brd(f));c.a.Rc();){b=(e=c.a.Sc(),e.yp());if(b.o==(s6b(),h6b)||b.o==i6b||b.o==j6b){return true}}return false}
+function QZ(a,b){var c,d,e;c=$wnd.Math.max(a.b.Yd()*10,1);if(FF(HZ(a.c),IZ(a.c),b)<=c/2){return true}for(e=KZ(a.c).Qb();e.Rc();){d=e.Sc();if(bbc(d.xh(),b)){return true}}if(bbc(cbc(new ibc(LZ(a.c),0,0),c),b)){return true}return false}
+function ogb(a,b){var c,d,e;d=Pib(a.c,'MEFlow');eld(d,'arcAngle',$md(360*b.f));(RTb(),NTb)==b.e&&eld(d,ZDd,b.c.Bm().Lh().a-iXb(b).Lh().a>0?'4':'2');c=pgb(a,b);if(c){Lkd(d,c);e=ngb(a,b);if(e){Lkd(d,e);rgb(a,d,b);return d}}return null}
+function ohd(a,b){var c,d,e,f,g,h;b=_nd(b,(Aud(),xud));if(a.d!=null){for(c=0;c>>0,f.toString(16)),g='\\u'+Ynd('0000',e.length)+e,h=String.fromCharCode(32),b.replace(new RegExp(g,'g'),h))}}return b}
+function sid(a){oid();var b,c;c=Fqd(mid,a);b=null;if(a!=null){if(!(b=Wkc($doc,a))){return null}}if(c){if(!b||(abd(),c.U==b)){return c}}if(Mqd(mid)==0){$bd(new uid);Lsc()}!b?(c=new vid):(c=new pid(b));Iqd(mid,a,c);ptd(nid,c);return c}
+function Btd(a,b){var c,d,e,f,g;f=b==null?0:a.b.tp(b);d=(c=a.a.get(f),c==null?new Array:c);for(g=0;g0?b.c:b.b)-b.d}if(kvc(c,215)){return c.a}else if(ovc(c)){try{d=Xmd(c,10);return d}catch(a){a=H8c(a);if(kvc(a,65)){return (b.d>0?b.c:b.b)-b.d}else throw I8c(a)}}return (b.d>0?b.c:b.b)-b.d}
+function XQ(a){var b,c,d,e;if(Hnd('\u25CF',a)||Hnd('\u207A',a)){return true}for(c=$nd(a),d=0,e=c.length;d'+b+Uyd);return b}
+function Vp(){var a='Webkit Moz O ms Khtml'.split(' ');var b=$doc.createElement(Nzd);if(b.style.animationName!==undefined){return true}for(var c=0;c0&&dsd(c.k).b.vd()==1&&Q0b(dsd(c.k).a.zd(0))){if(b.Le().sd()&&!b.Qe().sd()){return Svb(b)}}else if(dsd(c.k).a.sd()&&b.Le().vd()==1&&!b.Qe().sd()){return Svb(b)}}return b}
+function WEb(a){this.j=new XEb(this);this.k=new YEb(this);this.n=a;this.o=(aFb(),ZEb);$Eb(this.o);this.a=Rkc($doc);this.b=Rkc($doc);this.d=Rkc($doc);this.f=Rkc($doc);this.c=new tad(this.b);this.e=new tad(this.d);this.i=new tad(this.f)}
+function sbc(a,b){var c,d,e,f,g;f=new es;e=new gs(b);d=a.a.length;if(d>1){g=ds(a,suc(P5c,{3:1,2398:1,4:1},725,0,7,1));Nrd(g,0,g.length,null);for(c=0;c0&&b<=126){return b>0&&b<=126?h1b[b-1].c:null}return null}
+function xBb(a){var b,c;c=CEb(a.b.a);if(c==null||c.length==0||bod(c).length==0){return null}c=bod(c);if(m1b(c,true)){return 'D'}else if(o1b(c,true)){return 'T'}b=Vyb(c);i1b();if(b>0&&b<=126){return b>0&&b<=126?h1b[b-1].c:null}return null}
+function yb(a,b,c){var d;owd(vb,(Uvd(),Svd))&&lwd(vb,'Checking valence for the Oxygen.');d=2-a-c;if(b==0||b==6){return dc(d)}if(b<-2||b>6){return ec()}if(b<0){return dc(b+d)}if(b==5){return dc(d-1)}if(b==2){return dc(d+2)}return dc(d+b%2)}
+function ng(a,b){var c=(a.className||'').split(/\s+/);if(!c){return}var d=c[0];var e=d.length;c[0]=b;for(var f=1,g=c.length;f