<classpathentry kind="lib" path="lib/miglayout-4.0-swing.jar"/>
<classpathentry kind="lib" path="lib/jswingreader-0.3.jar" sourcepath="/jswingreader"/>
<classpathentry kind="lib" path="lib/commons-codec-1.3.jar"/>
- <classpathentry kind="lib" path="lib/Jmol-12.2.4.jar" sourcepath="/Users/jimp/Documents/e6-workspace-new/Jmol/src"/>
- <classpathentry kind="lib" path="appletlib/JmolApplet-12.2.4.jar"/>
<classpathentry kind="lib" path="lib/jdas-1.0.4.jar"/>
<classpathentry kind="lib" path="lib/spring-core-3.0.5.RELEASE.jar"/>
<classpathentry kind="lib" path="lib/spring-web-3.0.5.RELEASE.jar"/>
<classpathentry kind="lib" path="lib/jsoup-1.8.1.jar"/>
<classpathentry kind="lib" path="lib/log4j-to-slf4j-2.0-rc2.jar"/>
<classpathentry kind="lib" path="lib/slf4j-log4j12-1.7.7.jar"/>
- <classpathentry kind="lib" path="lib/VARNAv3-91.jar"/>
+ <classpathentry kind="lib" path="lib/VARNAv3-93.jar"/>
<classpathentry kind="lib" path="lib/jfreesvg-2.1.jar"/>
<classpathentry kind="lib" path="lib/quaqua-filechooser-only-8.0.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/plugin"/>
<classpathentry kind="lib" path="lib/jetty-http-9.2.10.v20150310.jar"/>
<classpathentry kind="lib" path="lib/jetty-io-9.2.10.v20150310.jar"/>
<classpathentry kind="lib" path="lib/java-json.jar"/>
+ <classpathentry kind="lib" path="lib/Jmol-14.2.14_2015.06.11.jar"/>
<classpathentry kind="con" path="org.testng.TESTNG_CONTAINER"/>
<classpathentry kind="output" path="classes"/>
</classpath>
--- /dev/null
+# Summary of TestNG for this branch
+"Functional" Tests: 242 ran, 121 failed.
Licencing information for each library is given below:
JGoogleAnalytics_0.3.jar APL 2.0 License - http://code.google.com/p/jgoogleanalytics/
-Jmol-12.1.13.jar GPL/LGPLv2 http://sourceforge.net/projects/jmol/files/
-VARNAv3-91.jar GPL licenced software by Kévin Darty, Alain Denise and Yann Ponty. http://varna.lri.fr
+Jmol-14.2.14_2015.06.11.jar GPL/LGPLv2 http://sourceforge.net/projects/jmol/files/
+VARNAv3-93.jar GPL licenced software by K�vin Darty, Alain Denise and Yann Ponty. http://varna.lri.fr
activation.jar
apache-mime4j-0.6.jar
axis.jar
<property name="packageDir" value="dist" />
<property name="outputJar" value="jalview.jar" />
<!-- Jalview Applet JMol Jar Dependency -->
- <property name="jmolJar" value="JmolApplet-12.2.4.jar" />
- <property name="varnaJar" value="VARNAv3-91.jar" />
+ <property name="jmolJar" value="JmolApplet-14.2.14_2015.06.11.jar" />
+ <property name="varnaJar" value="VARNAv3-93.jar" />
<property name="jsoup" value="jsoup-1.8.1.jar" />
<property name="jsonSimple" value="json_simple-1.1.jar" />
<property name="javaJson" value="java-json.jar" />
<mkdir dir="${outputDir}" />
<javac source="${javac.source}" target="${javac.target}" srcdir="${sourceDir}" destdir="${outputDir}" debug="${javac.debug}"
classpathref="jalviewlite.deps" includes="jalview/appletgui/**"
- excludes="ext/**,MCview/**,org/**,vamsas/**,jalview/ext/paradise/**" />
+ excludes="ext/**,gui/**,jbgui/**,MCview/**,org/**,vamsas/**,jalview/ext/rbvi/**,jalview/ext/paradise/**" />
</target>
<target name="packageApplet" depends="compileApplet, buildPropertiesFile">
--- /dev/null
+.idea
+docson.iml
+/nbproject
--- /dev/null
+Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright {yyyy} {name of copyright owner}
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
--- /dev/null
+<p align='right'>A <a href="http://www.swisspush.org">swisspush</a> project <a href="http://www.swisspush.org" border=0><img align="top" src='https://1.gravatar.com/avatar/cf7292487846085732baf808def5685a?s=32'></a></p>
+Docson
+======
+
+Documentation for your JSON types.
+
+Give Docson a JSON schema and it will generate a [beautiful documentation](http://lbovet.github.io/docson/index.html#/docson/examples/example.json).
+
+## Features
+* [JSON schema](http://json-schema.org/) v4 keywords.
+* Runs entirely in the browser.
+* Render schema descriptions with markdown
+
+## Installation
+
+* Place the Docson distribution on the web server serving the schemas (to avoid cross-origin issues).
+
+## Usage
+
+* Open [index.html](http://lbovet.github.io/docson/index.html) and enter the schema path in the form field.
+* Or give the schema path directly as hash parameter: [index.html#/docson/examples/example.json](http://lbovet.github.io/docson/index.html#/docson/examples/example.json)
+
+Note that you can refer to a sub-schema by adding a json-pointer path as 'dollar-parameter': [index.html#/docson/examples/example.json$items](http://lbovet.github.io/docson/index.html#/docson/examples/example.json$items)
+
+## Typson
+
+You can directly reference your JSON types defined as TypeScript interfaces. If the path ends with `.ts`, Docson will use [Typson](https://github.com/lbovet/typson) to convert the Type Scripts to schema in order to generate the documentation.
+
+For example, [index.html#/typson/example/invoice/line.ts$InvoiceLine](http://lbovet.github.io/docson/index.html#/typson/example/invoice/line.ts$InvoiceLine) is the documentation of [line.ts](https://github.com/lbovet/typson/blob/master/example/invoice/line.ts).
+
+You need to install [Typson](https://github.com/lbovet/typson) by yourself on your server. It must be in a directory named `typson` located at the same level as the `docson` directory.
+
+## Widget
+
+To include a Docson schema documentations on any page (wiki, ...) without worrying about messing up with javascript libraries and cross-origin issues:
+
+* Install Docson somewhere as described above.
+* Place the following `script` tags in the including page, nothing else is needed:
+
+```
+<script src="http://somewhere/path-to-docson/widget.js" data-schema="/path-to-schema">
+</script>
+```
+
+See the [widget example](http://jsfiddle.net/3kXu2/3/) on jsfiddle.
+
+## Swagger
+
+You can adapt [Swagger UI](https://github.com/wordnik/swagger-ui) to display Docson-generated model documentation instead of the builtin signatures.
+
+See how it looks like in the [Swagger Docson example](http://lbovet.github.io/swagger-ui/dist/index.html)
+
+In Swagger UI's `index.html`, include the [Swagger integration script after other script tags](https://github.com/lbovet/swagger-ui/blob/3f37722b03db6c48cc2a8460df26dda5f4d6f8e4/src/main/html/index.html#L19):
+```
+ <script src='/path-to-docson/docson-swagger.js' type='text/javascript'></script>
+```
+
+Also, you will need a patched version of [Swagger Client](https://github.com/lbovet/swagger-js/blob/models-exposed/lib/swagger.js) so that the raw json-schema model is visible from Docson. Either replace the `swagger.js` file in your Swagger UI disctribution or take it directly from github by replacing
+
+```
+ <script src='/lib/swagger.js' type='text/javascript'></script>
+```
+
+with
+
+```
+ <script src='https://raw2.github.com/lbovet/swagger-js/models-exposed/lib/swagger.js' type='text/javascript'></script>
+```
+
+For a better layout of parameter models, you may [want to change the width of some elements](https://github.com/lbovet/swagger-ui/blob/3f37722b03db6c48cc2a8460df26dda5f4d6f8e4/src/main/html/index.html#L20-L27):
+
+```
+ <style>
+ .swagger-ui-wrap {
+ max-width: 1200px;
+ }
+ .swagger-ui-wrap .body-textarea {
+ width: 200px;
+ }
+ </style>
+```
+
+## Integration
+
+You can also integrate Docson in your application and use its javascript API:
+
+```javascript
+docson.doc(element, schema, ref)
+```
+
+* `element` is the element which will host the documentation. Either a DOM element (id or object) or jQuery element.
+* `schema` is the URI or path to the schema or a string containing the schema source itself.
+* `ref` is an optional json-pointer path to a sub-schema.
+
+Examples:
+* [Simple integration example](http://lbovet.github.io/docson/examples/example.html)
+* [See it in action](http://lbovet.github.io/typson-demo/) with its buddy [typson](https://github.com/lbovet/typson).
+
+## Limitations
+
+* Mixing unrelated keywords can lead to unexpected results.
+
+Not implemented:
+* Non-primitive values in enums and default values
+* dependencies, additionalItems, patternProperties
+
+## Development
+
+* [All tests](http://lbovet.github.io/docson/tests/test.html)
+
+Please pull-request your failing schemas in the `tests/` folder and open an issue describing the expected result.
+
+[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/lbovet/docson/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
+
--- /dev/null
+{"$schema":"http://json-schema.org/draft-04/schema#","id":"http://jsonschema.net","type":"object","properties":{"seqs":{"id":"http://jsonschema.net/seqs","type":"array","items":{"id":"http://jsonschema.net/seqs/0","type":"object","properties":{"name":{"id":"http://jsonschema.net/seqs/0/name","type":"string","description":"Sequence name"},"start":{"id":"http://jsonschema.net/seqs/0/start","type":"integer","description":"Start residue position"},"svid":{"id":"http://jsonschema.net/seqs/0/svid","type":"string","description":"Serial version id for sequence object"},"end":{"id":"http://jsonschema.net/seqs/0/end","type":"integer","description":"End residue position"},"id":{"id":"http://jsonschema.net/seqs/0/id","type":"string","description":"Sequence unique identifier"},"seq":{"id":"http://jsonschema.net/seqs/0/seq","type":"string","description":"Sequence Residues"},"order":{"id":"http://jsonschema.net/seqs/0/order","type":"integer","description":"Sequence order in an alignment space"}},"required":["name","start","svid","end","id","seq"]},"required":["0"],"description":"Sequences in the Alignemnt","minItems":"1","maxItems":"*"},"appSettings":{"id":"http://jsonschema.net/appSettings","type":"object","properties":{"globalColorScheme":{"id":"http://jsonschema.net/appSettings/globalColorScheme","type":"string","description":"Global colour schem for the alignment"},"webStartUrl":{"id":"http://jsonschema.net/appSettings/webStartUrl","type":"string","description":"Jalview specific setting which points to a url for launching Jalview"},"application":{"id":"http://jsonschema.net/appSettings/application","type":"string","description":"Application which generated the Json"},"showSeqFeatures":{"id":"http://jsonschema.net/appSettings/showSeqFeatures","type":"string","description":"Determines if sequence features are visible or not"},"version":{"id":"http://jsonschema.net/appSettings/version","type":"string","description":"Verion of the application which generated the JSON"},"hiddenCols":{"id":"http://jsonschema.net/appSettings/hiddenCols","type":"string","description":"Delimited lists of hidden colums ranges i.e [2-3,5-5,11-23]"}},"description":"Application specific settings"},"seqGroups":{"id":"http://jsonschema.net/seqGroups","type":"array","items":[{"id":"http://jsonschema.net/seqGroups/0","type":"object","properties":{"displayText":{"id":"http://jsonschema.net/seqGroups/0/displayText","type":"boolean","description":"Determines if the texts of the group is displayed or not"},"startRes":{"id":"http://jsonschema.net/seqGroups/0/startRes","type":"integer","description":"Start residue position for a given group"},"groupName":{"id":"http://jsonschema.net/seqGroups/0/groupName","type":"string","description":"Group name"},"endRes":{"id":"http://jsonschema.net/seqGroups/0/endRes","type":"integer","description":"End residue position for a given group"},"colourText":{"id":"http://jsonschema.net/seqGroups/0/colourText","type":"boolean","description":"Determines if the Residues text for the group is coloured"},"seqsHash":{"id":"http://jsonschema.net/seqGroups/0/seqsHash","type":"array","items":[],"minItems":"0","maxItems":"*","description":"The id's of the sequences which belongs to the group"},"svid":{"id":"http://jsonschema.net/seqGroups/0/svid","type":"string","description":"Serial version id for a given group"},"showNonconserved":{"id":"http://jsonschema.net/seqGroups/0/showNonconserved","type":"boolean","description":"Determines if non conserved regions of a group is shown or not"},"colourScheme":{"id":"http://jsonschema.net/seqGroups/0/colourScheme","type":"string","description":"Colour Scheme for the sequence group"},"displayBoxes":{"id":"http://jsonschema.net/seqGroups/0/displayBoxes","type":"boolean","description":"Determines if the group border should be visible or not"}}}],"description":"Sequence groups in the Alignment","minItems":"0","maxItems":"*"},"alignAnnotation":{"id":"http://jsonschema.net/alignAnnotation","type":"array","items":{"id":"http://jsonschema.net/alignAnnotation/0","type":"object","properties":{"svid":{"id":"http://jsonschema.net/alignAnnotation/0/svid","type":"string","description":"Serial version id for the annotation object"},"annotations":{"id":"http://jsonschema.net/alignAnnotation/0/annotations","type":"array","items":[{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/displayCharacter","type":"string","description":"Display character to denote the given annotation"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/value","type":"integer","description":"Value of the annotation"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/secondaryStructure","type":"string","description":"Secondary structure symbol for the given annotation"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/secondaryStructure","type":"string"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/secondaryStructure","type":"string"}}}]},"description":{"id":"http://jsonschema.net/alignAnnotation/0/description","type":"string","description":"Description of the Alignment Annotation"},"label":{"id":"http://jsonschema.net/alignAnnotation/0/label","type":"string","description":"Label for the Annotation"}}},"description":"Alignment Annotations","minItems":"0","maxItems":"*"},"svid":{"id":"http://jsonschema.net/svid","type":"string","description":"Serial version id"},"seqFeatures":{"id":"http://jsonschema.net/seqFeatures","type":"array","items":{"id":"http://jsonschema.net/seqFeatures/0","type":"object","properties":{"fillColor":{"id":"http://jsonschema.net/seqFeatures/0/fillColor","type":"string","description":"Fill colour"},"score":{"id":"http://jsonschema.net/seqFeatures/0/score","type":"integer","description":"Score"},"sequenceRef":{"id":"http://jsonschema.net/seqFeatures/0/sequenceRef","type":"string","description":"Reference to the Sequence in the alignement (More like a foreign key)"},"featureGroup":{"id":"http://jsonschema.net/seqFeatures/0/featureGroup","type":"string","description":"Feature Group"},"svid":{"id":"http://jsonschema.net/seqFeatures/0/svid","type":"string","description":"Serial version id for the SeqFeature object"},"description":{"id":"http://jsonschema.net/seqFeatures/0/description","type":"string","description":"Description of Feature"},"xStart":{"id":"http://jsonschema.net/seqFeatures/0/xStart","type":"integer","description":"Start residue position for the sequence feature"},"xEnd":{"id":"http://jsonschema.net/seqFeatures/0/xEnd","type":"integer","description":"End residue position for the sequence feature"},"type":{"id":"http://jsonschema.net/seqFeatures/0/type","type":"string","description":"The name of the SequenceFeature"}}},"minItems":"0","maxItems":"*","description":"Sequence Features within the alignment"}},"required":["seqs","appSettings","seqGroups","alignAnnotation","svid","seqFeatures"]}
\ No newline at end of file
--- /dev/null
+{
+ "name": "docson",
+ "main": "docson.js",
+ "version": "0.1.0",
+ "homepage": "https://github.com/lbovet/docson",
+ "authors": [
+ "Laurent Bovet <laurent.bovet@windmaster.ch>"
+ ],
+ "description": "Documentation for your JSON types",
+ "moduleType": [
+ "amd"
+ ],
+ "keywords": [
+ "docson",
+ "json"
+ ],
+ "license": "http://www.apache.org/licenses/LICENSE-2.0",
+ "ignore": [
+ "**/.*",
+ "node_modules",
+ "bower_components",
+ "test",
+ "tests"
+ ]
+}
--- /dev/null
+/*
+ * Copyright 2013 Laurent Bovet <laurent.bovet@windmaster.ch>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+.docson {
+ font-family: 'Droid Sans',verdana,helvetica;
+ font-size: 13px;
+ padding: 6px 6px 6px 6px;
+}
+
+.docson .box {
+ position: relative;
+ float: left;
+ background-color:rgba(255, 255, 255, 0.2);
+ border: 1px solid lightgrey;
+ border-radius: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ padding-bottom: 10px;
+ -moz-box-shadow: 1px 1px 1px darkgray;
+ -webkit-box-shadow: 1px 1px 1px darkgray;
+ box-shadow: 1px 1px 1px darkgray;
+}
+
+.docson .expand-button {
+ position: absolute;
+ margin-top: 15px;
+ padding: 2px;
+ right: 2px;
+ float: right;
+ width: 18px;
+ text-align: center;
+ cursor: pointer;
+ font-weight: bold;
+ font-family: "Lucida Console", Monaco, monospace;
+ font-size: 15px;
+ color: darkgray;
+ display: none;
+}
+
+.docson .source-button {
+ position: absolute;
+ padding: 2px;
+ margin-top: 3px;
+ right: 2px;
+ width: 18px;
+ text-align: center;
+ cursor: pointer;
+ font-weight: bold;
+ font-family: "Lucida Console", Monaco, monospace;
+ font-size: 10px;
+ color: darkgray;
+ display: none;
+}
+
+.docson .box-header {
+ padding: 6px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid lightgrey;
+ background: whitesmoke;
+ /* background: -webkit-linear-gradient(ghostwhite, whitesmoke, whitesmoke, gainsboro);
+ background: -moz-linear-gradient(ghostwhite, whitesmoke, whitesmoke, gainsboro);*/
+}
+
+.docson .box-name {
+ color: darkblue;
+ padding: 5px 40px 2px 3px;
+ float: left;
+}
+
+.docson .title {
+ margin-top: -3px;
+ font-size: 120%;
+}
+
+.docson .link {
+ text-decoration: underline;
+}
+
+.docson .box-description {
+ color: dimgray;
+ float: left;
+ max-width: 600px;
+}
+
+.docson .end {
+ clear: both;
+}
+
+.docson .error {
+ color: red;
+}
+
+.docson .box-body {
+ padding-left: 10px;
+ padding-right: 28px;
+ clear: both;
+}
+
+.docson .box-1 {
+ background: whitesmoke;/*
+ background: -webkit-linear-gradient(ghostwhite, whitesmoke, whitesmoke, gainsboro);
+ background: -moz-linear-gradient(ghostwhite, whitesmoke, whitesmoke, gainsboro);*/
+}
+
+.docson .box-2 {
+ background: beige;
+ background: -webkit-linear-gradient(white, beige, beige, gainsboro);
+ background: -moz-linear-gradient(white, beige, beige, gainsboro);
+}
+
+.docson .box-3 {
+ background: azure;
+ background: -webkit-linear-gradient(white, azure, azure, gainsboro);
+ background: -moz-linear-gradient(white, azure, azure, gainsboro);
+}
+
+.docson .box-4 {
+ background: mistyrose;
+ background: -webkit-linear-gradient(white, mistyrose, mistyrose, gainsboro);
+ background: -moz-linear-gradient(white, mistyrose, mistyrose, gainsboro);
+}
+
+.docson .box-5 {
+ background: #ddffee;
+ background: -webkit-linear-gradient(white, #ddffee, #ddffee, gainsboro);
+ background: -moz-linear-gradient(white, #ddffee, #ddffee, gainsboro);
+}
+
+.docson .box-6 {
+ background: ghostwhite;
+ background: -webkit-linear-gradient(white, ghostwhite, ghostwhite, gainsboro);
+ background: -moz-linear-gradient(white, ghostwhite, ghostwhite, gainsboro);
+}
+
+.docson .box-7 {
+ background: lavenderblush;
+ background: -webkit-linear-gradient(white, lavenderblush, lavenderblush, gainsboro);
+ background: -moz-linear-gradient(white, lavenderblush, lavenderblush, gainsboro);
+}
+
+.docson .box-8 {
+ background: aliceblue;
+ background: -webkit-linear-gradient(white, aliceblue, aliceblue, gainsboro);
+ background: -moz-linear-gradient(white, aliceblue, aliceblue, gainsboro);
+}
+
+.docson .signature {
+ padding-top: 5px;
+ clear: left;
+}
+
+.docson .signature-header {
+ padding-top: 3px;
+ height: 20px;
+ line-height: 24px;
+}
+
+.docson .property-name {
+ float: left;
+ font-family: "Lucida Console", Monaco, monospace;
+ min-width: 130px;
+}
+
+.docson .required {
+ font-weight: bold;
+}
+
+.docson .type-keyword {
+ font-size: 80%;
+ color: dimgray;
+}
+
+.docson .type-pattern {
+ font-size: 80%;
+ color: darkolivegreen;
+}
+
+.docson .type-enum {
+ color: purple;
+ font-family: "Lucida Console", Monaco, monospace;
+ font-size: 90%;
+ padding-left: 2px;
+}
+
+.docson .type-default {
+ color: darkslategrey;
+ font-family: "Lucida Console", Monaco, monospace;
+}
+
+.docson .signature-type {
+ padding-left: 6px;
+ float: left;
+ min-width: 160px;
+ max-width: 320px;
+}
+
+.docson .signature-type-any {
+ font-style: italic;
+}
+
+.docson .signature-type-string {
+ color: green;
+}
+
+.docson .signature-type-number {
+ color: blue;
+}
+
+.docson .signature-type-integer {
+ color: blueviolet;
+}
+
+.docson .signature-type-boolean {
+ color: orangered;
+}
+
+.docson .signature-type-null {
+ font-family: "Lucida Console", Monaco, monospace;
+ color: red;
+}
+
+.docson .signature-type-date-time {
+ color: #224466;
+}
+
+.docson .signature-type-email {
+ color: cornflowerblue;
+}
+
+.docson .signature-type-hostname {
+ color: darkolivegreen;
+}
+
+.docson .signature-type-ipv6 {
+ color: darkslateblue;
+}
+
+.docson .signature-type-ipv4 {
+ color: indigo;
+}
+
+.docson .signature-type-uri {
+ color: saddlebrown;
+}
+
+.docson .signature-button {
+ cursor: pointer;
+ padding: 4px;
+ border-radius: 4px;
+ border: 1px solid lightgrey;
+ -moz-border-radius: 4px;
+}
+
+.docson .signature-type-ref {
+ color: darkblue;
+}
+
+.docson .signature-type-expanded {
+ padding: 5px 3px 3px 5px;
+ vertical-align: -1px;
+ opacity: 0.6;
+ -moz-box-shadow: inset 1px 1px 1px darkgray;
+ -webkit-box-shadow: inset 1px 1px 1px darkgray;
+ box-shadow: inset 1px 1px 1px darkgray;
+}
+
+.docson .signature-description {
+ padding-left: 6px;
+ padding-bottom: 3px;
+ color: dimgray;
+ float: left;
+ max-width: 600px;
+}
+
+.docson .signature-box-container {
+ clear: both;
+}
+
+.docson .box-container {
+ float: left;
+ padding-top: 4px;
+ padding-left: 8px;
+ display: none;
+}
+
+.docson .button {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.docson .button:hover {
+ color: darkred;
+}
+
+@media all and (min-width: 20px) and (max-width: 500px) {
+ .docson .property-name {
+ min-width: 0px;
+ }
+ .docson .signature-type {
+ min-width: 0px;
+ }
+ .docson .source {
+ width: 100%;
+ }
+ .docson .box-container, .box {
+ width: 100%;
+ }
+}
+
+.docson .desc {
+ padding-left: 6px;
+ line-height: 17px;
+}
+
+.docson .desc p {
+ margin: 0;
+ margin-top: 3px;
+}
+
+.docson .desc code {
+ color: purple;
+ font-size: 90%;
+}
+
+
+.docson .desc table {
+ margin-top: 4px;
+ margin-bottom: 4px;
+ border-collapse:collapse;
+}
+
+.docson .desc th {
+ padding: 0px;
+ font-size: 80%;
+ font-weight: normal;
+ background: rgba(231, 231, 231, 0.5);
+}
+
+.docson .desc table,
+.docson .desc th,
+.docson .desc td {
+ border: 1px solid lightgrey;
+}
+
+.docson .desc tr > td {
+ padding: 2px 6px 2px 6px;
+}
+
+.docson .desc h1 {
+ font-size: 120%;
+ margin-top: 0px;
+ margin-bottom: 3px;
+}
+
+.docson .desc h2 {
+ font-size: 115%;
+ margin-top: 0px;
+ margin-bottom: 3px;
+}
+
+.docson .desc h3 {
+ font-size: 110%;
+ margin-top: 0px;
+ margin-bottom: 3px;
+}
+
+.docson .desc h4 {
+ font-size: 100%;
+ margin-top: 0px;
+ margin-bottom: 3px;
+}
+
+.docson .desc pre {
+ border: 1px solid lightgray;
+ border-radius: 4px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ padding: 4px;
+ margin: 3px 0px;
+}
+
+.docson .desc ul {
+ padding-left: 16px;
+ margin: 3px 0px;
+}
+
+.docson .desc ol {
+ padding-left: 16px;
+ margin: 3px 0px;
+}
+
+.docson .desc blockquote {
+ margin: 3px 0px 3px 10px;
+ padding-left: 6px;
+ border-left: 1px solid lightgray;
+}
+
+.docson .desc img {
+ vertical-align: middle;
+}
+
+.docson .desc hr {
+ border: 0;
+ height: 1px;
+ background: lightgrey;
+ color: lightgrey;
+ width: 50%;
+}
+
+.docson .source {
+ display: none;
+ padding-left: 16px;
+ padding-right: 30px;
+}
+
+.docson .json, .json-schema {
+ font-family: "Lucida Console", Monaco, monospace;
+}
+
+.docson .json-punctuation {
+ font-weight: bold;
+}
+
+.docson .json-null, .json-true, .json-false {
+ font-weight: bold;
+}
+
+.docson .json-true {
+ color: #080;
+}
+
+.docson .json-false {
+ color: #800;
+}
+
+.docson .json-object-key {
+ color: #246;
+}
+
+.docson .json-keyword {
+ font-weight: bold;
+ color: #036;
+}
+
+.docson .json-number {
+ font-weight: bold;
+ color: #660;
+}
+
+.docson .json-string {
+ color: #800;
+}
+
+.docson .json-schema-map > .json-object-key {
+ color: #080;
+ font-style: italic;
+}
+
--- /dev/null
+/*
+ * Copyright 2013 Laurent Bovet <laurent.bovet@windmaster.ch>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var allDefinitions;
+var counter = 0;
+
+function createDoc(definitions, type) {
+ counter++;
+ var docson = "/docson/index.html";
+ if(!allDefinitions) {
+ allDefinitions = {};
+ function receiveMessage(event) {
+ if (event.data.id && event.data.id == "docson") {
+ var frame = $("#docson-"+event.data.url.split("$")[2]);
+ if (event.data.action == "resized") {
+ frame.get(0).width = event.data.width + 18;
+ frame.get(0).height = event.data.height + 36;
+ frame.parents("td").width(event.data.width + 24)
+ }
+ if (event.data.action == "ready") {
+ frame.get(0).contentWindow.postMessage({ id: "docson", action: "load", definitions: allDefinitions, type: event.data.url.split("$")[1]}, "*");
+ }
+ }
+ }
+ window.addEventListener("message", receiveMessage, false);
+ }
+ $.extend(allDefinitions, definitions);
+ return "<iframe class='docson-frame' id='docson-" + counter + "' style='padding: 0; border: 0; width:100%; background: transparent' src='" + docson + "#$" + type + "$"+counter+"'></iframe>"
+}
+
+SwaggerOperation.prototype.getSignature = function(type, models) {
+ var collectionType, isPrimitive;
+ if(this.isCollectionType) {
+ collectionType = this.isCollectionType(type);
+ } else {
+ collectionType = this.isListType(type);
+ }
+ isPrimitive = ((collectionType != null) && models[collectionType]) || (models[type] != null) ? false : true;
+ if (isPrimitive) {
+ return type;
+ } else {
+ if (collectionType != null) {
+ return "<p class='stronger'>" + type + "</p>" + createDoc(this.resource.rawModels, collectionType);
+ } else {
+ return createDoc(this.resource.rawModels, type);
+ }
+ }
+};
+
+$(document).on("click", ".toggleOperation", function() {
+ $(this).parents(".operations").find(".docson-frame").each(function(k, frame) {
+ frame.contentWindow.postMessage({id: "docson", action: "resize"}, "*");
+ });
+});
--- /dev/null
+/*
+ * Copyright 2013 Laurent Bovet <laurent.bovet@windmaster.ch>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var docson = docson || {};
+
+docson.templateBaseUrl="templates";
+
+define(["lib/jquery", "lib/handlebars", "lib/highlight", "lib/jsonpointer", "lib/marked", "lib/traverse"], function(jquery, handlebars, highlight, jsonpointer, marked) {
+
+ var ready = $.Deferred();
+ var boxTemplate;
+ var signatureTemplate;
+ var source;
+ var stack = [];
+ var boxes=[];
+
+ Handlebars.registerHelper('scope', function(schema, options) {
+ var result;
+ boxes.push([]);
+ if(schema && (schema.id || schema.root)) {
+ stack.push( schema );
+ result = options.fn(this);
+ stack.pop();
+ } else {
+ result = options.fn(this);
+ }
+ boxes.pop();
+ return result;
+ });
+
+ Handlebars.registerHelper('source', function(schema) {
+ delete schema.root;
+ delete schema.__boxId;
+ delete schema.__name;
+ delete schema.__ref;
+ return JSON.stringify(schema, null, 2);
+ });
+
+ Handlebars.registerHelper('desc', function(schema) {
+ var description = schema.description;
+
+ if( !description ) return "";
+ var text = description;
+ if(marked) {
+ marked.setOptions({gfm: true, breaks: true})
+ return new Handlebars.SafeString(marked(text));
+ } else {
+ return text;
+ }
+ });
+
+ Handlebars.registerHelper('equals', function(lvalue, rvalue, options) {
+ if (arguments.length < 3)
+ throw new Error("Handlebars Helper equals needs 2 parameters");
+ if( lvalue!=rvalue ) {
+ return options.inverse(this);
+ } else {
+ return options.fn(this);
+ }
+ });
+
+ Handlebars.registerHelper('contains', function(arr, item, options) {;
+ if(arr && arr instanceof Array && arr.indexOf(item) != -1) {
+ return options.fn(this);
+ }
+ });
+
+ Handlebars.registerHelper('primitive', function(schema, options) {
+ if(schema.type && schema.type != "object" && schema.type != "array" || schema.enum) {
+ return withType(this, options, true)
+ }
+ });
+
+ Handlebars.registerHelper('exists', function(value, options) {
+ if(value !== undefined) {
+ value = value === null ? "null": value;
+ value = value === true ? "true": value;
+ value = value === false ? "false": value;
+ value = typeof value === "object" ? JSON.stringify(value): value;
+ this.__default = value;
+ var result = options.fn(this);
+ delete this.__default;
+ return result;
+ }
+ });
+
+ Handlebars.registerHelper('range', function(from, to, replFrom, replTo, exclFrom, exclTo, sep) {
+ var result = "";
+ if(from !== undefined || to !== undefined) {
+ result += exclFrom ? "]" : "[";
+ result += from !== undefined ? from : replFrom;
+ if( (from || replFrom) !== (to || replTo)) {
+ result += (from !== undefined || replFrom !== null) && (to !== undefined || replTo !== null) ? sep : "";
+ result += to !== undefined ? to : replTo;
+ }
+ result += exclTo ? "[" : "]";
+ return result;
+ }
+ });
+
+ var sub = function(schema) {
+ return schema.type == "array" || schema.allOf || schema.anyOf || schema.oneOf || schema.not;
+ }
+
+ Handlebars.registerHelper('sub', function(schema, options) {
+ if(sub(schema) || (schema.type && schema.type != "object" && schema.type != "array") || schema.enum) {
+ return options.fn(this);
+ }
+ });
+
+ Handlebars.registerHelper('main', function(schema, options) {
+ if(!sub(schema)) {
+ return options.fn(this);
+ }
+ });
+
+ var simpleSchema = function(schema) {
+ var result = schema.description===undefined && schema.title===undefined && schema.id===undefined;
+ result &= schema.properties===undefined;
+ return result;
+ };
+
+ Handlebars.registerHelper('simple', function(schema, options) {
+ if(simpleSchema(schema) && !schema.$ref) {
+ return withType(schema, options, true);
+ }
+ });
+
+ var withType = function(schema, options, hideAny) {
+ schema.__type = schema.type;
+ if(!schema.type && !hideAny) {
+ schema.__type="any";
+ }
+ if(schema.format) {
+ schema.__type=schema.format;
+ }
+ if( (schema.__type == "any" || schema.__type == "object") && schema.title) {
+ schema.__type = schema.title;
+ }
+ var result = options.fn(schema);
+ delete schema.__type;
+ return result;
+ }
+
+ Handlebars.registerHelper('complex', function(schema, options) {
+ if(!simpleSchema(schema) && !schema.$ref || schema.properties) {
+ return withType(schema, options);
+ }
+ });
+
+ Handlebars.registerHelper('enum', function(schema) {
+ if(schema.enum) {
+ return (schema.enum.length > 1) ? "enum": "constant";
+ }
+ });
+
+ Handlebars.registerHelper('obj', function(schema, options) {
+ if(schema.properties || schema.type == "object") {
+ return withType(schema, options);
+ }
+ });
+
+ var pushBox = function(schema) {
+ boxes[boxes.length-1].push(schema);
+ }
+
+ Handlebars.registerHelper('box', function(schema, options) {
+ if(schema) {
+ pushBox(schema);
+ return options.fn(schema);
+ }
+ });
+
+ Handlebars.registerHelper('boxId', function() {
+ return boxes[boxes.length-1].length
+ });
+
+ Handlebars.registerHelper('boxes', function(options) {
+ var result="";
+ $.each(boxes[boxes.length-1], function(k, box) {
+ box.__boxId = k+1;
+ result=result+options.fn(box);
+ });
+ boxes[boxes.length-1] = []
+ return result;
+ });
+
+ var resolveIdRef = function(ref) {
+ if(stack) {
+ var i;
+ for(i=stack.length-1; i>=0; i--) {
+ if(stack[i][ref]) {
+ return stack[i][ref];
+ }
+ }
+ }
+ return null;
+ }
+
+ var resolvePointerRef = function(ref) {
+ var root = stack[1];
+ if(ref=="#") {
+ return root;
+ }
+ try {
+ return jsonpointer.get(stack[1], ref);
+ } catch(e) {
+ console.log(e);
+ return null;
+ }
+ }
+
+ var resolveRef = function(ref) {
+ if(ref.indexOf("#") == 0) {
+ return resolvePointerRef(ref);
+ } else {
+ return resolveIdRef(ref);
+ }
+ }
+
+ var getName = function(schema) {
+ if(!schema) {
+ return "<error>";
+ }
+ var name = schema.title;
+ name = !name && schema.id ? schema.id: name;
+ name = !name ? schema.__name: name;
+ return name;
+ }
+
+ Handlebars.registerHelper('name', function(schema, options) {
+ schema.__name = getName(schema);
+ if(schema.__name) {
+ return options.fn(schema);
+ }
+ });
+
+ var refName = function(ref) {
+ var name = getName(resolveRef(ref));
+ if(!name) {
+ if(ref == "#") {
+ name = "<root>";
+ } else {
+ name = ref.replace("#", "/")
+ }
+ }
+ var segments = name.split("/");
+ name = segments[segments.length-1];
+ return name;
+ }
+
+ function renderSchema(schema) {
+ if(stack.indexOf(schema) == -1) { // avoid recursion
+ stack.push(schema);
+ var ret = new Handlebars.SafeString(boxTemplate(schema));
+ stack.pop();
+ return ret;
+ } else {
+ return new Handlebars.SafeString(boxTemplate({"description": "_circular reference_"}));
+ }
+ }
+
+ Handlebars.registerHelper('ref', function(schema, options) {
+ if(schema.$ref) {
+ var target = resolveRef(schema.$ref);
+ if(target) {
+ target.__name = refName(schema.$ref);
+ target.__ref = schema.$ref.replace("#", "");
+ }
+ var result;
+ if(target) {
+ result = options.fn(target);
+ } else {
+ result = new Handlebars.SafeString("<span class='signature-type-ref'>"+schema.$ref+"</span>");
+ }
+ if(target) {
+ delete target.__ref;
+ }
+ return result;
+ }
+ });
+
+ Handlebars.registerHelper('schema', function(schema) {
+ return renderSchema(schema);
+ });
+
+ Handlebars.registerHelper('signature', function(schema, keyword, schemas) {
+ if(!schemas) {
+ schemas = []
+ }
+ schemas = schemas instanceof Array ? schemas : [schemas];
+ return new Handlebars.SafeString(signatureTemplate({ schema: schema, keyword: keyword, schemas: schemas}));
+ });
+
+ Handlebars.registerHelper('l', function(context) {
+ console.log(context);
+ });
+
+ function init() {
+ $.when( $.get(docson.templateBaseUrl+"/box.html").done(function(content) {
+ source = content
+ boxTemplate = Handlebars.compile(source);
+ }), $.get(docson.templateBaseUrl+"/signature.html").done(function(content) {
+ source = content
+ signatureTemplate = Handlebars.compile(source);
+ })).always(function() {
+ ready.resolve();
+ });
+ };
+
+ docson.doc = function(element, schema, ref, baseUrl) {
+ var d = $.Deferred();
+ if(baseUrl === undefined) baseUrl='';
+ init();
+ ready.done(function() {
+ if(typeof element == "string") {
+ element = $("#"+element);
+ }
+ if(typeof schema == "string") {
+ schema = JSON.parse(schema);
+ }
+
+ var refsPromise = $.Deferred().resolve().promise();
+ var refs = {};
+
+
+ var renderBox = function() {
+ stack.push(refs);
+ var target = schema;
+ if(ref) {
+ ref = ref[0] !== '/' ? '/'+ref : ref;
+ target = jsonpointer.get(schema, ref);
+ stack.push( schema );
+ }
+ target.root = true;
+ target.__ref = "<root>";
+ var html = boxTemplate(target);
+
+ if(ref) {
+ stack.pop();
+ }
+ stack.pop();
+
+ element.addClass("docson").html(html);
+
+ var resizeHandler = element.get(0).onresize;
+ function resized() {
+ if(resizeHandler) {
+ var box = element.find(".box").first();
+ element.get(0).onresize(box.outerWidth(), box.outerHeight());
+ }
+ }
+ element.get(0).resized = resized;
+ resized();
+
+ if(highlight) {
+ element.find(".json-schema").each(function(k, schemaElement) {
+ highlight.highlightSchema(schemaElement);
+ });
+ }
+ element.find(".box-title").each(function() {
+ var ref = $(this).attr("ref");
+ if(ref) {
+ if(window.location.href.indexOf("docson/index.html") > -1) {
+ $(this).find(".box-name").css("cursor", "pointer").attr("title", "Open in new window")
+ .hover(
+ function(){ $(this).addClass('link') },
+ function(){ $(this).removeClass('link') })
+ .click(function() {
+ var url = window.location.href+"$$expand";
+ if(ref !=="<root>") {
+ url = url.replace(/(docson\/index.html#[^\$]*).*/, "$1$"+ref+"$$expand");
+ }
+ var w;
+ function receiveMessage(event) {
+ if (event.data.id && event.data.id == "docson" && event.data.action == "ready") {
+ w.postMessage({ id: "docson", action: "load", definitions: schema, type: event.data.url.split("$")[1], expand: true}, "*");
+ }
+ }
+ window.addEventListener("message", receiveMessage, false);
+ w = window.open(url, "_blank");
+ });
+ }
+ }
+ });
+ element.find(".box").mouseenter(function() {
+ $(this).children(".source-button").fadeIn(300);
+ $(this).children(".box-body").children(".expand-button").fadeIn(300);
+ });
+ element.find(".box").mouseleave(function() {
+ $(this).children(".source-button").fadeOut(300);
+ $(this).children(".box-body").children(".expand-button").fadeOut(300);
+ });
+ element.find(".signature-type-expandable").click(function() {
+ var boxId = $(this).attr("boxid");
+ $(this).toggleClass("signature-type-expanded");
+ $(this).parent().parent().parent().children(".signature-box-container").
+ children("[boxid='"+boxId+"']").toggle(resizeHandler ? 0 : 300);
+ resized();
+ });
+ element.find(".expand-button").click(function() {
+ if($(this).attr("expanded")) {
+ $(this).parent().parent().find(".expand-button").html(" + ").attr("title", "Expand all");
+ $(this).parent().parent().find(".signature-type-expandable").removeClass("signature-type-expanded");
+ $(this).parent().parent().find(".box-container").hide( resizeHandler ? 0 : 300);
+ $(this).parent().parent().find(".expand-button").removeAttr("expanded");
+ resized();
+ } else {
+ $(this).parent().parent().find(".expand-button").html(" - ").attr("title", "Collapse all");
+ $(this).parent().parent().find(".signature-type-expandable").addClass("signature-type-expanded");
+ $(this).parent().parent().find(".box-container").show(resizeHandler ? 0 : 300);
+ $(this).parent().parent().find(".expand-button").attr("expanded", true);
+ resized();
+ }
+ });
+ element.find(".source-button").click(function() {
+ $(this).parent().children(".box-body").toggle();
+ $(this).parent().children(".source").toggle();
+ resized();
+ });
+ };
+
+ var resolveRefsReentrant = function(schema){
+ traverse(schema).forEach(function(item) {
+ // Fix Swagger weird generation for array.
+ if(item && item.$ref == "array") {
+ delete item.$ref;
+ item.type ="array";
+ }
+
+ // Fetch external schema
+ if(this.key === "$ref") {
+ var external = false;
+ //Local meaning local to this server, but not in this file.
+ var local = false;
+ if((/^https?:\/\//).test(item)) {
+ external = true;
+ }
+ else if((/^[^#]/).test(item)) {
+ local = true;
+ } else if(item.indexOf('#') > 0) {
+ //Internal reference
+ //Turning relative refs to absolute ones
+ external = true;
+ item = baseUrl + item;
+ this.update(item);
+ }
+ if(external){
+ //External reference, fetch it.
+ var segments = item.split("#");
+ refs[item] = null;
+ var p = $.get(segments[0]).then(function(content) {
+ if(typeof content != "object") {
+ try {
+ content = JSON.parse(content);
+ } catch(e) {
+ console.error("Unable to parse "+segments[0], e);
+ }
+ }
+ if(content) {
+ refs[item] = content;
+ renderBox();
+ resolveRefsReentrant(content);
+ }
+ });
+ }
+ else if(local) {
+ //Local to this server, fetch relative
+ var segments = item.split("#");
+ refs[item] = null;
+ var p = $.get(baseUrl + segments[0]).then(function(content) {
+ if(typeof content != "object") {
+ try {
+ content = JSON.parse(content);
+ } catch(e) {
+ console.error("Unable to parse "+segments[0], e);
+ }
+ }
+ if(content) {
+ refs[item] = content;
+ renderBox();
+ resolveRefsReentrant(content);
+ }
+ });
+ }
+ }
+ });
+ };
+
+ resolveRefsReentrant(schema);
+ renderBox();
+
+ d.resolve();
+ })
+ return d.promise();
+ }
+
+ return docson;
+});
--- /dev/null
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Docson Example</title>
+ <meta charset="utf-8">
+ <link rel="stylesheet" href="css/docson.css">
+ <script src="lib/require.js"></script></head>
+<body>
+<div id="doc"></div>
+<script charset="utf-8">
+ require.config({ baseUrl: ""});
+ require(["docson", "lib/jquery"], function(docson) {
+ $(function() {
+ var schema =
+ {"$schema":"http://json-schema.org/draft-04/schema#","id":"http://jsonschema.net","type":"object","properties":{"seqs":{"id":"http://jsonschema.net/seqs","type":"array","items":{"id":"http://jsonschema.net/seqs/0","type":"object","properties":{"name":{"id":"http://jsonschema.net/seqs/0/name","type":"string","description":"Sequence name"},"start":{"id":"http://jsonschema.net/seqs/0/start","type":"integer","description":"Start residue position"},"svid":{"id":"http://jsonschema.net/seqs/0/svid","type":"string","description":"Serial version id for sequence object"},"end":{"id":"http://jsonschema.net/seqs/0/end","type":"integer","description":"End residue position"},"id":{"id":"http://jsonschema.net/seqs/0/id","type":"string","description":"Sequence unique identifier"},"seq":{"id":"http://jsonschema.net/seqs/0/seq","type":"string","description":"Sequence Residues"},"order":{"id":"http://jsonschema.net/seqs/0/order","type":"integer","description":"Sequence order in an alignment space"}},"required":["name","start","svid","end","id","seq"]},"required":["0"],"description":"Sequences in the Alignemnt","minItems":"1","maxItems":"*"},"appSettings":{"id":"http://jsonschema.net/appSettings","type":"object","properties":{"globalColorScheme":{"id":"http://jsonschema.net/appSettings/globalColorScheme","type":"string","description":"Global colour schem for the alignment"},"webStartUrl":{"id":"http://jsonschema.net/appSettings/webStartUrl","type":"string","description":"Jalview specific setting which points to a url for launching Jalview"},"application":{"id":"http://jsonschema.net/appSettings/application","type":"string","description":"Application which generated the Json"},"showSeqFeatures":{"id":"http://jsonschema.net/appSettings/showSeqFeatures","type":"string","description":"Determines if sequence features are visible or not"},"version":{"id":"http://jsonschema.net/appSettings/version","type":"string","description":"Verion of the application which generated the JSON"},"hiddenCols":{"id":"http://jsonschema.net/appSettings/hiddenCols","type":"string","description":"Delimited lists of hidden colums ranges i.e [2-3,5-5,11-23]"}},"description":"Application specific settings"},"seqGroups":{"id":"http://jsonschema.net/seqGroups","type":"array","items":[{"id":"http://jsonschema.net/seqGroups/0","type":"object","properties":{"displayText":{"id":"http://jsonschema.net/seqGroups/0/displayText","type":"boolean","description":"Determines if the texts of the group is displayed or not"},"startRes":{"id":"http://jsonschema.net/seqGroups/0/startRes","type":"integer","description":"Start residue position for a given group"},"groupName":{"id":"http://jsonschema.net/seqGroups/0/groupName","type":"string","description":"Group name"},"endRes":{"id":"http://jsonschema.net/seqGroups/0/endRes","type":"integer","description":"End residue position for a given group"},"colourText":{"id":"http://jsonschema.net/seqGroups/0/colourText","type":"boolean","description":"Determines if the Residues text for the group is coloured"},"seqsHash":{"id":"http://jsonschema.net/seqGroups/0/seqsHash","type":"array","items":[],"minItems":"0","maxItems":"*","description":"The id's of the sequences which belongs to the group"},"svid":{"id":"http://jsonschema.net/seqGroups/0/svid","type":"string","description":"Serial version id for a given group"},"showNonconserved":{"id":"http://jsonschema.net/seqGroups/0/showNonconserved","type":"boolean","description":"Determines if non conserved regions of a group is shown or not"},"colourScheme":{"id":"http://jsonschema.net/seqGroups/0/colourScheme","type":"string","description":"Colour Scheme for the sequence group"},"displayBoxes":{"id":"http://jsonschema.net/seqGroups/0/displayBoxes","type":"boolean","description":"Determines if the group border should be visible or not"}}}],"description":"Sequence groups in the Alignment","minItems":"0","maxItems":"*"},"alignAnnotation":{"id":"http://jsonschema.net/alignAnnotation","type":"array","items":{"id":"http://jsonschema.net/alignAnnotation/0","type":"object","properties":{"svid":{"id":"http://jsonschema.net/alignAnnotation/0/svid","type":"string","description":"Serial version id for the annotation object"},"annotations":{"id":"http://jsonschema.net/alignAnnotation/0/annotations","type":"array","items":[{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/displayCharacter","type":"string","description":"Display character to denote the given annotation"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/value","type":"integer","description":"Value of the annotation"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/secondaryStructure","type":"string","description":"Secondary structure symbol for the given annotation"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/secondaryStructure","type":"string"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/secondaryStructure","type":"string"}}}]},"description":{"id":"http://jsonschema.net/alignAnnotation/0/description","type":"string","description":"Description of the Alignment Annotation"},"label":{"id":"http://jsonschema.net/alignAnnotation/0/label","type":"string","description":"Label for the Annotation"}}},"description":"Alignment Annotations","minItems":"0","maxItems":"*"},"svid":{"id":"http://jsonschema.net/svid","type":"string","description":"Serial version id"},"seqFeatures":{"id":"http://jsonschema.net/seqFeatures","type":"array","items":{"id":"http://jsonschema.net/seqFeatures/0","type":"object","properties":{"fillColor":{"id":"http://jsonschema.net/seqFeatures/0/fillColor","type":"string","description":"Fill colour"},"score":{"id":"http://jsonschema.net/seqFeatures/0/score","type":"integer","description":"Score"},"sequenceRef":{"id":"http://jsonschema.net/seqFeatures/0/sequenceRef","type":"string","description":"Reference to the Sequence in the alignement (More like a foreign key)"},"featureGroup":{"id":"http://jsonschema.net/seqFeatures/0/featureGroup","type":"string","description":"Feature Group"},"svid":{"id":"http://jsonschema.net/seqFeatures/0/svid","type":"string","description":"Serial version id for the SeqFeature object"},"description":{"id":"http://jsonschema.net/seqFeatures/0/description","type":"string","description":"Description of Feature"},"xStart":{"id":"http://jsonschema.net/seqFeatures/0/xStart","type":"integer","description":"Start residue position for the sequence feature"},"xEnd":{"id":"http://jsonschema.net/seqFeatures/0/xEnd","type":"integer","description":"End residue position for the sequence feature"},"type":{"id":"http://jsonschema.net/seqFeatures/0/type","type":"string","description":"The name of the SequenceFeature"}}},"minItems":"0","maxItems":"*","description":"Sequence Features within the alignment"}},"required":["seqs","appSettings","seqGroups","alignAnnotation","svid","seqFeatures"]}
+ docson.templateBaseUrl="templates";
+ docson.doc("doc", schema);
+ });
+ });
+</script>
+</body>
+</html>
--- /dev/null
+/*!
+
+ handlebars v1.1.2
+
+Copyright (C) 2011 by Yehuda Katz
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+@license
+*/
+var Handlebars = (function() {
+// handlebars/safe-string.js
+var __module4__ = (function() {
+ "use strict";
+ var __exports__;
+ // Build out our basic SafeString type
+ function SafeString(string) {
+ this.string = string;
+ }
+
+ SafeString.prototype.toString = function() {
+ return "" + this.string;
+ };
+
+ __exports__ = SafeString;
+ return __exports__;
+})();
+
+// handlebars/utils.js
+var __module3__ = (function(__dependency1__) {
+ "use strict";
+ var __exports__ = {};
+ var SafeString = __dependency1__;
+
+ var escape = {
+ "&": "&",
+ "<": "<",
+ ">": ">",
+ '"': """,
+ "'": "'",
+ "`": "`"
+ };
+
+ var badChars = /[&<>"'`]/g;
+ var possible = /[&<>"'`]/;
+
+ function escapeChar(chr) {
+ return escape[chr] || "&";
+ }
+
+ function extend(obj, value) {
+ for(var key in value) {
+ if(value.hasOwnProperty(key)) {
+ obj[key] = value[key];
+ }
+ }
+ }
+
+ __exports__.extend = extend;var toString = Object.prototype.toString;
+ __exports__.toString = toString;
+ // Sourced from lodash
+ // https://github.com/bestiejs/lodash/blob/master/LICENSE.txt
+ var isFunction = function(value) {
+ return typeof value === 'function';
+ };
+ // fallback for older versions of Chrome and Safari
+ if (isFunction(/x/)) {
+ isFunction = function(value) {
+ return typeof value === 'function' && toString.call(value) === '[object Function]';
+ };
+ }
+ var isFunction;
+ __exports__.isFunction = isFunction;
+ var isArray = Array.isArray || function(value) {
+ return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false;
+ };
+ __exports__.isArray = isArray;
+
+ function escapeExpression(string) {
+ // don't escape SafeStrings, since they're already safe
+ if (string instanceof SafeString) {
+ return string.toString();
+ } else if (!string && string !== 0) {
+ return "";
+ }
+
+ // Force a string conversion as this will be done by the append regardless and
+ // the regex test will do this transparently behind the scenes, causing issues if
+ // an object's to string has escaped characters in it.
+ string = "" + string;
+
+ if(!possible.test(string)) { return string; }
+ return string.replace(badChars, escapeChar);
+ }
+
+ __exports__.escapeExpression = escapeExpression;function isEmpty(value) {
+ if (!value && value !== 0) {
+ return true;
+ } else if (isArray(value) && value.length === 0) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ __exports__.isEmpty = isEmpty;
+ return __exports__;
+})(__module4__);
+
+// handlebars/exception.js
+var __module5__ = (function() {
+ "use strict";
+ var __exports__;
+
+ var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];
+
+ function Exception(/* message */) {
+ var tmp = Error.prototype.constructor.apply(this, arguments);
+
+ // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.
+ for (var idx = 0; idx < errorProps.length; idx++) {
+ this[errorProps[idx]] = tmp[errorProps[idx]];
+ }
+ }
+
+ Exception.prototype = new Error();
+
+ __exports__ = Exception;
+ return __exports__;
+})();
+
+// handlebars/base.js
+var __module2__ = (function(__dependency1__, __dependency2__) {
+ "use strict";
+ var __exports__ = {};
+ /*globals Exception, Utils */
+ var Utils = __dependency1__;
+ var Exception = __dependency2__;
+
+ var VERSION = "1.1.2";
+ __exports__.VERSION = VERSION;var COMPILER_REVISION = 4;
+ __exports__.COMPILER_REVISION = COMPILER_REVISION;
+ var REVISION_CHANGES = {
+ 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
+ 2: '== 1.0.0-rc.3',
+ 3: '== 1.0.0-rc.4',
+ 4: '>= 1.0.0'
+ };
+ __exports__.REVISION_CHANGES = REVISION_CHANGES;
+ var isArray = Utils.isArray,
+ isFunction = Utils.isFunction,
+ toString = Utils.toString,
+ objectType = '[object Object]';
+
+ function HandlebarsEnvironment(helpers, partials) {
+ this.helpers = helpers || {};
+ this.partials = partials || {};
+
+ registerDefaultHelpers(this);
+ }
+
+ __exports__.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = {
+ constructor: HandlebarsEnvironment,
+
+ logger: logger,
+ log: log,
+
+ registerHelper: function(name, fn, inverse) {
+ if (toString.call(name) === objectType) {
+ if (inverse || fn) { throw new Exception('Arg not supported with multiple helpers'); }
+ Utils.extend(this.helpers, name);
+ } else {
+ if (inverse) { fn.not = inverse; }
+ this.helpers[name] = fn;
+ }
+ },
+
+ registerPartial: function(name, str) {
+ if (toString.call(name) === objectType) {
+ Utils.extend(this.partials, name);
+ } else {
+ this.partials[name] = str;
+ }
+ }
+ };
+
+ function registerDefaultHelpers(instance) {
+ instance.registerHelper('helperMissing', function(arg) {
+ if(arguments.length === 2) {
+ return undefined;
+ } else {
+ throw new Error("Missing helper: '" + arg + "'");
+ }
+ });
+
+ instance.registerHelper('blockHelperMissing', function(context, options) {
+ var inverse = options.inverse || function() {}, fn = options.fn;
+
+ if (isFunction(context)) { context = context.call(this); }
+
+ if(context === true) {
+ return fn(this);
+ } else if(context === false || context == null) {
+ return inverse(this);
+ } else if (isArray(context)) {
+ if(context.length > 0) {
+ return instance.helpers.each(context, options);
+ } else {
+ return inverse(this);
+ }
+ } else {
+ return fn(context);
+ }
+ });
+
+ instance.registerHelper('each', function(context, options) {
+ var fn = options.fn, inverse = options.inverse;
+ var i = 0, ret = "", data;
+
+ if (isFunction(context)) { context = context.call(this); }
+
+ if (options.data) {
+ data = createFrame(options.data);
+ }
+
+ if(context && typeof context === 'object') {
+ if (isArray(context)) {
+ for(var j = context.length; i<j; i++) {
+ if (data) {
+ data.index = i;
+ data.first = (i === 0)
+ data.last = (i === (context.length-1));
+ }
+ ret = ret + fn(context[i], { data: data });
+ }
+ } else {
+ for(var key in context) {
+ if(context.hasOwnProperty(key)) {
+ if(data) { data.key = key; }
+ ret = ret + fn(context[key], {data: data});
+ i++;
+ }
+ }
+ }
+ }
+
+ if(i === 0){
+ ret = inverse(this);
+ }
+
+ return ret;
+ });
+
+ instance.registerHelper('if', function(conditional, options) {
+ if (isFunction(conditional)) { conditional = conditional.call(this); }
+
+ // Default behavior is to render the positive path if the value is truthy and not empty.
+ // The `includeZero` option may be set to treat the condtional as purely not empty based on the
+ // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.
+ if ((!options.hash.includeZero && !conditional) || Utils.isEmpty(conditional)) {
+ return options.inverse(this);
+ } else {
+ return options.fn(this);
+ }
+ });
+
+ instance.registerHelper('unless', function(conditional, options) {
+ return instance.helpers['if'].call(this, conditional, {fn: options.inverse, inverse: options.fn, hash: options.hash});
+ });
+
+ instance.registerHelper('with', function(context, options) {
+ if (isFunction(context)) { context = context.call(this); }
+
+ if (!Utils.isEmpty(context)) return options.fn(context);
+ });
+
+ instance.registerHelper('log', function(context, options) {
+ var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;
+ instance.log(level, context);
+ });
+ }
+
+ var logger = {
+ methodMap: { 0: 'debug', 1: 'info', 2: 'warn', 3: 'error' },
+
+ // State enum
+ DEBUG: 0,
+ INFO: 1,
+ WARN: 2,
+ ERROR: 3,
+ level: 3,
+
+ // can be overridden in the host environment
+ log: function(level, obj) {
+ if (logger.level <= level) {
+ var method = logger.methodMap[level];
+ if (typeof console !== 'undefined' && console[method]) {
+ console[method].call(console, obj);
+ }
+ }
+ }
+ };
+ __exports__.logger = logger;
+ function log(level, obj) { logger.log(level, obj); }
+
+ __exports__.log = log;var createFrame = function(object) {
+ var obj = {};
+ Utils.extend(obj, object);
+ return obj;
+ };
+ __exports__.createFrame = createFrame;
+ return __exports__;
+})(__module3__, __module5__);
+
+// handlebars/runtime.js
+var __module6__ = (function(__dependency1__, __dependency2__, __dependency3__) {
+ "use strict";
+ var __exports__ = {};
+ /*global Utils */
+ var Utils = __dependency1__;
+ var Exception = __dependency2__;
+ var COMPILER_REVISION = __dependency3__.COMPILER_REVISION;
+ var REVISION_CHANGES = __dependency3__.REVISION_CHANGES;
+
+ function checkRevision(compilerInfo) {
+ var compilerRevision = compilerInfo && compilerInfo[0] || 1,
+ currentRevision = COMPILER_REVISION;
+
+ if (compilerRevision !== currentRevision) {
+ if (compilerRevision < currentRevision) {
+ var runtimeVersions = REVISION_CHANGES[currentRevision],
+ compilerVersions = REVISION_CHANGES[compilerRevision];
+ throw new Error("Template was precompiled with an older version of Handlebars than the current runtime. "+
+ "Please update your precompiler to a newer version ("+runtimeVersions+") or downgrade your runtime to an older version ("+compilerVersions+").");
+ } else {
+ // Use the embedded version info since the runtime doesn't know about this revision yet
+ throw new Error("Template was precompiled with a newer version of Handlebars than the current runtime. "+
+ "Please update your runtime to a newer version ("+compilerInfo[1]+").");
+ }
+ }
+ }
+
+ // TODO: Remove this line and break up compilePartial
+
+ function template(templateSpec, env) {
+ if (!env) {
+ throw new Error("No environment passed to template");
+ }
+
+ var invokePartialWrapper;
+ if (env.compile) {
+ invokePartialWrapper = function(partial, name, context, helpers, partials, data) {
+ // TODO : Check this for all inputs and the options handling (partial flag, etc). This feels
+ // like there should be a common exec path
+ var result = invokePartial.apply(this, arguments);
+ if (result) { return result; }
+
+ var options = { helpers: helpers, partials: partials, data: data };
+ partials[name] = env.compile(partial, { data: data !== undefined }, env);
+ return partials[name](context, options);
+ };
+ } else {
+ invokePartialWrapper = function(partial, name /* , context, helpers, partials, data */) {
+ var result = invokePartial.apply(this, arguments);
+ if (result) { return result; }
+ throw new Exception("The partial " + name + " could not be compiled when running in runtime-only mode");
+ };
+ }
+
+ // Just add water
+ var container = {
+ escapeExpression: Utils.escapeExpression,
+ invokePartial: invokePartialWrapper,
+ programs: [],
+ program: function(i, fn, data) {
+ var programWrapper = this.programs[i];
+ if(data) {
+ programWrapper = program(i, fn, data);
+ } else if (!programWrapper) {
+ programWrapper = this.programs[i] = program(i, fn);
+ }
+ return programWrapper;
+ },
+ merge: function(param, common) {
+ var ret = param || common;
+
+ if (param && common && (param !== common)) {
+ ret = {};
+ Utils.extend(ret, common);
+ Utils.extend(ret, param);
+ }
+ return ret;
+ },
+ programWithDepth: programWithDepth,
+ noop: noop,
+ compilerInfo: null
+ };
+
+ return function(context, options) {
+ options = options || {};
+ var namespace = options.partial ? options : env,
+ helpers,
+ partials;
+
+ if (!options.partial) {
+ helpers = options.helpers;
+ partials = options.partials;
+ }
+ var result = templateSpec.call(
+ container,
+ namespace, context,
+ helpers,
+ partials,
+ options.data);
+
+ if (!options.partial) {
+ checkRevision(container.compilerInfo);
+ }
+
+ return result;
+ };
+ }
+
+ __exports__.template = template;function programWithDepth(i, fn, data /*, $depth */) {
+ var args = Array.prototype.slice.call(arguments, 3);
+
+ var prog = function(context, options) {
+ options = options || {};
+
+ return fn.apply(this, [context, options.data || data].concat(args));
+ };
+ prog.program = i;
+ prog.depth = args.length;
+ return prog;
+ }
+
+ __exports__.programWithDepth = programWithDepth;function program(i, fn, data) {
+ var prog = function(context, options) {
+ options = options || {};
+
+ return fn(context, options.data || data);
+ };
+ prog.program = i;
+ prog.depth = 0;
+ return prog;
+ }
+
+ __exports__.program = program;function invokePartial(partial, name, context, helpers, partials, data) {
+ var options = { partial: true, helpers: helpers, partials: partials, data: data };
+
+ if(partial === undefined) {
+ throw new Exception("The partial " + name + " could not be found");
+ } else if(partial instanceof Function) {
+ return partial(context, options);
+ }
+ }
+
+ __exports__.invokePartial = invokePartial;function noop() { return ""; }
+
+ __exports__.noop = noop;
+ return __exports__;
+})(__module3__, __module5__, __module2__);
+
+// handlebars.runtime.js
+var __module1__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__) {
+ "use strict";
+ var __exports__;
+ var base = __dependency1__;
+
+ // Each of these augment the Handlebars object. No need to setup here.
+ // (This is done to easily share code between commonjs and browse envs)
+ var SafeString = __dependency2__;
+ var Exception = __dependency3__;
+ var Utils = __dependency4__;
+ var runtime = __dependency5__;
+
+ // For compatibility and usage outside of module systems, make the Handlebars object a namespace
+ var create = function() {
+ var hb = new base.HandlebarsEnvironment();
+
+ Utils.extend(hb, base);
+ hb.SafeString = SafeString;
+ hb.Exception = Exception;
+ hb.Utils = Utils;
+
+ hb.VM = runtime;
+ hb.template = function(spec) {
+ return runtime.template(spec, hb);
+ };
+
+ return hb;
+ };
+
+ var Handlebars = create();
+ Handlebars.create = create;
+
+ __exports__ = Handlebars;
+ return __exports__;
+})(__module2__, __module4__, __module5__, __module3__, __module6__);
+
+// handlebars/compiler/ast.js
+var __module7__ = (function(__dependency1__) {
+ "use strict";
+ var __exports__ = {};
+ var Exception = __dependency1__;
+
+ function ProgramNode(statements, inverseStrip, inverse) {
+ this.type = "program";
+ this.statements = statements;
+ this.strip = {};
+
+ if(inverse) {
+ this.inverse = new ProgramNode(inverse, inverseStrip);
+ this.strip.right = inverseStrip.left;
+ } else if (inverseStrip) {
+ this.strip.left = inverseStrip.right;
+ }
+ }
+
+ __exports__.ProgramNode = ProgramNode;function MustacheNode(rawParams, hash, open, strip) {
+ this.type = "mustache";
+ this.hash = hash;
+ this.strip = strip;
+
+ var escapeFlag = open[3] || open[2];
+ this.escaped = escapeFlag !== '{' && escapeFlag !== '&';
+
+ var id = this.id = rawParams[0];
+ var params = this.params = rawParams.slice(1);
+
+ // a mustache is an eligible helper if:
+ // * its id is simple (a single part, not `this` or `..`)
+ var eligibleHelper = this.eligibleHelper = id.isSimple;
+
+ // a mustache is definitely a helper if:
+ // * it is an eligible helper, and
+ // * it has at least one parameter or hash segment
+ this.isHelper = eligibleHelper && (params.length || hash);
+
+ // if a mustache is an eligible helper but not a definite
+ // helper, it is ambiguous, and will be resolved in a later
+ // pass or at runtime.
+ }
+
+ __exports__.MustacheNode = MustacheNode;function PartialNode(partialName, context, strip) {
+ this.type = "partial";
+ this.partialName = partialName;
+ this.context = context;
+ this.strip = strip;
+ }
+
+ __exports__.PartialNode = PartialNode;function BlockNode(mustache, program, inverse, close) {
+ if(mustache.id.original !== close.path.original) {
+ throw new Exception(mustache.id.original + " doesn't match " + close.path.original);
+ }
+
+ this.type = "block";
+ this.mustache = mustache;
+ this.program = program;
+ this.inverse = inverse;
+
+ this.strip = {
+ left: mustache.strip.left,
+ right: close.strip.right
+ };
+
+ (program || inverse).strip.left = mustache.strip.right;
+ (inverse || program).strip.right = close.strip.left;
+
+ if (inverse && !program) {
+ this.isInverse = true;
+ }
+ }
+
+ __exports__.BlockNode = BlockNode;function ContentNode(string) {
+ this.type = "content";
+ this.string = string;
+ }
+
+ __exports__.ContentNode = ContentNode;function HashNode(pairs) {
+ this.type = "hash";
+ this.pairs = pairs;
+ }
+
+ __exports__.HashNode = HashNode;function IdNode(parts) {
+ this.type = "ID";
+
+ var original = "",
+ dig = [],
+ depth = 0;
+
+ for(var i=0,l=parts.length; i<l; i++) {
+ var part = parts[i].part;
+ original += (parts[i].separator || '') + part;
+
+ if (part === ".." || part === "." || part === "this") {
+ if (dig.length > 0) { throw new Exception("Invalid path: " + original); }
+ else if (part === "..") { depth++; }
+ else { this.isScoped = true; }
+ }
+ else { dig.push(part); }
+ }
+
+ this.original = original;
+ this.parts = dig;
+ this.string = dig.join('.');
+ this.depth = depth;
+
+ // an ID is simple if it only has one part, and that part is not
+ // `..` or `this`.
+ this.isSimple = parts.length === 1 && !this.isScoped && depth === 0;
+
+ this.stringModeValue = this.string;
+ }
+
+ __exports__.IdNode = IdNode;function PartialNameNode(name) {
+ this.type = "PARTIAL_NAME";
+ this.name = name.original;
+ }
+
+ __exports__.PartialNameNode = PartialNameNode;function DataNode(id) {
+ this.type = "DATA";
+ this.id = id;
+ }
+
+ __exports__.DataNode = DataNode;function StringNode(string) {
+ this.type = "STRING";
+ this.original =
+ this.string =
+ this.stringModeValue = string;
+ }
+
+ __exports__.StringNode = StringNode;function IntegerNode(integer) {
+ this.type = "INTEGER";
+ this.original =
+ this.integer = integer;
+ this.stringModeValue = Number(integer);
+ }
+
+ __exports__.IntegerNode = IntegerNode;function BooleanNode(bool) {
+ this.type = "BOOLEAN";
+ this.bool = bool;
+ this.stringModeValue = bool === "true";
+ }
+
+ __exports__.BooleanNode = BooleanNode;function CommentNode(comment) {
+ this.type = "comment";
+ this.comment = comment;
+ }
+
+ __exports__.CommentNode = CommentNode;
+ return __exports__;
+})(__module5__);
+
+// handlebars/compiler/parser.js
+var __module9__ = (function() {
+ "use strict";
+ var __exports__;
+ /* Jison generated parser */
+ var handlebars = (function(){
+ var parser = {trace: function trace() { },
+ yy: {},
+ symbols_: {"error":2,"root":3,"statements":4,"EOF":5,"program":6,"simpleInverse":7,"statement":8,"openInverse":9,"closeBlock":10,"openBlock":11,"mustache":12,"partial":13,"CONTENT":14,"COMMENT":15,"OPEN_BLOCK":16,"inMustache":17,"CLOSE":18,"OPEN_INVERSE":19,"OPEN_ENDBLOCK":20,"path":21,"OPEN":22,"OPEN_UNESCAPED":23,"CLOSE_UNESCAPED":24,"OPEN_PARTIAL":25,"partialName":26,"partial_option0":27,"inMustache_repetition0":28,"inMustache_option0":29,"dataName":30,"param":31,"STRING":32,"INTEGER":33,"BOOLEAN":34,"hash":35,"hash_repetition_plus0":36,"hashSegment":37,"ID":38,"EQUALS":39,"DATA":40,"pathSegments":41,"SEP":42,"$accept":0,"$end":1},
+ terminals_: {2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"CLOSE_UNESCAPED",25:"OPEN_PARTIAL",32:"STRING",33:"INTEGER",34:"BOOLEAN",38:"ID",39:"EQUALS",40:"DATA",42:"SEP"},
+ productions_: [0,[3,2],[3,1],[6,2],[6,3],[6,2],[6,1],[6,1],[6,0],[4,1],[4,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,4],[7,2],[17,3],[17,1],[31,1],[31,1],[31,1],[31,1],[31,1],[35,1],[37,3],[26,1],[26,1],[26,1],[30,2],[21,1],[41,3],[41,1],[27,0],[27,1],[28,0],[28,2],[29,0],[29,1],[36,1],[36,2]],
+ performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
+
+ var $0 = $$.length - 1;
+ switch (yystate) {
+ case 1: return new yy.ProgramNode($$[$0-1]);
+ break;
+ case 2: return new yy.ProgramNode([]);
+ break;
+ case 3:this.$ = new yy.ProgramNode([], $$[$0-1], $$[$0]);
+ break;
+ case 4:this.$ = new yy.ProgramNode($$[$0-2], $$[$0-1], $$[$0]);
+ break;
+ case 5:this.$ = new yy.ProgramNode($$[$0-1], $$[$0], []);
+ break;
+ case 6:this.$ = new yy.ProgramNode($$[$0]);
+ break;
+ case 7:this.$ = new yy.ProgramNode([]);
+ break;
+ case 8:this.$ = new yy.ProgramNode([]);
+ break;
+ case 9:this.$ = [$$[$0]];
+ break;
+ case 10: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
+ break;
+ case 11:this.$ = new yy.BlockNode($$[$0-2], $$[$0-1].inverse, $$[$0-1], $$[$0]);
+ break;
+ case 12:this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0-1].inverse, $$[$0]);
+ break;
+ case 13:this.$ = $$[$0];
+ break;
+ case 14:this.$ = $$[$0];
+ break;
+ case 15:this.$ = new yy.ContentNode($$[$0]);
+ break;
+ case 16:this.$ = new yy.CommentNode($$[$0]);
+ break;
+ case 17:this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], $$[$0-2], stripFlags($$[$0-2], $$[$0]));
+ break;
+ case 18:this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], $$[$0-2], stripFlags($$[$0-2], $$[$0]));
+ break;
+ case 19:this.$ = {path: $$[$0-1], strip: stripFlags($$[$0-2], $$[$0])};
+ break;
+ case 20:this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], $$[$0-2], stripFlags($$[$0-2], $$[$0]));
+ break;
+ case 21:this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], $$[$0-2], stripFlags($$[$0-2], $$[$0]));
+ break;
+ case 22:this.$ = new yy.PartialNode($$[$0-2], $$[$0-1], stripFlags($$[$0-3], $$[$0]));
+ break;
+ case 23:this.$ = stripFlags($$[$0-1], $$[$0]);
+ break;
+ case 24:this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]];
+ break;
+ case 25:this.$ = [[$$[$0]], null];
+ break;
+ case 26:this.$ = $$[$0];
+ break;
+ case 27:this.$ = new yy.StringNode($$[$0]);
+ break;
+ case 28:this.$ = new yy.IntegerNode($$[$0]);
+ break;
+ case 29:this.$ = new yy.BooleanNode($$[$0]);
+ break;
+ case 30:this.$ = $$[$0];
+ break;
+ case 31:this.$ = new yy.HashNode($$[$0]);
+ break;
+ case 32:this.$ = [$$[$0-2], $$[$0]];
+ break;
+ case 33:this.$ = new yy.PartialNameNode($$[$0]);
+ break;
+ case 34:this.$ = new yy.PartialNameNode(new yy.StringNode($$[$0]));
+ break;
+ case 35:this.$ = new yy.PartialNameNode(new yy.IntegerNode($$[$0]));
+ break;
+ case 36:this.$ = new yy.DataNode($$[$0]);
+ break;
+ case 37:this.$ = new yy.IdNode($$[$0]);
+ break;
+ case 38: $$[$0-2].push({part: $$[$0], separator: $$[$0-1]}); this.$ = $$[$0-2];
+ break;
+ case 39:this.$ = [{part: $$[$0]}];
+ break;
+ case 42:this.$ = [];
+ break;
+ case 43:$$[$0-1].push($$[$0]);
+ break;
+ case 46:this.$ = [$$[$0]];
+ break;
+ case 47:$$[$0-1].push($$[$0]);
+ break;
+ }
+ },
+ table: [{3:1,4:2,5:[1,3],8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],25:[1,15]},{1:[3]},{5:[1,16],8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],25:[1,15]},{1:[2,2]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],25:[2,9]},{4:20,6:18,7:19,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,8],22:[1,13],23:[1,14],25:[1,15]},{4:20,6:22,7:19,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,8],22:[1,13],23:[1,14],25:[1,15]},{5:[2,13],14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],25:[2,13]},{5:[2,14],14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],25:[2,14]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],25:[2,15]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],25:[2,16]},{17:23,21:24,30:25,38:[1,28],40:[1,27],41:26},{17:29,21:24,30:25,38:[1,28],40:[1,27],41:26},{17:30,21:24,30:25,38:[1,28],40:[1,27],41:26},{17:31,21:24,30:25,38:[1,28],40:[1,27],41:26},{21:33,26:32,32:[1,34],33:[1,35],38:[1,28],41:26},{1:[2,1]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],25:[2,10]},{10:36,20:[1,37]},{4:38,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,7],22:[1,13],23:[1,14],25:[1,15]},{7:39,8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,21],20:[2,6],22:[1,13],23:[1,14],25:[1,15]},{17:23,18:[1,40],21:24,30:25,38:[1,28],40:[1,27],41:26},{10:41,20:[1,37]},{18:[1,42]},{18:[2,42],24:[2,42],28:43,32:[2,42],33:[2,42],34:[2,42],38:[2,42],40:[2,42]},{18:[2,25],24:[2,25]},{18:[2,37],24:[2,37],32:[2,37],33:[2,37],34:[2,37],38:[2,37],40:[2,37],42:[1,44]},{21:45,38:[1,28],41:26},{18:[2,39],24:[2,39],32:[2,39],33:[2,39],34:[2,39],38:[2,39],40:[2,39],42:[2,39]},{18:[1,46]},{18:[1,47]},{24:[1,48]},{18:[2,40],21:50,27:49,38:[1,28],41:26},{18:[2,33],38:[2,33]},{18:[2,34],38:[2,34]},{18:[2,35],38:[2,35]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],25:[2,11]},{21:51,38:[1,28],41:26},{8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,3],22:[1,13],23:[1,14],25:[1,15]},{4:52,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,5],22:[1,13],23:[1,14],25:[1,15]},{14:[2,23],15:[2,23],16:[2,23],19:[2,23],20:[2,23],22:[2,23],23:[2,23],25:[2,23]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],25:[2,12]},{14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],25:[2,18]},{18:[2,44],21:56,24:[2,44],29:53,30:60,31:54,32:[1,57],33:[1,58],34:[1,59],35:55,36:61,37:62,38:[1,63],40:[1,27],41:26},{38:[1,64]},{18:[2,36],24:[2,36],32:[2,36],33:[2,36],34:[2,36],38:[2,36],40:[2,36]},{14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],25:[2,17]},{5:[2,20],14:[2,20],15:[2,20],16:[2,20],19:[2,20],20:[2,20],22:[2,20],23:[2,20],25:[2,20]},{5:[2,21],14:[2,21],15:[2,21],16:[2,21],19:[2,21],20:[2,21],22:[2,21],23:[2,21],25:[2,21]},{18:[1,65]},{18:[2,41]},{18:[1,66]},{8:17,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],25:[1,15]},{18:[2,24],24:[2,24]},{18:[2,43],24:[2,43],32:[2,43],33:[2,43],34:[2,43],38:[2,43],40:[2,43]},{18:[2,45],24:[2,45]},{18:[2,26],24:[2,26],32:[2,26],33:[2,26],34:[2,26],38:[2,26],40:[2,26]},{18:[2,27],24:[2,27],32:[2,27],33:[2,27],34:[2,27],38:[2,27],40:[2,27]},{18:[2,28],24:[2,28],32:[2,28],33:[2,28],34:[2,28],38:[2,28],40:[2,28]},{18:[2,29],24:[2,29],32:[2,29],33:[2,29],34:[2,29],38:[2,29],40:[2,29]},{18:[2,30],24:[2,30],32:[2,30],33:[2,30],34:[2,30],38:[2,30],40:[2,30]},{18:[2,31],24:[2,31],37:67,38:[1,68]},{18:[2,46],24:[2,46],38:[2,46]},{18:[2,39],24:[2,39],32:[2,39],33:[2,39],34:[2,39],38:[2,39],39:[1,69],40:[2,39],42:[2,39]},{18:[2,38],24:[2,38],32:[2,38],33:[2,38],34:[2,38],38:[2,38],40:[2,38],42:[2,38]},{5:[2,22],14:[2,22],15:[2,22],16:[2,22],19:[2,22],20:[2,22],22:[2,22],23:[2,22],25:[2,22]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],25:[2,19]},{18:[2,47],24:[2,47],38:[2,47]},{39:[1,69]},{21:56,30:60,31:70,32:[1,57],33:[1,58],34:[1,59],38:[1,28],40:[1,27],41:26},{18:[2,32],24:[2,32],38:[2,32]}],
+ defaultActions: {3:[2,2],16:[2,1],50:[2,41]},
+ parseError: function parseError(str, hash) {
+ throw new Error(str);
+ },
+ parse: function parse(input) {
+ var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
+ this.lexer.setInput(input);
+ this.lexer.yy = this.yy;
+ this.yy.lexer = this.lexer;
+ this.yy.parser = this;
+ if (typeof this.lexer.yylloc == "undefined")
+ this.lexer.yylloc = {};
+ var yyloc = this.lexer.yylloc;
+ lstack.push(yyloc);
+ var ranges = this.lexer.options && this.lexer.options.ranges;
+ if (typeof this.yy.parseError === "function")
+ this.parseError = this.yy.parseError;
+ function popStack(n) {
+ stack.length = stack.length - 2 * n;
+ vstack.length = vstack.length - n;
+ lstack.length = lstack.length - n;
+ }
+ function lex() {
+ var token;
+ token = self.lexer.lex() || 1;
+ if (typeof token !== "number") {
+ token = self.symbols_[token] || token;
+ }
+ return token;
+ }
+ var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
+ while (true) {
+ state = stack[stack.length - 1];
+ if (this.defaultActions[state]) {
+ action = this.defaultActions[state];
+ } else {
+ if (symbol === null || typeof symbol == "undefined") {
+ symbol = lex();
+ }
+ action = table[state] && table[state][symbol];
+ }
+ if (typeof action === "undefined" || !action.length || !action[0]) {
+ var errStr = "";
+ if (!recovering) {
+ expected = [];
+ for (p in table[state])
+ if (this.terminals_[p] && p > 2) {
+ expected.push("'" + this.terminals_[p] + "'");
+ }
+ if (this.lexer.showPosition) {
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
+ } else {
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'");
+ }
+ this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
+ }
+ }
+ if (action[0] instanceof Array && action.length > 1) {
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
+ }
+ switch (action[0]) {
+ case 1:
+ stack.push(symbol);
+ vstack.push(this.lexer.yytext);
+ lstack.push(this.lexer.yylloc);
+ stack.push(action[1]);
+ symbol = null;
+ if (!preErrorSymbol) {
+ yyleng = this.lexer.yyleng;
+ yytext = this.lexer.yytext;
+ yylineno = this.lexer.yylineno;
+ yyloc = this.lexer.yylloc;
+ if (recovering > 0)
+ recovering--;
+ } else {
+ symbol = preErrorSymbol;
+ preErrorSymbol = null;
+ }
+ break;
+ case 2:
+ len = this.productions_[action[1]][1];
+ yyval.$ = vstack[vstack.length - len];
+ yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column};
+ if (ranges) {
+ yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
+ }
+ r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
+ if (typeof r !== "undefined") {
+ return r;
+ }
+ if (len) {
+ stack = stack.slice(0, -1 * len * 2);
+ vstack = vstack.slice(0, -1 * len);
+ lstack = lstack.slice(0, -1 * len);
+ }
+ stack.push(this.productions_[action[1]][0]);
+ vstack.push(yyval.$);
+ lstack.push(yyval._$);
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
+ stack.push(newState);
+ break;
+ case 3:
+ return true;
+ }
+ }
+ return true;
+ }
+ };
+
+
+ function stripFlags(open, close) {
+ return {
+ left: open[2] === '~',
+ right: close[0] === '~' || close[1] === '~'
+ };
+ }
+
+ /* Jison generated lexer */
+ var lexer = (function(){
+ var lexer = ({EOF:1,
+ parseError:function parseError(str, hash) {
+ if (this.yy.parser) {
+ this.yy.parser.parseError(str, hash);
+ } else {
+ throw new Error(str);
+ }
+ },
+ setInput:function (input) {
+ this._input = input;
+ this._more = this._less = this.done = false;
+ this.yylineno = this.yyleng = 0;
+ this.yytext = this.matched = this.match = '';
+ this.conditionStack = ['INITIAL'];
+ this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};
+ if (this.options.ranges) this.yylloc.range = [0,0];
+ this.offset = 0;
+ return this;
+ },
+ input:function () {
+ var ch = this._input[0];
+ this.yytext += ch;
+ this.yyleng++;
+ this.offset++;
+ this.match += ch;
+ this.matched += ch;
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
+ if (lines) {
+ this.yylineno++;
+ this.yylloc.last_line++;
+ } else {
+ this.yylloc.last_column++;
+ }
+ if (this.options.ranges) this.yylloc.range[1]++;
+
+ this._input = this._input.slice(1);
+ return ch;
+ },
+ unput:function (ch) {
+ var len = ch.length;
+ var lines = ch.split(/(?:\r\n?|\n)/g);
+
+ this._input = ch + this._input;
+ this.yytext = this.yytext.substr(0, this.yytext.length-len-1);
+ //this.yyleng -= len;
+ this.offset -= len;
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
+ this.match = this.match.substr(0, this.match.length-1);
+ this.matched = this.matched.substr(0, this.matched.length-1);
+
+ if (lines.length-1) this.yylineno -= lines.length-1;
+ var r = this.yylloc.range;
+
+ this.yylloc = {first_line: this.yylloc.first_line,
+ last_line: this.yylineno+1,
+ first_column: this.yylloc.first_column,
+ last_column: lines ?
+ (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length:
+ this.yylloc.first_column - len
+ };
+
+ if (this.options.ranges) {
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
+ }
+ return this;
+ },
+ more:function () {
+ this._more = true;
+ return this;
+ },
+ less:function (n) {
+ this.unput(this.match.slice(n));
+ },
+ pastInput:function () {
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
+ return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
+ },
+ upcomingInput:function () {
+ var next = this.match;
+ if (next.length < 20) {
+ next += this._input.substr(0, 20-next.length);
+ }
+ return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, "");
+ },
+ showPosition:function () {
+ var pre = this.pastInput();
+ var c = new Array(pre.length + 1).join("-");
+ return pre + this.upcomingInput() + "\n" + c+"^";
+ },
+ next:function () {
+ if (this.done) {
+ return this.EOF;
+ }
+ if (!this._input) this.done = true;
+
+ var token,
+ match,
+ tempMatch,
+ index,
+ col,
+ lines;
+ if (!this._more) {
+ this.yytext = '';
+ this.match = '';
+ }
+ var rules = this._currentRules();
+ for (var i=0;i < rules.length; i++) {
+ tempMatch = this._input.match(this.rules[rules[i]]);
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
+ match = tempMatch;
+ index = i;
+ if (!this.options.flex) break;
+ }
+ }
+ if (match) {
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
+ if (lines) this.yylineno += lines.length;
+ this.yylloc = {first_line: this.yylloc.last_line,
+ last_line: this.yylineno+1,
+ first_column: this.yylloc.last_column,
+ last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length};
+ this.yytext += match[0];
+ this.match += match[0];
+ this.matches = match;
+ this.yyleng = this.yytext.length;
+ if (this.options.ranges) {
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
+ }
+ this._more = false;
+ this._input = this._input.slice(match[0].length);
+ this.matched += match[0];
+ token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]);
+ if (this.done && this._input) this.done = false;
+ if (token) return token;
+ else return;
+ }
+ if (this._input === "") {
+ return this.EOF;
+ } else {
+ return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(),
+ {text: "", token: null, line: this.yylineno});
+ }
+ },
+ lex:function lex() {
+ var r = this.next();
+ if (typeof r !== 'undefined') {
+ return r;
+ } else {
+ return this.lex();
+ }
+ },
+ begin:function begin(condition) {
+ this.conditionStack.push(condition);
+ },
+ popState:function popState() {
+ return this.conditionStack.pop();
+ },
+ _currentRules:function _currentRules() {
+ return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;
+ },
+ topState:function () {
+ return this.conditionStack[this.conditionStack.length-2];
+ },
+ pushState:function begin(condition) {
+ this.begin(condition);
+ }});
+ lexer.options = {};
+ lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
+
+
+ function strip(start, end) {
+ return yy_.yytext = yy_.yytext.substr(start, yy_.yyleng-end);
+ }
+
+
+ var YYSTATE=YY_START
+ switch($avoiding_name_collisions) {
+ case 0:
+ if(yy_.yytext.slice(-2) === "\\\\") {
+ strip(0,1);
+ this.begin("mu");
+ } else if(yy_.yytext.slice(-1) === "\\") {
+ strip(0,1);
+ this.begin("emu");
+ } else {
+ this.begin("mu");
+ }
+ if(yy_.yytext) return 14;
+
+ break;
+ case 1:return 14;
+ break;
+ case 2:
+ if(yy_.yytext.slice(-1) !== "\\") this.popState();
+ if(yy_.yytext.slice(-1) === "\\") strip(0,1);
+ return 14;
+
+ break;
+ case 3:strip(0,4); this.popState(); return 15;
+ break;
+ case 4:return 25;
+ break;
+ case 5:return 16;
+ break;
+ case 6:return 20;
+ break;
+ case 7:return 19;
+ break;
+ case 8:return 19;
+ break;
+ case 9:return 23;
+ break;
+ case 10:return 22;
+ break;
+ case 11:this.popState(); this.begin('com');
+ break;
+ case 12:strip(3,5); this.popState(); return 15;
+ break;
+ case 13:return 22;
+ break;
+ case 14:return 39;
+ break;
+ case 15:return 38;
+ break;
+ case 16:return 38;
+ break;
+ case 17:return 42;
+ break;
+ case 18:/*ignore whitespace*/
+ break;
+ case 19:this.popState(); return 24;
+ break;
+ case 20:this.popState(); return 18;
+ break;
+ case 21:yy_.yytext = strip(1,2).replace(/\\"/g,'"'); return 32;
+ break;
+ case 22:yy_.yytext = strip(1,2).replace(/\\'/g,"'"); return 32;
+ break;
+ case 23:return 40;
+ break;
+ case 24:return 34;
+ break;
+ case 25:return 34;
+ break;
+ case 26:return 33;
+ break;
+ case 27:return 38;
+ break;
+ case 28:yy_.yytext = strip(1,2); return 38;
+ break;
+ case 29:return 'INVALID';
+ break;
+ case 30:return 5;
+ break;
+ }
+ };
+ lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|$)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s])))/,/^(?:false(?=([~}\s])))/,/^(?:-?[0-9]+(?=([~}\s])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/];
+ lexer.conditions = {"mu":{"rules":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"com":{"rules":[3],"inclusive":false},"INITIAL":{"rules":[0,1,30],"inclusive":true}};
+ return lexer;})()
+ parser.lexer = lexer;
+ function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;
+ return new Parser;
+ })();__exports__ = handlebars;
+ return __exports__;
+})();
+
+// handlebars/compiler/base.js
+var __module8__ = (function(__dependency1__, __dependency2__) {
+ "use strict";
+ var __exports__ = {};
+ var parser = __dependency1__;
+ var AST = __dependency2__;
+
+ __exports__.parser = parser;
+
+ function parse(input) {
+ // Just return if an already-compile AST was passed in.
+ if(input.constructor === AST.ProgramNode) { return input; }
+
+ parser.yy = AST;
+ return parser.parse(input);
+ }
+
+ __exports__.parse = parse;
+ return __exports__;
+})(__module9__, __module7__);
+
+// handlebars/compiler/javascript-compiler.js
+var __module11__ = (function(__dependency1__) {
+ "use strict";
+ var __exports__;
+ var COMPILER_REVISION = __dependency1__.COMPILER_REVISION;
+ var REVISION_CHANGES = __dependency1__.REVISION_CHANGES;
+ var log = __dependency1__.log;
+
+ function Literal(value) {
+ this.value = value;
+ }
+
+ function JavaScriptCompiler() {}
+
+ JavaScriptCompiler.prototype = {
+ // PUBLIC API: You can override these methods in a subclass to provide
+ // alternative compiled forms for name lookup and buffering semantics
+ nameLookup: function(parent, name /* , type*/) {
+ var wrap,
+ ret;
+ if (parent.indexOf('depth') === 0) {
+ wrap = true;
+ }
+
+ if (/^[0-9]+$/.test(name)) {
+ ret = parent + "[" + name + "]";
+ } else if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
+ ret = parent + "." + name;
+ }
+ else {
+ ret = parent + "['" + name + "']";
+ }
+
+ if (wrap) {
+ return '(' + parent + ' && ' + ret + ')';
+ } else {
+ return ret;
+ }
+ },
+
+ appendToBuffer: function(string) {
+ if (this.environment.isSimple) {
+ return "return " + string + ";";
+ } else {
+ return {
+ appendToBuffer: true,
+ content: string,
+ toString: function() { return "buffer += " + string + ";"; }
+ };
+ }
+ },
+
+ initializeBuffer: function() {
+ return this.quotedString("");
+ },
+
+ namespace: "Handlebars",
+ // END PUBLIC API
+
+ compile: function(environment, options, context, asObject) {
+ this.environment = environment;
+ this.options = options || {};
+
+ log('debug', this.environment.disassemble() + "\n\n");
+
+ this.name = this.environment.name;
+ this.isChild = !!context;
+ this.context = context || {
+ programs: [],
+ environments: [],
+ aliases: { }
+ };
+
+ this.preamble();
+
+ this.stackSlot = 0;
+ this.stackVars = [];
+ this.registers = { list: [] };
+ this.compileStack = [];
+ this.inlineStack = [];
+
+ this.compileChildren(environment, options);
+
+ var opcodes = environment.opcodes, opcode;
+
+ this.i = 0;
+
+ for(var l=opcodes.length; this.i<l; this.i++) {
+ opcode = opcodes[this.i];
+
+ if(opcode.opcode === 'DECLARE') {
+ this[opcode.name] = opcode.value;
+ } else {
+ this[opcode.opcode].apply(this, opcode.args);
+ }
+
+ // Reset the stripNext flag if it was not set by this operation.
+ if (opcode.opcode !== this.stripNext) {
+ this.stripNext = false;
+ }
+ }
+
+ // Flush any trailing content that might be pending.
+ this.pushSource('');
+
+ return this.createFunctionContext(asObject);
+ },
+
+ preamble: function() {
+ var out = [];
+
+ if (!this.isChild) {
+ var namespace = this.namespace;
+
+ var copies = "helpers = this.merge(helpers, " + namespace + ".helpers);";
+ if (this.environment.usePartial) { copies = copies + " partials = this.merge(partials, " + namespace + ".partials);"; }
+ if (this.options.data) { copies = copies + " data = data || {};"; }
+ out.push(copies);
+ } else {
+ out.push('');
+ }
+
+ if (!this.environment.isSimple) {
+ out.push(", buffer = " + this.initializeBuffer());
+ } else {
+ out.push("");
+ }
+
+ // track the last context pushed into place to allow skipping the
+ // getContext opcode when it would be a noop
+ this.lastContext = 0;
+ this.source = out;
+ },
+
+ createFunctionContext: function(asObject) {
+ var locals = this.stackVars.concat(this.registers.list);
+
+ if(locals.length > 0) {
+ this.source[1] = this.source[1] + ", " + locals.join(", ");
+ }
+
+ // Generate minimizer alias mappings
+ if (!this.isChild) {
+ for (var alias in this.context.aliases) {
+ if (this.context.aliases.hasOwnProperty(alias)) {
+ this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias];
+ }
+ }
+ }
+
+ if (this.source[1]) {
+ this.source[1] = "var " + this.source[1].substring(2) + ";";
+ }
+
+ // Merge children
+ if (!this.isChild) {
+ this.source[1] += '\n' + this.context.programs.join('\n') + '\n';
+ }
+
+ if (!this.environment.isSimple) {
+ this.pushSource("return buffer;");
+ }
+
+ var params = this.isChild ? ["depth0", "data"] : ["Handlebars", "depth0", "helpers", "partials", "data"];
+
+ for(var i=0, l=this.environment.depths.list.length; i<l; i++) {
+ params.push("depth" + this.environment.depths.list[i]);
+ }
+
+ // Perform a second pass over the output to merge content when possible
+ var source = this.mergeSource();
+
+ if (!this.isChild) {
+ var revision = COMPILER_REVISION,
+ versions = REVISION_CHANGES[revision];
+ source = "this.compilerInfo = ["+revision+",'"+versions+"'];\n"+source;
+ }
+
+ if (asObject) {
+ params.push(source);
+
+ return Function.apply(this, params);
+ } else {
+ var functionSource = 'function ' + (this.name || '') + '(' + params.join(',') + ') {\n ' + source + '}';
+ log('debug', functionSource + "\n\n");
+ return functionSource;
+ }
+ },
+ mergeSource: function() {
+ // WARN: We are not handling the case where buffer is still populated as the source should
+ // not have buffer append operations as their final action.
+ var source = '',
+ buffer;
+ for (var i = 0, len = this.source.length; i < len; i++) {
+ var line = this.source[i];
+ if (line.appendToBuffer) {
+ if (buffer) {
+ buffer = buffer + '\n + ' + line.content;
+ } else {
+ buffer = line.content;
+ }
+ } else {
+ if (buffer) {
+ source += 'buffer += ' + buffer + ';\n ';
+ buffer = undefined;
+ }
+ source += line + '\n ';
+ }
+ }
+ return source;
+ },
+
+ // [blockValue]
+ //
+ // On stack, before: hash, inverse, program, value
+ // On stack, after: return value of blockHelperMissing
+ //
+ // The purpose of this opcode is to take a block of the form
+ // `{{#foo}}...{{/foo}}`, resolve the value of `foo`, and
+ // replace it on the stack with the result of properly
+ // invoking blockHelperMissing.
+ blockValue: function() {
+ this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
+
+ var params = ["depth0"];
+ this.setupParams(0, params);
+
+ this.replaceStack(function(current) {
+ params.splice(1, 0, current);
+ return "blockHelperMissing.call(" + params.join(", ") + ")";
+ });
+ },
+
+ // [ambiguousBlockValue]
+ //
+ // On stack, before: hash, inverse, program, value
+ // Compiler value, before: lastHelper=value of last found helper, if any
+ // On stack, after, if no lastHelper: same as [blockValue]
+ // On stack, after, if lastHelper: value
+ ambiguousBlockValue: function() {
+ this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing';
+
+ var params = ["depth0"];
+ this.setupParams(0, params);
+
+ var current = this.topStack();
+ params.splice(1, 0, current);
+
+ // Use the options value generated from the invocation
+ params[params.length-1] = 'options';
+
+ this.pushSource("if (!" + this.lastHelper + ") { " + current + " = blockHelperMissing.call(" + params.join(", ") + "); }");
+ },
+
+ // [appendContent]
+ //
+ // On stack, before: ...
+ // On stack, after: ...
+ //
+ // Appends the string value of `content` to the current buffer
+ appendContent: function(content) {
+ if (this.pendingContent) {
+ content = this.pendingContent + content;
+ }
+ if (this.stripNext) {
+ content = content.replace(/^\s+/, '');
+ }
+
+ this.pendingContent = content;
+ },
+
+ // [strip]
+ //
+ // On stack, before: ...
+ // On stack, after: ...
+ //
+ // Removes any trailing whitespace from the prior content node and flags
+ // the next operation for stripping if it is a content node.
+ strip: function() {
+ if (this.pendingContent) {
+ this.pendingContent = this.pendingContent.replace(/\s+$/, '');
+ }
+ this.stripNext = 'strip';
+ },
+
+ // [append]
+ //
+ // On stack, before: value, ...
+ // On stack, after: ...
+ //
+ // Coerces `value` to a String and appends it to the current buffer.
+ //
+ // If `value` is truthy, or 0, it is coerced into a string and appended
+ // Otherwise, the empty string is appended
+ append: function() {
+ // Force anything that is inlined onto the stack so we don't have duplication
+ // when we examine local
+ this.flushInline();
+ var local = this.popStack();
+ this.pushSource("if(" + local + " || " + local + " === 0) { " + this.appendToBuffer(local) + " }");
+ if (this.environment.isSimple) {
+ this.pushSource("else { " + this.appendToBuffer("''") + " }");
+ }
+ },
+
+ // [appendEscaped]
+ //
+ // On stack, before: value, ...
+ // On stack, after: ...
+ //
+ // Escape `value` and append it to the buffer
+ appendEscaped: function() {
+ this.context.aliases.escapeExpression = 'this.escapeExpression';
+
+ this.pushSource(this.appendToBuffer("escapeExpression(" + this.popStack() + ")"));
+ },
+
+ // [getContext]
+ //
+ // On stack, before: ...
+ // On stack, after: ...
+ // Compiler value, after: lastContext=depth
+ //
+ // Set the value of the `lastContext` compiler value to the depth
+ getContext: function(depth) {
+ if(this.lastContext !== depth) {
+ this.lastContext = depth;
+ }
+ },
+
+ // [lookupOnContext]
+ //
+ // On stack, before: ...
+ // On stack, after: currentContext[name], ...
+ //
+ // Looks up the value of `name` on the current context and pushes
+ // it onto the stack.
+ lookupOnContext: function(name) {
+ this.push(this.nameLookup('depth' + this.lastContext, name, 'context'));
+ },
+
+ // [pushContext]
+ //
+ // On stack, before: ...
+ // On stack, after: currentContext, ...
+ //
+ // Pushes the value of the current context onto the stack.
+ pushContext: function() {
+ this.pushStackLiteral('depth' + this.lastContext);
+ },
+
+ // [resolvePossibleLambda]
+ //
+ // On stack, before: value, ...
+ // On stack, after: resolved value, ...
+ //
+ // If the `value` is a lambda, replace it on the stack by
+ // the return value of the lambda
+ resolvePossibleLambda: function() {
+ this.context.aliases.functionType = '"function"';
+
+ this.replaceStack(function(current) {
+ return "typeof " + current + " === functionType ? " + current + ".apply(depth0) : " + current;
+ });
+ },
+
+ // [lookup]
+ //
+ // On stack, before: value, ...
+ // On stack, after: value[name], ...
+ //
+ // Replace the value on the stack with the result of looking
+ // up `name` on `value`
+ lookup: function(name) {
+ this.replaceStack(function(current) {
+ return current + " == null || " + current + " === false ? " + current + " : " + this.nameLookup(current, name, 'context');
+ });
+ },
+
+ // [lookupData]
+ //
+ // On stack, before: ...
+ // On stack, after: data, ...
+ //
+ // Push the data lookup operator
+ lookupData: function() {
+ this.push('data');
+ },
+
+ // [pushStringParam]
+ //
+ // On stack, before: ...
+ // On stack, after: string, currentContext, ...
+ //
+ // This opcode is designed for use in string mode, which
+ // provides the string value of a parameter along with its
+ // depth rather than resolving it immediately.
+ pushStringParam: function(string, type) {
+ this.pushStackLiteral('depth' + this.lastContext);
+
+ this.pushString(type);
+
+ if (typeof string === 'string') {
+ this.pushString(string);
+ } else {
+ this.pushStackLiteral(string);
+ }
+ },
+
+ emptyHash: function() {
+ this.pushStackLiteral('{}');
+
+ if (this.options.stringParams) {
+ this.register('hashTypes', '{}');
+ this.register('hashContexts', '{}');
+ }
+ },
+ pushHash: function() {
+ this.hash = {values: [], types: [], contexts: []};
+ },
+ popHash: function() {
+ var hash = this.hash;
+ this.hash = undefined;
+
+ if (this.options.stringParams) {
+ this.register('hashContexts', '{' + hash.contexts.join(',') + '}');
+ this.register('hashTypes', '{' + hash.types.join(',') + '}');
+ }
+ this.push('{\n ' + hash.values.join(',\n ') + '\n }');
+ },
+
+ // [pushString]
+ //
+ // On stack, before: ...
+ // On stack, after: quotedString(string), ...
+ //
+ // Push a quoted version of `string` onto the stack
+ pushString: function(string) {
+ this.pushStackLiteral(this.quotedString(string));
+ },
+
+ // [push]
+ //
+ // On stack, before: ...
+ // On stack, after: expr, ...
+ //
+ // Push an expression onto the stack
+ push: function(expr) {
+ this.inlineStack.push(expr);
+ return expr;
+ },
+
+ // [pushLiteral]
+ //
+ // On stack, before: ...
+ // On stack, after: value, ...
+ //
+ // Pushes a value onto the stack. This operation prevents
+ // the compiler from creating a temporary variable to hold
+ // it.
+ pushLiteral: function(value) {
+ this.pushStackLiteral(value);
+ },
+
+ // [pushProgram]
+ //
+ // On stack, before: ...
+ // On stack, after: program(guid), ...
+ //
+ // Push a program expression onto the stack. This takes
+ // a compile-time guid and converts it into a runtime-accessible
+ // expression.
+ pushProgram: function(guid) {
+ if (guid != null) {
+ this.pushStackLiteral(this.programExpression(guid));
+ } else {
+ this.pushStackLiteral(null);
+ }
+ },
+
+ // [invokeHelper]
+ //
+ // On stack, before: hash, inverse, program, params..., ...
+ // On stack, after: result of helper invocation
+ //
+ // Pops off the helper's parameters, invokes the helper,
+ // and pushes the helper's return value onto the stack.
+ //
+ // If the helper is not found, `helperMissing` is called.
+ invokeHelper: function(paramSize, name) {
+ this.context.aliases.helperMissing = 'helpers.helperMissing';
+
+ var helper = this.lastHelper = this.setupHelper(paramSize, name, true);
+ var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');
+
+ this.push(helper.name + ' || ' + nonHelper);
+ this.replaceStack(function(name) {
+ return name + ' ? ' + name + '.call(' +
+ helper.callParams + ") " + ": helperMissing.call(" +
+ helper.helperMissingParams + ")";
+ });
+ },
+
+ // [invokeKnownHelper]
+ //
+ // On stack, before: hash, inverse, program, params..., ...
+ // On stack, after: result of helper invocation
+ //
+ // This operation is used when the helper is known to exist,
+ // so a `helperMissing` fallback is not required.
+ invokeKnownHelper: function(paramSize, name) {
+ var helper = this.setupHelper(paramSize, name);
+ this.push(helper.name + ".call(" + helper.callParams + ")");
+ },
+
+ // [invokeAmbiguous]
+ //
+ // On stack, before: hash, inverse, program, params..., ...
+ // On stack, after: result of disambiguation
+ //
+ // This operation is used when an expression like `{{foo}}`
+ // is provided, but we don't know at compile-time whether it
+ // is a helper or a path.
+ //
+ // This operation emits more code than the other options,
+ // and can be avoided by passing the `knownHelpers` and
+ // `knownHelpersOnly` flags at compile-time.
+ invokeAmbiguous: function(name, helperCall) {
+ this.context.aliases.functionType = '"function"';
+
+ this.pushStackLiteral('{}'); // Hash value
+ var helper = this.setupHelper(0, name, helperCall);
+
+ var helperName = this.lastHelper = this.nameLookup('helpers', name, 'helper');
+
+ var nonHelper = this.nameLookup('depth' + this.lastContext, name, 'context');
+ var nextStack = this.nextStack();
+
+ this.pushSource('if (' + nextStack + ' = ' + helperName + ') { ' + nextStack + ' = ' + nextStack + '.call(' + helper.callParams + '); }');
+ this.pushSource('else { ' + nextStack + ' = ' + nonHelper + '; ' + nextStack + ' = typeof ' + nextStack + ' === functionType ? ' + nextStack + '.call(' + helper.callParams + ') : ' + nextStack + '; }');
+ },
+
+ // [invokePartial]
+ //
+ // On stack, before: context, ...
+ // On stack after: result of partial invocation
+ //
+ // This operation pops off a context, invokes a partial with that context,
+ // and pushes the result of the invocation back.
+ invokePartial: function(name) {
+ var params = [this.nameLookup('partials', name, 'partial'), "'" + name + "'", this.popStack(), "helpers", "partials"];
+
+ if (this.options.data) {
+ params.push("data");
+ }
+
+ this.context.aliases.self = "this";
+ this.push("self.invokePartial(" + params.join(", ") + ")");
+ },
+
+ // [assignToHash]
+ //
+ // On stack, before: value, hash, ...
+ // On stack, after: hash, ...
+ //
+ // Pops a value and hash off the stack, assigns `hash[key] = value`
+ // and pushes the hash back onto the stack.
+ assignToHash: function(key) {
+ var value = this.popStack(),
+ context,
+ type;
+
+ if (this.options.stringParams) {
+ type = this.popStack();
+ context = this.popStack();
+ }
+
+ var hash = this.hash;
+ if (context) {
+ hash.contexts.push("'" + key + "': " + context);
+ }
+ if (type) {
+ hash.types.push("'" + key + "': " + type);
+ }
+ hash.values.push("'" + key + "': (" + value + ")");
+ },
+
+ // HELPERS
+
+ compiler: JavaScriptCompiler,
+
+ compileChildren: function(environment, options) {
+ var children = environment.children, child, compiler;
+
+ for(var i=0, l=children.length; i<l; i++) {
+ child = children[i];
+ compiler = new this.compiler();
+
+ var index = this.matchExistingProgram(child);
+
+ if (index == null) {
+ this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children
+ index = this.context.programs.length;
+ child.index = index;
+ child.name = 'program' + index;
+ this.context.programs[index] = compiler.compile(child, options, this.context);
+ this.context.environments[index] = child;
+ } else {
+ child.index = index;
+ child.name = 'program' + index;
+ }
+ }
+ },
+ matchExistingProgram: function(child) {
+ for (var i = 0, len = this.context.environments.length; i < len; i++) {
+ var environment = this.context.environments[i];
+ if (environment && environment.equals(child)) {
+ return i;
+ }
+ }
+ },
+
+ programExpression: function(guid) {
+ this.context.aliases.self = "this";
+
+ if(guid == null) {
+ return "self.noop";
+ }
+
+ var child = this.environment.children[guid],
+ depths = child.depths.list, depth;
+
+ var programParams = [child.index, child.name, "data"];
+
+ for(var i=0, l = depths.length; i<l; i++) {
+ depth = depths[i];
+
+ if(depth === 1) { programParams.push("depth0"); }
+ else { programParams.push("depth" + (depth - 1)); }
+ }
+
+ return (depths.length === 0 ? "self.program(" : "self.programWithDepth(") + programParams.join(", ") + ")";
+ },
+
+ register: function(name, val) {
+ this.useRegister(name);
+ this.pushSource(name + " = " + val + ";");
+ },
+
+ useRegister: function(name) {
+ if(!this.registers[name]) {
+ this.registers[name] = true;
+ this.registers.list.push(name);
+ }
+ },
+
+ pushStackLiteral: function(item) {
+ return this.push(new Literal(item));
+ },
+
+ pushSource: function(source) {
+ if (this.pendingContent) {
+ this.source.push(this.appendToBuffer(this.quotedString(this.pendingContent)));
+ this.pendingContent = undefined;
+ }
+
+ if (source) {
+ this.source.push(source);
+ }
+ },
+
+ pushStack: function(item) {
+ this.flushInline();
+
+ var stack = this.incrStack();
+ if (item) {
+ this.pushSource(stack + " = " + item + ";");
+ }
+ this.compileStack.push(stack);
+ return stack;
+ },
+
+ replaceStack: function(callback) {
+ var prefix = '',
+ inline = this.isInline(),
+ stack;
+
+ // If we are currently inline then we want to merge the inline statement into the
+ // replacement statement via ','
+ if (inline) {
+ var top = this.popStack(true);
+
+ if (top instanceof Literal) {
+ // Literals do not need to be inlined
+ stack = top.value;
+ } else {
+ // Get or create the current stack name for use by the inline
+ var name = this.stackSlot ? this.topStackName() : this.incrStack();
+
+ prefix = '(' + this.push(name) + ' = ' + top + '),';
+ stack = this.topStack();
+ }
+ } else {
+ stack = this.topStack();
+ }
+
+ var item = callback.call(this, stack);
+
+ if (inline) {
+ if (this.inlineStack.length || this.compileStack.length) {
+ this.popStack();
+ }
+ this.push('(' + prefix + item + ')');
+ } else {
+ // Prevent modification of the context depth variable. Through replaceStack
+ if (!/^stack/.test(stack)) {
+ stack = this.nextStack();
+ }
+
+ this.pushSource(stack + " = (" + prefix + item + ");");
+ }
+ return stack;
+ },
+
+ nextStack: function() {
+ return this.pushStack();
+ },
+
+ incrStack: function() {
+ this.stackSlot++;
+ if(this.stackSlot > this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); }
+ return this.topStackName();
+ },
+ topStackName: function() {
+ return "stack" + this.stackSlot;
+ },
+ flushInline: function() {
+ var inlineStack = this.inlineStack;
+ if (inlineStack.length) {
+ this.inlineStack = [];
+ for (var i = 0, len = inlineStack.length; i < len; i++) {
+ var entry = inlineStack[i];
+ if (entry instanceof Literal) {
+ this.compileStack.push(entry);
+ } else {
+ this.pushStack(entry);
+ }
+ }
+ }
+ },
+ isInline: function() {
+ return this.inlineStack.length;
+ },
+
+ popStack: function(wrapped) {
+ var inline = this.isInline(),
+ item = (inline ? this.inlineStack : this.compileStack).pop();
+
+ if (!wrapped && (item instanceof Literal)) {
+ return item.value;
+ } else {
+ if (!inline) {
+ this.stackSlot--;
+ }
+ return item;
+ }
+ },
+
+ topStack: function(wrapped) {
+ var stack = (this.isInline() ? this.inlineStack : this.compileStack),
+ item = stack[stack.length - 1];
+
+ if (!wrapped && (item instanceof Literal)) {
+ return item.value;
+ } else {
+ return item;
+ }
+ },
+
+ quotedString: function(str) {
+ return '"' + str
+ .replace(/\\/g, '\\\\')
+ .replace(/"/g, '\\"')
+ .replace(/\n/g, '\\n')
+ .replace(/\r/g, '\\r')
+ .replace(/\u2028/g, '\\u2028') // Per Ecma-262 7.3 + 7.8.4
+ .replace(/\u2029/g, '\\u2029') + '"';
+ },
+
+ setupHelper: function(paramSize, name, missingParams) {
+ var params = [];
+ this.setupParams(paramSize, params, missingParams);
+ var foundHelper = this.nameLookup('helpers', name, 'helper');
+
+ return {
+ params: params,
+ name: foundHelper,
+ callParams: ["depth0"].concat(params).join(", "),
+ helperMissingParams: missingParams && ["depth0", this.quotedString(name)].concat(params).join(", ")
+ };
+ },
+
+ // the params and contexts arguments are passed in arrays
+ // to fill in
+ setupParams: function(paramSize, params, useRegister) {
+ var options = [], contexts = [], types = [], param, inverse, program;
+
+ options.push("hash:" + this.popStack());
+
+ inverse = this.popStack();
+ program = this.popStack();
+
+ // Avoid setting fn and inverse if neither are set. This allows
+ // helpers to do a check for `if (options.fn)`
+ if (program || inverse) {
+ if (!program) {
+ this.context.aliases.self = "this";
+ program = "self.noop";
+ }
+
+ if (!inverse) {
+ this.context.aliases.self = "this";
+ inverse = "self.noop";
+ }
+
+ options.push("inverse:" + inverse);
+ options.push("fn:" + program);
+ }
+
+ for(var i=0; i<paramSize; i++) {
+ param = this.popStack();
+ params.push(param);
+
+ if(this.options.stringParams) {
+ types.push(this.popStack());
+ contexts.push(this.popStack());
+ }
+ }
+
+ if (this.options.stringParams) {
+ options.push("contexts:[" + contexts.join(",") + "]");
+ options.push("types:[" + types.join(",") + "]");
+ options.push("hashContexts:hashContexts");
+ options.push("hashTypes:hashTypes");
+ }
+
+ if(this.options.data) {
+ options.push("data:data");
+ }
+
+ options = "{" + options.join(",") + "}";
+ if (useRegister) {
+ this.register('options', options);
+ params.push('options');
+ } else {
+ params.push(options);
+ }
+ return params.join(", ");
+ }
+ };
+
+ var reservedWords = (
+ "break else new var" +
+ " case finally return void" +
+ " catch for switch while" +
+ " continue function this with" +
+ " default if throw" +
+ " delete in try" +
+ " do instanceof typeof" +
+ " abstract enum int short" +
+ " boolean export interface static" +
+ " byte extends long super" +
+ " char final native synchronized" +
+ " class float package throws" +
+ " const goto private transient" +
+ " debugger implements protected volatile" +
+ " double import public let yield"
+ ).split(" ");
+
+ var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {};
+
+ for(var i=0, l=reservedWords.length; i<l; i++) {
+ compilerWords[reservedWords[i]] = true;
+ }
+
+ JavaScriptCompiler.isValidJavaScriptVariableName = function(name) {
+ if(!JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(name)) {
+ return true;
+ }
+ return false;
+ };
+
+ __exports__ = JavaScriptCompiler;
+ return __exports__;
+})(__module2__);
+
+// handlebars/compiler/compiler.js
+var __module10__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__) {
+ "use strict";
+ var __exports__ = {};
+ var Exception = __dependency1__;
+ var parse = __dependency2__.parse;
+ var JavaScriptCompiler = __dependency3__;
+ var AST = __dependency4__;
+
+ function Compiler() {}
+
+ __exports__.Compiler = Compiler;// the foundHelper register will disambiguate helper lookup from finding a
+ // function in a context. This is necessary for mustache compatibility, which
+ // requires that context functions in blocks are evaluated by blockHelperMissing,
+ // and then proceed as if the resulting value was provided to blockHelperMissing.
+
+ Compiler.prototype = {
+ compiler: Compiler,
+
+ disassemble: function() {
+ var opcodes = this.opcodes, opcode, out = [], params, param;
+
+ for (var i=0, l=opcodes.length; i<l; i++) {
+ opcode = opcodes[i];
+
+ if (opcode.opcode === 'DECLARE') {
+ out.push("DECLARE " + opcode.name + "=" + opcode.value);
+ } else {
+ params = [];
+ for (var j=0; j<opcode.args.length; j++) {
+ param = opcode.args[j];
+ if (typeof param === "string") {
+ param = "\"" + param.replace("\n", "\\n") + "\"";
+ }
+ params.push(param);
+ }
+ out.push(opcode.opcode + " " + params.join(" "));
+ }
+ }
+
+ return out.join("\n");
+ },
+
+ equals: function(other) {
+ var len = this.opcodes.length;
+ if (other.opcodes.length !== len) {
+ return false;
+ }
+
+ for (var i = 0; i < len; i++) {
+ var opcode = this.opcodes[i],
+ otherOpcode = other.opcodes[i];
+ if (opcode.opcode !== otherOpcode.opcode || opcode.args.length !== otherOpcode.args.length) {
+ return false;
+ }
+ for (var j = 0; j < opcode.args.length; j++) {
+ if (opcode.args[j] !== otherOpcode.args[j]) {
+ return false;
+ }
+ }
+ }
+
+ len = this.children.length;
+ if (other.children.length !== len) {
+ return false;
+ }
+ for (i = 0; i < len; i++) {
+ if (!this.children[i].equals(other.children[i])) {
+ return false;
+ }
+ }
+
+ return true;
+ },
+
+ guid: 0,
+
+ compile: function(program, options) {
+ this.opcodes = [];
+ this.children = [];
+ this.depths = {list: []};
+ this.options = options;
+
+ // These changes will propagate to the other compiler components
+ var knownHelpers = this.options.knownHelpers;
+ this.options.knownHelpers = {
+ 'helperMissing': true,
+ 'blockHelperMissing': true,
+ 'each': true,
+ 'if': true,
+ 'unless': true,
+ 'with': true,
+ 'log': true
+ };
+ if (knownHelpers) {
+ for (var name in knownHelpers) {
+ this.options.knownHelpers[name] = knownHelpers[name];
+ }
+ }
+
+ return this.accept(program);
+ },
+
+ accept: function(node) {
+ var strip = node.strip || {},
+ ret;
+ if (strip.left) {
+ this.opcode('strip');
+ }
+
+ ret = this[node.type](node);
+
+ if (strip.right) {
+ this.opcode('strip');
+ }
+
+ return ret;
+ },
+
+ program: function(program) {
+ var statements = program.statements;
+
+ for(var i=0, l=statements.length; i<l; i++) {
+ this.accept(statements[i]);
+ }
+ this.isSimple = l === 1;
+
+ this.depths.list = this.depths.list.sort(function(a, b) {
+ return a - b;
+ });
+
+ return this;
+ },
+
+ compileProgram: function(program) {
+ var result = new this.compiler().compile(program, this.options);
+ var guid = this.guid++, depth;
+
+ this.usePartial = this.usePartial || result.usePartial;
+
+ this.children[guid] = result;
+
+ for(var i=0, l=result.depths.list.length; i<l; i++) {
+ depth = result.depths.list[i];
+
+ if(depth < 2) { continue; }
+ else { this.addDepth(depth - 1); }
+ }
+
+ return guid;
+ },
+
+ block: function(block) {
+ var mustache = block.mustache,
+ program = block.program,
+ inverse = block.inverse;
+
+ if (program) {
+ program = this.compileProgram(program);
+ }
+
+ if (inverse) {
+ inverse = this.compileProgram(inverse);
+ }
+
+ var type = this.classifyMustache(mustache);
+
+ if (type === "helper") {
+ this.helperMustache(mustache, program, inverse);
+ } else if (type === "simple") {
+ this.simpleMustache(mustache);
+
+ // now that the simple mustache is resolved, we need to
+ // evaluate it by executing `blockHelperMissing`
+ this.opcode('pushProgram', program);
+ this.opcode('pushProgram', inverse);
+ this.opcode('emptyHash');
+ this.opcode('blockValue');
+ } else {
+ this.ambiguousMustache(mustache, program, inverse);
+
+ // now that the simple mustache is resolved, we need to
+ // evaluate it by executing `blockHelperMissing`
+ this.opcode('pushProgram', program);
+ this.opcode('pushProgram', inverse);
+ this.opcode('emptyHash');
+ this.opcode('ambiguousBlockValue');
+ }
+
+ this.opcode('append');
+ },
+
+ hash: function(hash) {
+ var pairs = hash.pairs, pair, val;
+
+ this.opcode('pushHash');
+
+ for(var i=0, l=pairs.length; i<l; i++) {
+ pair = pairs[i];
+ val = pair[1];
+
+ if (this.options.stringParams) {
+ if(val.depth) {
+ this.addDepth(val.depth);
+ }
+ this.opcode('getContext', val.depth || 0);
+ this.opcode('pushStringParam', val.stringModeValue, val.type);
+ } else {
+ this.accept(val);
+ }
+
+ this.opcode('assignToHash', pair[0]);
+ }
+ this.opcode('popHash');
+ },
+
+ partial: function(partial) {
+ var partialName = partial.partialName;
+ this.usePartial = true;
+
+ if(partial.context) {
+ this.ID(partial.context);
+ } else {
+ this.opcode('push', 'depth0');
+ }
+
+ this.opcode('invokePartial', partialName.name);
+ this.opcode('append');
+ },
+
+ content: function(content) {
+ this.opcode('appendContent', content.string);
+ },
+
+ mustache: function(mustache) {
+ var options = this.options;
+ var type = this.classifyMustache(mustache);
+
+ if (type === "simple") {
+ this.simpleMustache(mustache);
+ } else if (type === "helper") {
+ this.helperMustache(mustache);
+ } else {
+ this.ambiguousMustache(mustache);
+ }
+
+ if(mustache.escaped && !options.noEscape) {
+ this.opcode('appendEscaped');
+ } else {
+ this.opcode('append');
+ }
+ },
+
+ ambiguousMustache: function(mustache, program, inverse) {
+ var id = mustache.id,
+ name = id.parts[0],
+ isBlock = program != null || inverse != null;
+
+ this.opcode('getContext', id.depth);
+
+ this.opcode('pushProgram', program);
+ this.opcode('pushProgram', inverse);
+
+ this.opcode('invokeAmbiguous', name, isBlock);
+ },
+
+ simpleMustache: function(mustache) {
+ var id = mustache.id;
+
+ if (id.type === 'DATA') {
+ this.DATA(id);
+ } else if (id.parts.length) {
+ this.ID(id);
+ } else {
+ // Simplified ID for `this`
+ this.addDepth(id.depth);
+ this.opcode('getContext', id.depth);
+ this.opcode('pushContext');
+ }
+
+ this.opcode('resolvePossibleLambda');
+ },
+
+ helperMustache: function(mustache, program, inverse) {
+ var params = this.setupFullMustacheParams(mustache, program, inverse),
+ name = mustache.id.parts[0];
+
+ if (this.options.knownHelpers[name]) {
+ this.opcode('invokeKnownHelper', params.length, name);
+ } else if (this.options.knownHelpersOnly) {
+ throw new Error("You specified knownHelpersOnly, but used the unknown helper " + name);
+ } else {
+ this.opcode('invokeHelper', params.length, name);
+ }
+ },
+
+ ID: function(id) {
+ this.addDepth(id.depth);
+ this.opcode('getContext', id.depth);
+
+ var name = id.parts[0];
+ if (!name) {
+ this.opcode('pushContext');
+ } else {
+ this.opcode('lookupOnContext', id.parts[0]);
+ }
+
+ for(var i=1, l=id.parts.length; i<l; i++) {
+ this.opcode('lookup', id.parts[i]);
+ }
+ },
+
+ DATA: function(data) {
+ this.options.data = true;
+ if (data.id.isScoped || data.id.depth) {
+ throw new Exception('Scoped data references are not supported: ' + data.original);
+ }
+
+ this.opcode('lookupData');
+ var parts = data.id.parts;
+ for(var i=0, l=parts.length; i<l; i++) {
+ this.opcode('lookup', parts[i]);
+ }
+ },
+
+ STRING: function(string) {
+ this.opcode('pushString', string.string);
+ },
+
+ INTEGER: function(integer) {
+ this.opcode('pushLiteral', integer.integer);
+ },
+
+ BOOLEAN: function(bool) {
+ this.opcode('pushLiteral', bool.bool);
+ },
+
+ comment: function() {},
+
+ // HELPERS
+ opcode: function(name) {
+ this.opcodes.push({ opcode: name, args: [].slice.call(arguments, 1) });
+ },
+
+ declare: function(name, value) {
+ this.opcodes.push({ opcode: 'DECLARE', name: name, value: value });
+ },
+
+ addDepth: function(depth) {
+ if(isNaN(depth)) { throw new Error("EWOT"); }
+ if(depth === 0) { return; }
+
+ if(!this.depths[depth]) {
+ this.depths[depth] = true;
+ this.depths.list.push(depth);
+ }
+ },
+
+ classifyMustache: function(mustache) {
+ var isHelper = mustache.isHelper;
+ var isEligible = mustache.eligibleHelper;
+ var options = this.options;
+
+ // if ambiguous, we can possibly resolve the ambiguity now
+ if (isEligible && !isHelper) {
+ var name = mustache.id.parts[0];
+
+ if (options.knownHelpers[name]) {
+ isHelper = true;
+ } else if (options.knownHelpersOnly) {
+ isEligible = false;
+ }
+ }
+
+ if (isHelper) { return "helper"; }
+ else if (isEligible) { return "ambiguous"; }
+ else { return "simple"; }
+ },
+
+ pushParams: function(params) {
+ var i = params.length, param;
+
+ while(i--) {
+ param = params[i];
+
+ if(this.options.stringParams) {
+ if(param.depth) {
+ this.addDepth(param.depth);
+ }
+
+ this.opcode('getContext', param.depth || 0);
+ this.opcode('pushStringParam', param.stringModeValue, param.type);
+ } else {
+ this[param.type](param);
+ }
+ }
+ },
+
+ setupMustacheParams: function(mustache) {
+ var params = mustache.params;
+ this.pushParams(params);
+
+ if(mustache.hash) {
+ this.hash(mustache.hash);
+ } else {
+ this.opcode('emptyHash');
+ }
+
+ return params;
+ },
+
+ // this will replace setupMustacheParams when we're done
+ setupFullMustacheParams: function(mustache, program, inverse) {
+ var params = mustache.params;
+ this.pushParams(params);
+
+ this.opcode('pushProgram', program);
+ this.opcode('pushProgram', inverse);
+
+ if(mustache.hash) {
+ this.hash(mustache.hash);
+ } else {
+ this.opcode('emptyHash');
+ }
+
+ return params;
+ }
+ };
+
+ function precompile(input, options) {
+ if (input == null || (typeof input !== 'string' && input.constructor !== AST.ProgramNode)) {
+ throw new Exception("You must pass a string or Handlebars AST to Handlebars.precompile. You passed " + input);
+ }
+
+ options = options || {};
+ if (!('data' in options)) {
+ options.data = true;
+ }
+
+ var ast = parse(input);
+ var environment = new Compiler().compile(ast, options);
+ return new JavaScriptCompiler().compile(environment, options);
+ }
+
+ __exports__.precompile = precompile;function compile(input, options, env) {
+ if (input == null || (typeof input !== 'string' && input.constructor !== AST.ProgramNode)) {
+ throw new Exception("You must pass a string or Handlebars AST to Handlebars.compile. You passed " + input);
+ }
+
+ options = options || {};
+
+ if (!('data' in options)) {
+ options.data = true;
+ }
+
+ var compiled;
+
+ function compileInput() {
+ var ast = parse(input);
+ var environment = new Compiler().compile(ast, options);
+ var templateSpec = new JavaScriptCompiler().compile(environment, options, undefined, true);
+ return env.template(templateSpec);
+ }
+
+ // Template is only compiled on first use and cached after that point.
+ return function(context, options) {
+ if (!compiled) {
+ compiled = compileInput();
+ }
+ return compiled.call(this, context, options);
+ };
+ }
+
+ __exports__.compile = compile;
+ return __exports__;
+})(__module5__, __module8__, __module11__, __module7__);
+
+// handlebars.js
+var __module0__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__) {
+ "use strict";
+ var __exports__;
+ var Handlebars = __dependency1__;
+
+ // Compiler imports
+ var AST = __dependency2__;
+ var Parser = __dependency3__.parser;
+ var parse = __dependency3__.parse;
+ var Compiler = __dependency4__.Compiler;
+ var compile = __dependency4__.compile;
+ var precompile = __dependency4__.precompile;
+ var JavaScriptCompiler = __dependency5__;
+
+ var _create = Handlebars.create;
+ var create = function() {
+ var hb = _create();
+
+ hb.compile = function(input, options) {
+ return compile(input, options, hb);
+ };
+ hb.precompile = precompile;
+
+ hb.AST = AST;
+ hb.Compiler = Compiler;
+ hb.JavaScriptCompiler = JavaScriptCompiler;
+ hb.Parser = Parser;
+ hb.parse = parse;
+
+ return hb;
+ };
+
+ Handlebars = create();
+ Handlebars.create = create;
+
+ __exports__ = Handlebars;
+ return __exports__;
+})(__module1__, __module7__, __module8__, __module10__, __module11__);
+
+ return __module0__;
+})();
--- /dev/null
+
+/*
+ * Copyright 2013 Geraint Luff <http://geraintluff.github.io/tv4/>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+define(function() {
+
+ var highlight = {};
+
+ var REGEX = {
+ whitespace: /^([ \r\n\t]| )*/,
+ number: /^-?[0-9]+(\.[0-9]+)?([eE][+\-]?[0-9]+)?/
+ };
+
+ function Highlighter(stringData) {
+ this.remaining = stringData;
+ this.html = "";
+ }
+ Highlighter.prototype = {
+ unshift: function (next) {
+ this.remaining = next + this.remaining;
+ },
+ next: function () {
+ this.whitespace();
+ return this.nextCharacter();
+ },
+ nextCharacter: function () {
+ if (this.remaining.length == 0) {
+ throw new Error("Unexpected end of input");
+ }
+ if (this.remaining[0] == "&") {
+ var endIndex = this.remaining.indexOf(";") + 1;
+ if (endIndex == -1) {
+ endIndex = 1;
+ }
+ var result = this.remaining.substring(0, endIndex);
+ this.remaining = this.remaining.substring(endIndex);
+ return result;
+ }
+ var result = this.remaining[0];
+ this.remaining = this.remaining.substring(1);
+ return result;
+ },
+ whitespace: function () {
+ var ws = this.remaining.match(REGEX.whitespace)[0];
+ this.html += ws;
+ this.remaining = this.remaining.substring(ws.length);
+ },
+ highlightJson: function (keywords) {
+ if (keywords != undefined) {
+ this.html += keywords.wrapper[0];
+ }
+ this.whitespace();
+ var next = this.next();
+ if (next == "{") {
+ this.highlightObject(keywords);
+ } else if (next == '[') {
+ this.highlightArray(keywords);
+ } else if (next == '"' || next == """) {
+ this.highlightString();
+ } else if ((next + this.remaining).match(REGEX.number)) {
+ var numberString = (next + this.remaining).match(REGEX.number)[0];
+ this.html += '<span class="json-number">' + numberString + '</span>';
+ this.remaining = this.remaining.substring(numberString.length - 1);
+ } else if (next == "n" && this.remaining.substring(0, 3) == "ull") {
+ this.remaining = this.remaining.substring(3);
+ this.html += '<span class="json-null">null</span>';
+ } else if (next == "t" && this.remaining.substring(0, 3) == "rue") {
+ this.remaining = this.remaining.substring(3);
+ this.html += '<span class="json-true">true</span>';
+ } else if (next == "f" && this.remaining.substring(0, 4) == "alse") {
+ this.remaining = this.remaining.substring(4);
+ this.html += '<span class="json-false">false</span>';
+ } else {
+ this.html += next;
+ this.highlightJson(keywords);
+ }
+ if (keywords != undefined) {
+ this.html += keywords.wrapper[1];
+ }
+ },
+ highlightObject: function (keywords) {
+ this.html += '<span class="json-punctuation">{</span>';
+ var next = this.next();
+ while (next != "}") {
+ if (next == '"' || next == """) {
+ var keyHtml = "";
+ next = this.next();
+ while (next != '"' && next != '"') {
+ if (next == "\\") {
+ keyHtml += next;
+ next = this.nextCharacter();
+ }
+ keyHtml += next;
+ next = this.next();
+ }
+ if (keywords != undefined && keywords.isKeyword(keyHtml)) {
+ this.html += '<span class="json-keyword">"'
+ + keyHtml
+ + '"</span>';
+ } else {
+ this.html += '<span class="json-object-key">"'
+ + keyHtml
+ + '"</span>';
+ }
+ next = this.next();
+ while (next != ":") {
+ this.html += next;
+ next = this.next();
+ }
+ this.html += '<span class="json-punctuation">:</span>';
+ var nextKeywords = null;
+ if (keywords != undefined) {
+ nextKeywords = keywords.forKey(keyHtml);
+ }
+ this.highlightJson(nextKeywords);
+ next = this.next();
+ if (next == ",") {
+ this.html += '<span class="json-punctuation">,</span>';
+ next = this.next();
+ continue;
+ } else while (next != "}") {
+ this.html += next;
+ next = this.next();
+ }
+ } else {
+ this.html += next;
+ next = this.next();
+ }
+ }
+ this.html += '<span class="json-punctuation">}</span>';
+ },
+ highlightArray: function (keywords) {
+ this.html += '<span class="json-punctuation">[</span>';
+ var next = this.next();
+ var i = 0;
+ while (next != "]") {
+ this.unshift(next);
+ this.highlightJson(keywords != undefined ? keywords.forItem(i) : null);
+ next = this.next();
+ if (next == ",") {
+ this.html += '<span class="json-punctuation">,</span>';
+ next = this.next();
+ i++;
+ continue;
+ } else while (next != "]") {
+ this.html += next;
+ next = this.next();
+ }
+ }
+ this.html += '<span class="json-punctuation">]</span>';
+ },
+ highlightString: function () {
+ this.html += '<span class="json-punctuation">"</span><span class="json-string">';
+ next = this.next();
+ while (next != '"' && next != '"') {
+ if (next == "\\") {
+ this.html += next;
+ next = this.nextCharacter();
+ }
+ this.html += next;
+ next = this.next();
+ }
+ this.html += '</span><span class="json-punctuation">"</span>';
+ }
+ };
+
+ function KeywordMap() {
+ }
+ KeywordMap.prototype = {
+ wrapper: ["<span>", "</span>"],
+ keywords: {},
+ isKeyword: function (keyHtml) {
+ return this.keywords[keyHtml] !== undefined;
+ },
+ forKey: function (keyHtml) {
+ return this.keywords[keyHtml];
+ },
+ forItem: function (keyHtml) {
+ return null;
+ }
+ };
+ var schema = new KeywordMap();
+ var schemaMedia = new KeywordMap();
+ var mapToSchemas = new KeywordMap();
+ var links = new KeywordMap();
+ schema.keywords = {
+ // from v3
+ type: null,
+ properties: mapToSchemas,
+ patternProperties: mapToSchemas,
+ additionalProperties: schema,
+ items: schema,
+ additionalItems: schema,
+ required: null,
+ dependencies: mapToSchemas,
+ minimum: null,
+ maximum: null,
+ exclusiveMinimum: null,
+ exclusiveMaximum: null,
+ minItems: null,
+ maxItems: null,
+ uniqueItems: null,
+ pattern: null,
+ minLength: null,
+ maxLength: null,
+ "enum": null,
+ "default": null,
+ title: null,
+ description: null,
+ format: null,
+ divisibleBy: null,
+ disallow: schema,
+ "extends": schema,
+ "id": null,
+ "$ref": null,
+ "$schema": null,
+ // from v4 core
+ multipleOf: null,
+ maxProperties: null,
+ minProperties: null,
+ allOf: schema,
+ anyOf: schema,
+ oneOf: schema,
+ not: schema,
+ definitions: mapToSchemas,
+ // from v4 hyper-schema
+ media: schemaMedia,
+ links: links,
+ pathStart: null,
+ fragmentResolution: null
+ };
+ schema.forItem = function () {
+ return schema;
+ };
+ schemaMedia.keywords = {
+ binaryEncoding: null,
+ type: null
+ };
+ mapToSchemas.wrapper = ['<span class="json-schema-map">', '</span>'];
+ mapToSchemas.forKey = function () {
+ return schema;
+ };
+ links.keywords = {
+ rel: null,
+ href:null,
+ method: null,
+ encType: null,
+ pathStart: null,
+ schema: schema,
+ targetSchema: schema
+ };
+ links.forItem = function () {
+ return links;
+ };
+
+ function highlightElement(element, keywords) {
+ var highlighter = new Highlighter(element.innerHTML);
+ try {
+ highlighter.highlightJson(keywords);
+ } catch (e) {
+ throw e;
+ }
+ element.innerHTML = highlighter.html + highlighter.remaining;
+ }
+
+ if (document.getElementsByClassName == undefined) {
+ document.getElementsByClassName = function(className)
+ {
+ var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
+ var allElements = document.getElementsByTagName("*");
+ var results = [];
+
+ var element;
+ for (var i = 0; (element = allElements[i]) != null; i++) {
+ var elementClass = element.className;
+ if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
+ results.push(element);
+ }
+
+ return results;
+ }
+ }
+
+ highlight.highlightSchema = function(element) {
+ highlightElement(element, schema);
+ }
+
+ return highlight;
+});
--- /dev/null
+/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
+//@ sourceMappingURL=jquery-1.10.2.min.map
+*/
+(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
+}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
+u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
--- /dev/null
+/**
+ * @author Alexey Kuzmin <alex.s.kuzmin@gmail.com>
+ * @fileoverview JavaScript implementation of JSON Pointer.
+ * @see http://tools.ietf.org/html/rfc6901
+ */
+
+
+
+;(function() {
+ 'use strict';
+
+ /**
+ * List of special characters and their escape sequences.
+ * Special characters will be unescaped in order they are listed.
+ * Section 3 of spec.
+ * @type {Array.<Array.<string>>}
+ * @const
+ */
+ var SPECIAL_CHARACTERS = [
+ ['/', '~1'],
+ ['~', '~0']
+ ];
+
+
+ /**
+ * Tokens' separator in JSON pointer string.
+ * Section 3 of spec.
+ * @type {string}
+ * @const
+ */
+ var TOKENS_SEPARATOR = '/';
+
+
+ /**
+ * Prefix for error messages.
+ * @type {string}
+ * @const
+ */
+ var ERROR_MESSAGE_PREFIX = 'JSON Pointer: ';
+
+
+ /**
+ * Validates non-empty pointer string.
+ * @type {RegExp}
+ * @const
+ */
+ var NON_EMPTY_POINTER_REGEXP = /(\/[^\/]*)+/;
+
+
+ /**
+ * List of error messages.
+ * Please keep it in alphabetical order.
+ * @enum {string}
+ */
+ var ErrorMessage = {
+ HYPHEN_IS_NOT_SUPPORTED_IN_ARRAY_CONTEXT:
+ 'Implementation does not support "-" token for arrays.',
+ INVALID_DOCUMENT: 'JSON document is not valid.',
+ INVALID_DOCUMENT_TYPE: 'JSON document must be a string or object.',
+ INVALID_POINTER: 'Pointer is not valid.',
+ NON_NUMBER_TOKEN_IN_ARRAY_CONTEXT:
+ 'Non-number tokens cannot be used in array context.',
+ TOKEN_WITH_LEADING_ZERO_IN_ARRAY_CONTEXT:
+ 'Token with leading zero cannot be used in array context.'
+ };
+
+
+ /**
+ * Returns |target| object's value pointed by |opt_pointer|, returns undefined
+ * if |opt_pointer| points to non-existing value.
+ * If pointer is not provided, validates first argument and returns
+ * evaluator function that takes pointer as argument.
+ * @param {(string|Object|Array)} target Evaluation target.
+ * @param {string=} opt_pointer JSON Pointer string.
+ * @returns {*} Some value.
+ */
+ function getPointedValue(target, opt_pointer) {
+ // .get() method implementation.
+
+ // First argument must be either string or object.
+ if (isString(target)) {
+
+ // If string it must be valid JSON document.
+ try {
+ // Let's try to parse it as JSON.
+ target = JSON.parse(target);
+ }
+ catch (e) {
+ // If parsing failed, an exception will be thrown.
+ throw getError(ErrorMessage.INVALID_DOCUMENT);
+ }
+ }
+ else if (!isObject(target)) {
+ // If not object or string, an exception will be thrown.
+ throw getError(ErrorMessage.INVALID_DOCUMENT_TYPE);
+ }
+
+ // |target| is already parsed, let's create evaluator function for it.
+ var evaluator = createPointerEvaluator(target);
+
+ if (isUndefined(opt_pointer)) {
+ // If pointer was not provided, return evaluator function.
+ return evaluator;
+ }
+ else {
+ // If pointer is provided, return evaluation result.
+ return evaluator(opt_pointer);
+ }
+ }
+
+
+ /**
+ * Returns function that takes JSON Pointer as single argument
+ * and evaluates it in given |target| context.
+ * Returned function throws an exception if pointer is not valid
+ * or any error occurs during evaluation.
+ * @param {*} target Evaluation target.
+ * @returns {Function}
+ */
+ function createPointerEvaluator(target) {
+
+ // Use cache to store already received values.
+ var cache = {};
+
+ return function(pointer) {
+
+ if (!isValidJSONPointer(pointer)) {
+ // If it's not, an exception will be thrown.
+ throw getError(ErrorMessage.INVALID_POINTER);
+ }
+
+ // First, look up in the cache.
+ if (cache.hasOwnProperty(pointer)) {
+ // If cache entry exists, return it's value.
+ return cache[pointer];
+ }
+
+ // Now, when all arguments are valid, we can start evaluation.
+ // First of all, let's convert JSON pointer string to tokens list.
+ var tokensList = parsePointer(pointer);
+ var token;
+ var value = target;
+
+ // Evaluation will be continued till tokens list is not empty
+ // and returned value is not an undefined.
+ while (!isUndefined(value) && !isUndefined(token = tokensList.pop())) {
+ // Let's evaluate token in current context.
+ // `getValue()` might throw an exception, but we won't handle it.
+ value = getValue(value, token);
+ }
+
+ // Pointer evaluation is done, save value in the cache and return it.
+ cache[pointer] = value;
+ return value;
+ };
+ }
+
+
+ /**
+ * Returns true if given |pointer| is valid, returns false otherwise.
+ * @param {!string} pointer
+ * @returns {boolean} Whether pointer is valid.
+ */
+ function isValidJSONPointer(pointer) {
+ // Validates JSON pointer string.
+
+ if (!isString(pointer)) {
+ // If it's not a string, it obviously is not valid.
+ return false;
+ }
+
+ if ('' === pointer) {
+ // If it is string and is an empty string, it's valid.
+ return true;
+ }
+
+ // If it is non-empty string, it must match spec defined format.
+ // Check Section 3 of specification for concrete syntax.
+ return NON_EMPTY_POINTER_REGEXP.test(pointer);
+ }
+
+
+ /**
+ * Returns tokens list for given |pointer|. List is reversed, e.g.
+ * '/simple/path' -> ['path', 'simple']
+ * @param {!string} pointer JSON pointer string.
+ * @returns {Array} List of tokens.
+ */
+ function parsePointer(pointer) {
+ // Converts JSON pointer string into tokens list.
+
+ // Let's split pointer string by tokens' separator character.
+ // Also we will reverse resulting array to simplify it's further usage.
+ var tokens = pointer.split(TOKENS_SEPARATOR).reverse();
+
+ // Last item in resulting array is always an empty string,
+ // we don't need it, let's remove it.
+ tokens.pop();
+
+ // Now tokens' array is ready to use, let's return it.
+ return tokens;
+ }
+
+
+ /**
+ * Decodes all escape sequences in given |rawReferenceToken|.
+ * @param {!string} rawReferenceToken
+ * @returns {string} Unescaped reference token.
+ */
+ function unescapeReferenceToken(rawReferenceToken) {
+ // Unescapes reference token. See Section 3 of specification.
+
+ var referenceToken = rawReferenceToken;
+ var character;
+ var escapeSequence;
+ var replaceRegExp;
+
+ // Order of unescaping does matter.
+ // That's why an array is used here and not hash.
+ SPECIAL_CHARACTERS.forEach(function(pair) {
+ character = pair[0];
+ escapeSequence = pair[1];
+ replaceRegExp = new RegExp(escapeSequence, 'g');
+ referenceToken = referenceToken.replace(replaceRegExp, character);
+ });
+
+ return referenceToken;
+ }
+
+
+ /**
+ * Returns value pointed by |token| in evaluation |context|.
+ * Throws an exception if any error occurs.
+ * @param {*} context Current evaluation context.
+ * @param {!string} token Unescaped reference token.
+ * @returns {*} Some value or undefined if value if not found.
+ */
+ function getValue(context, token) {
+ // Reference token evaluation. See Section 4 of spec.
+
+ // First of all we should unescape all special characters in token.
+ token = unescapeReferenceToken(token);
+
+ // Further actions depend of context of evaluation.
+
+ if (isArray(context)) {
+ // In array context there are more strict requirements
+ // for token value.
+
+ if ('-' === token) {
+ // Token cannot be a "-" character,
+ // it has no sense in current implementation.
+ throw getError(ErrorMessage.HYPHEN_IS_NOT_SUPPORTED_IN_ARRAY_CONTEXT);
+ }
+ if (!isNumber(token)) {
+ // Token cannot be non-number.
+ throw getError(ErrorMessage.NON_NUMBER_TOKEN_IN_ARRAY_CONTEXT);
+ }
+ if (token.length > 1 && '0' === token[0]) {
+ // Token cannot be non-zero number with leading zero.
+ throw getError(ErrorMessage.TOKEN_WITH_LEADING_ZERO_IN_ARRAY_CONTEXT);
+ }
+ // If all conditions are met, simply return element
+ // with token's value index.
+ // It might be undefined, but it's ok.
+ return context[token];
+ }
+
+ if (isObject(context)) {
+ // In object context we can simply return element w/ key equal to token.
+ // It might be undefined, but it's ok.
+ return context[token];
+ }
+
+ // If context is not an array or an object,
+ // token evaluation is not possible.
+ // This is the expected situation and so we won't throw an error,
+ // undefined value is perfectly suitable here.
+ return;
+ }
+
+
+ /**
+ * Returns Error instance for throwing.
+ * @param {string} message Error message.
+ * @returns {Error}
+ */
+ function getError(message) {
+ return new Error(ERROR_MESSAGE_PREFIX + message);
+ }
+
+
+ function isObject(o) {
+ return 'object' === typeof o && null !== o;
+ }
+
+
+ function isArray(a) {
+ return Array.isArray(a);
+ }
+
+
+ function isNumber(n) {
+ return !isNaN(Number(n));
+ }
+
+
+ function isString(s) {
+ return 'string' === typeof s || s instanceof String;
+ }
+
+
+ function isUndefined(v) {
+ return 'undefined' === typeof v;
+ }
+
+
+ // Let's expose API to the world.
+
+ var jsonpointer = {
+ get: getPointedValue
+ };
+
+ if ('object' === typeof exports) {
+ // If `exports` is an object, we are in Node.js context.
+ // We are supposed to act as Node.js package.
+ module.exports = jsonpointer;
+ } else if ('function' === typeof define && define.amd) {
+ // If there is global function `define()` and `define.amd` is defined,
+ // we are supposed to act as AMD module.
+ define(function() {
+ return jsonpointer;
+ });
+ } else {
+ // Last resort.
+ // Let's create global `jsonpointer` object.
+ this.jsonpointer = jsonpointer;
+ }
+
+}).call((function() {
+ 'use strict';
+ return (typeof window !== 'undefined' ? window : global);
+})());
--- /dev/null
+/*
+ * Copyright 2013 Laurent Bovet <laurent.bovet@windmaster.ch>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+;(function() {
+
+ /**
+ * Block-Level Grammar
+ */
+
+ var block = {
+ newline: /^\n+/,
+ code: /^( {4}[^\n]+\n*)+/,
+ fences: noop,
+ hr: /^( *[-*_]){3,} *(?:\n+|$)/,
+ heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,
+ nptable: noop,
+ lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,
+ blockquote: /^( *>[^\n]+(\n[^\n]+)*\n*)+/,
+ list: /^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
+ html: /^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,
+ def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
+ table: noop,
+ paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
+ text: /^[^\n]+/
+ };
+
+ block.bullet = /(?:[*+-]|\d+\.)/;
+ block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;
+ block.item = replace(block.item, 'gm')
+ (/bull/g, block.bullet)
+ ();
+
+ block.list = replace(block.list)
+ (/bull/g, block.bullet)
+ ('hr', /\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)
+ ();
+
+ block._tag = '(?!(?:'
+ + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'
+ + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'
+ + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b';
+
+ block.html = replace(block.html)
+ ('comment', /<!--[\s\S]*?-->/)
+ ('closed', /<(tag)[\s\S]+?<\/\1>/)
+ ('closing', /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)
+ (/tag/g, block._tag)
+ ();
+
+ block.paragraph = replace(block.paragraph)
+ ('hr', block.hr)
+ ('heading', block.heading)
+ ('lheading', block.lheading)
+ ('blockquote', block.blockquote)
+ ('tag', '<' + block._tag)
+ ('def', block.def)
+ ();
+
+ /**
+ * Normal Block Grammar
+ */
+
+ block.normal = merge({}, block);
+
+ /**
+ * GFM Block Grammar
+ */
+
+ block.gfm = merge({}, block.normal, {
+ fences: /^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,
+ paragraph: /^/
+ });
+
+ block.gfm.paragraph = replace(block.paragraph)
+ ('(?!', '(?!'
+ + block.gfm.fences.source.replace('\\1', '\\2') + '|'
+ + block.list.source.replace('\\1', '\\3') + '|')
+ ();
+
+ /**
+ * GFM + Tables Block Grammar
+ */
+
+ block.tables = merge({}, block.gfm, {
+ nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,
+ table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/
+ });
+
+ /**
+ * Block Lexer
+ */
+
+ function Lexer(options) {
+ this.tokens = [];
+ this.tokens.links = {};
+ this.options = options || marked.defaults;
+ this.rules = block.normal;
+
+ if (this.options.gfm) {
+ if (this.options.tables) {
+ this.rules = block.tables;
+ } else {
+ this.rules = block.gfm;
+ }
+ }
+ }
+
+ /**
+ * Expose Block Rules
+ */
+
+ Lexer.rules = block;
+
+ /**
+ * Static Lex Method
+ */
+
+ Lexer.lex = function(src, options) {
+ var lexer = new Lexer(options);
+ return lexer.lex(src);
+ };
+
+ /**
+ * Preprocessing
+ */
+
+ Lexer.prototype.lex = function(src) {
+ src = src
+ .replace(/\r\n|\r/g, '\n')
+ .replace(/\t/g, ' ')
+ .replace(/\u00a0/g, ' ')
+ .replace(/\u2424/g, '\n');
+
+ return this.token(src, true);
+ };
+
+ /**
+ * Lexing
+ */
+
+ Lexer.prototype.token = function(src, top) {
+ var src = src.replace(/^ +$/gm, '')
+ , next
+ , loose
+ , cap
+ , bull
+ , b
+ , item
+ , space
+ , i
+ , l;
+
+ while (src) {
+ // newline
+ if (cap = this.rules.newline.exec(src)) {
+ src = src.substring(cap[0].length);
+ if (cap[0].length > 1) {
+ this.tokens.push({
+ type: 'space'
+ });
+ }
+ }
+
+ // code
+ if (cap = this.rules.code.exec(src)) {
+ src = src.substring(cap[0].length);
+ cap = cap[0].replace(/^ {4}/gm, '');
+ this.tokens.push({
+ type: 'code',
+ text: !this.options.pedantic
+ ? cap.replace(/\n+$/, '')
+ : cap
+ });
+ continue;
+ }
+
+ // fences (gfm)
+ if (cap = this.rules.fences.exec(src)) {
+ src = src.substring(cap[0].length);
+ this.tokens.push({
+ type: 'code',
+ lang: cap[2],
+ text: cap[3]
+ });
+ continue;
+ }
+
+ // heading
+ if (cap = this.rules.heading.exec(src)) {
+ src = src.substring(cap[0].length);
+ this.tokens.push({
+ type: 'heading',
+ depth: cap[1].length,
+ text: cap[2]
+ });
+ continue;
+ }
+
+ // table no leading pipe (gfm)
+ if (top && (cap = this.rules.nptable.exec(src))) {
+ src = src.substring(cap[0].length);
+
+ item = {
+ type: 'table',
+ header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
+ align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
+ cells: cap[3].replace(/\n$/, '').split('\n')
+ };
+
+ for (i = 0; i < item.align.length; i++) {
+ if (/^ *-+: *$/.test(item.align[i])) {
+ item.align[i] = 'right';
+ } else if (/^ *:-+: *$/.test(item.align[i])) {
+ item.align[i] = 'center';
+ } else if (/^ *:-+ *$/.test(item.align[i])) {
+ item.align[i] = 'left';
+ } else {
+ item.align[i] = null;
+ }
+ }
+
+ for (i = 0; i < item.cells.length; i++) {
+ item.cells[i] = item.cells[i].split(/ *\| */);
+ }
+
+ this.tokens.push(item);
+
+ continue;
+ }
+
+ // lheading
+ if (cap = this.rules.lheading.exec(src)) {
+ src = src.substring(cap[0].length);
+ this.tokens.push({
+ type: 'heading',
+ depth: cap[2] === '=' ? 1 : 2,
+ text: cap[1]
+ });
+ continue;
+ }
+
+ // hr
+ if (cap = this.rules.hr.exec(src)) {
+ src = src.substring(cap[0].length);
+ this.tokens.push({
+ type: 'hr'
+ });
+ continue;
+ }
+
+ // blockquote
+ if (cap = this.rules.blockquote.exec(src)) {
+ src = src.substring(cap[0].length);
+
+ this.tokens.push({
+ type: 'blockquote_start'
+ });
+
+ cap = cap[0].replace(/^ *> ?/gm, '');
+
+ // Pass `top` to keep the current
+ // "toplevel" state. This is exactly
+ // how markdown.pl works.
+ this.token(cap, top);
+
+ this.tokens.push({
+ type: 'blockquote_end'
+ });
+
+ continue;
+ }
+
+ // list
+ if (cap = this.rules.list.exec(src)) {
+ src = src.substring(cap[0].length);
+ bull = cap[2];
+
+ this.tokens.push({
+ type: 'list_start',
+ ordered: bull.length > 1
+ });
+
+ // Get each top-level item.
+ cap = cap[0].match(this.rules.item);
+
+ next = false;
+ l = cap.length;
+ i = 0;
+
+ for (; i < l; i++) {
+ item = cap[i];
+
+ // Remove the list item's bullet
+ // so it is seen as the next token.
+ space = item.length;
+ item = item.replace(/^ *([*+-]|\d+\.) +/, '');
+
+ // Outdent whatever the
+ // list item contains. Hacky.
+ if (~item.indexOf('\n ')) {
+ space -= item.length;
+ item = !this.options.pedantic
+ ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')
+ : item.replace(/^ {1,4}/gm, '');
+ }
+
+ // Determine whether the next list item belongs here.
+ // Backpedal if it does not belong in this list.
+ if (this.options.smartLists && i !== l - 1) {
+ b = block.bullet.exec(cap[i + 1])[0];
+ if (bull !== b && !(bull.length > 1 && b.length > 1)) {
+ src = cap.slice(i + 1).join('\n') + src;
+ i = l - 1;
+ }
+ }
+
+ // Determine whether item is loose or not.
+ // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/
+ // for discount behavior.
+ loose = next || /\n\n(?!\s*$)/.test(item);
+ if (i !== l - 1) {
+ next = item.charAt(item.length - 1) === '\n';
+ if (!loose) loose = next;
+ }
+
+ this.tokens.push({
+ type: loose
+ ? 'loose_item_start'
+ : 'list_item_start'
+ });
+
+ // Recurse.
+ this.token(item, false);
+
+ this.tokens.push({
+ type: 'list_item_end'
+ });
+ }
+
+ this.tokens.push({
+ type: 'list_end'
+ });
+
+ continue;
+ }
+
+ // html
+ if (cap = this.rules.html.exec(src)) {
+ src = src.substring(cap[0].length);
+ this.tokens.push({
+ type: this.options.sanitize
+ ? 'paragraph'
+ : 'html',
+ pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',
+ text: cap[0]
+ });
+ continue;
+ }
+
+ // def
+ if (top && (cap = this.rules.def.exec(src))) {
+ src = src.substring(cap[0].length);
+ this.tokens.links[cap[1].toLowerCase()] = {
+ href: cap[2],
+ title: cap[3]
+ };
+ continue;
+ }
+
+ // table (gfm)
+ if (top && (cap = this.rules.table.exec(src))) {
+ src = src.substring(cap[0].length);
+
+ item = {
+ type: 'table',
+ header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
+ align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
+ cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n')
+ };
+
+ for (i = 0; i < item.align.length; i++) {
+ if (/^ *-+: *$/.test(item.align[i])) {
+ item.align[i] = 'right';
+ } else if (/^ *:-+: *$/.test(item.align[i])) {
+ item.align[i] = 'center';
+ } else if (/^ *:-+ *$/.test(item.align[i])) {
+ item.align[i] = 'left';
+ } else {
+ item.align[i] = null;
+ }
+ }
+
+ for (i = 0; i < item.cells.length; i++) {
+ item.cells[i] = item.cells[i]
+ .replace(/^ *\| *| *\| *$/g, '')
+ .split(/ *\| */);
+ }
+
+ this.tokens.push(item);
+
+ continue;
+ }
+
+ // top-level paragraph
+ if (top && (cap = this.rules.paragraph.exec(src))) {
+ src = src.substring(cap[0].length);
+ this.tokens.push({
+ type: 'paragraph',
+ text: cap[1].charAt(cap[1].length - 1) === '\n'
+ ? cap[1].slice(0, -1)
+ : cap[1]
+ });
+ continue;
+ }
+
+ // text
+ if (cap = this.rules.text.exec(src)) {
+ // Top-level should never reach here.
+ src = src.substring(cap[0].length);
+ this.tokens.push({
+ type: 'text',
+ text: cap[0]
+ });
+ continue;
+ }
+
+ if (src) {
+ throw new
+ Error('Infinite loop on byte: ' + src.charCodeAt(0));
+ }
+ }
+
+ return this.tokens;
+ };
+
+ /**
+ * Inline-Level Grammar
+ */
+
+ var inline = {
+ escape: /^\\([\\`*{}\[\]()#+\-.!_>])/,
+ autolink: /^<([^ >]+(@|:\/)[^ >]+)>/,
+ url: noop,
+ tag: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,
+ link: /^!?\[(inside)\]\(href\)/,
+ reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
+ nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
+ strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
+ em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
+ code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,
+ br: /^ {2,}\n(?!\s*$)/,
+ del: noop,
+ text: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/
+ };
+
+ inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;
+ inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;
+
+ inline.link = replace(inline.link)
+ ('inside', inline._inside)
+ ('href', inline._href)
+ ();
+
+ inline.reflink = replace(inline.reflink)
+ ('inside', inline._inside)
+ ();
+
+ /**
+ * Normal Inline Grammar
+ */
+
+ inline.normal = merge({}, inline);
+
+ /**
+ * Pedantic Inline Grammar
+ */
+
+ inline.pedantic = merge({}, inline.normal, {
+ strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
+ em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/
+ });
+
+ /**
+ * GFM Inline Grammar
+ */
+
+ inline.gfm = merge({}, inline.normal, {
+ escape: replace(inline.escape)('])', '~|])')(),
+ url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,
+ del: /^~~(?=\S)([\s\S]*?\S)~~/,
+ text: replace(inline.text)
+ (']|', '~]|')
+ ('|', '|https?://|')
+ ()
+ });
+
+ /**
+ * GFM + Line Breaks Inline Grammar
+ */
+
+ inline.breaks = merge({}, inline.gfm, {
+ br: replace(inline.br)('{2,}', '*')(),
+ text: replace(inline.gfm.text)('{2,}', '*')()
+ });
+
+ /**
+ * Inline Lexer & Compiler
+ */
+
+ function InlineLexer(links, options) {
+ this.options = options || marked.defaults;
+ this.links = links;
+ this.rules = inline.normal;
+ this.renderer = this.options.renderer || new Renderer;
+
+ if (!this.links) {
+ throw new
+ Error('Tokens array requires a `links` property.');
+ }
+
+ if (this.options.gfm) {
+ if (this.options.breaks) {
+ this.rules = inline.breaks;
+ } else {
+ this.rules = inline.gfm;
+ }
+ } else if (this.options.pedantic) {
+ this.rules = inline.pedantic;
+ }
+ }
+
+ /**
+ * Expose Inline Rules
+ */
+
+ InlineLexer.rules = inline;
+
+ /**
+ * Static Lexing/Compiling Method
+ */
+
+ InlineLexer.output = function(src, links, options) {
+ var inline = new InlineLexer(links, options);
+ return inline.output(src);
+ };
+
+ /**
+ * Lexing/Compiling
+ */
+
+ InlineLexer.prototype.output = function(src) {
+ var out = ''
+ , link
+ , text
+ , href
+ , cap;
+
+ while (src) {
+ // escape
+ if (cap = this.rules.escape.exec(src)) {
+ src = src.substring(cap[0].length);
+ out += cap[1];
+ continue;
+ }
+
+ // autolink
+ if (cap = this.rules.autolink.exec(src)) {
+ src = src.substring(cap[0].length);
+ if (cap[2] === '@') {
+ text = cap[1].charAt(6) === ':'
+ ? this.mangle(cap[1].substring(7))
+ : this.mangle(cap[1]);
+ href = this.mangle('mailto:') + text;
+ } else {
+ text = escape(cap[1]);
+ href = text;
+ }
+ out += this.renderer.link(href, null, text);
+ continue;
+ }
+
+ // url (gfm)
+ if (cap = this.rules.url.exec(src)) {
+ src = src.substring(cap[0].length);
+ text = escape(cap[1]);
+ href = text;
+ out += this.renderer.link(href, null, text);
+ continue;
+ }
+
+ // tag
+ if (cap = this.rules.tag.exec(src)) {
+ src = src.substring(cap[0].length);
+ out += this.options.sanitize
+ ? escape(cap[0])
+ : cap[0];
+ continue;
+ }
+
+ // link
+ if (cap = this.rules.link.exec(src)) {
+ src = src.substring(cap[0].length);
+ out += this.outputLink(cap, {
+ href: cap[2],
+ title: cap[3]
+ });
+ continue;
+ }
+
+ // reflink, nolink
+ if ((cap = this.rules.reflink.exec(src))
+ || (cap = this.rules.nolink.exec(src))) {
+ src = src.substring(cap[0].length);
+ link = (cap[2] || cap[1]).replace(/\s+/g, ' ');
+ link = this.links[link.toLowerCase()];
+ if (!link || !link.href) {
+ out += cap[0].charAt(0);
+ src = cap[0].substring(1) + src;
+ continue;
+ }
+ out += this.outputLink(cap, link);
+ continue;
+ }
+
+ // strong
+ if (cap = this.rules.strong.exec(src)) {
+ src = src.substring(cap[0].length);
+ out += this.renderer.strong(this.output(cap[2] || cap[1]));
+ continue;
+ }
+
+ // em
+ if (cap = this.rules.em.exec(src)) {
+ src = src.substring(cap[0].length);
+ out += this.renderer.em(this.output(cap[2] || cap[1]));
+ continue;
+ }
+
+ // code
+ if (cap = this.rules.code.exec(src)) {
+ src = src.substring(cap[0].length);
+ out += this.renderer.codespan(escape(cap[2], true));
+ continue;
+ }
+
+ // br
+ if (cap = this.rules.br.exec(src)) {
+ src = src.substring(cap[0].length);
+ out += this.renderer.br();
+ continue;
+ }
+
+ // del (gfm)
+ if (cap = this.rules.del.exec(src)) {
+ src = src.substring(cap[0].length);
+ out += this.renderer.del(this.output(cap[1]));
+ continue;
+ }
+
+ // text
+ if (cap = this.rules.text.exec(src)) {
+ src = src.substring(cap[0].length);
+ out += escape(this.smartypants(cap[0]));
+ continue;
+ }
+
+ if (src) {
+ throw new
+ Error('Infinite loop on byte: ' + src.charCodeAt(0));
+ }
+ }
+
+ return out;
+ };
+
+ /**
+ * Compile Link
+ */
+
+ InlineLexer.prototype.outputLink = function(cap, link) {
+ var href = escape(link.href)
+ , title = link.title ? escape(link.title) : null;
+
+ if (cap[0].charAt(0) !== '!') {
+ return this.renderer.link(href, title, this.output(cap[1]));
+ } else {
+ return this.renderer.image(href, title, escape(cap[1]));
+ }
+ };
+
+ /**
+ * Smartypants Transformations
+ */
+
+ InlineLexer.prototype.smartypants = function(text) {
+ if (!this.options.smartypants) return text;
+ return text
+ // em-dashes
+ .replace(/--/g, '\u2014')
+ // opening singles
+ .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018')
+ // closing singles & apostrophes
+ .replace(/'/g, '\u2019')
+ // opening doubles
+ .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c')
+ // closing doubles
+ .replace(/"/g, '\u201d')
+ // ellipses
+ .replace(/\.{3}/g, '\u2026');
+ };
+
+ /**
+ * Mangle Links
+ */
+
+ InlineLexer.prototype.mangle = function(text) {
+ var out = ''
+ , l = text.length
+ , i = 0
+ , ch;
+
+ for (; i < l; i++) {
+ ch = text.charCodeAt(i);
+ if (Math.random() > 0.5) {
+ ch = 'x' + ch.toString(16);
+ }
+ out += '&#' + ch + ';';
+ }
+
+ return out;
+ };
+
+ /**
+ * Renderer
+ */
+
+ function Renderer() {}
+
+ Renderer.prototype.code = function(code, lang) {
+ if (!lang) {
+ return '<pre><code>'
+ + escape(code, true)
+ + '\n</code></pre>';
+ }
+
+ return '<pre><code class="'
+ + 'lang-'
+ + lang
+ + '">'
+ + escape(code)
+ + '\n</code></pre>\n';
+ };
+
+ Renderer.prototype.blockquote = function(quote) {
+ return '<blockquote>\n' + quote + '</blockquote>\n';
+ };
+
+ Renderer.prototype.html = function(html) {
+ return html;
+ };
+
+ Renderer.prototype.heading = function(text, level, raw, options) {
+ return '<h'
+ + level
+ + '>'
+ + text
+ + '</h'
+ + level
+ + '>\n';
+ };
+
+ Renderer.prototype.hr = function() {
+ return '<hr>\n';
+ };
+
+ Renderer.prototype.list = function(body, ordered) {
+ var type = ordered ? 'ol' : 'ul';
+ return '<' + type + '>\n' + body + '</' + type + '>\n';
+ };
+
+ Renderer.prototype.listitem = function(text) {
+ return '<li>' + text + '</li>\n';
+ };
+
+ Renderer.prototype.paragraph = function(text) {
+ return '<p>' + text + '</p>\n';
+ };
+
+ Renderer.prototype.table = function(header, body) {
+ return '<table>\n'
+ + '<thead>\n'
+ + header
+ + '</thead>\n'
+ + '<tbody>\n'
+ + body
+ + '</tbody>\n'
+ + '</table>\n';
+ };
+
+ Renderer.prototype.tablerow = function(content) {
+ return '<tr>\n' + content + '</tr>\n';
+ };
+
+ Renderer.prototype.tablecell = function(content, flags) {
+ var type = flags.header ? 'th' : 'td';
+ var tag = flags.align
+ ? '<' + type + ' style="text-align:' + flags.align + '">'
+ : '<' + type + '>';
+ return tag + content + '</' + type + '>\n';
+ };
+
+// span level renderer
+ Renderer.prototype.strong = function(text) {
+ return '<strong>' + text + '</strong>';
+ };
+
+ Renderer.prototype.em = function(text) {
+ return '<em>' + text + '</em>';
+ };
+
+ Renderer.prototype.codespan = function(text) {
+ return '<code>' + text + '</code>';
+ };
+
+ Renderer.prototype.br = function() {
+ return '<br>';
+ };
+
+ Renderer.prototype.del = function(text) {
+ return '<del>' + text + '</del>';
+ };
+
+ Renderer.prototype.link = function(href, title, text) {
+ var out = '<a href="' + href + '"';
+ if (title) {
+ out += ' title="' + title + '"';
+ }
+ out += '>' + text + '</a>';
+ return out;
+ };
+
+ Renderer.prototype.image = function(href, title, text) {
+ var out = '<img src="' + href + '" alt="' + text + '"';
+ if (title) {
+ out += ' title="' + title + '"';
+ }
+ out += '>';
+ return out;
+ };
+
+ /**
+ * Parsing & Compiling
+ */
+
+ function Parser(options) {
+ this.tokens = [];
+ this.token = null;
+ this.options = options || marked.defaults;
+ this.options.renderer = this.options.renderer || new Renderer;
+ this.renderer = this.options.renderer;
+ }
+
+ /**
+ * Static Parse Method
+ */
+
+ Parser.parse = function(src, options, renderer) {
+ var parser = new Parser(options, renderer);
+ return parser.parse(src);
+ };
+
+ /**
+ * Parse Loop
+ */
+
+ Parser.prototype.parse = function(src) {
+ this.inline = new InlineLexer(src.links, this.options, this.renderer);
+ this.tokens = src.reverse();
+
+ var out = '';
+ while (this.next()) {
+ out += this.tok();
+ }
+
+ return out;
+ };
+
+ /**
+ * Next Token
+ */
+
+ Parser.prototype.next = function() {
+ return this.token = this.tokens.pop();
+ };
+
+ /**
+ * Preview Next Token
+ */
+
+ Parser.prototype.peek = function() {
+ return this.tokens[this.tokens.length - 1] || 0;
+ };
+
+ /**
+ * Parse Text Tokens
+ */
+
+ Parser.prototype.parseText = function() {
+ var body = this.token.text;
+
+ while (this.peek().type === 'text') {
+ body += '\n' + this.next().text;
+ }
+
+ return this.inline.output(body);
+ };
+
+ /**
+ * Parse Current Token
+ */
+
+ Parser.prototype.tok = function() {
+ switch (this.token.type) {
+ case 'space': {
+ return '';
+ }
+ case 'hr': {
+ return this.renderer.hr();
+ }
+ case 'heading': {
+ return this.renderer.heading(
+ this.inline.output(this.token.text),
+ this.token.depth
+ );
+ }
+ case 'code': {
+ return this.renderer.code(this.token.text, this.token.lang);
+ }
+ case 'table': {
+ var header = ''
+ , body = ''
+ , i
+ , row
+ , cell
+ , flags
+ , j;
+
+ // header
+ cell = '';
+ for (i = 0; i < this.token.header.length; i++) {
+ flags = { header: true, align: this.token.align[i] };
+ cell += this.renderer.tablecell(
+ this.inline.output(this.token.header[i]),
+ { header: true, align: this.token.align[i] }
+ );
+ }
+ header += this.renderer.tablerow(cell);
+
+ for (i = 0; i < this.token.cells.length; i++) {
+ row = this.token.cells[i];
+
+ cell = '';
+ for (j = 0; j < row.length; j++) {
+ cell += this.renderer.tablecell(
+ this.inline.output(row[j]),
+ { header: false, align: this.token.align[j] }
+ );
+ }
+
+ body += this.renderer.tablerow(cell);
+ }
+ return this.renderer.table(header, body);
+ }
+ case 'blockquote_start': {
+ var body = '';
+
+ while (this.next().type !== 'blockquote_end') {
+ body += this.tok();
+ }
+
+ return this.renderer.blockquote(body);
+ }
+ case 'list_start': {
+ var body = ''
+ , ordered = this.token.ordered;
+
+ while (this.next().type !== 'list_end') {
+ body += this.tok();
+ }
+
+ return this.renderer.list(body, ordered);
+ }
+ case 'list_item_start': {
+ var body = '';
+
+ while (this.next().type !== 'list_item_end') {
+ body += this.token.type === 'text'
+ ? this.parseText()
+ : this.tok();
+ }
+
+ return this.renderer.listitem(body);
+ }
+ case 'loose_item_start': {
+ var body = '';
+
+ while (this.next().type !== 'list_item_end') {
+ body += this.tok();
+ }
+
+ return this.renderer.listitem(body);
+ }
+ case 'html': {
+ var html = !this.token.pre && !this.options.pedantic
+ ? this.inline.output(this.token.text)
+ : this.token.text;
+ return this.renderer.html(html);
+ }
+ case 'paragraph': {
+ return this.renderer.paragraph(this.inline.output(this.token.text));
+ }
+ case 'text': {
+ return this.renderer.paragraph(this.parseText());
+ }
+ }
+ };
+
+ /**
+ * Helpers
+ */
+
+ function escape(html, encode) {
+ return html
+ .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&')
+ .replace(/</g, '<')
+ .replace(/>/g, '>')
+ .replace(/"/g, '"')
+ .replace(/'/g, ''');
+ }
+
+ function replace(regex, opt) {
+ regex = regex.source;
+ opt = opt || '';
+ return function self(name, val) {
+ if (!name) return new RegExp(regex, opt);
+ val = val.source || val;
+ val = val.replace(/(^|[^\[])\^/g, '$1');
+ regex = regex.replace(name, val);
+ return self;
+ };
+ }
+
+ function noop() {}
+ noop.exec = noop;
+
+ function merge(obj) {
+ var i = 1
+ , target
+ , key;
+
+ for (; i < arguments.length; i++) {
+ target = arguments[i];
+ for (key in target) {
+ if (Object.prototype.hasOwnProperty.call(target, key)) {
+ obj[key] = target[key];
+ }
+ }
+ }
+
+ return obj;
+ }
+
+
+ /**
+ * Marked
+ */
+
+ function marked(src, opt, callback) {
+ if (callback || typeof opt === 'function') {
+ if (!callback) {
+ callback = opt;
+ opt = null;
+ }
+
+ opt = merge({}, marked.defaults, opt || {});
+
+ var highlight = opt.highlight
+ , tokens
+ , pending
+ , i = 0;
+
+ try {
+ tokens = Lexer.lex(src, opt)
+ } catch (e) {
+ return callback(e);
+ }
+
+ pending = tokens.length;
+
+ var done = function() {
+ var out, err;
+
+ try {
+ out = Parser.parse(tokens, opt);
+ } catch (e) {
+ err = e;
+ }
+
+ opt.highlight = highlight;
+
+ return err
+ ? callback(err)
+ : callback(null, out);
+ };
+
+ return done();
+ }
+ try {
+ if (opt) opt = merge({}, marked.defaults, opt);
+ return Parser.parse(Lexer.lex(src, opt), opt);
+ } catch (e) {
+ e.message += '\nPlease report this to https://github.com/chjj/marked.';
+ if ((opt || marked.defaults).silent) {
+ return '<p>An error occured:</p><pre>'
+ + escape(e.message + '', true)
+ + '</pre>';
+ }
+ throw e;
+ }
+ }
+
+ /**
+ * Options
+ */
+
+ marked.options =
+ marked.setOptions = function(opt) {
+ merge(marked.defaults, opt);
+ return marked;
+ };
+
+ marked.defaults = {
+ gfm: true,
+ tables: true,
+ breaks: false,
+ pedantic: false,
+ sanitize: false,
+ smartLists: false,
+ silent: false,
+ smartypants: false,
+ renderer: new Renderer
+ };
+
+ /**
+ * Expose
+ */
+
+ marked.Parser = Parser;
+ marked.parser = Parser.parse;
+
+ marked.Renderer = Renderer;
+
+ marked.Lexer = Lexer;
+ marked.lexer = Lexer.lex;
+
+ marked.InlineLexer = InlineLexer;
+ marked.inlineLexer = InlineLexer.output;
+
+ marked.parse = marked;
+
+ if (typeof exports === 'object') {
+ module.exports = marked;
+ } else if (typeof define === 'function' && define.amd) {
+ define(function() { return marked; });
+ } else {
+ this.marked = marked;
+ }
+
+}).call(function() {
+ return this || (typeof window !== 'undefined' ? window : global);
+ }());
--- /dev/null
+/*
+ RequireJS 2.1.9 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
+ Available via the MIT or new BSD license.
+ see: http://github.com/jrburke/requirejs for details
+*/
+var requirejs,require,define;
+(function(Z){function H(b){return"[object Function]"===L.call(b)}function I(b){return"[object Array]"===L.call(b)}function y(b,c){if(b){var e;for(e=0;e<b.length&&(!b[e]||!c(b[e],e,b));e+=1);}}function M(b,c){if(b){var e;for(e=b.length-1;-1<e&&(!b[e]||!c(b[e],e,b));e-=1);}}function t(b,c){return ga.call(b,c)}function l(b,c){return t(b,c)&&b[c]}function F(b,c){for(var e in b)if(t(b,e)&&c(b[e],e))break}function Q(b,c,e,h){c&&F(c,function(c,j){if(e||!t(b,j))h&&"string"!==typeof c?(b[j]||(b[j]={}),Q(b[j],
+c,e,h)):b[j]=c});return b}function u(b,c){return function(){return c.apply(b,arguments)}}function aa(b){throw b;}function ba(b){if(!b)return b;var c=Z;y(b.split("."),function(b){c=c[b]});return c}function A(b,c,e,h){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.requireModules=h;e&&(c.originalError=e);return c}function ha(b){function c(a,f,b){var d,m,c,g,e,h,j,i=f&&f.split("/");d=i;var n=k.map,p=n&&n["*"];if(a&&"."===a.charAt(0))if(f){d=l(k.pkgs,f)?i=[f]:i.slice(0,i.length-
+1);f=a=d.concat(a.split("/"));for(d=0;f[d];d+=1)if(m=f[d],"."===m)f.splice(d,1),d-=1;else if(".."===m)if(1===d&&(".."===f[2]||".."===f[0]))break;else 0<d&&(f.splice(d-1,2),d-=2);d=l(k.pkgs,f=a[0]);a=a.join("/");d&&a===f+"/"+d.main&&(a=f)}else 0===a.indexOf("./")&&(a=a.substring(2));if(b&&n&&(i||p)){f=a.split("/");for(d=f.length;0<d;d-=1){c=f.slice(0,d).join("/");if(i)for(m=i.length;0<m;m-=1)if(b=l(n,i.slice(0,m).join("/")))if(b=l(b,c)){g=b;e=d;break}if(g)break;!h&&(p&&l(p,c))&&(h=l(p,c),j=d)}!g&&
+h&&(g=h,e=j);g&&(f.splice(0,e,g),a=f.join("/"))}return a}function e(a){z&&y(document.getElementsByTagName("script"),function(f){if(f.getAttribute("data-requiremodule")===a&&f.getAttribute("data-requirecontext")===i.contextName)return f.parentNode.removeChild(f),!0})}function h(a){var f=l(k.paths,a);if(f&&I(f)&&1<f.length)return f.shift(),i.require.undef(a),i.require([a]),!0}function $(a){var f,b=a?a.indexOf("!"):-1;-1<b&&(f=a.substring(0,b),a=a.substring(b+1,a.length));return[f,a]}function n(a,f,
+b,d){var m,B,g=null,e=f?f.name:null,h=a,j=!0,k="";a||(j=!1,a="_@r"+(L+=1));a=$(a);g=a[0];a=a[1];g&&(g=c(g,e,d),B=l(r,g));a&&(g?k=B&&B.normalize?B.normalize(a,function(a){return c(a,e,d)}):c(a,e,d):(k=c(a,e,d),a=$(k),g=a[0],k=a[1],b=!0,m=i.nameToUrl(k)));b=g&&!B&&!b?"_unnormalized"+(M+=1):"";return{prefix:g,name:k,parentMap:f,unnormalized:!!b,url:m,originalName:h,isDefine:j,id:(g?g+"!"+k:k)+b}}function q(a){var f=a.id,b=l(p,f);b||(b=p[f]=new i.Module(a));return b}function s(a,f,b){var d=a.id,m=l(p,
+d);if(t(r,d)&&(!m||m.defineEmitComplete))"defined"===f&&b(r[d]);else if(m=q(a),m.error&&"error"===f)b(m.error);else m.on(f,b)}function v(a,f){var b=a.requireModules,d=!1;if(f)f(a);else if(y(b,function(f){if(f=l(p,f))f.error=a,f.events.error&&(d=!0,f.emit("error",a))}),!d)j.onError(a)}function w(){R.length&&(ia.apply(G,[G.length-1,0].concat(R)),R=[])}function x(a){delete p[a];delete T[a]}function E(a,f,b){var d=a.map.id;a.error?a.emit("error",a.error):(f[d]=!0,y(a.depMaps,function(d,c){var g=d.id,
+e=l(p,g);e&&(!a.depMatched[c]&&!b[g])&&(l(f,g)?(a.defineDep(c,r[g]),a.check()):E(e,f,b))}),b[d]=!0)}function C(){var a,f,b,d,m=(b=1E3*k.waitSeconds)&&i.startTime+b<(new Date).getTime(),c=[],g=[],j=!1,l=!0;if(!U){U=!0;F(T,function(b){a=b.map;f=a.id;if(b.enabled&&(a.isDefine||g.push(b),!b.error))if(!b.inited&&m)h(f)?j=d=!0:(c.push(f),e(f));else if(!b.inited&&(b.fetched&&a.isDefine)&&(j=!0,!a.prefix))return l=!1});if(m&&c.length)return b=A("timeout","Load timeout for modules: "+c,null,c),b.contextName=
+i.contextName,v(b);l&&y(g,function(a){E(a,{},{})});if((!m||d)&&j)if((z||da)&&!V)V=setTimeout(function(){V=0;C()},50);U=!1}}function D(a){t(r,a[0])||q(n(a[0],null,!0)).init(a[1],a[2])}function J(a){var a=a.currentTarget||a.srcElement,b=i.onScriptLoad;a.detachEvent&&!W?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1);b=i.onScriptError;(!a.detachEvent||W)&&a.removeEventListener("error",b,!1);return{node:a,id:a&&a.getAttribute("data-requiremodule")}}function K(){var a;for(w();G.length;){a=
+G.shift();if(null===a[0])return v(A("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));D(a)}}var U,X,i,N,V,k={waitSeconds:7,baseUrl:"./",paths:{},pkgs:{},shim:{},config:{}},p={},T={},Y={},G=[],r={},S={},L=1,M=1;N={require:function(a){return a.require?a.require:a.require=i.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?a.exports:a.exports=r[a.map.id]={}},module:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){var b=
+l(k.pkgs,a.map.id);return(b?l(k.config,a.map.id+"/"+b.main):l(k.config,a.map.id))||{}},exports:r[a.map.id]}}};X=function(a){this.events=l(Y,a.id)||{};this.map=a;this.shim=l(k.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};X.prototype={init:function(a,b,c,d){d=d||{};if(!this.inited){this.factory=b;if(c)this.on("error",c);else this.events.error&&(c=u(this,function(a){this.emit("error",a)}));this.depMaps=a&&a.slice(0);this.errback=c;this.inited=!0;
+this.ignore=d.ignore;d.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0;i.startTime=(new Date).getTime();var a=this.map;if(this.shim)i.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],u(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?this.callPlugin():this.load()}},load:function(){var a=
+this.map.url;S[a]||(S[a]=!0,i.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var d=this.exports,m=this.factory;if(this.inited)if(this.error)this.emit("error",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(H(m)){if(this.events.error&&this.map.isDefine||j.onError!==aa)try{d=i.execCb(c,m,b,d)}catch(e){a=e}else d=i.execCb(c,m,b,d);this.map.isDefine&&((b=this.module)&&void 0!==b.exports&&b.exports!==
+this.exports?d=b.exports:void 0===d&&this.usingExports&&(d=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",v(this.error=a)}else d=m;this.exports=d;if(this.map.isDefine&&!this.ignore&&(r[c]=d,j.onResourceLoad))j.onResourceLoad(i,this.map,this.depMaps);x(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=
+!0)}}else this.fetch()}},callPlugin:function(){var a=this.map,b=a.id,e=n(a.prefix);this.depMaps.push(e);s(e,"defined",u(this,function(d){var m,e;e=this.map.name;var g=this.map.parentMap?this.map.parentMap.name:null,h=i.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(d.normalize&&(e=d.normalize(e,function(a){return c(a,g,!0)})||""),d=n(a.prefix+"!"+e,this.map.parentMap),s(d,"defined",u(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),
+e=l(p,d.id)){this.depMaps.push(d);if(this.events.error)e.on("error",u(this,function(a){this.emit("error",a)}));e.enable()}}else m=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),m.error=u(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];F(p,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&x(a.map.id)});v(a)}),m.fromText=u(this,function(d,c){var e=a.name,g=n(e),B=O;c&&(d=c);B&&(O=!1);q(g);t(k.config,b)&&(k.config[e]=k.config[b]);try{j.exec(d)}catch(ca){return v(A("fromtexteval",
+"fromText eval for "+b+" failed: "+ca,ca,[b]))}B&&(O=!0);this.depMaps.push(g);i.completeLoad(e);h([e],m)}),d.load(a.name,h,m,k)}));i.enable(e,this);this.pluginMaps[e.id]=e},enable:function(){T[this.map.id]=this;this.enabling=this.enabled=!0;y(this.depMaps,u(this,function(a,b){var c,d;if("string"===typeof a){a=n(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=l(N,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;s(a,"defined",u(this,function(a){this.defineDep(b,
+a);this.check()}));this.errback&&s(a,"error",u(this,this.errback))}c=a.id;d=p[c];!t(N,c)&&(d&&!d.enabled)&&i.enable(a,this)}));F(this.pluginMaps,u(this,function(a){var b=l(p,a.id);b&&!b.enabled&&i.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){y(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};i={config:k,contextName:b,registry:p,defined:r,urlFetched:S,defQueue:G,Module:X,makeModuleMap:n,
+nextTick:j.nextTick,onError:v,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=k.pkgs,c=k.shim,d={paths:!0,config:!0,map:!0};F(a,function(a,b){d[b]?"map"===b?(k.map||(k.map={}),Q(k[b],a,!0,!0)):Q(k[b],a,!0):k[b]=a});a.shim&&(F(a.shim,function(a,b){I(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=i.makeShimExports(a);c[b]=a}),k.shim=c);a.packages&&(y(a.packages,function(a){a="string"===typeof a?{name:a}:a;b[a.name]={name:a.name,
+location:a.location||a.name,main:(a.main||"main").replace(ja,"").replace(ea,"")}}),k.pkgs=b);F(p,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=n(b))});if(a.deps||a.callback)i.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(Z,arguments));return b||a.exports&&ba(a.exports)}},makeRequire:function(a,f){function h(d,c,e){var g,k;f.enableBuildCallback&&(c&&H(c))&&(c.__requireJsBuild=!0);if("string"===typeof d){if(H(c))return v(A("requireargs",
+"Invalid require call"),e);if(a&&t(N,d))return N[d](p[a.id]);if(j.get)return j.get(i,d,a,h);g=n(d,a,!1,!0);g=g.id;return!t(r,g)?v(A("notloaded",'Module name "'+g+'" has not been loaded yet for context: '+b+(a?"":". Use require([])"))):r[g]}K();i.nextTick(function(){K();k=q(n(null,a));k.skipMap=f.skipMap;k.init(d,c,e,{enabled:!0});C()});return h}f=f||{};Q(h,{isBrowser:z,toUrl:function(b){var f,e=b.lastIndexOf("."),g=b.split("/")[0];if(-1!==e&&(!("."===g||".."===g)||1<e))f=b.substring(e,b.length),b=
+b.substring(0,e);return i.nameToUrl(c(b,a&&a.id,!0),f,!0)},defined:function(b){return t(r,n(b,a,!1,!0).id)},specified:function(b){b=n(b,a,!1,!0).id;return t(r,b)||t(p,b)}});a||(h.undef=function(b){w();var c=n(b,a,!0),f=l(p,b);e(b);delete r[b];delete S[c.url];delete Y[b];f&&(f.events.defined&&(Y[b]=f.events),x(b))});return h},enable:function(a){l(p,a.id)&&q(a).enable()},completeLoad:function(a){var b,c,d=l(k.shim,a)||{},e=d.exports;for(w();G.length;){c=G.shift();if(null===c[0]){c[0]=a;if(b)break;b=
+!0}else c[0]===a&&(b=!0);D(c)}c=l(p,a);if(!b&&!t(r,a)&&c&&!c.inited){if(k.enforceDefine&&(!e||!ba(e)))return h(a)?void 0:v(A("nodefine","No define call for "+a,null,[a]));D([a,d.deps||[],d.exportsFn])}C()},nameToUrl:function(a,b,c){var d,e,h,g,i,n;if(j.jsExtRegExp.test(a))g=a+(b||"");else{d=k.paths;e=k.pkgs;g=a.split("/");for(i=g.length;0<i;i-=1)if(n=g.slice(0,i).join("/"),h=l(e,n),n=l(d,n)){I(n)&&(n=n[0]);g.splice(0,i,n);break}else if(h){a=a===h.name?h.location+"/"+h.main:h.location;g.splice(0,i,
+a);break}g=g.join("/");g+=b||(/^data\:|\?/.test(g)||c?"":".js");g=("/"===g.charAt(0)||g.match(/^[\w\+\.\-]+:/)?"":k.baseUrl)+g}return k.urlArgs?g+((-1===g.indexOf("?")?"?":"&")+k.urlArgs):g},load:function(a,b){j.load(i,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||ka.test((a.currentTarget||a.srcElement).readyState))P=null,a=J(a),i.completeLoad(a.id)},onScriptError:function(a){var b=J(a);if(!h(b.id))return v(A("scripterror","Script error for: "+b.id,
+a,[b.id]))}};i.require=i.makeRequire();return i}var j,w,x,C,J,D,P,K,q,fa,la=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,ma=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,ea=/\.js$/,ja=/^\.\//;w=Object.prototype;var L=w.toString,ga=w.hasOwnProperty,ia=Array.prototype.splice,z=!!("undefined"!==typeof window&&"undefined"!==typeof navigator&&window.document),da=!z&&"undefined"!==typeof importScripts,ka=z&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,W="undefined"!==typeof opera&&
+"[object Opera]"===opera.toString(),E={},s={},R=[],O=!1;if("undefined"===typeof define){if("undefined"!==typeof requirejs){if(H(requirejs))return;s=requirejs;requirejs=void 0}"undefined"!==typeof require&&!H(require)&&(s=require,require=void 0);j=requirejs=function(b,c,e,h){var q,n="_";!I(b)&&"string"!==typeof b&&(q=b,I(c)?(b=c,c=e,e=h):b=[]);q&&q.context&&(n=q.context);(h=l(E,n))||(h=E[n]=j.s.newContext(n));q&&h.configure(q);return h.require(b,c,e)};j.config=function(b){return j(b)};j.nextTick="undefined"!==
+typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=j);j.version="2.1.9";j.jsExtRegExp=/^\/|:|\?|\.js$/;j.isBrowser=z;w=j.s={contexts:E,newContext:ha};j({});y(["toUrl","undef","defined","specified"],function(b){j[b]=function(){var c=E._;return c.require[b].apply(c,arguments)}});if(z&&(x=w.head=document.getElementsByTagName("head")[0],C=document.getElementsByTagName("base")[0]))x=w.head=C.parentNode;j.onError=aa;j.createNode=function(b){var c=b.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml",
+"html:script"):document.createElement("script");c.type=b.scriptType||"text/javascript";c.charset="utf-8";c.async=!0;return c};j.load=function(b,c,e){var h=b&&b.config||{};if(z)return h=j.createNode(h,c,e),h.setAttribute("data-requirecontext",b.contextName),h.setAttribute("data-requiremodule",c),h.attachEvent&&!(h.attachEvent.toString&&0>h.attachEvent.toString().indexOf("[native code"))&&!W?(O=!0,h.attachEvent("onreadystatechange",b.onScriptLoad)):(h.addEventListener("load",b.onScriptLoad,!1),h.addEventListener("error",
+b.onScriptError,!1)),h.src=e,K=h,C?x.insertBefore(h,C):x.appendChild(h),K=null,h;if(da)try{importScripts(e),b.completeLoad(c)}catch(l){b.onError(A("importscripts","importScripts failed for "+c+" at "+e,l,[c]))}};z&&!s.skipDataMain&&M(document.getElementsByTagName("script"),function(b){x||(x=b.parentNode);if(J=b.getAttribute("data-main"))return q=J,s.baseUrl||(D=q.split("/"),q=D.pop(),fa=D.length?D.join("/")+"/":"./",s.baseUrl=fa),q=q.replace(ea,""),j.jsExtRegExp.test(q)&&(q=J),s.deps=s.deps?s.deps.concat(q):
+[q],!0});define=function(b,c,e){var h,j;"string"!==typeof b&&(e=c,c=b,b=null);I(c)||(e=c,c=null);!c&&H(e)&&(c=[],e.length&&(e.toString().replace(la,"").replace(ma,function(b,e){c.push(e)}),c=(1===e.length?["require"]:["require","exports","module"]).concat(c)));if(O){if(!(h=K))P&&"interactive"===P.readyState||M(document.getElementsByTagName("script"),function(b){if("interactive"===b.readyState)return P=b}),h=P;h&&(b||(b=h.getAttribute("data-requiremodule")),j=E[h.getAttribute("data-requirecontext")])}(j?
+j.defQueue:R).push([b,c,e])};define.amd={jQuery:!0};j.exec=function(b){return eval(b)};j(s)}})(this);
--- /dev/null
+/*
+ Copyright 2010 James Halliday (mail@substack.net)
+
+ This project is free software released under the MIT/X11 license:
+ http://www.opensource.org/licenses/mit-license.php
+
+ Copyright 2010 James Halliday (mail@substack.net)
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+ */
+
+var traverse;
+
+(function(){
+ traverse = function (obj) {
+ return new Traverse(obj);
+ };
+
+ function Traverse (obj) {
+ this.value = obj;
+ }
+
+ Traverse.prototype.get = function (ps) {
+ var node = this.value;
+ for (var i = 0; i < ps.length; i ++) {
+ var key = ps[i];
+ if (!node || !hasOwnProperty.call(node, key)) {
+ node = undefined;
+ break;
+ }
+ node = node[key];
+ }
+ return node;
+ };
+
+ Traverse.prototype.has = function (ps) {
+ var node = this.value;
+ for (var i = 0; i < ps.length; i ++) {
+ var key = ps[i];
+ if (!node || !hasOwnProperty.call(node, key)) {
+ return false;
+ }
+ node = node[key];
+ }
+ return true;
+ };
+
+ Traverse.prototype.set = function (ps, value) {
+ var node = this.value;
+ for (var i = 0; i < ps.length - 1; i ++) {
+ var key = ps[i];
+ if (!hasOwnProperty.call(node, key)) node[key] = {};
+ node = node[key];
+ }
+ node[ps[i]] = value;
+ return value;
+ };
+
+ Traverse.prototype.map = function (cb) {
+ return walk(this.value, cb, true);
+ };
+
+ Traverse.prototype.forEach = function (cb) {
+ this.value = walk(this.value, cb, false);
+ return this.value;
+ };
+
+ Traverse.prototype.reduce = function (cb, init) {
+ var skip = arguments.length === 1;
+ var acc = skip ? this.value : init;
+ this.forEach(function (x) {
+ if (!this.isRoot || !skip) {
+ acc = cb.call(this, acc, x);
+ }
+ });
+ return acc;
+ };
+
+ Traverse.prototype.paths = function () {
+ var acc = [];
+ this.forEach(function (x) {
+ acc.push(this.path);
+ });
+ return acc;
+ };
+
+ Traverse.prototype.nodes = function () {
+ var acc = [];
+ this.forEach(function (x) {
+ acc.push(this.node);
+ });
+ return acc;
+ };
+
+ Traverse.prototype.clone = function () {
+ var parents = [], nodes = [];
+
+ return (function clone (src) {
+ for (var i = 0; i < parents.length; i++) {
+ if (parents[i] === src) {
+ return nodes[i];
+ }
+ }
+
+ if (typeof src === 'object' && src !== null) {
+ var dst = copy(src);
+
+ parents.push(src);
+ nodes.push(dst);
+
+ forEach(objectKeys(src), function (key) {
+ dst[key] = clone(src[key]);
+ });
+
+ parents.pop();
+ nodes.pop();
+ return dst;
+ }
+ else {
+ return src;
+ }
+ })(this.value);
+ };
+
+ function walk (root, cb, immutable) {
+ var path = [];
+ var parents = [];
+ var alive = true;
+
+ return (function walker (node_) {
+ var node = immutable ? copy(node_) : node_;
+ var modifiers = {};
+
+ var keepGoing = true;
+
+ var state = {
+ node : node,
+ node_ : node_,
+ path : [].concat(path),
+ parent : parents[parents.length - 1],
+ parents : parents,
+ key : path.slice(-1)[0],
+ isRoot : path.length === 0,
+ level : path.length,
+ circular : null,
+ update : function (x, stopHere) {
+ if (!state.isRoot) {
+ state.parent.node[state.key] = x;
+ }
+ state.node = x;
+ if (stopHere) keepGoing = false;
+ },
+ 'delete' : function (stopHere) {
+ delete state.parent.node[state.key];
+ if (stopHere) keepGoing = false;
+ },
+ remove : function (stopHere) {
+ if (isArray(state.parent.node)) {
+ state.parent.node.splice(state.key, 1);
+ }
+ else {
+ delete state.parent.node[state.key];
+ }
+ if (stopHere) keepGoing = false;
+ },
+ keys : null,
+ before : function (f) { modifiers.before = f },
+ after : function (f) { modifiers.after = f },
+ pre : function (f) { modifiers.pre = f },
+ post : function (f) { modifiers.post = f },
+ stop : function () { alive = false },
+ block : function () { keepGoing = false }
+ };
+
+ if (!alive) return state;
+
+ function updateState() {
+ if (typeof state.node === 'object' && state.node !== null) {
+ if (!state.keys || state.node_ !== state.node) {
+ state.keys = objectKeys(state.node)
+ }
+
+ state.isLeaf = state.keys.length == 0;
+
+ for (var i = 0; i < parents.length; i++) {
+ if (parents[i].node_ === node_) {
+ state.circular = parents[i];
+ break;
+ }
+ }
+ }
+ else {
+ state.isLeaf = true;
+ state.keys = null;
+ }
+
+ state.notLeaf = !state.isLeaf;
+ state.notRoot = !state.isRoot;
+ }
+
+ updateState();
+
+ // use return values to update if defined
+ var ret = cb.call(state, state.node);
+ if (ret !== undefined && state.update) state.update(ret);
+
+ if (modifiers.before) modifiers.before.call(state, state.node);
+
+ if (!keepGoing) return state;
+
+ if (typeof state.node == 'object'
+ && state.node !== null && !state.circular) {
+ parents.push(state);
+
+ updateState();
+
+ forEach(state.keys, function (key, i) {
+ path.push(key);
+
+ if (modifiers.pre) modifiers.pre.call(state, state.node[key], key);
+
+ var child = walker(state.node[key]);
+ if (immutable && hasOwnProperty.call(state.node, key)) {
+ state.node[key] = child.node;
+ }
+
+ child.isLast = i == state.keys.length - 1;
+ child.isFirst = i == 0;
+
+ if (modifiers.post) modifiers.post.call(state, child);
+
+ path.pop();
+ });
+ parents.pop();
+ }
+
+ if (modifiers.after) modifiers.after.call(state, state.node);
+
+ return state;
+ })(root).node;
+ }
+
+ function copy (src) {
+ if (typeof src === 'object' && src !== null) {
+ var dst;
+
+ if (isArray(src)) {
+ dst = [];
+ }
+ else if (isDate(src)) {
+ dst = new Date(src.getTime ? src.getTime() : src);
+ }
+ else if (isRegExp(src)) {
+ dst = new RegExp(src);
+ }
+ else if (isError(src)) {
+ dst = { message: src.message };
+ }
+ else if (isBoolean(src)) {
+ dst = new Boolean(src);
+ }
+ else if (isNumber(src)) {
+ dst = new Number(src);
+ }
+ else if (isString(src)) {
+ dst = new String(src);
+ }
+ else if (Object.create && Object.getPrototypeOf) {
+ dst = Object.create(Object.getPrototypeOf(src));
+ }
+ else if (src.constructor === Object) {
+ dst = {};
+ }
+ else {
+ var proto =
+ (src.constructor && src.constructor.prototype)
+ || src.__proto__
+ || {}
+ ;
+ var T = function () {};
+ T.prototype = proto;
+ dst = new T;
+ }
+
+ forEach(objectKeys(src), function (key) {
+ dst[key] = src[key];
+ });
+ return dst;
+ }
+ else return src;
+ }
+
+ var objectKeys = Object.keys || function keys (obj) {
+ var res = [];
+ for (var key in obj) res.push(key)
+ return res;
+ };
+
+ function toS (obj) { return Object.prototype.toString.call(obj) }
+ function isDate (obj) { return toS(obj) === '[object Date]' }
+ function isRegExp (obj) { return toS(obj) === '[object RegExp]' }
+ function isError (obj) { return toS(obj) === '[object Error]' }
+ function isBoolean (obj) { return toS(obj) === '[object Boolean]' }
+ function isNumber (obj) { return toS(obj) === '[object Number]' }
+ function isString (obj) { return toS(obj) === '[object String]' }
+
+ var isArray = Array.isArray || function isArray (xs) {
+ return Object.prototype.toString.call(xs) === '[object Array]';
+ };
+
+ var forEach = function (xs, fn) {
+ if (xs.forEach) return xs.forEach(fn)
+ else for (var i = 0; i < xs.length; i++) {
+ fn(xs[i], i, xs);
+ }
+ };
+
+ forEach(objectKeys(Traverse.prototype), function (key) {
+ traverse[key] = function (obj) {
+ var args = [].slice.call(arguments, 1);
+ var t = new Traverse(obj);
+ return t[key].apply(t, args);
+ };
+ });
+
+ var hasOwnProperty = Object.hasOwnProperty || function (obj, key) {
+ return key in obj;
+ };
+})();
--- /dev/null
+{{!
+ Copyright 2013 Laurent Bovet (laurent.bovet@windmaster.ch)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+}}
+{{#scope this}}
+ <div class="box">
+ <div class="box-header box-{{__boxId}}">
+ <div class="box-title" ref="{{__ref}}">
+ {{#name this}}<div class="box-name {{#if root}}title{{/if}}">{{__name}}</div>{{/name}}
+ <div class="box-description desc">{{desc this}}</div>
+ <div class="end"></div>
+ </div>
+ </div>
+ <div class="source-button button" title="Source">{}</div>
+ <div class="box-body">
+ <div class="expand-button button" title="Expand all">+</div>
+ {{#sub this}}
+ <div class="signature">
+ <div class="signature-header">
+ <div class="signature-type">
+ {{#primitive this}}
+ {{signature this null this}}
+ {{/primitive}}
+ {{#equals type "array"}}
+ {{signature this "array" items}}
+ {{/equals}}
+ {{#if allOf}}
+ {{signature this "all of" allOf}}
+ {{/if}}
+ {{#if anyOf}}
+ {{signature this "any of" anyOf}}
+ {{/if}}
+ {{#if oneOf}}
+ {{signature this "one of" oneOf}}
+ {{/if}}
+ {{#if not}}
+ {{signature this "not" not}}
+ {{/if}}
+ </div>
+ </div>
+ <div class="signature-box-container">
+ {{#boxes}}
+ <div class="box-container" boxid="{{__boxId}}">
+ {{schema this}}
+ </div>
+ {{/boxes}}
+ </div>
+ </div>
+ {{/sub}}
+ {{#if properties}}
+ {{#each properties}}
+ <div class="signature">
+ <div class="signature-header">
+ <div class="property-name {{#contains ../required @key}}required{{/contains}}">{{@key}}</div>
+ <div class="signature-type">
+ {{#main this}}
+ {{signature this null this}}
+ {{/main}}
+ {{#equals type "array"}}
+ {{signature this "array" items}}
+ {{/equals}}
+ {{#if allOf}}
+ {{signature this "all of" allOf}}
+ {{/if}}
+ {{#if anyOf}}
+ {{signature this "any of" anyOf}}
+ {{/if}}
+ {{#if oneOf}}
+ {{signature this "one of" oneOf}}
+ {{/if}}
+ {{#if additionalProperties}}
+ {{signature this "map" additionalProperties}}
+ {{/if}}
+ {{#if not}}
+ {{signature this "not" not}}
+ {{/if}}
+ </div>
+ <div class="signature-description desc">{{desc this}}</div>
+ </div>
+ <div class="signature-box-container">
+ {{#boxes}}
+ <div class="box-container" boxid="{{__boxId}}">
+ {{schema this}}
+ </div>
+ {{/boxes}}
+ </div>
+ </div>
+ {{/each}}
+ {{/if}}
+
+ {{#if patternProperties}}
+ {{#each patternProperties}}
+ <div class="signature">
+ <div class="signature-header">
+ <div class="property-name type-pattern">{{@key}}</div>
+ <div class="signature-type">
+ {{#main this}}
+ {{signature this null this}}
+ {{/main}}
+ {{#equals type "array"}}
+ {{signature this "array" items}}
+ {{/equals}}
+ {{#if allOf}}
+ {{signature this "all of" allOf}}
+ {{/if}}
+ {{#if anyOf}}
+ {{signature this "any of" anyOf}}
+ {{/if}}
+ {{#if oneOf}}
+ {{signature this "one of" oneOf}}
+ {{/if}}
+ {{#if not}}
+ {{signature this "not" not}}
+ {{/if}}
+ </div>
+ <div class="signature-description desc">{{desc this}}</div>
+ </div>
+ <div class="signature-box-container">
+ {{#boxes}}
+ <div class="box-container" boxid="{{__boxId}}">
+ {{schema this}}
+ </div>
+ {{/boxes}}
+ </div>
+ </div>
+ {{/each}}
+ {{/if}}
+
+ {{#if additionalProperties}}
+ <div class="signature">
+ <div class="signature-header">
+ <div class="property-name type-pattern">additional</div>
+ <div class="signature-type">
+ {{schema ../additionalProperties}}
+ </div>
+ </div>
+ </div>
+ {{/if}}
+ </div>
+ <div class="source">
+ <pre class="json-schema">
+{{source this}}</pre>
+ </div>
+</div>
+<div class="end"/>
+{{/scope}}
--- /dev/null
+{{!
+ Copyright 2013 Laurent Bovet (laurent.bovet@windmaster.ch)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+}}
+{{#if keyword}}
+ <span class="type-keyword">{{keyword}}{{range schema.minItems schema.maxItems 0 "" false false ".."}}</span>
+ {{#each schemas}}
+ <span class="type-keyword">{{enum this}}</span>
+ {{#simple this}}
+ <span class="signature-type-{{__type}}">
+ {{__type}}
+ </span>
+ <span class="type-keyword">
+ {{range minLength maxLength "" "" false false ".."}}{{range minimum maximum "-∞" "∞" exclusiveMinimum exclusiveMaximum ";"}}
+ </span>
+ {{/simple}}
+ {{#complex this}}
+ {{#box this}}
+ <span boxid="{{boxId}}" class="box-{{boxId}} signature-type-{{__type}} signature-button signature-type-expandable button">{{__type}}</span>
+ {{/box}}
+ {{/complex}}
+ {{#ref this}}
+ {{#box this}}
+ <span boxid="{{boxId}}" class="box-{{boxId}} signature-type-ref signature-button signature-type-expandable button">{{__name}}</span>
+ {{/box}}
+ {{/ref}}
+ {{#if pattern}}
+ <span class="type-pattern">/{{pattern}}/</span>
+ {{/if}}
+ {{#if enum}}
+ {{#each enum}}
+ <span class="type-enum">{{this}}</span>
+ {{/each}}
+ {{/if}}
+ {{#exists default}}
+ <span class="type-keyword">default</span>
+ <span class="type-default">{{__default}}</span>
+ {{/exists}}
+ {{/each}}
+{{/if}}
+{{#unless keyword}}
+ {{#each schemas}}
+ <span class="type-keyword">{{enum this}}</span>
+ {{#primitive this}}
+ <span class="signature-type-{{__type}}">
+ {{__type}}
+ </span>
+ <span class="type-keyword">
+ {{range minLength maxLength "" "" false false ".."}}{{range minimum maximum "-∞" "∞" exclusiveMinimum exclusiveMaximum ";"}}
+ </span>
+ {{/primitive}}
+ {{#ref this}}
+ {{#box this}}
+ <span boxid="{{boxId}}" class="box-{{boxId}} signature-type-ref signature-button signature-type-expandable button">{{__name}}</span>
+ {{/box}}
+ {{/ref}}
+ {{#obj this}}
+ {{#box this}}
+ <span boxid="{{boxId}}" class="box-{{boxId}} signature-type-{{__type}} signature-button signature-type-expandable button">{{__type}}</span>
+ {{/box}}
+ {{/obj}}
+ {{#if pattern}}
+ <span class="type-pattern">/{{pattern}}/</span>
+ {{/if}}
+ {{#if enum}}
+ {{#each enum}}
+ <span class="type-enum">{{this}}</span>
+ {{/each}}
+ {{/if}}
+ {{#exists default}}
+ <span class="type-keyword">default</span>
+ <span class="type-default">{{__default}}</span>
+ {{/exists}}
+ {{/each}}
+{{/unless}}
--- /dev/null
+[
+ {
+ "description": "additionalItems as schema",
+ "schema": {
+ "items": [{}],
+ "additionalItems": {"type": "integer"}
+ },
+ "tests": [
+ {
+ "description": "additional items match schema",
+ "data": [ null, 2, 3, 4 ],
+ "valid": true
+ },
+ {
+ "description": "additional items do not match schema",
+ "data": [ null, 2, 3, "foo" ],
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "items is schema, no additionalItems",
+ "schema": {
+ "items": {},
+ "additionalItems": false
+ },
+ "tests": [
+ {
+ "description": "all items match schema",
+ "data": [ 1, 2, 3, 4, 5 ],
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description": "array of items with no additionalItems",
+ "schema": {
+ "items": [{}, {}, {}],
+ "additionalItems": false
+ },
+ "tests": [
+ {
+ "description": "no additional items present",
+ "data": [ 1, 2, 3 ],
+ "valid": true
+ },
+ {
+ "description": "additional items are not permitted",
+ "data": [ 1, 2, 3, 4 ],
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "additionalItems as false without items",
+ "schema": {"additionalItems": false},
+ "tests": [
+ {
+ "description":
+ "items defaults to empty schema so everything is valid",
+ "data": [ 1, 2, 3, 4, 5 ],
+ "valid": true
+ },
+ {
+ "description": "ignores non-arrays",
+ "data": {"foo" : "bar"},
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description": "additionalItems are allowed by default",
+ "schema": {"items": [{"type": "integer"}]},
+ "tests": [
+ {
+ "description": "only the first item is validated",
+ "data": [1, "foo", false],
+ "valid": true
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description":
+ "additionalProperties being false does not allow other properties",
+ "schema": {
+ "properties": {"foo": {}, "bar": {}},
+ "patternProperties": { "^v": {} },
+ "additionalProperties": false
+ },
+ "tests": [
+ {
+ "description": "no additional properties is valid",
+ "data": {"foo": 1},
+ "valid": true
+ },
+ {
+ "description": "an additional property is invalid",
+ "data": {"foo" : 1, "bar" : 2, "quux" : "boom"},
+ "valid": false
+ },
+ {
+ "description": "ignores non-objects",
+ "data": [1, 2, 3],
+ "valid": true
+ },
+ {
+ "description": "patternProperties are not additional properties",
+ "data": {"foo":1, "vroom": 2},
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description":
+ "additionalProperties allows a schema which should validate",
+ "schema": {
+ "properties": {"foo": {}, "bar": {}},
+ "additionalProperties": {"type": "boolean"}
+ },
+ "tests": [
+ {
+ "description": "no additional properties is valid",
+ "data": {"foo": 1},
+ "valid": true
+ },
+ {
+ "description": "an additional valid property is valid",
+ "data": {"foo" : 1, "bar" : 2, "quux" : true},
+ "valid": true
+ },
+ {
+ "description": "an additional invalid property is invalid",
+ "data": {"foo" : 1, "bar" : 2, "quux" : 12},
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "additionalProperties are allowed by default",
+ "schema": {"properties": {"foo": {}, "bar": {}}},
+ "tests": [
+ {
+ "description": "additional properties are allowed",
+ "data": {"foo": 1, "bar": 2, "quux": true},
+ "valid": true
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "schema" : {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+
+ "definitions": {
+ "address": {
+ "type": "object",
+ "properties": {
+ "street_address": { "type": "string" },
+ "city": { "type": "string" },
+ "state": { "type": "string" }
+ },
+ "required": ["street_address", "city", "state"]
+ }
+ },
+
+ "type": "object",
+
+ "properties": {
+ "billing_address": { "$ref": "#/definitions/address" },
+ "shipping_address": {
+ "allOf": [
+ { "$ref": "#/definitions/address" },
+ { "properties":
+ { "type": { "enum": [ "residential", "business" ] } },
+ "required": ["type"]
+ }
+ ]
+ }
+ }
+ }
+ }]
--- /dev/null
+[
+ {
+ "description": "allOf",
+ "schema": {
+ "allOf": [
+ {
+ "properties": {
+ "bar": {"type": "integer"}
+ },
+ "required": ["bar"]
+ },
+ {
+ "properties": {
+ "foo": {"type": "string"}
+ },
+ "required": ["foo"]
+ }
+ ]
+ },
+ "tests": [
+ {
+ "description": "allOf",
+ "data": {"foo": "baz", "bar": 2},
+ "valid": true
+ },
+ {
+ "description": "mismatch second",
+ "data": {"foo": "baz"},
+ "valid": false
+ },
+ {
+ "description": "mismatch first",
+ "data": {"bar": 2},
+ "valid": false
+ },
+ {
+ "description": "wrong type",
+ "data": {"foo": "baz", "bar": "quux"},
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "allOf with base schema",
+ "schema": {
+ "properties": {"bar": {"type": "integer"}},
+ "required": ["bar"],
+ "allOf" : [
+ {
+ "properties": {
+ "foo": {"type": "string"}
+ },
+ "required": ["foo"]
+ },
+ {
+ "properties": {
+ "baz": {"type": "null"}
+ },
+ "required": ["baz"]
+ }
+ ]
+ },
+ "tests": [
+ {
+ "description": "valid",
+ "data": {"foo": "quux", "bar": 2, "baz": null},
+ "valid": true
+ },
+ {
+ "description": "mismatch base schema",
+ "data": {"foo": "quux", "baz": null},
+ "valid": false
+ },
+ {
+ "description": "mismatch first allOf",
+ "data": {"bar": 2, "baz": null},
+ "valid": false
+ },
+ {
+ "description": "mismatch second allOf",
+ "data": {"foo": "quux", "bar": 2},
+ "valid": false
+ },
+ {
+ "description": "mismatch both",
+ "data": {"bar": 2},
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "allOf simple types",
+ "schema": {
+ "allOf": [
+ {"maximum": 30},
+ {"minimum": 20}
+ ]
+ },
+ "tests": [
+ {
+ "description": "valid",
+ "data": 25,
+ "valid": true
+ },
+ {
+ "description": "mismatch one",
+ "data": 35,
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "anyOf",
+ "schema": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "minimum": 2
+ }
+ ]
+ },
+ "tests": [
+ {
+ "description": "first anyOf valid",
+ "data": 1,
+ "valid": true
+ },
+ {
+ "description": "second anyOf valid",
+ "data": 2.5,
+ "valid": true
+ },
+ {
+ "description": "both anyOf valid",
+ "data": 3,
+ "valid": true
+ },
+ {
+ "description": "neither anyOf valid",
+ "data": 1.5,
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "anyOf with base schema",
+ "schema": {
+ "type": "string",
+ "anyOf" : [
+ {
+ "maxLength": 2
+ },
+ {
+ "minLength": 4
+ }
+ ]
+ },
+ "tests": [
+ {
+ "description": "mismatch base schema",
+ "data": 3,
+ "valid": false
+ },
+ {
+ "description": "one anyOf valid",
+ "data": "foobar",
+ "valid": true
+ },
+ {
+ "description": "both anyOf invalid",
+ "data": "foo",
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[{
+ "schema": {
+ "title": "Example Schema",
+ "type": "object",
+ "properties": {
+ "firstName": {
+ "type": "string"
+ },
+ "lastName": {
+ "type": "string"
+ },
+ "age": {
+ "description": "Age in years",
+ "type": "integer",
+ "minimum": 0
+ }
+ },
+ "required": ["firstName", "lastName"]
+ }
+}]
--- /dev/null
+[
+ {
+ "description": "valid definition",
+ "schema": {"$ref": "http://json-schema.org/draft-04/schema#"},
+ "tests": [
+ {
+ "description": "valid definition schema",
+ "data": {
+ "definitions": {
+ "foo": {"type": "integer"}
+ }
+ },
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description": "invalid definition",
+ "schema": {"$ref": "http://json-schema.org/draft-04/schema#"},
+ "tests": [
+ {
+ "description": "invalid definition schema",
+ "data": {
+ "definitions": {
+ "foo": {"type": 1}
+ }
+ },
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "dependencies",
+ "schema": {
+ "dependencies": {"bar": ["foo"]}
+ },
+ "tests": [
+ {
+ "description": "neither",
+ "data": {},
+ "valid": true
+ },
+ {
+ "description": "nondependant",
+ "data": {"foo": 1},
+ "valid": true
+ },
+ {
+ "description": "with dependency",
+ "data": {"foo": 1, "bar": 2},
+ "valid": true
+ },
+ {
+ "description": "missing dependency",
+ "data": {"bar": 2},
+ "valid": false
+ },
+ {
+ "description": "ignores non-objects",
+ "data": "foo",
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description": "multiple dependencies",
+ "schema": {
+ "dependencies": {"quux": ["foo", "bar"]}
+ },
+ "tests": [
+ {
+ "description": "neither",
+ "data": {},
+ "valid": true
+ },
+ {
+ "description": "nondependants",
+ "data": {"foo": 1, "bar": 2},
+ "valid": true
+ },
+ {
+ "description": "with dependencies",
+ "data": {"foo": 1, "bar": 2, "quux": 3},
+ "valid": true
+ },
+ {
+ "description": "missing dependency",
+ "data": {"foo": 1, "quux": 2},
+ "valid": false
+ },
+ {
+ "description": "missing other dependency",
+ "data": {"bar": 1, "quux": 2},
+ "valid": false
+ },
+ {
+ "description": "missing both dependencies",
+ "data": {"quux": 1},
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "multiple dependencies subschema",
+ "schema": {
+ "dependencies": {
+ "bar": {
+ "properties": {
+ "foo": {"type": "integer"},
+ "bar": {"type": "integer"}
+ }
+ }
+ }
+ },
+ "tests": [
+ {
+ "description": "valid",
+ "data": {"foo": 1, "bar": 2},
+ "valid": true
+ },
+ {
+ "description": "no dependency",
+ "data": {"foo": "quux"},
+ "valid": true
+ },
+ {
+ "description": "wrong type",
+ "data": {"foo": "quux", "bar": 2},
+ "valid": false
+ },
+ {
+ "description": "wrong type other",
+ "data": {"foo": 2, "bar": "quux"},
+ "valid": false
+ },
+ {
+ "description": "wrong type both",
+ "data": {"foo": "quux", "bar": "quux"},
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "simple enum validation",
+ "schema": {"enum": [1, 2, 3]},
+ "tests": [
+ {
+ "description": "one of the enum is valid",
+ "data": 1,
+ "valid": true
+ },
+ {
+ "description": "something else is invalid",
+ "data": 4,
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "heterogeneous enum validation",
+ "schema": {"enum": [6, "foo", [], true, {"foo": 12}]},
+ "tests": [
+ {
+ "description": "one of the enum is valid",
+ "data": [],
+ "valid": true
+ },
+ {
+ "description": "something else is invalid",
+ "data": null,
+ "valid": false
+ },
+ {
+ "description": "objects are deep compared",
+ "data": {"foo": false},
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "schema" : {
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "title": "Product set",
+ "type": "array",
+ "items": {
+ "title": "Product",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "The unique identifier for a product",
+ "type": "number"
+ },
+ "name": {
+ "type": "string"
+ },
+ "price": {
+ "type": "number",
+ "minimum": 0,
+ "exclusiveMinimum": true
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1,
+ "uniqueItems": true
+ },
+ "dimensions": {
+ "type": "object",
+ "properties": {
+ "length": {"type": "number"},
+ "width": {"type": "number"},
+ "height": {"type": "number"}
+ },
+ "required": ["length", "width", "height"]
+ },
+ "warehouseLocation": {
+ "description": "Coordinates of the warehouse with the product",
+ "$ref": "http://localhost:8000/docson/tests/geo.json"
+ }
+ },
+ "required": ["id", "name", "price"]
+ }
+ }
+ }
+]
--- /dev/null
+[
+ {
+ "schema": {
+ "id": "http://some.site.somewhere/entry-schema#",
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "description": "schema for an fstab entry",
+ "type": "object",
+ "required": [ "storage" ],
+ "properties": {
+ "storage": {
+ "type": "object",
+ "oneOf": [
+ { "$ref": "#/definitions/diskDevice" },
+ { "$ref": "#/definitions/diskUUID" },
+ { "$ref": "#/definitions/nfs" },
+ { "$ref": "#/definitions/tmpfs" }
+ ]
+ },
+ "fstype": {
+ "enum": [ "ext3", "ext4", "btrfs" ],
+ "default": "ext3"
+ },
+ "options": {
+ "type": "array",
+ "minItems": 1,
+ "items": { "type": "string" },
+ "uniqueItems": true
+ },
+ "readonly": { "type": "boolean" }
+ },
+ "definitions": {
+ "diskDevice": {
+ "properties": {
+ "type": { "enum": [ "disk" ] },
+ "device": {
+ "type": "string",
+ "pattern": "^/dev/[^/]+(/[^/]+)*$"
+ }
+ },
+ "required": [ "type", "device" ],
+ "additionalProperties": false
+ },
+ "diskUUID": {
+ "properties": {
+ "type": { "enum": [ "disk" ] },
+ "label": {
+ "type": "string",
+ "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
+ }
+ },
+ "required": [ "type", "label" ],
+ "additionalProperties": false
+ },
+ "nfs": {
+ "properties": {
+ "type": { "enum": [ "nfs" ] },
+ "remotePath": {
+ "type": "string",
+ "pattern": "^(/[^/]+)+$"
+ },
+ "server": {
+ "type": "string",
+ "oneOf": [
+ { "format": "host-name" },
+ { "format": "ipv4" },
+ { "format": "ipv6" }
+ ]
+ }
+ },
+ "required": [ "type", "server", "remotePath" ],
+ "additionalProperties": false
+ },
+ "tmpfs": {
+ "properties": {
+ "type": { "enum": [ "tmpfs" ] },
+ "sizeInMB": {
+ "type": "integer",
+ "minimum": 16,
+ "maximum": 512
+ }
+ },
+ "required": [ "type", "sizeInMB" ],
+ "additionalProperties": false
+ }
+ }
+ }
+ }]
--- /dev/null
+{
+ "description": "A geographical coordinate",
+ "type": "object",
+ "properties": {
+ "latitude": { "type": "number" },
+ "longitude": { "type": "number" }
+ }
+}
--- /dev/null
+[
+ {
+ "schema": {
+ "Invoice": {
+ "id": "Invoice",
+ "description": "Represents the document sent to the customer for payment.",
+ "properties": {
+ "customer": {
+ "description": "Who will pay?\nNot me! éà è",
+ "type": "string"
+ },
+ "lines": {
+ "description": "Invoice content\n",
+ "minItems": "1",
+ "maxItems": "50",
+ "type": "array",
+ "items": {
+ "$ref": "InvoiceLine"
+ }
+ },
+ "dimension": {
+ "description": "Total dimension of the order ",
+ "$ref": "Dimension"
+ }
+ }
+ },
+ "InvoiceLine": {
+ "id": "InvoiceLine",
+ "properties": {
+ "product": {
+ "$ref": "Product"
+ },
+ "quantity": {
+ "minimum": "0",
+ "exclusiveMinimum": "true",
+ "maximum": "10",
+ "exclusiveMaximum": "false",
+ "type": "number"
+ }
+ }
+ },
+ "Dimension": {
+ "id": "Dimension",
+ "properties": {
+ "width": {
+ "description": "Width in cm ",
+ "type": "number"
+ },
+ "height": {
+ "description": "Height in cm ",
+ "type": "number"
+ },
+ "length": {
+ "description": "Length in cm ",
+ "type": "number"
+ }
+ }
+ },
+ "Product": {
+ "id": "Product",
+ "properties": {
+ "name": {
+ "description": "Uniquely defines the product ",
+ "type": "string"
+ },
+ "dimension": {
+ "description": "How big it is ",
+ "$ref": "Dimension"
+ },
+ "category": {
+ "description": "Classification ",
+ "$ref": "Category"
+ }
+ }
+ },
+ "Category": {
+ "id": "Category",
+ "properties": {
+ "name": {
+ "description": "Uniquely identifies the category ",
+ "type": "string"
+ },
+ "level": {
+ "description": "Classification level from 1 to 5 (highest) ",
+ "type": "number"
+ }
+ }
+ },
+ "CategoryIndex": {
+ "id": "CategoryIndex",
+ "properties": {
+ "categories": {},
+ "products": {},
+ "sizes": {}
+ }
+ }
+ }
+ }]
--- /dev/null
+[
+ {
+ "description": "a schema given for items",
+ "schema": {
+ "items": {"type": "integer"}
+ },
+ "tests": [
+ {
+ "description": "valid items",
+ "data": [ 1, 2, 3 ],
+ "valid": true
+ },
+ {
+ "description": "wrong type of items",
+ "data": [1, "x"],
+ "valid": false
+ },
+ {
+ "description": "ignores non-arrays",
+ "data": {"foo" : "bar"},
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description": "an array of schemas for items",
+ "schema": {
+ "items": [
+ {"type": "integer"},
+ {"type": "string"}
+ ]
+ },
+ "tests": [
+ {
+ "description": "correct types",
+ "data": [ 1, "foo" ],
+ "valid": true
+ },
+ {
+ "description": "wrong types",
+ "data": [ "foo", 1 ],
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "maxItems validation",
+ "schema": {"maxItems": 2},
+ "tests": [
+ {
+ "description": "shorter is valid",
+ "data": [1],
+ "valid": true
+ },
+ {
+ "description": "exact length is valid",
+ "data": [1, 2],
+ "valid": true
+ },
+ {
+ "description": "too long is invalid",
+ "data": [1, 2, 3],
+ "valid": false
+ },
+ {
+ "description": "ignores non-arrays",
+ "data": "foobar",
+ "valid": true
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "maxLength validation",
+ "schema": {"maxLength": 2},
+ "tests": [
+ {
+ "description": "shorter is valid",
+ "data": "f",
+ "valid": true
+ },
+ {
+ "description": "exact length is valid",
+ "data": "fo",
+ "valid": true
+ },
+ {
+ "description": "too long is invalid",
+ "data": "foo",
+ "valid": false
+ },
+ {
+ "description": "ignores non-strings",
+ "data": 10,
+ "valid": true
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "maxProperties validation",
+ "schema": {"maxProperties": 2},
+ "tests": [
+ {
+ "description": "shorter is valid",
+ "data": {"foo": 1},
+ "valid": true
+ },
+ {
+ "description": "exact length is valid",
+ "data": {"foo": 1, "bar": 2},
+ "valid": true
+ },
+ {
+ "description": "too long is invalid",
+ "data": {"foo": 1, "bar": 2, "baz": 3},
+ "valid": false
+ },
+ {
+ "description": "ignores non-objects",
+ "data": "foobar",
+ "valid": true
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "maximum validation",
+ "schema": {"maximum": 3.0},
+ "tests": [
+ {
+ "description": "below the maximum is valid",
+ "data": 2.6,
+ "valid": true
+ },
+ {
+ "description": "above the maximum is invalid",
+ "data": 3.5,
+ "valid": false
+ },
+ {
+ "description": "ignores non-numbers",
+ "data": "x",
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description": "exclusiveMaximum validation",
+ "schema": {
+ "maximum": 3.0,
+ "exclusiveMaximum": true
+ },
+ "tests": [
+ {
+ "description": "below the maximum is still valid",
+ "data": 2.2,
+ "valid": true
+ },
+ {
+ "description": "boundary point is invalid",
+ "data": 3.0,
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "minItems validation",
+ "schema": {"minItems": 1},
+ "tests": [
+ {
+ "description": "longer is valid",
+ "data": [1, 2],
+ "valid": true
+ },
+ {
+ "description": "exact length is valid",
+ "data": [1],
+ "valid": true
+ },
+ {
+ "description": "too short is invalid",
+ "data": [],
+ "valid": false
+ },
+ {
+ "description": "ignores non-arrays",
+ "data": "",
+ "valid": true
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "minLength validation",
+ "schema": {"minLength": 2},
+ "tests": [
+ {
+ "description": "longer is valid",
+ "data": "foo",
+ "valid": true
+ },
+ {
+ "description": "exact length is valid",
+ "data": "fo",
+ "valid": true
+ },
+ {
+ "description": "too short is invalid",
+ "data": "f",
+ "valid": false
+ },
+ {
+ "description": "ignores non-strings",
+ "data": 1,
+ "valid": true
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "minProperties validation",
+ "schema": {"minProperties": 1},
+ "tests": [
+ {
+ "description": "longer is valid",
+ "data": {"foo": 1, "bar": 2},
+ "valid": true
+ },
+ {
+ "description": "exact length is valid",
+ "data": {"foo": 1},
+ "valid": true
+ },
+ {
+ "description": "too short is invalid",
+ "data": {},
+ "valid": false
+ },
+ {
+ "description": "ignores non-objects",
+ "data": "",
+ "valid": true
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "minimum validation",
+ "schema": {"minimum": 1.1},
+ "tests": [
+ {
+ "description": "above the minimum is valid",
+ "data": 2.6,
+ "valid": true
+ },
+ {
+ "description": "below the minimum is invalid",
+ "data": 0.6,
+ "valid": false
+ },
+ {
+ "description": "ignores non-numbers",
+ "data": "x",
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description": "exclusiveMinimum validation",
+ "schema": {
+ "minimum": 1.1,
+ "exclusiveMinimum": true
+ },
+ "tests": [
+ {
+ "description": "above the minimum is still valid",
+ "data": 1.2,
+ "valid": true
+ },
+ {
+ "description": "boundary point is invalid",
+ "data": 1.1,
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "by int",
+ "schema": {"multipleOf": 2},
+ "tests": [
+ {
+ "description": "int by int",
+ "data": 10,
+ "valid": true
+ },
+ {
+ "description": "int by int fail",
+ "data": 7,
+ "valid": false
+ },
+ {
+ "description": "ignores non-numbers",
+ "data": "foo",
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description": "by number",
+ "schema": {"multipleOf": 1.5},
+ "tests": [
+ {
+ "description": "zero is multiple of anything",
+ "data": 0,
+ "valid": true
+ },
+ {
+ "description": "4.5 is multiple of 1.5",
+ "data": 4.5,
+ "valid": true
+ },
+ {
+ "description": "35 is not multiple of 1.5",
+ "data": 35,
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "by small number",
+ "schema": {"multipleOf": 0.0001},
+ "tests": [
+ {
+ "description": "0.0075 is multiple of 0.0001",
+ "data": 0.0075,
+ "valid": true
+ },
+ {
+ "description": "0.00751 is not multiple of 0.0001",
+ "data": 0.00751,
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "not",
+ "schema": {
+ "not": {"type": "integer"}
+ },
+ "tests": [
+ {
+ "description": "allowed",
+ "data": "foo",
+ "valid": true
+ },
+ {
+ "description": "disallowed",
+ "data": 1,
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "not multiple types",
+ "schema": {
+ "not": {"type": ["integer", "boolean"]}
+ },
+ "tests": [
+ {
+ "description": "valid",
+ "data": "foo",
+ "valid": true
+ },
+ {
+ "description": "mismatch",
+ "data": 1,
+ "valid": false
+ },
+ {
+ "description": "other mismatch",
+ "data": true,
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "not more complex schema",
+ "schema": {
+ "not": {
+ "type": "object",
+ "properties": {
+ "foo": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "tests": [
+ {
+ "description": "match",
+ "data": 1,
+ "valid": true
+ },
+ {
+ "description": "other match",
+ "data": {"foo": 1},
+ "valid": true
+ },
+ {
+ "description": "mismatch",
+ "data": {"foo": "bar"},
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "oneOf",
+ "schema": {
+ "oneOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "minimum": 2
+ }
+ ]
+ },
+ "tests": [
+ {
+ "description": "first oneOf valid",
+ "data": 1,
+ "valid": true
+ },
+ {
+ "description": "second oneOf valid",
+ "data": 2.5,
+ "valid": true
+ },
+ {
+ "description": "both oneOf valid",
+ "data": 3,
+ "valid": false
+ },
+ {
+ "description": "neither oneOf valid",
+ "data": 1.5,
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "oneOf with base schema",
+ "schema": {
+ "type": "string",
+ "oneOf" : [
+ {
+ "minLength": 2
+ },
+ {
+ "maxLength": 4
+ }
+ ]
+ },
+ "tests": [
+ {
+ "description": "mismatch base schema",
+ "data": 3,
+ "valid": false
+ },
+ {
+ "description": "one oneOf valid",
+ "data": "foobar",
+ "valid": true
+ },
+ {
+ "description": "both oneOf valid",
+ "data": "foo",
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "pattern validation",
+ "schema": {"pattern": "^a*$"},
+ "tests": [
+ {
+ "description": "a matching pattern is valid",
+ "data": "aaa",
+ "valid": true
+ },
+ {
+ "description": "a non-matching pattern is invalid",
+ "data": "abc",
+ "valid": false
+ },
+ {
+ "description": "ignores non-strings",
+ "data": true,
+ "valid": true
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description":
+ "patternProperties validates properties matching a regex",
+ "schema": {
+ "patternProperties": {
+ "f.*o": {"type": "integer"}
+ }
+ },
+ "tests": [
+ {
+ "description": "a single valid match is valid",
+ "data": {"foo": 1},
+ "valid": true
+ },
+ {
+ "description": "multiple valid matches is valid",
+ "data": {"foo": 1, "foooooo" : 2},
+ "valid": true
+ },
+ {
+ "description": "a single invalid match is invalid",
+ "data": {"foo": "bar", "fooooo": 2},
+ "valid": false
+ },
+ {
+ "description": "multiple invalid matches is invalid",
+ "data": {"foo": "bar", "foooooo" : "baz"},
+ "valid": false
+ },
+ {
+ "description": "ignores non-objects",
+ "data": 12,
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description": "multiple simultaneous patternProperties are validated",
+ "schema": {
+ "patternProperties": {
+ "a*": {"type": "integer"},
+ "aaa*": {"maximum": 20}
+ }
+ },
+ "tests": [
+ {
+ "description": "a single valid match is valid",
+ "data": {"a": 21},
+ "valid": true
+ },
+ {
+ "description": "a simultaneous match is valid",
+ "data": {"aaaa": 18},
+ "valid": true
+ },
+ {
+ "description": "multiple matches is valid",
+ "data": {"a": 21, "aaaa": 18},
+ "valid": true
+ },
+ {
+ "description": "an invalid due to one is invalid",
+ "data": {"a": "bar"},
+ "valid": false
+ },
+ {
+ "description": "an invalid due to the other is invalid",
+ "data": {"aaaa": 31},
+ "valid": false
+ },
+ {
+ "description": "an invalid due to both is invalid",
+ "data": {"aaa": "foo", "aaaa": 31},
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "regexes are not anchored by default and are case sensitive",
+ "schema": {
+ "patternProperties": {
+ "[0-9]{2,}": { "type": "boolean" },
+ "X_": { "type": "string" }
+ }
+ },
+ "tests": [
+ {
+ "description": "non recognized members are ignored",
+ "data": { "answer 1": "42" },
+ "valid": true
+ },
+ {
+ "description": "recognized members are accounted for",
+ "data": { "a31b": null },
+ "valid": false
+ },
+ {
+ "description": "regexes are case sensitive",
+ "data": { "a_x_3": 3 },
+ "valid": true
+ },
+ {
+ "description": "regexes are case sensitive, 2",
+ "data": { "a_X_3": 3 },
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "object properties validation",
+ "schema": {
+ "properties": {
+ "foo": {"type": "integer"},
+ "bar": {"type": "string"}
+ }
+ },
+ "tests": [
+ {
+ "description": "both properties present and valid is valid",
+ "data": {"foo": 1, "bar": "baz"},
+ "valid": true
+ },
+ {
+ "description": "one property invalid is invalid",
+ "data": {"foo": 1, "bar": {}},
+ "valid": false
+ },
+ {
+ "description": "both properties invalid is invalid",
+ "data": {"foo": [], "bar": {}},
+ "valid": false
+ },
+ {
+ "description": "doesn't invalidate other properties",
+ "data": {"quux": []},
+ "valid": true
+ },
+ {
+ "description": "ignores non-objects",
+ "data": [],
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description":
+ "properties, patternProperties, additionalProperties interaction",
+ "schema": {
+ "properties": {
+ "foo": {"type": "array", "maxItems": 3},
+ "bar": {"type": "array"}
+ },
+ "patternProperties": {"f.o": {"minItems": 2}},
+ "additionalProperties": {"type": "integer"}
+ },
+ "tests": [
+ {
+ "description": "property validates property",
+ "data": {"foo": [1, 2]},
+ "valid": true
+ },
+ {
+ "description": "property invalidates property",
+ "data": {"foo": [1, 2, 3, 4]},
+ "valid": false
+ },
+ {
+ "description": "patternProperty invalidates property",
+ "data": {"foo": []},
+ "valid": false
+ },
+ {
+ "description": "patternProperty validates nonproperty",
+ "data": {"fxo": [1, 2]},
+ "valid": true
+ },
+ {
+ "description": "patternProperty invalidates nonproperty",
+ "data": {"fxo": []},
+ "valid": false
+ },
+ {
+ "description": "additionalProperty ignores property",
+ "data": {"bar": []},
+ "valid": true
+ },
+ {
+ "description": "additionalProperty validates others",
+ "data": {"quux": 3},
+ "valid": true
+ },
+ {
+ "description": "additionalProperty invalidates others",
+ "data": {"quux": "foo"},
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "root pointer ref",
+ "schema": {
+ "properties": {
+ "foo": {"$ref": "#"}
+ },
+ "additionalProperties": false
+ },
+ "tests": [
+ {
+ "description": "match",
+ "data": {"foo": false},
+ "valid": true
+ },
+ {
+ "description": "recursive match",
+ "data": {"foo": {"foo": false}},
+ "valid": true
+ },
+ {
+ "description": "mismatch",
+ "data": {"bar": false},
+ "valid": false
+ },
+ {
+ "description": "recursive mismatch",
+ "data": {"foo": {"bar": false}},
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "relative pointer ref to object",
+ "schema": {
+ "properties": {
+ "foo": {"type": "integer"},
+ "bar": {"$ref": "#/properties/foo"}
+ }
+ },
+ "tests": [
+ {
+ "description": "match",
+ "data": {"bar": 3},
+ "valid": true
+ },
+ {
+ "description": "mismatch",
+ "data": {"bar": true},
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "relative pointer ref to array",
+ "schema": {
+ "items": [
+ {"type": "integer"},
+ {"$ref": "#/items/0"}
+ ]
+ },
+ "tests": [
+ {
+ "description": "match array",
+ "data": [1, 2],
+ "valid": true
+ },
+ {
+ "description": "mismatch array",
+ "data": [1, "foo"],
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "escaped pointer ref",
+ "schema": {
+ "tilda~field": {"type": "integer"},
+ "slash/field": {"type": "integer"},
+ "percent%field": {"type": "integer"},
+ "properties": {
+ "tilda": {"$ref": "#/tilda~0field"},
+ "slash": {"$ref": "#/slash~1field"},
+ "percent": {"$ref": "#/percent%25field"}
+ }
+ },
+ "tests": [
+ {
+ "description": "slash",
+ "data": {"slash": "aoeu"},
+ "valid": false
+ },
+ {
+ "description": "tilda",
+ "data": {"tilda": "aoeu"},
+ "valid": false
+ },
+ {
+ "description": "percent",
+ "data": {"percent": "aoeu"},
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "nested refs",
+ "schema": {
+ "definitions": {
+ "a": {"type": "integer"},
+ "b": {"$ref": "#/definitions/a"},
+ "c": {"$ref": "#/definitions/b"}
+ },
+ "$ref": "#/definitions/c"
+ },
+ "tests": [
+ {
+ "description": "nested ref valid",
+ "data": 5,
+ "valid": true
+ },
+ {
+ "description": "nested ref invalid",
+ "data": "a",
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "remote ref, containing refs itself",
+ "schema": {"$ref": "http://json-schema.org/draft-04/schema#"},
+ "tests": [
+ {
+ "description": "remote ref valid",
+ "data": {"minLength": 1},
+ "valid": true
+ },
+ {
+ "description": "remote ref invalid",
+ "data": {"minLength": -1},
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "circular refs",
+ "schema": {
+ "definitions": {
+ "a": {
+ "properties": {
+ "more": {"$ref": "#/definitions/a"}
+ }
+ }
+ },
+ "properties": {
+ "prop": {"$ref": "#/definitions/a"}
+ }
+ },
+ "tests": []
+ }
+]
--- /dev/null
+[
+ {
+ "description": "remote ref",
+ "schema": {"$ref": "http://localhost:1234/integer.json"},
+ "tests": [
+ {
+ "description": "remote ref valid",
+ "data": 1,
+ "valid": true
+ },
+ {
+ "description": "remote ref invalid",
+ "data": "a",
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "fragment within remote ref",
+ "schema": {"$ref": "http://localhost:1234/subSchemas.json#/integer"},
+ "tests": [
+ {
+ "description": "remote fragment valid",
+ "data": 1,
+ "valid": true
+ },
+ {
+ "description": "remote fragment invalid",
+ "data": "a",
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "ref within remote ref",
+ "schema": {
+ "$ref": "http://localhost:1234/subSchemas.json#/refToInteger"
+ },
+ "tests": [
+ {
+ "description": "ref within ref valid",
+ "data": 1,
+ "valid": true
+ },
+ {
+ "description": "ref within ref invalid",
+ "data": "a",
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "change resolution scope",
+ "schema": {
+ "id": "http://localhost:1234/",
+ "items": {
+ "id": "folder/",
+ "items": {"$ref": "folderInteger.json"}
+ }
+ },
+ "tests": [
+ {
+ "description": "changed scope ref valid",
+ "data": [[1]],
+ "valid": true
+ },
+ {
+ "description": "changed scope ref invalid",
+ "data": [["a"]],
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "required validation",
+ "schema": {
+ "properties": {
+ "foo": {},
+ "bar": {}
+ },
+ "required": ["foo"]
+ },
+ "tests": [
+ {
+ "description": "present required property is valid",
+ "data": {"foo": 1},
+ "valid": true
+ },
+ {
+ "description": "non-present required property is invalid",
+ "data": {"bar": 1},
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "required default validation",
+ "schema": {
+ "properties": {
+ "foo": {}
+ }
+ },
+ "tests": [
+ {
+ "description": "not required by default",
+ "data": {},
+ "valid": true
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "schema": {
+ "id": "http://json-schema.org/draft-04/schema#",
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "description": "Core schema meta-schema",
+ "definitions": {
+ "schemaArray": {
+ "type": "array",
+ "minItems": 1,
+ "items": { "$ref": "#" }
+ },
+ "positiveInteger": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "positiveIntegerDefault0": {
+ "allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ]
+ },
+ "simpleTypes": {
+ "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ]
+ },
+ "stringArray": {
+ "type": "array",
+ "items": { "type": "string" },
+ "minItems": 1,
+ "uniqueItems": true
+ }
+ },
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string",
+ "format": "uri"
+ },
+ "$schema": {
+ "type": "string",
+ "format": "uri"
+ },
+ "title": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "default": {},
+ "multipleOf": {
+ "type": "number",
+ "minimum": 0,
+ "exclusiveMinimum": true
+ },
+ "maximum": {
+ "type": "number"
+ },
+ "exclusiveMaximum": {
+ "type": "boolean",
+ "default": false
+ },
+ "minimum": {
+ "type": "number"
+ },
+ "exclusiveMinimum": {
+ "type": "boolean",
+ "default": false
+ },
+ "maxLength": { "$ref": "#/definitions/positiveInteger" },
+ "minLength": { "$ref": "#/definitions/positiveIntegerDefault0" },
+ "pattern": {
+ "type": "string",
+ "format": "regex"
+ },
+ "additionalItems": {
+ "anyOf": [
+ { "type": "boolean" },
+ { "$ref": "#" }
+ ],
+ "default": {}
+ },
+ "items": {
+ "anyOf": [
+ { "$ref": "#" },
+ { "$ref": "#/definitions/schemaArray" }
+ ],
+ "default": {}
+ },
+ "maxItems": { "$ref": "#/definitions/positiveInteger" },
+ "minItems": { "$ref": "#/definitions/positiveIntegerDefault0" },
+ "uniqueItems": {
+ "type": "boolean",
+ "default": false
+ },
+ "maxProperties": { "$ref": "#/definitions/positiveInteger" },
+ "minProperties": { "$ref": "#/definitions/positiveIntegerDefault0" },
+ "required": { "$ref": "#/definitions/stringArray" },
+ "additionalProperties": {
+ "anyOf": [
+ { "type": "boolean" },
+ { "$ref": "#" }
+ ],
+ "default": {}
+ },
+ "definitions": {
+ "type": "object",
+ "additionalProperties": { "$ref": "#" },
+ "default": {}
+ },
+ "properties": {
+ "type": "object",
+ "additionalProperties": { "$ref": "#" },
+ "default": {}
+ },
+ "patternProperties": {
+ "type": "object",
+ "additionalProperties": { "$ref": "#" },
+ "default": {}
+ },
+ "dependencies": {
+ "type": "object",
+ "additionalProperties": {
+ "anyOf": [
+ { "$ref": "#" },
+ { "$ref": "#/definitions/stringArray" }
+ ]
+ }
+ },
+ "enum": {
+ "type": "array",
+ "minItems": 1,
+ "uniqueItems": true
+ },
+ "type": {
+ "anyOf": [
+ { "$ref": "#/definitions/simpleTypes" },
+ {
+ "type": "array",
+ "items": { "$ref": "#/definitions/simpleTypes" },
+ "minItems": 1,
+ "uniqueItems": true
+ }
+ ]
+ },
+ "allOf": { "$ref": "#/definitions/schemaArray" },
+ "anyOf": { "$ref": "#/definitions/schemaArray" },
+ "oneOf": { "$ref": "#/definitions/schemaArray" },
+ "not": { "$ref": "#" }
+ },
+ "dependencies": {
+ "exclusiveMaximum": [ "maximum" ],
+ "exclusiveMinimum": [ "minimum" ]
+ },
+ "default": {}
+ }
+
+ }]
--- /dev/null
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Docson Test</title>
+ <meta charset="utf-8">
+ <link rel="stylesheet" href="../css/docson.css">
+ <script src="../lib/require.js"></script></head>
+ <style>
+ body {
+ font-family: verdana, helvetica;
+ }
+ </style>
+</head>
+<body>
+<script charset="utf-8">
+ var tests = [ "invoice$Invoice", "enum", "schema","additionalProperties", "address", "fstab", "basic", "not", "oneOf", "anyOf", "allOf", "example2", "properties", "ref"]
+ require.config({ baseUrl: ".."});
+ require(["docson", "lib/jquery"], function(docson) {
+ docson.templateBaseUrl="../templates";
+ $(function() {
+ $.each(tests, function(k, test) {
+ var block = $("<div/>");
+ var segments = test.split("$");
+ $("body").append("<h2>"+segments[0]+"</h2>");
+ $("body").append(block);
+ $.get(segments[0]+".json").done(function(items) {
+ $.each(items, function(k, item) {
+ var element = $("<div/>");
+ block.append(element);
+ if(!item.schema.description) {
+ item.schema.description = item.description;
+ }
+ docson.doc(element, item.schema, segments[1]);
+ });
+ });
+ });
+ });
+ });
+</script>
+</body>
+</html>
--- /dev/null
+[
+ {
+ "description": "integer type matches integers",
+ "schema": {"type": "integer"},
+ "tests": [
+ {
+ "description": "an integer is an integer",
+ "data": 1,
+ "valid": true
+ },
+ {
+ "description": "a float is not an integer",
+ "data": 1.1,
+ "valid": false
+ },
+ {
+ "description": "a string is not an integer",
+ "data": "foo",
+ "valid": false
+ },
+ {
+ "description": "an object is not an integer",
+ "data": {},
+ "valid": false
+ },
+ {
+ "description": "an array is not an integer",
+ "data": [],
+ "valid": false
+ },
+ {
+ "description": "a boolean is not an integer",
+ "data": true,
+ "valid": false
+ },
+ {
+ "description": "null is not an integer",
+ "data": null,
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "number type matches numbers",
+ "schema": {"type": "number"},
+ "tests": [
+ {
+ "description": "an integer is a number",
+ "data": 1,
+ "valid": true
+ },
+ {
+ "description": "a float is a number",
+ "data": 1.1,
+ "valid": true
+ },
+ {
+ "description": "a string is not a number",
+ "data": "foo",
+ "valid": false
+ },
+ {
+ "description": "an object is not a number",
+ "data": {},
+ "valid": false
+ },
+ {
+ "description": "an array is not a number",
+ "data": [],
+ "valid": false
+ },
+ {
+ "description": "a boolean is not a number",
+ "data": true,
+ "valid": false
+ },
+ {
+ "description": "null is not a number",
+ "data": null,
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "string type matches strings",
+ "schema": {"type": "string"},
+ "tests": [
+ {
+ "description": "1 is not a string",
+ "data": 1,
+ "valid": false
+ },
+ {
+ "description": "a float is not a string",
+ "data": 1.1,
+ "valid": false
+ },
+ {
+ "description": "a string is a string",
+ "data": "foo",
+ "valid": true
+ },
+ {
+ "description": "an object is not a string",
+ "data": {},
+ "valid": false
+ },
+ {
+ "description": "an array is not a string",
+ "data": [],
+ "valid": false
+ },
+ {
+ "description": "a boolean is not a string",
+ "data": true,
+ "valid": false
+ },
+ {
+ "description": "null is not a string",
+ "data": null,
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "object type matches objects",
+ "schema": {"type": "object"},
+ "tests": [
+ {
+ "description": "an integer is not an object",
+ "data": 1,
+ "valid": false
+ },
+ {
+ "description": "a float is not an object",
+ "data": 1.1,
+ "valid": false
+ },
+ {
+ "description": "a string is not an object",
+ "data": "foo",
+ "valid": false
+ },
+ {
+ "description": "an object is an object",
+ "data": {},
+ "valid": true
+ },
+ {
+ "description": "an array is not an object",
+ "data": [],
+ "valid": false
+ },
+ {
+ "description": "a boolean is not an object",
+ "data": true,
+ "valid": false
+ },
+ {
+ "description": "null is not an object",
+ "data": null,
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "array type matches arrays",
+ "schema": {"type": "array"},
+ "tests": [
+ {
+ "description": "an integer is not an array",
+ "data": 1,
+ "valid": false
+ },
+ {
+ "description": "a float is not an array",
+ "data": 1.1,
+ "valid": false
+ },
+ {
+ "description": "a string is not an array",
+ "data": "foo",
+ "valid": false
+ },
+ {
+ "description": "an object is not an array",
+ "data": {},
+ "valid": false
+ },
+ {
+ "description": "an array is not an array",
+ "data": [],
+ "valid": true
+ },
+ {
+ "description": "a boolean is not an array",
+ "data": true,
+ "valid": false
+ },
+ {
+ "description": "null is not an array",
+ "data": null,
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "boolean type matches booleans",
+ "schema": {"type": "boolean"},
+ "tests": [
+ {
+ "description": "an integer is not a boolean",
+ "data": 1,
+ "valid": false
+ },
+ {
+ "description": "a float is not a boolean",
+ "data": 1.1,
+ "valid": false
+ },
+ {
+ "description": "a string is not a boolean",
+ "data": "foo",
+ "valid": false
+ },
+ {
+ "description": "an object is not a boolean",
+ "data": {},
+ "valid": false
+ },
+ {
+ "description": "an array is not a boolean",
+ "data": [],
+ "valid": false
+ },
+ {
+ "description": "a boolean is not a boolean",
+ "data": true,
+ "valid": true
+ },
+ {
+ "description": "null is not a boolean",
+ "data": null,
+ "valid": false
+ }
+ ]
+ },
+ {
+ "description": "null type matches only the null object",
+ "schema": {"type": "null"},
+ "tests": [
+ {
+ "description": "an integer is not null",
+ "data": 1,
+ "valid": false
+ },
+ {
+ "description": "a float is not null",
+ "data": 1.1,
+ "valid": false
+ },
+ {
+ "description": "a string is not null",
+ "data": "foo",
+ "valid": false
+ },
+ {
+ "description": "an object is not null",
+ "data": {},
+ "valid": false
+ },
+ {
+ "description": "an array is not null",
+ "data": [],
+ "valid": false
+ },
+ {
+ "description": "a boolean is not null",
+ "data": true,
+ "valid": false
+ },
+ {
+ "description": "null is null",
+ "data": null,
+ "valid": true
+ }
+ ]
+ },
+ {
+ "description": "multiple types can be specified in an array",
+ "schema": {"type": ["integer", "string"]},
+ "tests": [
+ {
+ "description": "an integer is valid",
+ "data": 1,
+ "valid": true
+ },
+ {
+ "description": "a string is valid",
+ "data": "foo",
+ "valid": true
+ },
+ {
+ "description": "a float is invalid",
+ "data": 1.1,
+ "valid": false
+ },
+ {
+ "description": "an object is invalid",
+ "data": {},
+ "valid": false
+ },
+ {
+ "description": "an array is invalid",
+ "data": [],
+ "valid": false
+ },
+ {
+ "description": "a boolean is invalid",
+ "data": true,
+ "valid": false
+ },
+ {
+ "description": "null is invalid",
+ "data": null,
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "description": "uniqueItems validation",
+ "schema": {"uniqueItems": true},
+ "tests": [
+ {
+ "description": "unique array of integers is valid",
+ "data": [1, 2],
+ "valid": true
+ },
+ {
+ "description": "non-unique array of integers is invalid",
+ "data": [1, 1],
+ "valid": false
+ },
+ {
+ "description": "numbers are unique if mathematically unequal",
+ "data": [1.0, 1.00, 1],
+ "valid": false
+ },
+ {
+ "description": "unique array of objects is valid",
+ "data": [{"foo": "bar"}, {"foo": "baz"}],
+ "valid": true
+ },
+ {
+ "description": "non-unique array of objects is invalid",
+ "data": [{"foo": "bar"}, {"foo": "bar"}],
+ "valid": false
+ },
+ {
+ "description": "unique array of nested objects is valid",
+ "data": [
+ {"foo": {"bar" : {"baz" : true}}},
+ {"foo": {"bar" : {"baz" : false}}}
+ ],
+ "valid": true
+ },
+ {
+ "description": "non-unique array of nested objects is invalid",
+ "data": [
+ {"foo": {"bar" : {"baz" : true}}},
+ {"foo": {"bar" : {"baz" : true}}}
+ ],
+ "valid": false
+ },
+ {
+ "description": "unique array of arrays is valid",
+ "data": [["foo"], ["bar"]],
+ "valid": true
+ },
+ {
+ "description": "non-unique array of arrays is invalid",
+ "data": [["foo"], ["foo"]],
+ "valid": false
+ },
+ {
+ "description": "1 and true are unique",
+ "data": [1, true],
+ "valid": true
+ },
+ {
+ "description": "0 and false are unique",
+ "data": [0, false],
+ "valid": true
+ },
+ {
+ "description": "unique heterogeneous types are valid",
+ "data": [{}, [1], true, null, 1],
+ "valid": true
+ },
+ {
+ "description": "non-unique heterogeneous types are invalid",
+ "data": [{}, [1], true, null, {}, 1],
+ "valid": false
+ }
+ ]
+ }
+]
--- /dev/null
+/*
+ * Copyright 2013 Laurent Bovet <laurent.bovet@windmaster.ch>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var scripts = document.getElementsByTagName('script');
+var script = scripts[ scripts.length - 1 ];
+
+if (script.attributes["data-schema"]) {
+ var docson;
+ if (script.attributes["data-docson"]) {
+ docson = script.attributes["data-docson"].value;
+ } else {
+ docson = script.src.replace("widget.js", "index.html");
+ }
+ document.write("<iframe id='" + script.attributes["data-schema"].value +
+ "' style='padding: 0; border: 0; width:100%; background: transparent' src='" +
+ docson + "#" +
+ script.attributes["data-schema"].value + "'></iframe>");
+ function receiveMessage(event) {
+ console.log("<", event)
+ if (event.data.id && event.data.id == "docson") {
+ var frame = document.getElementById(event.data.url);
+ if(event.data.action == "resized") {
+ frame.height = event.data.height + 18;
+ }
+ if(event.data.action == "ready") {
+ console.log(frame.parentNode)
+ frame.contentWindow.postMessage({ id: "docson", font: window.getComputedStyle(frame.parentNode).fontFamily}, "*");
+ }
+ }
+
+ }
+ window.addEventListener("message", receiveMessage, false);
+} else {
+ alert("<p style='color:red'>Missing data-schema (url to schema)</p>")
+}
--- /dev/null
+{"$schema":"http://json-schema.org/draft-04/schema#","id":"http://jsonschema.net","type":"object","properties":{"seqs":{"id":"http://jsonschema.net/seqs","type":"array","items":{"id":"http://jsonschema.net/seqs/0","type":"object","properties":{"name":{"id":"http://jsonschema.net/seqs/0/name","type":"string","description":"Sequence name"},"start":{"id":"http://jsonschema.net/seqs/0/start","type":"integer","description":"Start residue position"},"svid":{"id":"http://jsonschema.net/seqs/0/svid","type":"string","description":"Serial version id for sequence object"},"end":{"id":"http://jsonschema.net/seqs/0/end","type":"integer","description":"End residue position"},"id":{"id":"http://jsonschema.net/seqs/0/id","type":"string","description":"Sequence unique identifier"},"seq":{"id":"http://jsonschema.net/seqs/0/seq","type":"string","description":"Sequence Residues"},"order":{"id":"http://jsonschema.net/seqs/0/order","type":"integer","description":"Sequence order in an alignment space"}},"required":["name","start","svid","end","id","seq"]},"required":["0"],"description":"Sequences in the Alignemnt","minItems":"1","maxItems":"*"},"appSettings":{"id":"http://jsonschema.net/appSettings","type":"object","properties":{"globalColorScheme":{"id":"http://jsonschema.net/appSettings/globalColorScheme","type":"string","description":"Global colour schem for the alignment"},"webStartUrl":{"id":"http://jsonschema.net/appSettings/webStartUrl","type":"string","description":"Jalview specific setting which points to a url for launching Jalview"},"application":{"id":"http://jsonschema.net/appSettings/application","type":"string","description":"Application which generated the Json"},"showSeqFeatures":{"id":"http://jsonschema.net/appSettings/showSeqFeatures","type":"string","description":"Determines if sequence features are visible or not"},"version":{"id":"http://jsonschema.net/appSettings/version","type":"string","description":"Verion of the application which generated the JSON"},"hiddenCols":{"id":"http://jsonschema.net/appSettings/hiddenCols","type":"string","description":"Delimited lists of hidden colums ranges i.e [2-3,5-5,11-23]"}},"description":"Application specific settings"},"seqGroups":{"id":"http://jsonschema.net/seqGroups","type":"array","items":[{"id":"http://jsonschema.net/seqGroups/0","type":"object","properties":{"displayText":{"id":"http://jsonschema.net/seqGroups/0/displayText","type":"boolean","description":"Determines if the texts of the group is displayed or not"},"startRes":{"id":"http://jsonschema.net/seqGroups/0/startRes","type":"integer","description":"Start residue position for a given group"},"groupName":{"id":"http://jsonschema.net/seqGroups/0/groupName","type":"string","description":"Group name"},"endRes":{"id":"http://jsonschema.net/seqGroups/0/endRes","type":"integer","description":"End residue position for a given group"},"colourText":{"id":"http://jsonschema.net/seqGroups/0/colourText","type":"boolean","description":"Determines if the Residues text for the group is coloured"},"seqsHash":{"id":"http://jsonschema.net/seqGroups/0/seqsHash","type":"array","items":[],"minItems":"0","maxItems":"*","description":"The id's of the sequences which belongs to the group"},"svid":{"id":"http://jsonschema.net/seqGroups/0/svid","type":"string","description":"Serial version id for a given group"},"showNonconserved":{"id":"http://jsonschema.net/seqGroups/0/showNonconserved","type":"boolean","description":"Determines if non conserved regions of a group is shown or not"},"colourScheme":{"id":"http://jsonschema.net/seqGroups/0/colourScheme","type":"string","description":"Colour Scheme for the sequence group"},"displayBoxes":{"id":"http://jsonschema.net/seqGroups/0/displayBoxes","type":"boolean","description":"Determines if the group border should be visible or not"}}}],"description":"Sequence groups in the Alignment","minItems":"0","maxItems":"*"},"alignAnnotation":{"id":"http://jsonschema.net/alignAnnotation","type":"array","items":{"id":"http://jsonschema.net/alignAnnotation/0","type":"object","properties":{"svid":{"id":"http://jsonschema.net/alignAnnotation/0/svid","type":"string","description":"Serial version id for the annotation object"},"annotations":{"id":"http://jsonschema.net/alignAnnotation/0/annotations","type":"array","items":[{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/displayCharacter","type":"string","description":"Display character to denote the given annotation"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/value","type":"integer","description":"Value of the annotation"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/0/secondaryStructure","type":"string","description":"Secondary structure symbol for the given annotation"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/1/secondaryStructure","type":"string"}}},{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2","type":"object","properties":{"displayCharacter":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/displayCharacter","type":"string"},"value":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/value","type":"integer"},"secondaryStructure":{"id":"http://jsonschema.net/alignAnnotation/0/annotations/2/secondaryStructure","type":"string"}}}]},"description":{"id":"http://jsonschema.net/alignAnnotation/0/description","type":"string","description":"Description of the Alignment Annotation"},"label":{"id":"http://jsonschema.net/alignAnnotation/0/label","type":"string","description":"Label for the Annotation"}}},"description":"Alignment Annotations","minItems":"0","maxItems":"*"},"svid":{"id":"http://jsonschema.net/svid","type":"string","description":"Serial version id"},"seqFeatures":{"id":"http://jsonschema.net/seqFeatures","type":"array","items":{"id":"http://jsonschema.net/seqFeatures/0","type":"object","properties":{"fillColor":{"id":"http://jsonschema.net/seqFeatures/0/fillColor","type":"string","description":"Fill colour"},"score":{"id":"http://jsonschema.net/seqFeatures/0/score","type":"integer","description":"Score"},"sequenceRef":{"id":"http://jsonschema.net/seqFeatures/0/sequenceRef","type":"string","description":"Reference to the Sequence in the alignement (More like a foreign key)"},"featureGroup":{"id":"http://jsonschema.net/seqFeatures/0/featureGroup","type":"string","description":"Feature Group"},"svid":{"id":"http://jsonschema.net/seqFeatures/0/svid","type":"string","description":"Serial version id for the SeqFeature object"},"description":{"id":"http://jsonschema.net/seqFeatures/0/description","type":"string","description":"Description of Feature"},"xStart":{"id":"http://jsonschema.net/seqFeatures/0/xStart","type":"integer","description":"Start residue position for the sequence feature"},"xEnd":{"id":"http://jsonschema.net/seqFeatures/0/xEnd","type":"integer","description":"End residue position for the sequence feature"},"type":{"id":"http://jsonschema.net/seqFeatures/0/type","type":"string","description":"The name of the SequenceFeature"}}},"minItems":"0","maxItems":"*","description":"Sequence Features within the alignment"}},"required":["seqs","appSettings","seqGroups","alignAnnotation","svid","seqFeatures"]}
\ No newline at end of file
-{"seqs":[{"name":"FER_CAPAN/3-34","start":3,"end":34,"id":"FER_CAPAN_1580333149","seq":"SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALF","order":1},{"name":"FER1_SOLLC/3-34","start":3,"end":34,"id":"FER1_SOLLC_1952300006","seq":"SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALF","order":2},{"name":"Q93XJ9_SOLTU/3-34","start":3,"end":34,"id":"Q93XJ9_SOLTU_1274067508","seq":"SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALF","order":3},{"name":"FER1_PEA/6-37","start":6,"end":37,"id":"FER1_PEA_1823806146","seq":"ALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFL","order":4},{"name":"Q7XA98_TRIPR/6-39","start":6,"end":39,"id":"Q7XA98_TRIPR_1024982041","seq":"ALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGF","order":5}],"seqGroups":[{"displayText":true,"startRes":21,"groupName":"JGroup:1883305585","endRes":29,"colourText":false,"seqsHash":["FER1_SOLLC_1952300006","Q93XJ9_SOLTU_1274067508","FER1_PEA_1823806146","Q7XA98_TRIPR_1024982041"],"showNonconserved":false,"colourScheme":"Zappo","displayBoxes":true}],"alignAnnotation":[{"annotations":[{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"}],"description":"New description","label":"Secondary Structure"}],"jalviewSettings":{"globalColorScheme":"foo","jalviewVersion":"Test","webStartUrl":"http://www.jalview.org/services/launchApp","showSeqFeatures":true,"wrapModeEnabled":false},"seqFeatures":[{"fillColor":"#ff0033","score":0,"sequenceRef":"Q93XJ9_SOLTU_1274067508","featureGroup":"Jalview","description":"desciption","xStart":3,"xEnd":13,"type":"feature_x"},{"fillColor":"#ff0033","score":0,"sequenceRef":"FER1_PEA_1823806146","featureGroup":"Jalview","description":"desciption","xStart":3,"xEnd":13,"type":"feature_x"},{"fillColor":"#ff0033","score":0,"sequenceRef":"Q7XA98_TRIPR_1024982041","featureGroup":"Jalview","description":"desciption","xStart":3,"xEnd":13,"type":"feature_x"}]}
\ No newline at end of file
+{"seqs":[{"name":"FER_CAPAN/3-34","start":3,"svid":"1.0","end":34,"id":"1665704504","seq":"SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALF","order":1},{"name":"FER1_SOLLC/3-34","start":3,"svid":"1.0","end":34,"id":"1003594867","seq":"SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALF","order":2},{"name":"Q93XJ9_SOLTU/3-34","start":3,"svid":"1.0","end":34,"id":"1332961135","seq":"SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALF","order":3},{"name":"FER1_PEA/6-37","start":6,"svid":"1.0","end":37,"id":"1335040546","seq":"ALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFL","order":4},{"name":"Q7XA98_TRIPR/6-39","start":6,"svid":"1.0","end":39,"id":"1777084554","seq":"ALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGF","order":5},{"name":"FER_TOCH/3-34","start":3,"svid":"1.0","end":34,"id":"823528539","seq":"FILGTMISKSFLFRKPAVTSL-KAISNVGE--ALF","order":6}],"appSettings":{"globalColorScheme":"zappo","webStartUrl":"www.jalview.org/services/launchApp","application":"Jalview","hiddenSeqs":"823528539","showSeqFeatures":"true","version":"2.9","hiddenCols":"32-33;34-34"},"seqGroups":[{"displayText":true,"startRes":21,"groupName":"JGroup:1883305585","endRes":29,"colourText":false,"seqsHash":["1003594867","1332961135","1335040546","1777084554"],"svid":"1.0","showNonconserved":false,"colourScheme":"Zappo","displayBoxes":true}],"alignAnnotation":[{"svid":"1.0","annotations":[{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"β","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"α","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"}],"description":"New description","label":"Secondary Structure"}],"svid":"1.0","seqFeatures":[{"fillColor":"#7d1633","score":0,"sequenceRef":"1332961135","featureGroup":"Jalview","svid":"1.0","description":"desciption","xStart":3,"xEnd":13,"type":"feature_x"},{"fillColor":"#7d1633","score":0,"sequenceRef":"1335040546","featureGroup":"Jalview","svid":"1.0","description":"desciption","xStart":3,"xEnd":13,"type":"feature_x"},{"fillColor":"#7d1633","score":0,"sequenceRef":"1777084554","featureGroup":"Jalview","svid":"1.0","description":"desciption","xStart":3,"xEnd":13,"type":"feature_x"}]}
\ No newline at end of file
--- /dev/null
+CLUSTAL
+
+FER_CAPAA/1-97 -----------------------------------------------------------A
+FER_CAPAN/1-144 MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMA
+FER1_SOLLC/1-144 MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMA
+Q93XJ9_SOLTU/1-144 MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMA
+FER1_PEA/1-149 MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMA
+Q7XA98_TRIPR/1-152 MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMA
+FER1_MESCR/1-148 MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMA
+FER1_SPIOL/1-147 MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMA
+FER3_RAPSA/1-96 -----------------------------------------------------------A
+FER1_ARATH/1-148 MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMA
+FER_BRANA/1-96 -----------------------------------------------------------A
+FER2_ARATH/1-148 MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMA
+Q93Z60_ARATH/1-118 MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMA
+FER1_MAIZE/1-150 MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQA
+O80429_MAIZE/1-140 MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQA
+1A70|/1-97 -----------------------------------------------------------A
+
+FER_CAPAA/1-97 SYKVKLITPDGPIEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDG
+FER_CAPAN/1-144 SYKVKLITPDGPIEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDG
+FER1_SOLLC/1-144 SYKVKLITPEGPIEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDG
+Q93XJ9_SOLTU/1-144 SYKVKLITPDGPIEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDG
+FER1_PEA/1-149 SYKVKLVTPDGTQEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDG
+Q7XA98_TRIPR/1-152 TYKVKLITPEGPQEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDG
+FER1_MESCR/1-148 AYKVTLVTPEGKQELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDG
+FER1_SPIOL/1-147 AYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQ
+FER3_RAPSA/1-96 TYKVKFITPEGEQEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQ
+FER1_ARATH/1-148 TYKVKFITPEGELEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQ
+FER_BRANA/1-96 TYKVKFITPEGEQEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDE
+FER2_ARATH/1-148 TYKVKFITPEGEQEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQ
+Q93Z60_ARATH/1-118 TYKVKFITPEGEQEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQ
+FER1_MAIZE/1-150 TYNVKLITPEGEVELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQ
+O80429_MAIZE/1-140 TYNVKLITPEGEVELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQ
+1A70|/1-97 AYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQ
+
+FER_CAPAA/1-97 NFLDDDQLEEGWVLTCVAYPQSDVTIETHKEAELVG-
+FER_CAPAN/1-144 NFLDDDQLEEGWVLTCVAYPQSDVTIETHKEAELVG-
+FER1_SOLLC/1-144 NFLDEDQEAAGFVLTCVAYPKGDVTIETHKEEELTA-
+Q93XJ9_SOLTU/1-144 KFLDDDQEAAGFVLTCVAYPKCDVTIETHKEEELTA-
+FER1_PEA/1-149 SFLDDEQIEAGFVLTCVAYPTSDVVIETHKEEDLTA-
+Q7XA98_TRIPR/1-152 SFLDDEQIEGGWVLTCVAFPTSDVTIETHKEEELTA-
+FER1_MESCR/1-148 SFLDDDQIKEGWVLTCVAYPTGDVTIETHKEEELTA-
+FER1_SPIOL/1-147 SFLDDDQIDEGWVLTCAAYPVSDVTIETHKEEELTA-
+FER3_RAPSA/1-96 SFLDDDQIAEGFVLTCAAYPTSDVTIETHREEDMV--
+FER1_ARATH/1-148 SFLDDEQIGEGFVLTCAAYPTSDVTIETHKEEDIV--
+FER_BRANA/1-96 SFLDDDQIAEGFVLTCAAYPTSDVTIETHKEEELV--
+FER2_ARATH/1-148 SFLDDEQMSEGYVLTCVAYPTSDVVIETHKEEAIM--
+Q93Z60_ARATH/1-118 SFLDD--------------------------------
+FER1_MAIZE/1-150 SYLDDGQIADGWVLTCHAYPTSDVVIETHKEEELTGA
+O80429_MAIZE/1-140 SFLNDNQVADGWVLTCAAYPTSDVVIETHKEDDLL--
+1A70|/1-97 SFLDDDQIDEGWVLTCAAYPVSDVTIETHKKEELTA
+
--- /dev/null
+>FER_CAPAA Ferredoxin
+-----------------------------------------------------------ASYKVKLITPDGP
+IEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV
+TIETHKEAELVG-
+>FER_CAPAN Ferredoxin, chloroplast precursor
+MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMASYKVKLITPDGP
+IEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV
+TIETHKEAELVG-
+>FER1_SOLLC Ferredoxin-1, chloroplast precursor
+MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPEGP
+IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDGNFLDEDQEAAGFVLTCVAYPKGDV
+TIETHKEEELTA-
+>Q93XJ9_SOLTU Ferredoxin I precursor
+MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPDGP
+IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDGKFLDDDQEAAGFVLTCVAYPKCDV
+TIETHKEEELTA-
+>FER1_PEA Ferredoxin-1, chloroplast precursor
+MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMASYKVKLVTPDGT
+QEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDGSFLDDEQIEAGFVLTCVAYPTSDV
+VIETHKEEDLTA-
+>Q7XA98_TRIPR Ferredoxin I
+MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMATYKVKLITPEGP
+QEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDGSFLDDEQIEGGWVLTCVAFPTSDV
+TIETHKEEELTA-
+>FER1_MESCR Ferredoxin-1, chloroplast precursor
+MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMAAYKVTLVTPEGK
+QELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDGSFLDDDQIKEGWVLTCVAYPTGDV
+TIETHKEEELTA-
+>FER1_SPIOL Ferredoxin-1, chloroplast precursor
+MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMAAYKVTLVTPTGN
+VEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDV
+TIETHKEEELTA-
+>FER3_RAPSA Ferredoxin, leaf L-A
+-----------------------------------------------------------ATYKVKFITPEGE
+QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDDQIAEGFVLTCAAYPTSDV
+TIETHREEDMV--
+>FER1_ARATH Ferredoxin-1, chloroplast precursor
+MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMATYKVKFITPEGE
+LEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDEQIGEGFVLTCAAYPTSDV
+TIETHKEEDIV--
+>FER_BRANA Ferredoxin
+-----------------------------------------------------------ATYKVKFITPEGE
+QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDESFLDDDQIAEGFVLTCAAYPTSDV
+TIETHKEEELV--
+>FER2_ARATH Ferredoxin-2, chloroplast precursor
+MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE
+QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDDEQMSEGYVLTCVAYPTSDV
+VIETHKEEAIM--
+>Q93Z60_ARATH At1g10960/T19D16_12
+MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE
+QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDD-------------------
+-------------
+>FER1_MAIZE Ferredoxin-1, chloroplast precursor
+MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQATYNVKLITPEGE
+VELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDV
+VIETHKEEELTGA
+>O80429_MAIZE Ferredoxin
+MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQATYNVKLITPEGE
+VELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQSFLNDNQVADGWVLTCAAYPTSDV
+VIETHKEDDLL--
+>1A70|
+-----------------------------------------------------------AAYKVTLVTPTGN
+VEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDV
+TIETHKKEELTA
+>#_Secondary Structure New description
+ 1 2
+ 3 F F F 4 5 6 7 F 9
+
+>#_Iron Sulphur Contacts New description
+
+ F F F F
+
--- /dev/null
+>FER_CAPAA/1-97 Ferredoxin
+>FER_CAPAN/1-144 Ferredoxin, chloroplast precursor
+>FER1_SOLLC/1-144 Ferredoxin-1, chloroplast precursor
+>Q93XJ9_SOLTU/1-144 Ferredoxin I precursor
+>FER1_PEA/1-149 Ferredoxin-1, chloroplast precursor
+>Q7XA98_TRIPR/1-152 Ferredoxin I
+>FER1_MESCR/1-148 Ferredoxin-1, chloroplast precursor
+>FER1_SPIOL/1-147 Ferredoxin-1, chloroplast precursor
+>FER3_RAPSA/1-96 Ferredoxin, leaf L-A
+>FER1_ARATH/1-148 Ferredoxin-1, chloroplast precursor
+>FER_BRANA/1-96 Ferredoxin
+>FER2_ARATH/1-148 Ferredoxin-2, chloroplast precursor
+>Q93Z60_ARATH/1-118 At1g10960/T19D16_12
+>FER1_MAIZE/1-150 Ferredoxin-1, chloroplast precursor
+>O80429_MAIZE/1-140 Ferredoxin
+>1A70|/1-97
+* iteration 1
+-MMMMMMM-M-MMMM-
+-AAAAAAA-A-AAAA-
+----TTAA-S-SSTA-
+----TTTT-T-TTVT-
+-------------L--
+-------------G--
+------TT-----S--
+----PPAT-----P--
+-SSSAAAT-A-AAR--
+-VIILLLM-L-LLA--
+-SSSYYSM-S-SSP--
+-AGGGGGG-S-SSA--
+-TTTTTA--A-AAF--
+-MMMAAT--I-IIFA-
+-IIIVVMM-V-VVFL-
+-SSSSSSA-G-SSSS-
+-TTTTTTT-T-TTSM-
+-SSSSSAT-S-SSSS-
+-FFFFFFF-F-FFSI-
+-MLLLMAV-I-LLLL-
+-PPPRRPP-R-RRRR-
+-RRRTRKK-R-RRA--
+-KKKQQ-P-S-QQA--
+-PPPPP-Q-P-QQP--
+-AAVMVTA-A-TTAA-
+-VVVPPPP-P-PPPP-
+-TTTMMPP-I-IITP-
+-SSSSSMM-S-SSAP-
+-LLLVVTM-L-LLVC-
+------AA-R-RR-F-
+-KKKTAAA-S-SS-S-
+-PAATTLL-L-LLAS-
+-IIITTPP-P-PPLP-
+-PSSKTTS-S-FFPL-
+-NNNATNN-A-AAAR-
+-VVVFTVT-N-NNAL-
+-GGGSKGG-T-TTKR-
+-EEENARR-Q-QQVV-
+-----F----------
+-----P----------
+-AAAGSAS-S-SSGA-
+-LLLFGLL-L-LLIV-
+-FFFLFFF-F-FFMA-
+-GGGGGGG-G-GGGK-
+-LLLLLLL-L-LLRP-
+-KKKKKKK-K-KKSL-
+-SSSTSST-S-SSAA-
+-----V----------
+-AGGSSSG-G-SSSA-
+----LTAS-T-TTSP-
+----KKSR-A-AARM-
+-NRRRRR--R-RRRR-
+-GNNGG---G-GG-R-
+-GGGDDGG-G-GG-Q-
+-KRRLLRG-R-RRRL-
+-VIIAAVR-V-VVLL-
+-TTTVVTM-T-TTRR-
+-CCCAAAT-A-AAAA-
+-MMMMMMM-M-MMQQ-
+AAAAAAAAAAAAAAAA
+SSSSSTAATTTTTTTA
+YYYYYYYYYYYYYYYY
+KKKKKKKKKKKKKNNK
+VVVVVVVVVVVVVVVV
+KKKKKKTTKKKKKKKT
+LLLLLLLLFFFFFLLL
+IIIIVIVVIIIIIIIV
+TTTTTTTTTTTTTTTT
+PPPPPPPPPPPPPPPP
+DDEDDEETEEEEEEET
+GGGGGGGGGGGGGGGG
+PPPPTPKNEEEEEEEN
+IIIIQQQVQLQQQVVV
+EEEEEEEEEEEEEEEE
+FFFFFFLFVVVVVLLF
+DDEEEDEQEEEEEQQQ
+CCCCCCCCCCCCCVVC
+PPPPPPPPDDDEEPPP
+DDDDSDDDDDDEEDDD
+DNDDDDDDDDDDDDDD
+VVVVVVVVVVVVVVVV
+YYYYYYYYYYYYYYYY
+IIIIIIIIVVVVVIII
+LLLLLLLLLLLLLLLL
+DDDDDDDDDDDDDDDD
+QQQQHHAAAAAAAQFA
+AAAAAAAAAAAAAAAA
+EEEEEEEEEEEEEEEE
+EEEEEEEEEEEEEEEE
+AAEEVVAEAAAAADEE
+GGGGGGGGGGGGGGGG
+HHHHIIIIIIILLIII
+DDDDDEDDDDDDDDDD
+LLLLLLLLLLLLLLLL
+PPPPPPPPPPPPPPPP
+YYYYYYYYYYYYYYFY
+SSSSSSSSSSSSSSSS
+CCCCCCCCCCCCCCCC
+RRRRRRRRRRRRRRRR
+AAAAAAAAAAAAAAAA
+GGGGGGGGGGGGGGGG
+SSSSSSSSSSSSSSSS
+CCCCCCCCCCCCCCCC
+SSSSSSSSSSSSSSSS
+SSSSSSSSSSSSSSSS
+CCCCCCCCCCCCCCCC
+AAAAAAAAAAAAAAAA
+GGGGGGGGGGGGGGGG
+KKKKKKKKKKKKKKKK
+IIVVVVVLVVVVVVVL
+AATTVVTKVVVVVVVK
+GGAAGNSTSSSSSSST
+GGGGGGGGGGGGGGGG
+AASTENSSSSFSSSSS
+VVVVVVVLVVVIIVVL
+DDDDDNNNDDDDDDDN
+QQQQQQQQQQQQQQQQ
+TTSSSEDDSSSSSSSD
+DDDDDDDDDDDDDDDD
+GGGGGGGQQQEQQQQQ
+NNNKSSSSSSSSSSSS
+FFFFFFFFFFFFFYFF
+LLLLLLLLLLLLLLLL
+DDDDDDDDDDDDDDND
+DDEDDDDDDDDDDDDD
+DDDDEEDDDEDE-GND
+QQQQQQQQQQQQ-QQQ
+LLEEIIIIIIIM-IVI
+EEAAEEKDAGAS-AAD
+EEAAAGEEEEEE-DDE
+GGGGGGGGGGGG-GGG
+WWFFFWWWFFFY-WWW
+VVVVVVVVVVVV-VVV
+LLLLLLLLLLLL-LLL
+TTTTTTTTTTTT-TTT
+CCCCCCCCCCCC-CCC
+VVVVVVVAAAAV-HAA
+AAAAAAAAAAAA-AAA
+YYYYYFYYYYYY-YYY
+PPPPPPPPPPPP-PPP
+QQKKTTTVTTTT-TTV
+SSGCSSGSSSSS-SSS
+DDDDDDDDDDDD-DDD
+VVVVVVVVVVVV-VVV
+TTTTVTTTTTTV-VVT
+IIIIIIIIIIII-III
+EEEEEEEEEEEE-EEE
+TTTTTTTTTTTT-TTT
+HHHHHHHHHHHH-HHH
+KKKKKKKKRKKK-KKK
+EEEEEEEEEEEE-EEK
+AAEEEEEEEEEE-EDE
+EEEEDEEEDDEA-EDE
+LLLLLLLLMILI-LLL
+VVTTTTTTVVVM-TLT
+GGAAAAAA-----G-A
+-------------A--
+*
--- /dev/null
+<html>
+<input type="hidden" name="seqData" id="seqData" value='{"seqs":[{"name":"FER_CAPAA/1-97","start":1,"svid":"1.0","end":97,"id":"4362914","seq":"-----------------------------------------------------------ASYKVKLITPDGPIEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDVTIETHKEAELVG-","order":1},{"name":"FER_CAPAN/1-144","start":1,"svid":"1.0","end":144,"id":"87519910","seq":"MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMASYKVKLITPDGPIEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDVTIETHKEAELVG-","order":2},{"name":"FER1_SOLLC/1-144","start":1,"svid":"1.0","end":144,"id":"706449716","seq":"MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPEGPIEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDGNFLDEDQEAAGFVLTCVAYPKGDVTIETHKEEELTA-","order":3},{"name":"Q93XJ9_SOLTU/1-144","start":1,"svid":"1.0","end":144,"id":"1704607829","seq":"MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPDGPIEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDGKFLDDDQEAAGFVLTCVAYPKCDVTIETHKEEELTA-","order":4},{"name":"FER1_PEA/1-149","start":1,"svid":"1.0","end":149,"id":"1901660614","seq":"MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMASYKVKLVTPDGTQEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDGSFLDDEQIEAGFVLTCVAYPTSDVVIETHKEEDLTA-","order":5},{"name":"Q7XA98_TRIPR/1-152","start":1,"svid":"1.0","end":152,"id":"1329985289","seq":"MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMATYKVKLITPEGPQEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDGSFLDDEQIEGGWVLTCVAFPTSDVTIETHKEEELTA-","order":6},{"name":"FER1_MESCR/1-148","start":1,"svid":"1.0","end":148,"id":"966876644","seq":"MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMAAYKVTLVTPEGKQELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDGSFLDDDQIKEGWVLTCVAYPTGDVTIETHKEEELTA-","order":7},{"name":"FER1_SPIOL/1-147","start":1,"svid":"1.0","end":147,"id":"235809389","seq":"MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMAAYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDVTIETHKEEELTA-","order":8},{"name":"FER3_RAPSA/1-96","start":1,"svid":"1.0","end":96,"id":"924845395","seq":"-----------------------------------------------------------ATYKVKFITPEGEQEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDDQIAEGFVLTCAAYPTSDVTIETHREEDMV--","order":9},{"name":"FER1_ARATH/1-148","start":1,"svid":"1.0","end":148,"id":"1472020737","seq":"MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMATYKVKFITPEGELEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDEQIGEGFVLTCAAYPTSDVTIETHKEEDIV--","order":10},{"name":"FER_BRANA/1-96","start":1,"svid":"1.0","end":96,"id":"1690335343","seq":"-----------------------------------------------------------ATYKVKFITPEGEQEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDESFLDDDQIAEGFVLTCAAYPTSDVTIETHKEEELV--","order":11},{"name":"FER2_ARATH/1-148","start":1,"svid":"1.0","end":148,"id":"467823576","seq":"MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGEQEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDDEQMSEGYVLTCVAYPTSDVVIETHKEEAIM--","order":12},{"name":"Q93Z60_ARATH/1-118","start":1,"svid":"1.0","end":118,"id":"752877418","seq":"MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGEQEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDD--------------------------------","order":13},{"name":"FER1_MAIZE/1-150","start":1,"svid":"1.0","end":150,"id":"299304633","seq":"MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQATYNVKLITPEGEVELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDVVIETHKEEELTGA","order":14},{"name":"O80429_MAIZE/1-140","start":1,"svid":"1.0","end":140,"id":"1991448556","seq":"MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQATYNVKLITPEGEVELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQSFLNDNQVADGWVLTCAAYPTSDVVIETHKEDDLL--","order":15},{"name":"1A70|/1-97","start":1,"svid":"1.0","end":97,"id":"2114395721","seq":"-----------------------------------------------------------AAYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDVTIETHKKEELTA","order":16}],"appSettings":{"globalColorScheme":"foo","webStartUrl":"www.jalview.org/services/launchApp","application":"Jalview","hiddenSeqs":"2114395721","showSeqFeatures":"false","version":"2.9"},"seqGroups":[{"displayText":true,"startRes":59,"groupName":"ferredoxin","endRes":124,"colourText":false,"seqsHash":["1472020737","299304633","966876644","1901660614","706449716","235809389","467823576","924845395","1690335343","4362914","87519910","752877418","1329985289","1991448556","1704607829"],"svid":"1.0","showNonconserved":false,"colourScheme":"Zappo","displayBoxes":true}],"alignAnnotation":[{"svid":"1.0","annotations":[{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"1","value":1,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"2","value":2,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"3","value":3,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"4","value":4,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"5","value":5,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"6","value":6,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"H"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"7","value":7,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"9","value":9,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"E"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"}],"description":"New description","label":"Secondary Structure"},{"svid":"1.0","annotations":[{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"description":"Fe","displayCharacter":"Fe","value":0,"secondaryStructure":" "},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"},{"displayCharacter":"","value":0,"secondaryStructure":"\u0000"}],"description":"New description","label":"Iron Sulphur Contacts"}],"svid":"1.0","seqFeatures":[{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA: 1 1a70 ","xStart":59,"xEnd":60,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA: 2 1a70 ","xStart":60,"xEnd":61,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR: 3 1a70 ","xStart":61,"xEnd":62,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS: 4 1a70 ","xStart":62,"xEnd":63,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL: 5 1a70 ","xStart":63,"xEnd":64,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR: 6 1a70 ","xStart":64,"xEnd":65,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU: 7 1a70 ","xStart":65,"xEnd":66,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL: 8 1a70 ","xStart":66,"xEnd":67,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR: 9 1a70 ","xStart":67,"xEnd":68,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO: 10 1a70 ","xStart":68,"xEnd":69,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR: 11 1a70 ","xStart":69,"xEnd":70,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY: 12 1a70 ","xStart":70,"xEnd":71,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASN: 13 1a70 ","xStart":71,"xEnd":72,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL: 14 1a70 ","xStart":72,"xEnd":73,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU: 15 1a70 ","xStart":73,"xEnd":74,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PHE: 16 1a70 ","xStart":74,"xEnd":75,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN: 17 1a70 ","xStart":75,"xEnd":76,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS: 18 1a70 ","xStart":76,"xEnd":77,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO: 19 1a70 ","xStart":77,"xEnd":78,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP: 20 1a70 ","xStart":78,"xEnd":79,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP: 21 1a70 ","xStart":79,"xEnd":80,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL: 22 1a70 ","xStart":80,"xEnd":81,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR: 23 1a70 ","xStart":81,"xEnd":82,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE: 24 1a70 ","xStart":82,"xEnd":83,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU: 25 1a70 ","xStart":83,"xEnd":84,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP: 26 1a70 ","xStart":84,"xEnd":85,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA: 27 1a70 ","xStart":85,"xEnd":86,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA: 28 1a70 ","xStart":86,"xEnd":87,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU: 29 1a70 ","xStart":87,"xEnd":88,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU: 30 1a70 ","xStart":88,"xEnd":89,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU: 31 1a70 ","xStart":89,"xEnd":90,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY: 32 1a70 ","xStart":90,"xEnd":91,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE: 33 1a70 ","xStart":91,"xEnd":92,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP: 34 1a70 ","xStart":92,"xEnd":93,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU: 35 1a70 ","xStart":93,"xEnd":94,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO: 36 1a70 ","xStart":94,"xEnd":95,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR: 37 1a70 ","xStart":95,"xEnd":96,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER: 38 1a70 ","xStart":96,"xEnd":97,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS: 39 1a70 ","xStart":97,"xEnd":98,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ARG: 40 1a70 ","xStart":98,"xEnd":99,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA: 41 1a70 ","xStart":99,"xEnd":100,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY: 42 1a70 ","xStart":100,"xEnd":101,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER: 43 1a70 ","xStart":101,"xEnd":102,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS: 44 1a70 ","xStart":102,"xEnd":103,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER: 45 1a70 ","xStart":103,"xEnd":104,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER: 46 1a70 ","xStart":104,"xEnd":105,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS: 47 1a70 ","xStart":105,"xEnd":106,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA: 48 1a70 ","xStart":106,"xEnd":107,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY: 49 1a70 ","xStart":107,"xEnd":108,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS: 50 1a70 ","xStart":108,"xEnd":109,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU: 51 1a70 ","xStart":109,"xEnd":110,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS: 52 1a70 ","xStart":110,"xEnd":111,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR: 53 1a70 ","xStart":111,"xEnd":112,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY: 54 1a70 ","xStart":112,"xEnd":113,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER: 55 1a70 ","xStart":113,"xEnd":114,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU: 56 1a70 ","xStart":114,"xEnd":115,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASN: 57 1a70 ","xStart":115,"xEnd":116,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN: 58 1a70 ","xStart":116,"xEnd":117,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP: 59 1a70 ","xStart":117,"xEnd":118,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP: 60 1a70 ","xStart":118,"xEnd":119,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN: 61 1a70 ","xStart":119,"xEnd":120,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER: 62 1a70 ","xStart":120,"xEnd":121,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PHE: 63 1a70 ","xStart":121,"xEnd":122,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU: 64 1a70 ","xStart":122,"xEnd":123,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP: 65 1a70 ","xStart":123,"xEnd":124,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP: 66 1a70 ","xStart":124,"xEnd":125,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP: 67 1a70 ","xStart":125,"xEnd":126,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN: 68 1a70 ","xStart":126,"xEnd":127,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE: 69 1a70 ","xStart":127,"xEnd":128,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP: 70 1a70 ","xStart":128,"xEnd":129,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU: 71 1a70 ","xStart":129,"xEnd":130,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY: 72 1a70 ","xStart":130,"xEnd":131,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TRP: 73 1a70 ","xStart":131,"xEnd":132,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL: 74 1a70 ","xStart":132,"xEnd":133,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU: 75 1a70 ","xStart":133,"xEnd":134,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR: 76 1a70 ","xStart":134,"xEnd":135,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS: 77 1a70 ","xStart":135,"xEnd":136,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA: 78 1a70 ","xStart":136,"xEnd":137,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA: 79 1a70 ","xStart":137,"xEnd":138,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR: 80 1a70 ","xStart":138,"xEnd":139,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO: 81 1a70 ","xStart":139,"xEnd":140,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL: 82 1a70 ","xStart":140,"xEnd":141,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER: 83 1a70 ","xStart":141,"xEnd":142,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP: 84 1a70 ","xStart":142,"xEnd":143,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL: 85 1a70 ","xStart":143,"xEnd":144,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR: 86 1a70 ","xStart":144,"xEnd":145,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE: 87 1a70 ","xStart":145,"xEnd":146,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU: 88 1a70 ","xStart":146,"xEnd":147,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR: 89 1a70 ","xStart":147,"xEnd":148,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"HIS: 90 1a70 ","xStart":148,"xEnd":149,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS: 91 1a70 ","xStart":149,"xEnd":150,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU: 93 1a70 ","xStart":151,"xEnd":152,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU: 94 1a70 ","xStart":152,"xEnd":153,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU: 95 1a70 ","xStart":153,"xEnd":154,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR: 96 1a70 ","xStart":154,"xEnd":155,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA: 97 1a70 ","xStart":155,"xEnd":156,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:1 1a70 ","xStart":59,"xEnd":60,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:2 1a70 ","xStart":60,"xEnd":61,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:3 1a70 ","xStart":61,"xEnd":62,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:4 1a70 ","xStart":62,"xEnd":63,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:5 1a70 ","xStart":63,"xEnd":64,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:6 1a70 ","xStart":64,"xEnd":65,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:7 1a70 ","xStart":65,"xEnd":66,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:8 1a70 ","xStart":66,"xEnd":67,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:9 1a70 ","xStart":67,"xEnd":68,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:10 1a70 ","xStart":68,"xEnd":69,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:11 1a70 ","xStart":69,"xEnd":70,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:12 1a70 ","xStart":70,"xEnd":71,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASN:13 1a70 ","xStart":71,"xEnd":72,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:14 1a70 ","xStart":72,"xEnd":73,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:15 1a70 ","xStart":73,"xEnd":74,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PHE:16 1a70 ","xStart":74,"xEnd":75,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:17 1a70 ","xStart":75,"xEnd":76,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:18 1a70 ","xStart":76,"xEnd":77,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:19 1a70 ","xStart":77,"xEnd":78,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:20 1a70 ","xStart":78,"xEnd":79,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:21 1a70 ","xStart":79,"xEnd":80,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:22 1a70 ","xStart":80,"xEnd":81,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:23 1a70 ","xStart":81,"xEnd":82,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:24 1a70 ","xStart":82,"xEnd":83,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:25 1a70 ","xStart":83,"xEnd":84,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:26 1a70 ","xStart":84,"xEnd":85,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:27 1a70 ","xStart":85,"xEnd":86,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:28 1a70 ","xStart":86,"xEnd":87,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:29 1a70 ","xStart":87,"xEnd":88,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:30 1a70 ","xStart":88,"xEnd":89,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:31 1a70 ","xStart":89,"xEnd":90,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:32 1a70 ","xStart":90,"xEnd":91,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:33 1a70 ","xStart":91,"xEnd":92,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:34 1a70 ","xStart":92,"xEnd":93,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:35 1a70 ","xStart":93,"xEnd":94,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:36 1a70 ","xStart":94,"xEnd":95,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:37 1a70 ","xStart":95,"xEnd":96,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:38 1a70 ","xStart":96,"xEnd":97,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:39 1a70 ","xStart":97,"xEnd":98,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ARG:40 1a70 ","xStart":98,"xEnd":99,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:41 1a70 ","xStart":99,"xEnd":100,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:42 1a70 ","xStart":100,"xEnd":101,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:43 1a70 ","xStart":101,"xEnd":102,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:44 1a70 ","xStart":102,"xEnd":103,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:45 1a70 ","xStart":103,"xEnd":104,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:46 1a70 ","xStart":104,"xEnd":105,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:47 1a70 ","xStart":105,"xEnd":106,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:48 1a70 ","xStart":106,"xEnd":107,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:49 1a70 ","xStart":107,"xEnd":108,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:50 1a70 ","xStart":108,"xEnd":109,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:51 1a70 ","xStart":109,"xEnd":110,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:52 1a70 ","xStart":110,"xEnd":111,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:53 1a70 ","xStart":111,"xEnd":112,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:54 1a70 ","xStart":112,"xEnd":113,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:55 1a70 ","xStart":113,"xEnd":114,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:56 1a70 ","xStart":114,"xEnd":115,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASN:57 1a70 ","xStart":115,"xEnd":116,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:58 1a70 ","xStart":116,"xEnd":117,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:59 1a70 ","xStart":117,"xEnd":118,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:60 1a70 ","xStart":118,"xEnd":119,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:61 1a70 ","xStart":119,"xEnd":120,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:62 1a70 ","xStart":120,"xEnd":121,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PHE:63 1a70 ","xStart":121,"xEnd":122,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:64 1a70 ","xStart":122,"xEnd":123,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:65 1a70 ","xStart":123,"xEnd":124,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:66 1a70 ","xStart":124,"xEnd":125,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:67 1a70 ","xStart":125,"xEnd":126,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:68 1a70 ","xStart":126,"xEnd":127,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:69 1a70 ","xStart":127,"xEnd":128,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:70 1a70 ","xStart":128,"xEnd":129,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:71 1a70 ","xStart":129,"xEnd":130,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:72 1a70 ","xStart":130,"xEnd":131,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TRP:73 1a70 ","xStart":131,"xEnd":132,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:74 1a70 ","xStart":132,"xEnd":133,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:75 1a70 ","xStart":133,"xEnd":134,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:76 1a70 ","xStart":134,"xEnd":135,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:77 1a70 ","xStart":135,"xEnd":136,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:78 1a70 ","xStart":136,"xEnd":137,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:79 1a70 ","xStart":137,"xEnd":138,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:80 1a70 ","xStart":138,"xEnd":139,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:81 1a70 ","xStart":139,"xEnd":140,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:82 1a70 ","xStart":140,"xEnd":141,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:83 1a70 ","xStart":141,"xEnd":142,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:84 1a70 ","xStart":142,"xEnd":143,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:85 1a70 ","xStart":143,"xEnd":144,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:86 1a70 ","xStart":144,"xEnd":145,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:87 1a70 ","xStart":145,"xEnd":146,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:88 1a70 ","xStart":146,"xEnd":147,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:89 1a70 ","xStart":147,"xEnd":148,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"HIS:90 1a70 ","xStart":148,"xEnd":149,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:91 1a70 ","xStart":149,"xEnd":150,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:93 1a70 ","xStart":151,"xEnd":152,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:94 1a70 ","xStart":152,"xEnd":153,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:95 1a70 ","xStart":153,"xEnd":154,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:96 1a70 ","xStart":154,"xEnd":155,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"235809389","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:97 1a70 ","xStart":155,"xEnd":156,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA: 1 1a70 ","xStart":59,"xEnd":60,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA: 2 1a70 ","xStart":60,"xEnd":61,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"TYR: 3 1a70 ","xStart":61,"xEnd":62,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LYS: 4 1a70 ","xStart":62,"xEnd":63,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL: 5 1a70 ","xStart":63,"xEnd":64,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR: 6 1a70 ","xStart":64,"xEnd":65,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU: 7 1a70 ","xStart":65,"xEnd":66,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL: 8 1a70 ","xStart":66,"xEnd":67,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR: 9 1a70 ","xStart":67,"xEnd":68,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"PRO: 10 1a70 ","xStart":68,"xEnd":69,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR: 11 1a70 ","xStart":69,"xEnd":70,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLY: 12 1a70 ","xStart":70,"xEnd":71,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASN: 13 1a70 ","xStart":71,"xEnd":72,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL: 14 1a70 ","xStart":72,"xEnd":73,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU: 15 1a70 ","xStart":73,"xEnd":74,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"PHE: 16 1a70 ","xStart":74,"xEnd":75,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLN: 17 1a70 ","xStart":75,"xEnd":76,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"CYS: 18 1a70 ","xStart":76,"xEnd":77,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"PRO: 19 1a70 ","xStart":77,"xEnd":78,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP: 20 1a70 ","xStart":78,"xEnd":79,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP: 21 1a70 ","xStart":79,"xEnd":80,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL: 22 1a70 ","xStart":80,"xEnd":81,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"TYR: 23 1a70 ","xStart":81,"xEnd":82,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ILE: 24 1a70 ","xStart":82,"xEnd":83,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU: 25 1a70 ","xStart":83,"xEnd":84,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP: 26 1a70 ","xStart":84,"xEnd":85,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA: 27 1a70 ","xStart":85,"xEnd":86,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA: 28 1a70 ","xStart":86,"xEnd":87,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU: 29 1a70 ","xStart":87,"xEnd":88,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU: 30 1a70 ","xStart":88,"xEnd":89,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU: 31 1a70 ","xStart":89,"xEnd":90,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLY: 32 1a70 ","xStart":90,"xEnd":91,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ILE: 33 1a70 ","xStart":91,"xEnd":92,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP: 34 1a70 ","xStart":92,"xEnd":93,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU: 35 1a70 ","xStart":93,"xEnd":94,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"PRO: 36 1a70 ","xStart":94,"xEnd":95,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"TYR: 37 1a70 ","xStart":95,"xEnd":96,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER: 38 1a70 ","xStart":96,"xEnd":97,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"CYS: 39 1a70 ","xStart":97,"xEnd":98,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ARG: 40 1a70 ","xStart":98,"xEnd":99,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA: 41 1a70 ","xStart":99,"xEnd":100,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLY: 42 1a70 ","xStart":100,"xEnd":101,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER: 43 1a70 ","xStart":101,"xEnd":102,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"CYS: 44 1a70 ","xStart":102,"xEnd":103,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER: 45 1a70 ","xStart":103,"xEnd":104,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER: 46 1a70 ","xStart":104,"xEnd":105,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"CYS: 47 1a70 ","xStart":105,"xEnd":106,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA: 48 1a70 ","xStart":106,"xEnd":107,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLY: 49 1a70 ","xStart":107,"xEnd":108,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LYS: 50 1a70 ","xStart":108,"xEnd":109,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU: 51 1a70 ","xStart":109,"xEnd":110,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LYS: 52 1a70 ","xStart":110,"xEnd":111,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR: 53 1a70 ","xStart":111,"xEnd":112,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLY: 54 1a70 ","xStart":112,"xEnd":113,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER: 55 1a70 ","xStart":113,"xEnd":114,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU: 56 1a70 ","xStart":114,"xEnd":115,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASN: 57 1a70 ","xStart":115,"xEnd":116,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLN: 58 1a70 ","xStart":116,"xEnd":117,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP: 59 1a70 ","xStart":117,"xEnd":118,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP: 60 1a70 ","xStart":118,"xEnd":119,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLN: 61 1a70 ","xStart":119,"xEnd":120,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER: 62 1a70 ","xStart":120,"xEnd":121,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"PHE: 63 1a70 ","xStart":121,"xEnd":122,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU: 64 1a70 ","xStart":122,"xEnd":123,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP: 65 1a70 ","xStart":123,"xEnd":124,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP: 66 1a70 ","xStart":124,"xEnd":125,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP: 67 1a70 ","xStart":125,"xEnd":126,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLN: 68 1a70 ","xStart":126,"xEnd":127,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ILE: 69 1a70 ","xStart":127,"xEnd":128,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP: 70 1a70 ","xStart":128,"xEnd":129,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU: 71 1a70 ","xStart":129,"xEnd":130,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLY: 72 1a70 ","xStart":130,"xEnd":131,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"TRP: 73 1a70 ","xStart":131,"xEnd":132,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL: 74 1a70 ","xStart":132,"xEnd":133,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU: 75 1a70 ","xStart":133,"xEnd":134,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR: 76 1a70 ","xStart":134,"xEnd":135,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"CYS: 77 1a70 ","xStart":135,"xEnd":136,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA: 78 1a70 ","xStart":136,"xEnd":137,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA: 79 1a70 ","xStart":137,"xEnd":138,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"TYR: 80 1a70 ","xStart":138,"xEnd":139,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"PRO: 81 1a70 ","xStart":139,"xEnd":140,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL: 82 1a70 ","xStart":140,"xEnd":141,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"SER: 83 1a70 ","xStart":141,"xEnd":142,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ASP: 84 1a70 ","xStart":142,"xEnd":143,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"VAL: 85 1a70 ","xStart":143,"xEnd":144,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR: 86 1a70 ","xStart":144,"xEnd":145,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ILE: 87 1a70 ","xStart":145,"xEnd":146,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU: 88 1a70 ","xStart":146,"xEnd":147,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR: 89 1a70 ","xStart":147,"xEnd":148,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"HIS: 90 1a70 ","xStart":148,"xEnd":149,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LYS: 91 1a70 ","xStart":149,"xEnd":150,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LYS: 92 1a70 ","xStart":150,"xEnd":151,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU: 93 1a70 ","xStart":151,"xEnd":152,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"GLU: 94 1a70 ","xStart":152,"xEnd":153,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"LEU: 95 1a70 ","xStart":153,"xEnd":154,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"THR: 96 1a70 ","xStart":154,"xEnd":155,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":""},"svid":"1.0","description":"ALA: 97 1a70 ","xStart":155,"xEnd":156,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:1 1a70 ","xStart":59,"xEnd":60,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:2 1a70 ","xStart":60,"xEnd":61,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:3 1a70 ","xStart":61,"xEnd":62,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:4 1a70 ","xStart":62,"xEnd":63,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:5 1a70 ","xStart":63,"xEnd":64,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:6 1a70 ","xStart":64,"xEnd":65,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:7 1a70 ","xStart":65,"xEnd":66,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:8 1a70 ","xStart":66,"xEnd":67,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:9 1a70 ","xStart":67,"xEnd":68,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:10 1a70 ","xStart":68,"xEnd":69,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:11 1a70 ","xStart":69,"xEnd":70,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:12 1a70 ","xStart":70,"xEnd":71,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASN:13 1a70 ","xStart":71,"xEnd":72,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:14 1a70 ","xStart":72,"xEnd":73,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:15 1a70 ","xStart":73,"xEnd":74,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PHE:16 1a70 ","xStart":74,"xEnd":75,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:17 1a70 ","xStart":75,"xEnd":76,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:18 1a70 ","xStart":76,"xEnd":77,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:19 1a70 ","xStart":77,"xEnd":78,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:20 1a70 ","xStart":78,"xEnd":79,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:21 1a70 ","xStart":79,"xEnd":80,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:22 1a70 ","xStart":80,"xEnd":81,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:23 1a70 ","xStart":81,"xEnd":82,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:24 1a70 ","xStart":82,"xEnd":83,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:25 1a70 ","xStart":83,"xEnd":84,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:26 1a70 ","xStart":84,"xEnd":85,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:27 1a70 ","xStart":85,"xEnd":86,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:28 1a70 ","xStart":86,"xEnd":87,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:29 1a70 ","xStart":87,"xEnd":88,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:30 1a70 ","xStart":88,"xEnd":89,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:31 1a70 ","xStart":89,"xEnd":90,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:32 1a70 ","xStart":90,"xEnd":91,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:33 1a70 ","xStart":91,"xEnd":92,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:34 1a70 ","xStart":92,"xEnd":93,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:35 1a70 ","xStart":93,"xEnd":94,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:36 1a70 ","xStart":94,"xEnd":95,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:37 1a70 ","xStart":95,"xEnd":96,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:38 1a70 ","xStart":96,"xEnd":97,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:39 1a70 ","xStart":97,"xEnd":98,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ARG:40 1a70 ","xStart":98,"xEnd":99,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:41 1a70 ","xStart":99,"xEnd":100,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:42 1a70 ","xStart":100,"xEnd":101,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:43 1a70 ","xStart":101,"xEnd":102,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:44 1a70 ","xStart":102,"xEnd":103,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:45 1a70 ","xStart":103,"xEnd":104,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:46 1a70 ","xStart":104,"xEnd":105,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:47 1a70 ","xStart":105,"xEnd":106,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:48 1a70 ","xStart":106,"xEnd":107,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:49 1a70 ","xStart":107,"xEnd":108,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:50 1a70 ","xStart":108,"xEnd":109,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:51 1a70 ","xStart":109,"xEnd":110,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:52 1a70 ","xStart":110,"xEnd":111,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:53 1a70 ","xStart":111,"xEnd":112,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:54 1a70 ","xStart":112,"xEnd":113,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:55 1a70 ","xStart":113,"xEnd":114,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:56 1a70 ","xStart":114,"xEnd":115,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASN:57 1a70 ","xStart":115,"xEnd":116,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:58 1a70 ","xStart":116,"xEnd":117,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:59 1a70 ","xStart":117,"xEnd":118,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:60 1a70 ","xStart":118,"xEnd":119,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:61 1a70 ","xStart":119,"xEnd":120,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:62 1a70 ","xStart":120,"xEnd":121,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PHE:63 1a70 ","xStart":121,"xEnd":122,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:64 1a70 ","xStart":122,"xEnd":123,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:65 1a70 ","xStart":123,"xEnd":124,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:66 1a70 ","xStart":124,"xEnd":125,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:67 1a70 ","xStart":125,"xEnd":126,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLN:68 1a70 ","xStart":126,"xEnd":127,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:69 1a70 ","xStart":127,"xEnd":128,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:70 1a70 ","xStart":128,"xEnd":129,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:71 1a70 ","xStart":129,"xEnd":130,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLY:72 1a70 ","xStart":130,"xEnd":131,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TRP:73 1a70 ","xStart":131,"xEnd":132,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:74 1a70 ","xStart":132,"xEnd":133,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:75 1a70 ","xStart":133,"xEnd":134,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:76 1a70 ","xStart":134,"xEnd":135,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"CYS:77 1a70 ","xStart":135,"xEnd":136,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:78 1a70 ","xStart":136,"xEnd":137,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:79 1a70 ","xStart":137,"xEnd":138,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"TYR:80 1a70 ","xStart":138,"xEnd":139,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"PRO:81 1a70 ","xStart":139,"xEnd":140,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:82 1a70 ","xStart":140,"xEnd":141,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"SER:83 1a70 ","xStart":141,"xEnd":142,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ASP:84 1a70 ","xStart":142,"xEnd":143,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"VAL:85 1a70 ","xStart":143,"xEnd":144,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:86 1a70 ","xStart":144,"xEnd":145,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ILE:87 1a70 ","xStart":145,"xEnd":146,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:88 1a70 ","xStart":146,"xEnd":147,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:89 1a70 ","xStart":147,"xEnd":148,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"HIS:90 1a70 ","xStart":148,"xEnd":149,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:91 1a70 ","xStart":149,"xEnd":150,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LYS:92 1a70 ","xStart":150,"xEnd":151,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:93 1a70 ","xStart":151,"xEnd":152,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"GLU:94 1a70 ","xStart":152,"xEnd":153,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"LEU:95 1a70 ","xStart":153,"xEnd":154,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"THR:96 1a70 ","xStart":154,"xEnd":155,"type":"RESNUM"},{"fillColor":"#ffffff","score":0,"sequenceRef":"2114395721","featureGroup":"1a70","otherDetails":{"status":"IEA:jalview"},"svid":"1.0","description":"ALA:97 1a70 ","xStart":155,"xEnd":156,"type":"RESNUM"}]}'>
+<style type="text/css"> div.parent{ width:100%;<!-- overflow: auto; -->}
+div.titlex{ width:11%; float: left; }
+div.align{ width:89%; float: right; }
+.sub-category-container {overflow-y: scroll; overflow-x: hidden; width: 100%; height: 100%;}
+object {pointer-events: none;}</style><div><div class="titlex"><div class="sub-category-container"> <?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:jfreesvg="http://www.jfree.org/jfreesvg/svg" width="1554" height="428" text-rendering="auto" shape-rendering="auto">
+<defs></defs>
+<rect x="0" y="0" width="1554" height="428" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,0)" /><rect x="0" y="0" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 11 L 2.38 3.77 L 6.42 3.77 L 6.26 4.54 L 3.25 4.54 L 2.77 6.96 L 5.29 6.96 L 5.14 7.72 L 2.61 7.72 L 1.96 11 M 0.93 11 M 5.93 11 L 7.38 3.77 L 11.42 3.77 L 11.26 4.54 L 8.25 4.54 L 7.79 6.86 L 10.31 6.86 L 10.16 7.62 L 7.63 7.62 L 7.11 10.23 L 10.33 10.23 L 10.18 11 M 5.93 11 M 10.93 11 L 12.38 3.77 L 14.57 3.77 Q 15.61 3.77 16.07 4.23 Q 16.53 4.69 16.36 5.57 Q 16.07 7.01 14.49 7.62 L 16.22 11 L 14.96 11 L 13.52 7.94 L 12.56 7.94 L 11.95 11 M 10.93 11 M 12.71 7.18 L 13.04 7.18 Q 14.98 7.18 15.28 5.66 Q 15.51 4.54 13.88 4.54 L 13.24 4.54 M 12.71 7.18 M 15.66 12.68 L 15.81 11.96 L 20.81 11.96 L 20.66 12.68 M 15.66 12.68 M 24.99 11.18 Q 23.31 11.18 22.59 10.19 Q 21.87 9.2 22.23 7.39 Q 22.59 5.58 23.73 4.59 Q 24.86 3.59 26.56 3.59 Q 27.53 3.59 28.77 3.91 L 28.58 4.87 Q 27.2 4.36 26.39 4.36 Q 25.21 4.36 24.41 5.16 Q 23.61 5.95 23.32 7.4 Q 23.04 8.78 23.57 9.58 Q 24.1 10.38 25.29 10.38 Q 26.31 10.38 27.61 9.75 L 27.44 10.63 Q 26.26 11.18 24.99 11.18 M 24.99 11.18 M 33.15 8.24 L 32.54 5.12 L 30.68 8.24 M 33.15 8.24 M 33.68 11 L 33.29 9 L 30.23 9 L 29.04 11 L 28.08 11 L 32.39 3.77 L 33.41 3.77 L 34.79 11 M 33.68 11 M 35.93 11 L 37.38 3.77 L 39.35 3.77 Q 40.65 3.77 41.14 4.22 Q 41.62 4.66 41.42 5.67 Q 41.19 6.82 40.28 7.47 Q 39.36 8.13 37.98 8.13 L 37.52 8.13 L 36.95 11 M 35.93 11 M 37.68 7.35 L 38.09 7.35 Q 39.01 7.35 39.59 6.93 Q 40.17 6.51 40.32 5.75 Q 40.45 5.1 40.12 4.82 Q 39.78 4.54 38.87 4.54 L 38.24 4.54 M 37.68 7.35 M 46.15 8.24 L 45.54 5.12 L 43.68 8.24 M 46.15 8.24 M 46.68 11 L 46.29 9 L 43.23 9 L 42.04 11 L 41.08 11 L 45.39 3.77 L 46.41 3.77 L 47.79 11 M 46.68 11 M 53.15 8.24 L 52.54 5.12 L 50.68 8.24 M 53.15 8.24 M 53.68 11 L 53.29 9 L 50.23 9 L 49.04 11 L 48.08 11 L 52.39 3.77 L 53.41 3.77 L 54.79 11 M 53.68 11 M 55.65 12.45 L 59.99 3.77 L 60.75 3.77 L 56.41 12.45 M 55.65 12.45 M 61.5 11 L 61.65 10.28 L 63.09 10.28 L 64.23 4.57 L 62.72 4.94 L 62.87 4.19 L 65.4 3.59 L 64.06 10.28 L 65.51 10.28 L 65.36 11 M 61.5 11 M 67.23 8.47 L 67.37 7.75 L 71.71 7.75 L 71.56 8.47 M 67.23 8.47 M 73.15 10.96 L 73.31 10.14 Q 74.16 10.46 74.81 10.46 Q 75.71 10.46 76.37 9.69 Q 77.02 8.93 77.3 7.57 Q 76.38 8.47 75.45 8.47 Q 74.54 8.47 74.04 7.8 Q 73.54 7.13 73.73 6.16 Q 73.95 5.05 74.77 4.32 Q 75.6 3.59 76.62 3.59 Q 77.8 3.59 78.29 4.54 Q 78.78 5.48 78.45 7.12 Q 78.08 8.99 77.03 10.08 Q 75.98 11.18 74.57 11.18 Q 74 11.18 73.15 10.96 M 73.15 10.96 M 74.73 5.97 Q 74.56 6.81 74.84 7.29 Q 75.12 7.78 75.76 7.78 Q 76.38 7.78 76.89 7.36 Q 77.41 6.95 77.52 6.36 Q 77.71 5.44 77.4 4.87 Q 77.1 4.31 76.42 4.31 Q 75.79 4.31 75.34 4.76 Q 74.88 5.2 74.73 5.97 M 74.73 5.97 M 79.5 11 Q 79.81 10.16 80.2 9.54 Q 80.58 8.92 81.46 7.85 L 84.07 4.68 L 80.35 4.68 L 80.53 3.77 L 85.17 3.77 L 84.99 4.68 Q 81.39 8.77 80.61 11 M 79.5 11"/></g><rect x="0" y="13" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 24 L 2.38 16.77 L 6.42 16.77 L 6.26 17.54 L 3.25 17.54 L 2.77 19.96 L 5.29 19.96 L 5.14 20.72 L 2.61 20.72 L 1.96 24 M 0.93 24 M 5.93 24 L 7.38 16.77 L 11.42 16.77 L 11.26 17.54 L 8.25 17.54 L 7.79 19.86 L 10.31 19.86 L 10.16 20.62 L 7.63 20.62 L 7.11 23.23 L 10.33 23.23 L 10.18 24 M 5.93 24 M 10.93 24 L 12.38 16.77 L 14.57 16.77 Q 15.61 16.77 16.07 17.23 Q 16.53 17.69 16.36 18.57 Q 16.07 20.01 14.49 20.62 L 16.22 24 L 14.96 24 L 13.52 20.94 L 12.56 20.94 L 11.95 24 M 10.93 24 M 12.71 20.18 L 13.04 20.18 Q 14.98 20.18 15.28 18.66 Q 15.51 17.54 13.88 17.54 L 13.24 17.54 M 12.71 20.18 M 15.66 25.68 L 15.81 24.96 L 20.81 24.96 L 20.66 25.68 M 15.66 25.68 M 24.99 24.18 Q 23.31 24.18 22.59 23.19 Q 21.87 22.2 22.23 20.39 Q 22.59 18.58 23.73 17.59 Q 24.86 16.59 26.56 16.59 Q 27.53 16.59 28.77 16.91 L 28.58 17.87 Q 27.2 17.36 26.39 17.36 Q 25.21 17.36 24.41 18.16 Q 23.61 18.95 23.32 20.4 Q 23.04 21.78 23.57 22.58 Q 24.1 23.38 25.29 23.38 Q 26.31 23.38 27.61 22.75 L 27.44 23.63 Q 26.26 24.18 24.99 24.18 M 24.99 24.18 M 33.15 21.24 L 32.54 18.12 L 30.68 21.24 M 33.15 21.24 M 33.68 24 L 33.29 22 L 30.23 22 L 29.04 24 L 28.08 24 L 32.39 16.77 L 33.41 16.77 L 34.79 24 M 33.68 24 M 35.93 24 L 37.38 16.77 L 39.35 16.77 Q 40.65 16.77 41.14 17.22 Q 41.62 17.66 41.42 18.67 Q 41.19 19.82 40.28 20.47 Q 39.36 21.13 37.98 21.13 L 37.52 21.13 L 36.95 24 M 35.93 24 M 37.68 20.35 L 38.09 20.35 Q 39.01 20.35 39.59 19.93 Q 40.17 19.51 40.32 18.75 Q 40.45 18.1 40.12 17.82 Q 39.78 17.54 38.87 17.54 L 38.24 17.54 M 37.68 20.35 M 46.15 21.24 L 45.54 18.12 L 43.68 21.24 M 46.15 21.24 M 46.68 24 L 46.29 22 L 43.23 22 L 42.04 24 L 41.08 24 L 45.39 16.77 L 46.41 16.77 L 47.79 24 M 46.68 24 M 48.93 24 L 50.38 16.77 L 51.38 16.77 L 53.91 22.35 L 55.02 16.77 L 55.9 16.77 L 54.46 24 L 53.45 24 L 50.93 18.42 L 49.81 24 M 48.93 24 M 55.65 25.45 L 59.99 16.77 L 60.75 16.77 L 56.41 25.45 M 55.65 25.45 M 61.5 24 L 61.65 23.28 L 63.09 23.28 L 64.23 17.57 L 62.72 17.94 L 62.87 17.19 L 65.4 16.59 L 64.06 23.28 L 65.51 23.28 L 65.36 24 M 61.5 24 M 67.23 21.47 L 67.37 20.75 L 71.71 20.75 L 71.56 21.47 M 67.23 21.47 M 73.5 24 L 73.65 23.28 L 75.09 23.28 L 76.23 17.57 L 74.72 17.94 L 74.87 17.19 L 77.4 16.59 L 76.06 23.28 L 77.51 23.28 L 77.36 24 M 73.5 24 M 81.76 24 L 82.17 21.95 L 78.92 21.95 L 79.07 21.23 L 83.21 16.77 L 84.11 16.77 L 83.23 21.17 L 84.2 21.17 L 84.04 21.95 L 83.08 21.95 L 82.67 24 M 81.76 24 M 80.02 21.17 L 82.39 21.17 L 83.04 17.96 M 80.02 21.17 M 87.76 24 L 88.17 21.95 L 84.92 21.95 L 85.07 21.23 L 89.21 16.77 L 90.11 16.77 L 89.23 21.17 L 90.2 21.17 L 90.04 21.95 L 89.08 21.95 L 88.67 24 M 87.76 24 M 86.02 21.17 L 88.39 21.17 L 89.04 17.96 M 86.02 21.17"/></g><rect x="0" y="26" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 37 L 2.38 29.77 L 6.42 29.77 L 6.26 30.54 L 3.25 30.54 L 2.77 32.96 L 5.29 32.96 L 5.14 33.72 L 2.61 33.72 L 1.96 37 M 0.93 37 M 5.93 37 L 7.38 29.77 L 11.42 29.77 L 11.26 30.54 L 8.25 30.54 L 7.79 32.86 L 10.31 32.86 L 10.16 33.62 L 7.63 33.62 L 7.11 36.23 L 10.33 36.23 L 10.18 37 M 5.93 37 M 10.93 37 L 12.38 29.77 L 14.57 29.77 Q 15.61 29.77 16.07 30.23 Q 16.53 30.69 16.36 31.57 Q 16.07 33.01 14.49 33.62 L 16.22 37 L 14.96 37 L 13.52 33.94 L 12.56 33.94 L 11.95 37 M 10.93 37 M 12.71 33.18 L 13.04 33.18 Q 14.98 33.18 15.28 31.66 Q 15.51 30.54 13.88 30.54 L 13.24 30.54 M 12.71 33.18 M 17.5 37 L 17.65 36.28 L 19.09 36.28 L 20.23 30.57 L 18.72 30.94 L 18.87 30.19 L 21.4 29.59 L 20.06 36.28 L 21.51 36.28 L 21.36 37 M 17.5 37 M 21.66 38.68 L 21.81 37.96 L 26.81 37.96 L 26.66 38.68 M 21.66 38.68 M 29.31 37.18 Q 28.58 37.18 27.52 36.86 L 27.72 35.85 Q 28.83 36.41 29.61 36.41 Q 30.22 36.41 30.65 36.1 Q 31.08 35.78 31.19 35.26 Q 31.27 34.84 31.09 34.54 Q 30.91 34.24 30.33 33.88 L 29.89 33.59 Q 29.07 33.06 28.79 32.59 Q 28.5 32.13 28.63 31.51 Q 28.79 30.67 29.51 30.13 Q 30.22 29.59 31.16 29.59 Q 31.99 29.59 32.86 29.87 L 32.68 30.81 Q 31.62 30.36 31.06 30.36 Q 30.53 30.36 30.13 30.64 Q 29.72 30.93 29.64 31.36 Q 29.57 31.72 29.76 32 Q 29.96 32.27 30.56 32.66 L 31.02 32.95 Q 31.85 33.48 32.12 33.96 Q 32.4 34.43 32.27 35.1 Q 32.08 36.04 31.27 36.61 Q 30.46 37.18 29.31 37.18 M 29.31 37.18 M 35.81 37.18 Q 34.3 37.18 33.6 36.14 Q 32.89 35.1 33.23 33.38 Q 33.58 31.66 34.7 30.63 Q 35.83 29.59 37.37 29.59 Q 38.9 29.59 39.62 30.62 Q 40.33 31.65 39.99 33.37 Q 39.64 35.12 38.51 36.15 Q 37.38 37.18 35.81 37.18 M 35.81 37.18 M 35.97 36.41 Q 37.08 36.41 37.85 35.62 Q 38.61 34.82 38.9 33.36 Q 39.19 31.95 38.74 31.16 Q 38.29 30.36 37.21 30.36 Q 36.14 30.36 35.37 31.16 Q 34.61 31.96 34.32 33.38 Q 34.04 34.79 34.48 35.6 Q 34.92 36.41 35.97 36.41 M 35.97 36.41 M 40.93 37 L 42.38 29.77 L 43.4 29.77 L 42.11 36.23 L 45.36 36.23 L 45.21 37 M 40.93 37 M 45.93 37 L 47.38 29.77 L 48.4 29.77 L 47.11 36.23 L 50.36 36.23 L 50.21 37 M 45.93 37 M 53.99 37.18 Q 52.31 37.18 51.59 36.19 Q 50.87 35.2 51.23 33.39 Q 51.59 31.58 52.73 30.59 Q 53.86 29.59 55.56 29.59 Q 56.53 29.59 57.77 29.91 L 57.58 30.87 Q 56.2 30.36 55.39 30.36 Q 54.21 30.36 53.41 31.16 Q 52.61 31.95 52.32 33.4 Q 52.04 34.78 52.57 35.58 Q 53.1 36.38 54.29 36.38 Q 55.31 36.38 56.61 35.75 L 56.44 36.63 Q 55.26 37.18 53.99 37.18 M 53.99 37.18 M 57.65 38.45 L 61.99 29.77 L 62.75 29.77 L 58.41 38.45 M 57.65 38.45 M 63.5 37 L 63.65 36.28 L 65.09 36.28 L 66.23 30.57 L 64.72 30.94 L 64.87 30.19 L 67.4 29.59 L 66.06 36.28 L 67.51 36.28 L 67.36 37 M 63.5 37 M 69.23 34.47 L 69.37 33.75 L 73.71 33.75 L 73.56 34.47 M 69.23 34.47 M 75.5 37 L 75.65 36.28 L 77.09 36.28 L 78.23 30.57 L 76.72 30.94 L 76.87 30.19 L 79.4 29.59 L 78.06 36.28 L 79.51 36.28 L 79.36 37 M 75.5 37 M 83.76 37 L 84.17 34.95 L 80.92 34.95 L 81.07 34.23 L 85.21 29.77 L 86.11 29.77 L 85.23 34.17 L 86.2 34.17 L 86.04 34.95 L 85.08 34.95 L 84.67 37 M 83.76 37 M 82.02 34.17 L 84.39 34.17 L 85.04 30.96 M 82.02 34.17 M 89.76 37 L 90.17 34.95 L 86.92 34.95 L 87.07 34.23 L 91.21 29.77 L 92.11 29.77 L 91.23 34.17 L 92.2 34.17 L 92.04 34.95 L 91.08 34.95 L 90.67 37 M 89.76 37 M 88.02 34.17 L 90.39 34.17 L 91.04 30.96 M 88.02 34.17"/></g><rect x="0" y="39" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 7.06 51.45 Q 5.47 50.89 4.47 50.13 Q 4 50.18 3.75 50.18 Q 2.29 50.18 1.59 49.13 Q 0.89 48.07 1.23 46.39 Q 1.58 44.66 2.7 43.63 Q 3.83 42.59 5.37 42.59 Q 6.91 42.59 7.62 43.63 Q 8.33 44.66 7.99 46.4 Q 7.49 48.89 5.45 49.85 Q 6.58 50.4 7.87 50.63 M 7.06 51.45 M 3.97 49.41 Q 5.08 49.41 5.85 48.62 Q 6.61 47.82 6.9 46.37 Q 7.19 44.96 6.74 44.16 Q 6.29 43.36 5.21 43.36 Q 4.14 43.36 3.37 44.16 Q 2.61 44.96 2.32 46.38 Q 2.04 47.79 2.48 48.6 Q 2.92 49.41 3.97 49.41 M 3.97 49.41 M 9.15 49.96 L 9.31 49.14 Q 10.16 49.46 10.81 49.46 Q 11.71 49.46 12.37 48.69 Q 13.02 47.93 13.3 46.57 Q 12.38 47.47 11.45 47.47 Q 10.54 47.47 10.04 46.8 Q 9.54 46.13 9.73 45.16 Q 9.95 44.05 10.77 43.32 Q 11.6 42.59 12.62 42.59 Q 13.8 42.59 14.29 43.54 Q 14.78 44.48 14.45 46.12 Q 14.08 47.99 13.03 49.08 Q 11.98 50.18 10.57 50.18 Q 10 50.18 9.15 49.96 M 9.15 49.96 M 10.73 44.97 Q 10.56 45.81 10.84 46.29 Q 11.12 46.78 11.76 46.78 Q 12.38 46.78 12.89 46.36 Q 13.41 45.95 13.52 45.36 Q 13.71 44.44 13.4 43.87 Q 13.1 43.31 12.42 43.31 Q 11.79 43.31 11.34 43.76 Q 10.88 44.2 10.73 44.97 M 10.73 44.97 M 15.03 49.95 L 15.21 49.05 Q 16.16 49.46 16.75 49.46 Q 17.44 49.46 17.96 49.06 Q 18.47 48.65 18.6 48.01 Q 18.9 46.49 16.77 46.49 L 16.39 46.49 L 16.52 45.84 L 16.85 45.83 Q 18.86 45.83 19.14 44.42 Q 19.36 43.32 18.04 43.32 Q 17.32 43.32 16.37 43.72 L 16.54 42.88 Q 17.45 42.59 18.25 42.59 Q 20.47 42.59 20.14 44.27 Q 19.88 45.54 18.26 46.08 Q 19.93 46.49 19.63 48 Q 19.43 49.02 18.64 49.6 Q 17.85 50.18 16.67 50.18 Q 16 50.18 15.03 49.95 M 15.03 49.95 M 20.08 50 L 23.2 46.37 L 21.64 42.77 L 22.85 42.77 L 24.04 45.5 L 26.42 42.77 L 27.38 42.77 L 24.38 46.26 L 26 50 L 24.79 50 L 23.52 47.13 L 21.05 50 M 20.08 50 M 24.83 51.34 L 25.01 50.43 Q 25.56 50.62 26.01 50.62 Q 26.6 50.62 26.9 50.29 Q 27.2 49.96 27.36 49.12 L 28.63 42.77 L 29.66 42.77 L 28.39 49.09 Q 27.92 51.45 25.69 51.45 Q 25.35 51.45 24.83 51.34 M 24.83 51.34 M 30.15 49.96 L 30.31 49.14 Q 31.16 49.46 31.81 49.46 Q 32.71 49.46 33.37 48.69 Q 34.02 47.93 34.3 46.57 Q 33.38 47.47 32.45 47.47 Q 31.54 47.47 31.04 46.8 Q 30.54 46.13 30.73 45.16 Q 30.95 44.05 31.77 43.32 Q 32.6 42.59 33.62 42.59 Q 34.8 42.59 35.29 43.54 Q 35.78 44.48 35.45 46.12 Q 35.08 47.99 34.03 49.08 Q 32.98 50.18 31.57 50.18 Q 31 50.18 30.15 49.96 M 30.15 49.96 M 31.73 44.97 Q 31.56 45.81 31.84 46.29 Q 32.12 46.78 32.76 46.78 Q 33.38 46.78 33.89 46.36 Q 34.41 45.95 34.52 45.36 Q 34.71 44.44 34.4 43.87 Q 34.1 43.31 33.42 43.31 Q 32.79 43.31 32.34 43.76 Q 31.88 44.2 31.73 44.97 M 31.73 44.97 M 34.66 51.68 L 34.81 50.96 L 39.81 50.96 L 39.66 51.68 M 34.66 51.68 M 42.31 50.18 Q 41.58 50.18 40.52 49.86 L 40.72 48.85 Q 41.83 49.41 42.61 49.41 Q 43.22 49.41 43.65 49.1 Q 44.08 48.78 44.19 48.26 Q 44.27 47.84 44.09 47.54 Q 43.91 47.24 43.33 46.88 L 42.89 46.59 Q 42.07 46.06 41.79 45.59 Q 41.5 45.13 41.63 44.51 Q 41.79 43.67 42.51 43.13 Q 43.22 42.59 44.16 42.59 Q 44.99 42.59 45.86 42.87 L 45.68 43.81 Q 44.62 43.36 44.06 43.36 Q 43.53 43.36 43.13 43.64 Q 42.72 43.93 42.64 44.36 Q 42.57 44.72 42.76 45 Q 42.96 45.27 43.56 45.66 L 44.02 45.95 Q 44.85 46.48 45.12 46.96 Q 45.4 47.43 45.27 48.1 Q 45.08 49.04 44.27 49.61 Q 43.46 50.18 42.31 50.18 M 42.31 50.18 M 48.81 50.18 Q 47.3 50.18 46.6 49.14 Q 45.89 48.1 46.23 46.38 Q 46.58 44.66 47.7 43.63 Q 48.83 42.59 50.37 42.59 Q 51.9 42.59 52.62 43.62 Q 53.33 44.65 52.99 46.37 Q 52.64 48.12 51.51 49.15 Q 50.38 50.18 48.81 50.18 M 48.81 50.18 M 48.97 49.41 Q 50.08 49.41 50.85 48.62 Q 51.61 47.82 51.9 46.36 Q 52.19 44.95 51.74 44.16 Q 51.29 43.36 50.21 43.36 Q 49.14 43.36 48.37 44.16 Q 47.61 44.96 47.32 46.38 Q 47.04 47.79 47.48 48.6 Q 47.92 49.41 48.97 49.41 M 48.97 49.41 M 53.93 50 L 55.38 42.77 L 56.4 42.77 L 55.11 49.23 L 58.36 49.23 L 58.21 50 M 53.93 50 M 60.65 50 L 61.94 43.54 L 59.38 43.54 L 59.53 42.77 L 65.69 42.77 L 65.53 43.54 L 62.97 43.54 L 61.68 50 M 60.65 50 M 66.32 42.77 L 67.34 42.77 L 66.43 47.33 Q 66.21 48.42 66.52 48.92 Q 66.82 49.41 67.7 49.41 Q 68.56 49.41 69.01 48.95 Q 69.46 48.48 69.69 47.37 L 70.61 42.77 L 71.5 42.77 L 70.59 47.35 Q 70.29 48.83 69.55 49.51 Q 68.81 50.18 67.48 50.18 Q 66.13 50.18 65.62 49.48 Q 65.12 48.78 65.41 47.32 M 66.32 42.77 M 71.65 51.45 L 75.99 42.77 L 76.75 42.77 L 72.41 51.45 M 71.65 51.45 M 77.5 50 L 77.65 49.28 L 79.09 49.28 L 80.23 43.57 L 78.72 43.94 L 78.87 43.19 L 81.4 42.59 L 80.06 49.28 L 81.51 49.28 L 81.36 50 M 77.5 50 M 83.23 47.47 L 83.37 46.75 L 87.71 46.75 L 87.56 47.47 M 83.23 47.47 M 89.5 50 L 89.65 49.28 L 91.09 49.28 L 92.23 43.57 L 90.72 43.94 L 90.87 43.19 L 93.4 42.59 L 92.06 49.28 L 93.51 49.28 L 93.36 50 M 89.5 50 M 97.76 50 L 98.17 47.95 L 94.92 47.95 L 95.07 47.23 L 99.21 42.77 L 100.11 42.77 L 99.23 47.17 L 100.2 47.17 L 100.04 47.95 L 99.08 47.95 L 98.67 50 M 97.76 50 M 96.02 47.17 L 98.39 47.17 L 99.04 43.96 M 96.02 47.17 M 103.76 50 L 104.17 47.95 L 100.92 47.95 L 101.07 47.23 L 105.21 42.77 L 106.11 42.77 L 105.23 47.17 L 106.2 47.17 L 106.04 47.95 L 105.08 47.95 L 104.67 50 M 103.76 50 M 102.02 47.17 L 104.39 47.17 L 105.04 43.96 M 102.02 47.17"/></g><rect x="0" y="52" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 63 L 2.38 55.77 L 6.42 55.77 L 6.26 56.54 L 3.25 56.54 L 2.77 58.96 L 5.29 58.96 L 5.14 59.72 L 2.61 59.72 L 1.96 63 M 0.93 63 M 5.93 63 L 7.38 55.77 L 11.42 55.77 L 11.26 56.54 L 8.25 56.54 L 7.79 58.86 L 10.31 58.86 L 10.16 59.62 L 7.63 59.62 L 7.11 62.23 L 10.33 62.23 L 10.18 63 M 5.93 63 M 10.93 63 L 12.38 55.77 L 14.57 55.77 Q 15.61 55.77 16.07 56.23 Q 16.53 56.69 16.36 57.57 Q 16.07 59.01 14.49 59.62 L 16.22 63 L 14.96 63 L 13.52 59.94 L 12.56 59.94 L 11.95 63 M 10.93 63 M 12.71 59.18 L 13.04 59.18 Q 14.98 59.18 15.28 57.66 Q 15.51 56.54 13.88 56.54 L 13.24 56.54 M 12.71 59.18 M 17.5 63 L 17.65 62.28 L 19.09 62.28 L 20.23 56.57 L 18.72 56.94 L 18.87 56.19 L 21.4 55.59 L 20.06 62.28 L 21.51 62.28 L 21.36 63 M 17.5 63 M 21.66 64.68 L 21.81 63.96 L 26.81 63.96 L 26.66 64.68 M 21.66 64.68 M 27.93 63 L 29.38 55.77 L 31.35 55.77 Q 32.65 55.77 33.14 56.22 Q 33.62 56.66 33.42 57.67 Q 33.19 58.82 32.28 59.47 Q 31.36 60.13 29.98 60.13 L 29.52 60.13 L 28.95 63 M 27.93 63 M 29.68 59.35 L 30.09 59.35 Q 31.01 59.35 31.59 58.93 Q 32.17 58.51 32.32 57.75 Q 32.45 57.1 32.12 56.82 Q 31.78 56.54 30.87 56.54 L 30.24 56.54 M 29.68 59.35 M 33.93 63 L 35.38 55.77 L 39.42 55.77 L 39.26 56.54 L 36.25 56.54 L 35.79 58.86 L 38.31 58.86 L 38.16 59.62 L 35.63 59.62 L 35.11 62.23 L 38.33 62.23 L 38.18 63 M 33.93 63 M 43.15 60.24 L 42.54 57.12 L 40.68 60.24 M 43.15 60.24 M 43.68 63 L 43.29 61 L 40.23 61 L 39.04 63 L 38.08 63 L 42.39 55.77 L 43.41 55.77 L 44.79 63 M 43.68 63 M 45.65 64.45 L 49.99 55.77 L 50.75 55.77 L 46.41 64.45 M 45.65 64.45 M 51.5 63 L 51.65 62.28 L 53.09 62.28 L 54.23 56.57 L 52.72 56.94 L 52.87 56.19 L 55.4 55.59 L 54.06 62.28 L 55.51 62.28 L 55.36 63 M 51.5 63 M 57.23 60.47 L 57.37 59.75 L 61.71 59.75 L 61.56 60.47 M 57.23 60.47 M 63.5 63 L 63.65 62.28 L 65.09 62.28 L 66.23 56.57 L 64.72 56.94 L 64.87 56.19 L 67.4 55.59 L 66.06 62.28 L 67.51 62.28 L 67.36 63 M 63.5 63 M 71.76 63 L 72.17 60.95 L 68.92 60.95 L 69.07 60.23 L 73.21 55.77 L 74.11 55.77 L 73.23 60.17 L 74.2 60.17 L 74.04 60.95 L 73.08 60.95 L 72.67 63 M 71.76 63 M 70.02 60.17 L 72.39 60.17 L 73.04 56.96 M 70.02 60.17 M 75.15 62.96 L 75.31 62.14 Q 76.16 62.46 76.81 62.46 Q 77.71 62.46 78.37 61.69 Q 79.02 60.93 79.3 59.57 Q 78.38 60.47 77.45 60.47 Q 76.54 60.47 76.04 59.8 Q 75.54 59.13 75.73 58.16 Q 75.95 57.05 76.77 56.32 Q 77.6 55.59 78.62 55.59 Q 79.8 55.59 80.29 56.54 Q 80.78 57.48 80.45 59.12 Q 80.08 60.99 79.03 62.08 Q 77.98 63.18 76.57 63.18 Q 76 63.18 75.15 62.96 M 75.15 62.96 M 76.73 57.97 Q 76.56 58.81 76.84 59.29 Q 77.12 59.78 77.76 59.78 Q 78.38 59.78 78.89 59.36 Q 79.41 58.95 79.52 58.36 Q 79.71 57.44 79.4 56.87 Q 79.1 56.31 78.42 56.31 Q 77.79 56.31 77.34 56.76 Q 76.88 57.2 76.73 57.97 M 76.73 57.97"/></g><rect x="0" y="65" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 7.06 77.45 Q 5.47 76.89 4.47 76.13 Q 4 76.18 3.75 76.18 Q 2.29 76.18 1.59 75.13 Q 0.89 74.07 1.23 72.39 Q 1.58 70.66 2.7 69.63 Q 3.83 68.59 5.37 68.59 Q 6.91 68.59 7.62 69.63 Q 8.33 70.66 7.99 72.4 Q 7.49 74.89 5.45 75.85 Q 6.58 76.4 7.87 76.63 M 7.06 77.45 M 3.97 75.41 Q 5.08 75.41 5.85 74.62 Q 6.61 73.82 6.9 72.37 Q 7.19 70.96 6.74 70.16 Q 6.29 69.36 5.21 69.36 Q 4.14 69.36 3.37 70.16 Q 2.61 70.96 2.32 72.38 Q 2.04 73.79 2.48 74.6 Q 2.92 75.41 3.97 75.41 M 3.97 75.41 M 9.5 76 Q 9.81 75.16 10.2 74.54 Q 10.58 73.92 11.46 72.85 L 14.07 69.68 L 10.35 69.68 L 10.53 68.77 L 15.17 68.77 L 14.99 69.68 Q 11.39 73.77 10.61 76 M 9.5 76 M 14.08 76 L 17.2 72.37 L 15.64 68.77 L 16.85 68.77 L 18.04 71.5 L 20.42 68.77 L 21.38 68.77 L 18.38 72.26 L 20 76 L 18.79 76 L 17.52 73.13 L 15.05 76 M 14.08 76 M 25.15 73.24 L 24.54 70.12 L 22.68 73.24 M 25.15 73.24 M 25.68 76 L 25.29 74 L 22.23 74 L 21.04 76 L 20.08 76 L 24.39 68.77 L 25.41 68.77 L 26.79 76 M 25.68 76 M 28.15 75.96 L 28.31 75.14 Q 29.16 75.46 29.81 75.46 Q 30.71 75.46 31.37 74.69 Q 32.02 73.93 32.3 72.57 Q 31.38 73.47 30.45 73.47 Q 29.54 73.47 29.04 72.8 Q 28.54 72.13 28.73 71.16 Q 28.95 70.05 29.77 69.32 Q 30.6 68.59 31.62 68.59 Q 32.8 68.59 33.29 69.54 Q 33.78 70.48 33.45 72.12 Q 33.08 73.99 32.03 75.08 Q 30.98 76.18 29.57 76.18 Q 29 76.18 28.15 75.96 M 28.15 75.96 M 29.73 70.97 Q 29.56 71.81 29.84 72.29 Q 30.12 72.78 30.76 72.78 Q 31.38 72.78 31.89 72.36 Q 32.41 71.95 32.52 71.36 Q 32.71 70.44 32.4 69.87 Q 32.1 69.31 31.42 69.31 Q 30.79 69.31 30.34 69.76 Q 29.88 70.2 29.73 70.97 M 29.73 70.97 M 36.09 72.06 Q 35.17 71.33 35.35 70.43 Q 35.52 69.61 36.22 69.1 Q 36.92 68.59 37.89 68.59 Q 38.78 68.59 39.25 69.02 Q 39.72 69.46 39.58 70.15 Q 39.37 71.2 37.85 72.06 Q 39.33 72.87 39.07 74.13 Q 38.89 75.04 38.09 75.61 Q 37.29 76.18 36.21 76.18 Q 35.14 76.18 34.59 75.64 Q 34.04 75.1 34.22 74.22 Q 34.48 72.92 36.09 72.06 M 36.09 72.06 M 37.37 71.76 Q 38.52 71.1 38.68 70.28 Q 38.77 69.85 38.48 69.58 Q 38.2 69.32 37.65 69.32 Q 37.12 69.32 36.73 69.58 Q 36.35 69.84 36.26 70.25 Q 36.18 70.66 36.42 70.98 Q 36.66 71.3 37.37 71.76 M 37.37 71.76 M 36.53 72.46 Q 35.86 72.9 35.59 73.24 Q 35.31 73.57 35.21 74.07 Q 35.09 74.69 35.41 75.07 Q 35.74 75.46 36.39 75.46 Q 37.02 75.46 37.48 75.13 Q 37.95 74.8 38.05 74.28 Q 38.13 73.86 37.95 73.57 Q 37.76 73.28 37.13 72.86 M 36.53 72.46 M 38.66 77.68 L 38.81 76.96 L 43.81 76.96 L 43.66 77.68 M 38.66 77.68 M 46.65 76 L 47.94 69.54 L 45.38 69.54 L 45.53 68.77 L 51.69 68.77 L 51.53 69.54 L 48.97 69.54 L 47.68 76 M 46.65 76 M 50.93 76 L 52.38 68.77 L 54.57 68.77 Q 55.61 68.77 56.07 69.23 Q 56.53 69.69 56.36 70.57 Q 56.07 72.01 54.49 72.62 L 56.22 76 L 54.96 76 L 53.52 72.94 L 52.56 72.94 L 51.95 76 M 50.93 76 M 52.71 72.18 L 53.04 72.18 Q 54.98 72.18 55.28 70.66 Q 55.51 69.54 53.88 69.54 L 53.24 69.54 M 52.71 72.18 M 56.93 76 L 58.37 68.77 L 59.4 68.77 L 57.95 76 M 56.93 76 M 59.93 76 L 61.38 68.77 L 63.35 68.77 Q 64.65 68.77 65.14 69.22 Q 65.62 69.66 65.42 70.67 Q 65.19 71.82 64.28 72.47 Q 63.36 73.13 61.98 73.13 L 61.52 73.13 L 60.95 76 M 59.93 76 M 61.68 72.35 L 62.09 72.35 Q 63.01 72.35 63.59 71.93 Q 64.17 71.51 64.32 70.75 Q 64.45 70.1 64.12 69.82 Q 63.78 69.54 62.87 69.54 L 62.24 69.54 M 61.68 72.35 M 65.93 76 L 67.38 68.77 L 69.57 68.77 Q 70.61 68.77 71.07 69.23 Q 71.53 69.69 71.36 70.57 Q 71.07 72.01 69.49 72.62 L 71.22 76 L 69.96 76 L 68.52 72.94 L 67.56 72.94 L 66.95 76 M 65.93 76 M 67.71 72.18 L 68.04 72.18 Q 69.98 72.18 70.28 70.66 Q 70.51 69.54 68.88 69.54 L 68.24 69.54 M 67.71 72.18 M 71.65 77.45 L 75.99 68.77 L 76.75 68.77 L 72.41 77.45 M 71.65 77.45 M 77.5 76 L 77.65 75.28 L 79.09 75.28 L 80.23 69.57 L 78.72 69.94 L 78.87 69.19 L 81.4 68.59 L 80.06 75.28 L 81.51 75.28 L 81.36 76 M 77.5 76 M 83.23 73.47 L 83.37 72.75 L 87.71 72.75 L 87.56 73.47 M 83.23 73.47 M 89.5 76 L 89.65 75.28 L 91.09 75.28 L 92.23 69.57 L 90.72 69.94 L 90.87 69.19 L 93.4 68.59 L 92.06 75.28 L 93.51 75.28 L 93.36 76 M 89.5 76 M 95.21 76.03 L 95.38 75.17 Q 96.04 75.46 96.69 75.46 Q 97.4 75.46 97.9 75.04 Q 98.39 74.62 98.54 73.88 Q 98.86 72.25 96.62 72.25 Q 96.37 72.25 96.08 72.29 L 96.78 68.77 L 100.44 68.77 L 100.27 69.61 L 97.46 69.61 L 97.08 71.52 Q 98.47 71.52 99.12 72.16 Q 99.78 72.8 99.55 73.93 Q 99.34 74.98 98.51 75.58 Q 97.68 76.18 96.42 76.18 Q 95.87 76.18 95.21 76.03 M 95.21 76.03 M 100.83 76 L 101 75.16 Q 101.62 74.17 103.13 73.02 L 103.78 72.52 Q 105.03 71.56 105.22 70.61 Q 105.34 70.01 105.05 69.66 Q 104.75 69.32 104.12 69.32 Q 103.37 69.32 102.23 69.9 L 102.4 69.05 Q 103.45 68.59 104.4 68.59 Q 105.42 68.59 105.92 69.14 Q 106.43 69.69 106.25 70.59 Q 106.12 71.24 105.71 71.74 Q 105.3 72.25 104.31 72.96 L 103.87 73.28 Q 102.52 74.26 102.16 75.16 L 105.3 75.16 L 105.13 76 M 100.83 76"/></g><rect x="0" y="78" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 89 L 2.38 81.77 L 6.42 81.77 L 6.26 82.54 L 3.25 82.54 L 2.77 84.96 L 5.29 84.96 L 5.14 85.72 L 2.61 85.72 L 1.96 89 M 0.93 89 M 5.93 89 L 7.38 81.77 L 11.42 81.77 L 11.26 82.54 L 8.25 82.54 L 7.79 84.86 L 10.31 84.86 L 10.16 85.62 L 7.63 85.62 L 7.11 88.23 L 10.33 88.23 L 10.18 89 M 5.93 89 M 10.93 89 L 12.38 81.77 L 14.57 81.77 Q 15.61 81.77 16.07 82.23 Q 16.53 82.69 16.36 83.57 Q 16.07 85.01 14.49 85.62 L 16.22 89 L 14.96 89 L 13.52 85.94 L 12.56 85.94 L 11.95 89 M 10.93 89 M 12.71 85.18 L 13.04 85.18 Q 14.98 85.18 15.28 83.66 Q 15.51 82.54 13.88 82.54 L 13.24 82.54 M 12.71 85.18 M 17.5 89 L 17.65 88.28 L 19.09 88.28 L 20.23 82.57 L 18.72 82.94 L 18.87 82.19 L 21.4 81.59 L 20.06 88.28 L 21.51 88.28 L 21.36 89 M 17.5 89 M 21.66 90.68 L 21.81 89.96 L 26.81 89.96 L 26.66 90.68 M 21.66 90.68 M 27.93 89 L 29.38 81.77 L 30.8 81.77 L 31.68 87.36 L 34.86 81.77 L 36.13 81.77 L 34.69 89 L 33.73 89 L 34.9 83.12 L 31.83 88.52 L 30.84 88.52 L 29.99 83.11 L 28.81 89 M 27.93 89 M 36.93 89 L 38.38 81.77 L 42.42 81.77 L 42.26 82.54 L 39.25 82.54 L 38.79 84.86 L 41.31 84.86 L 41.16 85.62 L 38.63 85.62 L 38.11 88.23 L 41.33 88.23 L 41.18 89 M 36.93 89 M 43.31 89.18 Q 42.58 89.18 41.52 88.86 L 41.72 87.85 Q 42.83 88.41 43.61 88.41 Q 44.22 88.41 44.65 88.1 Q 45.08 87.78 45.19 87.26 Q 45.27 86.84 45.09 86.54 Q 44.91 86.24 44.33 85.88 L 43.89 85.59 Q 43.07 85.06 42.79 84.59 Q 42.5 84.13 42.63 83.51 Q 42.79 82.67 43.51 82.13 Q 44.22 81.59 45.16 81.59 Q 45.99 81.59 46.86 81.87 L 46.68 82.81 Q 45.62 82.36 45.06 82.36 Q 44.53 82.36 44.13 82.64 Q 43.72 82.93 43.64 83.36 Q 43.57 83.72 43.76 84 Q 43.96 84.27 44.56 84.66 L 45.02 84.95 Q 45.85 85.48 46.12 85.96 Q 46.4 86.43 46.27 87.1 Q 46.08 88.04 45.27 88.61 Q 44.46 89.18 43.31 89.18 M 43.31 89.18 M 49.99 89.18 Q 48.31 89.18 47.59 88.19 Q 46.87 87.2 47.23 85.39 Q 47.59 83.58 48.73 82.59 Q 49.86 81.59 51.56 81.59 Q 52.53 81.59 53.77 81.91 L 53.58 82.87 Q 52.2 82.36 51.39 82.36 Q 50.21 82.36 49.41 83.16 Q 48.61 83.95 48.32 85.4 Q 48.04 86.78 48.57 87.58 Q 49.1 88.38 50.29 88.38 Q 51.31 88.38 52.61 87.75 L 52.44 88.63 Q 51.26 89.18 49.99 89.18 M 49.99 89.18 M 53.93 89 L 55.38 81.77 L 57.57 81.77 Q 58.61 81.77 59.07 82.23 Q 59.53 82.69 59.36 83.57 Q 59.07 85.01 57.49 85.62 L 59.22 89 L 57.96 89 L 56.52 85.94 L 55.56 85.94 L 54.95 89 M 53.93 89 M 55.71 85.18 L 56.04 85.18 Q 57.98 85.18 58.28 83.66 Q 58.51 82.54 56.88 82.54 L 56.24 82.54 M 55.71 85.18 M 59.65 90.45 L 63.99 81.77 L 64.75 81.77 L 60.41 90.45 M 59.65 90.45 M 65.5 89 L 65.65 88.28 L 67.09 88.28 L 68.23 82.57 L 66.72 82.94 L 66.87 82.19 L 69.4 81.59 L 68.06 88.28 L 69.51 88.28 L 69.36 89 M 65.5 89 M 71.23 86.47 L 71.37 85.75 L 75.71 85.75 L 75.56 86.47 M 71.23 86.47 M 77.5 89 L 77.65 88.28 L 79.09 88.28 L 80.23 82.57 L 78.72 82.94 L 78.87 82.19 L 81.4 81.59 L 80.06 88.28 L 81.51 88.28 L 81.36 89 M 77.5 89 M 85.76 89 L 86.17 86.95 L 82.92 86.95 L 83.07 86.23 L 87.21 81.77 L 88.11 81.77 L 87.23 86.17 L 88.2 86.17 L 88.04 86.95 L 87.08 86.95 L 86.67 89 M 85.76 89 M 84.02 86.17 L 86.39 86.17 L 87.04 82.96 M 84.02 86.17 M 91.09 85.06 Q 90.17 84.33 90.35 83.43 Q 90.52 82.61 91.22 82.1 Q 91.92 81.59 92.89 81.59 Q 93.78 81.59 94.25 82.02 Q 94.72 82.46 94.58 83.15 Q 94.37 84.2 92.85 85.06 Q 94.33 85.87 94.07 87.13 Q 93.89 88.04 93.09 88.61 Q 92.29 89.18 91.21 89.18 Q 90.14 89.18 89.59 88.64 Q 89.04 88.1 89.22 87.22 Q 89.48 85.92 91.09 85.06 M 91.09 85.06 M 92.37 84.76 Q 93.52 84.1 93.68 83.28 Q 93.77 82.85 93.48 82.58 Q 93.2 82.32 92.65 82.32 Q 92.12 82.32 91.73 82.58 Q 91.35 82.84 91.26 83.25 Q 91.18 83.66 91.42 83.98 Q 91.66 84.3 92.37 84.76 M 92.37 84.76 M 91.53 85.46 Q 90.86 85.9 90.59 86.24 Q 90.31 86.57 90.21 87.07 Q 90.09 87.69 90.41 88.07 Q 90.74 88.46 91.39 88.46 Q 92.02 88.46 92.48 88.13 Q 92.95 87.8 93.05 87.28 Q 93.13 86.86 92.95 86.57 Q 92.76 86.28 92.13 85.86 M 91.53 85.46"/></g><rect x="0" y="91" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 102 L 2.38 94.77 L 6.42 94.77 L 6.26 95.54 L 3.25 95.54 L 2.77 97.96 L 5.29 97.96 L 5.14 98.72 L 2.61 98.72 L 1.96 102 M 0.93 102 M 5.93 102 L 7.38 94.77 L 11.42 94.77 L 11.26 95.54 L 8.25 95.54 L 7.79 97.86 L 10.31 97.86 L 10.16 98.62 L 7.63 98.62 L 7.11 101.23 L 10.33 101.23 L 10.18 102 M 5.93 102 M 10.93 102 L 12.38 94.77 L 14.57 94.77 Q 15.61 94.77 16.07 95.23 Q 16.53 95.69 16.36 96.57 Q 16.07 98.01 14.49 98.62 L 16.22 102 L 14.96 102 L 13.52 98.94 L 12.56 98.94 L 11.95 102 M 10.93 102 M 12.71 98.18 L 13.04 98.18 Q 14.98 98.18 15.28 96.66 Q 15.51 95.54 13.88 95.54 L 13.24 95.54 M 12.71 98.18 M 17.5 102 L 17.65 101.28 L 19.09 101.28 L 20.23 95.57 L 18.72 95.94 L 18.87 95.19 L 21.4 94.59 L 20.06 101.28 L 21.51 101.28 L 21.36 102 M 17.5 102 M 21.66 103.68 L 21.81 102.96 L 26.81 102.96 L 26.66 103.68 M 21.66 103.68 M 29.31 102.18 Q 28.58 102.18 27.52 101.86 L 27.72 100.85 Q 28.83 101.41 29.61 101.41 Q 30.22 101.41 30.65 101.1 Q 31.08 100.78 31.19 100.26 Q 31.27 99.84 31.09 99.54 Q 30.91 99.24 30.33 98.88 L 29.89 98.59 Q 29.07 98.06 28.79 97.59 Q 28.5 97.13 28.63 96.51 Q 28.79 95.67 29.51 95.13 Q 30.22 94.59 31.16 94.59 Q 31.99 94.59 32.86 94.87 L 32.68 95.81 Q 31.62 95.36 31.06 95.36 Q 30.53 95.36 30.13 95.64 Q 29.72 95.93 29.64 96.36 Q 29.57 96.72 29.76 97 Q 29.96 97.27 30.56 97.66 L 31.02 97.95 Q 31.85 98.48 32.12 98.96 Q 32.4 99.43 32.27 100.1 Q 32.08 101.04 31.27 101.61 Q 30.46 102.18 29.31 102.18 M 29.31 102.18 M 32.93 102 L 34.38 94.77 L 36.35 94.77 Q 37.65 94.77 38.14 95.22 Q 38.62 95.66 38.42 96.67 Q 38.19 97.82 37.28 98.47 Q 36.36 99.13 34.98 99.13 L 34.52 99.13 L 33.95 102 M 32.93 102 M 34.68 98.35 L 35.09 98.35 Q 36.01 98.35 36.59 97.93 Q 37.17 97.51 37.32 96.75 Q 37.45 96.1 37.12 95.82 Q 36.78 95.54 35.87 95.54 L 35.24 95.54 M 34.68 98.35 M 38.93 102 L 40.37 94.77 L 41.4 94.77 L 39.95 102 M 38.93 102 M 44.81 102.18 Q 43.3 102.18 42.6 101.14 Q 41.89 100.1 42.23 98.38 Q 42.58 96.66 43.7 95.63 Q 44.83 94.59 46.37 94.59 Q 47.9 94.59 48.62 95.62 Q 49.33 96.65 48.99 98.37 Q 48.64 100.12 47.51 101.15 Q 46.38 102.18 44.81 102.18 M 44.81 102.18 M 44.97 101.41 Q 46.08 101.41 46.85 100.62 Q 47.61 99.82 47.9 98.36 Q 48.19 96.95 47.74 96.16 Q 47.29 95.36 46.21 95.36 Q 45.14 95.36 44.37 96.16 Q 43.61 96.96 43.32 98.38 Q 43.04 99.79 43.48 100.6 Q 43.92 101.41 44.97 101.41 M 44.97 101.41 M 49.93 102 L 51.38 94.77 L 52.4 94.77 L 51.11 101.23 L 54.36 101.23 L 54.21 102 M 49.93 102 M 54.65 103.45 L 58.99 94.77 L 59.75 94.77 L 55.41 103.45 M 54.65 103.45 M 60.5 102 L 60.65 101.28 L 62.09 101.28 L 63.23 95.57 L 61.72 95.94 L 61.87 95.19 L 64.4 94.59 L 63.06 101.28 L 64.51 101.28 L 64.36 102 M 60.5 102 M 66.23 99.47 L 66.37 98.75 L 70.71 98.75 L 70.56 99.47 M 66.23 99.47 M 72.5 102 L 72.65 101.28 L 74.09 101.28 L 75.23 95.57 L 73.72 95.94 L 73.87 95.19 L 76.4 94.59 L 75.06 101.28 L 76.51 101.28 L 76.36 102 M 72.5 102 M 80.76 102 L 81.17 99.95 L 77.92 99.95 L 78.07 99.23 L 82.21 94.77 L 83.11 94.77 L 82.23 99.17 L 83.2 99.17 L 83.04 99.95 L 82.08 99.95 L 81.67 102 M 80.76 102 M 79.02 99.17 L 81.39 99.17 L 82.04 95.96 M 79.02 99.17 M 84.5 102 Q 84.81 101.16 85.2 100.54 Q 85.58 99.92 86.46 98.85 L 89.07 95.68 L 85.35 95.68 L 85.53 94.77 L 90.17 94.77 L 89.99 95.68 Q 86.39 99.77 85.61 102 M 84.5 102"/></g><rect x="0" y="104" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 115 L 2.38 107.77 L 6.42 107.77 L 6.26 108.54 L 3.25 108.54 L 2.77 110.96 L 5.29 110.96 L 5.14 111.72 L 2.61 111.72 L 1.96 115 M 0.93 115 M 5.93 115 L 7.38 107.77 L 11.42 107.77 L 11.26 108.54 L 8.25 108.54 L 7.79 110.86 L 10.31 110.86 L 10.16 111.62 L 7.63 111.62 L 7.11 114.23 L 10.33 114.23 L 10.18 115 M 5.93 115 M 10.93 115 L 12.38 107.77 L 14.57 107.77 Q 15.61 107.77 16.07 108.23 Q 16.53 108.69 16.36 109.57 Q 16.07 111.01 14.49 111.62 L 16.22 115 L 14.96 115 L 13.52 111.94 L 12.56 111.94 L 11.95 115 M 10.93 115 M 12.71 111.18 L 13.04 111.18 Q 14.98 111.18 15.28 109.66 Q 15.51 108.54 13.88 108.54 L 13.24 108.54 M 12.71 111.18 M 17.03 114.95 L 17.21 114.05 Q 18.16 114.46 18.75 114.46 Q 19.44 114.46 19.96 114.06 Q 20.47 113.65 20.6 113.01 Q 20.9 111.49 18.77 111.49 L 18.39 111.49 L 18.52 110.84 L 18.85 110.83 Q 20.86 110.83 21.14 109.42 Q 21.36 108.32 20.04 108.32 Q 19.32 108.32 18.37 108.72 L 18.54 107.88 Q 19.45 107.59 20.25 107.59 Q 22.47 107.59 22.14 109.27 Q 21.88 110.54 20.26 111.08 Q 21.93 111.49 21.63 113 Q 21.43 114.02 20.64 114.6 Q 19.85 115.18 18.67 115.18 Q 18 115.18 17.03 114.95 M 17.03 114.95 M 21.66 116.68 L 21.81 115.96 L 26.81 115.96 L 26.66 116.68 M 21.66 116.68 M 27.93 115 L 29.38 107.77 L 31.57 107.77 Q 32.61 107.77 33.07 108.23 Q 33.53 108.69 33.36 109.57 Q 33.07 111.01 31.49 111.62 L 33.22 115 L 31.96 115 L 30.52 111.94 L 29.56 111.94 L 28.95 115 M 27.93 115 M 29.71 111.18 L 30.04 111.18 Q 31.98 111.18 32.28 109.66 Q 32.51 108.54 30.88 108.54 L 30.24 108.54 M 29.71 111.18 M 38.15 112.24 L 37.54 109.12 L 35.68 112.24 M 38.15 112.24 M 38.68 115 L 38.29 113 L 35.23 113 L 34.04 115 L 33.08 115 L 37.39 107.77 L 38.41 107.77 L 39.79 115 M 38.68 115 M 40.93 115 L 42.38 107.77 L 44.35 107.77 Q 45.65 107.77 46.14 108.22 Q 46.62 108.66 46.42 109.67 Q 46.19 110.82 45.28 111.47 Q 44.36 112.13 42.98 112.13 L 42.52 112.13 L 41.95 115 M 40.93 115 M 42.68 111.35 L 43.09 111.35 Q 44.01 111.35 44.59 110.93 Q 45.17 110.51 45.32 109.75 Q 45.45 109.1 45.12 108.82 Q 44.78 108.54 43.87 108.54 L 43.24 108.54 M 42.68 111.35 M 48.31 115.18 Q 47.58 115.18 46.52 114.86 L 46.72 113.85 Q 47.83 114.41 48.61 114.41 Q 49.22 114.41 49.65 114.1 Q 50.08 113.78 50.19 113.26 Q 50.27 112.84 50.09 112.54 Q 49.91 112.24 49.33 111.88 L 48.89 111.59 Q 48.07 111.06 47.79 110.59 Q 47.5 110.13 47.63 109.51 Q 47.79 108.67 48.51 108.13 Q 49.22 107.59 50.16 107.59 Q 50.99 107.59 51.86 107.87 L 51.68 108.81 Q 50.62 108.36 50.06 108.36 Q 49.53 108.36 49.13 108.64 Q 48.72 108.93 48.64 109.36 Q 48.57 109.72 48.76 110 Q 48.96 110.27 49.56 110.66 L 50.02 110.95 Q 50.85 111.48 51.12 111.96 Q 51.4 112.43 51.27 113.1 Q 51.08 114.04 50.27 114.61 Q 49.46 115.18 48.31 115.18 M 48.31 115.18 M 56.15 112.24 L 55.54 109.12 L 53.68 112.24 M 56.15 112.24 M 56.68 115 L 56.29 113 L 53.23 113 L 52.04 115 L 51.08 115 L 55.39 107.77 L 56.41 107.77 L 57.79 115 M 56.68 115 M 58.65 116.45 L 62.99 107.77 L 63.75 107.77 L 59.41 116.45 M 58.65 116.45 M 64.5 115 L 64.65 114.28 L 66.09 114.28 L 67.23 108.57 L 65.72 108.94 L 65.87 108.19 L 68.4 107.59 L 67.06 114.28 L 68.51 114.28 L 68.36 115 M 64.5 115 M 70.23 112.47 L 70.37 111.75 L 74.71 111.75 L 74.56 112.47 M 70.23 112.47 M 76.15 114.96 L 76.31 114.14 Q 77.16 114.46 77.81 114.46 Q 78.71 114.46 79.37 113.69 Q 80.02 112.93 80.3 111.57 Q 79.38 112.47 78.45 112.47 Q 77.54 112.47 77.04 111.8 Q 76.54 111.13 76.73 110.16 Q 76.95 109.05 77.77 108.32 Q 78.6 107.59 79.62 107.59 Q 80.8 107.59 81.29 108.54 Q 81.78 109.48 81.45 111.12 Q 81.08 112.99 80.03 114.08 Q 78.98 115.18 77.57 115.18 Q 77 115.18 76.15 114.96 M 76.15 114.96 M 77.73 109.97 Q 77.56 110.81 77.84 111.29 Q 78.12 111.78 78.76 111.78 Q 79.38 111.78 79.89 111.36 Q 80.41 110.95 80.52 110.36 Q 80.71 109.44 80.4 108.87 Q 80.1 108.31 79.42 108.31 Q 78.79 108.31 78.34 108.76 Q 77.88 109.2 77.73 109.97 M 77.73 109.97 M 83.47 111.25 Q 84.33 110.36 85.38 110.36 Q 86.33 110.36 86.8 110.99 Q 87.28 111.62 87.09 112.6 Q 86.86 113.73 86.04 114.45 Q 85.22 115.18 84.18 115.18 Q 82.98 115.18 82.5 114.22 Q 82.02 113.26 82.36 111.55 Q 82.74 109.67 83.72 108.63 Q 84.7 107.59 86.11 107.59 Q 86.75 107.59 87.66 107.86 L 87.49 108.7 Q 86.55 108.31 85.9 108.31 Q 84.06 108.31 83.47 111.25 M 83.47 111.25 M 86.08 112.81 Q 86.24 111.99 85.97 111.52 Q 85.69 111.05 85.04 111.05 Q 84.43 111.05 83.9 111.46 Q 83.38 111.88 83.27 112.45 Q 83.09 113.36 83.39 113.91 Q 83.7 114.46 84.39 114.46 Q 85.01 114.46 85.47 114.01 Q 85.93 113.56 86.08 112.81 M 86.08 112.81"/></g><rect x="0" y="117" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 128 L 2.38 120.77 L 6.42 120.77 L 6.26 121.54 L 3.25 121.54 L 2.77 123.96 L 5.29 123.96 L 5.14 124.72 L 2.61 124.72 L 1.96 128 M 0.93 128 M 5.93 128 L 7.38 120.77 L 11.42 120.77 L 11.26 121.54 L 8.25 121.54 L 7.79 123.86 L 10.31 123.86 L 10.16 124.62 L 7.63 124.62 L 7.11 127.23 L 10.33 127.23 L 10.18 128 M 5.93 128 M 10.93 128 L 12.38 120.77 L 14.57 120.77 Q 15.61 120.77 16.07 121.23 Q 16.53 121.69 16.36 122.57 Q 16.07 124.01 14.49 124.62 L 16.22 128 L 14.96 128 L 13.52 124.94 L 12.56 124.94 L 11.95 128 M 10.93 128 M 12.71 124.18 L 13.04 124.18 Q 14.98 124.18 15.28 122.66 Q 15.51 121.54 13.88 121.54 L 13.24 121.54 M 12.71 124.18 M 17.5 128 L 17.65 127.28 L 19.09 127.28 L 20.23 121.57 L 18.72 121.94 L 18.87 121.19 L 21.4 120.59 L 20.06 127.28 L 21.51 127.28 L 21.36 128 M 17.5 128 M 21.66 129.68 L 21.81 128.96 L 26.81 128.96 L 26.66 129.68 M 21.66 129.68 M 32.15 125.24 L 31.54 122.12 L 29.68 125.24 M 32.15 125.24 M 32.68 128 L 32.29 126 L 29.23 126 L 28.04 128 L 27.08 128 L 31.39 120.77 L 32.41 120.77 L 33.79 128 M 32.68 128 M 34.93 128 L 36.38 120.77 L 38.57 120.77 Q 39.61 120.77 40.07 121.23 Q 40.53 121.69 40.36 122.57 Q 40.07 124.01 38.49 124.62 L 40.22 128 L 38.96 128 L 37.52 124.94 L 36.56 124.94 L 35.95 128 M 34.93 128 M 36.71 124.18 L 37.04 124.18 Q 38.98 124.18 39.28 122.66 Q 39.51 121.54 37.88 121.54 L 37.24 121.54 M 36.71 124.18 M 45.15 125.24 L 44.54 122.12 L 42.68 125.24 M 45.15 125.24 M 45.68 128 L 45.29 126 L 42.23 126 L 41.04 128 L 40.08 128 L 44.39 120.77 L 45.41 120.77 L 46.79 128 M 45.68 128 M 49.65 128 L 50.94 121.54 L 48.38 121.54 L 48.53 120.77 L 54.69 120.77 L 54.53 121.54 L 51.97 121.54 L 50.68 128 M 49.65 128 M 53.93 128 L 55.38 120.77 L 56.4 120.77 L 55.79 123.82 L 59.23 123.82 L 59.84 120.77 L 60.87 120.77 L 59.42 128 L 58.4 128 L 59.08 124.59 L 55.64 124.59 L 54.96 128 M 53.93 128 M 60.65 129.45 L 64.99 120.77 L 65.75 120.77 L 61.41 129.45 M 60.65 129.45 M 66.5 128 L 66.65 127.28 L 68.09 127.28 L 69.23 121.57 L 67.72 121.94 L 67.87 121.19 L 70.4 120.59 L 69.06 127.28 L 70.51 127.28 L 70.36 128 M 66.5 128 M 72.23 125.47 L 72.37 124.75 L 76.71 124.75 L 76.56 125.47 M 72.23 125.47 M 78.5 128 L 78.65 127.28 L 80.09 127.28 L 81.23 121.57 L 79.72 121.94 L 79.87 121.19 L 82.4 120.59 L 81.06 127.28 L 82.51 127.28 L 82.36 128 M 78.5 128 M 86.76 128 L 87.17 125.95 L 83.92 125.95 L 84.07 125.23 L 88.21 120.77 L 89.11 120.77 L 88.23 125.17 L 89.2 125.17 L 89.04 125.95 L 88.08 125.95 L 87.67 128 M 86.76 128 M 85.02 125.17 L 87.39 125.17 L 88.04 121.96 M 85.02 125.17 M 92.09 124.06 Q 91.17 123.33 91.35 122.43 Q 91.52 121.61 92.22 121.1 Q 92.92 120.59 93.89 120.59 Q 94.78 120.59 95.25 121.02 Q 95.72 121.46 95.58 122.15 Q 95.37 123.2 93.85 124.06 Q 95.33 124.87 95.07 126.13 Q 94.89 127.04 94.09 127.61 Q 93.29 128.18 92.21 128.18 Q 91.14 128.18 90.59 127.64 Q 90.04 127.1 90.22 126.22 Q 90.48 124.92 92.09 124.06 M 92.09 124.06 M 93.37 123.76 Q 94.52 123.1 94.68 122.28 Q 94.77 121.85 94.48 121.58 Q 94.2 121.32 93.65 121.32 Q 93.12 121.32 92.73 121.58 Q 92.35 121.84 92.26 122.25 Q 92.18 122.66 92.42 122.98 Q 92.66 123.3 93.37 123.76 M 93.37 123.76 M 92.53 124.46 Q 91.86 124.9 91.59 125.24 Q 91.31 125.57 91.21 126.07 Q 91.09 126.69 91.41 127.07 Q 91.74 127.46 92.39 127.46 Q 93.02 127.46 93.48 127.13 Q 93.95 126.8 94.05 126.28 Q 94.13 125.86 93.95 125.57 Q 93.76 125.28 93.13 124.86 M 92.53 124.46"/></g><rect x="0" y="130" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 141 L 2.38 133.77 L 6.42 133.77 L 6.26 134.54 L 3.25 134.54 L 2.77 136.96 L 5.29 136.96 L 5.14 137.72 L 2.61 137.72 L 1.96 141 M 0.93 141 M 5.93 141 L 7.38 133.77 L 11.42 133.77 L 11.26 134.54 L 8.25 134.54 L 7.79 136.86 L 10.31 136.86 L 10.16 137.62 L 7.63 137.62 L 7.11 140.23 L 10.33 140.23 L 10.18 141 M 5.93 141 M 10.93 141 L 12.38 133.77 L 14.57 133.77 Q 15.61 133.77 16.07 134.23 Q 16.53 134.69 16.36 135.57 Q 16.07 137.01 14.49 137.62 L 16.22 141 L 14.96 141 L 13.52 137.94 L 12.56 137.94 L 11.95 141 M 10.93 141 M 12.71 137.18 L 13.04 137.18 Q 14.98 137.18 15.28 135.66 Q 15.51 134.54 13.88 134.54 L 13.24 134.54 M 12.71 137.18 M 15.66 142.68 L 15.81 141.96 L 20.81 141.96 L 20.66 142.68 M 15.66 142.68 M 21.93 141 L 23.38 133.77 L 25.25 133.77 Q 26.34 133.77 26.83 134.18 Q 27.33 134.59 27.18 135.37 Q 26.91 136.68 25.32 137.24 Q 26.98 137.78 26.7 139.19 Q 26.52 140.07 25.84 140.54 Q 25.17 141 24.06 141 M 21.93 141 M 23.1 140.23 L 23.31 140.23 Q 24.44 140.23 24.8 140.09 Q 25.49 139.82 25.63 139.1 Q 25.76 138.45 25.27 138.02 Q 24.78 137.6 23.92 137.6 L 23.63 137.6 M 23.1 140.23 M 23.76 136.95 L 24.09 136.95 Q 24.91 136.95 25.43 136.6 Q 25.95 136.24 26.08 135.6 Q 26.29 134.54 24.64 134.54 L 24.24 134.54 M 23.76 136.95 M 27.93 141 L 29.38 133.77 L 31.57 133.77 Q 32.61 133.77 33.07 134.23 Q 33.53 134.69 33.36 135.57 Q 33.07 137.01 31.49 137.62 L 33.22 141 L 31.96 141 L 30.52 137.94 L 29.56 137.94 L 28.95 141 M 27.93 141 M 29.71 137.18 L 30.04 137.18 Q 31.98 137.18 32.28 135.66 Q 32.51 134.54 30.88 134.54 L 30.24 134.54 M 29.71 137.18 M 38.15 138.24 L 37.54 135.12 L 35.68 138.24 M 38.15 138.24 M 38.68 141 L 38.29 139 L 35.23 139 L 34.04 141 L 33.08 141 L 37.39 133.77 L 38.41 133.77 L 39.79 141 M 38.68 141 M 40.93 141 L 42.38 133.77 L 43.38 133.77 L 45.91 139.35 L 47.02 133.77 L 47.9 133.77 L 46.46 141 L 45.45 141 L 42.93 135.42 L 41.81 141 M 40.93 141 M 52.15 138.24 L 51.54 135.12 L 49.68 138.24 M 52.15 138.24 M 52.68 141 L 52.29 139 L 49.23 139 L 48.04 141 L 47.08 141 L 51.39 133.77 L 52.41 133.77 L 53.79 141 M 52.68 141 M 54.65 142.45 L 58.99 133.77 L 59.75 133.77 L 55.41 142.45 M 54.65 142.45 M 60.5 141 L 60.65 140.28 L 62.09 140.28 L 63.23 134.57 L 61.72 134.94 L 61.87 134.19 L 64.4 133.59 L 63.06 140.28 L 64.51 140.28 L 64.36 141 M 60.5 141 M 66.23 138.47 L 66.37 137.75 L 70.71 137.75 L 70.56 138.47 M 66.23 138.47 M 72.15 140.96 L 72.31 140.14 Q 73.16 140.46 73.81 140.46 Q 74.71 140.46 75.37 139.69 Q 76.02 138.93 76.3 137.57 Q 75.38 138.47 74.45 138.47 Q 73.54 138.47 73.04 137.8 Q 72.54 137.13 72.73 136.16 Q 72.95 135.05 73.77 134.32 Q 74.6 133.59 75.62 133.59 Q 76.8 133.59 77.29 134.54 Q 77.78 135.48 77.45 137.12 Q 77.08 138.99 76.03 140.08 Q 74.98 141.18 73.57 141.18 Q 73 141.18 72.15 140.96 M 72.15 140.96 M 73.73 135.97 Q 73.56 136.81 73.84 137.29 Q 74.12 137.78 74.76 137.78 Q 75.38 137.78 75.89 137.36 Q 76.41 136.95 76.52 136.36 Q 76.71 135.44 76.4 134.87 Q 76.1 134.31 75.42 134.31 Q 74.79 134.31 74.34 134.76 Q 73.88 135.2 73.73 135.97 M 73.73 135.97 M 79.47 137.25 Q 80.33 136.36 81.38 136.36 Q 82.33 136.36 82.8 136.99 Q 83.28 137.62 83.09 138.6 Q 82.86 139.73 82.04 140.45 Q 81.22 141.18 80.18 141.18 Q 78.98 141.18 78.5 140.22 Q 78.02 139.26 78.36 137.55 Q 78.74 135.67 79.72 134.63 Q 80.7 133.59 82.11 133.59 Q 82.75 133.59 83.66 133.86 L 83.49 134.7 Q 82.55 134.31 81.9 134.31 Q 80.06 134.31 79.47 137.25 M 79.47 137.25 M 82.08 138.81 Q 82.24 137.99 81.97 137.52 Q 81.69 137.05 81.04 137.05 Q 80.43 137.05 79.9 137.46 Q 79.38 137.88 79.27 138.45 Q 79.09 139.36 79.39 139.91 Q 79.7 140.46 80.39 140.46 Q 81.01 140.46 81.47 140.01 Q 81.93 139.56 82.08 138.81 M 82.08 138.81"/></g><rect x="0" y="143" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 154 L 2.38 146.77 L 6.42 146.77 L 6.26 147.54 L 3.25 147.54 L 2.77 149.96 L 5.29 149.96 L 5.14 150.72 L 2.61 150.72 L 1.96 154 M 0.93 154 M 5.93 154 L 7.38 146.77 L 11.42 146.77 L 11.26 147.54 L 8.25 147.54 L 7.79 149.86 L 10.31 149.86 L 10.16 150.62 L 7.63 150.62 L 7.11 153.23 L 10.33 153.23 L 10.18 154 M 5.93 154 M 10.93 154 L 12.38 146.77 L 14.57 146.77 Q 15.61 146.77 16.07 147.23 Q 16.53 147.69 16.36 148.57 Q 16.07 150.01 14.49 150.62 L 16.22 154 L 14.96 154 L 13.52 150.94 L 12.56 150.94 L 11.95 154 M 10.93 154 M 12.71 150.18 L 13.04 150.18 Q 14.98 150.18 15.28 148.66 Q 15.51 147.54 13.88 147.54 L 13.24 147.54 M 12.71 150.18 M 16.83 154 L 17 153.16 Q 17.62 152.17 19.13 151.02 L 19.78 150.52 Q 21.03 149.56 21.22 148.61 Q 21.34 148.01 21.05 147.66 Q 20.75 147.32 20.12 147.32 Q 19.37 147.32 18.23 147.9 L 18.4 147.05 Q 19.45 146.59 20.4 146.59 Q 21.42 146.59 21.92 147.14 Q 22.43 147.69 22.25 148.59 Q 22.12 149.24 21.71 149.74 Q 21.3 150.25 20.31 150.96 L 19.87 151.28 Q 18.52 152.26 18.16 153.16 L 21.3 153.16 L 21.13 154 M 16.83 154 M 21.66 155.68 L 21.81 154.96 L 26.81 154.96 L 26.66 155.68 M 21.66 155.68 M 32.15 151.24 L 31.54 148.12 L 29.68 151.24 M 32.15 151.24 M 32.68 154 L 32.29 152 L 29.23 152 L 28.04 154 L 27.08 154 L 31.39 146.77 L 32.41 146.77 L 33.79 154 M 32.68 154 M 34.93 154 L 36.38 146.77 L 38.57 146.77 Q 39.61 146.77 40.07 147.23 Q 40.53 147.69 40.36 148.57 Q 40.07 150.01 38.49 150.62 L 40.22 154 L 38.96 154 L 37.52 150.94 L 36.56 150.94 L 35.95 154 M 34.93 154 M 36.71 150.18 L 37.04 150.18 Q 38.98 150.18 39.28 148.66 Q 39.51 147.54 37.88 147.54 L 37.24 147.54 M 36.71 150.18 M 45.15 151.24 L 44.54 148.12 L 42.68 151.24 M 45.15 151.24 M 45.68 154 L 45.29 152 L 42.23 152 L 41.04 154 L 40.08 154 L 44.39 146.77 L 45.41 146.77 L 46.79 154 M 45.68 154 M 49.65 154 L 50.94 147.54 L 48.38 147.54 L 48.53 146.77 L 54.69 146.77 L 54.53 147.54 L 51.97 147.54 L 50.68 154 M 49.65 154 M 53.93 154 L 55.38 146.77 L 56.4 146.77 L 55.79 149.82 L 59.23 149.82 L 59.84 146.77 L 60.87 146.77 L 59.42 154 L 58.4 154 L 59.08 150.59 L 55.64 150.59 L 54.96 154 M 53.93 154 M 60.65 155.45 L 64.99 146.77 L 65.75 146.77 L 61.41 155.45 M 60.65 155.45 M 66.5 154 L 66.65 153.28 L 68.09 153.28 L 69.23 147.57 L 67.72 147.94 L 67.87 147.19 L 70.4 146.59 L 69.06 153.28 L 70.51 153.28 L 70.36 154 M 66.5 154 M 72.23 151.47 L 72.37 150.75 L 76.71 150.75 L 76.56 151.47 M 72.23 151.47 M 78.5 154 L 78.65 153.28 L 80.09 153.28 L 81.23 147.57 L 79.72 147.94 L 79.87 147.19 L 82.4 146.59 L 81.06 153.28 L 82.51 153.28 L 82.36 154 M 78.5 154 M 86.76 154 L 87.17 151.95 L 83.92 151.95 L 84.07 151.23 L 88.21 146.77 L 89.11 146.77 L 88.23 151.17 L 89.2 151.17 L 89.04 151.95 L 88.08 151.95 L 87.67 154 M 86.76 154 M 85.02 151.17 L 87.39 151.17 L 88.04 147.96 M 85.02 151.17 M 92.09 150.06 Q 91.17 149.33 91.35 148.43 Q 91.52 147.61 92.22 147.1 Q 92.92 146.59 93.89 146.59 Q 94.78 146.59 95.25 147.02 Q 95.72 147.46 95.58 148.15 Q 95.37 149.2 93.85 150.06 Q 95.33 150.87 95.07 152.13 Q 94.89 153.04 94.09 153.61 Q 93.29 154.18 92.21 154.18 Q 91.14 154.18 90.59 153.64 Q 90.04 153.1 90.22 152.22 Q 90.48 150.92 92.09 150.06 M 92.09 150.06 M 93.37 149.76 Q 94.52 149.1 94.68 148.28 Q 94.77 147.85 94.48 147.58 Q 94.2 147.32 93.65 147.32 Q 93.12 147.32 92.73 147.58 Q 92.35 147.84 92.26 148.25 Q 92.18 148.66 92.42 148.98 Q 92.66 149.3 93.37 149.76 M 93.37 149.76 M 92.53 150.46 Q 91.86 150.9 91.59 151.24 Q 91.31 151.57 91.21 152.07 Q 91.09 152.69 91.41 153.07 Q 91.74 153.46 92.39 153.46 Q 93.02 153.46 93.48 153.13 Q 93.95 152.8 94.05 152.28 Q 94.13 151.86 93.95 151.57 Q 93.76 151.28 93.13 150.86 M 92.53 150.46"/></g><rect x="0" y="156" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 7.06 168.45 Q 5.47 167.89 4.47 167.13 Q 4 167.18 3.75 167.18 Q 2.29 167.18 1.59 166.13 Q 0.89 165.07 1.23 163.39 Q 1.58 161.66 2.7 160.63 Q 3.83 159.59 5.37 159.59 Q 6.91 159.59 7.62 160.63 Q 8.33 161.66 7.99 163.4 Q 7.49 165.89 5.45 166.85 Q 6.58 167.4 7.87 167.63 M 7.06 168.45 M 3.97 166.41 Q 5.08 166.41 5.85 165.62 Q 6.61 164.82 6.9 163.37 Q 7.19 161.96 6.74 161.16 Q 6.29 160.36 5.21 160.36 Q 4.14 160.36 3.37 161.16 Q 2.61 161.96 2.32 163.38 Q 2.04 164.79 2.48 165.6 Q 2.92 166.41 3.97 166.41 M 3.97 166.41 M 9.15 166.96 L 9.31 166.14 Q 10.16 166.46 10.81 166.46 Q 11.71 166.46 12.37 165.69 Q 13.02 164.93 13.3 163.57 Q 12.38 164.47 11.45 164.47 Q 10.54 164.47 10.04 163.8 Q 9.54 163.13 9.73 162.16 Q 9.95 161.05 10.77 160.32 Q 11.6 159.59 12.62 159.59 Q 13.8 159.59 14.29 160.54 Q 14.78 161.48 14.45 163.12 Q 14.08 164.99 13.03 166.08 Q 11.98 167.18 10.57 167.18 Q 10 167.18 9.15 166.96 M 9.15 166.96 M 10.73 161.97 Q 10.56 162.81 10.84 163.29 Q 11.12 163.78 11.76 163.78 Q 12.38 163.78 12.89 163.36 Q 13.41 162.95 13.52 162.36 Q 13.71 161.44 13.4 160.87 Q 13.1 160.31 12.42 160.31 Q 11.79 160.31 11.34 160.76 Q 10.88 161.2 10.73 161.97 M 10.73 161.97 M 15.03 166.95 L 15.21 166.05 Q 16.16 166.46 16.75 166.46 Q 17.44 166.46 17.96 166.06 Q 18.47 165.65 18.6 165.01 Q 18.9 163.49 16.77 163.49 L 16.39 163.49 L 16.52 162.84 L 16.85 162.83 Q 18.86 162.83 19.14 161.42 Q 19.36 160.32 18.04 160.32 Q 17.32 160.32 16.37 160.72 L 16.54 159.88 Q 17.45 159.59 18.25 159.59 Q 20.47 159.59 20.14 161.27 Q 19.88 162.54 18.26 163.08 Q 19.93 163.49 19.63 165 Q 19.43 166.02 18.64 166.6 Q 17.85 167.18 16.67 167.18 Q 16 167.18 15.03 166.95 M 15.03 166.95 M 20.46 167 L 20.63 166.18 L 25.64 160.54 L 22 160.54 L 22.15 159.77 L 27.02 159.77 L 26.87 160.54 L 21.86 166.18 L 25.74 166.18 L 25.58 167 M 20.46 167 M 28.47 163.25 Q 29.33 162.36 30.38 162.36 Q 31.33 162.36 31.8 162.99 Q 32.28 163.62 32.09 164.6 Q 31.86 165.73 31.04 166.45 Q 30.22 167.18 29.18 167.18 Q 27.98 167.18 27.5 166.22 Q 27.02 165.26 27.36 163.55 Q 27.74 161.67 28.72 160.63 Q 29.7 159.59 31.11 159.59 Q 31.75 159.59 32.66 159.86 L 32.49 160.7 Q 31.55 160.31 30.9 160.31 Q 29.06 160.31 28.47 163.25 M 28.47 163.25 M 31.08 164.81 Q 31.24 163.99 30.97 163.52 Q 30.69 163.05 30.04 163.05 Q 29.43 163.05 28.9 163.46 Q 28.38 163.88 28.27 164.45 Q 28.09 165.36 28.39 165.91 Q 28.7 166.46 29.39 166.46 Q 30.01 166.46 30.47 166.01 Q 30.93 165.56 31.08 164.81 M 31.08 164.81 M 35.1 167.18 Q 33.98 167.18 33.5 166.13 Q 33.02 165.08 33.36 163.38 Q 33.7 161.67 34.6 160.63 Q 35.51 159.59 36.65 159.59 Q 37.78 159.59 38.27 160.63 Q 38.76 161.67 38.42 163.37 Q 38.07 165.11 37.17 166.14 Q 36.27 167.18 35.1 167.18 M 35.1 167.18 M 35.25 166.46 Q 36.78 166.46 37.4 163.35 Q 38.01 160.32 36.5 160.32 Q 35 160.32 34.38 163.38 Q 33.77 166.46 35.25 166.46 M 35.25 166.46 M 37.66 168.68 L 37.81 167.96 L 42.81 167.96 L 42.66 168.68 M 37.66 168.68 M 48.15 164.24 L 47.54 161.12 L 45.68 164.24 M 48.15 164.24 M 48.68 167 L 48.29 165 L 45.23 165 L 44.04 167 L 43.08 167 L 47.39 159.77 L 48.41 159.77 L 49.79 167 M 48.68 167 M 50.93 167 L 52.38 159.77 L 54.57 159.77 Q 55.61 159.77 56.07 160.23 Q 56.53 160.69 56.36 161.57 Q 56.07 163.01 54.49 163.62 L 56.22 167 L 54.96 167 L 53.52 163.94 L 52.56 163.94 L 51.95 167 M 50.93 167 M 52.71 163.18 L 53.04 163.18 Q 54.98 163.18 55.28 161.66 Q 55.51 160.54 53.88 160.54 L 53.24 160.54 M 52.71 163.18 M 61.15 164.24 L 60.54 161.12 L 58.68 164.24 M 61.15 164.24 M 61.68 167 L 61.29 165 L 58.23 165 L 57.04 167 L 56.08 167 L 60.39 159.77 L 61.41 159.77 L 62.79 167 M 61.68 167 M 65.65 167 L 66.94 160.54 L 64.38 160.54 L 64.53 159.77 L 70.69 159.77 L 70.53 160.54 L 67.97 160.54 L 66.68 167 M 65.65 167 M 69.93 167 L 71.38 159.77 L 72.4 159.77 L 71.79 162.82 L 75.23 162.82 L 75.84 159.77 L 76.87 159.77 L 75.42 167 L 74.4 167 L 75.08 163.59 L 71.64 163.59 L 70.96 167 M 69.93 167 M 76.65 168.45 L 80.99 159.77 L 81.75 159.77 L 77.41 168.45 M 76.65 168.45 M 82.5 167 L 82.65 166.28 L 84.09 166.28 L 85.23 160.57 L 83.72 160.94 L 83.87 160.19 L 86.4 159.59 L 85.06 166.28 L 86.51 166.28 L 86.36 167 M 82.5 167 M 88.23 164.47 L 88.37 163.75 L 92.71 163.75 L 92.56 164.47 M 88.23 164.47 M 94.5 167 L 94.65 166.28 L 96.09 166.28 L 97.23 160.57 L 95.72 160.94 L 95.87 160.19 L 98.4 159.59 L 97.06 166.28 L 98.51 166.28 L 98.36 167 M 94.5 167 M 100.5 167 L 100.65 166.28 L 102.09 166.28 L 103.23 160.57 L 101.72 160.94 L 101.87 160.19 L 104.4 159.59 L 103.06 166.28 L 104.51 166.28 L 104.36 167 M 100.5 167 M 108.09 163.06 Q 107.17 162.33 107.35 161.43 Q 107.52 160.61 108.22 160.1 Q 108.92 159.59 109.89 159.59 Q 110.78 159.59 111.25 160.02 Q 111.72 160.46 111.58 161.15 Q 111.37 162.2 109.85 163.06 Q 111.33 163.87 111.07 165.13 Q 110.89 166.04 110.09 166.61 Q 109.29 167.18 108.21 167.18 Q 107.14 167.18 106.59 166.64 Q 106.04 166.1 106.22 165.22 Q 106.48 163.92 108.09 163.06 M 108.09 163.06 M 109.37 162.76 Q 110.52 162.1 110.68 161.28 Q 110.77 160.85 110.48 160.58 Q 110.2 160.32 109.65 160.32 Q 109.12 160.32 108.73 160.58 Q 108.35 160.84 108.26 161.25 Q 108.18 161.66 108.42 161.98 Q 108.66 162.3 109.37 162.76 M 109.37 162.76 M 108.53 163.46 Q 107.86 163.9 107.59 164.24 Q 107.31 164.57 107.21 165.07 Q 107.09 165.69 107.41 166.07 Q 107.74 166.46 108.39 166.46 Q 109.02 166.46 109.48 166.13 Q 109.95 165.8 110.05 165.28 Q 110.13 164.86 109.95 164.57 Q 109.76 164.28 109.13 163.86 M 108.53 163.46"/></g><rect x="0" y="169" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 180 L 2.38 172.77 L 6.42 172.77 L 6.26 173.54 L 3.25 173.54 L 2.77 175.96 L 5.29 175.96 L 5.14 176.72 L 2.61 176.72 L 1.96 180 M 0.93 180 M 5.93 180 L 7.38 172.77 L 11.42 172.77 L 11.26 173.54 L 8.25 173.54 L 7.79 175.86 L 10.31 175.86 L 10.16 176.62 L 7.63 176.62 L 7.11 179.23 L 10.33 179.23 L 10.18 180 M 5.93 180 M 10.93 180 L 12.38 172.77 L 14.57 172.77 Q 15.61 172.77 16.07 173.23 Q 16.53 173.69 16.36 174.57 Q 16.07 176.01 14.49 176.62 L 16.22 180 L 14.96 180 L 13.52 176.94 L 12.56 176.94 L 11.95 180 M 10.93 180 M 12.71 176.18 L 13.04 176.18 Q 14.98 176.18 15.28 174.66 Q 15.51 173.54 13.88 173.54 L 13.24 173.54 M 12.71 176.18 M 17.5 180 L 17.65 179.28 L 19.09 179.28 L 20.23 173.57 L 18.72 173.94 L 18.87 173.19 L 21.4 172.59 L 20.06 179.28 L 21.51 179.28 L 21.36 180 M 17.5 180 M 21.66 181.68 L 21.81 180.96 L 26.81 180.96 L 26.66 181.68 M 21.66 181.68 M 27.93 180 L 29.38 172.77 L 30.8 172.77 L 31.68 178.36 L 34.86 172.77 L 36.13 172.77 L 34.69 180 L 33.73 180 L 34.9 174.12 L 31.83 179.52 L 30.84 179.52 L 29.99 174.11 L 28.81 180 M 27.93 180 M 41.15 177.24 L 40.54 174.12 L 38.68 177.24 M 41.15 177.24 M 41.68 180 L 41.29 178 L 38.23 178 L 37.04 180 L 36.08 180 L 40.39 172.77 L 41.41 172.77 L 42.79 180 M 41.68 180 M 43.93 180 L 45.37 172.77 L 46.4 172.77 L 44.95 180 M 43.93 180 M 46.46 180 L 46.63 179.18 L 51.64 173.54 L 48 173.54 L 48.15 172.77 L 53.02 172.77 L 52.87 173.54 L 47.86 179.18 L 51.74 179.18 L 51.58 180 M 46.46 180 M 52.93 180 L 54.38 172.77 L 58.42 172.77 L 58.26 173.54 L 55.25 173.54 L 54.79 175.86 L 57.31 175.86 L 57.16 176.62 L 54.63 176.62 L 54.11 179.23 L 57.33 179.23 L 57.18 180 M 52.93 180 M 57.65 181.45 L 61.99 172.77 L 62.75 172.77 L 58.41 181.45 M 57.65 181.45 M 63.5 180 L 63.65 179.28 L 65.09 179.28 L 66.23 173.57 L 64.72 173.94 L 64.87 173.19 L 67.4 172.59 L 66.06 179.28 L 67.51 179.28 L 67.36 180 M 63.5 180 M 69.23 177.47 L 69.37 176.75 L 73.71 176.75 L 73.56 177.47 M 69.23 177.47 M 75.5 180 L 75.65 179.28 L 77.09 179.28 L 78.23 173.57 L 76.72 173.94 L 76.87 173.19 L 79.4 172.59 L 78.06 179.28 L 79.51 179.28 L 79.36 180 M 75.5 180 M 81.21 180.03 L 81.38 179.17 Q 82.04 179.46 82.69 179.46 Q 83.4 179.46 83.9 179.04 Q 84.39 178.62 84.54 177.88 Q 84.86 176.25 82.62 176.25 Q 82.37 176.25 82.08 176.29 L 82.78 172.77 L 86.44 172.77 L 86.27 173.61 L 83.46 173.61 L 83.08 175.52 Q 84.47 175.52 85.12 176.16 Q 85.78 176.8 85.55 177.93 Q 85.34 178.98 84.51 179.58 Q 83.68 180.18 82.42 180.18 Q 81.87 180.18 81.21 180.03 M 81.21 180.03 M 89.1 180.18 Q 87.98 180.18 87.5 179.13 Q 87.02 178.08 87.36 176.38 Q 87.7 174.67 88.6 173.63 Q 89.51 172.59 90.65 172.59 Q 91.78 172.59 92.27 173.63 Q 92.76 174.67 92.42 176.37 Q 92.07 178.11 91.17 179.14 Q 90.27 180.18 89.1 180.18 M 89.1 180.18 M 89.25 179.46 Q 90.78 179.46 91.4 176.35 Q 92.01 173.32 90.5 173.32 Q 89 173.32 88.38 176.38 Q 87.77 179.46 89.25 179.46 M 89.25 179.46"/></g><rect x="0" y="182" width="141" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 3.81 193.18 Q 2.3 193.18 1.6 192.14 Q 0.89 191.1 1.23 189.38 Q 1.58 187.66 2.7 186.63 Q 3.83 185.59 5.37 185.59 Q 6.9 185.59 7.62 186.62 Q 8.33 187.65 7.99 189.37 Q 7.64 191.12 6.51 192.15 Q 5.38 193.18 3.81 193.18 M 3.81 193.18 M 3.97 192.41 Q 5.08 192.41 5.85 191.62 Q 6.61 190.82 6.9 189.36 Q 7.19 187.95 6.74 187.16 Q 6.29 186.36 5.21 186.36 Q 4.14 186.36 3.37 187.16 Q 2.61 187.96 2.32 189.38 Q 2.04 190.79 2.48 191.6 Q 2.92 192.41 3.97 192.41 M 3.97 192.41 M 11.09 189.06 Q 10.17 188.33 10.35 187.43 Q 10.52 186.61 11.22 186.1 Q 11.92 185.59 12.89 185.59 Q 13.78 185.59 14.25 186.02 Q 14.72 186.46 14.58 187.15 Q 14.37 188.2 12.85 189.06 Q 14.33 189.87 14.07 191.13 Q 13.89 192.04 13.09 192.61 Q 12.29 193.18 11.21 193.18 Q 10.14 193.18 9.59 192.64 Q 9.04 192.1 9.22 191.22 Q 9.48 189.92 11.09 189.06 M 11.09 189.06 M 12.37 188.76 Q 13.52 188.1 13.68 187.28 Q 13.77 186.85 13.48 186.58 Q 13.2 186.32 12.65 186.32 Q 12.12 186.32 11.73 186.58 Q 11.35 186.84 11.26 187.25 Q 11.18 187.66 11.42 187.98 Q 11.66 188.3 12.37 188.76 M 12.37 188.76 M 11.53 189.46 Q 10.86 189.9 10.59 190.24 Q 10.31 190.57 10.21 191.07 Q 10.09 191.69 10.41 192.07 Q 10.74 192.46 11.39 192.46 Q 12.02 192.46 12.48 192.13 Q 12.95 191.8 13.05 191.28 Q 13.13 190.86 12.95 190.57 Q 12.76 190.28 12.13 189.86 M 11.53 189.46 M 17.1 193.18 Q 15.98 193.18 15.5 192.13 Q 15.02 191.08 15.36 189.38 Q 15.7 187.67 16.6 186.63 Q 17.51 185.59 18.65 185.59 Q 19.78 185.59 20.27 186.63 Q 20.76 187.67 20.42 189.37 Q 20.07 191.11 19.17 192.14 Q 18.27 193.18 17.1 193.18 M 17.1 193.18 M 17.25 192.46 Q 18.78 192.46 19.4 189.35 Q 20.01 186.32 18.5 186.32 Q 17 186.32 16.38 189.38 Q 15.77 192.46 17.25 192.46 M 17.25 192.46 M 23.76 193 L 24.17 190.95 L 20.92 190.95 L 21.07 190.23 L 25.21 185.77 L 26.11 185.77 L 25.23 190.17 L 26.2 190.17 L 26.04 190.95 L 25.08 190.95 L 24.67 193 M 23.76 193 M 22.02 190.17 L 24.39 190.17 L 25.04 186.96 M 22.02 190.17 M 26.83 193 L 27 192.16 Q 27.62 191.17 29.13 190.02 L 29.78 189.52 Q 31.03 188.56 31.22 187.61 Q 31.34 187.01 31.05 186.66 Q 30.75 186.32 30.12 186.32 Q 29.37 186.32 28.23 186.9 L 28.4 186.05 Q 29.45 185.59 30.4 185.59 Q 31.42 185.59 31.92 186.14 Q 32.43 186.69 32.25 187.59 Q 32.12 188.24 31.71 188.74 Q 31.3 189.25 30.31 189.96 L 29.87 190.28 Q 28.52 191.26 28.16 192.16 L 31.3 192.16 L 31.13 193 M 26.83 193 M 33.15 192.96 L 33.31 192.14 Q 34.16 192.46 34.81 192.46 Q 35.71 192.46 36.37 191.69 Q 37.02 190.93 37.3 189.57 Q 36.38 190.47 35.45 190.47 Q 34.54 190.47 34.04 189.8 Q 33.54 189.13 33.73 188.16 Q 33.95 187.05 34.77 186.32 Q 35.6 185.59 36.62 185.59 Q 37.8 185.59 38.29 186.54 Q 38.78 187.48 38.45 189.12 Q 38.08 190.99 37.03 192.08 Q 35.98 193.18 34.57 193.18 Q 34 193.18 33.15 192.96 M 33.15 192.96 M 34.73 187.97 Q 34.56 188.81 34.84 189.29 Q 35.12 189.78 35.76 189.78 Q 36.38 189.78 36.89 189.36 Q 37.41 188.95 37.52 188.36 Q 37.71 187.44 37.4 186.87 Q 37.1 186.31 36.42 186.31 Q 35.79 186.31 35.34 186.76 Q 34.88 187.2 34.73 187.97 M 34.73 187.97 M 37.66 194.68 L 37.81 193.96 L 42.81 193.96 L 42.66 194.68 M 37.66 194.68 M 43.93 193 L 45.38 185.77 L 46.8 185.77 L 47.68 191.36 L 50.86 185.77 L 52.13 185.77 L 50.69 193 L 49.73 193 L 50.9 187.12 L 47.83 192.52 L 46.84 192.52 L 45.99 187.11 L 44.81 193 M 43.93 193 M 57.15 190.24 L 56.54 187.12 L 54.68 190.24 M 57.15 190.24 M 57.68 193 L 57.29 191 L 54.23 191 L 53.04 193 L 52.08 193 L 56.39 185.77 L 57.41 185.77 L 58.79 193 M 57.68 193 M 59.93 193 L 61.37 185.77 L 62.4 185.77 L 60.95 193 M 59.93 193 M 62.46 193 L 62.63 192.18 L 67.64 186.54 L 64 186.54 L 64.15 185.77 L 69.02 185.77 L 68.87 186.54 L 63.86 192.18 L 67.74 192.18 L 67.58 193 M 62.46 193 M 68.93 193 L 70.38 185.77 L 74.42 185.77 L 74.26 186.54 L 71.25 186.54 L 70.79 188.86 L 73.31 188.86 L 73.16 189.62 L 70.63 189.62 L 70.11 192.23 L 73.33 192.23 L 73.18 193 M 68.93 193 M 73.65 194.45 L 77.99 185.77 L 78.75 185.77 L 74.41 194.45 M 73.65 194.45 M 79.5 193 L 79.65 192.28 L 81.09 192.28 L 82.23 186.57 L 80.72 186.94 L 80.87 186.19 L 83.4 185.59 L 82.06 192.28 L 83.51 192.28 L 83.36 193 M 79.5 193 M 85.23 190.47 L 85.37 189.75 L 89.71 189.75 L 89.56 190.47 M 85.23 190.47 M 91.5 193 L 91.65 192.28 L 93.09 192.28 L 94.23 186.57 L 92.72 186.94 L 92.87 186.19 L 95.4 185.59 L 94.06 192.28 L 95.51 192.28 L 95.36 193 M 91.5 193 M 99.76 193 L 100.17 190.95 L 96.92 190.95 L 97.07 190.23 L 101.21 185.77 L 102.11 185.77 L 101.23 190.17 L 102.2 190.17 L 102.04 190.95 L 101.08 190.95 L 100.67 193 M 99.76 193 M 98.02 190.17 L 100.39 190.17 L 101.04 186.96 M 98.02 190.17 M 105.1 193.18 Q 103.98 193.18 103.5 192.13 Q 103.02 191.08 103.36 189.38 Q 103.7 187.67 104.6 186.63 Q 105.51 185.59 106.65 185.59 Q 107.78 185.59 108.27 186.63 Q 108.76 187.67 108.42 189.37 Q 108.07 191.11 107.17 192.14 Q 106.27 193.18 105.1 193.18 M 105.1 193.18 M 105.25 192.46 Q 106.78 192.46 107.4 189.35 Q 108.01 186.32 106.5 186.32 Q 105 186.32 104.38 189.38 Q 103.77 192.46 105.25 192.46 M 105.25 192.46"/></g><rect x="0" y="0" width="141" height="201" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,-3,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,-3,214)" ><path d="M 44.35 18.18 Q 43.62 18.18 42.49 17.86 L 42.49 16.85 Q 43.71 17.41 44.5 17.41 Q 45.1 17.41 45.47 17.1 Q 45.84 16.78 45.84 16.26 Q 45.84 15.84 45.6 15.54 Q 45.35 15.24 44.71 14.88 L 44.21 14.59 Q 43.28 14.06 42.91 13.59 Q 42.53 13.13 42.53 12.51 Q 42.53 11.67 43.13 11.13 Q 43.74 10.59 44.68 10.59 Q 45.51 10.59 46.44 10.87 L 46.44 11.81 Q 45.3 11.36 44.73 11.36 Q 44.2 11.36 43.86 11.64 Q 43.51 11.93 43.51 12.36 Q 43.51 12.72 43.76 13 Q 44.02 13.27 44.69 13.66 L 45.21 13.95 Q 46.15 14.48 46.52 14.96 Q 46.89 15.43 46.89 16.1 Q 46.89 17.04 46.19 17.61 Q 45.5 18.18 44.35 18.18 M 44.35 18.18 M 51.85 17.83 Q 50.88 18.12 50.19 18.12 Q 49.02 18.12 48.28 17.34 Q 47.54 16.56 47.54 15.32 Q 47.54 14.12 48.19 13.35 Q 48.85 12.58 49.86 12.58 Q 50.82 12.58 51.35 13.26 Q 51.87 13.94 51.87 15.2 L 51.87 15.5 L 48.52 15.5 Q 48.73 17.39 50.37 17.39 Q 50.97 17.39 51.85 17.07 M 51.85 17.83 M 48.57 14.78 L 50.91 14.78 Q 50.91 13.3 49.8 13.3 Q 48.69 13.3 48.57 14.78 M 48.57 14.78 M 56.03 18.12 Q 54.96 18.12 54.25 17.33 Q 53.54 16.53 53.54 15.32 Q 53.54 14.03 54.24 13.3 Q 54.94 12.58 56.2 12.58 Q 56.82 12.58 57.58 12.75 L 57.58 13.56 Q 56.77 13.32 56.26 13.32 Q 55.52 13.32 55.07 13.87 Q 54.63 14.43 54.63 15.35 Q 54.63 16.24 55.08 16.79 Q 55.54 17.35 56.29 17.35 Q 56.95 17.35 57.64 17.01 L 57.64 17.84 Q 56.71 18.12 56.03 18.12 M 56.03 18.12 M 61.04 18.12 Q 59.9 18.12 59.22 17.37 Q 58.54 16.61 58.54 15.35 Q 58.54 14.07 59.22 13.32 Q 59.9 12.58 61.07 12.58 Q 62.24 12.58 62.92 13.32 Q 63.6 14.07 63.6 15.34 Q 63.6 16.64 62.92 17.38 Q 62.23 18.12 61.04 18.12 M 61.04 18.12 M 61.05 17.4 Q 62.58 17.4 62.58 15.34 Q 62.58 13.3 61.07 13.3 Q 59.57 13.3 59.57 15.35 Q 59.57 17.4 61.05 17.4 M 61.05 17.4 M 64.96 18 L 64.96 12.7 L 65.92 12.7 L 65.92 13.69 Q 66.69 12.58 67.79 12.58 Q 68.48 12.58 68.89 13.02 Q 69.3 13.45 69.3 14.19 L 69.3 18 L 68.34 18 L 68.34 14.5 Q 68.34 13.91 68.16 13.66 Q 67.99 13.41 67.59 13.41 Q 66.71 13.41 65.92 14.57 L 65.92 18 M 64.96 18 M 74.37 18 L 74.37 17 Q 73.78 18.12 72.6 18.12 Q 71.64 18.12 71.09 17.42 Q 70.54 16.73 70.54 15.51 Q 70.54 14.19 71.16 13.39 Q 71.79 12.58 72.8 12.58 Q 73.75 12.58 74.37 13.3 L 74.37 10.29 L 75.33 10.29 L 75.33 18 M 74.37 18 M 74.37 13.96 Q 73.62 13.3 72.95 13.3 Q 71.57 13.3 71.57 15.42 Q 71.57 17.28 72.8 17.28 Q 73.6 17.28 74.37 16.4 M 74.37 13.96 M 79.7 17.33 Q 78.83 18.12 78.03 18.12 Q 77.37 18.12 76.94 17.71 Q 76.5 17.3 76.5 16.67 Q 76.5 15.8 77.23 15.33 Q 77.96 14.87 79.33 14.87 L 79.55 14.87 L 79.55 14.23 Q 79.55 13.3 78.61 13.3 Q 77.85 13.3 76.96 13.77 L 76.96 12.98 Q 77.93 12.58 78.78 12.58 Q 79.67 12.58 80.09 12.98 Q 80.52 13.38 80.52 14.23 L 80.52 16.63 Q 80.52 17.45 81.02 17.45 Q 81.09 17.45 81.21 17.43 L 81.28 17.97 Q 80.95 18.12 80.56 18.12 Q 79.88 18.12 79.7 17.33 M 79.7 17.33 M 79.55 16.8 L 79.55 15.43 L 79.23 15.42 Q 78.44 15.42 77.95 15.72 Q 77.46 16.02 77.46 16.51 Q 77.46 16.86 77.71 17.1 Q 77.95 17.34 78.3 17.34 Q 78.91 17.34 79.55 16.8 M 79.55 16.8 M 82.96 18 L 82.96 12.7 L 83.92 12.7 L 83.92 13.69 Q 84.5 12.58 85.58 12.58 Q 85.73 12.58 85.89 12.6 L 85.89 13.5 Q 85.64 13.42 85.45 13.42 Q 84.54 13.42 83.92 14.5 L 83.92 18 M 82.96 18 M 87.27 19.93 L 88.13 18 L 86.08 12.7 L 87.12 12.7 L 88.64 16.69 L 90.26 12.7 L 91.17 12.7 L 88.27 19.93 M 87.27 19.93 M 96.35 18.18 Q 95.62 18.18 94.49 17.86 L 94.49 16.85 Q 95.71 17.41 96.5 17.41 Q 97.1 17.41 97.47 17.1 Q 97.84 16.78 97.84 16.26 Q 97.84 15.84 97.6 15.54 Q 97.35 15.24 96.71 14.88 L 96.21 14.59 Q 95.28 14.06 94.91 13.59 Q 94.53 13.13 94.53 12.51 Q 94.53 11.67 95.13 11.13 Q 95.74 10.59 96.68 10.59 Q 97.51 10.59 98.44 10.87 L 98.44 11.81 Q 97.3 11.36 96.73 11.36 Q 96.2 11.36 95.86 11.64 Q 95.51 11.93 95.51 12.36 Q 95.51 12.72 95.76 13 Q 96.02 13.27 96.69 13.66 L 97.21 13.95 Q 98.15 14.48 98.52 14.96 Q 98.89 15.43 98.89 16.1 Q 98.89 17.04 98.19 17.61 Q 97.5 18.18 96.35 18.18 M 96.35 18.18 M 101.55 18.12 Q 100.82 18.12 100.41 17.7 Q 100 17.28 100 16.54 L 100 13.42 L 99.34 13.42 L 99.34 12.7 L 100 12.7 L 100 11.74 L 100.96 11.64 L 100.96 12.7 L 102.35 12.7 L 102.35 13.42 L 100.96 13.42 L 100.96 16.36 Q 100.96 17.4 101.86 17.4 Q 102.05 17.4 102.33 17.34 L 102.33 18 Q 101.88 18.12 101.55 18.12 M 101.55 18.12 M 103.96 18 L 103.96 12.7 L 104.92 12.7 L 104.92 13.69 Q 105.5 12.58 106.58 12.58 Q 106.73 12.58 106.89 12.6 L 106.89 13.5 Q 106.64 13.42 106.45 13.42 Q 105.54 13.42 104.92 14.5 L 104.92 18 M 103.96 18 M 111.28 18 L 111.28 17 Q 110.51 18.12 109.42 18.12 Q 108.72 18.12 108.31 17.69 Q 107.9 17.25 107.9 16.51 L 107.9 12.7 L 108.87 12.7 L 108.87 16.19 Q 108.87 16.79 109.04 17.04 Q 109.21 17.29 109.62 17.29 Q 110.5 17.29 111.28 16.13 L 111.28 12.7 L 112.24 12.7 L 112.24 18 M 111.28 18 M 116.03 18.12 Q 114.96 18.12 114.25 17.33 Q 113.54 16.53 113.54 15.32 Q 113.54 14.03 114.24 13.3 Q 114.94 12.58 116.2 12.58 Q 116.82 12.58 117.58 12.75 L 117.58 13.56 Q 116.77 13.32 116.26 13.32 Q 115.52 13.32 115.07 13.87 Q 114.63 14.43 114.63 15.35 Q 114.63 16.24 115.08 16.79 Q 115.54 17.35 116.29 17.35 Q 116.95 17.35 117.64 17.01 L 117.64 17.84 Q 116.71 18.12 116.03 18.12 M 116.03 18.12 M 120.55 18.12 Q 119.82 18.12 119.41 17.7 Q 119 17.28 119 16.54 L 119 13.42 L 118.34 13.42 L 118.34 12.7 L 119 12.7 L 119 11.74 L 119.96 11.64 L 119.96 12.7 L 121.35 12.7 L 121.35 13.42 L 119.96 13.42 L 119.96 16.36 Q 119.96 17.4 120.86 17.4 Q 121.05 17.4 121.33 17.34 L 121.33 18 Q 120.88 18.12 120.55 18.12 M 120.55 18.12 M 126.28 18 L 126.28 17 Q 125.51 18.12 124.42 18.12 Q 123.72 18.12 123.31 17.69 Q 122.9 17.25 122.9 16.51 L 122.9 12.7 L 123.87 12.7 L 123.87 16.19 Q 123.87 16.79 124.04 17.04 Q 124.21 17.29 124.62 17.29 Q 125.5 17.29 126.28 16.13 L 126.28 12.7 L 127.24 12.7 L 127.24 18 M 126.28 18 M 128.96 18 L 128.96 12.7 L 129.92 12.7 L 129.92 13.69 Q 130.5 12.58 131.58 12.58 Q 131.73 12.58 131.89 12.6 L 131.89 13.5 Q 131.64 13.42 131.45 13.42 Q 130.54 13.42 129.92 14.5 L 129.92 18 M 128.96 18 M 136.85 17.83 Q 135.88 18.12 135.19 18.12 Q 134.02 18.12 133.28 17.34 Q 132.54 16.56 132.54 15.32 Q 132.54 14.12 133.19 13.35 Q 133.85 12.58 134.86 12.58 Q 135.82 12.58 136.35 13.26 Q 136.87 13.94 136.87 15.2 L 136.87 15.5 L 133.52 15.5 Q 133.73 17.39 135.37 17.39 Q 135.97 17.39 136.85 17.07 M 136.85 17.83 M 133.57 14.78 L 135.91 14.78 Q 135.91 13.3 134.8 13.3 Q 133.69 13.3 133.57 14.78 M 133.57 14.78"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,-3,214)" ><path d="M 34.93 39 L 34.93 31.77 L 35.95 31.77 L 35.95 39 M 34.93 39 M 37.96 39 L 37.96 33.7 L 38.92 33.7 L 38.92 34.69 Q 39.5 33.58 40.58 33.58 Q 40.73 33.58 40.89 33.6 L 40.89 34.5 Q 40.64 34.42 40.45 34.42 Q 39.54 34.42 38.92 35.5 L 38.92 39 M 37.96 39 M 44.04 39.12 Q 42.9 39.12 42.22 38.37 Q 41.54 37.61 41.54 36.35 Q 41.54 35.07 42.22 34.32 Q 42.9 33.58 44.07 33.58 Q 45.24 33.58 45.92 34.32 Q 46.6 35.07 46.6 36.34 Q 46.6 37.64 45.92 38.38 Q 45.23 39.12 44.04 39.12 M 44.04 39.12 M 44.05 38.4 Q 45.58 38.4 45.58 36.34 Q 45.58 34.3 44.07 34.3 Q 42.57 34.3 42.57 36.35 Q 42.57 38.4 44.05 38.4 M 44.05 38.4 M 47.96 39 L 47.96 33.7 L 48.92 33.7 L 48.92 34.69 Q 49.69 33.58 50.79 33.58 Q 51.48 33.58 51.89 34.02 Q 52.3 34.45 52.3 35.19 L 52.3 39 L 51.34 39 L 51.34 35.5 Q 51.34 34.91 51.16 34.66 Q 50.99 34.41 50.59 34.41 Q 49.71 34.41 48.92 35.57 L 48.92 39 M 47.96 39 M 58.35 39.18 Q 57.62 39.18 56.49 38.86 L 56.49 37.85 Q 57.71 38.41 58.5 38.41 Q 59.1 38.41 59.47 38.1 Q 59.84 37.78 59.84 37.26 Q 59.84 36.84 59.6 36.54 Q 59.35 36.24 58.71 35.88 L 58.21 35.59 Q 57.28 35.06 56.91 34.59 Q 56.53 34.13 56.53 33.51 Q 56.53 32.67 57.13 32.13 Q 57.74 31.59 58.68 31.59 Q 59.51 31.59 60.44 31.87 L 60.44 32.81 Q 59.3 32.36 58.73 32.36 Q 58.2 32.36 57.86 32.64 Q 57.51 32.93 57.51 33.36 Q 57.51 33.72 57.76 34 Q 58.02 34.27 58.69 34.66 L 59.21 34.95 Q 60.15 35.48 60.52 35.96 Q 60.89 36.43 60.89 37.1 Q 60.89 38.04 60.19 38.61 Q 59.5 39.18 58.35 39.18 M 58.35 39.18 M 65.28 39 L 65.28 38 Q 64.51 39.12 63.42 39.12 Q 62.72 39.12 62.31 38.69 Q 61.9 38.25 61.9 37.51 L 61.9 33.7 L 62.87 33.7 L 62.87 37.19 Q 62.87 37.79 63.04 38.04 Q 63.21 38.29 63.62 38.29 Q 64.5 38.29 65.28 37.13 L 65.28 33.7 L 66.24 33.7 L 66.24 39 M 65.28 39 M 67.96 39 L 67.96 31.29 L 68.92 31.29 L 68.92 39 M 67.96 39 M 70.96 40.93 L 70.96 33.7 L 71.92 33.7 L 71.92 34.69 Q 72.51 33.58 73.7 33.58 Q 74.65 33.58 75.2 34.28 Q 75.75 34.98 75.75 36.19 Q 75.75 37.51 75.13 38.31 Q 74.51 39.12 73.49 39.12 Q 72.55 39.12 71.92 38.4 L 71.92 40.93 M 70.96 40.93 M 71.92 37.74 Q 72.67 38.4 73.34 38.4 Q 74.73 38.4 74.73 36.29 Q 74.73 34.42 73.5 34.42 Q 72.69 34.42 71.92 35.29 M 71.92 37.74 M 76.96 39 L 76.96 31.29 L 77.92 31.29 L 77.92 34.69 Q 78.69 33.58 79.79 33.58 Q 80.48 33.58 80.89 34.02 Q 81.3 34.45 81.3 35.19 L 81.3 39 L 80.34 39 L 80.34 35.5 Q 80.34 34.91 80.16 34.66 Q 79.99 34.41 79.59 34.41 Q 78.71 34.41 77.92 35.57 L 77.92 39 M 76.96 39 M 86.28 39 L 86.28 38 Q 85.51 39.12 84.42 39.12 Q 83.72 39.12 83.31 38.69 Q 82.9 38.25 82.9 37.51 L 82.9 33.7 L 83.87 33.7 L 83.87 37.19 Q 83.87 37.79 84.04 38.04 Q 84.21 38.29 84.62 38.29 Q 85.5 38.29 86.28 37.13 L 86.28 33.7 L 87.24 33.7 L 87.24 39 M 86.28 39 M 88.96 39 L 88.96 33.7 L 89.92 33.7 L 89.92 34.69 Q 90.5 33.58 91.58 33.58 Q 91.73 33.58 91.89 33.6 L 91.89 34.5 Q 91.64 34.42 91.45 34.42 Q 90.54 34.42 89.92 35.5 L 89.92 39 M 88.96 39 M 99.03 39.18 Q 97.34 39.18 96.43 38.19 Q 95.51 37.2 95.51 35.39 Q 95.51 33.58 96.44 32.59 Q 97.38 31.59 99.08 31.59 Q 100.05 31.59 101.35 31.91 L 101.35 32.87 Q 99.87 32.36 99.06 32.36 Q 97.89 32.36 97.24 33.16 Q 96.6 33.95 96.6 35.4 Q 96.6 36.78 97.29 37.58 Q 97.97 38.38 99.17 38.38 Q 100.19 38.38 101.36 37.75 L 101.36 38.63 Q 100.29 39.18 99.03 39.18 M 99.03 39.18 M 105.04 39.12 Q 103.9 39.12 103.22 38.37 Q 102.54 37.61 102.54 36.35 Q 102.54 35.07 103.22 34.32 Q 103.9 33.58 105.07 33.58 Q 106.24 33.58 106.92 34.32 Q 107.6 35.07 107.6 36.34 Q 107.6 37.64 106.92 38.38 Q 106.23 39.12 105.04 39.12 M 105.04 39.12 M 105.05 38.4 Q 106.58 38.4 106.58 36.34 Q 106.58 34.3 105.07 34.3 Q 103.57 34.3 103.57 36.35 Q 103.57 38.4 105.05 38.4 M 105.05 38.4 M 108.96 39 L 108.96 33.7 L 109.92 33.7 L 109.92 34.69 Q 110.69 33.58 111.79 33.58 Q 112.48 33.58 112.89 34.02 Q 113.3 34.45 113.3 35.19 L 113.3 39 L 112.34 39 L 112.34 35.5 Q 112.34 34.91 112.16 34.66 Q 111.99 34.41 111.59 34.41 Q 110.71 34.41 109.92 35.57 L 109.92 39 M 108.96 39 M 116.55 39.12 Q 115.82 39.12 115.41 38.7 Q 115 38.28 115 37.54 L 115 34.42 L 114.34 34.42 L 114.34 33.7 L 115 33.7 L 115 32.74 L 115.96 32.64 L 115.96 33.7 L 117.35 33.7 L 117.35 34.42 L 115.96 34.42 L 115.96 37.36 Q 115.96 38.4 116.86 38.4 Q 117.05 38.4 117.33 38.34 L 117.33 39 Q 116.88 39.12 116.55 39.12 M 116.55 39.12 M 121.7 38.33 Q 120.83 39.12 120.03 39.12 Q 119.37 39.12 118.94 38.71 Q 118.5 38.3 118.5 37.67 Q 118.5 36.8 119.23 36.33 Q 119.96 35.87 121.33 35.87 L 121.55 35.87 L 121.55 35.23 Q 121.55 34.3 120.61 34.3 Q 119.85 34.3 118.96 34.77 L 118.96 33.98 Q 119.93 33.58 120.78 33.58 Q 121.67 33.58 122.09 33.98 Q 122.52 34.38 122.52 35.23 L 122.52 37.63 Q 122.52 38.45 123.02 38.45 Q 123.09 38.45 123.21 38.43 L 123.28 38.97 Q 122.95 39.12 122.56 39.12 Q 121.88 39.12 121.7 38.33 M 121.7 38.33 M 121.55 37.8 L 121.55 36.43 L 121.23 36.42 Q 120.44 36.42 119.95 36.72 Q 119.46 37.02 119.46 37.51 Q 119.46 37.86 119.71 38.1 Q 119.95 38.34 120.3 38.34 Q 120.91 38.34 121.55 37.8 M 121.55 37.8 M 127.03 39.12 Q 125.96 39.12 125.25 38.33 Q 124.54 37.53 124.54 36.32 Q 124.54 35.03 125.24 34.3 Q 125.94 33.58 127.2 33.58 Q 127.82 33.58 128.58 33.75 L 128.58 34.56 Q 127.77 34.32 127.26 34.32 Q 126.52 34.32 126.07 34.87 Q 125.63 35.43 125.63 36.35 Q 125.63 37.24 126.08 37.79 Q 126.54 38.35 127.29 38.35 Q 127.95 38.35 128.64 38.01 L 128.64 38.84 Q 127.71 39.12 127.03 39.12 M 127.03 39.12 M 131.55 39.12 Q 130.82 39.12 130.41 38.7 Q 130 38.28 130 37.54 L 130 34.42 L 129.34 34.42 L 129.34 33.7 L 130 33.7 L 130 32.74 L 130.96 32.64 L 130.96 33.7 L 132.35 33.7 L 132.35 34.42 L 130.96 34.42 L 130.96 37.36 Q 130.96 38.4 131.86 38.4 Q 132.05 38.4 132.33 38.34 L 132.33 39 Q 131.88 39.12 131.55 39.12 M 131.55 39.12 M 135.37 39.12 Q 134.71 39.12 133.77 38.81 L 133.77 37.93 Q 134.71 38.4 135.41 38.4 Q 135.82 38.4 136.1 38.17 Q 136.37 37.95 136.37 37.61 Q 136.37 37.12 135.6 36.8 L 135.04 36.56 Q 133.8 36.04 133.8 35.07 Q 133.8 34.38 134.29 33.98 Q 134.78 33.58 135.63 33.58 Q 136.08 33.58 136.73 33.7 L 136.93 33.74 L 136.93 34.54 Q 136.12 34.3 135.65 34.3 Q 134.72 34.3 134.72 34.98 Q 134.72 35.41 135.43 35.71 L 135.89 35.9 Q 136.68 36.24 137 36.6 Q 137.33 36.97 137.33 37.53 Q 137.33 38.22 136.78 38.67 Q 136.23 39.12 135.37 39.12 M 135.37 39.12"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,-3,214)" ><path d="M 78.03 72.18 Q 76.34 72.18 75.43 71.19 Q 74.51 70.2 74.51 68.39 Q 74.51 66.58 75.44 65.59 Q 76.38 64.59 78.08 64.59 Q 79.05 64.59 80.35 64.91 L 80.35 65.87 Q 78.87 65.36 78.06 65.36 Q 76.89 65.36 76.24 66.16 Q 75.6 66.95 75.6 68.4 Q 75.6 69.78 76.29 70.58 Q 76.97 71.38 78.17 71.38 Q 79.19 71.38 80.36 70.75 L 80.36 71.63 Q 79.29 72.18 78.03 72.18 M 78.03 72.18 M 84.04 72.12 Q 82.9 72.12 82.22 71.37 Q 81.54 70.61 81.54 69.35 Q 81.54 68.07 82.22 67.32 Q 82.9 66.58 84.07 66.58 Q 85.24 66.58 85.92 67.32 Q 86.6 68.07 86.6 69.34 Q 86.6 70.64 85.92 71.38 Q 85.23 72.12 84.04 72.12 M 84.04 72.12 M 84.05 71.4 Q 85.58 71.4 85.58 69.34 Q 85.58 67.3 84.07 67.3 Q 82.57 67.3 82.57 69.35 Q 82.57 71.4 84.05 71.4 M 84.05 71.4 M 87.96 72 L 87.96 66.7 L 88.92 66.7 L 88.92 67.69 Q 89.69 66.58 90.79 66.58 Q 91.48 66.58 91.89 67.02 Q 92.3 67.45 92.3 68.19 L 92.3 72 L 91.34 72 L 91.34 68.5 Q 91.34 67.91 91.16 67.66 Q 90.99 67.41 90.59 67.41 Q 89.71 67.41 88.92 68.57 L 88.92 72 M 87.96 72 M 95.37 72.12 Q 94.71 72.12 93.77 71.81 L 93.77 70.93 Q 94.71 71.4 95.41 71.4 Q 95.82 71.4 96.1 71.17 Q 96.37 70.95 96.37 70.61 Q 96.37 70.12 95.6 69.8 L 95.04 69.56 Q 93.8 69.04 93.8 68.07 Q 93.8 67.38 94.29 66.98 Q 94.78 66.58 95.63 66.58 Q 96.08 66.58 96.73 66.7 L 96.93 66.74 L 96.93 67.54 Q 96.12 67.3 95.65 67.3 Q 94.72 67.3 94.72 67.98 Q 94.72 68.41 95.43 68.71 L 95.89 68.9 Q 96.68 69.24 97 69.6 Q 97.33 69.97 97.33 70.53 Q 97.33 71.22 96.78 71.67 Q 96.23 72.12 95.37 72.12 M 95.37 72.12 M 102.85 71.83 Q 101.88 72.12 101.19 72.12 Q 100.02 72.12 99.28 71.34 Q 98.54 70.56 98.54 69.32 Q 98.54 68.12 99.19 67.35 Q 99.85 66.58 100.86 66.58 Q 101.82 66.58 102.35 67.26 Q 102.87 67.94 102.87 69.2 L 102.87 69.5 L 99.52 69.5 Q 99.73 71.39 101.37 71.39 Q 101.97 71.39 102.85 71.07 M 102.85 71.83 M 99.57 68.78 L 101.91 68.78 Q 101.91 67.3 100.8 67.3 Q 99.69 67.3 99.57 68.78 M 99.57 68.78 M 104.96 72 L 104.96 66.7 L 105.92 66.7 L 105.92 67.69 Q 106.5 66.58 107.58 66.58 Q 107.73 66.58 107.89 66.6 L 107.89 67.5 Q 107.64 67.42 107.45 67.42 Q 106.54 67.42 105.92 68.5 L 105.92 72 M 104.96 72 M 110.06 72 L 108.09 66.7 L 109.05 66.7 L 110.59 70.82 L 112.22 66.7 L 113.12 66.7 L 111.02 72 M 110.06 72 M 116.7 71.33 Q 115.83 72.12 115.03 72.12 Q 114.37 72.12 113.94 71.71 Q 113.5 71.3 113.5 70.67 Q 113.5 69.8 114.23 69.33 Q 114.96 68.87 116.33 68.87 L 116.55 68.87 L 116.55 68.23 Q 116.55 67.3 115.61 67.3 Q 114.85 67.3 113.96 67.77 L 113.96 66.98 Q 114.93 66.58 115.78 66.58 Q 116.67 66.58 117.09 66.98 Q 117.52 67.38 117.52 68.23 L 117.52 70.63 Q 117.52 71.45 118.02 71.45 Q 118.09 71.45 118.21 71.43 L 118.28 71.97 Q 117.95 72.12 117.56 72.12 Q 116.88 72.12 116.7 71.33 M 116.7 71.33 M 116.55 70.8 L 116.55 69.43 L 116.23 69.42 Q 115.44 69.42 114.95 69.72 Q 114.46 70.02 114.46 70.51 Q 114.46 70.86 114.71 71.1 Q 114.95 71.34 115.3 71.34 Q 115.91 71.34 116.55 70.8 M 116.55 70.8 M 121.55 72.12 Q 120.82 72.12 120.41 71.7 Q 120 71.28 120 70.54 L 120 67.42 L 119.34 67.42 L 119.34 66.7 L 120 66.7 L 120 65.74 L 120.96 65.64 L 120.96 66.7 L 122.35 66.7 L 122.35 67.42 L 120.96 67.42 L 120.96 70.36 Q 120.96 71.4 121.86 71.4 Q 122.05 71.4 122.33 71.34 L 122.33 72 Q 121.88 72.12 121.55 72.12 M 121.55 72.12 M 123.96 72 L 123.96 66.7 L 124.92 66.7 L 124.92 72 M 123.96 72 M 123.96 65.74 L 123.96 64.77 L 124.92 64.77 L 124.92 65.74 M 123.96 65.74 M 129.04 72.12 Q 127.9 72.12 127.22 71.37 Q 126.54 70.61 126.54 69.35 Q 126.54 68.07 127.22 67.32 Q 127.9 66.58 129.07 66.58 Q 130.24 66.58 130.92 67.32 Q 131.6 68.07 131.6 69.34 Q 131.6 70.64 130.92 71.38 Q 130.23 72.12 129.04 72.12 M 129.04 72.12 M 129.05 71.4 Q 130.58 71.4 130.58 69.34 Q 130.58 67.3 129.07 67.3 Q 127.57 67.3 127.57 69.35 Q 127.57 71.4 129.05 71.4 M 129.05 71.4 M 132.96 72 L 132.96 66.7 L 133.92 66.7 L 133.92 67.69 Q 134.69 66.58 135.79 66.58 Q 136.48 66.58 136.89 67.02 Q 137.3 67.45 137.3 68.19 L 137.3 72 L 136.34 72 L 136.34 68.5 Q 136.34 67.91 136.16 67.66 Q 135.99 67.41 135.59 67.41 Q 134.71 67.41 133.92 68.57 L 133.92 72 M 132.96 72"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,-3,214)" ><path d="M 110.35 126.45 Q 108.64 125.89 107.49 125.13 Q 107.03 125.18 106.78 125.18 Q 105.33 125.18 104.42 124.13 Q 103.51 123.07 103.51 121.39 Q 103.51 119.66 104.43 118.63 Q 105.35 117.59 106.89 117.59 Q 108.43 117.59 109.35 118.63 Q 110.27 119.66 110.27 121.4 Q 110.27 123.89 108.42 124.85 Q 109.66 125.4 111 125.63 M 110.35 126.45 M 106.86 124.41 Q 107.97 124.41 108.57 123.62 Q 109.18 122.82 109.18 121.37 Q 109.18 119.96 108.57 119.16 Q 107.97 118.36 106.89 118.36 Q 105.81 118.36 105.2 119.16 Q 104.6 119.96 104.6 121.38 Q 104.6 122.79 105.2 123.6 Q 105.8 124.41 106.86 124.41 M 106.86 124.41 M 115.28 125 L 115.28 124 Q 114.51 125.12 113.42 125.12 Q 112.72 125.12 112.31 124.69 Q 111.9 124.25 111.9 123.51 L 111.9 119.7 L 112.87 119.7 L 112.87 123.19 Q 112.87 123.79 113.04 124.04 Q 113.21 124.29 113.62 124.29 Q 114.5 124.29 115.28 123.13 L 115.28 119.7 L 116.24 119.7 L 116.24 125 M 115.28 125 M 120.7 124.33 Q 119.83 125.12 119.03 125.12 Q 118.37 125.12 117.94 124.71 Q 117.5 124.3 117.5 123.67 Q 117.5 122.8 118.23 122.33 Q 118.96 121.87 120.33 121.87 L 120.55 121.87 L 120.55 121.23 Q 120.55 120.3 119.61 120.3 Q 118.85 120.3 117.96 120.77 L 117.96 119.98 Q 118.93 119.58 119.78 119.58 Q 120.67 119.58 121.09 119.98 Q 121.52 120.38 121.52 121.23 L 121.52 123.63 Q 121.52 124.45 122.02 124.45 Q 122.09 124.45 122.21 124.43 L 122.28 124.97 Q 121.95 125.12 121.56 125.12 Q 120.88 125.12 120.7 124.33 M 120.7 124.33 M 120.55 123.8 L 120.55 122.43 L 120.23 122.42 Q 119.44 122.42 118.95 122.72 Q 118.46 123.02 118.46 123.51 Q 118.46 123.86 118.71 124.1 Q 118.95 124.34 119.3 124.34 Q 119.91 124.34 120.55 123.8 M 120.55 123.8 M 123.96 125 L 123.96 117.29 L 124.92 117.29 L 124.92 125 M 123.96 125 M 126.96 125 L 126.96 119.7 L 127.92 119.7 L 127.92 125 M 126.96 125 M 126.96 118.74 L 126.96 117.77 L 127.92 117.77 L 127.92 118.74 M 126.96 118.74 M 131.55 125.12 Q 130.82 125.12 130.41 124.7 Q 130 124.28 130 123.54 L 130 120.42 L 129.34 120.42 L 129.34 119.7 L 130 119.7 L 130 118.74 L 130.96 118.64 L 130.96 119.7 L 132.35 119.7 L 132.35 120.42 L 130.96 120.42 L 130.96 123.36 Q 130.96 124.4 131.86 124.4 Q 132.05 124.4 132.33 124.34 L 132.33 125 Q 131.88 125.12 131.55 125.12 M 131.55 125.12 M 134.27 126.93 L 135.13 125 L 133.08 119.7 L 134.12 119.7 L 135.64 123.69 L 137.26 119.7 L 138.17 119.7 L 135.27 126.93 M 134.27 126.93"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,-3,214)" ><path d="M 90.03 178.18 Q 88.34 178.18 87.43 177.19 Q 86.51 176.2 86.51 174.39 Q 86.51 172.58 87.44 171.59 Q 88.38 170.59 90.08 170.59 Q 91.05 170.59 92.35 170.91 L 92.35 171.87 Q 90.87 171.36 90.06 171.36 Q 88.89 171.36 88.24 172.16 Q 87.6 172.95 87.6 174.4 Q 87.6 175.78 88.29 176.58 Q 88.97 177.38 90.17 177.38 Q 91.19 177.38 92.36 176.75 L 92.36 177.63 Q 91.29 178.18 90.03 178.18 M 90.03 178.18 M 96.04 178.12 Q 94.9 178.12 94.22 177.37 Q 93.54 176.61 93.54 175.35 Q 93.54 174.07 94.22 173.32 Q 94.9 172.58 96.07 172.58 Q 97.24 172.58 97.92 173.32 Q 98.6 174.07 98.6 175.34 Q 98.6 176.64 97.92 177.38 Q 97.23 178.12 96.04 178.12 M 96.04 178.12 M 96.05 177.4 Q 97.58 177.4 97.58 175.34 Q 97.58 173.3 96.07 173.3 Q 94.57 173.3 94.57 175.35 Q 94.57 177.4 96.05 177.4 M 96.05 177.4 M 99.96 178 L 99.96 172.7 L 100.92 172.7 L 100.92 173.69 Q 101.69 172.58 102.79 172.58 Q 103.48 172.58 103.89 173.02 Q 104.3 173.45 104.3 174.19 L 104.3 178 L 103.34 178 L 103.34 174.5 Q 103.34 173.91 103.16 173.66 Q 102.99 173.41 102.59 173.41 Q 101.71 173.41 100.92 174.57 L 100.92 178 M 99.96 178 M 107.37 178.12 Q 106.71 178.12 105.77 177.81 L 105.77 176.93 Q 106.71 177.4 107.41 177.4 Q 107.82 177.4 108.1 177.17 Q 108.37 176.95 108.37 176.61 Q 108.37 176.12 107.6 175.8 L 107.04 175.56 Q 105.8 175.04 105.8 174.07 Q 105.8 173.38 106.29 172.98 Q 106.78 172.58 107.63 172.58 Q 108.08 172.58 108.73 172.7 L 108.93 172.74 L 108.93 173.54 Q 108.12 173.3 107.65 173.3 Q 106.72 173.3 106.72 173.98 Q 106.72 174.41 107.43 174.71 L 107.89 174.9 Q 108.68 175.24 109 175.6 Q 109.33 175.97 109.33 176.53 Q 109.33 177.22 108.78 177.67 Q 108.23 178.12 107.37 178.12 M 107.37 178.12 M 114.85 177.83 Q 113.88 178.12 113.19 178.12 Q 112.02 178.12 111.28 177.34 Q 110.54 176.56 110.54 175.32 Q 110.54 174.12 111.19 173.35 Q 111.85 172.58 112.86 172.58 Q 113.82 172.58 114.35 173.26 Q 114.87 173.94 114.87 175.2 L 114.87 175.5 L 111.52 175.5 Q 111.73 177.39 113.37 177.39 Q 113.97 177.39 114.85 177.07 M 114.85 177.83 M 111.57 174.78 L 113.91 174.78 Q 113.91 173.3 112.8 173.3 Q 111.69 173.3 111.57 174.78 M 111.57 174.78 M 116.96 178 L 116.96 172.7 L 117.92 172.7 L 117.92 173.69 Q 118.69 172.58 119.79 172.58 Q 120.48 172.58 120.89 173.02 Q 121.3 173.45 121.3 174.19 L 121.3 178 L 120.34 178 L 120.34 174.5 Q 120.34 173.91 120.16 173.66 Q 119.99 173.41 119.59 173.41 Q 118.71 173.41 117.92 174.57 L 117.92 178 M 116.96 178 M 124.37 178.12 Q 123.71 178.12 122.77 177.81 L 122.77 176.93 Q 123.71 177.4 124.41 177.4 Q 124.82 177.4 125.1 177.17 Q 125.37 176.95 125.37 176.61 Q 125.37 176.12 124.6 175.8 L 124.04 175.56 Q 122.8 175.04 122.8 174.07 Q 122.8 173.38 123.29 172.98 Q 123.78 172.58 124.63 172.58 Q 125.08 172.58 125.73 172.7 L 125.93 172.74 L 125.93 173.54 Q 125.12 173.3 124.65 173.3 Q 123.72 173.3 123.72 173.98 Q 123.72 174.41 124.43 174.71 L 124.89 174.9 Q 125.68 175.24 126 175.6 Q 126.33 175.97 126.33 176.53 Q 126.33 177.22 125.78 177.67 Q 125.23 178.12 124.37 178.12 M 124.37 178.12 M 131.28 178 L 131.28 177 Q 130.51 178.12 129.42 178.12 Q 128.72 178.12 128.31 177.69 Q 127.9 177.25 127.9 176.51 L 127.9 172.7 L 128.87 172.7 L 128.87 176.19 Q 128.87 176.79 129.04 177.04 Q 129.21 177.29 129.62 177.29 Q 130.5 177.29 131.28 176.13 L 131.28 172.7 L 132.24 172.7 L 132.24 178 M 131.28 178 M 135.37 178.12 Q 134.71 178.12 133.77 177.81 L 133.77 176.93 Q 134.71 177.4 135.41 177.4 Q 135.82 177.4 136.1 177.17 Q 136.37 176.95 136.37 176.61 Q 136.37 176.12 135.6 175.8 L 135.04 175.56 Q 133.8 175.04 133.8 174.07 Q 133.8 173.38 134.29 172.98 Q 134.78 172.58 135.63 172.58 Q 136.08 172.58 136.73 172.7 L 136.93 172.74 L 136.93 173.54 Q 136.12 173.3 135.65 173.3 Q 134.72 173.3 134.72 173.98 Q 134.72 174.41 135.43 174.71 L 135.89 174.9 Q 136.68 175.24 137 175.6 Q 137.33 175.97 137.33 176.53 Q 137.33 177.22 136.78 177.67 Q 136.23 178.12 135.37 178.12 M 135.37 178.12"/></g></svg>
+</div></div>
+
+<!-- ========================================================================================== -->
+
+<div class="align" ><div class="sub-category-container"> <div style="overflow-x: scroll;"><?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:jfreesvg="http://www.jfree.org/jfreesvg/svg" width="1554" height="428" text-rendering="auto" shape-rendering="auto">
+<defs></defs>
+<rect x="0" y="0" width="1413" height="16" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,0)" /><line x1="40" y1="13" x2="40" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 82.5 10 L 82.5 9.28 L 83.95 9.28 L 83.95 3.57 L 82.5 3.94 L 82.5 3.19 L 84.92 2.59 L 84.92 9.28 L 86.36 9.28 L 86.36 10 M 82.5 10 M 90.13 10.18 Q 89.02 10.18 88.33 9.13 Q 87.63 8.08 87.63 6.38 Q 87.63 4.67 88.33 3.63 Q 89.03 2.59 90.16 2.59 Q 91.3 2.59 92 3.63 Q 92.69 4.67 92.69 6.37 Q 92.69 8.11 92 9.14 Q 91.3 10.18 90.13 10.18 M 90.13 10.18 M 90.14 9.46 Q 91.67 9.46 91.67 6.35 Q 91.67 3.32 90.16 3.32 Q 88.66 3.32 88.66 6.38 Q 88.66 9.46 90.14 9.46 M 90.14 9.46"/></g><line x1="85" y1="12" x2="85" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="130" y1="13" x2="130" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 171.83 10 L 171.83 9.16 Q 172.25 8.17 173.53 7.02 L 174.08 6.52 Q 175.15 5.56 175.15 4.61 Q 175.15 4.01 174.78 3.66 Q 174.42 3.32 173.78 3.32 Q 173.03 3.32 172.01 3.9 L 172.01 3.05 Q 172.97 2.59 173.92 2.59 Q 174.94 2.59 175.55 3.14 Q 176.17 3.69 176.17 4.59 Q 176.17 5.24 175.86 5.74 Q 175.55 6.25 174.7 6.96 L 174.33 7.28 Q 173.17 8.26 172.99 9.16 L 176.13 9.16 L 176.13 10 M 171.83 10 M 180.13 10.18 Q 179.02 10.18 178.33 9.13 Q 177.63 8.08 177.63 6.38 Q 177.63 4.67 178.33 3.63 Q 179.03 2.59 180.16 2.59 Q 181.3 2.59 182 3.63 Q 182.69 4.67 182.69 6.37 Q 182.69 8.11 182 9.14 Q 181.3 10.18 180.13 10.18 M 180.13 10.18 M 180.14 9.46 Q 181.67 9.46 181.67 6.35 Q 181.67 3.32 180.16 3.32 Q 178.66 3.32 178.66 6.38 Q 178.66 9.46 180.14 9.46 M 180.14 9.46"/></g><line x1="175" y1="12" x2="175" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="220" y1="13" x2="220" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 262.02 9.95 L 262.02 9.05 Q 263.05 9.46 263.65 9.46 Q 264.33 9.46 264.77 9.06 Q 265.2 8.65 265.2 8.01 Q 265.2 6.49 263.07 6.49 L 262.68 6.49 L 262.68 5.84 L 263.02 5.83 Q 265.02 5.83 265.02 4.42 Q 265.02 3.32 263.71 3.32 Q 262.98 3.32 262.11 3.72 L 262.11 2.88 Q 262.97 2.59 263.77 2.59 Q 265.99 2.59 265.99 4.27 Q 265.99 5.54 264.48 6.08 Q 266.23 6.49 266.23 8 Q 266.23 9.02 265.56 9.6 Q 264.88 10.18 263.71 10.18 Q 263.04 10.18 262.02 9.95 M 262.02 9.95 M 270.13 10.18 Q 269.02 10.18 268.33 9.13 Q 267.63 8.08 267.63 6.38 Q 267.63 4.67 268.33 3.63 Q 269.03 2.59 270.16 2.59 Q 271.3 2.59 272 3.63 Q 272.69 4.67 272.69 6.37 Q 272.69 8.11 272 9.14 Q 271.3 10.18 270.13 10.18 M 270.13 10.18 M 270.14 9.46 Q 271.67 9.46 271.67 6.35 Q 271.67 3.32 270.16 3.32 Q 268.66 3.32 268.66 6.38 Q 268.66 9.46 270.14 9.46 M 270.14 9.46"/></g><line x1="265" y1="12" x2="265" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="310" y1="13" x2="310" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 354.76 10 L 354.76 7.95 L 351.51 7.95 L 351.51 7.23 L 354.76 2.77 L 355.67 2.77 L 355.67 7.17 L 356.63 7.17 L 356.63 7.95 L 355.67 7.95 L 355.67 10 M 354.76 10 M 352.46 7.17 L 354.83 7.17 L 354.83 3.96 M 352.46 7.17 M 360.13 10.18 Q 359.02 10.18 358.33 9.13 Q 357.63 8.08 357.63 6.38 Q 357.63 4.67 358.33 3.63 Q 359.03 2.59 360.16 2.59 Q 361.3 2.59 362 3.63 Q 362.69 4.67 362.69 6.37 Q 362.69 8.11 362 9.14 Q 361.3 10.18 360.13 10.18 M 360.13 10.18 M 360.14 9.46 Q 361.67 9.46 361.67 6.35 Q 361.67 3.32 360.16 3.32 Q 358.66 3.32 358.66 6.38 Q 358.66 9.46 360.14 9.46 M 360.14 9.46"/></g><line x1="355" y1="12" x2="355" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="400" y1="13" x2="400" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 442.22 10.03 L 442.22 9.17 Q 442.93 9.46 443.58 9.46 Q 444.3 9.46 444.7 9.04 Q 445.11 8.62 445.11 7.88 Q 445.11 6.25 442.87 6.25 Q 442.62 6.25 442.34 6.29 L 442.34 2.77 L 446 2.77 L 446 3.61 L 443.18 3.61 L 443.18 5.52 Q 444.57 5.52 445.36 6.16 Q 446.14 6.8 446.14 7.93 Q 446.14 8.98 445.43 9.58 Q 444.72 10.18 443.46 10.18 Q 442.91 10.18 442.22 10.03 M 442.22 10.03 M 450.13 10.18 Q 449.02 10.18 448.33 9.13 Q 447.63 8.08 447.63 6.38 Q 447.63 4.67 448.33 3.63 Q 449.03 2.59 450.16 2.59 Q 451.3 2.59 452 3.63 Q 452.69 4.67 452.69 6.37 Q 452.69 8.11 452 9.14 Q 451.3 10.18 450.13 10.18 M 450.13 10.18 M 450.14 9.46 Q 451.67 9.46 451.67 6.35 Q 451.67 3.32 450.16 3.32 Q 448.66 3.32 448.66 6.38 Q 448.66 9.46 450.14 9.46 M 450.14 9.46"/></g><line x1="445" y1="12" x2="445" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="490" y1="13" x2="490" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 532.72 6.25 Q 533.41 5.36 534.45 5.36 Q 535.4 5.36 536 5.99 Q 536.61 6.62 536.61 7.6 Q 536.61 8.73 535.93 9.45 Q 535.25 10.18 534.21 10.18 Q 533.02 10.18 532.34 9.22 Q 531.67 8.26 531.67 6.55 Q 531.67 4.67 532.44 3.63 Q 533.22 2.59 534.62 2.59 Q 535.27 2.59 536.23 2.86 L 536.23 3.7 Q 535.21 3.31 534.56 3.31 Q 532.72 3.31 532.72 6.25 M 532.72 6.25 M 535.64 7.81 Q 535.64 6.99 535.27 6.52 Q 534.9 6.05 534.25 6.05 Q 533.64 6.05 533.2 6.46 Q 532.76 6.88 532.76 7.45 Q 532.76 8.36 533.18 8.91 Q 533.59 9.46 534.28 9.46 Q 534.9 9.46 535.27 9.01 Q 535.64 8.56 535.64 7.81 M 535.64 7.81 M 540.13 10.18 Q 539.02 10.18 538.33 9.13 Q 537.63 8.08 537.63 6.38 Q 537.63 4.67 538.33 3.63 Q 539.03 2.59 540.16 2.59 Q 541.3 2.59 542 3.63 Q 542.69 4.67 542.69 6.37 Q 542.69 8.11 542 9.14 Q 541.3 10.18 540.13 10.18 M 540.13 10.18 M 540.14 9.46 Q 541.67 9.46 541.67 6.35 Q 541.67 3.32 540.16 3.32 Q 538.66 3.32 538.66 6.38 Q 538.66 9.46 540.14 9.46 M 540.14 9.46"/></g><line x1="535" y1="12" x2="535" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="580" y1="13" x2="580" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 622.5 10 Q 622.65 9.16 622.91 8.54 Q 623.17 7.92 623.83 6.85 L 625.8 3.68 L 622.08 3.68 L 622.08 2.77 L 626.72 2.77 L 626.72 3.68 Q 623.94 7.77 623.61 10 M 622.5 10 M 630.13 10.18 Q 629.02 10.18 628.33 9.13 Q 627.63 8.08 627.63 6.38 Q 627.63 4.67 628.33 3.63 Q 629.03 2.59 630.16 2.59 Q 631.3 2.59 632 3.63 Q 632.69 4.67 632.69 6.37 Q 632.69 8.11 632 9.14 Q 631.3 10.18 630.13 10.18 M 630.13 10.18 M 630.14 9.46 Q 631.67 9.46 631.67 6.35 Q 631.67 3.32 630.16 3.32 Q 628.66 3.32 628.66 6.38 Q 628.66 9.46 630.14 9.46 M 630.14 9.46"/></g><line x1="625" y1="12" x2="625" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="670" y1="13" x2="670" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 713.3 6.06 Q 712.24 5.33 712.24 4.43 Q 712.24 3.61 712.84 3.1 Q 713.44 2.59 714.41 2.59 Q 715.3 2.59 715.86 3.02 Q 716.41 3.46 716.41 4.15 Q 716.41 5.2 715.06 6.06 Q 716.7 6.87 716.7 8.13 Q 716.7 9.04 716.01 9.61 Q 715.33 10.18 714.24 10.18 Q 713.18 10.18 712.52 9.64 Q 711.86 9.1 711.86 8.22 Q 711.86 6.92 713.3 6.06 M 713.3 6.06 M 714.53 5.76 Q 715.54 5.1 715.54 4.28 Q 715.54 3.85 715.2 3.58 Q 714.86 3.32 714.31 3.32 Q 713.78 3.32 713.45 3.58 Q 713.11 3.84 713.11 4.25 Q 713.11 4.66 713.41 4.98 Q 713.71 5.3 714.53 5.76 M 714.53 5.76 M 713.82 6.46 Q 713.24 6.9 713.03 7.24 Q 712.83 7.57 712.83 8.07 Q 712.83 8.69 713.23 9.07 Q 713.63 9.46 714.28 9.46 Q 714.91 9.46 715.31 9.13 Q 715.71 8.8 715.71 8.28 Q 715.71 7.86 715.46 7.57 Q 715.21 7.28 714.51 6.86 M 713.82 6.46 M 720.13 10.18 Q 719.02 10.18 718.33 9.13 Q 717.63 8.08 717.63 6.38 Q 717.63 4.67 718.33 3.63 Q 719.03 2.59 720.16 2.59 Q 721.3 2.59 722 3.63 Q 722.69 4.67 722.69 6.37 Q 722.69 8.11 722 9.14 Q 721.3 10.18 720.13 10.18 M 720.13 10.18 M 720.14 9.46 Q 721.67 9.46 721.67 6.35 Q 721.67 3.32 720.16 3.32 Q 718.66 3.32 718.66 6.38 Q 718.66 9.46 720.14 9.46 M 720.14 9.46"/></g><line x1="715" y1="12" x2="715" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="760" y1="13" x2="760" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 802.14 9.96 L 802.14 9.14 Q 803.06 9.46 803.7 9.46 Q 804.6 9.46 805.1 8.69 Q 805.61 7.93 805.61 6.57 Q 804.88 7.47 803.94 7.47 Q 803.03 7.47 802.4 6.8 Q 801.76 6.13 801.76 5.16 Q 801.76 4.05 802.44 3.32 Q 803.11 2.59 804.14 2.59 Q 805.32 2.59 806 3.54 Q 806.67 4.48 806.67 6.12 Q 806.67 7.99 805.85 9.08 Q 805.02 10.18 803.61 10.18 Q 803.04 10.18 802.14 9.96 M 802.14 9.96 M 802.72 4.97 Q 802.72 5.81 803.1 6.29 Q 803.47 6.78 804.12 6.78 Q 804.73 6.78 805.16 6.36 Q 805.59 5.95 805.59 5.36 Q 805.59 4.44 805.18 3.87 Q 804.76 3.31 804.08 3.31 Q 803.45 3.31 803.09 3.76 Q 802.72 4.2 802.72 4.97 M 802.72 4.97 M 810.13 10.18 Q 809.02 10.18 808.33 9.13 Q 807.63 8.08 807.63 6.38 Q 807.63 4.67 808.33 3.63 Q 809.03 2.59 810.16 2.59 Q 811.3 2.59 812 3.63 Q 812.69 4.67 812.69 6.37 Q 812.69 8.11 812 9.14 Q 811.3 10.18 810.13 10.18 M 810.13 10.18 M 810.14 9.46 Q 811.67 9.46 811.67 6.35 Q 811.67 3.32 810.16 3.32 Q 808.66 3.32 808.66 6.38 Q 808.66 9.46 810.14 9.46 M 810.14 9.46"/></g><line x1="805" y1="12" x2="805" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="850" y1="13" x2="850" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 892.5 10 L 892.5 9.28 L 893.95 9.28 L 893.95 3.57 L 892.5 3.94 L 892.5 3.19 L 894.92 2.59 L 894.92 9.28 L 896.36 9.28 L 896.36 10 M 892.5 10 M 900.13 10.18 Q 899.02 10.18 898.33 9.13 Q 897.63 8.08 897.63 6.38 Q 897.63 4.67 898.33 3.63 Q 899.03 2.59 900.16 2.59 Q 901.3 2.59 902 3.63 Q 902.69 4.67 902.69 6.37 Q 902.69 8.11 902 9.14 Q 901.3 10.18 900.13 10.18 M 900.13 10.18 M 900.14 9.46 Q 901.67 9.46 901.67 6.35 Q 901.67 3.32 900.16 3.32 Q 898.66 3.32 898.66 6.38 Q 898.66 9.46 900.14 9.46 M 900.14 9.46 M 906.13 10.18 Q 905.02 10.18 904.33 9.13 Q 903.63 8.08 903.63 6.38 Q 903.63 4.67 904.33 3.63 Q 905.03 2.59 906.16 2.59 Q 907.3 2.59 908 3.63 Q 908.69 4.67 908.69 6.37 Q 908.69 8.11 908 9.14 Q 907.3 10.18 906.13 10.18 M 906.13 10.18 M 906.14 9.46 Q 907.67 9.46 907.67 6.35 Q 907.67 3.32 906.16 3.32 Q 904.66 3.32 904.66 6.38 Q 904.66 9.46 906.14 9.46 M 906.14 9.46"/></g><line x1="895" y1="12" x2="895" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="940" y1="13" x2="940" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 982.5 10 L 982.5 9.28 L 983.95 9.28 L 983.95 3.57 L 982.5 3.94 L 982.5 3.19 L 984.92 2.59 L 984.92 9.28 L 986.36 9.28 L 986.36 10 M 982.5 10 M 988.5 10 L 988.5 9.28 L 989.95 9.28 L 989.95 3.57 L 988.5 3.94 L 988.5 3.19 L 990.92 2.59 L 990.92 9.28 L 992.36 9.28 L 992.36 10 M 988.5 10 M 996.13 10.18 Q 995.02 10.18 994.33 9.13 Q 993.63 8.08 993.63 6.38 Q 993.63 4.67 994.33 3.63 Q 995.03 2.59 996.16 2.59 Q 997.3 2.59 998 3.63 Q 998.69 4.67 998.69 6.37 Q 998.69 8.11 998 9.14 Q 997.3 10.18 996.13 10.18 M 996.13 10.18 M 996.14 9.46 Q 997.67 9.46 997.67 6.35 Q 997.67 3.32 996.16 3.32 Q 994.66 3.32 994.66 6.38 Q 994.66 9.46 996.14 9.46 M 996.14 9.46"/></g><line x1="985" y1="12" x2="985" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="1030" y1="13" x2="1030" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 1072.5 10 L 1072.5 9.28 L 1073.95 9.28 L 1073.95 3.57 L 1072.5 3.94 L 1072.5 3.19 L 1074.92 2.59 L 1074.92 9.28 L 1076.36 9.28 L 1076.36 10 M 1072.5 10 M 1077.83 10 L 1077.83 9.16 Q 1078.25 8.17 1079.53 7.02 L 1080.08 6.52 Q 1081.15 5.56 1081.15 4.61 Q 1081.15 4.01 1080.78 3.66 Q 1080.42 3.32 1079.78 3.32 Q 1079.03 3.32 1078.01 3.9 L 1078.01 3.05 Q 1078.97 2.59 1079.92 2.59 Q 1080.94 2.59 1081.55 3.14 Q 1082.17 3.69 1082.17 4.59 Q 1082.17 5.24 1081.86 5.74 Q 1081.55 6.25 1080.7 6.96 L 1080.33 7.28 Q 1079.17 8.26 1078.99 9.16 L 1082.13 9.16 L 1082.13 10 M 1077.83 10 M 1086.13 10.18 Q 1085.02 10.18 1084.33 9.13 Q 1083.63 8.08 1083.63 6.38 Q 1083.63 4.67 1084.33 3.63 Q 1085.03 2.59 1086.16 2.59 Q 1087.3 2.59 1088 3.63 Q 1088.69 4.67 1088.69 6.37 Q 1088.69 8.11 1088 9.14 Q 1087.3 10.18 1086.13 10.18 M 1086.13 10.18 M 1086.14 9.46 Q 1087.67 9.46 1087.67 6.35 Q 1087.67 3.32 1086.16 3.32 Q 1084.66 3.32 1084.66 6.38 Q 1084.66 9.46 1086.14 9.46 M 1086.14 9.46"/></g><line x1="1075" y1="12" x2="1075" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="1120" y1="13" x2="1120" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 1162.5 10 L 1162.5 9.28 L 1163.95 9.28 L 1163.95 3.57 L 1162.5 3.94 L 1162.5 3.19 L 1164.92 2.59 L 1164.92 9.28 L 1166.36 9.28 L 1166.36 10 M 1162.5 10 M 1168.02 9.95 L 1168.02 9.05 Q 1169.05 9.46 1169.65 9.46 Q 1170.33 9.46 1170.77 9.06 Q 1171.2 8.65 1171.2 8.01 Q 1171.2 6.49 1169.07 6.49 L 1168.68 6.49 L 1168.68 5.84 L 1169.02 5.83 Q 1171.02 5.83 1171.02 4.42 Q 1171.02 3.32 1169.71 3.32 Q 1168.98 3.32 1168.11 3.72 L 1168.11 2.88 Q 1168.97 2.59 1169.77 2.59 Q 1171.99 2.59 1171.99 4.27 Q 1171.99 5.54 1170.48 6.08 Q 1172.23 6.49 1172.23 8 Q 1172.23 9.02 1171.56 9.6 Q 1170.88 10.18 1169.71 10.18 Q 1169.04 10.18 1168.02 9.95 M 1168.02 9.95 M 1176.13 10.18 Q 1175.02 10.18 1174.33 9.13 Q 1173.63 8.08 1173.63 6.38 Q 1173.63 4.67 1174.33 3.63 Q 1175.03 2.59 1176.16 2.59 Q 1177.3 2.59 1178 3.63 Q 1178.69 4.67 1178.69 6.37 Q 1178.69 8.11 1178 9.14 Q 1177.3 10.18 1176.13 10.18 M 1176.13 10.18 M 1176.14 9.46 Q 1177.67 9.46 1177.67 6.35 Q 1177.67 3.32 1176.16 3.32 Q 1174.66 3.32 1174.66 6.38 Q 1174.66 9.46 1176.14 9.46 M 1176.14 9.46"/></g><line x1="1165" y1="12" x2="1165" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="1210" y1="13" x2="1210" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 1252.5 10 L 1252.5 9.28 L 1253.95 9.28 L 1253.95 3.57 L 1252.5 3.94 L 1252.5 3.19 L 1254.92 2.59 L 1254.92 9.28 L 1256.36 9.28 L 1256.36 10 M 1252.5 10 M 1260.76 10 L 1260.76 7.95 L 1257.51 7.95 L 1257.51 7.23 L 1260.76 2.77 L 1261.67 2.77 L 1261.67 7.17 L 1262.63 7.17 L 1262.63 7.95 L 1261.67 7.95 L 1261.67 10 M 1260.76 10 M 1258.46 7.17 L 1260.83 7.17 L 1260.83 3.96 M 1258.46 7.17 M 1266.13 10.18 Q 1265.02 10.18 1264.33 9.13 Q 1263.63 8.08 1263.63 6.38 Q 1263.63 4.67 1264.33 3.63 Q 1265.03 2.59 1266.16 2.59 Q 1267.3 2.59 1268 3.63 Q 1268.69 4.67 1268.69 6.37 Q 1268.69 8.11 1268 9.14 Q 1267.3 10.18 1266.13 10.18 M 1266.13 10.18 M 1266.14 9.46 Q 1267.67 9.46 1267.67 6.35 Q 1267.67 3.32 1266.16 3.32 Q 1264.66 3.32 1264.66 6.38 Q 1264.66 9.46 1266.14 9.46 M 1266.14 9.46"/></g><line x1="1255" y1="12" x2="1255" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="1300" y1="13" x2="1300" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,0)" ><path d="M 1342.5 10 L 1342.5 9.28 L 1343.95 9.28 L 1343.95 3.57 L 1342.5 3.94 L 1342.5 3.19 L 1344.92 2.59 L 1344.92 9.28 L 1346.36 9.28 L 1346.36 10 M 1342.5 10 M 1348.22 10.03 L 1348.22 9.17 Q 1348.93 9.46 1349.58 9.46 Q 1350.3 9.46 1350.7 9.04 Q 1351.11 8.62 1351.11 7.88 Q 1351.11 6.25 1348.87 6.25 Q 1348.62 6.25 1348.34 6.29 L 1348.34 2.77 L 1352 2.77 L 1352 3.61 L 1349.18 3.61 L 1349.18 5.52 Q 1350.57 5.52 1351.36 6.16 Q 1352.14 6.8 1352.14 7.93 Q 1352.14 8.98 1351.43 9.58 Q 1350.72 10.18 1349.46 10.18 Q 1348.91 10.18 1348.22 10.03 M 1348.22 10.03 M 1356.13 10.18 Q 1355.02 10.18 1354.33 9.13 Q 1353.63 8.08 1353.63 6.38 Q 1353.63 4.67 1354.33 3.63 Q 1355.03 2.59 1356.16 2.59 Q 1357.3 2.59 1358 3.63 Q 1358.69 4.67 1358.69 6.37 Q 1358.69 8.11 1358 9.14 Q 1357.3 10.18 1356.13 10.18 M 1356.13 10.18 M 1356.14 9.46 Q 1357.67 9.46 1357.67 6.35 Q 1357.67 3.32 1356.16 3.32 Q 1354.66 3.32 1354.66 6.38 Q 1354.66 9.46 1356.14 9.46 M 1356.14 9.46"/></g><line x1="1345" y1="12" x2="1345" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><line x1="1390" y1="13" x2="1390" y2="16" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,0)" /><rect x="0" y="0" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="0" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="0" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="0" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="0" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="0" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="0" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="0" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="0" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="0" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="0" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="0" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="0" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="0" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="0" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="0" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="0" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="0" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="0" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="0" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="0" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="0" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="0" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="0" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="0" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="0" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="0" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="0" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="0" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="0" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="0" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="0" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="0" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="0" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="0" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="0" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1.72 8.47 L 1.72 7.75 L 6.06 7.75 L 6.06 8.47 M 1.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 10.72 8.47 L 10.72 7.75 L 15.06 7.75 L 15.06 8.47 M 10.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 19.72 8.47 L 19.72 7.75 L 24.06 7.75 L 24.06 8.47 M 19.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 28.72 8.47 L 28.72 7.75 L 33.06 7.75 L 33.06 8.47 M 28.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 8.47 L 37.72 7.75 L 42.06 7.75 L 42.06 8.47 M 37.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 8.47 L 46.72 7.75 L 51.06 7.75 L 51.06 8.47 M 46.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 8.47 L 55.72 7.75 L 60.06 7.75 L 60.06 8.47 M 55.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 8.47 L 64.72 7.75 L 69.06 7.75 L 69.06 8.47 M 64.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 73.72 8.47 L 73.72 7.75 L 78.06 7.75 L 78.06 8.47 M 73.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 82.72 8.47 L 82.72 7.75 L 87.06 7.75 L 87.06 8.47 M 82.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 91.72 8.47 L 91.72 7.75 L 96.06 7.75 L 96.06 8.47 M 91.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 100.72 8.47 L 100.72 7.75 L 105.06 7.75 L 105.06 8.47 M 100.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 109.72 8.47 L 109.72 7.75 L 114.06 7.75 L 114.06 8.47 M 109.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 118.72 8.47 L 118.72 7.75 L 123.06 7.75 L 123.06 8.47 M 118.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 127.72 8.47 L 127.72 7.75 L 132.06 7.75 L 132.06 8.47 M 127.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 136.72 8.47 L 136.72 7.75 L 141.06 7.75 L 141.06 8.47 M 136.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 145.72 8.47 L 145.72 7.75 L 150.06 7.75 L 150.06 8.47 M 145.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 154.72 8.47 L 154.72 7.75 L 159.06 7.75 L 159.06 8.47 M 154.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 163.72 8.47 L 163.72 7.75 L 168.06 7.75 L 168.06 8.47 M 163.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 172.72 8.47 L 172.72 7.75 L 177.06 7.75 L 177.06 8.47 M 172.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.72 8.47 L 181.72 7.75 L 186.06 7.75 L 186.06 8.47 M 181.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.72 8.47 L 190.72 7.75 L 195.06 7.75 L 195.06 8.47 M 190.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.72 8.47 L 199.72 7.75 L 204.06 7.75 L 204.06 8.47 M 199.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.72 8.47 L 208.72 7.75 L 213.06 7.75 L 213.06 8.47 M 208.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 217.72 8.47 L 217.72 7.75 L 222.06 7.75 L 222.06 8.47 M 217.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.72 8.47 L 226.72 7.75 L 231.06 7.75 L 231.06 8.47 M 226.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 235.72 8.47 L 235.72 7.75 L 240.06 7.75 L 240.06 8.47 M 235.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 244.72 8.47 L 244.72 7.75 L 249.06 7.75 L 249.06 8.47 M 244.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 253.72 8.47 L 253.72 7.75 L 258.06 7.75 L 258.06 8.47 M 253.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 8.47 L 262.72 7.75 L 267.06 7.75 L 267.06 8.47 M 262.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.72 8.47 L 271.72 7.75 L 276.06 7.75 L 276.06 8.47 M 271.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 280.72 8.47 L 280.72 7.75 L 285.06 7.75 L 285.06 8.47 M 280.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.72 8.47 L 289.72 7.75 L 294.06 7.75 L 294.06 8.47 M 289.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 298.72 8.47 L 298.72 7.75 L 303.06 7.75 L 303.06 8.47 M 298.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.72 8.47 L 307.72 7.75 L 312.06 7.75 L 312.06 8.47 M 307.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 316.72 8.47 L 316.72 7.75 L 321.06 7.75 L 321.06 8.47 M 316.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 325.72 8.47 L 325.72 7.75 L 330.06 7.75 L 330.06 8.47 M 325.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 334.72 8.47 L 334.72 7.75 L 339.06 7.75 L 339.06 8.47 M 334.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 8.47 L 343.72 7.75 L 348.06 7.75 L 348.06 8.47 M 343.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 8.47 L 352.72 7.75 L 357.06 7.75 L 357.06 8.47 M 352.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 361.72 8.47 L 361.72 7.75 L 366.06 7.75 L 366.06 8.47 M 361.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 370.72 8.47 L 370.72 7.75 L 375.06 7.75 L 375.06 8.47 M 370.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 379.72 8.47 L 379.72 7.75 L 384.06 7.75 L 384.06 8.47 M 379.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 388.72 8.47 L 388.72 7.75 L 393.06 7.75 L 393.06 8.47 M 388.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 397.72 8.47 L 397.72 7.75 L 402.06 7.75 L 402.06 8.47 M 397.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.72 8.47 L 406.72 7.75 L 411.06 7.75 L 411.06 8.47 M 406.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 415.72 8.47 L 415.72 7.75 L 420.06 7.75 L 420.06 8.47 M 415.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 8.47 L 424.72 7.75 L 429.06 7.75 L 429.06 8.47 M 424.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 433.72 8.47 L 433.72 7.75 L 438.06 7.75 L 438.06 8.47 M 433.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.72 8.47 L 442.72 7.75 L 447.06 7.75 L 447.06 8.47 M 442.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.72 8.47 L 451.72 7.75 L 456.06 7.75 L 456.06 8.47 M 451.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.72 8.47 L 460.72 7.75 L 465.06 7.75 L 465.06 8.47 M 460.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.72 8.47 L 469.72 7.75 L 474.06 7.75 L 474.06 8.47 M 469.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 478.72 8.47 L 478.72 7.75 L 483.06 7.75 L 483.06 8.47 M 478.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.72 8.47 L 487.72 7.75 L 492.06 7.75 L 492.06 8.47 M 487.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 496.72 8.47 L 496.72 7.75 L 501.06 7.75 L 501.06 8.47 M 496.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 505.72 8.47 L 505.72 7.75 L 510.06 7.75 L 510.06 8.47 M 505.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 514.72 8.47 L 514.72 7.75 L 519.06 7.75 L 519.06 8.47 M 514.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 523.72 8.47 L 523.72 7.75 L 528.06 7.75 L 528.06 8.47 M 523.72 8.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 8.24 L 535.36 5.12 L 534.13 8.24 M 536.59 8.24 M 537.68 11 L 536.89 9 L 533.83 9 L 533.04 11 L 532.08 11 L 534.95 3.77 L 535.96 3.77 L 538.79 11 M 537.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 544.35 11.18 Q 543.62 11.18 542.49 10.86 L 542.49 9.85 Q 543.71 10.41 544.5 10.41 Q 545.1 10.41 545.47 10.1 Q 545.84 9.78 545.84 9.26 Q 545.84 8.84 545.6 8.54 Q 545.35 8.24 544.71 7.88 L 544.21 7.59 Q 543.28 7.06 542.91 6.59 Q 542.53 6.13 542.53 5.51 Q 542.53 4.67 543.13 4.13 Q 543.74 3.59 544.68 3.59 Q 545.51 3.59 546.44 3.87 L 546.44 4.81 Q 545.3 4.36 544.73 4.36 Q 544.2 4.36 543.86 4.64 Q 543.51 4.93 543.51 5.36 Q 543.51 5.72 543.76 6 Q 544.02 6.27 544.69 6.66 L 545.21 6.95 Q 546.15 7.48 546.52 7.96 Q 546.89 8.43 546.89 9.1 Q 546.89 10.04 546.19 10.61 Q 545.5 11.18 544.35 11.18 M 544.35 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 11 L 552.5 7.98 L 550.08 3.77 L 551.25 3.77 L 553.13 7.04 L 555.15 3.77 L 556.1 3.77 L 553.52 7.96 L 553.52 11 M 552.5 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 11 L 559.93 3.77 L 560.89 3.77 L 560.89 7.33 L 563.82 3.77 L 564.85 3.77 L 562.02 7.22 L 565.35 11 L 564.05 11 L 560.89 7.34 L 560.89 11 M 559.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 11 L 568.18 3.77 L 569.2 3.77 L 571.44 9.69 L 573.6 3.77 L 574.49 3.77 L 571.87 11 M 570.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 11 L 577.93 3.77 L 578.89 3.77 L 578.89 7.33 L 581.82 3.77 L 582.85 3.77 L 580.02 7.22 L 583.35 11 L 582.05 11 L 578.89 7.34 L 578.89 11 M 577.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 11 L 587.93 3.77 L 588.96 3.77 L 588.96 10.23 L 592.21 10.23 L 592.21 11 M 587.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 11 L 597.93 3.77 L 598.95 3.77 L 598.95 11 M 597.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 11 L 606.65 4.54 L 604.09 4.54 L 604.09 3.77 L 610.24 3.77 L 610.24 4.54 L 607.68 4.54 L 607.68 11 M 606.65 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 11 L 613.93 3.77 L 615.9 3.77 Q 617.21 3.77 617.78 4.22 Q 618.35 4.66 618.35 5.67 Q 618.35 6.82 617.57 7.47 Q 616.79 8.13 615.4 8.13 L 614.95 8.13 L 614.95 11 M 613.93 11 M 614.95 7.35 L 615.36 7.35 Q 616.28 7.35 616.77 6.93 Q 617.27 6.51 617.27 5.75 Q 617.27 5.1 616.88 4.82 Q 616.49 4.54 615.58 4.54 L 614.95 4.54 M 614.95 7.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 622.93 11 L 622.93 3.77 L 625.33 3.77 Q 626.41 3.77 627.07 4.01 Q 627.73 4.25 628.22 4.82 Q 628.98 5.73 628.98 7.22 Q 628.98 9.02 628.03 10.01 Q 627.08 11 625.35 11 M 622.93 11 M 623.96 10.23 L 625.27 10.23 Q 626.68 10.23 627.26 9.48 Q 627.89 8.67 627.89 7.31 Q 627.89 6.04 627.27 5.31 Q 626.9 4.87 626.38 4.7 Q 625.85 4.54 624.8 4.54 L 623.96 4.54 M 623.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 10.8 Q 636.05 11.18 635.07 11.18 Q 633.35 11.18 632.43 10.2 Q 631.51 9.22 631.51 7.39 Q 631.51 5.59 632.44 4.59 Q 633.37 3.59 635.06 3.59 Q 636.16 3.59 637.35 3.92 L 637.35 4.87 Q 635.86 4.36 635.06 4.36 Q 633.89 4.36 633.24 5.16 Q 632.6 5.95 632.6 7.4 Q 632.6 8.83 633.29 9.62 Q 633.98 10.41 635.23 10.41 Q 635.75 10.41 636.34 10.23 L 636.34 7.88 L 637.36 7.88 M 637.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 11 L 640.93 3.77 L 642.9 3.77 Q 644.21 3.77 644.78 4.22 Q 645.35 4.66 645.35 5.67 Q 645.35 6.82 644.57 7.47 Q 643.79 8.13 642.4 8.13 L 641.95 8.13 L 641.95 11 M 640.93 11 M 641.95 7.35 L 642.36 7.35 Q 643.28 7.35 643.77 6.93 Q 644.27 6.51 644.27 5.75 Q 644.27 5.1 643.88 4.82 Q 643.49 4.54 642.58 4.54 L 641.95 4.54 M 641.95 7.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.93 11 L 651.93 3.77 L 652.95 3.77 L 652.95 11 M 651.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 11 L 659.93 3.77 L 663.97 3.77 L 663.97 4.54 L 660.96 4.54 L 660.96 6.86 L 663.48 6.86 L 663.48 7.62 L 660.96 7.62 L 660.96 10.23 L 664.18 10.23 L 664.18 11 M 659.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 11 L 668.93 3.77 L 672.97 3.77 L 672.97 4.54 L 669.96 4.54 L 669.96 6.96 L 672.49 6.96 L 672.49 7.72 L 669.96 7.72 L 669.96 11 M 668.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 676.93 11 L 676.93 3.77 L 679.33 3.77 Q 680.41 3.77 681.07 4.01 Q 681.73 4.25 682.22 4.82 Q 682.98 5.73 682.98 7.22 Q 682.98 9.02 682.03 10.01 Q 681.08 11 679.35 11 M 676.93 11 M 677.96 10.23 L 679.27 10.23 Q 680.68 10.23 681.26 9.48 Q 681.89 8.67 681.89 7.31 Q 681.89 6.04 681.27 5.31 Q 680.9 4.87 680.38 4.7 Q 679.85 4.54 678.8 4.54 L 677.96 4.54 M 677.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 11.18 Q 687.34 11.18 686.43 10.19 Q 685.51 9.2 685.51 7.39 Q 685.51 5.58 686.44 4.59 Q 687.38 3.59 689.08 3.59 Q 690.05 3.59 691.35 3.91 L 691.35 4.87 Q 689.87 4.36 689.06 4.36 Q 687.89 4.36 687.24 5.16 Q 686.6 5.95 686.6 7.4 Q 686.6 8.78 687.29 9.58 Q 687.97 10.38 689.17 10.38 Q 690.19 10.38 691.36 9.75 L 691.36 10.63 Q 690.29 11.18 689.03 11.18 M 689.03 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 11 L 694.93 3.77 L 696.9 3.77 Q 698.21 3.77 698.78 4.22 Q 699.35 4.66 699.35 5.67 Q 699.35 6.82 698.57 7.47 Q 697.79 8.13 696.4 8.13 L 695.95 8.13 L 695.95 11 M 694.93 11 M 695.95 7.35 L 696.36 7.35 Q 697.28 7.35 697.77 6.93 Q 698.27 6.51 698.27 5.75 Q 698.27 5.1 697.88 4.82 Q 697.49 4.54 696.58 4.54 L 695.95 4.54 M 695.95 7.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 11 L 703.93 3.77 L 706.33 3.77 Q 707.41 3.77 708.07 4.01 Q 708.73 4.25 709.22 4.82 Q 709.98 5.73 709.98 7.22 Q 709.98 9.02 709.03 10.01 Q 708.08 11 706.35 11 M 703.93 11 M 704.96 10.23 L 706.27 10.23 Q 707.68 10.23 708.26 9.48 Q 708.89 8.67 708.89 7.31 Q 708.89 6.04 708.27 5.31 Q 707.9 4.87 707.38 4.7 Q 706.85 4.54 705.8 4.54 L 704.96 4.54 M 704.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 11 L 712.93 3.77 L 715.33 3.77 Q 716.41 3.77 717.07 4.01 Q 717.73 4.25 718.22 4.82 Q 718.98 5.73 718.98 7.22 Q 718.98 9.02 718.03 10.01 Q 717.08 11 715.35 11 M 712.93 11 M 713.96 10.23 L 715.27 10.23 Q 716.68 10.23 717.26 9.48 Q 717.89 8.67 717.89 7.31 Q 717.89 6.04 717.27 5.31 Q 716.9 4.87 716.38 4.7 Q 715.85 4.54 714.8 4.54 L 713.96 4.54 M 713.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 11 L 721.18 3.77 L 722.2 3.77 L 724.44 9.69 L 726.6 3.77 L 727.49 3.77 L 724.87 11 M 723.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 11 L 732.5 7.98 L 730.08 3.77 L 731.25 3.77 L 733.13 7.04 L 735.15 3.77 L 736.1 3.77 L 733.52 7.96 L 733.52 11 M 732.5 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 11 L 741.93 3.77 L 742.95 3.77 L 742.95 11 M 741.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 11 L 749.93 3.77 L 750.96 3.77 L 750.96 10.23 L 754.21 10.23 L 754.21 11 M 749.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 11 L 757.93 3.77 L 760.33 3.77 Q 761.41 3.77 762.07 4.01 Q 762.73 4.25 763.22 4.82 Q 763.98 5.73 763.98 7.22 Q 763.98 9.02 763.03 10.01 Q 762.08 11 760.35 11 M 757.93 11 M 758.96 10.23 L 760.27 10.23 Q 761.68 10.23 762.26 9.48 Q 762.89 8.67 762.89 7.31 Q 762.89 6.04 762.27 5.31 Q 761.9 4.87 761.38 4.7 Q 760.85 4.54 759.8 4.54 L 758.96 4.54 M 758.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 772.35 12.45 Q 770.64 11.89 769.49 11.13 Q 769.03 11.18 768.78 11.18 Q 767.33 11.18 766.42 10.13 Q 765.51 9.07 765.51 7.39 Q 765.51 5.66 766.43 4.63 Q 767.35 3.59 768.89 3.59 Q 770.43 3.59 771.35 4.63 Q 772.27 5.66 772.27 7.4 Q 772.27 9.89 770.42 10.85 Q 771.66 11.4 773 11.63 M 772.35 12.45 M 768.86 10.41 Q 769.97 10.41 770.57 9.62 Q 771.18 8.82 771.18 7.37 Q 771.18 5.96 770.57 5.16 Q 769.97 4.36 768.89 4.36 Q 767.81 4.36 767.2 5.16 Q 766.6 5.96 766.6 7.38 Q 766.6 8.79 767.2 9.6 Q 767.8 10.41 768.86 10.41 M 768.86 10.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 8.24 L 778.36 5.12 L 777.13 8.24 M 779.59 8.24 M 780.68 11 L 779.89 9 L 776.83 9 L 776.04 11 L 775.08 11 L 777.95 3.77 L 778.96 3.77 L 781.79 11 M 780.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 11 L 785.93 3.77 L 789.97 3.77 L 789.97 4.54 L 786.96 4.54 L 786.96 6.86 L 789.48 6.86 L 789.48 7.62 L 786.96 7.62 L 786.96 10.23 L 790.18 10.23 L 790.18 11 M 785.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 11 L 794.93 3.77 L 798.97 3.77 L 798.97 4.54 L 795.96 4.54 L 795.96 6.86 L 798.48 6.86 L 798.48 7.62 L 795.96 7.62 L 795.96 10.23 L 799.18 10.23 L 799.18 11 M 794.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 8.24 L 805.36 5.12 L 804.13 8.24 M 806.59 8.24 M 807.68 11 L 806.89 9 L 803.83 9 L 803.04 11 L 802.08 11 L 804.95 3.77 L 805.96 3.77 L 808.79 11 M 807.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 10.8 Q 816.05 11.18 815.07 11.18 Q 813.35 11.18 812.43 10.2 Q 811.51 9.22 811.51 7.39 Q 811.51 5.59 812.44 4.59 Q 813.37 3.59 815.06 3.59 Q 816.16 3.59 817.35 3.92 L 817.35 4.87 Q 815.86 4.36 815.06 4.36 Q 813.89 4.36 813.24 5.16 Q 812.6 5.95 812.6 7.4 Q 812.6 8.83 813.29 9.62 Q 813.98 10.41 815.23 10.41 Q 815.75 10.41 816.34 10.23 L 816.34 7.88 L 817.36 7.88 M 817.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 820.93 11 L 820.93 3.77 L 821.96 3.77 L 821.96 6.82 L 825.4 6.82 L 825.4 3.77 L 826.42 3.77 L 826.42 11 L 825.4 11 L 825.4 7.59 L 821.96 7.59 L 821.96 11 M 820.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 11 L 829.93 3.77 L 832.33 3.77 Q 833.41 3.77 834.07 4.01 Q 834.73 4.25 835.22 4.82 Q 835.98 5.73 835.98 7.22 Q 835.98 9.02 835.03 10.01 Q 834.08 11 832.35 11 M 829.93 11 M 830.96 10.23 L 832.27 10.23 Q 833.68 10.23 834.26 9.48 Q 834.89 8.67 834.89 7.31 Q 834.89 6.04 834.27 5.31 Q 833.9 4.87 833.38 4.7 Q 832.85 4.54 831.8 4.54 L 830.96 4.54 M 830.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 11 L 839.93 3.77 L 840.96 3.77 L 840.96 10.23 L 844.21 10.23 L 844.21 11 M 839.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 11 L 847.93 3.77 L 849.9 3.77 Q 851.21 3.77 851.78 4.22 Q 852.35 4.66 852.35 5.67 Q 852.35 6.82 851.57 7.47 Q 850.79 8.13 849.4 8.13 L 848.95 8.13 L 848.95 11 M 847.93 11 M 848.95 7.35 L 849.36 7.35 Q 850.28 7.35 850.77 6.93 Q 851.27 6.51 851.27 5.75 Q 851.27 5.1 850.88 4.82 Q 850.49 4.54 849.58 4.54 L 848.95 4.54 M 848.95 7.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 11 L 858.5 7.98 L 856.08 3.77 L 857.25 3.77 L 859.13 7.04 L 861.15 3.77 L 862.1 3.77 L 859.52 7.96 L 859.52 11 M 858.5 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 11.18 Q 867.62 11.18 866.49 10.86 L 866.49 9.85 Q 867.71 10.41 868.5 10.41 Q 869.1 10.41 869.47 10.1 Q 869.84 9.78 869.84 9.26 Q 869.84 8.84 869.6 8.54 Q 869.35 8.24 868.71 7.88 L 868.21 7.59 Q 867.28 7.06 866.91 6.59 Q 866.53 6.13 866.53 5.51 Q 866.53 4.67 867.13 4.13 Q 867.74 3.59 868.68 3.59 Q 869.51 3.59 870.44 3.87 L 870.44 4.81 Q 869.3 4.36 868.73 4.36 Q 868.2 4.36 867.86 4.64 Q 867.51 4.93 867.51 5.36 Q 867.51 5.72 867.76 6 Q 868.02 6.27 868.69 6.66 L 869.21 6.95 Q 870.15 7.48 870.52 7.96 Q 870.89 8.43 870.89 9.1 Q 870.89 10.04 870.19 10.61 Q 869.5 11.18 868.35 11.18 M 868.35 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 11.18 Q 876.34 11.18 875.43 10.19 Q 874.51 9.2 874.51 7.39 Q 874.51 5.58 875.44 4.59 Q 876.38 3.59 878.08 3.59 Q 879.05 3.59 880.35 3.91 L 880.35 4.87 Q 878.87 4.36 878.06 4.36 Q 876.89 4.36 876.24 5.16 Q 875.6 5.95 875.6 7.4 Q 875.6 8.78 876.29 9.58 Q 876.97 10.38 878.17 10.38 Q 879.19 10.38 880.36 9.75 L 880.36 10.63 Q 879.29 11.18 878.03 11.18 M 878.03 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 11 L 883.93 3.77 L 886.12 3.77 Q 887.16 3.77 887.71 4.23 Q 888.27 4.69 888.27 5.57 Q 888.27 7.01 886.81 7.62 L 889.22 11 L 887.96 11 L 885.91 7.94 L 884.95 7.94 L 884.95 11 M 883.93 11 M 884.95 7.18 L 885.28 7.18 Q 887.21 7.18 887.21 5.66 Q 887.21 4.54 885.59 4.54 L 884.95 4.54 M 884.95 7.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 8.24 L 895.36 5.12 L 894.13 8.24 M 896.59 8.24 M 897.68 11 L 896.89 9 L 893.83 9 L 893.04 11 L 892.08 11 L 894.95 3.77 L 895.96 3.77 L 898.79 11 M 897.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 10.8 Q 906.05 11.18 905.07 11.18 Q 903.35 11.18 902.43 10.2 Q 901.51 9.22 901.51 7.39 Q 901.51 5.59 902.44 4.59 Q 903.37 3.59 905.06 3.59 Q 906.16 3.59 907.35 3.92 L 907.35 4.87 Q 905.86 4.36 905.06 4.36 Q 903.89 4.36 903.24 5.16 Q 902.6 5.95 902.6 7.4 Q 902.6 8.83 903.29 9.62 Q 903.98 10.41 905.23 10.41 Q 905.75 10.41 906.34 10.23 L 906.34 7.88 L 907.36 7.88 M 907.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 11.18 Q 912.62 11.18 911.49 10.86 L 911.49 9.85 Q 912.71 10.41 913.5 10.41 Q 914.1 10.41 914.47 10.1 Q 914.84 9.78 914.84 9.26 Q 914.84 8.84 914.6 8.54 Q 914.35 8.24 913.71 7.88 L 913.21 7.59 Q 912.28 7.06 911.91 6.59 Q 911.53 6.13 911.53 5.51 Q 911.53 4.67 912.13 4.13 Q 912.74 3.59 913.68 3.59 Q 914.51 3.59 915.44 3.87 L 915.44 4.81 Q 914.3 4.36 913.73 4.36 Q 913.2 4.36 912.86 4.64 Q 912.51 4.93 912.51 5.36 Q 912.51 5.72 912.76 6 Q 913.02 6.27 913.69 6.66 L 914.21 6.95 Q 915.15 7.48 915.52 7.96 Q 915.89 8.43 915.89 9.1 Q 915.89 10.04 915.19 10.61 Q 914.5 11.18 913.35 11.18 M 913.35 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 11.18 Q 921.34 11.18 920.43 10.19 Q 919.51 9.2 919.51 7.39 Q 919.51 5.58 920.44 4.59 Q 921.38 3.59 923.08 3.59 Q 924.05 3.59 925.35 3.91 L 925.35 4.87 Q 923.87 4.36 923.06 4.36 Q 921.89 4.36 921.24 5.16 Q 920.6 5.95 920.6 7.4 Q 920.6 8.78 921.29 9.58 Q 921.97 10.38 923.17 10.38 Q 924.19 10.38 925.36 9.75 L 925.36 10.63 Q 924.29 11.18 923.03 11.18 M 923.03 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 11.18 Q 930.62 11.18 929.49 10.86 L 929.49 9.85 Q 930.71 10.41 931.5 10.41 Q 932.1 10.41 932.47 10.1 Q 932.84 9.78 932.84 9.26 Q 932.84 8.84 932.6 8.54 Q 932.35 8.24 931.71 7.88 L 931.21 7.59 Q 930.28 7.06 929.91 6.59 Q 929.53 6.13 929.53 5.51 Q 929.53 4.67 930.13 4.13 Q 930.74 3.59 931.68 3.59 Q 932.51 3.59 933.44 3.87 L 933.44 4.81 Q 932.3 4.36 931.73 4.36 Q 931.2 4.36 930.86 4.64 Q 930.51 4.93 930.51 5.36 Q 930.51 5.72 930.76 6 Q 931.02 6.27 931.69 6.66 L 932.21 6.95 Q 933.15 7.48 933.52 7.96 Q 933.89 8.43 933.89 9.1 Q 933.89 10.04 933.19 10.61 Q 932.5 11.18 931.35 11.18 M 931.35 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 11.18 Q 939.62 11.18 938.49 10.86 L 938.49 9.85 Q 939.71 10.41 940.5 10.41 Q 941.1 10.41 941.47 10.1 Q 941.84 9.78 941.84 9.26 Q 941.84 8.84 941.6 8.54 Q 941.35 8.24 940.71 7.88 L 940.21 7.59 Q 939.28 7.06 938.91 6.59 Q 938.53 6.13 938.53 5.51 Q 938.53 4.67 939.13 4.13 Q 939.74 3.59 940.68 3.59 Q 941.51 3.59 942.44 3.87 L 942.44 4.81 Q 941.3 4.36 940.73 4.36 Q 940.2 4.36 939.86 4.64 Q 939.51 4.93 939.51 5.36 Q 939.51 5.72 939.76 6 Q 940.02 6.27 940.69 6.66 L 941.21 6.95 Q 942.15 7.48 942.52 7.96 Q 942.89 8.43 942.89 9.1 Q 942.89 10.04 942.19 10.61 Q 941.5 11.18 940.35 11.18 M 940.35 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 11.18 Q 948.34 11.18 947.43 10.19 Q 946.51 9.2 946.51 7.39 Q 946.51 5.58 947.44 4.59 Q 948.38 3.59 950.08 3.59 Q 951.05 3.59 952.35 3.91 L 952.35 4.87 Q 950.87 4.36 950.06 4.36 Q 948.89 4.36 948.24 5.16 Q 947.6 5.95 947.6 7.4 Q 947.6 8.78 948.29 9.58 Q 948.97 10.38 950.17 10.38 Q 951.19 10.38 952.36 9.75 L 952.36 10.63 Q 951.29 11.18 950.03 11.18 M 950.03 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 8.24 L 958.36 5.12 L 957.13 8.24 M 959.59 8.24 M 960.68 11 L 959.89 9 L 956.83 9 L 956.04 11 L 955.08 11 L 957.95 3.77 L 958.96 3.77 L 961.79 11 M 960.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 10.8 Q 969.05 11.18 968.07 11.18 Q 966.35 11.18 965.43 10.2 Q 964.51 9.22 964.51 7.39 Q 964.51 5.59 965.44 4.59 Q 966.37 3.59 968.06 3.59 Q 969.16 3.59 970.35 3.92 L 970.35 4.87 Q 968.86 4.36 968.06 4.36 Q 966.89 4.36 966.24 5.16 Q 965.6 5.95 965.6 7.4 Q 965.6 8.83 966.29 9.62 Q 966.98 10.41 968.23 10.41 Q 968.75 10.41 969.34 10.23 L 969.34 7.88 L 970.36 7.88 M 970.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 11 L 973.93 3.77 L 974.89 3.77 L 974.89 7.33 L 977.82 3.77 L 978.85 3.77 L 976.02 7.22 L 979.35 11 L 978.05 11 L 974.89 7.34 L 974.89 11 M 973.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.93 11 L 984.93 3.77 L 985.95 3.77 L 985.95 11 M 984.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 995.59 8.24 L 994.36 5.12 L 993.13 8.24 M 995.59 8.24 M 996.68 11 L 995.89 9 L 992.83 9 L 992.04 11 L 991.08 11 L 993.95 3.77 L 994.96 3.77 L 997.79 11 M 996.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1006.36 10.8 Q 1005.05 11.18 1004.07 11.18 Q 1002.35 11.18 1001.43 10.2 Q 1000.51 9.22 1000.51 7.39 Q 1000.51 5.59 1001.44 4.59 Q 1002.37 3.59 1004.06 3.59 Q 1005.16 3.59 1006.35 3.92 L 1006.35 4.87 Q 1004.86 4.36 1004.06 4.36 Q 1002.89 4.36 1002.24 5.16 Q 1001.6 5.95 1001.6 7.4 Q 1001.6 8.83 1002.29 9.62 Q 1002.98 10.41 1004.23 10.41 Q 1004.75 10.41 1005.34 10.23 L 1005.34 7.88 L 1006.36 7.88 M 1006.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 10.8 Q 1014.05 11.18 1013.07 11.18 Q 1011.35 11.18 1010.43 10.2 Q 1009.51 9.22 1009.51 7.39 Q 1009.51 5.59 1010.44 4.59 Q 1011.37 3.59 1013.06 3.59 Q 1014.16 3.59 1015.35 3.92 L 1015.35 4.87 Q 1013.86 4.36 1013.06 4.36 Q 1011.89 4.36 1011.24 5.16 Q 1010.6 5.95 1010.6 7.4 Q 1010.6 8.83 1011.29 9.62 Q 1011.98 10.41 1013.23 10.41 Q 1013.75 10.41 1014.34 10.23 L 1014.34 7.88 L 1015.36 7.88 M 1015.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1022.59 8.24 L 1021.36 5.12 L 1020.13 8.24 M 1022.59 8.24 M 1023.68 11 L 1022.89 9 L 1019.83 9 L 1019.04 11 L 1018.08 11 L 1020.95 3.77 L 1021.96 3.77 L 1024.79 11 M 1023.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 11 L 1027.18 3.77 L 1028.2 3.77 L 1030.44 9.69 L 1032.6 3.77 L 1033.49 3.77 L 1030.87 11 M 1029.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 11 L 1036.93 3.77 L 1039.33 3.77 Q 1040.41 3.77 1041.07 4.01 Q 1041.73 4.25 1042.22 4.82 Q 1042.98 5.73 1042.98 7.22 Q 1042.98 9.02 1042.03 10.01 Q 1041.08 11 1039.35 11 M 1036.93 11 M 1037.96 10.23 L 1039.27 10.23 Q 1040.68 10.23 1041.26 9.48 Q 1041.89 8.67 1041.89 7.31 Q 1041.89 6.04 1041.27 5.31 Q 1040.9 4.87 1040.38 4.7 Q 1039.85 4.54 1038.8 4.54 L 1037.96 4.54 M 1037.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 12.45 Q 1049.64 11.89 1048.49 11.13 Q 1048.03 11.18 1047.78 11.18 Q 1046.33 11.18 1045.42 10.13 Q 1044.51 9.07 1044.51 7.39 Q 1044.51 5.66 1045.43 4.63 Q 1046.35 3.59 1047.89 3.59 Q 1049.43 3.59 1050.35 4.63 Q 1051.27 5.66 1051.27 7.4 Q 1051.27 9.89 1049.42 10.85 Q 1050.66 11.4 1052 11.63 M 1051.35 12.45 M 1047.86 10.41 Q 1048.97 10.41 1049.57 9.62 Q 1050.18 8.82 1050.18 7.37 Q 1050.18 5.96 1049.57 5.16 Q 1048.97 4.36 1047.89 4.36 Q 1046.81 4.36 1046.2 5.16 Q 1045.6 5.96 1045.6 7.38 Q 1045.6 8.79 1046.2 9.6 Q 1046.8 10.41 1047.86 10.41 M 1047.86 10.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1056.65 11 L 1056.65 4.54 L 1054.09 4.54 L 1054.09 3.77 L 1060.24 3.77 L 1060.24 4.54 L 1057.68 4.54 L 1057.68 11 M 1056.65 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 11 L 1063.93 3.77 L 1066.33 3.77 Q 1067.41 3.77 1068.07 4.01 Q 1068.73 4.25 1069.22 4.82 Q 1069.98 5.73 1069.98 7.22 Q 1069.98 9.02 1069.03 10.01 Q 1068.08 11 1066.35 11 M 1063.93 11 M 1064.96 10.23 L 1066.27 10.23 Q 1067.68 10.23 1068.26 9.48 Q 1068.89 8.67 1068.89 7.31 Q 1068.89 6.04 1068.27 5.31 Q 1067.9 4.87 1067.38 4.7 Q 1066.85 4.54 1065.8 4.54 L 1064.96 4.54 M 1064.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 10.8 Q 1077.05 11.18 1076.07 11.18 Q 1074.35 11.18 1073.43 10.2 Q 1072.51 9.22 1072.51 7.39 Q 1072.51 5.59 1073.44 4.59 Q 1074.37 3.59 1076.06 3.59 Q 1077.16 3.59 1078.35 3.92 L 1078.35 4.87 Q 1076.86 4.36 1076.06 4.36 Q 1074.89 4.36 1074.24 5.16 Q 1073.6 5.95 1073.6 7.4 Q 1073.6 8.83 1074.29 9.62 Q 1074.98 10.41 1076.23 10.41 Q 1076.75 10.41 1077.34 10.23 L 1077.34 7.88 L 1078.36 7.88 M 1078.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1081.93 11 L 1081.93 3.77 L 1082.94 3.77 L 1086.58 9.35 L 1086.58 3.77 L 1087.46 3.77 L 1087.46 11 L 1086.45 11 L 1082.81 5.42 L 1082.81 11 M 1081.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 11 L 1091.93 3.77 L 1095.97 3.77 L 1095.97 4.54 L 1092.96 4.54 L 1092.96 6.96 L 1095.49 6.96 L 1095.49 7.72 L 1092.96 7.72 L 1092.96 11 M 1091.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 11 L 1100.93 3.77 L 1101.96 3.77 L 1101.96 10.23 L 1105.21 10.23 L 1105.21 11 M 1100.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 11 L 1108.93 3.77 L 1111.33 3.77 Q 1112.41 3.77 1113.07 4.01 Q 1113.73 4.25 1114.22 4.82 Q 1114.98 5.73 1114.98 7.22 Q 1114.98 9.02 1114.03 10.01 Q 1113.08 11 1111.35 11 M 1108.93 11 M 1109.96 10.23 L 1111.27 10.23 Q 1112.68 10.23 1113.26 9.48 Q 1113.89 8.67 1113.89 7.31 Q 1113.89 6.04 1113.27 5.31 Q 1112.9 4.87 1112.38 4.7 Q 1111.85 4.54 1110.8 4.54 L 1109.96 4.54 M 1109.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 11 L 1117.93 3.77 L 1120.33 3.77 Q 1121.41 3.77 1122.07 4.01 Q 1122.73 4.25 1123.22 4.82 Q 1123.98 5.73 1123.98 7.22 Q 1123.98 9.02 1123.03 10.01 Q 1122.08 11 1120.35 11 M 1117.93 11 M 1118.96 10.23 L 1120.27 10.23 Q 1121.68 10.23 1122.26 9.48 Q 1122.89 8.67 1122.89 7.31 Q 1122.89 6.04 1122.27 5.31 Q 1121.9 4.87 1121.38 4.7 Q 1120.85 4.54 1119.8 4.54 L 1118.96 4.54 M 1118.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 11 L 1126.93 3.77 L 1129.33 3.77 Q 1130.41 3.77 1131.07 4.01 Q 1131.73 4.25 1132.22 4.82 Q 1132.98 5.73 1132.98 7.22 Q 1132.98 9.02 1132.03 10.01 Q 1131.08 11 1129.35 11 M 1126.93 11 M 1127.96 10.23 L 1129.27 10.23 Q 1130.68 10.23 1131.26 9.48 Q 1131.89 8.67 1131.89 7.31 Q 1131.89 6.04 1131.27 5.31 Q 1130.9 4.87 1130.38 4.7 Q 1129.85 4.54 1128.8 4.54 L 1127.96 4.54 M 1127.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 12.45 Q 1139.64 11.89 1138.49 11.13 Q 1138.03 11.18 1137.78 11.18 Q 1136.33 11.18 1135.42 10.13 Q 1134.51 9.07 1134.51 7.39 Q 1134.51 5.66 1135.43 4.63 Q 1136.35 3.59 1137.89 3.59 Q 1139.43 3.59 1140.35 4.63 Q 1141.27 5.66 1141.27 7.4 Q 1141.27 9.89 1139.42 10.85 Q 1140.66 11.4 1142 11.63 M 1141.35 12.45 M 1137.86 10.41 Q 1138.97 10.41 1139.57 9.62 Q 1140.18 8.82 1140.18 7.37 Q 1140.18 5.96 1139.57 5.16 Q 1138.97 4.36 1137.89 4.36 Q 1136.81 4.36 1136.2 5.16 Q 1135.6 5.96 1135.6 7.38 Q 1135.6 8.79 1136.2 9.6 Q 1136.8 10.41 1137.86 10.41 M 1137.86 10.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1145.93 11 L 1145.93 3.77 L 1146.96 3.77 L 1146.96 10.23 L 1150.21 10.23 L 1150.21 11 M 1145.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1154.93 11 L 1154.93 3.77 L 1158.97 3.77 L 1158.97 4.54 L 1155.96 4.54 L 1155.96 6.86 L 1158.48 6.86 L 1158.48 7.62 L 1155.96 7.62 L 1155.96 10.23 L 1159.18 10.23 L 1159.18 11 M 1154.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 11 L 1163.93 3.77 L 1167.97 3.77 L 1167.97 4.54 L 1164.96 4.54 L 1164.96 6.86 L 1167.48 6.86 L 1167.48 7.62 L 1164.96 7.62 L 1164.96 10.23 L 1168.18 10.23 L 1168.18 11 M 1163.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 10.8 Q 1176.05 11.18 1175.07 11.18 Q 1173.35 11.18 1172.43 10.2 Q 1171.51 9.22 1171.51 7.39 Q 1171.51 5.59 1172.44 4.59 Q 1173.37 3.59 1175.06 3.59 Q 1176.16 3.59 1177.35 3.92 L 1177.35 4.87 Q 1175.86 4.36 1175.06 4.36 Q 1173.89 4.36 1173.24 5.16 Q 1172.6 5.95 1172.6 7.4 Q 1172.6 8.83 1173.29 9.62 Q 1173.98 10.41 1175.23 10.41 Q 1175.75 10.41 1176.34 10.23 L 1176.34 7.88 L 1177.36 7.88 M 1177.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 11 L 1179.01 3.77 L 1180 3.77 L 1181.48 9.48 L 1182.84 3.77 L 1183.82 3.77 L 1185.11 9.4 L 1186.71 3.77 L 1187.54 3.77 L 1185.51 11 L 1184.49 11 L 1183.22 5.43 L 1181.89 11 M 1180.87 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 11 L 1189.18 3.77 L 1190.2 3.77 L 1192.44 9.69 L 1194.6 3.77 L 1195.49 3.77 L 1192.87 11 M 1191.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 11 L 1199.93 3.77 L 1200.96 3.77 L 1200.96 10.23 L 1204.21 10.23 L 1204.21 11 M 1199.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 11 L 1209.65 4.54 L 1207.09 4.54 L 1207.09 3.77 L 1213.24 3.77 L 1213.24 4.54 L 1210.68 4.54 L 1210.68 11 M 1209.65 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 11.18 Q 1218.34 11.18 1217.43 10.19 Q 1216.51 9.2 1216.51 7.39 Q 1216.51 5.58 1217.44 4.59 Q 1218.38 3.59 1220.08 3.59 Q 1221.05 3.59 1222.35 3.91 L 1222.35 4.87 Q 1220.87 4.36 1220.06 4.36 Q 1218.89 4.36 1218.24 5.16 Q 1217.6 5.95 1217.6 7.4 Q 1217.6 8.78 1218.29 9.58 Q 1218.97 10.38 1220.17 10.38 Q 1221.19 10.38 1222.36 9.75 L 1222.36 10.63 Q 1221.29 11.18 1220.03 11.18 M 1220.03 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 11 L 1225.18 3.77 L 1226.2 3.77 L 1228.44 9.69 L 1230.6 3.77 L 1231.49 3.77 L 1228.87 11 M 1227.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 8.24 L 1237.36 5.12 L 1236.13 8.24 M 1238.59 8.24 M 1239.68 11 L 1238.89 9 L 1235.83 9 L 1235.04 11 L 1234.08 11 L 1236.95 3.77 L 1237.96 3.77 L 1240.79 11 M 1239.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 11 L 1245.5 7.98 L 1243.08 3.77 L 1244.25 3.77 L 1246.13 7.04 L 1248.15 3.77 L 1249.1 3.77 L 1246.52 7.96 L 1246.52 11 M 1245.5 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 11 L 1252.93 3.77 L 1254.9 3.77 Q 1256.21 3.77 1256.78 4.22 Q 1257.35 4.66 1257.35 5.67 Q 1257.35 6.82 1256.57 7.47 Q 1255.79 8.13 1254.4 8.13 L 1253.95 8.13 L 1253.95 11 M 1252.93 11 M 1253.95 7.35 L 1254.36 7.35 Q 1255.28 7.35 1255.77 6.93 Q 1256.27 6.51 1256.27 5.75 Q 1256.27 5.1 1255.88 4.82 Q 1255.49 4.54 1254.58 4.54 L 1253.95 4.54 M 1253.95 7.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1267.35 12.45 Q 1265.64 11.89 1264.49 11.13 Q 1264.03 11.18 1263.78 11.18 Q 1262.33 11.18 1261.42 10.13 Q 1260.51 9.07 1260.51 7.39 Q 1260.51 5.66 1261.43 4.63 Q 1262.35 3.59 1263.89 3.59 Q 1265.43 3.59 1266.35 4.63 Q 1267.27 5.66 1267.27 7.4 Q 1267.27 9.89 1265.42 10.85 Q 1266.66 11.4 1268 11.63 M 1267.35 12.45 M 1263.86 10.41 Q 1264.97 10.41 1265.57 9.62 Q 1266.18 8.82 1266.18 7.37 Q 1266.18 5.96 1265.57 5.16 Q 1264.97 4.36 1263.89 4.36 Q 1262.81 4.36 1262.2 5.16 Q 1261.6 5.96 1261.6 7.38 Q 1261.6 8.79 1262.2 9.6 Q 1262.8 10.41 1263.86 10.41 M 1263.86 10.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 11.18 Q 1272.62 11.18 1271.49 10.86 L 1271.49 9.85 Q 1272.71 10.41 1273.5 10.41 Q 1274.1 10.41 1274.47 10.1 Q 1274.84 9.78 1274.84 9.26 Q 1274.84 8.84 1274.6 8.54 Q 1274.35 8.24 1273.71 7.88 L 1273.21 7.59 Q 1272.28 7.06 1271.91 6.59 Q 1271.53 6.13 1271.53 5.51 Q 1271.53 4.67 1272.13 4.13 Q 1272.74 3.59 1273.68 3.59 Q 1274.51 3.59 1275.44 3.87 L 1275.44 4.81 Q 1274.3 4.36 1273.73 4.36 Q 1273.2 4.36 1272.86 4.64 Q 1272.51 4.93 1272.51 5.36 Q 1272.51 5.72 1272.76 6 Q 1273.02 6.27 1273.69 6.66 L 1274.21 6.95 Q 1275.15 7.48 1275.52 7.96 Q 1275.89 8.43 1275.89 9.1 Q 1275.89 10.04 1275.19 10.61 Q 1274.5 11.18 1273.35 11.18 M 1273.35 11.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 11 L 1279.93 3.77 L 1282.33 3.77 Q 1283.41 3.77 1284.07 4.01 Q 1284.73 4.25 1285.22 4.82 Q 1285.98 5.73 1285.98 7.22 Q 1285.98 9.02 1285.03 10.01 Q 1284.08 11 1282.35 11 M 1279.93 11 M 1280.96 10.23 L 1282.27 10.23 Q 1283.68 10.23 1284.26 9.48 Q 1284.89 8.67 1284.89 7.31 Q 1284.89 6.04 1284.27 5.31 Q 1283.9 4.87 1283.38 4.7 Q 1282.85 4.54 1281.8 4.54 L 1280.96 4.54 M 1280.96 10.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 11 L 1288.18 3.77 L 1289.2 3.77 L 1291.44 9.69 L 1293.6 3.77 L 1294.49 3.77 L 1291.87 11 M 1290.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 11 L 1299.65 4.54 L 1297.09 4.54 L 1297.09 3.77 L 1303.24 3.77 L 1303.24 4.54 L 1300.68 4.54 L 1300.68 11 M 1299.65 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 11 L 1308.93 3.77 L 1309.95 3.77 L 1309.95 11 M 1308.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 11 L 1316.93 3.77 L 1320.97 3.77 L 1320.97 4.54 L 1317.96 4.54 L 1317.96 6.86 L 1320.48 6.86 L 1320.48 7.62 L 1317.96 7.62 L 1317.96 10.23 L 1321.18 10.23 L 1321.18 11 M 1316.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 11 L 1326.65 4.54 L 1324.09 4.54 L 1324.09 3.77 L 1330.24 3.77 L 1330.24 4.54 L 1327.68 4.54 L 1327.68 11 M 1326.65 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 11 L 1333.93 3.77 L 1334.96 3.77 L 1334.96 6.82 L 1338.4 6.82 L 1338.4 3.77 L 1339.42 3.77 L 1339.42 11 L 1338.4 11 L 1338.4 7.59 L 1334.96 7.59 L 1334.96 11 M 1333.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 11 L 1342.93 3.77 L 1343.89 3.77 L 1343.89 7.33 L 1346.82 3.77 L 1347.85 3.77 L 1345.02 7.22 L 1348.35 11 L 1347.05 11 L 1343.89 7.34 L 1343.89 11 M 1342.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 11 L 1352.93 3.77 L 1356.97 3.77 L 1356.97 4.54 L 1353.96 4.54 L 1353.96 6.86 L 1356.48 6.86 L 1356.48 7.62 L 1353.96 7.62 L 1353.96 10.23 L 1357.18 10.23 L 1357.18 11 M 1352.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1364.59 8.24 L 1363.36 5.12 L 1362.13 8.24 M 1364.59 8.24 M 1365.68 11 L 1364.89 9 L 1361.83 9 L 1361.04 11 L 1360.08 11 L 1362.95 3.77 L 1363.96 3.77 L 1366.79 11 M 1365.68 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 11 L 1370.93 3.77 L 1374.97 3.77 L 1374.97 4.54 L 1371.96 4.54 L 1371.96 6.86 L 1374.48 6.86 L 1374.48 7.62 L 1371.96 7.62 L 1371.96 10.23 L 1375.18 10.23 L 1375.18 11 M 1370.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 11 L 1379.93 3.77 L 1380.96 3.77 L 1380.96 10.23 L 1384.21 10.23 L 1384.21 11 M 1379.93 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.91 11 L 1387.18 3.77 L 1388.2 3.77 L 1390.44 9.69 L 1392.6 3.77 L 1393.49 3.77 L 1390.87 11 M 1389.91 11"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1402.36 10.8 Q 1401.05 11.18 1400.07 11.18 Q 1398.35 11.18 1397.43 10.2 Q 1396.51 9.22 1396.51 7.39 Q 1396.51 5.59 1397.44 4.59 Q 1398.37 3.59 1400.06 3.59 Q 1401.16 3.59 1402.35 3.92 L 1402.35 4.87 Q 1400.86 4.36 1400.06 4.36 Q 1398.89 4.36 1398.24 5.16 Q 1397.6 5.95 1397.6 7.4 Q 1397.6 8.83 1398.29 9.62 Q 1398.98 10.41 1400.23 10.41 Q 1400.75 10.41 1401.34 10.23 L 1401.34 7.88 L 1402.36 7.88 M 1402.36 10.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 8.47 L 1405.72 7.75 L 1410.06 7.75 L 1410.06 8.47 M 1405.72 8.47"/></g><rect x="0" y="13" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="13" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="13" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="13" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="13" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="13" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="13" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="13" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="711" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="13" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="13" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="13" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="13" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="13" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="13" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="13" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="13" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="13" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="13" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="13" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="13" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="13" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="13" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="13" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="13" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="13" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="13" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="13" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="13" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="13" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="13" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 24 L 0.93 16.77 L 2.35 16.77 L 4.36 22.36 L 6.42 16.77 L 7.69 16.77 L 7.69 24 L 6.73 24 L 6.73 18.12 L 4.74 23.52 L 3.75 23.52 L 1.81 18.11 L 1.81 24 M 0.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 21.24 L 13.36 18.12 L 12.13 21.24 M 14.59 21.24 M 15.68 24 L 14.89 22 L 11.83 22 L 11.04 24 L 10.08 24 L 12.95 16.77 L 13.96 16.77 L 16.79 24 M 15.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 19.72 21.47 L 19.72 20.75 L 24.06 20.75 L 24.06 21.47 M 19.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 28.72 21.47 L 28.72 20.75 L 33.06 20.75 L 33.06 21.47 M 28.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 21.47 L 37.72 20.75 L 42.06 20.75 L 42.06 21.47 M 37.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 21.47 L 46.72 20.75 L 51.06 20.75 L 51.06 21.47 M 46.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 21.47 L 55.72 20.75 L 60.06 20.75 L 60.06 21.47 M 55.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 21.47 L 64.72 20.75 L 69.06 20.75 L 69.06 21.47 M 64.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 76.35 24.18 Q 75.62 24.18 74.49 23.86 L 74.49 22.85 Q 75.71 23.41 76.5 23.41 Q 77.1 23.41 77.47 23.1 Q 77.84 22.78 77.84 22.26 Q 77.84 21.84 77.6 21.54 Q 77.35 21.24 76.71 20.88 L 76.21 20.59 Q 75.28 20.06 74.91 19.59 Q 74.53 19.13 74.53 18.51 Q 74.53 17.67 75.13 17.13 Q 75.74 16.59 76.68 16.59 Q 77.51 16.59 78.44 16.87 L 78.44 17.81 Q 77.3 17.36 76.73 17.36 Q 76.2 17.36 75.86 17.64 Q 75.51 17.93 75.51 18.36 Q 75.51 18.72 75.76 19 Q 76.02 19.27 76.69 19.66 L 77.21 19.95 Q 78.15 20.48 78.52 20.96 Q 78.89 21.43 78.89 22.1 Q 78.89 23.04 78.19 23.61 Q 77.5 24.18 76.35 24.18 M 76.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 84.91 24 L 82.18 16.77 L 83.2 16.77 L 85.44 22.69 L 87.6 16.77 L 88.49 16.77 L 85.87 24 M 84.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 24.18 Q 93.62 24.18 92.49 23.86 L 92.49 22.85 Q 93.71 23.41 94.5 23.41 Q 95.1 23.41 95.47 23.1 Q 95.84 22.78 95.84 22.26 Q 95.84 21.84 95.6 21.54 Q 95.35 21.24 94.71 20.88 L 94.21 20.59 Q 93.28 20.06 92.91 19.59 Q 92.53 19.13 92.53 18.51 Q 92.53 17.67 93.13 17.13 Q 93.74 16.59 94.68 16.59 Q 95.51 16.59 96.44 16.87 L 96.44 17.81 Q 95.3 17.36 94.73 17.36 Q 94.2 17.36 93.86 17.64 Q 93.51 17.93 93.51 18.36 Q 93.51 18.72 93.76 19 Q 94.02 19.27 94.69 19.66 L 95.21 19.95 Q 96.15 20.48 96.52 20.96 Q 96.89 21.43 96.89 22.1 Q 96.89 23.04 96.19 23.61 Q 95.5 24.18 94.35 24.18 M 94.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 104.59 21.24 L 103.36 18.12 L 102.13 21.24 M 104.59 21.24 M 105.68 24 L 104.89 22 L 101.83 22 L 101.04 24 L 100.08 24 L 102.95 16.77 L 103.96 16.77 L 106.79 24 M 105.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 111.65 24 L 111.65 17.54 L 109.09 17.54 L 109.09 16.77 L 115.24 16.77 L 115.24 17.54 L 112.68 17.54 L 112.68 24 M 111.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 117.93 24 L 117.93 16.77 L 119.35 16.77 L 121.36 22.36 L 123.42 16.77 L 124.69 16.77 L 124.69 24 L 123.73 24 L 123.73 18.12 L 121.74 23.52 L 120.75 23.52 L 118.81 18.11 L 118.81 24 M 117.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.93 24 L 129.93 16.77 L 130.95 16.77 L 130.95 24 M 129.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 24.18 Q 138.62 24.18 137.49 23.86 L 137.49 22.85 Q 138.71 23.41 139.5 23.41 Q 140.1 23.41 140.47 23.1 Q 140.84 22.78 140.84 22.26 Q 140.84 21.84 140.6 21.54 Q 140.35 21.24 139.71 20.88 L 139.21 20.59 Q 138.28 20.06 137.91 19.59 Q 137.53 19.13 137.53 18.51 Q 137.53 17.67 138.13 17.13 Q 138.74 16.59 139.68 16.59 Q 140.51 16.59 141.44 16.87 L 141.44 17.81 Q 140.3 17.36 139.73 17.36 Q 139.2 17.36 138.86 17.64 Q 138.51 17.93 138.51 18.36 Q 138.51 18.72 138.76 19 Q 139.02 19.27 139.69 19.66 L 140.21 19.95 Q 141.15 20.48 141.52 20.96 Q 141.89 21.43 141.89 22.1 Q 141.89 23.04 141.19 23.61 Q 140.5 24.18 139.35 24.18 M 139.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 24 L 147.65 17.54 L 145.09 17.54 L 145.09 16.77 L 151.24 16.77 L 151.24 17.54 L 148.68 17.54 L 148.68 24 M 147.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 24.18 Q 156.62 24.18 155.49 23.86 L 155.49 22.85 Q 156.71 23.41 157.5 23.41 Q 158.1 23.41 158.47 23.1 Q 158.84 22.78 158.84 22.26 Q 158.84 21.84 158.6 21.54 Q 158.35 21.24 157.71 20.88 L 157.21 20.59 Q 156.28 20.06 155.91 19.59 Q 155.53 19.13 155.53 18.51 Q 155.53 17.67 156.13 17.13 Q 156.74 16.59 157.68 16.59 Q 158.51 16.59 159.44 16.87 L 159.44 17.81 Q 158.3 17.36 157.73 17.36 Q 157.2 17.36 156.86 17.64 Q 156.51 17.93 156.51 18.36 Q 156.51 18.72 156.76 19 Q 157.02 19.27 157.69 19.66 L 158.21 19.95 Q 159.15 20.48 159.52 20.96 Q 159.89 21.43 159.89 22.1 Q 159.89 23.04 159.19 23.61 Q 158.5 24.18 157.35 24.18 M 157.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 24 L 164.93 16.77 L 168.97 16.77 L 168.97 17.54 L 165.96 17.54 L 165.96 19.96 L 168.49 19.96 L 168.49 20.72 L 165.96 20.72 L 165.96 24 M 164.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 171.93 24 L 171.93 16.77 L 173.35 16.77 L 175.36 22.36 L 177.42 16.77 L 178.69 16.77 L 178.69 24 L 177.73 24 L 177.73 18.12 L 175.74 23.52 L 174.75 23.52 L 172.81 18.11 L 172.81 24 M 171.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 24 L 181.93 16.77 L 183.9 16.77 Q 185.21 16.77 185.78 17.22 Q 186.35 17.66 186.35 18.67 Q 186.35 19.82 185.57 20.47 Q 184.79 21.13 183.4 21.13 L 182.95 21.13 L 182.95 24 M 181.93 24 M 182.95 20.35 L 183.36 20.35 Q 184.28 20.35 184.77 19.93 Q 185.27 19.51 185.27 18.75 Q 185.27 18.1 184.88 17.82 Q 184.49 17.54 183.58 17.54 L 182.95 17.54 M 182.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 24 L 190.93 16.77 L 193.12 16.77 Q 194.16 16.77 194.71 17.23 Q 195.27 17.69 195.27 18.57 Q 195.27 20.01 193.81 20.62 L 196.22 24 L 194.96 24 L 192.91 20.94 L 191.95 20.94 L 191.95 24 M 190.93 24 M 191.95 20.18 L 192.28 20.18 Q 194.21 20.18 194.21 18.66 Q 194.21 17.54 192.59 17.54 L 191.95 17.54 M 191.95 20.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.93 24 L 199.93 16.77 L 200.89 16.77 L 200.89 20.33 L 203.82 16.77 L 204.85 16.77 L 202.02 20.22 L 205.35 24 L 204.05 24 L 200.89 20.34 L 200.89 24 M 199.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 24 L 208.93 16.77 L 210.9 16.77 Q 212.21 16.77 212.78 17.22 Q 213.35 17.66 213.35 18.67 Q 213.35 19.82 212.57 20.47 Q 211.79 21.13 210.4 21.13 L 209.95 21.13 L 209.95 24 M 208.93 24 M 209.95 20.35 L 210.36 20.35 Q 211.28 20.35 211.77 19.93 Q 212.27 19.51 212.27 18.75 Q 212.27 18.1 211.88 17.82 Q 211.49 17.54 210.58 17.54 L 209.95 17.54 M 209.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 221.59 21.24 L 220.36 18.12 L 219.13 21.24 M 221.59 21.24 M 222.68 24 L 221.89 22 L 218.83 22 L 218.04 24 L 217.08 24 L 219.95 16.77 L 220.96 16.77 L 223.79 24 M 222.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 228.91 24 L 226.18 16.77 L 227.2 16.77 L 229.44 22.69 L 231.6 16.77 L 232.49 16.77 L 229.87 24 M 228.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.65 24 L 237.65 17.54 L 235.09 17.54 L 235.09 16.77 L 241.24 16.77 L 241.24 17.54 L 238.68 17.54 L 238.68 24 M 237.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 24.18 Q 246.62 24.18 245.49 23.86 L 245.49 22.85 Q 246.71 23.41 247.5 23.41 Q 248.1 23.41 248.47 23.1 Q 248.84 22.78 248.84 22.26 Q 248.84 21.84 248.6 21.54 Q 248.35 21.24 247.71 20.88 L 247.21 20.59 Q 246.28 20.06 245.91 19.59 Q 245.53 19.13 245.53 18.51 Q 245.53 17.67 246.13 17.13 Q 246.74 16.59 247.68 16.59 Q 248.51 16.59 249.44 16.87 L 249.44 17.81 Q 248.3 17.36 247.73 17.36 Q 247.2 17.36 246.86 17.64 Q 246.51 17.93 246.51 18.36 Q 246.51 18.72 246.76 19 Q 247.02 19.27 247.69 19.66 L 248.21 19.95 Q 249.15 20.48 249.52 20.96 Q 249.89 21.43 249.89 22.1 Q 249.89 23.04 249.19 23.61 Q 248.5 24.18 247.35 24.18 M 247.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 254.93 24 L 254.93 16.77 L 255.96 16.77 L 255.96 23.23 L 259.21 23.23 L 259.21 24 M 254.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 21.47 L 262.72 20.75 L 267.06 20.75 L 267.06 21.47 M 262.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.93 24 L 271.93 16.77 L 272.89 16.77 L 272.89 20.33 L 275.82 16.77 L 276.85 16.77 L 274.02 20.22 L 277.35 24 L 276.05 24 L 272.89 20.34 L 272.89 24 M 271.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 280.93 24 L 280.93 16.77 L 282.9 16.77 Q 284.21 16.77 284.78 17.22 Q 285.35 17.66 285.35 18.67 Q 285.35 19.82 284.57 20.47 Q 283.79 21.13 282.4 21.13 L 281.95 21.13 L 281.95 24 M 280.93 24 M 281.95 20.35 L 282.36 20.35 Q 283.28 20.35 283.77 19.93 Q 284.27 19.51 284.27 18.75 Q 284.27 18.1 283.88 17.82 Q 283.49 17.54 282.58 17.54 L 281.95 17.54 M 281.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 291.93 24 L 291.93 16.77 L 292.95 16.77 L 292.95 24 M 291.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 298.93 24 L 298.93 16.77 L 300.9 16.77 Q 302.21 16.77 302.78 17.22 Q 303.35 17.66 303.35 18.67 Q 303.35 19.82 302.57 20.47 Q 301.79 21.13 300.4 21.13 L 299.95 21.13 L 299.95 24 M 298.93 24 M 299.95 20.35 L 300.36 20.35 Q 301.28 20.35 301.77 19.93 Q 302.27 19.51 302.27 18.75 Q 302.27 18.1 301.88 17.82 Q 301.49 17.54 300.58 17.54 L 299.95 17.54 M 299.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.93 24 L 307.93 16.77 L 308.94 16.77 L 312.58 22.35 L 312.58 16.77 L 313.46 16.77 L 313.46 24 L 312.45 24 L 308.81 18.42 L 308.81 24 M 307.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 318.91 24 L 316.18 16.77 L 317.2 16.77 L 319.44 22.69 L 321.6 16.77 L 322.49 16.77 L 319.87 24 M 318.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 331.36 23.8 Q 330.05 24.18 329.07 24.18 Q 327.35 24.18 326.43 23.2 Q 325.51 22.22 325.51 20.39 Q 325.51 18.59 326.44 17.59 Q 327.37 16.59 329.06 16.59 Q 330.16 16.59 331.35 16.92 L 331.35 17.87 Q 329.86 17.36 329.06 17.36 Q 327.89 17.36 327.24 18.16 Q 326.6 18.95 326.6 20.4 Q 326.6 21.83 327.29 22.62 Q 327.98 23.41 329.23 23.41 Q 329.75 23.41 330.34 23.23 L 330.34 20.88 L 331.36 20.88 M 331.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 335.93 24 L 335.93 16.77 L 339.97 16.77 L 339.97 17.54 L 336.96 17.54 L 336.96 19.86 L 339.48 19.86 L 339.48 20.62 L 336.96 20.62 L 336.96 23.23 L 340.18 23.23 L 340.18 24 M 335.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 21.47 L 343.72 20.75 L 348.06 20.75 L 348.06 21.47 M 343.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 21.47 L 352.72 20.75 L 357.06 20.75 L 357.06 21.47 M 352.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 365.59 21.24 L 364.36 18.12 L 363.13 21.24 M 365.59 21.24 M 366.68 24 L 365.89 22 L 362.83 22 L 362.04 24 L 361.08 24 L 363.95 16.77 L 364.96 16.77 L 367.79 24 M 366.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 24 L 371.93 16.77 L 372.96 16.77 L 372.96 23.23 L 376.21 23.23 L 376.21 24 M 371.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 24 L 380.93 16.77 L 384.97 16.77 L 384.97 17.54 L 381.96 17.54 L 381.96 19.96 L 384.49 19.96 L 384.49 20.72 L 381.96 20.72 L 381.96 24 M 380.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 23.8 Q 393.05 24.18 392.07 24.18 Q 390.35 24.18 389.43 23.2 Q 388.51 22.22 388.51 20.39 Q 388.51 18.59 389.44 17.59 Q 390.37 16.59 392.06 16.59 Q 393.16 16.59 394.35 16.92 L 394.35 17.87 Q 392.86 17.36 392.06 17.36 Q 390.89 17.36 390.24 18.16 Q 389.6 18.95 389.6 20.4 Q 389.6 21.83 390.29 22.62 Q 390.98 23.41 392.23 23.41 Q 392.75 23.41 393.34 23.23 L 393.34 20.88 L 394.36 20.88 M 394.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 24 L 398.93 16.77 L 399.96 16.77 L 399.96 23.23 L 403.21 23.23 L 403.21 24 M 398.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 24 L 406.93 16.77 L 407.89 16.77 L 407.89 20.33 L 410.82 16.77 L 411.85 16.77 L 409.02 20.22 L 412.35 24 L 411.05 24 L 407.89 20.34 L 407.89 24 M 406.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 24.18 Q 417.62 24.18 416.49 23.86 L 416.49 22.85 Q 417.71 23.41 418.5 23.41 Q 419.1 23.41 419.47 23.1 Q 419.84 22.78 419.84 22.26 Q 419.84 21.84 419.6 21.54 Q 419.35 21.24 418.71 20.88 L 418.21 20.59 Q 417.28 20.06 416.91 19.59 Q 416.53 19.13 416.53 18.51 Q 416.53 17.67 417.13 17.13 Q 417.74 16.59 418.68 16.59 Q 419.51 16.59 420.44 16.87 L 420.44 17.81 Q 419.3 17.36 418.73 17.36 Q 418.2 17.36 417.86 17.64 Q 417.51 17.93 417.51 18.36 Q 417.51 18.72 417.76 19 Q 418.02 19.27 418.69 19.66 L 419.21 19.95 Q 420.15 20.48 420.52 20.96 Q 420.89 21.43 420.89 22.1 Q 420.89 23.04 420.19 23.61 Q 419.5 24.18 418.35 24.18 M 418.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 21.47 L 424.72 20.75 L 429.06 20.75 L 429.06 21.47 M 424.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 437.59 21.24 L 436.36 18.12 L 435.13 21.24 M 437.59 21.24 M 438.68 24 L 437.89 22 L 434.83 22 L 434.04 24 L 433.08 24 L 435.95 16.77 L 436.96 16.77 L 439.79 24 M 438.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.72 21.47 L 442.72 20.75 L 447.06 20.75 L 447.06 21.47 M 442.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.72 21.47 L 451.72 20.75 L 456.06 20.75 L 456.06 21.47 M 451.72 21.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 24 L 460.93 16.77 L 461.94 16.77 L 465.58 22.35 L 465.58 16.77 L 466.46 16.77 L 466.46 24 L 465.45 24 L 461.81 18.42 L 461.81 24 M 460.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 475.36 23.8 Q 474.05 24.18 473.07 24.18 Q 471.35 24.18 470.43 23.2 Q 469.51 22.22 469.51 20.39 Q 469.51 18.59 470.44 17.59 Q 471.37 16.59 473.06 16.59 Q 474.16 16.59 475.35 16.92 L 475.35 17.87 Q 473.86 17.36 473.06 17.36 Q 471.89 17.36 471.24 18.16 Q 470.6 18.95 470.6 20.4 Q 470.6 21.83 471.29 22.62 Q 471.98 23.41 473.23 23.41 Q 473.75 23.41 474.34 23.23 L 474.34 20.88 L 475.36 20.88 M 475.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 23.8 Q 483.05 24.18 482.07 24.18 Q 480.35 24.18 479.43 23.2 Q 478.51 22.22 478.51 20.39 Q 478.51 18.59 479.44 17.59 Q 480.37 16.59 482.06 16.59 Q 483.16 16.59 484.35 16.92 L 484.35 17.87 Q 482.86 17.36 482.06 17.36 Q 480.89 17.36 480.24 18.16 Q 479.6 18.95 479.6 20.4 Q 479.6 21.83 480.29 22.62 Q 480.98 23.41 482.23 23.41 Q 482.75 23.41 483.34 23.23 L 483.34 20.88 L 484.36 20.88 M 484.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 24 L 487.93 16.77 L 488.89 16.77 L 488.89 20.33 L 491.82 16.77 L 492.85 16.77 L 490.02 20.22 L 493.35 24 L 492.05 24 L 488.89 20.34 L 488.89 24 M 487.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.91 24 L 496.18 16.77 L 497.2 16.77 L 499.44 22.69 L 501.6 16.77 L 502.49 16.77 L 499.87 24 M 498.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 24 L 507.65 17.54 L 505.09 17.54 L 505.09 16.77 L 511.24 16.77 L 511.24 17.54 L 508.68 17.54 L 508.68 24 M 507.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.03 24.18 Q 516.34 24.18 515.43 23.19 Q 514.51 22.2 514.51 20.39 Q 514.51 18.58 515.44 17.59 Q 516.38 16.59 518.08 16.59 Q 519.05 16.59 520.35 16.91 L 520.35 17.87 Q 518.87 17.36 518.06 17.36 Q 516.89 17.36 516.24 18.16 Q 515.6 18.95 515.6 20.4 Q 515.6 21.78 516.29 22.58 Q 516.97 23.38 518.17 23.38 Q 519.19 23.38 520.36 22.75 L 520.36 23.63 Q 519.29 24.18 518.03 24.18 M 518.03 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 24 L 522.93 16.77 L 524.35 16.77 L 526.36 22.36 L 528.42 16.77 L 529.69 16.77 L 529.69 24 L 528.73 24 L 528.73 18.12 L 526.74 23.52 L 525.75 23.52 L 523.81 18.11 L 523.81 24 M 522.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 21.24 L 535.36 18.12 L 534.13 21.24 M 536.59 21.24 M 537.68 24 L 536.89 22 L 533.83 22 L 533.04 24 L 532.08 24 L 534.95 16.77 L 535.96 16.77 L 538.79 24 M 537.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 544.35 24.18 Q 543.62 24.18 542.49 23.86 L 542.49 22.85 Q 543.71 23.41 544.5 23.41 Q 545.1 23.41 545.47 23.1 Q 545.84 22.78 545.84 22.26 Q 545.84 21.84 545.6 21.54 Q 545.35 21.24 544.71 20.88 L 544.21 20.59 Q 543.28 20.06 542.91 19.59 Q 542.53 19.13 542.53 18.51 Q 542.53 17.67 543.13 17.13 Q 543.74 16.59 544.68 16.59 Q 545.51 16.59 546.44 16.87 L 546.44 17.81 Q 545.3 17.36 544.73 17.36 Q 544.2 17.36 543.86 17.64 Q 543.51 17.93 543.51 18.36 Q 543.51 18.72 543.76 19 Q 544.02 19.27 544.69 19.66 L 545.21 19.95 Q 546.15 20.48 546.52 20.96 Q 546.89 21.43 546.89 22.1 Q 546.89 23.04 546.19 23.61 Q 545.5 24.18 544.35 24.18 M 544.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 24 L 552.5 20.98 L 550.08 16.77 L 551.25 16.77 L 553.13 20.04 L 555.15 16.77 L 556.1 16.77 L 553.52 20.96 L 553.52 24 M 552.5 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 24 L 559.93 16.77 L 560.89 16.77 L 560.89 20.33 L 563.82 16.77 L 564.85 16.77 L 562.02 20.22 L 565.35 24 L 564.05 24 L 560.89 20.34 L 560.89 24 M 559.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 24 L 568.18 16.77 L 569.2 16.77 L 571.44 22.69 L 573.6 16.77 L 574.49 16.77 L 571.87 24 M 570.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 24 L 577.93 16.77 L 578.89 16.77 L 578.89 20.33 L 581.82 16.77 L 582.85 16.77 L 580.02 20.22 L 583.35 24 L 582.05 24 L 578.89 20.34 L 578.89 24 M 577.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 24 L 587.93 16.77 L 588.96 16.77 L 588.96 23.23 L 592.21 23.23 L 592.21 24 M 587.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 24 L 597.93 16.77 L 598.95 16.77 L 598.95 24 M 597.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 24 L 606.65 17.54 L 604.09 17.54 L 604.09 16.77 L 610.24 16.77 L 610.24 17.54 L 607.68 17.54 L 607.68 24 M 606.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 24 L 613.93 16.77 L 615.9 16.77 Q 617.21 16.77 617.78 17.22 Q 618.35 17.66 618.35 18.67 Q 618.35 19.82 617.57 20.47 Q 616.79 21.13 615.4 21.13 L 614.95 21.13 L 614.95 24 M 613.93 24 M 614.95 20.35 L 615.36 20.35 Q 616.28 20.35 616.77 19.93 Q 617.27 19.51 617.27 18.75 Q 617.27 18.1 616.88 17.82 Q 616.49 17.54 615.58 17.54 L 614.95 17.54 M 614.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 622.93 24 L 622.93 16.77 L 625.33 16.77 Q 626.41 16.77 627.07 17.01 Q 627.73 17.25 628.22 17.82 Q 628.98 18.73 628.98 20.22 Q 628.98 22.02 628.03 23.01 Q 627.08 24 625.35 24 M 622.93 24 M 623.96 23.23 L 625.27 23.23 Q 626.68 23.23 627.26 22.48 Q 627.89 21.67 627.89 20.31 Q 627.89 19.04 627.27 18.31 Q 626.9 17.87 626.38 17.7 Q 625.85 17.54 624.8 17.54 L 623.96 17.54 M 623.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 23.8 Q 636.05 24.18 635.07 24.18 Q 633.35 24.18 632.43 23.2 Q 631.51 22.22 631.51 20.39 Q 631.51 18.59 632.44 17.59 Q 633.37 16.59 635.06 16.59 Q 636.16 16.59 637.35 16.92 L 637.35 17.87 Q 635.86 17.36 635.06 17.36 Q 633.89 17.36 633.24 18.16 Q 632.6 18.95 632.6 20.4 Q 632.6 21.83 633.29 22.62 Q 633.98 23.41 635.23 23.41 Q 635.75 23.41 636.34 23.23 L 636.34 20.88 L 637.36 20.88 M 637.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 24 L 640.93 16.77 L 642.9 16.77 Q 644.21 16.77 644.78 17.22 Q 645.35 17.66 645.35 18.67 Q 645.35 19.82 644.57 20.47 Q 643.79 21.13 642.4 21.13 L 641.95 21.13 L 641.95 24 M 640.93 24 M 641.95 20.35 L 642.36 20.35 Q 643.28 20.35 643.77 19.93 Q 644.27 19.51 644.27 18.75 Q 644.27 18.1 643.88 17.82 Q 643.49 17.54 642.58 17.54 L 641.95 17.54 M 641.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.93 24 L 651.93 16.77 L 652.95 16.77 L 652.95 24 M 651.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 24 L 659.93 16.77 L 663.97 16.77 L 663.97 17.54 L 660.96 17.54 L 660.96 19.86 L 663.48 19.86 L 663.48 20.62 L 660.96 20.62 L 660.96 23.23 L 664.18 23.23 L 664.18 24 M 659.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 24 L 668.93 16.77 L 672.97 16.77 L 672.97 17.54 L 669.96 17.54 L 669.96 19.96 L 672.49 19.96 L 672.49 20.72 L 669.96 20.72 L 669.96 24 M 668.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 676.93 24 L 676.93 16.77 L 679.33 16.77 Q 680.41 16.77 681.07 17.01 Q 681.73 17.25 682.22 17.82 Q 682.98 18.73 682.98 20.22 Q 682.98 22.02 682.03 23.01 Q 681.08 24 679.35 24 M 676.93 24 M 677.96 23.23 L 679.27 23.23 Q 680.68 23.23 681.26 22.48 Q 681.89 21.67 681.89 20.31 Q 681.89 19.04 681.27 18.31 Q 680.9 17.87 680.38 17.7 Q 679.85 17.54 678.8 17.54 L 677.96 17.54 M 677.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 24.18 Q 687.34 24.18 686.43 23.19 Q 685.51 22.2 685.51 20.39 Q 685.51 18.58 686.44 17.59 Q 687.38 16.59 689.08 16.59 Q 690.05 16.59 691.35 16.91 L 691.35 17.87 Q 689.87 17.36 689.06 17.36 Q 687.89 17.36 687.24 18.16 Q 686.6 18.95 686.6 20.4 Q 686.6 21.78 687.29 22.58 Q 687.97 23.38 689.17 23.38 Q 690.19 23.38 691.36 22.75 L 691.36 23.63 Q 690.29 24.18 689.03 24.18 M 689.03 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 24 L 694.93 16.77 L 696.9 16.77 Q 698.21 16.77 698.78 17.22 Q 699.35 17.66 699.35 18.67 Q 699.35 19.82 698.57 20.47 Q 697.79 21.13 696.4 21.13 L 695.95 21.13 L 695.95 24 M 694.93 24 M 695.95 20.35 L 696.36 20.35 Q 697.28 20.35 697.77 19.93 Q 698.27 19.51 698.27 18.75 Q 698.27 18.1 697.88 17.82 Q 697.49 17.54 696.58 17.54 L 695.95 17.54 M 695.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 24 L 703.93 16.77 L 706.33 16.77 Q 707.41 16.77 708.07 17.01 Q 708.73 17.25 709.22 17.82 Q 709.98 18.73 709.98 20.22 Q 709.98 22.02 709.03 23.01 Q 708.08 24 706.35 24 M 703.93 24 M 704.96 23.23 L 706.27 23.23 Q 707.68 23.23 708.26 22.48 Q 708.89 21.67 708.89 20.31 Q 708.89 19.04 708.27 18.31 Q 707.9 17.87 707.38 17.7 Q 706.85 17.54 705.8 17.54 L 704.96 17.54 M 704.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 24 L 712.93 16.77 L 713.94 16.77 L 717.58 22.35 L 717.58 16.77 L 718.46 16.77 L 718.46 24 L 717.45 24 L 713.81 18.42 L 713.81 24 M 712.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 24 L 721.18 16.77 L 722.2 16.77 L 724.44 22.69 L 726.6 16.77 L 727.49 16.77 L 724.87 24 M 723.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 24 L 732.5 20.98 L 730.08 16.77 L 731.25 16.77 L 733.13 20.04 L 735.15 16.77 L 736.1 16.77 L 733.52 20.96 L 733.52 24 M 732.5 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 24 L 741.93 16.77 L 742.95 16.77 L 742.95 24 M 741.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 24 L 749.93 16.77 L 750.96 16.77 L 750.96 23.23 L 754.21 23.23 L 754.21 24 M 749.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 24 L 757.93 16.77 L 760.33 16.77 Q 761.41 16.77 762.07 17.01 Q 762.73 17.25 763.22 17.82 Q 763.98 18.73 763.98 20.22 Q 763.98 22.02 763.03 23.01 Q 762.08 24 760.35 24 M 757.93 24 M 758.96 23.23 L 760.27 23.23 Q 761.68 23.23 762.26 22.48 Q 762.89 21.67 762.89 20.31 Q 762.89 19.04 762.27 18.31 Q 761.9 17.87 761.38 17.7 Q 760.85 17.54 759.8 17.54 L 758.96 17.54 M 758.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 772.35 25.45 Q 770.64 24.89 769.49 24.13 Q 769.03 24.18 768.78 24.18 Q 767.33 24.18 766.42 23.13 Q 765.51 22.07 765.51 20.39 Q 765.51 18.66 766.43 17.63 Q 767.35 16.59 768.89 16.59 Q 770.43 16.59 771.35 17.63 Q 772.27 18.66 772.27 20.4 Q 772.27 22.89 770.42 23.85 Q 771.66 24.4 773 24.63 M 772.35 25.45 M 768.86 23.41 Q 769.97 23.41 770.57 22.62 Q 771.18 21.82 771.18 20.37 Q 771.18 18.96 770.57 18.16 Q 769.97 17.36 768.89 17.36 Q 767.81 17.36 767.2 18.16 Q 766.6 18.96 766.6 20.38 Q 766.6 21.79 767.2 22.6 Q 767.8 23.41 768.86 23.41 M 768.86 23.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 21.24 L 778.36 18.12 L 777.13 21.24 M 779.59 21.24 M 780.68 24 L 779.89 22 L 776.83 22 L 776.04 24 L 775.08 24 L 777.95 16.77 L 778.96 16.77 L 781.79 24 M 780.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 24 L 785.93 16.77 L 789.97 16.77 L 789.97 17.54 L 786.96 17.54 L 786.96 19.86 L 789.48 19.86 L 789.48 20.62 L 786.96 20.62 L 786.96 23.23 L 790.18 23.23 L 790.18 24 M 785.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 24 L 794.93 16.77 L 798.97 16.77 L 798.97 17.54 L 795.96 17.54 L 795.96 19.86 L 798.48 19.86 L 798.48 20.62 L 795.96 20.62 L 795.96 23.23 L 799.18 23.23 L 799.18 24 M 794.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 21.24 L 805.36 18.12 L 804.13 21.24 M 806.59 21.24 M 807.68 24 L 806.89 22 L 803.83 22 L 803.04 24 L 802.08 24 L 804.95 16.77 L 805.96 16.77 L 808.79 24 M 807.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 23.8 Q 816.05 24.18 815.07 24.18 Q 813.35 24.18 812.43 23.2 Q 811.51 22.22 811.51 20.39 Q 811.51 18.59 812.44 17.59 Q 813.37 16.59 815.06 16.59 Q 816.16 16.59 817.35 16.92 L 817.35 17.87 Q 815.86 17.36 815.06 17.36 Q 813.89 17.36 813.24 18.16 Q 812.6 18.95 812.6 20.4 Q 812.6 21.83 813.29 22.62 Q 813.98 23.41 815.23 23.41 Q 815.75 23.41 816.34 23.23 L 816.34 20.88 L 817.36 20.88 M 817.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 820.93 24 L 820.93 16.77 L 821.96 16.77 L 821.96 19.82 L 825.4 19.82 L 825.4 16.77 L 826.42 16.77 L 826.42 24 L 825.4 24 L 825.4 20.59 L 821.96 20.59 L 821.96 24 M 820.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 24 L 829.93 16.77 L 832.33 16.77 Q 833.41 16.77 834.07 17.01 Q 834.73 17.25 835.22 17.82 Q 835.98 18.73 835.98 20.22 Q 835.98 22.02 835.03 23.01 Q 834.08 24 832.35 24 M 829.93 24 M 830.96 23.23 L 832.27 23.23 Q 833.68 23.23 834.26 22.48 Q 834.89 21.67 834.89 20.31 Q 834.89 19.04 834.27 18.31 Q 833.9 17.87 833.38 17.7 Q 832.85 17.54 831.8 17.54 L 830.96 17.54 M 830.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 24 L 839.93 16.77 L 840.96 16.77 L 840.96 23.23 L 844.21 23.23 L 844.21 24 M 839.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 24 L 847.93 16.77 L 849.9 16.77 Q 851.21 16.77 851.78 17.22 Q 852.35 17.66 852.35 18.67 Q 852.35 19.82 851.57 20.47 Q 850.79 21.13 849.4 21.13 L 848.95 21.13 L 848.95 24 M 847.93 24 M 848.95 20.35 L 849.36 20.35 Q 850.28 20.35 850.77 19.93 Q 851.27 19.51 851.27 18.75 Q 851.27 18.1 850.88 17.82 Q 850.49 17.54 849.58 17.54 L 848.95 17.54 M 848.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 24 L 858.5 20.98 L 856.08 16.77 L 857.25 16.77 L 859.13 20.04 L 861.15 16.77 L 862.1 16.77 L 859.52 20.96 L 859.52 24 M 858.5 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 24.18 Q 867.62 24.18 866.49 23.86 L 866.49 22.85 Q 867.71 23.41 868.5 23.41 Q 869.1 23.41 869.47 23.1 Q 869.84 22.78 869.84 22.26 Q 869.84 21.84 869.6 21.54 Q 869.35 21.24 868.71 20.88 L 868.21 20.59 Q 867.28 20.06 866.91 19.59 Q 866.53 19.13 866.53 18.51 Q 866.53 17.67 867.13 17.13 Q 867.74 16.59 868.68 16.59 Q 869.51 16.59 870.44 16.87 L 870.44 17.81 Q 869.3 17.36 868.73 17.36 Q 868.2 17.36 867.86 17.64 Q 867.51 17.93 867.51 18.36 Q 867.51 18.72 867.76 19 Q 868.02 19.27 868.69 19.66 L 869.21 19.95 Q 870.15 20.48 870.52 20.96 Q 870.89 21.43 870.89 22.1 Q 870.89 23.04 870.19 23.61 Q 869.5 24.18 868.35 24.18 M 868.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 24.18 Q 876.34 24.18 875.43 23.19 Q 874.51 22.2 874.51 20.39 Q 874.51 18.58 875.44 17.59 Q 876.38 16.59 878.08 16.59 Q 879.05 16.59 880.35 16.91 L 880.35 17.87 Q 878.87 17.36 878.06 17.36 Q 876.89 17.36 876.24 18.16 Q 875.6 18.95 875.6 20.4 Q 875.6 21.78 876.29 22.58 Q 876.97 23.38 878.17 23.38 Q 879.19 23.38 880.36 22.75 L 880.36 23.63 Q 879.29 24.18 878.03 24.18 M 878.03 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 24 L 883.93 16.77 L 886.12 16.77 Q 887.16 16.77 887.71 17.23 Q 888.27 17.69 888.27 18.57 Q 888.27 20.01 886.81 20.62 L 889.22 24 L 887.96 24 L 885.91 20.94 L 884.95 20.94 L 884.95 24 M 883.93 24 M 884.95 20.18 L 885.28 20.18 Q 887.21 20.18 887.21 18.66 Q 887.21 17.54 885.59 17.54 L 884.95 17.54 M 884.95 20.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 21.24 L 895.36 18.12 L 894.13 21.24 M 896.59 21.24 M 897.68 24 L 896.89 22 L 893.83 22 L 893.04 24 L 892.08 24 L 894.95 16.77 L 895.96 16.77 L 898.79 24 M 897.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 23.8 Q 906.05 24.18 905.07 24.18 Q 903.35 24.18 902.43 23.2 Q 901.51 22.22 901.51 20.39 Q 901.51 18.59 902.44 17.59 Q 903.37 16.59 905.06 16.59 Q 906.16 16.59 907.35 16.92 L 907.35 17.87 Q 905.86 17.36 905.06 17.36 Q 903.89 17.36 903.24 18.16 Q 902.6 18.95 902.6 20.4 Q 902.6 21.83 903.29 22.62 Q 903.98 23.41 905.23 23.41 Q 905.75 23.41 906.34 23.23 L 906.34 20.88 L 907.36 20.88 M 907.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 24.18 Q 912.62 24.18 911.49 23.86 L 911.49 22.85 Q 912.71 23.41 913.5 23.41 Q 914.1 23.41 914.47 23.1 Q 914.84 22.78 914.84 22.26 Q 914.84 21.84 914.6 21.54 Q 914.35 21.24 913.71 20.88 L 913.21 20.59 Q 912.28 20.06 911.91 19.59 Q 911.53 19.13 911.53 18.51 Q 911.53 17.67 912.13 17.13 Q 912.74 16.59 913.68 16.59 Q 914.51 16.59 915.44 16.87 L 915.44 17.81 Q 914.3 17.36 913.73 17.36 Q 913.2 17.36 912.86 17.64 Q 912.51 17.93 912.51 18.36 Q 912.51 18.72 912.76 19 Q 913.02 19.27 913.69 19.66 L 914.21 19.95 Q 915.15 20.48 915.52 20.96 Q 915.89 21.43 915.89 22.1 Q 915.89 23.04 915.19 23.61 Q 914.5 24.18 913.35 24.18 M 913.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 24.18 Q 921.34 24.18 920.43 23.19 Q 919.51 22.2 919.51 20.39 Q 919.51 18.58 920.44 17.59 Q 921.38 16.59 923.08 16.59 Q 924.05 16.59 925.35 16.91 L 925.35 17.87 Q 923.87 17.36 923.06 17.36 Q 921.89 17.36 921.24 18.16 Q 920.6 18.95 920.6 20.4 Q 920.6 21.78 921.29 22.58 Q 921.97 23.38 923.17 23.38 Q 924.19 23.38 925.36 22.75 L 925.36 23.63 Q 924.29 24.18 923.03 24.18 M 923.03 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 24.18 Q 930.62 24.18 929.49 23.86 L 929.49 22.85 Q 930.71 23.41 931.5 23.41 Q 932.1 23.41 932.47 23.1 Q 932.84 22.78 932.84 22.26 Q 932.84 21.84 932.6 21.54 Q 932.35 21.24 931.71 20.88 L 931.21 20.59 Q 930.28 20.06 929.91 19.59 Q 929.53 19.13 929.53 18.51 Q 929.53 17.67 930.13 17.13 Q 930.74 16.59 931.68 16.59 Q 932.51 16.59 933.44 16.87 L 933.44 17.81 Q 932.3 17.36 931.73 17.36 Q 931.2 17.36 930.86 17.64 Q 930.51 17.93 930.51 18.36 Q 930.51 18.72 930.76 19 Q 931.02 19.27 931.69 19.66 L 932.21 19.95 Q 933.15 20.48 933.52 20.96 Q 933.89 21.43 933.89 22.1 Q 933.89 23.04 933.19 23.61 Q 932.5 24.18 931.35 24.18 M 931.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 24.18 Q 939.62 24.18 938.49 23.86 L 938.49 22.85 Q 939.71 23.41 940.5 23.41 Q 941.1 23.41 941.47 23.1 Q 941.84 22.78 941.84 22.26 Q 941.84 21.84 941.6 21.54 Q 941.35 21.24 940.71 20.88 L 940.21 20.59 Q 939.28 20.06 938.91 19.59 Q 938.53 19.13 938.53 18.51 Q 938.53 17.67 939.13 17.13 Q 939.74 16.59 940.68 16.59 Q 941.51 16.59 942.44 16.87 L 942.44 17.81 Q 941.3 17.36 940.73 17.36 Q 940.2 17.36 939.86 17.64 Q 939.51 17.93 939.51 18.36 Q 939.51 18.72 939.76 19 Q 940.02 19.27 940.69 19.66 L 941.21 19.95 Q 942.15 20.48 942.52 20.96 Q 942.89 21.43 942.89 22.1 Q 942.89 23.04 942.19 23.61 Q 941.5 24.18 940.35 24.18 M 940.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 24.18 Q 948.34 24.18 947.43 23.19 Q 946.51 22.2 946.51 20.39 Q 946.51 18.58 947.44 17.59 Q 948.38 16.59 950.08 16.59 Q 951.05 16.59 952.35 16.91 L 952.35 17.87 Q 950.87 17.36 950.06 17.36 Q 948.89 17.36 948.24 18.16 Q 947.6 18.95 947.6 20.4 Q 947.6 21.78 948.29 22.58 Q 948.97 23.38 950.17 23.38 Q 951.19 23.38 952.36 22.75 L 952.36 23.63 Q 951.29 24.18 950.03 24.18 M 950.03 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 21.24 L 958.36 18.12 L 957.13 21.24 M 959.59 21.24 M 960.68 24 L 959.89 22 L 956.83 22 L 956.04 24 L 955.08 24 L 957.95 16.77 L 958.96 16.77 L 961.79 24 M 960.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 23.8 Q 969.05 24.18 968.07 24.18 Q 966.35 24.18 965.43 23.2 Q 964.51 22.22 964.51 20.39 Q 964.51 18.59 965.44 17.59 Q 966.37 16.59 968.06 16.59 Q 969.16 16.59 970.35 16.92 L 970.35 17.87 Q 968.86 17.36 968.06 17.36 Q 966.89 17.36 966.24 18.16 Q 965.6 18.95 965.6 20.4 Q 965.6 21.83 966.29 22.62 Q 966.98 23.41 968.23 23.41 Q 968.75 23.41 969.34 23.23 L 969.34 20.88 L 970.36 20.88 M 970.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 24 L 973.93 16.77 L 974.89 16.77 L 974.89 20.33 L 977.82 16.77 L 978.85 16.77 L 976.02 20.22 L 979.35 24 L 978.05 24 L 974.89 20.34 L 974.89 24 M 973.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.93 24 L 984.93 16.77 L 985.95 16.77 L 985.95 24 M 984.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 995.59 21.24 L 994.36 18.12 L 993.13 21.24 M 995.59 21.24 M 996.68 24 L 995.89 22 L 992.83 22 L 992.04 24 L 991.08 24 L 993.95 16.77 L 994.96 16.77 L 997.79 24 M 996.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1006.36 23.8 Q 1005.05 24.18 1004.07 24.18 Q 1002.35 24.18 1001.43 23.2 Q 1000.51 22.22 1000.51 20.39 Q 1000.51 18.59 1001.44 17.59 Q 1002.37 16.59 1004.06 16.59 Q 1005.16 16.59 1006.35 16.92 L 1006.35 17.87 Q 1004.86 17.36 1004.06 17.36 Q 1002.89 17.36 1002.24 18.16 Q 1001.6 18.95 1001.6 20.4 Q 1001.6 21.83 1002.29 22.62 Q 1002.98 23.41 1004.23 23.41 Q 1004.75 23.41 1005.34 23.23 L 1005.34 20.88 L 1006.36 20.88 M 1006.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 23.8 Q 1014.05 24.18 1013.07 24.18 Q 1011.35 24.18 1010.43 23.2 Q 1009.51 22.22 1009.51 20.39 Q 1009.51 18.59 1010.44 17.59 Q 1011.37 16.59 1013.06 16.59 Q 1014.16 16.59 1015.35 16.92 L 1015.35 17.87 Q 1013.86 17.36 1013.06 17.36 Q 1011.89 17.36 1011.24 18.16 Q 1010.6 18.95 1010.6 20.4 Q 1010.6 21.83 1011.29 22.62 Q 1011.98 23.41 1013.23 23.41 Q 1013.75 23.41 1014.34 23.23 L 1014.34 20.88 L 1015.36 20.88 M 1015.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1022.59 21.24 L 1021.36 18.12 L 1020.13 21.24 M 1022.59 21.24 M 1023.68 24 L 1022.89 22 L 1019.83 22 L 1019.04 24 L 1018.08 24 L 1020.95 16.77 L 1021.96 16.77 L 1024.79 24 M 1023.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 24 L 1027.18 16.77 L 1028.2 16.77 L 1030.44 22.69 L 1032.6 16.77 L 1033.49 16.77 L 1030.87 24 M 1029.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 24 L 1036.93 16.77 L 1039.33 16.77 Q 1040.41 16.77 1041.07 17.01 Q 1041.73 17.25 1042.22 17.82 Q 1042.98 18.73 1042.98 20.22 Q 1042.98 22.02 1042.03 23.01 Q 1041.08 24 1039.35 24 M 1036.93 24 M 1037.96 23.23 L 1039.27 23.23 Q 1040.68 23.23 1041.26 22.48 Q 1041.89 21.67 1041.89 20.31 Q 1041.89 19.04 1041.27 18.31 Q 1040.9 17.87 1040.38 17.7 Q 1039.85 17.54 1038.8 17.54 L 1037.96 17.54 M 1037.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 25.45 Q 1049.64 24.89 1048.49 24.13 Q 1048.03 24.18 1047.78 24.18 Q 1046.33 24.18 1045.42 23.13 Q 1044.51 22.07 1044.51 20.39 Q 1044.51 18.66 1045.43 17.63 Q 1046.35 16.59 1047.89 16.59 Q 1049.43 16.59 1050.35 17.63 Q 1051.27 18.66 1051.27 20.4 Q 1051.27 22.89 1049.42 23.85 Q 1050.66 24.4 1052 24.63 M 1051.35 25.45 M 1047.86 23.41 Q 1048.97 23.41 1049.57 22.62 Q 1050.18 21.82 1050.18 20.37 Q 1050.18 18.96 1049.57 18.16 Q 1048.97 17.36 1047.89 17.36 Q 1046.81 17.36 1046.2 18.16 Q 1045.6 18.96 1045.6 20.38 Q 1045.6 21.79 1046.2 22.6 Q 1046.8 23.41 1047.86 23.41 M 1047.86 23.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1056.65 24 L 1056.65 17.54 L 1054.09 17.54 L 1054.09 16.77 L 1060.24 16.77 L 1060.24 17.54 L 1057.68 17.54 L 1057.68 24 M 1056.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 24 L 1063.93 16.77 L 1066.33 16.77 Q 1067.41 16.77 1068.07 17.01 Q 1068.73 17.25 1069.22 17.82 Q 1069.98 18.73 1069.98 20.22 Q 1069.98 22.02 1069.03 23.01 Q 1068.08 24 1066.35 24 M 1063.93 24 M 1064.96 23.23 L 1066.27 23.23 Q 1067.68 23.23 1068.26 22.48 Q 1068.89 21.67 1068.89 20.31 Q 1068.89 19.04 1068.27 18.31 Q 1067.9 17.87 1067.38 17.7 Q 1066.85 17.54 1065.8 17.54 L 1064.96 17.54 M 1064.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 23.8 Q 1077.05 24.18 1076.07 24.18 Q 1074.35 24.18 1073.43 23.2 Q 1072.51 22.22 1072.51 20.39 Q 1072.51 18.59 1073.44 17.59 Q 1074.37 16.59 1076.06 16.59 Q 1077.16 16.59 1078.35 16.92 L 1078.35 17.87 Q 1076.86 17.36 1076.06 17.36 Q 1074.89 17.36 1074.24 18.16 Q 1073.6 18.95 1073.6 20.4 Q 1073.6 21.83 1074.29 22.62 Q 1074.98 23.41 1076.23 23.41 Q 1076.75 23.41 1077.34 23.23 L 1077.34 20.88 L 1078.36 20.88 M 1078.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1081.93 24 L 1081.93 16.77 L 1082.94 16.77 L 1086.58 22.35 L 1086.58 16.77 L 1087.46 16.77 L 1087.46 24 L 1086.45 24 L 1082.81 18.42 L 1082.81 24 M 1081.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 24 L 1091.93 16.77 L 1095.97 16.77 L 1095.97 17.54 L 1092.96 17.54 L 1092.96 19.96 L 1095.49 19.96 L 1095.49 20.72 L 1092.96 20.72 L 1092.96 24 M 1091.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 24 L 1100.93 16.77 L 1101.96 16.77 L 1101.96 23.23 L 1105.21 23.23 L 1105.21 24 M 1100.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 24 L 1108.93 16.77 L 1111.33 16.77 Q 1112.41 16.77 1113.07 17.01 Q 1113.73 17.25 1114.22 17.82 Q 1114.98 18.73 1114.98 20.22 Q 1114.98 22.02 1114.03 23.01 Q 1113.08 24 1111.35 24 M 1108.93 24 M 1109.96 23.23 L 1111.27 23.23 Q 1112.68 23.23 1113.26 22.48 Q 1113.89 21.67 1113.89 20.31 Q 1113.89 19.04 1113.27 18.31 Q 1112.9 17.87 1112.38 17.7 Q 1111.85 17.54 1110.8 17.54 L 1109.96 17.54 M 1109.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 24 L 1117.93 16.77 L 1120.33 16.77 Q 1121.41 16.77 1122.07 17.01 Q 1122.73 17.25 1123.22 17.82 Q 1123.98 18.73 1123.98 20.22 Q 1123.98 22.02 1123.03 23.01 Q 1122.08 24 1120.35 24 M 1117.93 24 M 1118.96 23.23 L 1120.27 23.23 Q 1121.68 23.23 1122.26 22.48 Q 1122.89 21.67 1122.89 20.31 Q 1122.89 19.04 1122.27 18.31 Q 1121.9 17.87 1121.38 17.7 Q 1120.85 17.54 1119.8 17.54 L 1118.96 17.54 M 1118.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 24 L 1126.93 16.77 L 1129.33 16.77 Q 1130.41 16.77 1131.07 17.01 Q 1131.73 17.25 1132.22 17.82 Q 1132.98 18.73 1132.98 20.22 Q 1132.98 22.02 1132.03 23.01 Q 1131.08 24 1129.35 24 M 1126.93 24 M 1127.96 23.23 L 1129.27 23.23 Q 1130.68 23.23 1131.26 22.48 Q 1131.89 21.67 1131.89 20.31 Q 1131.89 19.04 1131.27 18.31 Q 1130.9 17.87 1130.38 17.7 Q 1129.85 17.54 1128.8 17.54 L 1127.96 17.54 M 1127.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 25.45 Q 1139.64 24.89 1138.49 24.13 Q 1138.03 24.18 1137.78 24.18 Q 1136.33 24.18 1135.42 23.13 Q 1134.51 22.07 1134.51 20.39 Q 1134.51 18.66 1135.43 17.63 Q 1136.35 16.59 1137.89 16.59 Q 1139.43 16.59 1140.35 17.63 Q 1141.27 18.66 1141.27 20.4 Q 1141.27 22.89 1139.42 23.85 Q 1140.66 24.4 1142 24.63 M 1141.35 25.45 M 1137.86 23.41 Q 1138.97 23.41 1139.57 22.62 Q 1140.18 21.82 1140.18 20.37 Q 1140.18 18.96 1139.57 18.16 Q 1138.97 17.36 1137.89 17.36 Q 1136.81 17.36 1136.2 18.16 Q 1135.6 18.96 1135.6 20.38 Q 1135.6 21.79 1136.2 22.6 Q 1136.8 23.41 1137.86 23.41 M 1137.86 23.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1145.93 24 L 1145.93 16.77 L 1146.96 16.77 L 1146.96 23.23 L 1150.21 23.23 L 1150.21 24 M 1145.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1154.93 24 L 1154.93 16.77 L 1158.97 16.77 L 1158.97 17.54 L 1155.96 17.54 L 1155.96 19.86 L 1158.48 19.86 L 1158.48 20.62 L 1155.96 20.62 L 1155.96 23.23 L 1159.18 23.23 L 1159.18 24 M 1154.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 24 L 1163.93 16.77 L 1167.97 16.77 L 1167.97 17.54 L 1164.96 17.54 L 1164.96 19.86 L 1167.48 19.86 L 1167.48 20.62 L 1164.96 20.62 L 1164.96 23.23 L 1168.18 23.23 L 1168.18 24 M 1163.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 23.8 Q 1176.05 24.18 1175.07 24.18 Q 1173.35 24.18 1172.43 23.2 Q 1171.51 22.22 1171.51 20.39 Q 1171.51 18.59 1172.44 17.59 Q 1173.37 16.59 1175.06 16.59 Q 1176.16 16.59 1177.35 16.92 L 1177.35 17.87 Q 1175.86 17.36 1175.06 17.36 Q 1173.89 17.36 1173.24 18.16 Q 1172.6 18.95 1172.6 20.4 Q 1172.6 21.83 1173.29 22.62 Q 1173.98 23.41 1175.23 23.41 Q 1175.75 23.41 1176.34 23.23 L 1176.34 20.88 L 1177.36 20.88 M 1177.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 24 L 1179.01 16.77 L 1180 16.77 L 1181.48 22.48 L 1182.84 16.77 L 1183.82 16.77 L 1185.11 22.4 L 1186.71 16.77 L 1187.54 16.77 L 1185.51 24 L 1184.49 24 L 1183.22 18.43 L 1181.89 24 M 1180.87 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 24 L 1189.18 16.77 L 1190.2 16.77 L 1192.44 22.69 L 1194.6 16.77 L 1195.49 16.77 L 1192.87 24 M 1191.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 24 L 1199.93 16.77 L 1200.96 16.77 L 1200.96 23.23 L 1204.21 23.23 L 1204.21 24 M 1199.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 24 L 1209.65 17.54 L 1207.09 17.54 L 1207.09 16.77 L 1213.24 16.77 L 1213.24 17.54 L 1210.68 17.54 L 1210.68 24 M 1209.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 24.18 Q 1218.34 24.18 1217.43 23.19 Q 1216.51 22.2 1216.51 20.39 Q 1216.51 18.58 1217.44 17.59 Q 1218.38 16.59 1220.08 16.59 Q 1221.05 16.59 1222.35 16.91 L 1222.35 17.87 Q 1220.87 17.36 1220.06 17.36 Q 1218.89 17.36 1218.24 18.16 Q 1217.6 18.95 1217.6 20.4 Q 1217.6 21.78 1218.29 22.58 Q 1218.97 23.38 1220.17 23.38 Q 1221.19 23.38 1222.36 22.75 L 1222.36 23.63 Q 1221.29 24.18 1220.03 24.18 M 1220.03 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 24 L 1225.18 16.77 L 1226.2 16.77 L 1228.44 22.69 L 1230.6 16.77 L 1231.49 16.77 L 1228.87 24 M 1227.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 21.24 L 1237.36 18.12 L 1236.13 21.24 M 1238.59 21.24 M 1239.68 24 L 1238.89 22 L 1235.83 22 L 1235.04 24 L 1234.08 24 L 1236.95 16.77 L 1237.96 16.77 L 1240.79 24 M 1239.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 24 L 1245.5 20.98 L 1243.08 16.77 L 1244.25 16.77 L 1246.13 20.04 L 1248.15 16.77 L 1249.1 16.77 L 1246.52 20.96 L 1246.52 24 M 1245.5 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 24 L 1252.93 16.77 L 1254.9 16.77 Q 1256.21 16.77 1256.78 17.22 Q 1257.35 17.66 1257.35 18.67 Q 1257.35 19.82 1256.57 20.47 Q 1255.79 21.13 1254.4 21.13 L 1253.95 21.13 L 1253.95 24 M 1252.93 24 M 1253.95 20.35 L 1254.36 20.35 Q 1255.28 20.35 1255.77 19.93 Q 1256.27 19.51 1256.27 18.75 Q 1256.27 18.1 1255.88 17.82 Q 1255.49 17.54 1254.58 17.54 L 1253.95 17.54 M 1253.95 20.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1267.35 25.45 Q 1265.64 24.89 1264.49 24.13 Q 1264.03 24.18 1263.78 24.18 Q 1262.33 24.18 1261.42 23.13 Q 1260.51 22.07 1260.51 20.39 Q 1260.51 18.66 1261.43 17.63 Q 1262.35 16.59 1263.89 16.59 Q 1265.43 16.59 1266.35 17.63 Q 1267.27 18.66 1267.27 20.4 Q 1267.27 22.89 1265.42 23.85 Q 1266.66 24.4 1268 24.63 M 1267.35 25.45 M 1263.86 23.41 Q 1264.97 23.41 1265.57 22.62 Q 1266.18 21.82 1266.18 20.37 Q 1266.18 18.96 1265.57 18.16 Q 1264.97 17.36 1263.89 17.36 Q 1262.81 17.36 1262.2 18.16 Q 1261.6 18.96 1261.6 20.38 Q 1261.6 21.79 1262.2 22.6 Q 1262.8 23.41 1263.86 23.41 M 1263.86 23.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 24.18 Q 1272.62 24.18 1271.49 23.86 L 1271.49 22.85 Q 1272.71 23.41 1273.5 23.41 Q 1274.1 23.41 1274.47 23.1 Q 1274.84 22.78 1274.84 22.26 Q 1274.84 21.84 1274.6 21.54 Q 1274.35 21.24 1273.71 20.88 L 1273.21 20.59 Q 1272.28 20.06 1271.91 19.59 Q 1271.53 19.13 1271.53 18.51 Q 1271.53 17.67 1272.13 17.13 Q 1272.74 16.59 1273.68 16.59 Q 1274.51 16.59 1275.44 16.87 L 1275.44 17.81 Q 1274.3 17.36 1273.73 17.36 Q 1273.2 17.36 1272.86 17.64 Q 1272.51 17.93 1272.51 18.36 Q 1272.51 18.72 1272.76 19 Q 1273.02 19.27 1273.69 19.66 L 1274.21 19.95 Q 1275.15 20.48 1275.52 20.96 Q 1275.89 21.43 1275.89 22.1 Q 1275.89 23.04 1275.19 23.61 Q 1274.5 24.18 1273.35 24.18 M 1273.35 24.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 24 L 1279.93 16.77 L 1282.33 16.77 Q 1283.41 16.77 1284.07 17.01 Q 1284.73 17.25 1285.22 17.82 Q 1285.98 18.73 1285.98 20.22 Q 1285.98 22.02 1285.03 23.01 Q 1284.08 24 1282.35 24 M 1279.93 24 M 1280.96 23.23 L 1282.27 23.23 Q 1283.68 23.23 1284.26 22.48 Q 1284.89 21.67 1284.89 20.31 Q 1284.89 19.04 1284.27 18.31 Q 1283.9 17.87 1283.38 17.7 Q 1282.85 17.54 1281.8 17.54 L 1280.96 17.54 M 1280.96 23.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 24 L 1288.18 16.77 L 1289.2 16.77 L 1291.44 22.69 L 1293.6 16.77 L 1294.49 16.77 L 1291.87 24 M 1290.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 24 L 1299.65 17.54 L 1297.09 17.54 L 1297.09 16.77 L 1303.24 16.77 L 1303.24 17.54 L 1300.68 17.54 L 1300.68 24 M 1299.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 24 L 1308.93 16.77 L 1309.95 16.77 L 1309.95 24 M 1308.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 24 L 1316.93 16.77 L 1320.97 16.77 L 1320.97 17.54 L 1317.96 17.54 L 1317.96 19.86 L 1320.48 19.86 L 1320.48 20.62 L 1317.96 20.62 L 1317.96 23.23 L 1321.18 23.23 L 1321.18 24 M 1316.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 24 L 1326.65 17.54 L 1324.09 17.54 L 1324.09 16.77 L 1330.24 16.77 L 1330.24 17.54 L 1327.68 17.54 L 1327.68 24 M 1326.65 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 24 L 1333.93 16.77 L 1334.96 16.77 L 1334.96 19.82 L 1338.4 19.82 L 1338.4 16.77 L 1339.42 16.77 L 1339.42 24 L 1338.4 24 L 1338.4 20.59 L 1334.96 20.59 L 1334.96 24 M 1333.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 24 L 1342.93 16.77 L 1343.89 16.77 L 1343.89 20.33 L 1346.82 16.77 L 1347.85 16.77 L 1345.02 20.22 L 1348.35 24 L 1347.05 24 L 1343.89 20.34 L 1343.89 24 M 1342.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 24 L 1352.93 16.77 L 1356.97 16.77 L 1356.97 17.54 L 1353.96 17.54 L 1353.96 19.86 L 1356.48 19.86 L 1356.48 20.62 L 1353.96 20.62 L 1353.96 23.23 L 1357.18 23.23 L 1357.18 24 M 1352.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1364.59 21.24 L 1363.36 18.12 L 1362.13 21.24 M 1364.59 21.24 M 1365.68 24 L 1364.89 22 L 1361.83 22 L 1361.04 24 L 1360.08 24 L 1362.95 16.77 L 1363.96 16.77 L 1366.79 24 M 1365.68 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 24 L 1370.93 16.77 L 1374.97 16.77 L 1374.97 17.54 L 1371.96 17.54 L 1371.96 19.86 L 1374.48 19.86 L 1374.48 20.62 L 1371.96 20.62 L 1371.96 23.23 L 1375.18 23.23 L 1375.18 24 M 1370.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 24 L 1379.93 16.77 L 1380.96 16.77 L 1380.96 23.23 L 1384.21 23.23 L 1384.21 24 M 1379.93 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.91 24 L 1387.18 16.77 L 1388.2 16.77 L 1390.44 22.69 L 1392.6 16.77 L 1393.49 16.77 L 1390.87 24 M 1389.91 24"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1402.36 23.8 Q 1401.05 24.18 1400.07 24.18 Q 1398.35 24.18 1397.43 23.2 Q 1396.51 22.22 1396.51 20.39 Q 1396.51 18.59 1397.44 17.59 Q 1398.37 16.59 1400.06 16.59 Q 1401.16 16.59 1402.35 16.92 L 1402.35 17.87 Q 1400.86 17.36 1400.06 17.36 Q 1398.89 17.36 1398.24 18.16 Q 1397.6 18.95 1397.6 20.4 Q 1397.6 21.83 1398.29 22.62 Q 1398.98 23.41 1400.23 23.41 Q 1400.75 23.41 1401.34 23.23 L 1401.34 20.88 L 1402.36 20.88 M 1402.36 23.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 21.47 L 1405.72 20.75 L 1410.06 20.75 L 1410.06 21.47 M 1405.72 21.47"/></g><rect x="0" y="26" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="26" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="26" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="26" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="26" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="26" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="26" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="26" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="26" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="26" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="26" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="26" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="26" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="26" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="26" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="26" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="26" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="26" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="26" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="26" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="990" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="26" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="26" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="26" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="26" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="26" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="26" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="26" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="26" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 37 L 0.93 29.77 L 2.35 29.77 L 4.36 35.36 L 6.42 29.77 L 7.69 29.77 L 7.69 37 L 6.73 37 L 6.73 31.12 L 4.74 36.52 L 3.75 36.52 L 1.81 31.11 L 1.81 37 M 0.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 34.24 L 13.36 31.12 L 12.13 34.24 M 14.59 34.24 M 15.68 37 L 14.89 35 L 11.83 35 L 11.04 37 L 10.08 37 L 12.95 29.77 L 13.96 29.77 L 16.79 37 M 15.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 19.72 34.47 L 19.72 33.75 L 24.06 33.75 L 24.06 34.47 M 19.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 28.72 34.47 L 28.72 33.75 L 33.06 33.75 L 33.06 34.47 M 28.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 34.47 L 37.72 33.75 L 42.06 33.75 L 42.06 34.47 M 37.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 34.47 L 46.72 33.75 L 51.06 33.75 L 51.06 34.47 M 46.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 34.47 L 55.72 33.75 L 60.06 33.75 L 60.06 34.47 M 55.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 34.47 L 64.72 33.75 L 69.06 33.75 L 69.06 34.47 M 64.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 76.35 37.18 Q 75.62 37.18 74.49 36.86 L 74.49 35.85 Q 75.71 36.41 76.5 36.41 Q 77.1 36.41 77.47 36.1 Q 77.84 35.78 77.84 35.26 Q 77.84 34.84 77.6 34.54 Q 77.35 34.24 76.71 33.88 L 76.21 33.59 Q 75.28 33.06 74.91 32.59 Q 74.53 32.13 74.53 31.51 Q 74.53 30.67 75.13 30.13 Q 75.74 29.59 76.68 29.59 Q 77.51 29.59 78.44 29.87 L 78.44 30.81 Q 77.3 30.36 76.73 30.36 Q 76.2 30.36 75.86 30.64 Q 75.51 30.93 75.51 31.36 Q 75.51 31.72 75.76 32 Q 76.02 32.27 76.69 32.66 L 77.21 32.95 Q 78.15 33.48 78.52 33.96 Q 78.89 34.43 78.89 35.1 Q 78.89 36.04 78.19 36.61 Q 77.5 37.18 76.35 37.18 M 76.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 84.93 37 L 84.93 29.77 L 85.95 29.77 L 85.95 37 M 84.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 37.18 Q 93.62 37.18 92.49 36.86 L 92.49 35.85 Q 93.71 36.41 94.5 36.41 Q 95.1 36.41 95.47 36.1 Q 95.84 35.78 95.84 35.26 Q 95.84 34.84 95.6 34.54 Q 95.35 34.24 94.71 33.88 L 94.21 33.59 Q 93.28 33.06 92.91 32.59 Q 92.53 32.13 92.53 31.51 Q 92.53 30.67 93.13 30.13 Q 93.74 29.59 94.68 29.59 Q 95.51 29.59 96.44 29.87 L 96.44 30.81 Q 95.3 30.36 94.73 30.36 Q 94.2 30.36 93.86 30.64 Q 93.51 30.93 93.51 31.36 Q 93.51 31.72 93.76 32 Q 94.02 32.27 94.69 32.66 L 95.21 32.95 Q 96.15 33.48 96.52 33.96 Q 96.89 34.43 96.89 35.1 Q 96.89 36.04 96.19 36.61 Q 95.5 37.18 94.35 37.18 M 94.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 106.36 36.8 Q 105.05 37.18 104.07 37.18 Q 102.35 37.18 101.43 36.2 Q 100.51 35.22 100.51 33.39 Q 100.51 31.59 101.44 30.59 Q 102.37 29.59 104.06 29.59 Q 105.16 29.59 106.35 29.92 L 106.35 30.87 Q 104.86 30.36 104.06 30.36 Q 102.89 30.36 102.24 31.16 Q 101.6 31.95 101.6 33.4 Q 101.6 34.83 102.29 35.62 Q 102.98 36.41 104.23 36.41 Q 104.75 36.41 105.34 36.23 L 105.34 33.88 L 106.36 33.88 M 106.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 111.65 37 L 111.65 30.54 L 109.09 30.54 L 109.09 29.77 L 115.24 29.77 L 115.24 30.54 L 112.68 30.54 L 112.68 37 M 111.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 117.93 37 L 117.93 29.77 L 119.35 29.77 L 121.36 35.36 L 123.42 29.77 L 124.69 29.77 L 124.69 37 L 123.73 37 L 123.73 31.12 L 121.74 36.52 L 120.75 36.52 L 118.81 31.11 L 118.81 37 M 117.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.93 37 L 129.93 29.77 L 130.95 29.77 L 130.95 37 M 129.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 37.18 Q 138.62 37.18 137.49 36.86 L 137.49 35.85 Q 138.71 36.41 139.5 36.41 Q 140.1 36.41 140.47 36.1 Q 140.84 35.78 140.84 35.26 Q 140.84 34.84 140.6 34.54 Q 140.35 34.24 139.71 33.88 L 139.21 33.59 Q 138.28 33.06 137.91 32.59 Q 137.53 32.13 137.53 31.51 Q 137.53 30.67 138.13 30.13 Q 138.74 29.59 139.68 29.59 Q 140.51 29.59 141.44 29.87 L 141.44 30.81 Q 140.3 30.36 139.73 30.36 Q 139.2 30.36 138.86 30.64 Q 138.51 30.93 138.51 31.36 Q 138.51 31.72 138.76 32 Q 139.02 32.27 139.69 32.66 L 140.21 32.95 Q 141.15 33.48 141.52 33.96 Q 141.89 34.43 141.89 35.1 Q 141.89 36.04 141.19 36.61 Q 140.5 37.18 139.35 37.18 M 139.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 37 L 147.65 30.54 L 145.09 30.54 L 145.09 29.77 L 151.24 29.77 L 151.24 30.54 L 148.68 30.54 L 148.68 37 M 147.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 37.18 Q 156.62 37.18 155.49 36.86 L 155.49 35.85 Q 156.71 36.41 157.5 36.41 Q 158.1 36.41 158.47 36.1 Q 158.84 35.78 158.84 35.26 Q 158.84 34.84 158.6 34.54 Q 158.35 34.24 157.71 33.88 L 157.21 33.59 Q 156.28 33.06 155.91 32.59 Q 155.53 32.13 155.53 31.51 Q 155.53 30.67 156.13 30.13 Q 156.74 29.59 157.68 29.59 Q 158.51 29.59 159.44 29.87 L 159.44 30.81 Q 158.3 30.36 157.73 30.36 Q 157.2 30.36 156.86 30.64 Q 156.51 30.93 156.51 31.36 Q 156.51 31.72 156.76 32 Q 157.02 32.27 157.69 32.66 L 158.21 32.95 Q 159.15 33.48 159.52 33.96 Q 159.89 34.43 159.89 35.1 Q 159.89 36.04 159.19 36.61 Q 158.5 37.18 157.35 37.18 M 157.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 37 L 164.93 29.77 L 168.97 29.77 L 168.97 30.54 L 165.96 30.54 L 165.96 32.96 L 168.49 32.96 L 168.49 33.72 L 165.96 33.72 L 165.96 37 M 164.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 37 L 173.93 29.77 L 174.96 29.77 L 174.96 36.23 L 178.21 36.23 L 178.21 37 M 173.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 37 L 181.93 29.77 L 183.9 29.77 Q 185.21 29.77 185.78 30.22 Q 186.35 30.66 186.35 31.67 Q 186.35 32.82 185.57 33.47 Q 184.79 34.13 183.4 34.13 L 182.95 34.13 L 182.95 37 M 181.93 37 M 182.95 33.35 L 183.36 33.35 Q 184.28 33.35 184.77 32.93 Q 185.27 32.51 185.27 31.75 Q 185.27 31.1 184.88 30.82 Q 184.49 30.54 183.58 30.54 L 182.95 30.54 M 182.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 37 L 190.93 29.77 L 193.12 29.77 Q 194.16 29.77 194.71 30.23 Q 195.27 30.69 195.27 31.57 Q 195.27 33.01 193.81 33.62 L 196.22 37 L 194.96 37 L 192.91 33.94 L 191.95 33.94 L 191.95 37 M 190.93 37 M 191.95 33.18 L 192.28 33.18 Q 194.21 33.18 194.21 31.66 Q 194.21 30.54 192.59 30.54 L 191.95 30.54 M 191.95 33.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.93 37 L 199.93 29.77 L 200.89 29.77 L 200.89 33.33 L 203.82 29.77 L 204.85 29.77 L 202.02 33.22 L 205.35 37 L 204.05 37 L 200.89 33.34 L 200.89 37 M 199.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 37 L 208.93 29.77 L 210.9 29.77 Q 212.21 29.77 212.78 30.22 Q 213.35 30.66 213.35 31.67 Q 213.35 32.82 212.57 33.47 Q 211.79 34.13 210.4 34.13 L 209.95 34.13 L 209.95 37 M 208.93 37 M 209.95 33.35 L 210.36 33.35 Q 211.28 33.35 211.77 32.93 Q 212.27 32.51 212.27 31.75 Q 212.27 31.1 211.88 30.82 Q 211.49 30.54 210.58 30.54 L 209.95 30.54 M 209.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 221.59 34.24 L 220.36 31.12 L 219.13 34.24 M 221.59 34.24 M 222.68 37 L 221.89 35 L 218.83 35 L 218.04 37 L 217.08 37 L 219.95 29.77 L 220.96 29.77 L 223.79 37 M 222.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 228.91 37 L 226.18 29.77 L 227.2 29.77 L 229.44 35.69 L 231.6 29.77 L 232.49 29.77 L 229.87 37 M 228.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.65 37 L 237.65 30.54 L 235.09 30.54 L 235.09 29.77 L 241.24 29.77 L 241.24 30.54 L 238.68 30.54 L 238.68 37 M 237.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 37.18 Q 246.62 37.18 245.49 36.86 L 245.49 35.85 Q 246.71 36.41 247.5 36.41 Q 248.1 36.41 248.47 36.1 Q 248.84 35.78 248.84 35.26 Q 248.84 34.84 248.6 34.54 Q 248.35 34.24 247.71 33.88 L 247.21 33.59 Q 246.28 33.06 245.91 32.59 Q 245.53 32.13 245.53 31.51 Q 245.53 30.67 246.13 30.13 Q 246.74 29.59 247.68 29.59 Q 248.51 29.59 249.44 29.87 L 249.44 30.81 Q 248.3 30.36 247.73 30.36 Q 247.2 30.36 246.86 30.64 Q 246.51 30.93 246.51 31.36 Q 246.51 31.72 246.76 32 Q 247.02 32.27 247.69 32.66 L 248.21 32.95 Q 249.15 33.48 249.52 33.96 Q 249.89 34.43 249.89 35.1 Q 249.89 36.04 249.19 36.61 Q 248.5 37.18 247.35 37.18 M 247.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 254.93 37 L 254.93 29.77 L 255.96 29.77 L 255.96 36.23 L 259.21 36.23 L 259.21 37 M 254.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 34.47 L 262.72 33.75 L 267.06 33.75 L 267.06 34.47 M 262.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.93 37 L 271.93 29.77 L 272.89 29.77 L 272.89 33.33 L 275.82 29.77 L 276.85 29.77 L 274.02 33.22 L 277.35 37 L 276.05 37 L 272.89 33.34 L 272.89 37 M 271.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 284.59 34.24 L 283.36 31.12 L 282.13 34.24 M 284.59 34.24 M 285.68 37 L 284.89 35 L 281.83 35 L 281.04 37 L 280.08 37 L 282.95 29.77 L 283.96 29.77 L 286.79 37 M 285.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 291.93 37 L 291.93 29.77 L 292.95 29.77 L 292.95 37 M 291.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 301.35 37.18 Q 300.62 37.18 299.49 36.86 L 299.49 35.85 Q 300.71 36.41 301.5 36.41 Q 302.1 36.41 302.47 36.1 Q 302.84 35.78 302.84 35.26 Q 302.84 34.84 302.6 34.54 Q 302.35 34.24 301.71 33.88 L 301.21 33.59 Q 300.28 33.06 299.91 32.59 Q 299.53 32.13 299.53 31.51 Q 299.53 30.67 300.13 30.13 Q 300.74 29.59 301.68 29.59 Q 302.51 29.59 303.44 29.87 L 303.44 30.81 Q 302.3 30.36 301.73 30.36 Q 301.2 30.36 300.86 30.64 Q 300.51 30.93 300.51 31.36 Q 300.51 31.72 300.76 32 Q 301.02 32.27 301.69 32.66 L 302.21 32.95 Q 303.15 33.48 303.52 33.96 Q 303.89 34.43 303.89 35.1 Q 303.89 36.04 303.19 36.61 Q 302.5 37.18 301.35 37.18 M 301.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.93 37 L 307.93 29.77 L 308.94 29.77 L 312.58 35.35 L 312.58 29.77 L 313.46 29.77 L 313.46 37 L 312.45 37 L 308.81 31.42 L 308.81 37 M 307.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 318.91 37 L 316.18 29.77 L 317.2 29.77 L 319.44 35.69 L 321.6 29.77 L 322.49 29.77 L 319.87 37 M 318.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 331.36 36.8 Q 330.05 37.18 329.07 37.18 Q 327.35 37.18 326.43 36.2 Q 325.51 35.22 325.51 33.39 Q 325.51 31.59 326.44 30.59 Q 327.37 29.59 329.06 29.59 Q 330.16 29.59 331.35 29.92 L 331.35 30.87 Q 329.86 30.36 329.06 30.36 Q 327.89 30.36 327.24 31.16 Q 326.6 31.95 326.6 33.4 Q 326.6 34.83 327.29 35.62 Q 327.98 36.41 329.23 36.41 Q 329.75 36.41 330.34 36.23 L 330.34 33.88 L 331.36 33.88 M 331.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 335.93 37 L 335.93 29.77 L 339.97 29.77 L 339.97 30.54 L 336.96 30.54 L 336.96 32.86 L 339.48 32.86 L 339.48 33.62 L 336.96 33.62 L 336.96 36.23 L 340.18 36.23 L 340.18 37 M 335.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 34.47 L 343.72 33.75 L 348.06 33.75 L 348.06 34.47 M 343.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 34.47 L 352.72 33.75 L 357.06 33.75 L 357.06 34.47 M 352.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 365.59 34.24 L 364.36 31.12 L 363.13 34.24 M 365.59 34.24 M 366.68 37 L 365.89 35 L 362.83 35 L 362.04 37 L 361.08 37 L 363.95 29.77 L 364.96 29.77 L 367.79 37 M 366.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 37 L 371.93 29.77 L 372.96 29.77 L 372.96 36.23 L 376.21 36.23 L 376.21 37 M 371.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 37 L 380.93 29.77 L 384.97 29.77 L 384.97 30.54 L 381.96 30.54 L 381.96 32.96 L 384.49 32.96 L 384.49 33.72 L 381.96 33.72 L 381.96 37 M 380.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 36.8 Q 393.05 37.18 392.07 37.18 Q 390.35 37.18 389.43 36.2 Q 388.51 35.22 388.51 33.39 Q 388.51 31.59 389.44 30.59 Q 390.37 29.59 392.06 29.59 Q 393.16 29.59 394.35 29.92 L 394.35 30.87 Q 392.86 30.36 392.06 30.36 Q 390.89 30.36 390.24 31.16 Q 389.6 31.95 389.6 33.4 Q 389.6 34.83 390.29 35.62 Q 390.98 36.41 392.23 36.41 Q 392.75 36.41 393.34 36.23 L 393.34 33.88 L 394.36 33.88 M 394.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 37 L 398.93 29.77 L 399.96 29.77 L 399.96 36.23 L 403.21 36.23 L 403.21 37 M 398.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 37 L 406.93 29.77 L 407.89 29.77 L 407.89 33.33 L 410.82 29.77 L 411.85 29.77 L 409.02 33.22 L 412.35 37 L 411.05 37 L 407.89 33.34 L 407.89 37 M 406.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 37.18 Q 417.62 37.18 416.49 36.86 L 416.49 35.85 Q 417.71 36.41 418.5 36.41 Q 419.1 36.41 419.47 36.1 Q 419.84 35.78 419.84 35.26 Q 419.84 34.84 419.6 34.54 Q 419.35 34.24 418.71 33.88 L 418.21 33.59 Q 417.28 33.06 416.91 32.59 Q 416.53 32.13 416.53 31.51 Q 416.53 30.67 417.13 30.13 Q 417.74 29.59 418.68 29.59 Q 419.51 29.59 420.44 29.87 L 420.44 30.81 Q 419.3 30.36 418.73 30.36 Q 418.2 30.36 417.86 30.64 Q 417.51 30.93 417.51 31.36 Q 417.51 31.72 417.76 32 Q 418.02 32.27 418.69 32.66 L 419.21 32.95 Q 420.15 33.48 420.52 33.96 Q 420.89 34.43 420.89 35.1 Q 420.89 36.04 420.19 36.61 Q 419.5 37.18 418.35 37.18 M 418.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 34.47 L 424.72 33.75 L 429.06 33.75 L 429.06 34.47 M 424.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 439.36 36.8 Q 438.05 37.18 437.07 37.18 Q 435.35 37.18 434.43 36.2 Q 433.51 35.22 433.51 33.39 Q 433.51 31.59 434.44 30.59 Q 435.37 29.59 437.06 29.59 Q 438.16 29.59 439.35 29.92 L 439.35 30.87 Q 437.86 30.36 437.06 30.36 Q 435.89 30.36 435.24 31.16 Q 434.6 31.95 434.6 33.4 Q 434.6 34.83 435.29 35.62 Q 435.98 36.41 437.23 36.41 Q 437.75 36.41 438.34 36.23 L 438.34 33.88 L 439.36 33.88 M 439.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.72 34.47 L 442.72 33.75 L 447.06 33.75 L 447.06 34.47 M 442.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.72 34.47 L 451.72 33.75 L 456.06 33.75 L 456.06 34.47 M 451.72 34.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 37 L 460.93 29.77 L 463.12 29.77 Q 464.16 29.77 464.71 30.23 Q 465.27 30.69 465.27 31.57 Q 465.27 33.01 463.81 33.62 L 466.22 37 L 464.96 37 L 462.91 33.94 L 461.95 33.94 L 461.95 37 M 460.93 37 M 461.95 33.18 L 462.28 33.18 Q 464.21 33.18 464.21 31.66 Q 464.21 30.54 462.59 30.54 L 461.95 30.54 M 461.95 33.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.93 37 L 469.93 29.77 L 470.94 29.77 L 474.58 35.35 L 474.58 29.77 L 475.46 29.77 L 475.46 37 L 474.45 37 L 470.81 31.42 L 470.81 37 M 469.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 36.8 Q 483.05 37.18 482.07 37.18 Q 480.35 37.18 479.43 36.2 Q 478.51 35.22 478.51 33.39 Q 478.51 31.59 479.44 30.59 Q 480.37 29.59 482.06 29.59 Q 483.16 29.59 484.35 29.92 L 484.35 30.87 Q 482.86 30.36 482.06 30.36 Q 480.89 30.36 480.24 31.16 Q 479.6 31.95 479.6 33.4 Q 479.6 34.83 480.29 35.62 Q 480.98 36.41 482.23 36.41 Q 482.75 36.41 483.34 36.23 L 483.34 33.88 L 484.36 33.88 M 484.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 37 L 487.93 29.77 L 490.12 29.77 Q 491.16 29.77 491.71 30.23 Q 492.27 30.69 492.27 31.57 Q 492.27 33.01 490.81 33.62 L 493.22 37 L 491.96 37 L 489.91 33.94 L 488.95 33.94 L 488.95 37 M 487.93 37 M 488.95 33.18 L 489.28 33.18 Q 491.21 33.18 491.21 31.66 Q 491.21 30.54 489.59 30.54 L 488.95 30.54 M 488.95 33.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.93 37 L 498.93 29.77 L 499.95 29.77 L 499.95 37 M 498.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 37 L 507.65 30.54 L 505.09 30.54 L 505.09 29.77 L 511.24 29.77 L 511.24 30.54 L 508.68 30.54 L 508.68 37 M 507.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.03 37.18 Q 516.34 37.18 515.43 36.19 Q 514.51 35.2 514.51 33.39 Q 514.51 31.58 515.44 30.59 Q 516.38 29.59 518.08 29.59 Q 519.05 29.59 520.35 29.91 L 520.35 30.87 Q 518.87 30.36 518.06 30.36 Q 516.89 30.36 516.24 31.16 Q 515.6 31.95 515.6 33.4 Q 515.6 34.78 516.29 35.58 Q 516.97 36.38 518.17 36.38 Q 519.19 36.38 520.36 35.75 L 520.36 36.63 Q 519.29 37.18 518.03 37.18 M 518.03 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 37 L 522.93 29.77 L 524.35 29.77 L 526.36 35.36 L 528.42 29.77 L 529.69 29.77 L 529.69 37 L 528.73 37 L 528.73 31.12 L 526.74 36.52 L 525.75 36.52 L 523.81 31.11 L 523.81 37 M 522.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 34.24 L 535.36 31.12 L 534.13 34.24 M 536.59 34.24 M 537.68 37 L 536.89 35 L 533.83 35 L 533.04 37 L 532.08 37 L 534.95 29.77 L 535.96 29.77 L 538.79 37 M 537.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 544.35 37.18 Q 543.62 37.18 542.49 36.86 L 542.49 35.85 Q 543.71 36.41 544.5 36.41 Q 545.1 36.41 545.47 36.1 Q 545.84 35.78 545.84 35.26 Q 545.84 34.84 545.6 34.54 Q 545.35 34.24 544.71 33.88 L 544.21 33.59 Q 543.28 33.06 542.91 32.59 Q 542.53 32.13 542.53 31.51 Q 542.53 30.67 543.13 30.13 Q 543.74 29.59 544.68 29.59 Q 545.51 29.59 546.44 29.87 L 546.44 30.81 Q 545.3 30.36 544.73 30.36 Q 544.2 30.36 543.86 30.64 Q 543.51 30.93 543.51 31.36 Q 543.51 31.72 543.76 32 Q 544.02 32.27 544.69 32.66 L 545.21 32.95 Q 546.15 33.48 546.52 33.96 Q 546.89 34.43 546.89 35.1 Q 546.89 36.04 546.19 36.61 Q 545.5 37.18 544.35 37.18 M 544.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 37 L 552.5 33.98 L 550.08 29.77 L 551.25 29.77 L 553.13 33.04 L 555.15 29.77 L 556.1 29.77 L 553.52 33.96 L 553.52 37 M 552.5 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 37 L 559.93 29.77 L 560.89 29.77 L 560.89 33.33 L 563.82 29.77 L 564.85 29.77 L 562.02 33.22 L 565.35 37 L 564.05 37 L 560.89 33.34 L 560.89 37 M 559.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 37 L 568.18 29.77 L 569.2 29.77 L 571.44 35.69 L 573.6 29.77 L 574.49 29.77 L 571.87 37 M 570.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 37 L 577.93 29.77 L 578.89 29.77 L 578.89 33.33 L 581.82 29.77 L 582.85 29.77 L 580.02 33.22 L 583.35 37 L 582.05 37 L 578.89 33.34 L 578.89 37 M 577.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 37 L 587.93 29.77 L 588.96 29.77 L 588.96 36.23 L 592.21 36.23 L 592.21 37 M 587.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 37 L 597.93 29.77 L 598.95 29.77 L 598.95 37 M 597.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 37 L 606.65 30.54 L 604.09 30.54 L 604.09 29.77 L 610.24 29.77 L 610.24 30.54 L 607.68 30.54 L 607.68 37 M 606.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 37 L 613.93 29.77 L 615.9 29.77 Q 617.21 29.77 617.78 30.22 Q 618.35 30.66 618.35 31.67 Q 618.35 32.82 617.57 33.47 Q 616.79 34.13 615.4 34.13 L 614.95 34.13 L 614.95 37 M 613.93 37 M 614.95 33.35 L 615.36 33.35 Q 616.28 33.35 616.77 32.93 Q 617.27 32.51 617.27 31.75 Q 617.27 31.1 616.88 30.82 Q 616.49 30.54 615.58 30.54 L 614.95 30.54 M 614.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 37 L 623.93 29.77 L 627.97 29.77 L 627.97 30.54 L 624.96 30.54 L 624.96 32.86 L 627.48 32.86 L 627.48 33.62 L 624.96 33.62 L 624.96 36.23 L 628.18 36.23 L 628.18 37 M 623.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 36.8 Q 636.05 37.18 635.07 37.18 Q 633.35 37.18 632.43 36.2 Q 631.51 35.22 631.51 33.39 Q 631.51 31.59 632.44 30.59 Q 633.37 29.59 635.06 29.59 Q 636.16 29.59 637.35 29.92 L 637.35 30.87 Q 635.86 30.36 635.06 30.36 Q 633.89 30.36 633.24 31.16 Q 632.6 31.95 632.6 33.4 Q 632.6 34.83 633.29 35.62 Q 633.98 36.41 635.23 36.41 Q 635.75 36.41 636.34 36.23 L 636.34 33.88 L 637.36 33.88 M 637.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 37 L 640.93 29.77 L 642.9 29.77 Q 644.21 29.77 644.78 30.22 Q 645.35 30.66 645.35 31.67 Q 645.35 32.82 644.57 33.47 Q 643.79 34.13 642.4 34.13 L 641.95 34.13 L 641.95 37 M 640.93 37 M 641.95 33.35 L 642.36 33.35 Q 643.28 33.35 643.77 32.93 Q 644.27 32.51 644.27 31.75 Q 644.27 31.1 643.88 30.82 Q 643.49 30.54 642.58 30.54 L 641.95 30.54 M 641.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.93 37 L 651.93 29.77 L 652.95 29.77 L 652.95 37 M 651.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 37 L 659.93 29.77 L 663.97 29.77 L 663.97 30.54 L 660.96 30.54 L 660.96 32.86 L 663.48 32.86 L 663.48 33.62 L 660.96 33.62 L 660.96 36.23 L 664.18 36.23 L 664.18 37 M 659.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 37 L 668.93 29.77 L 672.97 29.77 L 672.97 30.54 L 669.96 30.54 L 669.96 32.96 L 672.49 32.96 L 672.49 33.72 L 669.96 33.72 L 669.96 37 M 668.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 37 L 677.93 29.77 L 681.97 29.77 L 681.97 30.54 L 678.96 30.54 L 678.96 32.86 L 681.48 32.86 L 681.48 33.62 L 678.96 33.62 L 678.96 36.23 L 682.18 36.23 L 682.18 37 M 677.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 37.18 Q 687.34 37.18 686.43 36.19 Q 685.51 35.2 685.51 33.39 Q 685.51 31.58 686.44 30.59 Q 687.38 29.59 689.08 29.59 Q 690.05 29.59 691.35 29.91 L 691.35 30.87 Q 689.87 30.36 689.06 30.36 Q 687.89 30.36 687.24 31.16 Q 686.6 31.95 686.6 33.4 Q 686.6 34.78 687.29 35.58 Q 687.97 36.38 689.17 36.38 Q 690.19 36.38 691.36 35.75 L 691.36 36.63 Q 690.29 37.18 689.03 37.18 M 689.03 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 37 L 694.93 29.77 L 696.9 29.77 Q 698.21 29.77 698.78 30.22 Q 699.35 30.66 699.35 31.67 Q 699.35 32.82 698.57 33.47 Q 697.79 34.13 696.4 34.13 L 695.95 34.13 L 695.95 37 M 694.93 37 M 695.95 33.35 L 696.36 33.35 Q 697.28 33.35 697.77 32.93 Q 698.27 32.51 698.27 31.75 Q 698.27 31.1 697.88 30.82 Q 697.49 30.54 696.58 30.54 L 695.95 30.54 M 695.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 37 L 703.93 29.77 L 706.33 29.77 Q 707.41 29.77 708.07 30.01 Q 708.73 30.25 709.22 30.82 Q 709.98 31.73 709.98 33.22 Q 709.98 35.02 709.03 36.01 Q 708.08 37 706.35 37 M 703.93 37 M 704.96 36.23 L 706.27 36.23 Q 707.68 36.23 708.26 35.48 Q 708.89 34.67 708.89 33.31 Q 708.89 32.04 708.27 31.31 Q 707.9 30.87 707.38 30.7 Q 706.85 30.54 705.8 30.54 L 704.96 30.54 M 704.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 37 L 712.93 29.77 L 715.33 29.77 Q 716.41 29.77 717.07 30.01 Q 717.73 30.25 718.22 30.82 Q 718.98 31.73 718.98 33.22 Q 718.98 35.02 718.03 36.01 Q 717.08 37 715.35 37 M 712.93 37 M 713.96 36.23 L 715.27 36.23 Q 716.68 36.23 717.26 35.48 Q 717.89 34.67 717.89 33.31 Q 717.89 32.04 717.27 31.31 Q 716.9 30.87 716.38 30.7 Q 715.85 30.54 714.8 30.54 L 713.96 30.54 M 713.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 37 L 721.18 29.77 L 722.2 29.77 L 724.44 35.69 L 726.6 29.77 L 727.49 29.77 L 724.87 37 M 723.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 37 L 732.5 33.98 L 730.08 29.77 L 731.25 29.77 L 733.13 33.04 L 735.15 29.77 L 736.1 29.77 L 733.52 33.96 L 733.52 37 M 732.5 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 37 L 741.93 29.77 L 742.95 29.77 L 742.95 37 M 741.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 37 L 749.93 29.77 L 750.96 29.77 L 750.96 36.23 L 754.21 36.23 L 754.21 37 M 749.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 37 L 757.93 29.77 L 760.33 29.77 Q 761.41 29.77 762.07 30.01 Q 762.73 30.25 763.22 30.82 Q 763.98 31.73 763.98 33.22 Q 763.98 35.02 763.03 36.01 Q 762.08 37 760.35 37 M 757.93 37 M 758.96 36.23 L 760.27 36.23 Q 761.68 36.23 762.26 35.48 Q 762.89 34.67 762.89 33.31 Q 762.89 32.04 762.27 31.31 Q 761.9 30.87 761.38 30.7 Q 760.85 30.54 759.8 30.54 L 758.96 30.54 M 758.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 772.35 38.45 Q 770.64 37.89 769.49 37.13 Q 769.03 37.18 768.78 37.18 Q 767.33 37.18 766.42 36.13 Q 765.51 35.07 765.51 33.39 Q 765.51 31.66 766.43 30.63 Q 767.35 29.59 768.89 29.59 Q 770.43 29.59 771.35 30.63 Q 772.27 31.66 772.27 33.4 Q 772.27 35.89 770.42 36.85 Q 771.66 37.4 773 37.63 M 772.35 38.45 M 768.86 36.41 Q 769.97 36.41 770.57 35.62 Q 771.18 34.82 771.18 33.37 Q 771.18 31.96 770.57 31.16 Q 769.97 30.36 768.89 30.36 Q 767.81 30.36 767.2 31.16 Q 766.6 31.96 766.6 33.38 Q 766.6 34.79 767.2 35.6 Q 767.8 36.41 768.86 36.41 M 768.86 36.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 34.24 L 778.36 31.12 L 777.13 34.24 M 779.59 34.24 M 780.68 37 L 779.89 35 L 776.83 35 L 776.04 37 L 775.08 37 L 777.95 29.77 L 778.96 29.77 L 781.79 37 M 780.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 37 L 785.93 29.77 L 789.97 29.77 L 789.97 30.54 L 786.96 30.54 L 786.96 32.86 L 789.48 32.86 L 789.48 33.62 L 786.96 33.62 L 786.96 36.23 L 790.18 36.23 L 790.18 37 M 785.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 37 L 794.93 29.77 L 798.97 29.77 L 798.97 30.54 L 795.96 30.54 L 795.96 32.86 L 798.48 32.86 L 798.48 33.62 L 795.96 33.62 L 795.96 36.23 L 799.18 36.23 L 799.18 37 M 794.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 803.93 37 L 803.93 29.77 L 807.97 29.77 L 807.97 30.54 L 804.96 30.54 L 804.96 32.86 L 807.48 32.86 L 807.48 33.62 L 804.96 33.62 L 804.96 36.23 L 808.18 36.23 L 808.18 37 M 803.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 36.8 Q 816.05 37.18 815.07 37.18 Q 813.35 37.18 812.43 36.2 Q 811.51 35.22 811.51 33.39 Q 811.51 31.59 812.44 30.59 Q 813.37 29.59 815.06 29.59 Q 816.16 29.59 817.35 29.92 L 817.35 30.87 Q 815.86 30.36 815.06 30.36 Q 813.89 30.36 813.24 31.16 Q 812.6 31.95 812.6 33.4 Q 812.6 34.83 813.29 35.62 Q 813.98 36.41 815.23 36.41 Q 815.75 36.41 816.34 36.23 L 816.34 33.88 L 817.36 33.88 M 817.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 820.93 37 L 820.93 29.77 L 821.96 29.77 L 821.96 32.82 L 825.4 32.82 L 825.4 29.77 L 826.42 29.77 L 826.42 37 L 825.4 37 L 825.4 33.59 L 821.96 33.59 L 821.96 37 M 820.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 37 L 829.93 29.77 L 832.33 29.77 Q 833.41 29.77 834.07 30.01 Q 834.73 30.25 835.22 30.82 Q 835.98 31.73 835.98 33.22 Q 835.98 35.02 835.03 36.01 Q 834.08 37 832.35 37 M 829.93 37 M 830.96 36.23 L 832.27 36.23 Q 833.68 36.23 834.26 35.48 Q 834.89 34.67 834.89 33.31 Q 834.89 32.04 834.27 31.31 Q 833.9 30.87 833.38 30.7 Q 832.85 30.54 831.8 30.54 L 830.96 30.54 M 830.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 37 L 839.93 29.77 L 840.96 29.77 L 840.96 36.23 L 844.21 36.23 L 844.21 37 M 839.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 37 L 847.93 29.77 L 849.9 29.77 Q 851.21 29.77 851.78 30.22 Q 852.35 30.66 852.35 31.67 Q 852.35 32.82 851.57 33.47 Q 850.79 34.13 849.4 34.13 L 848.95 34.13 L 848.95 37 M 847.93 37 M 848.95 33.35 L 849.36 33.35 Q 850.28 33.35 850.77 32.93 Q 851.27 32.51 851.27 31.75 Q 851.27 31.1 850.88 30.82 Q 850.49 30.54 849.58 30.54 L 848.95 30.54 M 848.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 37 L 858.5 33.98 L 856.08 29.77 L 857.25 29.77 L 859.13 33.04 L 861.15 29.77 L 862.1 29.77 L 859.52 33.96 L 859.52 37 M 858.5 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 37.18 Q 867.62 37.18 866.49 36.86 L 866.49 35.85 Q 867.71 36.41 868.5 36.41 Q 869.1 36.41 869.47 36.1 Q 869.84 35.78 869.84 35.26 Q 869.84 34.84 869.6 34.54 Q 869.35 34.24 868.71 33.88 L 868.21 33.59 Q 867.28 33.06 866.91 32.59 Q 866.53 32.13 866.53 31.51 Q 866.53 30.67 867.13 30.13 Q 867.74 29.59 868.68 29.59 Q 869.51 29.59 870.44 29.87 L 870.44 30.81 Q 869.3 30.36 868.73 30.36 Q 868.2 30.36 867.86 30.64 Q 867.51 30.93 867.51 31.36 Q 867.51 31.72 867.76 32 Q 868.02 32.27 868.69 32.66 L 869.21 32.95 Q 870.15 33.48 870.52 33.96 Q 870.89 34.43 870.89 35.1 Q 870.89 36.04 870.19 36.61 Q 869.5 37.18 868.35 37.18 M 868.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 37.18 Q 876.34 37.18 875.43 36.19 Q 874.51 35.2 874.51 33.39 Q 874.51 31.58 875.44 30.59 Q 876.38 29.59 878.08 29.59 Q 879.05 29.59 880.35 29.91 L 880.35 30.87 Q 878.87 30.36 878.06 30.36 Q 876.89 30.36 876.24 31.16 Q 875.6 31.95 875.6 33.4 Q 875.6 34.78 876.29 35.58 Q 876.97 36.38 878.17 36.38 Q 879.19 36.38 880.36 35.75 L 880.36 36.63 Q 879.29 37.18 878.03 37.18 M 878.03 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 37 L 883.93 29.77 L 886.12 29.77 Q 887.16 29.77 887.71 30.23 Q 888.27 30.69 888.27 31.57 Q 888.27 33.01 886.81 33.62 L 889.22 37 L 887.96 37 L 885.91 33.94 L 884.95 33.94 L 884.95 37 M 883.93 37 M 884.95 33.18 L 885.28 33.18 Q 887.21 33.18 887.21 31.66 Q 887.21 30.54 885.59 30.54 L 884.95 30.54 M 884.95 33.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 34.24 L 895.36 31.12 L 894.13 34.24 M 896.59 34.24 M 897.68 37 L 896.89 35 L 893.83 35 L 893.04 37 L 892.08 37 L 894.95 29.77 L 895.96 29.77 L 898.79 37 M 897.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 36.8 Q 906.05 37.18 905.07 37.18 Q 903.35 37.18 902.43 36.2 Q 901.51 35.22 901.51 33.39 Q 901.51 31.59 902.44 30.59 Q 903.37 29.59 905.06 29.59 Q 906.16 29.59 907.35 29.92 L 907.35 30.87 Q 905.86 30.36 905.06 30.36 Q 903.89 30.36 903.24 31.16 Q 902.6 31.95 902.6 33.4 Q 902.6 34.83 903.29 35.62 Q 903.98 36.41 905.23 36.41 Q 905.75 36.41 906.34 36.23 L 906.34 33.88 L 907.36 33.88 M 907.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 37.18 Q 912.62 37.18 911.49 36.86 L 911.49 35.85 Q 912.71 36.41 913.5 36.41 Q 914.1 36.41 914.47 36.1 Q 914.84 35.78 914.84 35.26 Q 914.84 34.84 914.6 34.54 Q 914.35 34.24 913.71 33.88 L 913.21 33.59 Q 912.28 33.06 911.91 32.59 Q 911.53 32.13 911.53 31.51 Q 911.53 30.67 912.13 30.13 Q 912.74 29.59 913.68 29.59 Q 914.51 29.59 915.44 29.87 L 915.44 30.81 Q 914.3 30.36 913.73 30.36 Q 913.2 30.36 912.86 30.64 Q 912.51 30.93 912.51 31.36 Q 912.51 31.72 912.76 32 Q 913.02 32.27 913.69 32.66 L 914.21 32.95 Q 915.15 33.48 915.52 33.96 Q 915.89 34.43 915.89 35.1 Q 915.89 36.04 915.19 36.61 Q 914.5 37.18 913.35 37.18 M 913.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 37.18 Q 921.34 37.18 920.43 36.19 Q 919.51 35.2 919.51 33.39 Q 919.51 31.58 920.44 30.59 Q 921.38 29.59 923.08 29.59 Q 924.05 29.59 925.35 29.91 L 925.35 30.87 Q 923.87 30.36 923.06 30.36 Q 921.89 30.36 921.24 31.16 Q 920.6 31.95 920.6 33.4 Q 920.6 34.78 921.29 35.58 Q 921.97 36.38 923.17 36.38 Q 924.19 36.38 925.36 35.75 L 925.36 36.63 Q 924.29 37.18 923.03 37.18 M 923.03 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 37.18 Q 930.62 37.18 929.49 36.86 L 929.49 35.85 Q 930.71 36.41 931.5 36.41 Q 932.1 36.41 932.47 36.1 Q 932.84 35.78 932.84 35.26 Q 932.84 34.84 932.6 34.54 Q 932.35 34.24 931.71 33.88 L 931.21 33.59 Q 930.28 33.06 929.91 32.59 Q 929.53 32.13 929.53 31.51 Q 929.53 30.67 930.13 30.13 Q 930.74 29.59 931.68 29.59 Q 932.51 29.59 933.44 29.87 L 933.44 30.81 Q 932.3 30.36 931.73 30.36 Q 931.2 30.36 930.86 30.64 Q 930.51 30.93 930.51 31.36 Q 930.51 31.72 930.76 32 Q 931.02 32.27 931.69 32.66 L 932.21 32.95 Q 933.15 33.48 933.52 33.96 Q 933.89 34.43 933.89 35.1 Q 933.89 36.04 933.19 36.61 Q 932.5 37.18 931.35 37.18 M 931.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 37.18 Q 939.62 37.18 938.49 36.86 L 938.49 35.85 Q 939.71 36.41 940.5 36.41 Q 941.1 36.41 941.47 36.1 Q 941.84 35.78 941.84 35.26 Q 941.84 34.84 941.6 34.54 Q 941.35 34.24 940.71 33.88 L 940.21 33.59 Q 939.28 33.06 938.91 32.59 Q 938.53 32.13 938.53 31.51 Q 938.53 30.67 939.13 30.13 Q 939.74 29.59 940.68 29.59 Q 941.51 29.59 942.44 29.87 L 942.44 30.81 Q 941.3 30.36 940.73 30.36 Q 940.2 30.36 939.86 30.64 Q 939.51 30.93 939.51 31.36 Q 939.51 31.72 939.76 32 Q 940.02 32.27 940.69 32.66 L 941.21 32.95 Q 942.15 33.48 942.52 33.96 Q 942.89 34.43 942.89 35.1 Q 942.89 36.04 942.19 36.61 Q 941.5 37.18 940.35 37.18 M 940.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 37.18 Q 948.34 37.18 947.43 36.19 Q 946.51 35.2 946.51 33.39 Q 946.51 31.58 947.44 30.59 Q 948.38 29.59 950.08 29.59 Q 951.05 29.59 952.35 29.91 L 952.35 30.87 Q 950.87 30.36 950.06 30.36 Q 948.89 30.36 948.24 31.16 Q 947.6 31.95 947.6 33.4 Q 947.6 34.78 948.29 35.58 Q 948.97 36.38 950.17 36.38 Q 951.19 36.38 952.36 35.75 L 952.36 36.63 Q 951.29 37.18 950.03 37.18 M 950.03 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 34.24 L 958.36 31.12 L 957.13 34.24 M 959.59 34.24 M 960.68 37 L 959.89 35 L 956.83 35 L 956.04 37 L 955.08 37 L 957.95 29.77 L 958.96 29.77 L 961.79 37 M 960.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 36.8 Q 969.05 37.18 968.07 37.18 Q 966.35 37.18 965.43 36.2 Q 964.51 35.22 964.51 33.39 Q 964.51 31.59 965.44 30.59 Q 966.37 29.59 968.06 29.59 Q 969.16 29.59 970.35 29.92 L 970.35 30.87 Q 968.86 30.36 968.06 30.36 Q 966.89 30.36 966.24 31.16 Q 965.6 31.95 965.6 33.4 Q 965.6 34.83 966.29 35.62 Q 966.98 36.41 968.23 36.41 Q 968.75 36.41 969.34 36.23 L 969.34 33.88 L 970.36 33.88 M 970.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 37 L 973.93 29.77 L 974.89 29.77 L 974.89 33.33 L 977.82 29.77 L 978.85 29.77 L 976.02 33.22 L 979.35 37 L 978.05 37 L 974.89 33.34 L 974.89 37 M 973.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 37 L 982.18 29.77 L 983.2 29.77 L 985.44 35.69 L 987.6 29.77 L 988.49 29.77 L 985.87 37 M 984.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.65 37 L 993.65 30.54 L 991.09 30.54 L 991.09 29.77 L 997.24 29.77 L 997.24 30.54 L 994.68 30.54 L 994.68 37 M 993.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1004.59 34.24 L 1003.36 31.12 L 1002.13 34.24 M 1004.59 34.24 M 1005.68 37 L 1004.89 35 L 1001.83 35 L 1001.04 37 L 1000.08 37 L 1002.95 29.77 L 1003.96 29.77 L 1006.79 37 M 1005.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 36.8 Q 1014.05 37.18 1013.07 37.18 Q 1011.35 37.18 1010.43 36.2 Q 1009.51 35.22 1009.51 33.39 Q 1009.51 31.59 1010.44 30.59 Q 1011.37 29.59 1013.06 29.59 Q 1014.16 29.59 1015.35 29.92 L 1015.35 30.87 Q 1013.86 30.36 1013.06 30.36 Q 1011.89 30.36 1011.24 31.16 Q 1010.6 31.95 1010.6 33.4 Q 1010.6 34.83 1011.29 35.62 Q 1011.98 36.41 1013.23 36.41 Q 1013.75 36.41 1014.34 36.23 L 1014.34 33.88 L 1015.36 33.88 M 1015.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 37.18 Q 1020.62 37.18 1019.49 36.86 L 1019.49 35.85 Q 1020.71 36.41 1021.5 36.41 Q 1022.1 36.41 1022.47 36.1 Q 1022.84 35.78 1022.84 35.26 Q 1022.84 34.84 1022.6 34.54 Q 1022.35 34.24 1021.71 33.88 L 1021.21 33.59 Q 1020.28 33.06 1019.91 32.59 Q 1019.53 32.13 1019.53 31.51 Q 1019.53 30.67 1020.13 30.13 Q 1020.74 29.59 1021.68 29.59 Q 1022.51 29.59 1023.44 29.87 L 1023.44 30.81 Q 1022.3 30.36 1021.73 30.36 Q 1021.2 30.36 1020.86 30.64 Q 1020.51 30.93 1020.51 31.36 Q 1020.51 31.72 1020.76 32 Q 1021.02 32.27 1021.69 32.66 L 1022.21 32.95 Q 1023.15 33.48 1023.52 33.96 Q 1023.89 34.43 1023.89 35.1 Q 1023.89 36.04 1023.19 36.61 Q 1022.5 37.18 1021.35 37.18 M 1021.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 37 L 1027.18 29.77 L 1028.2 29.77 L 1030.44 35.69 L 1032.6 29.77 L 1033.49 29.77 L 1030.87 37 M 1029.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 37 L 1036.93 29.77 L 1039.33 29.77 Q 1040.41 29.77 1041.07 30.01 Q 1041.73 30.25 1042.22 30.82 Q 1042.98 31.73 1042.98 33.22 Q 1042.98 35.02 1042.03 36.01 Q 1041.08 37 1039.35 37 M 1036.93 37 M 1037.96 36.23 L 1039.27 36.23 Q 1040.68 36.23 1041.26 35.48 Q 1041.89 34.67 1041.89 33.31 Q 1041.89 32.04 1041.27 31.31 Q 1040.9 30.87 1040.38 30.7 Q 1039.85 30.54 1038.8 30.54 L 1037.96 30.54 M 1037.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 38.45 Q 1049.64 37.89 1048.49 37.13 Q 1048.03 37.18 1047.78 37.18 Q 1046.33 37.18 1045.42 36.13 Q 1044.51 35.07 1044.51 33.39 Q 1044.51 31.66 1045.43 30.63 Q 1046.35 29.59 1047.89 29.59 Q 1049.43 29.59 1050.35 30.63 Q 1051.27 31.66 1051.27 33.4 Q 1051.27 35.89 1049.42 36.85 Q 1050.66 37.4 1052 37.63 M 1051.35 38.45 M 1047.86 36.41 Q 1048.97 36.41 1049.57 35.62 Q 1050.18 34.82 1050.18 33.37 Q 1050.18 31.96 1049.57 31.16 Q 1048.97 30.36 1047.89 30.36 Q 1046.81 30.36 1046.2 31.16 Q 1045.6 31.96 1045.6 33.38 Q 1045.6 34.79 1046.2 35.6 Q 1046.8 36.41 1047.86 36.41 M 1047.86 36.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 37.18 Q 1056.62 37.18 1055.49 36.86 L 1055.49 35.85 Q 1056.71 36.41 1057.5 36.41 Q 1058.1 36.41 1058.47 36.1 Q 1058.84 35.78 1058.84 35.26 Q 1058.84 34.84 1058.6 34.54 Q 1058.35 34.24 1057.71 33.88 L 1057.21 33.59 Q 1056.28 33.06 1055.91 32.59 Q 1055.53 32.13 1055.53 31.51 Q 1055.53 30.67 1056.13 30.13 Q 1056.74 29.59 1057.68 29.59 Q 1058.51 29.59 1059.44 29.87 L 1059.44 30.81 Q 1058.3 30.36 1057.73 30.36 Q 1057.2 30.36 1056.86 30.64 Q 1056.51 30.93 1056.51 31.36 Q 1056.51 31.72 1056.76 32 Q 1057.02 32.27 1057.69 32.66 L 1058.21 32.95 Q 1059.15 33.48 1059.52 33.96 Q 1059.89 34.43 1059.89 35.1 Q 1059.89 36.04 1059.19 36.61 Q 1058.5 37.18 1057.35 37.18 M 1057.35 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 37 L 1063.93 29.77 L 1066.33 29.77 Q 1067.41 29.77 1068.07 30.01 Q 1068.73 30.25 1069.22 30.82 Q 1069.98 31.73 1069.98 33.22 Q 1069.98 35.02 1069.03 36.01 Q 1068.08 37 1066.35 37 M 1063.93 37 M 1064.96 36.23 L 1066.27 36.23 Q 1067.68 36.23 1068.26 35.48 Q 1068.89 34.67 1068.89 33.31 Q 1068.89 32.04 1068.27 31.31 Q 1067.9 30.87 1067.38 30.7 Q 1066.85 30.54 1065.8 30.54 L 1064.96 30.54 M 1064.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 36.8 Q 1077.05 37.18 1076.07 37.18 Q 1074.35 37.18 1073.43 36.2 Q 1072.51 35.22 1072.51 33.39 Q 1072.51 31.59 1073.44 30.59 Q 1074.37 29.59 1076.06 29.59 Q 1077.16 29.59 1078.35 29.92 L 1078.35 30.87 Q 1076.86 30.36 1076.06 30.36 Q 1074.89 30.36 1074.24 31.16 Q 1073.6 31.95 1073.6 33.4 Q 1073.6 34.83 1074.29 35.62 Q 1074.98 36.41 1076.23 36.41 Q 1076.75 36.41 1077.34 36.23 L 1077.34 33.88 L 1078.36 33.88 M 1078.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1081.93 37 L 1081.93 29.77 L 1082.94 29.77 L 1086.58 35.35 L 1086.58 29.77 L 1087.46 29.77 L 1087.46 37 L 1086.45 37 L 1082.81 31.42 L 1082.81 37 M 1081.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 37 L 1091.93 29.77 L 1095.97 29.77 L 1095.97 30.54 L 1092.96 30.54 L 1092.96 32.96 L 1095.49 32.96 L 1095.49 33.72 L 1092.96 33.72 L 1092.96 37 M 1091.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 37 L 1100.93 29.77 L 1101.96 29.77 L 1101.96 36.23 L 1105.21 36.23 L 1105.21 37 M 1100.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 37 L 1108.93 29.77 L 1111.33 29.77 Q 1112.41 29.77 1113.07 30.01 Q 1113.73 30.25 1114.22 30.82 Q 1114.98 31.73 1114.98 33.22 Q 1114.98 35.02 1114.03 36.01 Q 1113.08 37 1111.35 37 M 1108.93 37 M 1109.96 36.23 L 1111.27 36.23 Q 1112.68 36.23 1113.26 35.48 Q 1113.89 34.67 1113.89 33.31 Q 1113.89 32.04 1113.27 31.31 Q 1112.9 30.87 1112.38 30.7 Q 1111.85 30.54 1110.8 30.54 L 1109.96 30.54 M 1109.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1118.93 37 L 1118.93 29.77 L 1122.97 29.77 L 1122.97 30.54 L 1119.96 30.54 L 1119.96 32.86 L 1122.48 32.86 L 1122.48 33.62 L 1119.96 33.62 L 1119.96 36.23 L 1123.18 36.23 L 1123.18 37 M 1118.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 37 L 1126.93 29.77 L 1129.33 29.77 Q 1130.41 29.77 1131.07 30.01 Q 1131.73 30.25 1132.22 30.82 Q 1132.98 31.73 1132.98 33.22 Q 1132.98 35.02 1132.03 36.01 Q 1131.08 37 1129.35 37 M 1126.93 37 M 1127.96 36.23 L 1129.27 36.23 Q 1130.68 36.23 1131.26 35.48 Q 1131.89 34.67 1131.89 33.31 Q 1131.89 32.04 1131.27 31.31 Q 1130.9 30.87 1130.38 30.7 Q 1129.85 30.54 1128.8 30.54 L 1127.96 30.54 M 1127.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 38.45 Q 1139.64 37.89 1138.49 37.13 Q 1138.03 37.18 1137.78 37.18 Q 1136.33 37.18 1135.42 36.13 Q 1134.51 35.07 1134.51 33.39 Q 1134.51 31.66 1135.43 30.63 Q 1136.35 29.59 1137.89 29.59 Q 1139.43 29.59 1140.35 30.63 Q 1141.27 31.66 1141.27 33.4 Q 1141.27 35.89 1139.42 36.85 Q 1140.66 37.4 1142 37.63 M 1141.35 38.45 M 1137.86 36.41 Q 1138.97 36.41 1139.57 35.62 Q 1140.18 34.82 1140.18 33.37 Q 1140.18 31.96 1139.57 31.16 Q 1138.97 30.36 1137.89 30.36 Q 1136.81 30.36 1136.2 31.16 Q 1135.6 31.96 1135.6 33.38 Q 1135.6 34.79 1136.2 35.6 Q 1136.8 36.41 1137.86 36.41 M 1137.86 36.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1145.93 37 L 1145.93 29.77 L 1149.97 29.77 L 1149.97 30.54 L 1146.96 30.54 L 1146.96 32.86 L 1149.48 32.86 L 1149.48 33.62 L 1146.96 33.62 L 1146.96 36.23 L 1150.18 36.23 L 1150.18 37 M 1145.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1157.59 34.24 L 1156.36 31.12 L 1155.13 34.24 M 1157.59 34.24 M 1158.68 37 L 1157.89 35 L 1154.83 35 L 1154.04 37 L 1153.08 37 L 1155.95 29.77 L 1156.96 29.77 L 1159.79 37 M 1158.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1166.59 34.24 L 1165.36 31.12 L 1164.13 34.24 M 1166.59 34.24 M 1167.68 37 L 1166.89 35 L 1163.83 35 L 1163.04 37 L 1162.08 37 L 1164.95 29.77 L 1165.96 29.77 L 1168.79 37 M 1167.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 36.8 Q 1176.05 37.18 1175.07 37.18 Q 1173.35 37.18 1172.43 36.2 Q 1171.51 35.22 1171.51 33.39 Q 1171.51 31.59 1172.44 30.59 Q 1173.37 29.59 1175.06 29.59 Q 1176.16 29.59 1177.35 29.92 L 1177.35 30.87 Q 1175.86 30.36 1175.06 30.36 Q 1173.89 30.36 1173.24 31.16 Q 1172.6 31.95 1172.6 33.4 Q 1172.6 34.83 1173.29 35.62 Q 1173.98 36.41 1175.23 36.41 Q 1175.75 36.41 1176.34 36.23 L 1176.34 33.88 L 1177.36 33.88 M 1177.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1181.93 37 L 1181.93 29.77 L 1185.97 29.77 L 1185.97 30.54 L 1182.96 30.54 L 1182.96 32.96 L 1185.49 32.96 L 1185.49 33.72 L 1182.96 33.72 L 1182.96 37 M 1181.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 37 L 1189.18 29.77 L 1190.2 29.77 L 1192.44 35.69 L 1194.6 29.77 L 1195.49 29.77 L 1192.87 37 M 1191.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 37 L 1199.93 29.77 L 1200.96 29.77 L 1200.96 36.23 L 1204.21 36.23 L 1204.21 37 M 1199.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 37 L 1209.65 30.54 L 1207.09 30.54 L 1207.09 29.77 L 1213.24 29.77 L 1213.24 30.54 L 1210.68 30.54 L 1210.68 37 M 1209.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 37.18 Q 1218.34 37.18 1217.43 36.19 Q 1216.51 35.2 1216.51 33.39 Q 1216.51 31.58 1217.44 30.59 Q 1218.38 29.59 1220.08 29.59 Q 1221.05 29.59 1222.35 29.91 L 1222.35 30.87 Q 1220.87 30.36 1220.06 30.36 Q 1218.89 30.36 1218.24 31.16 Q 1217.6 31.95 1217.6 33.4 Q 1217.6 34.78 1218.29 35.58 Q 1218.97 36.38 1220.17 36.38 Q 1221.19 36.38 1222.36 35.75 L 1222.36 36.63 Q 1221.29 37.18 1220.03 37.18 M 1220.03 37.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 37 L 1225.18 29.77 L 1226.2 29.77 L 1228.44 35.69 L 1230.6 29.77 L 1231.49 29.77 L 1228.87 37 M 1227.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 34.24 L 1237.36 31.12 L 1236.13 34.24 M 1238.59 34.24 M 1239.68 37 L 1238.89 35 L 1235.83 35 L 1235.04 37 L 1234.08 37 L 1236.95 29.77 L 1237.96 29.77 L 1240.79 37 M 1239.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 37 L 1245.5 33.98 L 1243.08 29.77 L 1244.25 29.77 L 1246.13 33.04 L 1248.15 29.77 L 1249.1 29.77 L 1246.52 33.96 L 1246.52 37 M 1245.5 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 37 L 1252.93 29.77 L 1254.9 29.77 Q 1256.21 29.77 1256.78 30.22 Q 1257.35 30.66 1257.35 31.67 Q 1257.35 32.82 1256.57 33.47 Q 1255.79 34.13 1254.4 34.13 L 1253.95 34.13 L 1253.95 37 M 1252.93 37 M 1253.95 33.35 L 1254.36 33.35 Q 1255.28 33.35 1255.77 32.93 Q 1256.27 32.51 1256.27 31.75 Q 1256.27 31.1 1255.88 30.82 Q 1255.49 30.54 1254.58 30.54 L 1253.95 30.54 M 1253.95 33.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1261.93 37 L 1261.93 29.77 L 1262.89 29.77 L 1262.89 33.33 L 1265.82 29.77 L 1266.85 29.77 L 1264.02 33.22 L 1267.35 37 L 1266.05 37 L 1262.89 33.34 L 1262.89 37 M 1261.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1276.36 36.8 Q 1275.05 37.18 1274.07 37.18 Q 1272.35 37.18 1271.43 36.2 Q 1270.51 35.22 1270.51 33.39 Q 1270.51 31.59 1271.44 30.59 Q 1272.37 29.59 1274.06 29.59 Q 1275.16 29.59 1276.35 29.92 L 1276.35 30.87 Q 1274.86 30.36 1274.06 30.36 Q 1272.89 30.36 1272.24 31.16 Q 1271.6 31.95 1271.6 33.4 Q 1271.6 34.83 1272.29 35.62 Q 1272.98 36.41 1274.23 36.41 Q 1274.75 36.41 1275.34 36.23 L 1275.34 33.88 L 1276.36 33.88 M 1276.36 36.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 37 L 1279.93 29.77 L 1282.33 29.77 Q 1283.41 29.77 1284.07 30.01 Q 1284.73 30.25 1285.22 30.82 Q 1285.98 31.73 1285.98 33.22 Q 1285.98 35.02 1285.03 36.01 Q 1284.08 37 1282.35 37 M 1279.93 37 M 1280.96 36.23 L 1282.27 36.23 Q 1283.68 36.23 1284.26 35.48 Q 1284.89 34.67 1284.89 33.31 Q 1284.89 32.04 1284.27 31.31 Q 1283.9 30.87 1283.38 30.7 Q 1282.85 30.54 1281.8 30.54 L 1280.96 30.54 M 1280.96 36.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 37 L 1288.18 29.77 L 1289.2 29.77 L 1291.44 35.69 L 1293.6 29.77 L 1294.49 29.77 L 1291.87 37 M 1290.91 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 37 L 1299.65 30.54 L 1297.09 30.54 L 1297.09 29.77 L 1303.24 29.77 L 1303.24 30.54 L 1300.68 30.54 L 1300.68 37 M 1299.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 37 L 1308.93 29.77 L 1309.95 29.77 L 1309.95 37 M 1308.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 37 L 1316.93 29.77 L 1320.97 29.77 L 1320.97 30.54 L 1317.96 30.54 L 1317.96 32.86 L 1320.48 32.86 L 1320.48 33.62 L 1317.96 33.62 L 1317.96 36.23 L 1321.18 36.23 L 1321.18 37 M 1316.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 37 L 1326.65 30.54 L 1324.09 30.54 L 1324.09 29.77 L 1330.24 29.77 L 1330.24 30.54 L 1327.68 30.54 L 1327.68 37 M 1326.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 37 L 1333.93 29.77 L 1334.96 29.77 L 1334.96 32.82 L 1338.4 32.82 L 1338.4 29.77 L 1339.42 29.77 L 1339.42 37 L 1338.4 37 L 1338.4 33.59 L 1334.96 33.59 L 1334.96 37 M 1333.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 37 L 1342.93 29.77 L 1343.89 29.77 L 1343.89 33.33 L 1346.82 29.77 L 1347.85 29.77 L 1345.02 33.22 L 1348.35 37 L 1347.05 37 L 1343.89 33.34 L 1343.89 37 M 1342.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 37 L 1352.93 29.77 L 1356.97 29.77 L 1356.97 30.54 L 1353.96 30.54 L 1353.96 32.86 L 1356.48 32.86 L 1356.48 33.62 L 1353.96 33.62 L 1353.96 36.23 L 1357.18 36.23 L 1357.18 37 M 1352.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 37 L 1361.93 29.77 L 1365.97 29.77 L 1365.97 30.54 L 1362.96 30.54 L 1362.96 32.86 L 1365.48 32.86 L 1365.48 33.62 L 1362.96 33.62 L 1362.96 36.23 L 1366.18 36.23 L 1366.18 37 M 1361.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 37 L 1370.93 29.77 L 1374.97 29.77 L 1374.97 30.54 L 1371.96 30.54 L 1371.96 32.86 L 1374.48 32.86 L 1374.48 33.62 L 1371.96 33.62 L 1371.96 36.23 L 1375.18 36.23 L 1375.18 37 M 1370.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 37 L 1379.93 29.77 L 1380.96 29.77 L 1380.96 36.23 L 1384.21 36.23 L 1384.21 37 M 1379.93 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 37 L 1389.65 30.54 L 1387.09 30.54 L 1387.09 29.77 L 1393.24 29.77 L 1393.24 30.54 L 1390.68 30.54 L 1390.68 37 M 1389.65 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1400.59 34.24 L 1399.36 31.12 L 1398.13 34.24 M 1400.59 34.24 M 1401.68 37 L 1400.89 35 L 1397.83 35 L 1397.04 37 L 1396.08 37 L 1398.95 29.77 L 1399.96 29.77 L 1402.79 37 M 1401.68 37"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 34.47 L 1405.72 33.75 L 1410.06 33.75 L 1410.06 34.47 M 1405.72 34.47"/></g><rect x="0" y="39" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="39" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="39" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="39" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="39" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="39" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="39" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="39" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="39" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="39" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="39" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="39" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="39" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="39" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="39" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="39" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="39" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="39" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="39" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="39" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="990" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="39" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="39" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="39" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="39" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="39" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="39" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="39" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="39" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="39" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 50 L 0.93 42.77 L 2.35 42.77 L 4.36 48.36 L 6.42 42.77 L 7.69 42.77 L 7.69 50 L 6.73 50 L 6.73 44.12 L 4.74 49.52 L 3.75 49.52 L 1.81 44.11 L 1.81 50 M 0.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 47.24 L 13.36 44.12 L 12.13 47.24 M 14.59 47.24 M 15.68 50 L 14.89 48 L 11.83 48 L 11.04 50 L 10.08 50 L 12.95 42.77 L 13.96 42.77 L 16.79 50 M 15.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 19.72 47.47 L 19.72 46.75 L 24.06 46.75 L 24.06 47.47 M 19.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 28.72 47.47 L 28.72 46.75 L 33.06 46.75 L 33.06 47.47 M 28.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 47.47 L 37.72 46.75 L 42.06 46.75 L 42.06 47.47 M 37.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 47.47 L 46.72 46.75 L 51.06 46.75 L 51.06 47.47 M 46.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 47.47 L 55.72 46.75 L 60.06 46.75 L 60.06 47.47 M 55.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 47.47 L 64.72 46.75 L 69.06 46.75 L 69.06 47.47 M 64.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 76.35 50.18 Q 75.62 50.18 74.49 49.86 L 74.49 48.85 Q 75.71 49.41 76.5 49.41 Q 77.1 49.41 77.47 49.1 Q 77.84 48.78 77.84 48.26 Q 77.84 47.84 77.6 47.54 Q 77.35 47.24 76.71 46.88 L 76.21 46.59 Q 75.28 46.06 74.91 45.59 Q 74.53 45.13 74.53 44.51 Q 74.53 43.67 75.13 43.13 Q 75.74 42.59 76.68 42.59 Q 77.51 42.59 78.44 42.87 L 78.44 43.81 Q 77.3 43.36 76.73 43.36 Q 76.2 43.36 75.86 43.64 Q 75.51 43.93 75.51 44.36 Q 75.51 44.72 75.76 45 Q 76.02 45.27 76.69 45.66 L 77.21 45.95 Q 78.15 46.48 78.52 46.96 Q 78.89 47.43 78.89 48.1 Q 78.89 49.04 78.19 49.61 Q 77.5 50.18 76.35 50.18 M 76.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 84.93 50 L 84.93 42.77 L 85.95 42.77 L 85.95 50 M 84.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 50.18 Q 93.62 50.18 92.49 49.86 L 92.49 48.85 Q 93.71 49.41 94.5 49.41 Q 95.1 49.41 95.47 49.1 Q 95.84 48.78 95.84 48.26 Q 95.84 47.84 95.6 47.54 Q 95.35 47.24 94.71 46.88 L 94.21 46.59 Q 93.28 46.06 92.91 45.59 Q 92.53 45.13 92.53 44.51 Q 92.53 43.67 93.13 43.13 Q 93.74 42.59 94.68 42.59 Q 95.51 42.59 96.44 42.87 L 96.44 43.81 Q 95.3 43.36 94.73 43.36 Q 94.2 43.36 93.86 43.64 Q 93.51 43.93 93.51 44.36 Q 93.51 44.72 93.76 45 Q 94.02 45.27 94.69 45.66 L 95.21 45.95 Q 96.15 46.48 96.52 46.96 Q 96.89 47.43 96.89 48.1 Q 96.89 49.04 96.19 49.61 Q 95.5 50.18 94.35 50.18 M 94.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 106.36 49.8 Q 105.05 50.18 104.07 50.18 Q 102.35 50.18 101.43 49.2 Q 100.51 48.22 100.51 46.39 Q 100.51 44.59 101.44 43.59 Q 102.37 42.59 104.06 42.59 Q 105.16 42.59 106.35 42.92 L 106.35 43.87 Q 104.86 43.36 104.06 43.36 Q 102.89 43.36 102.24 44.16 Q 101.6 44.95 101.6 46.4 Q 101.6 47.83 102.29 48.62 Q 102.98 49.41 104.23 49.41 Q 104.75 49.41 105.34 49.23 L 105.34 46.88 L 106.36 46.88 M 106.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 111.65 50 L 111.65 43.54 L 109.09 43.54 L 109.09 42.77 L 115.24 42.77 L 115.24 43.54 L 112.68 43.54 L 112.68 50 M 111.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 117.93 50 L 117.93 42.77 L 119.35 42.77 L 121.36 48.36 L 123.42 42.77 L 124.69 42.77 L 124.69 50 L 123.73 50 L 123.73 44.12 L 121.74 49.52 L 120.75 49.52 L 118.81 44.11 L 118.81 50 M 117.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.93 50 L 129.93 42.77 L 130.95 42.77 L 130.95 50 M 129.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 50.18 Q 138.62 50.18 137.49 49.86 L 137.49 48.85 Q 138.71 49.41 139.5 49.41 Q 140.1 49.41 140.47 49.1 Q 140.84 48.78 140.84 48.26 Q 140.84 47.84 140.6 47.54 Q 140.35 47.24 139.71 46.88 L 139.21 46.59 Q 138.28 46.06 137.91 45.59 Q 137.53 45.13 137.53 44.51 Q 137.53 43.67 138.13 43.13 Q 138.74 42.59 139.68 42.59 Q 140.51 42.59 141.44 42.87 L 141.44 43.81 Q 140.3 43.36 139.73 43.36 Q 139.2 43.36 138.86 43.64 Q 138.51 43.93 138.51 44.36 Q 138.51 44.72 138.76 45 Q 139.02 45.27 139.69 45.66 L 140.21 45.95 Q 141.15 46.48 141.52 46.96 Q 141.89 47.43 141.89 48.1 Q 141.89 49.04 141.19 49.61 Q 140.5 50.18 139.35 50.18 M 139.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 50 L 147.65 43.54 L 145.09 43.54 L 145.09 42.77 L 151.24 42.77 L 151.24 43.54 L 148.68 43.54 L 148.68 50 M 147.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 50.18 Q 156.62 50.18 155.49 49.86 L 155.49 48.85 Q 156.71 49.41 157.5 49.41 Q 158.1 49.41 158.47 49.1 Q 158.84 48.78 158.84 48.26 Q 158.84 47.84 158.6 47.54 Q 158.35 47.24 157.71 46.88 L 157.21 46.59 Q 156.28 46.06 155.91 45.59 Q 155.53 45.13 155.53 44.51 Q 155.53 43.67 156.13 43.13 Q 156.74 42.59 157.68 42.59 Q 158.51 42.59 159.44 42.87 L 159.44 43.81 Q 158.3 43.36 157.73 43.36 Q 157.2 43.36 156.86 43.64 Q 156.51 43.93 156.51 44.36 Q 156.51 44.72 156.76 45 Q 157.02 45.27 157.69 45.66 L 158.21 45.95 Q 159.15 46.48 159.52 46.96 Q 159.89 47.43 159.89 48.1 Q 159.89 49.04 159.19 49.61 Q 158.5 50.18 157.35 50.18 M 157.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 50 L 164.93 42.77 L 168.97 42.77 L 168.97 43.54 L 165.96 43.54 L 165.96 45.96 L 168.49 45.96 L 168.49 46.72 L 165.96 46.72 L 165.96 50 M 164.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 50 L 173.93 42.77 L 174.96 42.77 L 174.96 49.23 L 178.21 49.23 L 178.21 50 M 173.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 50 L 181.93 42.77 L 183.9 42.77 Q 185.21 42.77 185.78 43.22 Q 186.35 43.66 186.35 44.67 Q 186.35 45.82 185.57 46.47 Q 184.79 47.13 183.4 47.13 L 182.95 47.13 L 182.95 50 M 181.93 50 M 182.95 46.35 L 183.36 46.35 Q 184.28 46.35 184.77 45.93 Q 185.27 45.51 185.27 44.75 Q 185.27 44.1 184.88 43.82 Q 184.49 43.54 183.58 43.54 L 182.95 43.54 M 182.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 50 L 190.93 42.77 L 193.12 42.77 Q 194.16 42.77 194.71 43.23 Q 195.27 43.69 195.27 44.57 Q 195.27 46.01 193.81 46.62 L 196.22 50 L 194.96 50 L 192.91 46.94 L 191.95 46.94 L 191.95 50 M 190.93 50 M 191.95 46.18 L 192.28 46.18 Q 194.21 46.18 194.21 44.66 Q 194.21 43.54 192.59 43.54 L 191.95 43.54 M 191.95 46.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.93 50 L 199.93 42.77 L 200.89 42.77 L 200.89 46.33 L 203.82 42.77 L 204.85 42.77 L 202.02 46.22 L 205.35 50 L 204.05 50 L 200.89 46.34 L 200.89 50 M 199.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 50 L 208.93 42.77 L 210.9 42.77 Q 212.21 42.77 212.78 43.22 Q 213.35 43.66 213.35 44.67 Q 213.35 45.82 212.57 46.47 Q 211.79 47.13 210.4 47.13 L 209.95 47.13 L 209.95 50 M 208.93 50 M 209.95 46.35 L 210.36 46.35 Q 211.28 46.35 211.77 45.93 Q 212.27 45.51 212.27 44.75 Q 212.27 44.1 211.88 43.82 Q 211.49 43.54 210.58 43.54 L 209.95 43.54 M 209.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 219.91 50 L 217.18 42.77 L 218.2 42.77 L 220.44 48.69 L 222.6 42.77 L 223.49 42.77 L 220.87 50 M 219.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 228.91 50 L 226.18 42.77 L 227.2 42.77 L 229.44 48.69 L 231.6 42.77 L 232.49 42.77 L 229.87 50 M 228.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.65 50 L 237.65 43.54 L 235.09 43.54 L 235.09 42.77 L 241.24 42.77 L 241.24 43.54 L 238.68 43.54 L 238.68 50 M 237.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 50.18 Q 246.62 50.18 245.49 49.86 L 245.49 48.85 Q 246.71 49.41 247.5 49.41 Q 248.1 49.41 248.47 49.1 Q 248.84 48.78 248.84 48.26 Q 248.84 47.84 248.6 47.54 Q 248.35 47.24 247.71 46.88 L 247.21 46.59 Q 246.28 46.06 245.91 45.59 Q 245.53 45.13 245.53 44.51 Q 245.53 43.67 246.13 43.13 Q 246.74 42.59 247.68 42.59 Q 248.51 42.59 249.44 42.87 L 249.44 43.81 Q 248.3 43.36 247.73 43.36 Q 247.2 43.36 246.86 43.64 Q 246.51 43.93 246.51 44.36 Q 246.51 44.72 246.76 45 Q 247.02 45.27 247.69 45.66 L 248.21 45.95 Q 249.15 46.48 249.52 46.96 Q 249.89 47.43 249.89 48.1 Q 249.89 49.04 249.19 49.61 Q 248.5 50.18 247.35 50.18 M 247.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 254.93 50 L 254.93 42.77 L 255.96 42.77 L 255.96 49.23 L 259.21 49.23 L 259.21 50 M 254.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 47.47 L 262.72 46.75 L 267.06 46.75 L 267.06 47.47 M 262.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.93 50 L 271.93 42.77 L 272.89 42.77 L 272.89 46.33 L 275.82 42.77 L 276.85 42.77 L 274.02 46.22 L 277.35 50 L 276.05 50 L 272.89 46.34 L 272.89 50 M 271.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 284.59 47.24 L 283.36 44.12 L 282.13 47.24 M 284.59 47.24 M 285.68 50 L 284.89 48 L 281.83 48 L 281.04 50 L 280.08 50 L 282.95 42.77 L 283.96 42.77 L 286.79 50 M 285.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 291.93 50 L 291.93 42.77 L 292.95 42.77 L 292.95 50 M 291.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 301.35 50.18 Q 300.62 50.18 299.49 49.86 L 299.49 48.85 Q 300.71 49.41 301.5 49.41 Q 302.1 49.41 302.47 49.1 Q 302.84 48.78 302.84 48.26 Q 302.84 47.84 302.6 47.54 Q 302.35 47.24 301.71 46.88 L 301.21 46.59 Q 300.28 46.06 299.91 45.59 Q 299.53 45.13 299.53 44.51 Q 299.53 43.67 300.13 43.13 Q 300.74 42.59 301.68 42.59 Q 302.51 42.59 303.44 42.87 L 303.44 43.81 Q 302.3 43.36 301.73 43.36 Q 301.2 43.36 300.86 43.64 Q 300.51 43.93 300.51 44.36 Q 300.51 44.72 300.76 45 Q 301.02 45.27 301.69 45.66 L 302.21 45.95 Q 303.15 46.48 303.52 46.96 Q 303.89 47.43 303.89 48.1 Q 303.89 49.04 303.19 49.61 Q 302.5 50.18 301.35 50.18 M 301.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.93 50 L 307.93 42.77 L 308.94 42.77 L 312.58 48.35 L 312.58 42.77 L 313.46 42.77 L 313.46 50 L 312.45 50 L 308.81 44.42 L 308.81 50 M 307.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 318.91 50 L 316.18 42.77 L 317.2 42.77 L 319.44 48.69 L 321.6 42.77 L 322.49 42.77 L 319.87 50 M 318.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 331.36 49.8 Q 330.05 50.18 329.07 50.18 Q 327.35 50.18 326.43 49.2 Q 325.51 48.22 325.51 46.39 Q 325.51 44.59 326.44 43.59 Q 327.37 42.59 329.06 42.59 Q 330.16 42.59 331.35 42.92 L 331.35 43.87 Q 329.86 43.36 329.06 43.36 Q 327.89 43.36 327.24 44.16 Q 326.6 44.95 326.6 46.4 Q 326.6 47.83 327.29 48.62 Q 327.98 49.41 329.23 49.41 Q 329.75 49.41 330.34 49.23 L 330.34 46.88 L 331.36 46.88 M 331.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 335.93 50 L 335.93 42.77 L 339.97 42.77 L 339.97 43.54 L 336.96 43.54 L 336.96 45.86 L 339.48 45.86 L 339.48 46.62 L 336.96 46.62 L 336.96 49.23 L 340.18 49.23 L 340.18 50 M 335.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 47.47 L 343.72 46.75 L 348.06 46.75 L 348.06 47.47 M 343.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 47.47 L 352.72 46.75 L 357.06 46.75 L 357.06 47.47 M 352.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 365.59 47.24 L 364.36 44.12 L 363.13 47.24 M 365.59 47.24 M 366.68 50 L 365.89 48 L 362.83 48 L 362.04 50 L 361.08 50 L 363.95 42.77 L 364.96 42.77 L 367.79 50 M 366.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 50 L 371.93 42.77 L 372.96 42.77 L 372.96 49.23 L 376.21 49.23 L 376.21 50 M 371.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 50 L 380.93 42.77 L 384.97 42.77 L 384.97 43.54 L 381.96 43.54 L 381.96 45.96 L 384.49 45.96 L 384.49 46.72 L 381.96 46.72 L 381.96 50 M 380.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 49.8 Q 393.05 50.18 392.07 50.18 Q 390.35 50.18 389.43 49.2 Q 388.51 48.22 388.51 46.39 Q 388.51 44.59 389.44 43.59 Q 390.37 42.59 392.06 42.59 Q 393.16 42.59 394.35 42.92 L 394.35 43.87 Q 392.86 43.36 392.06 43.36 Q 390.89 43.36 390.24 44.16 Q 389.6 44.95 389.6 46.4 Q 389.6 47.83 390.29 48.62 Q 390.98 49.41 392.23 49.41 Q 392.75 49.41 393.34 49.23 L 393.34 46.88 L 394.36 46.88 M 394.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 50 L 398.93 42.77 L 399.96 42.77 L 399.96 49.23 L 403.21 49.23 L 403.21 50 M 398.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 50 L 406.93 42.77 L 407.89 42.77 L 407.89 46.33 L 410.82 42.77 L 411.85 42.77 L 409.02 46.22 L 412.35 50 L 411.05 50 L 407.89 46.34 L 407.89 50 M 406.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 50.18 Q 417.62 50.18 416.49 49.86 L 416.49 48.85 Q 417.71 49.41 418.5 49.41 Q 419.1 49.41 419.47 49.1 Q 419.84 48.78 419.84 48.26 Q 419.84 47.84 419.6 47.54 Q 419.35 47.24 418.71 46.88 L 418.21 46.59 Q 417.28 46.06 416.91 45.59 Q 416.53 45.13 416.53 44.51 Q 416.53 43.67 417.13 43.13 Q 417.74 42.59 418.68 42.59 Q 419.51 42.59 420.44 42.87 L 420.44 43.81 Q 419.3 43.36 418.73 43.36 Q 418.2 43.36 417.86 43.64 Q 417.51 43.93 417.51 44.36 Q 417.51 44.72 417.76 45 Q 418.02 45.27 418.69 45.66 L 419.21 45.95 Q 420.15 46.48 420.52 46.96 Q 420.89 47.43 420.89 48.1 Q 420.89 49.04 420.19 49.61 Q 419.5 50.18 418.35 50.18 M 418.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 47.47 L 424.72 46.75 L 429.06 46.75 L 429.06 47.47 M 424.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 439.36 49.8 Q 438.05 50.18 437.07 50.18 Q 435.35 50.18 434.43 49.2 Q 433.51 48.22 433.51 46.39 Q 433.51 44.59 434.44 43.59 Q 435.37 42.59 437.06 42.59 Q 438.16 42.59 439.35 42.92 L 439.35 43.87 Q 437.86 43.36 437.06 43.36 Q 435.89 43.36 435.24 44.16 Q 434.6 44.95 434.6 46.4 Q 434.6 47.83 435.29 48.62 Q 435.98 49.41 437.23 49.41 Q 437.75 49.41 438.34 49.23 L 438.34 46.88 L 439.36 46.88 M 439.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.72 47.47 L 442.72 46.75 L 447.06 46.75 L 447.06 47.47 M 442.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.72 47.47 L 451.72 46.75 L 456.06 46.75 L 456.06 47.47 M 451.72 47.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 50 L 460.93 42.77 L 463.12 42.77 Q 464.16 42.77 464.71 43.23 Q 465.27 43.69 465.27 44.57 Q 465.27 46.01 463.81 46.62 L 466.22 50 L 464.96 50 L 462.91 46.94 L 461.95 46.94 L 461.95 50 M 460.93 50 M 461.95 46.18 L 462.28 46.18 Q 464.21 46.18 464.21 44.66 Q 464.21 43.54 462.59 43.54 L 461.95 43.54 M 461.95 46.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.93 50 L 469.93 42.77 L 470.94 42.77 L 474.58 48.35 L 474.58 42.77 L 475.46 42.77 L 475.46 50 L 474.45 50 L 470.81 44.42 L 470.81 50 M 469.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 49.8 Q 483.05 50.18 482.07 50.18 Q 480.35 50.18 479.43 49.2 Q 478.51 48.22 478.51 46.39 Q 478.51 44.59 479.44 43.59 Q 480.37 42.59 482.06 42.59 Q 483.16 42.59 484.35 42.92 L 484.35 43.87 Q 482.86 43.36 482.06 43.36 Q 480.89 43.36 480.24 44.16 Q 479.6 44.95 479.6 46.4 Q 479.6 47.83 480.29 48.62 Q 480.98 49.41 482.23 49.41 Q 482.75 49.41 483.34 49.23 L 483.34 46.88 L 484.36 46.88 M 484.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 50 L 487.93 42.77 L 490.12 42.77 Q 491.16 42.77 491.71 43.23 Q 492.27 43.69 492.27 44.57 Q 492.27 46.01 490.81 46.62 L 493.22 50 L 491.96 50 L 489.91 46.94 L 488.95 46.94 L 488.95 50 M 487.93 50 M 488.95 46.18 L 489.28 46.18 Q 491.21 46.18 491.21 44.66 Q 491.21 43.54 489.59 43.54 L 488.95 43.54 M 488.95 46.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.93 50 L 498.93 42.77 L 499.95 42.77 L 499.95 50 M 498.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 50 L 507.65 43.54 L 505.09 43.54 L 505.09 42.77 L 511.24 42.77 L 511.24 43.54 L 508.68 43.54 L 508.68 50 M 507.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.03 50.18 Q 516.34 50.18 515.43 49.19 Q 514.51 48.2 514.51 46.39 Q 514.51 44.58 515.44 43.59 Q 516.38 42.59 518.08 42.59 Q 519.05 42.59 520.35 42.91 L 520.35 43.87 Q 518.87 43.36 518.06 43.36 Q 516.89 43.36 516.24 44.16 Q 515.6 44.95 515.6 46.4 Q 515.6 47.78 516.29 48.58 Q 516.97 49.38 518.17 49.38 Q 519.19 49.38 520.36 48.75 L 520.36 49.63 Q 519.29 50.18 518.03 50.18 M 518.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 50 L 522.93 42.77 L 524.35 42.77 L 526.36 48.36 L 528.42 42.77 L 529.69 42.77 L 529.69 50 L 528.73 50 L 528.73 44.12 L 526.74 49.52 L 525.75 49.52 L 523.81 44.11 L 523.81 50 M 522.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 47.24 L 535.36 44.12 L 534.13 47.24 M 536.59 47.24 M 537.68 50 L 536.89 48 L 533.83 48 L 533.04 50 L 532.08 50 L 534.95 42.77 L 535.96 42.77 L 538.79 50 M 537.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 544.35 50.18 Q 543.62 50.18 542.49 49.86 L 542.49 48.85 Q 543.71 49.41 544.5 49.41 Q 545.1 49.41 545.47 49.1 Q 545.84 48.78 545.84 48.26 Q 545.84 47.84 545.6 47.54 Q 545.35 47.24 544.71 46.88 L 544.21 46.59 Q 543.28 46.06 542.91 45.59 Q 542.53 45.13 542.53 44.51 Q 542.53 43.67 543.13 43.13 Q 543.74 42.59 544.68 42.59 Q 545.51 42.59 546.44 42.87 L 546.44 43.81 Q 545.3 43.36 544.73 43.36 Q 544.2 43.36 543.86 43.64 Q 543.51 43.93 543.51 44.36 Q 543.51 44.72 543.76 45 Q 544.02 45.27 544.69 45.66 L 545.21 45.95 Q 546.15 46.48 546.52 46.96 Q 546.89 47.43 546.89 48.1 Q 546.89 49.04 546.19 49.61 Q 545.5 50.18 544.35 50.18 M 544.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 50 L 552.5 46.98 L 550.08 42.77 L 551.25 42.77 L 553.13 46.04 L 555.15 42.77 L 556.1 42.77 L 553.52 46.96 L 553.52 50 M 552.5 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 50 L 559.93 42.77 L 560.89 42.77 L 560.89 46.33 L 563.82 42.77 L 564.85 42.77 L 562.02 46.22 L 565.35 50 L 564.05 50 L 560.89 46.34 L 560.89 50 M 559.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 50 L 568.18 42.77 L 569.2 42.77 L 571.44 48.69 L 573.6 42.77 L 574.49 42.77 L 571.87 50 M 570.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 50 L 577.93 42.77 L 578.89 42.77 L 578.89 46.33 L 581.82 42.77 L 582.85 42.77 L 580.02 46.22 L 583.35 50 L 582.05 50 L 578.89 46.34 L 578.89 50 M 577.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 50 L 587.93 42.77 L 588.96 42.77 L 588.96 49.23 L 592.21 49.23 L 592.21 50 M 587.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 50 L 597.93 42.77 L 598.95 42.77 L 598.95 50 M 597.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 50 L 606.65 43.54 L 604.09 43.54 L 604.09 42.77 L 610.24 42.77 L 610.24 43.54 L 607.68 43.54 L 607.68 50 M 606.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 50 L 613.93 42.77 L 615.9 42.77 Q 617.21 42.77 617.78 43.22 Q 618.35 43.66 618.35 44.67 Q 618.35 45.82 617.57 46.47 Q 616.79 47.13 615.4 47.13 L 614.95 47.13 L 614.95 50 M 613.93 50 M 614.95 46.35 L 615.36 46.35 Q 616.28 46.35 616.77 45.93 Q 617.27 45.51 617.27 44.75 Q 617.27 44.1 616.88 43.82 Q 616.49 43.54 615.58 43.54 L 614.95 43.54 M 614.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 622.93 50 L 622.93 42.77 L 625.33 42.77 Q 626.41 42.77 627.07 43.01 Q 627.73 43.25 628.22 43.82 Q 628.98 44.73 628.98 46.22 Q 628.98 48.02 628.03 49.01 Q 627.08 50 625.35 50 M 622.93 50 M 623.96 49.23 L 625.27 49.23 Q 626.68 49.23 627.26 48.48 Q 627.89 47.67 627.89 46.31 Q 627.89 45.04 627.27 44.31 Q 626.9 43.87 626.38 43.7 Q 625.85 43.54 624.8 43.54 L 623.96 43.54 M 623.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 49.8 Q 636.05 50.18 635.07 50.18 Q 633.35 50.18 632.43 49.2 Q 631.51 48.22 631.51 46.39 Q 631.51 44.59 632.44 43.59 Q 633.37 42.59 635.06 42.59 Q 636.16 42.59 637.35 42.92 L 637.35 43.87 Q 635.86 43.36 635.06 43.36 Q 633.89 43.36 633.24 44.16 Q 632.6 44.95 632.6 46.4 Q 632.6 47.83 633.29 48.62 Q 633.98 49.41 635.23 49.41 Q 635.75 49.41 636.34 49.23 L 636.34 46.88 L 637.36 46.88 M 637.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 50 L 640.93 42.77 L 642.9 42.77 Q 644.21 42.77 644.78 43.22 Q 645.35 43.66 645.35 44.67 Q 645.35 45.82 644.57 46.47 Q 643.79 47.13 642.4 47.13 L 641.95 47.13 L 641.95 50 M 640.93 50 M 641.95 46.35 L 642.36 46.35 Q 643.28 46.35 643.77 45.93 Q 644.27 45.51 644.27 44.75 Q 644.27 44.1 643.88 43.82 Q 643.49 43.54 642.58 43.54 L 641.95 43.54 M 641.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.93 50 L 651.93 42.77 L 652.95 42.77 L 652.95 50 M 651.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 50 L 659.93 42.77 L 663.97 42.77 L 663.97 43.54 L 660.96 43.54 L 660.96 45.86 L 663.48 45.86 L 663.48 46.62 L 660.96 46.62 L 660.96 49.23 L 664.18 49.23 L 664.18 50 M 659.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 50 L 668.93 42.77 L 672.97 42.77 L 672.97 43.54 L 669.96 43.54 L 669.96 45.96 L 672.49 45.96 L 672.49 46.72 L 669.96 46.72 L 669.96 50 M 668.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 50 L 677.93 42.77 L 681.97 42.77 L 681.97 43.54 L 678.96 43.54 L 678.96 45.86 L 681.48 45.86 L 681.48 46.62 L 678.96 46.62 L 678.96 49.23 L 682.18 49.23 L 682.18 50 M 677.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 50.18 Q 687.34 50.18 686.43 49.19 Q 685.51 48.2 685.51 46.39 Q 685.51 44.58 686.44 43.59 Q 687.38 42.59 689.08 42.59 Q 690.05 42.59 691.35 42.91 L 691.35 43.87 Q 689.87 43.36 689.06 43.36 Q 687.89 43.36 687.24 44.16 Q 686.6 44.95 686.6 46.4 Q 686.6 47.78 687.29 48.58 Q 687.97 49.38 689.17 49.38 Q 690.19 49.38 691.36 48.75 L 691.36 49.63 Q 690.29 50.18 689.03 50.18 M 689.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 50 L 694.93 42.77 L 696.9 42.77 Q 698.21 42.77 698.78 43.22 Q 699.35 43.66 699.35 44.67 Q 699.35 45.82 698.57 46.47 Q 697.79 47.13 696.4 47.13 L 695.95 47.13 L 695.95 50 M 694.93 50 M 695.95 46.35 L 696.36 46.35 Q 697.28 46.35 697.77 45.93 Q 698.27 45.51 698.27 44.75 Q 698.27 44.1 697.88 43.82 Q 697.49 43.54 696.58 43.54 L 695.95 43.54 M 695.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 50 L 703.93 42.77 L 706.33 42.77 Q 707.41 42.77 708.07 43.01 Q 708.73 43.25 709.22 43.82 Q 709.98 44.73 709.98 46.22 Q 709.98 48.02 709.03 49.01 Q 708.08 50 706.35 50 M 703.93 50 M 704.96 49.23 L 706.27 49.23 Q 707.68 49.23 708.26 48.48 Q 708.89 47.67 708.89 46.31 Q 708.89 45.04 708.27 44.31 Q 707.9 43.87 707.38 43.7 Q 706.85 43.54 705.8 43.54 L 704.96 43.54 M 704.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 50 L 712.93 42.77 L 715.33 42.77 Q 716.41 42.77 717.07 43.01 Q 717.73 43.25 718.22 43.82 Q 718.98 44.73 718.98 46.22 Q 718.98 48.02 718.03 49.01 Q 717.08 50 715.35 50 M 712.93 50 M 713.96 49.23 L 715.27 49.23 Q 716.68 49.23 717.26 48.48 Q 717.89 47.67 717.89 46.31 Q 717.89 45.04 717.27 44.31 Q 716.9 43.87 716.38 43.7 Q 715.85 43.54 714.8 43.54 L 713.96 43.54 M 713.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 50 L 721.18 42.77 L 722.2 42.77 L 724.44 48.69 L 726.6 42.77 L 727.49 42.77 L 724.87 50 M 723.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 50 L 732.5 46.98 L 730.08 42.77 L 731.25 42.77 L 733.13 46.04 L 735.15 42.77 L 736.1 42.77 L 733.52 46.96 L 733.52 50 M 732.5 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 50 L 741.93 42.77 L 742.95 42.77 L 742.95 50 M 741.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 50 L 749.93 42.77 L 750.96 42.77 L 750.96 49.23 L 754.21 49.23 L 754.21 50 M 749.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 50 L 757.93 42.77 L 760.33 42.77 Q 761.41 42.77 762.07 43.01 Q 762.73 43.25 763.22 43.82 Q 763.98 44.73 763.98 46.22 Q 763.98 48.02 763.03 49.01 Q 762.08 50 760.35 50 M 757.93 50 M 758.96 49.23 L 760.27 49.23 Q 761.68 49.23 762.26 48.48 Q 762.89 47.67 762.89 46.31 Q 762.89 45.04 762.27 44.31 Q 761.9 43.87 761.38 43.7 Q 760.85 43.54 759.8 43.54 L 758.96 43.54 M 758.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 772.35 51.45 Q 770.64 50.89 769.49 50.13 Q 769.03 50.18 768.78 50.18 Q 767.33 50.18 766.42 49.13 Q 765.51 48.07 765.51 46.39 Q 765.51 44.66 766.43 43.63 Q 767.35 42.59 768.89 42.59 Q 770.43 42.59 771.35 43.63 Q 772.27 44.66 772.27 46.4 Q 772.27 48.89 770.42 49.85 Q 771.66 50.4 773 50.63 M 772.35 51.45 M 768.86 49.41 Q 769.97 49.41 770.57 48.62 Q 771.18 47.82 771.18 46.37 Q 771.18 44.96 770.57 44.16 Q 769.97 43.36 768.89 43.36 Q 767.81 43.36 767.2 44.16 Q 766.6 44.96 766.6 46.38 Q 766.6 47.79 767.2 48.6 Q 767.8 49.41 768.86 49.41 M 768.86 49.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 47.24 L 778.36 44.12 L 777.13 47.24 M 779.59 47.24 M 780.68 50 L 779.89 48 L 776.83 48 L 776.04 50 L 775.08 50 L 777.95 42.77 L 778.96 42.77 L 781.79 50 M 780.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 50 L 785.93 42.77 L 789.97 42.77 L 789.97 43.54 L 786.96 43.54 L 786.96 45.86 L 789.48 45.86 L 789.48 46.62 L 786.96 46.62 L 786.96 49.23 L 790.18 49.23 L 790.18 50 M 785.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 50 L 794.93 42.77 L 798.97 42.77 L 798.97 43.54 L 795.96 43.54 L 795.96 45.86 L 798.48 45.86 L 798.48 46.62 L 795.96 46.62 L 795.96 49.23 L 799.18 49.23 L 799.18 50 M 794.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 803.93 50 L 803.93 42.77 L 807.97 42.77 L 807.97 43.54 L 804.96 43.54 L 804.96 45.86 L 807.48 45.86 L 807.48 46.62 L 804.96 46.62 L 804.96 49.23 L 808.18 49.23 L 808.18 50 M 803.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 49.8 Q 816.05 50.18 815.07 50.18 Q 813.35 50.18 812.43 49.2 Q 811.51 48.22 811.51 46.39 Q 811.51 44.59 812.44 43.59 Q 813.37 42.59 815.06 42.59 Q 816.16 42.59 817.35 42.92 L 817.35 43.87 Q 815.86 43.36 815.06 43.36 Q 813.89 43.36 813.24 44.16 Q 812.6 44.95 812.6 46.4 Q 812.6 47.83 813.29 48.62 Q 813.98 49.41 815.23 49.41 Q 815.75 49.41 816.34 49.23 L 816.34 46.88 L 817.36 46.88 M 817.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 820.93 50 L 820.93 42.77 L 821.96 42.77 L 821.96 45.82 L 825.4 45.82 L 825.4 42.77 L 826.42 42.77 L 826.42 50 L 825.4 50 L 825.4 46.59 L 821.96 46.59 L 821.96 50 M 820.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 50 L 829.93 42.77 L 832.33 42.77 Q 833.41 42.77 834.07 43.01 Q 834.73 43.25 835.22 43.82 Q 835.98 44.73 835.98 46.22 Q 835.98 48.02 835.03 49.01 Q 834.08 50 832.35 50 M 829.93 50 M 830.96 49.23 L 832.27 49.23 Q 833.68 49.23 834.26 48.48 Q 834.89 47.67 834.89 46.31 Q 834.89 45.04 834.27 44.31 Q 833.9 43.87 833.38 43.7 Q 832.85 43.54 831.8 43.54 L 830.96 43.54 M 830.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 50 L 839.93 42.77 L 840.96 42.77 L 840.96 49.23 L 844.21 49.23 L 844.21 50 M 839.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 50 L 847.93 42.77 L 849.9 42.77 Q 851.21 42.77 851.78 43.22 Q 852.35 43.66 852.35 44.67 Q 852.35 45.82 851.57 46.47 Q 850.79 47.13 849.4 47.13 L 848.95 47.13 L 848.95 50 M 847.93 50 M 848.95 46.35 L 849.36 46.35 Q 850.28 46.35 850.77 45.93 Q 851.27 45.51 851.27 44.75 Q 851.27 44.1 850.88 43.82 Q 850.49 43.54 849.58 43.54 L 848.95 43.54 M 848.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 50 L 858.5 46.98 L 856.08 42.77 L 857.25 42.77 L 859.13 46.04 L 861.15 42.77 L 862.1 42.77 L 859.52 46.96 L 859.52 50 M 858.5 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 50.18 Q 867.62 50.18 866.49 49.86 L 866.49 48.85 Q 867.71 49.41 868.5 49.41 Q 869.1 49.41 869.47 49.1 Q 869.84 48.78 869.84 48.26 Q 869.84 47.84 869.6 47.54 Q 869.35 47.24 868.71 46.88 L 868.21 46.59 Q 867.28 46.06 866.91 45.59 Q 866.53 45.13 866.53 44.51 Q 866.53 43.67 867.13 43.13 Q 867.74 42.59 868.68 42.59 Q 869.51 42.59 870.44 42.87 L 870.44 43.81 Q 869.3 43.36 868.73 43.36 Q 868.2 43.36 867.86 43.64 Q 867.51 43.93 867.51 44.36 Q 867.51 44.72 867.76 45 Q 868.02 45.27 868.69 45.66 L 869.21 45.95 Q 870.15 46.48 870.52 46.96 Q 870.89 47.43 870.89 48.1 Q 870.89 49.04 870.19 49.61 Q 869.5 50.18 868.35 50.18 M 868.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 50.18 Q 876.34 50.18 875.43 49.19 Q 874.51 48.2 874.51 46.39 Q 874.51 44.58 875.44 43.59 Q 876.38 42.59 878.08 42.59 Q 879.05 42.59 880.35 42.91 L 880.35 43.87 Q 878.87 43.36 878.06 43.36 Q 876.89 43.36 876.24 44.16 Q 875.6 44.95 875.6 46.4 Q 875.6 47.78 876.29 48.58 Q 876.97 49.38 878.17 49.38 Q 879.19 49.38 880.36 48.75 L 880.36 49.63 Q 879.29 50.18 878.03 50.18 M 878.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 50 L 883.93 42.77 L 886.12 42.77 Q 887.16 42.77 887.71 43.23 Q 888.27 43.69 888.27 44.57 Q 888.27 46.01 886.81 46.62 L 889.22 50 L 887.96 50 L 885.91 46.94 L 884.95 46.94 L 884.95 50 M 883.93 50 M 884.95 46.18 L 885.28 46.18 Q 887.21 46.18 887.21 44.66 Q 887.21 43.54 885.59 43.54 L 884.95 43.54 M 884.95 46.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 47.24 L 895.36 44.12 L 894.13 47.24 M 896.59 47.24 M 897.68 50 L 896.89 48 L 893.83 48 L 893.04 50 L 892.08 50 L 894.95 42.77 L 895.96 42.77 L 898.79 50 M 897.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 49.8 Q 906.05 50.18 905.07 50.18 Q 903.35 50.18 902.43 49.2 Q 901.51 48.22 901.51 46.39 Q 901.51 44.59 902.44 43.59 Q 903.37 42.59 905.06 42.59 Q 906.16 42.59 907.35 42.92 L 907.35 43.87 Q 905.86 43.36 905.06 43.36 Q 903.89 43.36 903.24 44.16 Q 902.6 44.95 902.6 46.4 Q 902.6 47.83 903.29 48.62 Q 903.98 49.41 905.23 49.41 Q 905.75 49.41 906.34 49.23 L 906.34 46.88 L 907.36 46.88 M 907.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 50.18 Q 912.62 50.18 911.49 49.86 L 911.49 48.85 Q 912.71 49.41 913.5 49.41 Q 914.1 49.41 914.47 49.1 Q 914.84 48.78 914.84 48.26 Q 914.84 47.84 914.6 47.54 Q 914.35 47.24 913.71 46.88 L 913.21 46.59 Q 912.28 46.06 911.91 45.59 Q 911.53 45.13 911.53 44.51 Q 911.53 43.67 912.13 43.13 Q 912.74 42.59 913.68 42.59 Q 914.51 42.59 915.44 42.87 L 915.44 43.81 Q 914.3 43.36 913.73 43.36 Q 913.2 43.36 912.86 43.64 Q 912.51 43.93 912.51 44.36 Q 912.51 44.72 912.76 45 Q 913.02 45.27 913.69 45.66 L 914.21 45.95 Q 915.15 46.48 915.52 46.96 Q 915.89 47.43 915.89 48.1 Q 915.89 49.04 915.19 49.61 Q 914.5 50.18 913.35 50.18 M 913.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 50.18 Q 921.34 50.18 920.43 49.19 Q 919.51 48.2 919.51 46.39 Q 919.51 44.58 920.44 43.59 Q 921.38 42.59 923.08 42.59 Q 924.05 42.59 925.35 42.91 L 925.35 43.87 Q 923.87 43.36 923.06 43.36 Q 921.89 43.36 921.24 44.16 Q 920.6 44.95 920.6 46.4 Q 920.6 47.78 921.29 48.58 Q 921.97 49.38 923.17 49.38 Q 924.19 49.38 925.36 48.75 L 925.36 49.63 Q 924.29 50.18 923.03 50.18 M 923.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 50.18 Q 930.62 50.18 929.49 49.86 L 929.49 48.85 Q 930.71 49.41 931.5 49.41 Q 932.1 49.41 932.47 49.1 Q 932.84 48.78 932.84 48.26 Q 932.84 47.84 932.6 47.54 Q 932.35 47.24 931.71 46.88 L 931.21 46.59 Q 930.28 46.06 929.91 45.59 Q 929.53 45.13 929.53 44.51 Q 929.53 43.67 930.13 43.13 Q 930.74 42.59 931.68 42.59 Q 932.51 42.59 933.44 42.87 L 933.44 43.81 Q 932.3 43.36 931.73 43.36 Q 931.2 43.36 930.86 43.64 Q 930.51 43.93 930.51 44.36 Q 930.51 44.72 930.76 45 Q 931.02 45.27 931.69 45.66 L 932.21 45.95 Q 933.15 46.48 933.52 46.96 Q 933.89 47.43 933.89 48.1 Q 933.89 49.04 933.19 49.61 Q 932.5 50.18 931.35 50.18 M 931.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 50.18 Q 939.62 50.18 938.49 49.86 L 938.49 48.85 Q 939.71 49.41 940.5 49.41 Q 941.1 49.41 941.47 49.1 Q 941.84 48.78 941.84 48.26 Q 941.84 47.84 941.6 47.54 Q 941.35 47.24 940.71 46.88 L 940.21 46.59 Q 939.28 46.06 938.91 45.59 Q 938.53 45.13 938.53 44.51 Q 938.53 43.67 939.13 43.13 Q 939.74 42.59 940.68 42.59 Q 941.51 42.59 942.44 42.87 L 942.44 43.81 Q 941.3 43.36 940.73 43.36 Q 940.2 43.36 939.86 43.64 Q 939.51 43.93 939.51 44.36 Q 939.51 44.72 939.76 45 Q 940.02 45.27 940.69 45.66 L 941.21 45.95 Q 942.15 46.48 942.52 46.96 Q 942.89 47.43 942.89 48.1 Q 942.89 49.04 942.19 49.61 Q 941.5 50.18 940.35 50.18 M 940.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 50.18 Q 948.34 50.18 947.43 49.19 Q 946.51 48.2 946.51 46.39 Q 946.51 44.58 947.44 43.59 Q 948.38 42.59 950.08 42.59 Q 951.05 42.59 952.35 42.91 L 952.35 43.87 Q 950.87 43.36 950.06 43.36 Q 948.89 43.36 948.24 44.16 Q 947.6 44.95 947.6 46.4 Q 947.6 47.78 948.29 48.58 Q 948.97 49.38 950.17 49.38 Q 951.19 49.38 952.36 48.75 L 952.36 49.63 Q 951.29 50.18 950.03 50.18 M 950.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 47.24 L 958.36 44.12 L 957.13 47.24 M 959.59 47.24 M 960.68 50 L 959.89 48 L 956.83 48 L 956.04 50 L 955.08 50 L 957.95 42.77 L 958.96 42.77 L 961.79 50 M 960.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 49.8 Q 969.05 50.18 968.07 50.18 Q 966.35 50.18 965.43 49.2 Q 964.51 48.22 964.51 46.39 Q 964.51 44.59 965.44 43.59 Q 966.37 42.59 968.06 42.59 Q 969.16 42.59 970.35 42.92 L 970.35 43.87 Q 968.86 43.36 968.06 43.36 Q 966.89 43.36 966.24 44.16 Q 965.6 44.95 965.6 46.4 Q 965.6 47.83 966.29 48.62 Q 966.98 49.41 968.23 49.41 Q 968.75 49.41 969.34 49.23 L 969.34 46.88 L 970.36 46.88 M 970.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 50 L 973.93 42.77 L 974.89 42.77 L 974.89 46.33 L 977.82 42.77 L 978.85 42.77 L 976.02 46.22 L 979.35 50 L 978.05 50 L 974.89 46.34 L 974.89 50 M 973.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 50 L 982.18 42.77 L 983.2 42.77 L 985.44 48.69 L 987.6 42.77 L 988.49 42.77 L 985.87 50 M 984.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.65 50 L 993.65 43.54 L 991.09 43.54 L 991.09 42.77 L 997.24 42.77 L 997.24 43.54 L 994.68 43.54 L 994.68 50 M 993.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1004.59 47.24 L 1003.36 44.12 L 1002.13 47.24 M 1004.59 47.24 M 1005.68 50 L 1004.89 48 L 1001.83 48 L 1001.04 50 L 1000.08 50 L 1002.95 42.77 L 1003.96 42.77 L 1006.79 50 M 1005.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 49.8 Q 1014.05 50.18 1013.07 50.18 Q 1011.35 50.18 1010.43 49.2 Q 1009.51 48.22 1009.51 46.39 Q 1009.51 44.59 1010.44 43.59 Q 1011.37 42.59 1013.06 42.59 Q 1014.16 42.59 1015.35 42.92 L 1015.35 43.87 Q 1013.86 43.36 1013.06 43.36 Q 1011.89 43.36 1011.24 44.16 Q 1010.6 44.95 1010.6 46.4 Q 1010.6 47.83 1011.29 48.62 Q 1011.98 49.41 1013.23 49.41 Q 1013.75 49.41 1014.34 49.23 L 1014.34 46.88 L 1015.36 46.88 M 1015.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1020.65 50 L 1020.65 43.54 L 1018.09 43.54 L 1018.09 42.77 L 1024.24 42.77 L 1024.24 43.54 L 1021.68 43.54 L 1021.68 50 M 1020.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 50 L 1027.18 42.77 L 1028.2 42.77 L 1030.44 48.69 L 1032.6 42.77 L 1033.49 42.77 L 1030.87 50 M 1029.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 50 L 1036.93 42.77 L 1039.33 42.77 Q 1040.41 42.77 1041.07 43.01 Q 1041.73 43.25 1042.22 43.82 Q 1042.98 44.73 1042.98 46.22 Q 1042.98 48.02 1042.03 49.01 Q 1041.08 50 1039.35 50 M 1036.93 50 M 1037.96 49.23 L 1039.27 49.23 Q 1040.68 49.23 1041.26 48.48 Q 1041.89 47.67 1041.89 46.31 Q 1041.89 45.04 1041.27 44.31 Q 1040.9 43.87 1040.38 43.7 Q 1039.85 43.54 1038.8 43.54 L 1037.96 43.54 M 1037.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 51.45 Q 1049.64 50.89 1048.49 50.13 Q 1048.03 50.18 1047.78 50.18 Q 1046.33 50.18 1045.42 49.13 Q 1044.51 48.07 1044.51 46.39 Q 1044.51 44.66 1045.43 43.63 Q 1046.35 42.59 1047.89 42.59 Q 1049.43 42.59 1050.35 43.63 Q 1051.27 44.66 1051.27 46.4 Q 1051.27 48.89 1049.42 49.85 Q 1050.66 50.4 1052 50.63 M 1051.35 51.45 M 1047.86 49.41 Q 1048.97 49.41 1049.57 48.62 Q 1050.18 47.82 1050.18 46.37 Q 1050.18 44.96 1049.57 44.16 Q 1048.97 43.36 1047.89 43.36 Q 1046.81 43.36 1046.2 44.16 Q 1045.6 44.96 1045.6 46.38 Q 1045.6 47.79 1046.2 48.6 Q 1046.8 49.41 1047.86 49.41 M 1047.86 49.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 50.18 Q 1056.62 50.18 1055.49 49.86 L 1055.49 48.85 Q 1056.71 49.41 1057.5 49.41 Q 1058.1 49.41 1058.47 49.1 Q 1058.84 48.78 1058.84 48.26 Q 1058.84 47.84 1058.6 47.54 Q 1058.35 47.24 1057.71 46.88 L 1057.21 46.59 Q 1056.28 46.06 1055.91 45.59 Q 1055.53 45.13 1055.53 44.51 Q 1055.53 43.67 1056.13 43.13 Q 1056.74 42.59 1057.68 42.59 Q 1058.51 42.59 1059.44 42.87 L 1059.44 43.81 Q 1058.3 43.36 1057.73 43.36 Q 1057.2 43.36 1056.86 43.64 Q 1056.51 43.93 1056.51 44.36 Q 1056.51 44.72 1056.76 45 Q 1057.02 45.27 1057.69 45.66 L 1058.21 45.95 Q 1059.15 46.48 1059.52 46.96 Q 1059.89 47.43 1059.89 48.1 Q 1059.89 49.04 1059.19 49.61 Q 1058.5 50.18 1057.35 50.18 M 1057.35 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 50 L 1063.93 42.77 L 1066.33 42.77 Q 1067.41 42.77 1068.07 43.01 Q 1068.73 43.25 1069.22 43.82 Q 1069.98 44.73 1069.98 46.22 Q 1069.98 48.02 1069.03 49.01 Q 1068.08 50 1066.35 50 M 1063.93 50 M 1064.96 49.23 L 1066.27 49.23 Q 1067.68 49.23 1068.26 48.48 Q 1068.89 47.67 1068.89 46.31 Q 1068.89 45.04 1068.27 44.31 Q 1067.9 43.87 1067.38 43.7 Q 1066.85 43.54 1065.8 43.54 L 1064.96 43.54 M 1064.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 49.8 Q 1077.05 50.18 1076.07 50.18 Q 1074.35 50.18 1073.43 49.2 Q 1072.51 48.22 1072.51 46.39 Q 1072.51 44.59 1073.44 43.59 Q 1074.37 42.59 1076.06 42.59 Q 1077.16 42.59 1078.35 42.92 L 1078.35 43.87 Q 1076.86 43.36 1076.06 43.36 Q 1074.89 43.36 1074.24 44.16 Q 1073.6 44.95 1073.6 46.4 Q 1073.6 47.83 1074.29 48.62 Q 1074.98 49.41 1076.23 49.41 Q 1076.75 49.41 1077.34 49.23 L 1077.34 46.88 L 1078.36 46.88 M 1078.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1081.93 50 L 1081.93 42.77 L 1082.89 42.77 L 1082.89 46.33 L 1085.82 42.77 L 1086.85 42.77 L 1084.02 46.22 L 1087.35 50 L 1086.05 50 L 1082.89 46.34 L 1082.89 50 M 1081.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 50 L 1091.93 42.77 L 1095.97 42.77 L 1095.97 43.54 L 1092.96 43.54 L 1092.96 45.96 L 1095.49 45.96 L 1095.49 46.72 L 1092.96 46.72 L 1092.96 50 M 1091.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 50 L 1100.93 42.77 L 1101.96 42.77 L 1101.96 49.23 L 1105.21 49.23 L 1105.21 50 M 1100.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 50 L 1108.93 42.77 L 1111.33 42.77 Q 1112.41 42.77 1113.07 43.01 Q 1113.73 43.25 1114.22 43.82 Q 1114.98 44.73 1114.98 46.22 Q 1114.98 48.02 1114.03 49.01 Q 1113.08 50 1111.35 50 M 1108.93 50 M 1109.96 49.23 L 1111.27 49.23 Q 1112.68 49.23 1113.26 48.48 Q 1113.89 47.67 1113.89 46.31 Q 1113.89 45.04 1113.27 44.31 Q 1112.9 43.87 1112.38 43.7 Q 1111.85 43.54 1110.8 43.54 L 1109.96 43.54 M 1109.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 50 L 1117.93 42.77 L 1120.33 42.77 Q 1121.41 42.77 1122.07 43.01 Q 1122.73 43.25 1123.22 43.82 Q 1123.98 44.73 1123.98 46.22 Q 1123.98 48.02 1123.03 49.01 Q 1122.08 50 1120.35 50 M 1117.93 50 M 1118.96 49.23 L 1120.27 49.23 Q 1121.68 49.23 1122.26 48.48 Q 1122.89 47.67 1122.89 46.31 Q 1122.89 45.04 1122.27 44.31 Q 1121.9 43.87 1121.38 43.7 Q 1120.85 43.54 1119.8 43.54 L 1118.96 43.54 M 1118.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 50 L 1126.93 42.77 L 1129.33 42.77 Q 1130.41 42.77 1131.07 43.01 Q 1131.73 43.25 1132.22 43.82 Q 1132.98 44.73 1132.98 46.22 Q 1132.98 48.02 1132.03 49.01 Q 1131.08 50 1129.35 50 M 1126.93 50 M 1127.96 49.23 L 1129.27 49.23 Q 1130.68 49.23 1131.26 48.48 Q 1131.89 47.67 1131.89 46.31 Q 1131.89 45.04 1131.27 44.31 Q 1130.9 43.87 1130.38 43.7 Q 1129.85 43.54 1128.8 43.54 L 1127.96 43.54 M 1127.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 51.45 Q 1139.64 50.89 1138.49 50.13 Q 1138.03 50.18 1137.78 50.18 Q 1136.33 50.18 1135.42 49.13 Q 1134.51 48.07 1134.51 46.39 Q 1134.51 44.66 1135.43 43.63 Q 1136.35 42.59 1137.89 42.59 Q 1139.43 42.59 1140.35 43.63 Q 1141.27 44.66 1141.27 46.4 Q 1141.27 48.89 1139.42 49.85 Q 1140.66 50.4 1142 50.63 M 1141.35 51.45 M 1137.86 49.41 Q 1138.97 49.41 1139.57 48.62 Q 1140.18 47.82 1140.18 46.37 Q 1140.18 44.96 1139.57 44.16 Q 1138.97 43.36 1137.89 43.36 Q 1136.81 43.36 1136.2 44.16 Q 1135.6 44.96 1135.6 46.38 Q 1135.6 47.79 1136.2 48.6 Q 1136.8 49.41 1137.86 49.41 M 1137.86 49.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1145.93 50 L 1145.93 42.77 L 1149.97 42.77 L 1149.97 43.54 L 1146.96 43.54 L 1146.96 45.86 L 1149.48 45.86 L 1149.48 46.62 L 1146.96 46.62 L 1146.96 49.23 L 1150.18 49.23 L 1150.18 50 M 1145.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1157.59 47.24 L 1156.36 44.12 L 1155.13 47.24 M 1157.59 47.24 M 1158.68 50 L 1157.89 48 L 1154.83 48 L 1154.04 50 L 1153.08 50 L 1155.95 42.77 L 1156.96 42.77 L 1159.79 50 M 1158.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1166.59 47.24 L 1165.36 44.12 L 1164.13 47.24 M 1166.59 47.24 M 1167.68 50 L 1166.89 48 L 1163.83 48 L 1163.04 50 L 1162.08 50 L 1164.95 42.77 L 1165.96 42.77 L 1168.79 50 M 1167.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 49.8 Q 1176.05 50.18 1175.07 50.18 Q 1173.35 50.18 1172.43 49.2 Q 1171.51 48.22 1171.51 46.39 Q 1171.51 44.59 1172.44 43.59 Q 1173.37 42.59 1175.06 42.59 Q 1176.16 42.59 1177.35 42.92 L 1177.35 43.87 Q 1175.86 43.36 1175.06 43.36 Q 1173.89 43.36 1173.24 44.16 Q 1172.6 44.95 1172.6 46.4 Q 1172.6 47.83 1173.29 48.62 Q 1173.98 49.41 1175.23 49.41 Q 1175.75 49.41 1176.34 49.23 L 1176.34 46.88 L 1177.36 46.88 M 1177.36 49.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1181.93 50 L 1181.93 42.77 L 1185.97 42.77 L 1185.97 43.54 L 1182.96 43.54 L 1182.96 45.96 L 1185.49 45.96 L 1185.49 46.72 L 1182.96 46.72 L 1182.96 50 M 1181.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 50 L 1189.18 42.77 L 1190.2 42.77 L 1192.44 48.69 L 1194.6 42.77 L 1195.49 42.77 L 1192.87 50 M 1191.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 50 L 1199.93 42.77 L 1200.96 42.77 L 1200.96 49.23 L 1204.21 49.23 L 1204.21 50 M 1199.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 50 L 1209.65 43.54 L 1207.09 43.54 L 1207.09 42.77 L 1213.24 42.77 L 1213.24 43.54 L 1210.68 43.54 L 1210.68 50 M 1209.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 50.18 Q 1218.34 50.18 1217.43 49.19 Q 1216.51 48.2 1216.51 46.39 Q 1216.51 44.58 1217.44 43.59 Q 1218.38 42.59 1220.08 42.59 Q 1221.05 42.59 1222.35 42.91 L 1222.35 43.87 Q 1220.87 43.36 1220.06 43.36 Q 1218.89 43.36 1218.24 44.16 Q 1217.6 44.95 1217.6 46.4 Q 1217.6 47.78 1218.29 48.58 Q 1218.97 49.38 1220.17 49.38 Q 1221.19 49.38 1222.36 48.75 L 1222.36 49.63 Q 1221.29 50.18 1220.03 50.18 M 1220.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 50 L 1225.18 42.77 L 1226.2 42.77 L 1228.44 48.69 L 1230.6 42.77 L 1231.49 42.77 L 1228.87 50 M 1227.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 47.24 L 1237.36 44.12 L 1236.13 47.24 M 1238.59 47.24 M 1239.68 50 L 1238.89 48 L 1235.83 48 L 1235.04 50 L 1234.08 50 L 1236.95 42.77 L 1237.96 42.77 L 1240.79 50 M 1239.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 50 L 1245.5 46.98 L 1243.08 42.77 L 1244.25 42.77 L 1246.13 46.04 L 1248.15 42.77 L 1249.1 42.77 L 1246.52 46.96 L 1246.52 50 M 1245.5 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 50 L 1252.93 42.77 L 1254.9 42.77 Q 1256.21 42.77 1256.78 43.22 Q 1257.35 43.66 1257.35 44.67 Q 1257.35 45.82 1256.57 46.47 Q 1255.79 47.13 1254.4 47.13 L 1253.95 47.13 L 1253.95 50 M 1252.93 50 M 1253.95 46.35 L 1254.36 46.35 Q 1255.28 46.35 1255.77 45.93 Q 1256.27 45.51 1256.27 44.75 Q 1256.27 44.1 1255.88 43.82 Q 1255.49 43.54 1254.58 43.54 L 1253.95 43.54 M 1253.95 46.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1261.93 50 L 1261.93 42.77 L 1262.89 42.77 L 1262.89 46.33 L 1265.82 42.77 L 1266.85 42.77 L 1264.02 46.22 L 1267.35 50 L 1266.05 50 L 1262.89 46.34 L 1262.89 50 M 1261.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1274.03 50.18 Q 1272.34 50.18 1271.43 49.19 Q 1270.51 48.2 1270.51 46.39 Q 1270.51 44.58 1271.44 43.59 Q 1272.38 42.59 1274.08 42.59 Q 1275.05 42.59 1276.35 42.91 L 1276.35 43.87 Q 1274.87 43.36 1274.06 43.36 Q 1272.89 43.36 1272.24 44.16 Q 1271.6 44.95 1271.6 46.4 Q 1271.6 47.78 1272.29 48.58 Q 1272.97 49.38 1274.17 49.38 Q 1275.19 49.38 1276.36 48.75 L 1276.36 49.63 Q 1275.29 50.18 1274.03 50.18 M 1274.03 50.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 50 L 1279.93 42.77 L 1282.33 42.77 Q 1283.41 42.77 1284.07 43.01 Q 1284.73 43.25 1285.22 43.82 Q 1285.98 44.73 1285.98 46.22 Q 1285.98 48.02 1285.03 49.01 Q 1284.08 50 1282.35 50 M 1279.93 50 M 1280.96 49.23 L 1282.27 49.23 Q 1283.68 49.23 1284.26 48.48 Q 1284.89 47.67 1284.89 46.31 Q 1284.89 45.04 1284.27 44.31 Q 1283.9 43.87 1283.38 43.7 Q 1282.85 43.54 1281.8 43.54 L 1280.96 43.54 M 1280.96 49.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 50 L 1288.18 42.77 L 1289.2 42.77 L 1291.44 48.69 L 1293.6 42.77 L 1294.49 42.77 L 1291.87 50 M 1290.91 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 50 L 1299.65 43.54 L 1297.09 43.54 L 1297.09 42.77 L 1303.24 42.77 L 1303.24 43.54 L 1300.68 43.54 L 1300.68 50 M 1299.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 50 L 1308.93 42.77 L 1309.95 42.77 L 1309.95 50 M 1308.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 50 L 1316.93 42.77 L 1320.97 42.77 L 1320.97 43.54 L 1317.96 43.54 L 1317.96 45.86 L 1320.48 45.86 L 1320.48 46.62 L 1317.96 46.62 L 1317.96 49.23 L 1321.18 49.23 L 1321.18 50 M 1316.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 50 L 1326.65 43.54 L 1324.09 43.54 L 1324.09 42.77 L 1330.24 42.77 L 1330.24 43.54 L 1327.68 43.54 L 1327.68 50 M 1326.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 50 L 1333.93 42.77 L 1334.96 42.77 L 1334.96 45.82 L 1338.4 45.82 L 1338.4 42.77 L 1339.42 42.77 L 1339.42 50 L 1338.4 50 L 1338.4 46.59 L 1334.96 46.59 L 1334.96 50 M 1333.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 50 L 1342.93 42.77 L 1343.89 42.77 L 1343.89 46.33 L 1346.82 42.77 L 1347.85 42.77 L 1345.02 46.22 L 1348.35 50 L 1347.05 50 L 1343.89 46.34 L 1343.89 50 M 1342.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 50 L 1352.93 42.77 L 1356.97 42.77 L 1356.97 43.54 L 1353.96 43.54 L 1353.96 45.86 L 1356.48 45.86 L 1356.48 46.62 L 1353.96 46.62 L 1353.96 49.23 L 1357.18 49.23 L 1357.18 50 M 1352.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 50 L 1361.93 42.77 L 1365.97 42.77 L 1365.97 43.54 L 1362.96 43.54 L 1362.96 45.86 L 1365.48 45.86 L 1365.48 46.62 L 1362.96 46.62 L 1362.96 49.23 L 1366.18 49.23 L 1366.18 50 M 1361.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 50 L 1370.93 42.77 L 1374.97 42.77 L 1374.97 43.54 L 1371.96 43.54 L 1371.96 45.86 L 1374.48 45.86 L 1374.48 46.62 L 1371.96 46.62 L 1371.96 49.23 L 1375.18 49.23 L 1375.18 50 M 1370.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 50 L 1379.93 42.77 L 1380.96 42.77 L 1380.96 49.23 L 1384.21 49.23 L 1384.21 50 M 1379.93 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 50 L 1389.65 43.54 L 1387.09 43.54 L 1387.09 42.77 L 1393.24 42.77 L 1393.24 43.54 L 1390.68 43.54 L 1390.68 50 M 1389.65 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1400.59 47.24 L 1399.36 44.12 L 1398.13 47.24 M 1400.59 47.24 M 1401.68 50 L 1400.89 48 L 1397.83 48 L 1397.04 50 L 1396.08 50 L 1398.95 42.77 L 1399.96 42.77 L 1402.79 50 M 1401.68 50"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 47.47 L 1405.72 46.75 L 1410.06 46.75 L 1410.06 47.47 M 1405.72 47.47"/></g><rect x="0" y="52" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="52" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="52" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="52" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="52" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="52" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="52" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="52" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="52" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="52" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="52" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="711" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="52" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="52" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="52" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="52" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="52" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="52" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="52" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="52" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="52" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="52" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="52" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="52" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="52" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="52" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="52" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="52" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="52" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="52" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="52" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="52" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="52" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="52" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="52" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 63 L 0.93 55.77 L 2.35 55.77 L 4.36 61.36 L 6.42 55.77 L 7.69 55.77 L 7.69 63 L 6.73 63 L 6.73 57.12 L 4.74 62.52 L 3.75 62.52 L 1.81 57.11 L 1.81 63 M 0.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 60.24 L 13.36 57.12 L 12.13 60.24 M 14.59 60.24 M 15.68 63 L 14.89 61 L 11.83 61 L 11.04 63 L 10.08 63 L 12.95 55.77 L 13.96 55.77 L 16.79 63 M 15.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 21.65 63 L 21.65 56.54 L 19.09 56.54 L 19.09 55.77 L 25.24 55.77 L 25.24 56.54 L 22.68 56.54 L 22.68 63 M 21.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 63 L 30.65 56.54 L 28.09 56.54 L 28.09 55.77 L 34.24 55.77 L 34.24 56.54 L 31.68 56.54 L 31.68 63 M 30.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 60.47 L 37.72 59.75 L 42.06 59.75 L 42.06 60.47 M 37.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 60.47 L 46.72 59.75 L 51.06 59.75 L 51.06 60.47 M 46.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 60.47 L 55.72 59.75 L 60.06 59.75 L 60.06 60.47 M 55.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.93 63 L 64.93 55.77 L 66.9 55.77 Q 68.21 55.77 68.78 56.22 Q 69.35 56.66 69.35 57.67 Q 69.35 58.82 68.57 59.47 Q 67.79 60.13 66.4 60.13 L 65.95 60.13 L 65.95 63 M 64.93 63 M 65.95 59.35 L 66.36 59.35 Q 67.28 59.35 67.77 58.93 Q 68.27 58.51 68.27 57.75 Q 68.27 57.1 67.88 56.82 Q 67.49 56.54 66.58 56.54 L 65.95 56.54 M 65.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 77.59 60.24 L 76.36 57.12 L 75.13 60.24 M 77.59 60.24 M 78.68 63 L 77.89 61 L 74.83 61 L 74.04 63 L 73.08 63 L 75.95 55.77 L 76.96 55.77 L 79.79 63 M 78.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 83.93 63 L 83.93 55.77 L 84.96 55.77 L 84.96 62.23 L 88.21 62.23 L 88.21 63 M 83.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 93.5 63 L 93.5 59.98 L 91.08 55.77 L 92.25 55.77 L 94.13 59.04 L 96.15 55.77 L 97.1 55.77 L 94.52 59.96 L 94.52 63 M 93.5 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 106.36 62.8 Q 105.05 63.18 104.07 63.18 Q 102.35 63.18 101.43 62.2 Q 100.51 61.22 100.51 59.39 Q 100.51 57.59 101.44 56.59 Q 102.37 55.59 104.06 55.59 Q 105.16 55.59 106.35 55.92 L 106.35 56.87 Q 104.86 56.36 104.06 56.36 Q 102.89 56.36 102.24 57.16 Q 101.6 57.95 101.6 59.4 Q 101.6 60.83 102.29 61.62 Q 102.98 62.41 104.23 62.41 Q 104.75 62.41 105.34 62.23 L 105.34 59.88 L 106.36 59.88 M 106.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 111.65 63 L 111.65 56.54 L 109.09 56.54 L 109.09 55.77 L 115.24 55.77 L 115.24 56.54 L 112.68 56.54 L 112.68 63 M 111.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 122.59 60.24 L 121.36 57.12 L 120.13 60.24 M 122.59 60.24 M 123.68 63 L 122.89 61 L 119.83 61 L 119.04 63 L 118.08 63 L 120.95 55.77 L 121.96 55.77 L 124.79 63 M 123.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.91 63 L 127.18 55.77 L 128.2 55.77 L 130.44 61.69 L 132.6 55.77 L 133.49 55.77 L 130.87 63 M 129.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 63.18 Q 138.62 63.18 137.49 62.86 L 137.49 61.85 Q 138.71 62.41 139.5 62.41 Q 140.1 62.41 140.47 62.1 Q 140.84 61.78 140.84 61.26 Q 140.84 60.84 140.6 60.54 Q 140.35 60.24 139.71 59.88 L 139.21 59.59 Q 138.28 59.06 137.91 58.59 Q 137.53 58.13 137.53 57.51 Q 137.53 56.67 138.13 56.13 Q 138.74 55.59 139.68 55.59 Q 140.51 55.59 141.44 55.87 L 141.44 56.81 Q 140.3 56.36 139.73 56.36 Q 139.2 56.36 138.86 56.64 Q 138.51 56.93 138.51 57.36 Q 138.51 57.72 138.76 58 Q 139.02 58.27 139.69 58.66 L 140.21 58.95 Q 141.15 59.48 141.52 59.96 Q 141.89 60.43 141.89 61.1 Q 141.89 62.04 141.19 62.61 Q 140.5 63.18 139.35 63.18 M 139.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 63 L 147.65 56.54 L 145.09 56.54 L 145.09 55.77 L 151.24 55.77 L 151.24 56.54 L 148.68 56.54 L 148.68 63 M 147.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 63.18 Q 156.62 63.18 155.49 62.86 L 155.49 61.85 Q 156.71 62.41 157.5 62.41 Q 158.1 62.41 158.47 62.1 Q 158.84 61.78 158.84 61.26 Q 158.84 60.84 158.6 60.54 Q 158.35 60.24 157.71 59.88 L 157.21 59.59 Q 156.28 59.06 155.91 58.59 Q 155.53 58.13 155.53 57.51 Q 155.53 56.67 156.13 56.13 Q 156.74 55.59 157.68 55.59 Q 158.51 55.59 159.44 55.87 L 159.44 56.81 Q 158.3 56.36 157.73 56.36 Q 157.2 56.36 156.86 56.64 Q 156.51 56.93 156.51 57.36 Q 156.51 57.72 156.76 58 Q 157.02 58.27 157.69 58.66 L 158.21 58.95 Q 159.15 59.48 159.52 59.96 Q 159.89 60.43 159.89 61.1 Q 159.89 62.04 159.19 62.61 Q 158.5 63.18 157.35 63.18 M 157.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 63 L 164.93 55.77 L 168.97 55.77 L 168.97 56.54 L 165.96 56.54 L 165.96 58.96 L 168.49 58.96 L 168.49 59.72 L 165.96 59.72 L 165.96 63 M 164.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 63 L 173.93 55.77 L 174.96 55.77 L 174.96 62.23 L 178.21 62.23 L 178.21 63 M 173.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 63 L 181.93 55.77 L 184.12 55.77 Q 185.16 55.77 185.71 56.23 Q 186.27 56.69 186.27 57.57 Q 186.27 59.01 184.81 59.62 L 187.22 63 L 185.96 63 L 183.91 59.94 L 182.95 59.94 L 182.95 63 M 181.93 63 M 182.95 59.18 L 183.28 59.18 Q 185.21 59.18 185.21 57.66 Q 185.21 56.54 183.59 56.54 L 182.95 56.54 M 182.95 59.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 192.65 63 L 192.65 56.54 L 190.09 56.54 L 190.09 55.77 L 196.24 55.77 L 196.24 56.54 L 193.68 56.54 L 193.68 63 M 192.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 205.35 64.45 Q 203.64 63.89 202.49 63.13 Q 202.03 63.18 201.78 63.18 Q 200.33 63.18 199.42 62.13 Q 198.51 61.07 198.51 59.39 Q 198.51 57.66 199.43 56.63 Q 200.35 55.59 201.89 55.59 Q 203.43 55.59 204.35 56.63 Q 205.27 57.66 205.27 59.4 Q 205.27 61.89 203.42 62.85 Q 204.66 63.4 206 63.63 M 205.35 64.45 M 201.86 62.41 Q 202.97 62.41 203.57 61.62 Q 204.18 60.82 204.18 59.37 Q 204.18 57.96 203.57 57.16 Q 202.97 56.36 201.89 56.36 Q 200.81 56.36 200.2 57.16 Q 199.6 57.96 199.6 59.38 Q 199.6 60.79 200.2 61.6 Q 200.8 62.41 201.86 62.41 M 201.86 62.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 63 L 208.93 55.77 L 210.9 55.77 Q 212.21 55.77 212.78 56.22 Q 213.35 56.66 213.35 57.67 Q 213.35 58.82 212.57 59.47 Q 211.79 60.13 210.4 60.13 L 209.95 60.13 L 209.95 63 M 208.93 63 M 209.95 59.35 L 210.36 59.35 Q 211.28 59.35 211.77 58.93 Q 212.27 58.51 212.27 57.75 Q 212.27 57.1 211.88 56.82 Q 211.49 56.54 210.58 56.54 L 209.95 56.54 M 209.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 216.93 63 L 216.93 55.77 L 218.35 55.77 L 220.36 61.36 L 222.42 55.77 L 223.69 55.77 L 223.69 63 L 222.73 63 L 222.73 57.12 L 220.74 62.52 L 219.75 62.52 L 217.81 57.11 L 217.81 63 M 216.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 63 L 226.93 55.77 L 228.9 55.77 Q 230.21 55.77 230.78 56.22 Q 231.35 56.66 231.35 57.67 Q 231.35 58.82 230.57 59.47 Q 229.79 60.13 228.4 60.13 L 227.95 60.13 L 227.95 63 M 226.93 63 M 227.95 59.35 L 228.36 59.35 Q 229.28 59.35 229.77 58.93 Q 230.27 58.51 230.27 57.75 Q 230.27 57.1 229.88 56.82 Q 229.49 56.54 228.58 56.54 L 227.95 56.54 M 227.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 234.93 63 L 234.93 55.77 L 236.35 55.77 L 238.36 61.36 L 240.42 55.77 L 241.69 55.77 L 241.69 63 L 240.73 63 L 240.73 57.12 L 238.74 62.52 L 237.75 62.52 L 235.81 57.11 L 235.81 63 M 234.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 63.18 Q 246.62 63.18 245.49 62.86 L 245.49 61.85 Q 246.71 62.41 247.5 62.41 Q 248.1 62.41 248.47 62.1 Q 248.84 61.78 248.84 61.26 Q 248.84 60.84 248.6 60.54 Q 248.35 60.24 247.71 59.88 L 247.21 59.59 Q 246.28 59.06 245.91 58.59 Q 245.53 58.13 245.53 57.51 Q 245.53 56.67 246.13 56.13 Q 246.74 55.59 247.68 55.59 Q 248.51 55.59 249.44 55.87 L 249.44 56.81 Q 248.3 56.36 247.73 56.36 Q 247.2 56.36 246.86 56.64 Q 246.51 56.93 246.51 57.36 Q 246.51 57.72 246.76 58 Q 247.02 58.27 247.69 58.66 L 248.21 58.95 Q 249.15 59.48 249.52 59.96 Q 249.89 60.43 249.89 61.1 Q 249.89 62.04 249.19 62.61 Q 248.5 63.18 247.35 63.18 M 247.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 255.91 63 L 253.18 55.77 L 254.2 55.77 L 256.44 61.69 L 258.6 55.77 L 259.49 55.77 L 256.87 63 M 255.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 60.47 L 262.72 59.75 L 267.06 59.75 L 267.06 60.47 M 262.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 273.65 63 L 273.65 56.54 L 271.09 56.54 L 271.09 55.77 L 277.24 55.77 L 277.24 56.54 L 274.68 56.54 L 274.68 63 M 273.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 282.65 63 L 282.65 56.54 L 280.09 56.54 L 280.09 55.77 L 286.24 55.77 L 286.24 56.54 L 283.68 56.54 L 283.68 63 M 282.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 291.65 63 L 291.65 56.54 L 289.09 56.54 L 289.09 55.77 L 295.24 55.77 L 295.24 56.54 L 292.68 56.54 L 292.68 63 M 291.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 298.93 63 L 298.93 55.77 L 299.89 55.77 L 299.89 59.33 L 302.82 55.77 L 303.85 55.77 L 301.02 59.22 L 304.35 63 L 303.05 63 L 299.89 59.34 L 299.89 63 M 298.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 311.59 60.24 L 310.36 57.12 L 309.13 60.24 M 311.59 60.24 M 312.68 63 L 311.89 61 L 308.83 61 L 308.04 63 L 307.08 63 L 309.95 55.77 L 310.96 55.77 L 313.79 63 M 312.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 317.93 63 L 317.93 55.77 L 321.97 55.77 L 321.97 56.54 L 318.96 56.54 L 318.96 58.96 L 321.49 58.96 L 321.49 59.72 L 318.96 59.72 L 318.96 63 M 317.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 328.35 63.18 Q 327.62 63.18 326.49 62.86 L 326.49 61.85 Q 327.71 62.41 328.5 62.41 Q 329.1 62.41 329.47 62.1 Q 329.84 61.78 329.84 61.26 Q 329.84 60.84 329.6 60.54 Q 329.35 60.24 328.71 59.88 L 328.21 59.59 Q 327.28 59.06 326.91 58.59 Q 326.53 58.13 326.53 57.51 Q 326.53 56.67 327.13 56.13 Q 327.74 55.59 328.68 55.59 Q 329.51 55.59 330.44 55.87 L 330.44 56.81 Q 329.3 56.36 328.73 56.36 Q 328.2 56.36 327.86 56.64 Q 327.51 56.93 327.51 57.36 Q 327.51 57.72 327.76 58 Q 328.02 58.27 328.69 58.66 L 329.21 58.95 Q 330.15 59.48 330.52 59.96 Q 330.89 60.43 330.89 61.1 Q 330.89 62.04 330.19 62.61 Q 329.5 63.18 328.35 63.18 M 328.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 334.93 63 L 334.93 55.77 L 335.94 55.77 L 339.58 61.35 L 339.58 55.77 L 340.46 55.77 L 340.46 63 L 339.45 63 L 335.81 57.42 L 335.81 63 M 334.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 60.47 L 343.72 59.75 L 348.06 59.75 L 348.06 60.47 M 343.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 60.47 L 352.72 59.75 L 357.06 59.75 L 357.06 60.47 M 352.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 367.36 62.8 Q 366.05 63.18 365.07 63.18 Q 363.35 63.18 362.43 62.2 Q 361.51 61.22 361.51 59.39 Q 361.51 57.59 362.44 56.59 Q 363.37 55.59 365.06 55.59 Q 366.16 55.59 367.35 55.92 L 367.35 56.87 Q 365.86 56.36 365.06 56.36 Q 363.89 56.36 363.24 57.16 Q 362.6 57.95 362.6 59.4 Q 362.6 60.83 363.29 61.62 Q 363.98 62.41 365.23 62.41 Q 365.75 62.41 366.34 62.23 L 366.34 59.88 L 367.36 59.88 M 367.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 63 L 371.93 55.77 L 375.97 55.77 L 375.97 56.54 L 372.96 56.54 L 372.96 58.96 L 375.49 58.96 L 375.49 59.72 L 372.96 59.72 L 372.96 63 M 371.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 63 L 380.93 55.77 L 381.96 55.77 L 381.96 62.23 L 385.21 62.23 L 385.21 63 M 380.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 62.8 Q 393.05 63.18 392.07 63.18 Q 390.35 63.18 389.43 62.2 Q 388.51 61.22 388.51 59.39 Q 388.51 57.59 389.44 56.59 Q 390.37 55.59 392.06 55.59 Q 393.16 55.59 394.35 55.92 L 394.35 56.87 Q 392.86 56.36 392.06 56.36 Q 390.89 56.36 390.24 57.16 Q 389.6 57.95 389.6 59.4 Q 389.6 60.83 390.29 61.62 Q 390.98 62.41 392.23 62.41 Q 392.75 62.41 393.34 62.23 L 393.34 59.88 L 394.36 59.88 M 394.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 63 L 398.93 55.77 L 399.96 55.77 L 399.96 62.23 L 403.21 62.23 L 403.21 63 M 398.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 63 L 406.93 55.77 L 407.89 55.77 L 407.89 59.33 L 410.82 55.77 L 411.85 55.77 L 409.02 59.22 L 412.35 63 L 411.05 63 L 407.89 59.34 L 407.89 63 M 406.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 417.65 63 L 417.65 56.54 L 415.09 56.54 L 415.09 55.77 L 421.24 55.77 L 421.24 56.54 L 418.68 56.54 L 418.68 63 M 417.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 60.47 L 424.72 59.75 L 429.06 59.75 L 429.06 60.47 M 424.72 60.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 436.35 63.18 Q 435.62 63.18 434.49 62.86 L 434.49 61.85 Q 435.71 62.41 436.5 62.41 Q 437.1 62.41 437.47 62.1 Q 437.84 61.78 437.84 61.26 Q 437.84 60.84 437.6 60.54 Q 437.35 60.24 436.71 59.88 L 436.21 59.59 Q 435.28 59.06 434.91 58.59 Q 434.53 58.13 434.53 57.51 Q 434.53 56.67 435.13 56.13 Q 435.74 55.59 436.68 55.59 Q 437.51 55.59 438.44 55.87 L 438.44 56.81 Q 437.3 56.36 436.73 56.36 Q 436.2 56.36 435.86 56.64 Q 435.51 56.93 435.51 57.36 Q 435.51 57.72 435.76 58 Q 436.02 58.27 436.69 58.66 L 437.21 58.95 Q 438.15 59.48 438.52 59.96 Q 438.89 60.43 438.89 61.1 Q 438.89 62.04 438.19 62.61 Q 437.5 63.18 436.35 63.18 M 436.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 443.93 63 L 443.93 55.77 L 444.96 55.77 L 444.96 62.23 L 448.21 62.23 L 448.21 63 M 443.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.93 63 L 451.93 55.77 L 452.89 55.77 L 452.89 59.33 L 455.82 55.77 L 456.85 55.77 L 454.02 59.22 L 457.35 63 L 456.05 63 L 452.89 59.34 L 452.89 63 M 451.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 63 L 460.93 55.77 L 463.12 55.77 Q 464.16 55.77 464.71 56.23 Q 465.27 56.69 465.27 57.57 Q 465.27 59.01 463.81 59.62 L 466.22 63 L 464.96 63 L 462.91 59.94 L 461.95 59.94 L 461.95 63 M 460.93 63 M 461.95 59.18 L 462.28 59.18 Q 464.21 59.18 464.21 57.66 Q 464.21 56.54 462.59 56.54 L 461.95 56.54 M 461.95 59.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 475.36 62.8 Q 474.05 63.18 473.07 63.18 Q 471.35 63.18 470.43 62.2 Q 469.51 61.22 469.51 59.39 Q 469.51 57.59 470.44 56.59 Q 471.37 55.59 473.06 55.59 Q 474.16 55.59 475.35 55.92 L 475.35 56.87 Q 473.86 56.36 473.06 56.36 Q 471.89 56.36 471.24 57.16 Q 470.6 57.95 470.6 59.4 Q 470.6 60.83 471.29 61.62 Q 471.98 62.41 473.23 62.41 Q 473.75 62.41 474.34 62.23 L 474.34 59.88 L 475.36 59.88 M 475.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 478.93 63 L 478.93 55.77 L 481.33 55.77 Q 482.41 55.77 483.07 56.01 Q 483.73 56.25 484.22 56.82 Q 484.98 57.73 484.98 59.22 Q 484.98 61.02 484.03 62.01 Q 483.08 63 481.35 63 M 478.93 63 M 479.96 62.23 L 481.27 62.23 Q 482.68 62.23 483.26 61.48 Q 483.89 60.67 483.89 59.31 Q 483.89 58.04 483.27 57.31 Q 482.9 56.87 482.38 56.7 Q 481.85 56.54 480.8 56.54 L 479.96 56.54 M 479.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 488.93 63 L 488.93 55.77 L 489.96 55.77 L 489.96 62.23 L 493.21 62.23 L 493.21 63 M 488.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 500.59 60.24 L 499.36 57.12 L 498.13 60.24 M 500.59 60.24 M 501.68 63 L 500.89 61 L 497.83 61 L 497.04 63 L 496.08 63 L 498.95 55.77 L 499.96 55.77 L 502.79 63 M 501.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.91 63 L 505.18 55.77 L 506.2 55.77 L 508.44 61.69 L 510.6 55.77 L 511.49 55.77 L 508.87 63 M 507.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 60.24 L 517.36 57.12 L 516.13 60.24 M 518.59 60.24 M 519.68 63 L 518.89 61 L 515.83 61 L 515.04 63 L 514.08 63 L 516.95 55.77 L 517.96 55.77 L 520.79 63 M 519.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 63 L 522.93 55.77 L 524.35 55.77 L 526.36 61.36 L 528.42 55.77 L 529.69 55.77 L 529.69 63 L 528.73 63 L 528.73 57.12 L 526.74 62.52 L 525.75 62.52 L 523.81 57.11 L 523.81 63 M 522.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 60.24 L 535.36 57.12 L 534.13 60.24 M 536.59 60.24 M 537.68 63 L 536.89 61 L 533.83 61 L 533.04 63 L 532.08 63 L 534.95 55.77 L 535.96 55.77 L 538.79 63 M 537.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 544.35 63.18 Q 543.62 63.18 542.49 62.86 L 542.49 61.85 Q 543.71 62.41 544.5 62.41 Q 545.1 62.41 545.47 62.1 Q 545.84 61.78 545.84 61.26 Q 545.84 60.84 545.6 60.54 Q 545.35 60.24 544.71 59.88 L 544.21 59.59 Q 543.28 59.06 542.91 58.59 Q 542.53 58.13 542.53 57.51 Q 542.53 56.67 543.13 56.13 Q 543.74 55.59 544.68 55.59 Q 545.51 55.59 546.44 55.87 L 546.44 56.81 Q 545.3 56.36 544.73 56.36 Q 544.2 56.36 543.86 56.64 Q 543.51 56.93 543.51 57.36 Q 543.51 57.72 543.76 58 Q 544.02 58.27 544.69 58.66 L 545.21 58.95 Q 546.15 59.48 546.52 59.96 Q 546.89 60.43 546.89 61.1 Q 546.89 62.04 546.19 62.61 Q 545.5 63.18 544.35 63.18 M 544.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 63 L 552.5 59.98 L 550.08 55.77 L 551.25 55.77 L 553.13 59.04 L 555.15 55.77 L 556.1 55.77 L 553.52 59.96 L 553.52 63 M 552.5 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 63 L 559.93 55.77 L 560.89 55.77 L 560.89 59.33 L 563.82 55.77 L 564.85 55.77 L 562.02 59.22 L 565.35 63 L 564.05 63 L 560.89 59.34 L 560.89 63 M 559.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 63 L 568.18 55.77 L 569.2 55.77 L 571.44 61.69 L 573.6 55.77 L 574.49 55.77 L 571.87 63 M 570.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 63 L 577.93 55.77 L 578.89 55.77 L 578.89 59.33 L 581.82 55.77 L 582.85 55.77 L 580.02 59.22 L 583.35 63 L 582.05 63 L 578.89 59.34 L 578.89 63 M 577.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 63 L 587.93 55.77 L 588.96 55.77 L 588.96 62.23 L 592.21 62.23 L 592.21 63 M 587.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.91 63 L 595.18 55.77 L 596.2 55.77 L 598.44 61.69 L 600.6 55.77 L 601.49 55.77 L 598.87 63 M 597.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 63 L 606.65 56.54 L 604.09 56.54 L 604.09 55.77 L 610.24 55.77 L 610.24 56.54 L 607.68 56.54 L 607.68 63 M 606.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 63 L 613.93 55.77 L 615.9 55.77 Q 617.21 55.77 617.78 56.22 Q 618.35 56.66 618.35 57.67 Q 618.35 58.82 617.57 59.47 Q 616.79 60.13 615.4 60.13 L 614.95 60.13 L 614.95 63 M 613.93 63 M 614.95 59.35 L 615.36 59.35 Q 616.28 59.35 616.77 58.93 Q 617.27 58.51 617.27 57.75 Q 617.27 57.1 616.88 56.82 Q 616.49 56.54 615.58 56.54 L 614.95 56.54 M 614.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 622.93 63 L 622.93 55.77 L 625.33 55.77 Q 626.41 55.77 627.07 56.01 Q 627.73 56.25 628.22 56.82 Q 628.98 57.73 628.98 59.22 Q 628.98 61.02 628.03 62.01 Q 627.08 63 625.35 63 M 622.93 63 M 623.96 62.23 L 625.27 62.23 Q 626.68 62.23 627.26 61.48 Q 627.89 60.67 627.89 59.31 Q 627.89 58.04 627.27 57.31 Q 626.9 56.87 626.38 56.7 Q 625.85 56.54 624.8 56.54 L 623.96 56.54 M 623.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 62.8 Q 636.05 63.18 635.07 63.18 Q 633.35 63.18 632.43 62.2 Q 631.51 61.22 631.51 59.39 Q 631.51 57.59 632.44 56.59 Q 633.37 55.59 635.06 55.59 Q 636.16 55.59 637.35 55.92 L 637.35 56.87 Q 635.86 56.36 635.06 56.36 Q 633.89 56.36 633.24 57.16 Q 632.6 57.95 632.6 59.4 Q 632.6 60.83 633.29 61.62 Q 633.98 62.41 635.23 62.41 Q 635.75 62.41 636.34 62.23 L 636.34 59.88 L 637.36 59.88 M 637.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 642.65 63 L 642.65 56.54 L 640.09 56.54 L 640.09 55.77 L 646.24 55.77 L 646.24 56.54 L 643.68 56.54 L 643.68 63 M 642.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 64.45 Q 653.64 63.89 652.49 63.13 Q 652.03 63.18 651.78 63.18 Q 650.33 63.18 649.42 62.13 Q 648.51 61.07 648.51 59.39 Q 648.51 57.66 649.43 56.63 Q 650.35 55.59 651.89 55.59 Q 653.43 55.59 654.35 56.63 Q 655.27 57.66 655.27 59.4 Q 655.27 61.89 653.42 62.85 Q 654.66 63.4 656 63.63 M 655.35 64.45 M 651.86 62.41 Q 652.97 62.41 653.57 61.62 Q 654.18 60.82 654.18 59.37 Q 654.18 57.96 653.57 57.16 Q 652.97 56.36 651.89 56.36 Q 650.81 56.36 650.2 57.16 Q 649.6 57.96 649.6 59.38 Q 649.6 60.79 650.2 61.6 Q 650.8 62.41 651.86 62.41 M 651.86 62.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 63 L 659.93 55.77 L 663.97 55.77 L 663.97 56.54 L 660.96 56.54 L 660.96 58.86 L 663.48 58.86 L 663.48 59.62 L 660.96 59.62 L 660.96 62.23 L 664.18 62.23 L 664.18 63 M 659.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 63 L 668.93 55.77 L 672.97 55.77 L 672.97 56.54 L 669.96 56.54 L 669.96 58.96 L 672.49 58.96 L 672.49 59.72 L 669.96 59.72 L 669.96 63 M 668.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 63 L 677.93 55.77 L 681.97 55.77 L 681.97 56.54 L 678.96 56.54 L 678.96 58.86 L 681.48 58.86 L 681.48 59.62 L 678.96 59.62 L 678.96 62.23 L 682.18 62.23 L 682.18 63 M 677.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 63.18 Q 687.34 63.18 686.43 62.19 Q 685.51 61.2 685.51 59.39 Q 685.51 57.58 686.44 56.59 Q 687.38 55.59 689.08 55.59 Q 690.05 55.59 691.35 55.91 L 691.35 56.87 Q 689.87 56.36 689.06 56.36 Q 687.89 56.36 687.24 57.16 Q 686.6 57.95 686.6 59.4 Q 686.6 60.78 687.29 61.58 Q 687.97 62.38 689.17 62.38 Q 690.19 62.38 691.36 61.75 L 691.36 62.63 Q 690.29 63.18 689.03 63.18 M 689.03 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 63 L 694.93 55.77 L 696.9 55.77 Q 698.21 55.77 698.78 56.22 Q 699.35 56.66 699.35 57.67 Q 699.35 58.82 698.57 59.47 Q 697.79 60.13 696.4 60.13 L 695.95 60.13 L 695.95 63 M 694.93 63 M 695.95 59.35 L 696.36 59.35 Q 697.28 59.35 697.77 58.93 Q 698.27 58.51 698.27 57.75 Q 698.27 57.1 697.88 56.82 Q 697.49 56.54 696.58 56.54 L 695.95 56.54 M 695.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 706.35 63.18 Q 705.62 63.18 704.49 62.86 L 704.49 61.85 Q 705.71 62.41 706.5 62.41 Q 707.1 62.41 707.47 62.1 Q 707.84 61.78 707.84 61.26 Q 707.84 60.84 707.6 60.54 Q 707.35 60.24 706.71 59.88 L 706.21 59.59 Q 705.28 59.06 704.91 58.59 Q 704.53 58.13 704.53 57.51 Q 704.53 56.67 705.13 56.13 Q 705.74 55.59 706.68 55.59 Q 707.51 55.59 708.44 55.87 L 708.44 56.81 Q 707.3 56.36 706.73 56.36 Q 706.2 56.36 705.86 56.64 Q 705.51 56.93 705.51 57.36 Q 705.51 57.72 705.76 58 Q 706.02 58.27 706.69 58.66 L 707.21 58.95 Q 708.15 59.48 708.52 59.96 Q 708.89 60.43 708.89 61.1 Q 708.89 62.04 708.19 62.61 Q 707.5 63.18 706.35 63.18 M 706.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 63 L 712.93 55.77 L 715.33 55.77 Q 716.41 55.77 717.07 56.01 Q 717.73 56.25 718.22 56.82 Q 718.98 57.73 718.98 59.22 Q 718.98 61.02 718.03 62.01 Q 717.08 63 715.35 63 M 712.93 63 M 713.96 62.23 L 715.27 62.23 Q 716.68 62.23 717.26 61.48 Q 717.89 60.67 717.89 59.31 Q 717.89 58.04 717.27 57.31 Q 716.9 56.87 716.38 56.7 Q 715.85 56.54 714.8 56.54 L 713.96 56.54 M 713.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 63 L 721.18 55.77 L 722.2 55.77 L 724.44 61.69 L 726.6 55.77 L 727.49 55.77 L 724.87 63 M 723.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 63 L 732.5 59.98 L 730.08 55.77 L 731.25 55.77 L 733.13 59.04 L 735.15 55.77 L 736.1 55.77 L 733.52 59.96 L 733.52 63 M 732.5 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 63 L 741.93 55.77 L 742.95 55.77 L 742.95 63 M 741.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 63 L 749.93 55.77 L 750.96 55.77 L 750.96 62.23 L 754.21 62.23 L 754.21 63 M 749.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 63 L 757.93 55.77 L 760.33 55.77 Q 761.41 55.77 762.07 56.01 Q 762.73 56.25 763.22 56.82 Q 763.98 57.73 763.98 59.22 Q 763.98 61.02 763.03 62.01 Q 762.08 63 760.35 63 M 757.93 63 M 758.96 62.23 L 760.27 62.23 Q 761.68 62.23 762.26 61.48 Q 762.89 60.67 762.89 59.31 Q 762.89 58.04 762.27 57.31 Q 761.9 56.87 761.38 56.7 Q 760.85 56.54 759.8 56.54 L 758.96 56.54 M 758.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 766.93 63 L 766.93 55.77 L 767.96 55.77 L 767.96 58.82 L 771.4 58.82 L 771.4 55.77 L 772.42 55.77 L 772.42 63 L 771.4 63 L 771.4 59.59 L 767.96 59.59 L 767.96 63 M 766.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 60.24 L 778.36 57.12 L 777.13 60.24 M 779.59 60.24 M 780.68 63 L 779.89 61 L 776.83 61 L 776.04 63 L 775.08 63 L 777.95 55.77 L 778.96 55.77 L 781.79 63 M 780.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 63 L 785.93 55.77 L 789.97 55.77 L 789.97 56.54 L 786.96 56.54 L 786.96 58.86 L 789.48 58.86 L 789.48 59.62 L 786.96 59.62 L 786.96 62.23 L 790.18 62.23 L 790.18 63 M 785.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 63 L 794.93 55.77 L 798.97 55.77 L 798.97 56.54 L 795.96 56.54 L 795.96 58.86 L 798.48 58.86 L 798.48 59.62 L 795.96 59.62 L 795.96 62.23 L 799.18 62.23 L 799.18 63 M 794.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 804.91 63 L 802.18 55.77 L 803.2 55.77 L 805.44 61.69 L 807.6 55.77 L 808.49 55.77 L 805.87 63 M 804.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 62.8 Q 816.05 63.18 815.07 63.18 Q 813.35 63.18 812.43 62.2 Q 811.51 61.22 811.51 59.39 Q 811.51 57.59 812.44 56.59 Q 813.37 55.59 815.06 55.59 Q 816.16 55.59 817.35 55.92 L 817.35 56.87 Q 815.86 56.36 815.06 56.36 Q 813.89 56.36 813.24 57.16 Q 812.6 57.95 812.6 59.4 Q 812.6 60.83 813.29 61.62 Q 813.98 62.41 815.23 62.41 Q 815.75 62.41 816.34 62.23 L 816.34 59.88 L 817.36 59.88 M 817.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 63 L 822.93 55.77 L 823.95 55.77 L 823.95 63 M 822.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 63 L 829.93 55.77 L 832.33 55.77 Q 833.41 55.77 834.07 56.01 Q 834.73 56.25 835.22 56.82 Q 835.98 57.73 835.98 59.22 Q 835.98 61.02 835.03 62.01 Q 834.08 63 832.35 63 M 829.93 63 M 830.96 62.23 L 832.27 62.23 Q 833.68 62.23 834.26 61.48 Q 834.89 60.67 834.89 59.31 Q 834.89 58.04 834.27 57.31 Q 833.9 56.87 833.38 56.7 Q 832.85 56.54 831.8 56.54 L 830.96 56.54 M 830.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 63 L 839.93 55.77 L 840.96 55.77 L 840.96 62.23 L 844.21 62.23 L 844.21 63 M 839.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 63 L 847.93 55.77 L 849.9 55.77 Q 851.21 55.77 851.78 56.22 Q 852.35 56.66 852.35 57.67 Q 852.35 58.82 851.57 59.47 Q 850.79 60.13 849.4 60.13 L 848.95 60.13 L 848.95 63 M 847.93 63 M 848.95 59.35 L 849.36 59.35 Q 850.28 59.35 850.77 58.93 Q 851.27 58.51 851.27 57.75 Q 851.27 57.1 850.88 56.82 Q 850.49 56.54 849.58 56.54 L 848.95 56.54 M 848.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 63 L 858.5 59.98 L 856.08 55.77 L 857.25 55.77 L 859.13 59.04 L 861.15 55.77 L 862.1 55.77 L 859.52 59.96 L 859.52 63 M 858.5 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 63.18 Q 867.62 63.18 866.49 62.86 L 866.49 61.85 Q 867.71 62.41 868.5 62.41 Q 869.1 62.41 869.47 62.1 Q 869.84 61.78 869.84 61.26 Q 869.84 60.84 869.6 60.54 Q 869.35 60.24 868.71 59.88 L 868.21 59.59 Q 867.28 59.06 866.91 58.59 Q 866.53 58.13 866.53 57.51 Q 866.53 56.67 867.13 56.13 Q 867.74 55.59 868.68 55.59 Q 869.51 55.59 870.44 55.87 L 870.44 56.81 Q 869.3 56.36 868.73 56.36 Q 868.2 56.36 867.86 56.64 Q 867.51 56.93 867.51 57.36 Q 867.51 57.72 867.76 58 Q 868.02 58.27 868.69 58.66 L 869.21 58.95 Q 870.15 59.48 870.52 59.96 Q 870.89 60.43 870.89 61.1 Q 870.89 62.04 870.19 62.61 Q 869.5 63.18 868.35 63.18 M 868.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 63.18 Q 876.34 63.18 875.43 62.19 Q 874.51 61.2 874.51 59.39 Q 874.51 57.58 875.44 56.59 Q 876.38 55.59 878.08 55.59 Q 879.05 55.59 880.35 55.91 L 880.35 56.87 Q 878.87 56.36 878.06 56.36 Q 876.89 56.36 876.24 57.16 Q 875.6 57.95 875.6 59.4 Q 875.6 60.78 876.29 61.58 Q 876.97 62.38 878.17 62.38 Q 879.19 62.38 880.36 61.75 L 880.36 62.63 Q 879.29 63.18 878.03 63.18 M 878.03 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 63 L 883.93 55.77 L 886.12 55.77 Q 887.16 55.77 887.71 56.23 Q 888.27 56.69 888.27 57.57 Q 888.27 59.01 886.81 59.62 L 889.22 63 L 887.96 63 L 885.91 59.94 L 884.95 59.94 L 884.95 63 M 883.93 63 M 884.95 59.18 L 885.28 59.18 Q 887.21 59.18 887.21 57.66 Q 887.21 56.54 885.59 56.54 L 884.95 56.54 M 884.95 59.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 60.24 L 895.36 57.12 L 894.13 60.24 M 896.59 60.24 M 897.68 63 L 896.89 61 L 893.83 61 L 893.04 63 L 892.08 63 L 894.95 55.77 L 895.96 55.77 L 898.79 63 M 897.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 62.8 Q 906.05 63.18 905.07 63.18 Q 903.35 63.18 902.43 62.2 Q 901.51 61.22 901.51 59.39 Q 901.51 57.59 902.44 56.59 Q 903.37 55.59 905.06 55.59 Q 906.16 55.59 907.35 55.92 L 907.35 56.87 Q 905.86 56.36 905.06 56.36 Q 903.89 56.36 903.24 57.16 Q 902.6 57.95 902.6 59.4 Q 902.6 60.83 903.29 61.62 Q 903.98 62.41 905.23 62.41 Q 905.75 62.41 906.34 62.23 L 906.34 59.88 L 907.36 59.88 M 907.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 63.18 Q 912.62 63.18 911.49 62.86 L 911.49 61.85 Q 912.71 62.41 913.5 62.41 Q 914.1 62.41 914.47 62.1 Q 914.84 61.78 914.84 61.26 Q 914.84 60.84 914.6 60.54 Q 914.35 60.24 913.71 59.88 L 913.21 59.59 Q 912.28 59.06 911.91 58.59 Q 911.53 58.13 911.53 57.51 Q 911.53 56.67 912.13 56.13 Q 912.74 55.59 913.68 55.59 Q 914.51 55.59 915.44 55.87 L 915.44 56.81 Q 914.3 56.36 913.73 56.36 Q 913.2 56.36 912.86 56.64 Q 912.51 56.93 912.51 57.36 Q 912.51 57.72 912.76 58 Q 913.02 58.27 913.69 58.66 L 914.21 58.95 Q 915.15 59.48 915.52 59.96 Q 915.89 60.43 915.89 61.1 Q 915.89 62.04 915.19 62.61 Q 914.5 63.18 913.35 63.18 M 913.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 63.18 Q 921.34 63.18 920.43 62.19 Q 919.51 61.2 919.51 59.39 Q 919.51 57.58 920.44 56.59 Q 921.38 55.59 923.08 55.59 Q 924.05 55.59 925.35 55.91 L 925.35 56.87 Q 923.87 56.36 923.06 56.36 Q 921.89 56.36 921.24 57.16 Q 920.6 57.95 920.6 59.4 Q 920.6 60.78 921.29 61.58 Q 921.97 62.38 923.17 62.38 Q 924.19 62.38 925.36 61.75 L 925.36 62.63 Q 924.29 63.18 923.03 63.18 M 923.03 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 63.18 Q 930.62 63.18 929.49 62.86 L 929.49 61.85 Q 930.71 62.41 931.5 62.41 Q 932.1 62.41 932.47 62.1 Q 932.84 61.78 932.84 61.26 Q 932.84 60.84 932.6 60.54 Q 932.35 60.24 931.71 59.88 L 931.21 59.59 Q 930.28 59.06 929.91 58.59 Q 929.53 58.13 929.53 57.51 Q 929.53 56.67 930.13 56.13 Q 930.74 55.59 931.68 55.59 Q 932.51 55.59 933.44 55.87 L 933.44 56.81 Q 932.3 56.36 931.73 56.36 Q 931.2 56.36 930.86 56.64 Q 930.51 56.93 930.51 57.36 Q 930.51 57.72 930.76 58 Q 931.02 58.27 931.69 58.66 L 932.21 58.95 Q 933.15 59.48 933.52 59.96 Q 933.89 60.43 933.89 61.1 Q 933.89 62.04 933.19 62.61 Q 932.5 63.18 931.35 63.18 M 931.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 63.18 Q 939.62 63.18 938.49 62.86 L 938.49 61.85 Q 939.71 62.41 940.5 62.41 Q 941.1 62.41 941.47 62.1 Q 941.84 61.78 941.84 61.26 Q 941.84 60.84 941.6 60.54 Q 941.35 60.24 940.71 59.88 L 940.21 59.59 Q 939.28 59.06 938.91 58.59 Q 938.53 58.13 938.53 57.51 Q 938.53 56.67 939.13 56.13 Q 939.74 55.59 940.68 55.59 Q 941.51 55.59 942.44 55.87 L 942.44 56.81 Q 941.3 56.36 940.73 56.36 Q 940.2 56.36 939.86 56.64 Q 939.51 56.93 939.51 57.36 Q 939.51 57.72 939.76 58 Q 940.02 58.27 940.69 58.66 L 941.21 58.95 Q 942.15 59.48 942.52 59.96 Q 942.89 60.43 942.89 61.1 Q 942.89 62.04 942.19 62.61 Q 941.5 63.18 940.35 63.18 M 940.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 63.18 Q 948.34 63.18 947.43 62.19 Q 946.51 61.2 946.51 59.39 Q 946.51 57.58 947.44 56.59 Q 948.38 55.59 950.08 55.59 Q 951.05 55.59 952.35 55.91 L 952.35 56.87 Q 950.87 56.36 950.06 56.36 Q 948.89 56.36 948.24 57.16 Q 947.6 57.95 947.6 59.4 Q 947.6 60.78 948.29 61.58 Q 948.97 62.38 950.17 62.38 Q 951.19 62.38 952.36 61.75 L 952.36 62.63 Q 951.29 63.18 950.03 63.18 M 950.03 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 60.24 L 958.36 57.12 L 957.13 60.24 M 959.59 60.24 M 960.68 63 L 959.89 61 L 956.83 61 L 956.04 63 L 955.08 63 L 957.95 55.77 L 958.96 55.77 L 961.79 63 M 960.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 62.8 Q 969.05 63.18 968.07 63.18 Q 966.35 63.18 965.43 62.2 Q 964.51 61.22 964.51 59.39 Q 964.51 57.59 965.44 56.59 Q 966.37 55.59 968.06 55.59 Q 969.16 55.59 970.35 55.92 L 970.35 56.87 Q 968.86 56.36 968.06 56.36 Q 966.89 56.36 966.24 57.16 Q 965.6 57.95 965.6 59.4 Q 965.6 60.83 966.29 61.62 Q 966.98 62.41 968.23 62.41 Q 968.75 62.41 969.34 62.23 L 969.34 59.88 L 970.36 59.88 M 970.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 63 L 973.93 55.77 L 974.89 55.77 L 974.89 59.33 L 977.82 55.77 L 978.85 55.77 L 976.02 59.22 L 979.35 63 L 978.05 63 L 974.89 59.34 L 974.89 63 M 973.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 63 L 982.18 55.77 L 983.2 55.77 L 985.44 61.69 L 987.6 55.77 L 988.49 55.77 L 985.87 63 M 984.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 63 L 991.18 55.77 L 992.2 55.77 L 994.44 61.69 L 996.6 55.77 L 997.49 55.77 L 994.87 63 M 993.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1006.36 62.8 Q 1005.05 63.18 1004.07 63.18 Q 1002.35 63.18 1001.43 62.2 Q 1000.51 61.22 1000.51 59.39 Q 1000.51 57.59 1001.44 56.59 Q 1002.37 55.59 1004.06 55.59 Q 1005.16 55.59 1006.35 55.92 L 1006.35 56.87 Q 1004.86 56.36 1004.06 56.36 Q 1002.89 56.36 1002.24 57.16 Q 1001.6 57.95 1001.6 59.4 Q 1001.6 60.83 1002.29 61.62 Q 1002.98 62.41 1004.23 62.41 Q 1004.75 62.41 1005.34 62.23 L 1005.34 59.88 L 1006.36 59.88 M 1006.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 62.8 Q 1014.05 63.18 1013.07 63.18 Q 1011.35 63.18 1010.43 62.2 Q 1009.51 61.22 1009.51 59.39 Q 1009.51 57.59 1010.44 56.59 Q 1011.37 55.59 1013.06 55.59 Q 1014.16 55.59 1015.35 55.92 L 1015.35 56.87 Q 1013.86 56.36 1013.06 56.36 Q 1011.89 56.36 1011.24 57.16 Q 1010.6 57.95 1010.6 59.4 Q 1010.6 60.83 1011.29 61.62 Q 1011.98 62.41 1013.23 62.41 Q 1013.75 62.41 1014.34 62.23 L 1014.34 59.88 L 1015.36 59.88 M 1015.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1019.93 63 L 1019.93 55.77 L 1023.97 55.77 L 1023.97 56.54 L 1020.96 56.54 L 1020.96 58.86 L 1023.48 58.86 L 1023.48 59.62 L 1020.96 59.62 L 1020.96 62.23 L 1024.18 62.23 L 1024.18 63 M 1019.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 63 L 1027.18 55.77 L 1028.2 55.77 L 1030.44 61.69 L 1032.6 55.77 L 1033.49 55.77 L 1030.87 63 M 1029.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 63 L 1036.93 55.77 L 1039.33 55.77 Q 1040.41 55.77 1041.07 56.01 Q 1041.73 56.25 1042.22 56.82 Q 1042.98 57.73 1042.98 59.22 Q 1042.98 61.02 1042.03 62.01 Q 1041.08 63 1039.35 63 M 1036.93 63 M 1037.96 62.23 L 1039.27 62.23 Q 1040.68 62.23 1041.26 61.48 Q 1041.89 60.67 1041.89 59.31 Q 1041.89 58.04 1041.27 57.31 Q 1040.9 56.87 1040.38 56.7 Q 1039.85 56.54 1038.8 56.54 L 1037.96 56.54 M 1037.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 64.45 Q 1049.64 63.89 1048.49 63.13 Q 1048.03 63.18 1047.78 63.18 Q 1046.33 63.18 1045.42 62.13 Q 1044.51 61.07 1044.51 59.39 Q 1044.51 57.66 1045.43 56.63 Q 1046.35 55.59 1047.89 55.59 Q 1049.43 55.59 1050.35 56.63 Q 1051.27 57.66 1051.27 59.4 Q 1051.27 61.89 1049.42 62.85 Q 1050.66 63.4 1052 63.63 M 1051.35 64.45 M 1047.86 62.41 Q 1048.97 62.41 1049.57 61.62 Q 1050.18 60.82 1050.18 59.37 Q 1050.18 57.96 1049.57 57.16 Q 1048.97 56.36 1047.89 56.36 Q 1046.81 56.36 1046.2 57.16 Q 1045.6 57.96 1045.6 59.38 Q 1045.6 60.79 1046.2 61.6 Q 1046.8 62.41 1047.86 62.41 M 1047.86 62.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 63.18 Q 1056.62 63.18 1055.49 62.86 L 1055.49 61.85 Q 1056.71 62.41 1057.5 62.41 Q 1058.1 62.41 1058.47 62.1 Q 1058.84 61.78 1058.84 61.26 Q 1058.84 60.84 1058.6 60.54 Q 1058.35 60.24 1057.71 59.88 L 1057.21 59.59 Q 1056.28 59.06 1055.91 58.59 Q 1055.53 58.13 1055.53 57.51 Q 1055.53 56.67 1056.13 56.13 Q 1056.74 55.59 1057.68 55.59 Q 1058.51 55.59 1059.44 55.87 L 1059.44 56.81 Q 1058.3 56.36 1057.73 56.36 Q 1057.2 56.36 1056.86 56.64 Q 1056.51 56.93 1056.51 57.36 Q 1056.51 57.72 1056.76 58 Q 1057.02 58.27 1057.69 58.66 L 1058.21 58.95 Q 1059.15 59.48 1059.52 59.96 Q 1059.89 60.43 1059.89 61.1 Q 1059.89 62.04 1059.19 62.61 Q 1058.5 63.18 1057.35 63.18 M 1057.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 63 L 1063.93 55.77 L 1066.33 55.77 Q 1067.41 55.77 1068.07 56.01 Q 1068.73 56.25 1069.22 56.82 Q 1069.98 57.73 1069.98 59.22 Q 1069.98 61.02 1069.03 62.01 Q 1068.08 63 1066.35 63 M 1063.93 63 M 1064.96 62.23 L 1066.27 62.23 Q 1067.68 62.23 1068.26 61.48 Q 1068.89 60.67 1068.89 59.31 Q 1068.89 58.04 1068.27 57.31 Q 1067.9 56.87 1067.38 56.7 Q 1066.85 56.54 1065.8 56.54 L 1064.96 56.54 M 1064.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 62.8 Q 1077.05 63.18 1076.07 63.18 Q 1074.35 63.18 1073.43 62.2 Q 1072.51 61.22 1072.51 59.39 Q 1072.51 57.59 1073.44 56.59 Q 1074.37 55.59 1076.06 55.59 Q 1077.16 55.59 1078.35 55.92 L 1078.35 56.87 Q 1076.86 56.36 1076.06 56.36 Q 1074.89 56.36 1074.24 57.16 Q 1073.6 57.95 1073.6 59.4 Q 1073.6 60.83 1074.29 61.62 Q 1074.98 62.41 1076.23 62.41 Q 1076.75 62.41 1077.34 62.23 L 1077.34 59.88 L 1078.36 59.88 M 1078.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 63.18 Q 1083.62 63.18 1082.49 62.86 L 1082.49 61.85 Q 1083.71 62.41 1084.5 62.41 Q 1085.1 62.41 1085.47 62.1 Q 1085.84 61.78 1085.84 61.26 Q 1085.84 60.84 1085.6 60.54 Q 1085.35 60.24 1084.71 59.88 L 1084.21 59.59 Q 1083.28 59.06 1082.91 58.59 Q 1082.53 58.13 1082.53 57.51 Q 1082.53 56.67 1083.13 56.13 Q 1083.74 55.59 1084.68 55.59 Q 1085.51 55.59 1086.44 55.87 L 1086.44 56.81 Q 1085.3 56.36 1084.73 56.36 Q 1084.2 56.36 1083.86 56.64 Q 1083.51 56.93 1083.51 57.36 Q 1083.51 57.72 1083.76 58 Q 1084.02 58.27 1084.69 58.66 L 1085.21 58.95 Q 1086.15 59.48 1086.52 59.96 Q 1086.89 60.43 1086.89 61.1 Q 1086.89 62.04 1086.19 62.61 Q 1085.5 63.18 1084.35 63.18 M 1084.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 63 L 1091.93 55.77 L 1095.97 55.77 L 1095.97 56.54 L 1092.96 56.54 L 1092.96 58.96 L 1095.49 58.96 L 1095.49 59.72 L 1092.96 59.72 L 1092.96 63 M 1091.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 63 L 1100.93 55.77 L 1101.96 55.77 L 1101.96 62.23 L 1105.21 62.23 L 1105.21 63 M 1100.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 63 L 1108.93 55.77 L 1111.33 55.77 Q 1112.41 55.77 1113.07 56.01 Q 1113.73 56.25 1114.22 56.82 Q 1114.98 57.73 1114.98 59.22 Q 1114.98 61.02 1114.03 62.01 Q 1113.08 63 1111.35 63 M 1108.93 63 M 1109.96 62.23 L 1111.27 62.23 Q 1112.68 62.23 1113.26 61.48 Q 1113.89 60.67 1113.89 59.31 Q 1113.89 58.04 1113.27 57.31 Q 1112.9 56.87 1112.38 56.7 Q 1111.85 56.54 1110.8 56.54 L 1109.96 56.54 M 1109.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 63 L 1117.93 55.77 L 1120.33 55.77 Q 1121.41 55.77 1122.07 56.01 Q 1122.73 56.25 1123.22 56.82 Q 1123.98 57.73 1123.98 59.22 Q 1123.98 61.02 1123.03 62.01 Q 1122.08 63 1120.35 63 M 1117.93 63 M 1118.96 62.23 L 1120.27 62.23 Q 1121.68 62.23 1122.26 61.48 Q 1122.89 60.67 1122.89 59.31 Q 1122.89 58.04 1122.27 57.31 Q 1121.9 56.87 1121.38 56.7 Q 1120.85 56.54 1119.8 56.54 L 1118.96 56.54 M 1118.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1127.93 63 L 1127.93 55.77 L 1131.97 55.77 L 1131.97 56.54 L 1128.96 56.54 L 1128.96 58.86 L 1131.48 58.86 L 1131.48 59.62 L 1128.96 59.62 L 1128.96 62.23 L 1132.18 62.23 L 1132.18 63 M 1127.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 64.45 Q 1139.64 63.89 1138.49 63.13 Q 1138.03 63.18 1137.78 63.18 Q 1136.33 63.18 1135.42 62.13 Q 1134.51 61.07 1134.51 59.39 Q 1134.51 57.66 1135.43 56.63 Q 1136.35 55.59 1137.89 55.59 Q 1139.43 55.59 1140.35 56.63 Q 1141.27 57.66 1141.27 59.4 Q 1141.27 61.89 1139.42 62.85 Q 1140.66 63.4 1142 63.63 M 1141.35 64.45 M 1137.86 62.41 Q 1138.97 62.41 1139.57 61.62 Q 1140.18 60.82 1140.18 59.37 Q 1140.18 57.96 1139.57 57.16 Q 1138.97 56.36 1137.89 56.36 Q 1136.81 56.36 1136.2 57.16 Q 1135.6 57.96 1135.6 59.38 Q 1135.6 60.79 1136.2 61.6 Q 1136.8 62.41 1137.86 62.41 M 1137.86 62.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 63 L 1146.93 55.77 L 1147.95 55.77 L 1147.95 63 M 1146.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1154.93 63 L 1154.93 55.77 L 1158.97 55.77 L 1158.97 56.54 L 1155.96 56.54 L 1155.96 58.86 L 1158.48 58.86 L 1158.48 59.62 L 1155.96 59.62 L 1155.96 62.23 L 1159.18 62.23 L 1159.18 63 M 1154.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1166.59 60.24 L 1165.36 57.12 L 1164.13 60.24 M 1166.59 60.24 M 1167.68 63 L 1166.89 61 L 1163.83 61 L 1163.04 63 L 1162.08 63 L 1164.95 55.77 L 1165.96 55.77 L 1168.79 63 M 1167.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 62.8 Q 1176.05 63.18 1175.07 63.18 Q 1173.35 63.18 1172.43 62.2 Q 1171.51 61.22 1171.51 59.39 Q 1171.51 57.59 1172.44 56.59 Q 1173.37 55.59 1175.06 55.59 Q 1176.16 55.59 1177.35 55.92 L 1177.35 56.87 Q 1175.86 56.36 1175.06 56.36 Q 1173.89 56.36 1173.24 57.16 Q 1172.6 57.95 1172.6 59.4 Q 1172.6 60.83 1173.29 61.62 Q 1173.98 62.41 1175.23 62.41 Q 1175.75 62.41 1176.34 62.23 L 1176.34 59.88 L 1177.36 59.88 M 1177.36 62.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1181.93 63 L 1181.93 55.77 L 1185.97 55.77 L 1185.97 56.54 L 1182.96 56.54 L 1182.96 58.96 L 1185.49 58.96 L 1185.49 59.72 L 1182.96 59.72 L 1182.96 63 M 1181.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 63 L 1189.18 55.77 L 1190.2 55.77 L 1192.44 61.69 L 1194.6 55.77 L 1195.49 55.77 L 1192.87 63 M 1191.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 63 L 1199.93 55.77 L 1200.96 55.77 L 1200.96 62.23 L 1204.21 62.23 L 1204.21 63 M 1199.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 63 L 1209.65 56.54 L 1207.09 56.54 L 1207.09 55.77 L 1213.24 55.77 L 1213.24 56.54 L 1210.68 56.54 L 1210.68 63 M 1209.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 63.18 Q 1218.34 63.18 1217.43 62.19 Q 1216.51 61.2 1216.51 59.39 Q 1216.51 57.58 1217.44 56.59 Q 1218.38 55.59 1220.08 55.59 Q 1221.05 55.59 1222.35 55.91 L 1222.35 56.87 Q 1220.87 56.36 1220.06 56.36 Q 1218.89 56.36 1218.24 57.16 Q 1217.6 57.95 1217.6 59.4 Q 1217.6 60.78 1218.29 61.58 Q 1218.97 62.38 1220.17 62.38 Q 1221.19 62.38 1222.36 61.75 L 1222.36 62.63 Q 1221.29 63.18 1220.03 63.18 M 1220.03 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 63 L 1225.18 55.77 L 1226.2 55.77 L 1228.44 61.69 L 1230.6 55.77 L 1231.49 55.77 L 1228.87 63 M 1227.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 60.24 L 1237.36 57.12 L 1236.13 60.24 M 1238.59 60.24 M 1239.68 63 L 1238.89 61 L 1235.83 61 L 1235.04 63 L 1234.08 63 L 1236.95 55.77 L 1237.96 55.77 L 1240.79 63 M 1239.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 63 L 1245.5 59.98 L 1243.08 55.77 L 1244.25 55.77 L 1246.13 59.04 L 1248.15 55.77 L 1249.1 55.77 L 1246.52 59.96 L 1246.52 63 M 1245.5 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 63 L 1252.93 55.77 L 1254.9 55.77 Q 1256.21 55.77 1256.78 56.22 Q 1257.35 56.66 1257.35 57.67 Q 1257.35 58.82 1256.57 59.47 Q 1255.79 60.13 1254.4 60.13 L 1253.95 60.13 L 1253.95 63 M 1252.93 63 M 1253.95 59.35 L 1254.36 59.35 Q 1255.28 59.35 1255.77 58.93 Q 1256.27 58.51 1256.27 57.75 Q 1256.27 57.1 1255.88 56.82 Q 1255.49 56.54 1254.58 56.54 L 1253.95 56.54 M 1253.95 59.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 63 L 1263.65 56.54 L 1261.09 56.54 L 1261.09 55.77 L 1267.24 55.77 L 1267.24 56.54 L 1264.68 56.54 L 1264.68 63 M 1263.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 63.18 Q 1272.62 63.18 1271.49 62.86 L 1271.49 61.85 Q 1272.71 62.41 1273.5 62.41 Q 1274.1 62.41 1274.47 62.1 Q 1274.84 61.78 1274.84 61.26 Q 1274.84 60.84 1274.6 60.54 Q 1274.35 60.24 1273.71 59.88 L 1273.21 59.59 Q 1272.28 59.06 1271.91 58.59 Q 1271.53 58.13 1271.53 57.51 Q 1271.53 56.67 1272.13 56.13 Q 1272.74 55.59 1273.68 55.59 Q 1274.51 55.59 1275.44 55.87 L 1275.44 56.81 Q 1274.3 56.36 1273.73 56.36 Q 1273.2 56.36 1272.86 56.64 Q 1272.51 56.93 1272.51 57.36 Q 1272.51 57.72 1272.76 58 Q 1273.02 58.27 1273.69 58.66 L 1274.21 58.95 Q 1275.15 59.48 1275.52 59.96 Q 1275.89 60.43 1275.89 61.1 Q 1275.89 62.04 1275.19 62.61 Q 1274.5 63.18 1273.35 63.18 M 1273.35 63.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 63 L 1279.93 55.77 L 1282.33 55.77 Q 1283.41 55.77 1284.07 56.01 Q 1284.73 56.25 1285.22 56.82 Q 1285.98 57.73 1285.98 59.22 Q 1285.98 61.02 1285.03 62.01 Q 1284.08 63 1282.35 63 M 1279.93 63 M 1280.96 62.23 L 1282.27 62.23 Q 1283.68 62.23 1284.26 61.48 Q 1284.89 60.67 1284.89 59.31 Q 1284.89 58.04 1284.27 57.31 Q 1283.9 56.87 1283.38 56.7 Q 1282.85 56.54 1281.8 56.54 L 1280.96 56.54 M 1280.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 63 L 1288.18 55.77 L 1289.2 55.77 L 1291.44 61.69 L 1293.6 55.77 L 1294.49 55.77 L 1291.87 63 M 1290.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.91 63 L 1297.18 55.77 L 1298.2 55.77 L 1300.44 61.69 L 1302.6 55.77 L 1303.49 55.77 L 1300.87 63 M 1299.91 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 63 L 1308.93 55.77 L 1309.95 55.77 L 1309.95 63 M 1308.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 63 L 1316.93 55.77 L 1320.97 55.77 L 1320.97 56.54 L 1317.96 56.54 L 1317.96 58.86 L 1320.48 58.86 L 1320.48 59.62 L 1317.96 59.62 L 1317.96 62.23 L 1321.18 62.23 L 1321.18 63 M 1316.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 63 L 1326.65 56.54 L 1324.09 56.54 L 1324.09 55.77 L 1330.24 55.77 L 1330.24 56.54 L 1327.68 56.54 L 1327.68 63 M 1326.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 63 L 1333.93 55.77 L 1334.96 55.77 L 1334.96 58.82 L 1338.4 58.82 L 1338.4 55.77 L 1339.42 55.77 L 1339.42 63 L 1338.4 63 L 1338.4 59.59 L 1334.96 59.59 L 1334.96 63 M 1333.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 63 L 1342.93 55.77 L 1343.89 55.77 L 1343.89 59.33 L 1346.82 55.77 L 1347.85 55.77 L 1345.02 59.22 L 1348.35 63 L 1347.05 63 L 1343.89 59.34 L 1343.89 63 M 1342.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 63 L 1352.93 55.77 L 1356.97 55.77 L 1356.97 56.54 L 1353.96 56.54 L 1353.96 58.86 L 1356.48 58.86 L 1356.48 59.62 L 1353.96 59.62 L 1353.96 62.23 L 1357.18 62.23 L 1357.18 63 M 1352.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 63 L 1361.93 55.77 L 1365.97 55.77 L 1365.97 56.54 L 1362.96 56.54 L 1362.96 58.86 L 1365.48 58.86 L 1365.48 59.62 L 1362.96 59.62 L 1362.96 62.23 L 1366.18 62.23 L 1366.18 63 M 1361.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1369.93 63 L 1369.93 55.77 L 1372.33 55.77 Q 1373.41 55.77 1374.07 56.01 Q 1374.73 56.25 1375.22 56.82 Q 1375.98 57.73 1375.98 59.22 Q 1375.98 61.02 1375.03 62.01 Q 1374.08 63 1372.35 63 M 1369.93 63 M 1370.96 62.23 L 1372.27 62.23 Q 1373.68 62.23 1374.26 61.48 Q 1374.89 60.67 1374.89 59.31 Q 1374.89 58.04 1374.27 57.31 Q 1373.9 56.87 1373.38 56.7 Q 1372.85 56.54 1371.8 56.54 L 1370.96 56.54 M 1370.96 62.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 63 L 1379.93 55.77 L 1380.96 55.77 L 1380.96 62.23 L 1384.21 62.23 L 1384.21 63 M 1379.93 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 63 L 1389.65 56.54 L 1387.09 56.54 L 1387.09 55.77 L 1393.24 55.77 L 1393.24 56.54 L 1390.68 56.54 L 1390.68 63 M 1389.65 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1400.59 60.24 L 1399.36 57.12 L 1398.13 60.24 M 1400.59 60.24 M 1401.68 63 L 1400.89 61 L 1397.83 61 L 1397.04 63 L 1396.08 63 L 1398.95 55.77 L 1399.96 55.77 L 1402.79 63 M 1401.68 63"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 60.47 L 1405.72 59.75 L 1410.06 59.75 L 1410.06 60.47 M 1405.72 60.47"/></g><rect x="0" y="65" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="65" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="65" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="65" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="65" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="65" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="65" width="18" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="65" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="65" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="65" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="65" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="65" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="65" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="65" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="65" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="65" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="65" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="65" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="65" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="65" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="65" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="65" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="65" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="65" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="65" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="65" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="65" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1053" y="65" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="65" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="65" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="65" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="65" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="65" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="65" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 76 L 0.93 68.77 L 2.35 68.77 L 4.36 74.36 L 6.42 68.77 L 7.69 68.77 L 7.69 76 L 6.73 76 L 6.73 70.12 L 4.74 75.52 L 3.75 75.52 L 1.81 70.11 L 1.81 76 M 0.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 73.24 L 13.36 70.12 L 12.13 73.24 M 14.59 73.24 M 15.68 76 L 14.89 74 L 11.83 74 L 11.04 76 L 10.08 76 L 12.95 68.77 L 13.96 68.77 L 16.79 76 M 15.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 21.65 76 L 21.65 69.54 L 19.09 69.54 L 19.09 68.77 L 25.24 68.77 L 25.24 69.54 L 22.68 69.54 L 22.68 76 M 21.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 76 L 30.65 69.54 L 28.09 69.54 L 28.09 68.77 L 34.24 68.77 L 34.24 69.54 L 31.68 69.54 L 31.68 76 M 30.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 73.47 L 37.72 72.75 L 42.06 72.75 L 42.06 73.47 M 37.72 73.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 73.47 L 46.72 72.75 L 51.06 72.75 L 51.06 73.47 M 46.72 73.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 73.47 L 55.72 72.75 L 60.06 72.75 L 60.06 73.47 M 55.72 73.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.93 76 L 64.93 68.77 L 66.9 68.77 Q 68.21 68.77 68.78 69.22 Q 69.35 69.66 69.35 70.67 Q 69.35 71.82 68.57 72.47 Q 67.79 73.13 66.4 73.13 L 65.95 73.13 L 65.95 76 M 64.93 76 M 65.95 72.35 L 66.36 72.35 Q 67.28 72.35 67.77 71.93 Q 68.27 71.51 68.27 70.75 Q 68.27 70.1 67.88 69.82 Q 67.49 69.54 66.58 69.54 L 65.95 69.54 M 65.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 77.59 73.24 L 76.36 70.12 L 75.13 73.24 M 77.59 73.24 M 78.68 76 L 77.89 74 L 74.83 74 L 74.04 76 L 73.08 76 L 75.95 68.77 L 76.96 68.77 L 79.79 76 M 78.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 83.93 76 L 83.93 68.77 L 84.96 68.77 L 84.96 75.23 L 88.21 75.23 L 88.21 76 M 83.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 93.5 76 L 93.5 72.98 L 91.08 68.77 L 92.25 68.77 L 94.13 72.04 L 96.15 68.77 L 97.1 68.77 L 94.52 72.96 L 94.52 76 M 93.5 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 106.36 75.8 Q 105.05 76.18 104.07 76.18 Q 102.35 76.18 101.43 75.2 Q 100.51 74.22 100.51 72.39 Q 100.51 70.59 101.44 69.59 Q 102.37 68.59 104.06 68.59 Q 105.16 68.59 106.35 68.92 L 106.35 69.87 Q 104.86 69.36 104.06 69.36 Q 102.89 69.36 102.24 70.16 Q 101.6 70.95 101.6 72.4 Q 101.6 73.83 102.29 74.62 Q 102.98 75.41 104.23 75.41 Q 104.75 75.41 105.34 75.23 L 105.34 72.88 L 106.36 72.88 M 106.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 111.65 76 L 111.65 69.54 L 109.09 69.54 L 109.09 68.77 L 115.24 68.77 L 115.24 69.54 L 112.68 69.54 L 112.68 76 M 111.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 122.59 73.24 L 121.36 70.12 L 120.13 73.24 M 122.59 73.24 M 123.68 76 L 122.89 74 L 119.83 74 L 119.04 76 L 118.08 76 L 120.95 68.77 L 121.96 68.77 L 124.79 76 M 123.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.91 76 L 127.18 68.77 L 128.2 68.77 L 130.44 74.69 L 132.6 68.77 L 133.49 68.77 L 130.87 76 M 129.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 76.18 Q 138.62 76.18 137.49 75.86 L 137.49 74.85 Q 138.71 75.41 139.5 75.41 Q 140.1 75.41 140.47 75.1 Q 140.84 74.78 140.84 74.26 Q 140.84 73.84 140.6 73.54 Q 140.35 73.24 139.71 72.88 L 139.21 72.59 Q 138.28 72.06 137.91 71.59 Q 137.53 71.13 137.53 70.51 Q 137.53 69.67 138.13 69.13 Q 138.74 68.59 139.68 68.59 Q 140.51 68.59 141.44 68.87 L 141.44 69.81 Q 140.3 69.36 139.73 69.36 Q 139.2 69.36 138.86 69.64 Q 138.51 69.93 138.51 70.36 Q 138.51 70.72 138.76 71 Q 139.02 71.27 139.69 71.66 L 140.21 71.95 Q 141.15 72.48 141.52 72.96 Q 141.89 73.43 141.89 74.1 Q 141.89 75.04 141.19 75.61 Q 140.5 76.18 139.35 76.18 M 139.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 76 L 147.65 69.54 L 145.09 69.54 L 145.09 68.77 L 151.24 68.77 L 151.24 69.54 L 148.68 69.54 L 148.68 76 M 147.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 76.18 Q 156.62 76.18 155.49 75.86 L 155.49 74.85 Q 156.71 75.41 157.5 75.41 Q 158.1 75.41 158.47 75.1 Q 158.84 74.78 158.84 74.26 Q 158.84 73.84 158.6 73.54 Q 158.35 73.24 157.71 72.88 L 157.21 72.59 Q 156.28 72.06 155.91 71.59 Q 155.53 71.13 155.53 70.51 Q 155.53 69.67 156.13 69.13 Q 156.74 68.59 157.68 68.59 Q 158.51 68.59 159.44 68.87 L 159.44 69.81 Q 158.3 69.36 157.73 69.36 Q 157.2 69.36 156.86 69.64 Q 156.51 69.93 156.51 70.36 Q 156.51 70.72 156.76 71 Q 157.02 71.27 157.69 71.66 L 158.21 71.95 Q 159.15 72.48 159.52 72.96 Q 159.89 73.43 159.89 74.1 Q 159.89 75.04 159.19 75.61 Q 158.5 76.18 157.35 76.18 M 157.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 76 L 164.93 68.77 L 168.97 68.77 L 168.97 69.54 L 165.96 69.54 L 165.96 71.96 L 168.49 71.96 L 168.49 72.72 L 165.96 72.72 L 165.96 76 M 164.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 171.93 76 L 171.93 68.77 L 173.35 68.77 L 175.36 74.36 L 177.42 68.77 L 178.69 68.77 L 178.69 76 L 177.73 76 L 177.73 70.12 L 175.74 75.52 L 174.75 75.52 L 172.81 70.11 L 172.81 76 M 171.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 76 L 181.93 68.77 L 184.12 68.77 Q 185.16 68.77 185.71 69.23 Q 186.27 69.69 186.27 70.57 Q 186.27 72.01 184.81 72.62 L 187.22 76 L 185.96 76 L 183.91 72.94 L 182.95 72.94 L 182.95 76 M 181.93 76 M 182.95 72.18 L 183.28 72.18 Q 185.21 72.18 185.21 70.66 Q 185.21 69.54 183.59 69.54 L 182.95 69.54 M 182.95 72.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 76 L 190.93 68.77 L 193.12 68.77 Q 194.16 68.77 194.71 69.23 Q 195.27 69.69 195.27 70.57 Q 195.27 72.01 193.81 72.62 L 196.22 76 L 194.96 76 L 192.91 72.94 L 191.95 72.94 L 191.95 76 M 190.93 76 M 191.95 72.18 L 192.28 72.18 Q 194.21 72.18 194.21 70.66 Q 194.21 69.54 192.59 69.54 L 191.95 69.54 M 191.95 72.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 205.35 77.45 Q 203.64 76.89 202.49 76.13 Q 202.03 76.18 201.78 76.18 Q 200.33 76.18 199.42 75.13 Q 198.51 74.07 198.51 72.39 Q 198.51 70.66 199.43 69.63 Q 200.35 68.59 201.89 68.59 Q 203.43 68.59 204.35 69.63 Q 205.27 70.66 205.27 72.4 Q 205.27 74.89 203.42 75.85 Q 204.66 76.4 206 76.63 M 205.35 77.45 M 201.86 75.41 Q 202.97 75.41 203.57 74.62 Q 204.18 73.82 204.18 72.37 Q 204.18 70.96 203.57 70.16 Q 202.97 69.36 201.89 69.36 Q 200.81 69.36 200.2 70.16 Q 199.6 70.96 199.6 72.38 Q 199.6 73.79 200.2 74.6 Q 200.8 75.41 201.86 75.41 M 201.86 75.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 76 L 208.93 68.77 L 210.9 68.77 Q 212.21 68.77 212.78 69.22 Q 213.35 69.66 213.35 70.67 Q 213.35 71.82 212.57 72.47 Q 211.79 73.13 210.4 73.13 L 209.95 73.13 L 209.95 76 M 208.93 76 M 209.95 72.35 L 210.36 72.35 Q 211.28 72.35 211.77 71.93 Q 212.27 71.51 212.27 70.75 Q 212.27 70.1 211.88 69.82 Q 211.49 69.54 210.58 69.54 L 209.95 69.54 M 209.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 219.91 76 L 217.18 68.77 L 218.2 68.77 L 220.44 74.69 L 222.6 68.77 L 223.49 68.77 L 220.87 76 M 219.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 76 L 226.93 68.77 L 228.9 68.77 Q 230.21 68.77 230.78 69.22 Q 231.35 69.66 231.35 70.67 Q 231.35 71.82 230.57 72.47 Q 229.79 73.13 228.4 73.13 L 227.95 73.13 L 227.95 76 M 226.93 76 M 227.95 72.35 L 228.36 72.35 Q 229.28 72.35 229.77 71.93 Q 230.27 71.51 230.27 70.75 Q 230.27 70.1 229.88 69.82 Q 229.49 69.54 228.58 69.54 L 227.95 69.54 M 227.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 234.93 76 L 234.93 68.77 L 236.35 68.77 L 238.36 74.36 L 240.42 68.77 L 241.69 68.77 L 241.69 76 L 240.73 76 L 240.73 70.12 L 238.74 75.52 L 237.75 75.52 L 235.81 70.11 L 235.81 76 M 234.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 76.18 Q 246.62 76.18 245.49 75.86 L 245.49 74.85 Q 246.71 75.41 247.5 75.41 Q 248.1 75.41 248.47 75.1 Q 248.84 74.78 248.84 74.26 Q 248.84 73.84 248.6 73.54 Q 248.35 73.24 247.71 72.88 L 247.21 72.59 Q 246.28 72.06 245.91 71.59 Q 245.53 71.13 245.53 70.51 Q 245.53 69.67 246.13 69.13 Q 246.74 68.59 247.68 68.59 Q 248.51 68.59 249.44 68.87 L 249.44 69.81 Q 248.3 69.36 247.73 69.36 Q 247.2 69.36 246.86 69.64 Q 246.51 69.93 246.51 70.36 Q 246.51 70.72 246.76 71 Q 247.02 71.27 247.69 71.66 L 248.21 71.95 Q 249.15 72.48 249.52 72.96 Q 249.89 73.43 249.89 74.1 Q 249.89 75.04 249.19 75.61 Q 248.5 76.18 247.35 76.18 M 247.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 255.91 76 L 253.18 68.77 L 254.2 68.77 L 256.44 74.69 L 258.6 68.77 L 259.49 68.77 L 256.87 76 M 255.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 73.47 L 262.72 72.75 L 267.06 72.75 L 267.06 73.47 M 262.72 73.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 275.59 73.24 L 274.36 70.12 L 273.13 73.24 M 275.59 73.24 M 276.68 76 L 275.89 74 L 272.83 74 L 272.04 76 L 271.08 76 L 273.95 68.77 L 274.96 68.77 L 277.79 76 M 276.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 282.65 76 L 282.65 69.54 L 280.09 69.54 L 280.09 68.77 L 286.24 68.77 L 286.24 69.54 L 283.68 69.54 L 283.68 76 M 282.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 291.65 76 L 291.65 69.54 L 289.09 69.54 L 289.09 68.77 L 295.24 68.77 L 295.24 69.54 L 292.68 69.54 L 292.68 76 M 291.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 300.65 76 L 300.65 69.54 L 298.09 69.54 L 298.09 68.77 L 304.24 68.77 L 304.24 69.54 L 301.68 69.54 L 301.68 76 M 300.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 309.65 76 L 309.65 69.54 L 307.09 69.54 L 307.09 68.77 L 313.24 68.77 L 313.24 69.54 L 310.68 69.54 L 310.68 76 M 309.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 318.65 76 L 318.65 69.54 L 316.09 69.54 L 316.09 68.77 L 322.24 68.77 L 322.24 69.54 L 319.68 69.54 L 319.68 76 M 318.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 325.93 76 L 325.93 68.77 L 326.89 68.77 L 326.89 72.33 L 329.82 68.77 L 330.85 68.77 L 328.02 72.22 L 331.35 76 L 330.05 76 L 326.89 72.34 L 326.89 76 M 325.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 338.59 73.24 L 337.36 70.12 L 336.13 73.24 M 338.59 73.24 M 339.68 76 L 338.89 74 L 335.83 74 L 335.04 76 L 334.08 76 L 336.95 68.77 L 337.96 68.77 L 340.79 76 M 339.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 344.93 76 L 344.93 68.77 L 348.97 68.77 L 348.97 69.54 L 345.96 69.54 L 345.96 71.96 L 348.49 71.96 L 348.49 72.72 L 345.96 72.72 L 345.96 76 M 344.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.93 76 L 352.93 68.77 L 354.9 68.77 Q 356.21 68.77 356.78 69.22 Q 357.35 69.66 357.35 70.67 Q 357.35 71.82 356.57 72.47 Q 355.79 73.13 354.4 73.13 L 353.95 73.13 L 353.95 76 M 352.93 76 M 353.95 72.35 L 354.36 72.35 Q 355.28 72.35 355.77 71.93 Q 356.27 71.51 356.27 70.75 Q 356.27 70.1 355.88 69.82 Q 355.49 69.54 354.58 69.54 L 353.95 69.54 M 353.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 364.35 76.18 Q 363.62 76.18 362.49 75.86 L 362.49 74.85 Q 363.71 75.41 364.5 75.41 Q 365.1 75.41 365.47 75.1 Q 365.84 74.78 365.84 74.26 Q 365.84 73.84 365.6 73.54 Q 365.35 73.24 364.71 72.88 L 364.21 72.59 Q 363.28 72.06 362.91 71.59 Q 362.53 71.13 362.53 70.51 Q 362.53 69.67 363.13 69.13 Q 363.74 68.59 364.68 68.59 Q 365.51 68.59 366.44 68.87 L 366.44 69.81 Q 365.3 69.36 364.73 69.36 Q 364.2 69.36 363.86 69.64 Q 363.51 69.93 363.51 70.36 Q 363.51 70.72 363.76 71 Q 364.02 71.27 364.69 71.66 L 365.21 71.95 Q 366.15 72.48 366.52 72.96 Q 366.89 73.43 366.89 74.1 Q 366.89 75.04 366.19 75.61 Q 365.5 76.18 364.35 76.18 M 364.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 376.36 75.8 Q 375.05 76.18 374.07 76.18 Q 372.35 76.18 371.43 75.2 Q 370.51 74.22 370.51 72.39 Q 370.51 70.59 371.44 69.59 Q 372.37 68.59 374.06 68.59 Q 375.16 68.59 376.35 68.92 L 376.35 69.87 Q 374.86 69.36 374.06 69.36 Q 372.89 69.36 372.24 70.16 Q 371.6 70.95 371.6 72.4 Q 371.6 73.83 372.29 74.62 Q 372.98 75.41 374.23 75.41 Q 374.75 75.41 375.34 75.23 L 375.34 72.88 L 376.36 72.88 M 376.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 76 L 380.93 68.77 L 384.97 68.77 L 384.97 69.54 L 381.96 69.54 L 381.96 71.96 L 384.49 71.96 L 384.49 72.72 L 381.96 72.72 L 381.96 76 M 380.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 75.8 Q 393.05 76.18 392.07 76.18 Q 390.35 76.18 389.43 75.2 Q 388.51 74.22 388.51 72.39 Q 388.51 70.59 389.44 69.59 Q 390.37 68.59 392.06 68.59 Q 393.16 68.59 394.35 68.92 L 394.35 69.87 Q 392.86 69.36 392.06 69.36 Q 390.89 69.36 390.24 70.16 Q 389.6 70.95 389.6 72.4 Q 389.6 73.83 390.29 74.62 Q 390.98 75.41 392.23 75.41 Q 392.75 75.41 393.34 75.23 L 393.34 72.88 L 394.36 72.88 M 394.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 76 L 398.93 68.77 L 399.96 68.77 L 399.96 75.23 L 403.21 75.23 L 403.21 76 M 398.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 76 L 406.93 68.77 L 407.89 68.77 L 407.89 72.33 L 410.82 68.77 L 411.85 68.77 L 409.02 72.22 L 412.35 76 L 411.05 76 L 407.89 72.34 L 407.89 76 M 406.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 76.18 Q 417.62 76.18 416.49 75.86 L 416.49 74.85 Q 417.71 75.41 418.5 75.41 Q 419.1 75.41 419.47 75.1 Q 419.84 74.78 419.84 74.26 Q 419.84 73.84 419.6 73.54 Q 419.35 73.24 418.71 72.88 L 418.21 72.59 Q 417.28 72.06 416.91 71.59 Q 416.53 71.13 416.53 70.51 Q 416.53 69.67 417.13 69.13 Q 417.74 68.59 418.68 68.59 Q 419.51 68.59 420.44 68.87 L 420.44 69.81 Q 419.3 69.36 418.73 69.36 Q 418.2 69.36 417.86 69.64 Q 417.51 69.93 417.51 70.36 Q 417.51 70.72 417.76 71 Q 418.02 71.27 418.69 71.66 L 419.21 71.95 Q 420.15 72.48 420.52 72.96 Q 420.89 73.43 420.89 74.1 Q 420.89 75.04 420.19 75.61 Q 419.5 76.18 418.35 76.18 M 418.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 426.91 76 L 424.18 68.77 L 425.2 68.77 L 427.44 74.69 L 429.6 68.77 L 430.49 68.77 L 427.87 76 M 426.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 436.35 76.18 Q 435.62 76.18 434.49 75.86 L 434.49 74.85 Q 435.71 75.41 436.5 75.41 Q 437.1 75.41 437.47 75.1 Q 437.84 74.78 437.84 74.26 Q 437.84 73.84 437.6 73.54 Q 437.35 73.24 436.71 72.88 L 436.21 72.59 Q 435.28 72.06 434.91 71.59 Q 434.53 71.13 434.53 70.51 Q 434.53 69.67 435.13 69.13 Q 435.74 68.59 436.68 68.59 Q 437.51 68.59 438.44 68.87 L 438.44 69.81 Q 437.3 69.36 436.73 69.36 Q 436.2 69.36 435.86 69.64 Q 435.51 69.93 435.51 70.36 Q 435.51 70.72 435.76 71 Q 436.02 71.27 436.69 71.66 L 437.21 71.95 Q 438.15 72.48 438.52 72.96 Q 438.89 73.43 438.89 74.1 Q 438.89 75.04 438.19 75.61 Q 437.5 76.18 436.35 76.18 M 436.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 444.65 76 L 444.65 69.54 L 442.09 69.54 L 442.09 68.77 L 448.24 68.77 L 448.24 69.54 L 445.68 69.54 L 445.68 76 M 444.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.93 76 L 451.93 68.77 L 452.89 68.77 L 452.89 72.33 L 455.82 68.77 L 456.85 68.77 L 454.02 72.22 L 457.35 76 L 456.05 76 L 452.89 72.34 L 452.89 76 M 451.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 76 L 460.93 68.77 L 463.12 68.77 Q 464.16 68.77 464.71 69.23 Q 465.27 69.69 465.27 70.57 Q 465.27 72.01 463.81 72.62 L 466.22 76 L 464.96 76 L 462.91 72.94 L 461.95 72.94 L 461.95 76 M 460.93 76 M 461.95 72.18 L 462.28 72.18 Q 464.21 72.18 464.21 70.66 Q 464.21 69.54 462.59 69.54 L 461.95 69.54 M 461.95 72.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 475.36 75.8 Q 474.05 76.18 473.07 76.18 Q 471.35 76.18 470.43 75.2 Q 469.51 74.22 469.51 72.39 Q 469.51 70.59 470.44 69.59 Q 471.37 68.59 473.06 68.59 Q 474.16 68.59 475.35 68.92 L 475.35 69.87 Q 473.86 69.36 473.06 69.36 Q 471.89 69.36 471.24 70.16 Q 470.6 70.95 470.6 72.4 Q 470.6 73.83 471.29 74.62 Q 471.98 75.41 473.23 75.41 Q 473.75 75.41 474.34 75.23 L 474.34 72.88 L 475.36 72.88 M 475.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 478.93 76 L 478.93 68.77 L 481.33 68.77 Q 482.41 68.77 483.07 69.01 Q 483.73 69.25 484.22 69.82 Q 484.98 70.73 484.98 72.22 Q 484.98 74.02 484.03 75.01 Q 483.08 76 481.35 76 M 478.93 76 M 479.96 75.23 L 481.27 75.23 Q 482.68 75.23 483.26 74.48 Q 483.89 73.67 483.89 72.31 Q 483.89 71.04 483.27 70.31 Q 482.9 69.87 482.38 69.7 Q 481.85 69.54 480.8 69.54 L 479.96 69.54 M 479.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 488.93 76 L 488.93 68.77 L 489.96 68.77 L 489.96 75.23 L 493.21 75.23 L 493.21 76 M 488.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 500.59 73.24 L 499.36 70.12 L 498.13 73.24 M 500.59 73.24 M 501.68 76 L 500.89 74 L 497.83 74 L 497.04 76 L 496.08 76 L 498.95 68.77 L 499.96 68.77 L 502.79 76 M 501.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.91 76 L 505.18 68.77 L 506.2 68.77 L 508.44 74.69 L 510.6 68.77 L 511.49 68.77 L 508.87 76 M 507.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 73.24 L 517.36 70.12 L 516.13 73.24 M 518.59 73.24 M 519.68 76 L 518.89 74 L 515.83 74 L 515.04 76 L 514.08 76 L 516.95 68.77 L 517.96 68.77 L 520.79 76 M 519.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 76 L 522.93 68.77 L 524.35 68.77 L 526.36 74.36 L 528.42 68.77 L 529.69 68.77 L 529.69 76 L 528.73 76 L 528.73 70.12 L 526.74 75.52 L 525.75 75.52 L 523.81 70.11 L 523.81 76 M 522.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 73.24 L 535.36 70.12 L 534.13 73.24 M 536.59 73.24 M 537.68 76 L 536.89 74 L 533.83 74 L 533.04 76 L 532.08 76 L 534.95 68.77 L 535.96 68.77 L 538.79 76 M 537.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 76 L 543.65 69.54 L 541.09 69.54 L 541.09 68.77 L 547.24 68.77 L 547.24 69.54 L 544.68 69.54 L 544.68 76 M 543.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 76 L 552.5 72.98 L 550.08 68.77 L 551.25 68.77 L 553.13 72.04 L 555.15 68.77 L 556.1 68.77 L 553.52 72.96 L 553.52 76 M 552.5 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 76 L 559.93 68.77 L 560.89 68.77 L 560.89 72.33 L 563.82 68.77 L 564.85 68.77 L 562.02 72.22 L 565.35 76 L 564.05 76 L 560.89 72.34 L 560.89 76 M 559.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 76 L 568.18 68.77 L 569.2 68.77 L 571.44 74.69 L 573.6 68.77 L 574.49 68.77 L 571.87 76 M 570.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 76 L 577.93 68.77 L 578.89 68.77 L 578.89 72.33 L 581.82 68.77 L 582.85 68.77 L 580.02 72.22 L 583.35 76 L 582.05 76 L 578.89 72.34 L 578.89 76 M 577.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 76 L 587.93 68.77 L 588.96 68.77 L 588.96 75.23 L 592.21 75.23 L 592.21 76 M 587.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 76 L 597.93 68.77 L 598.95 68.77 L 598.95 76 M 597.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 76 L 606.65 69.54 L 604.09 69.54 L 604.09 68.77 L 610.24 68.77 L 610.24 69.54 L 607.68 69.54 L 607.68 76 M 606.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 76 L 613.93 68.77 L 615.9 68.77 Q 617.21 68.77 617.78 69.22 Q 618.35 69.66 618.35 70.67 Q 618.35 71.82 617.57 72.47 Q 616.79 73.13 615.4 73.13 L 614.95 73.13 L 614.95 76 M 613.93 76 M 614.95 72.35 L 615.36 72.35 Q 616.28 72.35 616.77 71.93 Q 617.27 71.51 617.27 70.75 Q 617.27 70.1 616.88 69.82 Q 616.49 69.54 615.58 69.54 L 614.95 69.54 M 614.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 76 L 623.93 68.77 L 627.97 68.77 L 627.97 69.54 L 624.96 69.54 L 624.96 71.86 L 627.48 71.86 L 627.48 72.62 L 624.96 72.62 L 624.96 75.23 L 628.18 75.23 L 628.18 76 M 623.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 75.8 Q 636.05 76.18 635.07 76.18 Q 633.35 76.18 632.43 75.2 Q 631.51 74.22 631.51 72.39 Q 631.51 70.59 632.44 69.59 Q 633.37 68.59 635.06 68.59 Q 636.16 68.59 637.35 68.92 L 637.35 69.87 Q 635.86 69.36 635.06 69.36 Q 633.89 69.36 633.24 70.16 Q 632.6 70.95 632.6 72.4 Q 632.6 73.83 633.29 74.62 Q 633.98 75.41 635.23 75.41 Q 635.75 75.41 636.34 75.23 L 636.34 72.88 L 637.36 72.88 M 637.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 76 L 640.93 68.77 L 642.9 68.77 Q 644.21 68.77 644.78 69.22 Q 645.35 69.66 645.35 70.67 Q 645.35 71.82 644.57 72.47 Q 643.79 73.13 642.4 73.13 L 641.95 73.13 L 641.95 76 M 640.93 76 M 641.95 72.35 L 642.36 72.35 Q 643.28 72.35 643.77 71.93 Q 644.27 71.51 644.27 70.75 Q 644.27 70.1 643.88 69.82 Q 643.49 69.54 642.58 69.54 L 641.95 69.54 M 641.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 77.45 Q 653.64 76.89 652.49 76.13 Q 652.03 76.18 651.78 76.18 Q 650.33 76.18 649.42 75.13 Q 648.51 74.07 648.51 72.39 Q 648.51 70.66 649.43 69.63 Q 650.35 68.59 651.89 68.59 Q 653.43 68.59 654.35 69.63 Q 655.27 70.66 655.27 72.4 Q 655.27 74.89 653.42 75.85 Q 654.66 76.4 656 76.63 M 655.35 77.45 M 651.86 75.41 Q 652.97 75.41 653.57 74.62 Q 654.18 73.82 654.18 72.37 Q 654.18 70.96 653.57 70.16 Q 652.97 69.36 651.89 69.36 Q 650.81 69.36 650.2 70.16 Q 649.6 70.96 649.6 72.38 Q 649.6 73.79 650.2 74.6 Q 650.8 75.41 651.86 75.41 M 651.86 75.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 76 L 659.93 68.77 L 663.97 68.77 L 663.97 69.54 L 660.96 69.54 L 660.96 71.86 L 663.48 71.86 L 663.48 72.62 L 660.96 72.62 L 660.96 75.23 L 664.18 75.23 L 664.18 76 M 659.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 76 L 668.93 68.77 L 672.97 68.77 L 672.97 69.54 L 669.96 69.54 L 669.96 71.96 L 672.49 71.96 L 672.49 72.72 L 669.96 72.72 L 669.96 76 M 668.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 676.93 76 L 676.93 68.77 L 679.33 68.77 Q 680.41 68.77 681.07 69.01 Q 681.73 69.25 682.22 69.82 Q 682.98 70.73 682.98 72.22 Q 682.98 74.02 682.03 75.01 Q 681.08 76 679.35 76 M 676.93 76 M 677.96 75.23 L 679.27 75.23 Q 680.68 75.23 681.26 74.48 Q 681.89 73.67 681.89 72.31 Q 681.89 71.04 681.27 70.31 Q 680.9 69.87 680.38 69.7 Q 679.85 69.54 678.8 69.54 L 677.96 69.54 M 677.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 76.18 Q 687.34 76.18 686.43 75.19 Q 685.51 74.2 685.51 72.39 Q 685.51 70.58 686.44 69.59 Q 687.38 68.59 689.08 68.59 Q 690.05 68.59 691.35 68.91 L 691.35 69.87 Q 689.87 69.36 689.06 69.36 Q 687.89 69.36 687.24 70.16 Q 686.6 70.95 686.6 72.4 Q 686.6 73.78 687.29 74.58 Q 687.97 75.38 689.17 75.38 Q 690.19 75.38 691.36 74.75 L 691.36 75.63 Q 690.29 76.18 689.03 76.18 M 689.03 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 76 L 694.93 68.77 L 696.9 68.77 Q 698.21 68.77 698.78 69.22 Q 699.35 69.66 699.35 70.67 Q 699.35 71.82 698.57 72.47 Q 697.79 73.13 696.4 73.13 L 695.95 73.13 L 695.95 76 M 694.93 76 M 695.95 72.35 L 696.36 72.35 Q 697.28 72.35 697.77 71.93 Q 698.27 71.51 698.27 70.75 Q 698.27 70.1 697.88 69.82 Q 697.49 69.54 696.58 69.54 L 695.95 69.54 M 695.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 76 L 703.93 68.77 L 706.33 68.77 Q 707.41 68.77 708.07 69.01 Q 708.73 69.25 709.22 69.82 Q 709.98 70.73 709.98 72.22 Q 709.98 74.02 709.03 75.01 Q 708.08 76 706.35 76 M 703.93 76 M 704.96 75.23 L 706.27 75.23 Q 707.68 75.23 708.26 74.48 Q 708.89 73.67 708.89 72.31 Q 708.89 71.04 708.27 70.31 Q 707.9 69.87 707.38 69.7 Q 706.85 69.54 705.8 69.54 L 704.96 69.54 M 704.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 76 L 712.93 68.77 L 715.33 68.77 Q 716.41 68.77 717.07 69.01 Q 717.73 69.25 718.22 69.82 Q 718.98 70.73 718.98 72.22 Q 718.98 74.02 718.03 75.01 Q 717.08 76 715.35 76 M 712.93 76 M 713.96 75.23 L 715.27 75.23 Q 716.68 75.23 717.26 74.48 Q 717.89 73.67 717.89 72.31 Q 717.89 71.04 717.27 70.31 Q 716.9 69.87 716.38 69.7 Q 715.85 69.54 714.8 69.54 L 713.96 69.54 M 713.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 76 L 721.18 68.77 L 722.2 68.77 L 724.44 74.69 L 726.6 68.77 L 727.49 68.77 L 724.87 76 M 723.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 76 L 732.5 72.98 L 730.08 68.77 L 731.25 68.77 L 733.13 72.04 L 735.15 68.77 L 736.1 68.77 L 733.52 72.96 L 733.52 76 M 732.5 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 76 L 741.93 68.77 L 742.95 68.77 L 742.95 76 M 741.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 76 L 749.93 68.77 L 750.96 68.77 L 750.96 75.23 L 754.21 75.23 L 754.21 76 M 749.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 76 L 757.93 68.77 L 760.33 68.77 Q 761.41 68.77 762.07 69.01 Q 762.73 69.25 763.22 69.82 Q 763.98 70.73 763.98 72.22 Q 763.98 74.02 763.03 75.01 Q 762.08 76 760.35 76 M 757.93 76 M 758.96 75.23 L 760.27 75.23 Q 761.68 75.23 762.26 74.48 Q 762.89 73.67 762.89 72.31 Q 762.89 71.04 762.27 70.31 Q 761.9 69.87 761.38 69.7 Q 760.85 69.54 759.8 69.54 L 758.96 69.54 M 758.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 766.93 76 L 766.93 68.77 L 767.96 68.77 L 767.96 71.82 L 771.4 71.82 L 771.4 68.77 L 772.42 68.77 L 772.42 76 L 771.4 76 L 771.4 72.59 L 767.96 72.59 L 767.96 76 M 766.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 73.24 L 778.36 70.12 L 777.13 73.24 M 779.59 73.24 M 780.68 76 L 779.89 74 L 776.83 74 L 776.04 76 L 775.08 76 L 777.95 68.77 L 778.96 68.77 L 781.79 76 M 780.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 76 L 785.93 68.77 L 789.97 68.77 L 789.97 69.54 L 786.96 69.54 L 786.96 71.86 L 789.48 71.86 L 789.48 72.62 L 786.96 72.62 L 786.96 75.23 L 790.18 75.23 L 790.18 76 M 785.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 76 L 794.93 68.77 L 798.97 68.77 L 798.97 69.54 L 795.96 69.54 L 795.96 71.86 L 798.48 71.86 L 798.48 72.62 L 795.96 72.62 L 795.96 75.23 L 799.18 75.23 L 799.18 76 M 794.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 804.91 76 L 802.18 68.77 L 803.2 68.77 L 805.44 74.69 L 807.6 68.77 L 808.49 68.77 L 805.87 76 M 804.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 75.8 Q 816.05 76.18 815.07 76.18 Q 813.35 76.18 812.43 75.2 Q 811.51 74.22 811.51 72.39 Q 811.51 70.59 812.44 69.59 Q 813.37 68.59 815.06 68.59 Q 816.16 68.59 817.35 68.92 L 817.35 69.87 Q 815.86 69.36 815.06 69.36 Q 813.89 69.36 813.24 70.16 Q 812.6 70.95 812.6 72.4 Q 812.6 73.83 813.29 74.62 Q 813.98 75.41 815.23 75.41 Q 815.75 75.41 816.34 75.23 L 816.34 72.88 L 817.36 72.88 M 817.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 76 L 822.93 68.77 L 823.95 68.77 L 823.95 76 M 822.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 830.93 76 L 830.93 68.77 L 834.97 68.77 L 834.97 69.54 L 831.96 69.54 L 831.96 71.86 L 834.48 71.86 L 834.48 72.62 L 831.96 72.62 L 831.96 75.23 L 835.18 75.23 L 835.18 76 M 830.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 76 L 839.93 68.77 L 840.96 68.77 L 840.96 75.23 L 844.21 75.23 L 844.21 76 M 839.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 76 L 847.93 68.77 L 849.9 68.77 Q 851.21 68.77 851.78 69.22 Q 852.35 69.66 852.35 70.67 Q 852.35 71.82 851.57 72.47 Q 850.79 73.13 849.4 73.13 L 848.95 73.13 L 848.95 76 M 847.93 76 M 848.95 72.35 L 849.36 72.35 Q 850.28 72.35 850.77 71.93 Q 851.27 71.51 851.27 70.75 Q 851.27 70.1 850.88 69.82 Q 850.49 69.54 849.58 69.54 L 848.95 69.54 M 848.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 76 L 858.5 72.98 L 856.08 68.77 L 857.25 68.77 L 859.13 72.04 L 861.15 68.77 L 862.1 68.77 L 859.52 72.96 L 859.52 76 M 858.5 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 76.18 Q 867.62 76.18 866.49 75.86 L 866.49 74.85 Q 867.71 75.41 868.5 75.41 Q 869.1 75.41 869.47 75.1 Q 869.84 74.78 869.84 74.26 Q 869.84 73.84 869.6 73.54 Q 869.35 73.24 868.71 72.88 L 868.21 72.59 Q 867.28 72.06 866.91 71.59 Q 866.53 71.13 866.53 70.51 Q 866.53 69.67 867.13 69.13 Q 867.74 68.59 868.68 68.59 Q 869.51 68.59 870.44 68.87 L 870.44 69.81 Q 869.3 69.36 868.73 69.36 Q 868.2 69.36 867.86 69.64 Q 867.51 69.93 867.51 70.36 Q 867.51 70.72 867.76 71 Q 868.02 71.27 868.69 71.66 L 869.21 71.95 Q 870.15 72.48 870.52 72.96 Q 870.89 73.43 870.89 74.1 Q 870.89 75.04 870.19 75.61 Q 869.5 76.18 868.35 76.18 M 868.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 76.18 Q 876.34 76.18 875.43 75.19 Q 874.51 74.2 874.51 72.39 Q 874.51 70.58 875.44 69.59 Q 876.38 68.59 878.08 68.59 Q 879.05 68.59 880.35 68.91 L 880.35 69.87 Q 878.87 69.36 878.06 69.36 Q 876.89 69.36 876.24 70.16 Q 875.6 70.95 875.6 72.4 Q 875.6 73.78 876.29 74.58 Q 876.97 75.38 878.17 75.38 Q 879.19 75.38 880.36 74.75 L 880.36 75.63 Q 879.29 76.18 878.03 76.18 M 878.03 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 76 L 883.93 68.77 L 886.12 68.77 Q 887.16 68.77 887.71 69.23 Q 888.27 69.69 888.27 70.57 Q 888.27 72.01 886.81 72.62 L 889.22 76 L 887.96 76 L 885.91 72.94 L 884.95 72.94 L 884.95 76 M 883.93 76 M 884.95 72.18 L 885.28 72.18 Q 887.21 72.18 887.21 70.66 Q 887.21 69.54 885.59 69.54 L 884.95 69.54 M 884.95 72.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 73.24 L 895.36 70.12 L 894.13 73.24 M 896.59 73.24 M 897.68 76 L 896.89 74 L 893.83 74 L 893.04 76 L 892.08 76 L 894.95 68.77 L 895.96 68.77 L 898.79 76 M 897.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 75.8 Q 906.05 76.18 905.07 76.18 Q 903.35 76.18 902.43 75.2 Q 901.51 74.22 901.51 72.39 Q 901.51 70.59 902.44 69.59 Q 903.37 68.59 905.06 68.59 Q 906.16 68.59 907.35 68.92 L 907.35 69.87 Q 905.86 69.36 905.06 69.36 Q 903.89 69.36 903.24 70.16 Q 902.6 70.95 902.6 72.4 Q 902.6 73.83 903.29 74.62 Q 903.98 75.41 905.23 75.41 Q 905.75 75.41 906.34 75.23 L 906.34 72.88 L 907.36 72.88 M 907.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 76.18 Q 912.62 76.18 911.49 75.86 L 911.49 74.85 Q 912.71 75.41 913.5 75.41 Q 914.1 75.41 914.47 75.1 Q 914.84 74.78 914.84 74.26 Q 914.84 73.84 914.6 73.54 Q 914.35 73.24 913.71 72.88 L 913.21 72.59 Q 912.28 72.06 911.91 71.59 Q 911.53 71.13 911.53 70.51 Q 911.53 69.67 912.13 69.13 Q 912.74 68.59 913.68 68.59 Q 914.51 68.59 915.44 68.87 L 915.44 69.81 Q 914.3 69.36 913.73 69.36 Q 913.2 69.36 912.86 69.64 Q 912.51 69.93 912.51 70.36 Q 912.51 70.72 912.76 71 Q 913.02 71.27 913.69 71.66 L 914.21 71.95 Q 915.15 72.48 915.52 72.96 Q 915.89 73.43 915.89 74.1 Q 915.89 75.04 915.19 75.61 Q 914.5 76.18 913.35 76.18 M 913.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 76.18 Q 921.34 76.18 920.43 75.19 Q 919.51 74.2 919.51 72.39 Q 919.51 70.58 920.44 69.59 Q 921.38 68.59 923.08 68.59 Q 924.05 68.59 925.35 68.91 L 925.35 69.87 Q 923.87 69.36 923.06 69.36 Q 921.89 69.36 921.24 70.16 Q 920.6 70.95 920.6 72.4 Q 920.6 73.78 921.29 74.58 Q 921.97 75.38 923.17 75.38 Q 924.19 75.38 925.36 74.75 L 925.36 75.63 Q 924.29 76.18 923.03 76.18 M 923.03 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 76.18 Q 930.62 76.18 929.49 75.86 L 929.49 74.85 Q 930.71 75.41 931.5 75.41 Q 932.1 75.41 932.47 75.1 Q 932.84 74.78 932.84 74.26 Q 932.84 73.84 932.6 73.54 Q 932.35 73.24 931.71 72.88 L 931.21 72.59 Q 930.28 72.06 929.91 71.59 Q 929.53 71.13 929.53 70.51 Q 929.53 69.67 930.13 69.13 Q 930.74 68.59 931.68 68.59 Q 932.51 68.59 933.44 68.87 L 933.44 69.81 Q 932.3 69.36 931.73 69.36 Q 931.2 69.36 930.86 69.64 Q 930.51 69.93 930.51 70.36 Q 930.51 70.72 930.76 71 Q 931.02 71.27 931.69 71.66 L 932.21 71.95 Q 933.15 72.48 933.52 72.96 Q 933.89 73.43 933.89 74.1 Q 933.89 75.04 933.19 75.61 Q 932.5 76.18 931.35 76.18 M 931.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 76.18 Q 939.62 76.18 938.49 75.86 L 938.49 74.85 Q 939.71 75.41 940.5 75.41 Q 941.1 75.41 941.47 75.1 Q 941.84 74.78 941.84 74.26 Q 941.84 73.84 941.6 73.54 Q 941.35 73.24 940.71 72.88 L 940.21 72.59 Q 939.28 72.06 938.91 71.59 Q 938.53 71.13 938.53 70.51 Q 938.53 69.67 939.13 69.13 Q 939.74 68.59 940.68 68.59 Q 941.51 68.59 942.44 68.87 L 942.44 69.81 Q 941.3 69.36 940.73 69.36 Q 940.2 69.36 939.86 69.64 Q 939.51 69.93 939.51 70.36 Q 939.51 70.72 939.76 71 Q 940.02 71.27 940.69 71.66 L 941.21 71.95 Q 942.15 72.48 942.52 72.96 Q 942.89 73.43 942.89 74.1 Q 942.89 75.04 942.19 75.61 Q 941.5 76.18 940.35 76.18 M 940.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 76.18 Q 948.34 76.18 947.43 75.19 Q 946.51 74.2 946.51 72.39 Q 946.51 70.58 947.44 69.59 Q 948.38 68.59 950.08 68.59 Q 951.05 68.59 952.35 68.91 L 952.35 69.87 Q 950.87 69.36 950.06 69.36 Q 948.89 69.36 948.24 70.16 Q 947.6 70.95 947.6 72.4 Q 947.6 73.78 948.29 74.58 Q 948.97 75.38 950.17 75.38 Q 951.19 75.38 952.36 74.75 L 952.36 75.63 Q 951.29 76.18 950.03 76.18 M 950.03 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 73.24 L 958.36 70.12 L 957.13 73.24 M 959.59 73.24 M 960.68 76 L 959.89 74 L 956.83 74 L 956.04 76 L 955.08 76 L 957.95 68.77 L 958.96 68.77 L 961.79 76 M 960.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 75.8 Q 969.05 76.18 968.07 76.18 Q 966.35 76.18 965.43 75.2 Q 964.51 74.22 964.51 72.39 Q 964.51 70.59 965.44 69.59 Q 966.37 68.59 968.06 68.59 Q 969.16 68.59 970.35 68.92 L 970.35 69.87 Q 968.86 69.36 968.06 69.36 Q 966.89 69.36 966.24 70.16 Q 965.6 70.95 965.6 72.4 Q 965.6 73.83 966.29 74.62 Q 966.98 75.41 968.23 75.41 Q 968.75 75.41 969.34 75.23 L 969.34 72.88 L 970.36 72.88 M 970.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 76 L 973.93 68.77 L 974.89 68.77 L 974.89 72.33 L 977.82 68.77 L 978.85 68.77 L 976.02 72.22 L 979.35 76 L 978.05 76 L 974.89 72.34 L 974.89 76 M 973.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 76 L 982.18 68.77 L 983.2 68.77 L 985.44 74.69 L 987.6 68.77 L 988.49 68.77 L 985.87 76 M 984.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 76 L 991.18 68.77 L 992.2 68.77 L 994.44 74.69 L 996.6 68.77 L 997.49 68.77 L 994.87 76 M 993.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1000.93 76 L 1000.93 68.77 L 1001.94 68.77 L 1005.58 74.35 L 1005.58 68.77 L 1006.46 68.77 L 1006.46 76 L 1005.45 76 L 1001.81 70.42 L 1001.81 76 M 1000.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 75.8 Q 1014.05 76.18 1013.07 76.18 Q 1011.35 76.18 1010.43 75.2 Q 1009.51 74.22 1009.51 72.39 Q 1009.51 70.59 1010.44 69.59 Q 1011.37 68.59 1013.06 68.59 Q 1014.16 68.59 1015.35 68.92 L 1015.35 69.87 Q 1013.86 69.36 1013.06 69.36 Q 1011.89 69.36 1011.24 70.16 Q 1010.6 70.95 1010.6 72.4 Q 1010.6 73.83 1011.29 74.62 Q 1011.98 75.41 1013.23 75.41 Q 1013.75 75.41 1014.34 75.23 L 1014.34 72.88 L 1015.36 72.88 M 1015.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1018.93 76 L 1018.93 68.77 L 1019.94 68.77 L 1023.58 74.35 L 1023.58 68.77 L 1024.46 68.77 L 1024.46 76 L 1023.45 76 L 1019.81 70.42 L 1019.81 76 M 1018.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 76 L 1027.18 68.77 L 1028.2 68.77 L 1030.44 74.69 L 1032.6 68.77 L 1033.49 68.77 L 1030.87 76 M 1029.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 76 L 1036.93 68.77 L 1037.94 68.77 L 1041.58 74.35 L 1041.58 68.77 L 1042.46 68.77 L 1042.46 76 L 1041.45 76 L 1037.81 70.42 L 1037.81 76 M 1036.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 77.45 Q 1049.64 76.89 1048.49 76.13 Q 1048.03 76.18 1047.78 76.18 Q 1046.33 76.18 1045.42 75.13 Q 1044.51 74.07 1044.51 72.39 Q 1044.51 70.66 1045.43 69.63 Q 1046.35 68.59 1047.89 68.59 Q 1049.43 68.59 1050.35 69.63 Q 1051.27 70.66 1051.27 72.4 Q 1051.27 74.89 1049.42 75.85 Q 1050.66 76.4 1052 76.63 M 1051.35 77.45 M 1047.86 75.41 Q 1048.97 75.41 1049.57 74.62 Q 1050.18 73.82 1050.18 72.37 Q 1050.18 70.96 1049.57 70.16 Q 1048.97 69.36 1047.89 69.36 Q 1046.81 69.36 1046.2 70.16 Q 1045.6 70.96 1045.6 72.38 Q 1045.6 73.79 1046.2 74.6 Q 1046.8 75.41 1047.86 75.41 M 1047.86 75.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1055.93 76 L 1055.93 68.77 L 1059.97 68.77 L 1059.97 69.54 L 1056.96 69.54 L 1056.96 71.86 L 1059.48 71.86 L 1059.48 72.62 L 1056.96 72.62 L 1056.96 75.23 L 1060.18 75.23 L 1060.18 76 M 1055.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 76 L 1063.93 68.77 L 1066.33 68.77 Q 1067.41 68.77 1068.07 69.01 Q 1068.73 69.25 1069.22 69.82 Q 1069.98 70.73 1069.98 72.22 Q 1069.98 74.02 1069.03 75.01 Q 1068.08 76 1066.35 76 M 1063.93 76 M 1064.96 75.23 L 1066.27 75.23 Q 1067.68 75.23 1068.26 74.48 Q 1068.89 73.67 1068.89 72.31 Q 1068.89 71.04 1068.27 70.31 Q 1067.9 69.87 1067.38 69.7 Q 1066.85 69.54 1065.8 69.54 L 1064.96 69.54 M 1064.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 75.8 Q 1077.05 76.18 1076.07 76.18 Q 1074.35 76.18 1073.43 75.2 Q 1072.51 74.22 1072.51 72.39 Q 1072.51 70.59 1073.44 69.59 Q 1074.37 68.59 1076.06 68.59 Q 1077.16 68.59 1078.35 68.92 L 1078.35 69.87 Q 1076.86 69.36 1076.06 69.36 Q 1074.89 69.36 1074.24 70.16 Q 1073.6 70.95 1073.6 72.4 Q 1073.6 73.83 1074.29 74.62 Q 1074.98 75.41 1076.23 75.41 Q 1076.75 75.41 1077.34 75.23 L 1077.34 72.88 L 1078.36 72.88 M 1078.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 76.18 Q 1083.62 76.18 1082.49 75.86 L 1082.49 74.85 Q 1083.71 75.41 1084.5 75.41 Q 1085.1 75.41 1085.47 75.1 Q 1085.84 74.78 1085.84 74.26 Q 1085.84 73.84 1085.6 73.54 Q 1085.35 73.24 1084.71 72.88 L 1084.21 72.59 Q 1083.28 72.06 1082.91 71.59 Q 1082.53 71.13 1082.53 70.51 Q 1082.53 69.67 1083.13 69.13 Q 1083.74 68.59 1084.68 68.59 Q 1085.51 68.59 1086.44 68.87 L 1086.44 69.81 Q 1085.3 69.36 1084.73 69.36 Q 1084.2 69.36 1083.86 69.64 Q 1083.51 69.93 1083.51 70.36 Q 1083.51 70.72 1083.76 71 Q 1084.02 71.27 1084.69 71.66 L 1085.21 71.95 Q 1086.15 72.48 1086.52 72.96 Q 1086.89 73.43 1086.89 74.1 Q 1086.89 75.04 1086.19 75.61 Q 1085.5 76.18 1084.35 76.18 M 1084.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 76 L 1091.93 68.77 L 1095.97 68.77 L 1095.97 69.54 L 1092.96 69.54 L 1092.96 71.96 L 1095.49 71.96 L 1095.49 72.72 L 1092.96 72.72 L 1092.96 76 M 1091.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 76 L 1100.93 68.77 L 1101.96 68.77 L 1101.96 75.23 L 1105.21 75.23 L 1105.21 76 M 1100.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 76 L 1108.93 68.77 L 1111.33 68.77 Q 1112.41 68.77 1113.07 69.01 Q 1113.73 69.25 1114.22 69.82 Q 1114.98 70.73 1114.98 72.22 Q 1114.98 74.02 1114.03 75.01 Q 1113.08 76 1111.35 76 M 1108.93 76 M 1109.96 75.23 L 1111.27 75.23 Q 1112.68 75.23 1113.26 74.48 Q 1113.89 73.67 1113.89 72.31 Q 1113.89 71.04 1113.27 70.31 Q 1112.9 69.87 1112.38 69.7 Q 1111.85 69.54 1110.8 69.54 L 1109.96 69.54 M 1109.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 76 L 1117.93 68.77 L 1120.33 68.77 Q 1121.41 68.77 1122.07 69.01 Q 1122.73 69.25 1123.22 69.82 Q 1123.98 70.73 1123.98 72.22 Q 1123.98 74.02 1123.03 75.01 Q 1122.08 76 1120.35 76 M 1117.93 76 M 1118.96 75.23 L 1120.27 75.23 Q 1121.68 75.23 1122.26 74.48 Q 1122.89 73.67 1122.89 72.31 Q 1122.89 71.04 1122.27 70.31 Q 1121.9 69.87 1121.38 69.7 Q 1120.85 69.54 1119.8 69.54 L 1118.96 69.54 M 1118.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1127.93 76 L 1127.93 68.77 L 1131.97 68.77 L 1131.97 69.54 L 1128.96 69.54 L 1128.96 71.86 L 1131.48 71.86 L 1131.48 72.62 L 1128.96 72.62 L 1128.96 75.23 L 1132.18 75.23 L 1132.18 76 M 1127.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 77.45 Q 1139.64 76.89 1138.49 76.13 Q 1138.03 76.18 1137.78 76.18 Q 1136.33 76.18 1135.42 75.13 Q 1134.51 74.07 1134.51 72.39 Q 1134.51 70.66 1135.43 69.63 Q 1136.35 68.59 1137.89 68.59 Q 1139.43 68.59 1140.35 69.63 Q 1141.27 70.66 1141.27 72.4 Q 1141.27 74.89 1139.42 75.85 Q 1140.66 76.4 1142 76.63 M 1141.35 77.45 M 1137.86 75.41 Q 1138.97 75.41 1139.57 74.62 Q 1140.18 73.82 1140.18 72.37 Q 1140.18 70.96 1139.57 70.16 Q 1138.97 69.36 1137.89 69.36 Q 1136.81 69.36 1136.2 70.16 Q 1135.6 70.96 1135.6 72.38 Q 1135.6 73.79 1136.2 74.6 Q 1136.8 75.41 1137.86 75.41 M 1137.86 75.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 76 L 1146.93 68.77 L 1147.95 68.77 L 1147.95 76 M 1146.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1154.93 76 L 1154.93 68.77 L 1158.97 68.77 L 1158.97 69.54 L 1155.96 69.54 L 1155.96 71.86 L 1158.48 71.86 L 1158.48 72.62 L 1155.96 72.62 L 1155.96 75.23 L 1159.18 75.23 L 1159.18 76 M 1154.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1168.36 75.8 Q 1167.05 76.18 1166.07 76.18 Q 1164.35 76.18 1163.43 75.2 Q 1162.51 74.22 1162.51 72.39 Q 1162.51 70.59 1163.44 69.59 Q 1164.37 68.59 1166.06 68.59 Q 1167.16 68.59 1168.35 68.92 L 1168.35 69.87 Q 1166.86 69.36 1166.06 69.36 Q 1164.89 69.36 1164.24 70.16 Q 1163.6 70.95 1163.6 72.4 Q 1163.6 73.83 1164.29 74.62 Q 1164.98 75.41 1166.23 75.41 Q 1166.75 75.41 1167.34 75.23 L 1167.34 72.88 L 1168.36 72.88 M 1168.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 75.8 Q 1176.05 76.18 1175.07 76.18 Q 1173.35 76.18 1172.43 75.2 Q 1171.51 74.22 1171.51 72.39 Q 1171.51 70.59 1172.44 69.59 Q 1173.37 68.59 1175.06 68.59 Q 1176.16 68.59 1177.35 68.92 L 1177.35 69.87 Q 1175.86 69.36 1175.06 69.36 Q 1173.89 69.36 1173.24 70.16 Q 1172.6 70.95 1172.6 72.4 Q 1172.6 73.83 1173.29 74.62 Q 1173.98 75.41 1175.23 75.41 Q 1175.75 75.41 1176.34 75.23 L 1176.34 72.88 L 1177.36 72.88 M 1177.36 75.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 76 L 1179.01 68.77 L 1180 68.77 L 1181.48 74.48 L 1182.84 68.77 L 1183.82 68.77 L 1185.11 74.4 L 1186.71 68.77 L 1187.54 68.77 L 1185.51 76 L 1184.49 76 L 1183.22 70.43 L 1181.89 76 M 1180.87 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 76 L 1189.18 68.77 L 1190.2 68.77 L 1192.44 74.69 L 1194.6 68.77 L 1195.49 68.77 L 1192.87 76 M 1191.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 76 L 1199.93 68.77 L 1200.96 68.77 L 1200.96 75.23 L 1204.21 75.23 L 1204.21 76 M 1199.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 76 L 1209.65 69.54 L 1207.09 69.54 L 1207.09 68.77 L 1213.24 68.77 L 1213.24 69.54 L 1210.68 69.54 L 1210.68 76 M 1209.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 76.18 Q 1218.34 76.18 1217.43 75.19 Q 1216.51 74.2 1216.51 72.39 Q 1216.51 70.58 1217.44 69.59 Q 1218.38 68.59 1220.08 68.59 Q 1221.05 68.59 1222.35 68.91 L 1222.35 69.87 Q 1220.87 69.36 1220.06 69.36 Q 1218.89 69.36 1218.24 70.16 Q 1217.6 70.95 1217.6 72.4 Q 1217.6 73.78 1218.29 74.58 Q 1218.97 75.38 1220.17 75.38 Q 1221.19 75.38 1222.36 74.75 L 1222.36 75.63 Q 1221.29 76.18 1220.03 76.18 M 1220.03 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 76 L 1225.18 68.77 L 1226.2 68.77 L 1228.44 74.69 L 1230.6 68.77 L 1231.49 68.77 L 1228.87 76 M 1227.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 73.24 L 1237.36 70.12 L 1236.13 73.24 M 1238.59 73.24 M 1239.68 76 L 1238.89 74 L 1235.83 74 L 1235.04 76 L 1234.08 76 L 1236.95 68.77 L 1237.96 68.77 L 1240.79 76 M 1239.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1244.93 76 L 1244.93 68.77 L 1248.97 68.77 L 1248.97 69.54 L 1245.96 69.54 L 1245.96 71.96 L 1248.49 71.96 L 1248.49 72.72 L 1245.96 72.72 L 1245.96 76 M 1244.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 76 L 1252.93 68.77 L 1254.9 68.77 Q 1256.21 68.77 1256.78 69.22 Q 1257.35 69.66 1257.35 70.67 Q 1257.35 71.82 1256.57 72.47 Q 1255.79 73.13 1254.4 73.13 L 1253.95 73.13 L 1253.95 76 M 1252.93 76 M 1253.95 72.35 L 1254.36 72.35 Q 1255.28 72.35 1255.77 71.93 Q 1256.27 71.51 1256.27 70.75 Q 1256.27 70.1 1255.88 69.82 Q 1255.49 69.54 1254.58 69.54 L 1253.95 69.54 M 1253.95 72.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 76 L 1263.65 69.54 L 1261.09 69.54 L 1261.09 68.77 L 1267.24 68.77 L 1267.24 69.54 L 1264.68 69.54 L 1264.68 76 M 1263.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 76.18 Q 1272.62 76.18 1271.49 75.86 L 1271.49 74.85 Q 1272.71 75.41 1273.5 75.41 Q 1274.1 75.41 1274.47 75.1 Q 1274.84 74.78 1274.84 74.26 Q 1274.84 73.84 1274.6 73.54 Q 1274.35 73.24 1273.71 72.88 L 1273.21 72.59 Q 1272.28 72.06 1271.91 71.59 Q 1271.53 71.13 1271.53 70.51 Q 1271.53 69.67 1272.13 69.13 Q 1272.74 68.59 1273.68 68.59 Q 1274.51 68.59 1275.44 68.87 L 1275.44 69.81 Q 1274.3 69.36 1273.73 69.36 Q 1273.2 69.36 1272.86 69.64 Q 1272.51 69.93 1272.51 70.36 Q 1272.51 70.72 1272.76 71 Q 1273.02 71.27 1273.69 71.66 L 1274.21 71.95 Q 1275.15 72.48 1275.52 72.96 Q 1275.89 73.43 1275.89 74.1 Q 1275.89 75.04 1275.19 75.61 Q 1274.5 76.18 1273.35 76.18 M 1273.35 76.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 76 L 1279.93 68.77 L 1282.33 68.77 Q 1283.41 68.77 1284.07 69.01 Q 1284.73 69.25 1285.22 69.82 Q 1285.98 70.73 1285.98 72.22 Q 1285.98 74.02 1285.03 75.01 Q 1284.08 76 1282.35 76 M 1279.93 76 M 1280.96 75.23 L 1282.27 75.23 Q 1283.68 75.23 1284.26 74.48 Q 1284.89 73.67 1284.89 72.31 Q 1284.89 71.04 1284.27 70.31 Q 1283.9 69.87 1283.38 69.7 Q 1282.85 69.54 1281.8 69.54 L 1280.96 69.54 M 1280.96 75.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 76 L 1288.18 68.77 L 1289.2 68.77 L 1291.44 74.69 L 1293.6 68.77 L 1294.49 68.77 L 1291.87 76 M 1290.91 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 76 L 1299.65 69.54 L 1297.09 69.54 L 1297.09 68.77 L 1303.24 68.77 L 1303.24 69.54 L 1300.68 69.54 L 1300.68 76 M 1299.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 76 L 1308.93 68.77 L 1309.95 68.77 L 1309.95 76 M 1308.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 76 L 1316.93 68.77 L 1320.97 68.77 L 1320.97 69.54 L 1317.96 69.54 L 1317.96 71.86 L 1320.48 71.86 L 1320.48 72.62 L 1317.96 72.62 L 1317.96 75.23 L 1321.18 75.23 L 1321.18 76 M 1316.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 76 L 1326.65 69.54 L 1324.09 69.54 L 1324.09 68.77 L 1330.24 68.77 L 1330.24 69.54 L 1327.68 69.54 L 1327.68 76 M 1326.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 76 L 1333.93 68.77 L 1334.96 68.77 L 1334.96 71.82 L 1338.4 71.82 L 1338.4 68.77 L 1339.42 68.77 L 1339.42 76 L 1338.4 76 L 1338.4 72.59 L 1334.96 72.59 L 1334.96 76 M 1333.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 76 L 1342.93 68.77 L 1343.89 68.77 L 1343.89 72.33 L 1346.82 68.77 L 1347.85 68.77 L 1345.02 72.22 L 1348.35 76 L 1347.05 76 L 1343.89 72.34 L 1343.89 76 M 1342.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 76 L 1352.93 68.77 L 1356.97 68.77 L 1356.97 69.54 L 1353.96 69.54 L 1353.96 71.86 L 1356.48 71.86 L 1356.48 72.62 L 1353.96 72.62 L 1353.96 75.23 L 1357.18 75.23 L 1357.18 76 M 1352.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 76 L 1361.93 68.77 L 1365.97 68.77 L 1365.97 69.54 L 1362.96 69.54 L 1362.96 71.86 L 1365.48 71.86 L 1365.48 72.62 L 1362.96 72.62 L 1362.96 75.23 L 1366.18 75.23 L 1366.18 76 M 1361.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 76 L 1370.93 68.77 L 1374.97 68.77 L 1374.97 69.54 L 1371.96 69.54 L 1371.96 71.86 L 1374.48 71.86 L 1374.48 72.62 L 1371.96 72.62 L 1371.96 75.23 L 1375.18 75.23 L 1375.18 76 M 1370.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 76 L 1379.93 68.77 L 1380.96 68.77 L 1380.96 75.23 L 1384.21 75.23 L 1384.21 76 M 1379.93 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 76 L 1389.65 69.54 L 1387.09 69.54 L 1387.09 68.77 L 1393.24 68.77 L 1393.24 69.54 L 1390.68 69.54 L 1390.68 76 M 1389.65 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1400.59 73.24 L 1399.36 70.12 L 1398.13 73.24 M 1400.59 73.24 M 1401.68 76 L 1400.89 74 L 1397.83 74 L 1397.04 76 L 1396.08 76 L 1398.95 68.77 L 1399.96 68.77 L 1402.79 76 M 1401.68 76"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 73.47 L 1405.72 72.75 L 1410.06 72.75 L 1410.06 73.47 M 1405.72 73.47"/></g><rect x="0" y="78" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="78" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="78" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="78" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="78" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="78" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="78" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="78" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="78" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="78" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="78" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="78" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="78" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="78" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="78" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="78" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="78" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="78" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="78" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="78" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="78" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="78" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="78" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="78" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="990" y="78" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="78" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1053" y="78" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="78" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="78" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="78" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="78" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="78" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="78" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 89 L 0.93 81.77 L 2.35 81.77 L 4.36 87.36 L 6.42 81.77 L 7.69 81.77 L 7.69 89 L 6.73 89 L 6.73 83.12 L 4.74 88.52 L 3.75 88.52 L 1.81 83.11 L 1.81 89 M 0.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 86.24 L 13.36 83.12 L 12.13 86.24 M 14.59 86.24 M 15.68 89 L 14.89 87 L 11.83 87 L 11.04 89 L 10.08 89 L 12.95 81.77 L 13.96 81.77 L 16.79 89 M 15.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 23.59 86.24 L 22.36 83.12 L 21.13 86.24 M 23.59 86.24 M 24.68 89 L 23.89 87 L 20.83 87 L 20.04 89 L 19.08 89 L 21.95 81.77 L 22.96 81.77 L 25.79 89 M 24.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 89 L 30.65 82.54 L 28.09 82.54 L 28.09 81.77 L 34.24 81.77 L 34.24 82.54 L 31.68 82.54 L 31.68 89 M 30.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 86.47 L 37.72 85.75 L 42.06 85.75 L 42.06 86.47 M 37.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 86.47 L 46.72 85.75 L 51.06 85.75 L 51.06 86.47 M 46.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 57.65 89 L 57.65 82.54 L 55.09 82.54 L 55.09 81.77 L 61.24 81.77 L 61.24 82.54 L 58.68 82.54 L 58.68 89 M 57.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 68.59 86.24 L 67.36 83.12 L 66.13 86.24 M 68.59 86.24 M 69.68 89 L 68.89 87 L 65.83 87 L 65.04 89 L 64.08 89 L 66.95 81.77 L 67.96 81.77 L 70.79 89 M 69.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 77.59 86.24 L 76.36 83.12 L 75.13 86.24 M 77.59 86.24 M 78.68 89 L 77.89 87 L 74.83 87 L 74.04 89 L 73.08 89 L 75.95 81.77 L 76.96 81.77 L 79.79 89 M 78.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 83.93 89 L 83.93 81.77 L 84.96 81.77 L 84.96 88.23 L 88.21 88.23 L 88.21 89 M 83.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 89.18 Q 93.62 89.18 92.49 88.86 L 92.49 87.85 Q 93.71 88.41 94.5 88.41 Q 95.1 88.41 95.47 88.1 Q 95.84 87.78 95.84 87.26 Q 95.84 86.84 95.6 86.54 Q 95.35 86.24 94.71 85.88 L 94.21 85.59 Q 93.28 85.06 92.91 84.59 Q 92.53 84.13 92.53 83.51 Q 92.53 82.67 93.13 82.13 Q 93.74 81.59 94.68 81.59 Q 95.51 81.59 96.44 81.87 L 96.44 82.81 Q 95.3 82.36 94.73 82.36 Q 94.2 82.36 93.86 82.64 Q 93.51 82.93 93.51 83.36 Q 93.51 83.72 93.76 84 Q 94.02 84.27 94.69 84.66 L 95.21 84.95 Q 96.15 85.48 96.52 85.96 Q 96.89 86.43 96.89 87.1 Q 96.89 88.04 96.19 88.61 Q 95.5 89.18 94.35 89.18 M 94.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 106.36 88.8 Q 105.05 89.18 104.07 89.18 Q 102.35 89.18 101.43 88.2 Q 100.51 87.22 100.51 85.39 Q 100.51 83.59 101.44 82.59 Q 102.37 81.59 104.06 81.59 Q 105.16 81.59 106.35 81.92 L 106.35 82.87 Q 104.86 82.36 104.06 82.36 Q 102.89 82.36 102.24 83.16 Q 101.6 83.95 101.6 85.4 Q 101.6 86.83 102.29 87.62 Q 102.98 88.41 104.23 88.41 Q 104.75 88.41 105.34 88.23 L 105.34 85.88 L 106.36 85.88 M 106.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 113.59 86.24 L 112.36 83.12 L 111.13 86.24 M 113.59 86.24 M 114.68 89 L 113.89 87 L 110.83 87 L 110.04 89 L 109.08 89 L 111.95 81.77 L 112.96 81.77 L 115.79 89 M 114.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 120.65 89 L 120.65 82.54 L 118.09 82.54 L 118.09 81.77 L 124.24 81.77 L 124.24 82.54 L 121.68 82.54 L 121.68 89 M 120.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 126.93 89 L 126.93 81.77 L 128.35 81.77 L 130.36 87.36 L 132.42 81.77 L 133.69 81.77 L 133.69 89 L 132.73 89 L 132.73 83.12 L 130.74 88.52 L 129.75 88.52 L 127.81 83.11 L 127.81 89 M 126.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 89.18 Q 138.62 89.18 137.49 88.86 L 137.49 87.85 Q 138.71 88.41 139.5 88.41 Q 140.1 88.41 140.47 88.1 Q 140.84 87.78 140.84 87.26 Q 140.84 86.84 140.6 86.54 Q 140.35 86.24 139.71 85.88 L 139.21 85.59 Q 138.28 85.06 137.91 84.59 Q 137.53 84.13 137.53 83.51 Q 137.53 82.67 138.13 82.13 Q 138.74 81.59 139.68 81.59 Q 140.51 81.59 141.44 81.87 L 141.44 82.81 Q 140.3 82.36 139.73 82.36 Q 139.2 82.36 138.86 82.64 Q 138.51 82.93 138.51 83.36 Q 138.51 83.72 138.76 84 Q 139.02 84.27 139.69 84.66 L 140.21 84.95 Q 141.15 85.48 141.52 85.96 Q 141.89 86.43 141.89 87.1 Q 141.89 88.04 141.19 88.61 Q 140.5 89.18 139.35 89.18 M 139.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 89 L 147.65 82.54 L 145.09 82.54 L 145.09 81.77 L 151.24 81.77 L 151.24 82.54 L 148.68 82.54 L 148.68 89 M 147.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 158.59 86.24 L 157.36 83.12 L 156.13 86.24 M 158.59 86.24 M 159.68 89 L 158.89 87 L 155.83 87 L 155.04 89 L 154.08 89 L 156.95 81.77 L 157.96 81.77 L 160.79 89 M 159.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 89 L 164.93 81.77 L 168.97 81.77 L 168.97 82.54 L 165.96 82.54 L 165.96 84.96 L 168.49 84.96 L 168.49 85.72 L 165.96 85.72 L 165.96 89 M 164.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 176.59 86.24 L 175.36 83.12 L 174.13 86.24 M 176.59 86.24 M 177.68 89 L 176.89 87 L 173.83 87 L 173.04 89 L 172.08 89 L 174.95 81.77 L 175.96 81.77 L 178.79 89 M 177.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 89 L 181.93 81.77 L 183.9 81.77 Q 185.21 81.77 185.78 82.22 Q 186.35 82.66 186.35 83.67 Q 186.35 84.82 185.57 85.47 Q 184.79 86.13 183.4 86.13 L 182.95 86.13 L 182.95 89 M 181.93 89 M 182.95 85.35 L 183.36 85.35 Q 184.28 85.35 184.77 84.93 Q 185.27 84.51 185.27 83.75 Q 185.27 83.1 184.88 82.82 Q 184.49 82.54 183.58 82.54 L 182.95 82.54 M 182.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 89 L 190.93 81.77 L 191.89 81.77 L 191.89 85.33 L 194.82 81.77 L 195.85 81.77 L 193.02 85.22 L 196.35 89 L 195.05 89 L 191.89 85.34 L 191.89 89 M 190.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.72 86.47 L 199.72 85.75 L 204.06 85.75 L 204.06 86.47 M 199.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.72 86.47 L 208.72 85.75 L 213.06 85.75 L 213.06 86.47 M 208.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 219.65 89 L 219.65 82.54 L 217.09 82.54 L 217.09 81.77 L 223.24 81.77 L 223.24 82.54 L 220.68 82.54 L 220.68 89 M 219.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 89 L 226.93 81.77 L 228.9 81.77 Q 230.21 81.77 230.78 82.22 Q 231.35 82.66 231.35 83.67 Q 231.35 84.82 230.57 85.47 Q 229.79 86.13 228.4 86.13 L 227.95 86.13 L 227.95 89 M 226.93 89 M 227.95 85.35 L 228.36 85.35 Q 229.28 85.35 229.77 84.93 Q 230.27 84.51 230.27 83.75 Q 230.27 83.1 229.88 82.82 Q 229.49 82.54 228.58 82.54 L 227.95 82.54 M 227.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 235.93 89 L 235.93 81.77 L 237.9 81.77 Q 239.21 81.77 239.78 82.22 Q 240.35 82.66 240.35 83.67 Q 240.35 84.82 239.57 85.47 Q 238.79 86.13 237.4 86.13 L 236.95 86.13 L 236.95 89 M 235.93 89 M 236.95 85.35 L 237.36 85.35 Q 238.28 85.35 238.77 84.93 Q 239.27 84.51 239.27 83.75 Q 239.27 83.1 238.88 82.82 Q 238.49 82.54 237.58 82.54 L 236.95 82.54 M 236.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 243.93 89 L 243.93 81.77 L 245.35 81.77 L 247.36 87.36 L 249.42 81.77 L 250.69 81.77 L 250.69 89 L 249.73 89 L 249.73 83.12 L 247.74 88.52 L 246.75 88.52 L 244.81 83.11 L 244.81 89 M 243.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 255.65 89 L 255.65 82.54 L 253.09 82.54 L 253.09 81.77 L 259.24 81.77 L 259.24 82.54 L 256.68 82.54 L 256.68 89 M 255.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 266.59 86.24 L 265.36 83.12 L 264.13 86.24 M 266.59 86.24 M 267.68 89 L 266.89 87 L 263.83 87 L 263.04 89 L 262.08 89 L 264.95 81.77 L 265.96 81.77 L 268.79 89 M 267.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 275.59 86.24 L 274.36 83.12 L 273.13 86.24 M 275.59 86.24 M 276.68 89 L 275.89 87 L 272.83 87 L 272.04 89 L 271.08 89 L 273.95 81.77 L 274.96 81.77 L 277.79 89 M 276.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 281.93 89 L 281.93 81.77 L 282.96 81.77 L 282.96 88.23 L 286.21 88.23 L 286.21 89 M 281.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.93 89 L 289.93 81.77 L 291.9 81.77 Q 293.21 81.77 293.78 82.22 Q 294.35 82.66 294.35 83.67 Q 294.35 84.82 293.57 85.47 Q 292.79 86.13 291.4 86.13 L 290.95 86.13 L 290.95 89 M 289.93 89 M 290.95 85.35 L 291.36 85.35 Q 292.28 85.35 292.77 84.93 Q 293.27 84.51 293.27 83.75 Q 293.27 83.1 292.88 82.82 Q 292.49 82.54 291.58 82.54 L 290.95 82.54 M 290.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 300.65 89 L 300.65 82.54 L 298.09 82.54 L 298.09 81.77 L 304.24 81.77 L 304.24 82.54 L 301.68 82.54 L 301.68 89 M 300.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.93 89 L 307.93 81.77 L 308.94 81.77 L 312.58 87.35 L 312.58 81.77 L 313.46 81.77 L 313.46 89 L 312.45 89 L 308.81 83.42 L 308.81 89 M 307.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 318.91 89 L 316.18 81.77 L 317.2 81.77 L 319.44 87.69 L 321.6 81.77 L 322.49 81.77 L 319.87 89 M 318.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 331.36 88.8 Q 330.05 89.18 329.07 89.18 Q 327.35 89.18 326.43 88.2 Q 325.51 87.22 325.51 85.39 Q 325.51 83.59 326.44 82.59 Q 327.37 81.59 329.06 81.59 Q 330.16 81.59 331.35 81.92 L 331.35 82.87 Q 329.86 82.36 329.06 82.36 Q 327.89 82.36 327.24 83.16 Q 326.6 83.95 326.6 85.4 Q 326.6 86.83 327.29 87.62 Q 327.98 88.41 329.23 88.41 Q 329.75 88.41 330.34 88.23 L 330.34 85.88 L 331.36 85.88 M 331.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 334.93 89 L 334.93 81.77 L 337.12 81.77 Q 338.16 81.77 338.71 82.23 Q 339.27 82.69 339.27 83.57 Q 339.27 85.01 337.81 85.62 L 340.22 89 L 338.96 89 L 336.91 85.94 L 335.95 85.94 L 335.95 89 M 334.93 89 M 335.95 85.18 L 336.28 85.18 Q 338.21 85.18 338.21 83.66 Q 338.21 82.54 336.59 82.54 L 335.95 82.54 M 335.95 85.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 86.47 L 343.72 85.75 L 348.06 85.75 L 348.06 86.47 M 343.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 86.47 L 352.72 85.75 L 357.06 85.75 L 357.06 86.47 M 352.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 365.59 86.24 L 364.36 83.12 L 363.13 86.24 M 365.59 86.24 M 366.68 89 L 365.89 87 L 362.83 87 L 362.04 89 L 361.08 89 L 363.95 81.77 L 364.96 81.77 L 367.79 89 M 366.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 89 L 371.93 81.77 L 372.96 81.77 L 372.96 88.23 L 376.21 88.23 L 376.21 89 M 371.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 89 L 380.93 81.77 L 384.97 81.77 L 384.97 82.54 L 381.96 82.54 L 381.96 84.96 L 384.49 84.96 L 384.49 85.72 L 381.96 85.72 L 381.96 89 M 380.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 88.8 Q 393.05 89.18 392.07 89.18 Q 390.35 89.18 389.43 88.2 Q 388.51 87.22 388.51 85.39 Q 388.51 83.59 389.44 82.59 Q 390.37 81.59 392.06 81.59 Q 393.16 81.59 394.35 81.92 L 394.35 82.87 Q 392.86 82.36 392.06 82.36 Q 390.89 82.36 390.24 83.16 Q 389.6 83.95 389.6 85.4 Q 389.6 86.83 390.29 87.62 Q 390.98 88.41 392.23 88.41 Q 392.75 88.41 393.34 88.23 L 393.34 85.88 L 394.36 85.88 M 394.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 89 L 398.93 81.77 L 399.96 81.77 L 399.96 88.23 L 403.21 88.23 L 403.21 89 M 398.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 89 L 406.93 81.77 L 407.89 81.77 L 407.89 85.33 L 410.82 81.77 L 411.85 81.77 L 409.02 85.22 L 412.35 89 L 411.05 89 L 407.89 85.34 L 407.89 89 M 406.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 89.18 Q 417.62 89.18 416.49 88.86 L 416.49 87.85 Q 417.71 88.41 418.5 88.41 Q 419.1 88.41 419.47 88.1 Q 419.84 87.78 419.84 87.26 Q 419.84 86.84 419.6 86.54 Q 419.35 86.24 418.71 85.88 L 418.21 85.59 Q 417.28 85.06 416.91 84.59 Q 416.53 84.13 416.53 83.51 Q 416.53 82.67 417.13 82.13 Q 417.74 81.59 418.68 81.59 Q 419.51 81.59 420.44 81.87 L 420.44 82.81 Q 419.3 82.36 418.73 82.36 Q 418.2 82.36 417.86 82.64 Q 417.51 82.93 417.51 83.36 Q 417.51 83.72 417.76 84 Q 418.02 84.27 418.69 84.66 L 419.21 84.95 Q 420.15 85.48 420.52 85.96 Q 420.89 86.43 420.89 87.1 Q 420.89 88.04 420.19 88.61 Q 419.5 89.18 418.35 89.18 M 418.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 86.47 L 424.72 85.75 L 429.06 85.75 L 429.06 86.47 M 424.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 436.35 89.18 Q 435.62 89.18 434.49 88.86 L 434.49 87.85 Q 435.71 88.41 436.5 88.41 Q 437.1 88.41 437.47 88.1 Q 437.84 87.78 437.84 87.26 Q 437.84 86.84 437.6 86.54 Q 437.35 86.24 436.71 85.88 L 436.21 85.59 Q 435.28 85.06 434.91 84.59 Q 434.53 84.13 434.53 83.51 Q 434.53 82.67 435.13 82.13 Q 435.74 81.59 436.68 81.59 Q 437.51 81.59 438.44 81.87 L 438.44 82.81 Q 437.3 82.36 436.73 82.36 Q 436.2 82.36 435.86 82.64 Q 435.51 82.93 435.51 83.36 Q 435.51 83.72 435.76 84 Q 436.02 84.27 436.69 84.66 L 437.21 84.95 Q 438.15 85.48 438.52 85.96 Q 438.89 86.43 438.89 87.1 Q 438.89 88.04 438.19 88.61 Q 437.5 89.18 436.35 89.18 M 436.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 446.59 86.24 L 445.36 83.12 L 444.13 86.24 M 446.59 86.24 M 447.68 89 L 446.89 87 L 443.83 87 L 443.04 89 L 442.08 89 L 444.95 81.77 L 445.96 81.77 L 448.79 89 M 447.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 454.35 89.18 Q 453.62 89.18 452.49 88.86 L 452.49 87.85 Q 453.71 88.41 454.5 88.41 Q 455.1 88.41 455.47 88.1 Q 455.84 87.78 455.84 87.26 Q 455.84 86.84 455.6 86.54 Q 455.35 86.24 454.71 85.88 L 454.21 85.59 Q 453.28 85.06 452.91 84.59 Q 452.53 84.13 452.53 83.51 Q 452.53 82.67 453.13 82.13 Q 453.74 81.59 454.68 81.59 Q 455.51 81.59 456.44 81.87 L 456.44 82.81 Q 455.3 82.36 454.73 82.36 Q 454.2 82.36 453.86 82.64 Q 453.51 82.93 453.51 83.36 Q 453.51 83.72 453.76 84 Q 454.02 84.27 454.69 84.66 L 455.21 84.95 Q 456.15 85.48 456.52 85.96 Q 456.89 86.43 456.89 87.1 Q 456.89 88.04 456.19 88.61 Q 455.5 89.18 454.35 89.18 M 454.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 89 L 460.93 81.77 L 463.12 81.77 Q 464.16 81.77 464.71 82.23 Q 465.27 82.69 465.27 83.57 Q 465.27 85.01 463.81 85.62 L 466.22 89 L 464.96 89 L 462.91 85.94 L 461.95 85.94 L 461.95 89 M 460.93 89 M 461.95 85.18 L 462.28 85.18 Q 464.21 85.18 464.21 83.66 Q 464.21 82.54 462.59 82.54 L 461.95 82.54 M 461.95 85.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.72 86.47 L 469.72 85.75 L 474.06 85.75 L 474.06 86.47 M 469.72 86.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 88.8 Q 483.05 89.18 482.07 89.18 Q 480.35 89.18 479.43 88.2 Q 478.51 87.22 478.51 85.39 Q 478.51 83.59 479.44 82.59 Q 480.37 81.59 482.06 81.59 Q 483.16 81.59 484.35 81.92 L 484.35 82.87 Q 482.86 82.36 482.06 82.36 Q 480.89 82.36 480.24 83.16 Q 479.6 83.95 479.6 85.4 Q 479.6 86.83 480.29 87.62 Q 480.98 88.41 482.23 88.41 Q 482.75 88.41 483.34 88.23 L 483.34 85.88 L 484.36 85.88 M 484.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 89 L 487.93 81.77 L 490.12 81.77 Q 491.16 81.77 491.71 82.23 Q 492.27 82.69 492.27 83.57 Q 492.27 85.01 490.81 85.62 L 493.22 89 L 491.96 89 L 489.91 85.94 L 488.95 85.94 L 488.95 89 M 487.93 89 M 488.95 85.18 L 489.28 85.18 Q 491.21 85.18 491.21 83.66 Q 491.21 82.54 489.59 82.54 L 488.95 82.54 M 488.95 85.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.91 89 L 496.18 81.77 L 497.2 81.77 L 499.44 87.69 L 501.6 81.77 L 502.49 81.77 L 499.87 89 M 498.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 89 L 507.65 82.54 L 505.09 82.54 L 505.09 81.77 L 511.24 81.77 L 511.24 82.54 L 508.68 82.54 L 508.68 89 M 507.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 86.24 L 517.36 83.12 L 516.13 86.24 M 518.59 86.24 M 519.68 89 L 518.89 87 L 515.83 87 L 515.04 89 L 514.08 89 L 516.95 81.77 L 517.96 81.77 L 520.79 89 M 519.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 89 L 522.93 81.77 L 524.35 81.77 L 526.36 87.36 L 528.42 81.77 L 529.69 81.77 L 529.69 89 L 528.73 89 L 528.73 83.12 L 526.74 88.52 L 525.75 88.52 L 523.81 83.11 L 523.81 89 M 522.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 86.24 L 535.36 83.12 L 534.13 86.24 M 536.59 86.24 M 537.68 89 L 536.89 87 L 533.83 87 L 533.04 89 L 532.08 89 L 534.95 81.77 L 535.96 81.77 L 538.79 89 M 537.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 545.59 86.24 L 544.36 83.12 L 543.13 86.24 M 545.59 86.24 M 546.68 89 L 545.89 87 L 542.83 87 L 542.04 89 L 541.08 89 L 543.95 81.77 L 544.96 81.77 L 547.79 89 M 546.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 89 L 552.5 85.98 L 550.08 81.77 L 551.25 81.77 L 553.13 85.04 L 555.15 81.77 L 556.1 81.77 L 553.52 85.96 L 553.52 89 M 552.5 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 89 L 559.93 81.77 L 560.89 81.77 L 560.89 85.33 L 563.82 81.77 L 564.85 81.77 L 562.02 85.22 L 565.35 89 L 564.05 89 L 560.89 85.34 L 560.89 89 M 559.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 89 L 568.18 81.77 L 569.2 81.77 L 571.44 87.69 L 573.6 81.77 L 574.49 81.77 L 571.87 89 M 570.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 579.65 89 L 579.65 82.54 L 577.09 82.54 L 577.09 81.77 L 583.24 81.77 L 583.24 82.54 L 580.68 82.54 L 580.68 89 M 579.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 89 L 587.93 81.77 L 588.96 81.77 L 588.96 88.23 L 592.21 88.23 L 592.21 89 M 587.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.91 89 L 595.18 81.77 L 596.2 81.77 L 598.44 87.69 L 600.6 81.77 L 601.49 81.77 L 598.87 89 M 597.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 89 L 606.65 82.54 L 604.09 82.54 L 604.09 81.77 L 610.24 81.77 L 610.24 82.54 L 607.68 82.54 L 607.68 89 M 606.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 89 L 613.93 81.77 L 615.9 81.77 Q 617.21 81.77 617.78 82.22 Q 618.35 82.66 618.35 83.67 Q 618.35 84.82 617.57 85.47 Q 616.79 86.13 615.4 86.13 L 614.95 86.13 L 614.95 89 M 613.93 89 M 614.95 85.35 L 615.36 85.35 Q 616.28 85.35 616.77 84.93 Q 617.27 84.51 617.27 83.75 Q 617.27 83.1 616.88 82.82 Q 616.49 82.54 615.58 82.54 L 614.95 82.54 M 614.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 89 L 623.93 81.77 L 627.97 81.77 L 627.97 82.54 L 624.96 82.54 L 624.96 84.86 L 627.48 84.86 L 627.48 85.62 L 624.96 85.62 L 624.96 88.23 L 628.18 88.23 L 628.18 89 M 623.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 88.8 Q 636.05 89.18 635.07 89.18 Q 633.35 89.18 632.43 88.2 Q 631.51 87.22 631.51 85.39 Q 631.51 83.59 632.44 82.59 Q 633.37 81.59 635.06 81.59 Q 636.16 81.59 637.35 81.92 L 637.35 82.87 Q 635.86 82.36 635.06 82.36 Q 633.89 82.36 633.24 83.16 Q 632.6 83.95 632.6 85.4 Q 632.6 86.83 633.29 87.62 Q 633.98 88.41 635.23 88.41 Q 635.75 88.41 636.34 88.23 L 636.34 85.88 L 637.36 85.88 M 637.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 89 L 640.93 81.77 L 641.89 81.77 L 641.89 85.33 L 644.82 81.77 L 645.85 81.77 L 643.02 85.22 L 646.35 89 L 645.05 89 L 641.89 85.34 L 641.89 89 M 640.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 90.45 Q 653.64 89.89 652.49 89.13 Q 652.03 89.18 651.78 89.18 Q 650.33 89.18 649.42 88.13 Q 648.51 87.07 648.51 85.39 Q 648.51 83.66 649.43 82.63 Q 650.35 81.59 651.89 81.59 Q 653.43 81.59 654.35 82.63 Q 655.27 83.66 655.27 85.4 Q 655.27 87.89 653.42 88.85 Q 654.66 89.4 656 89.63 M 655.35 90.45 M 651.86 88.41 Q 652.97 88.41 653.57 87.62 Q 654.18 86.82 654.18 85.37 Q 654.18 83.96 653.57 83.16 Q 652.97 82.36 651.89 82.36 Q 650.81 82.36 650.2 83.16 Q 649.6 83.96 649.6 85.38 Q 649.6 86.79 650.2 87.6 Q 650.8 88.41 651.86 88.41 M 651.86 88.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 89 L 659.93 81.77 L 663.97 81.77 L 663.97 82.54 L 660.96 82.54 L 660.96 84.86 L 663.48 84.86 L 663.48 85.62 L 660.96 85.62 L 660.96 88.23 L 664.18 88.23 L 664.18 89 M 659.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 89 L 668.93 81.77 L 669.96 81.77 L 669.96 88.23 L 673.21 88.23 L 673.21 89 M 668.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 89 L 677.93 81.77 L 681.97 81.77 L 681.97 82.54 L 678.96 82.54 L 678.96 84.86 L 681.48 84.86 L 681.48 85.62 L 678.96 85.62 L 678.96 88.23 L 682.18 88.23 L 682.18 89 M 677.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 89.18 Q 687.34 89.18 686.43 88.19 Q 685.51 87.2 685.51 85.39 Q 685.51 83.58 686.44 82.59 Q 687.38 81.59 689.08 81.59 Q 690.05 81.59 691.35 81.91 L 691.35 82.87 Q 689.87 82.36 689.06 82.36 Q 687.89 82.36 687.24 83.16 Q 686.6 83.95 686.6 85.4 Q 686.6 86.78 687.29 87.58 Q 687.97 88.38 689.17 88.38 Q 690.19 88.38 691.36 87.75 L 691.36 88.63 Q 690.29 89.18 689.03 89.18 M 689.03 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 89 L 694.93 81.77 L 696.9 81.77 Q 698.21 81.77 698.78 82.22 Q 699.35 82.66 699.35 83.67 Q 699.35 84.82 698.57 85.47 Q 697.79 86.13 696.4 86.13 L 695.95 86.13 L 695.95 89 M 694.93 89 M 695.95 85.35 L 696.36 85.35 Q 697.28 85.35 697.77 84.93 Q 698.27 84.51 698.27 83.75 Q 698.27 83.1 697.88 82.82 Q 697.49 82.54 696.58 82.54 L 695.95 82.54 M 695.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 89 L 703.93 81.77 L 706.33 81.77 Q 707.41 81.77 708.07 82.01 Q 708.73 82.25 709.22 82.82 Q 709.98 83.73 709.98 85.22 Q 709.98 87.02 709.03 88.01 Q 708.08 89 706.35 89 M 703.93 89 M 704.96 88.23 L 706.27 88.23 Q 707.68 88.23 708.26 87.48 Q 708.89 86.67 708.89 85.31 Q 708.89 84.04 708.27 83.31 Q 707.9 82.87 707.38 82.7 Q 706.85 82.54 705.8 82.54 L 704.96 82.54 M 704.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 89 L 712.93 81.77 L 715.33 81.77 Q 716.41 81.77 717.07 82.01 Q 717.73 82.25 718.22 82.82 Q 718.98 83.73 718.98 85.22 Q 718.98 87.02 718.03 88.01 Q 717.08 89 715.35 89 M 712.93 89 M 713.96 88.23 L 715.27 88.23 Q 716.68 88.23 717.26 87.48 Q 717.89 86.67 717.89 85.31 Q 717.89 84.04 717.27 83.31 Q 716.9 82.87 716.38 82.7 Q 715.85 82.54 714.8 82.54 L 713.96 82.54 M 713.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 89 L 721.18 81.77 L 722.2 81.77 L 724.44 87.69 L 726.6 81.77 L 727.49 81.77 L 724.87 89 M 723.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 89 L 732.5 85.98 L 730.08 81.77 L 731.25 81.77 L 733.13 85.04 L 735.15 81.77 L 736.1 81.77 L 733.52 85.96 L 733.52 89 M 732.5 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 89 L 741.93 81.77 L 742.95 81.77 L 742.95 89 M 741.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 89 L 749.93 81.77 L 750.96 81.77 L 750.96 88.23 L 754.21 88.23 L 754.21 89 M 749.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 89 L 757.93 81.77 L 760.33 81.77 Q 761.41 81.77 762.07 82.01 Q 762.73 82.25 763.22 82.82 Q 763.98 83.73 763.98 85.22 Q 763.98 87.02 763.03 88.01 Q 762.08 89 760.35 89 M 757.93 89 M 758.96 88.23 L 760.27 88.23 Q 761.68 88.23 762.26 87.48 Q 762.89 86.67 762.89 85.31 Q 762.89 84.04 762.27 83.31 Q 761.9 82.87 761.38 82.7 Q 760.85 82.54 759.8 82.54 L 758.96 82.54 M 758.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 86.24 L 769.36 83.12 L 768.13 86.24 M 770.59 86.24 M 771.68 89 L 770.89 87 L 767.83 87 L 767.04 89 L 766.08 89 L 768.95 81.77 L 769.96 81.77 L 772.79 89 M 771.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 86.24 L 778.36 83.12 L 777.13 86.24 M 779.59 86.24 M 780.68 89 L 779.89 87 L 776.83 87 L 776.04 89 L 775.08 89 L 777.95 81.77 L 778.96 81.77 L 781.79 89 M 780.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 89 L 785.93 81.77 L 789.97 81.77 L 789.97 82.54 L 786.96 82.54 L 786.96 84.86 L 789.48 84.86 L 789.48 85.62 L 786.96 85.62 L 786.96 88.23 L 790.18 88.23 L 790.18 89 M 785.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 89 L 794.93 81.77 L 798.97 81.77 L 798.97 82.54 L 795.96 82.54 L 795.96 84.86 L 798.48 84.86 L 798.48 85.62 L 795.96 85.62 L 795.96 88.23 L 799.18 88.23 L 799.18 89 M 794.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 86.24 L 805.36 83.12 L 804.13 86.24 M 806.59 86.24 M 807.68 89 L 806.89 87 L 803.83 87 L 803.04 89 L 802.08 89 L 804.95 81.77 L 805.96 81.77 L 808.79 89 M 807.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 88.8 Q 816.05 89.18 815.07 89.18 Q 813.35 89.18 812.43 88.2 Q 811.51 87.22 811.51 85.39 Q 811.51 83.59 812.44 82.59 Q 813.37 81.59 815.06 81.59 Q 816.16 81.59 817.35 81.92 L 817.35 82.87 Q 815.86 82.36 815.06 82.36 Q 813.89 82.36 813.24 83.16 Q 812.6 83.95 812.6 85.4 Q 812.6 86.83 813.29 87.62 Q 813.98 88.41 815.23 88.41 Q 815.75 88.41 816.34 88.23 L 816.34 85.88 L 817.36 85.88 M 817.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 89 L 822.93 81.77 L 823.95 81.77 L 823.95 89 M 822.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 89 L 829.93 81.77 L 832.33 81.77 Q 833.41 81.77 834.07 82.01 Q 834.73 82.25 835.22 82.82 Q 835.98 83.73 835.98 85.22 Q 835.98 87.02 835.03 88.01 Q 834.08 89 832.35 89 M 829.93 89 M 830.96 88.23 L 832.27 88.23 Q 833.68 88.23 834.26 87.48 Q 834.89 86.67 834.89 85.31 Q 834.89 84.04 834.27 83.31 Q 833.9 82.87 833.38 82.7 Q 832.85 82.54 831.8 82.54 L 830.96 82.54 M 830.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 89 L 839.93 81.77 L 840.96 81.77 L 840.96 88.23 L 844.21 88.23 L 844.21 89 M 839.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 89 L 847.93 81.77 L 849.9 81.77 Q 851.21 81.77 851.78 82.22 Q 852.35 82.66 852.35 83.67 Q 852.35 84.82 851.57 85.47 Q 850.79 86.13 849.4 86.13 L 848.95 86.13 L 848.95 89 M 847.93 89 M 848.95 85.35 L 849.36 85.35 Q 850.28 85.35 850.77 84.93 Q 851.27 84.51 851.27 83.75 Q 851.27 83.1 850.88 82.82 Q 850.49 82.54 849.58 82.54 L 848.95 82.54 M 848.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 89 L 858.5 85.98 L 856.08 81.77 L 857.25 81.77 L 859.13 85.04 L 861.15 81.77 L 862.1 81.77 L 859.52 85.96 L 859.52 89 M 858.5 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 89.18 Q 867.62 89.18 866.49 88.86 L 866.49 87.85 Q 867.71 88.41 868.5 88.41 Q 869.1 88.41 869.47 88.1 Q 869.84 87.78 869.84 87.26 Q 869.84 86.84 869.6 86.54 Q 869.35 86.24 868.71 85.88 L 868.21 85.59 Q 867.28 85.06 866.91 84.59 Q 866.53 84.13 866.53 83.51 Q 866.53 82.67 867.13 82.13 Q 867.74 81.59 868.68 81.59 Q 869.51 81.59 870.44 81.87 L 870.44 82.81 Q 869.3 82.36 868.73 82.36 Q 868.2 82.36 867.86 82.64 Q 867.51 82.93 867.51 83.36 Q 867.51 83.72 867.76 84 Q 868.02 84.27 868.69 84.66 L 869.21 84.95 Q 870.15 85.48 870.52 85.96 Q 870.89 86.43 870.89 87.1 Q 870.89 88.04 870.19 88.61 Q 869.5 89.18 868.35 89.18 M 868.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 89.18 Q 876.34 89.18 875.43 88.19 Q 874.51 87.2 874.51 85.39 Q 874.51 83.58 875.44 82.59 Q 876.38 81.59 878.08 81.59 Q 879.05 81.59 880.35 81.91 L 880.35 82.87 Q 878.87 82.36 878.06 82.36 Q 876.89 82.36 876.24 83.16 Q 875.6 83.95 875.6 85.4 Q 875.6 86.78 876.29 87.58 Q 876.97 88.38 878.17 88.38 Q 879.19 88.38 880.36 87.75 L 880.36 88.63 Q 879.29 89.18 878.03 89.18 M 878.03 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 89 L 883.93 81.77 L 886.12 81.77 Q 887.16 81.77 887.71 82.23 Q 888.27 82.69 888.27 83.57 Q 888.27 85.01 886.81 85.62 L 889.22 89 L 887.96 89 L 885.91 85.94 L 884.95 85.94 L 884.95 89 M 883.93 89 M 884.95 85.18 L 885.28 85.18 Q 887.21 85.18 887.21 83.66 Q 887.21 82.54 885.59 82.54 L 884.95 82.54 M 884.95 85.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 86.24 L 895.36 83.12 L 894.13 86.24 M 896.59 86.24 M 897.68 89 L 896.89 87 L 893.83 87 L 893.04 89 L 892.08 89 L 894.95 81.77 L 895.96 81.77 L 898.79 89 M 897.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 88.8 Q 906.05 89.18 905.07 89.18 Q 903.35 89.18 902.43 88.2 Q 901.51 87.22 901.51 85.39 Q 901.51 83.59 902.44 82.59 Q 903.37 81.59 905.06 81.59 Q 906.16 81.59 907.35 81.92 L 907.35 82.87 Q 905.86 82.36 905.06 82.36 Q 903.89 82.36 903.24 83.16 Q 902.6 83.95 902.6 85.4 Q 902.6 86.83 903.29 87.62 Q 903.98 88.41 905.23 88.41 Q 905.75 88.41 906.34 88.23 L 906.34 85.88 L 907.36 85.88 M 907.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 89.18 Q 912.62 89.18 911.49 88.86 L 911.49 87.85 Q 912.71 88.41 913.5 88.41 Q 914.1 88.41 914.47 88.1 Q 914.84 87.78 914.84 87.26 Q 914.84 86.84 914.6 86.54 Q 914.35 86.24 913.71 85.88 L 913.21 85.59 Q 912.28 85.06 911.91 84.59 Q 911.53 84.13 911.53 83.51 Q 911.53 82.67 912.13 82.13 Q 912.74 81.59 913.68 81.59 Q 914.51 81.59 915.44 81.87 L 915.44 82.81 Q 914.3 82.36 913.73 82.36 Q 913.2 82.36 912.86 82.64 Q 912.51 82.93 912.51 83.36 Q 912.51 83.72 912.76 84 Q 913.02 84.27 913.69 84.66 L 914.21 84.95 Q 915.15 85.48 915.52 85.96 Q 915.89 86.43 915.89 87.1 Q 915.89 88.04 915.19 88.61 Q 914.5 89.18 913.35 89.18 M 913.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 89.18 Q 921.34 89.18 920.43 88.19 Q 919.51 87.2 919.51 85.39 Q 919.51 83.58 920.44 82.59 Q 921.38 81.59 923.08 81.59 Q 924.05 81.59 925.35 81.91 L 925.35 82.87 Q 923.87 82.36 923.06 82.36 Q 921.89 82.36 921.24 83.16 Q 920.6 83.95 920.6 85.4 Q 920.6 86.78 921.29 87.58 Q 921.97 88.38 923.17 88.38 Q 924.19 88.38 925.36 87.75 L 925.36 88.63 Q 924.29 89.18 923.03 89.18 M 923.03 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 89.18 Q 930.62 89.18 929.49 88.86 L 929.49 87.85 Q 930.71 88.41 931.5 88.41 Q 932.1 88.41 932.47 88.1 Q 932.84 87.78 932.84 87.26 Q 932.84 86.84 932.6 86.54 Q 932.35 86.24 931.71 85.88 L 931.21 85.59 Q 930.28 85.06 929.91 84.59 Q 929.53 84.13 929.53 83.51 Q 929.53 82.67 930.13 82.13 Q 930.74 81.59 931.68 81.59 Q 932.51 81.59 933.44 81.87 L 933.44 82.81 Q 932.3 82.36 931.73 82.36 Q 931.2 82.36 930.86 82.64 Q 930.51 82.93 930.51 83.36 Q 930.51 83.72 930.76 84 Q 931.02 84.27 931.69 84.66 L 932.21 84.95 Q 933.15 85.48 933.52 85.96 Q 933.89 86.43 933.89 87.1 Q 933.89 88.04 933.19 88.61 Q 932.5 89.18 931.35 89.18 M 931.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 89.18 Q 939.62 89.18 938.49 88.86 L 938.49 87.85 Q 939.71 88.41 940.5 88.41 Q 941.1 88.41 941.47 88.1 Q 941.84 87.78 941.84 87.26 Q 941.84 86.84 941.6 86.54 Q 941.35 86.24 940.71 85.88 L 940.21 85.59 Q 939.28 85.06 938.91 84.59 Q 938.53 84.13 938.53 83.51 Q 938.53 82.67 939.13 82.13 Q 939.74 81.59 940.68 81.59 Q 941.51 81.59 942.44 81.87 L 942.44 82.81 Q 941.3 82.36 940.73 82.36 Q 940.2 82.36 939.86 82.64 Q 939.51 82.93 939.51 83.36 Q 939.51 83.72 939.76 84 Q 940.02 84.27 940.69 84.66 L 941.21 84.95 Q 942.15 85.48 942.52 85.96 Q 942.89 86.43 942.89 87.1 Q 942.89 88.04 942.19 88.61 Q 941.5 89.18 940.35 89.18 M 940.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 89.18 Q 948.34 89.18 947.43 88.19 Q 946.51 87.2 946.51 85.39 Q 946.51 83.58 947.44 82.59 Q 948.38 81.59 950.08 81.59 Q 951.05 81.59 952.35 81.91 L 952.35 82.87 Q 950.87 82.36 950.06 82.36 Q 948.89 82.36 948.24 83.16 Q 947.6 83.95 947.6 85.4 Q 947.6 86.78 948.29 87.58 Q 948.97 88.38 950.17 88.38 Q 951.19 88.38 952.36 87.75 L 952.36 88.63 Q 951.29 89.18 950.03 89.18 M 950.03 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 86.24 L 958.36 83.12 L 957.13 86.24 M 959.59 86.24 M 960.68 89 L 959.89 87 L 956.83 87 L 956.04 89 L 955.08 89 L 957.95 81.77 L 958.96 81.77 L 961.79 89 M 960.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 88.8 Q 969.05 89.18 968.07 89.18 Q 966.35 89.18 965.43 88.2 Q 964.51 87.22 964.51 85.39 Q 964.51 83.59 965.44 82.59 Q 966.37 81.59 968.06 81.59 Q 969.16 81.59 970.35 81.92 L 970.35 82.87 Q 968.86 82.36 968.06 82.36 Q 966.89 82.36 966.24 83.16 Q 965.6 83.95 965.6 85.4 Q 965.6 86.83 966.29 87.62 Q 966.98 88.41 968.23 88.41 Q 968.75 88.41 969.34 88.23 L 969.34 85.88 L 970.36 85.88 M 970.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 89 L 973.93 81.77 L 974.89 81.77 L 974.89 85.33 L 977.82 81.77 L 978.85 81.77 L 976.02 85.22 L 979.35 89 L 978.05 89 L 974.89 85.34 L 974.89 89 M 973.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 89 L 982.18 81.77 L 983.2 81.77 L 985.44 87.69 L 987.6 81.77 L 988.49 81.77 L 985.87 89 M 984.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.65 89 L 993.65 82.54 L 991.09 82.54 L 991.09 81.77 L 997.24 81.77 L 997.24 82.54 L 994.68 82.54 L 994.68 89 M 993.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 89.18 Q 1002.62 89.18 1001.49 88.86 L 1001.49 87.85 Q 1002.71 88.41 1003.5 88.41 Q 1004.1 88.41 1004.47 88.1 Q 1004.84 87.78 1004.84 87.26 Q 1004.84 86.84 1004.6 86.54 Q 1004.35 86.24 1003.71 85.88 L 1003.21 85.59 Q 1002.28 85.06 1001.91 84.59 Q 1001.53 84.13 1001.53 83.51 Q 1001.53 82.67 1002.13 82.13 Q 1002.74 81.59 1003.68 81.59 Q 1004.51 81.59 1005.44 81.87 L 1005.44 82.81 Q 1004.3 82.36 1003.73 82.36 Q 1003.2 82.36 1002.86 82.64 Q 1002.51 82.93 1002.51 83.36 Q 1002.51 83.72 1002.76 84 Q 1003.02 84.27 1003.69 84.66 L 1004.21 84.95 Q 1005.15 85.48 1005.52 85.96 Q 1005.89 86.43 1005.89 87.1 Q 1005.89 88.04 1005.19 88.61 Q 1004.5 89.18 1003.35 89.18 M 1003.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 88.8 Q 1014.05 89.18 1013.07 89.18 Q 1011.35 89.18 1010.43 88.2 Q 1009.51 87.22 1009.51 85.39 Q 1009.51 83.59 1010.44 82.59 Q 1011.37 81.59 1013.06 81.59 Q 1014.16 81.59 1015.35 81.92 L 1015.35 82.87 Q 1013.86 82.36 1013.06 82.36 Q 1011.89 82.36 1011.24 83.16 Q 1010.6 83.95 1010.6 85.4 Q 1010.6 86.83 1011.29 87.62 Q 1011.98 88.41 1013.23 88.41 Q 1013.75 88.41 1014.34 88.23 L 1014.34 85.88 L 1015.36 85.88 M 1015.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 89.18 Q 1020.62 89.18 1019.49 88.86 L 1019.49 87.85 Q 1020.71 88.41 1021.5 88.41 Q 1022.1 88.41 1022.47 88.1 Q 1022.84 87.78 1022.84 87.26 Q 1022.84 86.84 1022.6 86.54 Q 1022.35 86.24 1021.71 85.88 L 1021.21 85.59 Q 1020.28 85.06 1019.91 84.59 Q 1019.53 84.13 1019.53 83.51 Q 1019.53 82.67 1020.13 82.13 Q 1020.74 81.59 1021.68 81.59 Q 1022.51 81.59 1023.44 81.87 L 1023.44 82.81 Q 1022.3 82.36 1021.73 82.36 Q 1021.2 82.36 1020.86 82.64 Q 1020.51 82.93 1020.51 83.36 Q 1020.51 83.72 1020.76 84 Q 1021.02 84.27 1021.69 84.66 L 1022.21 84.95 Q 1023.15 85.48 1023.52 85.96 Q 1023.89 86.43 1023.89 87.1 Q 1023.89 88.04 1023.19 88.61 Q 1022.5 89.18 1021.35 89.18 M 1021.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 89 L 1027.18 81.77 L 1028.2 81.77 L 1030.44 87.69 L 1032.6 81.77 L 1033.49 81.77 L 1030.87 89 M 1029.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 89 L 1036.93 81.77 L 1037.94 81.77 L 1041.58 87.35 L 1041.58 81.77 L 1042.46 81.77 L 1042.46 89 L 1041.45 89 L 1037.81 83.42 L 1037.81 89 M 1036.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 90.45 Q 1049.64 89.89 1048.49 89.13 Q 1048.03 89.18 1047.78 89.18 Q 1046.33 89.18 1045.42 88.13 Q 1044.51 87.07 1044.51 85.39 Q 1044.51 83.66 1045.43 82.63 Q 1046.35 81.59 1047.89 81.59 Q 1049.43 81.59 1050.35 82.63 Q 1051.27 83.66 1051.27 85.4 Q 1051.27 87.89 1049.42 88.85 Q 1050.66 89.4 1052 89.63 M 1051.35 90.45 M 1047.86 88.41 Q 1048.97 88.41 1049.57 87.62 Q 1050.18 86.82 1050.18 85.37 Q 1050.18 83.96 1049.57 83.16 Q 1048.97 82.36 1047.89 82.36 Q 1046.81 82.36 1046.2 83.16 Q 1045.6 83.96 1045.6 85.38 Q 1045.6 86.79 1046.2 87.6 Q 1046.8 88.41 1047.86 88.41 M 1047.86 88.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1054.93 89 L 1054.93 81.77 L 1057.33 81.77 Q 1058.41 81.77 1059.07 82.01 Q 1059.73 82.25 1060.22 82.82 Q 1060.98 83.73 1060.98 85.22 Q 1060.98 87.02 1060.03 88.01 Q 1059.08 89 1057.35 89 M 1054.93 89 M 1055.96 88.23 L 1057.27 88.23 Q 1058.68 88.23 1059.26 87.48 Q 1059.89 86.67 1059.89 85.31 Q 1059.89 84.04 1059.27 83.31 Q 1058.9 82.87 1058.38 82.7 Q 1057.85 82.54 1056.8 82.54 L 1055.96 82.54 M 1055.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 89 L 1063.93 81.77 L 1066.33 81.77 Q 1067.41 81.77 1068.07 82.01 Q 1068.73 82.25 1069.22 82.82 Q 1069.98 83.73 1069.98 85.22 Q 1069.98 87.02 1069.03 88.01 Q 1068.08 89 1066.35 89 M 1063.93 89 M 1064.96 88.23 L 1066.27 88.23 Q 1067.68 88.23 1068.26 87.48 Q 1068.89 86.67 1068.89 85.31 Q 1068.89 84.04 1068.27 83.31 Q 1067.9 82.87 1067.38 82.7 Q 1066.85 82.54 1065.8 82.54 L 1064.96 82.54 M 1064.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.36 88.8 Q 1077.05 89.18 1076.07 89.18 Q 1074.35 89.18 1073.43 88.2 Q 1072.51 87.22 1072.51 85.39 Q 1072.51 83.59 1073.44 82.59 Q 1074.37 81.59 1076.06 81.59 Q 1077.16 81.59 1078.35 81.92 L 1078.35 82.87 Q 1076.86 82.36 1076.06 82.36 Q 1074.89 82.36 1074.24 83.16 Q 1073.6 83.95 1073.6 85.4 Q 1073.6 86.83 1074.29 87.62 Q 1074.98 88.41 1076.23 88.41 Q 1076.75 88.41 1077.34 88.23 L 1077.34 85.88 L 1078.36 85.88 M 1078.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 89.18 Q 1083.62 89.18 1082.49 88.86 L 1082.49 87.85 Q 1083.71 88.41 1084.5 88.41 Q 1085.1 88.41 1085.47 88.1 Q 1085.84 87.78 1085.84 87.26 Q 1085.84 86.84 1085.6 86.54 Q 1085.35 86.24 1084.71 85.88 L 1084.21 85.59 Q 1083.28 85.06 1082.91 84.59 Q 1082.53 84.13 1082.53 83.51 Q 1082.53 82.67 1083.13 82.13 Q 1083.74 81.59 1084.68 81.59 Q 1085.51 81.59 1086.44 81.87 L 1086.44 82.81 Q 1085.3 82.36 1084.73 82.36 Q 1084.2 82.36 1083.86 82.64 Q 1083.51 82.93 1083.51 83.36 Q 1083.51 83.72 1083.76 84 Q 1084.02 84.27 1084.69 84.66 L 1085.21 84.95 Q 1086.15 85.48 1086.52 85.96 Q 1086.89 86.43 1086.89 87.1 Q 1086.89 88.04 1086.19 88.61 Q 1085.5 89.18 1084.35 89.18 M 1084.35 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 89 L 1091.93 81.77 L 1095.97 81.77 L 1095.97 82.54 L 1092.96 82.54 L 1092.96 84.96 L 1095.49 84.96 L 1095.49 85.72 L 1092.96 85.72 L 1092.96 89 M 1091.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 89 L 1100.93 81.77 L 1101.96 81.77 L 1101.96 88.23 L 1105.21 88.23 L 1105.21 89 M 1100.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 89 L 1108.93 81.77 L 1111.33 81.77 Q 1112.41 81.77 1113.07 82.01 Q 1113.73 82.25 1114.22 82.82 Q 1114.98 83.73 1114.98 85.22 Q 1114.98 87.02 1114.03 88.01 Q 1113.08 89 1111.35 89 M 1108.93 89 M 1109.96 88.23 L 1111.27 88.23 Q 1112.68 88.23 1113.26 87.48 Q 1113.89 86.67 1113.89 85.31 Q 1113.89 84.04 1113.27 83.31 Q 1112.9 82.87 1112.38 82.7 Q 1111.85 82.54 1110.8 82.54 L 1109.96 82.54 M 1109.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 89 L 1117.93 81.77 L 1120.33 81.77 Q 1121.41 81.77 1122.07 82.01 Q 1122.73 82.25 1123.22 82.82 Q 1123.98 83.73 1123.98 85.22 Q 1123.98 87.02 1123.03 88.01 Q 1122.08 89 1120.35 89 M 1117.93 89 M 1118.96 88.23 L 1120.27 88.23 Q 1121.68 88.23 1122.26 87.48 Q 1122.89 86.67 1122.89 85.31 Q 1122.89 84.04 1122.27 83.31 Q 1121.9 82.87 1121.38 82.7 Q 1120.85 82.54 1119.8 82.54 L 1118.96 82.54 M 1118.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 89 L 1126.93 81.77 L 1129.33 81.77 Q 1130.41 81.77 1131.07 82.01 Q 1131.73 82.25 1132.22 82.82 Q 1132.98 83.73 1132.98 85.22 Q 1132.98 87.02 1132.03 88.01 Q 1131.08 89 1129.35 89 M 1126.93 89 M 1127.96 88.23 L 1129.27 88.23 Q 1130.68 88.23 1131.26 87.48 Q 1131.89 86.67 1131.89 85.31 Q 1131.89 84.04 1131.27 83.31 Q 1130.9 82.87 1130.38 82.7 Q 1129.85 82.54 1128.8 82.54 L 1127.96 82.54 M 1127.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 90.45 Q 1139.64 89.89 1138.49 89.13 Q 1138.03 89.18 1137.78 89.18 Q 1136.33 89.18 1135.42 88.13 Q 1134.51 87.07 1134.51 85.39 Q 1134.51 83.66 1135.43 82.63 Q 1136.35 81.59 1137.89 81.59 Q 1139.43 81.59 1140.35 82.63 Q 1141.27 83.66 1141.27 85.4 Q 1141.27 87.89 1139.42 88.85 Q 1140.66 89.4 1142 89.63 M 1141.35 90.45 M 1137.86 88.41 Q 1138.97 88.41 1139.57 87.62 Q 1140.18 86.82 1140.18 85.37 Q 1140.18 83.96 1139.57 83.16 Q 1138.97 82.36 1137.89 82.36 Q 1136.81 82.36 1136.2 83.16 Q 1135.6 83.96 1135.6 85.38 Q 1135.6 86.79 1136.2 87.6 Q 1136.8 88.41 1137.86 88.41 M 1137.86 88.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 89 L 1146.93 81.77 L 1147.95 81.77 L 1147.95 89 M 1146.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1153.93 89 L 1153.93 81.77 L 1154.89 81.77 L 1154.89 85.33 L 1157.82 81.77 L 1158.85 81.77 L 1156.02 85.22 L 1159.35 89 L 1158.05 89 L 1154.89 85.34 L 1154.89 89 M 1153.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 89 L 1163.93 81.77 L 1167.97 81.77 L 1167.97 82.54 L 1164.96 82.54 L 1164.96 84.86 L 1167.48 84.86 L 1167.48 85.62 L 1164.96 85.62 L 1164.96 88.23 L 1168.18 88.23 L 1168.18 89 M 1163.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 88.8 Q 1176.05 89.18 1175.07 89.18 Q 1173.35 89.18 1172.43 88.2 Q 1171.51 87.22 1171.51 85.39 Q 1171.51 83.59 1172.44 82.59 Q 1173.37 81.59 1175.06 81.59 Q 1176.16 81.59 1177.35 81.92 L 1177.35 82.87 Q 1175.86 82.36 1175.06 82.36 Q 1173.89 82.36 1173.24 83.16 Q 1172.6 83.95 1172.6 85.4 Q 1172.6 86.83 1173.29 87.62 Q 1173.98 88.41 1175.23 88.41 Q 1175.75 88.41 1176.34 88.23 L 1176.34 85.88 L 1177.36 85.88 M 1177.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 89 L 1179.01 81.77 L 1180 81.77 L 1181.48 87.48 L 1182.84 81.77 L 1183.82 81.77 L 1185.11 87.4 L 1186.71 81.77 L 1187.54 81.77 L 1185.51 89 L 1184.49 89 L 1183.22 83.43 L 1181.89 89 M 1180.87 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 89 L 1189.18 81.77 L 1190.2 81.77 L 1192.44 87.69 L 1194.6 81.77 L 1195.49 81.77 L 1192.87 89 M 1191.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 89 L 1199.93 81.77 L 1200.96 81.77 L 1200.96 88.23 L 1204.21 88.23 L 1204.21 89 M 1199.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 89 L 1209.65 82.54 L 1207.09 82.54 L 1207.09 81.77 L 1213.24 81.77 L 1213.24 82.54 L 1210.68 82.54 L 1210.68 89 M 1209.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 89.18 Q 1218.34 89.18 1217.43 88.19 Q 1216.51 87.2 1216.51 85.39 Q 1216.51 83.58 1217.44 82.59 Q 1218.38 81.59 1220.08 81.59 Q 1221.05 81.59 1222.35 81.91 L 1222.35 82.87 Q 1220.87 82.36 1220.06 82.36 Q 1218.89 82.36 1218.24 83.16 Q 1217.6 83.95 1217.6 85.4 Q 1217.6 86.78 1218.29 87.58 Q 1218.97 88.38 1220.17 88.38 Q 1221.19 88.38 1222.36 87.75 L 1222.36 88.63 Q 1221.29 89.18 1220.03 89.18 M 1220.03 89.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 89 L 1225.18 81.77 L 1226.2 81.77 L 1228.44 87.69 L 1230.6 81.77 L 1231.49 81.77 L 1228.87 89 M 1227.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 86.24 L 1237.36 83.12 L 1236.13 86.24 M 1238.59 86.24 M 1239.68 89 L 1238.89 87 L 1235.83 87 L 1235.04 89 L 1234.08 89 L 1236.95 81.77 L 1237.96 81.77 L 1240.79 89 M 1239.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 89 L 1245.5 85.98 L 1243.08 81.77 L 1244.25 81.77 L 1246.13 85.04 L 1248.15 81.77 L 1249.1 81.77 L 1246.52 85.96 L 1246.52 89 M 1245.5 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 89 L 1252.93 81.77 L 1254.9 81.77 Q 1256.21 81.77 1256.78 82.22 Q 1257.35 82.66 1257.35 83.67 Q 1257.35 84.82 1256.57 85.47 Q 1255.79 86.13 1254.4 86.13 L 1253.95 86.13 L 1253.95 89 M 1252.93 89 M 1253.95 85.35 L 1254.36 85.35 Q 1255.28 85.35 1255.77 84.93 Q 1256.27 84.51 1256.27 83.75 Q 1256.27 83.1 1255.88 82.82 Q 1255.49 82.54 1254.58 82.54 L 1253.95 82.54 M 1253.95 85.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 89 L 1263.65 82.54 L 1261.09 82.54 L 1261.09 81.77 L 1267.24 81.77 L 1267.24 82.54 L 1264.68 82.54 L 1264.68 89 M 1263.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1276.36 88.8 Q 1275.05 89.18 1274.07 89.18 Q 1272.35 89.18 1271.43 88.2 Q 1270.51 87.22 1270.51 85.39 Q 1270.51 83.59 1271.44 82.59 Q 1272.37 81.59 1274.06 81.59 Q 1275.16 81.59 1276.35 81.92 L 1276.35 82.87 Q 1274.86 82.36 1274.06 82.36 Q 1272.89 82.36 1272.24 83.16 Q 1271.6 83.95 1271.6 85.4 Q 1271.6 86.83 1272.29 87.62 Q 1272.98 88.41 1274.23 88.41 Q 1274.75 88.41 1275.34 88.23 L 1275.34 85.88 L 1276.36 85.88 M 1276.36 88.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 89 L 1279.93 81.77 L 1282.33 81.77 Q 1283.41 81.77 1284.07 82.01 Q 1284.73 82.25 1285.22 82.82 Q 1285.98 83.73 1285.98 85.22 Q 1285.98 87.02 1285.03 88.01 Q 1284.08 89 1282.35 89 M 1279.93 89 M 1280.96 88.23 L 1282.27 88.23 Q 1283.68 88.23 1284.26 87.48 Q 1284.89 86.67 1284.89 85.31 Q 1284.89 84.04 1284.27 83.31 Q 1283.9 82.87 1283.38 82.7 Q 1282.85 82.54 1281.8 82.54 L 1280.96 82.54 M 1280.96 88.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 89 L 1288.18 81.77 L 1289.2 81.77 L 1291.44 87.69 L 1293.6 81.77 L 1294.49 81.77 L 1291.87 89 M 1290.91 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 89 L 1299.65 82.54 L 1297.09 82.54 L 1297.09 81.77 L 1303.24 81.77 L 1303.24 82.54 L 1300.68 82.54 L 1300.68 89 M 1299.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 89 L 1308.93 81.77 L 1309.95 81.77 L 1309.95 89 M 1308.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 89 L 1316.93 81.77 L 1320.97 81.77 L 1320.97 82.54 L 1317.96 82.54 L 1317.96 84.86 L 1320.48 84.86 L 1320.48 85.62 L 1317.96 85.62 L 1317.96 88.23 L 1321.18 88.23 L 1321.18 89 M 1316.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 89 L 1326.65 82.54 L 1324.09 82.54 L 1324.09 81.77 L 1330.24 81.77 L 1330.24 82.54 L 1327.68 82.54 L 1327.68 89 M 1326.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 89 L 1333.93 81.77 L 1334.96 81.77 L 1334.96 84.82 L 1338.4 84.82 L 1338.4 81.77 L 1339.42 81.77 L 1339.42 89 L 1338.4 89 L 1338.4 85.59 L 1334.96 85.59 L 1334.96 89 M 1333.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 89 L 1342.93 81.77 L 1343.89 81.77 L 1343.89 85.33 L 1346.82 81.77 L 1347.85 81.77 L 1345.02 85.22 L 1348.35 89 L 1347.05 89 L 1343.89 85.34 L 1343.89 89 M 1342.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 89 L 1352.93 81.77 L 1356.97 81.77 L 1356.97 82.54 L 1353.96 82.54 L 1353.96 84.86 L 1356.48 84.86 L 1356.48 85.62 L 1353.96 85.62 L 1353.96 88.23 L 1357.18 88.23 L 1357.18 89 M 1352.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 89 L 1361.93 81.77 L 1365.97 81.77 L 1365.97 82.54 L 1362.96 82.54 L 1362.96 84.86 L 1365.48 84.86 L 1365.48 85.62 L 1362.96 85.62 L 1362.96 88.23 L 1366.18 88.23 L 1366.18 89 M 1361.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 89 L 1370.93 81.77 L 1374.97 81.77 L 1374.97 82.54 L 1371.96 82.54 L 1371.96 84.86 L 1374.48 84.86 L 1374.48 85.62 L 1371.96 85.62 L 1371.96 88.23 L 1375.18 88.23 L 1375.18 89 M 1370.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 89 L 1379.93 81.77 L 1380.96 81.77 L 1380.96 88.23 L 1384.21 88.23 L 1384.21 89 M 1379.93 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 89 L 1389.65 82.54 L 1387.09 82.54 L 1387.09 81.77 L 1393.24 81.77 L 1393.24 82.54 L 1390.68 82.54 L 1390.68 89 M 1389.65 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1400.59 86.24 L 1399.36 83.12 L 1398.13 86.24 M 1400.59 86.24 M 1401.68 89 L 1400.89 87 L 1397.83 87 L 1397.04 89 L 1396.08 89 L 1398.95 81.77 L 1399.96 81.77 L 1402.79 89 M 1401.68 89"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 86.47 L 1405.72 85.75 L 1410.06 85.75 L 1410.06 86.47 M 1405.72 86.47"/></g><rect x="0" y="91" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="91" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="91" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="91" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="91" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="91" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="91" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="91" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="91" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="91" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="91" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="91" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="91" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="91" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="91" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="91" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="91" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="91" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="91" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="91" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="91" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="91" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="990" y="91" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="91" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="91" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="91" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1053" y="91" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="91" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="91" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="91" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="91" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="91" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 102 L 0.93 94.77 L 2.35 94.77 L 4.36 100.36 L 6.42 94.77 L 7.69 94.77 L 7.69 102 L 6.73 102 L 6.73 96.12 L 4.74 101.52 L 3.75 101.52 L 1.81 96.11 L 1.81 102 M 0.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 99.24 L 13.36 96.12 L 12.13 99.24 M 14.59 99.24 M 15.68 102 L 14.89 100 L 11.83 100 L 11.04 102 L 10.08 102 L 12.95 94.77 L 13.96 94.77 L 16.79 102 M 15.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 23.59 99.24 L 22.36 96.12 L 21.13 99.24 M 23.59 99.24 M 24.68 102 L 23.89 100 L 20.83 100 L 20.04 102 L 19.08 102 L 21.95 94.77 L 22.96 94.77 L 25.79 102 M 24.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 102 L 30.65 95.54 L 28.09 95.54 L 28.09 94.77 L 34.24 94.77 L 34.24 95.54 L 31.68 95.54 L 31.68 102 M 30.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 99.47 L 37.72 98.75 L 42.06 98.75 L 42.06 99.47 M 37.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 99.47 L 46.72 98.75 L 51.06 98.75 L 51.06 99.47 M 46.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 57.65 102 L 57.65 95.54 L 55.09 95.54 L 55.09 94.77 L 61.24 94.77 L 61.24 95.54 L 58.68 95.54 L 58.68 102 M 57.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 66.65 102 L 66.65 95.54 L 64.09 95.54 L 64.09 94.77 L 70.24 94.77 L 70.24 95.54 L 67.68 95.54 L 67.68 102 M 66.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 75.65 102 L 75.65 95.54 L 73.09 95.54 L 73.09 94.77 L 79.24 94.77 L 79.24 95.54 L 76.68 95.54 L 76.68 102 M 75.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 81.93 102 L 81.93 94.77 L 83.35 94.77 L 85.36 100.36 L 87.42 94.77 L 88.69 94.77 L 88.69 102 L 87.73 102 L 87.73 96.12 L 85.74 101.52 L 84.75 101.52 L 82.81 96.11 L 82.81 102 M 81.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 90.93 102 L 90.93 94.77 L 92.35 94.77 L 94.36 100.36 L 96.42 94.77 L 97.69 94.77 L 97.69 102 L 96.73 102 L 96.73 96.12 L 94.74 101.52 L 93.75 101.52 L 91.81 96.11 L 91.81 102 M 90.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 106.36 101.8 Q 105.05 102.18 104.07 102.18 Q 102.35 102.18 101.43 101.2 Q 100.51 100.22 100.51 98.39 Q 100.51 96.59 101.44 95.59 Q 102.37 94.59 104.06 94.59 Q 105.16 94.59 106.35 94.92 L 106.35 95.87 Q 104.86 95.36 104.06 95.36 Q 102.89 95.36 102.24 96.16 Q 101.6 96.95 101.6 98.4 Q 101.6 99.83 102.29 100.62 Q 102.98 101.41 104.23 101.41 Q 104.75 101.41 105.34 101.23 L 105.34 98.88 L 106.36 98.88 M 106.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 109.72 99.47 L 109.72 98.75 L 114.06 98.75 L 114.06 99.47 M 109.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 118.72 99.47 L 118.72 98.75 L 123.06 98.75 L 123.06 99.47 M 118.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 126.93 102 L 126.93 94.77 L 128.35 94.77 L 130.36 100.36 L 132.42 94.77 L 133.69 94.77 L 133.69 102 L 132.73 102 L 132.73 96.12 L 130.74 101.52 L 129.75 101.52 L 127.81 96.11 L 127.81 102 M 126.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 140.59 99.24 L 139.36 96.12 L 138.13 99.24 M 140.59 99.24 M 141.68 102 L 140.89 100 L 137.83 100 L 137.04 102 L 136.08 102 L 138.95 94.77 L 139.96 94.77 L 142.79 102 M 141.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 102 L 147.65 95.54 L 145.09 95.54 L 145.09 94.77 L 151.24 94.77 L 151.24 95.54 L 148.68 95.54 L 148.68 102 M 147.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 156.65 102 L 156.65 95.54 L 154.09 95.54 L 154.09 94.77 L 160.24 94.77 L 160.24 95.54 L 157.68 95.54 L 157.68 102 M 156.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 102 L 164.93 94.77 L 168.97 94.77 L 168.97 95.54 L 165.96 95.54 L 165.96 97.96 L 168.49 97.96 L 168.49 98.72 L 165.96 98.72 L 165.96 102 M 164.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 174.91 102 L 172.18 94.77 L 173.2 94.77 L 175.44 100.69 L 177.6 94.77 L 178.49 94.77 L 175.87 102 M 174.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 102 L 181.93 94.77 L 183.9 94.77 Q 185.21 94.77 185.78 95.22 Q 186.35 95.66 186.35 96.67 Q 186.35 97.82 185.57 98.47 Q 184.79 99.13 183.4 99.13 L 182.95 99.13 L 182.95 102 M 181.93 102 M 182.95 98.35 L 183.36 98.35 Q 184.28 98.35 184.77 97.93 Q 185.27 97.51 185.27 96.75 Q 185.27 96.1 184.88 95.82 Q 184.49 95.54 183.58 95.54 L 182.95 95.54 M 182.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 102 L 190.93 94.77 L 191.89 94.77 L 191.89 98.33 L 194.82 94.77 L 195.85 94.77 L 193.02 98.22 L 196.35 102 L 195.05 102 L 191.89 98.34 L 191.89 102 M 190.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.93 102 L 199.93 94.77 L 201.9 94.77 Q 203.21 94.77 203.78 95.22 Q 204.35 95.66 204.35 96.67 Q 204.35 97.82 203.57 98.47 Q 202.79 99.13 201.4 99.13 L 200.95 99.13 L 200.95 102 M 199.93 102 M 200.95 98.35 L 201.36 98.35 Q 202.28 98.35 202.77 97.93 Q 203.27 97.51 203.27 96.75 Q 203.27 96.1 202.88 95.82 Q 202.49 95.54 201.58 95.54 L 200.95 95.54 M 200.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 214.35 103.45 Q 212.64 102.89 211.49 102.13 Q 211.03 102.18 210.78 102.18 Q 209.33 102.18 208.42 101.13 Q 207.51 100.07 207.51 98.39 Q 207.51 96.66 208.43 95.63 Q 209.35 94.59 210.89 94.59 Q 212.43 94.59 213.35 95.63 Q 214.27 96.66 214.27 98.4 Q 214.27 100.89 212.42 101.85 Q 213.66 102.4 215 102.63 M 214.35 103.45 M 210.86 101.41 Q 211.97 101.41 212.57 100.62 Q 213.18 99.82 213.18 98.37 Q 213.18 96.96 212.57 96.16 Q 211.97 95.36 210.89 95.36 Q 209.81 95.36 209.2 96.16 Q 208.6 96.96 208.6 98.38 Q 208.6 99.79 209.2 100.6 Q 209.8 101.41 210.86 101.41 M 210.86 101.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 221.59 99.24 L 220.36 96.12 L 219.13 99.24 M 221.59 99.24 M 222.68 102 L 221.89 100 L 218.83 100 L 218.04 102 L 217.08 102 L 219.95 94.77 L 220.96 94.77 L 223.79 102 M 222.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 102 L 226.93 94.77 L 228.9 94.77 Q 230.21 94.77 230.78 95.22 Q 231.35 95.66 231.35 96.67 Q 231.35 97.82 230.57 98.47 Q 229.79 99.13 228.4 99.13 L 227.95 99.13 L 227.95 102 M 226.93 102 M 227.95 98.35 L 228.36 98.35 Q 229.28 98.35 229.77 97.93 Q 230.27 97.51 230.27 96.75 Q 230.27 96.1 229.88 95.82 Q 229.49 95.54 228.58 95.54 L 227.95 95.54 M 227.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 235.93 102 L 235.93 94.77 L 237.9 94.77 Q 239.21 94.77 239.78 95.22 Q 240.35 95.66 240.35 96.67 Q 240.35 97.82 239.57 98.47 Q 238.79 99.13 237.4 99.13 L 236.95 99.13 L 236.95 102 M 235.93 102 M 236.95 98.35 L 237.36 98.35 Q 238.28 98.35 238.77 97.93 Q 239.27 97.51 239.27 96.75 Q 239.27 96.1 238.88 95.82 Q 238.49 95.54 237.58 95.54 L 236.95 95.54 M 236.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 243.93 102 L 243.93 94.77 L 245.35 94.77 L 247.36 100.36 L 249.42 94.77 L 250.69 94.77 L 250.69 102 L 249.73 102 L 249.73 96.12 L 247.74 101.52 L 246.75 101.52 L 244.81 96.11 L 244.81 102 M 243.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 252.93 102 L 252.93 94.77 L 254.35 94.77 L 256.36 100.36 L 258.42 94.77 L 259.69 94.77 L 259.69 102 L 258.73 102 L 258.73 96.12 L 256.74 101.52 L 255.75 101.52 L 253.81 96.11 L 253.81 102 M 252.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 266.59 99.24 L 265.36 96.12 L 264.13 99.24 M 266.59 99.24 M 267.68 102 L 266.89 100 L 263.83 100 L 263.04 102 L 262.08 102 L 264.95 94.77 L 265.96 94.77 L 268.79 102 M 267.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 275.59 99.24 L 274.36 96.12 L 273.13 99.24 M 275.59 99.24 M 276.68 102 L 275.89 100 L 272.83 100 L 272.04 102 L 271.08 102 L 273.95 94.77 L 274.96 94.77 L 277.79 102 M 276.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 281.93 102 L 281.93 94.77 L 282.96 94.77 L 282.96 101.23 L 286.21 101.23 L 286.21 102 M 281.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.93 102 L 289.93 94.77 L 291.9 94.77 Q 293.21 94.77 293.78 95.22 Q 294.35 95.66 294.35 96.67 Q 294.35 97.82 293.57 98.47 Q 292.79 99.13 291.4 99.13 L 290.95 99.13 L 290.95 102 M 289.93 102 M 290.95 98.35 L 291.36 98.35 Q 292.28 98.35 292.77 97.93 Q 293.27 97.51 293.27 96.75 Q 293.27 96.1 292.88 95.82 Q 292.49 95.54 291.58 95.54 L 290.95 95.54 M 290.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 301.35 102.18 Q 300.62 102.18 299.49 101.86 L 299.49 100.85 Q 300.71 101.41 301.5 101.41 Q 302.1 101.41 302.47 101.1 Q 302.84 100.78 302.84 100.26 Q 302.84 99.84 302.6 99.54 Q 302.35 99.24 301.71 98.88 L 301.21 98.59 Q 300.28 98.06 299.91 97.59 Q 299.53 97.13 299.53 96.51 Q 299.53 95.67 300.13 95.13 Q 300.74 94.59 301.68 94.59 Q 302.51 94.59 303.44 94.87 L 303.44 95.81 Q 302.3 95.36 301.73 95.36 Q 301.2 95.36 300.86 95.64 Q 300.51 95.93 300.51 96.36 Q 300.51 96.72 300.76 97 Q 301.02 97.27 301.69 97.66 L 302.21 97.95 Q 303.15 98.48 303.52 98.96 Q 303.89 99.43 303.89 100.1 Q 303.89 101.04 303.19 101.61 Q 302.5 102.18 301.35 102.18 M 301.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.93 102 L 307.93 94.77 L 308.94 94.77 L 312.58 100.35 L 312.58 94.77 L 313.46 94.77 L 313.46 102 L 312.45 102 L 308.81 96.42 L 308.81 102 M 307.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 318.65 102 L 318.65 95.54 L 316.09 95.54 L 316.09 94.77 L 322.24 94.77 L 322.24 95.54 L 319.68 95.54 L 319.68 102 M 318.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 331.36 101.8 Q 330.05 102.18 329.07 102.18 Q 327.35 102.18 326.43 101.2 Q 325.51 100.22 325.51 98.39 Q 325.51 96.59 326.44 95.59 Q 327.37 94.59 329.06 94.59 Q 330.16 94.59 331.35 94.92 L 331.35 95.87 Q 329.86 95.36 329.06 95.36 Q 327.89 95.36 327.24 96.16 Q 326.6 96.95 326.6 98.4 Q 326.6 99.83 327.29 100.62 Q 327.98 101.41 329.23 101.41 Q 329.75 101.41 330.34 101.23 L 330.34 98.88 L 331.36 98.88 M 331.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 334.93 102 L 334.93 94.77 L 337.12 94.77 Q 338.16 94.77 338.71 95.23 Q 339.27 95.69 339.27 96.57 Q 339.27 98.01 337.81 98.62 L 340.22 102 L 338.96 102 L 336.91 98.94 L 335.95 98.94 L 335.95 102 M 334.93 102 M 335.95 98.18 L 336.28 98.18 Q 338.21 98.18 338.21 96.66 Q 338.21 95.54 336.59 95.54 L 335.95 95.54 M 335.95 98.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 99.47 L 343.72 98.75 L 348.06 98.75 L 348.06 99.47 M 343.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 99.47 L 352.72 98.75 L 357.06 98.75 L 357.06 99.47 M 352.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 364.35 102.18 Q 363.62 102.18 362.49 101.86 L 362.49 100.85 Q 363.71 101.41 364.5 101.41 Q 365.1 101.41 365.47 101.1 Q 365.84 100.78 365.84 100.26 Q 365.84 99.84 365.6 99.54 Q 365.35 99.24 364.71 98.88 L 364.21 98.59 Q 363.28 98.06 362.91 97.59 Q 362.53 97.13 362.53 96.51 Q 362.53 95.67 363.13 95.13 Q 363.74 94.59 364.68 94.59 Q 365.51 94.59 366.44 94.87 L 366.44 95.81 Q 365.3 95.36 364.73 95.36 Q 364.2 95.36 363.86 95.64 Q 363.51 95.93 363.51 96.36 Q 363.51 96.72 363.76 97 Q 364.02 97.27 364.69 97.66 L 365.21 97.95 Q 366.15 98.48 366.52 98.96 Q 366.89 99.43 366.89 100.1 Q 366.89 101.04 366.19 101.61 Q 365.5 102.18 364.35 102.18 M 364.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 102 L 371.93 94.77 L 372.96 94.77 L 372.96 101.23 L 376.21 101.23 L 376.21 102 M 371.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 102 L 380.93 94.77 L 384.97 94.77 L 384.97 95.54 L 381.96 95.54 L 381.96 97.96 L 384.49 97.96 L 384.49 98.72 L 381.96 98.72 L 381.96 102 M 380.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 101.8 Q 393.05 102.18 392.07 102.18 Q 390.35 102.18 389.43 101.2 Q 388.51 100.22 388.51 98.39 Q 388.51 96.59 389.44 95.59 Q 390.37 94.59 392.06 94.59 Q 393.16 94.59 394.35 94.92 L 394.35 95.87 Q 392.86 95.36 392.06 95.36 Q 390.89 95.36 390.24 96.16 Q 389.6 96.95 389.6 98.4 Q 389.6 99.83 390.29 100.62 Q 390.98 101.41 392.23 101.41 Q 392.75 101.41 393.34 101.23 L 393.34 98.88 L 394.36 98.88 M 394.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 102 L 398.93 94.77 L 399.96 94.77 L 399.96 101.23 L 403.21 101.23 L 403.21 102 M 398.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 102 L 406.93 94.77 L 407.89 94.77 L 407.89 98.33 L 410.82 94.77 L 411.85 94.77 L 409.02 98.22 L 412.35 102 L 411.05 102 L 407.89 98.34 L 407.89 102 M 406.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 417.65 102 L 417.65 95.54 L 415.09 95.54 L 415.09 94.77 L 421.24 94.77 L 421.24 95.54 L 418.68 95.54 L 418.68 102 M 417.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 99.47 L 424.72 98.75 L 429.06 98.75 L 429.06 99.47 M 424.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 439.36 101.8 Q 438.05 102.18 437.07 102.18 Q 435.35 102.18 434.43 101.2 Q 433.51 100.22 433.51 98.39 Q 433.51 96.59 434.44 95.59 Q 435.37 94.59 437.06 94.59 Q 438.16 94.59 439.35 94.92 L 439.35 95.87 Q 437.86 95.36 437.06 95.36 Q 435.89 95.36 435.24 96.16 Q 434.6 96.95 434.6 98.4 Q 434.6 99.83 435.29 100.62 Q 435.98 101.41 437.23 101.41 Q 437.75 101.41 438.34 101.23 L 438.34 98.88 L 439.36 98.88 M 439.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 445.35 102.18 Q 444.62 102.18 443.49 101.86 L 443.49 100.85 Q 444.71 101.41 445.5 101.41 Q 446.1 101.41 446.47 101.1 Q 446.84 100.78 446.84 100.26 Q 446.84 99.84 446.6 99.54 Q 446.35 99.24 445.71 98.88 L 445.21 98.59 Q 444.28 98.06 443.91 97.59 Q 443.53 97.13 443.53 96.51 Q 443.53 95.67 444.13 95.13 Q 444.74 94.59 445.68 94.59 Q 446.51 94.59 447.44 94.87 L 447.44 95.81 Q 446.3 95.36 445.73 95.36 Q 445.2 95.36 444.86 95.64 Q 444.51 95.93 444.51 96.36 Q 444.51 96.72 444.76 97 Q 445.02 97.27 445.69 97.66 L 446.21 97.95 Q 447.15 98.48 447.52 98.96 Q 447.89 99.43 447.89 100.1 Q 447.89 101.04 447.19 101.61 Q 446.5 102.18 445.35 102.18 M 445.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.93 102 L 451.93 94.77 L 454.12 94.77 Q 455.16 94.77 455.71 95.23 Q 456.27 95.69 456.27 96.57 Q 456.27 98.01 454.81 98.62 L 457.22 102 L 455.96 102 L 453.91 98.94 L 452.95 98.94 L 452.95 102 M 451.93 102 M 452.95 98.18 L 453.28 98.18 Q 455.21 98.18 455.21 96.66 Q 455.21 95.54 453.59 95.54 L 452.95 95.54 M 452.95 98.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.72 99.47 L 460.72 98.75 L 465.06 98.75 L 465.06 99.47 M 460.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.72 99.47 L 469.72 98.75 L 474.06 98.75 L 474.06 99.47 M 469.72 99.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 101.8 Q 483.05 102.18 482.07 102.18 Q 480.35 102.18 479.43 101.2 Q 478.51 100.22 478.51 98.39 Q 478.51 96.59 479.44 95.59 Q 480.37 94.59 482.06 94.59 Q 483.16 94.59 484.35 94.92 L 484.35 95.87 Q 482.86 95.36 482.06 95.36 Q 480.89 95.36 480.24 96.16 Q 479.6 96.95 479.6 98.4 Q 479.6 99.83 480.29 100.62 Q 480.98 101.41 482.23 101.41 Q 482.75 101.41 483.34 101.23 L 483.34 98.88 L 484.36 98.88 M 484.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 493.36 101.8 Q 492.05 102.18 491.07 102.18 Q 489.35 102.18 488.43 101.2 Q 487.51 100.22 487.51 98.39 Q 487.51 96.59 488.44 95.59 Q 489.37 94.59 491.06 94.59 Q 492.16 94.59 493.35 94.92 L 493.35 95.87 Q 491.86 95.36 491.06 95.36 Q 489.89 95.36 489.24 96.16 Q 488.6 96.95 488.6 98.4 Q 488.6 99.83 489.29 100.62 Q 489.98 101.41 491.23 101.41 Q 491.75 101.41 492.34 101.23 L 492.34 98.88 L 493.36 98.88 M 493.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 496.93 102 L 496.93 94.77 L 499.12 94.77 Q 500.16 94.77 500.71 95.23 Q 501.27 95.69 501.27 96.57 Q 501.27 98.01 499.81 98.62 L 502.22 102 L 500.96 102 L 498.91 98.94 L 497.95 98.94 L 497.95 102 M 496.93 102 M 497.95 98.18 L 498.28 98.18 Q 500.21 98.18 500.21 96.66 Q 500.21 95.54 498.59 95.54 L 497.95 95.54 M 497.95 98.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 504.93 102 L 504.93 94.77 L 506.35 94.77 L 508.36 100.36 L 510.42 94.77 L 511.69 94.77 L 511.69 102 L 510.73 102 L 510.73 96.12 L 508.74 101.52 L 507.75 101.52 L 505.81 96.11 L 505.81 102 M 504.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 516.65 102 L 516.65 95.54 L 514.09 95.54 L 514.09 94.77 L 520.24 94.77 L 520.24 95.54 L 517.68 95.54 L 517.68 102 M 516.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 102 L 522.93 94.77 L 524.35 94.77 L 526.36 100.36 L 528.42 94.77 L 529.69 94.77 L 529.69 102 L 528.73 102 L 528.73 96.12 L 526.74 101.52 L 525.75 101.52 L 523.81 96.11 L 523.81 102 M 522.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 99.24 L 535.36 96.12 L 534.13 99.24 M 536.59 99.24 M 537.68 102 L 536.89 100 L 533.83 100 L 533.04 102 L 532.08 102 L 534.95 94.77 L 535.96 94.77 L 538.79 102 M 537.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 545.59 99.24 L 544.36 96.12 L 543.13 99.24 M 545.59 99.24 M 546.68 102 L 545.89 100 L 542.83 100 L 542.04 102 L 541.08 102 L 543.95 94.77 L 544.96 94.77 L 547.79 102 M 546.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 102 L 552.5 98.98 L 550.08 94.77 L 551.25 94.77 L 553.13 98.04 L 555.15 94.77 L 556.1 94.77 L 553.52 98.96 L 553.52 102 M 552.5 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 102 L 559.93 94.77 L 560.89 94.77 L 560.89 98.33 L 563.82 94.77 L 564.85 94.77 L 562.02 98.22 L 565.35 102 L 564.05 102 L 560.89 98.34 L 560.89 102 M 559.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 102 L 568.18 94.77 L 569.2 94.77 L 571.44 100.69 L 573.6 94.77 L 574.49 94.77 L 571.87 102 M 570.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 579.65 102 L 579.65 95.54 L 577.09 95.54 L 577.09 94.77 L 583.24 94.77 L 583.24 95.54 L 580.68 95.54 L 580.68 102 M 579.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 102 L 587.93 94.77 L 588.96 94.77 L 588.96 101.23 L 592.21 101.23 L 592.21 102 M 587.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.91 102 L 595.18 94.77 L 596.2 94.77 L 598.44 100.69 L 600.6 94.77 L 601.49 94.77 L 598.87 102 M 597.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 102 L 606.65 95.54 L 604.09 95.54 L 604.09 94.77 L 610.24 94.77 L 610.24 95.54 L 607.68 95.54 L 607.68 102 M 606.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 102 L 613.93 94.77 L 615.9 94.77 Q 617.21 94.77 617.78 95.22 Q 618.35 95.66 618.35 96.67 Q 618.35 97.82 617.57 98.47 Q 616.79 99.13 615.4 99.13 L 614.95 99.13 L 614.95 102 M 613.93 102 M 614.95 98.35 L 615.36 98.35 Q 616.28 98.35 616.77 97.93 Q 617.27 97.51 617.27 96.75 Q 617.27 96.1 616.88 95.82 Q 616.49 95.54 615.58 95.54 L 614.95 95.54 M 614.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 624.65 102 L 624.65 95.54 L 622.09 95.54 L 622.09 94.77 L 628.24 94.77 L 628.24 95.54 L 625.68 95.54 L 625.68 102 M 624.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 101.8 Q 636.05 102.18 635.07 102.18 Q 633.35 102.18 632.43 101.2 Q 631.51 100.22 631.51 98.39 Q 631.51 96.59 632.44 95.59 Q 633.37 94.59 635.06 94.59 Q 636.16 94.59 637.35 94.92 L 637.35 95.87 Q 635.86 95.36 635.06 95.36 Q 633.89 95.36 633.24 96.16 Q 632.6 96.95 632.6 98.4 Q 632.6 99.83 633.29 100.62 Q 633.98 101.41 635.23 101.41 Q 635.75 101.41 636.34 101.23 L 636.34 98.88 L 637.36 98.88 M 637.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 640.93 102 L 640.93 94.77 L 641.94 94.77 L 645.58 100.35 L 645.58 94.77 L 646.46 94.77 L 646.46 102 L 645.45 102 L 641.81 96.42 L 641.81 102 M 640.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.91 102 L 649.18 94.77 L 650.2 94.77 L 652.44 100.69 L 654.6 94.77 L 655.49 94.77 L 652.87 102 M 651.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 102 L 659.93 94.77 L 663.97 94.77 L 663.97 95.54 L 660.96 95.54 L 660.96 97.86 L 663.48 97.86 L 663.48 98.62 L 660.96 98.62 L 660.96 101.23 L 664.18 101.23 L 664.18 102 M 659.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 102 L 668.93 94.77 L 672.97 94.77 L 672.97 95.54 L 669.96 95.54 L 669.96 97.96 L 672.49 97.96 L 672.49 98.72 L 669.96 98.72 L 669.96 102 M 668.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 682.35 103.45 Q 680.64 102.89 679.49 102.13 Q 679.03 102.18 678.78 102.18 Q 677.33 102.18 676.42 101.13 Q 675.51 100.07 675.51 98.39 Q 675.51 96.66 676.43 95.63 Q 677.35 94.59 678.89 94.59 Q 680.43 94.59 681.35 95.63 Q 682.27 96.66 682.27 98.4 Q 682.27 100.89 680.42 101.85 Q 681.66 102.4 683 102.63 M 682.35 103.45 M 678.86 101.41 Q 679.97 101.41 680.57 100.62 Q 681.18 99.82 681.18 98.37 Q 681.18 96.96 680.57 96.16 Q 679.97 95.36 678.89 95.36 Q 677.81 95.36 677.2 96.16 Q 676.6 96.96 676.6 98.38 Q 676.6 99.79 677.2 100.6 Q 677.8 101.41 678.86 101.41 M 678.86 101.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 102.18 Q 687.34 102.18 686.43 101.19 Q 685.51 100.2 685.51 98.39 Q 685.51 96.58 686.44 95.59 Q 687.38 94.59 689.08 94.59 Q 690.05 94.59 691.35 94.91 L 691.35 95.87 Q 689.87 95.36 689.06 95.36 Q 687.89 95.36 687.24 96.16 Q 686.6 96.95 686.6 98.4 Q 686.6 99.78 687.29 100.58 Q 687.97 101.38 689.17 101.38 Q 690.19 101.38 691.36 100.75 L 691.36 101.63 Q 690.29 102.18 689.03 102.18 M 689.03 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 102 L 694.93 94.77 L 696.9 94.77 Q 698.21 94.77 698.78 95.22 Q 699.35 95.66 699.35 96.67 Q 699.35 97.82 698.57 98.47 Q 697.79 99.13 696.4 99.13 L 695.95 99.13 L 695.95 102 M 694.93 102 M 695.95 98.35 L 696.36 98.35 Q 697.28 98.35 697.77 97.93 Q 698.27 97.51 698.27 96.75 Q 698.27 96.1 697.88 95.82 Q 697.49 95.54 696.58 95.54 L 695.95 95.54 M 695.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 102 L 703.93 94.77 L 706.33 94.77 Q 707.41 94.77 708.07 95.01 Q 708.73 95.25 709.22 95.82 Q 709.98 96.73 709.98 98.22 Q 709.98 100.02 709.03 101.01 Q 708.08 102 706.35 102 M 703.93 102 M 704.96 101.23 L 706.27 101.23 Q 707.68 101.23 708.26 100.48 Q 708.89 99.67 708.89 98.31 Q 708.89 97.04 708.27 96.31 Q 707.9 95.87 707.38 95.7 Q 706.85 95.54 705.8 95.54 L 704.96 95.54 M 704.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 102 L 712.93 94.77 L 715.33 94.77 Q 716.41 94.77 717.07 95.01 Q 717.73 95.25 718.22 95.82 Q 718.98 96.73 718.98 98.22 Q 718.98 100.02 718.03 101.01 Q 717.08 102 715.35 102 M 712.93 102 M 713.96 101.23 L 715.27 101.23 Q 716.68 101.23 717.26 100.48 Q 717.89 99.67 717.89 98.31 Q 717.89 97.04 717.27 96.31 Q 716.9 95.87 716.38 95.7 Q 715.85 95.54 714.8 95.54 L 713.96 95.54 M 713.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 102 L 721.18 94.77 L 722.2 94.77 L 724.44 100.69 L 726.6 94.77 L 727.49 94.77 L 724.87 102 M 723.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 102 L 732.5 98.98 L 730.08 94.77 L 731.25 94.77 L 733.13 98.04 L 735.15 94.77 L 736.1 94.77 L 733.52 98.96 L 733.52 102 M 732.5 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 102 L 741.93 94.77 L 742.95 94.77 L 742.95 102 M 741.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 102 L 749.93 94.77 L 750.96 94.77 L 750.96 101.23 L 754.21 101.23 L 754.21 102 M 749.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 102 L 757.93 94.77 L 760.33 94.77 Q 761.41 94.77 762.07 95.01 Q 762.73 95.25 763.22 95.82 Q 763.98 96.73 763.98 98.22 Q 763.98 100.02 763.03 101.01 Q 762.08 102 760.35 102 M 757.93 102 M 758.96 101.23 L 760.27 101.23 Q 761.68 101.23 762.26 100.48 Q 762.89 99.67 762.89 98.31 Q 762.89 97.04 762.27 96.31 Q 761.9 95.87 761.38 95.7 Q 760.85 95.54 759.8 95.54 L 758.96 95.54 M 758.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 99.24 L 769.36 96.12 L 768.13 99.24 M 770.59 99.24 M 771.68 102 L 770.89 100 L 767.83 100 L 767.04 102 L 766.08 102 L 768.95 94.77 L 769.96 94.77 L 772.79 102 M 771.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 99.24 L 778.36 96.12 L 777.13 99.24 M 779.59 99.24 M 780.68 102 L 779.89 100 L 776.83 100 L 776.04 102 L 775.08 102 L 777.95 94.77 L 778.96 94.77 L 781.79 102 M 780.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 102 L 785.93 94.77 L 789.97 94.77 L 789.97 95.54 L 786.96 95.54 L 786.96 97.86 L 789.48 97.86 L 789.48 98.62 L 786.96 98.62 L 786.96 101.23 L 790.18 101.23 L 790.18 102 M 785.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 102 L 794.93 94.77 L 798.97 94.77 L 798.97 95.54 L 795.96 95.54 L 795.96 97.86 L 798.48 97.86 L 798.48 98.62 L 795.96 98.62 L 795.96 101.23 L 799.18 101.23 L 799.18 102 M 794.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 803.93 102 L 803.93 94.77 L 807.97 94.77 L 807.97 95.54 L 804.96 95.54 L 804.96 97.86 L 807.48 97.86 L 807.48 98.62 L 804.96 98.62 L 804.96 101.23 L 808.18 101.23 L 808.18 102 M 803.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 101.8 Q 816.05 102.18 815.07 102.18 Q 813.35 102.18 812.43 101.2 Q 811.51 100.22 811.51 98.39 Q 811.51 96.59 812.44 95.59 Q 813.37 94.59 815.06 94.59 Q 816.16 94.59 817.35 94.92 L 817.35 95.87 Q 815.86 95.36 815.06 95.36 Q 813.89 95.36 813.24 96.16 Q 812.6 96.95 812.6 98.4 Q 812.6 99.83 813.29 100.62 Q 813.98 101.41 815.23 101.41 Q 815.75 101.41 816.34 101.23 L 816.34 98.88 L 817.36 98.88 M 817.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 102 L 822.93 94.77 L 823.95 94.77 L 823.95 102 M 822.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 102 L 829.93 94.77 L 832.33 94.77 Q 833.41 94.77 834.07 95.01 Q 834.73 95.25 835.22 95.82 Q 835.98 96.73 835.98 98.22 Q 835.98 100.02 835.03 101.01 Q 834.08 102 832.35 102 M 829.93 102 M 830.96 101.23 L 832.27 101.23 Q 833.68 101.23 834.26 100.48 Q 834.89 99.67 834.89 98.31 Q 834.89 97.04 834.27 96.31 Q 833.9 95.87 833.38 95.7 Q 832.85 95.54 831.8 95.54 L 830.96 95.54 M 830.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 102 L 839.93 94.77 L 840.96 94.77 L 840.96 101.23 L 844.21 101.23 L 844.21 102 M 839.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 102 L 847.93 94.77 L 849.9 94.77 Q 851.21 94.77 851.78 95.22 Q 852.35 95.66 852.35 96.67 Q 852.35 97.82 851.57 98.47 Q 850.79 99.13 849.4 99.13 L 848.95 99.13 L 848.95 102 M 847.93 102 M 848.95 98.35 L 849.36 98.35 Q 850.28 98.35 850.77 97.93 Q 851.27 97.51 851.27 96.75 Q 851.27 96.1 850.88 95.82 Q 850.49 95.54 849.58 95.54 L 848.95 95.54 M 848.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 102 L 858.5 98.98 L 856.08 94.77 L 857.25 94.77 L 859.13 98.04 L 861.15 94.77 L 862.1 94.77 L 859.52 98.96 L 859.52 102 M 858.5 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 102.18 Q 867.62 102.18 866.49 101.86 L 866.49 100.85 Q 867.71 101.41 868.5 101.41 Q 869.1 101.41 869.47 101.1 Q 869.84 100.78 869.84 100.26 Q 869.84 99.84 869.6 99.54 Q 869.35 99.24 868.71 98.88 L 868.21 98.59 Q 867.28 98.06 866.91 97.59 Q 866.53 97.13 866.53 96.51 Q 866.53 95.67 867.13 95.13 Q 867.74 94.59 868.68 94.59 Q 869.51 94.59 870.44 94.87 L 870.44 95.81 Q 869.3 95.36 868.73 95.36 Q 868.2 95.36 867.86 95.64 Q 867.51 95.93 867.51 96.36 Q 867.51 96.72 867.76 97 Q 868.02 97.27 868.69 97.66 L 869.21 97.95 Q 870.15 98.48 870.52 98.96 Q 870.89 99.43 870.89 100.1 Q 870.89 101.04 870.19 101.61 Q 869.5 102.18 868.35 102.18 M 868.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 102.18 Q 876.34 102.18 875.43 101.19 Q 874.51 100.2 874.51 98.39 Q 874.51 96.58 875.44 95.59 Q 876.38 94.59 878.08 94.59 Q 879.05 94.59 880.35 94.91 L 880.35 95.87 Q 878.87 95.36 878.06 95.36 Q 876.89 95.36 876.24 96.16 Q 875.6 96.95 875.6 98.4 Q 875.6 99.78 876.29 100.58 Q 876.97 101.38 878.17 101.38 Q 879.19 101.38 880.36 100.75 L 880.36 101.63 Q 879.29 102.18 878.03 102.18 M 878.03 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 102 L 883.93 94.77 L 886.12 94.77 Q 887.16 94.77 887.71 95.23 Q 888.27 95.69 888.27 96.57 Q 888.27 98.01 886.81 98.62 L 889.22 102 L 887.96 102 L 885.91 98.94 L 884.95 98.94 L 884.95 102 M 883.93 102 M 884.95 98.18 L 885.28 98.18 Q 887.21 98.18 887.21 96.66 Q 887.21 95.54 885.59 95.54 L 884.95 95.54 M 884.95 98.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 99.24 L 895.36 96.12 L 894.13 99.24 M 896.59 99.24 M 897.68 102 L 896.89 100 L 893.83 100 L 893.04 102 L 892.08 102 L 894.95 94.77 L 895.96 94.77 L 898.79 102 M 897.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 101.8 Q 906.05 102.18 905.07 102.18 Q 903.35 102.18 902.43 101.2 Q 901.51 100.22 901.51 98.39 Q 901.51 96.59 902.44 95.59 Q 903.37 94.59 905.06 94.59 Q 906.16 94.59 907.35 94.92 L 907.35 95.87 Q 905.86 95.36 905.06 95.36 Q 903.89 95.36 903.24 96.16 Q 902.6 96.95 902.6 98.4 Q 902.6 99.83 903.29 100.62 Q 903.98 101.41 905.23 101.41 Q 905.75 101.41 906.34 101.23 L 906.34 98.88 L 907.36 98.88 M 907.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 102.18 Q 912.62 102.18 911.49 101.86 L 911.49 100.85 Q 912.71 101.41 913.5 101.41 Q 914.1 101.41 914.47 101.1 Q 914.84 100.78 914.84 100.26 Q 914.84 99.84 914.6 99.54 Q 914.35 99.24 913.71 98.88 L 913.21 98.59 Q 912.28 98.06 911.91 97.59 Q 911.53 97.13 911.53 96.51 Q 911.53 95.67 912.13 95.13 Q 912.74 94.59 913.68 94.59 Q 914.51 94.59 915.44 94.87 L 915.44 95.81 Q 914.3 95.36 913.73 95.36 Q 913.2 95.36 912.86 95.64 Q 912.51 95.93 912.51 96.36 Q 912.51 96.72 912.76 97 Q 913.02 97.27 913.69 97.66 L 914.21 97.95 Q 915.15 98.48 915.52 98.96 Q 915.89 99.43 915.89 100.1 Q 915.89 101.04 915.19 101.61 Q 914.5 102.18 913.35 102.18 M 913.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 102.18 Q 921.34 102.18 920.43 101.19 Q 919.51 100.2 919.51 98.39 Q 919.51 96.58 920.44 95.59 Q 921.38 94.59 923.08 94.59 Q 924.05 94.59 925.35 94.91 L 925.35 95.87 Q 923.87 95.36 923.06 95.36 Q 921.89 95.36 921.24 96.16 Q 920.6 96.95 920.6 98.4 Q 920.6 99.78 921.29 100.58 Q 921.97 101.38 923.17 101.38 Q 924.19 101.38 925.36 100.75 L 925.36 101.63 Q 924.29 102.18 923.03 102.18 M 923.03 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 102.18 Q 930.62 102.18 929.49 101.86 L 929.49 100.85 Q 930.71 101.41 931.5 101.41 Q 932.1 101.41 932.47 101.1 Q 932.84 100.78 932.84 100.26 Q 932.84 99.84 932.6 99.54 Q 932.35 99.24 931.71 98.88 L 931.21 98.59 Q 930.28 98.06 929.91 97.59 Q 929.53 97.13 929.53 96.51 Q 929.53 95.67 930.13 95.13 Q 930.74 94.59 931.68 94.59 Q 932.51 94.59 933.44 94.87 L 933.44 95.81 Q 932.3 95.36 931.73 95.36 Q 931.2 95.36 930.86 95.64 Q 930.51 95.93 930.51 96.36 Q 930.51 96.72 930.76 97 Q 931.02 97.27 931.69 97.66 L 932.21 97.95 Q 933.15 98.48 933.52 98.96 Q 933.89 99.43 933.89 100.1 Q 933.89 101.04 933.19 101.61 Q 932.5 102.18 931.35 102.18 M 931.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 102.18 Q 939.62 102.18 938.49 101.86 L 938.49 100.85 Q 939.71 101.41 940.5 101.41 Q 941.1 101.41 941.47 101.1 Q 941.84 100.78 941.84 100.26 Q 941.84 99.84 941.6 99.54 Q 941.35 99.24 940.71 98.88 L 940.21 98.59 Q 939.28 98.06 938.91 97.59 Q 938.53 97.13 938.53 96.51 Q 938.53 95.67 939.13 95.13 Q 939.74 94.59 940.68 94.59 Q 941.51 94.59 942.44 94.87 L 942.44 95.81 Q 941.3 95.36 940.73 95.36 Q 940.2 95.36 939.86 95.64 Q 939.51 95.93 939.51 96.36 Q 939.51 96.72 939.76 97 Q 940.02 97.27 940.69 97.66 L 941.21 97.95 Q 942.15 98.48 942.52 98.96 Q 942.89 99.43 942.89 100.1 Q 942.89 101.04 942.19 101.61 Q 941.5 102.18 940.35 102.18 M 940.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 102.18 Q 948.34 102.18 947.43 101.19 Q 946.51 100.2 946.51 98.39 Q 946.51 96.58 947.44 95.59 Q 948.38 94.59 950.08 94.59 Q 951.05 94.59 952.35 94.91 L 952.35 95.87 Q 950.87 95.36 950.06 95.36 Q 948.89 95.36 948.24 96.16 Q 947.6 96.95 947.6 98.4 Q 947.6 99.78 948.29 100.58 Q 948.97 101.38 950.17 101.38 Q 951.19 101.38 952.36 100.75 L 952.36 101.63 Q 951.29 102.18 950.03 102.18 M 950.03 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 99.24 L 958.36 96.12 L 957.13 99.24 M 959.59 99.24 M 960.68 102 L 959.89 100 L 956.83 100 L 956.04 102 L 955.08 102 L 957.95 94.77 L 958.96 94.77 L 961.79 102 M 960.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 101.8 Q 969.05 102.18 968.07 102.18 Q 966.35 102.18 965.43 101.2 Q 964.51 100.22 964.51 98.39 Q 964.51 96.59 965.44 95.59 Q 966.37 94.59 968.06 94.59 Q 969.16 94.59 970.35 94.92 L 970.35 95.87 Q 968.86 95.36 968.06 95.36 Q 966.89 95.36 966.24 96.16 Q 965.6 96.95 965.6 98.4 Q 965.6 99.83 966.29 100.62 Q 966.98 101.41 968.23 101.41 Q 968.75 101.41 969.34 101.23 L 969.34 98.88 L 970.36 98.88 M 970.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 102 L 973.93 94.77 L 974.89 94.77 L 974.89 98.33 L 977.82 94.77 L 978.85 94.77 L 976.02 98.22 L 979.35 102 L 978.05 102 L 974.89 98.34 L 974.89 102 M 973.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 983.93 102 L 983.93 94.77 L 984.96 94.77 L 984.96 101.23 L 988.21 101.23 L 988.21 102 M 983.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 991.93 102 L 991.93 94.77 L 992.89 94.77 L 992.89 98.33 L 995.82 94.77 L 996.85 94.77 L 994.02 98.22 L 997.35 102 L 996.05 102 L 992.89 98.34 L 992.89 102 M 991.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1002.65 102 L 1002.65 95.54 L 1000.09 95.54 L 1000.09 94.77 L 1006.24 94.77 L 1006.24 95.54 L 1003.68 95.54 L 1003.68 102 M 1002.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 101.8 Q 1014.05 102.18 1013.07 102.18 Q 1011.35 102.18 1010.43 101.2 Q 1009.51 100.22 1009.51 98.39 Q 1009.51 96.59 1010.44 95.59 Q 1011.37 94.59 1013.06 94.59 Q 1014.16 94.59 1015.35 94.92 L 1015.35 95.87 Q 1013.86 95.36 1013.06 95.36 Q 1011.89 95.36 1011.24 96.16 Q 1010.6 96.95 1010.6 98.4 Q 1010.6 99.83 1011.29 100.62 Q 1011.98 101.41 1013.23 101.41 Q 1013.75 101.41 1014.34 101.23 L 1014.34 98.88 L 1015.36 98.88 M 1015.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 102.18 Q 1020.62 102.18 1019.49 101.86 L 1019.49 100.85 Q 1020.71 101.41 1021.5 101.41 Q 1022.1 101.41 1022.47 101.1 Q 1022.84 100.78 1022.84 100.26 Q 1022.84 99.84 1022.6 99.54 Q 1022.35 99.24 1021.71 98.88 L 1021.21 98.59 Q 1020.28 98.06 1019.91 97.59 Q 1019.53 97.13 1019.53 96.51 Q 1019.53 95.67 1020.13 95.13 Q 1020.74 94.59 1021.68 94.59 Q 1022.51 94.59 1023.44 94.87 L 1023.44 95.81 Q 1022.3 95.36 1021.73 95.36 Q 1021.2 95.36 1020.86 95.64 Q 1020.51 95.93 1020.51 96.36 Q 1020.51 96.72 1020.76 97 Q 1021.02 97.27 1021.69 97.66 L 1022.21 97.95 Q 1023.15 98.48 1023.52 98.96 Q 1023.89 99.43 1023.89 100.1 Q 1023.89 101.04 1023.19 101.61 Q 1022.5 102.18 1021.35 102.18 M 1021.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1028.93 102 L 1028.93 94.77 L 1029.96 94.77 L 1029.96 101.23 L 1033.21 101.23 L 1033.21 102 M 1028.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 102 L 1036.93 94.77 L 1037.94 94.77 L 1041.58 100.35 L 1041.58 94.77 L 1042.46 94.77 L 1042.46 102 L 1041.45 102 L 1037.81 96.42 L 1037.81 102 M 1036.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 103.45 Q 1049.64 102.89 1048.49 102.13 Q 1048.03 102.18 1047.78 102.18 Q 1046.33 102.18 1045.42 101.13 Q 1044.51 100.07 1044.51 98.39 Q 1044.51 96.66 1045.43 95.63 Q 1046.35 94.59 1047.89 94.59 Q 1049.43 94.59 1050.35 95.63 Q 1051.27 96.66 1051.27 98.4 Q 1051.27 100.89 1049.42 101.85 Q 1050.66 102.4 1052 102.63 M 1051.35 103.45 M 1047.86 101.41 Q 1048.97 101.41 1049.57 100.62 Q 1050.18 99.82 1050.18 98.37 Q 1050.18 96.96 1049.57 96.16 Q 1048.97 95.36 1047.89 95.36 Q 1046.81 95.36 1046.2 96.16 Q 1045.6 96.96 1045.6 98.38 Q 1045.6 99.79 1046.2 100.6 Q 1046.8 101.41 1047.86 101.41 M 1047.86 101.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1054.93 102 L 1054.93 94.77 L 1057.33 94.77 Q 1058.41 94.77 1059.07 95.01 Q 1059.73 95.25 1060.22 95.82 Q 1060.98 96.73 1060.98 98.22 Q 1060.98 100.02 1060.03 101.01 Q 1059.08 102 1057.35 102 M 1054.93 102 M 1055.96 101.23 L 1057.27 101.23 Q 1058.68 101.23 1059.26 100.48 Q 1059.89 99.67 1059.89 98.31 Q 1059.89 97.04 1059.27 96.31 Q 1058.9 95.87 1058.38 95.7 Q 1057.85 95.54 1056.8 95.54 L 1055.96 95.54 M 1055.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 102 L 1063.93 94.77 L 1066.33 94.77 Q 1067.41 94.77 1068.07 95.01 Q 1068.73 95.25 1069.22 95.82 Q 1069.98 96.73 1069.98 98.22 Q 1069.98 100.02 1069.03 101.01 Q 1068.08 102 1066.35 102 M 1063.93 102 M 1064.96 101.23 L 1066.27 101.23 Q 1067.68 101.23 1068.26 100.48 Q 1068.89 99.67 1068.89 98.31 Q 1068.89 97.04 1068.27 96.31 Q 1067.9 95.87 1067.38 95.7 Q 1066.85 95.54 1065.8 95.54 L 1064.96 95.54 M 1064.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 103.45 Q 1076.64 102.89 1075.49 102.13 Q 1075.03 102.18 1074.78 102.18 Q 1073.33 102.18 1072.42 101.13 Q 1071.51 100.07 1071.51 98.39 Q 1071.51 96.66 1072.43 95.63 Q 1073.35 94.59 1074.89 94.59 Q 1076.43 94.59 1077.35 95.63 Q 1078.27 96.66 1078.27 98.4 Q 1078.27 100.89 1076.42 101.85 Q 1077.66 102.4 1079 102.63 M 1078.35 103.45 M 1074.86 101.41 Q 1075.97 101.41 1076.57 100.62 Q 1077.18 99.82 1077.18 98.37 Q 1077.18 96.96 1076.57 96.16 Q 1075.97 95.36 1074.89 95.36 Q 1073.81 95.36 1073.2 96.16 Q 1072.6 96.96 1072.6 98.38 Q 1072.6 99.79 1073.2 100.6 Q 1073.8 101.41 1074.86 101.41 M 1074.86 101.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 102.18 Q 1083.62 102.18 1082.49 101.86 L 1082.49 100.85 Q 1083.71 101.41 1084.5 101.41 Q 1085.1 101.41 1085.47 101.1 Q 1085.84 100.78 1085.84 100.26 Q 1085.84 99.84 1085.6 99.54 Q 1085.35 99.24 1084.71 98.88 L 1084.21 98.59 Q 1083.28 98.06 1082.91 97.59 Q 1082.53 97.13 1082.53 96.51 Q 1082.53 95.67 1083.13 95.13 Q 1083.74 94.59 1084.68 94.59 Q 1085.51 94.59 1086.44 94.87 L 1086.44 95.81 Q 1085.3 95.36 1084.73 95.36 Q 1084.2 95.36 1083.86 95.64 Q 1083.51 95.93 1083.51 96.36 Q 1083.51 96.72 1083.76 97 Q 1084.02 97.27 1084.69 97.66 L 1085.21 97.95 Q 1086.15 98.48 1086.52 98.96 Q 1086.89 99.43 1086.89 100.1 Q 1086.89 101.04 1086.19 101.61 Q 1085.5 102.18 1084.35 102.18 M 1084.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 102 L 1091.93 94.77 L 1095.97 94.77 L 1095.97 95.54 L 1092.96 95.54 L 1092.96 97.96 L 1095.49 97.96 L 1095.49 98.72 L 1092.96 98.72 L 1092.96 102 M 1091.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 102 L 1100.93 94.77 L 1101.96 94.77 L 1101.96 101.23 L 1105.21 101.23 L 1105.21 102 M 1100.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 102 L 1108.93 94.77 L 1111.33 94.77 Q 1112.41 94.77 1113.07 95.01 Q 1113.73 95.25 1114.22 95.82 Q 1114.98 96.73 1114.98 98.22 Q 1114.98 100.02 1114.03 101.01 Q 1113.08 102 1111.35 102 M 1108.93 102 M 1109.96 101.23 L 1111.27 101.23 Q 1112.68 101.23 1113.26 100.48 Q 1113.89 99.67 1113.89 98.31 Q 1113.89 97.04 1113.27 96.31 Q 1112.9 95.87 1112.38 95.7 Q 1111.85 95.54 1110.8 95.54 L 1109.96 95.54 M 1109.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 102 L 1117.93 94.77 L 1120.33 94.77 Q 1121.41 94.77 1122.07 95.01 Q 1122.73 95.25 1123.22 95.82 Q 1123.98 96.73 1123.98 98.22 Q 1123.98 100.02 1123.03 101.01 Q 1122.08 102 1120.35 102 M 1117.93 102 M 1118.96 101.23 L 1120.27 101.23 Q 1121.68 101.23 1122.26 100.48 Q 1122.89 99.67 1122.89 98.31 Q 1122.89 97.04 1122.27 96.31 Q 1121.9 95.87 1121.38 95.7 Q 1120.85 95.54 1119.8 95.54 L 1118.96 95.54 M 1118.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 102 L 1126.93 94.77 L 1129.33 94.77 Q 1130.41 94.77 1131.07 95.01 Q 1131.73 95.25 1132.22 95.82 Q 1132.98 96.73 1132.98 98.22 Q 1132.98 100.02 1132.03 101.01 Q 1131.08 102 1129.35 102 M 1126.93 102 M 1127.96 101.23 L 1129.27 101.23 Q 1130.68 101.23 1131.26 100.48 Q 1131.89 99.67 1131.89 98.31 Q 1131.89 97.04 1131.27 96.31 Q 1130.9 95.87 1130.38 95.7 Q 1129.85 95.54 1128.8 95.54 L 1127.96 95.54 M 1127.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 103.45 Q 1139.64 102.89 1138.49 102.13 Q 1138.03 102.18 1137.78 102.18 Q 1136.33 102.18 1135.42 101.13 Q 1134.51 100.07 1134.51 98.39 Q 1134.51 96.66 1135.43 95.63 Q 1136.35 94.59 1137.89 94.59 Q 1139.43 94.59 1140.35 95.63 Q 1141.27 96.66 1141.27 98.4 Q 1141.27 100.89 1139.42 101.85 Q 1140.66 102.4 1142 102.63 M 1141.35 103.45 M 1137.86 101.41 Q 1138.97 101.41 1139.57 100.62 Q 1140.18 99.82 1140.18 98.37 Q 1140.18 96.96 1139.57 96.16 Q 1138.97 95.36 1137.89 95.36 Q 1136.81 95.36 1136.2 96.16 Q 1135.6 96.96 1135.6 98.38 Q 1135.6 99.79 1136.2 100.6 Q 1136.8 101.41 1137.86 101.41 M 1137.86 101.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 102 L 1146.93 94.77 L 1147.95 94.77 L 1147.95 102 M 1146.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1153.93 102 L 1153.93 94.77 L 1156.33 94.77 Q 1157.41 94.77 1158.07 95.01 Q 1158.73 95.25 1159.22 95.82 Q 1159.98 96.73 1159.98 98.22 Q 1159.98 100.02 1159.03 101.01 Q 1158.08 102 1156.35 102 M 1153.93 102 M 1154.96 101.23 L 1156.27 101.23 Q 1157.68 101.23 1158.26 100.48 Q 1158.89 99.67 1158.89 98.31 Q 1158.89 97.04 1158.27 96.31 Q 1157.9 95.87 1157.38 95.7 Q 1156.85 95.54 1155.8 95.54 L 1154.96 95.54 M 1154.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 102 L 1163.93 94.77 L 1167.97 94.77 L 1167.97 95.54 L 1164.96 95.54 L 1164.96 97.86 L 1167.48 97.86 L 1167.48 98.62 L 1164.96 98.62 L 1164.96 101.23 L 1168.18 101.23 L 1168.18 102 M 1163.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 101.8 Q 1176.05 102.18 1175.07 102.18 Q 1173.35 102.18 1172.43 101.2 Q 1171.51 100.22 1171.51 98.39 Q 1171.51 96.59 1172.44 95.59 Q 1173.37 94.59 1175.06 94.59 Q 1176.16 94.59 1177.35 94.92 L 1177.35 95.87 Q 1175.86 95.36 1175.06 95.36 Q 1173.89 95.36 1173.24 96.16 Q 1172.6 96.95 1172.6 98.4 Q 1172.6 99.83 1173.29 100.62 Q 1173.98 101.41 1175.23 101.41 Q 1175.75 101.41 1176.34 101.23 L 1176.34 98.88 L 1177.36 98.88 M 1177.36 101.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 102 L 1179.01 94.77 L 1180 94.77 L 1181.48 100.48 L 1182.84 94.77 L 1183.82 94.77 L 1185.11 100.4 L 1186.71 94.77 L 1187.54 94.77 L 1185.51 102 L 1184.49 102 L 1183.22 96.43 L 1181.89 102 M 1180.87 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 102 L 1189.18 94.77 L 1190.2 94.77 L 1192.44 100.69 L 1194.6 94.77 L 1195.49 94.77 L 1192.87 102 M 1191.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 102 L 1199.93 94.77 L 1200.96 94.77 L 1200.96 101.23 L 1204.21 101.23 L 1204.21 102 M 1199.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 102 L 1209.65 95.54 L 1207.09 95.54 L 1207.09 94.77 L 1213.24 94.77 L 1213.24 95.54 L 1210.68 95.54 L 1210.68 102 M 1209.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 102.18 Q 1218.34 102.18 1217.43 101.19 Q 1216.51 100.2 1216.51 98.39 Q 1216.51 96.58 1217.44 95.59 Q 1218.38 94.59 1220.08 94.59 Q 1221.05 94.59 1222.35 94.91 L 1222.35 95.87 Q 1220.87 95.36 1220.06 95.36 Q 1218.89 95.36 1218.24 96.16 Q 1217.6 96.95 1217.6 98.4 Q 1217.6 99.78 1218.29 100.58 Q 1218.97 101.38 1220.17 101.38 Q 1221.19 101.38 1222.36 100.75 L 1222.36 101.63 Q 1221.29 102.18 1220.03 102.18 M 1220.03 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1229.59 99.24 L 1228.36 96.12 L 1227.13 99.24 M 1229.59 99.24 M 1230.68 102 L 1229.89 100 L 1226.83 100 L 1226.04 102 L 1225.08 102 L 1227.95 94.77 L 1228.96 94.77 L 1231.79 102 M 1230.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 99.24 L 1237.36 96.12 L 1236.13 99.24 M 1238.59 99.24 M 1239.68 102 L 1238.89 100 L 1235.83 100 L 1235.04 102 L 1234.08 102 L 1236.95 94.77 L 1237.96 94.77 L 1240.79 102 M 1239.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 102 L 1245.5 98.98 L 1243.08 94.77 L 1244.25 94.77 L 1246.13 98.04 L 1248.15 94.77 L 1249.1 94.77 L 1246.52 98.96 L 1246.52 102 M 1245.5 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 102 L 1252.93 94.77 L 1254.9 94.77 Q 1256.21 94.77 1256.78 95.22 Q 1257.35 95.66 1257.35 96.67 Q 1257.35 97.82 1256.57 98.47 Q 1255.79 99.13 1254.4 99.13 L 1253.95 99.13 L 1253.95 102 M 1252.93 102 M 1253.95 98.35 L 1254.36 98.35 Q 1255.28 98.35 1255.77 97.93 Q 1256.27 97.51 1256.27 96.75 Q 1256.27 96.1 1255.88 95.82 Q 1255.49 95.54 1254.58 95.54 L 1253.95 95.54 M 1253.95 98.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.91 102 L 1261.18 94.77 L 1262.2 94.77 L 1264.44 100.69 L 1266.6 94.77 L 1267.49 94.77 L 1264.87 102 M 1263.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 102.18 Q 1272.62 102.18 1271.49 101.86 L 1271.49 100.85 Q 1272.71 101.41 1273.5 101.41 Q 1274.1 101.41 1274.47 101.1 Q 1274.84 100.78 1274.84 100.26 Q 1274.84 99.84 1274.6 99.54 Q 1274.35 99.24 1273.71 98.88 L 1273.21 98.59 Q 1272.28 98.06 1271.91 97.59 Q 1271.53 97.13 1271.53 96.51 Q 1271.53 95.67 1272.13 95.13 Q 1272.74 94.59 1273.68 94.59 Q 1274.51 94.59 1275.44 94.87 L 1275.44 95.81 Q 1274.3 95.36 1273.73 95.36 Q 1273.2 95.36 1272.86 95.64 Q 1272.51 95.93 1272.51 96.36 Q 1272.51 96.72 1272.76 97 Q 1273.02 97.27 1273.69 97.66 L 1274.21 97.95 Q 1275.15 98.48 1275.52 98.96 Q 1275.89 99.43 1275.89 100.1 Q 1275.89 101.04 1275.19 101.61 Q 1274.5 102.18 1273.35 102.18 M 1273.35 102.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 102 L 1279.93 94.77 L 1282.33 94.77 Q 1283.41 94.77 1284.07 95.01 Q 1284.73 95.25 1285.22 95.82 Q 1285.98 96.73 1285.98 98.22 Q 1285.98 100.02 1285.03 101.01 Q 1284.08 102 1282.35 102 M 1279.93 102 M 1280.96 101.23 L 1282.27 101.23 Q 1283.68 101.23 1284.26 100.48 Q 1284.89 99.67 1284.89 98.31 Q 1284.89 97.04 1284.27 96.31 Q 1283.9 95.87 1283.38 95.7 Q 1282.85 95.54 1281.8 95.54 L 1280.96 95.54 M 1280.96 101.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 102 L 1288.18 94.77 L 1289.2 94.77 L 1291.44 100.69 L 1293.6 94.77 L 1294.49 94.77 L 1291.87 102 M 1290.91 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 102 L 1299.65 95.54 L 1297.09 95.54 L 1297.09 94.77 L 1303.24 94.77 L 1303.24 95.54 L 1300.68 95.54 L 1300.68 102 M 1299.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 102 L 1308.93 94.77 L 1309.95 94.77 L 1309.95 102 M 1308.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 102 L 1316.93 94.77 L 1320.97 94.77 L 1320.97 95.54 L 1317.96 95.54 L 1317.96 97.86 L 1320.48 97.86 L 1320.48 98.62 L 1317.96 98.62 L 1317.96 101.23 L 1321.18 101.23 L 1321.18 102 M 1316.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 102 L 1326.65 95.54 L 1324.09 95.54 L 1324.09 94.77 L 1330.24 94.77 L 1330.24 95.54 L 1327.68 95.54 L 1327.68 102 M 1326.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 102 L 1333.93 94.77 L 1334.96 94.77 L 1334.96 97.82 L 1338.4 97.82 L 1338.4 94.77 L 1339.42 94.77 L 1339.42 102 L 1338.4 102 L 1338.4 98.59 L 1334.96 98.59 L 1334.96 102 M 1333.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 102 L 1342.93 94.77 L 1343.89 94.77 L 1343.89 98.33 L 1346.82 94.77 L 1347.85 94.77 L 1345.02 98.22 L 1348.35 102 L 1347.05 102 L 1343.89 98.34 L 1343.89 102 M 1342.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 102 L 1352.93 94.77 L 1356.97 94.77 L 1356.97 95.54 L 1353.96 95.54 L 1353.96 97.86 L 1356.48 97.86 L 1356.48 98.62 L 1353.96 98.62 L 1353.96 101.23 L 1357.18 101.23 L 1357.18 102 M 1352.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 102 L 1361.93 94.77 L 1365.97 94.77 L 1365.97 95.54 L 1362.96 95.54 L 1362.96 97.86 L 1365.48 97.86 L 1365.48 98.62 L 1362.96 98.62 L 1362.96 101.23 L 1366.18 101.23 L 1366.18 102 M 1361.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 102 L 1370.93 94.77 L 1374.97 94.77 L 1374.97 95.54 L 1371.96 95.54 L 1371.96 97.86 L 1374.48 97.86 L 1374.48 98.62 L 1371.96 98.62 L 1371.96 101.23 L 1375.18 101.23 L 1375.18 102 M 1370.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 102 L 1379.93 94.77 L 1380.96 94.77 L 1380.96 101.23 L 1384.21 101.23 L 1384.21 102 M 1379.93 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 102 L 1389.65 95.54 L 1387.09 95.54 L 1387.09 94.77 L 1393.24 94.77 L 1393.24 95.54 L 1390.68 95.54 L 1390.68 102 M 1389.65 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1400.59 99.24 L 1399.36 96.12 L 1398.13 99.24 M 1400.59 99.24 M 1401.68 102 L 1400.89 100 L 1397.83 100 L 1397.04 102 L 1396.08 102 L 1398.95 94.77 L 1399.96 94.77 L 1402.79 102 M 1401.68 102"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 99.47 L 1405.72 98.75 L 1410.06 98.75 L 1410.06 99.47 M 1405.72 99.47"/></g><rect x="0" y="104" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="104" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="104" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="104" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="104" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="594" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="104" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="104" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="104" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="104" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="104" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="104" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="104" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="104" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="104" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="104" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="104" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="104" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="104" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="104" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="104" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="104" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="104" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="104" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="104" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="104" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="104" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="104" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="104" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1.72 112.47 L 1.72 111.75 L 6.06 111.75 L 6.06 112.47 M 1.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 10.72 112.47 L 10.72 111.75 L 15.06 111.75 L 15.06 112.47 M 10.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 19.72 112.47 L 19.72 111.75 L 24.06 111.75 L 24.06 112.47 M 19.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 28.72 112.47 L 28.72 111.75 L 33.06 111.75 L 33.06 112.47 M 28.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 112.47 L 37.72 111.75 L 42.06 111.75 L 42.06 112.47 M 37.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 112.47 L 46.72 111.75 L 51.06 111.75 L 51.06 112.47 M 46.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 112.47 L 55.72 111.75 L 60.06 111.75 L 60.06 112.47 M 55.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 112.47 L 64.72 111.75 L 69.06 111.75 L 69.06 112.47 M 64.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 73.72 112.47 L 73.72 111.75 L 78.06 111.75 L 78.06 112.47 M 73.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 82.72 112.47 L 82.72 111.75 L 87.06 111.75 L 87.06 112.47 M 82.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 91.72 112.47 L 91.72 111.75 L 96.06 111.75 L 96.06 112.47 M 91.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 100.72 112.47 L 100.72 111.75 L 105.06 111.75 L 105.06 112.47 M 100.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 109.72 112.47 L 109.72 111.75 L 114.06 111.75 L 114.06 112.47 M 109.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 118.72 112.47 L 118.72 111.75 L 123.06 111.75 L 123.06 112.47 M 118.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 127.72 112.47 L 127.72 111.75 L 132.06 111.75 L 132.06 112.47 M 127.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 136.72 112.47 L 136.72 111.75 L 141.06 111.75 L 141.06 112.47 M 136.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 145.72 112.47 L 145.72 111.75 L 150.06 111.75 L 150.06 112.47 M 145.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 154.72 112.47 L 154.72 111.75 L 159.06 111.75 L 159.06 112.47 M 154.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 163.72 112.47 L 163.72 111.75 L 168.06 111.75 L 168.06 112.47 M 163.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 172.72 112.47 L 172.72 111.75 L 177.06 111.75 L 177.06 112.47 M 172.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.72 112.47 L 181.72 111.75 L 186.06 111.75 L 186.06 112.47 M 181.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.72 112.47 L 190.72 111.75 L 195.06 111.75 L 195.06 112.47 M 190.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.72 112.47 L 199.72 111.75 L 204.06 111.75 L 204.06 112.47 M 199.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.72 112.47 L 208.72 111.75 L 213.06 111.75 L 213.06 112.47 M 208.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 217.72 112.47 L 217.72 111.75 L 222.06 111.75 L 222.06 112.47 M 217.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.72 112.47 L 226.72 111.75 L 231.06 111.75 L 231.06 112.47 M 226.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 235.72 112.47 L 235.72 111.75 L 240.06 111.75 L 240.06 112.47 M 235.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 244.72 112.47 L 244.72 111.75 L 249.06 111.75 L 249.06 112.47 M 244.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 253.72 112.47 L 253.72 111.75 L 258.06 111.75 L 258.06 112.47 M 253.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 112.47 L 262.72 111.75 L 267.06 111.75 L 267.06 112.47 M 262.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.72 112.47 L 271.72 111.75 L 276.06 111.75 L 276.06 112.47 M 271.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 280.72 112.47 L 280.72 111.75 L 285.06 111.75 L 285.06 112.47 M 280.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.72 112.47 L 289.72 111.75 L 294.06 111.75 L 294.06 112.47 M 289.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 298.72 112.47 L 298.72 111.75 L 303.06 111.75 L 303.06 112.47 M 298.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.72 112.47 L 307.72 111.75 L 312.06 111.75 L 312.06 112.47 M 307.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 316.72 112.47 L 316.72 111.75 L 321.06 111.75 L 321.06 112.47 M 316.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 325.72 112.47 L 325.72 111.75 L 330.06 111.75 L 330.06 112.47 M 325.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 334.72 112.47 L 334.72 111.75 L 339.06 111.75 L 339.06 112.47 M 334.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 112.47 L 343.72 111.75 L 348.06 111.75 L 348.06 112.47 M 343.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 112.47 L 352.72 111.75 L 357.06 111.75 L 357.06 112.47 M 352.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 361.72 112.47 L 361.72 111.75 L 366.06 111.75 L 366.06 112.47 M 361.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 370.72 112.47 L 370.72 111.75 L 375.06 111.75 L 375.06 112.47 M 370.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 379.72 112.47 L 379.72 111.75 L 384.06 111.75 L 384.06 112.47 M 379.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 388.72 112.47 L 388.72 111.75 L 393.06 111.75 L 393.06 112.47 M 388.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 397.72 112.47 L 397.72 111.75 L 402.06 111.75 L 402.06 112.47 M 397.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.72 112.47 L 406.72 111.75 L 411.06 111.75 L 411.06 112.47 M 406.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 415.72 112.47 L 415.72 111.75 L 420.06 111.75 L 420.06 112.47 M 415.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 112.47 L 424.72 111.75 L 429.06 111.75 L 429.06 112.47 M 424.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 433.72 112.47 L 433.72 111.75 L 438.06 111.75 L 438.06 112.47 M 433.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.72 112.47 L 442.72 111.75 L 447.06 111.75 L 447.06 112.47 M 442.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.72 112.47 L 451.72 111.75 L 456.06 111.75 L 456.06 112.47 M 451.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.72 112.47 L 460.72 111.75 L 465.06 111.75 L 465.06 112.47 M 460.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.72 112.47 L 469.72 111.75 L 474.06 111.75 L 474.06 112.47 M 469.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 478.72 112.47 L 478.72 111.75 L 483.06 111.75 L 483.06 112.47 M 478.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.72 112.47 L 487.72 111.75 L 492.06 111.75 L 492.06 112.47 M 487.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 496.72 112.47 L 496.72 111.75 L 501.06 111.75 L 501.06 112.47 M 496.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 505.72 112.47 L 505.72 111.75 L 510.06 111.75 L 510.06 112.47 M 505.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 514.72 112.47 L 514.72 111.75 L 519.06 111.75 L 519.06 112.47 M 514.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 523.72 112.47 L 523.72 111.75 L 528.06 111.75 L 528.06 112.47 M 523.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 112.24 L 535.36 109.12 L 534.13 112.24 M 536.59 112.24 M 537.68 115 L 536.89 113 L 533.83 113 L 533.04 115 L 532.08 115 L 534.95 107.77 L 535.96 107.77 L 538.79 115 M 537.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 115 L 543.65 108.54 L 541.09 108.54 L 541.09 107.77 L 547.24 107.77 L 547.24 108.54 L 544.68 108.54 L 544.68 115 M 543.65 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 115 L 552.5 111.98 L 550.08 107.77 L 551.25 107.77 L 553.13 111.04 L 555.15 107.77 L 556.1 107.77 L 553.52 111.96 L 553.52 115 M 552.5 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 115 L 559.93 107.77 L 560.89 107.77 L 560.89 111.33 L 563.82 107.77 L 564.85 107.77 L 562.02 111.22 L 565.35 115 L 564.05 115 L 560.89 111.34 L 560.89 115 M 559.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 115 L 568.18 107.77 L 569.2 107.77 L 571.44 113.69 L 573.6 107.77 L 574.49 107.77 L 571.87 115 M 570.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 115 L 577.93 107.77 L 578.89 107.77 L 578.89 111.33 L 581.82 107.77 L 582.85 107.77 L 580.02 111.22 L 583.35 115 L 582.05 115 L 578.89 111.34 L 578.89 115 M 577.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 115 L 587.93 107.77 L 591.97 107.77 L 591.97 108.54 L 588.96 108.54 L 588.96 110.96 L 591.49 110.96 L 591.49 111.72 L 588.96 111.72 L 588.96 115 M 587.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 115 L 597.93 107.77 L 598.95 107.77 L 598.95 115 M 597.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 115 L 606.65 108.54 L 604.09 108.54 L 604.09 107.77 L 610.24 107.77 L 610.24 108.54 L 607.68 108.54 L 607.68 115 M 606.65 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 115 L 613.93 107.77 L 615.9 107.77 Q 617.21 107.77 617.78 108.22 Q 618.35 108.66 618.35 109.67 Q 618.35 110.82 617.57 111.47 Q 616.79 112.13 615.4 112.13 L 614.95 112.13 L 614.95 115 M 613.93 115 M 614.95 111.35 L 615.36 111.35 Q 616.28 111.35 616.77 110.93 Q 617.27 110.51 617.27 109.75 Q 617.27 109.1 616.88 108.82 Q 616.49 108.54 615.58 108.54 L 614.95 108.54 M 614.95 111.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 115 L 623.93 107.77 L 627.97 107.77 L 627.97 108.54 L 624.96 108.54 L 624.96 110.86 L 627.48 110.86 L 627.48 111.62 L 624.96 111.62 L 624.96 114.23 L 628.18 114.23 L 628.18 115 M 623.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 114.8 Q 636.05 115.18 635.07 115.18 Q 633.35 115.18 632.43 114.2 Q 631.51 113.22 631.51 111.39 Q 631.51 109.59 632.44 108.59 Q 633.37 107.59 635.06 107.59 Q 636.16 107.59 637.35 107.92 L 637.35 108.87 Q 635.86 108.36 635.06 108.36 Q 633.89 108.36 633.24 109.16 Q 632.6 109.95 632.6 111.4 Q 632.6 112.83 633.29 113.62 Q 633.98 114.41 635.23 114.41 Q 635.75 114.41 636.34 114.23 L 636.34 111.88 L 637.36 111.88 M 637.36 114.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 115 L 641.93 107.77 L 645.97 107.77 L 645.97 108.54 L 642.96 108.54 L 642.96 110.86 L 645.48 110.86 L 645.48 111.62 L 642.96 111.62 L 642.96 114.23 L 646.18 114.23 L 646.18 115 M 641.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 116.45 Q 653.64 115.89 652.49 115.13 Q 652.03 115.18 651.78 115.18 Q 650.33 115.18 649.42 114.13 Q 648.51 113.07 648.51 111.39 Q 648.51 109.66 649.43 108.63 Q 650.35 107.59 651.89 107.59 Q 653.43 107.59 654.35 108.63 Q 655.27 109.66 655.27 111.4 Q 655.27 113.89 653.42 114.85 Q 654.66 115.4 656 115.63 M 655.35 116.45 M 651.86 114.41 Q 652.97 114.41 653.57 113.62 Q 654.18 112.82 654.18 111.37 Q 654.18 109.96 653.57 109.16 Q 652.97 108.36 651.89 108.36 Q 650.81 108.36 650.2 109.16 Q 649.6 109.96 649.6 111.38 Q 649.6 112.79 650.2 113.6 Q 650.8 114.41 651.86 114.41 M 651.86 114.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 115 L 659.93 107.77 L 663.97 107.77 L 663.97 108.54 L 660.96 108.54 L 660.96 110.86 L 663.48 110.86 L 663.48 111.62 L 660.96 111.62 L 660.96 114.23 L 664.18 114.23 L 664.18 115 M 659.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 669.91 115 L 667.18 107.77 L 668.2 107.77 L 670.44 113.69 L 672.6 107.77 L 673.49 107.77 L 670.87 115 M 669.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 115 L 677.93 107.77 L 681.97 107.77 L 681.97 108.54 L 678.96 108.54 L 678.96 110.86 L 681.48 110.86 L 681.48 111.62 L 678.96 111.62 L 678.96 114.23 L 682.18 114.23 L 682.18 115 M 677.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 115.18 Q 687.34 115.18 686.43 114.19 Q 685.51 113.2 685.51 111.39 Q 685.51 109.58 686.44 108.59 Q 687.38 107.59 689.08 107.59 Q 690.05 107.59 691.35 107.91 L 691.35 108.87 Q 689.87 108.36 689.06 108.36 Q 687.89 108.36 687.24 109.16 Q 686.6 109.95 686.6 111.4 Q 686.6 112.78 687.29 113.58 Q 687.97 114.38 689.17 114.38 Q 690.19 114.38 691.36 113.75 L 691.36 114.63 Q 690.29 115.18 689.03 115.18 M 689.03 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 115 L 694.93 107.77 L 697.33 107.77 Q 698.41 107.77 699.07 108.01 Q 699.73 108.25 700.22 108.82 Q 700.98 109.73 700.98 111.22 Q 700.98 113.02 700.03 114.01 Q 699.08 115 697.35 115 M 694.93 115 M 695.96 114.23 L 697.27 114.23 Q 698.68 114.23 699.26 113.48 Q 699.89 112.67 699.89 111.31 Q 699.89 110.04 699.27 109.31 Q 698.9 108.87 698.38 108.7 Q 697.85 108.54 696.8 108.54 L 695.96 108.54 M 695.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 115 L 703.93 107.77 L 706.33 107.77 Q 707.41 107.77 708.07 108.01 Q 708.73 108.25 709.22 108.82 Q 709.98 109.73 709.98 111.22 Q 709.98 113.02 709.03 114.01 Q 708.08 115 706.35 115 M 703.93 115 M 704.96 114.23 L 706.27 114.23 Q 707.68 114.23 708.26 113.48 Q 708.89 112.67 708.89 111.31 Q 708.89 110.04 708.27 109.31 Q 707.9 108.87 707.38 108.7 Q 706.85 108.54 705.8 108.54 L 704.96 108.54 M 704.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 115 L 712.93 107.77 L 715.33 107.77 Q 716.41 107.77 717.07 108.01 Q 717.73 108.25 718.22 108.82 Q 718.98 109.73 718.98 111.22 Q 718.98 113.02 718.03 114.01 Q 717.08 115 715.35 115 M 712.93 115 M 713.96 114.23 L 715.27 114.23 Q 716.68 114.23 717.26 113.48 Q 717.89 112.67 717.89 111.31 Q 717.89 110.04 717.27 109.31 Q 716.9 108.87 716.38 108.7 Q 715.85 108.54 714.8 108.54 L 713.96 108.54 M 713.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 115 L 721.18 107.77 L 722.2 107.77 L 724.44 113.69 L 726.6 107.77 L 727.49 107.77 L 724.87 115 M 723.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 115 L 732.5 111.98 L 730.08 107.77 L 731.25 107.77 L 733.13 111.04 L 735.15 107.77 L 736.1 107.77 L 733.52 111.96 L 733.52 115 M 732.5 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.91 115 L 739.18 107.77 L 740.2 107.77 L 742.44 113.69 L 744.6 107.77 L 745.49 107.77 L 742.87 115 M 741.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 115 L 749.93 107.77 L 750.96 107.77 L 750.96 114.23 L 754.21 114.23 L 754.21 115 M 749.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 115 L 757.93 107.77 L 760.33 107.77 Q 761.41 107.77 762.07 108.01 Q 762.73 108.25 763.22 108.82 Q 763.98 109.73 763.98 111.22 Q 763.98 113.02 763.03 114.01 Q 762.08 115 760.35 115 M 757.93 115 M 758.96 114.23 L 760.27 114.23 Q 761.68 114.23 762.26 113.48 Q 762.89 112.67 762.89 111.31 Q 762.89 110.04 762.27 109.31 Q 761.9 108.87 761.38 108.7 Q 760.85 108.54 759.8 108.54 L 758.96 108.54 M 758.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 112.24 L 769.36 109.12 L 768.13 112.24 M 770.59 112.24 M 771.68 115 L 770.89 113 L 767.83 113 L 767.04 115 L 766.08 115 L 768.95 107.77 L 769.96 107.77 L 772.79 115 M 771.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 112.24 L 778.36 109.12 L 777.13 112.24 M 779.59 112.24 M 780.68 115 L 779.89 113 L 776.83 113 L 776.04 115 L 775.08 115 L 777.95 107.77 L 778.96 107.77 L 781.79 115 M 780.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 115 L 785.93 107.77 L 789.97 107.77 L 789.97 108.54 L 786.96 108.54 L 786.96 110.86 L 789.48 110.86 L 789.48 111.62 L 786.96 111.62 L 786.96 114.23 L 790.18 114.23 L 790.18 115 M 785.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 115 L 794.93 107.77 L 798.97 107.77 L 798.97 108.54 L 795.96 108.54 L 795.96 110.86 L 798.48 110.86 L 798.48 111.62 L 795.96 111.62 L 795.96 114.23 L 799.18 114.23 L 799.18 115 M 794.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 112.24 L 805.36 109.12 L 804.13 112.24 M 806.59 112.24 M 807.68 115 L 806.89 113 L 803.83 113 L 803.04 115 L 802.08 115 L 804.95 107.77 L 805.96 107.77 L 808.79 115 M 807.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 114.8 Q 816.05 115.18 815.07 115.18 Q 813.35 115.18 812.43 114.2 Q 811.51 113.22 811.51 111.39 Q 811.51 109.59 812.44 108.59 Q 813.37 107.59 815.06 107.59 Q 816.16 107.59 817.35 107.92 L 817.35 108.87 Q 815.86 108.36 815.06 108.36 Q 813.89 108.36 813.24 109.16 Q 812.6 109.95 812.6 111.4 Q 812.6 112.83 813.29 113.62 Q 813.98 114.41 815.23 114.41 Q 815.75 114.41 816.34 114.23 L 816.34 111.88 L 817.36 111.88 M 817.36 114.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 115 L 822.93 107.77 L 823.95 107.77 L 823.95 115 M 822.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 115 L 829.93 107.77 L 832.33 107.77 Q 833.41 107.77 834.07 108.01 Q 834.73 108.25 835.22 108.82 Q 835.98 109.73 835.98 111.22 Q 835.98 113.02 835.03 114.01 Q 834.08 115 832.35 115 M 829.93 115 M 830.96 114.23 L 832.27 114.23 Q 833.68 114.23 834.26 113.48 Q 834.89 112.67 834.89 111.31 Q 834.89 110.04 834.27 109.31 Q 833.9 108.87 833.38 108.7 Q 832.85 108.54 831.8 108.54 L 830.96 108.54 M 830.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 115 L 839.93 107.77 L 840.96 107.77 L 840.96 114.23 L 844.21 114.23 L 844.21 115 M 839.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 115 L 847.93 107.77 L 849.9 107.77 Q 851.21 107.77 851.78 108.22 Q 852.35 108.66 852.35 109.67 Q 852.35 110.82 851.57 111.47 Q 850.79 112.13 849.4 112.13 L 848.95 112.13 L 848.95 115 M 847.93 115 M 848.95 111.35 L 849.36 111.35 Q 850.28 111.35 850.77 110.93 Q 851.27 110.51 851.27 109.75 Q 851.27 109.1 850.88 108.82 Q 850.49 108.54 849.58 108.54 L 848.95 108.54 M 848.95 111.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 115 L 858.5 111.98 L 856.08 107.77 L 857.25 107.77 L 859.13 111.04 L 861.15 107.77 L 862.1 107.77 L 859.52 111.96 L 859.52 115 M 858.5 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 115.18 Q 867.62 115.18 866.49 114.86 L 866.49 113.85 Q 867.71 114.41 868.5 114.41 Q 869.1 114.41 869.47 114.1 Q 869.84 113.78 869.84 113.26 Q 869.84 112.84 869.6 112.54 Q 869.35 112.24 868.71 111.88 L 868.21 111.59 Q 867.28 111.06 866.91 110.59 Q 866.53 110.13 866.53 109.51 Q 866.53 108.67 867.13 108.13 Q 867.74 107.59 868.68 107.59 Q 869.51 107.59 870.44 107.87 L 870.44 108.81 Q 869.3 108.36 868.73 108.36 Q 868.2 108.36 867.86 108.64 Q 867.51 108.93 867.51 109.36 Q 867.51 109.72 867.76 110 Q 868.02 110.27 868.69 110.66 L 869.21 110.95 Q 870.15 111.48 870.52 111.96 Q 870.89 112.43 870.89 113.1 Q 870.89 114.04 870.19 114.61 Q 869.5 115.18 868.35 115.18 M 868.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 115.18 Q 876.34 115.18 875.43 114.19 Q 874.51 113.2 874.51 111.39 Q 874.51 109.58 875.44 108.59 Q 876.38 107.59 878.08 107.59 Q 879.05 107.59 880.35 107.91 L 880.35 108.87 Q 878.87 108.36 878.06 108.36 Q 876.89 108.36 876.24 109.16 Q 875.6 109.95 875.6 111.4 Q 875.6 112.78 876.29 113.58 Q 876.97 114.38 878.17 114.38 Q 879.19 114.38 880.36 113.75 L 880.36 114.63 Q 879.29 115.18 878.03 115.18 M 878.03 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 115 L 883.93 107.77 L 886.12 107.77 Q 887.16 107.77 887.71 108.23 Q 888.27 108.69 888.27 109.57 Q 888.27 111.01 886.81 111.62 L 889.22 115 L 887.96 115 L 885.91 111.94 L 884.95 111.94 L 884.95 115 M 883.93 115 M 884.95 111.18 L 885.28 111.18 Q 887.21 111.18 887.21 109.66 Q 887.21 108.54 885.59 108.54 L 884.95 108.54 M 884.95 111.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 112.24 L 895.36 109.12 L 894.13 112.24 M 896.59 112.24 M 897.68 115 L 896.89 113 L 893.83 113 L 893.04 115 L 892.08 115 L 894.95 107.77 L 895.96 107.77 L 898.79 115 M 897.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 114.8 Q 906.05 115.18 905.07 115.18 Q 903.35 115.18 902.43 114.2 Q 901.51 113.22 901.51 111.39 Q 901.51 109.59 902.44 108.59 Q 903.37 107.59 905.06 107.59 Q 906.16 107.59 907.35 107.92 L 907.35 108.87 Q 905.86 108.36 905.06 108.36 Q 903.89 108.36 903.24 109.16 Q 902.6 109.95 902.6 111.4 Q 902.6 112.83 903.29 113.62 Q 903.98 114.41 905.23 114.41 Q 905.75 114.41 906.34 114.23 L 906.34 111.88 L 907.36 111.88 M 907.36 114.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 115.18 Q 912.62 115.18 911.49 114.86 L 911.49 113.85 Q 912.71 114.41 913.5 114.41 Q 914.1 114.41 914.47 114.1 Q 914.84 113.78 914.84 113.26 Q 914.84 112.84 914.6 112.54 Q 914.35 112.24 913.71 111.88 L 913.21 111.59 Q 912.28 111.06 911.91 110.59 Q 911.53 110.13 911.53 109.51 Q 911.53 108.67 912.13 108.13 Q 912.74 107.59 913.68 107.59 Q 914.51 107.59 915.44 107.87 L 915.44 108.81 Q 914.3 108.36 913.73 108.36 Q 913.2 108.36 912.86 108.64 Q 912.51 108.93 912.51 109.36 Q 912.51 109.72 912.76 110 Q 913.02 110.27 913.69 110.66 L 914.21 110.95 Q 915.15 111.48 915.52 111.96 Q 915.89 112.43 915.89 113.1 Q 915.89 114.04 915.19 114.61 Q 914.5 115.18 913.35 115.18 M 913.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 115.18 Q 921.34 115.18 920.43 114.19 Q 919.51 113.2 919.51 111.39 Q 919.51 109.58 920.44 108.59 Q 921.38 107.59 923.08 107.59 Q 924.05 107.59 925.35 107.91 L 925.35 108.87 Q 923.87 108.36 923.06 108.36 Q 921.89 108.36 921.24 109.16 Q 920.6 109.95 920.6 111.4 Q 920.6 112.78 921.29 113.58 Q 921.97 114.38 923.17 114.38 Q 924.19 114.38 925.36 113.75 L 925.36 114.63 Q 924.29 115.18 923.03 115.18 M 923.03 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 115.18 Q 930.62 115.18 929.49 114.86 L 929.49 113.85 Q 930.71 114.41 931.5 114.41 Q 932.1 114.41 932.47 114.1 Q 932.84 113.78 932.84 113.26 Q 932.84 112.84 932.6 112.54 Q 932.35 112.24 931.71 111.88 L 931.21 111.59 Q 930.28 111.06 929.91 110.59 Q 929.53 110.13 929.53 109.51 Q 929.53 108.67 930.13 108.13 Q 930.74 107.59 931.68 107.59 Q 932.51 107.59 933.44 107.87 L 933.44 108.81 Q 932.3 108.36 931.73 108.36 Q 931.2 108.36 930.86 108.64 Q 930.51 108.93 930.51 109.36 Q 930.51 109.72 930.76 110 Q 931.02 110.27 931.69 110.66 L 932.21 110.95 Q 933.15 111.48 933.52 111.96 Q 933.89 112.43 933.89 113.1 Q 933.89 114.04 933.19 114.61 Q 932.5 115.18 931.35 115.18 M 931.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 115.18 Q 939.62 115.18 938.49 114.86 L 938.49 113.85 Q 939.71 114.41 940.5 114.41 Q 941.1 114.41 941.47 114.1 Q 941.84 113.78 941.84 113.26 Q 941.84 112.84 941.6 112.54 Q 941.35 112.24 940.71 111.88 L 940.21 111.59 Q 939.28 111.06 938.91 110.59 Q 938.53 110.13 938.53 109.51 Q 938.53 108.67 939.13 108.13 Q 939.74 107.59 940.68 107.59 Q 941.51 107.59 942.44 107.87 L 942.44 108.81 Q 941.3 108.36 940.73 108.36 Q 940.2 108.36 939.86 108.64 Q 939.51 108.93 939.51 109.36 Q 939.51 109.72 939.76 110 Q 940.02 110.27 940.69 110.66 L 941.21 110.95 Q 942.15 111.48 942.52 111.96 Q 942.89 112.43 942.89 113.1 Q 942.89 114.04 942.19 114.61 Q 941.5 115.18 940.35 115.18 M 940.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 115.18 Q 948.34 115.18 947.43 114.19 Q 946.51 113.2 946.51 111.39 Q 946.51 109.58 947.44 108.59 Q 948.38 107.59 950.08 107.59 Q 951.05 107.59 952.35 107.91 L 952.35 108.87 Q 950.87 108.36 950.06 108.36 Q 948.89 108.36 948.24 109.16 Q 947.6 109.95 947.6 111.4 Q 947.6 112.78 948.29 113.58 Q 948.97 114.38 950.17 114.38 Q 951.19 114.38 952.36 113.75 L 952.36 114.63 Q 951.29 115.18 950.03 115.18 M 950.03 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 112.24 L 958.36 109.12 L 957.13 112.24 M 959.59 112.24 M 960.68 115 L 959.89 113 L 956.83 113 L 956.04 115 L 955.08 115 L 957.95 107.77 L 958.96 107.77 L 961.79 115 M 960.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 114.8 Q 969.05 115.18 968.07 115.18 Q 966.35 115.18 965.43 114.2 Q 964.51 113.22 964.51 111.39 Q 964.51 109.59 965.44 108.59 Q 966.37 107.59 968.06 107.59 Q 969.16 107.59 970.35 107.92 L 970.35 108.87 Q 968.86 108.36 968.06 108.36 Q 966.89 108.36 966.24 109.16 Q 965.6 109.95 965.6 111.4 Q 965.6 112.83 966.29 113.62 Q 966.98 114.41 968.23 114.41 Q 968.75 114.41 969.34 114.23 L 969.34 111.88 L 970.36 111.88 M 970.36 114.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 115 L 973.93 107.77 L 974.89 107.77 L 974.89 111.33 L 977.82 107.77 L 978.85 107.77 L 976.02 111.22 L 979.35 115 L 978.05 115 L 974.89 111.34 L 974.89 115 M 973.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 115 L 982.18 107.77 L 983.2 107.77 L 985.44 113.69 L 987.6 107.77 L 988.49 107.77 L 985.87 115 M 984.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 115 L 991.18 107.77 L 992.2 107.77 L 994.44 113.69 L 996.6 107.77 L 997.49 107.77 L 994.87 115 M 993.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 115.18 Q 1002.62 115.18 1001.49 114.86 L 1001.49 113.85 Q 1002.71 114.41 1003.5 114.41 Q 1004.1 114.41 1004.47 114.1 Q 1004.84 113.78 1004.84 113.26 Q 1004.84 112.84 1004.6 112.54 Q 1004.35 112.24 1003.71 111.88 L 1003.21 111.59 Q 1002.28 111.06 1001.91 110.59 Q 1001.53 110.13 1001.53 109.51 Q 1001.53 108.67 1002.13 108.13 Q 1002.74 107.59 1003.68 107.59 Q 1004.51 107.59 1005.44 107.87 L 1005.44 108.81 Q 1004.3 108.36 1003.73 108.36 Q 1003.2 108.36 1002.86 108.64 Q 1002.51 108.93 1002.51 109.36 Q 1002.51 109.72 1002.76 110 Q 1003.02 110.27 1003.69 110.66 L 1004.21 110.95 Q 1005.15 111.48 1005.52 111.96 Q 1005.89 112.43 1005.89 113.1 Q 1005.89 114.04 1005.19 114.61 Q 1004.5 115.18 1003.35 115.18 M 1003.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 114.8 Q 1014.05 115.18 1013.07 115.18 Q 1011.35 115.18 1010.43 114.2 Q 1009.51 113.22 1009.51 111.39 Q 1009.51 109.59 1010.44 108.59 Q 1011.37 107.59 1013.06 107.59 Q 1014.16 107.59 1015.35 107.92 L 1015.35 108.87 Q 1013.86 108.36 1013.06 108.36 Q 1011.89 108.36 1011.24 109.16 Q 1010.6 109.95 1010.6 111.4 Q 1010.6 112.83 1011.29 113.62 Q 1011.98 114.41 1013.23 114.41 Q 1013.75 114.41 1014.34 114.23 L 1014.34 111.88 L 1015.36 111.88 M 1015.36 114.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 115.18 Q 1020.62 115.18 1019.49 114.86 L 1019.49 113.85 Q 1020.71 114.41 1021.5 114.41 Q 1022.1 114.41 1022.47 114.1 Q 1022.84 113.78 1022.84 113.26 Q 1022.84 112.84 1022.6 112.54 Q 1022.35 112.24 1021.71 111.88 L 1021.21 111.59 Q 1020.28 111.06 1019.91 110.59 Q 1019.53 110.13 1019.53 109.51 Q 1019.53 108.67 1020.13 108.13 Q 1020.74 107.59 1021.68 107.59 Q 1022.51 107.59 1023.44 107.87 L 1023.44 108.81 Q 1022.3 108.36 1021.73 108.36 Q 1021.2 108.36 1020.86 108.64 Q 1020.51 108.93 1020.51 109.36 Q 1020.51 109.72 1020.76 110 Q 1021.02 110.27 1021.69 110.66 L 1022.21 110.95 Q 1023.15 111.48 1023.52 111.96 Q 1023.89 112.43 1023.89 113.1 Q 1023.89 114.04 1023.19 114.61 Q 1022.5 115.18 1021.35 115.18 M 1021.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 115 L 1027.18 107.77 L 1028.2 107.77 L 1030.44 113.69 L 1032.6 107.77 L 1033.49 107.77 L 1030.87 115 M 1029.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 115 L 1036.93 107.77 L 1039.33 107.77 Q 1040.41 107.77 1041.07 108.01 Q 1041.73 108.25 1042.22 108.82 Q 1042.98 109.73 1042.98 111.22 Q 1042.98 113.02 1042.03 114.01 Q 1041.08 115 1039.35 115 M 1036.93 115 M 1037.96 114.23 L 1039.27 114.23 Q 1040.68 114.23 1041.26 113.48 Q 1041.89 112.67 1041.89 111.31 Q 1041.89 110.04 1041.27 109.31 Q 1040.9 108.87 1040.38 108.7 Q 1039.85 108.54 1038.8 108.54 L 1037.96 108.54 M 1037.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 116.45 Q 1049.64 115.89 1048.49 115.13 Q 1048.03 115.18 1047.78 115.18 Q 1046.33 115.18 1045.42 114.13 Q 1044.51 113.07 1044.51 111.39 Q 1044.51 109.66 1045.43 108.63 Q 1046.35 107.59 1047.89 107.59 Q 1049.43 107.59 1050.35 108.63 Q 1051.27 109.66 1051.27 111.4 Q 1051.27 113.89 1049.42 114.85 Q 1050.66 115.4 1052 115.63 M 1051.35 116.45 M 1047.86 114.41 Q 1048.97 114.41 1049.57 113.62 Q 1050.18 112.82 1050.18 111.37 Q 1050.18 109.96 1049.57 109.16 Q 1048.97 108.36 1047.89 108.36 Q 1046.81 108.36 1046.2 109.16 Q 1045.6 109.96 1045.6 111.38 Q 1045.6 112.79 1046.2 113.6 Q 1046.8 114.41 1047.86 114.41 M 1047.86 114.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 115.18 Q 1056.62 115.18 1055.49 114.86 L 1055.49 113.85 Q 1056.71 114.41 1057.5 114.41 Q 1058.1 114.41 1058.47 114.1 Q 1058.84 113.78 1058.84 113.26 Q 1058.84 112.84 1058.6 112.54 Q 1058.35 112.24 1057.71 111.88 L 1057.21 111.59 Q 1056.28 111.06 1055.91 110.59 Q 1055.53 110.13 1055.53 109.51 Q 1055.53 108.67 1056.13 108.13 Q 1056.74 107.59 1057.68 107.59 Q 1058.51 107.59 1059.44 107.87 L 1059.44 108.81 Q 1058.3 108.36 1057.73 108.36 Q 1057.2 108.36 1056.86 108.64 Q 1056.51 108.93 1056.51 109.36 Q 1056.51 109.72 1056.76 110 Q 1057.02 110.27 1057.69 110.66 L 1058.21 110.95 Q 1059.15 111.48 1059.52 111.96 Q 1059.89 112.43 1059.89 113.1 Q 1059.89 114.04 1059.19 114.61 Q 1058.5 115.18 1057.35 115.18 M 1057.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 115 L 1063.93 107.77 L 1066.33 107.77 Q 1067.41 107.77 1068.07 108.01 Q 1068.73 108.25 1069.22 108.82 Q 1069.98 109.73 1069.98 111.22 Q 1069.98 113.02 1069.03 114.01 Q 1068.08 115 1066.35 115 M 1063.93 115 M 1064.96 114.23 L 1066.27 114.23 Q 1067.68 114.23 1068.26 113.48 Q 1068.89 112.67 1068.89 111.31 Q 1068.89 110.04 1068.27 109.31 Q 1067.9 108.87 1067.38 108.7 Q 1066.85 108.54 1065.8 108.54 L 1064.96 108.54 M 1064.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 116.45 Q 1076.64 115.89 1075.49 115.13 Q 1075.03 115.18 1074.78 115.18 Q 1073.33 115.18 1072.42 114.13 Q 1071.51 113.07 1071.51 111.39 Q 1071.51 109.66 1072.43 108.63 Q 1073.35 107.59 1074.89 107.59 Q 1076.43 107.59 1077.35 108.63 Q 1078.27 109.66 1078.27 111.4 Q 1078.27 113.89 1076.42 114.85 Q 1077.66 115.4 1079 115.63 M 1078.35 116.45 M 1074.86 114.41 Q 1075.97 114.41 1076.57 113.62 Q 1077.18 112.82 1077.18 111.37 Q 1077.18 109.96 1076.57 109.16 Q 1075.97 108.36 1074.89 108.36 Q 1073.81 108.36 1073.2 109.16 Q 1072.6 109.96 1072.6 111.38 Q 1072.6 112.79 1073.2 113.6 Q 1073.8 114.41 1074.86 114.41 M 1074.86 114.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 115.18 Q 1083.62 115.18 1082.49 114.86 L 1082.49 113.85 Q 1083.71 114.41 1084.5 114.41 Q 1085.1 114.41 1085.47 114.1 Q 1085.84 113.78 1085.84 113.26 Q 1085.84 112.84 1085.6 112.54 Q 1085.35 112.24 1084.71 111.88 L 1084.21 111.59 Q 1083.28 111.06 1082.91 110.59 Q 1082.53 110.13 1082.53 109.51 Q 1082.53 108.67 1083.13 108.13 Q 1083.74 107.59 1084.68 107.59 Q 1085.51 107.59 1086.44 107.87 L 1086.44 108.81 Q 1085.3 108.36 1084.73 108.36 Q 1084.2 108.36 1083.86 108.64 Q 1083.51 108.93 1083.51 109.36 Q 1083.51 109.72 1083.76 110 Q 1084.02 110.27 1084.69 110.66 L 1085.21 110.95 Q 1086.15 111.48 1086.52 111.96 Q 1086.89 112.43 1086.89 113.1 Q 1086.89 114.04 1086.19 114.61 Q 1085.5 115.18 1084.35 115.18 M 1084.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 115 L 1091.93 107.77 L 1095.97 107.77 L 1095.97 108.54 L 1092.96 108.54 L 1092.96 110.96 L 1095.49 110.96 L 1095.49 111.72 L 1092.96 111.72 L 1092.96 115 M 1091.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 115 L 1100.93 107.77 L 1101.96 107.77 L 1101.96 114.23 L 1105.21 114.23 L 1105.21 115 M 1100.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 115 L 1108.93 107.77 L 1111.33 107.77 Q 1112.41 107.77 1113.07 108.01 Q 1113.73 108.25 1114.22 108.82 Q 1114.98 109.73 1114.98 111.22 Q 1114.98 113.02 1114.03 114.01 Q 1113.08 115 1111.35 115 M 1108.93 115 M 1109.96 114.23 L 1111.27 114.23 Q 1112.68 114.23 1113.26 113.48 Q 1113.89 112.67 1113.89 111.31 Q 1113.89 110.04 1113.27 109.31 Q 1112.9 108.87 1112.38 108.7 Q 1111.85 108.54 1110.8 108.54 L 1109.96 108.54 M 1109.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 115 L 1117.93 107.77 L 1120.33 107.77 Q 1121.41 107.77 1122.07 108.01 Q 1122.73 108.25 1123.22 108.82 Q 1123.98 109.73 1123.98 111.22 Q 1123.98 113.02 1123.03 114.01 Q 1122.08 115 1120.35 115 M 1117.93 115 M 1118.96 114.23 L 1120.27 114.23 Q 1121.68 114.23 1122.26 113.48 Q 1122.89 112.67 1122.89 111.31 Q 1122.89 110.04 1122.27 109.31 Q 1121.9 108.87 1121.38 108.7 Q 1120.85 108.54 1119.8 108.54 L 1118.96 108.54 M 1118.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 115 L 1126.93 107.77 L 1129.33 107.77 Q 1130.41 107.77 1131.07 108.01 Q 1131.73 108.25 1132.22 108.82 Q 1132.98 109.73 1132.98 111.22 Q 1132.98 113.02 1132.03 114.01 Q 1131.08 115 1129.35 115 M 1126.93 115 M 1127.96 114.23 L 1129.27 114.23 Q 1130.68 114.23 1131.26 113.48 Q 1131.89 112.67 1131.89 111.31 Q 1131.89 110.04 1131.27 109.31 Q 1130.9 108.87 1130.38 108.7 Q 1129.85 108.54 1128.8 108.54 L 1127.96 108.54 M 1127.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 116.45 Q 1139.64 115.89 1138.49 115.13 Q 1138.03 115.18 1137.78 115.18 Q 1136.33 115.18 1135.42 114.13 Q 1134.51 113.07 1134.51 111.39 Q 1134.51 109.66 1135.43 108.63 Q 1136.35 107.59 1137.89 107.59 Q 1139.43 107.59 1140.35 108.63 Q 1141.27 109.66 1141.27 111.4 Q 1141.27 113.89 1139.42 114.85 Q 1140.66 115.4 1142 115.63 M 1141.35 116.45 M 1137.86 114.41 Q 1138.97 114.41 1139.57 113.62 Q 1140.18 112.82 1140.18 111.37 Q 1140.18 109.96 1139.57 109.16 Q 1138.97 108.36 1137.89 108.36 Q 1136.81 108.36 1136.2 109.16 Q 1135.6 109.96 1135.6 111.38 Q 1135.6 112.79 1136.2 113.6 Q 1136.8 114.41 1137.86 114.41 M 1137.86 114.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 115 L 1146.93 107.77 L 1147.95 107.77 L 1147.95 115 M 1146.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1157.59 112.24 L 1156.36 109.12 L 1155.13 112.24 M 1157.59 112.24 M 1158.68 115 L 1157.89 113 L 1154.83 113 L 1154.04 115 L 1153.08 115 L 1155.95 107.77 L 1156.96 107.77 L 1159.79 115 M 1158.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 115 L 1163.93 107.77 L 1167.97 107.77 L 1167.97 108.54 L 1164.96 108.54 L 1164.96 110.86 L 1167.48 110.86 L 1167.48 111.62 L 1164.96 111.62 L 1164.96 114.23 L 1168.18 114.23 L 1168.18 115 M 1163.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 114.8 Q 1176.05 115.18 1175.07 115.18 Q 1173.35 115.18 1172.43 114.2 Q 1171.51 113.22 1171.51 111.39 Q 1171.51 109.59 1172.44 108.59 Q 1173.37 107.59 1175.06 107.59 Q 1176.16 107.59 1177.35 107.92 L 1177.35 108.87 Q 1175.86 108.36 1175.06 108.36 Q 1173.89 108.36 1173.24 109.16 Q 1172.6 109.95 1172.6 111.4 Q 1172.6 112.83 1173.29 113.62 Q 1173.98 114.41 1175.23 114.41 Q 1175.75 114.41 1176.34 114.23 L 1176.34 111.88 L 1177.36 111.88 M 1177.36 114.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1181.93 115 L 1181.93 107.77 L 1185.97 107.77 L 1185.97 108.54 L 1182.96 108.54 L 1182.96 110.96 L 1185.49 110.96 L 1185.49 111.72 L 1182.96 111.72 L 1182.96 115 M 1181.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 115 L 1189.18 107.77 L 1190.2 107.77 L 1192.44 113.69 L 1194.6 107.77 L 1195.49 107.77 L 1192.87 115 M 1191.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 115 L 1199.93 107.77 L 1200.96 107.77 L 1200.96 114.23 L 1204.21 114.23 L 1204.21 115 M 1199.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 115 L 1209.65 108.54 L 1207.09 108.54 L 1207.09 107.77 L 1213.24 107.77 L 1213.24 108.54 L 1210.68 108.54 L 1210.68 115 M 1209.65 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 115.18 Q 1218.34 115.18 1217.43 114.19 Q 1216.51 113.2 1216.51 111.39 Q 1216.51 109.58 1217.44 108.59 Q 1218.38 107.59 1220.08 107.59 Q 1221.05 107.59 1222.35 107.91 L 1222.35 108.87 Q 1220.87 108.36 1220.06 108.36 Q 1218.89 108.36 1218.24 109.16 Q 1217.6 109.95 1217.6 111.4 Q 1217.6 112.78 1218.29 113.58 Q 1218.97 114.38 1220.17 114.38 Q 1221.19 114.38 1222.36 113.75 L 1222.36 114.63 Q 1221.29 115.18 1220.03 115.18 M 1220.03 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1229.59 112.24 L 1228.36 109.12 L 1227.13 112.24 M 1229.59 112.24 M 1230.68 115 L 1229.89 113 L 1226.83 113 L 1226.04 115 L 1225.08 115 L 1227.95 107.77 L 1228.96 107.77 L 1231.79 115 M 1230.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 112.24 L 1237.36 109.12 L 1236.13 112.24 M 1238.59 112.24 M 1239.68 115 L 1238.89 113 L 1235.83 113 L 1235.04 115 L 1234.08 115 L 1236.95 107.77 L 1237.96 107.77 L 1240.79 115 M 1239.68 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 115 L 1245.5 111.98 L 1243.08 107.77 L 1244.25 107.77 L 1246.13 111.04 L 1248.15 107.77 L 1249.1 107.77 L 1246.52 111.96 L 1246.52 115 M 1245.5 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 115 L 1252.93 107.77 L 1254.9 107.77 Q 1256.21 107.77 1256.78 108.22 Q 1257.35 108.66 1257.35 109.67 Q 1257.35 110.82 1256.57 111.47 Q 1255.79 112.13 1254.4 112.13 L 1253.95 112.13 L 1253.95 115 M 1252.93 115 M 1253.95 111.35 L 1254.36 111.35 Q 1255.28 111.35 1255.77 110.93 Q 1256.27 110.51 1256.27 109.75 Q 1256.27 109.1 1255.88 108.82 Q 1255.49 108.54 1254.58 108.54 L 1253.95 108.54 M 1253.95 111.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 115 L 1263.65 108.54 L 1261.09 108.54 L 1261.09 107.77 L 1267.24 107.77 L 1267.24 108.54 L 1264.68 108.54 L 1264.68 115 M 1263.65 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 115.18 Q 1272.62 115.18 1271.49 114.86 L 1271.49 113.85 Q 1272.71 114.41 1273.5 114.41 Q 1274.1 114.41 1274.47 114.1 Q 1274.84 113.78 1274.84 113.26 Q 1274.84 112.84 1274.6 112.54 Q 1274.35 112.24 1273.71 111.88 L 1273.21 111.59 Q 1272.28 111.06 1271.91 110.59 Q 1271.53 110.13 1271.53 109.51 Q 1271.53 108.67 1272.13 108.13 Q 1272.74 107.59 1273.68 107.59 Q 1274.51 107.59 1275.44 107.87 L 1275.44 108.81 Q 1274.3 108.36 1273.73 108.36 Q 1273.2 108.36 1272.86 108.64 Q 1272.51 108.93 1272.51 109.36 Q 1272.51 109.72 1272.76 110 Q 1273.02 110.27 1273.69 110.66 L 1274.21 110.95 Q 1275.15 111.48 1275.52 111.96 Q 1275.89 112.43 1275.89 113.1 Q 1275.89 114.04 1275.19 114.61 Q 1274.5 115.18 1273.35 115.18 M 1273.35 115.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 115 L 1279.93 107.77 L 1282.33 107.77 Q 1283.41 107.77 1284.07 108.01 Q 1284.73 108.25 1285.22 108.82 Q 1285.98 109.73 1285.98 111.22 Q 1285.98 113.02 1285.03 114.01 Q 1284.08 115 1282.35 115 M 1279.93 115 M 1280.96 114.23 L 1282.27 114.23 Q 1283.68 114.23 1284.26 113.48 Q 1284.89 112.67 1284.89 111.31 Q 1284.89 110.04 1284.27 109.31 Q 1283.9 108.87 1283.38 108.7 Q 1282.85 108.54 1281.8 108.54 L 1280.96 108.54 M 1280.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 115 L 1288.18 107.77 L 1289.2 107.77 L 1291.44 113.69 L 1293.6 107.77 L 1294.49 107.77 L 1291.87 115 M 1290.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 115 L 1299.65 108.54 L 1297.09 108.54 L 1297.09 107.77 L 1303.24 107.77 L 1303.24 108.54 L 1300.68 108.54 L 1300.68 115 M 1299.65 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 115 L 1308.93 107.77 L 1309.95 107.77 L 1309.95 115 M 1308.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 115 L 1316.93 107.77 L 1320.97 107.77 L 1320.97 108.54 L 1317.96 108.54 L 1317.96 110.86 L 1320.48 110.86 L 1320.48 111.62 L 1317.96 111.62 L 1317.96 114.23 L 1321.18 114.23 L 1321.18 115 M 1316.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 115 L 1326.65 108.54 L 1324.09 108.54 L 1324.09 107.77 L 1330.24 107.77 L 1330.24 108.54 L 1327.68 108.54 L 1327.68 115 M 1326.65 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 115 L 1333.93 107.77 L 1334.96 107.77 L 1334.96 110.82 L 1338.4 110.82 L 1338.4 107.77 L 1339.42 107.77 L 1339.42 115 L 1338.4 115 L 1338.4 111.59 L 1334.96 111.59 L 1334.96 115 M 1333.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 115 L 1342.93 107.77 L 1345.12 107.77 Q 1346.16 107.77 1346.71 108.23 Q 1347.27 108.69 1347.27 109.57 Q 1347.27 111.01 1345.81 111.62 L 1348.22 115 L 1346.96 115 L 1344.91 111.94 L 1343.95 111.94 L 1343.95 115 M 1342.93 115 M 1343.95 111.18 L 1344.28 111.18 Q 1346.21 111.18 1346.21 109.66 Q 1346.21 108.54 1344.59 108.54 L 1343.95 108.54 M 1343.95 111.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 115 L 1352.93 107.77 L 1356.97 107.77 L 1356.97 108.54 L 1353.96 108.54 L 1353.96 110.86 L 1356.48 110.86 L 1356.48 111.62 L 1353.96 111.62 L 1353.96 114.23 L 1357.18 114.23 L 1357.18 115 M 1352.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 115 L 1361.93 107.77 L 1365.97 107.77 L 1365.97 108.54 L 1362.96 108.54 L 1362.96 110.86 L 1365.48 110.86 L 1365.48 111.62 L 1362.96 111.62 L 1362.96 114.23 L 1366.18 114.23 L 1366.18 115 M 1361.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1369.93 115 L 1369.93 107.77 L 1372.33 107.77 Q 1373.41 107.77 1374.07 108.01 Q 1374.73 108.25 1375.22 108.82 Q 1375.98 109.73 1375.98 111.22 Q 1375.98 113.02 1375.03 114.01 Q 1374.08 115 1372.35 115 M 1369.93 115 M 1370.96 114.23 L 1372.27 114.23 Q 1373.68 114.23 1374.26 113.48 Q 1374.89 112.67 1374.89 111.31 Q 1374.89 110.04 1374.27 109.31 Q 1373.9 108.87 1373.38 108.7 Q 1372.85 108.54 1371.8 108.54 L 1370.96 108.54 M 1370.96 114.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1377.93 115 L 1377.93 107.77 L 1379.35 107.77 L 1381.36 113.36 L 1383.42 107.77 L 1384.69 107.77 L 1384.69 115 L 1383.73 115 L 1383.73 109.12 L 1381.74 114.52 L 1380.75 114.52 L 1378.81 109.11 L 1378.81 115 M 1377.93 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.91 115 L 1387.18 107.77 L 1388.2 107.77 L 1390.44 113.69 L 1392.6 107.77 L 1393.49 107.77 L 1390.87 115 M 1389.91 115"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1396.72 112.47 L 1396.72 111.75 L 1401.06 111.75 L 1401.06 112.47 M 1396.72 112.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 112.47 L 1405.72 111.75 L 1410.06 111.75 L 1410.06 112.47 M 1405.72 112.47"/></g><rect x="0" y="117" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="117" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="117" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="117" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="117" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="117" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="594" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="117" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="117" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="117" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="117" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="117" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="117" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="117" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="117" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="117" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="117" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="117" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="117" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="117" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="117" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="117" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="117" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="117" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="117" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="117" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="117" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="117" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="117" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="117" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="117" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="117" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="117" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="117" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 128 L 0.93 120.77 L 2.35 120.77 L 4.36 126.36 L 6.42 120.77 L 7.69 120.77 L 7.69 128 L 6.73 128 L 6.73 122.12 L 4.74 127.52 L 3.75 127.52 L 1.81 122.11 L 1.81 128 M 0.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 125.24 L 13.36 122.12 L 12.13 125.24 M 14.59 125.24 M 15.68 128 L 14.89 126 L 11.83 126 L 11.04 128 L 10.08 128 L 12.95 120.77 L 13.96 120.77 L 16.79 128 M 15.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 22.35 128.18 Q 21.62 128.18 20.49 127.86 L 20.49 126.85 Q 21.71 127.41 22.5 127.41 Q 23.1 127.41 23.47 127.1 Q 23.84 126.78 23.84 126.26 Q 23.84 125.84 23.6 125.54 Q 23.35 125.24 22.71 124.88 L 22.21 124.59 Q 21.28 124.06 20.91 123.59 Q 20.53 123.13 20.53 122.51 Q 20.53 121.67 21.13 121.13 Q 21.74 120.59 22.68 120.59 Q 23.51 120.59 24.44 120.87 L 24.44 121.81 Q 23.3 121.36 22.73 121.36 Q 22.2 121.36 21.86 121.64 Q 21.51 121.93 21.51 122.36 Q 21.51 122.72 21.76 123 Q 22.02 123.27 22.69 123.66 L 23.21 123.95 Q 24.15 124.48 24.52 124.96 Q 24.89 125.43 24.89 126.1 Q 24.89 127.04 24.19 127.61 Q 23.5 128.18 22.35 128.18 M 22.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 128 L 30.65 121.54 L 28.09 121.54 L 28.09 120.77 L 34.24 120.77 L 34.24 121.54 L 31.68 121.54 L 31.68 128 M 30.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 125.47 L 37.72 124.75 L 42.06 124.75 L 42.06 125.47 M 37.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 125.47 L 46.72 124.75 L 51.06 124.75 L 51.06 125.47 M 46.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 125.47 L 55.72 124.75 L 60.06 124.75 L 60.06 125.47 M 55.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 125.47 L 64.72 124.75 L 69.06 124.75 L 69.06 125.47 M 64.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 77.59 125.24 L 76.36 122.12 L 75.13 125.24 M 77.59 125.24 M 78.68 128 L 77.89 126 L 74.83 126 L 74.04 128 L 73.08 128 L 75.95 120.77 L 76.96 120.77 L 79.79 128 M 78.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 83.93 128 L 83.93 120.77 L 84.96 120.77 L 84.96 127.23 L 88.21 127.23 L 88.21 128 M 83.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 128.18 Q 93.62 128.18 92.49 127.86 L 92.49 126.85 Q 93.71 127.41 94.5 127.41 Q 95.1 127.41 95.47 127.1 Q 95.84 126.78 95.84 126.26 Q 95.84 125.84 95.6 125.54 Q 95.35 125.24 94.71 124.88 L 94.21 124.59 Q 93.28 124.06 92.91 123.59 Q 92.53 123.13 92.53 122.51 Q 92.53 121.67 93.13 121.13 Q 93.74 120.59 94.68 120.59 Q 95.51 120.59 96.44 120.87 L 96.44 121.81 Q 95.3 121.36 94.73 121.36 Q 94.2 121.36 93.86 121.64 Q 93.51 121.93 93.51 122.36 Q 93.51 122.72 93.76 123 Q 94.02 123.27 94.69 123.66 L 95.21 123.95 Q 96.15 124.48 96.52 124.96 Q 96.89 125.43 96.89 126.1 Q 96.89 127.04 96.19 127.61 Q 95.5 128.18 94.35 128.18 M 94.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 103.35 128.18 Q 102.62 128.18 101.49 127.86 L 101.49 126.85 Q 102.71 127.41 103.5 127.41 Q 104.1 127.41 104.47 127.1 Q 104.84 126.78 104.84 126.26 Q 104.84 125.84 104.6 125.54 Q 104.35 125.24 103.71 124.88 L 103.21 124.59 Q 102.28 124.06 101.91 123.59 Q 101.53 123.13 101.53 122.51 Q 101.53 121.67 102.13 121.13 Q 102.74 120.59 103.68 120.59 Q 104.51 120.59 105.44 120.87 L 105.44 121.81 Q 104.3 121.36 103.73 121.36 Q 103.2 121.36 102.86 121.64 Q 102.51 121.93 102.51 122.36 Q 102.51 122.72 102.76 123 Q 103.02 123.27 103.69 123.66 L 104.21 123.95 Q 105.15 124.48 105.52 124.96 Q 105.89 125.43 105.89 126.1 Q 105.89 127.04 105.19 127.61 Q 104.5 128.18 103.35 128.18 M 103.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 113.59 125.24 L 112.36 122.12 L 111.13 125.24 M 113.59 125.24 M 114.68 128 L 113.89 126 L 110.83 126 L 110.04 128 L 109.08 128 L 111.95 120.77 L 112.96 120.77 L 115.79 128 M 114.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 120.93 128 L 120.93 120.77 L 121.95 120.77 L 121.95 128 M 120.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.91 128 L 127.18 120.77 L 128.2 120.77 L 130.44 126.69 L 132.6 120.77 L 133.49 120.77 L 130.87 128 M 129.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 142.36 127.8 Q 141.05 128.18 140.07 128.18 Q 138.35 128.18 137.43 127.2 Q 136.51 126.22 136.51 124.39 Q 136.51 122.59 137.44 121.59 Q 138.37 120.59 140.06 120.59 Q 141.16 120.59 142.35 120.92 L 142.35 121.87 Q 140.86 121.36 140.06 121.36 Q 138.89 121.36 138.24 122.16 Q 137.6 122.95 137.6 124.4 Q 137.6 125.83 138.29 126.62 Q 138.98 127.41 140.23 127.41 Q 140.75 127.41 141.34 127.23 L 141.34 124.88 L 142.36 124.88 M 142.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 128 L 147.65 121.54 L 145.09 121.54 L 145.09 120.77 L 151.24 120.77 L 151.24 121.54 L 148.68 121.54 L 148.68 128 M 147.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 128.18 Q 156.62 128.18 155.49 127.86 L 155.49 126.85 Q 156.71 127.41 157.5 127.41 Q 158.1 127.41 158.47 127.1 Q 158.84 126.78 158.84 126.26 Q 158.84 125.84 158.6 125.54 Q 158.35 125.24 157.71 124.88 L 157.21 124.59 Q 156.28 124.06 155.91 123.59 Q 155.53 123.13 155.53 122.51 Q 155.53 121.67 156.13 121.13 Q 156.74 120.59 157.68 120.59 Q 158.51 120.59 159.44 120.87 L 159.44 121.81 Q 158.3 121.36 157.73 121.36 Q 157.2 121.36 156.86 121.64 Q 156.51 121.93 156.51 122.36 Q 156.51 122.72 156.76 123 Q 157.02 123.27 157.69 123.66 L 158.21 123.95 Q 159.15 124.48 159.52 124.96 Q 159.89 125.43 159.89 126.1 Q 159.89 127.04 159.19 127.61 Q 158.5 128.18 157.35 128.18 M 157.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 128 L 164.93 120.77 L 168.97 120.77 L 168.97 121.54 L 165.96 121.54 L 165.96 123.96 L 168.49 123.96 L 168.49 124.72 L 165.96 124.72 L 165.96 128 M 164.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 174.93 128 L 174.93 120.77 L 175.95 120.77 L 175.95 128 M 174.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 128 L 181.93 120.77 L 184.12 120.77 Q 185.16 120.77 185.71 121.23 Q 186.27 121.69 186.27 122.57 Q 186.27 124.01 184.81 124.62 L 187.22 128 L 185.96 128 L 183.91 124.94 L 182.95 124.94 L 182.95 128 M 181.93 128 M 182.95 124.18 L 183.28 124.18 Q 185.21 124.18 185.21 122.66 Q 185.21 121.54 183.59 121.54 L 182.95 121.54 M 182.95 124.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 128 L 190.93 120.77 L 193.12 120.77 Q 194.16 120.77 194.71 121.23 Q 195.27 121.69 195.27 122.57 Q 195.27 124.01 193.81 124.62 L 196.22 128 L 194.96 128 L 192.91 124.94 L 191.95 124.94 L 191.95 128 M 190.93 128 M 191.95 124.18 L 192.28 124.18 Q 194.21 124.18 194.21 122.66 Q 194.21 121.54 192.59 121.54 L 191.95 121.54 M 191.95 124.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 202.35 128.18 Q 201.62 128.18 200.49 127.86 L 200.49 126.85 Q 201.71 127.41 202.5 127.41 Q 203.1 127.41 203.47 127.1 Q 203.84 126.78 203.84 126.26 Q 203.84 125.84 203.6 125.54 Q 203.35 125.24 202.71 124.88 L 202.21 124.59 Q 201.28 124.06 200.91 123.59 Q 200.53 123.13 200.53 122.51 Q 200.53 121.67 201.13 121.13 Q 201.74 120.59 202.68 120.59 Q 203.51 120.59 204.44 120.87 L 204.44 121.81 Q 203.3 121.36 202.73 121.36 Q 202.2 121.36 201.86 121.64 Q 201.51 121.93 201.51 122.36 Q 201.51 122.72 201.76 123 Q 202.02 123.27 202.69 123.66 L 203.21 123.95 Q 204.15 124.48 204.52 124.96 Q 204.89 125.43 204.89 126.1 Q 204.89 127.04 204.19 127.61 Q 203.5 128.18 202.35 128.18 M 202.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 128 L 208.93 120.77 L 210.9 120.77 Q 212.21 120.77 212.78 121.22 Q 213.35 121.66 213.35 122.67 Q 213.35 123.82 212.57 124.47 Q 211.79 125.13 210.4 125.13 L 209.95 125.13 L 209.95 128 M 208.93 128 M 209.95 124.35 L 210.36 124.35 Q 211.28 124.35 211.77 123.93 Q 212.27 123.51 212.27 122.75 Q 212.27 122.1 211.88 121.82 Q 211.49 121.54 210.58 121.54 L 209.95 121.54 M 209.95 124.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 221.59 125.24 L 220.36 122.12 L 219.13 125.24 M 221.59 125.24 M 222.68 128 L 221.89 126 L 218.83 126 L 218.04 128 L 217.08 128 L 219.95 120.77 L 220.96 120.77 L 223.79 128 M 222.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 128 L 226.93 120.77 L 228.9 120.77 Q 230.21 120.77 230.78 121.22 Q 231.35 121.66 231.35 122.67 Q 231.35 123.82 230.57 124.47 Q 229.79 125.13 228.4 125.13 L 227.95 125.13 L 227.95 128 M 226.93 128 M 227.95 124.35 L 228.36 124.35 Q 229.28 124.35 229.77 123.93 Q 230.27 123.51 230.27 122.75 Q 230.27 122.1 229.88 121.82 Q 229.49 121.54 228.58 121.54 L 227.95 121.54 M 227.95 124.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.93 128 L 237.93 120.77 L 238.95 120.77 L 238.95 128 M 237.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 128.18 Q 246.62 128.18 245.49 127.86 L 245.49 126.85 Q 246.71 127.41 247.5 127.41 Q 248.1 127.41 248.47 127.1 Q 248.84 126.78 248.84 126.26 Q 248.84 125.84 248.6 125.54 Q 248.35 125.24 247.71 124.88 L 247.21 124.59 Q 246.28 124.06 245.91 123.59 Q 245.53 123.13 245.53 122.51 Q 245.53 121.67 246.13 121.13 Q 246.74 120.59 247.68 120.59 Q 248.51 120.59 249.44 120.87 L 249.44 121.81 Q 248.3 121.36 247.73 121.36 Q 247.2 121.36 246.86 121.64 Q 246.51 121.93 246.51 122.36 Q 246.51 122.72 246.76 123 Q 247.02 123.27 247.69 123.66 L 248.21 123.95 Q 249.15 124.48 249.52 124.96 Q 249.89 125.43 249.89 126.1 Q 249.89 127.04 249.19 127.61 Q 248.5 128.18 247.35 128.18 M 247.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 254.93 128 L 254.93 120.77 L 255.96 120.77 L 255.96 127.23 L 259.21 127.23 L 259.21 128 M 254.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.93 128 L 262.93 120.77 L 265.12 120.77 Q 266.16 120.77 266.71 121.23 Q 267.27 121.69 267.27 122.57 Q 267.27 124.01 265.81 124.62 L 268.22 128 L 266.96 128 L 264.91 124.94 L 263.95 124.94 L 263.95 128 M 262.93 128 M 263.95 124.18 L 264.28 124.18 Q 266.21 124.18 266.21 122.66 Q 266.21 121.54 264.59 121.54 L 263.95 121.54 M 263.95 124.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 274.35 128.18 Q 273.62 128.18 272.49 127.86 L 272.49 126.85 Q 273.71 127.41 274.5 127.41 Q 275.1 127.41 275.47 127.1 Q 275.84 126.78 275.84 126.26 Q 275.84 125.84 275.6 125.54 Q 275.35 125.24 274.71 124.88 L 274.21 124.59 Q 273.28 124.06 272.91 123.59 Q 272.53 123.13 272.53 122.51 Q 272.53 121.67 273.13 121.13 Q 273.74 120.59 274.68 120.59 Q 275.51 120.59 276.44 120.87 L 276.44 121.81 Q 275.3 121.36 274.73 121.36 Q 274.2 121.36 273.86 121.64 Q 273.51 121.93 273.51 122.36 Q 273.51 122.72 273.76 123 Q 274.02 123.27 274.69 123.66 L 275.21 123.95 Q 276.15 124.48 276.52 124.96 Q 276.89 125.43 276.89 126.1 Q 276.89 127.04 276.19 127.61 Q 275.5 128.18 274.35 128.18 M 274.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 281.93 128 L 281.93 120.77 L 282.96 120.77 L 282.96 127.23 L 286.21 127.23 L 286.21 128 M 281.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.93 128 L 289.93 120.77 L 291.9 120.77 Q 293.21 120.77 293.78 121.22 Q 294.35 121.66 294.35 122.67 Q 294.35 123.82 293.57 124.47 Q 292.79 125.13 291.4 125.13 L 290.95 125.13 L 290.95 128 M 289.93 128 M 290.95 124.35 L 291.36 124.35 Q 292.28 124.35 292.77 123.93 Q 293.27 123.51 293.27 122.75 Q 293.27 122.1 292.88 121.82 Q 292.49 121.54 291.58 121.54 L 290.95 121.54 M 290.95 124.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 301.35 128.18 Q 300.62 128.18 299.49 127.86 L 299.49 126.85 Q 300.71 127.41 301.5 127.41 Q 302.1 127.41 302.47 127.1 Q 302.84 126.78 302.84 126.26 Q 302.84 125.84 302.6 125.54 Q 302.35 125.24 301.71 124.88 L 301.21 124.59 Q 300.28 124.06 299.91 123.59 Q 299.53 123.13 299.53 122.51 Q 299.53 121.67 300.13 121.13 Q 300.74 120.59 301.68 120.59 Q 302.51 120.59 303.44 120.87 L 303.44 121.81 Q 302.3 121.36 301.73 121.36 Q 301.2 121.36 300.86 121.64 Q 300.51 121.93 300.51 122.36 Q 300.51 122.72 300.76 123 Q 301.02 123.27 301.69 123.66 L 302.21 123.95 Q 303.15 124.48 303.52 124.96 Q 303.89 125.43 303.89 126.1 Q 303.89 127.04 303.19 127.61 Q 302.5 128.18 301.35 128.18 M 301.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 311.59 125.24 L 310.36 122.12 L 309.13 125.24 M 311.59 125.24 M 312.68 128 L 311.89 126 L 308.83 126 L 308.04 128 L 307.08 128 L 309.95 120.77 L 310.96 120.77 L 313.79 128 M 312.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 316.93 128 L 316.93 120.77 L 317.94 120.77 L 321.58 126.35 L 321.58 120.77 L 322.46 120.77 L 322.46 128 L 321.45 128 L 317.81 122.42 L 317.81 128 M 316.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 327.65 128 L 327.65 121.54 L 325.09 121.54 L 325.09 120.77 L 331.24 120.77 L 331.24 121.54 L 328.68 121.54 L 328.68 128 M 327.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 340.35 129.45 Q 338.64 128.89 337.49 128.13 Q 337.03 128.18 336.78 128.18 Q 335.33 128.18 334.42 127.13 Q 333.51 126.07 333.51 124.39 Q 333.51 122.66 334.43 121.63 Q 335.35 120.59 336.89 120.59 Q 338.43 120.59 339.35 121.63 Q 340.27 122.66 340.27 124.4 Q 340.27 126.89 338.42 127.85 Q 339.66 128.4 341 128.63 M 340.35 129.45 M 336.86 127.41 Q 337.97 127.41 338.57 126.62 Q 339.18 125.82 339.18 124.37 Q 339.18 122.96 338.57 122.16 Q 337.97 121.36 336.89 121.36 Q 335.81 121.36 335.2 122.16 Q 334.6 122.96 334.6 124.38 Q 334.6 125.79 335.2 126.6 Q 335.8 127.41 336.86 127.41 M 336.86 127.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 125.47 L 343.72 124.75 L 348.06 124.75 L 348.06 125.47 M 343.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 125.47 L 352.72 124.75 L 357.06 124.75 L 357.06 125.47 M 352.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 364.35 128.18 Q 363.62 128.18 362.49 127.86 L 362.49 126.85 Q 363.71 127.41 364.5 127.41 Q 365.1 127.41 365.47 127.1 Q 365.84 126.78 365.84 126.26 Q 365.84 125.84 365.6 125.54 Q 365.35 125.24 364.71 124.88 L 364.21 124.59 Q 363.28 124.06 362.91 123.59 Q 362.53 123.13 362.53 122.51 Q 362.53 121.67 363.13 121.13 Q 363.74 120.59 364.68 120.59 Q 365.51 120.59 366.44 120.87 L 366.44 121.81 Q 365.3 121.36 364.73 121.36 Q 364.2 121.36 363.86 121.64 Q 363.51 121.93 363.51 122.36 Q 363.51 122.72 363.76 123 Q 364.02 123.27 364.69 123.66 L 365.21 123.95 Q 366.15 124.48 366.52 124.96 Q 366.89 125.43 366.89 126.1 Q 366.89 127.04 366.19 127.61 Q 365.5 128.18 364.35 128.18 M 364.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 128 L 371.93 120.77 L 372.96 120.77 L 372.96 127.23 L 376.21 127.23 L 376.21 128 M 371.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 128 L 380.93 120.77 L 384.97 120.77 L 384.97 121.54 L 381.96 121.54 L 381.96 123.96 L 384.49 123.96 L 384.49 124.72 L 381.96 124.72 L 381.96 128 M 380.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 127.8 Q 393.05 128.18 392.07 128.18 Q 390.35 128.18 389.43 127.2 Q 388.51 126.22 388.51 124.39 Q 388.51 122.59 389.44 121.59 Q 390.37 120.59 392.06 120.59 Q 393.16 120.59 394.35 120.92 L 394.35 121.87 Q 392.86 121.36 392.06 121.36 Q 390.89 121.36 390.24 122.16 Q 389.6 122.95 389.6 124.4 Q 389.6 125.83 390.29 126.62 Q 390.98 127.41 392.23 127.41 Q 392.75 127.41 393.34 127.23 L 393.34 124.88 L 394.36 124.88 M 394.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 128 L 398.93 120.77 L 399.96 120.77 L 399.96 127.23 L 403.21 127.23 L 403.21 128 M 398.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 128 L 406.93 120.77 L 407.89 120.77 L 407.89 124.33 L 410.82 120.77 L 411.85 120.77 L 409.02 124.22 L 412.35 128 L 411.05 128 L 407.89 124.34 L 407.89 128 M 406.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 128.18 Q 417.62 128.18 416.49 127.86 L 416.49 126.85 Q 417.71 127.41 418.5 127.41 Q 419.1 127.41 419.47 127.1 Q 419.84 126.78 419.84 126.26 Q 419.84 125.84 419.6 125.54 Q 419.35 125.24 418.71 124.88 L 418.21 124.59 Q 417.28 124.06 416.91 123.59 Q 416.53 123.13 416.53 122.51 Q 416.53 121.67 417.13 121.13 Q 417.74 120.59 418.68 120.59 Q 419.51 120.59 420.44 120.87 L 420.44 121.81 Q 419.3 121.36 418.73 121.36 Q 418.2 121.36 417.86 121.64 Q 417.51 121.93 417.51 122.36 Q 417.51 122.72 417.76 123 Q 418.02 123.27 418.69 123.66 L 419.21 123.95 Q 420.15 124.48 420.52 124.96 Q 420.89 125.43 420.89 126.1 Q 420.89 127.04 420.19 127.61 Q 419.5 128.18 418.35 128.18 M 418.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 125.47 L 424.72 124.75 L 429.06 124.75 L 429.06 125.47 M 424.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 439.36 127.8 Q 438.05 128.18 437.07 128.18 Q 435.35 128.18 434.43 127.2 Q 433.51 126.22 433.51 124.39 Q 433.51 122.59 434.44 121.59 Q 435.37 120.59 437.06 120.59 Q 438.16 120.59 439.35 120.92 L 439.35 121.87 Q 437.86 121.36 437.06 121.36 Q 435.89 121.36 435.24 122.16 Q 434.6 122.95 434.6 124.4 Q 434.6 125.83 435.29 126.62 Q 435.98 127.41 437.23 127.41 Q 437.75 127.41 438.34 127.23 L 438.34 124.88 L 439.36 124.88 M 439.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 444.65 128 L 444.65 121.54 L 442.09 121.54 L 442.09 120.77 L 448.24 120.77 L 448.24 121.54 L 445.68 121.54 L 445.68 128 M 444.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 455.59 125.24 L 454.36 122.12 L 453.13 125.24 M 455.59 125.24 M 456.68 128 L 455.89 126 L 452.83 126 L 452.04 128 L 451.08 128 L 453.95 120.77 L 454.96 120.77 L 457.79 128 M 456.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 128 L 460.93 120.77 L 463.12 120.77 Q 464.16 120.77 464.71 121.23 Q 465.27 121.69 465.27 122.57 Q 465.27 124.01 463.81 124.62 L 466.22 128 L 464.96 128 L 462.91 124.94 L 461.95 124.94 L 461.95 128 M 460.93 128 M 461.95 124.18 L 462.28 124.18 Q 464.21 124.18 464.21 122.66 Q 464.21 121.54 462.59 121.54 L 461.95 121.54 M 461.95 124.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 475.36 127.8 Q 474.05 128.18 473.07 128.18 Q 471.35 128.18 470.43 127.2 Q 469.51 126.22 469.51 124.39 Q 469.51 122.59 470.44 121.59 Q 471.37 120.59 473.06 120.59 Q 474.16 120.59 475.35 120.92 L 475.35 121.87 Q 473.86 121.36 473.06 121.36 Q 471.89 121.36 471.24 122.16 Q 470.6 122.95 470.6 124.4 Q 470.6 125.83 471.29 126.62 Q 471.98 127.41 473.23 127.41 Q 473.75 127.41 474.34 127.23 L 474.34 124.88 L 475.36 124.88 M 475.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 127.8 Q 483.05 128.18 482.07 128.18 Q 480.35 128.18 479.43 127.2 Q 478.51 126.22 478.51 124.39 Q 478.51 122.59 479.44 121.59 Q 480.37 120.59 482.06 120.59 Q 483.16 120.59 484.35 120.92 L 484.35 121.87 Q 482.86 121.36 482.06 121.36 Q 480.89 121.36 480.24 122.16 Q 479.6 122.95 479.6 124.4 Q 479.6 125.83 480.29 126.62 Q 480.98 127.41 482.23 127.41 Q 482.75 127.41 483.34 127.23 L 483.34 124.88 L 484.36 124.88 M 484.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 128 L 487.93 120.77 L 490.12 120.77 Q 491.16 120.77 491.71 121.23 Q 492.27 121.69 492.27 122.57 Q 492.27 124.01 490.81 124.62 L 493.22 128 L 491.96 128 L 489.91 124.94 L 488.95 124.94 L 488.95 128 M 487.93 128 M 488.95 124.18 L 489.28 124.18 Q 491.21 124.18 491.21 122.66 Q 491.21 121.54 489.59 121.54 L 488.95 121.54 M 488.95 124.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.91 128 L 496.18 120.77 L 497.2 120.77 L 499.44 126.69 L 501.6 120.77 L 502.49 120.77 L 499.87 128 M 498.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 128 L 507.65 121.54 L 505.09 121.54 L 505.09 120.77 L 511.24 120.77 L 511.24 121.54 L 508.68 121.54 L 508.68 128 M 507.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 125.24 L 517.36 122.12 L 516.13 125.24 M 518.59 125.24 M 519.68 128 L 518.89 126 L 515.83 126 L 515.04 128 L 514.08 128 L 516.95 120.77 L 517.96 120.77 L 520.79 128 M 519.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 128 L 522.93 120.77 L 524.35 120.77 L 526.36 126.36 L 528.42 120.77 L 529.69 120.77 L 529.69 128 L 528.73 128 L 528.73 122.12 L 526.74 127.52 L 525.75 127.52 L 523.81 122.11 L 523.81 128 M 522.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 125.24 L 535.36 122.12 L 534.13 125.24 M 536.59 125.24 M 537.68 128 L 536.89 126 L 533.83 126 L 533.04 128 L 532.08 128 L 534.95 120.77 L 535.96 120.77 L 538.79 128 M 537.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 128 L 543.65 121.54 L 541.09 121.54 L 541.09 120.77 L 547.24 120.77 L 547.24 121.54 L 544.68 121.54 L 544.68 128 M 543.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 128 L 552.5 124.98 L 550.08 120.77 L 551.25 120.77 L 553.13 124.04 L 555.15 120.77 L 556.1 120.77 L 553.52 124.96 L 553.52 128 M 552.5 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 128 L 559.93 120.77 L 560.89 120.77 L 560.89 124.33 L 563.82 120.77 L 564.85 120.77 L 562.02 124.22 L 565.35 128 L 564.05 128 L 560.89 124.34 L 560.89 128 M 559.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 128 L 568.18 120.77 L 569.2 120.77 L 571.44 126.69 L 573.6 120.77 L 574.49 120.77 L 571.87 128 M 570.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 128 L 577.93 120.77 L 578.89 120.77 L 578.89 124.33 L 581.82 120.77 L 582.85 120.77 L 580.02 124.22 L 583.35 128 L 582.05 128 L 578.89 124.34 L 578.89 128 M 577.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 128 L 587.93 120.77 L 591.97 120.77 L 591.97 121.54 L 588.96 121.54 L 588.96 123.96 L 591.49 123.96 L 591.49 124.72 L 588.96 124.72 L 588.96 128 M 587.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 128 L 597.93 120.77 L 598.95 120.77 L 598.95 128 M 597.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 128 L 606.65 121.54 L 604.09 121.54 L 604.09 120.77 L 610.24 120.77 L 610.24 121.54 L 607.68 121.54 L 607.68 128 M 606.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 128 L 613.93 120.77 L 615.9 120.77 Q 617.21 120.77 617.78 121.22 Q 618.35 121.66 618.35 122.67 Q 618.35 123.82 617.57 124.47 Q 616.79 125.13 615.4 125.13 L 614.95 125.13 L 614.95 128 M 613.93 128 M 614.95 124.35 L 615.36 124.35 Q 616.28 124.35 616.77 123.93 Q 617.27 123.51 617.27 122.75 Q 617.27 122.1 616.88 121.82 Q 616.49 121.54 615.58 121.54 L 614.95 121.54 M 614.95 124.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 128 L 623.93 120.77 L 627.97 120.77 L 627.97 121.54 L 624.96 121.54 L 624.96 123.86 L 627.48 123.86 L 627.48 124.62 L 624.96 124.62 L 624.96 127.23 L 628.18 127.23 L 628.18 128 M 623.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 127.8 Q 636.05 128.18 635.07 128.18 Q 633.35 128.18 632.43 127.2 Q 631.51 126.22 631.51 124.39 Q 631.51 122.59 632.44 121.59 Q 633.37 120.59 635.06 120.59 Q 636.16 120.59 637.35 120.92 L 637.35 121.87 Q 635.86 121.36 635.06 121.36 Q 633.89 121.36 633.24 122.16 Q 632.6 122.95 632.6 124.4 Q 632.6 125.83 633.29 126.62 Q 633.98 127.41 635.23 127.41 Q 635.75 127.41 636.34 127.23 L 636.34 124.88 L 637.36 124.88 M 637.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 128 L 641.93 120.77 L 645.97 120.77 L 645.97 121.54 L 642.96 121.54 L 642.96 123.86 L 645.48 123.86 L 645.48 124.62 L 642.96 124.62 L 642.96 127.23 L 646.18 127.23 L 646.18 128 M 641.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 650.93 128 L 650.93 120.77 L 651.96 120.77 L 651.96 127.23 L 655.21 127.23 L 655.21 128 M 650.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 128 L 659.93 120.77 L 663.97 120.77 L 663.97 121.54 L 660.96 121.54 L 660.96 123.86 L 663.48 123.86 L 663.48 124.62 L 660.96 124.62 L 660.96 127.23 L 664.18 127.23 L 664.18 128 M 659.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 669.91 128 L 667.18 120.77 L 668.2 120.77 L 670.44 126.69 L 672.6 120.77 L 673.49 120.77 L 670.87 128 M 669.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 128 L 677.93 120.77 L 681.97 120.77 L 681.97 121.54 L 678.96 121.54 L 678.96 123.86 L 681.48 123.86 L 681.48 124.62 L 678.96 124.62 L 678.96 127.23 L 682.18 127.23 L 682.18 128 M 677.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 128.18 Q 687.34 128.18 686.43 127.19 Q 685.51 126.2 685.51 124.39 Q 685.51 122.58 686.44 121.59 Q 687.38 120.59 689.08 120.59 Q 690.05 120.59 691.35 120.91 L 691.35 121.87 Q 689.87 121.36 689.06 121.36 Q 687.89 121.36 687.24 122.16 Q 686.6 122.95 686.6 124.4 Q 686.6 125.78 687.29 126.58 Q 687.97 127.38 689.17 127.38 Q 690.19 127.38 691.36 126.75 L 691.36 127.63 Q 690.29 128.18 689.03 128.18 M 689.03 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 128 L 694.93 120.77 L 697.33 120.77 Q 698.41 120.77 699.07 121.01 Q 699.73 121.25 700.22 121.82 Q 700.98 122.73 700.98 124.22 Q 700.98 126.02 700.03 127.01 Q 699.08 128 697.35 128 M 694.93 128 M 695.96 127.23 L 697.27 127.23 Q 698.68 127.23 699.26 126.48 Q 699.89 125.67 699.89 124.31 Q 699.89 123.04 699.27 122.31 Q 698.9 121.87 698.38 121.7 Q 697.85 121.54 696.8 121.54 L 695.96 121.54 M 695.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 128 L 703.93 120.77 L 706.33 120.77 Q 707.41 120.77 708.07 121.01 Q 708.73 121.25 709.22 121.82 Q 709.98 122.73 709.98 124.22 Q 709.98 126.02 709.03 127.01 Q 708.08 128 706.35 128 M 703.93 128 M 704.96 127.23 L 706.27 127.23 Q 707.68 127.23 708.26 126.48 Q 708.89 125.67 708.89 124.31 Q 708.89 123.04 708.27 122.31 Q 707.9 121.87 707.38 121.7 Q 706.85 121.54 705.8 121.54 L 704.96 121.54 M 704.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 128 L 712.93 120.77 L 715.33 120.77 Q 716.41 120.77 717.07 121.01 Q 717.73 121.25 718.22 121.82 Q 718.98 122.73 718.98 124.22 Q 718.98 126.02 718.03 127.01 Q 717.08 128 715.35 128 M 712.93 128 M 713.96 127.23 L 715.27 127.23 Q 716.68 127.23 717.26 126.48 Q 717.89 125.67 717.89 124.31 Q 717.89 123.04 717.27 122.31 Q 716.9 121.87 716.38 121.7 Q 715.85 121.54 714.8 121.54 L 713.96 121.54 M 713.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 128 L 721.18 120.77 L 722.2 120.77 L 724.44 126.69 L 726.6 120.77 L 727.49 120.77 L 724.87 128 M 723.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 128 L 732.5 124.98 L 730.08 120.77 L 731.25 120.77 L 733.13 124.04 L 735.15 120.77 L 736.1 120.77 L 733.52 124.96 L 733.52 128 M 732.5 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.91 128 L 739.18 120.77 L 740.2 120.77 L 742.44 126.69 L 744.6 120.77 L 745.49 120.77 L 742.87 128 M 741.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 128 L 749.93 120.77 L 750.96 120.77 L 750.96 127.23 L 754.21 127.23 L 754.21 128 M 749.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 128 L 757.93 120.77 L 760.33 120.77 Q 761.41 120.77 762.07 121.01 Q 762.73 121.25 763.22 121.82 Q 763.98 122.73 763.98 124.22 Q 763.98 126.02 763.03 127.01 Q 762.08 128 760.35 128 M 757.93 128 M 758.96 127.23 L 760.27 127.23 Q 761.68 127.23 762.26 126.48 Q 762.89 125.67 762.89 124.31 Q 762.89 123.04 762.27 122.31 Q 761.9 121.87 761.38 121.7 Q 760.85 121.54 759.8 121.54 L 758.96 121.54 M 758.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 125.24 L 769.36 122.12 L 768.13 125.24 M 770.59 125.24 M 771.68 128 L 770.89 126 L 767.83 126 L 767.04 128 L 766.08 128 L 768.95 120.77 L 769.96 120.77 L 772.79 128 M 771.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 125.24 L 778.36 122.12 L 777.13 125.24 M 779.59 125.24 M 780.68 128 L 779.89 126 L 776.83 126 L 776.04 128 L 775.08 128 L 777.95 120.77 L 778.96 120.77 L 781.79 128 M 780.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 128 L 785.93 120.77 L 789.97 120.77 L 789.97 121.54 L 786.96 121.54 L 786.96 123.86 L 789.48 123.86 L 789.48 124.62 L 786.96 124.62 L 786.96 127.23 L 790.18 127.23 L 790.18 128 M 785.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 128 L 794.93 120.77 L 798.97 120.77 L 798.97 121.54 L 795.96 121.54 L 795.96 123.86 L 798.48 123.86 L 798.48 124.62 L 795.96 124.62 L 795.96 127.23 L 799.18 127.23 L 799.18 128 M 794.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 125.24 L 805.36 122.12 L 804.13 125.24 M 806.59 125.24 M 807.68 128 L 806.89 126 L 803.83 126 L 803.04 128 L 802.08 128 L 804.95 120.77 L 805.96 120.77 L 808.79 128 M 807.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 127.8 Q 816.05 128.18 815.07 128.18 Q 813.35 128.18 812.43 127.2 Q 811.51 126.22 811.51 124.39 Q 811.51 122.59 812.44 121.59 Q 813.37 120.59 815.06 120.59 Q 816.16 120.59 817.35 120.92 L 817.35 121.87 Q 815.86 121.36 815.06 121.36 Q 813.89 121.36 813.24 122.16 Q 812.6 122.95 812.6 124.4 Q 812.6 125.83 813.29 126.62 Q 813.98 127.41 815.23 127.41 Q 815.75 127.41 816.34 127.23 L 816.34 124.88 L 817.36 124.88 M 817.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 128 L 822.93 120.77 L 823.95 120.77 L 823.95 128 M 822.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 128 L 829.93 120.77 L 832.33 120.77 Q 833.41 120.77 834.07 121.01 Q 834.73 121.25 835.22 121.82 Q 835.98 122.73 835.98 124.22 Q 835.98 126.02 835.03 127.01 Q 834.08 128 832.35 128 M 829.93 128 M 830.96 127.23 L 832.27 127.23 Q 833.68 127.23 834.26 126.48 Q 834.89 125.67 834.89 124.31 Q 834.89 123.04 834.27 122.31 Q 833.9 121.87 833.38 121.7 Q 832.85 121.54 831.8 121.54 L 830.96 121.54 M 830.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 128 L 839.93 120.77 L 840.96 120.77 L 840.96 127.23 L 844.21 127.23 L 844.21 128 M 839.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 128 L 847.93 120.77 L 849.9 120.77 Q 851.21 120.77 851.78 121.22 Q 852.35 121.66 852.35 122.67 Q 852.35 123.82 851.57 124.47 Q 850.79 125.13 849.4 125.13 L 848.95 125.13 L 848.95 128 M 847.93 128 M 848.95 124.35 L 849.36 124.35 Q 850.28 124.35 850.77 123.93 Q 851.27 123.51 851.27 122.75 Q 851.27 122.1 850.88 121.82 Q 850.49 121.54 849.58 121.54 L 848.95 121.54 M 848.95 124.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 128 L 858.5 124.98 L 856.08 120.77 L 857.25 120.77 L 859.13 124.04 L 861.15 120.77 L 862.1 120.77 L 859.52 124.96 L 859.52 128 M 858.5 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 128.18 Q 867.62 128.18 866.49 127.86 L 866.49 126.85 Q 867.71 127.41 868.5 127.41 Q 869.1 127.41 869.47 127.1 Q 869.84 126.78 869.84 126.26 Q 869.84 125.84 869.6 125.54 Q 869.35 125.24 868.71 124.88 L 868.21 124.59 Q 867.28 124.06 866.91 123.59 Q 866.53 123.13 866.53 122.51 Q 866.53 121.67 867.13 121.13 Q 867.74 120.59 868.68 120.59 Q 869.51 120.59 870.44 120.87 L 870.44 121.81 Q 869.3 121.36 868.73 121.36 Q 868.2 121.36 867.86 121.64 Q 867.51 121.93 867.51 122.36 Q 867.51 122.72 867.76 123 Q 868.02 123.27 868.69 123.66 L 869.21 123.95 Q 870.15 124.48 870.52 124.96 Q 870.89 125.43 870.89 126.1 Q 870.89 127.04 870.19 127.61 Q 869.5 128.18 868.35 128.18 M 868.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 128.18 Q 876.34 128.18 875.43 127.19 Q 874.51 126.2 874.51 124.39 Q 874.51 122.58 875.44 121.59 Q 876.38 120.59 878.08 120.59 Q 879.05 120.59 880.35 120.91 L 880.35 121.87 Q 878.87 121.36 878.06 121.36 Q 876.89 121.36 876.24 122.16 Q 875.6 122.95 875.6 124.4 Q 875.6 125.78 876.29 126.58 Q 876.97 127.38 878.17 127.38 Q 879.19 127.38 880.36 126.75 L 880.36 127.63 Q 879.29 128.18 878.03 128.18 M 878.03 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 128 L 883.93 120.77 L 886.12 120.77 Q 887.16 120.77 887.71 121.23 Q 888.27 121.69 888.27 122.57 Q 888.27 124.01 886.81 124.62 L 889.22 128 L 887.96 128 L 885.91 124.94 L 884.95 124.94 L 884.95 128 M 883.93 128 M 884.95 124.18 L 885.28 124.18 Q 887.21 124.18 887.21 122.66 Q 887.21 121.54 885.59 121.54 L 884.95 121.54 M 884.95 124.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 125.24 L 895.36 122.12 L 894.13 125.24 M 896.59 125.24 M 897.68 128 L 896.89 126 L 893.83 126 L 893.04 128 L 892.08 128 L 894.95 120.77 L 895.96 120.77 L 898.79 128 M 897.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 127.8 Q 906.05 128.18 905.07 128.18 Q 903.35 128.18 902.43 127.2 Q 901.51 126.22 901.51 124.39 Q 901.51 122.59 902.44 121.59 Q 903.37 120.59 905.06 120.59 Q 906.16 120.59 907.35 120.92 L 907.35 121.87 Q 905.86 121.36 905.06 121.36 Q 903.89 121.36 903.24 122.16 Q 902.6 122.95 902.6 124.4 Q 902.6 125.83 903.29 126.62 Q 903.98 127.41 905.23 127.41 Q 905.75 127.41 906.34 127.23 L 906.34 124.88 L 907.36 124.88 M 907.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 128.18 Q 912.62 128.18 911.49 127.86 L 911.49 126.85 Q 912.71 127.41 913.5 127.41 Q 914.1 127.41 914.47 127.1 Q 914.84 126.78 914.84 126.26 Q 914.84 125.84 914.6 125.54 Q 914.35 125.24 913.71 124.88 L 913.21 124.59 Q 912.28 124.06 911.91 123.59 Q 911.53 123.13 911.53 122.51 Q 911.53 121.67 912.13 121.13 Q 912.74 120.59 913.68 120.59 Q 914.51 120.59 915.44 120.87 L 915.44 121.81 Q 914.3 121.36 913.73 121.36 Q 913.2 121.36 912.86 121.64 Q 912.51 121.93 912.51 122.36 Q 912.51 122.72 912.76 123 Q 913.02 123.27 913.69 123.66 L 914.21 123.95 Q 915.15 124.48 915.52 124.96 Q 915.89 125.43 915.89 126.1 Q 915.89 127.04 915.19 127.61 Q 914.5 128.18 913.35 128.18 M 913.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 128.18 Q 921.34 128.18 920.43 127.19 Q 919.51 126.2 919.51 124.39 Q 919.51 122.58 920.44 121.59 Q 921.38 120.59 923.08 120.59 Q 924.05 120.59 925.35 120.91 L 925.35 121.87 Q 923.87 121.36 923.06 121.36 Q 921.89 121.36 921.24 122.16 Q 920.6 122.95 920.6 124.4 Q 920.6 125.78 921.29 126.58 Q 921.97 127.38 923.17 127.38 Q 924.19 127.38 925.36 126.75 L 925.36 127.63 Q 924.29 128.18 923.03 128.18 M 923.03 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 128.18 Q 930.62 128.18 929.49 127.86 L 929.49 126.85 Q 930.71 127.41 931.5 127.41 Q 932.1 127.41 932.47 127.1 Q 932.84 126.78 932.84 126.26 Q 932.84 125.84 932.6 125.54 Q 932.35 125.24 931.71 124.88 L 931.21 124.59 Q 930.28 124.06 929.91 123.59 Q 929.53 123.13 929.53 122.51 Q 929.53 121.67 930.13 121.13 Q 930.74 120.59 931.68 120.59 Q 932.51 120.59 933.44 120.87 L 933.44 121.81 Q 932.3 121.36 931.73 121.36 Q 931.2 121.36 930.86 121.64 Q 930.51 121.93 930.51 122.36 Q 930.51 122.72 930.76 123 Q 931.02 123.27 931.69 123.66 L 932.21 123.95 Q 933.15 124.48 933.52 124.96 Q 933.89 125.43 933.89 126.1 Q 933.89 127.04 933.19 127.61 Q 932.5 128.18 931.35 128.18 M 931.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 128.18 Q 939.62 128.18 938.49 127.86 L 938.49 126.85 Q 939.71 127.41 940.5 127.41 Q 941.1 127.41 941.47 127.1 Q 941.84 126.78 941.84 126.26 Q 941.84 125.84 941.6 125.54 Q 941.35 125.24 940.71 124.88 L 940.21 124.59 Q 939.28 124.06 938.91 123.59 Q 938.53 123.13 938.53 122.51 Q 938.53 121.67 939.13 121.13 Q 939.74 120.59 940.68 120.59 Q 941.51 120.59 942.44 120.87 L 942.44 121.81 Q 941.3 121.36 940.73 121.36 Q 940.2 121.36 939.86 121.64 Q 939.51 121.93 939.51 122.36 Q 939.51 122.72 939.76 123 Q 940.02 123.27 940.69 123.66 L 941.21 123.95 Q 942.15 124.48 942.52 124.96 Q 942.89 125.43 942.89 126.1 Q 942.89 127.04 942.19 127.61 Q 941.5 128.18 940.35 128.18 M 940.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 128.18 Q 948.34 128.18 947.43 127.19 Q 946.51 126.2 946.51 124.39 Q 946.51 122.58 947.44 121.59 Q 948.38 120.59 950.08 120.59 Q 951.05 120.59 952.35 120.91 L 952.35 121.87 Q 950.87 121.36 950.06 121.36 Q 948.89 121.36 948.24 122.16 Q 947.6 122.95 947.6 124.4 Q 947.6 125.78 948.29 126.58 Q 948.97 127.38 950.17 127.38 Q 951.19 127.38 952.36 126.75 L 952.36 127.63 Q 951.29 128.18 950.03 128.18 M 950.03 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 125.24 L 958.36 122.12 L 957.13 125.24 M 959.59 125.24 M 960.68 128 L 959.89 126 L 956.83 126 L 956.04 128 L 955.08 128 L 957.95 120.77 L 958.96 120.77 L 961.79 128 M 960.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 127.8 Q 969.05 128.18 968.07 128.18 Q 966.35 128.18 965.43 127.2 Q 964.51 126.22 964.51 124.39 Q 964.51 122.59 965.44 121.59 Q 966.37 120.59 968.06 120.59 Q 969.16 120.59 970.35 120.92 L 970.35 121.87 Q 968.86 121.36 968.06 121.36 Q 966.89 121.36 966.24 122.16 Q 965.6 122.95 965.6 124.4 Q 965.6 125.83 966.29 126.62 Q 966.98 127.41 968.23 127.41 Q 968.75 127.41 969.34 127.23 L 969.34 124.88 L 970.36 124.88 M 970.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 128 L 973.93 120.77 L 974.89 120.77 L 974.89 124.33 L 977.82 120.77 L 978.85 120.77 L 976.02 124.22 L 979.35 128 L 978.05 128 L 974.89 124.34 L 974.89 128 M 973.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 128 L 982.18 120.77 L 983.2 120.77 L 985.44 126.69 L 987.6 120.77 L 988.49 120.77 L 985.87 128 M 984.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 128 L 991.18 120.77 L 992.2 120.77 L 994.44 126.69 L 996.6 120.77 L 997.49 120.77 L 994.87 128 M 993.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 128.18 Q 1002.62 128.18 1001.49 127.86 L 1001.49 126.85 Q 1002.71 127.41 1003.5 127.41 Q 1004.1 127.41 1004.47 127.1 Q 1004.84 126.78 1004.84 126.26 Q 1004.84 125.84 1004.6 125.54 Q 1004.35 125.24 1003.71 124.88 L 1003.21 124.59 Q 1002.28 124.06 1001.91 123.59 Q 1001.53 123.13 1001.53 122.51 Q 1001.53 121.67 1002.13 121.13 Q 1002.74 120.59 1003.68 120.59 Q 1004.51 120.59 1005.44 120.87 L 1005.44 121.81 Q 1004.3 121.36 1003.73 121.36 Q 1003.2 121.36 1002.86 121.64 Q 1002.51 121.93 1002.51 122.36 Q 1002.51 122.72 1002.76 123 Q 1003.02 123.27 1003.69 123.66 L 1004.21 123.95 Q 1005.15 124.48 1005.52 124.96 Q 1005.89 125.43 1005.89 126.1 Q 1005.89 127.04 1005.19 127.61 Q 1004.5 128.18 1003.35 128.18 M 1003.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 127.8 Q 1014.05 128.18 1013.07 128.18 Q 1011.35 128.18 1010.43 127.2 Q 1009.51 126.22 1009.51 124.39 Q 1009.51 122.59 1010.44 121.59 Q 1011.37 120.59 1013.06 120.59 Q 1014.16 120.59 1015.35 120.92 L 1015.35 121.87 Q 1013.86 121.36 1013.06 121.36 Q 1011.89 121.36 1011.24 122.16 Q 1010.6 122.95 1010.6 124.4 Q 1010.6 125.83 1011.29 126.62 Q 1011.98 127.41 1013.23 127.41 Q 1013.75 127.41 1014.34 127.23 L 1014.34 124.88 L 1015.36 124.88 M 1015.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 128.18 Q 1020.62 128.18 1019.49 127.86 L 1019.49 126.85 Q 1020.71 127.41 1021.5 127.41 Q 1022.1 127.41 1022.47 127.1 Q 1022.84 126.78 1022.84 126.26 Q 1022.84 125.84 1022.6 125.54 Q 1022.35 125.24 1021.71 124.88 L 1021.21 124.59 Q 1020.28 124.06 1019.91 123.59 Q 1019.53 123.13 1019.53 122.51 Q 1019.53 121.67 1020.13 121.13 Q 1020.74 120.59 1021.68 120.59 Q 1022.51 120.59 1023.44 120.87 L 1023.44 121.81 Q 1022.3 121.36 1021.73 121.36 Q 1021.2 121.36 1020.86 121.64 Q 1020.51 121.93 1020.51 122.36 Q 1020.51 122.72 1020.76 123 Q 1021.02 123.27 1021.69 123.66 L 1022.21 123.95 Q 1023.15 124.48 1023.52 124.96 Q 1023.89 125.43 1023.89 126.1 Q 1023.89 127.04 1023.19 127.61 Q 1022.5 128.18 1021.35 128.18 M 1021.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 128 L 1027.18 120.77 L 1028.2 120.77 L 1030.44 126.69 L 1032.6 120.77 L 1033.49 120.77 L 1030.87 128 M 1029.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 128 L 1036.93 120.77 L 1039.33 120.77 Q 1040.41 120.77 1041.07 121.01 Q 1041.73 121.25 1042.22 121.82 Q 1042.98 122.73 1042.98 124.22 Q 1042.98 126.02 1042.03 127.01 Q 1041.08 128 1039.35 128 M 1036.93 128 M 1037.96 127.23 L 1039.27 127.23 Q 1040.68 127.23 1041.26 126.48 Q 1041.89 125.67 1041.89 124.31 Q 1041.89 123.04 1041.27 122.31 Q 1040.9 121.87 1040.38 121.7 Q 1039.85 121.54 1038.8 121.54 L 1037.96 121.54 M 1037.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 129.45 Q 1049.64 128.89 1048.49 128.13 Q 1048.03 128.18 1047.78 128.18 Q 1046.33 128.18 1045.42 127.13 Q 1044.51 126.07 1044.51 124.39 Q 1044.51 122.66 1045.43 121.63 Q 1046.35 120.59 1047.89 120.59 Q 1049.43 120.59 1050.35 121.63 Q 1051.27 122.66 1051.27 124.4 Q 1051.27 126.89 1049.42 127.85 Q 1050.66 128.4 1052 128.63 M 1051.35 129.45 M 1047.86 127.41 Q 1048.97 127.41 1049.57 126.62 Q 1050.18 125.82 1050.18 124.37 Q 1050.18 122.96 1049.57 122.16 Q 1048.97 121.36 1047.89 121.36 Q 1046.81 121.36 1046.2 122.16 Q 1045.6 122.96 1045.6 124.38 Q 1045.6 125.79 1046.2 126.6 Q 1046.8 127.41 1047.86 127.41 M 1047.86 127.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 128.18 Q 1056.62 128.18 1055.49 127.86 L 1055.49 126.85 Q 1056.71 127.41 1057.5 127.41 Q 1058.1 127.41 1058.47 127.1 Q 1058.84 126.78 1058.84 126.26 Q 1058.84 125.84 1058.6 125.54 Q 1058.35 125.24 1057.71 124.88 L 1057.21 124.59 Q 1056.28 124.06 1055.91 123.59 Q 1055.53 123.13 1055.53 122.51 Q 1055.53 121.67 1056.13 121.13 Q 1056.74 120.59 1057.68 120.59 Q 1058.51 120.59 1059.44 120.87 L 1059.44 121.81 Q 1058.3 121.36 1057.73 121.36 Q 1057.2 121.36 1056.86 121.64 Q 1056.51 121.93 1056.51 122.36 Q 1056.51 122.72 1056.76 123 Q 1057.02 123.27 1057.69 123.66 L 1058.21 123.95 Q 1059.15 124.48 1059.52 124.96 Q 1059.89 125.43 1059.89 126.1 Q 1059.89 127.04 1059.19 127.61 Q 1058.5 128.18 1057.35 128.18 M 1057.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 128 L 1063.93 120.77 L 1066.33 120.77 Q 1067.41 120.77 1068.07 121.01 Q 1068.73 121.25 1069.22 121.82 Q 1069.98 122.73 1069.98 124.22 Q 1069.98 126.02 1069.03 127.01 Q 1068.08 128 1066.35 128 M 1063.93 128 M 1064.96 127.23 L 1066.27 127.23 Q 1067.68 127.23 1068.26 126.48 Q 1068.89 125.67 1068.89 124.31 Q 1068.89 123.04 1068.27 122.31 Q 1067.9 121.87 1067.38 121.7 Q 1066.85 121.54 1065.8 121.54 L 1064.96 121.54 M 1064.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 129.45 Q 1076.64 128.89 1075.49 128.13 Q 1075.03 128.18 1074.78 128.18 Q 1073.33 128.18 1072.42 127.13 Q 1071.51 126.07 1071.51 124.39 Q 1071.51 122.66 1072.43 121.63 Q 1073.35 120.59 1074.89 120.59 Q 1076.43 120.59 1077.35 121.63 Q 1078.27 122.66 1078.27 124.4 Q 1078.27 126.89 1076.42 127.85 Q 1077.66 128.4 1079 128.63 M 1078.35 129.45 M 1074.86 127.41 Q 1075.97 127.41 1076.57 126.62 Q 1077.18 125.82 1077.18 124.37 Q 1077.18 122.96 1076.57 122.16 Q 1075.97 121.36 1074.89 121.36 Q 1073.81 121.36 1073.2 122.16 Q 1072.6 122.96 1072.6 124.38 Q 1072.6 125.79 1073.2 126.6 Q 1073.8 127.41 1074.86 127.41 M 1074.86 127.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 128.18 Q 1083.62 128.18 1082.49 127.86 L 1082.49 126.85 Q 1083.71 127.41 1084.5 127.41 Q 1085.1 127.41 1085.47 127.1 Q 1085.84 126.78 1085.84 126.26 Q 1085.84 125.84 1085.6 125.54 Q 1085.35 125.24 1084.71 124.88 L 1084.21 124.59 Q 1083.28 124.06 1082.91 123.59 Q 1082.53 123.13 1082.53 122.51 Q 1082.53 121.67 1083.13 121.13 Q 1083.74 120.59 1084.68 120.59 Q 1085.51 120.59 1086.44 120.87 L 1086.44 121.81 Q 1085.3 121.36 1084.73 121.36 Q 1084.2 121.36 1083.86 121.64 Q 1083.51 121.93 1083.51 122.36 Q 1083.51 122.72 1083.76 123 Q 1084.02 123.27 1084.69 123.66 L 1085.21 123.95 Q 1086.15 124.48 1086.52 124.96 Q 1086.89 125.43 1086.89 126.1 Q 1086.89 127.04 1086.19 127.61 Q 1085.5 128.18 1084.35 128.18 M 1084.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 128 L 1091.93 120.77 L 1095.97 120.77 L 1095.97 121.54 L 1092.96 121.54 L 1092.96 123.96 L 1095.49 123.96 L 1095.49 124.72 L 1092.96 124.72 L 1092.96 128 M 1091.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 128 L 1100.93 120.77 L 1101.96 120.77 L 1101.96 127.23 L 1105.21 127.23 L 1105.21 128 M 1100.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 128 L 1108.93 120.77 L 1111.33 120.77 Q 1112.41 120.77 1113.07 121.01 Q 1113.73 121.25 1114.22 121.82 Q 1114.98 122.73 1114.98 124.22 Q 1114.98 126.02 1114.03 127.01 Q 1113.08 128 1111.35 128 M 1108.93 128 M 1109.96 127.23 L 1111.27 127.23 Q 1112.68 127.23 1113.26 126.48 Q 1113.89 125.67 1113.89 124.31 Q 1113.89 123.04 1113.27 122.31 Q 1112.9 121.87 1112.38 121.7 Q 1111.85 121.54 1110.8 121.54 L 1109.96 121.54 M 1109.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 128 L 1117.93 120.77 L 1120.33 120.77 Q 1121.41 120.77 1122.07 121.01 Q 1122.73 121.25 1123.22 121.82 Q 1123.98 122.73 1123.98 124.22 Q 1123.98 126.02 1123.03 127.01 Q 1122.08 128 1120.35 128 M 1117.93 128 M 1118.96 127.23 L 1120.27 127.23 Q 1121.68 127.23 1122.26 126.48 Q 1122.89 125.67 1122.89 124.31 Q 1122.89 123.04 1122.27 122.31 Q 1121.9 121.87 1121.38 121.7 Q 1120.85 121.54 1119.8 121.54 L 1118.96 121.54 M 1118.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1127.93 128 L 1127.93 120.77 L 1131.97 120.77 L 1131.97 121.54 L 1128.96 121.54 L 1128.96 123.86 L 1131.48 123.86 L 1131.48 124.62 L 1128.96 124.62 L 1128.96 127.23 L 1132.18 127.23 L 1132.18 128 M 1127.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 129.45 Q 1139.64 128.89 1138.49 128.13 Q 1138.03 128.18 1137.78 128.18 Q 1136.33 128.18 1135.42 127.13 Q 1134.51 126.07 1134.51 124.39 Q 1134.51 122.66 1135.43 121.63 Q 1136.35 120.59 1137.89 120.59 Q 1139.43 120.59 1140.35 121.63 Q 1141.27 122.66 1141.27 124.4 Q 1141.27 126.89 1139.42 127.85 Q 1140.66 128.4 1142 128.63 M 1141.35 129.45 M 1137.86 127.41 Q 1138.97 127.41 1139.57 126.62 Q 1140.18 125.82 1140.18 124.37 Q 1140.18 122.96 1139.57 122.16 Q 1138.97 121.36 1137.89 121.36 Q 1136.81 121.36 1136.2 122.16 Q 1135.6 122.96 1135.6 124.38 Q 1135.6 125.79 1136.2 126.6 Q 1136.8 127.41 1137.86 127.41 M 1137.86 127.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 128 L 1146.93 120.77 L 1147.95 120.77 L 1147.95 128 M 1146.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1159.36 127.8 Q 1158.05 128.18 1157.07 128.18 Q 1155.35 128.18 1154.43 127.2 Q 1153.51 126.22 1153.51 124.39 Q 1153.51 122.59 1154.44 121.59 Q 1155.37 120.59 1157.06 120.59 Q 1158.16 120.59 1159.35 120.92 L 1159.35 121.87 Q 1157.86 121.36 1157.06 121.36 Q 1155.89 121.36 1155.24 122.16 Q 1154.6 122.95 1154.6 124.4 Q 1154.6 125.83 1155.29 126.62 Q 1155.98 127.41 1157.23 127.41 Q 1157.75 127.41 1158.34 127.23 L 1158.34 124.88 L 1159.36 124.88 M 1159.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 128 L 1163.93 120.77 L 1167.97 120.77 L 1167.97 121.54 L 1164.96 121.54 L 1164.96 123.86 L 1167.48 123.86 L 1167.48 124.62 L 1164.96 124.62 L 1164.96 127.23 L 1168.18 127.23 L 1168.18 128 M 1163.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 127.8 Q 1176.05 128.18 1175.07 128.18 Q 1173.35 128.18 1172.43 127.2 Q 1171.51 126.22 1171.51 124.39 Q 1171.51 122.59 1172.44 121.59 Q 1173.37 120.59 1175.06 120.59 Q 1176.16 120.59 1177.35 120.92 L 1177.35 121.87 Q 1175.86 121.36 1175.06 121.36 Q 1173.89 121.36 1173.24 122.16 Q 1172.6 122.95 1172.6 124.4 Q 1172.6 125.83 1173.29 126.62 Q 1173.98 127.41 1175.23 127.41 Q 1175.75 127.41 1176.34 127.23 L 1176.34 124.88 L 1177.36 124.88 M 1177.36 127.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1181.93 128 L 1181.93 120.77 L 1185.97 120.77 L 1185.97 121.54 L 1182.96 121.54 L 1182.96 123.96 L 1185.49 123.96 L 1185.49 124.72 L 1182.96 124.72 L 1182.96 128 M 1181.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 128 L 1189.18 120.77 L 1190.2 120.77 L 1192.44 126.69 L 1194.6 120.77 L 1195.49 120.77 L 1192.87 128 M 1191.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 128 L 1199.93 120.77 L 1200.96 120.77 L 1200.96 127.23 L 1204.21 127.23 L 1204.21 128 M 1199.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 128 L 1209.65 121.54 L 1207.09 121.54 L 1207.09 120.77 L 1213.24 120.77 L 1213.24 121.54 L 1210.68 121.54 L 1210.68 128 M 1209.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 128.18 Q 1218.34 128.18 1217.43 127.19 Q 1216.51 126.2 1216.51 124.39 Q 1216.51 122.58 1217.44 121.59 Q 1218.38 120.59 1220.08 120.59 Q 1221.05 120.59 1222.35 120.91 L 1222.35 121.87 Q 1220.87 121.36 1220.06 121.36 Q 1218.89 121.36 1218.24 122.16 Q 1217.6 122.95 1217.6 124.4 Q 1217.6 125.78 1218.29 126.58 Q 1218.97 127.38 1220.17 127.38 Q 1221.19 127.38 1222.36 126.75 L 1222.36 127.63 Q 1221.29 128.18 1220.03 128.18 M 1220.03 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1229.59 125.24 L 1228.36 122.12 L 1227.13 125.24 M 1229.59 125.24 M 1230.68 128 L 1229.89 126 L 1226.83 126 L 1226.04 128 L 1225.08 128 L 1227.95 120.77 L 1228.96 120.77 L 1231.79 128 M 1230.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 125.24 L 1237.36 122.12 L 1236.13 125.24 M 1238.59 125.24 M 1239.68 128 L 1238.89 126 L 1235.83 126 L 1235.04 128 L 1234.08 128 L 1236.95 120.77 L 1237.96 120.77 L 1240.79 128 M 1239.68 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 128 L 1245.5 124.98 L 1243.08 120.77 L 1244.25 120.77 L 1246.13 124.04 L 1248.15 120.77 L 1249.1 120.77 L 1246.52 124.96 L 1246.52 128 M 1245.5 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 128 L 1252.93 120.77 L 1254.9 120.77 Q 1256.21 120.77 1256.78 121.22 Q 1257.35 121.66 1257.35 122.67 Q 1257.35 123.82 1256.57 124.47 Q 1255.79 125.13 1254.4 125.13 L 1253.95 125.13 L 1253.95 128 M 1252.93 128 M 1253.95 124.35 L 1254.36 124.35 Q 1255.28 124.35 1255.77 123.93 Q 1256.27 123.51 1256.27 122.75 Q 1256.27 122.1 1255.88 121.82 Q 1255.49 121.54 1254.58 121.54 L 1253.95 121.54 M 1253.95 124.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 128 L 1263.65 121.54 L 1261.09 121.54 L 1261.09 120.77 L 1267.24 120.77 L 1267.24 121.54 L 1264.68 121.54 L 1264.68 128 M 1263.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 128.18 Q 1272.62 128.18 1271.49 127.86 L 1271.49 126.85 Q 1272.71 127.41 1273.5 127.41 Q 1274.1 127.41 1274.47 127.1 Q 1274.84 126.78 1274.84 126.26 Q 1274.84 125.84 1274.6 125.54 Q 1274.35 125.24 1273.71 124.88 L 1273.21 124.59 Q 1272.28 124.06 1271.91 123.59 Q 1271.53 123.13 1271.53 122.51 Q 1271.53 121.67 1272.13 121.13 Q 1272.74 120.59 1273.68 120.59 Q 1274.51 120.59 1275.44 120.87 L 1275.44 121.81 Q 1274.3 121.36 1273.73 121.36 Q 1273.2 121.36 1272.86 121.64 Q 1272.51 121.93 1272.51 122.36 Q 1272.51 122.72 1272.76 123 Q 1273.02 123.27 1273.69 123.66 L 1274.21 123.95 Q 1275.15 124.48 1275.52 124.96 Q 1275.89 125.43 1275.89 126.1 Q 1275.89 127.04 1275.19 127.61 Q 1274.5 128.18 1273.35 128.18 M 1273.35 128.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 128 L 1279.93 120.77 L 1282.33 120.77 Q 1283.41 120.77 1284.07 121.01 Q 1284.73 121.25 1285.22 121.82 Q 1285.98 122.73 1285.98 124.22 Q 1285.98 126.02 1285.03 127.01 Q 1284.08 128 1282.35 128 M 1279.93 128 M 1280.96 127.23 L 1282.27 127.23 Q 1283.68 127.23 1284.26 126.48 Q 1284.89 125.67 1284.89 124.31 Q 1284.89 123.04 1284.27 122.31 Q 1283.9 121.87 1283.38 121.7 Q 1282.85 121.54 1281.8 121.54 L 1280.96 121.54 M 1280.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 128 L 1288.18 120.77 L 1289.2 120.77 L 1291.44 126.69 L 1293.6 120.77 L 1294.49 120.77 L 1291.87 128 M 1290.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 128 L 1299.65 121.54 L 1297.09 121.54 L 1297.09 120.77 L 1303.24 120.77 L 1303.24 121.54 L 1300.68 121.54 L 1300.68 128 M 1299.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 128 L 1308.93 120.77 L 1309.95 120.77 L 1309.95 128 M 1308.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 128 L 1316.93 120.77 L 1320.97 120.77 L 1320.97 121.54 L 1317.96 121.54 L 1317.96 123.86 L 1320.48 123.86 L 1320.48 124.62 L 1317.96 124.62 L 1317.96 127.23 L 1321.18 127.23 L 1321.18 128 M 1316.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 128 L 1326.65 121.54 L 1324.09 121.54 L 1324.09 120.77 L 1330.24 120.77 L 1330.24 121.54 L 1327.68 121.54 L 1327.68 128 M 1326.65 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 128 L 1333.93 120.77 L 1334.96 120.77 L 1334.96 123.82 L 1338.4 123.82 L 1338.4 120.77 L 1339.42 120.77 L 1339.42 128 L 1338.4 128 L 1338.4 124.59 L 1334.96 124.59 L 1334.96 128 M 1333.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 128 L 1342.93 120.77 L 1343.89 120.77 L 1343.89 124.33 L 1346.82 120.77 L 1347.85 120.77 L 1345.02 124.22 L 1348.35 128 L 1347.05 128 L 1343.89 124.34 L 1343.89 128 M 1342.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 128 L 1352.93 120.77 L 1356.97 120.77 L 1356.97 121.54 L 1353.96 121.54 L 1353.96 123.86 L 1356.48 123.86 L 1356.48 124.62 L 1353.96 124.62 L 1353.96 127.23 L 1357.18 127.23 L 1357.18 128 M 1352.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 128 L 1361.93 120.77 L 1365.97 120.77 L 1365.97 121.54 L 1362.96 121.54 L 1362.96 123.86 L 1365.48 123.86 L 1365.48 124.62 L 1362.96 124.62 L 1362.96 127.23 L 1366.18 127.23 L 1366.18 128 M 1361.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1369.93 128 L 1369.93 120.77 L 1372.33 120.77 Q 1373.41 120.77 1374.07 121.01 Q 1374.73 121.25 1375.22 121.82 Q 1375.98 122.73 1375.98 124.22 Q 1375.98 126.02 1375.03 127.01 Q 1374.08 128 1372.35 128 M 1369.93 128 M 1370.96 127.23 L 1372.27 127.23 Q 1373.68 127.23 1374.26 126.48 Q 1374.89 125.67 1374.89 124.31 Q 1374.89 123.04 1374.27 122.31 Q 1373.9 121.87 1373.38 121.7 Q 1372.85 121.54 1371.8 121.54 L 1370.96 121.54 M 1370.96 127.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1380.93 128 L 1380.93 120.77 L 1381.95 120.77 L 1381.95 128 M 1380.93 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.91 128 L 1387.18 120.77 L 1388.2 120.77 L 1390.44 126.69 L 1392.6 120.77 L 1393.49 120.77 L 1390.87 128 M 1389.91 128"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1396.72 125.47 L 1396.72 124.75 L 1401.06 124.75 L 1401.06 125.47 M 1396.72 125.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 125.47 L 1405.72 124.75 L 1410.06 124.75 L 1410.06 125.47 M 1405.72 125.47"/></g><rect x="0" y="130" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="130" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="130" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="130" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="130" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="594" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="130" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="130" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="130" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="130" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="130" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="130" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="130" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="130" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="130" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="130" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="130" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="130" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="130" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="130" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="130" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="130" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="130" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="130" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="130" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1080" y="130" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="130" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="130" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="130" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="130" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1.72 138.47 L 1.72 137.75 L 6.06 137.75 L 6.06 138.47 M 1.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 10.72 138.47 L 10.72 137.75 L 15.06 137.75 L 15.06 138.47 M 10.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 19.72 138.47 L 19.72 137.75 L 24.06 137.75 L 24.06 138.47 M 19.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 28.72 138.47 L 28.72 137.75 L 33.06 137.75 L 33.06 138.47 M 28.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 138.47 L 37.72 137.75 L 42.06 137.75 L 42.06 138.47 M 37.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 138.47 L 46.72 137.75 L 51.06 137.75 L 51.06 138.47 M 46.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 138.47 L 55.72 137.75 L 60.06 137.75 L 60.06 138.47 M 55.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 138.47 L 64.72 137.75 L 69.06 137.75 L 69.06 138.47 M 64.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 73.72 138.47 L 73.72 137.75 L 78.06 137.75 L 78.06 138.47 M 73.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 82.72 138.47 L 82.72 137.75 L 87.06 137.75 L 87.06 138.47 M 82.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 91.72 138.47 L 91.72 137.75 L 96.06 137.75 L 96.06 138.47 M 91.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 100.72 138.47 L 100.72 137.75 L 105.06 137.75 L 105.06 138.47 M 100.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 109.72 138.47 L 109.72 137.75 L 114.06 137.75 L 114.06 138.47 M 109.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 118.72 138.47 L 118.72 137.75 L 123.06 137.75 L 123.06 138.47 M 118.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 127.72 138.47 L 127.72 137.75 L 132.06 137.75 L 132.06 138.47 M 127.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 136.72 138.47 L 136.72 137.75 L 141.06 137.75 L 141.06 138.47 M 136.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 145.72 138.47 L 145.72 137.75 L 150.06 137.75 L 150.06 138.47 M 145.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 154.72 138.47 L 154.72 137.75 L 159.06 137.75 L 159.06 138.47 M 154.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 163.72 138.47 L 163.72 137.75 L 168.06 137.75 L 168.06 138.47 M 163.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 172.72 138.47 L 172.72 137.75 L 177.06 137.75 L 177.06 138.47 M 172.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.72 138.47 L 181.72 137.75 L 186.06 137.75 L 186.06 138.47 M 181.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.72 138.47 L 190.72 137.75 L 195.06 137.75 L 195.06 138.47 M 190.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.72 138.47 L 199.72 137.75 L 204.06 137.75 L 204.06 138.47 M 199.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.72 138.47 L 208.72 137.75 L 213.06 137.75 L 213.06 138.47 M 208.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 217.72 138.47 L 217.72 137.75 L 222.06 137.75 L 222.06 138.47 M 217.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.72 138.47 L 226.72 137.75 L 231.06 137.75 L 231.06 138.47 M 226.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 235.72 138.47 L 235.72 137.75 L 240.06 137.75 L 240.06 138.47 M 235.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 244.72 138.47 L 244.72 137.75 L 249.06 137.75 L 249.06 138.47 M 244.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 253.72 138.47 L 253.72 137.75 L 258.06 137.75 L 258.06 138.47 M 253.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 138.47 L 262.72 137.75 L 267.06 137.75 L 267.06 138.47 M 262.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.72 138.47 L 271.72 137.75 L 276.06 137.75 L 276.06 138.47 M 271.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 280.72 138.47 L 280.72 137.75 L 285.06 137.75 L 285.06 138.47 M 280.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.72 138.47 L 289.72 137.75 L 294.06 137.75 L 294.06 138.47 M 289.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 298.72 138.47 L 298.72 137.75 L 303.06 137.75 L 303.06 138.47 M 298.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.72 138.47 L 307.72 137.75 L 312.06 137.75 L 312.06 138.47 M 307.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 316.72 138.47 L 316.72 137.75 L 321.06 137.75 L 321.06 138.47 M 316.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 325.72 138.47 L 325.72 137.75 L 330.06 137.75 L 330.06 138.47 M 325.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 334.72 138.47 L 334.72 137.75 L 339.06 137.75 L 339.06 138.47 M 334.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 138.47 L 343.72 137.75 L 348.06 137.75 L 348.06 138.47 M 343.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 138.47 L 352.72 137.75 L 357.06 137.75 L 357.06 138.47 M 352.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 361.72 138.47 L 361.72 137.75 L 366.06 137.75 L 366.06 138.47 M 361.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 370.72 138.47 L 370.72 137.75 L 375.06 137.75 L 375.06 138.47 M 370.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 379.72 138.47 L 379.72 137.75 L 384.06 137.75 L 384.06 138.47 M 379.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 388.72 138.47 L 388.72 137.75 L 393.06 137.75 L 393.06 138.47 M 388.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 397.72 138.47 L 397.72 137.75 L 402.06 137.75 L 402.06 138.47 M 397.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.72 138.47 L 406.72 137.75 L 411.06 137.75 L 411.06 138.47 M 406.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 415.72 138.47 L 415.72 137.75 L 420.06 137.75 L 420.06 138.47 M 415.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 138.47 L 424.72 137.75 L 429.06 137.75 L 429.06 138.47 M 424.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 433.72 138.47 L 433.72 137.75 L 438.06 137.75 L 438.06 138.47 M 433.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.72 138.47 L 442.72 137.75 L 447.06 137.75 L 447.06 138.47 M 442.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.72 138.47 L 451.72 137.75 L 456.06 137.75 L 456.06 138.47 M 451.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.72 138.47 L 460.72 137.75 L 465.06 137.75 L 465.06 138.47 M 460.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.72 138.47 L 469.72 137.75 L 474.06 137.75 L 474.06 138.47 M 469.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 478.72 138.47 L 478.72 137.75 L 483.06 137.75 L 483.06 138.47 M 478.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.72 138.47 L 487.72 137.75 L 492.06 137.75 L 492.06 138.47 M 487.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 496.72 138.47 L 496.72 137.75 L 501.06 137.75 L 501.06 138.47 M 496.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 505.72 138.47 L 505.72 137.75 L 510.06 137.75 L 510.06 138.47 M 505.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 514.72 138.47 L 514.72 137.75 L 519.06 137.75 L 519.06 138.47 M 514.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 523.72 138.47 L 523.72 137.75 L 528.06 137.75 L 528.06 138.47 M 523.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 138.24 L 535.36 135.12 L 534.13 138.24 M 536.59 138.24 M 537.68 141 L 536.89 139 L 533.83 139 L 533.04 141 L 532.08 141 L 534.95 133.77 L 535.96 133.77 L 538.79 141 M 537.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 141 L 543.65 134.54 L 541.09 134.54 L 541.09 133.77 L 547.24 133.77 L 547.24 134.54 L 544.68 134.54 L 544.68 141 M 543.65 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 141 L 552.5 137.98 L 550.08 133.77 L 551.25 133.77 L 553.13 137.04 L 555.15 133.77 L 556.1 133.77 L 553.52 137.96 L 553.52 141 M 552.5 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 141 L 559.93 133.77 L 560.89 133.77 L 560.89 137.33 L 563.82 133.77 L 564.85 133.77 L 562.02 137.22 L 565.35 141 L 564.05 141 L 560.89 137.34 L 560.89 141 M 559.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 141 L 568.18 133.77 L 569.2 133.77 L 571.44 139.69 L 573.6 133.77 L 574.49 133.77 L 571.87 141 M 570.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 141 L 577.93 133.77 L 578.89 133.77 L 578.89 137.33 L 581.82 133.77 L 582.85 133.77 L 580.02 137.22 L 583.35 141 L 582.05 141 L 578.89 137.34 L 578.89 141 M 577.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 141 L 587.93 133.77 L 591.97 133.77 L 591.97 134.54 L 588.96 134.54 L 588.96 136.96 L 591.49 136.96 L 591.49 137.72 L 588.96 137.72 L 588.96 141 M 587.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 141 L 597.93 133.77 L 598.95 133.77 L 598.95 141 M 597.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 141 L 606.65 134.54 L 604.09 134.54 L 604.09 133.77 L 610.24 133.77 L 610.24 134.54 L 607.68 134.54 L 607.68 141 M 606.65 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 141 L 613.93 133.77 L 615.9 133.77 Q 617.21 133.77 617.78 134.22 Q 618.35 134.66 618.35 135.67 Q 618.35 136.82 617.57 137.47 Q 616.79 138.13 615.4 138.13 L 614.95 138.13 L 614.95 141 M 613.93 141 M 614.95 137.35 L 615.36 137.35 Q 616.28 137.35 616.77 136.93 Q 617.27 136.51 617.27 135.75 Q 617.27 135.1 616.88 134.82 Q 616.49 134.54 615.58 134.54 L 614.95 134.54 M 614.95 137.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 141 L 623.93 133.77 L 627.97 133.77 L 627.97 134.54 L 624.96 134.54 L 624.96 136.86 L 627.48 136.86 L 627.48 137.62 L 624.96 137.62 L 624.96 140.23 L 628.18 140.23 L 628.18 141 M 623.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 140.8 Q 636.05 141.18 635.07 141.18 Q 633.35 141.18 632.43 140.2 Q 631.51 139.22 631.51 137.39 Q 631.51 135.59 632.44 134.59 Q 633.37 133.59 635.06 133.59 Q 636.16 133.59 637.35 133.92 L 637.35 134.87 Q 635.86 134.36 635.06 134.36 Q 633.89 134.36 633.24 135.16 Q 632.6 135.95 632.6 137.4 Q 632.6 138.83 633.29 139.62 Q 633.98 140.41 635.23 140.41 Q 635.75 140.41 636.34 140.23 L 636.34 137.88 L 637.36 137.88 M 637.36 140.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 141 L 641.93 133.77 L 645.97 133.77 L 645.97 134.54 L 642.96 134.54 L 642.96 136.86 L 645.48 136.86 L 645.48 137.62 L 642.96 137.62 L 642.96 140.23 L 646.18 140.23 L 646.18 141 M 641.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 142.45 Q 653.64 141.89 652.49 141.13 Q 652.03 141.18 651.78 141.18 Q 650.33 141.18 649.42 140.13 Q 648.51 139.07 648.51 137.39 Q 648.51 135.66 649.43 134.63 Q 650.35 133.59 651.89 133.59 Q 653.43 133.59 654.35 134.63 Q 655.27 135.66 655.27 137.4 Q 655.27 139.89 653.42 140.85 Q 654.66 141.4 656 141.63 M 655.35 142.45 M 651.86 140.41 Q 652.97 140.41 653.57 139.62 Q 654.18 138.82 654.18 137.37 Q 654.18 135.96 653.57 135.16 Q 652.97 134.36 651.89 134.36 Q 650.81 134.36 650.2 135.16 Q 649.6 135.96 649.6 137.38 Q 649.6 138.79 650.2 139.6 Q 650.8 140.41 651.86 140.41 M 651.86 140.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 141 L 659.93 133.77 L 663.97 133.77 L 663.97 134.54 L 660.96 134.54 L 660.96 136.86 L 663.48 136.86 L 663.48 137.62 L 660.96 137.62 L 660.96 140.23 L 664.18 140.23 L 664.18 141 M 659.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 669.91 141 L 667.18 133.77 L 668.2 133.77 L 670.44 139.69 L 672.6 133.77 L 673.49 133.77 L 670.87 141 M 669.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 141 L 677.93 133.77 L 681.97 133.77 L 681.97 134.54 L 678.96 134.54 L 678.96 136.86 L 681.48 136.86 L 681.48 137.62 L 678.96 137.62 L 678.96 140.23 L 682.18 140.23 L 682.18 141 M 677.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 141.18 Q 687.34 141.18 686.43 140.19 Q 685.51 139.2 685.51 137.39 Q 685.51 135.58 686.44 134.59 Q 687.38 133.59 689.08 133.59 Q 690.05 133.59 691.35 133.91 L 691.35 134.87 Q 689.87 134.36 689.06 134.36 Q 687.89 134.36 687.24 135.16 Q 686.6 135.95 686.6 137.4 Q 686.6 138.78 687.29 139.58 Q 687.97 140.38 689.17 140.38 Q 690.19 140.38 691.36 139.75 L 691.36 140.63 Q 690.29 141.18 689.03 141.18 M 689.03 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 141 L 694.93 133.77 L 697.33 133.77 Q 698.41 133.77 699.07 134.01 Q 699.73 134.25 700.22 134.82 Q 700.98 135.73 700.98 137.22 Q 700.98 139.02 700.03 140.01 Q 699.08 141 697.35 141 M 694.93 141 M 695.96 140.23 L 697.27 140.23 Q 698.68 140.23 699.26 139.48 Q 699.89 138.67 699.89 137.31 Q 699.89 136.04 699.27 135.31 Q 698.9 134.87 698.38 134.7 Q 697.85 134.54 696.8 134.54 L 695.96 134.54 M 695.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 141 L 703.93 133.77 L 706.33 133.77 Q 707.41 133.77 708.07 134.01 Q 708.73 134.25 709.22 134.82 Q 709.98 135.73 709.98 137.22 Q 709.98 139.02 709.03 140.01 Q 708.08 141 706.35 141 M 703.93 141 M 704.96 140.23 L 706.27 140.23 Q 707.68 140.23 708.26 139.48 Q 708.89 138.67 708.89 137.31 Q 708.89 136.04 708.27 135.31 Q 707.9 134.87 707.38 134.7 Q 706.85 134.54 705.8 134.54 L 704.96 134.54 M 704.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 141 L 712.93 133.77 L 715.33 133.77 Q 716.41 133.77 717.07 134.01 Q 717.73 134.25 718.22 134.82 Q 718.98 135.73 718.98 137.22 Q 718.98 139.02 718.03 140.01 Q 717.08 141 715.35 141 M 712.93 141 M 713.96 140.23 L 715.27 140.23 Q 716.68 140.23 717.26 139.48 Q 717.89 138.67 717.89 137.31 Q 717.89 136.04 717.27 135.31 Q 716.9 134.87 716.38 134.7 Q 715.85 134.54 714.8 134.54 L 713.96 134.54 M 713.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 141 L 721.18 133.77 L 722.2 133.77 L 724.44 139.69 L 726.6 133.77 L 727.49 133.77 L 724.87 141 M 723.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 141 L 732.5 137.98 L 730.08 133.77 L 731.25 133.77 L 733.13 137.04 L 735.15 133.77 L 736.1 133.77 L 733.52 137.96 L 733.52 141 M 732.5 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.91 141 L 739.18 133.77 L 740.2 133.77 L 742.44 139.69 L 744.6 133.77 L 745.49 133.77 L 742.87 141 M 741.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 141 L 749.93 133.77 L 750.96 133.77 L 750.96 140.23 L 754.21 140.23 L 754.21 141 M 749.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 141 L 757.93 133.77 L 760.33 133.77 Q 761.41 133.77 762.07 134.01 Q 762.73 134.25 763.22 134.82 Q 763.98 135.73 763.98 137.22 Q 763.98 139.02 763.03 140.01 Q 762.08 141 760.35 141 M 757.93 141 M 758.96 140.23 L 760.27 140.23 Q 761.68 140.23 762.26 139.48 Q 762.89 138.67 762.89 137.31 Q 762.89 136.04 762.27 135.31 Q 761.9 134.87 761.38 134.7 Q 760.85 134.54 759.8 134.54 L 758.96 134.54 M 758.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 138.24 L 769.36 135.12 L 768.13 138.24 M 770.59 138.24 M 771.68 141 L 770.89 139 L 767.83 139 L 767.04 141 L 766.08 141 L 768.95 133.77 L 769.96 133.77 L 772.79 141 M 771.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 138.24 L 778.36 135.12 L 777.13 138.24 M 779.59 138.24 M 780.68 141 L 779.89 139 L 776.83 139 L 776.04 141 L 775.08 141 L 777.95 133.77 L 778.96 133.77 L 781.79 141 M 780.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 141 L 785.93 133.77 L 789.97 133.77 L 789.97 134.54 L 786.96 134.54 L 786.96 136.86 L 789.48 136.86 L 789.48 137.62 L 786.96 137.62 L 786.96 140.23 L 790.18 140.23 L 790.18 141 M 785.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 141 L 794.93 133.77 L 798.97 133.77 L 798.97 134.54 L 795.96 134.54 L 795.96 136.86 L 798.48 136.86 L 798.48 137.62 L 795.96 137.62 L 795.96 140.23 L 799.18 140.23 L 799.18 141 M 794.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 138.24 L 805.36 135.12 L 804.13 138.24 M 806.59 138.24 M 807.68 141 L 806.89 139 L 803.83 139 L 803.04 141 L 802.08 141 L 804.95 133.77 L 805.96 133.77 L 808.79 141 M 807.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 140.8 Q 816.05 141.18 815.07 141.18 Q 813.35 141.18 812.43 140.2 Q 811.51 139.22 811.51 137.39 Q 811.51 135.59 812.44 134.59 Q 813.37 133.59 815.06 133.59 Q 816.16 133.59 817.35 133.92 L 817.35 134.87 Q 815.86 134.36 815.06 134.36 Q 813.89 134.36 813.24 135.16 Q 812.6 135.95 812.6 137.4 Q 812.6 138.83 813.29 139.62 Q 813.98 140.41 815.23 140.41 Q 815.75 140.41 816.34 140.23 L 816.34 137.88 L 817.36 137.88 M 817.36 140.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 141 L 822.93 133.77 L 823.95 133.77 L 823.95 141 M 822.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 141 L 829.93 133.77 L 832.33 133.77 Q 833.41 133.77 834.07 134.01 Q 834.73 134.25 835.22 134.82 Q 835.98 135.73 835.98 137.22 Q 835.98 139.02 835.03 140.01 Q 834.08 141 832.35 141 M 829.93 141 M 830.96 140.23 L 832.27 140.23 Q 833.68 140.23 834.26 139.48 Q 834.89 138.67 834.89 137.31 Q 834.89 136.04 834.27 135.31 Q 833.9 134.87 833.38 134.7 Q 832.85 134.54 831.8 134.54 L 830.96 134.54 M 830.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 141 L 839.93 133.77 L 840.96 133.77 L 840.96 140.23 L 844.21 140.23 L 844.21 141 M 839.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 141 L 847.93 133.77 L 849.9 133.77 Q 851.21 133.77 851.78 134.22 Q 852.35 134.66 852.35 135.67 Q 852.35 136.82 851.57 137.47 Q 850.79 138.13 849.4 138.13 L 848.95 138.13 L 848.95 141 M 847.93 141 M 848.95 137.35 L 849.36 137.35 Q 850.28 137.35 850.77 136.93 Q 851.27 136.51 851.27 135.75 Q 851.27 135.1 850.88 134.82 Q 850.49 134.54 849.58 134.54 L 848.95 134.54 M 848.95 137.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 141 L 858.5 137.98 L 856.08 133.77 L 857.25 133.77 L 859.13 137.04 L 861.15 133.77 L 862.1 133.77 L 859.52 137.96 L 859.52 141 M 858.5 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 141.18 Q 867.62 141.18 866.49 140.86 L 866.49 139.85 Q 867.71 140.41 868.5 140.41 Q 869.1 140.41 869.47 140.1 Q 869.84 139.78 869.84 139.26 Q 869.84 138.84 869.6 138.54 Q 869.35 138.24 868.71 137.88 L 868.21 137.59 Q 867.28 137.06 866.91 136.59 Q 866.53 136.13 866.53 135.51 Q 866.53 134.67 867.13 134.13 Q 867.74 133.59 868.68 133.59 Q 869.51 133.59 870.44 133.87 L 870.44 134.81 Q 869.3 134.36 868.73 134.36 Q 868.2 134.36 867.86 134.64 Q 867.51 134.93 867.51 135.36 Q 867.51 135.72 867.76 136 Q 868.02 136.27 868.69 136.66 L 869.21 136.95 Q 870.15 137.48 870.52 137.96 Q 870.89 138.43 870.89 139.1 Q 870.89 140.04 870.19 140.61 Q 869.5 141.18 868.35 141.18 M 868.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 141.18 Q 876.34 141.18 875.43 140.19 Q 874.51 139.2 874.51 137.39 Q 874.51 135.58 875.44 134.59 Q 876.38 133.59 878.08 133.59 Q 879.05 133.59 880.35 133.91 L 880.35 134.87 Q 878.87 134.36 878.06 134.36 Q 876.89 134.36 876.24 135.16 Q 875.6 135.95 875.6 137.4 Q 875.6 138.78 876.29 139.58 Q 876.97 140.38 878.17 140.38 Q 879.19 140.38 880.36 139.75 L 880.36 140.63 Q 879.29 141.18 878.03 141.18 M 878.03 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 141 L 883.93 133.77 L 886.12 133.77 Q 887.16 133.77 887.71 134.23 Q 888.27 134.69 888.27 135.57 Q 888.27 137.01 886.81 137.62 L 889.22 141 L 887.96 141 L 885.91 137.94 L 884.95 137.94 L 884.95 141 M 883.93 141 M 884.95 137.18 L 885.28 137.18 Q 887.21 137.18 887.21 135.66 Q 887.21 134.54 885.59 134.54 L 884.95 134.54 M 884.95 137.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 138.24 L 895.36 135.12 L 894.13 138.24 M 896.59 138.24 M 897.68 141 L 896.89 139 L 893.83 139 L 893.04 141 L 892.08 141 L 894.95 133.77 L 895.96 133.77 L 898.79 141 M 897.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 140.8 Q 906.05 141.18 905.07 141.18 Q 903.35 141.18 902.43 140.2 Q 901.51 139.22 901.51 137.39 Q 901.51 135.59 902.44 134.59 Q 903.37 133.59 905.06 133.59 Q 906.16 133.59 907.35 133.92 L 907.35 134.87 Q 905.86 134.36 905.06 134.36 Q 903.89 134.36 903.24 135.16 Q 902.6 135.95 902.6 137.4 Q 902.6 138.83 903.29 139.62 Q 903.98 140.41 905.23 140.41 Q 905.75 140.41 906.34 140.23 L 906.34 137.88 L 907.36 137.88 M 907.36 140.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 141.18 Q 912.62 141.18 911.49 140.86 L 911.49 139.85 Q 912.71 140.41 913.5 140.41 Q 914.1 140.41 914.47 140.1 Q 914.84 139.78 914.84 139.26 Q 914.84 138.84 914.6 138.54 Q 914.35 138.24 913.71 137.88 L 913.21 137.59 Q 912.28 137.06 911.91 136.59 Q 911.53 136.13 911.53 135.51 Q 911.53 134.67 912.13 134.13 Q 912.74 133.59 913.68 133.59 Q 914.51 133.59 915.44 133.87 L 915.44 134.81 Q 914.3 134.36 913.73 134.36 Q 913.2 134.36 912.86 134.64 Q 912.51 134.93 912.51 135.36 Q 912.51 135.72 912.76 136 Q 913.02 136.27 913.69 136.66 L 914.21 136.95 Q 915.15 137.48 915.52 137.96 Q 915.89 138.43 915.89 139.1 Q 915.89 140.04 915.19 140.61 Q 914.5 141.18 913.35 141.18 M 913.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 141.18 Q 921.34 141.18 920.43 140.19 Q 919.51 139.2 919.51 137.39 Q 919.51 135.58 920.44 134.59 Q 921.38 133.59 923.08 133.59 Q 924.05 133.59 925.35 133.91 L 925.35 134.87 Q 923.87 134.36 923.06 134.36 Q 921.89 134.36 921.24 135.16 Q 920.6 135.95 920.6 137.4 Q 920.6 138.78 921.29 139.58 Q 921.97 140.38 923.17 140.38 Q 924.19 140.38 925.36 139.75 L 925.36 140.63 Q 924.29 141.18 923.03 141.18 M 923.03 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 141.18 Q 930.62 141.18 929.49 140.86 L 929.49 139.85 Q 930.71 140.41 931.5 140.41 Q 932.1 140.41 932.47 140.1 Q 932.84 139.78 932.84 139.26 Q 932.84 138.84 932.6 138.54 Q 932.35 138.24 931.71 137.88 L 931.21 137.59 Q 930.28 137.06 929.91 136.59 Q 929.53 136.13 929.53 135.51 Q 929.53 134.67 930.13 134.13 Q 930.74 133.59 931.68 133.59 Q 932.51 133.59 933.44 133.87 L 933.44 134.81 Q 932.3 134.36 931.73 134.36 Q 931.2 134.36 930.86 134.64 Q 930.51 134.93 930.51 135.36 Q 930.51 135.72 930.76 136 Q 931.02 136.27 931.69 136.66 L 932.21 136.95 Q 933.15 137.48 933.52 137.96 Q 933.89 138.43 933.89 139.1 Q 933.89 140.04 933.19 140.61 Q 932.5 141.18 931.35 141.18 M 931.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 141.18 Q 939.62 141.18 938.49 140.86 L 938.49 139.85 Q 939.71 140.41 940.5 140.41 Q 941.1 140.41 941.47 140.1 Q 941.84 139.78 941.84 139.26 Q 941.84 138.84 941.6 138.54 Q 941.35 138.24 940.71 137.88 L 940.21 137.59 Q 939.28 137.06 938.91 136.59 Q 938.53 136.13 938.53 135.51 Q 938.53 134.67 939.13 134.13 Q 939.74 133.59 940.68 133.59 Q 941.51 133.59 942.44 133.87 L 942.44 134.81 Q 941.3 134.36 940.73 134.36 Q 940.2 134.36 939.86 134.64 Q 939.51 134.93 939.51 135.36 Q 939.51 135.72 939.76 136 Q 940.02 136.27 940.69 136.66 L 941.21 136.95 Q 942.15 137.48 942.52 137.96 Q 942.89 138.43 942.89 139.1 Q 942.89 140.04 942.19 140.61 Q 941.5 141.18 940.35 141.18 M 940.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 141.18 Q 948.34 141.18 947.43 140.19 Q 946.51 139.2 946.51 137.39 Q 946.51 135.58 947.44 134.59 Q 948.38 133.59 950.08 133.59 Q 951.05 133.59 952.35 133.91 L 952.35 134.87 Q 950.87 134.36 950.06 134.36 Q 948.89 134.36 948.24 135.16 Q 947.6 135.95 947.6 137.4 Q 947.6 138.78 948.29 139.58 Q 948.97 140.38 950.17 140.38 Q 951.19 140.38 952.36 139.75 L 952.36 140.63 Q 951.29 141.18 950.03 141.18 M 950.03 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 138.24 L 958.36 135.12 L 957.13 138.24 M 959.59 138.24 M 960.68 141 L 959.89 139 L 956.83 139 L 956.04 141 L 955.08 141 L 957.95 133.77 L 958.96 133.77 L 961.79 141 M 960.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 140.8 Q 969.05 141.18 968.07 141.18 Q 966.35 141.18 965.43 140.2 Q 964.51 139.22 964.51 137.39 Q 964.51 135.59 965.44 134.59 Q 966.37 133.59 968.06 133.59 Q 969.16 133.59 970.35 133.92 L 970.35 134.87 Q 968.86 134.36 968.06 134.36 Q 966.89 134.36 966.24 135.16 Q 965.6 135.95 965.6 137.4 Q 965.6 138.83 966.29 139.62 Q 966.98 140.41 968.23 140.41 Q 968.75 140.41 969.34 140.23 L 969.34 137.88 L 970.36 137.88 M 970.36 140.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 141 L 973.93 133.77 L 974.89 133.77 L 974.89 137.33 L 977.82 133.77 L 978.85 133.77 L 976.02 137.22 L 979.35 141 L 978.05 141 L 974.89 137.34 L 974.89 141 M 973.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 141 L 982.18 133.77 L 983.2 133.77 L 985.44 139.69 L 987.6 133.77 L 988.49 133.77 L 985.87 141 M 984.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 141 L 991.18 133.77 L 992.2 133.77 L 994.44 139.69 L 996.6 133.77 L 997.49 133.77 L 994.87 141 M 993.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 141.18 Q 1002.62 141.18 1001.49 140.86 L 1001.49 139.85 Q 1002.71 140.41 1003.5 140.41 Q 1004.1 140.41 1004.47 140.1 Q 1004.84 139.78 1004.84 139.26 Q 1004.84 138.84 1004.6 138.54 Q 1004.35 138.24 1003.71 137.88 L 1003.21 137.59 Q 1002.28 137.06 1001.91 136.59 Q 1001.53 136.13 1001.53 135.51 Q 1001.53 134.67 1002.13 134.13 Q 1002.74 133.59 1003.68 133.59 Q 1004.51 133.59 1005.44 133.87 L 1005.44 134.81 Q 1004.3 134.36 1003.73 134.36 Q 1003.2 134.36 1002.86 134.64 Q 1002.51 134.93 1002.51 135.36 Q 1002.51 135.72 1002.76 136 Q 1003.02 136.27 1003.69 136.66 L 1004.21 136.95 Q 1005.15 137.48 1005.52 137.96 Q 1005.89 138.43 1005.89 139.1 Q 1005.89 140.04 1005.19 140.61 Q 1004.5 141.18 1003.35 141.18 M 1003.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 140.8 Q 1014.05 141.18 1013.07 141.18 Q 1011.35 141.18 1010.43 140.2 Q 1009.51 139.22 1009.51 137.39 Q 1009.51 135.59 1010.44 134.59 Q 1011.37 133.59 1013.06 133.59 Q 1014.16 133.59 1015.35 133.92 L 1015.35 134.87 Q 1013.86 134.36 1013.06 134.36 Q 1011.89 134.36 1011.24 135.16 Q 1010.6 135.95 1010.6 137.4 Q 1010.6 138.83 1011.29 139.62 Q 1011.98 140.41 1013.23 140.41 Q 1013.75 140.41 1014.34 140.23 L 1014.34 137.88 L 1015.36 137.88 M 1015.36 140.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1019.93 141 L 1019.93 133.77 L 1023.97 133.77 L 1023.97 134.54 L 1020.96 134.54 L 1020.96 136.96 L 1023.49 136.96 L 1023.49 137.72 L 1020.96 137.72 L 1020.96 141 M 1019.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 141 L 1027.18 133.77 L 1028.2 133.77 L 1030.44 139.69 L 1032.6 133.77 L 1033.49 133.77 L 1030.87 141 M 1029.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 141 L 1036.93 133.77 L 1039.33 133.77 Q 1040.41 133.77 1041.07 134.01 Q 1041.73 134.25 1042.22 134.82 Q 1042.98 135.73 1042.98 137.22 Q 1042.98 139.02 1042.03 140.01 Q 1041.08 141 1039.35 141 M 1036.93 141 M 1037.96 140.23 L 1039.27 140.23 Q 1040.68 140.23 1041.26 139.48 Q 1041.89 138.67 1041.89 137.31 Q 1041.89 136.04 1041.27 135.31 Q 1040.9 134.87 1040.38 134.7 Q 1039.85 134.54 1038.8 134.54 L 1037.96 134.54 M 1037.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 142.45 Q 1049.64 141.89 1048.49 141.13 Q 1048.03 141.18 1047.78 141.18 Q 1046.33 141.18 1045.42 140.13 Q 1044.51 139.07 1044.51 137.39 Q 1044.51 135.66 1045.43 134.63 Q 1046.35 133.59 1047.89 133.59 Q 1049.43 133.59 1050.35 134.63 Q 1051.27 135.66 1051.27 137.4 Q 1051.27 139.89 1049.42 140.85 Q 1050.66 141.4 1052 141.63 M 1051.35 142.45 M 1047.86 140.41 Q 1048.97 140.41 1049.57 139.62 Q 1050.18 138.82 1050.18 137.37 Q 1050.18 135.96 1049.57 135.16 Q 1048.97 134.36 1047.89 134.36 Q 1046.81 134.36 1046.2 135.16 Q 1045.6 135.96 1045.6 137.38 Q 1045.6 138.79 1046.2 139.6 Q 1046.8 140.41 1047.86 140.41 M 1047.86 140.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 141.18 Q 1056.62 141.18 1055.49 140.86 L 1055.49 139.85 Q 1056.71 140.41 1057.5 140.41 Q 1058.1 140.41 1058.47 140.1 Q 1058.84 139.78 1058.84 139.26 Q 1058.84 138.84 1058.6 138.54 Q 1058.35 138.24 1057.71 137.88 L 1057.21 137.59 Q 1056.28 137.06 1055.91 136.59 Q 1055.53 136.13 1055.53 135.51 Q 1055.53 134.67 1056.13 134.13 Q 1056.74 133.59 1057.68 133.59 Q 1058.51 133.59 1059.44 133.87 L 1059.44 134.81 Q 1058.3 134.36 1057.73 134.36 Q 1057.2 134.36 1056.86 134.64 Q 1056.51 134.93 1056.51 135.36 Q 1056.51 135.72 1056.76 136 Q 1057.02 136.27 1057.69 136.66 L 1058.21 136.95 Q 1059.15 137.48 1059.52 137.96 Q 1059.89 138.43 1059.89 139.1 Q 1059.89 140.04 1059.19 140.61 Q 1058.5 141.18 1057.35 141.18 M 1057.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 141 L 1063.93 133.77 L 1066.33 133.77 Q 1067.41 133.77 1068.07 134.01 Q 1068.73 134.25 1069.22 134.82 Q 1069.98 135.73 1069.98 137.22 Q 1069.98 139.02 1069.03 140.01 Q 1068.08 141 1066.35 141 M 1063.93 141 M 1064.96 140.23 L 1066.27 140.23 Q 1067.68 140.23 1068.26 139.48 Q 1068.89 138.67 1068.89 137.31 Q 1068.89 136.04 1068.27 135.31 Q 1067.9 134.87 1067.38 134.7 Q 1066.85 134.54 1065.8 134.54 L 1064.96 134.54 M 1064.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1073.93 141 L 1073.93 133.77 L 1077.97 133.77 L 1077.97 134.54 L 1074.96 134.54 L 1074.96 136.86 L 1077.48 136.86 L 1077.48 137.62 L 1074.96 137.62 L 1074.96 140.23 L 1078.18 140.23 L 1078.18 141 M 1073.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 141.18 Q 1083.62 141.18 1082.49 140.86 L 1082.49 139.85 Q 1083.71 140.41 1084.5 140.41 Q 1085.1 140.41 1085.47 140.1 Q 1085.84 139.78 1085.84 139.26 Q 1085.84 138.84 1085.6 138.54 Q 1085.35 138.24 1084.71 137.88 L 1084.21 137.59 Q 1083.28 137.06 1082.91 136.59 Q 1082.53 136.13 1082.53 135.51 Q 1082.53 134.67 1083.13 134.13 Q 1083.74 133.59 1084.68 133.59 Q 1085.51 133.59 1086.44 133.87 L 1086.44 134.81 Q 1085.3 134.36 1084.73 134.36 Q 1084.2 134.36 1083.86 134.64 Q 1083.51 134.93 1083.51 135.36 Q 1083.51 135.72 1083.76 136 Q 1084.02 136.27 1084.69 136.66 L 1085.21 136.95 Q 1086.15 137.48 1086.52 137.96 Q 1086.89 138.43 1086.89 139.1 Q 1086.89 140.04 1086.19 140.61 Q 1085.5 141.18 1084.35 141.18 M 1084.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 141 L 1091.93 133.77 L 1095.97 133.77 L 1095.97 134.54 L 1092.96 134.54 L 1092.96 136.96 L 1095.49 136.96 L 1095.49 137.72 L 1092.96 137.72 L 1092.96 141 M 1091.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 141 L 1100.93 133.77 L 1101.96 133.77 L 1101.96 140.23 L 1105.21 140.23 L 1105.21 141 M 1100.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 141 L 1108.93 133.77 L 1111.33 133.77 Q 1112.41 133.77 1113.07 134.01 Q 1113.73 134.25 1114.22 134.82 Q 1114.98 135.73 1114.98 137.22 Q 1114.98 139.02 1114.03 140.01 Q 1113.08 141 1111.35 141 M 1108.93 141 M 1109.96 140.23 L 1111.27 140.23 Q 1112.68 140.23 1113.26 139.48 Q 1113.89 138.67 1113.89 137.31 Q 1113.89 136.04 1113.27 135.31 Q 1112.9 134.87 1112.38 134.7 Q 1111.85 134.54 1110.8 134.54 L 1109.96 134.54 M 1109.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 141 L 1117.93 133.77 L 1120.33 133.77 Q 1121.41 133.77 1122.07 134.01 Q 1122.73 134.25 1123.22 134.82 Q 1123.98 135.73 1123.98 137.22 Q 1123.98 139.02 1123.03 140.01 Q 1122.08 141 1120.35 141 M 1117.93 141 M 1118.96 140.23 L 1120.27 140.23 Q 1121.68 140.23 1122.26 139.48 Q 1122.89 138.67 1122.89 137.31 Q 1122.89 136.04 1122.27 135.31 Q 1121.9 134.87 1121.38 134.7 Q 1120.85 134.54 1119.8 134.54 L 1118.96 134.54 M 1118.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 141 L 1126.93 133.77 L 1129.33 133.77 Q 1130.41 133.77 1131.07 134.01 Q 1131.73 134.25 1132.22 134.82 Q 1132.98 135.73 1132.98 137.22 Q 1132.98 139.02 1132.03 140.01 Q 1131.08 141 1129.35 141 M 1126.93 141 M 1127.96 140.23 L 1129.27 140.23 Q 1130.68 140.23 1131.26 139.48 Q 1131.89 138.67 1131.89 137.31 Q 1131.89 136.04 1131.27 135.31 Q 1130.9 134.87 1130.38 134.7 Q 1129.85 134.54 1128.8 134.54 L 1127.96 134.54 M 1127.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 142.45 Q 1139.64 141.89 1138.49 141.13 Q 1138.03 141.18 1137.78 141.18 Q 1136.33 141.18 1135.42 140.13 Q 1134.51 139.07 1134.51 137.39 Q 1134.51 135.66 1135.43 134.63 Q 1136.35 133.59 1137.89 133.59 Q 1139.43 133.59 1140.35 134.63 Q 1141.27 135.66 1141.27 137.4 Q 1141.27 139.89 1139.42 140.85 Q 1140.66 141.4 1142 141.63 M 1141.35 142.45 M 1137.86 140.41 Q 1138.97 140.41 1139.57 139.62 Q 1140.18 138.82 1140.18 137.37 Q 1140.18 135.96 1139.57 135.16 Q 1138.97 134.36 1137.89 134.36 Q 1136.81 134.36 1136.2 135.16 Q 1135.6 135.96 1135.6 137.38 Q 1135.6 138.79 1136.2 139.6 Q 1136.8 140.41 1137.86 140.41 M 1137.86 140.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 141 L 1146.93 133.77 L 1147.95 133.77 L 1147.95 141 M 1146.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1157.59 138.24 L 1156.36 135.12 L 1155.13 138.24 M 1157.59 138.24 M 1158.68 141 L 1157.89 139 L 1154.83 139 L 1154.04 141 L 1153.08 141 L 1155.95 133.77 L 1156.96 133.77 L 1159.79 141 M 1158.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 141 L 1163.93 133.77 L 1167.97 133.77 L 1167.97 134.54 L 1164.96 134.54 L 1164.96 136.86 L 1167.48 136.86 L 1167.48 137.62 L 1164.96 137.62 L 1164.96 140.23 L 1168.18 140.23 L 1168.18 141 M 1163.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 140.8 Q 1176.05 141.18 1175.07 141.18 Q 1173.35 141.18 1172.43 140.2 Q 1171.51 139.22 1171.51 137.39 Q 1171.51 135.59 1172.44 134.59 Q 1173.37 133.59 1175.06 133.59 Q 1176.16 133.59 1177.35 133.92 L 1177.35 134.87 Q 1175.86 134.36 1175.06 134.36 Q 1173.89 134.36 1173.24 135.16 Q 1172.6 135.95 1172.6 137.4 Q 1172.6 138.83 1173.29 139.62 Q 1173.98 140.41 1175.23 140.41 Q 1175.75 140.41 1176.34 140.23 L 1176.34 137.88 L 1177.36 137.88 M 1177.36 140.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1181.93 141 L 1181.93 133.77 L 1185.97 133.77 L 1185.97 134.54 L 1182.96 134.54 L 1182.96 136.96 L 1185.49 136.96 L 1185.49 137.72 L 1182.96 137.72 L 1182.96 141 M 1181.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 141 L 1189.18 133.77 L 1190.2 133.77 L 1192.44 139.69 L 1194.6 133.77 L 1195.49 133.77 L 1192.87 141 M 1191.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 141 L 1199.93 133.77 L 1200.96 133.77 L 1200.96 140.23 L 1204.21 140.23 L 1204.21 141 M 1199.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 141 L 1209.65 134.54 L 1207.09 134.54 L 1207.09 133.77 L 1213.24 133.77 L 1213.24 134.54 L 1210.68 134.54 L 1210.68 141 M 1209.65 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 141.18 Q 1218.34 141.18 1217.43 140.19 Q 1216.51 139.2 1216.51 137.39 Q 1216.51 135.58 1217.44 134.59 Q 1218.38 133.59 1220.08 133.59 Q 1221.05 133.59 1222.35 133.91 L 1222.35 134.87 Q 1220.87 134.36 1220.06 134.36 Q 1218.89 134.36 1218.24 135.16 Q 1217.6 135.95 1217.6 137.4 Q 1217.6 138.78 1218.29 139.58 Q 1218.97 140.38 1220.17 140.38 Q 1221.19 140.38 1222.36 139.75 L 1222.36 140.63 Q 1221.29 141.18 1220.03 141.18 M 1220.03 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1229.59 138.24 L 1228.36 135.12 L 1227.13 138.24 M 1229.59 138.24 M 1230.68 141 L 1229.89 139 L 1226.83 139 L 1226.04 141 L 1225.08 141 L 1227.95 133.77 L 1228.96 133.77 L 1231.79 141 M 1230.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 138.24 L 1237.36 135.12 L 1236.13 138.24 M 1238.59 138.24 M 1239.68 141 L 1238.89 139 L 1235.83 139 L 1235.04 141 L 1234.08 141 L 1236.95 133.77 L 1237.96 133.77 L 1240.79 141 M 1239.68 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 141 L 1245.5 137.98 L 1243.08 133.77 L 1244.25 133.77 L 1246.13 137.04 L 1248.15 133.77 L 1249.1 133.77 L 1246.52 137.96 L 1246.52 141 M 1245.5 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 141 L 1252.93 133.77 L 1254.9 133.77 Q 1256.21 133.77 1256.78 134.22 Q 1257.35 134.66 1257.35 135.67 Q 1257.35 136.82 1256.57 137.47 Q 1255.79 138.13 1254.4 138.13 L 1253.95 138.13 L 1253.95 141 M 1252.93 141 M 1253.95 137.35 L 1254.36 137.35 Q 1255.28 137.35 1255.77 136.93 Q 1256.27 136.51 1256.27 135.75 Q 1256.27 135.1 1255.88 134.82 Q 1255.49 134.54 1254.58 134.54 L 1253.95 134.54 M 1253.95 137.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 141 L 1263.65 134.54 L 1261.09 134.54 L 1261.09 133.77 L 1267.24 133.77 L 1267.24 134.54 L 1264.68 134.54 L 1264.68 141 M 1263.65 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 141.18 Q 1272.62 141.18 1271.49 140.86 L 1271.49 139.85 Q 1272.71 140.41 1273.5 140.41 Q 1274.1 140.41 1274.47 140.1 Q 1274.84 139.78 1274.84 139.26 Q 1274.84 138.84 1274.6 138.54 Q 1274.35 138.24 1273.71 137.88 L 1273.21 137.59 Q 1272.28 137.06 1271.91 136.59 Q 1271.53 136.13 1271.53 135.51 Q 1271.53 134.67 1272.13 134.13 Q 1272.74 133.59 1273.68 133.59 Q 1274.51 133.59 1275.44 133.87 L 1275.44 134.81 Q 1274.3 134.36 1273.73 134.36 Q 1273.2 134.36 1272.86 134.64 Q 1272.51 134.93 1272.51 135.36 Q 1272.51 135.72 1272.76 136 Q 1273.02 136.27 1273.69 136.66 L 1274.21 136.95 Q 1275.15 137.48 1275.52 137.96 Q 1275.89 138.43 1275.89 139.1 Q 1275.89 140.04 1275.19 140.61 Q 1274.5 141.18 1273.35 141.18 M 1273.35 141.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 141 L 1279.93 133.77 L 1282.33 133.77 Q 1283.41 133.77 1284.07 134.01 Q 1284.73 134.25 1285.22 134.82 Q 1285.98 135.73 1285.98 137.22 Q 1285.98 139.02 1285.03 140.01 Q 1284.08 141 1282.35 141 M 1279.93 141 M 1280.96 140.23 L 1282.27 140.23 Q 1283.68 140.23 1284.26 139.48 Q 1284.89 138.67 1284.89 137.31 Q 1284.89 136.04 1284.27 135.31 Q 1283.9 134.87 1283.38 134.7 Q 1282.85 134.54 1281.8 134.54 L 1280.96 134.54 M 1280.96 140.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 141 L 1288.18 133.77 L 1289.2 133.77 L 1291.44 139.69 L 1293.6 133.77 L 1294.49 133.77 L 1291.87 141 M 1290.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.65 141 L 1299.65 134.54 L 1297.09 134.54 L 1297.09 133.77 L 1303.24 133.77 L 1303.24 134.54 L 1300.68 134.54 L 1300.68 141 M 1299.65 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 141 L 1308.93 133.77 L 1309.95 133.77 L 1309.95 141 M 1308.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 141 L 1316.93 133.77 L 1320.97 133.77 L 1320.97 134.54 L 1317.96 134.54 L 1317.96 136.86 L 1320.48 136.86 L 1320.48 137.62 L 1317.96 137.62 L 1317.96 140.23 L 1321.18 140.23 L 1321.18 141 M 1316.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 141 L 1326.65 134.54 L 1324.09 134.54 L 1324.09 133.77 L 1330.24 133.77 L 1330.24 134.54 L 1327.68 134.54 L 1327.68 141 M 1326.65 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 141 L 1333.93 133.77 L 1334.96 133.77 L 1334.96 136.82 L 1338.4 136.82 L 1338.4 133.77 L 1339.42 133.77 L 1339.42 141 L 1338.4 141 L 1338.4 137.59 L 1334.96 137.59 L 1334.96 141 M 1333.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 141 L 1342.93 133.77 L 1343.89 133.77 L 1343.89 137.33 L 1346.82 133.77 L 1347.85 133.77 L 1345.02 137.22 L 1348.35 141 L 1347.05 141 L 1343.89 137.34 L 1343.89 141 M 1342.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 141 L 1352.93 133.77 L 1356.97 133.77 L 1356.97 134.54 L 1353.96 134.54 L 1353.96 136.86 L 1356.48 136.86 L 1356.48 137.62 L 1353.96 137.62 L 1353.96 140.23 L 1357.18 140.23 L 1357.18 141 M 1352.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 141 L 1361.93 133.77 L 1365.97 133.77 L 1365.97 134.54 L 1362.96 134.54 L 1362.96 136.86 L 1365.48 136.86 L 1365.48 137.62 L 1362.96 137.62 L 1362.96 140.23 L 1366.18 140.23 L 1366.18 141 M 1361.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 141 L 1370.93 133.77 L 1374.97 133.77 L 1374.97 134.54 L 1371.96 134.54 L 1371.96 136.86 L 1374.48 136.86 L 1374.48 137.62 L 1371.96 137.62 L 1371.96 140.23 L 1375.18 140.23 L 1375.18 141 M 1370.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 141 L 1379.93 133.77 L 1380.96 133.77 L 1380.96 140.23 L 1384.21 140.23 L 1384.21 141 M 1379.93 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.91 141 L 1387.18 133.77 L 1388.2 133.77 L 1390.44 139.69 L 1392.6 133.77 L 1393.49 133.77 L 1390.87 141 M 1389.91 141"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1396.72 138.47 L 1396.72 137.75 L 1401.06 137.75 L 1401.06 138.47 M 1396.72 138.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 138.47 L 1405.72 137.75 L 1410.06 137.75 L 1410.06 138.47 M 1405.72 138.47"/></g><rect x="0" y="143" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="143" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="143" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="143" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="143" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="594" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="143" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="143" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="143" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="143" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="143" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="143" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="143" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="143" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="143" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="143" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="143" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="143" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="143" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="143" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="143" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="143" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="143" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="143" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="143" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="143" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="143" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="143" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="143" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 154 L 0.93 146.77 L 2.35 146.77 L 4.36 152.36 L 6.42 146.77 L 7.69 146.77 L 7.69 154 L 6.73 154 L 6.73 148.12 L 4.74 153.52 L 3.75 153.52 L 1.81 148.11 L 1.81 154 M 0.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 151.24 L 13.36 148.12 L 12.13 151.24 M 14.59 151.24 M 15.68 154 L 14.89 152 L 11.83 152 L 11.04 154 L 10.08 154 L 12.95 146.77 L 13.96 146.77 L 16.79 154 M 15.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 22.35 154.18 Q 21.62 154.18 20.49 153.86 L 20.49 152.85 Q 21.71 153.41 22.5 153.41 Q 23.1 153.41 23.47 153.1 Q 23.84 152.78 23.84 152.26 Q 23.84 151.84 23.6 151.54 Q 23.35 151.24 22.71 150.88 L 22.21 150.59 Q 21.28 150.06 20.91 149.59 Q 20.53 149.13 20.53 148.51 Q 20.53 147.67 21.13 147.13 Q 21.74 146.59 22.68 146.59 Q 23.51 146.59 24.44 146.87 L 24.44 147.81 Q 23.3 147.36 22.73 147.36 Q 22.2 147.36 21.86 147.64 Q 21.51 147.93 21.51 148.36 Q 21.51 148.72 21.76 149 Q 22.02 149.27 22.69 149.66 L 23.21 149.95 Q 24.15 150.48 24.52 150.96 Q 24.89 151.43 24.89 152.1 Q 24.89 153.04 24.19 153.61 Q 23.5 154.18 22.35 154.18 M 22.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 154 L 30.65 147.54 L 28.09 147.54 L 28.09 146.77 L 34.24 146.77 L 34.24 147.54 L 31.68 147.54 L 31.68 154 M 30.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 151.47 L 37.72 150.75 L 42.06 150.75 L 42.06 151.47 M 37.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 151.47 L 46.72 150.75 L 51.06 150.75 L 51.06 151.47 M 46.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 151.47 L 55.72 150.75 L 60.06 150.75 L 60.06 151.47 M 55.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 151.47 L 64.72 150.75 L 69.06 150.75 L 69.06 151.47 M 64.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 77.59 151.24 L 76.36 148.12 L 75.13 151.24 M 77.59 151.24 M 78.68 154 L 77.89 152 L 74.83 152 L 74.04 154 L 73.08 154 L 75.95 146.77 L 76.96 146.77 L 79.79 154 M 78.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 83.93 154 L 83.93 146.77 L 84.96 146.77 L 84.96 153.23 L 88.21 153.23 L 88.21 154 M 83.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 154.18 Q 93.62 154.18 92.49 153.86 L 92.49 152.85 Q 93.71 153.41 94.5 153.41 Q 95.1 153.41 95.47 153.1 Q 95.84 152.78 95.84 152.26 Q 95.84 151.84 95.6 151.54 Q 95.35 151.24 94.71 150.88 L 94.21 150.59 Q 93.28 150.06 92.91 149.59 Q 92.53 149.13 92.53 148.51 Q 92.53 147.67 93.13 147.13 Q 93.74 146.59 94.68 146.59 Q 95.51 146.59 96.44 146.87 L 96.44 147.81 Q 95.3 147.36 94.73 147.36 Q 94.2 147.36 93.86 147.64 Q 93.51 147.93 93.51 148.36 Q 93.51 148.72 93.76 149 Q 94.02 149.27 94.69 149.66 L 95.21 149.95 Q 96.15 150.48 96.52 150.96 Q 96.89 151.43 96.89 152.1 Q 96.89 153.04 96.19 153.61 Q 95.5 154.18 94.35 154.18 M 94.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 103.35 154.18 Q 102.62 154.18 101.49 153.86 L 101.49 152.85 Q 102.71 153.41 103.5 153.41 Q 104.1 153.41 104.47 153.1 Q 104.84 152.78 104.84 152.26 Q 104.84 151.84 104.6 151.54 Q 104.35 151.24 103.71 150.88 L 103.21 150.59 Q 102.28 150.06 101.91 149.59 Q 101.53 149.13 101.53 148.51 Q 101.53 147.67 102.13 147.13 Q 102.74 146.59 103.68 146.59 Q 104.51 146.59 105.44 146.87 L 105.44 147.81 Q 104.3 147.36 103.73 147.36 Q 103.2 147.36 102.86 147.64 Q 102.51 147.93 102.51 148.36 Q 102.51 148.72 102.76 149 Q 103.02 149.27 103.69 149.66 L 104.21 149.95 Q 105.15 150.48 105.52 150.96 Q 105.89 151.43 105.89 152.1 Q 105.89 153.04 105.19 153.61 Q 104.5 154.18 103.35 154.18 M 103.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 113.59 151.24 L 112.36 148.12 L 111.13 151.24 M 113.59 151.24 M 114.68 154 L 113.89 152 L 110.83 152 L 110.04 154 L 109.08 154 L 111.95 146.77 L 112.96 146.77 L 115.79 154 M 114.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 120.93 154 L 120.93 146.77 L 121.95 146.77 L 121.95 154 M 120.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.91 154 L 127.18 146.77 L 128.2 146.77 L 130.44 152.69 L 132.6 146.77 L 133.49 146.77 L 130.87 154 M 129.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 154.18 Q 138.62 154.18 137.49 153.86 L 137.49 152.85 Q 138.71 153.41 139.5 153.41 Q 140.1 153.41 140.47 153.1 Q 140.84 152.78 140.84 152.26 Q 140.84 151.84 140.6 151.54 Q 140.35 151.24 139.71 150.88 L 139.21 150.59 Q 138.28 150.06 137.91 149.59 Q 137.53 149.13 137.53 148.51 Q 137.53 147.67 138.13 147.13 Q 138.74 146.59 139.68 146.59 Q 140.51 146.59 141.44 146.87 L 141.44 147.81 Q 140.3 147.36 139.73 147.36 Q 139.2 147.36 138.86 147.64 Q 138.51 147.93 138.51 148.36 Q 138.51 148.72 138.76 149 Q 139.02 149.27 139.69 149.66 L 140.21 149.95 Q 141.15 150.48 141.52 150.96 Q 141.89 151.43 141.89 152.1 Q 141.89 153.04 141.19 153.61 Q 140.5 154.18 139.35 154.18 M 139.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 154 L 147.65 147.54 L 145.09 147.54 L 145.09 146.77 L 151.24 146.77 L 151.24 147.54 L 148.68 147.54 L 148.68 154 M 147.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 154.18 Q 156.62 154.18 155.49 153.86 L 155.49 152.85 Q 156.71 153.41 157.5 153.41 Q 158.1 153.41 158.47 153.1 Q 158.84 152.78 158.84 152.26 Q 158.84 151.84 158.6 151.54 Q 158.35 151.24 157.71 150.88 L 157.21 150.59 Q 156.28 150.06 155.91 149.59 Q 155.53 149.13 155.53 148.51 Q 155.53 147.67 156.13 147.13 Q 156.74 146.59 157.68 146.59 Q 158.51 146.59 159.44 146.87 L 159.44 147.81 Q 158.3 147.36 157.73 147.36 Q 157.2 147.36 156.86 147.64 Q 156.51 147.93 156.51 148.36 Q 156.51 148.72 156.76 149 Q 157.02 149.27 157.69 149.66 L 158.21 149.95 Q 159.15 150.48 159.52 150.96 Q 159.89 151.43 159.89 152.1 Q 159.89 153.04 159.19 153.61 Q 158.5 154.18 157.35 154.18 M 157.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 154 L 164.93 146.77 L 168.97 146.77 L 168.97 147.54 L 165.96 147.54 L 165.96 149.96 L 168.49 149.96 L 168.49 150.72 L 165.96 150.72 L 165.96 154 M 164.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 154 L 173.93 146.77 L 174.96 146.77 L 174.96 153.23 L 178.21 153.23 L 178.21 154 M 173.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 154 L 181.93 146.77 L 184.12 146.77 Q 185.16 146.77 185.71 147.23 Q 186.27 147.69 186.27 148.57 Q 186.27 150.01 184.81 150.62 L 187.22 154 L 185.96 154 L 183.91 150.94 L 182.95 150.94 L 182.95 154 M 181.93 154 M 182.95 150.18 L 183.28 150.18 Q 185.21 150.18 185.21 148.66 Q 185.21 147.54 183.59 147.54 L 182.95 147.54 M 182.95 150.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 154 L 190.93 146.77 L 193.12 146.77 Q 194.16 146.77 194.71 147.23 Q 195.27 147.69 195.27 148.57 Q 195.27 150.01 193.81 150.62 L 196.22 154 L 194.96 154 L 192.91 150.94 L 191.95 150.94 L 191.95 154 M 190.93 154 M 191.95 150.18 L 192.28 150.18 Q 194.21 150.18 194.21 148.66 Q 194.21 147.54 192.59 147.54 L 191.95 147.54 M 191.95 150.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 205.35 155.45 Q 203.64 154.89 202.49 154.13 Q 202.03 154.18 201.78 154.18 Q 200.33 154.18 199.42 153.13 Q 198.51 152.07 198.51 150.39 Q 198.51 148.66 199.43 147.63 Q 200.35 146.59 201.89 146.59 Q 203.43 146.59 204.35 147.63 Q 205.27 148.66 205.27 150.4 Q 205.27 152.89 203.42 153.85 Q 204.66 154.4 206 154.63 M 205.35 155.45 M 201.86 153.41 Q 202.97 153.41 203.57 152.62 Q 204.18 151.82 204.18 150.37 Q 204.18 148.96 203.57 148.16 Q 202.97 147.36 201.89 147.36 Q 200.81 147.36 200.2 148.16 Q 199.6 148.96 199.6 150.38 Q 199.6 151.79 200.2 152.6 Q 200.8 153.41 201.86 153.41 M 201.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 214.35 155.45 Q 212.64 154.89 211.49 154.13 Q 211.03 154.18 210.78 154.18 Q 209.33 154.18 208.42 153.13 Q 207.51 152.07 207.51 150.39 Q 207.51 148.66 208.43 147.63 Q 209.35 146.59 210.89 146.59 Q 212.43 146.59 213.35 147.63 Q 214.27 148.66 214.27 150.4 Q 214.27 152.89 212.42 153.85 Q 213.66 154.4 215 154.63 M 214.35 155.45 M 210.86 153.41 Q 211.97 153.41 212.57 152.62 Q 213.18 151.82 213.18 150.37 Q 213.18 148.96 212.57 148.16 Q 211.97 147.36 210.89 147.36 Q 209.81 147.36 209.2 148.16 Q 208.6 148.96 208.6 150.38 Q 208.6 151.79 209.2 152.6 Q 209.8 153.41 210.86 153.41 M 210.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 219.65 154 L 219.65 147.54 L 217.09 147.54 L 217.09 146.77 L 223.24 146.77 L 223.24 147.54 L 220.68 147.54 L 220.68 154 M 219.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 154 L 226.93 146.77 L 228.9 146.77 Q 230.21 146.77 230.78 147.22 Q 231.35 147.66 231.35 148.67 Q 231.35 149.82 230.57 150.47 Q 229.79 151.13 228.4 151.13 L 227.95 151.13 L 227.95 154 M 226.93 154 M 227.95 150.35 L 228.36 150.35 Q 229.28 150.35 229.77 149.93 Q 230.27 149.51 230.27 148.75 Q 230.27 148.1 229.88 147.82 Q 229.49 147.54 228.58 147.54 L 227.95 147.54 M 227.95 150.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.93 154 L 237.93 146.77 L 238.95 146.77 L 238.95 154 M 237.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 154.18 Q 246.62 154.18 245.49 153.86 L 245.49 152.85 Q 246.71 153.41 247.5 153.41 Q 248.1 153.41 248.47 153.1 Q 248.84 152.78 248.84 152.26 Q 248.84 151.84 248.6 151.54 Q 248.35 151.24 247.71 150.88 L 247.21 150.59 Q 246.28 150.06 245.91 149.59 Q 245.53 149.13 245.53 148.51 Q 245.53 147.67 246.13 147.13 Q 246.74 146.59 247.68 146.59 Q 248.51 146.59 249.44 146.87 L 249.44 147.81 Q 248.3 147.36 247.73 147.36 Q 247.2 147.36 246.86 147.64 Q 246.51 147.93 246.51 148.36 Q 246.51 148.72 246.76 149 Q 247.02 149.27 247.69 149.66 L 248.21 149.95 Q 249.15 150.48 249.52 150.96 Q 249.89 151.43 249.89 152.1 Q 249.89 153.04 249.19 153.61 Q 248.5 154.18 247.35 154.18 M 247.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 254.93 154 L 254.93 146.77 L 255.96 146.77 L 255.96 153.23 L 259.21 153.23 L 259.21 154 M 254.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.93 154 L 262.93 146.77 L 265.12 146.77 Q 266.16 146.77 266.71 147.23 Q 267.27 147.69 267.27 148.57 Q 267.27 150.01 265.81 150.62 L 268.22 154 L 266.96 154 L 264.91 150.94 L 263.95 150.94 L 263.95 154 M 262.93 154 M 263.95 150.18 L 264.28 150.18 Q 266.21 150.18 266.21 148.66 Q 266.21 147.54 264.59 147.54 L 263.95 147.54 M 263.95 150.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 274.35 154.18 Q 273.62 154.18 272.49 153.86 L 272.49 152.85 Q 273.71 153.41 274.5 153.41 Q 275.1 153.41 275.47 153.1 Q 275.84 152.78 275.84 152.26 Q 275.84 151.84 275.6 151.54 Q 275.35 151.24 274.71 150.88 L 274.21 150.59 Q 273.28 150.06 272.91 149.59 Q 272.53 149.13 272.53 148.51 Q 272.53 147.67 273.13 147.13 Q 273.74 146.59 274.68 146.59 Q 275.51 146.59 276.44 146.87 L 276.44 147.81 Q 275.3 147.36 274.73 147.36 Q 274.2 147.36 273.86 147.64 Q 273.51 147.93 273.51 148.36 Q 273.51 148.72 273.76 149 Q 274.02 149.27 274.69 149.66 L 275.21 149.95 Q 276.15 150.48 276.52 150.96 Q 276.89 151.43 276.89 152.1 Q 276.89 153.04 276.19 153.61 Q 275.5 154.18 274.35 154.18 M 274.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 281.93 154 L 281.93 146.77 L 282.96 146.77 L 282.96 153.23 L 286.21 153.23 L 286.21 154 M 281.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.93 154 L 289.93 146.77 L 291.9 146.77 Q 293.21 146.77 293.78 147.22 Q 294.35 147.66 294.35 148.67 Q 294.35 149.82 293.57 150.47 Q 292.79 151.13 291.4 151.13 L 290.95 151.13 L 290.95 154 M 289.93 154 M 290.95 150.35 L 291.36 150.35 Q 292.28 150.35 292.77 149.93 Q 293.27 149.51 293.27 148.75 Q 293.27 148.1 292.88 147.82 Q 292.49 147.54 291.58 147.54 L 290.95 147.54 M 290.95 150.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 299.93 154 L 299.93 146.77 L 303.97 146.77 L 303.97 147.54 L 300.96 147.54 L 300.96 149.96 L 303.49 149.96 L 303.49 150.72 L 300.96 150.72 L 300.96 154 M 299.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 311.59 151.24 L 310.36 148.12 L 309.13 151.24 M 311.59 151.24 M 312.68 154 L 311.89 152 L 308.83 152 L 308.04 154 L 307.08 154 L 309.95 146.77 L 310.96 146.77 L 313.79 154 M 312.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 316.93 154 L 316.93 146.77 L 317.94 146.77 L 321.58 152.35 L 321.58 146.77 L 322.46 146.77 L 322.46 154 L 321.45 154 L 317.81 148.42 L 317.81 154 M 316.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 327.65 154 L 327.65 147.54 L 325.09 147.54 L 325.09 146.77 L 331.24 146.77 L 331.24 147.54 L 328.68 147.54 L 328.68 154 M 327.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 340.35 155.45 Q 338.64 154.89 337.49 154.13 Q 337.03 154.18 336.78 154.18 Q 335.33 154.18 334.42 153.13 Q 333.51 152.07 333.51 150.39 Q 333.51 148.66 334.43 147.63 Q 335.35 146.59 336.89 146.59 Q 338.43 146.59 339.35 147.63 Q 340.27 148.66 340.27 150.4 Q 340.27 152.89 338.42 153.85 Q 339.66 154.4 341 154.63 M 340.35 155.45 M 336.86 153.41 Q 337.97 153.41 338.57 152.62 Q 339.18 151.82 339.18 150.37 Q 339.18 148.96 338.57 148.16 Q 337.97 147.36 336.89 147.36 Q 335.81 147.36 335.2 148.16 Q 334.6 148.96 334.6 150.38 Q 334.6 151.79 335.2 152.6 Q 335.8 153.41 336.86 153.41 M 336.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 151.47 L 343.72 150.75 L 348.06 150.75 L 348.06 151.47 M 343.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 151.47 L 352.72 150.75 L 357.06 150.75 L 357.06 151.47 M 352.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 364.35 154.18 Q 363.62 154.18 362.49 153.86 L 362.49 152.85 Q 363.71 153.41 364.5 153.41 Q 365.1 153.41 365.47 153.1 Q 365.84 152.78 365.84 152.26 Q 365.84 151.84 365.6 151.54 Q 365.35 151.24 364.71 150.88 L 364.21 150.59 Q 363.28 150.06 362.91 149.59 Q 362.53 149.13 362.53 148.51 Q 362.53 147.67 363.13 147.13 Q 363.74 146.59 364.68 146.59 Q 365.51 146.59 366.44 146.87 L 366.44 147.81 Q 365.3 147.36 364.73 147.36 Q 364.2 147.36 363.86 147.64 Q 363.51 147.93 363.51 148.36 Q 363.51 148.72 363.76 149 Q 364.02 149.27 364.69 149.66 L 365.21 149.95 Q 366.15 150.48 366.52 150.96 Q 366.89 151.43 366.89 152.1 Q 366.89 153.04 366.19 153.61 Q 365.5 154.18 364.35 154.18 M 364.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 154 L 371.93 146.77 L 372.96 146.77 L 372.96 153.23 L 376.21 153.23 L 376.21 154 M 371.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 154 L 380.93 146.77 L 384.97 146.77 L 384.97 147.54 L 381.96 147.54 L 381.96 149.96 L 384.49 149.96 L 384.49 150.72 L 381.96 150.72 L 381.96 154 M 380.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 153.8 Q 393.05 154.18 392.07 154.18 Q 390.35 154.18 389.43 153.2 Q 388.51 152.22 388.51 150.39 Q 388.51 148.59 389.44 147.59 Q 390.37 146.59 392.06 146.59 Q 393.16 146.59 394.35 146.92 L 394.35 147.87 Q 392.86 147.36 392.06 147.36 Q 390.89 147.36 390.24 148.16 Q 389.6 148.95 389.6 150.4 Q 389.6 151.83 390.29 152.62 Q 390.98 153.41 392.23 153.41 Q 392.75 153.41 393.34 153.23 L 393.34 150.88 L 394.36 150.88 M 394.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 154 L 398.93 146.77 L 399.96 146.77 L 399.96 153.23 L 403.21 153.23 L 403.21 154 M 398.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 154 L 406.93 146.77 L 407.89 146.77 L 407.89 150.33 L 410.82 146.77 L 411.85 146.77 L 409.02 150.22 L 412.35 154 L 411.05 154 L 407.89 150.34 L 407.89 154 M 406.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 154.18 Q 417.62 154.18 416.49 153.86 L 416.49 152.85 Q 417.71 153.41 418.5 153.41 Q 419.1 153.41 419.47 153.1 Q 419.84 152.78 419.84 152.26 Q 419.84 151.84 419.6 151.54 Q 419.35 151.24 418.71 150.88 L 418.21 150.59 Q 417.28 150.06 416.91 149.59 Q 416.53 149.13 416.53 148.51 Q 416.53 147.67 417.13 147.13 Q 417.74 146.59 418.68 146.59 Q 419.51 146.59 420.44 146.87 L 420.44 147.81 Q 419.3 147.36 418.73 147.36 Q 418.2 147.36 417.86 147.64 Q 417.51 147.93 417.51 148.36 Q 417.51 148.72 417.76 149 Q 418.02 149.27 418.69 149.66 L 419.21 149.95 Q 420.15 150.48 420.52 150.96 Q 420.89 151.43 420.89 152.1 Q 420.89 153.04 420.19 153.61 Q 419.5 154.18 418.35 154.18 M 418.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 151.47 L 424.72 150.75 L 429.06 150.75 L 429.06 151.47 M 424.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 436.35 154.18 Q 435.62 154.18 434.49 153.86 L 434.49 152.85 Q 435.71 153.41 436.5 153.41 Q 437.1 153.41 437.47 153.1 Q 437.84 152.78 437.84 152.26 Q 437.84 151.84 437.6 151.54 Q 437.35 151.24 436.71 150.88 L 436.21 150.59 Q 435.28 150.06 434.91 149.59 Q 434.53 149.13 434.53 148.51 Q 434.53 147.67 435.13 147.13 Q 435.74 146.59 436.68 146.59 Q 437.51 146.59 438.44 146.87 L 438.44 147.81 Q 437.3 147.36 436.73 147.36 Q 436.2 147.36 435.86 147.64 Q 435.51 147.93 435.51 148.36 Q 435.51 148.72 435.76 149 Q 436.02 149.27 436.69 149.66 L 437.21 149.95 Q 438.15 150.48 438.52 150.96 Q 438.89 151.43 438.89 152.1 Q 438.89 153.04 438.19 153.61 Q 437.5 154.18 436.35 154.18 M 436.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 444.65 154 L 444.65 147.54 L 442.09 147.54 L 442.09 146.77 L 448.24 146.77 L 448.24 147.54 L 445.68 147.54 L 445.68 154 M 444.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 455.59 151.24 L 454.36 148.12 L 453.13 151.24 M 455.59 151.24 M 456.68 154 L 455.89 152 L 452.83 152 L 452.04 154 L 451.08 154 L 453.95 146.77 L 454.96 146.77 L 457.79 154 M 456.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 154 L 460.93 146.77 L 463.12 146.77 Q 464.16 146.77 464.71 147.23 Q 465.27 147.69 465.27 148.57 Q 465.27 150.01 463.81 150.62 L 466.22 154 L 464.96 154 L 462.91 150.94 L 461.95 150.94 L 461.95 154 M 460.93 154 M 461.95 150.18 L 462.28 150.18 Q 464.21 150.18 464.21 148.66 Q 464.21 147.54 462.59 147.54 L 461.95 147.54 M 461.95 150.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 475.36 153.8 Q 474.05 154.18 473.07 154.18 Q 471.35 154.18 470.43 153.2 Q 469.51 152.22 469.51 150.39 Q 469.51 148.59 470.44 147.59 Q 471.37 146.59 473.06 146.59 Q 474.16 146.59 475.35 146.92 L 475.35 147.87 Q 473.86 147.36 473.06 147.36 Q 471.89 147.36 471.24 148.16 Q 470.6 148.95 470.6 150.4 Q 470.6 151.83 471.29 152.62 Q 471.98 153.41 473.23 153.41 Q 473.75 153.41 474.34 153.23 L 474.34 150.88 L 475.36 150.88 M 475.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 153.8 Q 483.05 154.18 482.07 154.18 Q 480.35 154.18 479.43 153.2 Q 478.51 152.22 478.51 150.39 Q 478.51 148.59 479.44 147.59 Q 480.37 146.59 482.06 146.59 Q 483.16 146.59 484.35 146.92 L 484.35 147.87 Q 482.86 147.36 482.06 147.36 Q 480.89 147.36 480.24 148.16 Q 479.6 148.95 479.6 150.4 Q 479.6 151.83 480.29 152.62 Q 480.98 153.41 482.23 153.41 Q 482.75 153.41 483.34 153.23 L 483.34 150.88 L 484.36 150.88 M 484.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 154 L 487.93 146.77 L 490.12 146.77 Q 491.16 146.77 491.71 147.23 Q 492.27 147.69 492.27 148.57 Q 492.27 150.01 490.81 150.62 L 493.22 154 L 491.96 154 L 489.91 150.94 L 488.95 150.94 L 488.95 154 M 487.93 154 M 488.95 150.18 L 489.28 150.18 Q 491.21 150.18 491.21 148.66 Q 491.21 147.54 489.59 147.54 L 488.95 147.54 M 488.95 150.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.91 154 L 496.18 146.77 L 497.2 146.77 L 499.44 152.69 L 501.6 146.77 L 502.49 146.77 L 499.87 154 M 498.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 154 L 507.65 147.54 L 505.09 147.54 L 505.09 146.77 L 511.24 146.77 L 511.24 147.54 L 508.68 147.54 L 508.68 154 M 507.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 151.24 L 517.36 148.12 L 516.13 151.24 M 518.59 151.24 M 519.68 154 L 518.89 152 L 515.83 152 L 515.04 154 L 514.08 154 L 516.95 146.77 L 517.96 146.77 L 520.79 154 M 519.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 154 L 522.93 146.77 L 524.35 146.77 L 526.36 152.36 L 528.42 146.77 L 529.69 146.77 L 529.69 154 L 528.73 154 L 528.73 148.12 L 526.74 153.52 L 525.75 153.52 L 523.81 148.11 L 523.81 154 M 522.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 151.24 L 535.36 148.12 L 534.13 151.24 M 536.59 151.24 M 537.68 154 L 536.89 152 L 533.83 152 L 533.04 154 L 532.08 154 L 534.95 146.77 L 535.96 146.77 L 538.79 154 M 537.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 154 L 543.65 147.54 L 541.09 147.54 L 541.09 146.77 L 547.24 146.77 L 547.24 147.54 L 544.68 147.54 L 544.68 154 M 543.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 154 L 552.5 150.98 L 550.08 146.77 L 551.25 146.77 L 553.13 150.04 L 555.15 146.77 L 556.1 146.77 L 553.52 150.96 L 553.52 154 M 552.5 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 154 L 559.93 146.77 L 560.89 146.77 L 560.89 150.33 L 563.82 146.77 L 564.85 146.77 L 562.02 150.22 L 565.35 154 L 564.05 154 L 560.89 150.34 L 560.89 154 M 559.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 154 L 568.18 146.77 L 569.2 146.77 L 571.44 152.69 L 573.6 146.77 L 574.49 146.77 L 571.87 154 M 570.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 154 L 577.93 146.77 L 578.89 146.77 L 578.89 150.33 L 581.82 146.77 L 582.85 146.77 L 580.02 150.22 L 583.35 154 L 582.05 154 L 578.89 150.34 L 578.89 154 M 577.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 154 L 587.93 146.77 L 591.97 146.77 L 591.97 147.54 L 588.96 147.54 L 588.96 149.96 L 591.49 149.96 L 591.49 150.72 L 588.96 150.72 L 588.96 154 M 587.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 154 L 597.93 146.77 L 598.95 146.77 L 598.95 154 M 597.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 154 L 606.65 147.54 L 604.09 147.54 L 604.09 146.77 L 610.24 146.77 L 610.24 147.54 L 607.68 147.54 L 607.68 154 M 606.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 154 L 613.93 146.77 L 615.9 146.77 Q 617.21 146.77 617.78 147.22 Q 618.35 147.66 618.35 148.67 Q 618.35 149.82 617.57 150.47 Q 616.79 151.13 615.4 151.13 L 614.95 151.13 L 614.95 154 M 613.93 154 M 614.95 150.35 L 615.36 150.35 Q 616.28 150.35 616.77 149.93 Q 617.27 149.51 617.27 148.75 Q 617.27 148.1 616.88 147.82 Q 616.49 147.54 615.58 147.54 L 614.95 147.54 M 614.95 150.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 154 L 623.93 146.77 L 627.97 146.77 L 627.97 147.54 L 624.96 147.54 L 624.96 149.86 L 627.48 149.86 L 627.48 150.62 L 624.96 150.62 L 624.96 153.23 L 628.18 153.23 L 628.18 154 M 623.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 153.8 Q 636.05 154.18 635.07 154.18 Q 633.35 154.18 632.43 153.2 Q 631.51 152.22 631.51 150.39 Q 631.51 148.59 632.44 147.59 Q 633.37 146.59 635.06 146.59 Q 636.16 146.59 637.35 146.92 L 637.35 147.87 Q 635.86 147.36 635.06 147.36 Q 633.89 147.36 633.24 148.16 Q 632.6 148.95 632.6 150.4 Q 632.6 151.83 633.29 152.62 Q 633.98 153.41 635.23 153.41 Q 635.75 153.41 636.34 153.23 L 636.34 150.88 L 637.36 150.88 M 637.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 154 L 641.93 146.77 L 645.97 146.77 L 645.97 147.54 L 642.96 147.54 L 642.96 149.86 L 645.48 149.86 L 645.48 150.62 L 642.96 150.62 L 642.96 153.23 L 646.18 153.23 L 646.18 154 M 641.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 155.45 Q 653.64 154.89 652.49 154.13 Q 652.03 154.18 651.78 154.18 Q 650.33 154.18 649.42 153.13 Q 648.51 152.07 648.51 150.39 Q 648.51 148.66 649.43 147.63 Q 650.35 146.59 651.89 146.59 Q 653.43 146.59 654.35 147.63 Q 655.27 148.66 655.27 150.4 Q 655.27 152.89 653.42 153.85 Q 654.66 154.4 656 154.63 M 655.35 155.45 M 651.86 153.41 Q 652.97 153.41 653.57 152.62 Q 654.18 151.82 654.18 150.37 Q 654.18 148.96 653.57 148.16 Q 652.97 147.36 651.89 147.36 Q 650.81 147.36 650.2 148.16 Q 649.6 148.96 649.6 150.38 Q 649.6 151.79 650.2 152.6 Q 650.8 153.41 651.86 153.41 M 651.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 154 L 659.93 146.77 L 663.97 146.77 L 663.97 147.54 L 660.96 147.54 L 660.96 149.86 L 663.48 149.86 L 663.48 150.62 L 660.96 150.62 L 660.96 153.23 L 664.18 153.23 L 664.18 154 M 659.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 669.91 154 L 667.18 146.77 L 668.2 146.77 L 670.44 152.69 L 672.6 146.77 L 673.49 146.77 L 670.87 154 M 669.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 154 L 677.93 146.77 L 681.97 146.77 L 681.97 147.54 L 678.96 147.54 L 678.96 149.86 L 681.48 149.86 L 681.48 150.62 L 678.96 150.62 L 678.96 153.23 L 682.18 153.23 L 682.18 154 M 677.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 154.18 Q 687.34 154.18 686.43 153.19 Q 685.51 152.2 685.51 150.39 Q 685.51 148.58 686.44 147.59 Q 687.38 146.59 689.08 146.59 Q 690.05 146.59 691.35 146.91 L 691.35 147.87 Q 689.87 147.36 689.06 147.36 Q 687.89 147.36 687.24 148.16 Q 686.6 148.95 686.6 150.4 Q 686.6 151.78 687.29 152.58 Q 687.97 153.38 689.17 153.38 Q 690.19 153.38 691.36 152.75 L 691.36 153.63 Q 690.29 154.18 689.03 154.18 M 689.03 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 695.93 154 L 695.93 146.77 L 699.97 146.77 L 699.97 147.54 L 696.96 147.54 L 696.96 149.86 L 699.48 149.86 L 699.48 150.62 L 696.96 150.62 L 696.96 153.23 L 700.18 153.23 L 700.18 154 M 695.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 704.93 154 L 704.93 146.77 L 708.97 146.77 L 708.97 147.54 L 705.96 147.54 L 705.96 149.86 L 708.48 149.86 L 708.48 150.62 L 705.96 150.62 L 705.96 153.23 L 709.18 153.23 L 709.18 154 M 704.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 154 L 712.93 146.77 L 715.33 146.77 Q 716.41 146.77 717.07 147.01 Q 717.73 147.25 718.22 147.82 Q 718.98 148.73 718.98 150.22 Q 718.98 152.02 718.03 153.01 Q 717.08 154 715.35 154 M 712.93 154 M 713.96 153.23 L 715.27 153.23 Q 716.68 153.23 717.26 152.48 Q 717.89 151.67 717.89 150.31 Q 717.89 149.04 717.27 148.31 Q 716.9 147.87 716.38 147.7 Q 715.85 147.54 714.8 147.54 L 713.96 147.54 M 713.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 154 L 721.18 146.77 L 722.2 146.77 L 724.44 152.69 L 726.6 146.77 L 727.49 146.77 L 724.87 154 M 723.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 154 L 732.5 150.98 L 730.08 146.77 L 731.25 146.77 L 733.13 150.04 L 735.15 146.77 L 736.1 146.77 L 733.52 150.96 L 733.52 154 M 732.5 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.91 154 L 739.18 146.77 L 740.2 146.77 L 742.44 152.69 L 744.6 146.77 L 745.49 146.77 L 742.87 154 M 741.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 154 L 749.93 146.77 L 750.96 146.77 L 750.96 153.23 L 754.21 153.23 L 754.21 154 M 749.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 154 L 757.93 146.77 L 760.33 146.77 Q 761.41 146.77 762.07 147.01 Q 762.73 147.25 763.22 147.82 Q 763.98 148.73 763.98 150.22 Q 763.98 152.02 763.03 153.01 Q 762.08 154 760.35 154 M 757.93 154 M 758.96 153.23 L 760.27 153.23 Q 761.68 153.23 762.26 152.48 Q 762.89 151.67 762.89 150.31 Q 762.89 149.04 762.27 148.31 Q 761.9 147.87 761.38 147.7 Q 760.85 147.54 759.8 147.54 L 758.96 147.54 M 758.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 151.24 L 769.36 148.12 L 768.13 151.24 M 770.59 151.24 M 771.68 154 L 770.89 152 L 767.83 152 L 767.04 154 L 766.08 154 L 768.95 146.77 L 769.96 146.77 L 772.79 154 M 771.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 151.24 L 778.36 148.12 L 777.13 151.24 M 779.59 151.24 M 780.68 154 L 779.89 152 L 776.83 152 L 776.04 154 L 775.08 154 L 777.95 146.77 L 778.96 146.77 L 781.79 154 M 780.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 154 L 785.93 146.77 L 789.97 146.77 L 789.97 147.54 L 786.96 147.54 L 786.96 149.86 L 789.48 149.86 L 789.48 150.62 L 786.96 150.62 L 786.96 153.23 L 790.18 153.23 L 790.18 154 M 785.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 154 L 794.93 146.77 L 798.97 146.77 L 798.97 147.54 L 795.96 147.54 L 795.96 149.86 L 798.48 149.86 L 798.48 150.62 L 795.96 150.62 L 795.96 153.23 L 799.18 153.23 L 799.18 154 M 794.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 151.24 L 805.36 148.12 L 804.13 151.24 M 806.59 151.24 M 807.68 154 L 806.89 152 L 803.83 152 L 803.04 154 L 802.08 154 L 804.95 146.77 L 805.96 146.77 L 808.79 154 M 807.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 153.8 Q 816.05 154.18 815.07 154.18 Q 813.35 154.18 812.43 153.2 Q 811.51 152.22 811.51 150.39 Q 811.51 148.59 812.44 147.59 Q 813.37 146.59 815.06 146.59 Q 816.16 146.59 817.35 146.92 L 817.35 147.87 Q 815.86 147.36 815.06 147.36 Q 813.89 147.36 813.24 148.16 Q 812.6 148.95 812.6 150.4 Q 812.6 151.83 813.29 152.62 Q 813.98 153.41 815.23 153.41 Q 815.75 153.41 816.34 153.23 L 816.34 150.88 L 817.36 150.88 M 817.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 821.93 154 L 821.93 146.77 L 822.96 146.77 L 822.96 153.23 L 826.21 153.23 L 826.21 154 M 821.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 154 L 829.93 146.77 L 832.33 146.77 Q 833.41 146.77 834.07 147.01 Q 834.73 147.25 835.22 147.82 Q 835.98 148.73 835.98 150.22 Q 835.98 152.02 835.03 153.01 Q 834.08 154 832.35 154 M 829.93 154 M 830.96 153.23 L 832.27 153.23 Q 833.68 153.23 834.26 152.48 Q 834.89 151.67 834.89 150.31 Q 834.89 149.04 834.27 148.31 Q 833.9 147.87 833.38 147.7 Q 832.85 147.54 831.8 147.54 L 830.96 147.54 M 830.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 154 L 839.93 146.77 L 840.96 146.77 L 840.96 153.23 L 844.21 153.23 L 844.21 154 M 839.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 154 L 847.93 146.77 L 849.9 146.77 Q 851.21 146.77 851.78 147.22 Q 852.35 147.66 852.35 148.67 Q 852.35 149.82 851.57 150.47 Q 850.79 151.13 849.4 151.13 L 848.95 151.13 L 848.95 154 M 847.93 154 M 848.95 150.35 L 849.36 150.35 Q 850.28 150.35 850.77 149.93 Q 851.27 149.51 851.27 148.75 Q 851.27 148.1 850.88 147.82 Q 850.49 147.54 849.58 147.54 L 848.95 147.54 M 848.95 150.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 154 L 858.5 150.98 L 856.08 146.77 L 857.25 146.77 L 859.13 150.04 L 861.15 146.77 L 862.1 146.77 L 859.52 150.96 L 859.52 154 M 858.5 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 154.18 Q 867.62 154.18 866.49 153.86 L 866.49 152.85 Q 867.71 153.41 868.5 153.41 Q 869.1 153.41 869.47 153.1 Q 869.84 152.78 869.84 152.26 Q 869.84 151.84 869.6 151.54 Q 869.35 151.24 868.71 150.88 L 868.21 150.59 Q 867.28 150.06 866.91 149.59 Q 866.53 149.13 866.53 148.51 Q 866.53 147.67 867.13 147.13 Q 867.74 146.59 868.68 146.59 Q 869.51 146.59 870.44 146.87 L 870.44 147.81 Q 869.3 147.36 868.73 147.36 Q 868.2 147.36 867.86 147.64 Q 867.51 147.93 867.51 148.36 Q 867.51 148.72 867.76 149 Q 868.02 149.27 868.69 149.66 L 869.21 149.95 Q 870.15 150.48 870.52 150.96 Q 870.89 151.43 870.89 152.1 Q 870.89 153.04 870.19 153.61 Q 869.5 154.18 868.35 154.18 M 868.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 154.18 Q 876.34 154.18 875.43 153.19 Q 874.51 152.2 874.51 150.39 Q 874.51 148.58 875.44 147.59 Q 876.38 146.59 878.08 146.59 Q 879.05 146.59 880.35 146.91 L 880.35 147.87 Q 878.87 147.36 878.06 147.36 Q 876.89 147.36 876.24 148.16 Q 875.6 148.95 875.6 150.4 Q 875.6 151.78 876.29 152.58 Q 876.97 153.38 878.17 153.38 Q 879.19 153.38 880.36 152.75 L 880.36 153.63 Q 879.29 154.18 878.03 154.18 M 878.03 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 154 L 883.93 146.77 L 886.12 146.77 Q 887.16 146.77 887.71 147.23 Q 888.27 147.69 888.27 148.57 Q 888.27 150.01 886.81 150.62 L 889.22 154 L 887.96 154 L 885.91 150.94 L 884.95 150.94 L 884.95 154 M 883.93 154 M 884.95 150.18 L 885.28 150.18 Q 887.21 150.18 887.21 148.66 Q 887.21 147.54 885.59 147.54 L 884.95 147.54 M 884.95 150.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 151.24 L 895.36 148.12 L 894.13 151.24 M 896.59 151.24 M 897.68 154 L 896.89 152 L 893.83 152 L 893.04 154 L 892.08 154 L 894.95 146.77 L 895.96 146.77 L 898.79 154 M 897.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 153.8 Q 906.05 154.18 905.07 154.18 Q 903.35 154.18 902.43 153.2 Q 901.51 152.22 901.51 150.39 Q 901.51 148.59 902.44 147.59 Q 903.37 146.59 905.06 146.59 Q 906.16 146.59 907.35 146.92 L 907.35 147.87 Q 905.86 147.36 905.06 147.36 Q 903.89 147.36 903.24 148.16 Q 902.6 148.95 902.6 150.4 Q 902.6 151.83 903.29 152.62 Q 903.98 153.41 905.23 153.41 Q 905.75 153.41 906.34 153.23 L 906.34 150.88 L 907.36 150.88 M 907.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 154.18 Q 912.62 154.18 911.49 153.86 L 911.49 152.85 Q 912.71 153.41 913.5 153.41 Q 914.1 153.41 914.47 153.1 Q 914.84 152.78 914.84 152.26 Q 914.84 151.84 914.6 151.54 Q 914.35 151.24 913.71 150.88 L 913.21 150.59 Q 912.28 150.06 911.91 149.59 Q 911.53 149.13 911.53 148.51 Q 911.53 147.67 912.13 147.13 Q 912.74 146.59 913.68 146.59 Q 914.51 146.59 915.44 146.87 L 915.44 147.81 Q 914.3 147.36 913.73 147.36 Q 913.2 147.36 912.86 147.64 Q 912.51 147.93 912.51 148.36 Q 912.51 148.72 912.76 149 Q 913.02 149.27 913.69 149.66 L 914.21 149.95 Q 915.15 150.48 915.52 150.96 Q 915.89 151.43 915.89 152.1 Q 915.89 153.04 915.19 153.61 Q 914.5 154.18 913.35 154.18 M 913.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 154.18 Q 921.34 154.18 920.43 153.19 Q 919.51 152.2 919.51 150.39 Q 919.51 148.58 920.44 147.59 Q 921.38 146.59 923.08 146.59 Q 924.05 146.59 925.35 146.91 L 925.35 147.87 Q 923.87 147.36 923.06 147.36 Q 921.89 147.36 921.24 148.16 Q 920.6 148.95 920.6 150.4 Q 920.6 151.78 921.29 152.58 Q 921.97 153.38 923.17 153.38 Q 924.19 153.38 925.36 152.75 L 925.36 153.63 Q 924.29 154.18 923.03 154.18 M 923.03 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 154.18 Q 930.62 154.18 929.49 153.86 L 929.49 152.85 Q 930.71 153.41 931.5 153.41 Q 932.1 153.41 932.47 153.1 Q 932.84 152.78 932.84 152.26 Q 932.84 151.84 932.6 151.54 Q 932.35 151.24 931.71 150.88 L 931.21 150.59 Q 930.28 150.06 929.91 149.59 Q 929.53 149.13 929.53 148.51 Q 929.53 147.67 930.13 147.13 Q 930.74 146.59 931.68 146.59 Q 932.51 146.59 933.44 146.87 L 933.44 147.81 Q 932.3 147.36 931.73 147.36 Q 931.2 147.36 930.86 147.64 Q 930.51 147.93 930.51 148.36 Q 930.51 148.72 930.76 149 Q 931.02 149.27 931.69 149.66 L 932.21 149.95 Q 933.15 150.48 933.52 150.96 Q 933.89 151.43 933.89 152.1 Q 933.89 153.04 933.19 153.61 Q 932.5 154.18 931.35 154.18 M 931.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 154.18 Q 939.62 154.18 938.49 153.86 L 938.49 152.85 Q 939.71 153.41 940.5 153.41 Q 941.1 153.41 941.47 153.1 Q 941.84 152.78 941.84 152.26 Q 941.84 151.84 941.6 151.54 Q 941.35 151.24 940.71 150.88 L 940.21 150.59 Q 939.28 150.06 938.91 149.59 Q 938.53 149.13 938.53 148.51 Q 938.53 147.67 939.13 147.13 Q 939.74 146.59 940.68 146.59 Q 941.51 146.59 942.44 146.87 L 942.44 147.81 Q 941.3 147.36 940.73 147.36 Q 940.2 147.36 939.86 147.64 Q 939.51 147.93 939.51 148.36 Q 939.51 148.72 939.76 149 Q 940.02 149.27 940.69 149.66 L 941.21 149.95 Q 942.15 150.48 942.52 150.96 Q 942.89 151.43 942.89 152.1 Q 942.89 153.04 942.19 153.61 Q 941.5 154.18 940.35 154.18 M 940.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 154.18 Q 948.34 154.18 947.43 153.19 Q 946.51 152.2 946.51 150.39 Q 946.51 148.58 947.44 147.59 Q 948.38 146.59 950.08 146.59 Q 951.05 146.59 952.35 146.91 L 952.35 147.87 Q 950.87 147.36 950.06 147.36 Q 948.89 147.36 948.24 148.16 Q 947.6 148.95 947.6 150.4 Q 947.6 151.78 948.29 152.58 Q 948.97 153.38 950.17 153.38 Q 951.19 153.38 952.36 152.75 L 952.36 153.63 Q 951.29 154.18 950.03 154.18 M 950.03 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 151.24 L 958.36 148.12 L 957.13 151.24 M 959.59 151.24 M 960.68 154 L 959.89 152 L 956.83 152 L 956.04 154 L 955.08 154 L 957.95 146.77 L 958.96 146.77 L 961.79 154 M 960.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 153.8 Q 969.05 154.18 968.07 154.18 Q 966.35 154.18 965.43 153.2 Q 964.51 152.22 964.51 150.39 Q 964.51 148.59 965.44 147.59 Q 966.37 146.59 968.06 146.59 Q 969.16 146.59 970.35 146.92 L 970.35 147.87 Q 968.86 147.36 968.06 147.36 Q 966.89 147.36 966.24 148.16 Q 965.6 148.95 965.6 150.4 Q 965.6 151.83 966.29 152.62 Q 966.98 153.41 968.23 153.41 Q 968.75 153.41 969.34 153.23 L 969.34 150.88 L 970.36 150.88 M 970.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 154 L 973.93 146.77 L 974.89 146.77 L 974.89 150.33 L 977.82 146.77 L 978.85 146.77 L 976.02 150.22 L 979.35 154 L 978.05 154 L 974.89 150.34 L 974.89 154 M 973.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 154 L 982.18 146.77 L 983.2 146.77 L 985.44 152.69 L 987.6 146.77 L 988.49 146.77 L 985.87 154 M 984.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 154 L 991.18 146.77 L 992.2 146.77 L 994.44 152.69 L 996.6 146.77 L 997.49 146.77 L 994.87 154 M 993.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 154.18 Q 1002.62 154.18 1001.49 153.86 L 1001.49 152.85 Q 1002.71 153.41 1003.5 153.41 Q 1004.1 153.41 1004.47 153.1 Q 1004.84 152.78 1004.84 152.26 Q 1004.84 151.84 1004.6 151.54 Q 1004.35 151.24 1003.71 150.88 L 1003.21 150.59 Q 1002.28 150.06 1001.91 149.59 Q 1001.53 149.13 1001.53 148.51 Q 1001.53 147.67 1002.13 147.13 Q 1002.74 146.59 1003.68 146.59 Q 1004.51 146.59 1005.44 146.87 L 1005.44 147.81 Q 1004.3 147.36 1003.73 147.36 Q 1003.2 147.36 1002.86 147.64 Q 1002.51 147.93 1002.51 148.36 Q 1002.51 148.72 1002.76 149 Q 1003.02 149.27 1003.69 149.66 L 1004.21 149.95 Q 1005.15 150.48 1005.52 150.96 Q 1005.89 151.43 1005.89 152.1 Q 1005.89 153.04 1005.19 153.61 Q 1004.5 154.18 1003.35 154.18 M 1003.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 153.8 Q 1014.05 154.18 1013.07 154.18 Q 1011.35 154.18 1010.43 153.2 Q 1009.51 152.22 1009.51 150.39 Q 1009.51 148.59 1010.44 147.59 Q 1011.37 146.59 1013.06 146.59 Q 1014.16 146.59 1015.35 146.92 L 1015.35 147.87 Q 1013.86 147.36 1013.06 147.36 Q 1011.89 147.36 1011.24 148.16 Q 1010.6 148.95 1010.6 150.4 Q 1010.6 151.83 1011.29 152.62 Q 1011.98 153.41 1013.23 153.41 Q 1013.75 153.41 1014.34 153.23 L 1014.34 150.88 L 1015.36 150.88 M 1015.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 154.18 Q 1020.62 154.18 1019.49 153.86 L 1019.49 152.85 Q 1020.71 153.41 1021.5 153.41 Q 1022.1 153.41 1022.47 153.1 Q 1022.84 152.78 1022.84 152.26 Q 1022.84 151.84 1022.6 151.54 Q 1022.35 151.24 1021.71 150.88 L 1021.21 150.59 Q 1020.28 150.06 1019.91 149.59 Q 1019.53 149.13 1019.53 148.51 Q 1019.53 147.67 1020.13 147.13 Q 1020.74 146.59 1021.68 146.59 Q 1022.51 146.59 1023.44 146.87 L 1023.44 147.81 Q 1022.3 147.36 1021.73 147.36 Q 1021.2 147.36 1020.86 147.64 Q 1020.51 147.93 1020.51 148.36 Q 1020.51 148.72 1020.76 149 Q 1021.02 149.27 1021.69 149.66 L 1022.21 149.95 Q 1023.15 150.48 1023.52 150.96 Q 1023.89 151.43 1023.89 152.1 Q 1023.89 153.04 1023.19 153.61 Q 1022.5 154.18 1021.35 154.18 M 1021.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.93 154 L 1029.93 146.77 L 1030.95 146.77 L 1030.95 154 M 1029.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 154 L 1036.93 146.77 L 1039.33 146.77 Q 1040.41 146.77 1041.07 147.01 Q 1041.73 147.25 1042.22 147.82 Q 1042.98 148.73 1042.98 150.22 Q 1042.98 152.02 1042.03 153.01 Q 1041.08 154 1039.35 154 M 1036.93 154 M 1037.96 153.23 L 1039.27 153.23 Q 1040.68 153.23 1041.26 152.48 Q 1041.89 151.67 1041.89 150.31 Q 1041.89 149.04 1041.27 148.31 Q 1040.9 147.87 1040.38 147.7 Q 1039.85 147.54 1038.8 147.54 L 1037.96 147.54 M 1037.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 155.45 Q 1049.64 154.89 1048.49 154.13 Q 1048.03 154.18 1047.78 154.18 Q 1046.33 154.18 1045.42 153.13 Q 1044.51 152.07 1044.51 150.39 Q 1044.51 148.66 1045.43 147.63 Q 1046.35 146.59 1047.89 146.59 Q 1049.43 146.59 1050.35 147.63 Q 1051.27 148.66 1051.27 150.4 Q 1051.27 152.89 1049.42 153.85 Q 1050.66 154.4 1052 154.63 M 1051.35 155.45 M 1047.86 153.41 Q 1048.97 153.41 1049.57 152.62 Q 1050.18 151.82 1050.18 150.37 Q 1050.18 148.96 1049.57 148.16 Q 1048.97 147.36 1047.89 147.36 Q 1046.81 147.36 1046.2 148.16 Q 1045.6 148.96 1045.6 150.38 Q 1045.6 151.79 1046.2 152.6 Q 1046.8 153.41 1047.86 153.41 M 1047.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 154.18 Q 1056.62 154.18 1055.49 153.86 L 1055.49 152.85 Q 1056.71 153.41 1057.5 153.41 Q 1058.1 153.41 1058.47 153.1 Q 1058.84 152.78 1058.84 152.26 Q 1058.84 151.84 1058.6 151.54 Q 1058.35 151.24 1057.71 150.88 L 1057.21 150.59 Q 1056.28 150.06 1055.91 149.59 Q 1055.53 149.13 1055.53 148.51 Q 1055.53 147.67 1056.13 147.13 Q 1056.74 146.59 1057.68 146.59 Q 1058.51 146.59 1059.44 146.87 L 1059.44 147.81 Q 1058.3 147.36 1057.73 147.36 Q 1057.2 147.36 1056.86 147.64 Q 1056.51 147.93 1056.51 148.36 Q 1056.51 148.72 1056.76 149 Q 1057.02 149.27 1057.69 149.66 L 1058.21 149.95 Q 1059.15 150.48 1059.52 150.96 Q 1059.89 151.43 1059.89 152.1 Q 1059.89 153.04 1059.19 153.61 Q 1058.5 154.18 1057.35 154.18 M 1057.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 154 L 1063.93 146.77 L 1066.33 146.77 Q 1067.41 146.77 1068.07 147.01 Q 1068.73 147.25 1069.22 147.82 Q 1069.98 148.73 1069.98 150.22 Q 1069.98 152.02 1069.03 153.01 Q 1068.08 154 1066.35 154 M 1063.93 154 M 1064.96 153.23 L 1066.27 153.23 Q 1067.68 153.23 1068.26 152.48 Q 1068.89 151.67 1068.89 150.31 Q 1068.89 149.04 1068.27 148.31 Q 1067.9 147.87 1067.38 147.7 Q 1066.85 147.54 1065.8 147.54 L 1064.96 147.54 M 1064.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 155.45 Q 1076.64 154.89 1075.49 154.13 Q 1075.03 154.18 1074.78 154.18 Q 1073.33 154.18 1072.42 153.13 Q 1071.51 152.07 1071.51 150.39 Q 1071.51 148.66 1072.43 147.63 Q 1073.35 146.59 1074.89 146.59 Q 1076.43 146.59 1077.35 147.63 Q 1078.27 148.66 1078.27 150.4 Q 1078.27 152.89 1076.42 153.85 Q 1077.66 154.4 1079 154.63 M 1078.35 155.45 M 1074.86 153.41 Q 1075.97 153.41 1076.57 152.62 Q 1077.18 151.82 1077.18 150.37 Q 1077.18 148.96 1076.57 148.16 Q 1075.97 147.36 1074.89 147.36 Q 1073.81 147.36 1073.2 148.16 Q 1072.6 148.96 1072.6 150.38 Q 1072.6 151.79 1073.2 152.6 Q 1073.8 153.41 1074.86 153.41 M 1074.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 154.18 Q 1083.62 154.18 1082.49 153.86 L 1082.49 152.85 Q 1083.71 153.41 1084.5 153.41 Q 1085.1 153.41 1085.47 153.1 Q 1085.84 152.78 1085.84 152.26 Q 1085.84 151.84 1085.6 151.54 Q 1085.35 151.24 1084.71 150.88 L 1084.21 150.59 Q 1083.28 150.06 1082.91 149.59 Q 1082.53 149.13 1082.53 148.51 Q 1082.53 147.67 1083.13 147.13 Q 1083.74 146.59 1084.68 146.59 Q 1085.51 146.59 1086.44 146.87 L 1086.44 147.81 Q 1085.3 147.36 1084.73 147.36 Q 1084.2 147.36 1083.86 147.64 Q 1083.51 147.93 1083.51 148.36 Q 1083.51 148.72 1083.76 149 Q 1084.02 149.27 1084.69 149.66 L 1085.21 149.95 Q 1086.15 150.48 1086.52 150.96 Q 1086.89 151.43 1086.89 152.1 Q 1086.89 153.04 1086.19 153.61 Q 1085.5 154.18 1084.35 154.18 M 1084.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 154 L 1091.93 146.77 L 1095.97 146.77 L 1095.97 147.54 L 1092.96 147.54 L 1092.96 149.96 L 1095.49 149.96 L 1095.49 150.72 L 1092.96 150.72 L 1092.96 154 M 1091.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 154 L 1100.93 146.77 L 1101.96 146.77 L 1101.96 153.23 L 1105.21 153.23 L 1105.21 154 M 1100.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 154 L 1108.93 146.77 L 1111.33 146.77 Q 1112.41 146.77 1113.07 147.01 Q 1113.73 147.25 1114.22 147.82 Q 1114.98 148.73 1114.98 150.22 Q 1114.98 152.02 1114.03 153.01 Q 1113.08 154 1111.35 154 M 1108.93 154 M 1109.96 153.23 L 1111.27 153.23 Q 1112.68 153.23 1113.26 152.48 Q 1113.89 151.67 1113.89 150.31 Q 1113.89 149.04 1113.27 148.31 Q 1112.9 147.87 1112.38 147.7 Q 1111.85 147.54 1110.8 147.54 L 1109.96 147.54 M 1109.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 154 L 1117.93 146.77 L 1120.33 146.77 Q 1121.41 146.77 1122.07 147.01 Q 1122.73 147.25 1123.22 147.82 Q 1123.98 148.73 1123.98 150.22 Q 1123.98 152.02 1123.03 153.01 Q 1122.08 154 1120.35 154 M 1117.93 154 M 1118.96 153.23 L 1120.27 153.23 Q 1121.68 153.23 1122.26 152.48 Q 1122.89 151.67 1122.89 150.31 Q 1122.89 149.04 1122.27 148.31 Q 1121.9 147.87 1121.38 147.7 Q 1120.85 147.54 1119.8 147.54 L 1118.96 147.54 M 1118.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1127.93 154 L 1127.93 146.77 L 1131.97 146.77 L 1131.97 147.54 L 1128.96 147.54 L 1128.96 149.86 L 1131.48 149.86 L 1131.48 150.62 L 1128.96 150.62 L 1128.96 153.23 L 1132.18 153.23 L 1132.18 154 M 1127.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 155.45 Q 1139.64 154.89 1138.49 154.13 Q 1138.03 154.18 1137.78 154.18 Q 1136.33 154.18 1135.42 153.13 Q 1134.51 152.07 1134.51 150.39 Q 1134.51 148.66 1135.43 147.63 Q 1136.35 146.59 1137.89 146.59 Q 1139.43 146.59 1140.35 147.63 Q 1141.27 148.66 1141.27 150.4 Q 1141.27 152.89 1139.42 153.85 Q 1140.66 154.4 1142 154.63 M 1141.35 155.45 M 1137.86 153.41 Q 1138.97 153.41 1139.57 152.62 Q 1140.18 151.82 1140.18 150.37 Q 1140.18 148.96 1139.57 148.16 Q 1138.97 147.36 1137.89 147.36 Q 1136.81 147.36 1136.2 148.16 Q 1135.6 148.96 1135.6 150.38 Q 1135.6 151.79 1136.2 152.6 Q 1136.8 153.41 1137.86 153.41 M 1137.86 153.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1143.93 154 L 1143.93 146.77 L 1145.35 146.77 L 1147.36 152.36 L 1149.42 146.77 L 1150.69 146.77 L 1150.69 154 L 1149.73 154 L 1149.73 148.12 L 1147.74 153.52 L 1146.75 153.52 L 1144.81 148.11 L 1144.81 154 M 1143.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1156.35 154.18 Q 1155.62 154.18 1154.49 153.86 L 1154.49 152.85 Q 1155.71 153.41 1156.5 153.41 Q 1157.1 153.41 1157.47 153.1 Q 1157.84 152.78 1157.84 152.26 Q 1157.84 151.84 1157.6 151.54 Q 1157.35 151.24 1156.71 150.88 L 1156.21 150.59 Q 1155.28 150.06 1154.91 149.59 Q 1154.53 149.13 1154.53 148.51 Q 1154.53 147.67 1155.13 147.13 Q 1155.74 146.59 1156.68 146.59 Q 1157.51 146.59 1158.44 146.87 L 1158.44 147.81 Q 1157.3 147.36 1156.73 147.36 Q 1156.2 147.36 1155.86 147.64 Q 1155.51 147.93 1155.51 148.36 Q 1155.51 148.72 1155.76 149 Q 1156.02 149.27 1156.69 149.66 L 1157.21 149.95 Q 1158.15 150.48 1158.52 150.96 Q 1158.89 151.43 1158.89 152.1 Q 1158.89 153.04 1158.19 153.61 Q 1157.5 154.18 1156.35 154.18 M 1156.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1163.93 154 L 1163.93 146.77 L 1167.97 146.77 L 1167.97 147.54 L 1164.96 147.54 L 1164.96 149.86 L 1167.48 149.86 L 1167.48 150.62 L 1164.96 150.62 L 1164.96 153.23 L 1168.18 153.23 L 1168.18 154 M 1163.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 153.8 Q 1176.05 154.18 1175.07 154.18 Q 1173.35 154.18 1172.43 153.2 Q 1171.51 152.22 1171.51 150.39 Q 1171.51 148.59 1172.44 147.59 Q 1173.37 146.59 1175.06 146.59 Q 1176.16 146.59 1177.35 146.92 L 1177.35 147.87 Q 1175.86 147.36 1175.06 147.36 Q 1173.89 147.36 1173.24 148.16 Q 1172.6 148.95 1172.6 150.4 Q 1172.6 151.83 1173.29 152.62 Q 1173.98 153.41 1175.23 153.41 Q 1175.75 153.41 1176.34 153.23 L 1176.34 150.88 L 1177.36 150.88 M 1177.36 153.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1182.5 154 L 1182.5 150.98 L 1180.08 146.77 L 1181.25 146.77 L 1183.13 150.04 L 1185.15 146.77 L 1186.1 146.77 L 1183.52 150.96 L 1183.52 154 M 1182.5 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 154 L 1189.18 146.77 L 1190.2 146.77 L 1192.44 152.69 L 1194.6 146.77 L 1195.49 146.77 L 1192.87 154 M 1191.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 154 L 1199.93 146.77 L 1200.96 146.77 L 1200.96 153.23 L 1204.21 153.23 L 1204.21 154 M 1199.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 154 L 1209.65 147.54 L 1207.09 147.54 L 1207.09 146.77 L 1213.24 146.77 L 1213.24 147.54 L 1210.68 147.54 L 1210.68 154 M 1209.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 154.18 Q 1218.34 154.18 1217.43 153.19 Q 1216.51 152.2 1216.51 150.39 Q 1216.51 148.58 1217.44 147.59 Q 1218.38 146.59 1220.08 146.59 Q 1221.05 146.59 1222.35 146.91 L 1222.35 147.87 Q 1220.87 147.36 1220.06 147.36 Q 1218.89 147.36 1218.24 148.16 Q 1217.6 148.95 1217.6 150.4 Q 1217.6 151.78 1218.29 152.58 Q 1218.97 153.38 1220.17 153.38 Q 1221.19 153.38 1222.36 152.75 L 1222.36 153.63 Q 1221.29 154.18 1220.03 154.18 M 1220.03 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1227.91 154 L 1225.18 146.77 L 1226.2 146.77 L 1228.44 152.69 L 1230.6 146.77 L 1231.49 146.77 L 1228.87 154 M 1227.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 151.24 L 1237.36 148.12 L 1236.13 151.24 M 1238.59 151.24 M 1239.68 154 L 1238.89 152 L 1235.83 152 L 1235.04 154 L 1234.08 154 L 1236.95 146.77 L 1237.96 146.77 L 1240.79 154 M 1239.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 154 L 1245.5 150.98 L 1243.08 146.77 L 1244.25 146.77 L 1246.13 150.04 L 1248.15 146.77 L 1249.1 146.77 L 1246.52 150.96 L 1246.52 154 M 1245.5 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 154 L 1252.93 146.77 L 1254.9 146.77 Q 1256.21 146.77 1256.78 147.22 Q 1257.35 147.66 1257.35 148.67 Q 1257.35 149.82 1256.57 150.47 Q 1255.79 151.13 1254.4 151.13 L 1253.95 151.13 L 1253.95 154 M 1252.93 154 M 1253.95 150.35 L 1254.36 150.35 Q 1255.28 150.35 1255.77 149.93 Q 1256.27 149.51 1256.27 148.75 Q 1256.27 148.1 1255.88 147.82 Q 1255.49 147.54 1254.58 147.54 L 1253.95 147.54 M 1253.95 150.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 154 L 1263.65 147.54 L 1261.09 147.54 L 1261.09 146.77 L 1267.24 146.77 L 1267.24 147.54 L 1264.68 147.54 L 1264.68 154 M 1263.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 154.18 Q 1272.62 154.18 1271.49 153.86 L 1271.49 152.85 Q 1272.71 153.41 1273.5 153.41 Q 1274.1 153.41 1274.47 153.1 Q 1274.84 152.78 1274.84 152.26 Q 1274.84 151.84 1274.6 151.54 Q 1274.35 151.24 1273.71 150.88 L 1273.21 150.59 Q 1272.28 150.06 1271.91 149.59 Q 1271.53 149.13 1271.53 148.51 Q 1271.53 147.67 1272.13 147.13 Q 1272.74 146.59 1273.68 146.59 Q 1274.51 146.59 1275.44 146.87 L 1275.44 147.81 Q 1274.3 147.36 1273.73 147.36 Q 1273.2 147.36 1272.86 147.64 Q 1272.51 147.93 1272.51 148.36 Q 1272.51 148.72 1272.76 149 Q 1273.02 149.27 1273.69 149.66 L 1274.21 149.95 Q 1275.15 150.48 1275.52 150.96 Q 1275.89 151.43 1275.89 152.1 Q 1275.89 153.04 1275.19 153.61 Q 1274.5 154.18 1273.35 154.18 M 1273.35 154.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 154 L 1279.93 146.77 L 1282.33 146.77 Q 1283.41 146.77 1284.07 147.01 Q 1284.73 147.25 1285.22 147.82 Q 1285.98 148.73 1285.98 150.22 Q 1285.98 152.02 1285.03 153.01 Q 1284.08 154 1282.35 154 M 1279.93 154 M 1280.96 153.23 L 1282.27 153.23 Q 1283.68 153.23 1284.26 152.48 Q 1284.89 151.67 1284.89 150.31 Q 1284.89 149.04 1284.27 148.31 Q 1283.9 147.87 1283.38 147.7 Q 1282.85 147.54 1281.8 147.54 L 1280.96 147.54 M 1280.96 153.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 154 L 1288.18 146.77 L 1289.2 146.77 L 1291.44 152.69 L 1293.6 146.77 L 1294.49 146.77 L 1291.87 154 M 1290.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.91 154 L 1297.18 146.77 L 1298.2 146.77 L 1300.44 152.69 L 1302.6 146.77 L 1303.49 146.77 L 1300.87 154 M 1299.91 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 154 L 1308.93 146.77 L 1309.95 146.77 L 1309.95 154 M 1308.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 154 L 1316.93 146.77 L 1320.97 146.77 L 1320.97 147.54 L 1317.96 147.54 L 1317.96 149.86 L 1320.48 149.86 L 1320.48 150.62 L 1317.96 150.62 L 1317.96 153.23 L 1321.18 153.23 L 1321.18 154 M 1316.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 154 L 1326.65 147.54 L 1324.09 147.54 L 1324.09 146.77 L 1330.24 146.77 L 1330.24 147.54 L 1327.68 147.54 L 1327.68 154 M 1326.65 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 154 L 1333.93 146.77 L 1334.96 146.77 L 1334.96 149.82 L 1338.4 149.82 L 1338.4 146.77 L 1339.42 146.77 L 1339.42 154 L 1338.4 154 L 1338.4 150.59 L 1334.96 150.59 L 1334.96 154 M 1333.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 154 L 1342.93 146.77 L 1343.89 146.77 L 1343.89 150.33 L 1346.82 146.77 L 1347.85 146.77 L 1345.02 150.22 L 1348.35 154 L 1347.05 154 L 1343.89 150.34 L 1343.89 154 M 1342.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 154 L 1352.93 146.77 L 1356.97 146.77 L 1356.97 147.54 L 1353.96 147.54 L 1353.96 149.86 L 1356.48 149.86 L 1356.48 150.62 L 1353.96 150.62 L 1353.96 153.23 L 1357.18 153.23 L 1357.18 154 M 1352.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 154 L 1361.93 146.77 L 1365.97 146.77 L 1365.97 147.54 L 1362.96 147.54 L 1362.96 149.86 L 1365.48 149.86 L 1365.48 150.62 L 1362.96 150.62 L 1362.96 153.23 L 1366.18 153.23 L 1366.18 154 M 1361.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1373.59 151.24 L 1372.36 148.12 L 1371.13 151.24 M 1373.59 151.24 M 1374.68 154 L 1373.89 152 L 1370.83 152 L 1370.04 154 L 1369.08 154 L 1371.95 146.77 L 1372.96 146.77 L 1375.79 154 M 1374.68 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1380.93 154 L 1380.93 146.77 L 1381.95 146.77 L 1381.95 154 M 1380.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1386.93 154 L 1386.93 146.77 L 1388.35 146.77 L 1390.36 152.36 L 1392.42 146.77 L 1393.69 146.77 L 1393.69 154 L 1392.73 154 L 1392.73 148.12 L 1390.74 153.52 L 1389.75 153.52 L 1387.81 148.11 L 1387.81 154 M 1386.93 154"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1396.72 151.47 L 1396.72 150.75 L 1401.06 150.75 L 1401.06 151.47 M 1396.72 151.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 151.47 L 1405.72 150.75 L 1410.06 150.75 L 1410.06 151.47 M 1405.72 151.47"/></g><rect x="0" y="156" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="156" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="156" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="156" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="156" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="594" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="156" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="156" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="156" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="156" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="156" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="156" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="801" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="156" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="156" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="156" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="156" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="156" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="156" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="156" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="156" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="156" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="156" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="156" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="156" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="156" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="156" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="156" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="156" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="156" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 167 L 0.93 159.77 L 2.35 159.77 L 4.36 165.36 L 6.42 159.77 L 7.69 159.77 L 7.69 167 L 6.73 167 L 6.73 161.12 L 4.74 166.52 L 3.75 166.52 L 1.81 161.11 L 1.81 167 M 0.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 164.24 L 13.36 161.12 L 12.13 164.24 M 14.59 164.24 M 15.68 167 L 14.89 165 L 11.83 165 L 11.04 167 L 10.08 167 L 12.95 159.77 L 13.96 159.77 L 16.79 167 M 15.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 22.35 167.18 Q 21.62 167.18 20.49 166.86 L 20.49 165.85 Q 21.71 166.41 22.5 166.41 Q 23.1 166.41 23.47 166.1 Q 23.84 165.78 23.84 165.26 Q 23.84 164.84 23.6 164.54 Q 23.35 164.24 22.71 163.88 L 22.21 163.59 Q 21.28 163.06 20.91 162.59 Q 20.53 162.13 20.53 161.51 Q 20.53 160.67 21.13 160.13 Q 21.74 159.59 22.68 159.59 Q 23.51 159.59 24.44 159.87 L 24.44 160.81 Q 23.3 160.36 22.73 160.36 Q 22.2 160.36 21.86 160.64 Q 21.51 160.93 21.51 161.36 Q 21.51 161.72 21.76 162 Q 22.02 162.27 22.69 162.66 L 23.21 162.95 Q 24.15 163.48 24.52 163.96 Q 24.89 164.43 24.89 165.1 Q 24.89 166.04 24.19 166.61 Q 23.5 167.18 22.35 167.18 M 22.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 167 L 30.65 160.54 L 28.09 160.54 L 28.09 159.77 L 34.24 159.77 L 34.24 160.54 L 31.68 160.54 L 31.68 167 M 30.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 164.47 L 37.72 163.75 L 42.06 163.75 L 42.06 164.47 M 37.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 164.47 L 46.72 163.75 L 51.06 163.75 L 51.06 164.47 M 46.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 164.47 L 55.72 163.75 L 60.06 163.75 L 60.06 164.47 M 55.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 164.47 L 64.72 163.75 L 69.06 163.75 L 69.06 164.47 M 64.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 77.59 164.24 L 76.36 161.12 L 75.13 164.24 M 77.59 164.24 M 78.68 167 L 77.89 165 L 74.83 165 L 74.04 167 L 73.08 167 L 75.95 159.77 L 76.96 159.77 L 79.79 167 M 78.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 83.93 167 L 83.93 159.77 L 84.96 159.77 L 84.96 166.23 L 88.21 166.23 L 88.21 167 M 83.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 94.35 167.18 Q 93.62 167.18 92.49 166.86 L 92.49 165.85 Q 93.71 166.41 94.5 166.41 Q 95.1 166.41 95.47 166.1 Q 95.84 165.78 95.84 165.26 Q 95.84 164.84 95.6 164.54 Q 95.35 164.24 94.71 163.88 L 94.21 163.59 Q 93.28 163.06 92.91 162.59 Q 92.53 162.13 92.53 161.51 Q 92.53 160.67 93.13 160.13 Q 93.74 159.59 94.68 159.59 Q 95.51 159.59 96.44 159.87 L 96.44 160.81 Q 95.3 160.36 94.73 160.36 Q 94.2 160.36 93.86 160.64 Q 93.51 160.93 93.51 161.36 Q 93.51 161.72 93.76 162 Q 94.02 162.27 94.69 162.66 L 95.21 162.95 Q 96.15 163.48 96.52 163.96 Q 96.89 164.43 96.89 165.1 Q 96.89 166.04 96.19 166.61 Q 95.5 167.18 94.35 167.18 M 94.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 103.35 167.18 Q 102.62 167.18 101.49 166.86 L 101.49 165.85 Q 102.71 166.41 103.5 166.41 Q 104.1 166.41 104.47 166.1 Q 104.84 165.78 104.84 165.26 Q 104.84 164.84 104.6 164.54 Q 104.35 164.24 103.71 163.88 L 103.21 163.59 Q 102.28 163.06 101.91 162.59 Q 101.53 162.13 101.53 161.51 Q 101.53 160.67 102.13 160.13 Q 102.74 159.59 103.68 159.59 Q 104.51 159.59 105.44 159.87 L 105.44 160.81 Q 104.3 160.36 103.73 160.36 Q 103.2 160.36 102.86 160.64 Q 102.51 160.93 102.51 161.36 Q 102.51 161.72 102.76 162 Q 103.02 162.27 103.69 162.66 L 104.21 162.95 Q 105.15 163.48 105.52 163.96 Q 105.89 164.43 105.89 165.1 Q 105.89 166.04 105.19 166.61 Q 104.5 167.18 103.35 167.18 M 103.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 113.59 164.24 L 112.36 161.12 L 111.13 164.24 M 113.59 164.24 M 114.68 167 L 113.89 165 L 110.83 165 L 110.04 167 L 109.08 167 L 111.95 159.77 L 112.96 159.77 L 115.79 167 M 114.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 120.93 167 L 120.93 159.77 L 121.95 159.77 L 121.95 167 M 120.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 129.91 167 L 127.18 159.77 L 128.2 159.77 L 130.44 165.69 L 132.6 159.77 L 133.49 159.77 L 130.87 167 M 129.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 167.18 Q 138.62 167.18 137.49 166.86 L 137.49 165.85 Q 138.71 166.41 139.5 166.41 Q 140.1 166.41 140.47 166.1 Q 140.84 165.78 140.84 165.26 Q 140.84 164.84 140.6 164.54 Q 140.35 164.24 139.71 163.88 L 139.21 163.59 Q 138.28 163.06 137.91 162.59 Q 137.53 162.13 137.53 161.51 Q 137.53 160.67 138.13 160.13 Q 138.74 159.59 139.68 159.59 Q 140.51 159.59 141.44 159.87 L 141.44 160.81 Q 140.3 160.36 139.73 160.36 Q 139.2 160.36 138.86 160.64 Q 138.51 160.93 138.51 161.36 Q 138.51 161.72 138.76 162 Q 139.02 162.27 139.69 162.66 L 140.21 162.95 Q 141.15 163.48 141.52 163.96 Q 141.89 164.43 141.89 165.1 Q 141.89 166.04 141.19 166.61 Q 140.5 167.18 139.35 167.18 M 139.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 147.65 167 L 147.65 160.54 L 145.09 160.54 L 145.09 159.77 L 151.24 159.77 L 151.24 160.54 L 148.68 160.54 L 148.68 167 M 147.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 167.18 Q 156.62 167.18 155.49 166.86 L 155.49 165.85 Q 156.71 166.41 157.5 166.41 Q 158.1 166.41 158.47 166.1 Q 158.84 165.78 158.84 165.26 Q 158.84 164.84 158.6 164.54 Q 158.35 164.24 157.71 163.88 L 157.21 163.59 Q 156.28 163.06 155.91 162.59 Q 155.53 162.13 155.53 161.51 Q 155.53 160.67 156.13 160.13 Q 156.74 159.59 157.68 159.59 Q 158.51 159.59 159.44 159.87 L 159.44 160.81 Q 158.3 160.36 157.73 160.36 Q 157.2 160.36 156.86 160.64 Q 156.51 160.93 156.51 161.36 Q 156.51 161.72 156.76 162 Q 157.02 162.27 157.69 162.66 L 158.21 162.95 Q 159.15 163.48 159.52 163.96 Q 159.89 164.43 159.89 165.1 Q 159.89 166.04 159.19 166.61 Q 158.5 167.18 157.35 167.18 M 157.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 164.93 167 L 164.93 159.77 L 168.97 159.77 L 168.97 160.54 L 165.96 160.54 L 165.96 162.96 L 168.49 162.96 L 168.49 163.72 L 165.96 163.72 L 165.96 167 M 164.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 167 L 173.93 159.77 L 174.96 159.77 L 174.96 166.23 L 178.21 166.23 L 178.21 167 M 173.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 167 L 181.93 159.77 L 184.12 159.77 Q 185.16 159.77 185.71 160.23 Q 186.27 160.69 186.27 161.57 Q 186.27 163.01 184.81 163.62 L 187.22 167 L 185.96 167 L 183.91 163.94 L 182.95 163.94 L 182.95 167 M 181.93 167 M 182.95 163.18 L 183.28 163.18 Q 185.21 163.18 185.21 161.66 Q 185.21 160.54 183.59 160.54 L 182.95 160.54 M 182.95 163.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.93 167 L 190.93 159.77 L 193.12 159.77 Q 194.16 159.77 194.71 160.23 Q 195.27 160.69 195.27 161.57 Q 195.27 163.01 193.81 163.62 L 196.22 167 L 194.96 167 L 192.91 163.94 L 191.95 163.94 L 191.95 167 M 190.93 167 M 191.95 163.18 L 192.28 163.18 Q 194.21 163.18 194.21 161.66 Q 194.21 160.54 192.59 160.54 L 191.95 160.54 M 191.95 163.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 205.35 168.45 Q 203.64 167.89 202.49 167.13 Q 202.03 167.18 201.78 167.18 Q 200.33 167.18 199.42 166.13 Q 198.51 165.07 198.51 163.39 Q 198.51 161.66 199.43 160.63 Q 200.35 159.59 201.89 159.59 Q 203.43 159.59 204.35 160.63 Q 205.27 161.66 205.27 163.4 Q 205.27 165.89 203.42 166.85 Q 204.66 167.4 206 167.63 M 205.35 168.45 M 201.86 166.41 Q 202.97 166.41 203.57 165.62 Q 204.18 164.82 204.18 163.37 Q 204.18 161.96 203.57 161.16 Q 202.97 160.36 201.89 160.36 Q 200.81 160.36 200.2 161.16 Q 199.6 161.96 199.6 163.38 Q 199.6 164.79 200.2 165.6 Q 200.8 166.41 201.86 166.41 M 201.86 166.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 214.35 168.45 Q 212.64 167.89 211.49 167.13 Q 211.03 167.18 210.78 167.18 Q 209.33 167.18 208.42 166.13 Q 207.51 165.07 207.51 163.39 Q 207.51 161.66 208.43 160.63 Q 209.35 159.59 210.89 159.59 Q 212.43 159.59 213.35 160.63 Q 214.27 161.66 214.27 163.4 Q 214.27 165.89 212.42 166.85 Q 213.66 167.4 215 167.63 M 214.35 168.45 M 210.86 166.41 Q 211.97 166.41 212.57 165.62 Q 213.18 164.82 213.18 163.37 Q 213.18 161.96 212.57 161.16 Q 211.97 160.36 210.89 160.36 Q 209.81 160.36 209.2 161.16 Q 208.6 161.96 208.6 163.38 Q 208.6 164.79 209.2 165.6 Q 209.8 166.41 210.86 166.41 M 210.86 166.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 219.65 167 L 219.65 160.54 L 217.09 160.54 L 217.09 159.77 L 223.24 159.77 L 223.24 160.54 L 220.68 160.54 L 220.68 167 M 219.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 167 L 226.93 159.77 L 228.9 159.77 Q 230.21 159.77 230.78 160.22 Q 231.35 160.66 231.35 161.67 Q 231.35 162.82 230.57 163.47 Q 229.79 164.13 228.4 164.13 L 227.95 164.13 L 227.95 167 M 226.93 167 M 227.95 163.35 L 228.36 163.35 Q 229.28 163.35 229.77 162.93 Q 230.27 162.51 230.27 161.75 Q 230.27 161.1 229.88 160.82 Q 229.49 160.54 228.58 160.54 L 227.95 160.54 M 227.95 163.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.93 167 L 237.93 159.77 L 238.95 159.77 L 238.95 167 M 237.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 247.35 167.18 Q 246.62 167.18 245.49 166.86 L 245.49 165.85 Q 246.71 166.41 247.5 166.41 Q 248.1 166.41 248.47 166.1 Q 248.84 165.78 248.84 165.26 Q 248.84 164.84 248.6 164.54 Q 248.35 164.24 247.71 163.88 L 247.21 163.59 Q 246.28 163.06 245.91 162.59 Q 245.53 162.13 245.53 161.51 Q 245.53 160.67 246.13 160.13 Q 246.74 159.59 247.68 159.59 Q 248.51 159.59 249.44 159.87 L 249.44 160.81 Q 248.3 160.36 247.73 160.36 Q 247.2 160.36 246.86 160.64 Q 246.51 160.93 246.51 161.36 Q 246.51 161.72 246.76 162 Q 247.02 162.27 247.69 162.66 L 248.21 162.95 Q 249.15 163.48 249.52 163.96 Q 249.89 164.43 249.89 165.1 Q 249.89 166.04 249.19 166.61 Q 248.5 167.18 247.35 167.18 M 247.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 254.93 167 L 254.93 159.77 L 255.96 159.77 L 255.96 166.23 L 259.21 166.23 L 259.21 167 M 254.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.93 167 L 262.93 159.77 L 265.12 159.77 Q 266.16 159.77 266.71 160.23 Q 267.27 160.69 267.27 161.57 Q 267.27 163.01 265.81 163.62 L 268.22 167 L 266.96 167 L 264.91 163.94 L 263.95 163.94 L 263.95 167 M 262.93 167 M 263.95 163.18 L 264.28 163.18 Q 266.21 163.18 266.21 161.66 Q 266.21 160.54 264.59 160.54 L 263.95 160.54 M 263.95 163.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 274.35 167.18 Q 273.62 167.18 272.49 166.86 L 272.49 165.85 Q 273.71 166.41 274.5 166.41 Q 275.1 166.41 275.47 166.1 Q 275.84 165.78 275.84 165.26 Q 275.84 164.84 275.6 164.54 Q 275.35 164.24 274.71 163.88 L 274.21 163.59 Q 273.28 163.06 272.91 162.59 Q 272.53 162.13 272.53 161.51 Q 272.53 160.67 273.13 160.13 Q 273.74 159.59 274.68 159.59 Q 275.51 159.59 276.44 159.87 L 276.44 160.81 Q 275.3 160.36 274.73 160.36 Q 274.2 160.36 273.86 160.64 Q 273.51 160.93 273.51 161.36 Q 273.51 161.72 273.76 162 Q 274.02 162.27 274.69 162.66 L 275.21 162.95 Q 276.15 163.48 276.52 163.96 Q 276.89 164.43 276.89 165.1 Q 276.89 166.04 276.19 166.61 Q 275.5 167.18 274.35 167.18 M 274.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 281.93 167 L 281.93 159.77 L 282.96 159.77 L 282.96 166.23 L 286.21 166.23 L 286.21 167 M 281.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.93 167 L 289.93 159.77 L 291.9 159.77 Q 293.21 159.77 293.78 160.22 Q 294.35 160.66 294.35 161.67 Q 294.35 162.82 293.57 163.47 Q 292.79 164.13 291.4 164.13 L 290.95 164.13 L 290.95 167 M 289.93 167 M 290.95 163.35 L 291.36 163.35 Q 292.28 163.35 292.77 162.93 Q 293.27 162.51 293.27 161.75 Q 293.27 161.1 292.88 160.82 Q 292.49 160.54 291.58 160.54 L 290.95 160.54 M 290.95 163.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 299.93 167 L 299.93 159.77 L 303.97 159.77 L 303.97 160.54 L 300.96 160.54 L 300.96 162.96 L 303.49 162.96 L 303.49 163.72 L 300.96 163.72 L 300.96 167 M 299.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 311.59 164.24 L 310.36 161.12 L 309.13 164.24 M 311.59 164.24 M 312.68 167 L 311.89 165 L 308.83 165 L 308.04 167 L 307.08 167 L 309.95 159.77 L 310.96 159.77 L 313.79 167 M 312.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 316.93 167 L 316.93 159.77 L 317.94 159.77 L 321.58 165.35 L 321.58 159.77 L 322.46 159.77 L 322.46 167 L 321.45 167 L 317.81 161.42 L 317.81 167 M 316.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 327.65 167 L 327.65 160.54 L 325.09 160.54 L 325.09 159.77 L 331.24 159.77 L 331.24 160.54 L 328.68 160.54 L 328.68 167 M 327.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 340.35 168.45 Q 338.64 167.89 337.49 167.13 Q 337.03 167.18 336.78 167.18 Q 335.33 167.18 334.42 166.13 Q 333.51 165.07 333.51 163.39 Q 333.51 161.66 334.43 160.63 Q 335.35 159.59 336.89 159.59 Q 338.43 159.59 339.35 160.63 Q 340.27 161.66 340.27 163.4 Q 340.27 165.89 338.42 166.85 Q 339.66 167.4 341 167.63 M 340.35 168.45 M 336.86 166.41 Q 337.97 166.41 338.57 165.62 Q 339.18 164.82 339.18 163.37 Q 339.18 161.96 338.57 161.16 Q 337.97 160.36 336.89 160.36 Q 335.81 160.36 335.2 161.16 Q 334.6 161.96 334.6 163.38 Q 334.6 164.79 335.2 165.6 Q 335.8 166.41 336.86 166.41 M 336.86 166.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 164.47 L 343.72 163.75 L 348.06 163.75 L 348.06 164.47 M 343.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 164.47 L 352.72 163.75 L 357.06 163.75 L 357.06 164.47 M 352.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 364.35 167.18 Q 363.62 167.18 362.49 166.86 L 362.49 165.85 Q 363.71 166.41 364.5 166.41 Q 365.1 166.41 365.47 166.1 Q 365.84 165.78 365.84 165.26 Q 365.84 164.84 365.6 164.54 Q 365.35 164.24 364.71 163.88 L 364.21 163.59 Q 363.28 163.06 362.91 162.59 Q 362.53 162.13 362.53 161.51 Q 362.53 160.67 363.13 160.13 Q 363.74 159.59 364.68 159.59 Q 365.51 159.59 366.44 159.87 L 366.44 160.81 Q 365.3 160.36 364.73 160.36 Q 364.2 160.36 363.86 160.64 Q 363.51 160.93 363.51 161.36 Q 363.51 161.72 363.76 162 Q 364.02 162.27 364.69 162.66 L 365.21 162.95 Q 366.15 163.48 366.52 163.96 Q 366.89 164.43 366.89 165.1 Q 366.89 166.04 366.19 166.61 Q 365.5 167.18 364.35 167.18 M 364.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 371.93 167 L 371.93 159.77 L 372.96 159.77 L 372.96 166.23 L 376.21 166.23 L 376.21 167 M 371.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 380.93 167 L 380.93 159.77 L 384.97 159.77 L 384.97 160.54 L 381.96 160.54 L 381.96 162.96 L 384.49 162.96 L 384.49 163.72 L 381.96 163.72 L 381.96 167 M 380.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 166.8 Q 393.05 167.18 392.07 167.18 Q 390.35 167.18 389.43 166.2 Q 388.51 165.22 388.51 163.39 Q 388.51 161.59 389.44 160.59 Q 390.37 159.59 392.06 159.59 Q 393.16 159.59 394.35 159.92 L 394.35 160.87 Q 392.86 160.36 392.06 160.36 Q 390.89 160.36 390.24 161.16 Q 389.6 161.95 389.6 163.4 Q 389.6 164.83 390.29 165.62 Q 390.98 166.41 392.23 166.41 Q 392.75 166.41 393.34 166.23 L 393.34 163.88 L 394.36 163.88 M 394.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 398.93 167 L 398.93 159.77 L 399.96 159.77 L 399.96 166.23 L 403.21 166.23 L 403.21 167 M 398.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 406.93 167 L 406.93 159.77 L 407.89 159.77 L 407.89 163.33 L 410.82 159.77 L 411.85 159.77 L 409.02 163.22 L 412.35 167 L 411.05 167 L 407.89 163.34 L 407.89 167 M 406.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 418.35 167.18 Q 417.62 167.18 416.49 166.86 L 416.49 165.85 Q 417.71 166.41 418.5 166.41 Q 419.1 166.41 419.47 166.1 Q 419.84 165.78 419.84 165.26 Q 419.84 164.84 419.6 164.54 Q 419.35 164.24 418.71 163.88 L 418.21 163.59 Q 417.28 163.06 416.91 162.59 Q 416.53 162.13 416.53 161.51 Q 416.53 160.67 417.13 160.13 Q 417.74 159.59 418.68 159.59 Q 419.51 159.59 420.44 159.87 L 420.44 160.81 Q 419.3 160.36 418.73 160.36 Q 418.2 160.36 417.86 160.64 Q 417.51 160.93 417.51 161.36 Q 417.51 161.72 417.76 162 Q 418.02 162.27 418.69 162.66 L 419.21 162.95 Q 420.15 163.48 420.52 163.96 Q 420.89 164.43 420.89 165.1 Q 420.89 166.04 420.19 166.61 Q 419.5 167.18 418.35 167.18 M 418.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 164.47 L 424.72 163.75 L 429.06 163.75 L 429.06 164.47 M 424.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 436.35 167.18 Q 435.62 167.18 434.49 166.86 L 434.49 165.85 Q 435.71 166.41 436.5 166.41 Q 437.1 166.41 437.47 166.1 Q 437.84 165.78 437.84 165.26 Q 437.84 164.84 437.6 164.54 Q 437.35 164.24 436.71 163.88 L 436.21 163.59 Q 435.28 163.06 434.91 162.59 Q 434.53 162.13 434.53 161.51 Q 434.53 160.67 435.13 160.13 Q 435.74 159.59 436.68 159.59 Q 437.51 159.59 438.44 159.87 L 438.44 160.81 Q 437.3 160.36 436.73 160.36 Q 436.2 160.36 435.86 160.64 Q 435.51 160.93 435.51 161.36 Q 435.51 161.72 435.76 162 Q 436.02 162.27 436.69 162.66 L 437.21 162.95 Q 438.15 163.48 438.52 163.96 Q 438.89 164.43 438.89 165.1 Q 438.89 166.04 438.19 166.61 Q 437.5 167.18 436.35 167.18 M 436.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 444.65 167 L 444.65 160.54 L 442.09 160.54 L 442.09 159.77 L 448.24 159.77 L 448.24 160.54 L 445.68 160.54 L 445.68 167 M 444.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 455.59 164.24 L 454.36 161.12 L 453.13 164.24 M 455.59 164.24 M 456.68 167 L 455.89 165 L 452.83 165 L 452.04 167 L 451.08 167 L 453.95 159.77 L 454.96 159.77 L 457.79 167 M 456.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 167 L 460.93 159.77 L 463.12 159.77 Q 464.16 159.77 464.71 160.23 Q 465.27 160.69 465.27 161.57 Q 465.27 163.01 463.81 163.62 L 466.22 167 L 464.96 167 L 462.91 163.94 L 461.95 163.94 L 461.95 167 M 460.93 167 M 461.95 163.18 L 462.28 163.18 Q 464.21 163.18 464.21 161.66 Q 464.21 160.54 462.59 160.54 L 461.95 160.54 M 461.95 163.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 475.36 166.8 Q 474.05 167.18 473.07 167.18 Q 471.35 167.18 470.43 166.2 Q 469.51 165.22 469.51 163.39 Q 469.51 161.59 470.44 160.59 Q 471.37 159.59 473.06 159.59 Q 474.16 159.59 475.35 159.92 L 475.35 160.87 Q 473.86 160.36 473.06 160.36 Q 471.89 160.36 471.24 161.16 Q 470.6 161.95 470.6 163.4 Q 470.6 164.83 471.29 165.62 Q 471.98 166.41 473.23 166.41 Q 473.75 166.41 474.34 166.23 L 474.34 163.88 L 475.36 163.88 M 475.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.36 166.8 Q 483.05 167.18 482.07 167.18 Q 480.35 167.18 479.43 166.2 Q 478.51 165.22 478.51 163.39 Q 478.51 161.59 479.44 160.59 Q 480.37 159.59 482.06 159.59 Q 483.16 159.59 484.35 159.92 L 484.35 160.87 Q 482.86 160.36 482.06 160.36 Q 480.89 160.36 480.24 161.16 Q 479.6 161.95 479.6 163.4 Q 479.6 164.83 480.29 165.62 Q 480.98 166.41 482.23 166.41 Q 482.75 166.41 483.34 166.23 L 483.34 163.88 L 484.36 163.88 M 484.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 167 L 487.93 159.77 L 490.12 159.77 Q 491.16 159.77 491.71 160.23 Q 492.27 160.69 492.27 161.57 Q 492.27 163.01 490.81 163.62 L 493.22 167 L 491.96 167 L 489.91 163.94 L 488.95 163.94 L 488.95 167 M 487.93 167 M 488.95 163.18 L 489.28 163.18 Q 491.21 163.18 491.21 161.66 Q 491.21 160.54 489.59 160.54 L 488.95 160.54 M 488.95 163.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 498.91 167 L 496.18 159.77 L 497.2 159.77 L 499.44 165.69 L 501.6 159.77 L 502.49 159.77 L 499.87 167 M 498.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 507.65 167 L 507.65 160.54 L 505.09 160.54 L 505.09 159.77 L 511.24 159.77 L 511.24 160.54 L 508.68 160.54 L 508.68 167 M 507.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 164.24 L 517.36 161.12 L 516.13 164.24 M 518.59 164.24 M 519.68 167 L 518.89 165 L 515.83 165 L 515.04 167 L 514.08 167 L 516.95 159.77 L 517.96 159.77 L 520.79 167 M 519.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 522.93 167 L 522.93 159.77 L 524.35 159.77 L 526.36 165.36 L 528.42 159.77 L 529.69 159.77 L 529.69 167 L 528.73 167 L 528.73 161.12 L 526.74 166.52 L 525.75 166.52 L 523.81 161.11 L 523.81 167 M 522.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 164.24 L 535.36 161.12 L 534.13 164.24 M 536.59 164.24 M 537.68 167 L 536.89 165 L 533.83 165 L 533.04 167 L 532.08 167 L 534.95 159.77 L 535.96 159.77 L 538.79 167 M 537.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 167 L 543.65 160.54 L 541.09 160.54 L 541.09 159.77 L 547.24 159.77 L 547.24 160.54 L 544.68 160.54 L 544.68 167 M 543.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 167 L 552.5 163.98 L 550.08 159.77 L 551.25 159.77 L 553.13 163.04 L 555.15 159.77 L 556.1 159.77 L 553.52 163.96 L 553.52 167 M 552.5 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 167 L 559.93 159.77 L 560.89 159.77 L 560.89 163.33 L 563.82 159.77 L 564.85 159.77 L 562.02 163.22 L 565.35 167 L 564.05 167 L 560.89 163.34 L 560.89 167 M 559.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 167 L 568.18 159.77 L 569.2 159.77 L 571.44 165.69 L 573.6 159.77 L 574.49 159.77 L 571.87 167 M 570.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 167 L 577.93 159.77 L 578.89 159.77 L 578.89 163.33 L 581.82 159.77 L 582.85 159.77 L 580.02 163.22 L 583.35 167 L 582.05 167 L 578.89 163.34 L 578.89 167 M 577.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 167 L 587.93 159.77 L 591.97 159.77 L 591.97 160.54 L 588.96 160.54 L 588.96 162.96 L 591.49 162.96 L 591.49 163.72 L 588.96 163.72 L 588.96 167 M 587.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 167 L 597.93 159.77 L 598.95 159.77 L 598.95 167 M 597.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 167 L 606.65 160.54 L 604.09 160.54 L 604.09 159.77 L 610.24 159.77 L 610.24 160.54 L 607.68 160.54 L 607.68 167 M 606.65 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 167 L 613.93 159.77 L 615.9 159.77 Q 617.21 159.77 617.78 160.22 Q 618.35 160.66 618.35 161.67 Q 618.35 162.82 617.57 163.47 Q 616.79 164.13 615.4 164.13 L 614.95 164.13 L 614.95 167 M 613.93 167 M 614.95 163.35 L 615.36 163.35 Q 616.28 163.35 616.77 162.93 Q 617.27 162.51 617.27 161.75 Q 617.27 161.1 616.88 160.82 Q 616.49 160.54 615.58 160.54 L 614.95 160.54 M 614.95 163.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 167 L 623.93 159.77 L 627.97 159.77 L 627.97 160.54 L 624.96 160.54 L 624.96 162.86 L 627.48 162.86 L 627.48 163.62 L 624.96 163.62 L 624.96 166.23 L 628.18 166.23 L 628.18 167 M 623.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 166.8 Q 636.05 167.18 635.07 167.18 Q 633.35 167.18 632.43 166.2 Q 631.51 165.22 631.51 163.39 Q 631.51 161.59 632.44 160.59 Q 633.37 159.59 635.06 159.59 Q 636.16 159.59 637.35 159.92 L 637.35 160.87 Q 635.86 160.36 635.06 160.36 Q 633.89 160.36 633.24 161.16 Q 632.6 161.95 632.6 163.4 Q 632.6 164.83 633.29 165.62 Q 633.98 166.41 635.23 166.41 Q 635.75 166.41 636.34 166.23 L 636.34 163.88 L 637.36 163.88 M 637.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 167 L 641.93 159.77 L 645.97 159.77 L 645.97 160.54 L 642.96 160.54 L 642.96 162.86 L 645.48 162.86 L 645.48 163.62 L 642.96 163.62 L 642.96 166.23 L 646.18 166.23 L 646.18 167 M 641.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 655.35 168.45 Q 653.64 167.89 652.49 167.13 Q 652.03 167.18 651.78 167.18 Q 650.33 167.18 649.42 166.13 Q 648.51 165.07 648.51 163.39 Q 648.51 161.66 649.43 160.63 Q 650.35 159.59 651.89 159.59 Q 653.43 159.59 654.35 160.63 Q 655.27 161.66 655.27 163.4 Q 655.27 165.89 653.42 166.85 Q 654.66 167.4 656 167.63 M 655.35 168.45 M 651.86 166.41 Q 652.97 166.41 653.57 165.62 Q 654.18 164.82 654.18 163.37 Q 654.18 161.96 653.57 161.16 Q 652.97 160.36 651.89 160.36 Q 650.81 160.36 650.2 161.16 Q 649.6 161.96 649.6 163.38 Q 649.6 164.79 650.2 165.6 Q 650.8 166.41 651.86 166.41 M 651.86 166.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 167 L 659.93 159.77 L 663.97 159.77 L 663.97 160.54 L 660.96 160.54 L 660.96 162.86 L 663.48 162.86 L 663.48 163.62 L 660.96 163.62 L 660.96 166.23 L 664.18 166.23 L 664.18 167 M 659.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 669.91 167 L 667.18 159.77 L 668.2 159.77 L 670.44 165.69 L 672.6 159.77 L 673.49 159.77 L 670.87 167 M 669.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 677.93 167 L 677.93 159.77 L 681.97 159.77 L 681.97 160.54 L 678.96 160.54 L 678.96 162.86 L 681.48 162.86 L 681.48 163.62 L 678.96 163.62 L 678.96 166.23 L 682.18 166.23 L 682.18 167 M 677.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 689.03 167.18 Q 687.34 167.18 686.43 166.19 Q 685.51 165.2 685.51 163.39 Q 685.51 161.58 686.44 160.59 Q 687.38 159.59 689.08 159.59 Q 690.05 159.59 691.35 159.91 L 691.35 160.87 Q 689.87 160.36 689.06 160.36 Q 687.89 160.36 687.24 161.16 Q 686.6 161.95 686.6 163.4 Q 686.6 164.78 687.29 165.58 Q 687.97 166.38 689.17 166.38 Q 690.19 166.38 691.36 165.75 L 691.36 166.63 Q 690.29 167.18 689.03 167.18 M 689.03 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 695.93 167 L 695.93 159.77 L 699.97 159.77 L 699.97 160.54 L 696.96 160.54 L 696.96 162.86 L 699.48 162.86 L 699.48 163.62 L 696.96 163.62 L 696.96 166.23 L 700.18 166.23 L 700.18 167 M 695.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 704.93 167 L 704.93 159.77 L 708.97 159.77 L 708.97 160.54 L 705.96 160.54 L 705.96 162.86 L 708.48 162.86 L 708.48 163.62 L 705.96 163.62 L 705.96 166.23 L 709.18 166.23 L 709.18 167 M 704.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 167 L 712.93 159.77 L 715.33 159.77 Q 716.41 159.77 717.07 160.01 Q 717.73 160.25 718.22 160.82 Q 718.98 161.73 718.98 163.22 Q 718.98 165.02 718.03 166.01 Q 717.08 167 715.35 167 M 712.93 167 M 713.96 166.23 L 715.27 166.23 Q 716.68 166.23 717.26 165.48 Q 717.89 164.67 717.89 163.31 Q 717.89 162.04 717.27 161.31 Q 716.9 160.87 716.38 160.7 Q 715.85 160.54 714.8 160.54 L 713.96 160.54 M 713.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 167 L 721.18 159.77 L 722.2 159.77 L 724.44 165.69 L 726.6 159.77 L 727.49 159.77 L 724.87 167 M 723.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 167 L 732.5 163.98 L 730.08 159.77 L 731.25 159.77 L 733.13 163.04 L 735.15 159.77 L 736.1 159.77 L 733.52 163.96 L 733.52 167 M 732.5 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.91 167 L 739.18 159.77 L 740.2 159.77 L 742.44 165.69 L 744.6 159.77 L 745.49 159.77 L 742.87 167 M 741.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 167 L 749.93 159.77 L 750.96 159.77 L 750.96 166.23 L 754.21 166.23 L 754.21 167 M 749.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 167 L 757.93 159.77 L 760.33 159.77 Q 761.41 159.77 762.07 160.01 Q 762.73 160.25 763.22 160.82 Q 763.98 161.73 763.98 163.22 Q 763.98 165.02 763.03 166.01 Q 762.08 167 760.35 167 M 757.93 167 M 758.96 166.23 L 760.27 166.23 Q 761.68 166.23 762.26 165.48 Q 762.89 164.67 762.89 163.31 Q 762.89 162.04 762.27 161.31 Q 761.9 160.87 761.38 160.7 Q 760.85 160.54 759.8 160.54 L 758.96 160.54 M 758.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 770.59 164.24 L 769.36 161.12 L 768.13 164.24 M 770.59 164.24 M 771.68 167 L 770.89 165 L 767.83 165 L 767.04 167 L 766.08 167 L 768.95 159.77 L 769.96 159.77 L 772.79 167 M 771.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 164.24 L 778.36 161.12 L 777.13 164.24 M 779.59 164.24 M 780.68 167 L 779.89 165 L 776.83 165 L 776.04 167 L 775.08 167 L 777.95 159.77 L 778.96 159.77 L 781.79 167 M 780.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 167 L 785.93 159.77 L 789.97 159.77 L 789.97 160.54 L 786.96 160.54 L 786.96 162.86 L 789.48 162.86 L 789.48 163.62 L 786.96 163.62 L 786.96 166.23 L 790.18 166.23 L 790.18 167 M 785.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 167 L 794.93 159.77 L 798.97 159.77 L 798.97 160.54 L 795.96 160.54 L 795.96 162.86 L 798.48 162.86 L 798.48 163.62 L 795.96 163.62 L 795.96 166.23 L 799.18 166.23 L 799.18 167 M 794.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 806.59 164.24 L 805.36 161.12 L 804.13 164.24 M 806.59 164.24 M 807.68 167 L 806.89 165 L 803.83 165 L 803.04 167 L 802.08 167 L 804.95 159.77 L 805.96 159.77 L 808.79 167 M 807.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 166.8 Q 816.05 167.18 815.07 167.18 Q 813.35 167.18 812.43 166.2 Q 811.51 165.22 811.51 163.39 Q 811.51 161.59 812.44 160.59 Q 813.37 159.59 815.06 159.59 Q 816.16 159.59 817.35 159.92 L 817.35 160.87 Q 815.86 160.36 815.06 160.36 Q 813.89 160.36 813.24 161.16 Q 812.6 161.95 812.6 163.4 Q 812.6 164.83 813.29 165.62 Q 813.98 166.41 815.23 166.41 Q 815.75 166.41 816.34 166.23 L 816.34 163.88 L 817.36 163.88 M 817.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 821.93 167 L 821.93 159.77 L 822.96 159.77 L 822.96 166.23 L 826.21 166.23 L 826.21 167 M 821.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 167 L 829.93 159.77 L 832.33 159.77 Q 833.41 159.77 834.07 160.01 Q 834.73 160.25 835.22 160.82 Q 835.98 161.73 835.98 163.22 Q 835.98 165.02 835.03 166.01 Q 834.08 167 832.35 167 M 829.93 167 M 830.96 166.23 L 832.27 166.23 Q 833.68 166.23 834.26 165.48 Q 834.89 164.67 834.89 163.31 Q 834.89 162.04 834.27 161.31 Q 833.9 160.87 833.38 160.7 Q 832.85 160.54 831.8 160.54 L 830.96 160.54 M 830.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 167 L 839.93 159.77 L 840.96 159.77 L 840.96 166.23 L 844.21 166.23 L 844.21 167 M 839.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 167 L 847.93 159.77 L 849.9 159.77 Q 851.21 159.77 851.78 160.22 Q 852.35 160.66 852.35 161.67 Q 852.35 162.82 851.57 163.47 Q 850.79 164.13 849.4 164.13 L 848.95 164.13 L 848.95 167 M 847.93 167 M 848.95 163.35 L 849.36 163.35 Q 850.28 163.35 850.77 162.93 Q 851.27 162.51 851.27 161.75 Q 851.27 161.1 850.88 160.82 Q 850.49 160.54 849.58 160.54 L 848.95 160.54 M 848.95 163.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 167 L 858.5 163.98 L 856.08 159.77 L 857.25 159.77 L 859.13 163.04 L 861.15 159.77 L 862.1 159.77 L 859.52 163.96 L 859.52 167 M 858.5 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 167.18 Q 867.62 167.18 866.49 166.86 L 866.49 165.85 Q 867.71 166.41 868.5 166.41 Q 869.1 166.41 869.47 166.1 Q 869.84 165.78 869.84 165.26 Q 869.84 164.84 869.6 164.54 Q 869.35 164.24 868.71 163.88 L 868.21 163.59 Q 867.28 163.06 866.91 162.59 Q 866.53 162.13 866.53 161.51 Q 866.53 160.67 867.13 160.13 Q 867.74 159.59 868.68 159.59 Q 869.51 159.59 870.44 159.87 L 870.44 160.81 Q 869.3 160.36 868.73 160.36 Q 868.2 160.36 867.86 160.64 Q 867.51 160.93 867.51 161.36 Q 867.51 161.72 867.76 162 Q 868.02 162.27 868.69 162.66 L 869.21 162.95 Q 870.15 163.48 870.52 163.96 Q 870.89 164.43 870.89 165.1 Q 870.89 166.04 870.19 166.61 Q 869.5 167.18 868.35 167.18 M 868.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 167.18 Q 876.34 167.18 875.43 166.19 Q 874.51 165.2 874.51 163.39 Q 874.51 161.58 875.44 160.59 Q 876.38 159.59 878.08 159.59 Q 879.05 159.59 880.35 159.91 L 880.35 160.87 Q 878.87 160.36 878.06 160.36 Q 876.89 160.36 876.24 161.16 Q 875.6 161.95 875.6 163.4 Q 875.6 164.78 876.29 165.58 Q 876.97 166.38 878.17 166.38 Q 879.19 166.38 880.36 165.75 L 880.36 166.63 Q 879.29 167.18 878.03 167.18 M 878.03 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 167 L 883.93 159.77 L 886.12 159.77 Q 887.16 159.77 887.71 160.23 Q 888.27 160.69 888.27 161.57 Q 888.27 163.01 886.81 163.62 L 889.22 167 L 887.96 167 L 885.91 163.94 L 884.95 163.94 L 884.95 167 M 883.93 167 M 884.95 163.18 L 885.28 163.18 Q 887.21 163.18 887.21 161.66 Q 887.21 160.54 885.59 160.54 L 884.95 160.54 M 884.95 163.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 164.24 L 895.36 161.12 L 894.13 164.24 M 896.59 164.24 M 897.68 167 L 896.89 165 L 893.83 165 L 893.04 167 L 892.08 167 L 894.95 159.77 L 895.96 159.77 L 898.79 167 M 897.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 166.8 Q 906.05 167.18 905.07 167.18 Q 903.35 167.18 902.43 166.2 Q 901.51 165.22 901.51 163.39 Q 901.51 161.59 902.44 160.59 Q 903.37 159.59 905.06 159.59 Q 906.16 159.59 907.35 159.92 L 907.35 160.87 Q 905.86 160.36 905.06 160.36 Q 903.89 160.36 903.24 161.16 Q 902.6 161.95 902.6 163.4 Q 902.6 164.83 903.29 165.62 Q 903.98 166.41 905.23 166.41 Q 905.75 166.41 906.34 166.23 L 906.34 163.88 L 907.36 163.88 M 907.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 167.18 Q 912.62 167.18 911.49 166.86 L 911.49 165.85 Q 912.71 166.41 913.5 166.41 Q 914.1 166.41 914.47 166.1 Q 914.84 165.78 914.84 165.26 Q 914.84 164.84 914.6 164.54 Q 914.35 164.24 913.71 163.88 L 913.21 163.59 Q 912.28 163.06 911.91 162.59 Q 911.53 162.13 911.53 161.51 Q 911.53 160.67 912.13 160.13 Q 912.74 159.59 913.68 159.59 Q 914.51 159.59 915.44 159.87 L 915.44 160.81 Q 914.3 160.36 913.73 160.36 Q 913.2 160.36 912.86 160.64 Q 912.51 160.93 912.51 161.36 Q 912.51 161.72 912.76 162 Q 913.02 162.27 913.69 162.66 L 914.21 162.95 Q 915.15 163.48 915.52 163.96 Q 915.89 164.43 915.89 165.1 Q 915.89 166.04 915.19 166.61 Q 914.5 167.18 913.35 167.18 M 913.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 167.18 Q 921.34 167.18 920.43 166.19 Q 919.51 165.2 919.51 163.39 Q 919.51 161.58 920.44 160.59 Q 921.38 159.59 923.08 159.59 Q 924.05 159.59 925.35 159.91 L 925.35 160.87 Q 923.87 160.36 923.06 160.36 Q 921.89 160.36 921.24 161.16 Q 920.6 161.95 920.6 163.4 Q 920.6 164.78 921.29 165.58 Q 921.97 166.38 923.17 166.38 Q 924.19 166.38 925.36 165.75 L 925.36 166.63 Q 924.29 167.18 923.03 167.18 M 923.03 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 167.18 Q 930.62 167.18 929.49 166.86 L 929.49 165.85 Q 930.71 166.41 931.5 166.41 Q 932.1 166.41 932.47 166.1 Q 932.84 165.78 932.84 165.26 Q 932.84 164.84 932.6 164.54 Q 932.35 164.24 931.71 163.88 L 931.21 163.59 Q 930.28 163.06 929.91 162.59 Q 929.53 162.13 929.53 161.51 Q 929.53 160.67 930.13 160.13 Q 930.74 159.59 931.68 159.59 Q 932.51 159.59 933.44 159.87 L 933.44 160.81 Q 932.3 160.36 931.73 160.36 Q 931.2 160.36 930.86 160.64 Q 930.51 160.93 930.51 161.36 Q 930.51 161.72 930.76 162 Q 931.02 162.27 931.69 162.66 L 932.21 162.95 Q 933.15 163.48 933.52 163.96 Q 933.89 164.43 933.89 165.1 Q 933.89 166.04 933.19 166.61 Q 932.5 167.18 931.35 167.18 M 931.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 167.18 Q 939.62 167.18 938.49 166.86 L 938.49 165.85 Q 939.71 166.41 940.5 166.41 Q 941.1 166.41 941.47 166.1 Q 941.84 165.78 941.84 165.26 Q 941.84 164.84 941.6 164.54 Q 941.35 164.24 940.71 163.88 L 940.21 163.59 Q 939.28 163.06 938.91 162.59 Q 938.53 162.13 938.53 161.51 Q 938.53 160.67 939.13 160.13 Q 939.74 159.59 940.68 159.59 Q 941.51 159.59 942.44 159.87 L 942.44 160.81 Q 941.3 160.36 940.73 160.36 Q 940.2 160.36 939.86 160.64 Q 939.51 160.93 939.51 161.36 Q 939.51 161.72 939.76 162 Q 940.02 162.27 940.69 162.66 L 941.21 162.95 Q 942.15 163.48 942.52 163.96 Q 942.89 164.43 942.89 165.1 Q 942.89 166.04 942.19 166.61 Q 941.5 167.18 940.35 167.18 M 940.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 167.18 Q 948.34 167.18 947.43 166.19 Q 946.51 165.2 946.51 163.39 Q 946.51 161.58 947.44 160.59 Q 948.38 159.59 950.08 159.59 Q 951.05 159.59 952.35 159.91 L 952.35 160.87 Q 950.87 160.36 950.06 160.36 Q 948.89 160.36 948.24 161.16 Q 947.6 161.95 947.6 163.4 Q 947.6 164.78 948.29 165.58 Q 948.97 166.38 950.17 166.38 Q 951.19 166.38 952.36 165.75 L 952.36 166.63 Q 951.29 167.18 950.03 167.18 M 950.03 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 164.24 L 958.36 161.12 L 957.13 164.24 M 959.59 164.24 M 960.68 167 L 959.89 165 L 956.83 165 L 956.04 167 L 955.08 167 L 957.95 159.77 L 958.96 159.77 L 961.79 167 M 960.68 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 166.8 Q 969.05 167.18 968.07 167.18 Q 966.35 167.18 965.43 166.2 Q 964.51 165.22 964.51 163.39 Q 964.51 161.59 965.44 160.59 Q 966.37 159.59 968.06 159.59 Q 969.16 159.59 970.35 159.92 L 970.35 160.87 Q 968.86 160.36 968.06 160.36 Q 966.89 160.36 966.24 161.16 Q 965.6 161.95 965.6 163.4 Q 965.6 164.83 966.29 165.62 Q 966.98 166.41 968.23 166.41 Q 968.75 166.41 969.34 166.23 L 969.34 163.88 L 970.36 163.88 M 970.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 167 L 973.93 159.77 L 974.89 159.77 L 974.89 163.33 L 977.82 159.77 L 978.85 159.77 L 976.02 163.22 L 979.35 167 L 978.05 167 L 974.89 163.34 L 974.89 167 M 973.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 167 L 982.18 159.77 L 983.2 159.77 L 985.44 165.69 L 987.6 159.77 L 988.49 159.77 L 985.87 167 M 984.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 167 L 991.18 159.77 L 992.2 159.77 L 994.44 165.69 L 996.6 159.77 L 997.49 159.77 L 994.87 167 M 993.91 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 167.18 Q 1002.62 167.18 1001.49 166.86 L 1001.49 165.85 Q 1002.71 166.41 1003.5 166.41 Q 1004.1 166.41 1004.47 166.1 Q 1004.84 165.78 1004.84 165.26 Q 1004.84 164.84 1004.6 164.54 Q 1004.35 164.24 1003.71 163.88 L 1003.21 163.59 Q 1002.28 163.06 1001.91 162.59 Q 1001.53 162.13 1001.53 161.51 Q 1001.53 160.67 1002.13 160.13 Q 1002.74 159.59 1003.68 159.59 Q 1004.51 159.59 1005.44 159.87 L 1005.44 160.81 Q 1004.3 160.36 1003.73 160.36 Q 1003.2 160.36 1002.86 160.64 Q 1002.51 160.93 1002.51 161.36 Q 1002.51 161.72 1002.76 162 Q 1003.02 162.27 1003.69 162.66 L 1004.21 162.95 Q 1005.15 163.48 1005.52 163.96 Q 1005.89 164.43 1005.89 165.1 Q 1005.89 166.04 1005.19 166.61 Q 1004.5 167.18 1003.35 167.18 M 1003.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 166.8 Q 1014.05 167.18 1013.07 167.18 Q 1011.35 167.18 1010.43 166.2 Q 1009.51 165.22 1009.51 163.39 Q 1009.51 161.59 1010.44 160.59 Q 1011.37 159.59 1013.06 159.59 Q 1014.16 159.59 1015.35 159.92 L 1015.35 160.87 Q 1013.86 160.36 1013.06 160.36 Q 1011.89 160.36 1011.24 161.16 Q 1010.6 161.95 1010.6 163.4 Q 1010.6 164.83 1011.29 165.62 Q 1011.98 166.41 1013.23 166.41 Q 1013.75 166.41 1014.34 166.23 L 1014.34 163.88 L 1015.36 163.88 M 1015.36 166.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 167.18 Q 1020.62 167.18 1019.49 166.86 L 1019.49 165.85 Q 1020.71 166.41 1021.5 166.41 Q 1022.1 166.41 1022.47 166.1 Q 1022.84 165.78 1022.84 165.26 Q 1022.84 164.84 1022.6 164.54 Q 1022.35 164.24 1021.71 163.88 L 1021.21 163.59 Q 1020.28 163.06 1019.91 162.59 Q 1019.53 162.13 1019.53 161.51 Q 1019.53 160.67 1020.13 160.13 Q 1020.74 159.59 1021.68 159.59 Q 1022.51 159.59 1023.44 159.87 L 1023.44 160.81 Q 1022.3 160.36 1021.73 160.36 Q 1021.2 160.36 1020.86 160.64 Q 1020.51 160.93 1020.51 161.36 Q 1020.51 161.72 1020.76 162 Q 1021.02 162.27 1021.69 162.66 L 1022.21 162.95 Q 1023.15 163.48 1023.52 163.96 Q 1023.89 164.43 1023.89 165.1 Q 1023.89 166.04 1023.19 166.61 Q 1022.5 167.18 1021.35 167.18 M 1021.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.93 167 L 1029.93 159.77 L 1030.95 159.77 L 1030.95 167 M 1029.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 167 L 1036.93 159.77 L 1039.33 159.77 Q 1040.41 159.77 1041.07 160.01 Q 1041.73 160.25 1042.22 160.82 Q 1042.98 161.73 1042.98 163.22 Q 1042.98 165.02 1042.03 166.01 Q 1041.08 167 1039.35 167 M 1036.93 167 M 1037.96 166.23 L 1039.27 166.23 Q 1040.68 166.23 1041.26 165.48 Q 1041.89 164.67 1041.89 163.31 Q 1041.89 162.04 1041.27 161.31 Q 1040.9 160.87 1040.38 160.7 Q 1039.85 160.54 1038.8 160.54 L 1037.96 160.54 M 1037.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 168.45 Q 1049.64 167.89 1048.49 167.13 Q 1048.03 167.18 1047.78 167.18 Q 1046.33 167.18 1045.42 166.13 Q 1044.51 165.07 1044.51 163.39 Q 1044.51 161.66 1045.43 160.63 Q 1046.35 159.59 1047.89 159.59 Q 1049.43 159.59 1050.35 160.63 Q 1051.27 161.66 1051.27 163.4 Q 1051.27 165.89 1049.42 166.85 Q 1050.66 167.4 1052 167.63 M 1051.35 168.45 M 1047.86 166.41 Q 1048.97 166.41 1049.57 165.62 Q 1050.18 164.82 1050.18 163.37 Q 1050.18 161.96 1049.57 161.16 Q 1048.97 160.36 1047.89 160.36 Q 1046.81 160.36 1046.2 161.16 Q 1045.6 161.96 1045.6 163.38 Q 1045.6 164.79 1046.2 165.6 Q 1046.8 166.41 1047.86 166.41 M 1047.86 166.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 167.18 Q 1056.62 167.18 1055.49 166.86 L 1055.49 165.85 Q 1056.71 166.41 1057.5 166.41 Q 1058.1 166.41 1058.47 166.1 Q 1058.84 165.78 1058.84 165.26 Q 1058.84 164.84 1058.6 164.54 Q 1058.35 164.24 1057.71 163.88 L 1057.21 163.59 Q 1056.28 163.06 1055.91 162.59 Q 1055.53 162.13 1055.53 161.51 Q 1055.53 160.67 1056.13 160.13 Q 1056.74 159.59 1057.68 159.59 Q 1058.51 159.59 1059.44 159.87 L 1059.44 160.81 Q 1058.3 160.36 1057.73 160.36 Q 1057.2 160.36 1056.86 160.64 Q 1056.51 160.93 1056.51 161.36 Q 1056.51 161.72 1056.76 162 Q 1057.02 162.27 1057.69 162.66 L 1058.21 162.95 Q 1059.15 163.48 1059.52 163.96 Q 1059.89 164.43 1059.89 165.1 Q 1059.89 166.04 1059.19 166.61 Q 1058.5 167.18 1057.35 167.18 M 1057.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 167 L 1063.93 159.77 L 1066.33 159.77 Q 1067.41 159.77 1068.07 160.01 Q 1068.73 160.25 1069.22 160.82 Q 1069.98 161.73 1069.98 163.22 Q 1069.98 165.02 1069.03 166.01 Q 1068.08 167 1066.35 167 M 1063.93 167 M 1064.96 166.23 L 1066.27 166.23 Q 1067.68 166.23 1068.26 165.48 Q 1068.89 164.67 1068.89 163.31 Q 1068.89 162.04 1068.27 161.31 Q 1067.9 160.87 1067.38 160.7 Q 1066.85 160.54 1065.8 160.54 L 1064.96 160.54 M 1064.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 168.45 Q 1076.64 167.89 1075.49 167.13 Q 1075.03 167.18 1074.78 167.18 Q 1073.33 167.18 1072.42 166.13 Q 1071.51 165.07 1071.51 163.39 Q 1071.51 161.66 1072.43 160.63 Q 1073.35 159.59 1074.89 159.59 Q 1076.43 159.59 1077.35 160.63 Q 1078.27 161.66 1078.27 163.4 Q 1078.27 165.89 1076.42 166.85 Q 1077.66 167.4 1079 167.63 M 1078.35 168.45 M 1074.86 166.41 Q 1075.97 166.41 1076.57 165.62 Q 1077.18 164.82 1077.18 163.37 Q 1077.18 161.96 1076.57 161.16 Q 1075.97 160.36 1074.89 160.36 Q 1073.81 160.36 1073.2 161.16 Q 1072.6 161.96 1072.6 163.38 Q 1072.6 164.79 1073.2 165.6 Q 1073.8 166.41 1074.86 166.41 M 1074.86 166.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 167.18 Q 1083.62 167.18 1082.49 166.86 L 1082.49 165.85 Q 1083.71 166.41 1084.5 166.41 Q 1085.1 166.41 1085.47 166.1 Q 1085.84 165.78 1085.84 165.26 Q 1085.84 164.84 1085.6 164.54 Q 1085.35 164.24 1084.71 163.88 L 1084.21 163.59 Q 1083.28 163.06 1082.91 162.59 Q 1082.53 162.13 1082.53 161.51 Q 1082.53 160.67 1083.13 160.13 Q 1083.74 159.59 1084.68 159.59 Q 1085.51 159.59 1086.44 159.87 L 1086.44 160.81 Q 1085.3 160.36 1084.73 160.36 Q 1084.2 160.36 1083.86 160.64 Q 1083.51 160.93 1083.51 161.36 Q 1083.51 161.72 1083.76 162 Q 1084.02 162.27 1084.69 162.66 L 1085.21 162.95 Q 1086.15 163.48 1086.52 163.96 Q 1086.89 164.43 1086.89 165.1 Q 1086.89 166.04 1086.19 166.61 Q 1085.5 167.18 1084.35 167.18 M 1084.35 167.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 167 L 1091.93 159.77 L 1095.97 159.77 L 1095.97 160.54 L 1092.96 160.54 L 1092.96 162.96 L 1095.49 162.96 L 1095.49 163.72 L 1092.96 163.72 L 1092.96 167 M 1091.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 167 L 1100.93 159.77 L 1101.96 159.77 L 1101.96 166.23 L 1105.21 166.23 L 1105.21 167 M 1100.93 167"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 167 L 1108.93 159.77 L 1111.33 159.77 Q 1112.41 159.77 1113.07 160.01 Q 1113.73 160.25 1114.22 160.82 Q 1114.98 161.73 1114.98 163.22 Q 1114.98 165.02 1114.03 166.01 Q 1113.08 167 1111.35 167 M 1108.93 167 M 1109.96 166.23 L 1111.27 166.23 Q 1112.68 166.23 1113.26 165.48 Q 1113.89 164.67 1113.89 163.31 Q 1113.89 162.04 1113.27 161.31 Q 1112.9 160.87 1112.38 160.7 Q 1111.85 160.54 1110.8 160.54 L 1109.96 160.54 M 1109.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 167 L 1117.93 159.77 L 1120.33 159.77 Q 1121.41 159.77 1122.07 160.01 Q 1122.73 160.25 1123.22 160.82 Q 1123.98 161.73 1123.98 163.22 Q 1123.98 165.02 1123.03 166.01 Q 1122.08 167 1120.35 167 M 1117.93 167 M 1118.96 166.23 L 1120.27 166.23 Q 1121.68 166.23 1122.26 165.48 Q 1122.89 164.67 1122.89 163.31 Q 1122.89 162.04 1122.27 161.31 Q 1121.9 160.87 1121.38 160.7 Q 1120.85 160.54 1119.8 160.54 L 1118.96 160.54 M 1118.96 166.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.72 164.47 L 1126.72 163.75 L 1131.06 163.75 L 1131.06 164.47 M 1126.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1135.72 164.47 L 1135.72 163.75 L 1140.06 163.75 L 1140.06 164.47 M 1135.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1144.72 164.47 L 1144.72 163.75 L 1149.06 163.75 L 1149.06 164.47 M 1144.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1153.72 164.47 L 1153.72 163.75 L 1158.06 163.75 L 1158.06 164.47 M 1153.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1162.72 164.47 L 1162.72 163.75 L 1167.06 163.75 L 1167.06 164.47 M 1162.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1171.72 164.47 L 1171.72 163.75 L 1176.06 163.75 L 1176.06 164.47 M 1171.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.72 164.47 L 1180.72 163.75 L 1185.06 163.75 L 1185.06 164.47 M 1180.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1189.72 164.47 L 1189.72 163.75 L 1194.06 163.75 L 1194.06 164.47 M 1189.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1198.72 164.47 L 1198.72 163.75 L 1203.06 163.75 L 1203.06 164.47 M 1198.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1207.72 164.47 L 1207.72 163.75 L 1212.06 163.75 L 1212.06 164.47 M 1207.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1216.72 164.47 L 1216.72 163.75 L 1221.06 163.75 L 1221.06 164.47 M 1216.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1225.72 164.47 L 1225.72 163.75 L 1230.06 163.75 L 1230.06 164.47 M 1225.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1234.72 164.47 L 1234.72 163.75 L 1239.06 163.75 L 1239.06 164.47 M 1234.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1243.72 164.47 L 1243.72 163.75 L 1248.06 163.75 L 1248.06 164.47 M 1243.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.72 164.47 L 1252.72 163.75 L 1257.06 163.75 L 1257.06 164.47 M 1252.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1261.72 164.47 L 1261.72 163.75 L 1266.06 163.75 L 1266.06 164.47 M 1261.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1270.72 164.47 L 1270.72 163.75 L 1275.06 163.75 L 1275.06 164.47 M 1270.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.72 164.47 L 1279.72 163.75 L 1284.06 163.75 L 1284.06 164.47 M 1279.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1288.72 164.47 L 1288.72 163.75 L 1293.06 163.75 L 1293.06 164.47 M 1288.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1297.72 164.47 L 1297.72 163.75 L 1302.06 163.75 L 1302.06 164.47 M 1297.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1306.72 164.47 L 1306.72 163.75 L 1311.06 163.75 L 1311.06 164.47 M 1306.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1315.72 164.47 L 1315.72 163.75 L 1320.06 163.75 L 1320.06 164.47 M 1315.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1324.72 164.47 L 1324.72 163.75 L 1329.06 163.75 L 1329.06 164.47 M 1324.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.72 164.47 L 1333.72 163.75 L 1338.06 163.75 L 1338.06 164.47 M 1333.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.72 164.47 L 1342.72 163.75 L 1347.06 163.75 L 1347.06 164.47 M 1342.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1351.72 164.47 L 1351.72 163.75 L 1356.06 163.75 L 1356.06 164.47 M 1351.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1360.72 164.47 L 1360.72 163.75 L 1365.06 163.75 L 1365.06 164.47 M 1360.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1369.72 164.47 L 1369.72 163.75 L 1374.06 163.75 L 1374.06 164.47 M 1369.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1378.72 164.47 L 1378.72 163.75 L 1383.06 163.75 L 1383.06 164.47 M 1378.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1387.72 164.47 L 1387.72 163.75 L 1392.06 163.75 L 1392.06 164.47 M 1387.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1396.72 164.47 L 1396.72 163.75 L 1401.06 163.75 L 1401.06 164.47 M 1396.72 164.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 164.47 L 1405.72 163.75 L 1410.06 163.75 L 1410.06 164.47 M 1405.72 164.47"/></g><rect x="0" y="169" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="169" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="169" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="169" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="169" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="169" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="169" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="169" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="169" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="169" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="169" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="169" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="169" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="169" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="169" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="169" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="169" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="169" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="169" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="169" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="169" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="169" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="169" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="169" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="169" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 180 L 0.93 172.77 L 2.35 172.77 L 4.36 178.36 L 6.42 172.77 L 7.69 172.77 L 7.69 180 L 6.73 180 L 6.73 174.12 L 4.74 179.52 L 3.75 179.52 L 1.81 174.11 L 1.81 180 M 0.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 177.24 L 13.36 174.12 L 12.13 177.24 M 14.59 177.24 M 15.68 180 L 14.89 178 L 11.83 178 L 11.04 180 L 10.08 180 L 12.95 172.77 L 13.96 172.77 L 16.79 180 M 15.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 21.65 180 L 21.65 173.54 L 19.09 173.54 L 19.09 172.77 L 25.24 172.77 L 25.24 173.54 L 22.68 173.54 L 22.68 180 M 21.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.91 180 L 28.18 172.77 L 29.2 172.77 L 31.44 178.69 L 33.6 172.77 L 34.49 172.77 L 31.87 180 M 30.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 38.93 180 L 38.93 172.77 L 39.96 172.77 L 39.96 179.23 L 43.21 179.23 L 43.21 180 M 38.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 52.36 179.8 Q 51.05 180.18 50.07 180.18 Q 48.35 180.18 47.43 179.2 Q 46.51 178.22 46.51 176.39 Q 46.51 174.59 47.44 173.59 Q 48.37 172.59 50.06 172.59 Q 51.16 172.59 52.35 172.92 L 52.35 173.87 Q 50.86 173.36 50.06 173.36 Q 48.89 173.36 48.24 174.16 Q 47.6 174.95 47.6 176.4 Q 47.6 177.83 48.29 178.62 Q 48.98 179.41 50.23 179.41 Q 50.75 179.41 51.34 179.23 L 51.34 176.88 L 52.36 176.88 M 52.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 58.35 180.18 Q 57.62 180.18 56.49 179.86 L 56.49 178.85 Q 57.71 179.41 58.5 179.41 Q 59.1 179.41 59.47 179.1 Q 59.84 178.78 59.84 178.26 Q 59.84 177.84 59.6 177.54 Q 59.35 177.24 58.71 176.88 L 58.21 176.59 Q 57.28 176.06 56.91 175.59 Q 56.53 175.13 56.53 174.51 Q 56.53 173.67 57.13 173.13 Q 57.74 172.59 58.68 172.59 Q 59.51 172.59 60.44 172.87 L 60.44 173.81 Q 59.3 173.36 58.73 173.36 Q 58.2 173.36 57.86 173.64 Q 57.51 173.93 57.51 174.36 Q 57.51 174.72 57.76 175 Q 58.02 175.27 58.69 175.66 L 59.21 175.95 Q 60.15 176.48 60.52 176.96 Q 60.89 177.43 60.89 178.1 Q 60.89 179.04 60.19 179.61 Q 59.5 180.18 58.35 180.18 M 58.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.93 180 L 64.93 172.77 L 66.9 172.77 Q 68.21 172.77 68.78 173.22 Q 69.35 173.66 69.35 174.67 Q 69.35 175.82 68.57 176.47 Q 67.79 177.13 66.4 177.13 L 65.95 177.13 L 65.95 180 M 64.93 180 M 65.95 176.35 L 66.36 176.35 Q 67.28 176.35 67.77 175.93 Q 68.27 175.51 68.27 174.75 Q 68.27 174.1 67.88 173.82 Q 67.49 173.54 66.58 173.54 L 65.95 173.54 M 65.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 73.93 180 L 73.93 172.77 L 76.12 172.77 Q 77.16 172.77 77.71 173.23 Q 78.27 173.69 78.27 174.57 Q 78.27 176.01 76.81 176.62 L 79.22 180 L 77.96 180 L 75.91 176.94 L 74.95 176.94 L 74.95 180 M 73.93 180 M 74.95 176.18 L 75.28 176.18 Q 77.21 176.18 77.21 174.66 Q 77.21 173.54 75.59 173.54 L 74.95 173.54 M 74.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 86.59 177.24 L 85.36 174.12 L 84.13 177.24 M 86.59 177.24 M 87.68 180 L 86.89 178 L 83.83 178 L 83.04 180 L 82.08 180 L 84.95 172.77 L 85.96 172.77 L 88.79 180 M 87.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 91.93 180 L 91.93 172.77 L 93.9 172.77 Q 95.21 172.77 95.78 173.22 Q 96.35 173.66 96.35 174.67 Q 96.35 175.82 95.57 176.47 Q 94.79 177.13 93.4 177.13 L 92.95 177.13 L 92.95 180 M 91.93 180 M 92.95 176.35 L 93.36 176.35 Q 94.28 176.35 94.77 175.93 Q 95.27 175.51 95.27 174.75 Q 95.27 174.1 94.88 173.82 Q 94.49 173.54 93.58 173.54 L 92.95 173.54 M 92.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 104.59 177.24 L 103.36 174.12 L 102.13 177.24 M 104.59 177.24 M 105.68 180 L 104.89 178 L 101.83 178 L 101.04 180 L 100.08 180 L 102.95 172.77 L 103.96 172.77 L 106.79 180 M 105.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 110.93 180 L 110.93 172.77 L 114.97 172.77 L 114.97 173.54 L 111.96 173.54 L 111.96 175.96 L 114.49 175.96 L 114.49 176.72 L 111.96 176.72 L 111.96 180 M 110.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 119.93 180 L 119.93 172.77 L 123.97 172.77 L 123.97 173.54 L 120.96 173.54 L 120.96 175.96 L 123.49 175.96 L 123.49 176.72 L 120.96 176.72 L 120.96 180 M 119.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 128.93 180 L 128.93 172.77 L 132.97 172.77 L 132.97 173.54 L 129.96 173.54 L 129.96 175.96 L 132.49 175.96 L 132.49 176.72 L 129.96 176.72 L 129.96 180 M 128.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 180.18 Q 138.62 180.18 137.49 179.86 L 137.49 178.85 Q 138.71 179.41 139.5 179.41 Q 140.1 179.41 140.47 179.1 Q 140.84 178.78 140.84 178.26 Q 140.84 177.84 140.6 177.54 Q 140.35 177.24 139.71 176.88 L 139.21 176.59 Q 138.28 176.06 137.91 175.59 Q 137.53 175.13 137.53 174.51 Q 137.53 173.67 138.13 173.13 Q 138.74 172.59 139.68 172.59 Q 140.51 172.59 141.44 172.87 L 141.44 173.81 Q 140.3 173.36 139.73 173.36 Q 139.2 173.36 138.86 173.64 Q 138.51 173.93 138.51 174.36 Q 138.51 174.72 138.76 175 Q 139.02 175.27 139.69 175.66 L 140.21 175.95 Q 141.15 176.48 141.52 176.96 Q 141.89 177.43 141.89 178.1 Q 141.89 179.04 141.19 179.61 Q 140.5 180.18 139.35 180.18 M 139.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 148.35 180.18 Q 147.62 180.18 146.49 179.86 L 146.49 178.85 Q 147.71 179.41 148.5 179.41 Q 149.1 179.41 149.47 179.1 Q 149.84 178.78 149.84 178.26 Q 149.84 177.84 149.6 177.54 Q 149.35 177.24 148.71 176.88 L 148.21 176.59 Q 147.28 176.06 146.91 175.59 Q 146.53 175.13 146.53 174.51 Q 146.53 173.67 147.13 173.13 Q 147.74 172.59 148.68 172.59 Q 149.51 172.59 150.44 172.87 L 150.44 173.81 Q 149.3 173.36 148.73 173.36 Q 148.2 173.36 147.86 173.64 Q 147.51 173.93 147.51 174.36 Q 147.51 174.72 147.76 175 Q 148.02 175.27 148.69 175.66 L 149.21 175.95 Q 150.15 176.48 150.52 176.96 Q 150.89 177.43 150.89 178.1 Q 150.89 179.04 150.19 179.61 Q 149.5 180.18 148.35 180.18 M 148.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 180.18 Q 156.62 180.18 155.49 179.86 L 155.49 178.85 Q 156.71 179.41 157.5 179.41 Q 158.1 179.41 158.47 179.1 Q 158.84 178.78 158.84 178.26 Q 158.84 177.84 158.6 177.54 Q 158.35 177.24 157.71 176.88 L 157.21 176.59 Q 156.28 176.06 155.91 175.59 Q 155.53 175.13 155.53 174.51 Q 155.53 173.67 156.13 173.13 Q 156.74 172.59 157.68 172.59 Q 158.51 172.59 159.44 172.87 L 159.44 173.81 Q 158.3 173.36 157.73 173.36 Q 157.2 173.36 156.86 173.64 Q 156.51 173.93 156.51 174.36 Q 156.51 174.72 156.76 175 Q 157.02 175.27 157.69 175.66 L 158.21 175.95 Q 159.15 176.48 159.52 176.96 Q 159.89 177.43 159.89 178.1 Q 159.89 179.04 159.19 179.61 Q 158.5 180.18 157.35 180.18 M 157.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 166.35 180.18 Q 165.62 180.18 164.49 179.86 L 164.49 178.85 Q 165.71 179.41 166.5 179.41 Q 167.1 179.41 167.47 179.1 Q 167.84 178.78 167.84 178.26 Q 167.84 177.84 167.6 177.54 Q 167.35 177.24 166.71 176.88 L 166.21 176.59 Q 165.28 176.06 164.91 175.59 Q 164.53 175.13 164.53 174.51 Q 164.53 173.67 165.13 173.13 Q 165.74 172.59 166.68 172.59 Q 167.51 172.59 168.44 172.87 L 168.44 173.81 Q 167.3 173.36 166.73 173.36 Q 166.2 173.36 165.86 173.64 Q 165.51 173.93 165.51 174.36 Q 165.51 174.72 165.76 175 Q 166.02 175.27 166.69 175.66 L 167.21 175.95 Q 168.15 176.48 168.52 176.96 Q 168.89 177.43 168.89 178.1 Q 168.89 179.04 168.19 179.61 Q 167.5 180.18 166.35 180.18 M 166.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 180 L 173.93 172.77 L 174.96 172.77 L 174.96 179.23 L 178.21 179.23 L 178.21 180 M 173.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 180 L 181.93 172.77 L 184.12 172.77 Q 185.16 172.77 185.71 173.23 Q 186.27 173.69 186.27 174.57 Q 186.27 176.01 184.81 176.62 L 187.22 180 L 185.96 180 L 183.91 176.94 L 182.95 176.94 L 182.95 180 M 181.93 180 M 182.95 176.18 L 183.28 176.18 Q 185.21 176.18 185.21 174.66 Q 185.21 173.54 183.59 173.54 L 182.95 173.54 M 182.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 194.59 177.24 L 193.36 174.12 L 192.13 177.24 M 194.59 177.24 M 195.68 180 L 194.89 178 L 191.83 178 L 191.04 180 L 190.08 180 L 192.95 172.77 L 193.96 172.77 L 196.79 180 M 195.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 203.59 177.24 L 202.36 174.12 L 201.13 177.24 M 203.59 177.24 M 204.68 180 L 203.89 178 L 200.83 178 L 200.04 180 L 199.08 180 L 201.95 172.77 L 202.96 172.77 L 205.79 180 M 204.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.93 180 L 208.93 172.77 L 210.9 172.77 Q 212.21 172.77 212.78 173.22 Q 213.35 173.66 213.35 174.67 Q 213.35 175.82 212.57 176.47 Q 211.79 177.13 210.4 177.13 L 209.95 177.13 L 209.95 180 M 208.93 180 M 209.95 176.35 L 210.36 176.35 Q 211.28 176.35 211.77 175.93 Q 212.27 175.51 212.27 174.75 Q 212.27 174.1 211.88 173.82 Q 211.49 173.54 210.58 173.54 L 209.95 173.54 M 209.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 221.59 177.24 L 220.36 174.12 L 219.13 177.24 M 221.59 177.24 M 222.68 180 L 221.89 178 L 218.83 178 L 218.04 180 L 217.08 180 L 219.95 172.77 L 220.96 172.77 L 223.79 180 M 222.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 180 L 226.93 172.77 L 228.9 172.77 Q 230.21 172.77 230.78 173.22 Q 231.35 173.66 231.35 174.67 Q 231.35 175.82 230.57 176.47 Q 229.79 177.13 228.4 177.13 L 227.95 177.13 L 227.95 180 M 226.93 180 M 227.95 176.35 L 228.36 176.35 Q 229.28 176.35 229.77 175.93 Q 230.27 175.51 230.27 174.75 Q 230.27 174.1 229.88 173.82 Q 229.49 173.54 228.58 173.54 L 227.95 173.54 M 227.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 237.65 180 L 237.65 173.54 L 235.09 173.54 L 235.09 172.77 L 241.24 172.77 L 241.24 173.54 L 238.68 173.54 L 238.68 180 M 237.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 248.59 177.24 L 247.36 174.12 L 246.13 177.24 M 248.59 177.24 M 249.68 180 L 248.89 178 L 245.83 178 L 245.04 180 L 244.08 180 L 246.95 172.77 L 247.96 172.77 L 250.79 180 M 249.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 255.91 180 L 253.18 172.77 L 254.2 172.77 L 256.44 178.69 L 258.6 172.77 L 259.49 172.77 L 256.87 180 M 255.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 262.72 177.47 L 262.72 176.75 L 267.06 176.75 L 267.06 177.47 M 262.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 271.72 177.47 L 271.72 176.75 L 276.06 176.75 L 276.06 177.47 M 271.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 284.59 177.24 L 283.36 174.12 L 282.13 177.24 M 284.59 177.24 M 285.68 180 L 284.89 178 L 281.83 178 L 281.04 180 L 280.08 180 L 282.95 172.77 L 283.96 172.77 L 286.79 180 M 285.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 290.93 180 L 290.93 172.77 L 291.96 172.77 L 291.96 179.23 L 295.21 179.23 L 295.21 180 M 290.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 298.93 180 L 298.93 172.77 L 300.9 172.77 Q 302.21 172.77 302.78 173.22 Q 303.35 173.66 303.35 174.67 Q 303.35 175.82 302.57 176.47 Q 301.79 177.13 300.4 177.13 L 299.95 177.13 L 299.95 180 M 298.93 180 M 299.95 176.35 L 300.36 176.35 Q 301.28 176.35 301.77 175.93 Q 302.27 175.51 302.27 174.75 Q 302.27 174.1 301.88 173.82 Q 301.49 173.54 300.58 173.54 L 299.95 173.54 M 299.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 311.59 177.24 L 310.36 174.12 L 309.13 177.24 M 311.59 177.24 M 312.68 180 L 311.89 178 L 308.83 178 L 308.04 180 L 307.08 180 L 309.95 172.77 L 310.96 172.77 L 313.79 180 M 312.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 320.59 177.24 L 319.36 174.12 L 318.13 177.24 M 320.59 177.24 M 321.68 180 L 320.89 178 L 317.83 178 L 317.04 180 L 316.08 180 L 318.95 172.77 L 319.96 172.77 L 322.79 180 M 321.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 325.93 180 L 325.93 172.77 L 326.89 172.77 L 326.89 176.33 L 329.82 172.77 L 330.85 172.77 L 328.02 176.22 L 331.35 180 L 330.05 180 L 326.89 176.34 L 326.89 180 M 325.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 336.91 180 L 334.18 172.77 L 335.2 172.77 L 337.44 178.69 L 339.6 172.77 L 340.49 172.77 L 337.87 180 M 336.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 177.47 L 343.72 176.75 L 348.06 176.75 L 348.06 177.47 M 343.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 177.47 L 352.72 176.75 L 357.06 176.75 L 357.06 177.47 M 352.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 367.36 179.8 Q 366.05 180.18 365.07 180.18 Q 363.35 180.18 362.43 179.2 Q 361.51 178.22 361.51 176.39 Q 361.51 174.59 362.44 173.59 Q 363.37 172.59 365.06 172.59 Q 366.16 172.59 367.35 172.92 L 367.35 173.87 Q 365.86 173.36 365.06 173.36 Q 363.89 173.36 363.24 174.16 Q 362.6 174.95 362.6 176.4 Q 362.6 177.83 363.29 178.62 Q 363.98 179.41 365.23 179.41 Q 365.75 179.41 366.34 179.23 L 366.34 176.88 L 367.36 176.88 M 367.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 372.93 180 L 372.93 172.77 L 373.95 172.77 L 373.95 180 M 372.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 378.93 180 L 378.93 172.77 L 380.35 172.77 L 382.36 178.36 L 384.42 172.77 L 385.69 172.77 L 385.69 180 L 384.73 180 L 384.73 174.12 L 382.74 179.52 L 381.75 179.52 L 379.81 174.11 L 379.81 180 M 378.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 394.36 179.8 Q 393.05 180.18 392.07 180.18 Q 390.35 180.18 389.43 179.2 Q 388.51 178.22 388.51 176.39 Q 388.51 174.59 389.44 173.59 Q 390.37 172.59 392.06 172.59 Q 393.16 172.59 394.35 172.92 L 394.35 173.87 Q 392.86 173.36 392.06 173.36 Q 390.89 173.36 390.24 174.16 Q 389.6 174.95 389.6 176.4 Q 389.6 177.83 390.29 178.62 Q 390.98 179.41 392.23 179.41 Q 392.75 179.41 393.34 179.23 L 393.34 176.88 L 394.36 176.88 M 394.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 397.93 180 L 397.93 172.77 L 400.12 172.77 Q 401.16 172.77 401.71 173.23 Q 402.27 173.69 402.27 174.57 Q 402.27 176.01 400.81 176.62 L 403.22 180 L 401.96 180 L 399.91 176.94 L 398.95 176.94 L 398.95 180 M 397.93 180 M 398.95 176.18 L 399.28 176.18 Q 401.21 176.18 401.21 174.66 Q 401.21 173.54 399.59 173.54 L 398.95 173.54 M 398.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 409.35 180.18 Q 408.62 180.18 407.49 179.86 L 407.49 178.85 Q 408.71 179.41 409.5 179.41 Q 410.1 179.41 410.47 179.1 Q 410.84 178.78 410.84 178.26 Q 410.84 177.84 410.6 177.54 Q 410.35 177.24 409.71 176.88 L 409.21 176.59 Q 408.28 176.06 407.91 175.59 Q 407.53 175.13 407.53 174.51 Q 407.53 173.67 408.13 173.13 Q 408.74 172.59 409.68 172.59 Q 410.51 172.59 411.44 172.87 L 411.44 173.81 Q 410.3 173.36 409.73 173.36 Q 409.2 173.36 408.86 173.64 Q 408.51 173.93 408.51 174.36 Q 408.51 174.72 408.76 175 Q 409.02 175.27 409.69 175.66 L 410.21 175.95 Q 411.15 176.48 411.52 176.96 Q 411.89 177.43 411.89 178.1 Q 411.89 179.04 411.19 179.61 Q 410.5 180.18 409.35 180.18 M 409.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 419.59 177.24 L 418.36 174.12 L 417.13 177.24 M 419.59 177.24 M 420.68 180 L 419.89 178 L 416.83 178 L 416.04 180 L 415.08 180 L 417.95 172.77 L 418.96 172.77 L 421.79 180 M 420.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 177.47 L 424.72 176.75 L 429.06 176.75 L 429.06 177.47 M 424.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 436.35 180.18 Q 435.62 180.18 434.49 179.86 L 434.49 178.85 Q 435.71 179.41 436.5 179.41 Q 437.1 179.41 437.47 179.1 Q 437.84 178.78 437.84 178.26 Q 437.84 177.84 437.6 177.54 Q 437.35 177.24 436.71 176.88 L 436.21 176.59 Q 435.28 176.06 434.91 175.59 Q 434.53 175.13 434.53 174.51 Q 434.53 173.67 435.13 173.13 Q 435.74 172.59 436.68 172.59 Q 437.51 172.59 438.44 172.87 L 438.44 173.81 Q 437.3 173.36 436.73 173.36 Q 436.2 173.36 435.86 173.64 Q 435.51 173.93 435.51 174.36 Q 435.51 174.72 435.76 175 Q 436.02 175.27 436.69 175.66 L 437.21 175.95 Q 438.15 176.48 438.52 176.96 Q 438.89 177.43 438.89 178.1 Q 438.89 179.04 438.19 179.61 Q 437.5 180.18 436.35 180.18 M 436.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 445.35 180.18 Q 444.62 180.18 443.49 179.86 L 443.49 178.85 Q 444.71 179.41 445.5 179.41 Q 446.1 179.41 446.47 179.1 Q 446.84 178.78 446.84 178.26 Q 446.84 177.84 446.6 177.54 Q 446.35 177.24 445.71 176.88 L 445.21 176.59 Q 444.28 176.06 443.91 175.59 Q 443.53 175.13 443.53 174.51 Q 443.53 173.67 444.13 173.13 Q 444.74 172.59 445.68 172.59 Q 446.51 172.59 447.44 172.87 L 447.44 173.81 Q 446.3 173.36 445.73 173.36 Q 445.2 173.36 444.86 173.64 Q 444.51 173.93 444.51 174.36 Q 444.51 174.72 444.76 175 Q 445.02 175.27 445.69 175.66 L 446.21 175.95 Q 447.15 176.48 447.52 176.96 Q 447.89 177.43 447.89 178.1 Q 447.89 179.04 447.19 179.61 Q 446.5 180.18 445.35 180.18 M 445.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 451.93 180 L 451.93 172.77 L 454.12 172.77 Q 455.16 172.77 455.71 173.23 Q 456.27 173.69 456.27 174.57 Q 456.27 176.01 454.81 176.62 L 457.22 180 L 455.96 180 L 453.91 176.94 L 452.95 176.94 L 452.95 180 M 451.93 180 M 452.95 176.18 L 453.28 176.18 Q 455.21 176.18 455.21 174.66 Q 455.21 173.54 453.59 173.54 L 452.95 173.54 M 452.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 180 L 460.93 172.77 L 463.12 172.77 Q 464.16 172.77 464.71 173.23 Q 465.27 173.69 465.27 174.57 Q 465.27 176.01 463.81 176.62 L 466.22 180 L 464.96 180 L 462.91 176.94 L 461.95 176.94 L 461.95 180 M 460.93 180 M 461.95 176.18 L 462.28 176.18 Q 464.21 176.18 464.21 174.66 Q 464.21 173.54 462.59 173.54 L 461.95 173.54 M 461.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.72 177.47 L 469.72 176.75 L 474.06 176.75 L 474.06 177.47 M 469.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 478.72 177.47 L 478.72 176.75 L 483.06 176.75 L 483.06 177.47 M 478.72 177.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 487.93 180 L 487.93 172.77 L 490.12 172.77 Q 491.16 172.77 491.71 173.23 Q 492.27 173.69 492.27 174.57 Q 492.27 176.01 490.81 176.62 L 493.22 180 L 491.96 180 L 489.91 176.94 L 488.95 176.94 L 488.95 180 M 487.93 180 M 488.95 176.18 L 489.28 176.18 Q 491.21 176.18 491.21 174.66 Q 491.21 173.54 489.59 173.54 L 488.95 173.54 M 488.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 497.93 180 L 497.93 172.77 L 498.96 172.77 L 498.96 179.23 L 502.21 179.23 L 502.21 180 M 497.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 505.93 180 L 505.93 172.77 L 508.12 172.77 Q 509.16 172.77 509.71 173.23 Q 510.27 173.69 510.27 174.57 Q 510.27 176.01 508.81 176.62 L 511.22 180 L 509.96 180 L 507.91 176.94 L 506.95 176.94 L 506.95 180 M 505.93 180 M 506.95 176.18 L 507.28 176.18 Q 509.21 176.18 509.21 174.66 Q 509.21 173.54 507.59 173.54 L 506.95 173.54 M 506.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 177.24 L 517.36 174.12 L 516.13 177.24 M 518.59 177.24 M 519.68 180 L 518.89 178 L 515.83 178 L 515.04 180 L 514.08 180 L 516.95 172.77 L 517.96 172.77 L 520.79 180 M 519.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 529.35 181.45 Q 527.64 180.89 526.49 180.13 Q 526.03 180.18 525.78 180.18 Q 524.33 180.18 523.42 179.13 Q 522.51 178.07 522.51 176.39 Q 522.51 174.66 523.43 173.63 Q 524.35 172.59 525.89 172.59 Q 527.43 172.59 528.35 173.63 Q 529.27 174.66 529.27 176.4 Q 529.27 178.89 527.42 179.85 Q 528.66 180.4 530 180.63 M 529.35 181.45 M 525.86 179.41 Q 526.97 179.41 527.57 178.62 Q 528.18 177.82 528.18 176.37 Q 528.18 174.96 527.57 174.16 Q 526.97 173.36 525.89 173.36 Q 524.81 173.36 524.2 174.16 Q 523.6 174.96 523.6 176.38 Q 523.6 177.79 524.2 178.6 Q 524.8 179.41 525.86 179.41 M 525.86 179.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 177.24 L 535.36 174.12 L 534.13 177.24 M 536.59 177.24 M 537.68 180 L 536.89 178 L 533.83 178 L 533.04 180 L 532.08 180 L 534.95 172.77 L 535.96 172.77 L 538.79 180 M 537.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 180 L 543.65 173.54 L 541.09 173.54 L 541.09 172.77 L 547.24 172.77 L 547.24 173.54 L 544.68 173.54 L 544.68 180 M 543.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 180 L 552.5 176.98 L 550.08 172.77 L 551.25 172.77 L 553.13 176.04 L 555.15 172.77 L 556.1 172.77 L 553.52 176.96 L 553.52 180 M 552.5 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 180 L 559.93 172.77 L 560.94 172.77 L 564.58 178.35 L 564.58 172.77 L 565.46 172.77 L 565.46 180 L 564.45 180 L 560.81 174.42 L 560.81 180 M 559.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 180 L 568.18 172.77 L 569.2 172.77 L 571.44 178.69 L 573.6 172.77 L 574.49 172.77 L 571.87 180 M 570.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 180 L 577.93 172.77 L 578.89 172.77 L 578.89 176.33 L 581.82 172.77 L 582.85 172.77 L 580.02 176.22 L 583.35 180 L 582.05 180 L 578.89 176.34 L 578.89 180 M 577.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 180 L 587.93 172.77 L 588.96 172.77 L 588.96 179.23 L 592.21 179.23 L 592.21 180 M 587.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 180 L 597.93 172.77 L 598.95 172.77 L 598.95 180 M 597.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 180 L 606.65 173.54 L 604.09 173.54 L 604.09 172.77 L 610.24 172.77 L 610.24 173.54 L 607.68 173.54 L 607.68 180 M 606.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 180 L 613.93 172.77 L 615.9 172.77 Q 617.21 172.77 617.78 173.22 Q 618.35 173.66 618.35 174.67 Q 618.35 175.82 617.57 176.47 Q 616.79 177.13 615.4 177.13 L 614.95 177.13 L 614.95 180 M 613.93 180 M 614.95 176.35 L 615.36 176.35 Q 616.28 176.35 616.77 175.93 Q 617.27 175.51 617.27 174.75 Q 617.27 174.1 616.88 173.82 Q 616.49 173.54 615.58 173.54 L 614.95 173.54 M 614.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 180 L 623.93 172.77 L 627.97 172.77 L 627.97 173.54 L 624.96 173.54 L 624.96 175.86 L 627.48 175.86 L 627.48 176.62 L 624.96 176.62 L 624.96 179.23 L 628.18 179.23 L 628.18 180 M 623.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 179.8 Q 636.05 180.18 635.07 180.18 Q 633.35 180.18 632.43 179.2 Q 631.51 178.22 631.51 176.39 Q 631.51 174.59 632.44 173.59 Q 633.37 172.59 635.06 172.59 Q 636.16 172.59 637.35 172.92 L 637.35 173.87 Q 635.86 173.36 635.06 173.36 Q 633.89 173.36 633.24 174.16 Q 632.6 174.95 632.6 176.4 Q 632.6 177.83 633.29 178.62 Q 633.98 179.41 635.23 179.41 Q 635.75 179.41 636.34 179.23 L 636.34 176.88 L 637.36 176.88 M 637.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 180 L 641.93 172.77 L 645.97 172.77 L 645.97 173.54 L 642.96 173.54 L 642.96 175.86 L 645.48 175.86 L 645.48 176.62 L 642.96 176.62 L 642.96 179.23 L 646.18 179.23 L 646.18 180 M 641.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.91 180 L 649.18 172.77 L 650.2 172.77 L 652.44 178.69 L 654.6 172.77 L 655.49 172.77 L 652.87 180 M 651.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 180 L 659.93 172.77 L 663.97 172.77 L 663.97 173.54 L 660.96 173.54 L 660.96 175.86 L 663.48 175.86 L 663.48 176.62 L 660.96 176.62 L 660.96 179.23 L 664.18 179.23 L 664.18 180 M 659.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 180 L 668.93 172.77 L 669.96 172.77 L 669.96 179.23 L 673.21 179.23 L 673.21 180 M 668.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 682.35 181.45 Q 680.64 180.89 679.49 180.13 Q 679.03 180.18 678.78 180.18 Q 677.33 180.18 676.42 179.13 Q 675.51 178.07 675.51 176.39 Q 675.51 174.66 676.43 173.63 Q 677.35 172.59 678.89 172.59 Q 680.43 172.59 681.35 173.63 Q 682.27 174.66 682.27 176.4 Q 682.27 178.89 680.42 179.85 Q 681.66 180.4 683 180.63 M 682.35 181.45 M 678.86 179.41 Q 679.97 179.41 680.57 178.62 Q 681.18 177.82 681.18 176.37 Q 681.18 174.96 680.57 174.16 Q 679.97 173.36 678.89 173.36 Q 677.81 173.36 677.2 174.16 Q 676.6 174.96 676.6 176.38 Q 676.6 177.79 677.2 178.6 Q 677.8 179.41 678.86 179.41 M 678.86 179.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 687.91 180 L 685.18 172.77 L 686.2 172.77 L 688.44 178.69 L 690.6 172.77 L 691.49 172.77 L 688.87 180 M 687.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 180 L 694.93 172.77 L 696.9 172.77 Q 698.21 172.77 698.78 173.22 Q 699.35 173.66 699.35 174.67 Q 699.35 175.82 698.57 176.47 Q 697.79 177.13 696.4 177.13 L 695.95 177.13 L 695.95 180 M 694.93 180 M 695.95 176.35 L 696.36 176.35 Q 697.28 176.35 697.77 175.93 Q 698.27 175.51 698.27 174.75 Q 698.27 174.1 697.88 173.82 Q 697.49 173.54 696.58 173.54 L 695.95 173.54 M 695.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 180 L 703.93 172.77 L 706.33 172.77 Q 707.41 172.77 708.07 173.01 Q 708.73 173.25 709.22 173.82 Q 709.98 174.73 709.98 176.22 Q 709.98 178.02 709.03 179.01 Q 708.08 180 706.35 180 M 703.93 180 M 704.96 179.23 L 706.27 179.23 Q 707.68 179.23 708.26 178.48 Q 708.89 177.67 708.89 176.31 Q 708.89 175.04 708.27 174.31 Q 707.9 173.87 707.38 173.7 Q 706.85 173.54 705.8 173.54 L 704.96 173.54 M 704.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 180 L 712.93 172.77 L 715.33 172.77 Q 716.41 172.77 717.07 173.01 Q 717.73 173.25 718.22 173.82 Q 718.98 174.73 718.98 176.22 Q 718.98 178.02 718.03 179.01 Q 717.08 180 715.35 180 M 712.93 180 M 713.96 179.23 L 715.27 179.23 Q 716.68 179.23 717.26 178.48 Q 717.89 177.67 717.89 176.31 Q 717.89 175.04 717.27 174.31 Q 716.9 173.87 716.38 173.7 Q 715.85 173.54 714.8 173.54 L 713.96 173.54 M 713.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 180 L 721.18 172.77 L 722.2 172.77 L 724.44 178.69 L 726.6 172.77 L 727.49 172.77 L 724.87 180 M 723.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 180 L 732.5 176.98 L 730.08 172.77 L 731.25 172.77 L 733.13 176.04 L 735.15 172.77 L 736.1 172.77 L 733.52 176.96 L 733.52 180 M 732.5 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 180 L 741.93 172.77 L 742.95 172.77 L 742.95 180 M 741.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 180 L 749.93 172.77 L 750.96 172.77 L 750.96 179.23 L 754.21 179.23 L 754.21 180 M 749.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 180 L 757.93 172.77 L 760.33 172.77 Q 761.41 172.77 762.07 173.01 Q 762.73 173.25 763.22 173.82 Q 763.98 174.73 763.98 176.22 Q 763.98 178.02 763.03 179.01 Q 762.08 180 760.35 180 M 757.93 180 M 758.96 179.23 L 760.27 179.23 Q 761.68 179.23 762.26 178.48 Q 762.89 177.67 762.89 176.31 Q 762.89 175.04 762.27 174.31 Q 761.9 173.87 761.38 173.7 Q 760.85 173.54 759.8 173.54 L 758.96 173.54 M 758.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 772.35 181.45 Q 770.64 180.89 769.49 180.13 Q 769.03 180.18 768.78 180.18 Q 767.33 180.18 766.42 179.13 Q 765.51 178.07 765.51 176.39 Q 765.51 174.66 766.43 173.63 Q 767.35 172.59 768.89 172.59 Q 770.43 172.59 771.35 173.63 Q 772.27 174.66 772.27 176.4 Q 772.27 178.89 770.42 179.85 Q 771.66 180.4 773 180.63 M 772.35 181.45 M 768.86 179.41 Q 769.97 179.41 770.57 178.62 Q 771.18 177.82 771.18 176.37 Q 771.18 174.96 770.57 174.16 Q 769.97 173.36 768.89 173.36 Q 767.81 173.36 767.2 174.16 Q 766.6 174.96 766.6 176.38 Q 766.6 177.79 767.2 178.6 Q 767.8 179.41 768.86 179.41 M 768.86 179.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 177.24 L 778.36 174.12 L 777.13 177.24 M 779.59 177.24 M 780.68 180 L 779.89 178 L 776.83 178 L 776.04 180 L 775.08 180 L 777.95 172.77 L 778.96 172.77 L 781.79 180 M 780.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 180 L 785.93 172.77 L 789.97 172.77 L 789.97 173.54 L 786.96 173.54 L 786.96 175.86 L 789.48 175.86 L 789.48 176.62 L 786.96 176.62 L 786.96 179.23 L 790.18 179.23 L 790.18 180 M 785.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 180 L 794.93 172.77 L 798.97 172.77 L 798.97 173.54 L 795.96 173.54 L 795.96 175.86 L 798.48 175.86 L 798.48 176.62 L 795.96 176.62 L 795.96 179.23 L 799.18 179.23 L 799.18 180 M 794.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 802.93 180 L 802.93 172.77 L 805.33 172.77 Q 806.41 172.77 807.07 173.01 Q 807.73 173.25 808.22 173.82 Q 808.98 174.73 808.98 176.22 Q 808.98 178.02 808.03 179.01 Q 807.08 180 805.35 180 M 802.93 180 M 803.96 179.23 L 805.27 179.23 Q 806.68 179.23 807.26 178.48 Q 807.89 177.67 807.89 176.31 Q 807.89 175.04 807.27 174.31 Q 806.9 173.87 806.38 173.7 Q 805.85 173.54 804.8 173.54 L 803.96 173.54 M 803.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 179.8 Q 816.05 180.18 815.07 180.18 Q 813.35 180.18 812.43 179.2 Q 811.51 178.22 811.51 176.39 Q 811.51 174.59 812.44 173.59 Q 813.37 172.59 815.06 172.59 Q 816.16 172.59 817.35 172.92 L 817.35 173.87 Q 815.86 173.36 815.06 173.36 Q 813.89 173.36 813.24 174.16 Q 812.6 174.95 812.6 176.4 Q 812.6 177.83 813.29 178.62 Q 813.98 179.41 815.23 179.41 Q 815.75 179.41 816.34 179.23 L 816.34 176.88 L 817.36 176.88 M 817.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 180 L 822.93 172.77 L 823.95 172.77 L 823.95 180 M 822.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 180 L 829.93 172.77 L 832.33 172.77 Q 833.41 172.77 834.07 173.01 Q 834.73 173.25 835.22 173.82 Q 835.98 174.73 835.98 176.22 Q 835.98 178.02 835.03 179.01 Q 834.08 180 832.35 180 M 829.93 180 M 830.96 179.23 L 832.27 179.23 Q 833.68 179.23 834.26 178.48 Q 834.89 177.67 834.89 176.31 Q 834.89 175.04 834.27 174.31 Q 833.9 173.87 833.38 173.7 Q 832.85 173.54 831.8 173.54 L 830.96 173.54 M 830.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 180 L 839.93 172.77 L 840.96 172.77 L 840.96 179.23 L 844.21 179.23 L 844.21 180 M 839.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 180 L 847.93 172.77 L 849.9 172.77 Q 851.21 172.77 851.78 173.22 Q 852.35 173.66 852.35 174.67 Q 852.35 175.82 851.57 176.47 Q 850.79 177.13 849.4 177.13 L 848.95 177.13 L 848.95 180 M 847.93 180 M 848.95 176.35 L 849.36 176.35 Q 850.28 176.35 850.77 175.93 Q 851.27 175.51 851.27 174.75 Q 851.27 174.1 850.88 173.82 Q 850.49 173.54 849.58 173.54 L 848.95 173.54 M 848.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 858.5 180 L 858.5 176.98 L 856.08 172.77 L 857.25 172.77 L 859.13 176.04 L 861.15 172.77 L 862.1 172.77 L 859.52 176.96 L 859.52 180 M 858.5 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 180.18 Q 867.62 180.18 866.49 179.86 L 866.49 178.85 Q 867.71 179.41 868.5 179.41 Q 869.1 179.41 869.47 179.1 Q 869.84 178.78 869.84 178.26 Q 869.84 177.84 869.6 177.54 Q 869.35 177.24 868.71 176.88 L 868.21 176.59 Q 867.28 176.06 866.91 175.59 Q 866.53 175.13 866.53 174.51 Q 866.53 173.67 867.13 173.13 Q 867.74 172.59 868.68 172.59 Q 869.51 172.59 870.44 172.87 L 870.44 173.81 Q 869.3 173.36 868.73 173.36 Q 868.2 173.36 867.86 173.64 Q 867.51 173.93 867.51 174.36 Q 867.51 174.72 867.76 175 Q 868.02 175.27 868.69 175.66 L 869.21 175.95 Q 870.15 176.48 870.52 176.96 Q 870.89 177.43 870.89 178.1 Q 870.89 179.04 870.19 179.61 Q 869.5 180.18 868.35 180.18 M 868.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 180.18 Q 876.34 180.18 875.43 179.19 Q 874.51 178.2 874.51 176.39 Q 874.51 174.58 875.44 173.59 Q 876.38 172.59 878.08 172.59 Q 879.05 172.59 880.35 172.91 L 880.35 173.87 Q 878.87 173.36 878.06 173.36 Q 876.89 173.36 876.24 174.16 Q 875.6 174.95 875.6 176.4 Q 875.6 177.78 876.29 178.58 Q 876.97 179.38 878.17 179.38 Q 879.19 179.38 880.36 178.75 L 880.36 179.63 Q 879.29 180.18 878.03 180.18 M 878.03 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 180 L 883.93 172.77 L 886.12 172.77 Q 887.16 172.77 887.71 173.23 Q 888.27 173.69 888.27 174.57 Q 888.27 176.01 886.81 176.62 L 889.22 180 L 887.96 180 L 885.91 176.94 L 884.95 176.94 L 884.95 180 M 883.93 180 M 884.95 176.18 L 885.28 176.18 Q 887.21 176.18 887.21 174.66 Q 887.21 173.54 885.59 173.54 L 884.95 173.54 M 884.95 176.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 177.24 L 895.36 174.12 L 894.13 177.24 M 896.59 177.24 M 897.68 180 L 896.89 178 L 893.83 178 L 893.04 180 L 892.08 180 L 894.95 172.77 L 895.96 172.77 L 898.79 180 M 897.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 179.8 Q 906.05 180.18 905.07 180.18 Q 903.35 180.18 902.43 179.2 Q 901.51 178.22 901.51 176.39 Q 901.51 174.59 902.44 173.59 Q 903.37 172.59 905.06 172.59 Q 906.16 172.59 907.35 172.92 L 907.35 173.87 Q 905.86 173.36 905.06 173.36 Q 903.89 173.36 903.24 174.16 Q 902.6 174.95 902.6 176.4 Q 902.6 177.83 903.29 178.62 Q 903.98 179.41 905.23 179.41 Q 905.75 179.41 906.34 179.23 L 906.34 176.88 L 907.36 176.88 M 907.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 180.18 Q 912.62 180.18 911.49 179.86 L 911.49 178.85 Q 912.71 179.41 913.5 179.41 Q 914.1 179.41 914.47 179.1 Q 914.84 178.78 914.84 178.26 Q 914.84 177.84 914.6 177.54 Q 914.35 177.24 913.71 176.88 L 913.21 176.59 Q 912.28 176.06 911.91 175.59 Q 911.53 175.13 911.53 174.51 Q 911.53 173.67 912.13 173.13 Q 912.74 172.59 913.68 172.59 Q 914.51 172.59 915.44 172.87 L 915.44 173.81 Q 914.3 173.36 913.73 173.36 Q 913.2 173.36 912.86 173.64 Q 912.51 173.93 912.51 174.36 Q 912.51 174.72 912.76 175 Q 913.02 175.27 913.69 175.66 L 914.21 175.95 Q 915.15 176.48 915.52 176.96 Q 915.89 177.43 915.89 178.1 Q 915.89 179.04 915.19 179.61 Q 914.5 180.18 913.35 180.18 M 913.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 180.18 Q 921.34 180.18 920.43 179.19 Q 919.51 178.2 919.51 176.39 Q 919.51 174.58 920.44 173.59 Q 921.38 172.59 923.08 172.59 Q 924.05 172.59 925.35 172.91 L 925.35 173.87 Q 923.87 173.36 923.06 173.36 Q 921.89 173.36 921.24 174.16 Q 920.6 174.95 920.6 176.4 Q 920.6 177.78 921.29 178.58 Q 921.97 179.38 923.17 179.38 Q 924.19 179.38 925.36 178.75 L 925.36 179.63 Q 924.29 180.18 923.03 180.18 M 923.03 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 180.18 Q 930.62 180.18 929.49 179.86 L 929.49 178.85 Q 930.71 179.41 931.5 179.41 Q 932.1 179.41 932.47 179.1 Q 932.84 178.78 932.84 178.26 Q 932.84 177.84 932.6 177.54 Q 932.35 177.24 931.71 176.88 L 931.21 176.59 Q 930.28 176.06 929.91 175.59 Q 929.53 175.13 929.53 174.51 Q 929.53 173.67 930.13 173.13 Q 930.74 172.59 931.68 172.59 Q 932.51 172.59 933.44 172.87 L 933.44 173.81 Q 932.3 173.36 931.73 173.36 Q 931.2 173.36 930.86 173.64 Q 930.51 173.93 930.51 174.36 Q 930.51 174.72 930.76 175 Q 931.02 175.27 931.69 175.66 L 932.21 175.95 Q 933.15 176.48 933.52 176.96 Q 933.89 177.43 933.89 178.1 Q 933.89 179.04 933.19 179.61 Q 932.5 180.18 931.35 180.18 M 931.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 180.18 Q 939.62 180.18 938.49 179.86 L 938.49 178.85 Q 939.71 179.41 940.5 179.41 Q 941.1 179.41 941.47 179.1 Q 941.84 178.78 941.84 178.26 Q 941.84 177.84 941.6 177.54 Q 941.35 177.24 940.71 176.88 L 940.21 176.59 Q 939.28 176.06 938.91 175.59 Q 938.53 175.13 938.53 174.51 Q 938.53 173.67 939.13 173.13 Q 939.74 172.59 940.68 172.59 Q 941.51 172.59 942.44 172.87 L 942.44 173.81 Q 941.3 173.36 940.73 173.36 Q 940.2 173.36 939.86 173.64 Q 939.51 173.93 939.51 174.36 Q 939.51 174.72 939.76 175 Q 940.02 175.27 940.69 175.66 L 941.21 175.95 Q 942.15 176.48 942.52 176.96 Q 942.89 177.43 942.89 178.1 Q 942.89 179.04 942.19 179.61 Q 941.5 180.18 940.35 180.18 M 940.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 180.18 Q 948.34 180.18 947.43 179.19 Q 946.51 178.2 946.51 176.39 Q 946.51 174.58 947.44 173.59 Q 948.38 172.59 950.08 172.59 Q 951.05 172.59 952.35 172.91 L 952.35 173.87 Q 950.87 173.36 950.06 173.36 Q 948.89 173.36 948.24 174.16 Q 947.6 174.95 947.6 176.4 Q 947.6 177.78 948.29 178.58 Q 948.97 179.38 950.17 179.38 Q 951.19 179.38 952.36 178.75 L 952.36 179.63 Q 951.29 180.18 950.03 180.18 M 950.03 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 177.24 L 958.36 174.12 L 957.13 177.24 M 959.59 177.24 M 960.68 180 L 959.89 178 L 956.83 178 L 956.04 180 L 955.08 180 L 957.95 172.77 L 958.96 172.77 L 961.79 180 M 960.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 179.8 Q 969.05 180.18 968.07 180.18 Q 966.35 180.18 965.43 179.2 Q 964.51 178.22 964.51 176.39 Q 964.51 174.59 965.44 173.59 Q 966.37 172.59 968.06 172.59 Q 969.16 172.59 970.35 172.92 L 970.35 173.87 Q 968.86 173.36 968.06 173.36 Q 966.89 173.36 966.24 174.16 Q 965.6 174.95 965.6 176.4 Q 965.6 177.83 966.29 178.62 Q 966.98 179.41 968.23 179.41 Q 968.75 179.41 969.34 179.23 L 969.34 176.88 L 970.36 176.88 M 970.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 180 L 973.93 172.77 L 974.89 172.77 L 974.89 176.33 L 977.82 172.77 L 978.85 172.77 L 976.02 176.22 L 979.35 180 L 978.05 180 L 974.89 176.34 L 974.89 180 M 973.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 180 L 982.18 172.77 L 983.2 172.77 L 985.44 178.69 L 987.6 172.77 L 988.49 172.77 L 985.87 180 M 984.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 180 L 991.18 172.77 L 992.2 172.77 L 994.44 178.69 L 996.6 172.77 L 997.49 172.77 L 994.87 180 M 993.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 180.18 Q 1002.62 180.18 1001.49 179.86 L 1001.49 178.85 Q 1002.71 179.41 1003.5 179.41 Q 1004.1 179.41 1004.47 179.1 Q 1004.84 178.78 1004.84 178.26 Q 1004.84 177.84 1004.6 177.54 Q 1004.35 177.24 1003.71 176.88 L 1003.21 176.59 Q 1002.28 176.06 1001.91 175.59 Q 1001.53 175.13 1001.53 174.51 Q 1001.53 173.67 1002.13 173.13 Q 1002.74 172.59 1003.68 172.59 Q 1004.51 172.59 1005.44 172.87 L 1005.44 173.81 Q 1004.3 173.36 1003.73 173.36 Q 1003.2 173.36 1002.86 173.64 Q 1002.51 173.93 1002.51 174.36 Q 1002.51 174.72 1002.76 175 Q 1003.02 175.27 1003.69 175.66 L 1004.21 175.95 Q 1005.15 176.48 1005.52 176.96 Q 1005.89 177.43 1005.89 178.1 Q 1005.89 179.04 1005.19 179.61 Q 1004.5 180.18 1003.35 180.18 M 1003.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 179.8 Q 1014.05 180.18 1013.07 180.18 Q 1011.35 180.18 1010.43 179.2 Q 1009.51 178.22 1009.51 176.39 Q 1009.51 174.59 1010.44 173.59 Q 1011.37 172.59 1013.06 172.59 Q 1014.16 172.59 1015.35 172.92 L 1015.35 173.87 Q 1013.86 173.36 1013.06 173.36 Q 1011.89 173.36 1011.24 174.16 Q 1010.6 174.95 1010.6 176.4 Q 1010.6 177.83 1011.29 178.62 Q 1011.98 179.41 1013.23 179.41 Q 1013.75 179.41 1014.34 179.23 L 1014.34 176.88 L 1015.36 176.88 M 1015.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 180.18 Q 1020.62 180.18 1019.49 179.86 L 1019.49 178.85 Q 1020.71 179.41 1021.5 179.41 Q 1022.1 179.41 1022.47 179.1 Q 1022.84 178.78 1022.84 178.26 Q 1022.84 177.84 1022.6 177.54 Q 1022.35 177.24 1021.71 176.88 L 1021.21 176.59 Q 1020.28 176.06 1019.91 175.59 Q 1019.53 175.13 1019.53 174.51 Q 1019.53 173.67 1020.13 173.13 Q 1020.74 172.59 1021.68 172.59 Q 1022.51 172.59 1023.44 172.87 L 1023.44 173.81 Q 1022.3 173.36 1021.73 173.36 Q 1021.2 173.36 1020.86 173.64 Q 1020.51 173.93 1020.51 174.36 Q 1020.51 174.72 1020.76 175 Q 1021.02 175.27 1021.69 175.66 L 1022.21 175.95 Q 1023.15 176.48 1023.52 176.96 Q 1023.89 177.43 1023.89 178.1 Q 1023.89 179.04 1023.19 179.61 Q 1022.5 180.18 1021.35 180.18 M 1021.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 180 L 1027.18 172.77 L 1028.2 172.77 L 1030.44 178.69 L 1032.6 172.77 L 1033.49 172.77 L 1030.87 180 M 1029.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 180 L 1036.93 172.77 L 1039.33 172.77 Q 1040.41 172.77 1041.07 173.01 Q 1041.73 173.25 1042.22 173.82 Q 1042.98 174.73 1042.98 176.22 Q 1042.98 178.02 1042.03 179.01 Q 1041.08 180 1039.35 180 M 1036.93 180 M 1037.96 179.23 L 1039.27 179.23 Q 1040.68 179.23 1041.26 178.48 Q 1041.89 177.67 1041.89 176.31 Q 1041.89 175.04 1041.27 174.31 Q 1040.9 173.87 1040.38 173.7 Q 1039.85 173.54 1038.8 173.54 L 1037.96 173.54 M 1037.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 181.45 Q 1049.64 180.89 1048.49 180.13 Q 1048.03 180.18 1047.78 180.18 Q 1046.33 180.18 1045.42 179.13 Q 1044.51 178.07 1044.51 176.39 Q 1044.51 174.66 1045.43 173.63 Q 1046.35 172.59 1047.89 172.59 Q 1049.43 172.59 1050.35 173.63 Q 1051.27 174.66 1051.27 176.4 Q 1051.27 178.89 1049.42 179.85 Q 1050.66 180.4 1052 180.63 M 1051.35 181.45 M 1047.86 179.41 Q 1048.97 179.41 1049.57 178.62 Q 1050.18 177.82 1050.18 176.37 Q 1050.18 174.96 1049.57 174.16 Q 1048.97 173.36 1047.89 173.36 Q 1046.81 173.36 1046.2 174.16 Q 1045.6 174.96 1045.6 176.38 Q 1045.6 177.79 1046.2 178.6 Q 1046.8 179.41 1047.86 179.41 M 1047.86 179.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 180.18 Q 1056.62 180.18 1055.49 179.86 L 1055.49 178.85 Q 1056.71 179.41 1057.5 179.41 Q 1058.1 179.41 1058.47 179.1 Q 1058.84 178.78 1058.84 178.26 Q 1058.84 177.84 1058.6 177.54 Q 1058.35 177.24 1057.71 176.88 L 1057.21 176.59 Q 1056.28 176.06 1055.91 175.59 Q 1055.53 175.13 1055.53 174.51 Q 1055.53 173.67 1056.13 173.13 Q 1056.74 172.59 1057.68 172.59 Q 1058.51 172.59 1059.44 172.87 L 1059.44 173.81 Q 1058.3 173.36 1057.73 173.36 Q 1057.2 173.36 1056.86 173.64 Q 1056.51 173.93 1056.51 174.36 Q 1056.51 174.72 1056.76 175 Q 1057.02 175.27 1057.69 175.66 L 1058.21 175.95 Q 1059.15 176.48 1059.52 176.96 Q 1059.89 177.43 1059.89 178.1 Q 1059.89 179.04 1059.19 179.61 Q 1058.5 180.18 1057.35 180.18 M 1057.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 180 L 1063.93 172.77 L 1066.33 172.77 Q 1067.41 172.77 1068.07 173.01 Q 1068.73 173.25 1069.22 173.82 Q 1069.98 174.73 1069.98 176.22 Q 1069.98 178.02 1069.03 179.01 Q 1068.08 180 1066.35 180 M 1063.93 180 M 1064.96 179.23 L 1066.27 179.23 Q 1067.68 179.23 1068.26 178.48 Q 1068.89 177.67 1068.89 176.31 Q 1068.89 175.04 1068.27 174.31 Q 1067.9 173.87 1067.38 173.7 Q 1066.85 173.54 1065.8 173.54 L 1064.96 173.54 M 1064.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 181.45 Q 1076.64 180.89 1075.49 180.13 Q 1075.03 180.18 1074.78 180.18 Q 1073.33 180.18 1072.42 179.13 Q 1071.51 178.07 1071.51 176.39 Q 1071.51 174.66 1072.43 173.63 Q 1073.35 172.59 1074.89 172.59 Q 1076.43 172.59 1077.35 173.63 Q 1078.27 174.66 1078.27 176.4 Q 1078.27 178.89 1076.42 179.85 Q 1077.66 180.4 1079 180.63 M 1078.35 181.45 M 1074.86 179.41 Q 1075.97 179.41 1076.57 178.62 Q 1077.18 177.82 1077.18 176.37 Q 1077.18 174.96 1076.57 174.16 Q 1075.97 173.36 1074.89 173.36 Q 1073.81 173.36 1073.2 174.16 Q 1072.6 174.96 1072.6 176.38 Q 1072.6 177.79 1073.2 178.6 Q 1073.8 179.41 1074.86 179.41 M 1074.86 179.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 180.18 Q 1083.62 180.18 1082.49 179.86 L 1082.49 178.85 Q 1083.71 179.41 1084.5 179.41 Q 1085.1 179.41 1085.47 179.1 Q 1085.84 178.78 1085.84 178.26 Q 1085.84 177.84 1085.6 177.54 Q 1085.35 177.24 1084.71 176.88 L 1084.21 176.59 Q 1083.28 176.06 1082.91 175.59 Q 1082.53 175.13 1082.53 174.51 Q 1082.53 173.67 1083.13 173.13 Q 1083.74 172.59 1084.68 172.59 Q 1085.51 172.59 1086.44 172.87 L 1086.44 173.81 Q 1085.3 173.36 1084.73 173.36 Q 1084.2 173.36 1083.86 173.64 Q 1083.51 173.93 1083.51 174.36 Q 1083.51 174.72 1083.76 175 Q 1084.02 175.27 1084.69 175.66 L 1085.21 175.95 Q 1086.15 176.48 1086.52 176.96 Q 1086.89 177.43 1086.89 178.1 Q 1086.89 179.04 1086.19 179.61 Q 1085.5 180.18 1084.35 180.18 M 1084.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1092.5 180 L 1092.5 176.98 L 1090.08 172.77 L 1091.25 172.77 L 1093.13 176.04 L 1095.15 172.77 L 1096.1 172.77 L 1093.52 176.96 L 1093.52 180 M 1092.5 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 180 L 1100.93 172.77 L 1101.96 172.77 L 1101.96 179.23 L 1105.21 179.23 L 1105.21 180 M 1100.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 180 L 1108.93 172.77 L 1111.33 172.77 Q 1112.41 172.77 1113.07 173.01 Q 1113.73 173.25 1114.22 173.82 Q 1114.98 174.73 1114.98 176.22 Q 1114.98 178.02 1114.03 179.01 Q 1113.08 180 1111.35 180 M 1108.93 180 M 1109.96 179.23 L 1111.27 179.23 Q 1112.68 179.23 1113.26 178.48 Q 1113.89 177.67 1113.89 176.31 Q 1113.89 175.04 1113.27 174.31 Q 1112.9 173.87 1112.38 173.7 Q 1111.85 173.54 1110.8 173.54 L 1109.96 173.54 M 1109.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 180 L 1117.93 172.77 L 1120.33 172.77 Q 1121.41 172.77 1122.07 173.01 Q 1122.73 173.25 1123.22 173.82 Q 1123.98 174.73 1123.98 176.22 Q 1123.98 178.02 1123.03 179.01 Q 1122.08 180 1120.35 180 M 1117.93 180 M 1118.96 179.23 L 1120.27 179.23 Q 1121.68 179.23 1122.26 178.48 Q 1122.89 177.67 1122.89 176.31 Q 1122.89 175.04 1122.27 174.31 Q 1121.9 173.87 1121.38 173.7 Q 1120.85 173.54 1119.8 173.54 L 1118.96 173.54 M 1118.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1132.36 179.8 Q 1131.05 180.18 1130.07 180.18 Q 1128.35 180.18 1127.43 179.2 Q 1126.51 178.22 1126.51 176.39 Q 1126.51 174.59 1127.44 173.59 Q 1128.37 172.59 1130.06 172.59 Q 1131.16 172.59 1132.35 172.92 L 1132.35 173.87 Q 1130.86 173.36 1130.06 173.36 Q 1128.89 173.36 1128.24 174.16 Q 1127.6 174.95 1127.6 176.4 Q 1127.6 177.83 1128.29 178.62 Q 1128.98 179.41 1130.23 179.41 Q 1130.75 179.41 1131.34 179.23 L 1131.34 176.88 L 1132.36 176.88 M 1132.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 181.45 Q 1139.64 180.89 1138.49 180.13 Q 1138.03 180.18 1137.78 180.18 Q 1136.33 180.18 1135.42 179.13 Q 1134.51 178.07 1134.51 176.39 Q 1134.51 174.66 1135.43 173.63 Q 1136.35 172.59 1137.89 172.59 Q 1139.43 172.59 1140.35 173.63 Q 1141.27 174.66 1141.27 176.4 Q 1141.27 178.89 1139.42 179.85 Q 1140.66 180.4 1142 180.63 M 1141.35 181.45 M 1137.86 179.41 Q 1138.97 179.41 1139.57 178.62 Q 1140.18 177.82 1140.18 176.37 Q 1140.18 174.96 1139.57 174.16 Q 1138.97 173.36 1137.89 173.36 Q 1136.81 173.36 1136.2 174.16 Q 1135.6 174.96 1135.6 176.38 Q 1135.6 177.79 1136.2 178.6 Q 1136.8 179.41 1137.86 179.41 M 1137.86 179.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.93 180 L 1146.93 172.77 L 1147.95 172.77 L 1147.95 180 M 1146.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1157.59 177.24 L 1156.36 174.12 L 1155.13 177.24 M 1157.59 177.24 M 1158.68 180 L 1157.89 178 L 1154.83 178 L 1154.04 180 L 1153.08 180 L 1155.95 172.77 L 1156.96 172.77 L 1159.79 180 M 1158.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1162.93 180 L 1162.93 172.77 L 1165.33 172.77 Q 1166.41 172.77 1167.07 173.01 Q 1167.73 173.25 1168.22 173.82 Q 1168.98 174.73 1168.98 176.22 Q 1168.98 178.02 1168.03 179.01 Q 1167.08 180 1165.35 180 M 1162.93 180 M 1163.96 179.23 L 1165.27 179.23 Q 1166.68 179.23 1167.26 178.48 Q 1167.89 177.67 1167.89 176.31 Q 1167.89 175.04 1167.27 174.31 Q 1166.9 173.87 1166.38 173.7 Q 1165.85 173.54 1164.8 173.54 L 1163.96 173.54 M 1163.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 179.8 Q 1176.05 180.18 1175.07 180.18 Q 1173.35 180.18 1172.43 179.2 Q 1171.51 178.22 1171.51 176.39 Q 1171.51 174.59 1172.44 173.59 Q 1173.37 172.59 1175.06 172.59 Q 1176.16 172.59 1177.35 172.92 L 1177.35 173.87 Q 1175.86 173.36 1175.06 173.36 Q 1173.89 173.36 1173.24 174.16 Q 1172.6 174.95 1172.6 176.4 Q 1172.6 177.83 1173.29 178.62 Q 1173.98 179.41 1175.23 179.41 Q 1175.75 179.41 1176.34 179.23 L 1176.34 176.88 L 1177.36 176.88 M 1177.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 180 L 1179.01 172.77 L 1180 172.77 L 1181.48 178.48 L 1182.84 172.77 L 1183.82 172.77 L 1185.11 178.4 L 1186.71 172.77 L 1187.54 172.77 L 1185.51 180 L 1184.49 180 L 1183.22 174.43 L 1181.89 180 M 1180.87 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 180 L 1189.18 172.77 L 1190.2 172.77 L 1192.44 178.69 L 1194.6 172.77 L 1195.49 172.77 L 1192.87 180 M 1191.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 180 L 1199.93 172.77 L 1200.96 172.77 L 1200.96 179.23 L 1204.21 179.23 L 1204.21 180 M 1199.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 180 L 1209.65 173.54 L 1207.09 173.54 L 1207.09 172.77 L 1213.24 172.77 L 1213.24 173.54 L 1210.68 173.54 L 1210.68 180 M 1209.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 180.18 Q 1218.34 180.18 1217.43 179.19 Q 1216.51 178.2 1216.51 176.39 Q 1216.51 174.58 1217.44 173.59 Q 1218.38 172.59 1220.08 172.59 Q 1221.05 172.59 1222.35 172.91 L 1222.35 173.87 Q 1220.87 173.36 1220.06 173.36 Q 1218.89 173.36 1218.24 174.16 Q 1217.6 174.95 1217.6 176.4 Q 1217.6 177.78 1218.29 178.58 Q 1218.97 179.38 1220.17 179.38 Q 1221.19 179.38 1222.36 178.75 L 1222.36 179.63 Q 1221.29 180.18 1220.03 180.18 M 1220.03 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1225.93 180 L 1225.93 172.77 L 1226.96 172.77 L 1226.96 175.82 L 1230.4 175.82 L 1230.4 172.77 L 1231.42 172.77 L 1231.42 180 L 1230.4 180 L 1230.4 176.59 L 1226.96 176.59 L 1226.96 180 M 1225.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 177.24 L 1237.36 174.12 L 1236.13 177.24 M 1238.59 177.24 M 1239.68 180 L 1238.89 178 L 1235.83 178 L 1235.04 180 L 1234.08 180 L 1236.95 172.77 L 1237.96 172.77 L 1240.79 180 M 1239.68 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 180 L 1245.5 176.98 L 1243.08 172.77 L 1244.25 172.77 L 1246.13 176.04 L 1248.15 172.77 L 1249.1 172.77 L 1246.52 176.96 L 1246.52 180 M 1245.5 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 180 L 1252.93 172.77 L 1254.9 172.77 Q 1256.21 172.77 1256.78 173.22 Q 1257.35 173.66 1257.35 174.67 Q 1257.35 175.82 1256.57 176.47 Q 1255.79 177.13 1254.4 177.13 L 1253.95 177.13 L 1253.95 180 M 1252.93 180 M 1253.95 176.35 L 1254.36 176.35 Q 1255.28 176.35 1255.77 175.93 Q 1256.27 175.51 1256.27 174.75 Q 1256.27 174.1 1255.88 173.82 Q 1255.49 173.54 1254.58 173.54 L 1253.95 173.54 M 1253.95 176.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 180 L 1263.65 173.54 L 1261.09 173.54 L 1261.09 172.77 L 1267.24 172.77 L 1267.24 173.54 L 1264.68 173.54 L 1264.68 180 M 1263.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 180.18 Q 1272.62 180.18 1271.49 179.86 L 1271.49 178.85 Q 1272.71 179.41 1273.5 179.41 Q 1274.1 179.41 1274.47 179.1 Q 1274.84 178.78 1274.84 178.26 Q 1274.84 177.84 1274.6 177.54 Q 1274.35 177.24 1273.71 176.88 L 1273.21 176.59 Q 1272.28 176.06 1271.91 175.59 Q 1271.53 175.13 1271.53 174.51 Q 1271.53 173.67 1272.13 173.13 Q 1272.74 172.59 1273.68 172.59 Q 1274.51 172.59 1275.44 172.87 L 1275.44 173.81 Q 1274.3 173.36 1273.73 173.36 Q 1273.2 173.36 1272.86 173.64 Q 1272.51 173.93 1272.51 174.36 Q 1272.51 174.72 1272.76 175 Q 1273.02 175.27 1273.69 175.66 L 1274.21 175.95 Q 1275.15 176.48 1275.52 176.96 Q 1275.89 177.43 1275.89 178.1 Q 1275.89 179.04 1275.19 179.61 Q 1274.5 180.18 1273.35 180.18 M 1273.35 180.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 180 L 1279.93 172.77 L 1282.33 172.77 Q 1283.41 172.77 1284.07 173.01 Q 1284.73 173.25 1285.22 173.82 Q 1285.98 174.73 1285.98 176.22 Q 1285.98 178.02 1285.03 179.01 Q 1284.08 180 1282.35 180 M 1279.93 180 M 1280.96 179.23 L 1282.27 179.23 Q 1283.68 179.23 1284.26 178.48 Q 1284.89 177.67 1284.89 176.31 Q 1284.89 175.04 1284.27 174.31 Q 1283.9 173.87 1283.38 173.7 Q 1282.85 173.54 1281.8 173.54 L 1280.96 173.54 M 1280.96 179.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 180 L 1288.18 172.77 L 1289.2 172.77 L 1291.44 178.69 L 1293.6 172.77 L 1294.49 172.77 L 1291.87 180 M 1290.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.91 180 L 1297.18 172.77 L 1298.2 172.77 L 1300.44 178.69 L 1302.6 172.77 L 1303.49 172.77 L 1300.87 180 M 1299.91 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 180 L 1308.93 172.77 L 1309.95 172.77 L 1309.95 180 M 1308.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 180 L 1316.93 172.77 L 1320.97 172.77 L 1320.97 173.54 L 1317.96 173.54 L 1317.96 175.86 L 1320.48 175.86 L 1320.48 176.62 L 1317.96 176.62 L 1317.96 179.23 L 1321.18 179.23 L 1321.18 180 M 1316.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 180 L 1326.65 173.54 L 1324.09 173.54 L 1324.09 172.77 L 1330.24 172.77 L 1330.24 173.54 L 1327.68 173.54 L 1327.68 180 M 1326.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 180 L 1333.93 172.77 L 1334.96 172.77 L 1334.96 175.82 L 1338.4 175.82 L 1338.4 172.77 L 1339.42 172.77 L 1339.42 180 L 1338.4 180 L 1338.4 176.59 L 1334.96 176.59 L 1334.96 180 M 1333.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 180 L 1342.93 172.77 L 1343.89 172.77 L 1343.89 176.33 L 1346.82 172.77 L 1347.85 172.77 L 1345.02 176.22 L 1348.35 180 L 1347.05 180 L 1343.89 176.34 L 1343.89 180 M 1342.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 180 L 1352.93 172.77 L 1356.97 172.77 L 1356.97 173.54 L 1353.96 173.54 L 1353.96 175.86 L 1356.48 175.86 L 1356.48 176.62 L 1353.96 176.62 L 1353.96 179.23 L 1357.18 179.23 L 1357.18 180 M 1352.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1361.93 180 L 1361.93 172.77 L 1365.97 172.77 L 1365.97 173.54 L 1362.96 173.54 L 1362.96 175.86 L 1365.48 175.86 L 1365.48 176.62 L 1362.96 176.62 L 1362.96 179.23 L 1366.18 179.23 L 1366.18 180 M 1361.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1370.93 180 L 1370.93 172.77 L 1374.97 172.77 L 1374.97 173.54 L 1371.96 173.54 L 1371.96 175.86 L 1374.48 175.86 L 1374.48 176.62 L 1371.96 176.62 L 1371.96 179.23 L 1375.18 179.23 L 1375.18 180 M 1370.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 180 L 1379.93 172.77 L 1380.96 172.77 L 1380.96 179.23 L 1384.21 179.23 L 1384.21 180 M 1379.93 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1389.65 180 L 1389.65 173.54 L 1387.09 173.54 L 1387.09 172.77 L 1393.24 172.77 L 1393.24 173.54 L 1390.68 173.54 L 1390.68 180 M 1389.65 180"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1402.36 179.8 Q 1401.05 180.18 1400.07 180.18 Q 1398.35 180.18 1397.43 179.2 Q 1396.51 178.22 1396.51 176.39 Q 1396.51 174.59 1397.44 173.59 Q 1398.37 172.59 1400.06 172.59 Q 1401.16 172.59 1402.35 172.92 L 1402.35 173.87 Q 1400.86 173.36 1400.06 173.36 Q 1398.89 173.36 1398.24 174.16 Q 1397.6 174.95 1397.6 176.4 Q 1397.6 177.83 1398.29 178.62 Q 1398.98 179.41 1400.23 179.41 Q 1400.75 179.41 1401.34 179.23 L 1401.34 176.88 L 1402.36 176.88 M 1402.36 179.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1409.59 177.24 L 1408.36 174.12 L 1407.13 177.24 M 1409.59 177.24 M 1410.68 180 L 1409.89 178 L 1406.83 178 L 1406.04 180 L 1405.08 180 L 1407.95 172.77 L 1408.96 172.77 L 1411.79 180 M 1410.68 180"/></g><rect x="0" y="182" width="531" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="531" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="540" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="549" y="182" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="558" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="567" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="576" y="182" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="585" y="182" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="603" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="612" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="621" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="630" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="639" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="648" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="657" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="666" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="675" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="684" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="693" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="702" y="182" width="18" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="720" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="729" y="182" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="738" y="182" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="756" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="765" y="182" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="774" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="783" y="182" width="27" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="810" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="819" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="828" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="837" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="846" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="855" y="182" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="864" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="873" y="182" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="882" y="182" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="891" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="900" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="909" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="918" y="182" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="927" y="182" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="945" y="182" width="9" height="13" style="fill: rgb(255,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="954" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="963" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="972" y="182" width="9" height="13" style="fill: rgb(100,100,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="981" y="182" width="18" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="999" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1008" y="182" width="9" height="13" style="fill: rgb(255,0,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1017" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1026" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1035" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1044" y="182" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1062" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1071" y="182" width="18" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1089" y="182" width="9" height="13" style="fill: rgb(255,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1098" y="182" width="9" height="13" style="fill: rgb(255,175,175); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1107" y="182" width="9" height="13" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1116" y="182" width="9" height="13" style="fill: rgb(255,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><rect x="1125" y="182" width="288" height="13" style="fill: rgb(255,255,255); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,16)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 0.93 193 L 0.93 185.77 L 2.35 185.77 L 4.36 191.36 L 6.42 185.77 L 7.69 185.77 L 7.69 193 L 6.73 193 L 6.73 187.12 L 4.74 192.52 L 3.75 192.52 L 1.81 187.11 L 1.81 193 M 0.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 14.59 190.24 L 13.36 187.12 L 12.13 190.24 M 14.59 190.24 M 15.68 193 L 14.89 191 L 11.83 191 L 11.04 193 L 10.08 193 L 12.95 185.77 L 13.96 185.77 L 16.79 193 M 15.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 23.59 190.24 L 22.36 187.12 L 21.13 190.24 M 23.59 190.24 M 24.68 193 L 23.89 191 L 20.83 191 L 20.04 193 L 19.08 193 L 21.95 185.77 L 22.96 185.77 L 25.79 193 M 24.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 30.65 193 L 30.65 186.54 L 28.09 186.54 L 28.09 185.77 L 34.24 185.77 L 34.24 186.54 L 31.68 186.54 L 31.68 193 M 30.65 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 37.72 190.47 L 37.72 189.75 L 42.06 189.75 L 42.06 190.47 M 37.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 46.72 190.47 L 46.72 189.75 L 51.06 189.75 L 51.06 190.47 M 46.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 55.72 190.47 L 55.72 189.75 L 60.06 189.75 L 60.06 190.47 M 55.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 64.72 190.47 L 64.72 189.75 L 69.06 189.75 L 69.06 190.47 M 64.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 73.72 190.47 L 73.72 189.75 L 78.06 189.75 L 78.06 190.47 M 73.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 82.72 190.47 L 82.72 189.75 L 87.06 189.75 L 87.06 190.47 M 82.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 91.72 190.47 L 91.72 189.75 L 96.06 189.75 L 96.06 190.47 M 91.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 100.72 190.47 L 100.72 189.75 L 105.06 189.75 L 105.06 190.47 M 100.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 109.72 190.47 L 109.72 189.75 L 114.06 189.75 L 114.06 190.47 M 109.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 122.59 190.24 L 121.36 187.12 L 120.13 190.24 M 122.59 190.24 M 123.68 193 L 122.89 191 L 119.83 191 L 119.04 193 L 118.08 193 L 120.95 185.77 L 121.96 185.77 L 124.79 193 M 123.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 128.93 193 L 128.93 185.77 L 129.96 185.77 L 129.96 192.23 L 133.21 192.23 L 133.21 193 M 128.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 139.35 193.18 Q 138.62 193.18 137.49 192.86 L 137.49 191.85 Q 138.71 192.41 139.5 192.41 Q 140.1 192.41 140.47 192.1 Q 140.84 191.78 140.84 191.26 Q 140.84 190.84 140.6 190.54 Q 140.35 190.24 139.71 189.88 L 139.21 189.59 Q 138.28 189.06 137.91 188.59 Q 137.53 188.13 137.53 187.51 Q 137.53 186.67 138.13 186.13 Q 138.74 185.59 139.68 185.59 Q 140.51 185.59 141.44 185.87 L 141.44 186.81 Q 140.3 186.36 139.73 186.36 Q 139.2 186.36 138.86 186.64 Q 138.51 186.93 138.51 187.36 Q 138.51 187.72 138.76 188 Q 139.02 188.27 139.69 188.66 L 140.21 188.95 Q 141.15 189.48 141.52 189.96 Q 141.89 190.43 141.89 191.1 Q 141.89 192.04 141.19 192.61 Q 140.5 193.18 139.35 193.18 M 139.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 144.93 193 L 144.93 185.77 L 146.35 185.77 L 148.36 191.36 L 150.42 185.77 L 151.69 185.77 L 151.69 193 L 150.73 193 L 150.73 187.12 L 148.74 192.52 L 147.75 192.52 L 145.81 187.11 L 145.81 193 M 144.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 157.35 193.18 Q 156.62 193.18 155.49 192.86 L 155.49 191.85 Q 156.71 192.41 157.5 192.41 Q 158.1 192.41 158.47 192.1 Q 158.84 191.78 158.84 191.26 Q 158.84 190.84 158.6 190.54 Q 158.35 190.24 157.71 189.88 L 157.21 189.59 Q 156.28 189.06 155.91 188.59 Q 155.53 188.13 155.53 187.51 Q 155.53 186.67 156.13 186.13 Q 156.74 185.59 157.68 185.59 Q 158.51 185.59 159.44 185.87 L 159.44 186.81 Q 158.3 186.36 157.73 186.36 Q 157.2 186.36 156.86 186.64 Q 156.51 186.93 156.51 187.36 Q 156.51 187.72 156.76 188 Q 157.02 188.27 157.69 188.66 L 158.21 188.95 Q 159.15 189.48 159.52 189.96 Q 159.89 190.43 159.89 191.1 Q 159.89 192.04 159.19 192.61 Q 158.5 193.18 157.35 193.18 M 157.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 165.93 193 L 165.93 185.77 L 166.95 185.77 L 166.95 193 M 165.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 173.93 193 L 173.93 185.77 L 174.96 185.77 L 174.96 192.23 L 178.21 192.23 L 178.21 193 M 173.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 181.93 193 L 181.93 185.77 L 184.12 185.77 Q 185.16 185.77 185.71 186.23 Q 186.27 186.69 186.27 187.57 Q 186.27 189.01 184.81 189.62 L 187.22 193 L 185.96 193 L 183.91 189.94 L 182.95 189.94 L 182.95 193 M 181.93 193 M 182.95 189.18 L 183.28 189.18 Q 185.21 189.18 185.21 187.66 Q 185.21 186.54 183.59 186.54 L 182.95 186.54 M 182.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 190.72 190.47 L 190.72 189.75 L 195.06 189.75 L 195.06 190.47 M 190.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 199.72 190.47 L 199.72 189.75 L 204.06 189.75 L 204.06 190.47 M 199.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 208.72 190.47 L 208.72 189.75 L 213.06 189.75 L 213.06 190.47 M 208.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 221.59 190.24 L 220.36 187.12 L 219.13 190.24 M 221.59 190.24 M 222.68 193 L 221.89 191 L 218.83 191 L 218.04 193 L 217.08 193 L 219.95 185.77 L 220.96 185.77 L 223.79 193 M 222.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 226.93 193 L 226.93 185.77 L 228.9 185.77 Q 230.21 185.77 230.78 186.22 Q 231.35 186.66 231.35 187.67 Q 231.35 188.82 230.57 189.47 Q 229.79 190.13 228.4 190.13 L 227.95 190.13 L 227.95 193 M 226.93 193 M 227.95 189.35 L 228.36 189.35 Q 229.28 189.35 229.77 188.93 Q 230.27 188.51 230.27 187.75 Q 230.27 187.1 229.88 186.82 Q 229.49 186.54 228.58 186.54 L 227.95 186.54 M 227.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 235.93 193 L 235.93 185.77 L 237.9 185.77 Q 239.21 185.77 239.78 186.22 Q 240.35 186.66 240.35 187.67 Q 240.35 188.82 239.57 189.47 Q 238.79 190.13 237.4 190.13 L 236.95 190.13 L 236.95 193 M 235.93 193 M 236.95 189.35 L 237.36 189.35 Q 238.28 189.35 238.77 188.93 Q 239.27 188.51 239.27 187.75 Q 239.27 187.1 238.88 186.82 Q 238.49 186.54 237.58 186.54 L 236.95 186.54 M 236.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 244.93 193 L 244.93 185.77 L 246.9 185.77 Q 248.21 185.77 248.78 186.22 Q 249.35 186.66 249.35 187.67 Q 249.35 188.82 248.57 189.47 Q 247.79 190.13 246.4 190.13 L 245.95 190.13 L 245.95 193 M 244.93 193 M 245.95 189.35 L 246.36 189.35 Q 247.28 189.35 247.77 188.93 Q 248.27 188.51 248.27 187.75 Q 248.27 187.1 247.88 186.82 Q 247.49 186.54 246.58 186.54 L 245.95 186.54 M 245.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 257.03 193.18 Q 255.34 193.18 254.43 192.19 Q 253.51 191.2 253.51 189.39 Q 253.51 187.58 254.44 186.59 Q 255.38 185.59 257.08 185.59 Q 258.05 185.59 259.35 185.91 L 259.35 186.87 Q 257.87 186.36 257.06 186.36 Q 255.89 186.36 255.24 187.16 Q 254.6 187.95 254.6 189.4 Q 254.6 190.78 255.29 191.58 Q 255.97 192.38 257.17 192.38 Q 258.19 192.38 259.36 191.75 L 259.36 192.63 Q 258.29 193.18 257.03 193.18 M 257.03 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 263.93 193 L 263.93 185.77 L 267.97 185.77 L 267.97 186.54 L 264.96 186.54 L 264.96 188.96 L 267.49 188.96 L 267.49 189.72 L 264.96 189.72 L 264.96 193 M 263.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 274.35 193.18 Q 273.62 193.18 272.49 192.86 L 272.49 191.85 Q 273.71 192.41 274.5 192.41 Q 275.1 192.41 275.47 192.1 Q 275.84 191.78 275.84 191.26 Q 275.84 190.84 275.6 190.54 Q 275.35 190.24 274.71 189.88 L 274.21 189.59 Q 273.28 189.06 272.91 188.59 Q 272.53 188.13 272.53 187.51 Q 272.53 186.67 273.13 186.13 Q 273.74 185.59 274.68 185.59 Q 275.51 185.59 276.44 185.87 L 276.44 186.81 Q 275.3 186.36 274.73 186.36 Q 274.2 186.36 273.86 186.64 Q 273.51 186.93 273.51 187.36 Q 273.51 187.72 273.76 188 Q 274.02 188.27 274.69 188.66 L 275.21 188.95 Q 276.15 189.48 276.52 189.96 Q 276.89 190.43 276.89 191.1 Q 276.89 192.04 276.19 192.61 Q 275.5 193.18 274.35 193.18 M 274.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 283.35 193.18 Q 282.62 193.18 281.49 192.86 L 281.49 191.85 Q 282.71 192.41 283.5 192.41 Q 284.1 192.41 284.47 192.1 Q 284.84 191.78 284.84 191.26 Q 284.84 190.84 284.6 190.54 Q 284.35 190.24 283.71 189.88 L 283.21 189.59 Q 282.28 189.06 281.91 188.59 Q 281.53 188.13 281.53 187.51 Q 281.53 186.67 282.13 186.13 Q 282.74 185.59 283.68 185.59 Q 284.51 185.59 285.44 185.87 L 285.44 186.81 Q 284.3 186.36 283.73 186.36 Q 283.2 186.36 282.86 186.64 Q 282.51 186.93 282.51 187.36 Q 282.51 187.72 282.76 188 Q 283.02 188.27 283.69 188.66 L 284.21 188.95 Q 285.15 189.48 285.52 189.96 Q 285.89 190.43 285.89 191.1 Q 285.89 192.04 285.19 192.61 Q 284.5 193.18 283.35 193.18 M 283.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 289.93 193 L 289.93 185.77 L 291.9 185.77 Q 293.21 185.77 293.78 186.22 Q 294.35 186.66 294.35 187.67 Q 294.35 188.82 293.57 189.47 Q 292.79 190.13 291.4 190.13 L 290.95 190.13 L 290.95 193 M 289.93 193 M 290.95 189.35 L 291.36 189.35 Q 292.28 189.35 292.77 188.93 Q 293.27 188.51 293.27 187.75 Q 293.27 187.1 292.88 186.82 Q 292.49 186.54 291.58 186.54 L 290.95 186.54 M 290.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 299.93 193 L 299.93 185.77 L 300.96 185.77 L 300.96 192.23 L 304.21 192.23 L 304.21 193 M 299.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 307.93 193 L 307.93 185.77 L 310.12 185.77 Q 311.16 185.77 311.71 186.23 Q 312.27 186.69 312.27 187.57 Q 312.27 189.01 310.81 189.62 L 313.22 193 L 311.96 193 L 309.91 189.94 L 308.95 189.94 L 308.95 193 M 307.93 193 M 308.95 189.18 L 309.28 189.18 Q 311.21 189.18 311.21 187.66 Q 311.21 186.54 309.59 186.54 L 308.95 186.54 M 308.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 317.93 193 L 317.93 185.77 L 318.96 185.77 L 318.96 192.23 L 322.21 192.23 L 322.21 193 M 317.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 325.93 193 L 325.93 185.77 L 328.12 185.77 Q 329.16 185.77 329.71 186.23 Q 330.27 186.69 330.27 187.57 Q 330.27 189.01 328.81 189.62 L 331.22 193 L 329.96 193 L 327.91 189.94 L 326.95 189.94 L 326.95 193 M 325.93 193 M 326.95 189.18 L 327.28 189.18 Q 329.21 189.18 329.21 187.66 Q 329.21 186.54 327.59 186.54 L 326.95 186.54 M 326.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 336.91 193 L 334.18 185.77 L 335.2 185.77 L 337.44 191.69 L 339.6 185.77 L 340.49 185.77 L 337.87 193 M 336.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 343.72 190.47 L 343.72 189.75 L 348.06 189.75 L 348.06 190.47 M 343.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 352.72 190.47 L 352.72 189.75 L 357.06 189.75 L 357.06 190.47 M 352.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 365.59 190.24 L 364.36 187.12 L 363.13 190.24 M 365.59 190.24 M 366.68 193 L 365.89 191 L 362.83 191 L 362.04 193 L 361.08 193 L 363.95 185.77 L 364.96 185.77 L 367.79 193 M 366.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 372.91 193 L 370.18 185.77 L 371.2 185.77 L 373.44 191.69 L 375.6 185.77 L 376.49 185.77 L 373.87 193 M 372.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 383.59 190.24 L 382.36 187.12 L 381.13 190.24 M 383.59 190.24 M 384.68 193 L 383.89 191 L 380.83 191 L 380.04 193 L 379.08 193 L 381.95 185.77 L 382.96 185.77 L 385.79 193 M 384.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 388.93 193 L 388.93 185.77 L 389.89 185.77 L 389.89 189.33 L 392.82 185.77 L 393.85 185.77 L 391.02 189.22 L 394.35 193 L 393.05 193 L 389.89 189.34 L 389.89 193 M 388.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 397.93 193 L 397.93 185.77 L 399.9 185.77 Q 401.21 185.77 401.78 186.22 Q 402.35 186.66 402.35 187.67 Q 402.35 188.82 401.57 189.47 Q 400.79 190.13 399.4 190.13 L 398.95 190.13 L 398.95 193 M 397.93 193 M 398.95 189.35 L 399.36 189.35 Q 400.28 189.35 400.77 188.93 Q 401.27 188.51 401.27 187.75 Q 401.27 187.1 400.88 186.82 Q 400.49 186.54 399.58 186.54 L 398.95 186.54 M 398.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 407.93 193 L 407.93 185.77 L 408.96 185.77 L 408.96 192.23 L 412.21 192.23 L 412.21 193 M 407.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 419.59 190.24 L 418.36 187.12 L 417.13 190.24 M 419.59 190.24 M 420.68 193 L 419.89 191 L 416.83 191 L 416.04 193 L 415.08 193 L 417.95 185.77 L 418.96 185.77 L 421.79 193 M 420.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 424.72 190.47 L 424.72 189.75 L 429.06 189.75 L 429.06 190.47 M 424.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 437.59 190.24 L 436.36 187.12 L 435.13 190.24 M 437.59 190.24 M 438.68 193 L 437.89 191 L 434.83 191 L 434.04 193 L 433.08 193 L 435.95 185.77 L 436.96 185.77 L 439.79 193 M 438.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 442.93 193 L 442.93 185.77 L 444.9 185.77 Q 446.21 185.77 446.78 186.22 Q 447.35 186.66 447.35 187.67 Q 447.35 188.82 446.57 189.47 Q 445.79 190.13 444.4 190.13 L 443.95 190.13 L 443.95 193 M 442.93 193 M 443.95 189.35 L 444.36 189.35 Q 445.28 189.35 445.77 188.93 Q 446.27 188.51 446.27 187.75 Q 446.27 187.1 445.88 186.82 Q 445.49 186.54 444.58 186.54 L 443.95 186.54 M 443.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 450.93 193 L 450.93 185.77 L 452.35 185.77 L 454.36 191.36 L 456.42 185.77 L 457.69 185.77 L 457.69 193 L 456.73 193 L 456.73 187.12 L 454.74 192.52 L 453.75 192.52 L 451.81 187.11 L 451.81 193 M 450.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 460.93 193 L 460.93 185.77 L 463.12 185.77 Q 464.16 185.77 464.71 186.23 Q 465.27 186.69 465.27 187.57 Q 465.27 189.01 463.81 189.62 L 466.22 193 L 464.96 193 L 462.91 189.94 L 461.95 189.94 L 461.95 193 M 460.93 193 M 461.95 189.18 L 462.28 189.18 Q 464.21 189.18 464.21 187.66 Q 464.21 186.54 462.59 186.54 L 461.95 186.54 M 461.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 469.93 193 L 469.93 185.77 L 472.12 185.77 Q 473.16 185.77 473.71 186.23 Q 474.27 186.69 474.27 187.57 Q 474.27 189.01 472.81 189.62 L 475.22 193 L 473.96 193 L 471.91 189.94 L 470.95 189.94 L 470.95 193 M 469.93 193 M 470.95 189.18 L 471.28 189.18 Q 473.21 189.18 473.21 187.66 Q 473.21 186.54 471.59 186.54 L 470.95 186.54 M 470.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 484.35 194.45 Q 482.64 193.89 481.49 193.13 Q 481.03 193.18 480.78 193.18 Q 479.33 193.18 478.42 192.13 Q 477.51 191.07 477.51 189.39 Q 477.51 187.66 478.43 186.63 Q 479.35 185.59 480.89 185.59 Q 482.43 185.59 483.35 186.63 Q 484.27 187.66 484.27 189.4 Q 484.27 191.89 482.42 192.85 Q 483.66 193.4 485 193.63 M 484.35 194.45 M 480.86 192.41 Q 481.97 192.41 482.57 191.62 Q 483.18 190.82 483.18 189.37 Q 483.18 187.96 482.57 187.16 Q 481.97 186.36 480.89 186.36 Q 479.81 186.36 479.2 187.16 Q 478.6 187.96 478.6 189.38 Q 478.6 190.79 479.2 191.6 Q 479.8 192.41 480.86 192.41 M 480.86 192.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 488.93 193 L 488.93 185.77 L 489.96 185.77 L 489.96 192.23 L 493.21 192.23 L 493.21 193 M 488.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 497.93 193 L 497.93 185.77 L 498.96 185.77 L 498.96 192.23 L 502.21 192.23 L 502.21 193 M 497.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 505.93 193 L 505.93 185.77 L 508.12 185.77 Q 509.16 185.77 509.71 186.23 Q 510.27 186.69 510.27 187.57 Q 510.27 189.01 508.81 189.62 L 511.22 193 L 509.96 193 L 507.91 189.94 L 506.95 189.94 L 506.95 193 M 505.93 193 M 506.95 189.18 L 507.28 189.18 Q 509.21 189.18 509.21 187.66 Q 509.21 186.54 507.59 186.54 L 506.95 186.54 M 506.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 518.59 190.24 L 517.36 187.12 L 516.13 190.24 M 518.59 190.24 M 519.68 193 L 518.89 191 L 515.83 191 L 515.04 193 L 514.08 193 L 516.95 185.77 L 517.96 185.77 L 520.79 193 M 519.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 529.35 194.45 Q 527.64 193.89 526.49 193.13 Q 526.03 193.18 525.78 193.18 Q 524.33 193.18 523.42 192.13 Q 522.51 191.07 522.51 189.39 Q 522.51 187.66 523.43 186.63 Q 524.35 185.59 525.89 185.59 Q 527.43 185.59 528.35 186.63 Q 529.27 187.66 529.27 189.4 Q 529.27 191.89 527.42 192.85 Q 528.66 193.4 530 193.63 M 529.35 194.45 M 525.86 192.41 Q 526.97 192.41 527.57 191.62 Q 528.18 190.82 528.18 189.37 Q 528.18 187.96 527.57 187.16 Q 526.97 186.36 525.89 186.36 Q 524.81 186.36 524.2 187.16 Q 523.6 187.96 523.6 189.38 Q 523.6 190.79 524.2 191.6 Q 524.8 192.41 525.86 192.41 M 525.86 192.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 536.59 190.24 L 535.36 187.12 L 534.13 190.24 M 536.59 190.24 M 537.68 193 L 536.89 191 L 533.83 191 L 533.04 193 L 532.08 193 L 534.95 185.77 L 535.96 185.77 L 538.79 193 M 537.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 543.65 193 L 543.65 186.54 L 541.09 186.54 L 541.09 185.77 L 547.24 185.77 L 547.24 186.54 L 544.68 186.54 L 544.68 193 M 543.65 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 552.5 193 L 552.5 189.98 L 550.08 185.77 L 551.25 185.77 L 553.13 189.04 L 555.15 185.77 L 556.1 185.77 L 553.52 189.96 L 553.52 193 M 552.5 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 559.93 193 L 559.93 185.77 L 560.94 185.77 L 564.58 191.35 L 564.58 185.77 L 565.46 185.77 L 565.46 193 L 564.45 193 L 560.81 187.42 L 560.81 193 M 559.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 570.91 193 L 568.18 185.77 L 569.2 185.77 L 571.44 191.69 L 573.6 185.77 L 574.49 185.77 L 571.87 193 M 570.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 577.93 193 L 577.93 185.77 L 578.89 185.77 L 578.89 189.33 L 581.82 185.77 L 582.85 185.77 L 580.02 189.22 L 583.35 193 L 582.05 193 L 578.89 189.34 L 578.89 193 M 577.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 587.93 193 L 587.93 185.77 L 588.96 185.77 L 588.96 192.23 L 592.21 192.23 L 592.21 193 M 587.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 597.93 193 L 597.93 185.77 L 598.95 185.77 L 598.95 193 M 597.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 606.65 193 L 606.65 186.54 L 604.09 186.54 L 604.09 185.77 L 610.24 185.77 L 610.24 186.54 L 607.68 186.54 L 607.68 193 M 606.65 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 613.93 193 L 613.93 185.77 L 615.9 185.77 Q 617.21 185.77 617.78 186.22 Q 618.35 186.66 618.35 187.67 Q 618.35 188.82 617.57 189.47 Q 616.79 190.13 615.4 190.13 L 614.95 190.13 L 614.95 193 M 613.93 193 M 614.95 189.35 L 615.36 189.35 Q 616.28 189.35 616.77 188.93 Q 617.27 188.51 617.27 187.75 Q 617.27 187.1 616.88 186.82 Q 616.49 186.54 615.58 186.54 L 614.95 186.54 M 614.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 623.93 193 L 623.93 185.77 L 627.97 185.77 L 627.97 186.54 L 624.96 186.54 L 624.96 188.86 L 627.48 188.86 L 627.48 189.62 L 624.96 189.62 L 624.96 192.23 L 628.18 192.23 L 628.18 193 M 623.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 637.36 192.8 Q 636.05 193.18 635.07 193.18 Q 633.35 193.18 632.43 192.2 Q 631.51 191.22 631.51 189.39 Q 631.51 187.59 632.44 186.59 Q 633.37 185.59 635.06 185.59 Q 636.16 185.59 637.35 185.92 L 637.35 186.87 Q 635.86 186.36 635.06 186.36 Q 633.89 186.36 633.24 187.16 Q 632.6 187.95 632.6 189.4 Q 632.6 190.83 633.29 191.62 Q 633.98 192.41 635.23 192.41 Q 635.75 192.41 636.34 192.23 L 636.34 189.88 L 637.36 189.88 M 637.36 192.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 641.93 193 L 641.93 185.77 L 645.97 185.77 L 645.97 186.54 L 642.96 186.54 L 642.96 188.86 L 645.48 188.86 L 645.48 189.62 L 642.96 189.62 L 642.96 192.23 L 646.18 192.23 L 646.18 193 M 641.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 651.91 193 L 649.18 185.77 L 650.2 185.77 L 652.44 191.69 L 654.6 185.77 L 655.49 185.77 L 652.87 193 M 651.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 659.93 193 L 659.93 185.77 L 663.97 185.77 L 663.97 186.54 L 660.96 186.54 L 660.96 188.86 L 663.48 188.86 L 663.48 189.62 L 660.96 189.62 L 660.96 192.23 L 664.18 192.23 L 664.18 193 M 659.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 668.93 193 L 668.93 185.77 L 669.96 185.77 L 669.96 192.23 L 673.21 192.23 L 673.21 193 M 668.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 682.35 194.45 Q 680.64 193.89 679.49 193.13 Q 679.03 193.18 678.78 193.18 Q 677.33 193.18 676.42 192.13 Q 675.51 191.07 675.51 189.39 Q 675.51 187.66 676.43 186.63 Q 677.35 185.59 678.89 185.59 Q 680.43 185.59 681.35 186.63 Q 682.27 187.66 682.27 189.4 Q 682.27 191.89 680.42 192.85 Q 681.66 193.4 683 193.63 M 682.35 194.45 M 678.86 192.41 Q 679.97 192.41 680.57 191.62 Q 681.18 190.82 681.18 189.37 Q 681.18 187.96 680.57 187.16 Q 679.97 186.36 678.89 186.36 Q 677.81 186.36 677.2 187.16 Q 676.6 187.96 676.6 189.38 Q 676.6 190.79 677.2 191.6 Q 677.8 192.41 678.86 192.41 M 678.86 192.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 687.91 193 L 685.18 185.77 L 686.2 185.77 L 688.44 191.69 L 690.6 185.77 L 691.49 185.77 L 688.87 193 M 687.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 694.93 193 L 694.93 185.77 L 696.9 185.77 Q 698.21 185.77 698.78 186.22 Q 699.35 186.66 699.35 187.67 Q 699.35 188.82 698.57 189.47 Q 697.79 190.13 696.4 190.13 L 695.95 190.13 L 695.95 193 M 694.93 193 M 695.95 189.35 L 696.36 189.35 Q 697.28 189.35 697.77 188.93 Q 698.27 188.51 698.27 187.75 Q 698.27 187.1 697.88 186.82 Q 697.49 186.54 696.58 186.54 L 695.95 186.54 M 695.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 703.93 193 L 703.93 185.77 L 706.33 185.77 Q 707.41 185.77 708.07 186.01 Q 708.73 186.25 709.22 186.82 Q 709.98 187.73 709.98 189.22 Q 709.98 191.02 709.03 192.01 Q 708.08 193 706.35 193 M 703.93 193 M 704.96 192.23 L 706.27 192.23 Q 707.68 192.23 708.26 191.48 Q 708.89 190.67 708.89 189.31 Q 708.89 188.04 708.27 187.31 Q 707.9 186.87 707.38 186.7 Q 706.85 186.54 705.8 186.54 L 704.96 186.54 M 704.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 712.93 193 L 712.93 185.77 L 715.33 185.77 Q 716.41 185.77 717.07 186.01 Q 717.73 186.25 718.22 186.82 Q 718.98 187.73 718.98 189.22 Q 718.98 191.02 718.03 192.01 Q 717.08 193 715.35 193 M 712.93 193 M 713.96 192.23 L 715.27 192.23 Q 716.68 192.23 717.26 191.48 Q 717.89 190.67 717.89 189.31 Q 717.89 188.04 717.27 187.31 Q 716.9 186.87 716.38 186.7 Q 715.85 186.54 714.8 186.54 L 713.96 186.54 M 713.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 723.91 193 L 721.18 185.77 L 722.2 185.77 L 724.44 191.69 L 726.6 185.77 L 727.49 185.77 L 724.87 193 M 723.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 732.5 193 L 732.5 189.98 L 730.08 185.77 L 731.25 185.77 L 733.13 189.04 L 735.15 185.77 L 736.1 185.77 L 733.52 189.96 L 733.52 193 M 732.5 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 741.93 193 L 741.93 185.77 L 742.95 185.77 L 742.95 193 M 741.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 749.93 193 L 749.93 185.77 L 750.96 185.77 L 750.96 192.23 L 754.21 192.23 L 754.21 193 M 749.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 757.93 193 L 757.93 185.77 L 760.33 185.77 Q 761.41 185.77 762.07 186.01 Q 762.73 186.25 763.22 186.82 Q 763.98 187.73 763.98 189.22 Q 763.98 191.02 763.03 192.01 Q 762.08 193 760.35 193 M 757.93 193 M 758.96 192.23 L 760.27 192.23 Q 761.68 192.23 762.26 191.48 Q 762.89 190.67 762.89 189.31 Q 762.89 188.04 762.27 187.31 Q 761.9 186.87 761.38 186.7 Q 760.85 186.54 759.8 186.54 L 758.96 186.54 M 758.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 767.93 193 L 767.93 185.77 L 771.97 185.77 L 771.97 186.54 L 768.96 186.54 L 768.96 188.96 L 771.49 188.96 L 771.49 189.72 L 768.96 189.72 L 768.96 193 M 767.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 779.59 190.24 L 778.36 187.12 L 777.13 190.24 M 779.59 190.24 M 780.68 193 L 779.89 191 L 776.83 191 L 776.04 193 L 775.08 193 L 777.95 185.77 L 778.96 185.77 L 781.79 193 M 780.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 785.93 193 L 785.93 185.77 L 789.97 185.77 L 789.97 186.54 L 786.96 186.54 L 786.96 188.86 L 789.48 188.86 L 789.48 189.62 L 786.96 189.62 L 786.96 192.23 L 790.18 192.23 L 790.18 193 M 785.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 794.93 193 L 794.93 185.77 L 798.97 185.77 L 798.97 186.54 L 795.96 186.54 L 795.96 188.86 L 798.48 188.86 L 798.48 189.62 L 795.96 189.62 L 795.96 192.23 L 799.18 192.23 L 799.18 193 M 794.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 803.93 193 L 803.93 185.77 L 807.97 185.77 L 807.97 186.54 L 804.96 186.54 L 804.96 188.86 L 807.48 188.86 L 807.48 189.62 L 804.96 189.62 L 804.96 192.23 L 808.18 192.23 L 808.18 193 M 803.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 817.36 192.8 Q 816.05 193.18 815.07 193.18 Q 813.35 193.18 812.43 192.2 Q 811.51 191.22 811.51 189.39 Q 811.51 187.59 812.44 186.59 Q 813.37 185.59 815.06 185.59 Q 816.16 185.59 817.35 185.92 L 817.35 186.87 Q 815.86 186.36 815.06 186.36 Q 813.89 186.36 813.24 187.16 Q 812.6 187.95 812.6 189.4 Q 812.6 190.83 813.29 191.62 Q 813.98 192.41 815.23 192.41 Q 815.75 192.41 816.34 192.23 L 816.34 189.88 L 817.36 189.88 M 817.36 192.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 822.93 193 L 822.93 185.77 L 823.95 185.77 L 823.95 193 M 822.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 829.93 193 L 829.93 185.77 L 832.33 185.77 Q 833.41 185.77 834.07 186.01 Q 834.73 186.25 835.22 186.82 Q 835.98 187.73 835.98 189.22 Q 835.98 191.02 835.03 192.01 Q 834.08 193 832.35 193 M 829.93 193 M 830.96 192.23 L 832.27 192.23 Q 833.68 192.23 834.26 191.48 Q 834.89 190.67 834.89 189.31 Q 834.89 188.04 834.27 187.31 Q 833.9 186.87 833.38 186.7 Q 832.85 186.54 831.8 186.54 L 830.96 186.54 M 830.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 839.93 193 L 839.93 185.77 L 840.96 185.77 L 840.96 192.23 L 844.21 192.23 L 844.21 193 M 839.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 847.93 193 L 847.93 185.77 L 849.9 185.77 Q 851.21 185.77 851.78 186.22 Q 852.35 186.66 852.35 187.67 Q 852.35 188.82 851.57 189.47 Q 850.79 190.13 849.4 190.13 L 848.95 190.13 L 848.95 193 M 847.93 193 M 848.95 189.35 L 849.36 189.35 Q 850.28 189.35 850.77 188.93 Q 851.27 188.51 851.27 187.75 Q 851.27 187.1 850.88 186.82 Q 850.49 186.54 849.58 186.54 L 848.95 186.54 M 848.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 857.93 193 L 857.93 185.77 L 861.97 185.77 L 861.97 186.54 L 858.96 186.54 L 858.96 188.96 L 861.49 188.96 L 861.49 189.72 L 858.96 189.72 L 858.96 193 M 857.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 868.35 193.18 Q 867.62 193.18 866.49 192.86 L 866.49 191.85 Q 867.71 192.41 868.5 192.41 Q 869.1 192.41 869.47 192.1 Q 869.84 191.78 869.84 191.26 Q 869.84 190.84 869.6 190.54 Q 869.35 190.24 868.71 189.88 L 868.21 189.59 Q 867.28 189.06 866.91 188.59 Q 866.53 188.13 866.53 187.51 Q 866.53 186.67 867.13 186.13 Q 867.74 185.59 868.68 185.59 Q 869.51 185.59 870.44 185.87 L 870.44 186.81 Q 869.3 186.36 868.73 186.36 Q 868.2 186.36 867.86 186.64 Q 867.51 186.93 867.51 187.36 Q 867.51 187.72 867.76 188 Q 868.02 188.27 868.69 188.66 L 869.21 188.95 Q 870.15 189.48 870.52 189.96 Q 870.89 190.43 870.89 191.1 Q 870.89 192.04 870.19 192.61 Q 869.5 193.18 868.35 193.18 M 868.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 878.03 193.18 Q 876.34 193.18 875.43 192.19 Q 874.51 191.2 874.51 189.39 Q 874.51 187.58 875.44 186.59 Q 876.38 185.59 878.08 185.59 Q 879.05 185.59 880.35 185.91 L 880.35 186.87 Q 878.87 186.36 878.06 186.36 Q 876.89 186.36 876.24 187.16 Q 875.6 187.95 875.6 189.4 Q 875.6 190.78 876.29 191.58 Q 876.97 192.38 878.17 192.38 Q 879.19 192.38 880.36 191.75 L 880.36 192.63 Q 879.29 193.18 878.03 193.18 M 878.03 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 883.93 193 L 883.93 185.77 L 886.12 185.77 Q 887.16 185.77 887.71 186.23 Q 888.27 186.69 888.27 187.57 Q 888.27 189.01 886.81 189.62 L 889.22 193 L 887.96 193 L 885.91 189.94 L 884.95 189.94 L 884.95 193 M 883.93 193 M 884.95 189.18 L 885.28 189.18 Q 887.21 189.18 887.21 187.66 Q 887.21 186.54 885.59 186.54 L 884.95 186.54 M 884.95 189.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 896.59 190.24 L 895.36 187.12 L 894.13 190.24 M 896.59 190.24 M 897.68 193 L 896.89 191 L 893.83 191 L 893.04 193 L 892.08 193 L 894.95 185.77 L 895.96 185.77 L 898.79 193 M 897.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 907.36 192.8 Q 906.05 193.18 905.07 193.18 Q 903.35 193.18 902.43 192.2 Q 901.51 191.22 901.51 189.39 Q 901.51 187.59 902.44 186.59 Q 903.37 185.59 905.06 185.59 Q 906.16 185.59 907.35 185.92 L 907.35 186.87 Q 905.86 186.36 905.06 186.36 Q 903.89 186.36 903.24 187.16 Q 902.6 187.95 902.6 189.4 Q 902.6 190.83 903.29 191.62 Q 903.98 192.41 905.23 192.41 Q 905.75 192.41 906.34 192.23 L 906.34 189.88 L 907.36 189.88 M 907.36 192.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 913.35 193.18 Q 912.62 193.18 911.49 192.86 L 911.49 191.85 Q 912.71 192.41 913.5 192.41 Q 914.1 192.41 914.47 192.1 Q 914.84 191.78 914.84 191.26 Q 914.84 190.84 914.6 190.54 Q 914.35 190.24 913.71 189.88 L 913.21 189.59 Q 912.28 189.06 911.91 188.59 Q 911.53 188.13 911.53 187.51 Q 911.53 186.67 912.13 186.13 Q 912.74 185.59 913.68 185.59 Q 914.51 185.59 915.44 185.87 L 915.44 186.81 Q 914.3 186.36 913.73 186.36 Q 913.2 186.36 912.86 186.64 Q 912.51 186.93 912.51 187.36 Q 912.51 187.72 912.76 188 Q 913.02 188.27 913.69 188.66 L 914.21 188.95 Q 915.15 189.48 915.52 189.96 Q 915.89 190.43 915.89 191.1 Q 915.89 192.04 915.19 192.61 Q 914.5 193.18 913.35 193.18 M 913.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 923.03 193.18 Q 921.34 193.18 920.43 192.19 Q 919.51 191.2 919.51 189.39 Q 919.51 187.58 920.44 186.59 Q 921.38 185.59 923.08 185.59 Q 924.05 185.59 925.35 185.91 L 925.35 186.87 Q 923.87 186.36 923.06 186.36 Q 921.89 186.36 921.24 187.16 Q 920.6 187.95 920.6 189.4 Q 920.6 190.78 921.29 191.58 Q 921.97 192.38 923.17 192.38 Q 924.19 192.38 925.36 191.75 L 925.36 192.63 Q 924.29 193.18 923.03 193.18 M 923.03 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 931.35 193.18 Q 930.62 193.18 929.49 192.86 L 929.49 191.85 Q 930.71 192.41 931.5 192.41 Q 932.1 192.41 932.47 192.1 Q 932.84 191.78 932.84 191.26 Q 932.84 190.84 932.6 190.54 Q 932.35 190.24 931.71 189.88 L 931.21 189.59 Q 930.28 189.06 929.91 188.59 Q 929.53 188.13 929.53 187.51 Q 929.53 186.67 930.13 186.13 Q 930.74 185.59 931.68 185.59 Q 932.51 185.59 933.44 185.87 L 933.44 186.81 Q 932.3 186.36 931.73 186.36 Q 931.2 186.36 930.86 186.64 Q 930.51 186.93 930.51 187.36 Q 930.51 187.72 930.76 188 Q 931.02 188.27 931.69 188.66 L 932.21 188.95 Q 933.15 189.48 933.52 189.96 Q 933.89 190.43 933.89 191.1 Q 933.89 192.04 933.19 192.61 Q 932.5 193.18 931.35 193.18 M 931.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 940.35 193.18 Q 939.62 193.18 938.49 192.86 L 938.49 191.85 Q 939.71 192.41 940.5 192.41 Q 941.1 192.41 941.47 192.1 Q 941.84 191.78 941.84 191.26 Q 941.84 190.84 941.6 190.54 Q 941.35 190.24 940.71 189.88 L 940.21 189.59 Q 939.28 189.06 938.91 188.59 Q 938.53 188.13 938.53 187.51 Q 938.53 186.67 939.13 186.13 Q 939.74 185.59 940.68 185.59 Q 941.51 185.59 942.44 185.87 L 942.44 186.81 Q 941.3 186.36 940.73 186.36 Q 940.2 186.36 939.86 186.64 Q 939.51 186.93 939.51 187.36 Q 939.51 187.72 939.76 188 Q 940.02 188.27 940.69 188.66 L 941.21 188.95 Q 942.15 189.48 942.52 189.96 Q 942.89 190.43 942.89 191.1 Q 942.89 192.04 942.19 192.61 Q 941.5 193.18 940.35 193.18 M 940.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 950.03 193.18 Q 948.34 193.18 947.43 192.19 Q 946.51 191.2 946.51 189.39 Q 946.51 187.58 947.44 186.59 Q 948.38 185.59 950.08 185.59 Q 951.05 185.59 952.35 185.91 L 952.35 186.87 Q 950.87 186.36 950.06 186.36 Q 948.89 186.36 948.24 187.16 Q 947.6 187.95 947.6 189.4 Q 947.6 190.78 948.29 191.58 Q 948.97 192.38 950.17 192.38 Q 951.19 192.38 952.36 191.75 L 952.36 192.63 Q 951.29 193.18 950.03 193.18 M 950.03 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 959.59 190.24 L 958.36 187.12 L 957.13 190.24 M 959.59 190.24 M 960.68 193 L 959.89 191 L 956.83 191 L 956.04 193 L 955.08 193 L 957.95 185.77 L 958.96 185.77 L 961.79 193 M 960.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 970.36 192.8 Q 969.05 193.18 968.07 193.18 Q 966.35 193.18 965.43 192.2 Q 964.51 191.22 964.51 189.39 Q 964.51 187.59 965.44 186.59 Q 966.37 185.59 968.06 185.59 Q 969.16 185.59 970.35 185.92 L 970.35 186.87 Q 968.86 186.36 968.06 186.36 Q 966.89 186.36 966.24 187.16 Q 965.6 187.95 965.6 189.4 Q 965.6 190.83 966.29 191.62 Q 966.98 192.41 968.23 192.41 Q 968.75 192.41 969.34 192.23 L 969.34 189.88 L 970.36 189.88 M 970.36 192.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 973.93 193 L 973.93 185.77 L 974.89 185.77 L 974.89 189.33 L 977.82 185.77 L 978.85 185.77 L 976.02 189.22 L 979.35 193 L 978.05 193 L 974.89 189.34 L 974.89 193 M 973.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 984.91 193 L 982.18 185.77 L 983.2 185.77 L 985.44 191.69 L 987.6 185.77 L 988.49 185.77 L 985.87 193 M 984.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 993.91 193 L 991.18 185.77 L 992.2 185.77 L 994.44 191.69 L 996.6 185.77 L 997.49 185.77 L 994.87 193 M 993.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1003.35 193.18 Q 1002.62 193.18 1001.49 192.86 L 1001.49 191.85 Q 1002.71 192.41 1003.5 192.41 Q 1004.1 192.41 1004.47 192.1 Q 1004.84 191.78 1004.84 191.26 Q 1004.84 190.84 1004.6 190.54 Q 1004.35 190.24 1003.71 189.88 L 1003.21 189.59 Q 1002.28 189.06 1001.91 188.59 Q 1001.53 188.13 1001.53 187.51 Q 1001.53 186.67 1002.13 186.13 Q 1002.74 185.59 1003.68 185.59 Q 1004.51 185.59 1005.44 185.87 L 1005.44 186.81 Q 1004.3 186.36 1003.73 186.36 Q 1003.2 186.36 1002.86 186.64 Q 1002.51 186.93 1002.51 187.36 Q 1002.51 187.72 1002.76 188 Q 1003.02 188.27 1003.69 188.66 L 1004.21 188.95 Q 1005.15 189.48 1005.52 189.96 Q 1005.89 190.43 1005.89 191.1 Q 1005.89 192.04 1005.19 192.61 Q 1004.5 193.18 1003.35 193.18 M 1003.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1015.36 192.8 Q 1014.05 193.18 1013.07 193.18 Q 1011.35 193.18 1010.43 192.2 Q 1009.51 191.22 1009.51 189.39 Q 1009.51 187.59 1010.44 186.59 Q 1011.37 185.59 1013.06 185.59 Q 1014.16 185.59 1015.35 185.92 L 1015.35 186.87 Q 1013.86 186.36 1013.06 186.36 Q 1011.89 186.36 1011.24 187.16 Q 1010.6 187.95 1010.6 189.4 Q 1010.6 190.83 1011.29 191.62 Q 1011.98 192.41 1013.23 192.41 Q 1013.75 192.41 1014.34 192.23 L 1014.34 189.88 L 1015.36 189.88 M 1015.36 192.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1021.35 193.18 Q 1020.62 193.18 1019.49 192.86 L 1019.49 191.85 Q 1020.71 192.41 1021.5 192.41 Q 1022.1 192.41 1022.47 192.1 Q 1022.84 191.78 1022.84 191.26 Q 1022.84 190.84 1022.6 190.54 Q 1022.35 190.24 1021.71 189.88 L 1021.21 189.59 Q 1020.28 189.06 1019.91 188.59 Q 1019.53 188.13 1019.53 187.51 Q 1019.53 186.67 1020.13 186.13 Q 1020.74 185.59 1021.68 185.59 Q 1022.51 185.59 1023.44 185.87 L 1023.44 186.81 Q 1022.3 186.36 1021.73 186.36 Q 1021.2 186.36 1020.86 186.64 Q 1020.51 186.93 1020.51 187.36 Q 1020.51 187.72 1020.76 188 Q 1021.02 188.27 1021.69 188.66 L 1022.21 188.95 Q 1023.15 189.48 1023.52 189.96 Q 1023.89 190.43 1023.89 191.1 Q 1023.89 192.04 1023.19 192.61 Q 1022.5 193.18 1021.35 193.18 M 1021.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1029.91 193 L 1027.18 185.77 L 1028.2 185.77 L 1030.44 191.69 L 1032.6 185.77 L 1033.49 185.77 L 1030.87 193 M 1029.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1036.93 193 L 1036.93 185.77 L 1039.33 185.77 Q 1040.41 185.77 1041.07 186.01 Q 1041.73 186.25 1042.22 186.82 Q 1042.98 187.73 1042.98 189.22 Q 1042.98 191.02 1042.03 192.01 Q 1041.08 193 1039.35 193 M 1036.93 193 M 1037.96 192.23 L 1039.27 192.23 Q 1040.68 192.23 1041.26 191.48 Q 1041.89 190.67 1041.89 189.31 Q 1041.89 188.04 1041.27 187.31 Q 1040.9 186.87 1040.38 186.7 Q 1039.85 186.54 1038.8 186.54 L 1037.96 186.54 M 1037.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1051.35 194.45 Q 1049.64 193.89 1048.49 193.13 Q 1048.03 193.18 1047.78 193.18 Q 1046.33 193.18 1045.42 192.13 Q 1044.51 191.07 1044.51 189.39 Q 1044.51 187.66 1045.43 186.63 Q 1046.35 185.59 1047.89 185.59 Q 1049.43 185.59 1050.35 186.63 Q 1051.27 187.66 1051.27 189.4 Q 1051.27 191.89 1049.42 192.85 Q 1050.66 193.4 1052 193.63 M 1051.35 194.45 M 1047.86 192.41 Q 1048.97 192.41 1049.57 191.62 Q 1050.18 190.82 1050.18 189.37 Q 1050.18 187.96 1049.57 187.16 Q 1048.97 186.36 1047.89 186.36 Q 1046.81 186.36 1046.2 187.16 Q 1045.6 187.96 1045.6 189.38 Q 1045.6 190.79 1046.2 191.6 Q 1046.8 192.41 1047.86 192.41 M 1047.86 192.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1057.35 193.18 Q 1056.62 193.18 1055.49 192.86 L 1055.49 191.85 Q 1056.71 192.41 1057.5 192.41 Q 1058.1 192.41 1058.47 192.1 Q 1058.84 191.78 1058.84 191.26 Q 1058.84 190.84 1058.6 190.54 Q 1058.35 190.24 1057.71 189.88 L 1057.21 189.59 Q 1056.28 189.06 1055.91 188.59 Q 1055.53 188.13 1055.53 187.51 Q 1055.53 186.67 1056.13 186.13 Q 1056.74 185.59 1057.68 185.59 Q 1058.51 185.59 1059.44 185.87 L 1059.44 186.81 Q 1058.3 186.36 1057.73 186.36 Q 1057.2 186.36 1056.86 186.64 Q 1056.51 186.93 1056.51 187.36 Q 1056.51 187.72 1056.76 188 Q 1057.02 188.27 1057.69 188.66 L 1058.21 188.95 Q 1059.15 189.48 1059.52 189.96 Q 1059.89 190.43 1059.89 191.1 Q 1059.89 192.04 1059.19 192.61 Q 1058.5 193.18 1057.35 193.18 M 1057.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1063.93 193 L 1063.93 185.77 L 1066.33 185.77 Q 1067.41 185.77 1068.07 186.01 Q 1068.73 186.25 1069.22 186.82 Q 1069.98 187.73 1069.98 189.22 Q 1069.98 191.02 1069.03 192.01 Q 1068.08 193 1066.35 193 M 1063.93 193 M 1064.96 192.23 L 1066.27 192.23 Q 1067.68 192.23 1068.26 191.48 Q 1068.89 190.67 1068.89 189.31 Q 1068.89 188.04 1068.27 187.31 Q 1067.9 186.87 1067.38 186.7 Q 1066.85 186.54 1065.8 186.54 L 1064.96 186.54 M 1064.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1078.35 194.45 Q 1076.64 193.89 1075.49 193.13 Q 1075.03 193.18 1074.78 193.18 Q 1073.33 193.18 1072.42 192.13 Q 1071.51 191.07 1071.51 189.39 Q 1071.51 187.66 1072.43 186.63 Q 1073.35 185.59 1074.89 185.59 Q 1076.43 185.59 1077.35 186.63 Q 1078.27 187.66 1078.27 189.4 Q 1078.27 191.89 1076.42 192.85 Q 1077.66 193.4 1079 193.63 M 1078.35 194.45 M 1074.86 192.41 Q 1075.97 192.41 1076.57 191.62 Q 1077.18 190.82 1077.18 189.37 Q 1077.18 187.96 1076.57 187.16 Q 1075.97 186.36 1074.89 186.36 Q 1073.81 186.36 1073.2 187.16 Q 1072.6 187.96 1072.6 189.38 Q 1072.6 190.79 1073.2 191.6 Q 1073.8 192.41 1074.86 192.41 M 1074.86 192.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1084.35 193.18 Q 1083.62 193.18 1082.49 192.86 L 1082.49 191.85 Q 1083.71 192.41 1084.5 192.41 Q 1085.1 192.41 1085.47 192.1 Q 1085.84 191.78 1085.84 191.26 Q 1085.84 190.84 1085.6 190.54 Q 1085.35 190.24 1084.71 189.88 L 1084.21 189.59 Q 1083.28 189.06 1082.91 188.59 Q 1082.53 188.13 1082.53 187.51 Q 1082.53 186.67 1083.13 186.13 Q 1083.74 185.59 1084.68 185.59 Q 1085.51 185.59 1086.44 185.87 L 1086.44 186.81 Q 1085.3 186.36 1084.73 186.36 Q 1084.2 186.36 1083.86 186.64 Q 1083.51 186.93 1083.51 187.36 Q 1083.51 187.72 1083.76 188 Q 1084.02 188.27 1084.69 188.66 L 1085.21 188.95 Q 1086.15 189.48 1086.52 189.96 Q 1086.89 190.43 1086.89 191.1 Q 1086.89 192.04 1086.19 192.61 Q 1085.5 193.18 1084.35 193.18 M 1084.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1091.93 193 L 1091.93 185.77 L 1095.97 185.77 L 1095.97 186.54 L 1092.96 186.54 L 1092.96 188.96 L 1095.49 188.96 L 1095.49 189.72 L 1092.96 189.72 L 1092.96 193 M 1091.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1100.93 193 L 1100.93 185.77 L 1101.96 185.77 L 1101.96 192.23 L 1105.21 192.23 L 1105.21 193 M 1100.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1108.93 193 L 1108.93 185.77 L 1109.94 185.77 L 1113.58 191.35 L 1113.58 185.77 L 1114.46 185.77 L 1114.46 193 L 1113.45 193 L 1109.81 187.42 L 1109.81 193 M 1108.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1117.93 193 L 1117.93 185.77 L 1120.33 185.77 Q 1121.41 185.77 1122.07 186.01 Q 1122.73 186.25 1123.22 186.82 Q 1123.98 187.73 1123.98 189.22 Q 1123.98 191.02 1123.03 192.01 Q 1122.08 193 1120.35 193 M 1117.93 193 M 1118.96 192.23 L 1120.27 192.23 Q 1121.68 192.23 1122.26 191.48 Q 1122.89 190.67 1122.89 189.31 Q 1122.89 188.04 1122.27 187.31 Q 1121.9 186.87 1121.38 186.7 Q 1120.85 186.54 1119.8 186.54 L 1118.96 186.54 M 1118.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1126.93 193 L 1126.93 185.77 L 1127.94 185.77 L 1131.58 191.35 L 1131.58 185.77 L 1132.46 185.77 L 1132.46 193 L 1131.45 193 L 1127.81 187.42 L 1127.81 193 M 1126.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1141.35 194.45 Q 1139.64 193.89 1138.49 193.13 Q 1138.03 193.18 1137.78 193.18 Q 1136.33 193.18 1135.42 192.13 Q 1134.51 191.07 1134.51 189.39 Q 1134.51 187.66 1135.43 186.63 Q 1136.35 185.59 1137.89 185.59 Q 1139.43 185.59 1140.35 186.63 Q 1141.27 187.66 1141.27 189.4 Q 1141.27 191.89 1139.42 192.85 Q 1140.66 193.4 1142 193.63 M 1141.35 194.45 M 1137.86 192.41 Q 1138.97 192.41 1139.57 191.62 Q 1140.18 190.82 1140.18 189.37 Q 1140.18 187.96 1139.57 187.16 Q 1138.97 186.36 1137.89 186.36 Q 1136.81 186.36 1136.2 187.16 Q 1135.6 187.96 1135.6 189.38 Q 1135.6 190.79 1136.2 191.6 Q 1136.8 192.41 1137.86 192.41 M 1137.86 192.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1146.91 193 L 1144.18 185.77 L 1145.2 185.77 L 1147.44 191.69 L 1149.6 185.77 L 1150.49 185.77 L 1147.87 193 M 1146.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1157.59 190.24 L 1156.36 187.12 L 1155.13 190.24 M 1157.59 190.24 M 1158.68 193 L 1157.89 191 L 1154.83 191 L 1154.04 193 L 1153.08 193 L 1155.95 185.77 L 1156.96 185.77 L 1159.79 193 M 1158.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1162.93 193 L 1162.93 185.77 L 1165.33 185.77 Q 1166.41 185.77 1167.07 186.01 Q 1167.73 186.25 1168.22 186.82 Q 1168.98 187.73 1168.98 189.22 Q 1168.98 191.02 1168.03 192.01 Q 1167.08 193 1165.35 193 M 1162.93 193 M 1163.96 192.23 L 1165.27 192.23 Q 1166.68 192.23 1167.26 191.48 Q 1167.89 190.67 1167.89 189.31 Q 1167.89 188.04 1167.27 187.31 Q 1166.9 186.87 1166.38 186.7 Q 1165.85 186.54 1164.8 186.54 L 1163.96 186.54 M 1163.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1177.36 192.8 Q 1176.05 193.18 1175.07 193.18 Q 1173.35 193.18 1172.43 192.2 Q 1171.51 191.22 1171.51 189.39 Q 1171.51 187.59 1172.44 186.59 Q 1173.37 185.59 1175.06 185.59 Q 1176.16 185.59 1177.35 185.92 L 1177.35 186.87 Q 1175.86 186.36 1175.06 186.36 Q 1173.89 186.36 1173.24 187.16 Q 1172.6 187.95 1172.6 189.4 Q 1172.6 190.83 1173.29 191.62 Q 1173.98 192.41 1175.23 192.41 Q 1175.75 192.41 1176.34 192.23 L 1176.34 189.88 L 1177.36 189.88 M 1177.36 192.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1180.87 193 L 1179.01 185.77 L 1180 185.77 L 1181.48 191.48 L 1182.84 185.77 L 1183.82 185.77 L 1185.11 191.4 L 1186.71 185.77 L 1187.54 185.77 L 1185.51 193 L 1184.49 193 L 1183.22 187.43 L 1181.89 193 M 1180.87 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1191.91 193 L 1189.18 185.77 L 1190.2 185.77 L 1192.44 191.69 L 1194.6 185.77 L 1195.49 185.77 L 1192.87 193 M 1191.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1199.93 193 L 1199.93 185.77 L 1200.96 185.77 L 1200.96 192.23 L 1204.21 192.23 L 1204.21 193 M 1199.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1209.65 193 L 1209.65 186.54 L 1207.09 186.54 L 1207.09 185.77 L 1213.24 185.77 L 1213.24 186.54 L 1210.68 186.54 L 1210.68 193 M 1209.65 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1220.03 193.18 Q 1218.34 193.18 1217.43 192.19 Q 1216.51 191.2 1216.51 189.39 Q 1216.51 187.58 1217.44 186.59 Q 1218.38 185.59 1220.08 185.59 Q 1221.05 185.59 1222.35 185.91 L 1222.35 186.87 Q 1220.87 186.36 1220.06 186.36 Q 1218.89 186.36 1218.24 187.16 Q 1217.6 187.95 1217.6 189.4 Q 1217.6 190.78 1218.29 191.58 Q 1218.97 192.38 1220.17 192.38 Q 1221.19 192.38 1222.36 191.75 L 1222.36 192.63 Q 1221.29 193.18 1220.03 193.18 M 1220.03 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1229.59 190.24 L 1228.36 187.12 L 1227.13 190.24 M 1229.59 190.24 M 1230.68 193 L 1229.89 191 L 1226.83 191 L 1226.04 193 L 1225.08 193 L 1227.95 185.77 L 1228.96 185.77 L 1231.79 193 M 1230.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1238.59 190.24 L 1237.36 187.12 L 1236.13 190.24 M 1238.59 190.24 M 1239.68 193 L 1238.89 191 L 1235.83 191 L 1235.04 193 L 1234.08 193 L 1236.95 185.77 L 1237.96 185.77 L 1240.79 193 M 1239.68 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1245.5 193 L 1245.5 189.98 L 1243.08 185.77 L 1244.25 185.77 L 1246.13 189.04 L 1248.15 185.77 L 1249.1 185.77 L 1246.52 189.96 L 1246.52 193 M 1245.5 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1252.93 193 L 1252.93 185.77 L 1254.9 185.77 Q 1256.21 185.77 1256.78 186.22 Q 1257.35 186.66 1257.35 187.67 Q 1257.35 188.82 1256.57 189.47 Q 1255.79 190.13 1254.4 190.13 L 1253.95 190.13 L 1253.95 193 M 1252.93 193 M 1253.95 189.35 L 1254.36 189.35 Q 1255.28 189.35 1255.77 188.93 Q 1256.27 188.51 1256.27 187.75 Q 1256.27 187.1 1255.88 186.82 Q 1255.49 186.54 1254.58 186.54 L 1253.95 186.54 M 1253.95 189.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1263.65 193 L 1263.65 186.54 L 1261.09 186.54 L 1261.09 185.77 L 1267.24 185.77 L 1267.24 186.54 L 1264.68 186.54 L 1264.68 193 M 1263.65 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1273.35 193.18 Q 1272.62 193.18 1271.49 192.86 L 1271.49 191.85 Q 1272.71 192.41 1273.5 192.41 Q 1274.1 192.41 1274.47 192.1 Q 1274.84 191.78 1274.84 191.26 Q 1274.84 190.84 1274.6 190.54 Q 1274.35 190.24 1273.71 189.88 L 1273.21 189.59 Q 1272.28 189.06 1271.91 188.59 Q 1271.53 188.13 1271.53 187.51 Q 1271.53 186.67 1272.13 186.13 Q 1272.74 185.59 1273.68 185.59 Q 1274.51 185.59 1275.44 185.87 L 1275.44 186.81 Q 1274.3 186.36 1273.73 186.36 Q 1273.2 186.36 1272.86 186.64 Q 1272.51 186.93 1272.51 187.36 Q 1272.51 187.72 1272.76 188 Q 1273.02 188.27 1273.69 188.66 L 1274.21 188.95 Q 1275.15 189.48 1275.52 189.96 Q 1275.89 190.43 1275.89 191.1 Q 1275.89 192.04 1275.19 192.61 Q 1274.5 193.18 1273.35 193.18 M 1273.35 193.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1279.93 193 L 1279.93 185.77 L 1282.33 185.77 Q 1283.41 185.77 1284.07 186.01 Q 1284.73 186.25 1285.22 186.82 Q 1285.98 187.73 1285.98 189.22 Q 1285.98 191.02 1285.03 192.01 Q 1284.08 193 1282.35 193 M 1279.93 193 M 1280.96 192.23 L 1282.27 192.23 Q 1283.68 192.23 1284.26 191.48 Q 1284.89 190.67 1284.89 189.31 Q 1284.89 188.04 1284.27 187.31 Q 1283.9 186.87 1283.38 186.7 Q 1282.85 186.54 1281.8 186.54 L 1280.96 186.54 M 1280.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1290.91 193 L 1288.18 185.77 L 1289.2 185.77 L 1291.44 191.69 L 1293.6 185.77 L 1294.49 185.77 L 1291.87 193 M 1290.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1299.91 193 L 1297.18 185.77 L 1298.2 185.77 L 1300.44 191.69 L 1302.6 185.77 L 1303.49 185.77 L 1300.87 193 M 1299.91 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1308.93 193 L 1308.93 185.77 L 1309.95 185.77 L 1309.95 193 M 1308.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1316.93 193 L 1316.93 185.77 L 1320.97 185.77 L 1320.97 186.54 L 1317.96 186.54 L 1317.96 188.86 L 1320.48 188.86 L 1320.48 189.62 L 1317.96 189.62 L 1317.96 192.23 L 1321.18 192.23 L 1321.18 193 M 1316.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1326.65 193 L 1326.65 186.54 L 1324.09 186.54 L 1324.09 185.77 L 1330.24 185.77 L 1330.24 186.54 L 1327.68 186.54 L 1327.68 193 M 1326.65 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1333.93 193 L 1333.93 185.77 L 1334.96 185.77 L 1334.96 188.82 L 1338.4 188.82 L 1338.4 185.77 L 1339.42 185.77 L 1339.42 193 L 1338.4 193 L 1338.4 189.59 L 1334.96 189.59 L 1334.96 193 M 1333.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1342.93 193 L 1342.93 185.77 L 1343.89 185.77 L 1343.89 189.33 L 1346.82 185.77 L 1347.85 185.77 L 1345.02 189.22 L 1348.35 193 L 1347.05 193 L 1343.89 189.34 L 1343.89 193 M 1342.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1352.93 193 L 1352.93 185.77 L 1356.97 185.77 L 1356.97 186.54 L 1353.96 186.54 L 1353.96 188.86 L 1356.48 188.86 L 1356.48 189.62 L 1353.96 189.62 L 1353.96 192.23 L 1357.18 192.23 L 1357.18 193 M 1352.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1360.93 193 L 1360.93 185.77 L 1363.33 185.77 Q 1364.41 185.77 1365.07 186.01 Q 1365.73 186.25 1366.22 186.82 Q 1366.98 187.73 1366.98 189.22 Q 1366.98 191.02 1366.03 192.01 Q 1365.08 193 1363.35 193 M 1360.93 193 M 1361.96 192.23 L 1363.27 192.23 Q 1364.68 192.23 1365.26 191.48 Q 1365.89 190.67 1365.89 189.31 Q 1365.89 188.04 1365.27 187.31 Q 1364.9 186.87 1364.38 186.7 Q 1363.85 186.54 1362.8 186.54 L 1361.96 186.54 M 1361.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1369.93 193 L 1369.93 185.77 L 1372.33 185.77 Q 1373.41 185.77 1374.07 186.01 Q 1374.73 186.25 1375.22 186.82 Q 1375.98 187.73 1375.98 189.22 Q 1375.98 191.02 1375.03 192.01 Q 1374.08 193 1372.35 193 M 1369.93 193 M 1370.96 192.23 L 1372.27 192.23 Q 1373.68 192.23 1374.26 191.48 Q 1374.89 190.67 1374.89 189.31 Q 1374.89 188.04 1374.27 187.31 Q 1373.9 186.87 1373.38 186.7 Q 1372.85 186.54 1371.8 186.54 L 1370.96 186.54 M 1370.96 192.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1379.93 193 L 1379.93 185.77 L 1380.96 185.77 L 1380.96 192.23 L 1384.21 192.23 L 1384.21 193 M 1379.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1388.93 193 L 1388.93 185.77 L 1389.96 185.77 L 1389.96 192.23 L 1393.21 192.23 L 1393.21 193 M 1388.93 193"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1396.72 190.47 L 1396.72 189.75 L 1401.06 189.75 L 1401.06 190.47 M 1396.72 190.47"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,16)" ><path d="M 1405.72 190.47 L 1405.72 189.75 L 1410.06 189.75 L 1410.06 190.47 M 1405.72 190.47"/></g><line x1="531" y1="0" x2="531" y2="195" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,16)" /><line x1="1124" y1="0" x2="1124" y2="195" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,16)" /><line x1="531" y1="0" x2="1124" y2="0" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,16)" /><line x1="531" y1="194" x2="1124" y2="194" style="stroke-width: 1.0;stroke: rgb(0,0,0);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,16)" /><rect x="0" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="9" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="18" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="27" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="36" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="45" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="54" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="63" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="72" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="81" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="90" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="99" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="108" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="117" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="126" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="135" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="144" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="153" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="162" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="171" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="180" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="189" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="198" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="207" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="216" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="225" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="234" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="243" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="252" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="261" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="270" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="279" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="288" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="297" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="306" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="315" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="324" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="333" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="342" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="351" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="360" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="369" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="378" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="387" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="396" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="405" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="414" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="423" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="432" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="441" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="450" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="459" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="468" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="477" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="486" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="495" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="504" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="513" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="522" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="531" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="540" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="549" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 569.5 10 L 569.5 9.28 L 570.95 9.28 L 570.95 3.57 L 569.5 3.94 L 569.5 3.19 L 571.92 2.59 L 571.92 9.28 L 573.36 9.28 L 573.36 10 M 569.5 10"/></g><rect x="558" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="567" y="14" width="23" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 590 10 L 590 24 L 594 17 M 590 10"/></g><rect x="594" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="603" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="612" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 631.83 10 L 631.83 9.16 Q 632.25 8.17 633.53 7.02 L 634.08 6.52 Q 635.15 5.56 635.15 4.61 Q 635.15 4.01 634.78 3.66 Q 634.42 3.32 633.78 3.32 Q 633.03 3.32 632.01 3.9 L 632.01 3.05 Q 632.97 2.59 633.92 2.59 Q 634.94 2.59 635.55 3.14 Q 636.17 3.69 636.17 4.59 Q 636.17 5.24 635.86 5.74 Q 635.55 6.25 634.7 6.96 L 634.33 7.28 Q 633.17 8.26 632.99 9.16 L 636.13 9.16 L 636.13 10 M 631.83 10"/></g><rect x="621" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="630" y="14" width="68" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 698 10 L 698 24 L 702 17 M 698 10"/></g><rect x="702" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="711" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="720" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 740.02 9.95 L 740.02 9.05 Q 741.05 9.46 741.65 9.46 Q 742.33 9.46 742.77 9.06 Q 743.2 8.65 743.2 8.01 Q 743.2 6.49 741.07 6.49 L 740.68 6.49 L 740.68 5.84 L 741.02 5.83 Q 743.02 5.83 743.02 4.42 Q 743.02 3.32 741.71 3.32 Q 740.98 3.32 740.11 3.72 L 740.11 2.88 Q 740.97 2.59 741.77 2.59 Q 743.99 2.59 743.99 4.27 Q 743.99 5.54 742.48 6.08 Q 744.23 6.49 744.23 8 Q 744.23 9.02 743.56 9.6 Q 742.88 10.18 741.71 10.18 Q 741.04 10.18 740.02 9.95 M 740.02 9.95"/></g><rect x="729" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 738 18 L 738 18 C 738 20.21 739.79 22 742 22 L 779 22 C 781.21 22 783 20.21 783 18 L 783 18 C 783 15.79 781.21 14 779 14 L 742 14 C 739.79 14 738 15.79 738 18 M 738 18"/></g><rect x="783" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="792" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="801" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="810" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="819" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="828" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="837" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="846" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="855" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 872.93 10 L 872.93 2.77 L 876.97 2.77 L 876.97 3.54 L 873.96 3.54 L 873.96 5.96 L 876.49 5.96 L 876.49 6.72 L 873.96 6.72 L 873.96 10 M 872.93 10 M 881.85 9.83 Q 880.88 10.12 880.19 10.12 Q 879.02 10.12 878.28 9.34 Q 877.54 8.56 877.54 7.32 Q 877.54 6.12 878.19 5.35 Q 878.85 4.58 879.86 4.58 Q 880.82 4.58 881.35 5.26 Q 881.87 5.94 881.87 7.2 L 881.87 7.5 L 878.52 7.5 Q 878.73 9.39 880.37 9.39 Q 880.97 9.39 881.85 9.07 M 881.85 9.83 M 878.57 6.78 L 880.91 6.78 Q 880.91 5.3 879.8 5.3 Q 878.69 5.3 878.57 6.78 M 878.57 6.78"/></g><rect x="864" y="16" width="18" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="882" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="891" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="900" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 917.93 10 L 917.93 2.77 L 921.97 2.77 L 921.97 3.54 L 918.96 3.54 L 918.96 5.96 L 921.49 5.96 L 921.49 6.72 L 918.96 6.72 L 918.96 10 M 917.93 10 M 926.85 9.83 Q 925.88 10.12 925.19 10.12 Q 924.02 10.12 923.28 9.34 Q 922.54 8.56 922.54 7.32 Q 922.54 6.12 923.19 5.35 Q 923.85 4.58 924.86 4.58 Q 925.82 4.58 926.35 5.26 Q 926.87 5.94 926.87 7.2 L 926.87 7.5 L 923.52 7.5 Q 923.73 9.39 925.37 9.39 Q 925.97 9.39 926.85 9.07 M 926.85 9.83 M 923.57 6.78 L 925.91 6.78 Q 925.91 5.3 924.8 5.3 Q 923.69 5.3 923.57 6.78 M 923.57 6.78"/></g><rect x="909" y="16" width="18" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="927" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 944.93 10 L 944.93 2.77 L 948.97 2.77 L 948.97 3.54 L 945.96 3.54 L 945.96 5.96 L 948.49 5.96 L 948.49 6.72 L 945.96 6.72 L 945.96 10 M 944.93 10 M 953.85 9.83 Q 952.88 10.12 952.19 10.12 Q 951.02 10.12 950.28 9.34 Q 949.54 8.56 949.54 7.32 Q 949.54 6.12 950.19 5.35 Q 950.85 4.58 951.86 4.58 Q 952.82 4.58 953.35 5.26 Q 953.87 5.94 953.87 7.2 L 953.87 7.5 L 950.52 7.5 Q 950.73 9.39 952.37 9.39 Q 952.97 9.39 953.85 9.07 M 953.85 9.83 M 950.57 6.78 L 952.91 6.78 Q 952.91 5.3 951.8 5.3 Q 950.69 5.3 950.57 6.78 M 950.57 6.78"/></g><rect x="936" y="16" width="18" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 967.76 10 L 967.76 7.95 L 964.51 7.95 L 964.51 7.23 L 967.76 2.77 L 968.67 2.77 L 968.67 7.17 L 969.63 7.17 L 969.63 7.95 L 968.67 7.95 L 968.67 10 M 967.76 10 M 965.46 7.17 L 967.83 7.17 L 967.83 3.96 M 965.46 7.17"/></g><rect x="954" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="963" y="14" width="14" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 977 10 L 977 24 L 981 17 M 977 10"/></g><rect x="981" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="990" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="999" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1008" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1028.22 10.03 L 1028.22 9.17 Q 1028.93 9.46 1029.58 9.46 Q 1030.3 9.46 1030.7 9.04 Q 1031.11 8.62 1031.11 7.88 Q 1031.11 6.25 1028.87 6.25 Q 1028.62 6.25 1028.34 6.29 L 1028.34 2.77 L 1032 2.77 L 1032 3.61 L 1029.18 3.61 L 1029.18 5.52 Q 1030.57 5.52 1031.36 6.16 Q 1032.14 6.8 1032.14 7.93 Q 1032.14 8.98 1031.43 9.58 Q 1030.72 10.18 1029.46 10.18 Q 1028.91 10.18 1028.22 10.03 M 1028.22 10.03"/></g><rect x="1017" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1026" y="14" width="14" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1040 10 L 1040 24 L 1044 17 M 1040 10"/></g><rect x="1044" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1053" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1062" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1071" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1080" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1089" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1098" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1107" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1116" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1136.72 6.25 Q 1137.41 5.36 1138.45 5.36 Q 1139.4 5.36 1140 5.99 Q 1140.61 6.62 1140.61 7.6 Q 1140.61 8.73 1139.93 9.45 Q 1139.25 10.18 1138.21 10.18 Q 1137.02 10.18 1136.34 9.22 Q 1135.67 8.26 1135.67 6.55 Q 1135.67 4.67 1136.44 3.63 Q 1137.22 2.59 1138.62 2.59 Q 1139.27 2.59 1140.23 2.86 L 1140.23 3.7 Q 1139.21 3.31 1138.56 3.31 Q 1136.72 3.31 1136.72 6.25 M 1136.72 6.25 M 1139.64 7.81 Q 1139.64 6.99 1139.27 6.52 Q 1138.9 6.05 1138.25 6.05 Q 1137.64 6.05 1137.2 6.46 Q 1136.76 6.88 1136.76 7.45 Q 1136.76 8.36 1137.18 8.91 Q 1137.59 9.46 1138.28 9.46 Q 1138.9 9.46 1139.27 9.01 Q 1139.64 8.56 1139.64 7.81 M 1139.64 7.81"/></g><rect x="1125" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1134 18 L 1134 18 C 1134 20.21 1135.79 22 1138 22 L 1166 22 C 1168.21 22 1170 20.21 1170 18 L 1170 18 C 1170 15.79 1168.21 14 1166 14 L 1138 14 C 1135.79 14 1134 15.79 1134 18 M 1134 18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1181.5 10 Q 1181.65 9.16 1181.91 8.54 Q 1182.17 7.92 1182.83 6.85 L 1184.8 3.68 L 1181.08 3.68 L 1181.08 2.77 L 1185.72 2.77 L 1185.72 3.68 Q 1182.94 7.77 1182.61 10 M 1181.5 10"/></g><rect x="1170" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1179" y="14" width="5" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1184 10 L 1184 24 L 1188 17 M 1184 10"/></g><rect x="1188" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1197" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1214.93 10 L 1214.93 2.77 L 1218.97 2.77 L 1218.97 3.54 L 1215.96 3.54 L 1215.96 5.96 L 1218.49 5.96 L 1218.49 6.72 L 1215.96 6.72 L 1215.96 10 M 1214.93 10 M 1223.85 9.83 Q 1222.88 10.12 1222.19 10.12 Q 1221.02 10.12 1220.28 9.34 Q 1219.54 8.56 1219.54 7.32 Q 1219.54 6.12 1220.19 5.35 Q 1220.85 4.58 1221.86 4.58 Q 1222.82 4.58 1223.35 5.26 Q 1223.87 5.94 1223.87 7.2 L 1223.87 7.5 L 1220.52 7.5 Q 1220.73 9.39 1222.37 9.39 Q 1222.97 9.39 1223.85 9.07 M 1223.85 9.83 M 1220.57 6.78 L 1222.91 6.78 Q 1222.91 5.3 1221.8 5.3 Q 1220.69 5.3 1220.57 6.78 M 1220.57 6.78"/></g><rect x="1206" y="16" width="18" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1224" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1233" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1242" y="14" width="14" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1256 10 L 1256 24 L 1260 17 M 1256 10"/></g><rect x="1260" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1269" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1289.14 9.96 L 1289.14 9.14 Q 1290.06 9.46 1290.7 9.46 Q 1291.6 9.46 1292.1 8.69 Q 1292.61 7.93 1292.61 6.57 Q 1291.88 7.47 1290.94 7.47 Q 1290.03 7.47 1289.4 6.8 Q 1288.76 6.13 1288.76 5.16 Q 1288.76 4.05 1289.44 3.32 Q 1290.11 2.59 1291.14 2.59 Q 1292.32 2.59 1293 3.54 Q 1293.67 4.48 1293.67 6.12 Q 1293.67 7.99 1292.85 9.08 Q 1292.02 10.18 1290.61 10.18 Q 1290.04 10.18 1289.14 9.96 M 1289.14 9.96 M 1289.72 4.97 Q 1289.72 5.81 1290.1 6.29 Q 1290.47 6.78 1291.12 6.78 Q 1291.73 6.78 1292.16 6.36 Q 1292.59 5.95 1292.59 5.36 Q 1292.59 4.44 1292.18 3.87 Q 1291.76 3.31 1291.08 3.31 Q 1290.45 3.31 1290.09 3.76 Q 1289.72 4.2 1289.72 4.97 M 1289.72 4.97"/></g><rect x="1278" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1287" y="14" width="41" height="7" style="fill: rgb(0,255,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1328 10 L 1328 24 L 1332 17 M 1328 10"/></g><rect x="1332" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1341" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1350" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1359" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1368" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1377" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1386" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1395" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1404" y="16" width="9" height="2" style="fill: rgb(128,128,128); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 872.93 39 L 872.93 31.77 L 876.97 31.77 L 876.97 32.54 L 873.96 32.54 L 873.96 34.96 L 876.49 34.96 L 876.49 35.72 L 873.96 35.72 L 873.96 39 M 872.93 39 M 881.85 38.83 Q 880.88 39.12 880.19 39.12 Q 879.02 39.12 878.28 38.34 Q 877.54 37.56 877.54 36.32 Q 877.54 35.12 878.19 34.35 Q 878.85 33.58 879.86 33.58 Q 880.82 33.58 881.35 34.26 Q 881.87 34.94 881.87 36.2 L 881.87 36.5 L 878.52 36.5 Q 878.73 38.39 880.37 38.39 Q 880.97 38.39 881.85 38.07 M 881.85 38.83 M 878.57 35.78 L 880.91 35.78 Q 880.91 34.3 879.8 34.3 Q 878.69 34.3 878.57 35.78 M 878.57 35.78"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 917.93 39 L 917.93 31.77 L 921.97 31.77 L 921.97 32.54 L 918.96 32.54 L 918.96 34.96 L 921.49 34.96 L 921.49 35.72 L 918.96 35.72 L 918.96 39 M 917.93 39 M 926.85 38.83 Q 925.88 39.12 925.19 39.12 Q 924.02 39.12 923.28 38.34 Q 922.54 37.56 922.54 36.32 Q 922.54 35.12 923.19 34.35 Q 923.85 33.58 924.86 33.58 Q 925.82 33.58 926.35 34.26 Q 926.87 34.94 926.87 36.2 L 926.87 36.5 L 923.52 36.5 Q 923.73 38.39 925.37 38.39 Q 925.97 38.39 926.85 38.07 M 926.85 38.83 M 923.57 35.78 L 925.91 35.78 Q 925.91 34.3 924.8 34.3 Q 923.69 34.3 923.57 35.78 M 923.57 35.78"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 944.93 39 L 944.93 31.77 L 948.97 31.77 L 948.97 32.54 L 945.96 32.54 L 945.96 34.96 L 948.49 34.96 L 948.49 35.72 L 945.96 35.72 L 945.96 39 M 944.93 39 M 953.85 38.83 Q 952.88 39.12 952.19 39.12 Q 951.02 39.12 950.28 38.34 Q 949.54 37.56 949.54 36.32 Q 949.54 35.12 950.19 34.35 Q 950.85 33.58 951.86 33.58 Q 952.82 33.58 953.35 34.26 Q 953.87 34.94 953.87 36.2 L 953.87 36.5 L 950.52 36.5 Q 950.73 38.39 952.37 38.39 Q 952.97 38.39 953.85 38.07 M 953.85 38.83 M 950.57 35.78 L 952.91 35.78 Q 952.91 34.3 951.8 34.3 Q 950.69 34.3 950.57 35.78 M 950.57 35.78"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1214.93 39 L 1214.93 31.77 L 1218.97 31.77 L 1218.97 32.54 L 1215.96 32.54 L 1215.96 34.96 L 1218.49 34.96 L 1218.49 35.72 L 1215.96 35.72 L 1215.96 39 M 1214.93 39 M 1223.85 38.83 Q 1222.88 39.12 1222.19 39.12 Q 1221.02 39.12 1220.28 38.34 Q 1219.54 37.56 1219.54 36.32 Q 1219.54 35.12 1220.19 34.35 Q 1220.85 33.58 1221.86 33.58 Q 1222.82 33.58 1223.35 34.26 Q 1223.87 34.94 1223.87 36.2 L 1223.87 36.5 L 1220.52 36.5 Q 1220.73 38.39 1222.37 38.39 Q 1222.97 38.39 1223.85 38.07 M 1223.85 38.83 M 1220.57 35.78 L 1222.91 35.78 Q 1222.91 34.3 1221.8 34.3 Q 1220.69 34.3 1220.57 35.78 M 1220.57 35.78"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 2.5 92 L 2.5 91.28 L 3.95 91.28 L 3.95 85.57 L 2.5 85.94 L 2.5 85.19 L 4.92 84.59 L 4.92 91.28 L 6.36 91.28 L 6.36 92 M 2.5 92"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 11.02 91.95 L 11.02 91.05 Q 12.05 91.46 12.65 91.46 Q 13.33 91.46 13.77 91.06 Q 14.2 90.65 14.2 90.01 Q 14.2 88.49 12.07 88.49 L 11.68 88.49 L 11.68 87.84 L 12.02 87.83 Q 14.02 87.83 14.02 86.42 Q 14.02 85.32 12.71 85.32 Q 11.98 85.32 11.11 85.72 L 11.11 84.88 Q 11.97 84.59 12.77 84.59 Q 14.99 84.59 14.99 86.27 Q 14.99 87.54 13.48 88.08 Q 15.23 88.49 15.23 90 Q 15.23 91.02 14.56 91.6 Q 13.88 92.18 12.71 92.18 Q 12.04 92.18 11.02 91.95 M 11.02 91.95"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 19.72 89.47 L 19.72 88.75 L 24.06 88.75 L 24.06 89.47 M 19.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 28.72 89.47 L 28.72 88.75 L 33.06 88.75 L 33.06 89.47 M 28.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 37.72 89.47 L 37.72 88.75 L 42.06 88.75 L 42.06 89.47 M 37.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 46.72 89.47 L 46.72 88.75 L 51.06 88.75 L 51.06 89.47 M 46.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 55.72 89.47 L 55.72 88.75 L 60.06 88.75 L 60.06 89.47 M 55.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 64.72 89.47 L 64.72 88.75 L 69.06 88.75 L 69.06 89.47 M 64.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 73.72 89.47 L 73.72 88.75 L 78.06 88.75 L 78.06 89.47 M 73.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 82.72 89.47 L 82.72 88.75 L 87.06 88.75 L 87.06 89.47 M 82.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 91.72 89.47 L 91.72 88.75 L 96.06 88.75 L 96.06 89.47 M 91.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 100.72 89.47 L 100.72 88.75 L 105.06 88.75 L 105.06 89.47 M 100.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 109.72 89.47 L 109.72 88.75 L 114.06 88.75 L 114.06 89.47 M 109.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 118.72 89.47 L 118.72 88.75 L 123.06 88.75 L 123.06 89.47 M 118.72 89.47"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 128.5 92 L 128.5 91.28 L 129.95 91.28 L 129.95 85.57 L 128.5 85.94 L 128.5 85.19 L 130.92 84.59 L 130.92 91.28 L 132.36 91.28 L 132.36 92 M 128.5 92"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 136.83 92 L 136.83 91.16 Q 137.25 90.17 138.53 89.02 L 139.08 88.52 Q 140.15 87.56 140.15 86.61 Q 140.15 86.01 139.78 85.66 Q 139.42 85.32 138.78 85.32 Q 138.03 85.32 137.01 85.9 L 137.01 85.05 Q 137.97 84.59 138.92 84.59 Q 139.94 84.59 140.55 85.14 Q 141.17 85.69 141.17 86.59 Q 141.17 87.24 140.86 87.74 Q 140.55 88.25 139.7 88.96 L 139.33 89.28 Q 138.17 90.26 137.99 91.16 L 141.13 91.16 L 141.13 92 M 136.83 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 148.13 92.18 Q 147.02 92.18 146.33 91.13 Q 145.63 90.08 145.63 88.38 Q 145.63 86.67 146.33 85.63 Q 147.03 84.59 148.16 84.59 Q 149.3 84.59 150 85.63 Q 150.69 86.67 150.69 88.37 Q 150.69 90.11 150 91.14 Q 149.3 92.18 148.13 92.18 M 148.13 92.18 M 148.14 91.46 Q 149.67 91.46 149.67 88.35 Q 149.67 85.32 148.16 85.32 Q 146.66 85.32 146.66 88.38 Q 146.66 91.46 148.14 91.46 M 148.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 155.5 92 L 155.5 91.28 L 156.95 91.28 L 156.95 85.57 L 155.5 85.94 L 155.5 85.19 L 157.92 84.59 L 157.92 91.28 L 159.36 91.28 L 159.36 92 M 155.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 166.13 92.18 Q 165.02 92.18 164.33 91.13 Q 163.63 90.08 163.63 88.38 Q 163.63 86.67 164.33 85.63 Q 165.03 84.59 166.16 84.59 Q 167.3 84.59 168 85.63 Q 168.69 86.67 168.69 88.37 Q 168.69 90.11 168 91.14 Q 167.3 92.18 166.13 92.18 M 166.13 92.18 M 166.14 91.46 Q 167.67 91.46 167.67 88.35 Q 167.67 85.32 166.16 85.32 Q 164.66 85.32 164.66 88.38 Q 164.66 91.46 166.14 91.46 M 166.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 173.5 92 L 173.5 91.28 L 174.95 91.28 L 174.95 85.57 L 173.5 85.94 L 173.5 85.19 L 175.92 84.59 L 175.92 91.28 L 177.36 91.28 L 177.36 92 M 173.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 184.13 92.18 Q 183.02 92.18 182.33 91.13 Q 181.63 90.08 181.63 88.38 Q 181.63 86.67 182.33 85.63 Q 183.03 84.59 184.16 84.59 Q 185.3 84.59 186 85.63 Q 186.69 86.67 186.69 88.37 Q 186.69 90.11 186 91.14 Q 185.3 92.18 184.13 92.18 M 184.13 92.18 M 184.14 91.46 Q 185.67 91.46 185.67 88.35 Q 185.67 85.32 184.16 85.32 Q 182.66 85.32 182.66 88.38 Q 182.66 91.46 184.14 91.46 M 184.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 190.72 89.47 L 190.72 88.75 L 195.06 88.75 L 195.06 89.47 M 190.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 199.72 89.47 L 199.72 88.75 L 204.06 88.75 L 204.06 89.47 M 199.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 208.72 89.47 L 208.72 88.75 L 213.06 88.75 L 213.06 89.47 M 208.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 220.13 92.18 Q 219.02 92.18 218.33 91.13 Q 217.63 90.08 217.63 88.38 Q 217.63 86.67 218.33 85.63 Q 219.03 84.59 220.16 84.59 Q 221.3 84.59 222 85.63 Q 222.69 86.67 222.69 88.37 Q 222.69 90.11 222 91.14 Q 221.3 92.18 220.13 92.18 M 220.13 92.18 M 220.14 91.46 Q 221.67 91.46 221.67 88.35 Q 221.67 85.32 220.16 85.32 Q 218.66 85.32 218.66 88.38 Q 218.66 91.46 220.14 91.46 M 220.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 227.5 92 L 227.5 91.28 L 228.95 91.28 L 228.95 85.57 L 227.5 85.94 L 227.5 85.19 L 229.92 84.59 L 229.92 91.28 L 231.36 91.28 L 231.36 92 M 227.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 238.13 92.18 Q 237.02 92.18 236.33 91.13 Q 235.63 90.08 235.63 88.38 Q 235.63 86.67 236.33 85.63 Q 237.03 84.59 238.16 84.59 Q 239.3 84.59 240 85.63 Q 240.69 86.67 240.69 88.37 Q 240.69 90.11 240 91.14 Q 239.3 92.18 238.13 92.18 M 238.13 92.18 M 238.14 91.46 Q 239.67 91.46 239.67 88.35 Q 239.67 85.32 238.16 85.32 Q 236.66 85.32 236.66 88.38 Q 236.66 91.46 238.14 91.46 M 238.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 247.13 92.18 Q 246.02 92.18 245.33 91.13 Q 244.63 90.08 244.63 88.38 Q 244.63 86.67 245.33 85.63 Q 246.03 84.59 247.16 84.59 Q 248.3 84.59 249 85.63 Q 249.69 86.67 249.69 88.37 Q 249.69 90.11 249 91.14 Q 248.3 92.18 247.13 92.18 M 247.13 92.18 M 247.14 91.46 Q 248.67 91.46 248.67 88.35 Q 248.67 85.32 247.16 85.32 Q 245.66 85.32 245.66 88.38 Q 245.66 91.46 247.14 91.46 M 247.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 256.13 92.18 Q 255.02 92.18 254.33 91.13 Q 253.63 90.08 253.63 88.38 Q 253.63 86.67 254.33 85.63 Q 255.03 84.59 256.16 84.59 Q 257.3 84.59 258 85.63 Q 258.69 86.67 258.69 88.37 Q 258.69 90.11 258 91.14 Q 257.3 92.18 256.13 92.18 M 256.13 92.18 M 256.14 91.46 Q 257.67 91.46 257.67 88.35 Q 257.67 85.32 256.16 85.32 Q 254.66 85.32 254.66 88.38 Q 254.66 91.46 256.14 91.46 M 256.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 262.72 89.47 L 262.72 88.75 L 267.06 88.75 L 267.06 89.47 M 262.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 271.72 89.47 L 271.72 88.75 L 276.06 88.75 L 276.06 89.47 M 271.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 283.13 92.18 Q 282.02 92.18 281.33 91.13 Q 280.63 90.08 280.63 88.38 Q 280.63 86.67 281.33 85.63 Q 282.03 84.59 283.16 84.59 Q 284.3 84.59 285 85.63 Q 285.69 86.67 285.69 88.37 Q 285.69 90.11 285 91.14 Q 284.3 92.18 283.13 92.18 M 283.13 92.18 M 283.14 91.46 Q 284.67 91.46 284.67 88.35 Q 284.67 85.32 283.16 85.32 Q 281.66 85.32 281.66 88.38 Q 281.66 91.46 283.14 91.46 M 283.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 292.13 92.18 Q 291.02 92.18 290.33 91.13 Q 289.63 90.08 289.63 88.38 Q 289.63 86.67 290.33 85.63 Q 291.03 84.59 292.16 84.59 Q 293.3 84.59 294 85.63 Q 294.69 86.67 294.69 88.37 Q 294.69 90.11 294 91.14 Q 293.3 92.18 292.13 92.18 M 292.13 92.18 M 292.14 91.46 Q 293.67 91.46 293.67 88.35 Q 293.67 85.32 292.16 85.32 Q 290.66 85.32 290.66 88.38 Q 290.66 91.46 292.14 91.46 M 292.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 301.13 92.18 Q 300.02 92.18 299.33 91.13 Q 298.63 90.08 298.63 88.38 Q 298.63 86.67 299.33 85.63 Q 300.03 84.59 301.16 84.59 Q 302.3 84.59 303 85.63 Q 303.69 86.67 303.69 88.37 Q 303.69 90.11 303 91.14 Q 302.3 92.18 301.13 92.18 M 301.13 92.18 M 301.14 91.46 Q 302.67 91.46 302.67 88.35 Q 302.67 85.32 301.16 85.32 Q 299.66 85.32 299.66 88.38 Q 299.66 91.46 301.14 91.46 M 301.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 310.13 92.18 Q 309.02 92.18 308.33 91.13 Q 307.63 90.08 307.63 88.38 Q 307.63 86.67 308.33 85.63 Q 309.03 84.59 310.16 84.59 Q 311.3 84.59 312 85.63 Q 312.69 86.67 312.69 88.37 Q 312.69 90.11 312 91.14 Q 311.3 92.18 310.13 92.18 M 310.13 92.18 M 310.14 91.46 Q 311.67 91.46 311.67 88.35 Q 311.67 85.32 310.16 85.32 Q 308.66 85.32 308.66 88.38 Q 308.66 91.46 310.14 91.46 M 310.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 319.13 92.18 Q 318.02 92.18 317.33 91.13 Q 316.63 90.08 316.63 88.38 Q 316.63 86.67 317.33 85.63 Q 318.03 84.59 319.16 84.59 Q 320.3 84.59 321 85.63 Q 321.69 86.67 321.69 88.37 Q 321.69 90.11 321 91.14 Q 320.3 92.18 319.13 92.18 M 319.13 92.18 M 319.14 91.46 Q 320.67 91.46 320.67 88.35 Q 320.67 85.32 319.16 85.32 Q 317.66 85.32 317.66 88.38 Q 317.66 91.46 319.14 91.46 M 319.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 328.13 92.18 Q 327.02 92.18 326.33 91.13 Q 325.63 90.08 325.63 88.38 Q 325.63 86.67 326.33 85.63 Q 327.03 84.59 328.16 84.59 Q 329.3 84.59 330 85.63 Q 330.69 86.67 330.69 88.37 Q 330.69 90.11 330 91.14 Q 329.3 92.18 328.13 92.18 M 328.13 92.18 M 328.14 91.46 Q 329.67 91.46 329.67 88.35 Q 329.67 85.32 328.16 85.32 Q 326.66 85.32 326.66 88.38 Q 326.66 91.46 328.14 91.46 M 328.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 337.13 92.18 Q 336.02 92.18 335.33 91.13 Q 334.63 90.08 334.63 88.38 Q 334.63 86.67 335.33 85.63 Q 336.03 84.59 337.16 84.59 Q 338.3 84.59 339 85.63 Q 339.69 86.67 339.69 88.37 Q 339.69 90.11 339 91.14 Q 338.3 92.18 337.13 92.18 M 337.13 92.18 M 337.14 91.46 Q 338.67 91.46 338.67 88.35 Q 338.67 85.32 337.16 85.32 Q 335.66 85.32 335.66 88.38 Q 335.66 91.46 337.14 91.46 M 337.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 343.72 89.47 L 343.72 88.75 L 348.06 88.75 L 348.06 89.47 M 343.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 352.72 89.47 L 352.72 88.75 L 357.06 88.75 L 357.06 89.47 M 352.72 89.47"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 361.83 92 L 361.83 91.16 Q 362.25 90.17 363.53 89.02 L 364.08 88.52 Q 365.15 87.56 365.15 86.61 Q 365.15 86.01 364.78 85.66 Q 364.42 85.32 363.78 85.32 Q 363.03 85.32 362.01 85.9 L 362.01 85.05 Q 362.97 84.59 363.92 84.59 Q 364.94 84.59 365.55 85.14 Q 366.17 85.69 366.17 86.59 Q 366.17 87.24 365.86 87.74 Q 365.55 88.25 364.7 88.96 L 364.33 89.28 Q 363.17 90.26 362.99 91.16 L 366.13 91.16 L 366.13 92 M 361.83 92"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 371.5 92 L 371.5 91.28 L 372.95 91.28 L 372.95 85.57 L 371.5 85.94 L 371.5 85.19 L 373.92 84.59 L 373.92 91.28 L 375.36 91.28 L 375.36 92 M 371.5 92"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 380.5 92 L 380.5 91.28 L 381.95 91.28 L 381.95 85.57 L 380.5 85.94 L 380.5 85.19 L 382.92 84.59 L 382.92 91.28 L 384.36 91.28 L 384.36 92 M 380.5 92"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 389.5 92 L 389.5 91.28 L 390.95 91.28 L 390.95 85.57 L 389.5 85.94 L 389.5 85.19 L 391.92 84.59 L 391.92 91.28 L 393.36 91.28 L 393.36 92 M 389.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 400.13 92.18 Q 399.02 92.18 398.33 91.13 Q 397.63 90.08 397.63 88.38 Q 397.63 86.67 398.33 85.63 Q 399.03 84.59 400.16 84.59 Q 401.3 84.59 402 85.63 Q 402.69 86.67 402.69 88.37 Q 402.69 90.11 402 91.14 Q 401.3 92.18 400.13 92.18 M 400.13 92.18 M 400.14 91.46 Q 401.67 91.46 401.67 88.35 Q 401.67 85.32 400.16 85.32 Q 398.66 85.32 398.66 88.38 Q 398.66 91.46 400.14 91.46 M 400.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 409.13 92.18 Q 408.02 92.18 407.33 91.13 Q 406.63 90.08 406.63 88.38 Q 406.63 86.67 407.33 85.63 Q 408.03 84.59 409.16 84.59 Q 410.3 84.59 411 85.63 Q 411.69 86.67 411.69 88.37 Q 411.69 90.11 411 91.14 Q 410.3 92.18 409.13 92.18 M 409.13 92.18 M 409.14 91.46 Q 410.67 91.46 410.67 88.35 Q 410.67 85.32 409.16 85.32 Q 407.66 85.32 407.66 88.38 Q 407.66 91.46 409.14 91.46 M 409.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 416.5 92 L 416.5 91.28 L 417.95 91.28 L 417.95 85.57 L 416.5 85.94 L 416.5 85.19 L 418.92 84.59 L 418.92 91.28 L 420.36 91.28 L 420.36 92 M 416.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 424.72 89.47 L 424.72 88.75 L 429.06 88.75 L 429.06 89.47 M 424.72 89.47"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 433.83 92 L 433.83 91.16 Q 434.25 90.17 435.53 89.02 L 436.08 88.52 Q 437.15 87.56 437.15 86.61 Q 437.15 86.01 436.78 85.66 Q 436.42 85.32 435.78 85.32 Q 435.03 85.32 434.01 85.9 L 434.01 85.05 Q 434.97 84.59 435.92 84.59 Q 436.94 84.59 437.55 85.14 Q 438.17 85.69 438.17 86.59 Q 438.17 87.24 437.86 87.74 Q 437.55 88.25 436.7 88.96 L 436.33 89.28 Q 435.17 90.26 434.99 91.16 L 438.13 91.16 L 438.13 92 M 433.83 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 442.72 89.47 L 442.72 88.75 L 447.06 88.75 L 447.06 89.47 M 442.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 451.72 89.47 L 451.72 88.75 L 456.06 88.75 L 456.06 89.47 M 451.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 460.72 89.47 L 460.72 88.75 L 465.06 88.75 L 465.06 89.47 M 460.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 469.72 89.47 L 469.72 88.75 L 474.06 88.75 L 474.06 89.47 M 469.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 478.72 89.47 L 478.72 88.75 L 483.06 88.75 L 483.06 89.47 M 478.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 490.13 92.18 Q 489.02 92.18 488.33 91.13 Q 487.63 90.08 487.63 88.38 Q 487.63 86.67 488.33 85.63 Q 489.03 84.59 490.16 84.59 Q 491.3 84.59 492 85.63 Q 492.69 86.67 492.69 88.37 Q 492.69 90.11 492 91.14 Q 491.3 92.18 490.13 92.18 M 490.13 92.18 M 490.14 91.46 Q 491.67 91.46 491.67 88.35 Q 491.67 85.32 490.16 85.32 Q 488.66 85.32 488.66 88.38 Q 488.66 91.46 490.14 91.46 M 490.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 499.13 92.18 Q 498.02 92.18 497.33 91.13 Q 496.63 90.08 496.63 88.38 Q 496.63 86.67 497.33 85.63 Q 498.03 84.59 499.16 84.59 Q 500.3 84.59 501 85.63 Q 501.69 86.67 501.69 88.37 Q 501.69 90.11 501 91.14 Q 500.3 92.18 499.13 92.18 M 499.13 92.18 M 499.14 91.46 Q 500.67 91.46 500.67 88.35 Q 500.67 85.32 499.16 85.32 Q 497.66 85.32 497.66 88.38 Q 497.66 91.46 499.14 91.46 M 499.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 508.13 92.18 Q 507.02 92.18 506.33 91.13 Q 505.63 90.08 505.63 88.38 Q 505.63 86.67 506.33 85.63 Q 507.03 84.59 508.16 84.59 Q 509.3 84.59 510 85.63 Q 510.69 86.67 510.69 88.37 Q 510.69 90.11 510 91.14 Q 509.3 92.18 508.13 92.18 M 508.13 92.18 M 508.14 91.46 Q 509.67 91.46 509.67 88.35 Q 509.67 85.32 508.16 85.32 Q 506.66 85.32 506.66 88.38 Q 506.66 91.46 508.14 91.46 M 508.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 515.5 92 L 515.5 91.28 L 516.95 91.28 L 516.95 85.57 L 515.5 85.94 L 515.5 85.19 L 517.92 84.59 L 517.92 91.28 L 519.36 91.28 L 519.36 92 M 515.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 526.13 92.18 Q 525.02 92.18 524.33 91.13 Q 523.63 90.08 523.63 88.38 Q 523.63 86.67 524.33 85.63 Q 525.03 84.59 526.16 84.59 Q 527.3 84.59 528 85.63 Q 528.69 86.67 528.69 88.37 Q 528.69 90.11 528 91.14 Q 527.3 92.18 526.13 92.18 M 526.13 92.18 M 526.14 91.46 Q 527.67 91.46 527.67 88.35 Q 527.67 85.32 526.16 85.32 Q 524.66 85.32 524.66 88.38 Q 524.66 91.46 526.14 91.46 M 526.14 91.46"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 537.06 85.71 L 537.28 86.39 L 535.8 86.72 Q 535.82 86.66 535.82 86.64 Q 535.82 86.44 535.68 86.32 M 537.06 85.71 M 536.79 87.91 L 536.21 88.33 L 535.44 87.03 Q 535.69 87 535.78 86.78 M 536.79 87.91 M 534.62 88.33 L 534.03 87.91 L 535.04 86.78 Q 535.13 87 535.38 87.03 M 534.62 88.33 M 533.54 86.39 L 533.76 85.71 L 535.15 86.32 Q 535.01 86.44 535.01 86.64 Q 535.01 86.66 535.02 86.72 M 533.54 86.39 M 535.05 84.77 L 535.77 84.77 L 535.62 86.28 Q 535.53 86.22 535.41 86.22 Q 535.29 86.22 535.2 86.28 M 535.05 84.77"/></g><g style="fill: rgb(190,146,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 542.5 92 Q 542.65 91.16 542.91 90.54 Q 543.17 89.92 543.83 88.85 L 545.8 85.68 L 542.08 85.68 L 542.08 84.77 L 546.72 84.77 L 546.72 85.68 Q 543.94 89.77 543.61 92 M 542.5 92"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 555.06 85.71 L 555.28 86.39 L 553.8 86.72 Q 553.82 86.66 553.82 86.64 Q 553.82 86.44 553.68 86.32 M 555.06 85.71 M 554.79 87.91 L 554.21 88.33 L 553.44 87.03 Q 553.69 87 553.78 86.78 M 554.79 87.91 M 552.62 88.33 L 552.03 87.91 L 553.04 86.78 Q 553.13 87 553.38 87.03 M 552.62 88.33 M 551.54 86.39 L 551.76 85.71 L 553.15 86.32 Q 553.01 86.44 553.01 86.64 Q 553.01 86.66 553.02 86.72 M 551.54 86.39 M 553.05 84.77 L 553.77 84.77 L 553.62 86.28 Q 553.53 86.22 553.41 86.22 Q 553.29 86.22 553.2 86.28 M 553.05 84.77"/></g><g style="fill: rgb(174,125,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 560.72 88.25 Q 561.41 87.36 562.45 87.36 Q 563.4 87.36 564 87.99 Q 564.61 88.62 564.61 89.6 Q 564.61 90.73 563.93 91.45 Q 563.25 92.18 562.21 92.18 Q 561.02 92.18 560.34 91.22 Q 559.67 90.26 559.67 88.55 Q 559.67 86.67 560.44 85.63 Q 561.22 84.59 562.62 84.59 Q 563.27 84.59 564.23 84.86 L 564.23 85.7 Q 563.21 85.31 562.56 85.31 Q 560.72 85.31 560.72 88.25 M 560.72 88.25 M 563.64 89.81 Q 563.64 88.99 563.27 88.52 Q 562.9 88.05 562.25 88.05 Q 561.64 88.05 561.2 88.46 Q 560.76 88.88 560.76 89.45 Q 560.76 90.36 561.18 90.91 Q 561.59 91.46 562.28 91.46 Q 562.9 91.46 563.27 91.01 Q 563.64 90.56 563.64 89.81 M 563.64 89.81"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 573.06 85.71 L 573.28 86.39 L 571.8 86.72 Q 571.82 86.66 571.82 86.64 Q 571.82 86.44 571.68 86.32 M 573.06 85.71 M 572.79 87.91 L 572.21 88.33 L 571.44 87.03 Q 571.69 87 571.78 86.78 M 572.79 87.91 M 570.62 88.33 L 570.03 87.91 L 571.04 86.78 Q 571.13 87 571.38 87.03 M 570.62 88.33 M 569.54 86.39 L 569.76 85.71 L 571.15 86.32 Q 571.01 86.44 571.01 86.64 Q 571.01 86.66 571.02 86.72 M 569.54 86.39 M 571.05 84.77 L 571.77 84.77 L 571.62 86.28 Q 571.53 86.22 571.41 86.22 Q 571.29 86.22 571.2 86.28 M 571.05 84.77"/></g><g style="fill: rgb(174,125,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 578.72 88.25 Q 579.41 87.36 580.45 87.36 Q 581.4 87.36 582 87.99 Q 582.61 88.62 582.61 89.6 Q 582.61 90.73 581.93 91.45 Q 581.25 92.18 580.21 92.18 Q 579.02 92.18 578.34 91.22 Q 577.67 90.26 577.67 88.55 Q 577.67 86.67 578.44 85.63 Q 579.22 84.59 580.62 84.59 Q 581.27 84.59 582.23 84.86 L 582.23 85.7 Q 581.21 85.31 580.56 85.31 Q 578.72 85.31 578.72 88.25 M 578.72 88.25 M 581.64 89.81 Q 581.64 88.99 581.27 88.52 Q 580.9 88.05 580.25 88.05 Q 579.64 88.05 579.2 88.46 Q 578.76 88.88 578.76 89.45 Q 578.76 90.36 579.18 90.91 Q 579.59 91.46 580.28 91.46 Q 580.9 91.46 581.27 91.01 Q 581.64 90.56 581.64 89.81 M 581.64 89.81"/></g><g style="fill: rgb(206,167,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 588.3 88.06 Q 587.24 87.33 587.24 86.43 Q 587.24 85.61 587.84 85.1 Q 588.44 84.59 589.41 84.59 Q 590.3 84.59 590.86 85.02 Q 591.41 85.46 591.41 86.15 Q 591.41 87.2 590.06 88.06 Q 591.7 88.87 591.7 90.13 Q 591.7 91.04 591.01 91.61 Q 590.33 92.18 589.24 92.18 Q 588.18 92.18 587.52 91.64 Q 586.86 91.1 586.86 90.22 Q 586.86 88.92 588.3 88.06 M 588.3 88.06 M 589.53 87.76 Q 590.54 87.1 590.54 86.28 Q 590.54 85.85 590.2 85.58 Q 589.86 85.32 589.31 85.32 Q 588.78 85.32 588.45 85.58 Q 588.11 85.84 588.11 86.25 Q 588.11 86.66 588.41 86.98 Q 588.71 87.3 589.53 87.76 M 589.53 87.76 M 588.82 88.46 Q 588.24 88.9 588.03 89.24 Q 587.83 89.57 587.83 90.07 Q 587.83 90.69 588.23 91.07 Q 588.63 91.46 589.28 91.46 Q 589.91 91.46 590.31 91.13 Q 590.71 90.8 590.71 90.28 Q 590.71 89.86 590.46 89.57 Q 590.21 89.28 589.51 88.86 M 588.82 88.46"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 596.14 91.96 L 596.14 91.14 Q 597.06 91.46 597.7 91.46 Q 598.6 91.46 599.1 90.69 Q 599.61 89.93 599.61 88.57 Q 598.88 89.47 597.94 89.47 Q 597.03 89.47 596.4 88.8 Q 595.76 88.13 595.76 87.16 Q 595.76 86.05 596.44 85.32 Q 597.11 84.59 598.14 84.59 Q 599.32 84.59 600 85.54 Q 600.67 86.48 600.67 88.12 Q 600.67 89.99 599.85 91.08 Q 599.02 92.18 597.61 92.18 Q 597.04 92.18 596.14 91.96 M 596.14 91.96 M 596.72 86.97 Q 596.72 87.81 597.1 88.29 Q 597.47 88.78 598.12 88.78 Q 598.73 88.78 599.16 88.36 Q 599.59 87.95 599.59 87.36 Q 599.59 86.44 599.18 85.87 Q 598.76 85.31 598.08 85.31 Q 597.45 85.31 597.09 85.76 Q 596.72 86.2 596.72 86.97 M 596.72 86.97"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 609.06 85.71 L 609.28 86.39 L 607.8 86.72 Q 607.82 86.66 607.82 86.64 Q 607.82 86.44 607.68 86.32 M 609.06 85.71 M 608.79 87.91 L 608.21 88.33 L 607.44 87.03 Q 607.69 87 607.78 86.78 M 608.79 87.91 M 606.62 88.33 L 606.03 87.91 L 607.04 86.78 Q 607.13 87 607.38 87.03 M 606.62 88.33 M 605.54 86.39 L 605.76 85.71 L 607.15 86.32 Q 607.01 86.44 607.01 86.64 Q 607.01 86.66 607.02 86.72 M 605.54 86.39 M 607.05 84.77 L 607.77 84.77 L 607.62 86.28 Q 607.53 86.22 607.41 86.22 Q 607.29 86.22 607.2 86.28 M 607.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 618.06 85.71 L 618.28 86.39 L 616.8 86.72 Q 616.82 86.66 616.82 86.64 Q 616.82 86.44 616.68 86.32 M 618.06 85.71 M 617.79 87.91 L 617.21 88.33 L 616.44 87.03 Q 616.69 87 616.78 86.78 M 617.79 87.91 M 615.62 88.33 L 615.03 87.91 L 616.04 86.78 Q 616.13 87 616.38 87.03 M 615.62 88.33 M 614.54 86.39 L 614.76 85.71 L 616.15 86.32 Q 616.01 86.44 616.01 86.64 Q 616.01 86.66 616.02 86.72 M 614.54 86.39 M 616.05 84.77 L 616.77 84.77 L 616.62 86.28 Q 616.53 86.22 616.41 86.22 Q 616.29 86.22 616.2 86.28 M 616.05 84.77"/></g><g style="fill: rgb(190,146,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 623.5 92 Q 623.65 91.16 623.91 90.54 Q 624.17 89.92 624.83 88.85 L 626.8 85.68 L 623.08 85.68 L 623.08 84.77 L 627.72 84.77 L 627.72 85.68 Q 624.94 89.77 624.61 92 M 623.5 92"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 636.06 85.71 L 636.28 86.39 L 634.8 86.72 Q 634.82 86.66 634.82 86.64 Q 634.82 86.44 634.68 86.32 M 636.06 85.71 M 635.79 87.91 L 635.21 88.33 L 634.44 87.03 Q 634.69 87 634.78 86.78 M 635.79 87.91 M 633.62 88.33 L 633.03 87.91 L 634.04 86.78 Q 634.13 87 634.38 87.03 M 633.62 88.33 M 632.54 86.39 L 632.76 85.71 L 634.15 86.32 Q 634.01 86.44 634.01 86.64 Q 634.01 86.66 634.02 86.72 M 632.54 86.39 M 634.05 84.77 L 634.77 84.77 L 634.62 86.28 Q 634.53 86.22 634.41 86.22 Q 634.29 86.22 634.2 86.28 M 634.05 84.77"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 641.02 91.95 L 641.02 91.05 Q 642.05 91.46 642.65 91.46 Q 643.33 91.46 643.77 91.06 Q 644.2 90.65 644.2 90.01 Q 644.2 88.49 642.07 88.49 L 641.68 88.49 L 641.68 87.84 L 642.02 87.83 Q 644.02 87.83 644.02 86.42 Q 644.02 85.32 642.71 85.32 Q 641.98 85.32 641.11 85.72 L 641.11 84.88 Q 641.97 84.59 642.77 84.59 Q 644.99 84.59 644.99 86.27 Q 644.99 87.54 643.48 88.08 Q 645.23 88.49 645.23 90 Q 645.23 91.02 644.56 91.6 Q 643.88 92.18 642.71 92.18 Q 642.04 92.18 641.02 91.95 M 641.02 91.95"/></g><g style="fill: rgb(174,125,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 650.72 88.25 Q 651.41 87.36 652.45 87.36 Q 653.4 87.36 654 87.99 Q 654.61 88.62 654.61 89.6 Q 654.61 90.73 653.93 91.45 Q 653.25 92.18 652.21 92.18 Q 651.02 92.18 650.34 91.22 Q 649.67 90.26 649.67 88.55 Q 649.67 86.67 650.44 85.63 Q 651.22 84.59 652.62 84.59 Q 653.27 84.59 654.23 84.86 L 654.23 85.7 Q 653.21 85.31 652.56 85.31 Q 650.72 85.31 650.72 88.25 M 650.72 88.25 M 653.64 89.81 Q 653.64 88.99 653.27 88.52 Q 652.9 88.05 652.25 88.05 Q 651.64 88.05 651.2 88.46 Q 650.76 88.88 650.76 89.45 Q 650.76 90.36 651.18 90.91 Q 651.59 91.46 652.28 91.46 Q 652.9 91.46 653.27 91.01 Q 653.64 90.56 653.64 89.81 M 653.64 89.81"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 663.06 85.71 L 663.28 86.39 L 661.8 86.72 Q 661.82 86.66 661.82 86.64 Q 661.82 86.44 661.68 86.32 M 663.06 85.71 M 662.79 87.91 L 662.21 88.33 L 661.44 87.03 Q 661.69 87 661.78 86.78 M 662.79 87.91 M 660.62 88.33 L 660.03 87.91 L 661.04 86.78 Q 661.13 87 661.38 87.03 M 660.62 88.33 M 659.54 86.39 L 659.76 85.71 L 661.15 86.32 Q 661.01 86.44 661.01 86.64 Q 661.01 86.66 661.02 86.72 M 659.54 86.39 M 661.05 84.77 L 661.77 84.77 L 661.62 86.28 Q 661.53 86.22 661.41 86.22 Q 661.29 86.22 661.2 86.28 M 661.05 84.77"/></g><g style="fill: rgb(190,146,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 668.5 92 Q 668.65 91.16 668.91 90.54 Q 669.17 89.92 669.83 88.85 L 671.8 85.68 L 668.08 85.68 L 668.08 84.77 L 672.72 84.77 L 672.72 85.68 Q 669.94 89.77 669.61 92 M 668.5 92"/></g><g style="fill: rgb(190,146,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 677.5 92 Q 677.65 91.16 677.91 90.54 Q 678.17 89.92 678.83 88.85 L 680.8 85.68 L 677.08 85.68 L 677.08 84.77 L 681.72 84.77 L 681.72 85.68 Q 678.94 89.77 678.61 92 M 677.5 92"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 686.14 91.96 L 686.14 91.14 Q 687.06 91.46 687.7 91.46 Q 688.6 91.46 689.1 90.69 Q 689.61 89.93 689.61 88.57 Q 688.88 89.47 687.94 89.47 Q 687.03 89.47 686.4 88.8 Q 685.76 88.13 685.76 87.16 Q 685.76 86.05 686.44 85.32 Q 687.11 84.59 688.14 84.59 Q 689.32 84.59 690 85.54 Q 690.67 86.48 690.67 88.12 Q 690.67 89.99 689.85 91.08 Q 689.02 92.18 687.61 92.18 Q 687.04 92.18 686.14 91.96 M 686.14 91.96 M 686.72 86.97 Q 686.72 87.81 687.1 88.29 Q 687.47 88.78 688.12 88.78 Q 688.73 88.78 689.16 88.36 Q 689.59 87.95 689.59 87.36 Q 689.59 86.44 689.18 85.87 Q 688.76 85.31 688.08 85.31 Q 687.45 85.31 687.09 85.76 Q 686.72 86.2 686.72 86.97 M 686.72 86.97"/></g><g style="fill: rgb(158,104,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 695.22 92.03 L 695.22 91.17 Q 695.93 91.46 696.58 91.46 Q 697.3 91.46 697.7 91.04 Q 698.11 90.62 698.11 89.88 Q 698.11 88.25 695.87 88.25 Q 695.62 88.25 695.34 88.29 L 695.34 84.77 L 699 84.77 L 699 85.61 L 696.18 85.61 L 696.18 87.52 Q 697.57 87.52 698.36 88.16 Q 699.14 88.8 699.14 89.93 Q 699.14 90.98 698.43 91.58 Q 697.72 92.18 696.46 92.18 Q 695.91 92.18 695.22 92.03 M 695.22 92.03"/></g><g style="fill: rgb(174,125,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 704.72 88.25 Q 705.41 87.36 706.45 87.36 Q 707.4 87.36 708 87.99 Q 708.61 88.62 708.61 89.6 Q 708.61 90.73 707.93 91.45 Q 707.25 92.18 706.21 92.18 Q 705.02 92.18 704.34 91.22 Q 703.67 90.26 703.67 88.55 Q 703.67 86.67 704.44 85.63 Q 705.22 84.59 706.62 84.59 Q 707.27 84.59 708.23 84.86 L 708.23 85.7 Q 707.21 85.31 706.56 85.31 Q 704.72 85.31 704.72 88.25 M 704.72 88.25 M 707.64 89.81 Q 707.64 88.99 707.27 88.52 Q 706.9 88.05 706.25 88.05 Q 705.64 88.05 705.2 88.46 Q 704.76 88.88 704.76 89.45 Q 704.76 90.36 705.18 90.91 Q 705.59 91.46 706.28 91.46 Q 706.9 91.46 707.27 91.01 Q 707.64 90.56 707.64 89.81 M 707.64 89.81"/></g><g style="fill: rgb(206,167,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 714.3 88.06 Q 713.24 87.33 713.24 86.43 Q 713.24 85.61 713.84 85.1 Q 714.44 84.59 715.41 84.59 Q 716.3 84.59 716.86 85.02 Q 717.41 85.46 717.41 86.15 Q 717.41 87.2 716.06 88.06 Q 717.7 88.87 717.7 90.13 Q 717.7 91.04 717.01 91.61 Q 716.33 92.18 715.24 92.18 Q 714.18 92.18 713.52 91.64 Q 712.86 91.1 712.86 90.22 Q 712.86 88.92 714.3 88.06 M 714.3 88.06 M 715.53 87.76 Q 716.54 87.1 716.54 86.28 Q 716.54 85.85 716.2 85.58 Q 715.86 85.32 715.31 85.32 Q 714.78 85.32 714.45 85.58 Q 714.11 85.84 714.11 86.25 Q 714.11 86.66 714.41 86.98 Q 714.71 87.3 715.53 87.76 M 715.53 87.76 M 714.82 88.46 Q 714.24 88.9 714.03 89.24 Q 713.83 89.57 713.83 90.07 Q 713.83 90.69 714.23 91.07 Q 714.63 91.46 715.28 91.46 Q 715.91 91.46 716.31 91.13 Q 716.71 90.8 716.71 90.28 Q 716.71 89.86 716.46 89.57 Q 716.21 89.28 715.51 88.86 M 714.82 88.46"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 726.06 85.71 L 726.28 86.39 L 724.8 86.72 Q 724.82 86.66 724.82 86.64 Q 724.82 86.44 724.68 86.32 M 726.06 85.71 M 725.79 87.91 L 725.21 88.33 L 724.44 87.03 Q 724.69 87 724.78 86.78 M 725.79 87.91 M 723.62 88.33 L 723.03 87.91 L 724.04 86.78 Q 724.13 87 724.38 87.03 M 723.62 88.33 M 722.54 86.39 L 722.76 85.71 L 724.15 86.32 Q 724.01 86.44 724.01 86.64 Q 724.01 86.66 724.02 86.72 M 722.54 86.39 M 724.05 84.77 L 724.77 84.77 L 724.62 86.28 Q 724.53 86.22 724.41 86.22 Q 724.29 86.22 724.2 86.28 M 724.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 735.06 85.71 L 735.28 86.39 L 733.8 86.72 Q 733.82 86.66 733.82 86.64 Q 733.82 86.44 733.68 86.32 M 735.06 85.71 M 734.79 87.91 L 734.21 88.33 L 733.44 87.03 Q 733.69 87 733.78 86.78 M 734.79 87.91 M 732.62 88.33 L 732.03 87.91 L 733.04 86.78 Q 733.13 87 733.38 87.03 M 732.62 88.33 M 731.54 86.39 L 731.76 85.71 L 733.15 86.32 Q 733.01 86.44 733.01 86.64 Q 733.01 86.66 733.02 86.72 M 731.54 86.39 M 733.05 84.77 L 733.77 84.77 L 733.62 86.28 Q 733.53 86.22 733.41 86.22 Q 733.29 86.22 733.2 86.28 M 733.05 84.77"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 740.14 91.96 L 740.14 91.14 Q 741.06 91.46 741.7 91.46 Q 742.6 91.46 743.1 90.69 Q 743.61 89.93 743.61 88.57 Q 742.88 89.47 741.94 89.47 Q 741.03 89.47 740.4 88.8 Q 739.76 88.13 739.76 87.16 Q 739.76 86.05 740.44 85.32 Q 741.11 84.59 742.14 84.59 Q 743.32 84.59 744 85.54 Q 744.67 86.48 744.67 88.12 Q 744.67 89.99 743.85 91.08 Q 743.02 92.18 741.61 92.18 Q 741.04 92.18 740.14 91.96 M 740.14 91.96 M 740.72 86.97 Q 740.72 87.81 741.1 88.29 Q 741.47 88.78 742.12 88.78 Q 742.73 88.78 743.16 88.36 Q 743.59 87.95 743.59 87.36 Q 743.59 86.44 743.18 85.87 Q 742.76 85.31 742.08 85.31 Q 741.45 85.31 741.09 85.76 Q 740.72 86.2 740.72 86.97 M 740.72 86.97"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 753.06 85.71 L 753.28 86.39 L 751.8 86.72 Q 751.82 86.66 751.82 86.64 Q 751.82 86.44 751.68 86.32 M 753.06 85.71 M 752.79 87.91 L 752.21 88.33 L 751.44 87.03 Q 751.69 87 751.78 86.78 M 752.79 87.91 M 750.62 88.33 L 750.03 87.91 L 751.04 86.78 Q 751.13 87 751.38 87.03 M 750.62 88.33 M 749.54 86.39 L 749.76 85.71 L 751.15 86.32 Q 751.01 86.44 751.01 86.64 Q 751.01 86.66 751.02 86.72 M 749.54 86.39 M 751.05 84.77 L 751.77 84.77 L 751.62 86.28 Q 751.53 86.22 751.41 86.22 Q 751.29 86.22 751.2 86.28 M 751.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 762.06 85.71 L 762.28 86.39 L 760.8 86.72 Q 760.82 86.66 760.82 86.64 Q 760.82 86.44 760.68 86.32 M 762.06 85.71 M 761.79 87.91 L 761.21 88.33 L 760.44 87.03 Q 760.69 87 760.78 86.78 M 761.79 87.91 M 759.62 88.33 L 759.03 87.91 L 760.04 86.78 Q 760.13 87 760.38 87.03 M 759.62 88.33 M 758.54 86.39 L 758.76 85.71 L 760.15 86.32 Q 760.01 86.44 760.01 86.64 Q 760.01 86.66 760.02 86.72 M 758.54 86.39 M 760.05 84.77 L 760.77 84.77 L 760.62 86.28 Q 760.53 86.22 760.41 86.22 Q 760.29 86.22 760.2 86.28 M 760.05 84.77"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 767.02 91.95 L 767.02 91.05 Q 768.05 91.46 768.65 91.46 Q 769.33 91.46 769.77 91.06 Q 770.2 90.65 770.2 90.01 Q 770.2 88.49 768.07 88.49 L 767.68 88.49 L 767.68 87.84 L 768.02 87.83 Q 770.02 87.83 770.02 86.42 Q 770.02 85.32 768.71 85.32 Q 767.98 85.32 767.11 85.72 L 767.11 84.88 Q 767.97 84.59 768.77 84.59 Q 770.99 84.59 770.99 86.27 Q 770.99 87.54 769.48 88.08 Q 771.23 88.49 771.23 90 Q 771.23 91.02 770.56 91.6 Q 769.88 92.18 768.71 92.18 Q 768.04 92.18 767.02 91.95 M 767.02 91.95"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 780.06 85.71 L 780.28 86.39 L 778.8 86.72 Q 778.82 86.66 778.82 86.64 Q 778.82 86.44 778.68 86.32 M 780.06 85.71 M 779.79 87.91 L 779.21 88.33 L 778.44 87.03 Q 778.69 87 778.78 86.78 M 779.79 87.91 M 777.62 88.33 L 777.03 87.91 L 778.04 86.78 Q 778.13 87 778.38 87.03 M 777.62 88.33 M 776.54 86.39 L 776.76 85.71 L 778.15 86.32 Q 778.01 86.44 778.01 86.64 Q 778.01 86.66 778.02 86.72 M 776.54 86.39 M 778.05 84.77 L 778.77 84.77 L 778.62 86.28 Q 778.53 86.22 778.41 86.22 Q 778.29 86.22 778.2 86.28 M 778.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 789.06 85.71 L 789.28 86.39 L 787.8 86.72 Q 787.82 86.66 787.82 86.64 Q 787.82 86.44 787.68 86.32 M 789.06 85.71 M 788.79 87.91 L 788.21 88.33 L 787.44 87.03 Q 787.69 87 787.78 86.78 M 788.79 87.91 M 786.62 88.33 L 786.03 87.91 L 787.04 86.78 Q 787.13 87 787.38 87.03 M 786.62 88.33 M 785.54 86.39 L 785.76 85.71 L 787.15 86.32 Q 787.01 86.44 787.01 86.64 Q 787.01 86.66 787.02 86.72 M 785.54 86.39 M 787.05 84.77 L 787.77 84.77 L 787.62 86.28 Q 787.53 86.22 787.41 86.22 Q 787.29 86.22 787.2 86.28 M 787.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 798.06 85.71 L 798.28 86.39 L 796.8 86.72 Q 796.82 86.66 796.82 86.64 Q 796.82 86.44 796.68 86.32 M 798.06 85.71 M 797.79 87.91 L 797.21 88.33 L 796.44 87.03 Q 796.69 87 796.78 86.78 M 797.79 87.91 M 795.62 88.33 L 795.03 87.91 L 796.04 86.78 Q 796.13 87 796.38 87.03 M 795.62 88.33 M 794.54 86.39 L 794.76 85.71 L 796.15 86.32 Q 796.01 86.44 796.01 86.64 Q 796.01 86.66 796.02 86.72 M 794.54 86.39 M 796.05 84.77 L 796.77 84.77 L 796.62 86.28 Q 796.53 86.22 796.41 86.22 Q 796.29 86.22 796.2 86.28 M 796.05 84.77"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 803.02 91.95 L 803.02 91.05 Q 804.05 91.46 804.65 91.46 Q 805.33 91.46 805.77 91.06 Q 806.2 90.65 806.2 90.01 Q 806.2 88.49 804.07 88.49 L 803.68 88.49 L 803.68 87.84 L 804.02 87.83 Q 806.02 87.83 806.02 86.42 Q 806.02 85.32 804.71 85.32 Q 803.98 85.32 803.11 85.72 L 803.11 84.88 Q 803.97 84.59 804.77 84.59 Q 806.99 84.59 806.99 86.27 Q 806.99 87.54 805.48 88.08 Q 807.23 88.49 807.23 90 Q 807.23 91.02 806.56 91.6 Q 805.88 92.18 804.71 92.18 Q 804.04 92.18 803.02 91.95 M 803.02 91.95"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 816.06 85.71 L 816.28 86.39 L 814.8 86.72 Q 814.82 86.66 814.82 86.64 Q 814.82 86.44 814.68 86.32 M 816.06 85.71 M 815.79 87.91 L 815.21 88.33 L 814.44 87.03 Q 814.69 87 814.78 86.78 M 815.79 87.91 M 813.62 88.33 L 813.03 87.91 L 814.04 86.78 Q 814.13 87 814.38 87.03 M 813.62 88.33 M 812.54 86.39 L 812.76 85.71 L 814.15 86.32 Q 814.01 86.44 814.01 86.64 Q 814.01 86.66 814.02 86.72 M 812.54 86.39 M 814.05 84.77 L 814.77 84.77 L 814.62 86.28 Q 814.53 86.22 814.41 86.22 Q 814.29 86.22 814.2 86.28 M 814.05 84.77"/></g><g style="fill: rgb(158,104,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 821.22 92.03 L 821.22 91.17 Q 821.93 91.46 822.58 91.46 Q 823.3 91.46 823.7 91.04 Q 824.11 90.62 824.11 89.88 Q 824.11 88.25 821.87 88.25 Q 821.62 88.25 821.34 88.29 L 821.34 84.77 L 825 84.77 L 825 85.61 L 822.18 85.61 L 822.18 87.52 Q 823.57 87.52 824.36 88.16 Q 825.14 88.8 825.14 89.93 Q 825.14 90.98 824.43 91.58 Q 823.72 92.18 822.46 92.18 Q 821.91 92.18 821.22 92.03 M 821.22 92.03"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 830.14 91.96 L 830.14 91.14 Q 831.06 91.46 831.7 91.46 Q 832.6 91.46 833.1 90.69 Q 833.61 89.93 833.61 88.57 Q 832.88 89.47 831.94 89.47 Q 831.03 89.47 830.4 88.8 Q 829.76 88.13 829.76 87.16 Q 829.76 86.05 830.44 85.32 Q 831.11 84.59 832.14 84.59 Q 833.32 84.59 834 85.54 Q 834.67 86.48 834.67 88.12 Q 834.67 89.99 833.85 91.08 Q 833.02 92.18 831.61 92.18 Q 831.04 92.18 830.14 91.96 M 830.14 91.96 M 830.72 86.97 Q 830.72 87.81 831.1 88.29 Q 831.47 88.78 832.12 88.78 Q 832.73 88.78 833.16 88.36 Q 833.59 87.95 833.59 87.36 Q 833.59 86.44 833.18 85.87 Q 832.76 85.31 832.08 85.31 Q 831.45 85.31 831.09 85.76 Q 830.72 86.2 830.72 86.97 M 830.72 86.97"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 843.06 85.71 L 843.28 86.39 L 841.8 86.72 Q 841.82 86.66 841.82 86.64 Q 841.82 86.44 841.68 86.32 M 843.06 85.71 M 842.79 87.91 L 842.21 88.33 L 841.44 87.03 Q 841.69 87 841.78 86.78 M 842.79 87.91 M 840.62 88.33 L 840.03 87.91 L 841.04 86.78 Q 841.13 87 841.38 87.03 M 840.62 88.33 M 839.54 86.39 L 839.76 85.71 L 841.15 86.32 Q 841.01 86.44 841.01 86.64 Q 841.01 86.66 841.02 86.72 M 839.54 86.39 M 841.05 84.77 L 841.77 84.77 L 841.62 86.28 Q 841.53 86.22 841.41 86.22 Q 841.29 86.22 841.2 86.28 M 841.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 852.06 85.71 L 852.28 86.39 L 850.8 86.72 Q 850.82 86.66 850.82 86.64 Q 850.82 86.44 850.68 86.32 M 852.06 85.71 M 851.79 87.91 L 851.21 88.33 L 850.44 87.03 Q 850.69 87 850.78 86.78 M 851.79 87.91 M 849.62 88.33 L 849.03 87.91 L 850.04 86.78 Q 850.13 87 850.38 87.03 M 849.62 88.33 M 848.54 86.39 L 848.76 85.71 L 850.15 86.32 Q 850.01 86.44 850.01 86.64 Q 850.01 86.66 850.02 86.72 M 848.54 86.39 M 850.05 84.77 L 850.77 84.77 L 850.62 86.28 Q 850.53 86.22 850.41 86.22 Q 850.29 86.22 850.2 86.28 M 850.05 84.77"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 857.14 91.96 L 857.14 91.14 Q 858.06 91.46 858.7 91.46 Q 859.6 91.46 860.1 90.69 Q 860.61 89.93 860.61 88.57 Q 859.88 89.47 858.94 89.47 Q 858.03 89.47 857.4 88.8 Q 856.76 88.13 856.76 87.16 Q 856.76 86.05 857.44 85.32 Q 858.11 84.59 859.14 84.59 Q 860.32 84.59 861 85.54 Q 861.67 86.48 861.67 88.12 Q 861.67 89.99 860.85 91.08 Q 860.02 92.18 858.61 92.18 Q 858.04 92.18 857.14 91.96 M 857.14 91.96 M 857.72 86.97 Q 857.72 87.81 858.1 88.29 Q 858.47 88.78 859.12 88.78 Q 859.73 88.78 860.16 88.36 Q 860.59 87.95 860.59 87.36 Q 860.59 86.44 860.18 85.87 Q 859.76 85.31 859.08 85.31 Q 858.45 85.31 858.09 85.76 Q 857.72 86.2 857.72 86.97 M 857.72 86.97"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 870.06 85.71 L 870.28 86.39 L 868.8 86.72 Q 868.82 86.66 868.82 86.64 Q 868.82 86.44 868.68 86.32 M 870.06 85.71 M 869.79 87.91 L 869.21 88.33 L 868.44 87.03 Q 868.69 87 868.78 86.78 M 869.79 87.91 M 867.62 88.33 L 867.03 87.91 L 868.04 86.78 Q 868.13 87 868.38 87.03 M 867.62 88.33 M 866.54 86.39 L 866.76 85.71 L 868.15 86.32 Q 868.01 86.44 868.01 86.64 Q 868.01 86.66 868.02 86.72 M 866.54 86.39 M 868.05 84.77 L 868.77 84.77 L 868.62 86.28 Q 868.53 86.22 868.41 86.22 Q 868.29 86.22 868.2 86.28 M 868.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 879.06 85.71 L 879.28 86.39 L 877.8 86.72 Q 877.82 86.66 877.82 86.64 Q 877.82 86.44 877.68 86.32 M 879.06 85.71 M 878.79 87.91 L 878.21 88.33 L 877.44 87.03 Q 877.69 87 877.78 86.78 M 878.79 87.91 M 876.62 88.33 L 876.03 87.91 L 877.04 86.78 Q 877.13 87 877.38 87.03 M 876.62 88.33 M 875.54 86.39 L 875.76 85.71 L 877.15 86.32 Q 877.01 86.44 877.01 86.64 Q 877.01 86.66 877.02 86.72 M 875.54 86.39 M 877.05 84.77 L 877.77 84.77 L 877.62 86.28 Q 877.53 86.22 877.41 86.22 Q 877.29 86.22 877.2 86.28 M 877.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 888.06 85.71 L 888.28 86.39 L 886.8 86.72 Q 886.82 86.66 886.82 86.64 Q 886.82 86.44 886.68 86.32 M 888.06 85.71 M 887.79 87.91 L 887.21 88.33 L 886.44 87.03 Q 886.69 87 886.78 86.78 M 887.79 87.91 M 885.62 88.33 L 885.03 87.91 L 886.04 86.78 Q 886.13 87 886.38 87.03 M 885.62 88.33 M 884.54 86.39 L 884.76 85.71 L 886.15 86.32 Q 886.01 86.44 886.01 86.64 Q 886.01 86.66 886.02 86.72 M 884.54 86.39 M 886.05 84.77 L 886.77 84.77 L 886.62 86.28 Q 886.53 86.22 886.41 86.22 Q 886.29 86.22 886.2 86.28 M 886.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 897.06 85.71 L 897.28 86.39 L 895.8 86.72 Q 895.82 86.66 895.82 86.64 Q 895.82 86.44 895.68 86.32 M 897.06 85.71 M 896.79 87.91 L 896.21 88.33 L 895.44 87.03 Q 895.69 87 895.78 86.78 M 896.79 87.91 M 894.62 88.33 L 894.03 87.91 L 895.04 86.78 Q 895.13 87 895.38 87.03 M 894.62 88.33 M 893.54 86.39 L 893.76 85.71 L 895.15 86.32 Q 895.01 86.44 895.01 86.64 Q 895.01 86.66 895.02 86.72 M 893.54 86.39 M 895.05 84.77 L 895.77 84.77 L 895.62 86.28 Q 895.53 86.22 895.41 86.22 Q 895.29 86.22 895.2 86.28 M 895.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 906.06 85.71 L 906.28 86.39 L 904.8 86.72 Q 904.82 86.66 904.82 86.64 Q 904.82 86.44 904.68 86.32 M 906.06 85.71 M 905.79 87.91 L 905.21 88.33 L 904.44 87.03 Q 904.69 87 904.78 86.78 M 905.79 87.91 M 903.62 88.33 L 903.03 87.91 L 904.04 86.78 Q 904.13 87 904.38 87.03 M 903.62 88.33 M 902.54 86.39 L 902.76 85.71 L 904.15 86.32 Q 904.01 86.44 904.01 86.64 Q 904.01 86.66 904.02 86.72 M 902.54 86.39 M 904.05 84.77 L 904.77 84.77 L 904.62 86.28 Q 904.53 86.22 904.41 86.22 Q 904.29 86.22 904.2 86.28 M 904.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 915.06 85.71 L 915.28 86.39 L 913.8 86.72 Q 913.82 86.66 913.82 86.64 Q 913.82 86.44 913.68 86.32 M 915.06 85.71 M 914.79 87.91 L 914.21 88.33 L 913.44 87.03 Q 913.69 87 913.78 86.78 M 914.79 87.91 M 912.62 88.33 L 912.03 87.91 L 913.04 86.78 Q 913.13 87 913.38 87.03 M 912.62 88.33 M 911.54 86.39 L 911.76 85.71 L 913.15 86.32 Q 913.01 86.44 913.01 86.64 Q 913.01 86.66 913.02 86.72 M 911.54 86.39 M 913.05 84.77 L 913.77 84.77 L 913.62 86.28 Q 913.53 86.22 913.41 86.22 Q 913.29 86.22 913.2 86.28 M 913.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 924.06 85.71 L 924.28 86.39 L 922.8 86.72 Q 922.82 86.66 922.82 86.64 Q 922.82 86.44 922.68 86.32 M 924.06 85.71 M 923.79 87.91 L 923.21 88.33 L 922.44 87.03 Q 922.69 87 922.78 86.78 M 923.79 87.91 M 921.62 88.33 L 921.03 87.91 L 922.04 86.78 Q 922.13 87 922.38 87.03 M 921.62 88.33 M 920.54 86.39 L 920.76 85.71 L 922.15 86.32 Q 922.01 86.44 922.01 86.64 Q 922.01 86.66 922.02 86.72 M 920.54 86.39 M 922.05 84.77 L 922.77 84.77 L 922.62 86.28 Q 922.53 86.22 922.41 86.22 Q 922.29 86.22 922.2 86.28 M 922.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 933.06 85.71 L 933.28 86.39 L 931.8 86.72 Q 931.82 86.66 931.82 86.64 Q 931.82 86.44 931.68 86.32 M 933.06 85.71 M 932.79 87.91 L 932.21 88.33 L 931.44 87.03 Q 931.69 87 931.78 86.78 M 932.79 87.91 M 930.62 88.33 L 930.03 87.91 L 931.04 86.78 Q 931.13 87 931.38 87.03 M 930.62 88.33 M 929.54 86.39 L 929.76 85.71 L 931.15 86.32 Q 931.01 86.44 931.01 86.64 Q 931.01 86.66 931.02 86.72 M 929.54 86.39 M 931.05 84.77 L 931.77 84.77 L 931.62 86.28 Q 931.53 86.22 931.41 86.22 Q 931.29 86.22 931.2 86.28 M 931.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 942.06 85.71 L 942.28 86.39 L 940.8 86.72 Q 940.82 86.66 940.82 86.64 Q 940.82 86.44 940.68 86.32 M 942.06 85.71 M 941.79 87.91 L 941.21 88.33 L 940.44 87.03 Q 940.69 87 940.78 86.78 M 941.79 87.91 M 939.62 88.33 L 939.03 87.91 L 940.04 86.78 Q 940.13 87 940.38 87.03 M 939.62 88.33 M 938.54 86.39 L 938.76 85.71 L 940.15 86.32 Q 940.01 86.44 940.01 86.64 Q 940.01 86.66 940.02 86.72 M 938.54 86.39 M 940.05 84.77 L 940.77 84.77 L 940.62 86.28 Q 940.53 86.22 940.41 86.22 Q 940.29 86.22 940.2 86.28 M 940.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 951.06 85.71 L 951.28 86.39 L 949.8 86.72 Q 949.82 86.66 949.82 86.64 Q 949.82 86.44 949.68 86.32 M 951.06 85.71 M 950.79 87.91 L 950.21 88.33 L 949.44 87.03 Q 949.69 87 949.78 86.78 M 950.79 87.91 M 948.62 88.33 L 948.03 87.91 L 949.04 86.78 Q 949.13 87 949.38 87.03 M 948.62 88.33 M 947.54 86.39 L 947.76 85.71 L 949.15 86.32 Q 949.01 86.44 949.01 86.64 Q 949.01 86.66 949.02 86.72 M 947.54 86.39 M 949.05 84.77 L 949.77 84.77 L 949.62 86.28 Q 949.53 86.22 949.41 86.22 Q 949.29 86.22 949.2 86.28 M 949.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 960.06 85.71 L 960.28 86.39 L 958.8 86.72 Q 958.82 86.66 958.82 86.64 Q 958.82 86.44 958.68 86.32 M 960.06 85.71 M 959.79 87.91 L 959.21 88.33 L 958.44 87.03 Q 958.69 87 958.78 86.78 M 959.79 87.91 M 957.62 88.33 L 957.03 87.91 L 958.04 86.78 Q 958.13 87 958.38 87.03 M 957.62 88.33 M 956.54 86.39 L 956.76 85.71 L 958.15 86.32 Q 958.01 86.44 958.01 86.64 Q 958.01 86.66 958.02 86.72 M 956.54 86.39 M 958.05 84.77 L 958.77 84.77 L 958.62 86.28 Q 958.53 86.22 958.41 86.22 Q 958.29 86.22 958.2 86.28 M 958.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 969.06 85.71 L 969.28 86.39 L 967.8 86.72 Q 967.82 86.66 967.82 86.64 Q 967.82 86.44 967.68 86.32 M 969.06 85.71 M 968.79 87.91 L 968.21 88.33 L 967.44 87.03 Q 967.69 87 967.78 86.78 M 968.79 87.91 M 966.62 88.33 L 966.03 87.91 L 967.04 86.78 Q 967.13 87 967.38 87.03 M 966.62 88.33 M 965.54 86.39 L 965.76 85.71 L 967.15 86.32 Q 967.01 86.44 967.01 86.64 Q 967.01 86.66 967.02 86.72 M 965.54 86.39 M 967.05 84.77 L 967.77 84.77 L 967.62 86.28 Q 967.53 86.22 967.41 86.22 Q 967.29 86.22 967.2 86.28 M 967.05 84.77"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 978.06 85.71 L 978.28 86.39 L 976.8 86.72 Q 976.82 86.66 976.82 86.64 Q 976.82 86.44 976.68 86.32 M 978.06 85.71 M 977.79 87.91 L 977.21 88.33 L 976.44 87.03 Q 976.69 87 976.78 86.78 M 977.79 87.91 M 975.62 88.33 L 975.03 87.91 L 976.04 86.78 Q 976.13 87 976.38 87.03 M 975.62 88.33 M 974.54 86.39 L 974.76 85.71 L 976.15 86.32 Q 976.01 86.44 976.01 86.64 Q 976.01 86.66 976.02 86.72 M 974.54 86.39 M 976.05 84.77 L 976.77 84.77 L 976.62 86.28 Q 976.53 86.22 976.41 86.22 Q 976.29 86.22 976.2 86.28 M 976.05 84.77"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 983.14 91.96 L 983.14 91.14 Q 984.06 91.46 984.7 91.46 Q 985.6 91.46 986.1 90.69 Q 986.61 89.93 986.61 88.57 Q 985.88 89.47 984.94 89.47 Q 984.03 89.47 983.4 88.8 Q 982.76 88.13 982.76 87.16 Q 982.76 86.05 983.44 85.32 Q 984.11 84.59 985.14 84.59 Q 986.32 84.59 987 85.54 Q 987.67 86.48 987.67 88.12 Q 987.67 89.99 986.85 91.08 Q 986.02 92.18 984.61 92.18 Q 984.04 92.18 983.14 91.96 M 983.14 91.96 M 983.72 86.97 Q 983.72 87.81 984.1 88.29 Q 984.47 88.78 985.12 88.78 Q 985.73 88.78 986.16 88.36 Q 986.59 87.95 986.59 87.36 Q 986.59 86.44 986.18 85.87 Q 985.76 85.31 985.08 85.31 Q 984.45 85.31 984.09 85.76 Q 983.72 86.2 983.72 86.97 M 983.72 86.97"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 992.02 91.95 L 992.02 91.05 Q 993.05 91.46 993.65 91.46 Q 994.33 91.46 994.77 91.06 Q 995.2 90.65 995.2 90.01 Q 995.2 88.49 993.07 88.49 L 992.68 88.49 L 992.68 87.84 L 993.02 87.83 Q 995.02 87.83 995.02 86.42 Q 995.02 85.32 993.71 85.32 Q 992.98 85.32 992.11 85.72 L 992.11 84.88 Q 992.97 84.59 993.77 84.59 Q 995.99 84.59 995.99 86.27 Q 995.99 87.54 994.48 88.08 Q 996.23 88.49 996.23 90 Q 996.23 91.02 995.56 91.6 Q 994.88 92.18 993.71 92.18 Q 993.04 92.18 992.02 91.95 M 992.02 91.95"/></g><g style="fill: rgb(190,146,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1001.5 92 Q 1001.65 91.16 1001.91 90.54 Q 1002.17 89.92 1002.83 88.85 L 1004.8 85.68 L 1001.08 85.68 L 1001.08 84.77 L 1005.72 84.77 L 1005.72 85.68 Q 1002.94 89.77 1002.61 92 M 1001.5 92"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1014.06 85.71 L 1014.28 86.39 L 1012.8 86.72 Q 1012.82 86.66 1012.82 86.64 Q 1012.82 86.44 1012.68 86.32 M 1014.06 85.71 M 1013.79 87.91 L 1013.21 88.33 L 1012.44 87.03 Q 1012.69 87 1012.78 86.78 M 1013.79 87.91 M 1011.62 88.33 L 1011.03 87.91 L 1012.04 86.78 Q 1012.13 87 1012.38 87.03 M 1011.62 88.33 M 1010.54 86.39 L 1010.76 85.71 L 1012.15 86.32 Q 1012.01 86.44 1012.01 86.64 Q 1012.01 86.66 1012.02 86.72 M 1010.54 86.39 M 1012.05 84.77 L 1012.77 84.77 L 1012.62 86.28 Q 1012.53 86.22 1012.41 86.22 Q 1012.29 86.22 1012.2 86.28 M 1012.05 84.77"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1019.02 91.95 L 1019.02 91.05 Q 1020.05 91.46 1020.65 91.46 Q 1021.33 91.46 1021.77 91.06 Q 1022.2 90.65 1022.2 90.01 Q 1022.2 88.49 1020.07 88.49 L 1019.68 88.49 L 1019.68 87.84 L 1020.02 87.83 Q 1022.02 87.83 1022.02 86.42 Q 1022.02 85.32 1020.71 85.32 Q 1019.98 85.32 1019.11 85.72 L 1019.11 84.88 Q 1019.97 84.59 1020.77 84.59 Q 1022.99 84.59 1022.99 86.27 Q 1022.99 87.54 1021.48 88.08 Q 1023.23 88.49 1023.23 90 Q 1023.23 91.02 1022.56 91.6 Q 1021.88 92.18 1020.71 92.18 Q 1020.04 92.18 1019.02 91.95 M 1019.02 91.95"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1028.14 91.96 L 1028.14 91.14 Q 1029.06 91.46 1029.7 91.46 Q 1030.6 91.46 1031.1 90.69 Q 1031.61 89.93 1031.61 88.57 Q 1030.88 89.47 1029.94 89.47 Q 1029.03 89.47 1028.4 88.8 Q 1027.76 88.13 1027.76 87.16 Q 1027.76 86.05 1028.44 85.32 Q 1029.11 84.59 1030.14 84.59 Q 1031.32 84.59 1032 85.54 Q 1032.67 86.48 1032.67 88.12 Q 1032.67 89.99 1031.85 91.08 Q 1031.02 92.18 1029.61 92.18 Q 1029.04 92.18 1028.14 91.96 M 1028.14 91.96 M 1028.72 86.97 Q 1028.72 87.81 1029.1 88.29 Q 1029.47 88.78 1030.12 88.78 Q 1030.73 88.78 1031.16 88.36 Q 1031.59 87.95 1031.59 87.36 Q 1031.59 86.44 1031.18 85.87 Q 1030.76 85.31 1030.08 85.31 Q 1029.45 85.31 1029.09 85.76 Q 1028.72 86.2 1028.72 86.97 M 1028.72 86.97"/></g><g style="fill: rgb(206,167,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1038.3 88.06 Q 1037.24 87.33 1037.24 86.43 Q 1037.24 85.61 1037.84 85.1 Q 1038.44 84.59 1039.41 84.59 Q 1040.3 84.59 1040.86 85.02 Q 1041.41 85.46 1041.41 86.15 Q 1041.41 87.2 1040.06 88.06 Q 1041.7 88.87 1041.7 90.13 Q 1041.7 91.04 1041.01 91.61 Q 1040.33 92.18 1039.24 92.18 Q 1038.18 92.18 1037.52 91.64 Q 1036.86 91.1 1036.86 90.22 Q 1036.86 88.92 1038.3 88.06 M 1038.3 88.06 M 1039.53 87.76 Q 1040.54 87.1 1040.54 86.28 Q 1040.54 85.85 1040.2 85.58 Q 1039.86 85.32 1039.31 85.32 Q 1038.78 85.32 1038.45 85.58 Q 1038.11 85.84 1038.11 86.25 Q 1038.11 86.66 1038.41 86.98 Q 1038.71 87.3 1039.53 87.76 M 1039.53 87.76 M 1038.82 88.46 Q 1038.24 88.9 1038.03 89.24 Q 1037.83 89.57 1037.83 90.07 Q 1037.83 90.69 1038.23 91.07 Q 1038.63 91.46 1039.28 91.46 Q 1039.91 91.46 1040.31 91.13 Q 1040.71 90.8 1040.71 90.28 Q 1040.71 89.86 1040.46 89.57 Q 1040.21 89.28 1039.51 88.86 M 1038.82 88.46"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1050.06 85.71 L 1050.28 86.39 L 1048.8 86.72 Q 1048.82 86.66 1048.82 86.64 Q 1048.82 86.44 1048.68 86.32 M 1050.06 85.71 M 1049.79 87.91 L 1049.21 88.33 L 1048.44 87.03 Q 1048.69 87 1048.78 86.78 M 1049.79 87.91 M 1047.62 88.33 L 1047.03 87.91 L 1048.04 86.78 Q 1048.13 87 1048.38 87.03 M 1047.62 88.33 M 1046.54 86.39 L 1046.76 85.71 L 1048.15 86.32 Q 1048.01 86.44 1048.01 86.64 Q 1048.01 86.66 1048.02 86.72 M 1046.54 86.39 M 1048.05 84.77 L 1048.77 84.77 L 1048.62 86.28 Q 1048.53 86.22 1048.41 86.22 Q 1048.29 86.22 1048.2 86.28 M 1048.05 84.77"/></g><g style="fill: rgb(174,125,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1055.72 88.25 Q 1056.41 87.36 1057.45 87.36 Q 1058.4 87.36 1059 87.99 Q 1059.61 88.62 1059.61 89.6 Q 1059.61 90.73 1058.93 91.45 Q 1058.25 92.18 1057.21 92.18 Q 1056.02 92.18 1055.34 91.22 Q 1054.67 90.26 1054.67 88.55 Q 1054.67 86.67 1055.44 85.63 Q 1056.22 84.59 1057.62 84.59 Q 1058.27 84.59 1059.23 84.86 L 1059.23 85.7 Q 1058.21 85.31 1057.56 85.31 Q 1055.72 85.31 1055.72 88.25 M 1055.72 88.25 M 1058.64 89.81 Q 1058.64 88.99 1058.27 88.52 Q 1057.9 88.05 1057.25 88.05 Q 1056.64 88.05 1056.2 88.46 Q 1055.76 88.88 1055.76 89.45 Q 1055.76 90.36 1056.18 90.91 Q 1056.59 91.46 1057.28 91.46 Q 1057.9 91.46 1058.27 91.01 Q 1058.64 90.56 1058.64 89.81 M 1058.64 89.81"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1068.06 85.71 L 1068.28 86.39 L 1066.8 86.72 Q 1066.82 86.66 1066.82 86.64 Q 1066.82 86.44 1066.68 86.32 M 1068.06 85.71 M 1067.79 87.91 L 1067.21 88.33 L 1066.44 87.03 Q 1066.69 87 1066.78 86.78 M 1067.79 87.91 M 1065.62 88.33 L 1065.03 87.91 L 1066.04 86.78 Q 1066.13 87 1066.38 87.03 M 1065.62 88.33 M 1064.54 86.39 L 1064.76 85.71 L 1066.15 86.32 Q 1066.01 86.44 1066.01 86.64 Q 1066.01 86.66 1066.02 86.72 M 1064.54 86.39 M 1066.05 84.77 L 1066.77 84.77 L 1066.62 86.28 Q 1066.53 86.22 1066.41 86.22 Q 1066.29 86.22 1066.2 86.28 M 1066.05 84.77"/></g><g style="fill: rgb(141,83,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1075.76 92 L 1075.76 89.95 L 1072.51 89.95 L 1072.51 89.23 L 1075.76 84.77 L 1076.67 84.77 L 1076.67 89.17 L 1077.63 89.17 L 1077.63 89.95 L 1076.67 89.95 L 1076.67 92 M 1075.76 92 M 1073.46 89.17 L 1075.83 89.17 L 1075.83 85.96 M 1073.46 89.17"/></g><g style="fill: rgb(158,104,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1082.22 92.03 L 1082.22 91.17 Q 1082.93 91.46 1083.58 91.46 Q 1084.3 91.46 1084.7 91.04 Q 1085.11 90.62 1085.11 89.88 Q 1085.11 88.25 1082.87 88.25 Q 1082.62 88.25 1082.34 88.29 L 1082.34 84.77 L 1086 84.77 L 1086 85.61 L 1083.18 85.61 L 1083.18 87.52 Q 1084.57 87.52 1085.36 88.16 Q 1086.14 88.8 1086.14 89.93 Q 1086.14 90.98 1085.43 91.58 Q 1084.72 92.18 1083.46 92.18 Q 1082.91 92.18 1082.22 92.03 M 1082.22 92.03"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1091.14 91.96 L 1091.14 91.14 Q 1092.06 91.46 1092.7 91.46 Q 1093.6 91.46 1094.1 90.69 Q 1094.61 89.93 1094.61 88.57 Q 1093.88 89.47 1092.94 89.47 Q 1092.03 89.47 1091.4 88.8 Q 1090.76 88.13 1090.76 87.16 Q 1090.76 86.05 1091.44 85.32 Q 1092.11 84.59 1093.14 84.59 Q 1094.32 84.59 1095 85.54 Q 1095.67 86.48 1095.67 88.12 Q 1095.67 89.99 1094.85 91.08 Q 1094.02 92.18 1092.61 92.18 Q 1092.04 92.18 1091.14 91.96 M 1091.14 91.96 M 1091.72 86.97 Q 1091.72 87.81 1092.1 88.29 Q 1092.47 88.78 1093.12 88.78 Q 1093.73 88.78 1094.16 88.36 Q 1094.59 87.95 1094.59 87.36 Q 1094.59 86.44 1094.18 85.87 Q 1093.76 85.31 1093.08 85.31 Q 1092.45 85.31 1092.09 85.76 Q 1091.72 86.2 1091.72 86.97 M 1091.72 86.97"/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1104.06 85.71 L 1104.28 86.39 L 1102.8 86.72 Q 1102.82 86.66 1102.82 86.64 Q 1102.82 86.44 1102.68 86.32 M 1104.06 85.71 M 1103.79 87.91 L 1103.21 88.33 L 1102.44 87.03 Q 1102.69 87 1102.78 86.78 M 1103.79 87.91 M 1101.62 88.33 L 1101.03 87.91 L 1102.04 86.78 Q 1102.13 87 1102.38 87.03 M 1101.62 88.33 M 1100.54 86.39 L 1100.76 85.71 L 1102.15 86.32 Q 1102.01 86.44 1102.01 86.64 Q 1102.01 86.66 1102.02 86.72 M 1100.54 86.39 M 1102.05 84.77 L 1102.77 84.77 L 1102.62 86.28 Q 1102.53 86.22 1102.41 86.22 Q 1102.29 86.22 1102.2 86.28 M 1102.05 84.77"/></g><g style="fill: rgb(206,167,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1110.3 88.06 Q 1109.24 87.33 1109.24 86.43 Q 1109.24 85.61 1109.84 85.1 Q 1110.44 84.59 1111.41 84.59 Q 1112.3 84.59 1112.86 85.02 Q 1113.41 85.46 1113.41 86.15 Q 1113.41 87.2 1112.06 88.06 Q 1113.7 88.87 1113.7 90.13 Q 1113.7 91.04 1113.01 91.61 Q 1112.33 92.18 1111.24 92.18 Q 1110.18 92.18 1109.52 91.64 Q 1108.86 91.1 1108.86 90.22 Q 1108.86 88.92 1110.3 88.06 M 1110.3 88.06 M 1111.53 87.76 Q 1112.54 87.1 1112.54 86.28 Q 1112.54 85.85 1112.2 85.58 Q 1111.86 85.32 1111.31 85.32 Q 1110.78 85.32 1110.45 85.58 Q 1110.11 85.84 1110.11 86.25 Q 1110.11 86.66 1110.41 86.98 Q 1110.71 87.3 1111.53 87.76 M 1111.53 87.76 M 1110.82 88.46 Q 1110.24 88.9 1110.03 89.24 Q 1109.83 89.57 1109.83 90.07 Q 1109.83 90.69 1110.23 91.07 Q 1110.63 91.46 1111.28 91.46 Q 1111.91 91.46 1112.31 91.13 Q 1112.71 90.8 1112.71 90.28 Q 1112.71 89.86 1112.46 89.57 Q 1112.21 89.28 1111.51 88.86 M 1110.82 88.46"/></g><g style="fill: rgb(223,188,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1118.14 91.96 L 1118.14 91.14 Q 1119.06 91.46 1119.7 91.46 Q 1120.6 91.46 1121.1 90.69 Q 1121.61 89.93 1121.61 88.57 Q 1120.88 89.47 1119.94 89.47 Q 1119.03 89.47 1118.4 88.8 Q 1117.76 88.13 1117.76 87.16 Q 1117.76 86.05 1118.44 85.32 Q 1119.11 84.59 1120.14 84.59 Q 1121.32 84.59 1122 85.54 Q 1122.67 86.48 1122.67 88.12 Q 1122.67 89.99 1121.85 91.08 Q 1121.02 92.18 1119.61 92.18 Q 1119.04 92.18 1118.14 91.96 M 1118.14 91.96 M 1118.72 86.97 Q 1118.72 87.81 1119.1 88.29 Q 1119.47 88.78 1120.12 88.78 Q 1120.73 88.78 1121.16 88.36 Q 1121.59 87.95 1121.59 87.36 Q 1121.59 86.44 1121.18 85.87 Q 1120.76 85.31 1120.08 85.31 Q 1119.45 85.31 1119.09 85.76 Q 1118.72 86.2 1118.72 86.97 M 1118.72 86.97"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1129.13 92.18 Q 1128.02 92.18 1127.33 91.13 Q 1126.63 90.08 1126.63 88.38 Q 1126.63 86.67 1127.33 85.63 Q 1128.03 84.59 1129.16 84.59 Q 1130.3 84.59 1131 85.63 Q 1131.69 86.67 1131.69 88.37 Q 1131.69 90.11 1131 91.14 Q 1130.3 92.18 1129.13 92.18 M 1129.13 92.18 M 1129.14 91.46 Q 1130.67 91.46 1130.67 88.35 Q 1130.67 85.32 1129.16 85.32 Q 1127.66 85.32 1127.66 88.38 Q 1127.66 91.46 1129.14 91.46 M 1129.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1136.5 92 L 1136.5 91.28 L 1137.95 91.28 L 1137.95 85.57 L 1136.5 85.94 L 1136.5 85.19 L 1138.92 84.59 L 1138.92 91.28 L 1140.36 91.28 L 1140.36 92 M 1136.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1147.13 92.18 Q 1146.02 92.18 1145.33 91.13 Q 1144.63 90.08 1144.63 88.38 Q 1144.63 86.67 1145.33 85.63 Q 1146.03 84.59 1147.16 84.59 Q 1148.3 84.59 1149 85.63 Q 1149.69 86.67 1149.69 88.37 Q 1149.69 90.11 1149 91.14 Q 1148.3 92.18 1147.13 92.18 M 1147.13 92.18 M 1147.14 91.46 Q 1148.67 91.46 1148.67 88.35 Q 1148.67 85.32 1147.16 85.32 Q 1145.66 85.32 1145.66 88.38 Q 1145.66 91.46 1147.14 91.46 M 1147.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1156.13 92.18 Q 1155.02 92.18 1154.33 91.13 Q 1153.63 90.08 1153.63 88.38 Q 1153.63 86.67 1154.33 85.63 Q 1155.03 84.59 1156.16 84.59 Q 1157.3 84.59 1158 85.63 Q 1158.69 86.67 1158.69 88.37 Q 1158.69 90.11 1158 91.14 Q 1157.3 92.18 1156.13 92.18 M 1156.13 92.18 M 1156.14 91.46 Q 1157.67 91.46 1157.67 88.35 Q 1157.67 85.32 1156.16 85.32 Q 1154.66 85.32 1154.66 88.38 Q 1154.66 91.46 1156.14 91.46 M 1156.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1165.13 92.18 Q 1164.02 92.18 1163.33 91.13 Q 1162.63 90.08 1162.63 88.38 Q 1162.63 86.67 1163.33 85.63 Q 1164.03 84.59 1165.16 84.59 Q 1166.3 84.59 1167 85.63 Q 1167.69 86.67 1167.69 88.37 Q 1167.69 90.11 1167 91.14 Q 1166.3 92.18 1165.13 92.18 M 1165.13 92.18 M 1165.14 91.46 Q 1166.67 91.46 1166.67 88.35 Q 1166.67 85.32 1165.16 85.32 Q 1163.66 85.32 1163.66 88.38 Q 1163.66 91.46 1165.14 91.46 M 1165.14 91.46"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1172.02 91.95 L 1172.02 91.05 Q 1173.05 91.46 1173.65 91.46 Q 1174.33 91.46 1174.77 91.06 Q 1175.2 90.65 1175.2 90.01 Q 1175.2 88.49 1173.07 88.49 L 1172.68 88.49 L 1172.68 87.84 L 1173.02 87.83 Q 1175.02 87.83 1175.02 86.42 Q 1175.02 85.32 1173.71 85.32 Q 1172.98 85.32 1172.11 85.72 L 1172.11 84.88 Q 1172.97 84.59 1173.77 84.59 Q 1175.99 84.59 1175.99 86.27 Q 1175.99 87.54 1174.48 88.08 Q 1176.23 88.49 1176.23 90 Q 1176.23 91.02 1175.56 91.6 Q 1174.88 92.18 1173.71 92.18 Q 1173.04 92.18 1172.02 91.95 M 1172.02 91.95"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1180.83 92 L 1180.83 91.16 Q 1181.25 90.17 1182.53 89.02 L 1183.08 88.52 Q 1184.15 87.56 1184.15 86.61 Q 1184.15 86.01 1183.78 85.66 Q 1183.42 85.32 1182.78 85.32 Q 1182.03 85.32 1181.01 85.9 L 1181.01 85.05 Q 1181.97 84.59 1182.92 84.59 Q 1183.94 84.59 1184.55 85.14 Q 1185.17 85.69 1185.17 86.59 Q 1185.17 87.24 1184.86 87.74 Q 1184.55 88.25 1183.7 88.96 L 1183.33 89.28 Q 1182.17 90.26 1181.99 91.16 L 1185.13 91.16 L 1185.13 92 M 1180.83 92"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1190.02 91.95 L 1190.02 91.05 Q 1191.05 91.46 1191.65 91.46 Q 1192.33 91.46 1192.77 91.06 Q 1193.2 90.65 1193.2 90.01 Q 1193.2 88.49 1191.07 88.49 L 1190.68 88.49 L 1190.68 87.84 L 1191.02 87.83 Q 1193.02 87.83 1193.02 86.42 Q 1193.02 85.32 1191.71 85.32 Q 1190.98 85.32 1190.11 85.72 L 1190.11 84.88 Q 1190.97 84.59 1191.77 84.59 Q 1193.99 84.59 1193.99 86.27 Q 1193.99 87.54 1192.48 88.08 Q 1194.23 88.49 1194.23 90 Q 1194.23 91.02 1193.56 91.6 Q 1192.88 92.18 1191.71 92.18 Q 1191.04 92.18 1190.02 91.95 M 1190.02 91.95"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1198.83 92 L 1198.83 91.16 Q 1199.25 90.17 1200.53 89.02 L 1201.08 88.52 Q 1202.15 87.56 1202.15 86.61 Q 1202.15 86.01 1201.78 85.66 Q 1201.42 85.32 1200.78 85.32 Q 1200.03 85.32 1199.01 85.9 L 1199.01 85.05 Q 1199.97 84.59 1200.92 84.59 Q 1201.94 84.59 1202.55 85.14 Q 1203.17 85.69 1203.17 86.59 Q 1203.17 87.24 1202.86 87.74 Q 1202.55 88.25 1201.7 88.96 L 1201.33 89.28 Q 1200.17 90.26 1199.99 91.16 L 1203.13 91.16 L 1203.13 92 M 1198.83 92"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1207.83 92 L 1207.83 91.16 Q 1208.25 90.17 1209.53 89.02 L 1210.08 88.52 Q 1211.15 87.56 1211.15 86.61 Q 1211.15 86.01 1210.78 85.66 Q 1210.42 85.32 1209.78 85.32 Q 1209.03 85.32 1208.01 85.9 L 1208.01 85.05 Q 1208.97 84.59 1209.92 84.59 Q 1210.94 84.59 1211.55 85.14 Q 1212.17 85.69 1212.17 86.59 Q 1212.17 87.24 1211.86 87.74 Q 1211.55 88.25 1210.7 88.96 L 1210.33 89.28 Q 1209.17 90.26 1208.99 91.16 L 1212.13 91.16 L 1212.13 92 M 1207.83 92"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1216.83 92 L 1216.83 91.16 Q 1217.25 90.17 1218.53 89.02 L 1219.08 88.52 Q 1220.15 87.56 1220.15 86.61 Q 1220.15 86.01 1219.78 85.66 Q 1219.42 85.32 1218.78 85.32 Q 1218.03 85.32 1217.01 85.9 L 1217.01 85.05 Q 1217.97 84.59 1218.92 84.59 Q 1219.94 84.59 1220.55 85.14 Q 1221.17 85.69 1221.17 86.59 Q 1221.17 87.24 1220.86 87.74 Q 1220.55 88.25 1219.7 88.96 L 1219.33 89.28 Q 1218.17 90.26 1217.99 91.16 L 1221.13 91.16 L 1221.13 92 M 1216.83 92"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1226.5 92 L 1226.5 91.28 L 1227.95 91.28 L 1227.95 85.57 L 1226.5 85.94 L 1226.5 85.19 L 1228.92 84.59 L 1228.92 91.28 L 1230.36 91.28 L 1230.36 92 M 1226.5 92"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1235.02 91.95 L 1235.02 91.05 Q 1236.05 91.46 1236.65 91.46 Q 1237.33 91.46 1237.77 91.06 Q 1238.2 90.65 1238.2 90.01 Q 1238.2 88.49 1236.07 88.49 L 1235.68 88.49 L 1235.68 87.84 L 1236.02 87.83 Q 1238.02 87.83 1238.02 86.42 Q 1238.02 85.32 1236.71 85.32 Q 1235.98 85.32 1235.11 85.72 L 1235.11 84.88 Q 1235.97 84.59 1236.77 84.59 Q 1238.99 84.59 1238.99 86.27 Q 1238.99 87.54 1237.48 88.08 Q 1239.23 88.49 1239.23 90 Q 1239.23 91.02 1238.56 91.6 Q 1237.88 92.18 1236.71 92.18 Q 1236.04 92.18 1235.02 91.95 M 1235.02 91.95"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1243.83 92 L 1243.83 91.16 Q 1244.25 90.17 1245.53 89.02 L 1246.08 88.52 Q 1247.15 87.56 1247.15 86.61 Q 1247.15 86.01 1246.78 85.66 Q 1246.42 85.32 1245.78 85.32 Q 1245.03 85.32 1244.01 85.9 L 1244.01 85.05 Q 1244.97 84.59 1245.92 84.59 Q 1246.94 84.59 1247.55 85.14 Q 1248.17 85.69 1248.17 86.59 Q 1248.17 87.24 1247.86 87.74 Q 1247.55 88.25 1246.7 88.96 L 1246.33 89.28 Q 1245.17 90.26 1244.99 91.16 L 1248.13 91.16 L 1248.13 92 M 1243.83 92"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1252.83 92 L 1252.83 91.16 Q 1253.25 90.17 1254.53 89.02 L 1255.08 88.52 Q 1256.15 87.56 1256.15 86.61 Q 1256.15 86.01 1255.78 85.66 Q 1255.42 85.32 1254.78 85.32 Q 1254.03 85.32 1253.01 85.9 L 1253.01 85.05 Q 1253.97 84.59 1254.92 84.59 Q 1255.94 84.59 1256.55 85.14 Q 1257.17 85.69 1257.17 86.59 Q 1257.17 87.24 1256.86 87.74 Q 1256.55 88.25 1255.7 88.96 L 1255.33 89.28 Q 1254.17 90.26 1253.99 91.16 L 1257.13 91.16 L 1257.13 92 M 1252.83 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1264.13 92.18 Q 1263.02 92.18 1262.33 91.13 Q 1261.63 90.08 1261.63 88.38 Q 1261.63 86.67 1262.33 85.63 Q 1263.03 84.59 1264.16 84.59 Q 1265.3 84.59 1266 85.63 Q 1266.69 86.67 1266.69 88.37 Q 1266.69 90.11 1266 91.14 Q 1265.3 92.18 1264.13 92.18 M 1264.13 92.18 M 1264.14 91.46 Q 1265.67 91.46 1265.67 88.35 Q 1265.67 85.32 1264.16 85.32 Q 1262.66 85.32 1262.66 88.38 Q 1262.66 91.46 1264.14 91.46 M 1264.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1271.5 92 L 1271.5 91.28 L 1272.95 91.28 L 1272.95 85.57 L 1271.5 85.94 L 1271.5 85.19 L 1273.92 84.59 L 1273.92 91.28 L 1275.36 91.28 L 1275.36 92 M 1271.5 92"/></g><g style="fill: rgb(141,83,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1282.76 92 L 1282.76 89.95 L 1279.51 89.95 L 1279.51 89.23 L 1282.76 84.77 L 1283.67 84.77 L 1283.67 89.17 L 1284.63 89.17 L 1284.63 89.95 L 1283.67 89.95 L 1283.67 92 M 1282.76 92 M 1280.46 89.17 L 1282.83 89.17 L 1282.83 85.96 M 1280.46 89.17"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1289.02 91.95 L 1289.02 91.05 Q 1290.05 91.46 1290.65 91.46 Q 1291.33 91.46 1291.77 91.06 Q 1292.2 90.65 1292.2 90.01 Q 1292.2 88.49 1290.07 88.49 L 1289.68 88.49 L 1289.68 87.84 L 1290.02 87.83 Q 1292.02 87.83 1292.02 86.42 Q 1292.02 85.32 1290.71 85.32 Q 1289.98 85.32 1289.11 85.72 L 1289.11 84.88 Q 1289.97 84.59 1290.77 84.59 Q 1292.99 84.59 1292.99 86.27 Q 1292.99 87.54 1291.48 88.08 Q 1293.23 88.49 1293.23 90 Q 1293.23 91.02 1292.56 91.6 Q 1291.88 92.18 1290.71 92.18 Q 1290.04 92.18 1289.02 91.95 M 1289.02 91.95"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1298.5 92 L 1298.5 91.28 L 1299.95 91.28 L 1299.95 85.57 L 1298.5 85.94 L 1298.5 85.19 L 1300.92 84.59 L 1300.92 91.28 L 1302.36 91.28 L 1302.36 92 M 1298.5 92"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1306.83 92 L 1306.83 91.16 Q 1307.25 90.17 1308.53 89.02 L 1309.08 88.52 Q 1310.15 87.56 1310.15 86.61 Q 1310.15 86.01 1309.78 85.66 Q 1309.42 85.32 1308.78 85.32 Q 1308.03 85.32 1307.01 85.9 L 1307.01 85.05 Q 1307.97 84.59 1308.92 84.59 Q 1309.94 84.59 1310.55 85.14 Q 1311.17 85.69 1311.17 86.59 Q 1311.17 87.24 1310.86 87.74 Q 1310.55 88.25 1309.7 88.96 L 1309.33 89.28 Q 1308.17 90.26 1307.99 91.16 L 1311.13 91.16 L 1311.13 92 M 1306.83 92"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1316.02 91.95 L 1316.02 91.05 Q 1317.05 91.46 1317.65 91.46 Q 1318.33 91.46 1318.77 91.06 Q 1319.2 90.65 1319.2 90.01 Q 1319.2 88.49 1317.07 88.49 L 1316.68 88.49 L 1316.68 87.84 L 1317.02 87.83 Q 1319.02 87.83 1319.02 86.42 Q 1319.02 85.32 1317.71 85.32 Q 1316.98 85.32 1316.11 85.72 L 1316.11 84.88 Q 1316.97 84.59 1317.77 84.59 Q 1319.99 84.59 1319.99 86.27 Q 1319.99 87.54 1318.48 88.08 Q 1320.23 88.49 1320.23 90 Q 1320.23 91.02 1319.56 91.6 Q 1318.88 92.18 1317.71 92.18 Q 1317.04 92.18 1316.02 91.95 M 1316.02 91.95"/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1324.83 92 L 1324.83 91.16 Q 1325.25 90.17 1326.53 89.02 L 1327.08 88.52 Q 1328.15 87.56 1328.15 86.61 Q 1328.15 86.01 1327.78 85.66 Q 1327.42 85.32 1326.78 85.32 Q 1326.03 85.32 1325.01 85.9 L 1325.01 85.05 Q 1325.97 84.59 1326.92 84.59 Q 1327.94 84.59 1328.55 85.14 Q 1329.17 85.69 1329.17 86.59 Q 1329.17 87.24 1328.86 87.74 Q 1328.55 88.25 1327.7 88.96 L 1327.33 89.28 Q 1326.17 90.26 1325.99 91.16 L 1329.13 91.16 L 1329.13 92 M 1324.83 92"/></g><g style="fill: rgb(158,104,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1334.22 92.03 L 1334.22 91.17 Q 1334.93 91.46 1335.58 91.46 Q 1336.3 91.46 1336.7 91.04 Q 1337.11 90.62 1337.11 89.88 Q 1337.11 88.25 1334.87 88.25 Q 1334.62 88.25 1334.34 88.29 L 1334.34 84.77 L 1338 84.77 L 1338 85.61 L 1335.18 85.61 L 1335.18 87.52 Q 1336.57 87.52 1337.36 88.16 Q 1338.14 88.8 1338.14 89.93 Q 1338.14 90.98 1337.43 91.58 Q 1336.72 92.18 1335.46 92.18 Q 1334.91 92.18 1334.22 92.03 M 1334.22 92.03"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1343.02 91.95 L 1343.02 91.05 Q 1344.05 91.46 1344.65 91.46 Q 1345.33 91.46 1345.77 91.06 Q 1346.2 90.65 1346.2 90.01 Q 1346.2 88.49 1344.07 88.49 L 1343.68 88.49 L 1343.68 87.84 L 1344.02 87.83 Q 1346.02 87.83 1346.02 86.42 Q 1346.02 85.32 1344.71 85.32 Q 1343.98 85.32 1343.11 85.72 L 1343.11 84.88 Q 1343.97 84.59 1344.77 84.59 Q 1346.99 84.59 1346.99 86.27 Q 1346.99 87.54 1345.48 88.08 Q 1347.23 88.49 1347.23 90 Q 1347.23 91.02 1346.56 91.6 Q 1345.88 92.18 1344.71 92.18 Q 1344.04 92.18 1343.02 91.95 M 1343.02 91.95"/></g><g style="fill: rgb(125,63,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1352.02 91.95 L 1352.02 91.05 Q 1353.05 91.46 1353.65 91.46 Q 1354.33 91.46 1354.77 91.06 Q 1355.2 90.65 1355.2 90.01 Q 1355.2 88.49 1353.07 88.49 L 1352.68 88.49 L 1352.68 87.84 L 1353.02 87.83 Q 1355.02 87.83 1355.02 86.42 Q 1355.02 85.32 1353.71 85.32 Q 1352.98 85.32 1352.11 85.72 L 1352.11 84.88 Q 1352.97 84.59 1353.77 84.59 Q 1355.99 84.59 1355.99 86.27 Q 1355.99 87.54 1354.48 88.08 Q 1356.23 88.49 1356.23 90 Q 1356.23 91.02 1355.56 91.6 Q 1354.88 92.18 1353.71 92.18 Q 1353.04 92.18 1352.02 91.95 M 1352.02 91.95"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1363.13 92.18 Q 1362.02 92.18 1361.33 91.13 Q 1360.63 90.08 1360.63 88.38 Q 1360.63 86.67 1361.33 85.63 Q 1362.03 84.59 1363.16 84.59 Q 1364.3 84.59 1365 85.63 Q 1365.69 86.67 1365.69 88.37 Q 1365.69 90.11 1365 91.14 Q 1364.3 92.18 1363.13 92.18 M 1363.13 92.18 M 1363.14 91.46 Q 1364.67 91.46 1364.67 88.35 Q 1364.67 85.32 1363.16 85.32 Q 1361.66 85.32 1361.66 88.38 Q 1361.66 91.46 1363.14 91.46 M 1363.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1372.13 92.18 Q 1371.02 92.18 1370.33 91.13 Q 1369.63 90.08 1369.63 88.38 Q 1369.63 86.67 1370.33 85.63 Q 1371.03 84.59 1372.16 84.59 Q 1373.3 84.59 1374 85.63 Q 1374.69 86.67 1374.69 88.37 Q 1374.69 90.11 1374 91.14 Q 1373.3 92.18 1372.13 92.18 M 1372.13 92.18 M 1372.14 91.46 Q 1373.67 91.46 1373.67 88.35 Q 1373.67 85.32 1372.16 85.32 Q 1370.66 85.32 1370.66 88.38 Q 1370.66 91.46 1372.14 91.46 M 1372.14 91.46"/></g><g style="fill: rgb(93,21,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1379.5 92 L 1379.5 91.28 L 1380.95 91.28 L 1380.95 85.57 L 1379.5 85.94 L 1379.5 85.19 L 1381.92 84.59 L 1381.92 91.28 L 1383.36 91.28 L 1383.36 92 M 1379.5 92"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1390.13 92.18 Q 1389.02 92.18 1388.33 91.13 Q 1387.63 90.08 1387.63 88.38 Q 1387.63 86.67 1388.33 85.63 Q 1389.03 84.59 1390.16 84.59 Q 1391.3 84.59 1392 85.63 Q 1392.69 86.67 1392.69 88.37 Q 1392.69 90.11 1392 91.14 Q 1391.3 92.18 1390.13 92.18 M 1390.13 92.18 M 1390.14 91.46 Q 1391.67 91.46 1391.67 88.35 Q 1391.67 85.32 1390.16 85.32 Q 1388.66 85.32 1388.66 88.38 Q 1388.66 91.46 1390.14 91.46 M 1390.14 91.46"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1396.72 89.47 L 1396.72 88.75 L 1401.06 88.75 L 1401.06 89.47 M 1396.72 89.47"/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1405.72 89.47 L 1405.72 88.75 L 1410.06 88.75 L 1410.06 89.47 M 1405.72 89.47"/></g><line x1="0" y1="82" x2="1413" y2="82" style="stroke-width: 1.0;stroke: rgb(128,128,128);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,214)" /><rect x="0" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="9" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="126" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="135" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="153" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="171" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="225" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="360" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="369" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="378" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="387" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="414" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="432" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="513" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="531" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="540" y="57" width="9" height="25" style="fill: rgb(190,146,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="549" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="558" y="61" width="9" height="21" style="fill: rgb(174,125,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="567" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="576" y="61" width="9" height="21" style="fill: rgb(174,125,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="585" y="53" width="9" height="29" style="fill: rgb(206,167,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="594" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="603" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="612" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="621" y="57" width="9" height="25" style="fill: rgb(190,146,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="630" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="639" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="648" y="61" width="9" height="21" style="fill: rgb(174,125,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="657" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="666" y="57" width="9" height="25" style="fill: rgb(190,146,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="675" y="57" width="9" height="25" style="fill: rgb(190,146,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="684" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="693" y="64" width="9" height="18" style="fill: rgb(158,104,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="702" y="61" width="9" height="21" style="fill: rgb(174,125,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="711" y="53" width="9" height="29" style="fill: rgb(206,167,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="720" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="729" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="738" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="747" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="756" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="765" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="774" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="783" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="792" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="801" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="810" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="819" y="64" width="9" height="18" style="fill: rgb(158,104,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="828" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="837" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="846" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="855" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="864" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="873" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="882" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="891" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="900" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="909" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="918" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="927" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="936" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="945" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="954" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="963" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="972" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="981" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="990" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="999" y="57" width="9" height="25" style="fill: rgb(190,146,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1008" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1017" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1026" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1035" y="53" width="9" height="29" style="fill: rgb(206,167,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1044" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1053" y="61" width="9" height="21" style="fill: rgb(174,125,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1062" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1071" y="68" width="9" height="14" style="fill: rgb(141,83,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1080" y="64" width="9" height="18" style="fill: rgb(158,104,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1089" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1098" y="42" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1107" y="53" width="9" height="29" style="fill: rgb(206,167,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1116" y="50" width="9" height="32" style="fill: rgb(223,188,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1134" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1170" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1179" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1188" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1197" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1206" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1215" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1224" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1233" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1242" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1251" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1269" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1278" y="68" width="9" height="14" style="fill: rgb(141,83,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1287" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1296" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1305" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1314" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1323" y="75" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1332" y="64" width="9" height="18" style="fill: rgb(158,104,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1341" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1350" y="72" width="9" height="10" style="fill: rgb(125,63,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1377" y="79" width="9" height="3" style="fill: rgb(93,21,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(203,162,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(209,170,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(139,80,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(150,94,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(86,12,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(86,12,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(92,20,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(97,27,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(156,102,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(153,98,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(109,42,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(144,86,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(138,79,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(119,55,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(165,113,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(193,150,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(185,139,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(195,153,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(143,86,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(168,118,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(117,52,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(138,79,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(120,56,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(114,48,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(158,104,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(126,64,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(106,38,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(152,97,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(149,94,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(87,14,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(145,87,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(119,55,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(92,19,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(96,25,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(111,44,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(77,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(116,50,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(90,18,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(85,11,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(86,12,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(170,120,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(145,88,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(141,83,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(173,124,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(137,78,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(164,112,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(185,140,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(86,12,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(165,113,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(121,57,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(105,37,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(161,108,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(103,35,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(119,55,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(103,34,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(137,78,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(136,77,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(157,103,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(156,102,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(218,182,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(226,192,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(222,187,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(194,151,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(250,223,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(203,163,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(141,83,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(80,5,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(167,116,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(214,177,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(206,166,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(147,91,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(218,182,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(243,214,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(248,221,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(118,54,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(125,62,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(90,18,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(244,215,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(249,221,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(248,220,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(169,118,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(197,155,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(181,135,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(248,220,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(223,189,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(201,160,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(140,81,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(217,180,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(247,219,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(255,230,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(243,214,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(244,215,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(174,125,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(237,206,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(130,69,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(128,66,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(141,82,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(235,204,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(138,78,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(236,205,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(235,204,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(239,209,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(231,198,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(155,100,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(240,210,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(227,194,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(235,203,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(163,111,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(199,158,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(232,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(236,205,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(193,149,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(234,203,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(234,203,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(239,209,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(234,202,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(227,194,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(234,203,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(182,136,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(182,136,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(224,190,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(168,118,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(136,76,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><g style="fill: rgb(86,12,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d=""/></g><line x1="0" y1="135" x2="1413" y2="135" style="stroke-width: 1.0;stroke: rgb(128,128,128);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,214)" /><rect x="0" y="107" width="9" height="28" style="fill: rgb(203,162,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="9" y="106" width="9" height="29" style="fill: rgb(209,170,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="18" y="122" width="9" height="13" style="fill: rgb(139,80,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="27" y="119" width="9" height="16" style="fill: rgb(150,94,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="36" y="133" width="9" height="2" style="fill: rgb(86,12,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="45" y="133" width="9" height="2" style="fill: rgb(86,12,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="54" y="132" width="9" height="3" style="fill: rgb(92,20,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="63" y="131" width="9" height="4" style="fill: rgb(97,27,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="72" y="118" width="9" height="17" style="fill: rgb(156,102,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="81" y="118" width="9" height="17" style="fill: rgb(153,98,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="90" y="128" width="9" height="7" style="fill: rgb(109,42,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="99" y="120" width="9" height="15" style="fill: rgb(144,86,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="108" y="122" width="9" height="13" style="fill: rgb(138,79,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="117" y="126" width="9" height="9" style="fill: rgb(119,55,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="126" y="116" width="9" height="19" style="fill: rgb(165,113,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="135" y="109" width="9" height="26" style="fill: rgb(193,150,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="144" y="111" width="9" height="24" style="fill: rgb(185,139,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="153" y="109" width="9" height="26" style="fill: rgb(195,153,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="162" y="121" width="9" height="14" style="fill: rgb(143,86,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="171" y="115" width="9" height="20" style="fill: rgb(168,118,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="180" y="126" width="9" height="9" style="fill: rgb(117,52,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="189" y="122" width="9" height="13" style="fill: rgb(138,79,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="198" y="126" width="9" height="9" style="fill: rgb(120,56,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="207" y="127" width="9" height="8" style="fill: rgb(114,48,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="216" y="117" width="9" height="18" style="fill: rgb(158,104,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="225" y="124" width="9" height="11" style="fill: rgb(126,64,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="234" y="129" width="9" height="6" style="fill: rgb(106,38,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="243" y="119" width="9" height="16" style="fill: rgb(152,97,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="252" y="119" width="9" height="16" style="fill: rgb(149,94,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="261" y="133" width="9" height="2" style="fill: rgb(87,14,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="270" y="120" width="9" height="15" style="fill: rgb(145,87,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="279" y="126" width="9" height="9" style="fill: rgb(119,55,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="288" y="132" width="9" height="3" style="fill: rgb(92,19,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="297" y="131" width="9" height="4" style="fill: rgb(96,25,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="306" y="128" width="9" height="7" style="fill: rgb(111,44,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="324" y="127" width="9" height="8" style="fill: rgb(116,50,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="333" y="132" width="9" height="3" style="fill: rgb(90,18,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="342" y="134" width="9" height="1" style="fill: rgb(85,11,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="351" y="133" width="9" height="2" style="fill: rgb(86,12,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="360" y="115" width="9" height="20" style="fill: rgb(170,120,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="369" y="120" width="9" height="15" style="fill: rgb(145,88,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="378" y="121" width="9" height="14" style="fill: rgb(141,83,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="387" y="114" width="9" height="21" style="fill: rgb(173,124,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="396" y="122" width="9" height="13" style="fill: rgb(137,78,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="405" y="116" width="9" height="19" style="fill: rgb(164,112,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="414" y="111" width="9" height="24" style="fill: rgb(185,140,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="423" y="133" width="9" height="2" style="fill: rgb(86,12,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="432" y="116" width="9" height="19" style="fill: rgb(165,113,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="441" y="126" width="9" height="9" style="fill: rgb(121,57,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="450" y="129" width="9" height="6" style="fill: rgb(105,37,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="459" y="117" width="9" height="18" style="fill: rgb(161,108,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="468" y="129" width="9" height="6" style="fill: rgb(103,35,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="477" y="126" width="9" height="9" style="fill: rgb(119,55,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="486" y="130" width="9" height="5" style="fill: rgb(103,34,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="495" y="122" width="9" height="13" style="fill: rgb(137,78,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="504" y="122" width="9" height="13" style="fill: rgb(136,77,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="513" y="118" width="9" height="17" style="fill: rgb(157,103,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="522" y="118" width="9" height="17" style="fill: rgb(156,102,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="531" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="540" y="104" width="9" height="31" style="fill: rgb(218,182,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="549" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="558" y="102" width="9" height="33" style="fill: rgb(226,192,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="567" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="576" y="103" width="9" height="32" style="fill: rgb(222,187,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="585" y="109" width="9" height="26" style="fill: rgb(194,151,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="594" y="97" width="9" height="38" style="fill: rgb(250,223,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="603" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="612" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="621" y="107" width="9" height="28" style="fill: rgb(203,163,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="630" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="639" y="121" width="9" height="14" style="fill: rgb(141,83,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="657" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="666" y="115" width="9" height="20" style="fill: rgb(167,116,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="675" y="105" width="9" height="30" style="fill: rgb(214,177,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="684" y="107" width="9" height="28" style="fill: rgb(206,166,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="693" y="120" width="9" height="15" style="fill: rgb(147,91,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="702" y="104" width="9" height="31" style="fill: rgb(218,182,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="711" y="98" width="9" height="37" style="fill: rgb(243,214,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="720" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="729" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="738" y="97" width="9" height="38" style="fill: rgb(248,221,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="747" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="756" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="765" y="126" width="9" height="9" style="fill: rgb(118,54,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="774" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="783" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="792" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="801" y="125" width="9" height="10" style="fill: rgb(125,62,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="810" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="819" y="132" width="9" height="3" style="fill: rgb(90,18,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="828" y="98" width="9" height="37" style="fill: rgb(244,215,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="837" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="846" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="855" y="97" width="9" height="38" style="fill: rgb(249,221,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="864" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="873" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="882" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="891" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="900" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="909" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="918" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="927" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="936" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="945" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="954" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="963" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="972" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="981" y="97" width="9" height="38" style="fill: rgb(248,220,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="990" y="115" width="9" height="20" style="fill: rgb(169,118,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="999" y="109" width="9" height="26" style="fill: rgb(197,155,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1008" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1017" y="112" width="9" height="23" style="fill: rgb(181,135,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1026" y="97" width="9" height="38" style="fill: rgb(248,220,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1035" y="103" width="9" height="32" style="fill: rgb(223,189,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1044" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1053" y="108" width="9" height="27" style="fill: rgb(201,160,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1062" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1071" y="121" width="9" height="14" style="fill: rgb(140,81,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1080" y="104" width="9" height="31" style="fill: rgb(217,180,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1089" y="97" width="9" height="38" style="fill: rgb(247,219,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1098" y="95" width="9" height="40" style="fill: rgb(255,230,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1107" y="98" width="9" height="37" style="fill: rgb(243,214,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1116" y="98" width="9" height="37" style="fill: rgb(244,215,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1125" y="114" width="9" height="21" style="fill: rgb(174,125,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1134" y="100" width="9" height="35" style="fill: rgb(237,206,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1143" y="124" width="9" height="11" style="fill: rgb(130,69,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1152" y="124" width="9" height="11" style="fill: rgb(128,66,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1161" y="121" width="9" height="14" style="fill: rgb(141,82,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1170" y="100" width="9" height="35" style="fill: rgb(235,204,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1179" y="122" width="9" height="13" style="fill: rgb(138,78,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1188" y="100" width="9" height="35" style="fill: rgb(236,205,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1197" y="100" width="9" height="35" style="fill: rgb(235,204,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1206" y="99" width="9" height="36" style="fill: rgb(239,209,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1215" y="101" width="9" height="34" style="fill: rgb(231,198,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1224" y="118" width="9" height="17" style="fill: rgb(155,100,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1233" y="99" width="9" height="36" style="fill: rgb(240,210,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1242" y="102" width="9" height="33" style="fill: rgb(227,194,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1251" y="100" width="9" height="35" style="fill: rgb(235,203,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1260" y="116" width="9" height="19" style="fill: rgb(163,111,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1269" y="108" width="9" height="27" style="fill: rgb(199,158,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1278" y="101" width="9" height="34" style="fill: rgb(232,200,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1287" y="100" width="9" height="35" style="fill: rgb(236,205,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1296" y="109" width="9" height="26" style="fill: rgb(193,149,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1305" y="100" width="9" height="35" style="fill: rgb(234,203,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1314" y="100" width="9" height="35" style="fill: rgb(234,203,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1323" y="99" width="9" height="36" style="fill: rgb(239,209,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1332" y="100" width="9" height="35" style="fill: rgb(234,202,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1341" y="102" width="9" height="33" style="fill: rgb(227,194,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1350" y="100" width="9" height="35" style="fill: rgb(234,203,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1359" y="112" width="9" height="23" style="fill: rgb(182,136,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1368" y="112" width="9" height="23" style="fill: rgb(182,136,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1377" y="102" width="9" height="33" style="fill: rgb(224,190,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1386" y="115" width="9" height="20" style="fill: rgb(168,118,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1395" y="122" width="9" height="13" style="fill: rgb(136,76,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><rect x="1404" y="133" width="9" height="2" style="fill: rgb(86,12,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 0.93 198 L 0.93 190.77 L 2.35 190.77 L 4.36 196.36 L 6.42 190.77 L 7.69 190.77 L 7.69 198 L 6.73 198 L 6.73 192.12 L 4.74 197.52 L 3.75 197.52 L 1.81 192.11 L 1.81 198 M 0.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 14.59 195.24 L 13.36 192.12 L 12.13 195.24 M 14.59 195.24 M 15.68 198 L 14.89 196 L 11.83 196 L 11.04 198 L 10.08 198 L 12.95 190.77 L 13.96 190.77 L 16.79 198 M 15.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 21.61 198 L 21.61 195.47 L 19.08 195.47 L 19.08 194.75 L 21.61 194.75 L 21.61 192.22 L 22.34 192.22 L 22.34 194.75 L 24.87 194.75 L 24.87 195.47 L 22.34 195.47 L 22.34 198 M 21.61 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 30.65 198 L 30.65 191.54 L 28.09 191.54 L 28.09 190.77 L 34.24 190.77 L 34.24 191.54 L 31.68 191.54 L 31.68 198 M 30.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 38.93 198 L 38.93 190.77 L 39.96 190.77 L 39.96 197.23 L 43.21 197.23 L 43.21 198 M 38.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 52.36 197.8 Q 51.05 198.18 50.07 198.18 Q 48.35 198.18 47.43 197.2 Q 46.51 196.22 46.51 194.39 Q 46.51 192.59 47.44 191.59 Q 48.37 190.59 50.06 190.59 Q 51.16 190.59 52.35 190.92 L 52.35 191.87 Q 50.86 191.36 50.06 191.36 Q 48.89 191.36 48.24 192.16 Q 47.6 192.95 47.6 194.4 Q 47.6 195.83 48.29 196.62 Q 48.98 197.41 50.23 197.41 Q 50.75 197.41 51.34 197.23 L 51.34 194.88 L 52.36 194.88 M 52.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 57.65 198 L 57.65 191.54 L 55.09 191.54 L 55.09 190.77 L 61.24 190.77 L 61.24 191.54 L 58.68 191.54 L 58.68 198 M 57.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 64.93 198 L 64.93 190.77 L 66.9 190.77 Q 68.21 190.77 68.78 191.22 Q 69.35 191.66 69.35 192.67 Q 69.35 193.82 68.57 194.47 Q 67.79 195.13 66.4 195.13 L 65.95 195.13 L 65.95 198 M 64.93 198 M 65.95 194.35 L 66.36 194.35 Q 67.28 194.35 67.77 193.93 Q 68.27 193.51 68.27 192.75 Q 68.27 192.1 67.88 191.82 Q 67.49 191.54 66.58 191.54 L 65.95 191.54 M 65.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 77.59 195.24 L 76.36 192.12 L 75.13 195.24 M 77.59 195.24 M 78.68 198 L 77.89 196 L 74.83 196 L 74.04 198 L 73.08 198 L 75.95 190.77 L 76.96 190.77 L 79.79 198 M 78.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 83.93 198 L 83.93 190.77 L 84.96 190.77 L 84.96 197.23 L 88.21 197.23 L 88.21 198 M 83.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 94.35 198.18 Q 93.62 198.18 92.49 197.86 L 92.49 196.85 Q 93.71 197.41 94.5 197.41 Q 95.1 197.41 95.47 197.1 Q 95.84 196.78 95.84 196.26 Q 95.84 195.84 95.6 195.54 Q 95.35 195.24 94.71 194.88 L 94.21 194.59 Q 93.28 194.06 92.91 193.59 Q 92.53 193.13 92.53 192.51 Q 92.53 191.67 93.13 191.13 Q 93.74 190.59 94.68 190.59 Q 95.51 190.59 96.44 190.87 L 96.44 191.81 Q 95.3 191.36 94.73 191.36 Q 94.2 191.36 93.86 191.64 Q 93.51 191.93 93.51 192.36 Q 93.51 192.72 93.76 193 Q 94.02 193.27 94.69 193.66 L 95.21 193.95 Q 96.15 194.48 96.52 194.96 Q 96.89 195.43 96.89 196.1 Q 96.89 197.04 96.19 197.61 Q 95.5 198.18 94.35 198.18 M 94.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 106.36 197.8 Q 105.05 198.18 104.07 198.18 Q 102.35 198.18 101.43 197.2 Q 100.51 196.22 100.51 194.39 Q 100.51 192.59 101.44 191.59 Q 102.37 190.59 104.06 190.59 Q 105.16 190.59 106.35 190.92 L 106.35 191.87 Q 104.86 191.36 104.06 191.36 Q 102.89 191.36 102.24 192.16 Q 101.6 192.95 101.6 194.4 Q 101.6 195.83 102.29 196.62 Q 102.98 197.41 104.23 197.41 Q 104.75 197.41 105.34 197.23 L 105.34 194.88 L 106.36 194.88 M 106.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 111.65 198 L 111.65 191.54 L 109.09 191.54 L 109.09 190.77 L 115.24 190.77 L 115.24 191.54 L 112.68 191.54 L 112.68 198 M 111.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 120.61 198 L 120.61 195.47 L 118.08 195.47 L 118.08 194.75 L 120.61 194.75 L 120.61 192.22 L 121.34 192.22 L 121.34 194.75 L 123.87 194.75 L 123.87 195.47 L 121.34 195.47 L 121.34 198 M 120.61 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 129.91 198 L 127.18 190.77 L 128.2 190.77 L 130.44 196.69 L 132.6 190.77 L 133.49 190.77 L 130.87 198 M 129.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 139.35 198.18 Q 138.62 198.18 137.49 197.86 L 137.49 196.85 Q 138.71 197.41 139.5 197.41 Q 140.1 197.41 140.47 197.1 Q 140.84 196.78 140.84 196.26 Q 140.84 195.84 140.6 195.54 Q 140.35 195.24 139.71 194.88 L 139.21 194.59 Q 138.28 194.06 137.91 193.59 Q 137.53 193.13 137.53 192.51 Q 137.53 191.67 138.13 191.13 Q 138.74 190.59 139.68 190.59 Q 140.51 190.59 141.44 190.87 L 141.44 191.81 Q 140.3 191.36 139.73 191.36 Q 139.2 191.36 138.86 191.64 Q 138.51 191.93 138.51 192.36 Q 138.51 192.72 138.76 193 Q 139.02 193.27 139.69 193.66 L 140.21 193.95 Q 141.15 194.48 141.52 194.96 Q 141.89 195.43 141.89 196.1 Q 141.89 197.04 141.19 197.61 Q 140.5 198.18 139.35 198.18 M 139.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 147.65 198 L 147.65 191.54 L 145.09 191.54 L 145.09 190.77 L 151.24 190.77 L 151.24 191.54 L 148.68 191.54 L 148.68 198 M 147.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 157.35 198.18 Q 156.62 198.18 155.49 197.86 L 155.49 196.85 Q 156.71 197.41 157.5 197.41 Q 158.1 197.41 158.47 197.1 Q 158.84 196.78 158.84 196.26 Q 158.84 195.84 158.6 195.54 Q 158.35 195.24 157.71 194.88 L 157.21 194.59 Q 156.28 194.06 155.91 193.59 Q 155.53 193.13 155.53 192.51 Q 155.53 191.67 156.13 191.13 Q 156.74 190.59 157.68 190.59 Q 158.51 190.59 159.44 190.87 L 159.44 191.81 Q 158.3 191.36 157.73 191.36 Q 157.2 191.36 156.86 191.64 Q 156.51 191.93 156.51 192.36 Q 156.51 192.72 156.76 193 Q 157.02 193.27 157.69 193.66 L 158.21 193.95 Q 159.15 194.48 159.52 194.96 Q 159.89 195.43 159.89 196.1 Q 159.89 197.04 159.19 197.61 Q 158.5 198.18 157.35 198.18 M 157.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 164.93 198 L 164.93 190.77 L 168.97 190.77 L 168.97 191.54 L 165.96 191.54 L 165.96 193.96 L 168.49 193.96 L 168.49 194.72 L 165.96 194.72 L 165.96 198 M 164.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 173.93 198 L 173.93 190.77 L 174.96 190.77 L 174.96 197.23 L 178.21 197.23 L 178.21 198 M 173.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 181.93 198 L 181.93 190.77 L 184.12 190.77 Q 185.16 190.77 185.71 191.23 Q 186.27 191.69 186.27 192.57 Q 186.27 194.01 184.81 194.62 L 187.22 198 L 185.96 198 L 183.91 194.94 L 182.95 194.94 L 182.95 198 M 181.93 198 M 182.95 194.18 L 183.28 194.18 Q 185.21 194.18 185.21 192.66 Q 185.21 191.54 183.59 191.54 L 182.95 191.54 M 182.95 194.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 190.93 198 L 190.93 190.77 L 193.12 190.77 Q 194.16 190.77 194.71 191.23 Q 195.27 191.69 195.27 192.57 Q 195.27 194.01 193.81 194.62 L 196.22 198 L 194.96 198 L 192.91 194.94 L 191.95 194.94 L 191.95 198 M 190.93 198 M 191.95 194.18 L 192.28 194.18 Q 194.21 194.18 194.21 192.66 Q 194.21 191.54 192.59 191.54 L 191.95 191.54 M 191.95 194.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 205.35 199.45 Q 203.64 198.89 202.49 198.13 Q 202.03 198.18 201.78 198.18 Q 200.33 198.18 199.42 197.13 Q 198.51 196.07 198.51 194.39 Q 198.51 192.66 199.43 191.63 Q 200.35 190.59 201.89 190.59 Q 203.43 190.59 204.35 191.63 Q 205.27 192.66 205.27 194.4 Q 205.27 196.89 203.42 197.85 Q 204.66 198.4 206 198.63 M 205.35 199.45 M 201.86 197.41 Q 202.97 197.41 203.57 196.62 Q 204.18 195.82 204.18 194.37 Q 204.18 192.96 203.57 192.16 Q 202.97 191.36 201.89 191.36 Q 200.81 191.36 200.2 192.16 Q 199.6 192.96 199.6 194.38 Q 199.6 195.79 200.2 196.6 Q 200.8 197.41 201.86 197.41 M 201.86 197.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 208.93 198 L 208.93 190.77 L 210.9 190.77 Q 212.21 190.77 212.78 191.22 Q 213.35 191.66 213.35 192.67 Q 213.35 193.82 212.57 194.47 Q 211.79 195.13 210.4 195.13 L 209.95 195.13 L 209.95 198 M 208.93 198 M 209.95 194.35 L 210.36 194.35 Q 211.28 194.35 211.77 193.93 Q 212.27 193.51 212.27 192.75 Q 212.27 192.1 211.88 191.82 Q 211.49 191.54 210.58 191.54 L 209.95 191.54 M 209.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 221.59 195.24 L 220.36 192.12 L 219.13 195.24 M 221.59 195.24 M 222.68 198 L 221.89 196 L 218.83 196 L 218.04 198 L 217.08 198 L 219.95 190.77 L 220.96 190.77 L 223.79 198 M 222.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 226.93 198 L 226.93 190.77 L 228.9 190.77 Q 230.21 190.77 230.78 191.22 Q 231.35 191.66 231.35 192.67 Q 231.35 193.82 230.57 194.47 Q 229.79 195.13 228.4 195.13 L 227.95 195.13 L 227.95 198 M 226.93 198 M 227.95 194.35 L 228.36 194.35 Q 229.28 194.35 229.77 193.93 Q 230.27 193.51 230.27 192.75 Q 230.27 192.1 229.88 191.82 Q 229.49 191.54 228.58 191.54 L 227.95 191.54 M 227.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 237.65 198 L 237.65 191.54 L 235.09 191.54 L 235.09 190.77 L 241.24 190.77 L 241.24 191.54 L 238.68 191.54 L 238.68 198 M 237.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 247.35 198.18 Q 246.62 198.18 245.49 197.86 L 245.49 196.85 Q 246.71 197.41 247.5 197.41 Q 248.1 197.41 248.47 197.1 Q 248.84 196.78 248.84 196.26 Q 248.84 195.84 248.6 195.54 Q 248.35 195.24 247.71 194.88 L 247.21 194.59 Q 246.28 194.06 245.91 193.59 Q 245.53 193.13 245.53 192.51 Q 245.53 191.67 246.13 191.13 Q 246.74 190.59 247.68 190.59 Q 248.51 190.59 249.44 190.87 L 249.44 191.81 Q 248.3 191.36 247.73 191.36 Q 247.2 191.36 246.86 191.64 Q 246.51 191.93 246.51 192.36 Q 246.51 192.72 246.76 193 Q 247.02 193.27 247.69 193.66 L 248.21 193.95 Q 249.15 194.48 249.52 194.96 Q 249.89 195.43 249.89 196.1 Q 249.89 197.04 249.19 197.61 Q 248.5 198.18 247.35 198.18 M 247.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 254.93 198 L 254.93 190.77 L 255.96 190.77 L 255.96 197.23 L 259.21 197.23 L 259.21 198 M 254.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 262.93 198 L 262.93 190.77 L 265.12 190.77 Q 266.16 190.77 266.71 191.23 Q 267.27 191.69 267.27 192.57 Q 267.27 194.01 265.81 194.62 L 268.22 198 L 266.96 198 L 264.91 194.94 L 263.95 194.94 L 263.95 198 M 262.93 198 M 263.95 194.18 L 264.28 194.18 Q 266.21 194.18 266.21 192.66 Q 266.21 191.54 264.59 191.54 L 263.95 191.54 M 263.95 194.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 274.35 198.18 Q 273.62 198.18 272.49 197.86 L 272.49 196.85 Q 273.71 197.41 274.5 197.41 Q 275.1 197.41 275.47 197.1 Q 275.84 196.78 275.84 196.26 Q 275.84 195.84 275.6 195.54 Q 275.35 195.24 274.71 194.88 L 274.21 194.59 Q 273.28 194.06 272.91 193.59 Q 272.53 193.13 272.53 192.51 Q 272.53 191.67 273.13 191.13 Q 273.74 190.59 274.68 190.59 Q 275.51 190.59 276.44 190.87 L 276.44 191.81 Q 275.3 191.36 274.73 191.36 Q 274.2 191.36 273.86 191.64 Q 273.51 191.93 273.51 192.36 Q 273.51 192.72 273.76 193 Q 274.02 193.27 274.69 193.66 L 275.21 193.95 Q 276.15 194.48 276.52 194.96 Q 276.89 195.43 276.89 196.1 Q 276.89 197.04 276.19 197.61 Q 275.5 198.18 274.35 198.18 M 274.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 281.93 198 L 281.93 190.77 L 282.96 190.77 L 282.96 197.23 L 286.21 197.23 L 286.21 198 M 281.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 289.93 198 L 289.93 190.77 L 291.9 190.77 Q 293.21 190.77 293.78 191.22 Q 294.35 191.66 294.35 192.67 Q 294.35 193.82 293.57 194.47 Q 292.79 195.13 291.4 195.13 L 290.95 195.13 L 290.95 198 M 289.93 198 M 290.95 194.35 L 291.36 194.35 Q 292.28 194.35 292.77 193.93 Q 293.27 193.51 293.27 192.75 Q 293.27 192.1 292.88 191.82 Q 292.49 191.54 291.58 191.54 L 290.95 191.54 M 290.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 301.35 198.18 Q 300.62 198.18 299.49 197.86 L 299.49 196.85 Q 300.71 197.41 301.5 197.41 Q 302.1 197.41 302.47 197.1 Q 302.84 196.78 302.84 196.26 Q 302.84 195.84 302.6 195.54 Q 302.35 195.24 301.71 194.88 L 301.21 194.59 Q 300.28 194.06 299.91 193.59 Q 299.53 193.13 299.53 192.51 Q 299.53 191.67 300.13 191.13 Q 300.74 190.59 301.68 190.59 Q 302.51 190.59 303.44 190.87 L 303.44 191.81 Q 302.3 191.36 301.73 191.36 Q 301.2 191.36 300.86 191.64 Q 300.51 191.93 300.51 192.36 Q 300.51 192.72 300.76 193 Q 301.02 193.27 301.69 193.66 L 302.21 193.95 Q 303.15 194.48 303.52 194.96 Q 303.89 195.43 303.89 196.1 Q 303.89 197.04 303.19 197.61 Q 302.5 198.18 301.35 198.18 M 301.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 309.61 198 L 309.61 195.47 L 307.08 195.47 L 307.08 194.75 L 309.61 194.75 L 309.61 192.22 L 310.34 192.22 L 310.34 194.75 L 312.87 194.75 L 312.87 195.47 L 310.34 195.47 L 310.34 198 M 309.61 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 318.91 198 L 316.18 190.77 L 317.2 190.77 L 319.44 196.69 L 321.6 190.77 L 322.49 190.77 L 319.87 198 M 318.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 331.36 197.8 Q 330.05 198.18 329.07 198.18 Q 327.35 198.18 326.43 197.2 Q 325.51 196.22 325.51 194.39 Q 325.51 192.59 326.44 191.59 Q 327.37 190.59 329.06 190.59 Q 330.16 190.59 331.35 190.92 L 331.35 191.87 Q 329.86 191.36 329.06 191.36 Q 327.89 191.36 327.24 192.16 Q 326.6 192.95 326.6 194.4 Q 326.6 195.83 327.29 196.62 Q 327.98 197.41 329.23 197.41 Q 329.75 197.41 330.34 197.23 L 330.34 194.88 L 331.36 194.88 M 331.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 336.61 198 L 336.61 195.47 L 334.08 195.47 L 334.08 194.75 L 336.61 194.75 L 336.61 192.22 L 337.34 192.22 L 337.34 194.75 L 339.87 194.75 L 339.87 195.47 L 337.34 195.47 L 337.34 198 M 336.61 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 344.93 198 L 344.93 190.77 L 348.97 190.77 L 348.97 191.54 L 345.96 191.54 L 345.96 193.96 L 348.49 193.96 L 348.49 194.72 L 345.96 194.72 L 345.96 198 M 344.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 352.93 198 L 352.93 190.77 L 354.9 190.77 Q 356.21 190.77 356.78 191.22 Q 357.35 191.66 357.35 192.67 Q 357.35 193.82 356.57 194.47 Q 355.79 195.13 354.4 195.13 L 353.95 195.13 L 353.95 198 M 352.93 198 M 353.95 194.35 L 354.36 194.35 Q 355.28 194.35 355.77 193.93 Q 356.27 193.51 356.27 192.75 Q 356.27 192.1 355.88 191.82 Q 355.49 191.54 354.58 191.54 L 353.95 191.54 M 353.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 363.61 198 L 363.61 195.47 L 361.08 195.47 L 361.08 194.75 L 363.61 194.75 L 363.61 192.22 L 364.34 192.22 L 364.34 194.75 L 366.87 194.75 L 366.87 195.47 L 364.34 195.47 L 364.34 198 M 363.61 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 371.93 198 L 371.93 190.77 L 372.96 190.77 L 372.96 197.23 L 376.21 197.23 L 376.21 198 M 371.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 380.93 198 L 380.93 190.77 L 384.97 190.77 L 384.97 191.54 L 381.96 191.54 L 381.96 193.96 L 384.49 193.96 L 384.49 194.72 L 381.96 194.72 L 381.96 198 M 380.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 394.36 197.8 Q 393.05 198.18 392.07 198.18 Q 390.35 198.18 389.43 197.2 Q 388.51 196.22 388.51 194.39 Q 388.51 192.59 389.44 191.59 Q 390.37 190.59 392.06 190.59 Q 393.16 190.59 394.35 190.92 L 394.35 191.87 Q 392.86 191.36 392.06 191.36 Q 390.89 191.36 390.24 192.16 Q 389.6 192.95 389.6 194.4 Q 389.6 195.83 390.29 196.62 Q 390.98 197.41 392.23 197.41 Q 392.75 197.41 393.34 197.23 L 393.34 194.88 L 394.36 194.88 M 394.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 398.93 198 L 398.93 190.77 L 399.96 190.77 L 399.96 197.23 L 403.21 197.23 L 403.21 198 M 398.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 406.93 198 L 406.93 190.77 L 407.89 190.77 L 407.89 194.33 L 410.82 190.77 L 411.85 190.77 L 409.02 194.22 L 412.35 198 L 411.05 198 L 407.89 194.34 L 407.89 198 M 406.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 418.35 198.18 Q 417.62 198.18 416.49 197.86 L 416.49 196.85 Q 417.71 197.41 418.5 197.41 Q 419.1 197.41 419.47 197.1 Q 419.84 196.78 419.84 196.26 Q 419.84 195.84 419.6 195.54 Q 419.35 195.24 418.71 194.88 L 418.21 194.59 Q 417.28 194.06 416.91 193.59 Q 416.53 193.13 416.53 192.51 Q 416.53 191.67 417.13 191.13 Q 417.74 190.59 418.68 190.59 Q 419.51 190.59 420.44 190.87 L 420.44 191.81 Q 419.3 191.36 418.73 191.36 Q 418.2 191.36 417.86 191.64 Q 417.51 191.93 417.51 192.36 Q 417.51 192.72 417.76 193 Q 418.02 193.27 418.69 193.66 L 419.21 193.95 Q 420.15 194.48 420.52 194.96 Q 420.89 195.43 420.89 196.1 Q 420.89 197.04 420.19 197.61 Q 419.5 198.18 418.35 198.18 M 418.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 426.91 198 L 424.18 190.77 L 425.2 190.77 L 427.44 196.69 L 429.6 190.77 L 430.49 190.77 L 427.87 198 M 426.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 436.35 198.18 Q 435.62 198.18 434.49 197.86 L 434.49 196.85 Q 435.71 197.41 436.5 197.41 Q 437.1 197.41 437.47 197.1 Q 437.84 196.78 437.84 196.26 Q 437.84 195.84 437.6 195.54 Q 437.35 195.24 436.71 194.88 L 436.21 194.59 Q 435.28 194.06 434.91 193.59 Q 434.53 193.13 434.53 192.51 Q 434.53 191.67 435.13 191.13 Q 435.74 190.59 436.68 190.59 Q 437.51 190.59 438.44 190.87 L 438.44 191.81 Q 437.3 191.36 436.73 191.36 Q 436.2 191.36 435.86 191.64 Q 435.51 191.93 435.51 192.36 Q 435.51 192.72 435.76 193 Q 436.02 193.27 436.69 193.66 L 437.21 193.95 Q 438.15 194.48 438.52 194.96 Q 438.89 195.43 438.89 196.1 Q 438.89 197.04 438.19 197.61 Q 437.5 198.18 436.35 198.18 M 436.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 444.65 198 L 444.65 191.54 L 442.09 191.54 L 442.09 190.77 L 448.24 190.77 L 448.24 191.54 L 445.68 191.54 L 445.68 198 M 444.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 455.59 195.24 L 454.36 192.12 L 453.13 195.24 M 455.59 195.24 M 456.68 198 L 455.89 196 L 452.83 196 L 452.04 198 L 451.08 198 L 453.95 190.77 L 454.96 190.77 L 457.79 198 M 456.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 460.93 198 L 460.93 190.77 L 463.12 190.77 Q 464.16 190.77 464.71 191.23 Q 465.27 191.69 465.27 192.57 Q 465.27 194.01 463.81 194.62 L 466.22 198 L 464.96 198 L 462.91 194.94 L 461.95 194.94 L 461.95 198 M 460.93 198 M 461.95 194.18 L 462.28 194.18 Q 464.21 194.18 464.21 192.66 Q 464.21 191.54 462.59 191.54 L 461.95 191.54 M 461.95 194.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 475.36 197.8 Q 474.05 198.18 473.07 198.18 Q 471.35 198.18 470.43 197.2 Q 469.51 196.22 469.51 194.39 Q 469.51 192.59 470.44 191.59 Q 471.37 190.59 473.06 190.59 Q 474.16 190.59 475.35 190.92 L 475.35 191.87 Q 473.86 191.36 473.06 191.36 Q 471.89 191.36 471.24 192.16 Q 470.6 192.95 470.6 194.4 Q 470.6 195.83 471.29 196.62 Q 471.98 197.41 473.23 197.41 Q 473.75 197.41 474.34 197.23 L 474.34 194.88 L 475.36 194.88 M 475.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 484.36 197.8 Q 483.05 198.18 482.07 198.18 Q 480.35 198.18 479.43 197.2 Q 478.51 196.22 478.51 194.39 Q 478.51 192.59 479.44 191.59 Q 480.37 190.59 482.06 190.59 Q 483.16 190.59 484.35 190.92 L 484.35 191.87 Q 482.86 191.36 482.06 191.36 Q 480.89 191.36 480.24 192.16 Q 479.6 192.95 479.6 194.4 Q 479.6 195.83 480.29 196.62 Q 480.98 197.41 482.23 197.41 Q 482.75 197.41 483.34 197.23 L 483.34 194.88 L 484.36 194.88 M 484.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 487.93 198 L 487.93 190.77 L 490.12 190.77 Q 491.16 190.77 491.71 191.23 Q 492.27 191.69 492.27 192.57 Q 492.27 194.01 490.81 194.62 L 493.22 198 L 491.96 198 L 489.91 194.94 L 488.95 194.94 L 488.95 198 M 487.93 198 M 488.95 194.18 L 489.28 194.18 Q 491.21 194.18 491.21 192.66 Q 491.21 191.54 489.59 191.54 L 488.95 191.54 M 488.95 194.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 498.91 198 L 496.18 190.77 L 497.2 190.77 L 499.44 196.69 L 501.6 190.77 L 502.49 190.77 L 499.87 198 M 498.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 507.65 198 L 507.65 191.54 L 505.09 191.54 L 505.09 190.77 L 511.24 190.77 L 511.24 191.54 L 508.68 191.54 L 508.68 198 M 507.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 518.59 195.24 L 517.36 192.12 L 516.13 195.24 M 518.59 195.24 M 519.68 198 L 518.89 196 L 515.83 196 L 515.04 198 L 514.08 198 L 516.95 190.77 L 517.96 190.77 L 520.79 198 M 519.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 522.93 198 L 522.93 190.77 L 524.35 190.77 L 526.36 196.36 L 528.42 190.77 L 529.69 190.77 L 529.69 198 L 528.73 198 L 528.73 192.12 L 526.74 197.52 L 525.75 197.52 L 523.81 192.11 L 523.81 198 M 522.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 536.59 195.24 L 535.36 192.12 L 534.13 195.24 M 536.59 195.24 M 537.68 198 L 536.89 196 L 533.83 196 L 533.04 198 L 532.08 198 L 534.95 190.77 L 535.96 190.77 L 538.79 198 M 537.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 543.65 198 L 543.65 191.54 L 541.09 191.54 L 541.09 190.77 L 547.24 190.77 L 547.24 191.54 L 544.68 191.54 L 544.68 198 M 543.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 552.5 198 L 552.5 194.98 L 550.08 190.77 L 551.25 190.77 L 553.13 194.04 L 555.15 190.77 L 556.1 190.77 L 553.52 194.96 L 553.52 198 M 552.5 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 559.93 198 L 559.93 190.77 L 560.89 190.77 L 560.89 194.33 L 563.82 190.77 L 564.85 190.77 L 562.02 194.22 L 565.35 198 L 564.05 198 L 560.89 194.34 L 560.89 198 M 559.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 570.91 198 L 568.18 190.77 L 569.2 190.77 L 571.44 196.69 L 573.6 190.77 L 574.49 190.77 L 571.87 198 M 570.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 577.93 198 L 577.93 190.77 L 578.89 190.77 L 578.89 194.33 L 581.82 190.77 L 582.85 190.77 L 580.02 194.22 L 583.35 198 L 582.05 198 L 578.89 194.34 L 578.89 198 M 577.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 587.93 198 L 587.93 190.77 L 588.96 190.77 L 588.96 197.23 L 592.21 197.23 L 592.21 198 M 587.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 597.93 198 L 597.93 190.77 L 598.95 190.77 L 598.95 198 M 597.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 606.65 198 L 606.65 191.54 L 604.09 191.54 L 604.09 190.77 L 610.24 190.77 L 610.24 191.54 L 607.68 191.54 L 607.68 198 M 606.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 613.93 198 L 613.93 190.77 L 615.9 190.77 Q 617.21 190.77 617.78 191.22 Q 618.35 191.66 618.35 192.67 Q 618.35 193.82 617.57 194.47 Q 616.79 195.13 615.4 195.13 L 614.95 195.13 L 614.95 198 M 613.93 198 M 614.95 194.35 L 615.36 194.35 Q 616.28 194.35 616.77 193.93 Q 617.27 193.51 617.27 192.75 Q 617.27 192.1 616.88 191.82 Q 616.49 191.54 615.58 191.54 L 614.95 191.54 M 614.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 623.93 198 L 623.93 190.77 L 627.97 190.77 L 627.97 191.54 L 624.96 191.54 L 624.96 193.86 L 627.48 193.86 L 627.48 194.62 L 624.96 194.62 L 624.96 197.23 L 628.18 197.23 L 628.18 198 M 623.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 637.36 197.8 Q 636.05 198.18 635.07 198.18 Q 633.35 198.18 632.43 197.2 Q 631.51 196.22 631.51 194.39 Q 631.51 192.59 632.44 191.59 Q 633.37 190.59 635.06 190.59 Q 636.16 190.59 637.35 190.92 L 637.35 191.87 Q 635.86 191.36 635.06 191.36 Q 633.89 191.36 633.24 192.16 Q 632.6 192.95 632.6 194.4 Q 632.6 195.83 633.29 196.62 Q 633.98 197.41 635.23 197.41 Q 635.75 197.41 636.34 197.23 L 636.34 194.88 L 637.36 194.88 M 637.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 641.93 198 L 641.93 190.77 L 645.97 190.77 L 645.97 191.54 L 642.96 191.54 L 642.96 193.86 L 645.48 193.86 L 645.48 194.62 L 642.96 194.62 L 642.96 197.23 L 646.18 197.23 L 646.18 198 M 641.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 655.35 199.45 Q 653.64 198.89 652.49 198.13 Q 652.03 198.18 651.78 198.18 Q 650.33 198.18 649.42 197.13 Q 648.51 196.07 648.51 194.39 Q 648.51 192.66 649.43 191.63 Q 650.35 190.59 651.89 190.59 Q 653.43 190.59 654.35 191.63 Q 655.27 192.66 655.27 194.4 Q 655.27 196.89 653.42 197.85 Q 654.66 198.4 656 198.63 M 655.35 199.45 M 651.86 197.41 Q 652.97 197.41 653.57 196.62 Q 654.18 195.82 654.18 194.37 Q 654.18 192.96 653.57 192.16 Q 652.97 191.36 651.89 191.36 Q 650.81 191.36 650.2 192.16 Q 649.6 192.96 649.6 194.38 Q 649.6 195.79 650.2 196.6 Q 650.8 197.41 651.86 197.41 M 651.86 197.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 659.93 198 L 659.93 190.77 L 663.97 190.77 L 663.97 191.54 L 660.96 191.54 L 660.96 193.86 L 663.48 193.86 L 663.48 194.62 L 660.96 194.62 L 660.96 197.23 L 664.18 197.23 L 664.18 198 M 659.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 668.93 198 L 668.93 190.77 L 672.97 190.77 L 672.97 191.54 L 669.96 191.54 L 669.96 193.96 L 672.49 193.96 L 672.49 194.72 L 669.96 194.72 L 669.96 198 M 668.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 677.93 198 L 677.93 190.77 L 681.97 190.77 L 681.97 191.54 L 678.96 191.54 L 678.96 193.86 L 681.48 193.86 L 681.48 194.62 L 678.96 194.62 L 678.96 197.23 L 682.18 197.23 L 682.18 198 M 677.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 689.03 198.18 Q 687.34 198.18 686.43 197.19 Q 685.51 196.2 685.51 194.39 Q 685.51 192.58 686.44 191.59 Q 687.38 190.59 689.08 190.59 Q 690.05 190.59 691.35 190.91 L 691.35 191.87 Q 689.87 191.36 689.06 191.36 Q 687.89 191.36 687.24 192.16 Q 686.6 192.95 686.6 194.4 Q 686.6 195.78 687.29 196.58 Q 687.97 197.38 689.17 197.38 Q 690.19 197.38 691.36 196.75 L 691.36 197.63 Q 690.29 198.18 689.03 198.18 M 689.03 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 694.93 198 L 694.93 190.77 L 696.9 190.77 Q 698.21 190.77 698.78 191.22 Q 699.35 191.66 699.35 192.67 Q 699.35 193.82 698.57 194.47 Q 697.79 195.13 696.4 195.13 L 695.95 195.13 L 695.95 198 M 694.93 198 M 695.95 194.35 L 696.36 194.35 Q 697.28 194.35 697.77 193.93 Q 698.27 193.51 698.27 192.75 Q 698.27 192.1 697.88 191.82 Q 697.49 191.54 696.58 191.54 L 695.95 191.54 M 695.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 703.93 198 L 703.93 190.77 L 706.33 190.77 Q 707.41 190.77 708.07 191.01 Q 708.73 191.25 709.22 191.82 Q 709.98 192.73 709.98 194.22 Q 709.98 196.02 709.03 197.01 Q 708.08 198 706.35 198 M 703.93 198 M 704.96 197.23 L 706.27 197.23 Q 707.68 197.23 708.26 196.48 Q 708.89 195.67 708.89 194.31 Q 708.89 193.04 708.27 192.31 Q 707.9 191.87 707.38 191.7 Q 706.85 191.54 705.8 191.54 L 704.96 191.54 M 704.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 712.93 198 L 712.93 190.77 L 715.33 190.77 Q 716.41 190.77 717.07 191.01 Q 717.73 191.25 718.22 191.82 Q 718.98 192.73 718.98 194.22 Q 718.98 196.02 718.03 197.01 Q 717.08 198 715.35 198 M 712.93 198 M 713.96 197.23 L 715.27 197.23 Q 716.68 197.23 717.26 196.48 Q 717.89 195.67 717.89 194.31 Q 717.89 193.04 717.27 192.31 Q 716.9 191.87 716.38 191.7 Q 715.85 191.54 714.8 191.54 L 713.96 191.54 M 713.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 723.91 198 L 721.18 190.77 L 722.2 190.77 L 724.44 196.69 L 726.6 190.77 L 727.49 190.77 L 724.87 198 M 723.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 732.5 198 L 732.5 194.98 L 730.08 190.77 L 731.25 190.77 L 733.13 194.04 L 735.15 190.77 L 736.1 190.77 L 733.52 194.96 L 733.52 198 M 732.5 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 741.93 198 L 741.93 190.77 L 742.95 190.77 L 742.95 198 M 741.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 749.93 198 L 749.93 190.77 L 750.96 190.77 L 750.96 197.23 L 754.21 197.23 L 754.21 198 M 749.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 757.93 198 L 757.93 190.77 L 760.33 190.77 Q 761.41 190.77 762.07 191.01 Q 762.73 191.25 763.22 191.82 Q 763.98 192.73 763.98 194.22 Q 763.98 196.02 763.03 197.01 Q 762.08 198 760.35 198 M 757.93 198 M 758.96 197.23 L 760.27 197.23 Q 761.68 197.23 762.26 196.48 Q 762.89 195.67 762.89 194.31 Q 762.89 193.04 762.27 192.31 Q 761.9 191.87 761.38 191.7 Q 760.85 191.54 759.8 191.54 L 758.96 191.54 M 758.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 770.59 195.24 L 769.36 192.12 L 768.13 195.24 M 770.59 195.24 M 771.68 198 L 770.89 196 L 767.83 196 L 767.04 198 L 766.08 198 L 768.95 190.77 L 769.96 190.77 L 772.79 198 M 771.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 779.59 195.24 L 778.36 192.12 L 777.13 195.24 M 779.59 195.24 M 780.68 198 L 779.89 196 L 776.83 196 L 776.04 198 L 775.08 198 L 777.95 190.77 L 778.96 190.77 L 781.79 198 M 780.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 785.93 198 L 785.93 190.77 L 789.97 190.77 L 789.97 191.54 L 786.96 191.54 L 786.96 193.86 L 789.48 193.86 L 789.48 194.62 L 786.96 194.62 L 786.96 197.23 L 790.18 197.23 L 790.18 198 M 785.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 794.93 198 L 794.93 190.77 L 798.97 190.77 L 798.97 191.54 L 795.96 191.54 L 795.96 193.86 L 798.48 193.86 L 798.48 194.62 L 795.96 194.62 L 795.96 197.23 L 799.18 197.23 L 799.18 198 M 794.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 806.59 195.24 L 805.36 192.12 L 804.13 195.24 M 806.59 195.24 M 807.68 198 L 806.89 196 L 803.83 196 L 803.04 198 L 802.08 198 L 804.95 190.77 L 805.96 190.77 L 808.79 198 M 807.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 817.36 197.8 Q 816.05 198.18 815.07 198.18 Q 813.35 198.18 812.43 197.2 Q 811.51 196.22 811.51 194.39 Q 811.51 192.59 812.44 191.59 Q 813.37 190.59 815.06 190.59 Q 816.16 190.59 817.35 190.92 L 817.35 191.87 Q 815.86 191.36 815.06 191.36 Q 813.89 191.36 813.24 192.16 Q 812.6 192.95 812.6 194.4 Q 812.6 195.83 813.29 196.62 Q 813.98 197.41 815.23 197.41 Q 815.75 197.41 816.34 197.23 L 816.34 194.88 L 817.36 194.88 M 817.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 822.93 198 L 822.93 190.77 L 823.95 190.77 L 823.95 198 M 822.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 829.93 198 L 829.93 190.77 L 832.33 190.77 Q 833.41 190.77 834.07 191.01 Q 834.73 191.25 835.22 191.82 Q 835.98 192.73 835.98 194.22 Q 835.98 196.02 835.03 197.01 Q 834.08 198 832.35 198 M 829.93 198 M 830.96 197.23 L 832.27 197.23 Q 833.68 197.23 834.26 196.48 Q 834.89 195.67 834.89 194.31 Q 834.89 193.04 834.27 192.31 Q 833.9 191.87 833.38 191.7 Q 832.85 191.54 831.8 191.54 L 830.96 191.54 M 830.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 839.93 198 L 839.93 190.77 L 840.96 190.77 L 840.96 197.23 L 844.21 197.23 L 844.21 198 M 839.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 847.93 198 L 847.93 190.77 L 849.9 190.77 Q 851.21 190.77 851.78 191.22 Q 852.35 191.66 852.35 192.67 Q 852.35 193.82 851.57 194.47 Q 850.79 195.13 849.4 195.13 L 848.95 195.13 L 848.95 198 M 847.93 198 M 848.95 194.35 L 849.36 194.35 Q 850.28 194.35 850.77 193.93 Q 851.27 193.51 851.27 192.75 Q 851.27 192.1 850.88 191.82 Q 850.49 191.54 849.58 191.54 L 848.95 191.54 M 848.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 858.5 198 L 858.5 194.98 L 856.08 190.77 L 857.25 190.77 L 859.13 194.04 L 861.15 190.77 L 862.1 190.77 L 859.52 194.96 L 859.52 198 M 858.5 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 868.35 198.18 Q 867.62 198.18 866.49 197.86 L 866.49 196.85 Q 867.71 197.41 868.5 197.41 Q 869.1 197.41 869.47 197.1 Q 869.84 196.78 869.84 196.26 Q 869.84 195.84 869.6 195.54 Q 869.35 195.24 868.71 194.88 L 868.21 194.59 Q 867.28 194.06 866.91 193.59 Q 866.53 193.13 866.53 192.51 Q 866.53 191.67 867.13 191.13 Q 867.74 190.59 868.68 190.59 Q 869.51 190.59 870.44 190.87 L 870.44 191.81 Q 869.3 191.36 868.73 191.36 Q 868.2 191.36 867.86 191.64 Q 867.51 191.93 867.51 192.36 Q 867.51 192.72 867.76 193 Q 868.02 193.27 868.69 193.66 L 869.21 193.95 Q 870.15 194.48 870.52 194.96 Q 870.89 195.43 870.89 196.1 Q 870.89 197.04 870.19 197.61 Q 869.5 198.18 868.35 198.18 M 868.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 878.03 198.18 Q 876.34 198.18 875.43 197.19 Q 874.51 196.2 874.51 194.39 Q 874.51 192.58 875.44 191.59 Q 876.38 190.59 878.08 190.59 Q 879.05 190.59 880.35 190.91 L 880.35 191.87 Q 878.87 191.36 878.06 191.36 Q 876.89 191.36 876.24 192.16 Q 875.6 192.95 875.6 194.4 Q 875.6 195.78 876.29 196.58 Q 876.97 197.38 878.17 197.38 Q 879.19 197.38 880.36 196.75 L 880.36 197.63 Q 879.29 198.18 878.03 198.18 M 878.03 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 883.93 198 L 883.93 190.77 L 886.12 190.77 Q 887.16 190.77 887.71 191.23 Q 888.27 191.69 888.27 192.57 Q 888.27 194.01 886.81 194.62 L 889.22 198 L 887.96 198 L 885.91 194.94 L 884.95 194.94 L 884.95 198 M 883.93 198 M 884.95 194.18 L 885.28 194.18 Q 887.21 194.18 887.21 192.66 Q 887.21 191.54 885.59 191.54 L 884.95 191.54 M 884.95 194.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 896.59 195.24 L 895.36 192.12 L 894.13 195.24 M 896.59 195.24 M 897.68 198 L 896.89 196 L 893.83 196 L 893.04 198 L 892.08 198 L 894.95 190.77 L 895.96 190.77 L 898.79 198 M 897.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 907.36 197.8 Q 906.05 198.18 905.07 198.18 Q 903.35 198.18 902.43 197.2 Q 901.51 196.22 901.51 194.39 Q 901.51 192.59 902.44 191.59 Q 903.37 190.59 905.06 190.59 Q 906.16 190.59 907.35 190.92 L 907.35 191.87 Q 905.86 191.36 905.06 191.36 Q 903.89 191.36 903.24 192.16 Q 902.6 192.95 902.6 194.4 Q 902.6 195.83 903.29 196.62 Q 903.98 197.41 905.23 197.41 Q 905.75 197.41 906.34 197.23 L 906.34 194.88 L 907.36 194.88 M 907.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 913.35 198.18 Q 912.62 198.18 911.49 197.86 L 911.49 196.85 Q 912.71 197.41 913.5 197.41 Q 914.1 197.41 914.47 197.1 Q 914.84 196.78 914.84 196.26 Q 914.84 195.84 914.6 195.54 Q 914.35 195.24 913.71 194.88 L 913.21 194.59 Q 912.28 194.06 911.91 193.59 Q 911.53 193.13 911.53 192.51 Q 911.53 191.67 912.13 191.13 Q 912.74 190.59 913.68 190.59 Q 914.51 190.59 915.44 190.87 L 915.44 191.81 Q 914.3 191.36 913.73 191.36 Q 913.2 191.36 912.86 191.64 Q 912.51 191.93 912.51 192.36 Q 912.51 192.72 912.76 193 Q 913.02 193.27 913.69 193.66 L 914.21 193.95 Q 915.15 194.48 915.52 194.96 Q 915.89 195.43 915.89 196.1 Q 915.89 197.04 915.19 197.61 Q 914.5 198.18 913.35 198.18 M 913.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 923.03 198.18 Q 921.34 198.18 920.43 197.19 Q 919.51 196.2 919.51 194.39 Q 919.51 192.58 920.44 191.59 Q 921.38 190.59 923.08 190.59 Q 924.05 190.59 925.35 190.91 L 925.35 191.87 Q 923.87 191.36 923.06 191.36 Q 921.89 191.36 921.24 192.16 Q 920.6 192.95 920.6 194.4 Q 920.6 195.78 921.29 196.58 Q 921.97 197.38 923.17 197.38 Q 924.19 197.38 925.36 196.75 L 925.36 197.63 Q 924.29 198.18 923.03 198.18 M 923.03 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 931.35 198.18 Q 930.62 198.18 929.49 197.86 L 929.49 196.85 Q 930.71 197.41 931.5 197.41 Q 932.1 197.41 932.47 197.1 Q 932.84 196.78 932.84 196.26 Q 932.84 195.84 932.6 195.54 Q 932.35 195.24 931.71 194.88 L 931.21 194.59 Q 930.28 194.06 929.91 193.59 Q 929.53 193.13 929.53 192.51 Q 929.53 191.67 930.13 191.13 Q 930.74 190.59 931.68 190.59 Q 932.51 190.59 933.44 190.87 L 933.44 191.81 Q 932.3 191.36 931.73 191.36 Q 931.2 191.36 930.86 191.64 Q 930.51 191.93 930.51 192.36 Q 930.51 192.72 930.76 193 Q 931.02 193.27 931.69 193.66 L 932.21 193.95 Q 933.15 194.48 933.52 194.96 Q 933.89 195.43 933.89 196.1 Q 933.89 197.04 933.19 197.61 Q 932.5 198.18 931.35 198.18 M 931.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 940.35 198.18 Q 939.62 198.18 938.49 197.86 L 938.49 196.85 Q 939.71 197.41 940.5 197.41 Q 941.1 197.41 941.47 197.1 Q 941.84 196.78 941.84 196.26 Q 941.84 195.84 941.6 195.54 Q 941.35 195.24 940.71 194.88 L 940.21 194.59 Q 939.28 194.06 938.91 193.59 Q 938.53 193.13 938.53 192.51 Q 938.53 191.67 939.13 191.13 Q 939.74 190.59 940.68 190.59 Q 941.51 190.59 942.44 190.87 L 942.44 191.81 Q 941.3 191.36 940.73 191.36 Q 940.2 191.36 939.86 191.64 Q 939.51 191.93 939.51 192.36 Q 939.51 192.72 939.76 193 Q 940.02 193.27 940.69 193.66 L 941.21 193.95 Q 942.15 194.48 942.52 194.96 Q 942.89 195.43 942.89 196.1 Q 942.89 197.04 942.19 197.61 Q 941.5 198.18 940.35 198.18 M 940.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 950.03 198.18 Q 948.34 198.18 947.43 197.19 Q 946.51 196.2 946.51 194.39 Q 946.51 192.58 947.44 191.59 Q 948.38 190.59 950.08 190.59 Q 951.05 190.59 952.35 190.91 L 952.35 191.87 Q 950.87 191.36 950.06 191.36 Q 948.89 191.36 948.24 192.16 Q 947.6 192.95 947.6 194.4 Q 947.6 195.78 948.29 196.58 Q 948.97 197.38 950.17 197.38 Q 951.19 197.38 952.36 196.75 L 952.36 197.63 Q 951.29 198.18 950.03 198.18 M 950.03 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 959.59 195.24 L 958.36 192.12 L 957.13 195.24 M 959.59 195.24 M 960.68 198 L 959.89 196 L 956.83 196 L 956.04 198 L 955.08 198 L 957.95 190.77 L 958.96 190.77 L 961.79 198 M 960.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 970.36 197.8 Q 969.05 198.18 968.07 198.18 Q 966.35 198.18 965.43 197.2 Q 964.51 196.22 964.51 194.39 Q 964.51 192.59 965.44 191.59 Q 966.37 190.59 968.06 190.59 Q 969.16 190.59 970.35 190.92 L 970.35 191.87 Q 968.86 191.36 968.06 191.36 Q 966.89 191.36 966.24 192.16 Q 965.6 192.95 965.6 194.4 Q 965.6 195.83 966.29 196.62 Q 966.98 197.41 968.23 197.41 Q 968.75 197.41 969.34 197.23 L 969.34 194.88 L 970.36 194.88 M 970.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 973.93 198 L 973.93 190.77 L 974.89 190.77 L 974.89 194.33 L 977.82 190.77 L 978.85 190.77 L 976.02 194.22 L 979.35 198 L 978.05 198 L 974.89 194.34 L 974.89 198 M 973.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 984.91 198 L 982.18 190.77 L 983.2 190.77 L 985.44 196.69 L 987.6 190.77 L 988.49 190.77 L 985.87 198 M 984.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 993.91 198 L 991.18 190.77 L 992.2 190.77 L 994.44 196.69 L 996.6 190.77 L 997.49 190.77 L 994.87 198 M 993.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1003.35 198.18 Q 1002.62 198.18 1001.49 197.86 L 1001.49 196.85 Q 1002.71 197.41 1003.5 197.41 Q 1004.1 197.41 1004.47 197.1 Q 1004.84 196.78 1004.84 196.26 Q 1004.84 195.84 1004.6 195.54 Q 1004.35 195.24 1003.71 194.88 L 1003.21 194.59 Q 1002.28 194.06 1001.91 193.59 Q 1001.53 193.13 1001.53 192.51 Q 1001.53 191.67 1002.13 191.13 Q 1002.74 190.59 1003.68 190.59 Q 1004.51 190.59 1005.44 190.87 L 1005.44 191.81 Q 1004.3 191.36 1003.73 191.36 Q 1003.2 191.36 1002.86 191.64 Q 1002.51 191.93 1002.51 192.36 Q 1002.51 192.72 1002.76 193 Q 1003.02 193.27 1003.69 193.66 L 1004.21 193.95 Q 1005.15 194.48 1005.52 194.96 Q 1005.89 195.43 1005.89 196.1 Q 1005.89 197.04 1005.19 197.61 Q 1004.5 198.18 1003.35 198.18 M 1003.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1015.36 197.8 Q 1014.05 198.18 1013.07 198.18 Q 1011.35 198.18 1010.43 197.2 Q 1009.51 196.22 1009.51 194.39 Q 1009.51 192.59 1010.44 191.59 Q 1011.37 190.59 1013.06 190.59 Q 1014.16 190.59 1015.35 190.92 L 1015.35 191.87 Q 1013.86 191.36 1013.06 191.36 Q 1011.89 191.36 1011.24 192.16 Q 1010.6 192.95 1010.6 194.4 Q 1010.6 195.83 1011.29 196.62 Q 1011.98 197.41 1013.23 197.41 Q 1013.75 197.41 1014.34 197.23 L 1014.34 194.88 L 1015.36 194.88 M 1015.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1021.35 198.18 Q 1020.62 198.18 1019.49 197.86 L 1019.49 196.85 Q 1020.71 197.41 1021.5 197.41 Q 1022.1 197.41 1022.47 197.1 Q 1022.84 196.78 1022.84 196.26 Q 1022.84 195.84 1022.6 195.54 Q 1022.35 195.24 1021.71 194.88 L 1021.21 194.59 Q 1020.28 194.06 1019.91 193.59 Q 1019.53 193.13 1019.53 192.51 Q 1019.53 191.67 1020.13 191.13 Q 1020.74 190.59 1021.68 190.59 Q 1022.51 190.59 1023.44 190.87 L 1023.44 191.81 Q 1022.3 191.36 1021.73 191.36 Q 1021.2 191.36 1020.86 191.64 Q 1020.51 191.93 1020.51 192.36 Q 1020.51 192.72 1020.76 193 Q 1021.02 193.27 1021.69 193.66 L 1022.21 193.95 Q 1023.15 194.48 1023.52 194.96 Q 1023.89 195.43 1023.89 196.1 Q 1023.89 197.04 1023.19 197.61 Q 1022.5 198.18 1021.35 198.18 M 1021.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1029.91 198 L 1027.18 190.77 L 1028.2 190.77 L 1030.44 196.69 L 1032.6 190.77 L 1033.49 190.77 L 1030.87 198 M 1029.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1036.93 198 L 1036.93 190.77 L 1039.33 190.77 Q 1040.41 190.77 1041.07 191.01 Q 1041.73 191.25 1042.22 191.82 Q 1042.98 192.73 1042.98 194.22 Q 1042.98 196.02 1042.03 197.01 Q 1041.08 198 1039.35 198 M 1036.93 198 M 1037.96 197.23 L 1039.27 197.23 Q 1040.68 197.23 1041.26 196.48 Q 1041.89 195.67 1041.89 194.31 Q 1041.89 193.04 1041.27 192.31 Q 1040.9 191.87 1040.38 191.7 Q 1039.85 191.54 1038.8 191.54 L 1037.96 191.54 M 1037.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1051.35 199.45 Q 1049.64 198.89 1048.49 198.13 Q 1048.03 198.18 1047.78 198.18 Q 1046.33 198.18 1045.42 197.13 Q 1044.51 196.07 1044.51 194.39 Q 1044.51 192.66 1045.43 191.63 Q 1046.35 190.59 1047.89 190.59 Q 1049.43 190.59 1050.35 191.63 Q 1051.27 192.66 1051.27 194.4 Q 1051.27 196.89 1049.42 197.85 Q 1050.66 198.4 1052 198.63 M 1051.35 199.45 M 1047.86 197.41 Q 1048.97 197.41 1049.57 196.62 Q 1050.18 195.82 1050.18 194.37 Q 1050.18 192.96 1049.57 192.16 Q 1048.97 191.36 1047.89 191.36 Q 1046.81 191.36 1046.2 192.16 Q 1045.6 192.96 1045.6 194.38 Q 1045.6 195.79 1046.2 196.6 Q 1046.8 197.41 1047.86 197.41 M 1047.86 197.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1057.35 198.18 Q 1056.62 198.18 1055.49 197.86 L 1055.49 196.85 Q 1056.71 197.41 1057.5 197.41 Q 1058.1 197.41 1058.47 197.1 Q 1058.84 196.78 1058.84 196.26 Q 1058.84 195.84 1058.6 195.54 Q 1058.35 195.24 1057.71 194.88 L 1057.21 194.59 Q 1056.28 194.06 1055.91 193.59 Q 1055.53 193.13 1055.53 192.51 Q 1055.53 191.67 1056.13 191.13 Q 1056.74 190.59 1057.68 190.59 Q 1058.51 190.59 1059.44 190.87 L 1059.44 191.81 Q 1058.3 191.36 1057.73 191.36 Q 1057.2 191.36 1056.86 191.64 Q 1056.51 191.93 1056.51 192.36 Q 1056.51 192.72 1056.76 193 Q 1057.02 193.27 1057.69 193.66 L 1058.21 193.95 Q 1059.15 194.48 1059.52 194.96 Q 1059.89 195.43 1059.89 196.1 Q 1059.89 197.04 1059.19 197.61 Q 1058.5 198.18 1057.35 198.18 M 1057.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1063.93 198 L 1063.93 190.77 L 1066.33 190.77 Q 1067.41 190.77 1068.07 191.01 Q 1068.73 191.25 1069.22 191.82 Q 1069.98 192.73 1069.98 194.22 Q 1069.98 196.02 1069.03 197.01 Q 1068.08 198 1066.35 198 M 1063.93 198 M 1064.96 197.23 L 1066.27 197.23 Q 1067.68 197.23 1068.26 196.48 Q 1068.89 195.67 1068.89 194.31 Q 1068.89 193.04 1068.27 192.31 Q 1067.9 191.87 1067.38 191.7 Q 1066.85 191.54 1065.8 191.54 L 1064.96 191.54 M 1064.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1074.61 198 L 1074.61 195.47 L 1072.08 195.47 L 1072.08 194.75 L 1074.61 194.75 L 1074.61 192.22 L 1075.34 192.22 L 1075.34 194.75 L 1077.87 194.75 L 1077.87 195.47 L 1075.34 195.47 L 1075.34 198 M 1074.61 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1084.35 198.18 Q 1083.62 198.18 1082.49 197.86 L 1082.49 196.85 Q 1083.71 197.41 1084.5 197.41 Q 1085.1 197.41 1085.47 197.1 Q 1085.84 196.78 1085.84 196.26 Q 1085.84 195.84 1085.6 195.54 Q 1085.35 195.24 1084.71 194.88 L 1084.21 194.59 Q 1083.28 194.06 1082.91 193.59 Q 1082.53 193.13 1082.53 192.51 Q 1082.53 191.67 1083.13 191.13 Q 1083.74 190.59 1084.68 190.59 Q 1085.51 190.59 1086.44 190.87 L 1086.44 191.81 Q 1085.3 191.36 1084.73 191.36 Q 1084.2 191.36 1083.86 191.64 Q 1083.51 191.93 1083.51 192.36 Q 1083.51 192.72 1083.76 193 Q 1084.02 193.27 1084.69 193.66 L 1085.21 193.95 Q 1086.15 194.48 1086.52 194.96 Q 1086.89 195.43 1086.89 196.1 Q 1086.89 197.04 1086.19 197.61 Q 1085.5 198.18 1084.35 198.18 M 1084.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1091.93 198 L 1091.93 190.77 L 1095.97 190.77 L 1095.97 191.54 L 1092.96 191.54 L 1092.96 193.96 L 1095.49 193.96 L 1095.49 194.72 L 1092.96 194.72 L 1092.96 198 M 1091.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1100.93 198 L 1100.93 190.77 L 1101.96 190.77 L 1101.96 197.23 L 1105.21 197.23 L 1105.21 198 M 1100.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1108.93 198 L 1108.93 190.77 L 1111.33 190.77 Q 1112.41 190.77 1113.07 191.01 Q 1113.73 191.25 1114.22 191.82 Q 1114.98 192.73 1114.98 194.22 Q 1114.98 196.02 1114.03 197.01 Q 1113.08 198 1111.35 198 M 1108.93 198 M 1109.96 197.23 L 1111.27 197.23 Q 1112.68 197.23 1113.26 196.48 Q 1113.89 195.67 1113.89 194.31 Q 1113.89 193.04 1113.27 192.31 Q 1112.9 191.87 1112.38 191.7 Q 1111.85 191.54 1110.8 191.54 L 1109.96 191.54 M 1109.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1117.93 198 L 1117.93 190.77 L 1120.33 190.77 Q 1121.41 190.77 1122.07 191.01 Q 1122.73 191.25 1123.22 191.82 Q 1123.98 192.73 1123.98 194.22 Q 1123.98 196.02 1123.03 197.01 Q 1122.08 198 1120.35 198 M 1117.93 198 M 1118.96 197.23 L 1120.27 197.23 Q 1121.68 197.23 1122.26 196.48 Q 1122.89 195.67 1122.89 194.31 Q 1122.89 193.04 1122.27 192.31 Q 1121.9 191.87 1121.38 191.7 Q 1120.85 191.54 1119.8 191.54 L 1118.96 191.54 M 1118.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1126.93 198 L 1126.93 190.77 L 1129.33 190.77 Q 1130.41 190.77 1131.07 191.01 Q 1131.73 191.25 1132.22 191.82 Q 1132.98 192.73 1132.98 194.22 Q 1132.98 196.02 1132.03 197.01 Q 1131.08 198 1129.35 198 M 1126.93 198 M 1127.96 197.23 L 1129.27 197.23 Q 1130.68 197.23 1131.26 196.48 Q 1131.89 195.67 1131.89 194.31 Q 1131.89 193.04 1131.27 192.31 Q 1130.9 191.87 1130.38 191.7 Q 1129.85 191.54 1128.8 191.54 L 1127.96 191.54 M 1127.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1141.35 199.45 Q 1139.64 198.89 1138.49 198.13 Q 1138.03 198.18 1137.78 198.18 Q 1136.33 198.18 1135.42 197.13 Q 1134.51 196.07 1134.51 194.39 Q 1134.51 192.66 1135.43 191.63 Q 1136.35 190.59 1137.89 190.59 Q 1139.43 190.59 1140.35 191.63 Q 1141.27 192.66 1141.27 194.4 Q 1141.27 196.89 1139.42 197.85 Q 1140.66 198.4 1142 198.63 M 1141.35 199.45 M 1137.86 197.41 Q 1138.97 197.41 1139.57 196.62 Q 1140.18 195.82 1140.18 194.37 Q 1140.18 192.96 1139.57 192.16 Q 1138.97 191.36 1137.89 191.36 Q 1136.81 191.36 1136.2 192.16 Q 1135.6 192.96 1135.6 194.38 Q 1135.6 195.79 1136.2 196.6 Q 1136.8 197.41 1137.86 197.41 M 1137.86 197.41"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1146.93 198 L 1146.93 190.77 L 1147.95 190.77 L 1147.95 198 M 1146.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1157.59 195.24 L 1156.36 192.12 L 1155.13 195.24 M 1157.59 195.24 M 1158.68 198 L 1157.89 196 L 1154.83 196 L 1154.04 198 L 1153.08 198 L 1155.95 190.77 L 1156.96 190.77 L 1159.79 198 M 1158.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1163.93 198 L 1163.93 190.77 L 1167.97 190.77 L 1167.97 191.54 L 1164.96 191.54 L 1164.96 193.86 L 1167.48 193.86 L 1167.48 194.62 L 1164.96 194.62 L 1164.96 197.23 L 1168.18 197.23 L 1168.18 198 M 1163.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1177.36 197.8 Q 1176.05 198.18 1175.07 198.18 Q 1173.35 198.18 1172.43 197.2 Q 1171.51 196.22 1171.51 194.39 Q 1171.51 192.59 1172.44 191.59 Q 1173.37 190.59 1175.06 190.59 Q 1176.16 190.59 1177.35 190.92 L 1177.35 191.87 Q 1175.86 191.36 1175.06 191.36 Q 1173.89 191.36 1173.24 192.16 Q 1172.6 192.95 1172.6 194.4 Q 1172.6 195.83 1173.29 196.62 Q 1173.98 197.41 1175.23 197.41 Q 1175.75 197.41 1176.34 197.23 L 1176.34 194.88 L 1177.36 194.88 M 1177.36 197.8"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1180.87 198 L 1179.01 190.77 L 1180 190.77 L 1181.48 196.48 L 1182.84 190.77 L 1183.82 190.77 L 1185.11 196.4 L 1186.71 190.77 L 1187.54 190.77 L 1185.51 198 L 1184.49 198 L 1183.22 192.43 L 1181.89 198 M 1180.87 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1191.91 198 L 1189.18 190.77 L 1190.2 190.77 L 1192.44 196.69 L 1194.6 190.77 L 1195.49 190.77 L 1192.87 198 M 1191.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1199.93 198 L 1199.93 190.77 L 1200.96 190.77 L 1200.96 197.23 L 1204.21 197.23 L 1204.21 198 M 1199.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1209.65 198 L 1209.65 191.54 L 1207.09 191.54 L 1207.09 190.77 L 1213.24 190.77 L 1213.24 191.54 L 1210.68 191.54 L 1210.68 198 M 1209.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1220.03 198.18 Q 1218.34 198.18 1217.43 197.19 Q 1216.51 196.2 1216.51 194.39 Q 1216.51 192.58 1217.44 191.59 Q 1218.38 190.59 1220.08 190.59 Q 1221.05 190.59 1222.35 190.91 L 1222.35 191.87 Q 1220.87 191.36 1220.06 191.36 Q 1218.89 191.36 1218.24 192.16 Q 1217.6 192.95 1217.6 194.4 Q 1217.6 195.78 1218.29 196.58 Q 1218.97 197.38 1220.17 197.38 Q 1221.19 197.38 1222.36 196.75 L 1222.36 197.63 Q 1221.29 198.18 1220.03 198.18 M 1220.03 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1227.91 198 L 1225.18 190.77 L 1226.2 190.77 L 1228.44 196.69 L 1230.6 190.77 L 1231.49 190.77 L 1228.87 198 M 1227.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1238.59 195.24 L 1237.36 192.12 L 1236.13 195.24 M 1238.59 195.24 M 1239.68 198 L 1238.89 196 L 1235.83 196 L 1235.04 198 L 1234.08 198 L 1236.95 190.77 L 1237.96 190.77 L 1240.79 198 M 1239.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1245.5 198 L 1245.5 194.98 L 1243.08 190.77 L 1244.25 190.77 L 1246.13 194.04 L 1248.15 190.77 L 1249.1 190.77 L 1246.52 194.96 L 1246.52 198 M 1245.5 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1252.93 198 L 1252.93 190.77 L 1254.9 190.77 Q 1256.21 190.77 1256.78 191.22 Q 1257.35 191.66 1257.35 192.67 Q 1257.35 193.82 1256.57 194.47 Q 1255.79 195.13 1254.4 195.13 L 1253.95 195.13 L 1253.95 198 M 1252.93 198 M 1253.95 194.35 L 1254.36 194.35 Q 1255.28 194.35 1255.77 193.93 Q 1256.27 193.51 1256.27 192.75 Q 1256.27 192.1 1255.88 191.82 Q 1255.49 191.54 1254.58 191.54 L 1253.95 191.54 M 1253.95 194.35"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1263.65 198 L 1263.65 191.54 L 1261.09 191.54 L 1261.09 190.77 L 1267.24 190.77 L 1267.24 191.54 L 1264.68 191.54 L 1264.68 198 M 1263.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1273.35 198.18 Q 1272.62 198.18 1271.49 197.86 L 1271.49 196.85 Q 1272.71 197.41 1273.5 197.41 Q 1274.1 197.41 1274.47 197.1 Q 1274.84 196.78 1274.84 196.26 Q 1274.84 195.84 1274.6 195.54 Q 1274.35 195.24 1273.71 194.88 L 1273.21 194.59 Q 1272.28 194.06 1271.91 193.59 Q 1271.53 193.13 1271.53 192.51 Q 1271.53 191.67 1272.13 191.13 Q 1272.74 190.59 1273.68 190.59 Q 1274.51 190.59 1275.44 190.87 L 1275.44 191.81 Q 1274.3 191.36 1273.73 191.36 Q 1273.2 191.36 1272.86 191.64 Q 1272.51 191.93 1272.51 192.36 Q 1272.51 192.72 1272.76 193 Q 1273.02 193.27 1273.69 193.66 L 1274.21 193.95 Q 1275.15 194.48 1275.52 194.96 Q 1275.89 195.43 1275.89 196.1 Q 1275.89 197.04 1275.19 197.61 Q 1274.5 198.18 1273.35 198.18 M 1273.35 198.18"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1279.93 198 L 1279.93 190.77 L 1282.33 190.77 Q 1283.41 190.77 1284.07 191.01 Q 1284.73 191.25 1285.22 191.82 Q 1285.98 192.73 1285.98 194.22 Q 1285.98 196.02 1285.03 197.01 Q 1284.08 198 1282.35 198 M 1279.93 198 M 1280.96 197.23 L 1282.27 197.23 Q 1283.68 197.23 1284.26 196.48 Q 1284.89 195.67 1284.89 194.31 Q 1284.89 193.04 1284.27 192.31 Q 1283.9 191.87 1283.38 191.7 Q 1282.85 191.54 1281.8 191.54 L 1280.96 191.54 M 1280.96 197.23"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1290.91 198 L 1288.18 190.77 L 1289.2 190.77 L 1291.44 196.69 L 1293.6 190.77 L 1294.49 190.77 L 1291.87 198 M 1290.91 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1299.65 198 L 1299.65 191.54 L 1297.09 191.54 L 1297.09 190.77 L 1303.24 190.77 L 1303.24 191.54 L 1300.68 191.54 L 1300.68 198 M 1299.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1308.93 198 L 1308.93 190.77 L 1309.95 190.77 L 1309.95 198 M 1308.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1316.93 198 L 1316.93 190.77 L 1320.97 190.77 L 1320.97 191.54 L 1317.96 191.54 L 1317.96 193.86 L 1320.48 193.86 L 1320.48 194.62 L 1317.96 194.62 L 1317.96 197.23 L 1321.18 197.23 L 1321.18 198 M 1316.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1326.65 198 L 1326.65 191.54 L 1324.09 191.54 L 1324.09 190.77 L 1330.24 190.77 L 1330.24 191.54 L 1327.68 191.54 L 1327.68 198 M 1326.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1333.93 198 L 1333.93 190.77 L 1334.96 190.77 L 1334.96 193.82 L 1338.4 193.82 L 1338.4 190.77 L 1339.42 190.77 L 1339.42 198 L 1338.4 198 L 1338.4 194.59 L 1334.96 194.59 L 1334.96 198 M 1333.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1342.93 198 L 1342.93 190.77 L 1343.89 190.77 L 1343.89 194.33 L 1346.82 190.77 L 1347.85 190.77 L 1345.02 194.22 L 1348.35 198 L 1347.05 198 L 1343.89 194.34 L 1343.89 198 M 1342.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1352.93 198 L 1352.93 190.77 L 1356.97 190.77 L 1356.97 191.54 L 1353.96 191.54 L 1353.96 193.86 L 1356.48 193.86 L 1356.48 194.62 L 1353.96 194.62 L 1353.96 197.23 L 1357.18 197.23 L 1357.18 198 M 1352.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1361.93 198 L 1361.93 190.77 L 1365.97 190.77 L 1365.97 191.54 L 1362.96 191.54 L 1362.96 193.86 L 1365.48 193.86 L 1365.48 194.62 L 1362.96 194.62 L 1362.96 197.23 L 1366.18 197.23 L 1366.18 198 M 1361.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1370.93 198 L 1370.93 190.77 L 1374.97 190.77 L 1374.97 191.54 L 1371.96 191.54 L 1371.96 193.86 L 1374.48 193.86 L 1374.48 194.62 L 1371.96 194.62 L 1371.96 197.23 L 1375.18 197.23 L 1375.18 198 M 1370.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1379.93 198 L 1379.93 190.77 L 1380.96 190.77 L 1380.96 197.23 L 1384.21 197.23 L 1384.21 198 M 1379.93 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1389.65 198 L 1389.65 191.54 L 1387.09 191.54 L 1387.09 190.77 L 1393.24 190.77 L 1393.24 191.54 L 1390.68 191.54 L 1390.68 198 M 1389.65 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1400.59 195.24 L 1399.36 192.12 L 1398.13 195.24 M 1400.59 195.24 M 1401.68 198 L 1400.89 196 L 1397.83 196 L 1397.04 198 L 1396.08 198 L 1398.95 190.77 L 1399.96 190.77 L 1402.79 198 M 1401.68 198"/></g><g style="fill: rgb(0,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1409.59 195.24 L 1408.36 192.12 L 1407.13 195.24 M 1409.59 195.24 M 1410.68 198 L 1409.89 196 L 1406.83 196 L 1406.04 198 L 1405.08 198 L 1407.95 190.77 L 1408.96 190.77 L 1411.79 198 M 1410.68 198"/></g><line x1="0" y1="188" x2="1413" y2="188" style="stroke-width: 1.0;stroke: rgb(128,128,128);stroke-opacity: 1.0;" transform="matrix(1,0,0,1,0,214)" /><rect x="0" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 0.93 176 L 0.93 156.86 L 2.35 156.86 L 4.36 171.67 L 6.42 156.86 L 7.69 156.86 L 7.69 176 L 6.73 176 L 6.73 160.43 L 4.74 174.72 L 3.75 174.72 L 1.81 160.39 L 1.81 176 M 0.93 176"/></g><rect x="9" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 14.91 168.68 L 13.33 160.43 L 11.74 168.68 M 14.91 168.68 M 16.3 176 L 15.29 170.7 L 11.35 170.7 L 10.33 176 L 9.11 176 L 12.79 156.86 L 14.1 156.86 L 17.73 176 M 16.3 176"/></g><rect x="18" y="180" width="9" height="8" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 23.91 180.54 L 22.33 180.03 L 20.74 180.54 M 23.91 180.54 M 25.3 181 L 24.29 180.67 L 20.35 180.67 L 19.33 181 L 18.11 181 L 21.79 179.8 L 23.1 179.8 L 26.73 181 M 25.3 181"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 22.23 182.03 Q 20.92 182.03 18.88 181.98 L 18.88 181.81 Q 21.08 181.9 22.49 181.9 Q 23.58 181.9 24.24 181.85 Q 24.91 181.8 24.91 181.71 Q 24.91 181.64 24.47 181.59 Q 24.04 181.54 22.87 181.48 L 21.97 181.44 Q 20.31 181.35 19.63 181.27 Q 18.95 181.19 18.95 181.09 Q 18.95 180.95 20.04 180.86 Q 21.13 180.77 22.82 180.77 Q 24.32 180.77 25.99 180.82 L 25.99 180.98 Q 23.93 180.9 22.92 180.9 Q 21.96 180.9 21.34 180.95 Q 20.72 180.99 20.72 181.07 Q 20.72 181.13 21.17 181.17 Q 21.63 181.22 22.84 181.28 L 23.77 181.33 Q 25.46 181.42 26.13 181.5 Q 26.8 181.57 26.8 181.68 Q 26.8 181.84 25.55 181.94 Q 24.29 182.03 22.23 182.03 M 22.23 182.03"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 21.98 184 L 21.98 182.93 L 18.13 182.93 L 18.13 182.8 L 27.36 182.8 L 27.36 182.93 L 23.52 182.93 L 23.52 184 M 21.98 184"/></g><rect x="27" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 30.98 175 L 30.98 167.56 L 27.13 167.56 L 27.13 166.68 L 36.36 166.68 L 36.36 167.56 L 32.52 167.56 L 32.52 175 M 30.98 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 30.74 179 L 27.23 178.06 L 28.54 178.06 L 31.42 178.83 L 34.19 178.06 L 35.35 178.06 L 31.98 179 M 30.74 179"/></g><rect x="36" y="186" width="9" height="2" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 37.68 186 L 37.68 185.91 L 39.52 185.91 L 39.52 185.99 L 45.38 185.99 L 45.38 186 M 37.68 186"/></g><rect x="45" y="186" width="9" height="2" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 53.18 186 Q 51.49 186 50.24 186 Q 48.02 186 46.84 185.99 Q 45.65 185.98 45.65 185.96 Q 45.65 185.93 46.85 185.92 Q 48.05 185.91 50.22 185.91 Q 51.64 185.91 53.17 185.91 L 53.17 185.92 Q 51.25 185.92 50.22 185.92 Q 48.72 185.92 47.88 185.93 Q 47.05 185.94 47.05 185.96 Q 47.05 185.97 47.94 185.98 Q 48.84 185.99 50.44 185.99 Q 51.1 185.99 51.87 185.99 L 51.87 185.96 L 53.18 185.96 M 53.18 186"/></g><rect x="54" y="183" width="9" height="5" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 57.98 183 L 57.98 182.57 L 54.13 182.57 L 54.13 182.51 L 63.36 182.51 L 63.36 182.57 L 59.52 182.57 L 59.52 183 M 57.98 183"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 58.23 183.01 Q 56.92 183.01 54.88 183 L 54.88 182.96 Q 57.08 182.98 58.49 182.98 Q 59.58 182.98 60.24 182.97 Q 60.91 182.96 60.91 182.95 Q 60.91 182.93 60.47 182.92 Q 60.04 182.91 58.87 182.9 L 57.97 182.89 Q 56.31 182.88 55.63 182.86 Q 54.95 182.85 54.95 182.83 Q 54.95 182.8 56.04 182.79 Q 57.13 182.77 58.82 182.77 Q 60.32 182.77 61.99 182.78 L 61.99 182.81 Q 59.93 182.79 58.92 182.79 Q 57.96 182.79 57.34 182.8 Q 56.72 182.81 56.72 182.82 Q 56.72 182.84 57.17 182.84 Q 57.63 182.85 58.84 182.87 L 59.77 182.87 Q 61.46 182.89 62.13 182.91 Q 62.8 182.92 62.8 182.94 Q 62.8 182.97 61.55 182.99 Q 60.29 183.01 58.23 183.01 M 58.23 183.01"/></g><rect x="63" y="180" width="9" height="8" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 64.4 181 L 64.4 179.8 L 67.35 179.8 Q 69.31 179.8 70.17 179.88 Q 71.03 179.95 71.03 180.12 Q 71.03 180.31 69.86 180.42 Q 68.68 180.52 66.6 180.52 L 65.92 180.52 L 65.92 181 M 64.4 181 M 65.92 180.4 L 66.54 180.4 Q 67.91 180.4 68.66 180.33 Q 69.41 180.26 69.41 180.13 Q 69.41 180.02 68.82 179.98 Q 68.24 179.93 66.87 179.93 L 65.92 179.93 M 65.92 180.4"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 68.91 180.86 L 67.33 180.71 L 65.74 180.86 M 68.91 180.86 M 70.3 181 L 69.29 180.9 L 65.35 180.9 L 64.33 181 L 63.11 181 L 66.79 180.64 L 68.1 180.64 L 71.73 181 M 70.3 181"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 66.98 182 L 66.98 181.68 L 63.13 181.68 L 63.13 181.64 L 72.36 181.64 L 72.36 181.68 L 68.52 181.68 L 68.52 182 M 66.98 182"/></g><rect x="72" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 77.91 175.17 L 76.33 173.11 L 74.74 175.17 M 77.91 175.17 M 79.3 177 L 78.29 175.67 L 74.35 175.67 L 73.33 177 L 72.11 177 L 75.79 172.22 L 77.1 172.22 L 80.73 177 M 79.3 177"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 76.23 180.06 Q 74.92 180.06 72.88 179.95 L 72.88 179.62 Q 75.08 179.81 76.49 179.81 Q 77.58 179.81 78.24 179.7 Q 78.91 179.6 78.91 179.42 Q 78.91 179.28 78.47 179.19 Q 78.04 179.09 76.87 178.97 L 75.97 178.87 Q 74.31 178.7 73.63 178.54 Q 72.95 178.39 72.95 178.18 Q 72.95 177.91 74.04 177.73 Q 75.13 177.55 76.82 177.55 Q 78.32 177.55 79.99 177.64 L 79.99 177.95 Q 77.93 177.8 76.92 177.8 Q 75.96 177.8 75.34 177.9 Q 74.72 177.99 74.72 178.13 Q 74.72 178.25 75.17 178.34 Q 75.63 178.44 76.84 178.56 L 77.77 178.66 Q 79.46 178.84 80.13 178.99 Q 80.8 179.15 80.8 179.37 Q 80.8 179.68 79.55 179.87 Q 78.29 180.06 76.23 180.06 M 76.23 180.06"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 73.4 182 L 73.4 181.28 L 76.68 181.28 Q 78.24 181.28 79.07 181.33 Q 79.9 181.37 79.9 181.46 Q 79.9 181.6 77.71 181.66 L 81.33 182 L 79.44 182 L 76.36 181.7 L 74.92 181.7 L 74.92 182 M 73.4 182 M 74.92 181.62 L 75.42 181.62 Q 78.32 181.62 78.32 181.47 Q 78.32 181.36 75.89 181.36 L 74.92 181.36 M 74.92 181.62"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 75.98 183 L 75.98 182.36 L 72.13 182.36 L 72.13 182.28 L 81.36 182.28 L 81.36 182.36 L 77.52 182.36 L 77.52 183 M 75.98 183"/></g><rect x="81" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 82.68 177 L 82.68 172.22 L 84.52 172.22 L 84.52 176.49 L 90.38 176.49 L 90.38 177 M 82.68 177"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 83.78 180 L 83.78 178.45 L 86.86 178.45 L 86.86 180 M 83.78 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 86.91 180.73 L 85.33 180.42 L 83.74 180.73 M 86.91 180.73 M 88.3 181 L 87.29 180.8 L 83.35 180.8 L 82.33 181 L 81.11 181 L 84.79 180.28 L 86.1 180.28 L 89.73 181 M 88.3 181"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 81.93 182 L 81.93 181.28 L 83.35 181.28 L 85.36 181.84 L 87.42 181.28 L 88.69 181.28 L 88.69 182 L 87.73 182 L 87.73 181.42 L 85.74 181.95 L 84.75 181.95 L 82.81 181.41 L 82.81 182 M 81.93 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 84.74 183 L 81.23 182.28 L 82.54 182.28 L 85.42 182.87 L 88.19 182.28 L 89.35 182.28 L 85.98 183 M 84.74 183"/></g><rect x="90" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 94.23 176.15 Q 92.92 176.15 90.88 175.88 L 90.88 175.01 Q 93.08 175.5 94.49 175.5 Q 95.58 175.5 96.24 175.23 Q 96.91 174.95 96.91 174.51 Q 96.91 174.15 96.47 173.89 Q 96.04 173.64 94.87 173.32 L 93.97 173.08 Q 92.31 172.63 91.63 172.23 Q 90.95 171.83 90.95 171.3 Q 90.95 170.58 92.04 170.12 Q 93.13 169.66 94.82 169.66 Q 96.32 169.66 97.99 169.89 L 97.99 170.7 Q 95.93 170.31 94.92 170.31 Q 93.96 170.31 93.34 170.56 Q 92.72 170.8 92.72 171.17 Q 92.72 171.48 93.17 171.71 Q 93.63 171.95 94.84 172.28 L 95.77 172.53 Q 97.46 172.99 98.13 173.39 Q 98.8 173.8 98.8 174.37 Q 98.8 175.18 97.55 175.67 Q 96.29 176.15 94.23 176.15 M 94.23 176.15"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 93.74 180 L 93.74 179.27 L 90.12 178.25 L 91.88 178.25 L 94.69 179.04 L 97.73 178.25 L 99.16 178.25 L 95.28 179.26 L 95.28 180 M 93.74 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 90.93 181 L 90.93 180.19 L 92.35 180.19 L 94.36 180.82 L 96.42 180.19 L 97.69 180.19 L 97.69 181 L 96.73 181 L 96.73 180.34 L 94.74 180.95 L 93.75 180.95 L 91.81 180.34 L 91.81 181 M 90.93 181"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 91.4 182 L 91.4 181.19 L 94.35 181.19 Q 96.31 181.19 97.17 181.24 Q 98.03 181.29 98.03 181.4 Q 98.03 181.53 96.86 181.61 Q 95.68 181.68 93.6 181.68 L 92.92 181.68 L 92.92 182 M 91.4 182 M 92.92 181.59 L 93.54 181.59 Q 94.91 181.59 95.66 181.55 Q 96.41 181.5 96.41 181.41 Q 96.41 181.34 95.82 181.31 Q 95.24 181.28 93.87 181.28 L 92.92 181.28 M 92.92 181.59"/></g><rect x="99" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 107.18 176.87 Q 105.49 177.12 104.24 177.12 Q 102.02 177.12 100.84 176.47 Q 99.65 175.82 99.65 174.61 Q 99.65 173.42 100.85 172.76 Q 102.05 172.1 104.22 172.1 Q 105.64 172.1 107.17 172.31 L 107.17 172.94 Q 105.25 172.6 104.22 172.6 Q 102.72 172.6 101.88 173.13 Q 101.05 173.66 101.05 174.61 Q 101.05 175.56 101.94 176.09 Q 102.84 176.61 104.44 176.61 Q 105.1 176.61 105.87 176.49 L 105.87 174.93 L 107.18 174.93 M 107.18 176.87"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 103.23 180.06 Q 101.92 180.06 99.88 179.95 L 99.88 179.62 Q 102.08 179.81 103.49 179.81 Q 104.58 179.81 105.24 179.7 Q 105.91 179.6 105.91 179.42 Q 105.91 179.28 105.47 179.19 Q 105.04 179.09 103.87 178.97 L 102.97 178.87 Q 101.31 178.7 100.63 178.54 Q 99.95 178.39 99.95 178.18 Q 99.95 177.91 101.04 177.73 Q 102.13 177.55 103.82 177.55 Q 105.32 177.55 106.99 177.64 L 106.99 177.95 Q 104.93 177.8 103.92 177.8 Q 102.96 177.8 102.34 177.9 Q 101.72 177.99 101.72 178.13 Q 101.72 178.25 102.17 178.34 Q 102.63 178.44 103.84 178.56 L 104.77 178.66 Q 106.46 178.84 107.13 178.99 Q 107.8 179.15 107.8 179.37 Q 107.8 179.68 106.55 179.87 Q 105.29 180.06 103.23 180.06 M 103.23 180.06"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 104.91 182.41 L 103.33 181.74 L 101.74 182.41 M 104.91 182.41 M 106.3 183 L 105.29 182.57 L 101.35 182.57 L 100.33 183 L 99.11 183 L 102.79 181.45 L 104.1 181.45 L 107.73 183 M 106.3 183"/></g><rect x="108" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 111.98 178 L 111.98 175.13 L 108.13 175.13 L 108.13 174.79 L 117.36 174.79 L 117.36 175.13 L 113.52 175.13 L 113.52 178 M 111.98 178"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 113.91 180.03 L 112.33 178.94 L 110.74 180.03 M 113.91 180.03 M 115.3 181 L 114.29 180.3 L 110.35 180.3 L 109.33 181 L 108.11 181 L 111.79 178.47 L 113.1 178.47 L 116.73 181 M 115.3 181"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 109.68 183 L 109.68 182.42 L 116.95 182.42 L 116.95 182.48 L 111.52 182.48 L 111.52 182.67 L 116.08 182.67 L 116.08 182.74 L 111.52 182.74 L 111.52 183 M 109.68 183"/></g><rect x="117" y="180" width="9" height="8" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 122.91 180.54 L 121.33 180.03 L 119.74 180.54 M 122.91 180.54 M 124.3 181 L 123.29 180.67 L 119.35 180.67 L 118.33 181 L 117.11 181 L 120.79 179.8 L 122.1 179.8 L 125.73 181 M 124.3 181"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 119.78 182 L 119.78 180.8 L 122.86 180.8 L 122.86 182 M 119.78 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 117.93 184 L 117.93 182.8 L 119.35 182.8 L 121.36 183.73 L 123.42 182.8 L 124.69 182.8 L 124.69 184 L 123.73 184 L 123.73 183.03 L 121.74 183.92 L 120.75 183.92 L 118.81 183.02 L 118.81 184 M 117.93 184"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 118.68 185 L 118.68 184.64 L 125.95 184.64 L 125.95 184.68 L 120.52 184.68 L 120.52 184.8 L 125.08 184.8 L 125.08 184.84 L 120.52 184.84 L 120.52 185 M 118.68 185"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 120.98 185 L 120.98 184.68 L 117.13 184.68 L 117.13 184.64 L 126.36 184.64 L 126.36 184.68 L 122.52 184.68 L 122.52 185 M 120.98 185"/></g><rect x="126" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 129.74 178 L 126.23 174.79 L 127.54 174.79 L 130.42 177.42 L 133.19 174.79 L 134.35 174.79 L 130.98 178 M 129.74 178"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 128.78 181 L 128.78 179.06 L 131.86 179.06 L 131.86 181 M 128.78 181"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 126.93 183 L 126.93 181.74 L 128.35 181.74 L 130.36 182.71 L 132.42 181.74 L 133.69 181.74 L 133.69 183 L 132.73 183 L 132.73 181.97 L 130.74 182.92 L 129.75 182.92 L 127.81 181.97 L 127.81 183 M 126.93 183"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 127.68 184 L 127.68 183.42 L 134.95 183.42 L 134.95 183.48 L 129.52 183.48 L 129.52 183.67 L 134.08 183.67 L 134.08 183.74 L 129.52 183.74 L 129.52 184 M 127.68 184"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 127.68 184 L 127.68 183.42 L 129.52 183.42 L 129.52 183.94 L 135.38 183.94 L 135.38 184 M 127.68 184"/></g><rect x="135" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 139.23 175.32 Q 137.92 175.32 135.88 174.76 L 135.88 172.95 Q 138.08 173.96 139.49 173.96 Q 140.58 173.96 141.24 173.4 Q 141.91 172.83 141.91 171.91 Q 141.91 171.16 141.47 170.63 Q 141.04 170.1 139.87 169.45 L 138.97 168.94 Q 137.31 168.01 136.63 167.18 Q 135.95 166.35 135.95 165.25 Q 135.95 163.77 137.04 162.81 Q 138.13 161.85 139.82 161.85 Q 141.32 161.85 142.99 162.35 L 142.99 164.01 Q 140.93 163.21 139.92 163.21 Q 138.96 163.21 138.34 163.72 Q 137.72 164.22 137.72 164.98 Q 137.72 165.62 138.17 166.12 Q 138.63 166.61 139.84 167.3 L 140.77 167.82 Q 142.46 168.76 143.13 169.6 Q 143.8 170.44 143.8 171.62 Q 143.8 173.29 142.55 174.31 Q 141.29 175.32 139.23 175.32 M 139.23 175.32"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 140.91 179.55 L 139.33 179.05 L 137.74 179.55 M 140.91 179.55 M 142.3 180 L 141.29 179.68 L 137.35 179.68 L 136.33 180 L 135.11 180 L 138.79 178.83 L 140.1 178.83 L 143.73 180 M 142.3 180"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 143.18 180.97 Q 141.49 181.03 140.24 181.03 Q 138.02 181.03 136.84 180.87 Q 135.65 180.71 135.65 180.42 Q 135.65 180.13 136.85 179.97 Q 138.05 179.8 140.22 179.8 Q 141.64 179.8 143.17 179.86 L 143.17 180.01 Q 141.25 179.93 140.22 179.93 Q 138.72 179.93 137.88 180.06 Q 137.05 180.19 137.05 180.42 Q 137.05 180.65 137.94 180.78 Q 138.84 180.91 140.44 180.91 Q 141.1 180.91 141.87 180.88 L 141.87 180.5 L 143.18 180.5 M 143.18 180.97"/></g><rect x="144" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 147.98 175 L 147.98 163.53 L 144.13 163.53 L 144.13 162.17 L 153.36 162.17 L 153.36 163.53 L 149.52 163.53 L 149.52 175 M 147.98 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 144.93 180 L 144.93 178.83 L 146.35 178.83 L 148.36 179.74 L 150.42 178.83 L 151.69 178.83 L 151.69 180 L 150.73 180 L 150.73 179.05 L 148.74 179.92 L 147.75 179.92 L 145.81 179.05 L 145.81 180 M 144.93 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 148.23 181.03 Q 146.92 181.03 144.88 180.98 L 144.88 180.81 Q 147.08 180.91 148.49 180.91 Q 149.58 180.91 150.24 180.85 Q 150.91 180.8 150.91 180.72 Q 150.91 180.65 150.47 180.6 Q 150.04 180.55 148.87 180.5 L 147.97 180.45 Q 146.31 180.36 145.63 180.29 Q 144.95 180.21 144.95 180.11 Q 144.95 179.98 146.04 179.89 Q 147.13 179.8 148.82 179.8 Q 150.32 179.8 151.99 179.85 L 151.99 180 Q 149.93 179.93 148.92 179.93 Q 147.96 179.93 147.34 179.97 Q 146.72 180.02 146.72 180.09 Q 146.72 180.15 147.17 180.19 Q 147.63 180.24 148.84 180.3 L 149.77 180.35 Q 151.46 180.43 152.13 180.51 Q 152.8 180.59 152.8 180.69 Q 152.8 180.84 151.55 180.94 Q 150.29 181.03 148.23 181.03 M 148.23 181.03"/></g><rect x="153" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 157.23 175.32 Q 155.92 175.32 153.88 174.76 L 153.88 172.95 Q 156.08 173.96 157.49 173.96 Q 158.58 173.96 159.24 173.4 Q 159.91 172.83 159.91 171.91 Q 159.91 171.16 159.47 170.63 Q 159.04 170.1 157.87 169.45 L 156.97 168.94 Q 155.31 168.01 154.63 167.18 Q 153.95 166.35 153.95 165.25 Q 153.95 163.77 155.04 162.81 Q 156.13 161.85 157.82 161.85 Q 159.32 161.85 160.99 162.35 L 160.99 164.01 Q 158.93 163.21 157.92 163.21 Q 156.96 163.21 156.34 163.72 Q 155.72 164.22 155.72 164.98 Q 155.72 165.62 156.17 166.12 Q 156.63 166.61 157.84 167.3 L 158.77 167.82 Q 160.46 168.76 161.13 169.6 Q 161.8 170.44 161.8 171.62 Q 161.8 173.29 160.55 174.31 Q 159.29 175.32 157.23 175.32 M 157.23 175.32"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 158.91 179.55 L 157.33 179.05 L 155.74 179.55 M 158.91 179.55 M 160.3 180 L 159.29 179.68 L 155.35 179.68 L 154.33 180 L 153.11 180 L 156.79 178.83 L 158.1 178.83 L 161.73 180 M 160.3 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 156.98 181 L 156.98 179.96 L 153.13 179.96 L 153.13 179.83 L 162.36 179.83 L 162.36 179.96 L 158.52 179.96 L 158.52 181 M 156.98 181"/></g><rect x="162" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 163.68 175 L 163.68 162.17 L 170.95 162.17 L 170.95 163.53 L 165.52 163.53 L 165.52 167.83 L 170.08 167.83 L 170.08 169.18 L 165.52 169.18 L 165.52 175 M 163.68 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 164.78 180 L 164.78 178.83 L 167.86 178.83 L 167.86 180 M 164.78 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 166.23 181.03 Q 164.92 181.03 162.88 180.98 L 162.88 180.81 Q 165.08 180.91 166.49 180.91 Q 167.58 180.91 168.24 180.85 Q 168.91 180.8 168.91 180.72 Q 168.91 180.65 168.47 180.6 Q 168.04 180.55 166.87 180.5 L 165.97 180.45 Q 164.31 180.36 163.63 180.29 Q 162.95 180.21 162.95 180.11 Q 162.95 179.98 164.04 179.89 Q 165.13 179.8 166.82 179.8 Q 168.32 179.8 169.99 179.85 L 169.99 180 Q 167.93 179.93 166.92 179.93 Q 165.96 179.93 165.34 179.97 Q 164.72 180.02 164.72 180.09 Q 164.72 180.15 165.17 180.19 Q 165.63 180.24 166.84 180.3 L 167.77 180.35 Q 169.46 180.43 170.13 180.51 Q 170.8 180.59 170.8 180.69 Q 170.8 180.84 169.55 180.94 Q 168.29 181.03 166.23 181.03 M 166.23 181.03"/></g><rect x="171" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 172.68 176 L 172.68 169.81 L 174.52 169.81 L 174.52 175.34 L 180.38 175.34 L 180.38 176 M 172.68 176"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 171.93 180 L 171.93 178.25 L 173.35 178.25 L 175.36 179.6 L 177.42 178.25 L 178.69 178.25 L 178.69 180 L 177.73 180 L 177.73 178.58 L 175.74 179.88 L 174.75 179.88 L 172.81 178.57 L 172.81 180 M 171.93 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 176.91 180.69 L 175.33 180.34 L 173.74 180.69 M 176.91 180.69 M 178.3 181 L 177.29 180.78 L 173.35 180.78 L 172.33 181 L 171.11 181 L 174.79 180.19 L 176.1 180.19 L 179.73 181 M 178.3 181"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 173.78 182 L 173.78 181.19 L 176.86 181.19 L 176.86 182 M 173.78 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 174.74 183 L 171.23 182.19 L 172.54 182.19 L 175.42 182.85 L 178.19 182.19 L 179.35 182.19 L 175.98 183 M 174.74 183"/></g><rect x="180" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 181.4 176 L 181.4 169.81 L 184.68 169.81 Q 186.24 169.81 187.07 170.2 Q 187.9 170.6 187.9 171.35 Q 187.9 172.58 185.71 173.1 L 189.33 176 L 187.44 176 L 184.36 173.38 L 182.92 173.38 L 182.92 176 M 181.4 176 M 182.92 172.73 L 183.42 172.73 Q 186.32 172.73 186.32 171.43 Q 186.32 170.47 183.89 170.47 L 182.92 170.47 M 182.92 172.73"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 181.4 182 L 181.4 177.56 L 184.35 177.56 Q 186.31 177.56 187.17 177.83 Q 188.03 178.1 188.03 178.72 Q 188.03 179.43 186.86 179.83 Q 185.68 180.24 183.6 180.24 L 182.92 180.24 L 182.92 182 M 181.4 182 M 182.92 179.76 L 183.54 179.76 Q 184.91 179.76 185.66 179.5 Q 186.41 179.24 186.41 178.77 Q 186.41 178.37 185.82 178.2 Q 185.24 178.03 183.87 178.03 L 182.92 178.03 M 182.92 179.76"/></g><rect x="189" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 190.4 176 L 190.4 169.81 L 193.68 169.81 Q 195.24 169.81 196.07 170.2 Q 196.9 170.6 196.9 171.35 Q 196.9 172.58 194.71 173.1 L 198.33 176 L 196.44 176 L 193.36 173.38 L 191.92 173.38 L 191.92 176 M 190.4 176 M 191.92 172.73 L 192.42 172.73 Q 195.32 172.73 195.32 171.43 Q 195.32 170.47 192.89 170.47 L 191.92 170.47 M 191.92 172.73"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 190.2 180 L 190.2 178.25 L 191.44 178.25 L 191.44 179.11 L 195.2 178.25 L 196.52 178.25 L 192.88 179.09 L 197.17 180 L 195.5 180 L 191.44 179.11 L 191.44 180 M 190.2 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 194.91 180.69 L 193.33 180.34 L 191.74 180.69 M 194.91 180.69 M 196.3 181 L 195.29 180.78 L 191.35 180.78 L 190.33 181 L 189.11 181 L 192.79 180.19 L 194.1 180.19 L 197.73 181 M 196.3 181"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 192.98 182 L 192.98 181.28 L 189.13 181.28 L 189.13 181.19 L 198.36 181.19 L 198.36 181.28 L 194.52 181.28 L 194.52 182 M 192.98 182"/></g><rect x="198" y="178" width="9" height="10" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 206.27 180.39 Q 204.35 180.24 203.05 180.04 Q 202.54 180.05 202.26 180.05 Q 200.62 180.05 199.6 179.76 Q 198.57 179.48 198.57 179.03 Q 198.57 178.56 199.61 178.29 Q 200.64 178.01 202.37 178.01 Q 204.11 178.01 205.14 178.29 Q 206.17 178.56 206.17 179.03 Q 206.17 179.7 204.09 179.96 Q 205.49 180.11 207 180.17 M 206.27 180.39 M 202.34 179.84 Q 203.59 179.84 204.27 179.63 Q 204.95 179.41 204.95 179.02 Q 204.95 178.64 204.27 178.43 Q 203.59 178.21 202.37 178.21 Q 201.16 178.21 200.48 178.43 Q 199.8 178.64 199.8 179.03 Q 199.8 179.41 200.47 179.62 Q 201.15 179.84 202.34 179.84 M 202.34 179.84"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 199.2 182 L 199.2 180.51 L 200.44 180.51 L 200.44 181.24 L 204.2 180.51 L 205.52 180.51 L 201.88 181.22 L 206.17 182 L 204.5 182 L 200.44 181.24 L 200.44 182 M 199.2 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 203.91 182.83 L 202.33 182.64 L 200.74 182.83 M 203.91 182.83 M 205.3 183 L 204.29 182.88 L 200.35 182.88 L 199.33 183 L 198.11 183 L 201.79 182.55 L 203.1 182.55 L 206.73 183 M 205.3 183"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 199.4 183 L 199.4 182.55 L 202.35 182.55 Q 204.31 182.55 205.17 182.58 Q 206.03 182.61 206.03 182.67 Q 206.03 182.74 204.86 182.78 Q 203.68 182.82 201.6 182.82 L 200.92 182.82 L 200.92 183 M 199.4 183 M 200.92 182.77 L 201.54 182.77 Q 202.91 182.77 203.66 182.75 Q 204.41 182.72 204.41 182.67 Q 204.41 182.63 203.82 182.62 Q 203.24 182.6 201.87 182.6 L 200.92 182.6 M 200.92 182.77"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 202.23 184.01 Q 200.92 184.01 198.88 183.99 L 198.88 183.93 Q 201.08 183.96 202.49 183.96 Q 203.58 183.96 204.24 183.94 Q 204.91 183.92 204.91 183.89 Q 204.91 183.87 204.47 183.85 Q 204.04 183.83 202.87 183.81 L 201.97 183.79 Q 200.31 183.76 199.63 183.73 Q 198.95 183.7 198.95 183.66 Q 198.95 183.61 200.04 183.57 Q 201.13 183.54 202.82 183.54 Q 204.32 183.54 205.99 183.56 L 205.99 183.62 Q 203.93 183.59 202.92 183.59 Q 201.96 183.59 201.34 183.61 Q 200.72 183.62 200.72 183.65 Q 200.72 183.67 201.17 183.69 Q 201.63 183.71 202.84 183.73 L 203.77 183.75 Q 205.46 183.78 206.13 183.81 Q 206.8 183.84 206.8 183.88 Q 206.8 183.94 205.55 183.98 Q 204.29 184.01 202.23 184.01 M 202.23 184.01"/></g><rect x="207" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 208.4 176 L 208.4 169.81 L 211.35 169.81 Q 213.31 169.81 214.17 170.19 Q 215.03 170.57 215.03 171.43 Q 215.03 172.42 213.86 172.98 Q 212.68 173.54 210.6 173.54 L 209.92 173.54 L 209.92 176 M 208.4 176 M 209.92 172.88 L 210.54 172.88 Q 211.91 172.88 212.66 172.52 Q 213.41 172.16 213.41 171.5 Q 213.41 170.94 212.82 170.71 Q 212.24 170.47 210.87 170.47 L 209.92 170.47 M 209.92 172.88"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 215.27 181.54 Q 213.35 181.33 212.05 181.05 Q 211.54 181.07 211.26 181.07 Q 209.62 181.07 208.6 180.67 Q 207.57 180.28 207.57 179.65 Q 207.57 179.01 208.61 178.63 Q 209.64 178.24 211.37 178.24 Q 213.11 178.24 214.14 178.63 Q 215.17 179.01 215.17 179.66 Q 215.17 180.59 213.09 180.94 Q 214.49 181.15 216 181.23 M 215.27 181.54 M 211.34 180.78 Q 212.59 180.78 213.27 180.49 Q 213.95 180.19 213.95 179.65 Q 213.95 179.12 213.27 178.82 Q 212.59 178.53 211.37 178.53 Q 210.16 178.53 209.48 178.82 Q 208.8 179.12 208.8 179.65 Q 208.8 180.18 209.47 180.48 Q 210.15 180.78 211.34 180.78 M 211.34 180.78"/></g><rect x="216" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 221.91 175.17 L 220.33 173.11 L 218.74 175.17 M 221.91 175.17 M 223.3 177 L 222.29 175.67 L 218.35 175.67 L 217.33 177 L 216.11 177 L 219.79 172.22 L 221.1 172.22 L 224.73 177 M 223.3 177"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 219.98 180 L 219.98 177.86 L 216.13 177.86 L 216.13 177.61 L 225.36 177.61 L 225.36 177.86 L 221.52 177.86 L 221.52 180 M 219.98 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 219.74 183 L 216.23 181.45 L 217.54 181.45 L 220.42 182.72 L 223.19 181.45 L 224.35 181.45 L 220.98 183 M 219.74 183"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 216.93 184 L 216.93 183.28 L 218.35 183.28 L 220.36 183.84 L 222.42 183.28 L 223.69 183.28 L 223.69 184 L 222.73 184 L 222.73 183.42 L 220.74 183.95 L 219.75 183.95 L 217.81 183.41 L 217.81 184 M 216.93 184"/></g><rect x="225" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 226.4 175 L 226.4 164.24 L 229.35 164.24 Q 231.31 164.24 232.17 164.89 Q 233.03 165.55 233.03 167.06 Q 233.03 168.77 231.86 169.75 Q 230.68 170.72 228.6 170.72 L 227.92 170.72 L 227.92 175 M 226.4 175 M 227.92 169.57 L 228.54 169.57 Q 229.91 169.57 230.66 168.94 Q 231.41 168.32 231.41 167.17 Q 231.41 166.21 230.82 165.79 Q 230.24 165.38 228.87 165.38 L 227.92 165.38 M 227.92 169.57"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 228.74 182 L 225.23 178.41 L 226.54 178.41 L 229.42 181.35 L 232.19 178.41 L 233.35 178.41 L 229.98 182 M 228.74 182"/></g><rect x="234" y="178" width="9" height="10" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 237.98 180 L 237.98 178.26 L 234.13 178.26 L 234.13 178.06 L 243.36 178.06 L 243.36 178.26 L 239.52 178.26 L 239.52 180 M 237.98 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 236.78 182 L 236.78 180.51 L 239.86 180.51 L 239.86 182 M 236.78 182"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 235.4 184 L 235.4 182.51 L 238.35 182.51 Q 240.31 182.51 241.17 182.6 Q 242.03 182.69 242.03 182.9 Q 242.03 183.14 240.86 183.27 Q 239.68 183.41 237.6 183.41 L 236.92 183.41 L 236.92 184 M 235.4 184 M 236.92 183.25 L 237.54 183.25 Q 238.91 183.25 239.66 183.16 Q 240.41 183.07 240.41 182.91 Q 240.41 182.78 239.82 182.72 Q 239.24 182.66 237.87 182.66 L 236.92 182.66 M 236.92 183.25"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 234.93 185 L 234.93 184.03 L 236.35 184.03 L 238.36 184.78 L 240.42 184.03 L 241.69 184.03 L 241.69 185 L 240.73 185 L 240.73 184.21 L 238.74 184.93 L 237.75 184.93 L 235.81 184.21 L 235.81 185 M 234.93 185"/></g><rect x="243" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 247.23 175.21 Q 245.92 175.21 243.88 174.84 L 243.88 173.67 Q 246.08 174.33 247.49 174.33 Q 248.58 174.33 249.24 173.96 Q 249.91 173.59 249.91 173 Q 249.91 172.51 249.47 172.17 Q 249.04 171.82 247.87 171.4 L 246.97 171.07 Q 245.31 170.46 244.63 169.93 Q 243.95 169.39 243.95 168.68 Q 243.95 167.71 245.04 167.09 Q 246.13 166.47 247.82 166.47 Q 249.32 166.47 250.99 166.79 L 250.99 167.87 Q 248.93 167.36 247.92 167.36 Q 246.96 167.36 246.34 167.68 Q 245.72 168.01 245.72 168.5 Q 245.72 168.92 246.17 169.24 Q 246.63 169.56 247.84 170 L 248.77 170.34 Q 250.46 170.95 251.13 171.5 Q 251.8 172.04 251.8 172.81 Q 251.8 173.89 250.55 174.55 Q 249.29 175.21 247.23 175.21 M 247.23 175.21"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 243.93 180 L 243.93 177.96 L 245.35 177.96 L 247.36 179.54 L 249.42 177.96 L 250.69 177.96 L 250.69 180 L 249.73 180 L 249.73 178.34 L 247.74 179.86 L 246.75 179.86 L 244.81 178.34 L 244.81 180 M 243.93 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 248.91 180.64 L 247.33 180.23 L 245.74 180.64 M 248.91 180.64 M 250.3 181 L 249.29 180.74 L 245.35 180.74 L 244.33 181 L 243.11 181 L 246.79 180.06 L 248.1 180.06 L 251.73 181 M 250.3 181"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 244.4 183 L 244.4 182.06 L 247.35 182.06 Q 249.31 182.06 250.17 182.12 Q 251.03 182.17 251.03 182.31 Q 251.03 182.46 249.86 182.54 Q 248.68 182.63 246.6 182.63 L 245.92 182.63 L 245.92 183 M 244.4 183 M 245.92 182.52 L 246.54 182.52 Q 247.91 182.52 248.66 182.47 Q 249.41 182.42 249.41 182.32 Q 249.41 182.23 248.82 182.19 Q 248.24 182.16 246.87 182.16 L 245.92 182.16 M 245.92 182.52"/></g><rect x="252" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 253.68 177 L 253.68 172.22 L 255.52 172.22 L 255.52 176.49 L 261.38 176.49 L 261.38 177 M 253.68 177"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 255.74 180 L 252.23 177.61 L 253.54 177.61 L 256.42 179.57 L 259.19 177.61 L 260.35 177.61 L 256.98 180 M 255.74 180"/></g><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 257.18 182.02 Q 255.01 182.02 253.83 181.92 Q 252.65 181.82 252.65 181.64 Q 252.65 181.46 253.86 181.36 Q 255.06 181.26 257.24 181.26 Q 258.49 181.26 260.17 181.3 L 260.17 181.39 Q 258.26 181.34 257.22 181.34 Q 255.71 181.34 254.88 181.42 Q 254.05 181.5 254.05 181.64 Q 254.05 181.78 254.94 181.86 Q 255.82 181.94 257.36 181.94 Q 258.67 181.94 260.18 181.88 L 260.18 181.96 Q 258.81 182.02 257.18 182.02 M 257.18 182.02"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 252.93 183 L 252.93 182.28 L 254.35 182.28 L 256.36 182.84 L 258.42 182.28 L 259.69 182.28 L 259.69 183 L 258.73 183 L 258.73 182.42 L 256.74 182.95 L 255.75 182.95 L 253.81 182.41 L 253.81 183 M 252.93 183"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 255.98 184 L 255.98 183.36 L 252.13 183.36 L 252.13 183.28 L 261.36 183.28 L 261.36 183.36 L 257.52 183.36 L 257.52 184 M 255.98 184"/></g><rect x="261" y="180" width="9" height="8" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 262.4 181 L 262.4 179.8 L 265.68 179.8 Q 267.24 179.8 268.07 179.88 Q 268.9 179.96 268.9 180.1 Q 268.9 180.34 266.71 180.44 L 270.33 181 L 268.44 181 L 265.36 180.49 L 263.92 180.49 L 263.92 181 M 262.4 181 M 263.92 180.37 L 264.42 180.37 Q 267.32 180.37 267.32 180.12 Q 267.32 179.93 264.89 179.93 L 263.92 179.93 M 263.92 180.37"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 266.91 181.7 L 265.33 181.37 L 263.74 181.7 M 266.91 181.7 M 268.3 182 L 267.29 181.78 L 263.35 181.78 L 262.33 182 L 261.11 182 L 264.79 181.22 L 266.1 181.22 L 269.73 182 M 268.3 182"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 262.68 183 L 262.68 182.64 L 269.95 182.64 L 269.95 182.68 L 264.52 182.68 L 264.52 182.8 L 269.08 182.8 L 269.08 182.84 L 264.52 182.84 L 264.52 183 M 262.68 183"/></g><rect x="270" y="178" width="9" height="10" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 274.23 180.05 Q 272.92 180.05 270.88 179.96 L 270.88 179.69 Q 273.08 179.84 274.49 179.84 Q 275.58 179.84 276.24 179.76 Q 276.91 179.67 276.91 179.53 Q 276.91 179.42 276.47 179.34 Q 276.04 179.26 274.87 179.16 L 273.97 179.08 Q 272.31 178.94 271.63 178.81 Q 270.95 178.69 270.95 178.52 Q 270.95 178.3 272.04 178.15 Q 273.13 178.01 274.82 178.01 Q 276.32 178.01 277.99 178.08 L 277.99 178.33 Q 275.93 178.21 274.92 178.21 Q 273.96 178.21 273.34 178.29 Q 272.72 178.37 272.72 178.48 Q 272.72 178.58 273.17 178.65 Q 273.63 178.73 274.84 178.83 L 275.77 178.91 Q 277.46 179.05 278.13 179.18 Q 278.8 179.31 278.8 179.49 Q 278.8 179.74 277.55 179.89 Q 276.29 180.05 274.23 180.05 M 274.23 180.05"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 275.91 181.43 L 274.33 180.78 L 272.74 181.43 M 275.91 181.43 M 277.3 182 L 276.29 181.59 L 272.35 181.59 L 271.33 182 L 270.11 182 L 273.79 180.51 L 275.1 180.51 L 278.73 182 M 277.3 182"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 271.2 184 L 271.2 182.51 L 272.44 182.51 L 272.44 183.24 L 276.2 182.51 L 277.52 182.51 L 273.88 183.22 L 278.17 184 L 276.5 184 L 272.44 183.24 L 272.44 184 M 271.2 184"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 273.98 185 L 273.98 184.6 L 270.13 184.6 L 270.13 184.55 L 279.36 184.55 L 279.36 184.6 L 275.52 184.6 L 275.52 185 M 273.98 185"/></g><rect x="279" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 280.68 178 L 280.68 174.79 L 282.52 174.79 L 282.52 177.66 L 288.38 177.66 L 288.38 178 M 280.68 178"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 284.91 180.26 L 283.33 179.42 L 281.74 180.26 M 284.91 180.26 M 286.3 181 L 285.29 180.46 L 281.35 180.46 L 280.33 181 L 279.11 181 L 282.79 179.06 L 284.1 179.06 L 287.73 181 M 286.3 181"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 282.98 183 L 282.98 181.87 L 279.13 181.87 L 279.13 181.74 L 288.36 181.74 L 288.36 181.87 L 284.52 181.87 L 284.52 183 M 282.98 183"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 280.4 184 L 280.4 183.42 L 283.35 183.42 Q 285.31 183.42 286.17 183.45 Q 287.03 183.49 287.03 183.57 Q 287.03 183.66 285.86 183.72 Q 284.68 183.77 282.6 183.77 L 281.92 183.77 L 281.92 184 M 280.4 184 M 281.92 183.71 L 282.54 183.71 Q 283.91 183.71 284.66 183.67 Q 285.41 183.64 285.41 183.58 Q 285.41 183.52 284.82 183.5 Q 284.24 183.48 282.87 183.48 L 281.92 183.48 M 281.92 183.71"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 283.23 184.01 Q 281.92 184.01 279.88 183.99 L 279.88 183.91 Q 282.08 183.95 283.49 183.95 Q 284.58 183.95 285.24 183.93 Q 285.91 183.9 285.91 183.86 Q 285.91 183.83 285.47 183.8 Q 285.04 183.78 283.87 183.75 L 282.97 183.72 Q 281.31 183.68 280.63 183.64 Q 279.95 183.61 279.95 183.56 Q 279.95 183.49 281.04 183.45 Q 282.13 183.4 283.82 183.4 Q 285.32 183.4 286.99 183.42 L 286.99 183.5 Q 284.93 183.46 283.92 183.46 Q 282.96 183.46 282.34 183.49 Q 281.72 183.51 281.72 183.54 Q 281.72 183.57 282.17 183.6 Q 282.63 183.62 283.84 183.65 L 284.77 183.67 Q 286.46 183.72 287.13 183.75 Q 287.8 183.79 287.8 183.85 Q 287.8 183.92 286.55 183.97 Q 285.29 184.01 283.23 184.01 M 283.23 184.01"/></g><rect x="288" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 289.4 177 L 289.4 172.22 L 292.35 172.22 Q 294.31 172.22 295.17 172.51 Q 296.03 172.8 296.03 173.47 Q 296.03 174.23 294.86 174.67 Q 293.68 175.1 291.6 175.1 L 290.92 175.1 L 290.92 177 M 289.4 177 M 290.92 174.59 L 291.54 174.59 Q 292.91 174.59 293.66 174.31 Q 294.41 174.03 294.41 173.52 Q 294.41 173.09 293.82 172.91 Q 293.24 172.72 291.87 172.72 L 290.92 172.72 M 290.92 174.59"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 290.78 180 L 290.78 177.61 L 293.86 177.61 L 293.86 180 M 290.78 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 291.98 183 L 291.98 181.61 L 288.13 181.61 L 288.13 181.45 L 297.36 181.45 L 297.36 181.61 L 293.52 181.61 L 293.52 183 M 291.98 183"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 289.68 184 L 289.68 183.28 L 291.52 183.28 L 291.52 183.92 L 297.38 183.92 L 297.38 184 M 289.68 184"/></g><rect x="297" y="178" width="9" height="10" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 301.23 180.05 Q 299.92 180.05 297.88 179.96 L 297.88 179.69 Q 300.08 179.84 301.49 179.84 Q 302.58 179.84 303.24 179.76 Q 303.91 179.67 303.91 179.53 Q 303.91 179.42 303.47 179.34 Q 303.04 179.26 301.87 179.16 L 300.97 179.08 Q 299.31 178.94 298.63 178.81 Q 297.95 178.69 297.95 178.52 Q 297.95 178.3 299.04 178.15 Q 300.13 178.01 301.82 178.01 Q 303.32 178.01 304.99 178.08 L 304.99 178.33 Q 302.93 178.21 301.92 178.21 Q 300.96 178.21 300.34 178.29 Q 299.72 178.37 299.72 178.48 Q 299.72 178.58 300.17 178.65 Q 300.63 178.73 301.84 178.83 L 302.77 178.91 Q 304.46 179.05 305.13 179.18 Q 305.8 179.31 305.8 179.49 Q 305.8 179.74 304.55 179.89 Q 303.29 180.05 301.23 180.05 M 301.23 180.05"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 298.68 181 L 298.68 180.03 L 305.95 180.03 L 305.95 180.13 L 300.52 180.13 L 300.52 180.46 L 305.08 180.46 L 305.08 180.56 L 300.52 180.56 L 300.52 181 M 298.68 181"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 298.4 182 L 298.4 181.03 L 301.35 181.03 Q 303.31 181.03 304.17 181.09 Q 305.03 181.15 305.03 181.28 Q 305.03 181.44 303.86 181.53 Q 302.68 181.61 300.6 181.61 L 299.92 181.61 L 299.92 182 M 298.4 182 M 299.92 181.51 L 300.54 181.51 Q 301.91 181.51 302.66 181.45 Q 303.41 181.4 303.41 181.29 Q 303.41 181.21 302.82 181.17 Q 302.24 181.13 300.87 181.13 L 299.92 181.13 M 299.92 181.51"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 300.98 184 L 300.98 183.13 L 297.13 183.13 L 297.13 183.03 L 306.36 183.03 L 306.36 183.13 L 302.52 183.13 L 302.52 184 M 300.98 184"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 298.2 184 L 298.2 183.55 L 299.44 183.55 L 299.44 183.77 L 303.2 183.55 L 304.52 183.55 L 300.88 183.77 L 305.17 184 L 303.5 184 L 299.44 183.77 L 299.44 184 M 298.2 184"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 298.68 185 L 298.68 184.55 L 300.52 184.55 L 300.52 184.95 L 306.38 184.95 L 306.38 185 M 298.68 185"/></g><rect x="306" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 311.91 176.77 L 310.33 175.39 L 308.74 176.77 M 311.91 176.77 M 313.3 178 L 312.29 177.11 L 308.35 177.11 L 307.33 178 L 306.11 178 L 309.79 174.79 L 311.1 174.79 L 314.73 178 M 313.3 178"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 307.2 182 L 307.2 178.79 L 308.49 178.79 L 313.17 181.27 L 313.17 178.79 L 314.3 178.79 L 314.3 182 L 313.01 182 L 308.33 179.52 L 308.33 182 M 307.2 182"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 307.4 184 L 307.4 183.42 L 310.68 183.42 Q 312.24 183.42 313.07 183.45 Q 313.9 183.49 313.9 183.56 Q 313.9 183.68 311.71 183.73 L 315.33 184 L 313.44 184 L 310.36 183.75 L 308.92 183.75 L 308.92 184 M 307.4 184 M 308.92 183.69 L 309.42 183.69 Q 312.32 183.69 312.32 183.57 Q 312.32 183.48 309.89 183.48 L 308.92 183.48 M 308.92 183.69"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 309.98 184 L 309.98 183.48 L 306.13 183.48 L 306.13 183.42 L 315.36 183.42 L 315.36 183.48 L 311.52 183.48 L 311.52 184 M 309.98 184"/></g><rect x="315" y="178" width="9" height="10" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 318.74 180 L 315.23 178.06 L 316.54 178.06 L 319.42 179.65 L 322.19 178.06 L 323.35 178.06 L 319.98 180 M 318.74 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 316.2 182 L 316.2 180.51 L 317.49 180.51 L 322.17 181.66 L 322.17 180.51 L 323.3 180.51 L 323.3 182 L 322.01 182 L 317.33 180.85 L 317.33 182 M 316.2 182"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 318.98 183 L 318.98 182.13 L 315.13 182.13 L 315.13 182.03 L 324.36 182.03 L 324.36 182.13 L 320.52 182.13 L 320.52 183 M 318.98 183"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 320.91 183.83 L 319.33 183.64 L 317.74 183.83 M 320.91 183.83 M 322.3 184 L 321.29 183.88 L 317.35 183.88 L 316.33 184 L 315.11 184 L 318.79 183.55 L 320.1 183.55 L 323.73 184 M 322.3 184"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 316.68 184 L 316.68 183.55 L 323.95 183.55 L 323.95 183.6 L 318.52 183.6 L 318.52 183.75 L 323.08 183.75 L 323.08 183.8 L 318.52 183.8 L 318.52 184 M 316.68 184"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 316.68 185 L 316.68 184.55 L 318.52 184.55 L 318.52 184.95 L 324.38 184.95 L 324.38 185 M 316.68 185"/></g><rect x="324" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 332.18 177.91 Q 330.49 178.08 329.24 178.08 Q 327.02 178.08 325.84 177.64 Q 324.65 177.21 324.65 176.4 Q 324.65 175.6 325.85 175.16 Q 327.05 174.71 329.22 174.71 Q 330.64 174.71 332.17 174.86 L 332.17 175.28 Q 330.25 175.05 329.22 175.05 Q 327.72 175.05 326.88 175.41 Q 326.05 175.76 326.05 176.4 Q 326.05 177.04 326.94 177.39 Q 327.84 177.74 329.44 177.74 Q 330.1 177.74 330.87 177.66 L 330.87 176.62 L 332.18 176.62 M 332.18 177.91"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 327.98 181 L 327.98 179.26 L 324.13 179.26 L 324.13 179.06 L 333.36 179.06 L 333.36 179.26 L 329.52 179.26 L 329.52 181 M 327.98 181"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 325.2 183 L 325.2 181.74 L 326.44 181.74 L 326.44 182.36 L 330.2 181.74 L 331.52 181.74 L 327.88 182.34 L 332.17 183 L 330.5 183 L 326.44 182.36 L 326.44 183 M 325.2 183"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 325.4 184 L 325.4 183.42 L 328.68 183.42 Q 330.24 183.42 331.07 183.45 Q 331.9 183.49 331.9 183.56 Q 331.9 183.68 329.71 183.73 L 333.33 184 L 331.44 184 L 328.36 183.75 L 326.92 183.75 L 326.92 184 M 325.4 184 M 326.92 183.69 L 327.42 183.69 Q 330.32 183.69 330.32 183.57 Q 330.32 183.48 327.89 183.48 L 326.92 183.48 M 326.92 183.69"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 328.23 184.01 Q 326.92 184.01 324.88 183.99 L 324.88 183.91 Q 327.08 183.95 328.49 183.95 Q 329.58 183.95 330.24 183.93 Q 330.91 183.9 330.91 183.86 Q 330.91 183.83 330.47 183.8 Q 330.04 183.78 328.87 183.75 L 327.97 183.72 Q 326.31 183.68 325.63 183.64 Q 324.95 183.61 324.95 183.56 Q 324.95 183.49 326.04 183.45 Q 327.13 183.4 328.82 183.4 Q 330.32 183.4 331.99 183.42 L 331.99 183.5 Q 329.93 183.46 328.92 183.46 Q 327.96 183.46 327.34 183.49 Q 326.72 183.51 326.72 183.54 Q 326.72 183.57 327.17 183.6 Q 327.63 183.62 328.84 183.65 L 329.77 183.67 Q 331.46 183.72 332.13 183.75 Q 332.8 183.79 332.8 183.85 Q 332.8 183.92 331.55 183.97 Q 330.29 184.01 328.23 184.01 M 328.23 184.01"/></g><rect x="333" y="180" width="9" height="8" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 334.68 181 L 334.68 179.8 L 341.95 179.8 L 341.95 179.93 L 336.52 179.93 L 336.52 180.31 L 341.07 180.31 L 341.07 180.44 L 336.52 180.44 L 336.52 180.87 L 342.33 180.87 L 342.33 181 M 334.68 181"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 341.27 182.24 Q 339.35 182.15 338.05 182.02 Q 337.54 182.03 337.26 182.03 Q 335.62 182.03 334.6 181.86 Q 333.57 181.68 333.57 181.4 Q 333.57 181.12 334.61 180.95 Q 335.64 180.77 337.37 180.77 Q 339.11 180.77 340.14 180.95 Q 341.17 181.12 341.17 181.4 Q 341.17 181.82 339.09 181.97 Q 340.49 182.07 342 182.1 M 341.27 182.24 M 337.34 181.9 Q 338.59 181.9 339.27 181.77 Q 339.95 181.64 339.95 181.4 Q 339.95 181.17 339.27 181.03 Q 338.59 180.9 337.37 180.9 Q 336.16 180.9 335.48 181.03 Q 334.8 181.17 334.8 181.4 Q 334.8 181.63 335.47 181.77 Q 336.15 181.9 337.34 181.9 M 337.34 181.9"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 334.4 184 L 334.4 183.22 L 337.68 183.22 Q 339.24 183.22 340.07 183.27 Q 340.9 183.32 340.9 183.42 Q 340.9 183.57 338.71 183.64 L 342.33 184 L 340.44 184 L 337.36 183.67 L 335.92 183.67 L 335.92 184 M 334.4 184 M 335.92 183.59 L 336.42 183.59 Q 339.32 183.59 339.32 183.43 Q 339.32 183.31 336.89 183.31 L 335.92 183.31 M 335.92 183.59"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 336.74 185 L 333.23 184.22 L 334.54 184.22 L 337.42 184.86 L 340.19 184.22 L 341.35 184.22 L 337.98 185 M 336.74 185"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 338.91 184.86 L 337.33 184.71 L 335.74 184.86 M 338.91 184.86 M 340.3 185 L 339.29 184.9 L 335.35 184.9 L 334.33 185 L 333.11 185 L 336.79 184.64 L 338.1 184.64 L 341.73 185 M 340.3 185"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 334.2 186 L 334.2 185.64 L 335.49 185.64 L 340.17 185.92 L 340.17 185.64 L 341.3 185.64 L 341.3 186 L 340.01 186 L 335.33 185.72 L 335.33 186 M 334.2 186"/></g><rect x="342" y="186" width="9" height="2" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 343.68 186 L 343.68 185.91 L 350.95 185.91 L 350.95 185.92 L 345.52 185.92 L 345.52 185.95 L 350.08 185.95 L 350.08 185.96 L 345.52 185.96 L 345.52 186 M 343.68 186"/></g><rect x="351" y="186" width="9" height="2" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 352.4 186 L 352.4 185.91 L 355.35 185.91 Q 357.31 185.91 358.17 185.92 Q 359.03 185.92 359.03 185.93 Q 359.03 185.95 357.86 185.96 Q 356.68 185.96 354.6 185.96 L 353.92 185.96 L 353.92 186 M 352.4 186 M 353.92 185.95 L 354.54 185.95 Q 355.91 185.95 356.66 185.95 Q 357.41 185.94 357.41 185.93 Q 357.41 185.93 356.82 185.92 Q 356.24 185.92 354.87 185.92 L 353.92 185.92 M 353.92 185.95"/></g><rect x="360" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 365.91 176.77 L 364.33 175.39 L 362.74 176.77 M 365.91 176.77 M 367.3 178 L 366.29 177.11 L 362.35 177.11 L 361.33 178 L 360.11 178 L 363.79 174.79 L 365.1 174.79 L 368.73 178 M 367.3 178"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 364.23 182.08 Q 362.92 182.08 360.88 181.94 L 360.88 181.49 Q 363.08 181.74 364.49 181.74 Q 365.58 181.74 366.24 181.6 Q 366.91 181.46 366.91 181.23 Q 366.91 181.04 366.47 180.91 Q 366.04 180.78 364.87 180.61 L 363.97 180.49 Q 362.31 180.25 361.63 180.04 Q 360.95 179.84 360.95 179.56 Q 360.95 179.19 362.04 178.95 Q 363.13 178.71 364.82 178.71 Q 366.32 178.71 367.99 178.84 L 367.99 179.25 Q 365.93 179.05 364.92 179.05 Q 363.96 179.05 363.34 179.18 Q 362.72 179.3 362.72 179.5 Q 362.72 179.66 363.17 179.78 Q 363.63 179.9 364.84 180.07 L 365.77 180.2 Q 367.46 180.44 368.13 180.65 Q 368.8 180.86 368.8 181.15 Q 368.8 181.57 367.55 181.83 Q 366.29 182.08 364.23 182.08 M 364.23 182.08"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 368.18 183.97 Q 366.49 184.03 365.24 184.03 Q 363.02 184.03 361.84 183.86 Q 360.65 183.69 360.65 183.37 Q 360.65 183.05 361.85 182.88 Q 363.05 182.71 365.22 182.71 Q 366.64 182.71 368.17 182.76 L 368.17 182.93 Q 366.25 182.84 365.22 182.84 Q 363.72 182.84 362.88 182.98 Q 362.05 183.12 362.05 183.37 Q 362.05 183.62 362.94 183.76 Q 363.84 183.9 365.44 183.9 Q 366.1 183.9 366.87 183.87 L 366.87 183.45 L 368.18 183.45 M 368.18 183.97"/></g><rect x="369" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 370.68 175 L 370.68 166.68 L 372.52 166.68 L 372.52 174.12 L 378.38 174.12 L 378.38 175 M 370.68 175"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 370.68 179 L 370.68 178.06 L 377.95 178.06 L 377.95 178.16 L 372.52 178.16 L 372.52 178.47 L 377.08 178.47 L 377.08 178.57 L 372.52 178.57 L 372.52 179 M 370.68 179"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 377.18 179.97 Q 375.49 180.02 374.24 180.02 Q 372.02 180.02 370.84 179.9 Q 369.65 179.77 369.65 179.53 Q 369.65 179.29 370.85 179.16 Q 372.05 179.03 374.22 179.03 Q 375.64 179.03 377.17 179.08 L 377.17 179.2 Q 375.25 179.13 374.22 179.13 Q 372.72 179.13 371.88 179.24 Q 371.05 179.34 371.05 179.53 Q 371.05 179.72 371.94 179.82 Q 372.84 179.92 374.44 179.92 Q 375.1 179.92 375.87 179.9 L 375.87 179.59 L 377.18 179.59 M 377.18 179.97"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 371.78 181 L 371.78 180.06 L 374.86 180.06 L 374.86 181 M 371.78 181"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 372.74 182 L 369.23 181.06 L 370.54 181.06 L 373.42 181.83 L 376.19 181.06 L 377.35 181.06 L 373.98 182 M 372.74 182"/></g><rect x="378" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 379.68 175 L 379.68 164.24 L 386.95 164.24 L 386.95 165.38 L 381.52 165.38 L 381.52 168.99 L 386.08 168.99 L 386.08 170.11 L 381.52 170.11 L 381.52 175 M 379.68 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 383.91 178.59 L 382.33 178.12 L 380.74 178.59 M 383.91 178.59 M 385.3 179 L 384.29 178.7 L 380.35 178.7 L 379.33 179 L 378.11 179 L 381.79 177.92 L 383.1 177.92 L 386.73 179 M 385.3 179"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 379.68 180 L 379.68 178.92 L 381.52 178.92 L 381.52 179.89 L 387.38 179.89 L 387.38 180 M 379.68 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 378.93 182 L 378.93 180.92 L 380.35 180.92 L 382.36 181.76 L 384.42 180.92 L 385.69 180.92 L 385.69 182 L 384.73 182 L 384.73 181.12 L 382.74 181.93 L 381.75 181.93 L 379.81 181.12 L 379.81 182 M 378.93 182"/></g><rect x="387" y="159" width="9" height="29" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 395.18 174.57 Q 393.49 175.4 392.24 175.4 Q 390.02 175.4 388.84 173.25 Q 387.65 171.1 387.65 167.09 Q 387.65 163.15 388.85 160.97 Q 390.05 158.78 392.22 158.78 Q 393.64 158.78 395.17 159.5 L 395.17 161.57 Q 393.25 160.46 392.22 160.46 Q 390.72 160.46 389.88 162.2 Q 389.05 163.94 389.05 167.11 Q 389.05 170.24 389.94 171.98 Q 390.84 173.72 392.44 173.72 Q 393.1 173.72 393.87 173.32 L 393.87 168.17 L 395.18 168.17 M 395.18 174.57"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 388.2 181 L 388.2 179.7 L 389.44 179.7 L 389.44 180.34 L 393.2 179.7 L 394.52 179.7 L 390.88 180.32 L 395.17 181 L 393.5 181 L 389.44 180.34 L 389.44 181 M 388.2 181"/></g><rect x="396" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 397.68 175 L 397.68 162.17 L 399.52 162.17 L 399.52 173.64 L 405.38 173.64 L 405.38 175 M 397.68 175"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 397.4 180 L 397.4 178.83 L 400.35 178.83 Q 402.31 178.83 403.17 178.91 Q 404.03 178.98 404.03 179.14 Q 404.03 179.33 402.86 179.43 Q 401.68 179.54 399.6 179.54 L 398.92 179.54 L 398.92 180 M 397.4 180 M 398.92 179.41 L 399.54 179.41 Q 400.91 179.41 401.66 179.34 Q 402.41 179.28 402.41 179.15 Q 402.41 179.05 401.82 179 Q 401.24 178.96 399.87 178.96 L 398.92 178.96 M 398.92 179.41"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 397.4 181 L 397.4 179.83 L 400.68 179.83 Q 402.24 179.83 403.07 179.91 Q 403.9 179.98 403.9 180.12 Q 403.9 180.36 401.71 180.45 L 405.33 181 L 403.44 181 L 400.36 180.51 L 398.92 180.51 L 398.92 181 M 397.4 181 M 398.92 180.38 L 399.42 180.38 Q 402.32 180.38 402.32 180.14 Q 402.32 179.96 399.89 179.96 L 398.92 179.96 M 398.92 180.38"/></g><rect x="405" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 406.2 175 L 406.2 162.17 L 407.44 162.17 L 407.44 168.48 L 411.2 162.17 L 412.52 162.17 L 408.88 168.29 L 413.17 175 L 411.5 175 L 407.44 168.5 L 407.44 175 M 406.2 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 406.68 180 L 406.68 178.83 L 408.52 178.83 L 408.52 179.88 L 414.38 179.88 L 414.38 180 M 406.68 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 409.23 181.03 Q 407.92 181.03 405.88 180.98 L 405.88 180.81 Q 408.08 180.91 409.49 180.91 Q 410.58 180.91 411.24 180.85 Q 411.91 180.8 411.91 180.72 Q 411.91 180.65 411.47 180.6 Q 411.04 180.55 409.87 180.5 L 408.97 180.45 Q 407.31 180.36 406.63 180.29 Q 405.95 180.21 405.95 180.11 Q 405.95 179.98 407.04 179.89 Q 408.13 179.8 409.82 179.8 Q 411.32 179.8 412.99 179.85 L 412.99 180 Q 410.93 179.93 409.92 179.93 Q 408.96 179.93 408.34 179.97 Q 407.72 180.02 407.72 180.09 Q 407.72 180.15 408.17 180.19 Q 408.63 180.24 409.84 180.3 L 410.77 180.35 Q 412.46 180.43 413.13 180.51 Q 413.8 180.59 413.8 180.69 Q 413.8 180.84 412.55 180.94 Q 411.29 181.03 409.23 181.03 M 409.23 181.03"/></g><rect x="414" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 418.23 175.21 Q 416.92 175.21 414.88 174.84 L 414.88 173.67 Q 417.08 174.33 418.49 174.33 Q 419.58 174.33 420.24 173.96 Q 420.91 173.59 420.91 173 Q 420.91 172.51 420.47 172.17 Q 420.04 171.82 418.87 171.4 L 417.97 171.07 Q 416.31 170.46 415.63 169.93 Q 414.95 169.39 414.95 168.68 Q 414.95 167.71 416.04 167.09 Q 417.13 166.47 418.82 166.47 Q 420.32 166.47 421.99 166.79 L 421.99 167.87 Q 419.93 167.36 418.92 167.36 Q 417.96 167.36 417.34 167.68 Q 416.72 168.01 416.72 168.5 Q 416.72 168.92 417.17 169.24 Q 417.63 169.56 418.84 170 L 419.77 170.34 Q 421.46 170.95 422.13 171.5 Q 422.8 172.04 422.8 172.81 Q 422.8 173.89 421.55 174.55 Q 420.29 175.21 418.23 175.21 M 418.23 175.21"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 419.91 179.22 L 418.33 178.34 L 416.74 179.22 M 419.91 179.22 M 421.3 180 L 420.29 179.43 L 416.35 179.43 L 415.33 180 L 414.11 180 L 417.79 177.96 L 419.1 177.96 L 422.73 180 M 421.3 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 417.98 182 L 417.98 180.18 L 414.13 180.18 L 414.13 179.96 L 423.36 179.96 L 423.36 180.18 L 419.52 180.18 L 419.52 182 M 417.98 182"/></g><rect x="423" y="186" width="9" height="2" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 426.74 186 L 423.23 185.91 L 424.54 185.91 L 427.42 185.98 L 430.19 185.91 L 431.35 185.91 L 427.98 186 M 426.74 186"/></g><rect x="432" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 436.23 177.12 Q 434.92 177.12 432.88 176.91 L 432.88 176.24 Q 435.08 176.61 436.49 176.61 Q 437.58 176.61 438.24 176.4 Q 438.91 176.19 438.91 175.85 Q 438.91 175.57 438.47 175.37 Q 438.04 175.17 436.87 174.93 L 435.97 174.74 Q 434.31 174.39 433.63 174.08 Q 432.95 173.77 432.95 173.36 Q 432.95 172.81 434.04 172.45 Q 435.13 172.1 436.82 172.1 Q 438.32 172.1 439.99 172.28 L 439.99 172.9 Q 437.93 172.6 436.92 172.6 Q 435.96 172.6 435.34 172.79 Q 434.72 172.98 434.72 173.26 Q 434.72 173.5 435.17 173.69 Q 435.63 173.87 436.84 174.13 L 437.77 174.32 Q 439.46 174.67 440.13 174.99 Q 440.8 175.3 440.8 175.74 Q 440.8 176.36 439.55 176.74 Q 438.29 177.12 436.23 177.12 M 436.23 177.12"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 440.18 180.92 Q 438.49 181.08 437.24 181.08 Q 435.02 181.08 433.84 180.66 Q 432.65 180.23 432.65 179.45 Q 432.65 178.67 433.85 178.24 Q 435.05 177.81 437.22 177.81 Q 438.64 177.81 440.17 177.95 L 440.17 178.36 Q 438.25 178.14 437.22 178.14 Q 435.72 178.14 434.88 178.49 Q 434.05 178.83 434.05 179.45 Q 434.05 180.07 434.94 180.41 Q 435.84 180.75 437.44 180.75 Q 438.1 180.75 438.87 180.67 L 438.87 179.66 L 440.18 179.66 M 440.18 180.92"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 437.91 183.41 L 436.33 182.74 L 434.74 183.41 M 437.91 183.41 M 439.3 184 L 438.29 183.57 L 434.35 183.57 L 433.33 184 L 432.11 184 L 435.79 182.45 L 437.1 182.45 L 440.73 184 M 439.3 184"/></g><rect x="441" y="178" width="9" height="10" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 444.98 180 L 444.98 178.26 L 441.13 178.26 L 441.13 178.06 L 450.36 178.06 L 450.36 178.26 L 446.52 178.26 L 446.52 180 M 444.98 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 445.23 181.02 Q 443.92 181.02 441.88 180.98 L 441.88 180.85 Q 444.08 180.92 445.49 180.92 Q 446.58 180.92 447.24 180.88 Q 447.91 180.84 447.91 180.77 Q 447.91 180.71 447.47 180.67 Q 447.04 180.63 445.87 180.58 L 444.97 180.54 Q 443.31 180.47 442.63 180.41 Q 441.95 180.34 441.95 180.26 Q 441.95 180.15 443.04 180.08 Q 444.13 180 445.82 180 Q 447.32 180 448.99 180.04 L 448.99 180.17 Q 446.93 180.11 445.92 180.11 Q 444.96 180.11 444.34 180.15 Q 443.72 180.18 443.72 180.24 Q 443.72 180.29 444.17 180.33 Q 444.63 180.36 445.84 180.42 L 446.77 180.46 Q 448.46 180.53 449.13 180.59 Q 449.8 180.65 449.8 180.74 Q 449.8 180.87 448.55 180.95 Q 447.29 181.02 445.23 181.02 M 445.23 181.02"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 446.91 181.83 L 445.33 181.64 L 443.74 181.83 M 446.91 181.83 M 448.3 182 L 447.29 181.88 L 443.35 181.88 L 442.33 182 L 441.11 182 L 444.79 181.55 L 446.1 181.55 L 449.73 182 M 448.3 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 442.68 182 L 442.68 181.55 L 444.52 181.55 L 444.52 181.95 L 450.38 181.95 L 450.38 182 M 442.68 182"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 442.4 183 L 442.4 182.55 L 445.35 182.55 Q 447.31 182.55 448.17 182.58 Q 449.03 182.61 449.03 182.67 Q 449.03 182.74 447.86 182.78 Q 446.68 182.82 444.6 182.82 L 443.92 182.82 L 443.92 183 M 442.4 183 M 443.92 182.77 L 444.54 182.77 Q 445.91 182.77 446.66 182.75 Q 447.41 182.72 447.41 182.67 Q 447.41 182.63 446.82 182.62 Q 446.24 182.6 444.87 182.6 L 443.92 182.6 M 443.92 182.77"/></g><rect x="450" y="180" width="9" height="8" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 455.91 180.54 L 454.33 180.03 L 452.74 180.54 M 455.91 180.54 M 457.3 181 L 456.29 180.67 L 452.35 180.67 L 451.33 181 L 450.11 181 L 453.79 179.8 L 455.1 179.8 L 458.73 181 M 457.3 181"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 451.2 182 L 451.2 181.22 L 452.44 181.22 L 452.44 181.61 L 456.2 181.22 L 457.52 181.22 L 453.88 181.59 L 458.17 182 L 456.5 182 L 452.44 181.61 L 452.44 182 M 451.2 182"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 451.4 183 L 451.4 182.22 L 454.68 182.22 Q 456.24 182.22 457.07 182.27 Q 457.9 182.32 457.9 182.42 Q 457.9 182.57 455.71 182.64 L 459.33 183 L 457.44 183 L 454.36 182.67 L 452.92 182.67 L 452.92 183 M 451.4 183 M 452.92 182.59 L 453.42 182.59 Q 456.32 182.59 456.32 182.43 Q 456.32 182.31 453.89 182.31 L 452.92 182.31 M 452.92 182.59"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 450.93 184 L 450.93 183.64 L 452.35 183.64 L 454.36 183.92 L 456.42 183.64 L 457.69 183.64 L 457.69 184 L 456.73 184 L 456.73 183.71 L 454.74 183.98 L 453.75 183.98 L 451.81 183.71 L 451.81 184 M 450.93 184"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 454.23 184.01 Q 452.92 184.01 450.88 183.99 L 450.88 183.94 Q 453.08 183.97 454.49 183.97 Q 455.58 183.97 456.24 183.96 Q 456.91 183.94 456.91 183.91 Q 456.91 183.89 456.47 183.88 Q 456.04 183.86 454.87 183.84 L 453.97 183.83 Q 452.31 183.8 451.63 183.78 Q 450.95 183.76 450.95 183.73 Q 450.95 183.69 452.04 183.66 Q 453.13 183.63 454.82 183.63 Q 456.32 183.63 457.99 183.65 L 457.99 183.69 Q 455.93 183.67 454.92 183.67 Q 453.96 183.67 453.34 183.68 Q 452.72 183.7 452.72 183.72 Q 452.72 183.74 453.17 183.75 Q 453.63 183.77 454.84 183.78 L 455.77 183.8 Q 457.46 183.83 458.13 183.85 Q 458.8 183.87 458.8 183.91 Q 458.8 183.95 457.55 183.98 Q 456.29 184.01 454.23 184.01 M 454.23 184.01"/></g><rect x="459" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 460.4 175 L 460.4 162.17 L 463.68 162.17 Q 465.24 162.17 466.07 162.99 Q 466.9 163.8 466.9 165.35 Q 466.9 167.92 464.71 168.99 L 468.33 175 L 466.44 175 L 463.36 169.57 L 461.92 169.57 L 461.92 175 M 460.4 175 M 461.92 168.21 L 462.42 168.21 Q 465.32 168.21 465.32 165.52 Q 465.32 163.53 462.89 163.53 L 461.92 163.53 M 461.92 168.21"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 460.2 180 L 460.2 178.83 L 461.49 178.83 L 466.17 179.73 L 466.17 178.83 L 467.3 178.83 L 467.3 180 L 466.01 180 L 461.33 179.1 L 461.33 180 M 460.2 180"/></g><rect x="468" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 476.18 176.87 Q 474.49 177.12 473.24 177.12 Q 471.02 177.12 469.84 176.47 Q 468.65 175.82 468.65 174.61 Q 468.65 173.42 469.85 172.76 Q 471.05 172.1 473.22 172.1 Q 474.64 172.1 476.17 172.31 L 476.17 172.94 Q 474.25 172.6 473.22 172.6 Q 471.72 172.6 470.88 173.13 Q 470.05 173.66 470.05 174.61 Q 470.05 175.56 470.94 176.09 Q 471.84 176.61 473.44 176.61 Q 474.1 176.61 474.87 176.49 L 474.87 174.93 L 476.18 174.93 M 476.18 176.87"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 469.2 180 L 469.2 178.45 L 470.49 178.45 L 475.17 179.65 L 475.17 178.45 L 476.3 178.45 L 476.3 180 L 475.01 180 L 470.33 178.8 L 470.33 180 M 469.2 180"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 469.4 181 L 469.4 180.28 L 472.68 180.28 Q 474.24 180.28 475.07 180.33 Q 475.9 180.37 475.9 180.46 Q 475.9 180.6 473.71 180.66 L 477.33 181 L 475.44 181 L 472.36 180.7 L 470.92 180.7 L 470.92 181 M 469.4 181 M 470.92 180.62 L 471.42 180.62 Q 474.32 180.62 474.32 180.47 Q 474.32 180.36 471.89 180.36 L 470.92 180.36 M 470.92 180.62"/></g><rect x="477" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 485.18 174.78 Q 483.49 175.21 482.24 175.21 Q 480.02 175.21 478.84 174.08 Q 477.65 172.95 477.65 170.84 Q 477.65 168.77 478.85 167.62 Q 480.05 166.47 482.22 166.47 Q 483.64 166.47 485.17 166.85 L 485.17 167.94 Q 483.25 167.36 482.22 167.36 Q 480.72 167.36 479.88 168.27 Q 479.05 169.19 479.05 170.85 Q 479.05 172.5 479.94 173.41 Q 480.84 174.33 482.44 174.33 Q 483.1 174.33 483.87 174.12 L 483.87 171.41 L 485.18 171.41 M 485.18 174.78"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 478.2 180 L 478.2 177.96 L 481.29 177.96 Q 482.67 177.96 483.52 178.03 Q 484.37 178.09 484.99 178.26 Q 485.98 178.51 485.98 178.93 Q 485.98 179.44 484.75 179.72 Q 483.53 180 481.31 180 M 478.2 180 M 479.52 179.78 L 481.21 179.78 Q 483.01 179.78 483.77 179.57 Q 484.58 179.34 484.58 178.96 Q 484.58 178.6 483.78 178.39 Q 483.3 178.27 482.62 178.22 Q 481.95 178.18 480.6 178.18 L 479.52 178.18 M 479.52 179.78"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 485.27 181.19 Q 483.35 181.12 482.05 181.02 Q 481.54 181.02 481.26 181.02 Q 479.62 181.02 478.6 180.89 Q 477.57 180.75 477.57 180.53 Q 477.57 180.3 478.61 180.17 Q 479.64 180.03 481.37 180.03 Q 483.11 180.03 484.14 180.17 Q 485.17 180.3 485.17 180.53 Q 485.17 180.86 483.09 180.98 Q 484.49 181.05 486 181.08 M 485.27 181.19 M 481.34 180.92 Q 482.59 180.92 483.27 180.82 Q 483.95 180.72 483.95 180.53 Q 483.95 180.34 483.27 180.24 Q 482.59 180.13 481.37 180.13 Q 480.16 180.13 479.48 180.24 Q 478.8 180.34 478.8 180.53 Q 478.8 180.71 479.47 180.82 Q 480.15 180.92 481.34 180.92 M 481.34 180.92"/></g><rect x="486" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 487.4 176 L 487.4 169.81 L 490.68 169.81 Q 492.24 169.81 493.07 170.2 Q 493.9 170.6 493.9 171.35 Q 493.9 172.58 491.71 173.1 L 495.33 176 L 493.44 176 L 490.36 173.38 L 488.92 173.38 L 488.92 176 M 487.4 176 M 488.92 172.73 L 489.42 172.73 Q 492.32 172.73 492.32 171.43 Q 492.32 170.47 489.89 170.47 L 488.92 170.47 M 488.92 172.73"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 487.68 181 L 487.68 178.31 L 489.52 178.31 L 489.52 180.71 L 495.38 180.71 L 495.38 181 M 487.68 181"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 494.18 181.98 Q 492.49 182.02 491.24 182.02 Q 489.02 182.02 487.84 181.91 Q 486.65 181.8 486.65 181.6 Q 486.65 181.4 487.85 181.28 Q 489.05 181.17 491.22 181.17 Q 492.64 181.17 494.17 181.21 L 494.17 181.31 Q 492.25 181.26 491.22 181.26 Q 489.72 181.26 488.88 181.35 Q 488.05 181.44 488.05 181.6 Q 488.05 181.76 488.94 181.85 Q 489.84 181.93 491.44 181.93 Q 492.1 181.93 492.87 181.91 L 492.87 181.65 L 494.18 181.65 M 494.18 181.98"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 487.2 183 L 487.2 182.19 L 488.44 182.19 L 488.44 182.59 L 492.2 182.19 L 493.52 182.19 L 489.88 182.58 L 494.17 183 L 492.5 183 L 488.44 182.59 L 488.44 183 M 487.2 183"/></g><rect x="495" y="175" width="9" height="13" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 498.74 178 L 495.23 174.79 L 496.54 174.79 L 499.42 177.42 L 502.19 174.79 L 503.35 174.79 L 499.98 178 M 498.74 178"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 500.91 179.52 L 499.33 178.97 L 497.74 179.52 M 500.91 179.52 M 502.3 180 L 501.29 179.65 L 497.35 179.65 L 496.33 180 L 495.11 180 L 498.79 178.74 L 500.1 178.74 L 503.73 180 M 502.3 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 497.78 182 L 497.78 180.74 L 500.86 180.74 L 500.86 182 M 497.78 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 496.68 183 L 496.68 181.74 L 498.52 181.74 L 498.52 182.87 L 504.38 182.87 L 504.38 183 M 496.68 183"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 496.4 184 L 496.4 183.42 L 499.68 183.42 Q 501.24 183.42 502.07 183.45 Q 502.9 183.49 502.9 183.56 Q 502.9 183.68 500.71 183.73 L 504.33 184 L 502.44 184 L 499.36 183.75 L 497.92 183.75 L 497.92 184 M 496.4 184 M 497.92 183.69 L 498.42 183.69 Q 501.32 183.69 501.32 183.57 Q 501.32 183.48 498.89 183.48 L 497.92 183.48 M 497.92 183.69"/></g><rect x="504" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 507.98 176 L 507.98 170.47 L 504.13 170.47 L 504.13 169.81 L 513.36 169.81 L 513.36 170.47 L 509.52 170.47 L 509.52 176 M 507.98 176"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 505.4 180 L 505.4 178.25 L 508.68 178.25 Q 510.24 178.25 511.07 178.36 Q 511.9 178.47 511.9 178.68 Q 511.9 179.03 509.71 179.18 L 513.33 180 L 511.44 180 L 508.36 179.26 L 506.92 179.26 L 506.92 180 M 505.4 180 M 506.92 179.07 L 507.42 179.07 Q 510.32 179.07 510.32 178.71 Q 510.32 178.44 507.89 178.44 L 506.92 178.44 M 506.92 179.07"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 507.74 182 L 504.23 180.25 L 505.54 180.25 L 508.42 181.68 L 511.19 180.25 L 512.35 180.25 L 508.98 182 M 507.74 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 504.93 183 L 504.93 182.19 L 506.35 182.19 L 508.36 182.82 L 510.42 182.19 L 511.69 182.19 L 511.69 183 L 510.73 183 L 510.73 182.34 L 508.74 182.95 L 507.75 182.95 L 505.81 182.34 L 505.81 183 M 504.93 183"/></g><rect x="513" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 518.91 171.82 L 517.33 168.23 L 515.74 171.82 M 518.91 171.82 M 520.3 175 L 519.29 172.7 L 515.35 172.7 L 514.33 175 L 513.11 175 L 516.79 166.68 L 518.1 166.68 L 521.73 175 M 520.3 175"/></g><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 518.18 181.08 Q 516.01 181.08 514.83 180.65 Q 513.65 180.22 513.65 179.43 Q 513.65 178.65 514.86 178.21 Q 516.06 177.78 518.24 177.78 Q 519.49 177.78 521.17 177.92 L 521.17 178.34 Q 519.26 178.12 518.22 178.12 Q 516.71 178.12 515.88 178.46 Q 515.05 178.81 515.05 179.44 Q 515.05 180.04 515.94 180.38 Q 516.82 180.73 518.36 180.73 Q 519.67 180.73 521.18 180.46 L 521.18 180.84 Q 519.81 181.08 518.18 181.08 M 518.18 181.08"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 516.98 183 L 516.98 182.16 L 513.13 182.16 L 513.13 182.06 L 522.36 182.06 L 522.36 182.16 L 518.52 182.16 L 518.52 183 M 516.98 183"/></g><rect x="522" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 522.93 175 L 522.93 162.17 L 524.35 162.17 L 526.36 172.1 L 528.42 162.17 L 529.69 162.17 L 529.69 175 L 528.73 175 L 528.73 164.57 L 526.74 174.14 L 525.75 174.14 L 523.81 164.54 L 523.81 175 M 522.93 175"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 530.27 181.51 Q 528.35 181.31 527.05 181.05 Q 526.54 181.06 526.26 181.06 Q 524.62 181.06 523.6 180.69 Q 522.57 180.33 522.57 179.74 Q 522.57 179.13 523.61 178.77 Q 524.64 178.41 526.37 178.41 Q 528.11 178.41 529.14 178.77 Q 530.17 179.13 530.17 179.74 Q 530.17 180.61 528.09 180.95 Q 529.49 181.14 531 181.22 M 530.27 181.51 M 526.34 180.8 Q 527.59 180.8 528.27 180.52 Q 528.95 180.24 528.95 179.73 Q 528.95 179.24 528.27 178.96 Q 527.59 178.68 526.37 178.68 Q 525.16 178.68 524.48 178.96 Q 523.8 179.24 523.8 179.73 Q 523.8 180.23 524.47 180.51 Q 525.15 180.8 526.34 180.8 M 526.34 180.8"/></g><rect x="531" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 536.91 167.57 L 535.33 154.68 L 533.74 167.57 M 536.91 167.57 M 538.3 179 L 537.29 170.72 L 533.35 170.72 L 532.33 179 L 531.11 179 L 534.79 149.1 L 536.1 149.1 L 539.73 179 M 538.3 179"/></g><rect x="540" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 543.98 175 L 543.98 167.56 L 540.13 167.56 L 540.13 166.68 L 549.36 166.68 L 549.36 167.56 L 545.52 167.56 L 545.52 175 M 543.98 175"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 544.23 183.13 Q 542.92 183.13 540.88 182.9 L 540.88 182.17 Q 543.08 182.58 544.49 182.58 Q 545.58 182.58 546.24 182.35 Q 546.91 182.12 546.91 181.75 Q 546.91 181.45 546.47 181.24 Q 546.04 181.02 544.87 180.76 L 543.97 180.55 Q 542.31 180.18 541.63 179.84 Q 540.95 179.51 540.95 179.06 Q 540.95 178.46 542.04 178.08 Q 543.13 177.69 544.82 177.69 Q 546.32 177.69 547.99 177.89 L 547.99 178.56 Q 545.93 178.24 544.92 178.24 Q 543.96 178.24 543.34 178.44 Q 542.72 178.65 542.72 178.95 Q 542.72 179.21 543.17 179.41 Q 543.63 179.61 544.84 179.89 L 545.77 180.1 Q 547.46 180.48 548.13 180.82 Q 548.8 181.16 548.8 181.63 Q 548.8 182.31 547.55 182.72 Q 546.29 183.13 544.23 183.13 M 544.23 183.13"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 545.91 186.22 L 544.33 185.34 L 542.74 186.22 M 545.91 186.22 M 547.3 187 L 546.29 186.43 L 542.35 186.43 L 541.33 187 L 540.11 187 L 543.79 184.96 L 545.1 184.96 L 548.73 187 M 547.3 187"/></g><rect x="549" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 552.74 179 L 552.74 166.52 L 549.12 149.1 L 550.88 149.1 L 553.69 162.6 L 556.73 149.1 L 558.16 149.1 L 554.28 166.43 L 554.28 179 M 552.74 179"/></g><rect x="558" y="154" width="9" height="34" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 559.2 176 L 559.2 154.14 L 560.44 154.14 L 560.44 164.89 L 564.2 154.14 L 565.52 154.14 L 561.88 164.57 L 566.17 176 L 564.5 176 L 560.44 164.92 L 560.44 176 M 559.2 176"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 559.2 186 L 559.2 182.7 L 560.49 182.7 L 565.17 185.25 L 565.17 182.7 L 566.3 182.7 L 566.3 186 L 565.01 186 L 560.33 183.45 L 560.33 186 M 559.2 186"/></g><rect x="567" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 570.74 179 L 567.23 149.1 L 568.54 149.1 L 571.42 173.59 L 574.19 149.1 L 575.35 149.1 L 571.98 179 M 570.74 179"/></g><rect x="576" y="154" width="9" height="34" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 577.2 176 L 577.2 154.14 L 578.44 154.14 L 578.44 164.89 L 582.2 154.14 L 583.52 154.14 L 579.88 164.57 L 584.17 176 L 582.5 176 L 578.44 164.92 L 578.44 176 M 577.2 176"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 579.98 186 L 579.98 183.05 L 576.13 183.05 L 576.13 182.7 L 585.36 182.7 L 585.36 183.05 L 581.52 183.05 L 581.52 186 M 579.98 186"/></g><rect x="585" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 586.68 175 L 586.68 162.17 L 588.52 162.17 L 588.52 173.64 L 594.38 173.64 L 594.38 175 M 586.68 175"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 586.68 185 L 586.68 178.59 L 593.95 178.59 L 593.95 179.27 L 588.52 179.27 L 588.52 181.42 L 593.08 181.42 L 593.08 182.09 L 588.52 182.09 L 588.52 185 M 586.68 185"/></g><rect x="594" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 596.78 176 L 596.78 156.86 L 599.86 156.86 L 599.86 176 M 596.78 176"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 597.74 186 L 594.23 181.22 L 595.54 181.22 L 598.42 185.13 L 601.19 181.22 L 602.35 181.22 L 598.98 186 M 597.74 186"/></g><rect x="603" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 606.98 179 L 606.98 152.27 L 603.13 152.27 L 603.13 149.1 L 612.36 149.1 L 612.36 152.27 L 608.52 152.27 L 608.52 179 M 606.98 179"/></g><rect x="612" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 613.4 179 L 613.4 149.1 L 616.35 149.1 Q 618.31 149.1 619.17 150.93 Q 620.03 152.76 620.03 156.94 Q 620.03 161.71 618.86 164.41 Q 617.68 167.12 615.6 167.12 L 614.92 167.12 L 614.92 179 M 613.4 179 M 614.92 163.91 L 615.54 163.91 Q 616.91 163.91 617.66 162.17 Q 618.41 160.43 618.41 157.26 Q 618.41 154.58 617.82 153.42 Q 617.24 152.27 615.87 152.27 L 614.92 152.27 M 614.92 163.91"/></g><rect x="621" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 622.68 175 L 622.68 162.17 L 629.95 162.17 L 629.95 163.53 L 624.52 163.53 L 624.52 167.65 L 629.07 167.65 L 629.07 168.99 L 624.52 168.99 L 624.52 173.64 L 630.33 173.64 L 630.33 175 M 622.68 175"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 622.2 184 L 622.2 178.95 L 625.29 178.95 Q 626.67 178.95 627.52 179.11 Q 628.37 179.28 628.99 179.68 Q 629.98 180.32 629.98 181.35 Q 629.98 182.61 628.75 183.31 Q 627.53 184 625.31 184 M 622.2 184 M 623.52 183.46 L 625.21 183.46 Q 627.01 183.46 627.77 182.93 Q 628.58 182.37 628.58 181.42 Q 628.58 180.53 627.78 180.02 Q 627.3 179.71 626.62 179.6 Q 625.95 179.48 624.6 179.48 L 623.52 179.48 M 623.52 183.46"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 624.98 187 L 624.98 185.96 L 621.13 185.96 L 621.13 185.83 L 630.36 185.83 L 630.36 185.96 L 626.52 185.96 L 626.52 187 M 624.98 187"/></g><rect x="630" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 638.18 178.19 Q 636.49 179.75 635.24 179.75 Q 633.02 179.75 631.84 175.69 Q 630.65 171.63 630.65 164.05 Q 630.65 156.62 631.85 152.48 Q 633.05 148.35 635.22 148.35 Q 636.64 148.35 638.17 149.71 L 638.17 153.63 Q 636.25 151.53 635.22 151.53 Q 633.72 151.53 632.88 154.82 Q 632.05 158.11 632.05 164.09 Q 632.05 170.01 632.94 173.29 Q 633.84 176.58 635.44 176.58 Q 636.1 176.58 636.87 175.83 L 636.87 166.09 L 638.18 166.09 M 638.18 178.19"/></g><rect x="639" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 640.68 176 L 640.68 169.81 L 647.95 169.81 L 647.95 170.47 L 642.52 170.47 L 642.52 172.45 L 647.07 172.45 L 647.07 173.1 L 642.52 173.1 L 642.52 175.34 L 648.33 175.34 L 648.33 176 M 640.68 176"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 640.4 182 L 640.4 177.56 L 643.35 177.56 Q 645.31 177.56 646.17 177.83 Q 647.03 178.1 647.03 178.72 Q 647.03 179.43 645.86 179.83 Q 644.68 180.24 642.6 180.24 L 641.92 180.24 L 641.92 182 M 640.4 182 M 641.92 179.76 L 642.54 179.76 Q 643.91 179.76 644.66 179.5 Q 645.41 179.24 645.41 178.77 Q 645.41 178.37 644.82 178.2 Q 644.24 178.03 642.87 178.03 L 641.92 178.03 M 641.92 179.76"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 640.2 185 L 640.2 184.19 L 641.44 184.19 L 641.44 184.59 L 645.2 184.19 L 646.52 184.19 L 642.88 184.58 L 647.17 185 L 645.5 185 L 641.44 184.59 L 641.44 185 M 640.2 185"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 640.2 186 L 640.2 185.19 L 641.49 185.19 L 646.17 185.82 L 646.17 185.19 L 647.3 185.19 L 647.3 186 L 646.01 186 L 641.33 185.38 L 641.33 186 M 640.2 186"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 642.98 187 L 642.98 186.28 L 639.13 186.28 L 639.13 186.19 L 648.36 186.19 L 648.36 186.28 L 644.52 186.28 L 644.52 187 M 642.98 187"/></g><rect x="648" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 656.27 177.24 Q 654.35 176.77 653.05 176.11 Q 652.54 176.15 652.26 176.15 Q 650.62 176.15 649.6 175.25 Q 648.57 174.35 648.57 172.91 Q 648.57 171.43 649.61 170.54 Q 650.64 169.66 652.37 169.66 Q 654.11 169.66 655.14 170.54 Q 656.17 171.43 656.17 172.92 Q 656.17 175.05 654.09 175.87 Q 655.49 176.34 657 176.54 M 656.27 177.24 M 652.34 175.5 Q 653.59 175.5 654.27 174.82 Q 654.95 174.13 654.95 172.89 Q 654.95 171.68 654.27 171 Q 653.59 170.31 652.37 170.31 Q 651.16 170.31 650.48 171 Q 649.8 171.68 649.8 172.9 Q 649.8 174.11 650.47 174.8 Q 651.15 175.5 652.34 175.5 M 652.34 175.5"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 650.78 181 L 650.78 177.5 L 653.86 177.5 L 653.86 181 M 650.78 181"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 651.74 185 L 648.23 182.31 L 649.54 182.31 L 652.42 184.51 L 655.19 182.31 L 656.35 182.31 L 652.98 185 M 651.74 185"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 649.68 187 L 649.68 186.19 L 651.52 186.19 L 651.52 186.91 L 657.38 186.91 L 657.38 187 M 649.68 187"/></g><rect x="657" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 658.68 179 L 658.68 149.1 L 665.95 149.1 L 665.95 152.27 L 660.52 152.27 L 660.52 161.87 L 665.07 161.87 L 665.07 165 L 660.52 165 L 660.52 175.83 L 666.33 175.83 L 666.33 179 M 658.68 179"/></g><rect x="666" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 667.68 176 L 667.68 169.81 L 674.95 169.81 L 674.95 170.47 L 669.52 170.47 L 669.52 172.54 L 674.08 172.54 L 674.08 173.19 L 669.52 173.19 L 669.52 176 M 667.68 176"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 669.74 182 L 666.23 177.56 L 667.54 177.56 L 670.42 181.2 L 673.19 177.56 L 674.35 177.56 L 670.98 182 M 669.74 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 667.68 187 L 667.68 184.31 L 669.52 184.31 L 669.52 186.71 L 675.38 186.71 L 675.38 187 M 667.68 187"/></g><rect x="675" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 676.68 175 L 676.68 164.24 L 683.95 164.24 L 683.95 165.38 L 678.52 165.38 L 678.52 168.83 L 683.07 168.83 L 683.07 169.96 L 678.52 169.96 L 678.52 173.86 L 684.33 173.86 L 684.33 175 M 676.68 175"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 676.2 182 L 676.2 178.41 L 679.29 178.41 Q 680.67 178.41 681.52 178.53 Q 682.37 178.65 682.99 178.93 Q 683.98 179.38 683.98 180.12 Q 683.98 181.02 682.75 181.51 Q 681.53 182 679.31 182 M 676.2 182 M 677.52 181.62 L 679.21 181.62 Q 681.01 181.62 681.77 181.24 Q 682.58 180.84 682.58 180.17 Q 682.58 179.54 681.78 179.18 Q 681.3 178.96 680.62 178.87 Q 679.95 178.79 678.6 178.79 L 677.52 178.79 M 677.52 181.62"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 683.27 186.72 Q 681.35 186.44 680.05 186.07 Q 679.54 186.09 679.26 186.09 Q 677.62 186.09 676.6 185.57 Q 675.57 185.04 675.57 184.21 Q 675.57 183.35 676.61 182.84 Q 677.64 182.32 679.37 182.32 Q 681.11 182.32 682.14 182.84 Q 683.17 183.35 683.17 184.21 Q 683.17 185.45 681.09 185.92 Q 682.49 186.2 684 186.31 M 683.27 186.72 M 679.34 185.71 Q 680.59 185.71 681.27 185.31 Q 681.95 184.92 681.95 184.2 Q 681.95 183.5 681.27 183.1 Q 680.59 182.7 679.37 182.7 Q 678.16 182.7 677.48 183.1 Q 676.8 183.5 676.8 184.2 Q 676.8 184.9 677.47 185.31 Q 678.15 185.71 679.34 185.71 M 679.34 185.71"/></g><rect x="684" y="154" width="9" height="34" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 689.18 176.55 Q 687.01 176.55 685.83 173.56 Q 684.65 170.57 684.65 165.09 Q 684.65 159.62 685.86 156.61 Q 687.06 153.6 689.24 153.6 Q 690.49 153.6 692.17 154.56 L 692.17 157.47 Q 690.26 155.92 689.22 155.92 Q 687.71 155.92 686.88 158.32 Q 686.05 160.73 686.05 165.12 Q 686.05 169.3 686.94 171.71 Q 687.82 174.12 689.36 174.12 Q 690.67 174.12 692.18 172.22 L 692.18 174.88 Q 690.81 176.55 689.18 176.55 M 689.18 176.55"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 687.74 186 L 684.23 182.7 L 685.54 182.7 L 688.42 185.4 L 691.19 182.7 L 692.35 182.7 L 688.98 186 M 687.74 186"/></g><rect x="693" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 694.4 175 L 694.4 162.17 L 697.35 162.17 Q 699.31 162.17 700.17 162.96 Q 701.03 163.74 701.03 165.54 Q 701.03 167.58 699.86 168.74 Q 698.68 169.9 696.6 169.9 L 695.92 169.9 L 695.92 175 M 694.4 175 M 695.92 168.53 L 696.54 168.53 Q 697.91 168.53 698.66 167.78 Q 699.41 167.04 699.41 165.67 Q 699.41 164.52 698.82 164.03 Q 698.24 163.53 696.87 163.53 L 695.92 163.53 M 695.92 168.53"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 694.2 183 L 694.2 179.11 L 697.29 179.11 Q 698.67 179.11 699.52 179.24 Q 700.37 179.37 700.99 179.68 Q 701.98 180.17 701.98 180.96 Q 701.98 181.93 700.75 182.47 Q 699.53 183 697.31 183 M 694.2 183 M 695.52 182.59 L 697.21 182.59 Q 699.01 182.59 699.77 182.18 Q 700.58 181.75 700.58 181.02 Q 700.58 180.33 699.78 179.94 Q 699.3 179.7 698.62 179.61 Q 697.95 179.53 696.6 179.53 L 695.52 179.53 M 695.52 182.59"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 694.68 187 L 694.68 184.47 L 701.95 184.47 L 701.95 184.74 L 696.52 184.74 L 696.52 185.55 L 701.07 185.55 L 701.07 185.82 L 696.52 185.82 L 696.52 186.73 L 702.33 186.73 L 702.33 187 M 694.68 187"/></g><rect x="702" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 703.2 176 L 703.2 156.86 L 706.29 156.86 Q 707.67 156.86 708.52 157.5 Q 709.37 158.13 709.99 159.64 Q 710.98 162.05 710.98 165.98 Q 710.98 170.75 709.75 173.38 Q 708.53 176 706.31 176 M 703.2 176 M 704.52 173.97 L 706.21 173.97 Q 708.01 173.97 708.77 171.97 Q 709.58 169.83 709.58 166.24 Q 709.58 162.86 708.78 160.94 Q 708.3 159.76 707.62 159.33 Q 706.95 158.89 705.6 158.89 L 704.52 158.89 M 704.52 173.97"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 703.68 184 L 703.68 180.89 L 710.95 180.89 L 710.95 181.22 L 705.52 181.22 L 705.52 182.22 L 710.07 182.22 L 710.07 182.54 L 705.52 182.54 L 705.52 183.67 L 711.33 183.67 L 711.33 184 M 703.68 184"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 706.23 187.04 Q 704.92 187.04 702.88 186.97 L 702.88 186.77 Q 705.08 186.88 706.49 186.88 Q 707.58 186.88 708.24 186.82 Q 708.91 186.76 708.91 186.65 Q 708.91 186.57 708.47 186.51 Q 708.04 186.45 706.87 186.38 L 705.97 186.32 Q 704.31 186.22 703.63 186.12 Q 702.95 186.03 702.95 185.91 Q 702.95 185.74 704.04 185.64 Q 705.13 185.53 706.82 185.53 Q 708.32 185.53 709.99 185.58 L 709.99 185.77 Q 707.93 185.68 706.92 185.68 Q 705.96 185.68 705.34 185.74 Q 704.72 185.79 704.72 185.88 Q 704.72 185.95 705.17 186.01 Q 705.63 186.06 706.84 186.14 L 707.77 186.2 Q 709.46 186.3 710.13 186.4 Q 710.8 186.49 710.8 186.62 Q 710.8 186.81 709.55 186.92 Q 708.29 187.04 706.23 187.04 M 706.23 187.04"/></g><rect x="711" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 712.2 177 L 712.2 151.28 L 715.29 151.28 Q 716.67 151.28 717.52 152.13 Q 718.37 152.98 718.99 155.02 Q 719.98 158.25 719.98 163.53 Q 719.98 169.94 718.75 173.47 Q 717.53 177 715.31 177 M 712.2 177 M 713.52 174.27 L 715.21 174.27 Q 717.01 174.27 717.77 171.58 Q 718.58 168.71 718.58 163.88 Q 718.58 159.34 717.78 156.75 Q 717.3 155.17 716.62 154.59 Q 715.95 154.01 714.6 154.01 L 713.52 154.01 M 713.52 174.27"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 712.2 187 L 712.2 185.34 L 713.49 185.34 L 718.17 186.62 L 718.17 185.34 L 719.3 185.34 L 719.3 187 L 718.01 187 L 713.33 185.72 L 713.33 187 M 712.2 187"/></g><rect x="720" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 723.74 179 L 720.23 149.1 L 721.54 149.1 L 724.42 173.59 L 727.19 149.1 L 728.35 149.1 L 724.98 179 M 723.74 179"/></g><rect x="729" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 732.74 179 L 732.74 166.52 L 729.12 149.1 L 730.88 149.1 L 733.69 162.6 L 736.73 149.1 L 738.16 149.1 L 734.28 166.43 L 734.28 179 M 732.74 179"/></g><rect x="738" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 740.78 175 L 740.78 162.17 L 743.86 162.17 L 743.86 175 M 740.78 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 741.74 185 L 738.23 178.59 L 739.54 178.59 L 742.42 183.84 L 745.19 178.59 L 746.35 178.59 L 742.98 185 M 741.74 185"/></g><rect x="747" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 748.68 179 L 748.68 149.1 L 750.52 149.1 L 750.52 175.83 L 756.38 175.83 L 756.38 179 M 748.68 179"/></g><rect x="756" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 757.2 179 L 757.2 149.1 L 760.29 149.1 Q 761.67 149.1 762.52 150.09 Q 763.37 151.08 763.99 153.44 Q 764.98 157.2 764.98 163.34 Q 764.98 170.8 763.75 174.9 Q 762.53 179 760.31 179 M 757.2 179 M 758.52 175.83 L 760.21 175.83 Q 762.01 175.83 762.77 172.7 Q 763.58 169.36 763.58 163.75 Q 763.58 158.47 762.78 155.46 Q 762.3 153.63 761.62 152.95 Q 760.95 152.27 759.6 152.27 L 758.52 152.27 M 758.52 175.83"/></g><rect x="765" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 770.91 173.63 L 769.33 170.97 L 767.74 173.63 M 770.91 173.63 M 772.3 176 L 771.29 174.29 L 767.35 174.29 L 766.33 176 L 765.11 176 L 768.79 169.81 L 770.1 169.81 L 773.73 176 M 772.3 176"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 773.27 182.89 Q 771.35 182.55 770.05 182.08 Q 769.54 182.11 769.26 182.11 Q 767.62 182.11 766.6 181.46 Q 765.57 180.82 765.57 179.78 Q 765.57 178.72 766.61 178.08 Q 767.64 177.45 769.37 177.45 Q 771.11 177.45 772.14 178.09 Q 773.17 178.72 773.17 179.79 Q 773.17 181.32 771.09 181.91 Q 772.49 182.24 774 182.39 M 773.27 182.89 M 769.34 181.64 Q 770.59 181.64 771.27 181.15 Q 771.95 180.66 771.95 179.77 Q 771.95 178.9 771.27 178.41 Q 770.59 177.92 769.37 177.92 Q 768.16 177.92 767.48 178.41 Q 766.8 178.9 766.8 179.77 Q 766.8 180.64 767.47 181.14 Q 768.15 181.64 769.34 181.64 M 769.34 181.64"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 766.2 186 L 766.2 184.25 L 767.52 184.25 L 767.52 184.99 L 771.94 184.99 L 771.94 184.25 L 773.26 184.25 L 773.26 186 L 771.94 186 L 771.94 185.17 L 767.52 185.17 L 767.52 186 M 766.2 186"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 766.68 187 L 766.68 186.19 L 773.95 186.19 L 773.95 186.28 L 768.52 186.28 L 768.52 186.55 L 773.08 186.55 L 773.08 186.63 L 768.52 186.63 L 768.52 187 M 766.68 187"/></g><rect x="774" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 779.91 167.57 L 778.33 154.68 L 776.74 167.57 M 779.91 167.57 M 781.3 179 L 780.29 170.72 L 776.35 170.72 L 775.33 179 L 774.11 179 L 777.79 149.1 L 779.1 149.1 L 782.73 179 M 781.3 179"/></g><rect x="783" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 784.68 179 L 784.68 149.1 L 791.95 149.1 L 791.95 152.27 L 786.52 152.27 L 786.52 161.87 L 791.07 161.87 L 791.07 165 L 786.52 165 L 786.52 175.83 L 792.33 175.83 L 792.33 179 M 784.68 179"/></g><rect x="792" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 793.68 179 L 793.68 149.1 L 800.95 149.1 L 800.95 152.27 L 795.52 152.27 L 795.52 161.87 L 800.07 161.87 L 800.07 165 L 795.52 165 L 795.52 175.83 L 801.33 175.83 L 801.33 179 M 793.68 179"/></g><rect x="801" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 806.91 171.82 L 805.33 168.23 L 803.74 171.82 M 806.91 171.82 M 808.3 175 L 807.29 172.7 L 803.35 172.7 L 802.33 175 L 801.11 175 L 804.79 166.68 L 806.1 166.68 L 809.73 175 M 808.3 175"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 802.68 182 L 802.68 177.92 L 809.95 177.92 L 809.95 178.35 L 804.52 178.35 L 804.52 179.66 L 809.07 179.66 L 809.07 180.09 L 804.52 180.09 L 804.52 181.57 L 810.33 181.57 L 810.33 182 M 802.68 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 804.74 185 L 801.23 182.96 L 802.54 182.96 L 805.42 184.63 L 808.19 182.96 L 809.35 182.96 L 805.98 185 M 804.74 185"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 802.2 187 L 802.2 186.06 L 805.29 186.06 Q 806.67 186.06 807.52 186.09 Q 808.37 186.12 808.99 186.2 Q 809.98 186.31 809.98 186.51 Q 809.98 186.74 808.75 186.87 Q 807.53 187 805.31 187 M 802.2 187 M 803.52 186.9 L 805.21 186.9 Q 807.01 186.9 807.77 186.8 Q 808.58 186.7 808.58 186.52 Q 808.58 186.35 807.78 186.26 Q 807.3 186.2 806.62 186.18 Q 805.95 186.16 804.6 186.16 L 803.52 186.16 M 803.52 186.9"/></g><rect x="810" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 818.18 178.19 Q 816.49 179.75 815.24 179.75 Q 813.02 179.75 811.84 175.69 Q 810.65 171.63 810.65 164.05 Q 810.65 156.62 811.85 152.48 Q 813.05 148.35 815.22 148.35 Q 816.64 148.35 818.17 149.71 L 818.17 153.63 Q 816.25 151.53 815.22 151.53 Q 813.72 151.53 812.88 154.82 Q 812.05 158.11 812.05 164.09 Q 812.05 170.01 812.94 173.29 Q 813.84 176.58 815.44 176.58 Q 816.1 176.58 816.87 175.83 L 816.87 166.09 L 818.18 166.09 M 818.18 178.19"/></g><rect x="819" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 821.78 175 L 821.78 164.24 L 824.86 164.24 L 824.86 175 M 821.78 175"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 820.2 183 L 820.2 178.34 L 821.52 178.34 L 821.52 180.3 L 825.94 180.3 L 825.94 178.34 L 827.26 178.34 L 827.26 183 L 825.94 183 L 825.94 180.8 L 821.52 180.8 L 821.52 183 M 820.2 183"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 820.68 187 L 820.68 184.67 L 822.52 184.67 L 822.52 186.75 L 828.38 186.75 L 828.38 187 M 820.68 187"/></g><rect x="828" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 829.2 177 L 829.2 151.28 L 832.29 151.28 Q 833.67 151.28 834.52 152.13 Q 835.37 152.98 835.99 155.02 Q 836.98 158.25 836.98 163.53 Q 836.98 169.94 835.75 173.47 Q 834.53 177 832.31 177 M 829.2 177 M 830.52 174.27 L 832.21 174.27 Q 834.01 174.27 834.77 171.58 Q 835.58 168.71 835.58 163.88 Q 835.58 159.34 834.78 156.75 Q 834.3 155.17 833.62 154.59 Q 832.95 154.01 831.6 154.01 L 830.52 154.01 M 830.52 174.27"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 829.68 187 L 829.68 185.34 L 836.95 185.34 L 836.95 185.52 L 831.52 185.52 L 831.52 186.05 L 836.07 186.05 L 836.07 186.22 L 831.52 186.22 L 831.52 186.82 L 837.33 186.82 L 837.33 187 M 829.68 187"/></g><rect x="837" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 838.68 179 L 838.68 149.1 L 840.52 149.1 L 840.52 175.83 L 846.38 175.83 L 846.38 179 M 838.68 179"/></g><rect x="846" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 847.4 179 L 847.4 149.1 L 850.35 149.1 Q 852.31 149.1 853.17 150.93 Q 854.03 152.76 854.03 156.94 Q 854.03 161.71 852.86 164.41 Q 851.68 167.12 849.6 167.12 L 848.92 167.12 L 848.92 179 M 847.4 179 M 848.92 163.91 L 849.54 163.91 Q 850.91 163.91 851.66 162.17 Q 852.41 160.43 852.41 157.26 Q 852.41 154.58 851.82 153.42 Q 851.24 152.27 849.87 152.27 L 848.92 152.27 M 848.92 163.91"/></g><rect x="855" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 858.74 177 L 858.74 166.26 L 855.12 151.28 L 856.88 151.28 L 859.69 162.89 L 862.73 151.28 L 864.16 151.28 L 860.28 166.19 L 860.28 177 M 858.74 177"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 856.68 187 L 856.68 185.34 L 863.95 185.34 L 863.95 185.52 L 858.52 185.52 L 858.52 186.07 L 863.08 186.07 L 863.08 186.25 L 858.52 186.25 L 858.52 187 M 856.68 187"/></g><rect x="864" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 868.23 179.75 Q 866.92 179.75 864.88 178.43 L 864.88 174.23 Q 867.08 176.58 868.49 176.58 Q 869.58 176.58 870.24 175.26 Q 870.91 173.95 870.91 171.81 Q 870.91 170.05 870.47 168.82 Q 870.04 167.59 868.87 166.07 L 867.97 164.88 Q 866.31 162.7 865.63 160.77 Q 864.95 158.84 864.95 156.27 Q 864.95 152.82 866.04 150.59 Q 867.13 148.35 868.82 148.35 Q 870.32 148.35 871.99 149.51 L 871.99 153.38 Q 869.93 151.53 868.92 151.53 Q 867.96 151.53 867.34 152.7 Q 866.72 153.87 866.72 155.65 Q 866.72 157.14 867.17 158.29 Q 867.63 159.44 868.84 161.04 L 869.77 162.25 Q 871.46 164.45 872.13 166.41 Q 872.8 168.37 872.8 171.12 Q 872.8 175.02 871.55 177.38 Q 870.29 179.75 868.23 179.75 M 868.23 179.75"/></g><rect x="873" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 878.18 179.75 Q 876.01 179.75 874.83 175.66 Q 873.65 171.57 873.65 164.07 Q 873.65 156.6 874.86 152.47 Q 876.06 148.35 878.24 148.35 Q 879.49 148.35 881.17 149.67 L 881.17 153.65 Q 879.26 151.53 878.22 151.53 Q 876.71 151.53 875.88 154.82 Q 875.05 158.11 875.05 164.11 Q 875.05 169.83 875.94 173.13 Q 876.82 176.43 878.36 176.43 Q 879.67 176.43 881.18 173.83 L 881.18 177.46 Q 879.81 179.75 878.18 179.75 M 878.18 179.75"/></g><rect x="882" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 883.4 179 L 883.4 149.1 L 886.68 149.1 Q 888.24 149.1 889.07 151 Q 889.9 152.9 889.9 156.52 Q 889.9 162.49 887.71 165 L 891.33 179 L 889.44 179 L 886.36 166.35 L 884.92 166.35 L 884.92 179 M 883.4 179 M 884.92 163.18 L 885.42 163.18 Q 888.32 163.18 888.32 156.9 Q 888.32 152.27 885.89 152.27 L 884.92 152.27 M 884.92 163.18"/></g><rect x="891" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 896.91 167.57 L 895.33 154.68 L 893.74 167.57 M 896.91 167.57 M 898.3 179 L 897.29 170.72 L 893.35 170.72 L 892.33 179 L 891.11 179 L 894.79 149.1 L 896.1 149.1 L 899.73 179 M 898.3 179"/></g><rect x="900" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 908.18 178.19 Q 906.49 179.75 905.24 179.75 Q 903.02 179.75 901.84 175.69 Q 900.65 171.63 900.65 164.05 Q 900.65 156.62 901.85 152.48 Q 903.05 148.35 905.22 148.35 Q 906.64 148.35 908.17 149.71 L 908.17 153.63 Q 906.25 151.53 905.22 151.53 Q 903.72 151.53 902.88 154.82 Q 902.05 158.11 902.05 164.09 Q 902.05 170.01 902.94 173.29 Q 903.84 176.58 905.44 176.58 Q 906.1 176.58 906.87 175.83 L 906.87 166.09 L 908.18 166.09 M 908.18 178.19"/></g><rect x="909" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 913.23 179.75 Q 911.92 179.75 909.88 178.43 L 909.88 174.23 Q 912.08 176.58 913.49 176.58 Q 914.58 176.58 915.24 175.26 Q 915.91 173.95 915.91 171.81 Q 915.91 170.05 915.47 168.82 Q 915.04 167.59 913.87 166.07 L 912.97 164.88 Q 911.31 162.7 910.63 160.77 Q 909.95 158.84 909.95 156.27 Q 909.95 152.82 911.04 150.59 Q 912.13 148.35 913.82 148.35 Q 915.32 148.35 916.99 149.51 L 916.99 153.38 Q 914.93 151.53 913.92 151.53 Q 912.96 151.53 912.34 152.7 Q 911.72 153.87 911.72 155.65 Q 911.72 157.14 912.17 158.29 Q 912.63 159.44 913.84 161.04 L 914.77 162.25 Q 916.46 164.45 917.13 166.41 Q 917.8 168.37 917.8 171.12 Q 917.8 175.02 916.55 177.38 Q 915.29 179.75 913.23 179.75 M 913.23 179.75"/></g><rect x="918" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 923.18 179.75 Q 921.01 179.75 919.83 175.66 Q 918.65 171.57 918.65 164.07 Q 918.65 156.6 919.86 152.47 Q 921.06 148.35 923.24 148.35 Q 924.49 148.35 926.17 149.67 L 926.17 153.65 Q 924.26 151.53 923.22 151.53 Q 921.71 151.53 920.88 154.82 Q 920.05 158.11 920.05 164.11 Q 920.05 169.83 920.94 173.13 Q 921.82 176.43 923.36 176.43 Q 924.67 176.43 926.18 173.83 L 926.18 177.46 Q 924.81 179.75 923.18 179.75 M 923.18 179.75"/></g><rect x="927" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 931.23 179.75 Q 929.92 179.75 927.88 178.43 L 927.88 174.23 Q 930.08 176.58 931.49 176.58 Q 932.58 176.58 933.24 175.26 Q 933.91 173.95 933.91 171.81 Q 933.91 170.05 933.47 168.82 Q 933.04 167.59 931.87 166.07 L 930.97 164.88 Q 929.31 162.7 928.63 160.77 Q 927.95 158.84 927.95 156.27 Q 927.95 152.82 929.04 150.59 Q 930.13 148.35 931.82 148.35 Q 933.32 148.35 934.99 149.51 L 934.99 153.38 Q 932.93 151.53 931.92 151.53 Q 930.96 151.53 930.34 152.7 Q 929.72 153.87 929.72 155.65 Q 929.72 157.14 930.17 158.29 Q 930.63 159.44 931.84 161.04 L 932.77 162.25 Q 934.46 164.45 935.13 166.41 Q 935.8 168.37 935.8 171.12 Q 935.8 175.02 934.55 177.38 Q 933.29 179.75 931.23 179.75 M 931.23 179.75"/></g><rect x="936" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 940.23 179.75 Q 938.92 179.75 936.88 178.43 L 936.88 174.23 Q 939.08 176.58 940.49 176.58 Q 941.58 176.58 942.24 175.26 Q 942.91 173.95 942.91 171.81 Q 942.91 170.05 942.47 168.82 Q 942.04 167.59 940.87 166.07 L 939.97 164.88 Q 938.31 162.7 937.63 160.77 Q 936.95 158.84 936.95 156.27 Q 936.95 152.82 938.04 150.59 Q 939.13 148.35 940.82 148.35 Q 942.32 148.35 943.99 149.51 L 943.99 153.38 Q 941.93 151.53 940.92 151.53 Q 939.96 151.53 939.34 152.7 Q 938.72 153.87 938.72 155.65 Q 938.72 157.14 939.17 158.29 Q 939.63 159.44 940.84 161.04 L 941.77 162.25 Q 943.46 164.45 944.13 166.41 Q 944.8 168.37 944.8 171.12 Q 944.8 175.02 943.55 177.38 Q 942.29 179.75 940.23 179.75 M 940.23 179.75"/></g><rect x="945" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 950.18 179.75 Q 948.01 179.75 946.83 175.66 Q 945.65 171.57 945.65 164.07 Q 945.65 156.6 946.86 152.47 Q 948.06 148.35 950.24 148.35 Q 951.49 148.35 953.17 149.67 L 953.17 153.65 Q 951.26 151.53 950.22 151.53 Q 948.71 151.53 947.88 154.82 Q 947.05 158.11 947.05 164.11 Q 947.05 169.83 947.94 173.13 Q 948.82 176.43 950.36 176.43 Q 951.67 176.43 953.18 173.83 L 953.18 177.46 Q 951.81 179.75 950.18 179.75 M 950.18 179.75"/></g><rect x="954" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 959.91 167.57 L 958.33 154.68 L 956.74 167.57 M 959.91 167.57 M 961.3 179 L 960.29 170.72 L 956.35 170.72 L 955.33 179 L 954.11 179 L 957.79 149.1 L 959.1 149.1 L 962.73 179 M 961.3 179"/></g><rect x="963" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 971.18 178.19 Q 969.49 179.75 968.24 179.75 Q 966.02 179.75 964.84 175.69 Q 963.65 171.63 963.65 164.05 Q 963.65 156.62 964.85 152.48 Q 966.05 148.35 968.22 148.35 Q 969.64 148.35 971.17 149.71 L 971.17 153.63 Q 969.25 151.53 968.22 151.53 Q 966.72 151.53 965.88 154.82 Q 965.05 158.11 965.05 164.09 Q 965.05 170.01 965.94 173.29 Q 966.84 176.58 968.44 176.58 Q 969.1 176.58 969.87 175.83 L 969.87 166.09 L 971.18 166.09 M 971.18 178.19"/></g><rect x="972" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 973.2 179 L 973.2 149.1 L 974.44 149.1 L 974.44 163.81 L 978.2 149.1 L 979.52 149.1 L 975.88 163.36 L 980.17 179 L 978.5 179 L 974.44 163.85 L 974.44 179 M 973.2 179"/></g><rect x="981" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 984.74 176 L 981.23 156.86 L 982.54 156.86 L 985.42 172.53 L 988.19 156.86 L 989.35 156.86 L 985.98 176 M 984.74 176"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 983.78 184 L 983.78 180.89 L 986.86 180.89 L 986.86 184 M 983.78 184"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 982.68 187 L 982.68 185.56 L 984.52 185.56 L 984.52 186.85 L 990.38 186.85 L 990.38 187 M 982.68 187"/></g><rect x="990" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 993.74 175 L 990.23 164.24 L 991.54 164.24 L 994.42 173.05 L 997.19 164.24 L 998.35 164.24 L 994.98 175 M 993.74 175"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 993.98 182 L 993.98 178.79 L 990.13 178.79 L 990.13 178.41 L 999.36 178.41 L 999.36 178.79 L 995.52 178.79 L 995.52 182 M 993.98 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 995.91 184.11 L 994.33 183.1 L 992.74 184.11 M 995.91 184.11 M 997.3 185 L 996.29 184.35 L 992.35 184.35 L 991.33 185 L 990.11 185 L 993.79 182.67 L 995.1 182.67 L 998.73 185 M 997.3 185"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 991.2 187 L 991.2 185.92 L 992.44 185.92 L 992.44 186.45 L 996.2 185.92 L 997.52 185.92 L 993.88 186.44 L 998.17 187 L 996.5 187 L 992.44 186.45 L 992.44 187 M 991.2 187"/></g><rect x="999" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1003.23 175.21 Q 1001.92 175.21 999.88 174.84 L 999.88 173.67 Q 1002.08 174.33 1003.49 174.33 Q 1004.58 174.33 1005.24 173.96 Q 1005.91 173.59 1005.91 173 Q 1005.91 172.51 1005.47 172.17 Q 1005.04 171.82 1003.87 171.4 L 1002.97 171.07 Q 1001.31 170.46 1000.63 169.93 Q 999.95 169.39 999.95 168.68 Q 999.95 167.71 1001.04 167.09 Q 1002.13 166.47 1003.82 166.47 Q 1005.32 166.47 1006.99 166.79 L 1006.99 167.87 Q 1004.93 167.36 1003.92 167.36 Q 1002.96 167.36 1002.34 167.68 Q 1001.72 168.01 1001.72 168.5 Q 1001.72 168.92 1002.17 169.24 Q 1002.63 169.56 1003.84 170 L 1004.77 170.34 Q 1006.46 170.95 1007.13 171.5 Q 1007.8 172.04 1007.8 172.81 Q 1007.8 173.89 1006.55 174.55 Q 1005.29 175.21 1003.23 175.21 M 1003.23 175.21"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1007.18 180.92 Q 1005.49 181.08 1004.24 181.08 Q 1002.02 181.08 1000.84 180.65 Q 999.65 180.23 999.65 179.43 Q 999.65 178.65 1000.85 178.22 Q 1002.05 177.78 1004.22 177.78 Q 1005.64 177.78 1007.17 177.92 L 1007.17 178.34 Q 1005.25 178.12 1004.22 178.12 Q 1002.72 178.12 1001.88 178.46 Q 1001.05 178.81 1001.05 179.43 Q 1001.05 180.06 1001.94 180.4 Q 1002.84 180.75 1004.44 180.75 Q 1005.1 180.75 1005.87 180.67 L 1005.87 179.64 L 1007.18 179.64 M 1007.18 180.92"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1004.91 183.22 L 1003.33 182.34 L 1001.74 183.22 M 1004.91 183.22 M 1006.3 184 L 1005.29 183.43 L 1001.35 183.43 L 1000.33 184 L 999.11 184 L 1002.79 181.96 L 1004.1 181.96 L 1007.73 184 M 1006.3 184"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1000.2 186 L 1000.2 185.06 L 1001.49 185.06 L 1006.17 185.79 L 1006.17 185.06 L 1007.3 185.06 L 1007.3 186 L 1006.01 186 L 1001.33 185.27 L 1001.33 186 M 1000.2 186"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1002.98 187 L 1002.98 186.16 L 999.13 186.16 L 999.13 186.06 L 1008.36 186.06 L 1008.36 186.16 L 1004.52 186.16 L 1004.52 187 M 1002.98 187"/></g><rect x="1008" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1016.18 178.19 Q 1014.49 179.75 1013.24 179.75 Q 1011.02 179.75 1009.84 175.69 Q 1008.65 171.63 1008.65 164.05 Q 1008.65 156.62 1009.85 152.48 Q 1011.05 148.35 1013.22 148.35 Q 1014.64 148.35 1016.17 149.71 L 1016.17 153.63 Q 1014.25 151.53 1013.22 151.53 Q 1011.72 151.53 1010.88 154.82 Q 1010.05 158.11 1010.05 164.09 Q 1010.05 170.01 1010.94 173.29 Q 1011.84 176.58 1013.44 176.58 Q 1014.1 176.58 1014.87 175.83 L 1014.87 166.09 L 1016.18 166.09 M 1016.18 178.19"/></g><rect x="1017" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1021.23 175.27 Q 1019.92 175.27 1017.88 174.8 L 1017.88 173.28 Q 1020.08 174.13 1021.49 174.13 Q 1022.58 174.13 1023.24 173.65 Q 1023.91 173.18 1023.91 172.41 Q 1023.91 171.78 1023.47 171.33 Q 1023.04 170.89 1021.87 170.35 L 1020.97 169.92 Q 1019.31 169.13 1018.63 168.44 Q 1017.95 167.74 1017.95 166.82 Q 1017.95 165.57 1019.04 164.77 Q 1020.13 163.97 1021.82 163.97 Q 1023.32 163.97 1024.99 164.38 L 1024.99 165.78 Q 1022.93 165.11 1021.92 165.11 Q 1020.96 165.11 1020.34 165.53 Q 1019.72 165.95 1019.72 166.59 Q 1019.72 167.13 1020.17 167.55 Q 1020.63 167.96 1021.84 168.53 L 1022.77 168.97 Q 1024.46 169.76 1025.13 170.47 Q 1025.8 171.17 1025.8 172.16 Q 1025.8 173.57 1024.55 174.42 Q 1023.29 175.27 1021.23 175.27 M 1021.23 175.27"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1022.91 179.11 L 1021.33 178.1 L 1019.74 179.11 M 1022.91 179.11 M 1024.3 180 L 1023.29 179.35 L 1019.35 179.35 L 1018.33 180 L 1017.11 180 L 1020.79 177.67 L 1022.1 177.67 L 1025.73 180 M 1024.3 180"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1018.68 182 L 1018.68 180.92 L 1025.95 180.92 L 1025.95 181.04 L 1020.52 181.04 L 1020.52 181.38 L 1025.07 181.38 L 1025.07 181.5 L 1020.52 181.5 L 1020.52 181.89 L 1026.33 181.89 L 1026.33 182 M 1018.68 182"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1018.68 184 L 1018.68 182.92 L 1025.95 182.92 L 1025.95 183.04 L 1020.52 183.04 L 1020.52 183.4 L 1025.08 183.4 L 1025.08 183.51 L 1020.52 183.51 L 1020.52 184 M 1018.68 184"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1018.2 185 L 1018.2 183.92 L 1019.49 183.92 L 1024.17 184.75 L 1024.17 183.92 L 1025.3 183.92 L 1025.3 185 L 1024.01 185 L 1019.33 184.17 L 1019.33 185 M 1018.2 185"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1020.98 186 L 1020.98 185.04 L 1017.13 185.04 L 1017.13 184.92 L 1026.36 184.92 L 1026.36 185.04 L 1022.52 185.04 L 1022.52 186 M 1020.98 186"/></g><rect x="1026" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1029.74 176 L 1026.23 156.86 L 1027.54 156.86 L 1030.42 172.53 L 1033.19 156.86 L 1034.35 156.86 L 1030.98 176 M 1029.74 176"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1028.78 184 L 1028.78 180.89 L 1031.86 180.89 L 1031.86 184 M 1028.78 184"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1027.68 187 L 1027.68 185.56 L 1029.52 185.56 L 1029.52 186.85 L 1035.38 186.85 L 1035.38 187 M 1027.68 187"/></g><rect x="1035" y="156" width="9" height="32" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1036.2 176 L 1036.2 156.86 L 1039.29 156.86 Q 1040.67 156.86 1041.52 157.5 Q 1042.37 158.13 1042.99 159.64 Q 1043.98 162.05 1043.98 165.98 Q 1043.98 170.75 1042.75 173.38 Q 1041.53 176 1039.31 176 M 1036.2 176 M 1037.52 173.97 L 1039.21 173.97 Q 1041.01 173.97 1041.77 171.97 Q 1042.58 169.83 1042.58 166.24 Q 1042.58 162.86 1041.78 160.94 Q 1041.3 159.76 1040.62 159.33 Q 1039.95 158.89 1038.6 158.89 L 1037.52 158.89 M 1037.52 173.97"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1036.2 186 L 1036.2 181.22 L 1037.49 181.22 L 1042.17 184.91 L 1042.17 181.22 L 1043.3 181.22 L 1043.3 186 L 1042.01 186 L 1037.33 182.31 L 1037.33 186 M 1036.2 186"/></g><rect x="1044" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1052.27 184.98 Q 1050.35 182.7 1049.05 179.55 Q 1048.54 179.75 1048.26 179.75 Q 1046.62 179.75 1045.6 175.38 Q 1044.57 171.02 1044.57 164.05 Q 1044.57 156.9 1045.61 152.63 Q 1046.64 148.35 1048.37 148.35 Q 1050.11 148.35 1051.14 152.64 Q 1052.17 156.92 1052.17 164.11 Q 1052.17 174.41 1050.09 178.37 Q 1051.49 180.64 1053 181.61 M 1052.27 184.98 M 1048.34 176.58 Q 1049.59 176.58 1050.27 173.28 Q 1050.95 169.99 1050.95 163.97 Q 1050.95 158.13 1050.27 154.83 Q 1049.59 151.53 1048.37 151.53 Q 1047.16 151.53 1046.48 154.83 Q 1045.8 158.13 1045.8 164.01 Q 1045.8 169.87 1046.47 173.22 Q 1047.15 176.58 1048.34 176.58 M 1048.34 176.58"/></g><rect x="1053" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1057.23 175.32 Q 1055.92 175.32 1053.88 174.76 L 1053.88 172.95 Q 1056.08 173.96 1057.49 173.96 Q 1058.58 173.96 1059.24 173.4 Q 1059.91 172.83 1059.91 171.91 Q 1059.91 171.16 1059.47 170.63 Q 1059.04 170.1 1057.87 169.45 L 1056.97 168.94 Q 1055.31 168.01 1054.63 167.18 Q 1053.95 166.35 1053.95 165.25 Q 1053.95 163.77 1055.04 162.81 Q 1056.13 161.85 1057.82 161.85 Q 1059.32 161.85 1060.99 162.35 L 1060.99 164.01 Q 1058.93 163.21 1057.92 163.21 Q 1056.96 163.21 1056.34 163.72 Q 1055.72 164.22 1055.72 164.98 Q 1055.72 165.62 1056.17 166.12 Q 1056.63 166.61 1057.84 167.3 L 1058.77 167.82 Q 1060.46 168.76 1061.13 169.6 Q 1061.8 170.44 1061.8 171.62 Q 1061.8 173.29 1060.55 174.31 Q 1059.29 175.32 1057.23 175.32 M 1057.23 175.32"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1054.2 181 L 1054.2 178.47 L 1057.29 178.47 Q 1058.67 178.47 1059.52 178.56 Q 1060.37 178.64 1060.99 178.84 Q 1061.98 179.16 1061.98 179.68 Q 1061.98 180.31 1060.75 180.65 Q 1059.53 181 1057.31 181 M 1054.2 181 M 1055.52 180.73 L 1057.21 180.73 Q 1059.01 180.73 1059.77 180.47 Q 1060.58 180.19 1060.58 179.71 Q 1060.58 179.27 1059.78 179.01 Q 1059.3 178.86 1058.62 178.8 Q 1057.95 178.74 1056.6 178.74 L 1055.52 178.74 M 1055.52 180.73"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1056.98 185 L 1056.98 182.74 L 1053.13 182.74 L 1053.13 182.47 L 1062.36 182.47 L 1062.36 182.74 L 1058.52 182.74 L 1058.52 185 M 1056.98 185"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1054.68 187 L 1054.68 185.83 L 1061.95 185.83 L 1061.95 185.96 L 1056.52 185.96 L 1056.52 186.33 L 1061.07 186.33 L 1061.07 186.45 L 1056.52 186.45 L 1056.52 186.88 L 1062.33 186.88 L 1062.33 187 M 1054.68 187"/></g><rect x="1062" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1063.2 179 L 1063.2 149.1 L 1066.29 149.1 Q 1067.67 149.1 1068.52 150.09 Q 1069.37 151.08 1069.99 153.44 Q 1070.98 157.2 1070.98 163.34 Q 1070.98 170.8 1069.75 174.9 Q 1068.53 179 1066.31 179 M 1063.2 179 M 1064.52 175.83 L 1066.21 175.83 Q 1068.01 175.83 1068.77 172.7 Q 1069.58 169.36 1069.58 163.75 Q 1069.58 158.47 1068.78 155.46 Q 1068.3 153.63 1067.62 152.95 Q 1066.95 152.27 1065.6 152.27 L 1064.52 152.27 M 1064.52 175.83"/></g><rect x="1071" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1079.18 175.83 Q 1077.49 176.15 1076.24 176.15 Q 1074.02 176.15 1072.84 175.31 Q 1071.65 174.47 1071.65 172.91 Q 1071.65 171.37 1072.85 170.51 Q 1074.05 169.66 1076.22 169.66 Q 1077.64 169.66 1079.17 169.94 L 1079.17 170.75 Q 1077.25 170.31 1076.22 170.31 Q 1074.72 170.31 1073.88 170.99 Q 1073.05 171.68 1073.05 172.91 Q 1073.05 174.14 1073.94 174.82 Q 1074.84 175.5 1076.44 175.5 Q 1077.1 175.5 1077.87 175.34 L 1077.87 173.33 L 1079.18 173.33 M 1079.18 175.83"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1079.27 185.24 Q 1077.35 184.77 1076.05 184.11 Q 1075.54 184.15 1075.26 184.15 Q 1073.62 184.15 1072.6 183.25 Q 1071.57 182.35 1071.57 180.91 Q 1071.57 179.43 1072.61 178.54 Q 1073.64 177.66 1075.37 177.66 Q 1077.11 177.66 1078.14 178.54 Q 1079.17 179.43 1079.17 180.92 Q 1079.17 183.05 1077.09 183.87 Q 1078.49 184.34 1080 184.54 M 1079.27 185.24 M 1075.34 183.5 Q 1076.59 183.5 1077.27 182.82 Q 1077.95 182.13 1077.95 180.89 Q 1077.95 179.68 1077.27 179 Q 1076.59 178.31 1075.37 178.31 Q 1074.16 178.31 1073.48 179 Q 1072.8 179.68 1072.8 180.9 Q 1072.8 182.11 1073.47 182.8 Q 1074.15 183.5 1075.34 183.5 M 1075.34 183.5"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1072.68 187 L 1072.68 186.19 L 1079.95 186.19 L 1079.95 186.28 L 1074.52 186.28 L 1074.52 186.54 L 1079.07 186.54 L 1079.07 186.62 L 1074.52 186.62 L 1074.52 186.91 L 1080.33 186.91 L 1080.33 187 M 1072.68 187"/></g><rect x="1080" y="159" width="9" height="29" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1084.23 175.4 Q 1082.92 175.4 1080.88 174.7 L 1080.88 172.48 Q 1083.08 173.72 1084.49 173.72 Q 1085.58 173.72 1086.24 173.02 Q 1086.91 172.33 1086.91 171.19 Q 1086.91 170.26 1086.47 169.61 Q 1086.04 168.96 1084.87 168.16 L 1083.97 167.53 Q 1082.31 166.37 1081.63 165.35 Q 1080.95 164.33 1080.95 162.97 Q 1080.95 161.14 1082.04 159.96 Q 1083.13 158.78 1084.82 158.78 Q 1086.32 158.78 1087.99 159.39 L 1087.99 161.44 Q 1085.93 160.46 1084.92 160.46 Q 1083.96 160.46 1083.34 161.08 Q 1082.72 161.7 1082.72 162.64 Q 1082.72 163.43 1083.17 164.04 Q 1083.63 164.65 1084.84 165.49 L 1085.77 166.14 Q 1087.46 167.3 1088.13 168.34 Q 1088.8 169.38 1088.8 170.83 Q 1088.8 172.89 1087.55 174.14 Q 1086.29 175.4 1084.23 175.4 M 1084.23 175.4"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1081.2 184 L 1081.2 179.66 L 1082.49 179.66 L 1087.17 183.01 L 1087.17 179.66 L 1088.3 179.66 L 1088.3 184 L 1087.01 184 L 1082.33 180.65 L 1082.33 184 M 1081.2 184"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1081.2 187 L 1081.2 185.7 L 1082.44 185.7 L 1082.44 186.34 L 1086.2 185.7 L 1087.52 185.7 L 1083.88 186.32 L 1088.17 187 L 1086.5 187 L 1082.44 186.34 L 1082.44 187 M 1081.2 187"/></g><rect x="1089" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1090.68 177 L 1090.68 151.28 L 1097.95 151.28 L 1097.95 154.01 L 1092.52 154.01 L 1092.52 162.63 L 1097.08 162.63 L 1097.08 165.32 L 1092.52 165.32 L 1092.52 177 M 1090.68 177"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1092.74 187 L 1092.74 186.31 L 1089.12 185.34 L 1090.88 185.34 L 1093.69 186.09 L 1096.73 185.34 L 1098.16 185.34 L 1094.28 186.3 L 1094.28 187 M 1092.74 187"/></g><rect x="1098" y="148" width="9" height="40" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1099.68 179 L 1099.68 149.1 L 1101.52 149.1 L 1101.52 175.83 L 1107.38 175.83 L 1107.38 179 M 1099.68 179"/></g><rect x="1107" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1108.2 177 L 1108.2 151.28 L 1111.29 151.28 Q 1112.67 151.28 1113.52 152.13 Q 1114.37 152.98 1114.99 155.02 Q 1115.98 158.25 1115.98 163.53 Q 1115.98 169.94 1114.75 173.47 Q 1113.53 177 1111.31 177 M 1108.2 177 M 1109.52 174.27 L 1111.21 174.27 Q 1113.01 174.27 1113.77 171.58 Q 1114.58 168.71 1114.58 163.88 Q 1114.58 159.34 1113.78 156.75 Q 1113.3 155.17 1112.62 154.59 Q 1111.95 154.01 1110.6 154.01 L 1109.52 154.01 M 1109.52 174.27"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1108.2 187 L 1108.2 185.34 L 1109.49 185.34 L 1114.17 186.62 L 1114.17 185.34 L 1115.3 185.34 L 1115.3 187 L 1114.01 187 L 1109.33 185.72 L 1109.33 187 M 1108.2 187"/></g><rect x="1116" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1117.2 177 L 1117.2 151.28 L 1120.29 151.28 Q 1121.67 151.28 1122.52 152.13 Q 1123.37 152.98 1123.99 155.02 Q 1124.98 158.25 1124.98 163.53 Q 1124.98 169.94 1123.75 173.47 Q 1122.53 177 1120.31 177 M 1117.2 177 M 1118.52 174.27 L 1120.21 174.27 Q 1122.01 174.27 1122.77 171.58 Q 1123.58 168.71 1123.58 163.88 Q 1123.58 159.34 1122.78 156.75 Q 1122.3 155.17 1121.62 154.59 Q 1120.95 154.01 1119.6 154.01 L 1118.52 154.01 M 1118.52 174.27"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1117.68 187 L 1117.68 185.34 L 1124.95 185.34 L 1124.95 185.52 L 1119.52 185.52 L 1119.52 186.05 L 1124.07 186.05 L 1124.07 186.22 L 1119.52 186.22 L 1119.52 186.82 L 1125.33 186.82 L 1125.33 187 M 1117.68 187"/></g><rect x="1125" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1126.2 175 L 1126.2 166.68 L 1129.29 166.68 Q 1130.67 166.68 1131.52 166.96 Q 1132.37 167.23 1132.99 167.89 Q 1133.98 168.93 1133.98 170.64 Q 1133.98 172.72 1132.75 173.86 Q 1131.53 175 1129.31 175 M 1126.2 175 M 1127.52 174.12 L 1129.21 174.12 Q 1131.01 174.12 1131.77 173.25 Q 1132.58 172.32 1132.58 170.76 Q 1132.58 169.29 1131.78 168.45 Q 1131.3 167.94 1130.62 167.75 Q 1129.95 167.56 1128.6 167.56 L 1127.52 167.56 M 1127.52 174.12"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1126.68 182 L 1126.68 177.92 L 1133.95 177.92 L 1133.95 178.35 L 1128.52 178.35 L 1128.52 179.66 L 1133.07 179.66 L 1133.07 180.09 L 1128.52 180.09 L 1128.52 181.57 L 1134.33 181.57 L 1134.33 182 M 1126.68 182"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1133.18 183.97 Q 1131.49 184.02 1130.24 184.02 Q 1128.02 184.02 1126.84 183.9 Q 1125.65 183.77 1125.65 183.53 Q 1125.65 183.29 1126.85 183.16 Q 1128.05 183.03 1130.22 183.03 Q 1131.64 183.03 1133.17 183.08 L 1133.17 183.2 Q 1131.25 183.13 1130.22 183.13 Q 1128.72 183.13 1127.88 183.24 Q 1127.05 183.34 1127.05 183.53 Q 1127.05 183.72 1127.94 183.82 Q 1128.84 183.92 1130.44 183.92 Q 1131.1 183.92 1131.87 183.9 L 1131.87 183.59 L 1133.18 183.59 M 1133.18 183.97"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1126.2 185 L 1126.2 184.06 L 1127.49 184.06 L 1132.17 184.79 L 1132.17 184.06 L 1133.3 184.06 L 1133.3 185 L 1132.01 185 L 1127.33 184.27 L 1127.33 185 M 1126.2 185"/></g><rect x="1134" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1142.27 182.14 Q 1140.35 180.18 1139.05 177.47 Q 1138.54 177.64 1138.26 177.64 Q 1136.62 177.64 1135.6 173.89 Q 1134.57 170.14 1134.57 164.14 Q 1134.57 157.99 1135.61 154.31 Q 1136.64 150.64 1138.37 150.64 Q 1140.11 150.64 1141.14 154.32 Q 1142.17 158 1142.17 164.19 Q 1142.17 173.06 1140.09 176.46 Q 1141.49 178.41 1143 179.24 M 1142.27 182.14 M 1138.34 174.91 Q 1139.59 174.91 1140.27 172.08 Q 1140.95 169.25 1140.95 164.07 Q 1140.95 159.05 1140.27 156.21 Q 1139.59 153.36 1138.37 153.36 Q 1137.16 153.36 1136.48 156.21 Q 1135.8 159.05 1135.8 164.1 Q 1135.8 169.14 1136.47 172.03 Q 1137.15 174.91 1138.34 174.91 M 1138.34 174.91"/></g><rect x="1143" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1145.78 175 L 1145.78 166.68 L 1148.86 166.68 L 1148.86 175 M 1145.78 175"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1144.68 180 L 1144.68 177.96 L 1151.95 177.96 L 1151.95 178.18 L 1146.52 178.18 L 1146.52 178.83 L 1151.07 178.83 L 1151.07 179.04 L 1146.52 179.04 L 1146.52 179.78 L 1152.33 179.78 L 1152.33 180 M 1144.68 180"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1144.68 182 L 1144.68 179.96 L 1146.52 179.96 L 1146.52 181.78 L 1152.38 181.78 L 1152.38 182 M 1144.68 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1143.93 184 L 1143.93 183.06 L 1145.35 183.06 L 1147.36 183.79 L 1149.42 183.06 L 1150.69 183.06 L 1150.69 184 L 1149.73 184 L 1149.73 183.23 L 1147.74 183.94 L 1146.75 183.94 L 1144.81 183.23 L 1144.81 184 M 1143.93 184"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1146.74 185 L 1143.23 184.06 L 1144.54 184.06 L 1147.42 184.83 L 1150.19 184.06 L 1151.35 184.06 L 1147.98 185 M 1146.74 185"/></g><rect x="1152" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1157.91 175.17 L 1156.33 173.11 L 1154.74 175.17 M 1157.91 175.17 M 1159.3 177 L 1158.29 175.67 L 1154.35 175.67 L 1153.33 177 L 1152.11 177 L 1155.79 172.22 L 1157.1 172.22 L 1160.73 177 M 1159.3 177"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1153.68 181 L 1153.68 177.89 L 1160.95 177.89 L 1160.95 178.22 L 1155.52 178.22 L 1155.52 179.22 L 1160.07 179.22 L 1160.07 179.54 L 1155.52 179.54 L 1155.52 180.67 L 1161.33 180.67 L 1161.33 181 M 1153.68 181"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1153.2 183 L 1153.2 182.28 L 1156.29 182.28 Q 1157.67 182.28 1158.52 182.31 Q 1159.37 182.33 1159.99 182.39 Q 1160.98 182.48 1160.98 182.62 Q 1160.98 182.8 1159.75 182.9 Q 1158.53 183 1156.31 183 M 1153.2 183 M 1154.52 182.92 L 1156.21 182.92 Q 1158.01 182.92 1158.77 182.85 Q 1159.58 182.77 1159.58 182.63 Q 1159.58 182.51 1158.78 182.44 Q 1158.3 182.39 1157.62 182.37 Q 1156.95 182.36 1155.6 182.36 L 1154.52 182.36 M 1154.52 182.92"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1160.18 183.98 Q 1158.49 184.02 1157.24 184.02 Q 1155.02 184.02 1153.84 183.92 Q 1152.65 183.82 1152.65 183.64 Q 1152.65 183.46 1153.85 183.36 Q 1155.05 183.26 1157.22 183.26 Q 1158.64 183.26 1160.17 183.3 L 1160.17 183.39 Q 1158.25 183.34 1157.22 183.34 Q 1155.72 183.34 1154.88 183.42 Q 1154.05 183.5 1154.05 183.64 Q 1154.05 183.78 1154.94 183.86 Q 1155.84 183.94 1157.44 183.94 Q 1158.1 183.94 1158.87 183.92 L 1158.87 183.69 L 1160.18 183.69 M 1160.18 183.98"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1153.2 185 L 1153.2 184.28 L 1154.44 184.28 L 1154.44 184.64 L 1158.2 184.28 L 1159.52 184.28 L 1155.88 184.62 L 1160.17 185 L 1158.5 185 L 1154.44 184.64 L 1154.44 185 M 1153.2 185"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1156.23 186.02 Q 1154.92 186.02 1152.88 185.99 L 1152.88 185.89 Q 1155.08 185.94 1156.49 185.94 Q 1157.58 185.94 1158.24 185.91 Q 1158.91 185.88 1158.91 185.83 Q 1158.91 185.79 1158.47 185.76 Q 1158.04 185.73 1156.87 185.69 L 1155.97 185.66 Q 1154.31 185.61 1153.63 185.56 Q 1152.95 185.52 1152.95 185.45 Q 1152.95 185.37 1154.04 185.32 Q 1155.13 185.26 1156.82 185.26 Q 1158.32 185.26 1159.99 185.29 L 1159.99 185.39 Q 1157.93 185.34 1156.92 185.34 Q 1155.96 185.34 1155.34 185.37 Q 1154.72 185.4 1154.72 185.44 Q 1154.72 185.48 1155.17 185.5 Q 1155.63 185.53 1156.84 185.57 L 1157.77 185.6 Q 1159.46 185.65 1160.13 185.7 Q 1160.8 185.74 1160.8 185.81 Q 1160.8 185.9 1159.55 185.96 Q 1158.29 186.02 1156.23 186.02 M 1156.23 186.02"/></g><rect x="1161" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1162.68 175 L 1162.68 166.68 L 1169.95 166.68 L 1169.95 167.56 L 1164.52 167.56 L 1164.52 170.23 L 1169.07 170.23 L 1169.07 171.1 L 1164.52 171.1 L 1164.52 174.12 L 1170.33 174.12 L 1170.33 175 M 1162.68 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1166.91 179.8 L 1165.33 178.45 L 1163.74 179.8 M 1166.91 179.8 M 1168.3 181 L 1167.29 180.13 L 1163.35 180.13 L 1162.33 181 L 1161.11 181 L 1164.79 177.86 L 1166.1 177.86 L 1169.73 181 M 1168.3 181"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1162.2 184 L 1162.2 181.96 L 1165.29 181.96 Q 1166.67 181.96 1167.52 182.03 Q 1168.37 182.09 1168.99 182.26 Q 1169.98 182.51 1169.98 182.93 Q 1169.98 183.44 1168.75 183.72 Q 1167.53 184 1165.31 184 M 1162.2 184 M 1163.52 183.78 L 1165.21 183.78 Q 1167.01 183.78 1167.77 183.57 Q 1168.58 183.34 1168.58 182.96 Q 1168.58 182.6 1167.78 182.39 Q 1167.3 182.27 1166.62 182.22 Q 1165.95 182.18 1164.6 182.18 L 1163.52 182.18 M 1163.52 183.78"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1169.18 185.97 Q 1167.49 186.02 1166.24 186.02 Q 1164.02 186.02 1162.84 185.9 Q 1161.65 185.77 1161.65 185.53 Q 1161.65 185.29 1162.85 185.16 Q 1164.05 185.03 1166.22 185.03 Q 1167.64 185.03 1169.17 185.08 L 1169.17 185.2 Q 1167.25 185.13 1166.22 185.13 Q 1164.72 185.13 1163.88 185.24 Q 1163.05 185.34 1163.05 185.53 Q 1163.05 185.72 1163.94 185.82 Q 1164.84 185.92 1166.44 185.92 Q 1167.1 185.92 1167.87 185.9 L 1167.87 185.59 L 1169.18 185.59 M 1169.18 185.97"/></g><rect x="1170" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1178.18 176.3 Q 1176.49 177.64 1175.24 177.64 Q 1173.02 177.64 1171.84 174.15 Q 1170.65 170.66 1170.65 164.14 Q 1170.65 157.74 1171.85 154.19 Q 1173.05 150.64 1175.22 150.64 Q 1176.64 150.64 1178.17 151.8 L 1178.17 155.17 Q 1176.25 153.36 1175.22 153.36 Q 1173.72 153.36 1172.88 156.2 Q 1172.05 159.03 1172.05 164.17 Q 1172.05 169.27 1172.94 172.09 Q 1173.84 174.91 1175.44 174.91 Q 1176.1 174.91 1176.87 174.27 L 1176.87 165.89 L 1178.18 165.89 M 1178.18 176.3"/></g><rect x="1179" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1180.87 176 L 1179.01 169.81 L 1180 169.81 L 1181.48 174.7 L 1182.84 169.81 L 1183.82 169.81 L 1185.11 174.63 L 1186.71 169.81 L 1187.54 169.81 L 1185.51 176 L 1184.49 176 L 1183.22 171.23 L 1181.89 176 M 1180.87 176"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1180.68 183 L 1180.68 177.62 L 1187.95 177.62 L 1187.95 178.19 L 1182.52 178.19 L 1182.52 179.99 L 1187.08 179.99 L 1187.08 180.56 L 1182.52 180.56 L 1182.52 183 M 1180.68 183"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1182.74 186 L 1182.74 185.66 L 1179.12 185.19 L 1180.88 185.19 L 1183.69 185.56 L 1186.73 185.19 L 1188.16 185.19 L 1184.28 185.66 L 1184.28 186 M 1182.74 186"/></g><rect x="1188" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1191.74 177 L 1188.23 151.28 L 1189.54 151.28 L 1192.42 172.34 L 1195.19 151.28 L 1196.35 151.28 L 1192.98 177 M 1191.74 177"/></g><rect x="1197" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1198.68 177 L 1198.68 151.28 L 1200.52 151.28 L 1200.52 174.27 L 1206.38 174.27 L 1206.38 177 M 1198.68 177"/></g><rect x="1206" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1209.98 177 L 1209.98 154.01 L 1206.13 154.01 L 1206.13 151.28 L 1215.36 151.28 L 1215.36 154.01 L 1211.52 154.01 L 1211.52 177 M 1209.98 177"/></g><rect x="1215" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1220.18 177.64 Q 1218.01 177.64 1216.83 174.12 Q 1215.65 170.6 1215.65 164.16 Q 1215.65 157.73 1216.86 154.18 Q 1218.06 150.64 1220.24 150.64 Q 1221.49 150.64 1223.17 151.77 L 1223.17 155.19 Q 1221.26 153.36 1220.22 153.36 Q 1218.71 153.36 1217.88 156.2 Q 1217.05 159.03 1217.05 164.19 Q 1217.05 169.11 1217.94 171.95 Q 1218.82 174.79 1220.36 174.79 Q 1221.67 174.79 1223.18 172.55 L 1223.18 175.68 Q 1221.81 177.64 1220.18 177.64 M 1220.18 177.64"/></g><rect x="1224" y="167" width="9" height="21" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1227.74 175 L 1224.23 166.68 L 1225.54 166.68 L 1228.42 173.49 L 1231.19 166.68 L 1232.35 166.68 L 1228.98 175 M 1227.74 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1229.91 181.02 L 1228.33 178.79 L 1226.74 181.02 M 1229.91 181.02 M 1231.3 183 L 1230.29 181.57 L 1226.35 181.57 L 1225.33 183 L 1224.11 183 L 1227.79 177.82 L 1229.1 177.82 L 1232.73 183 M 1231.3 183"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1225.2 186 L 1225.2 185.06 L 1226.52 185.06 L 1226.52 185.46 L 1230.94 185.46 L 1230.94 185.06 L 1232.26 185.06 L 1232.26 186 L 1230.94 186 L 1230.94 185.56 L 1226.52 185.56 L 1226.52 186 M 1225.2 186"/></g><rect x="1233" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1238.91 167.16 L 1237.33 156.08 L 1235.74 167.16 M 1238.91 167.16 M 1240.3 177 L 1239.29 169.87 L 1235.35 169.87 L 1234.33 177 L 1233.11 177 L 1236.79 151.28 L 1238.1 151.28 L 1241.73 177 M 1240.3 177"/></g><rect x="1242" y="154" width="9" height="34" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1245.74 176 L 1245.74 166.87 L 1242.12 154.14 L 1243.88 154.14 L 1246.69 164.01 L 1249.73 154.14 L 1251.16 154.14 L 1247.28 166.81 L 1247.28 176 M 1245.74 176"/></g><g style="fill: rgb(255,200,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1243.68 184 L 1243.68 182.48 L 1250.95 182.48 L 1250.95 182.64 L 1245.52 182.64 L 1245.52 183.15 L 1250.08 183.15 L 1250.08 183.31 L 1245.52 183.31 L 1245.52 184 M 1243.68 184"/></g><rect x="1251" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1252.4 177 L 1252.4 151.28 L 1255.35 151.28 Q 1257.31 151.28 1258.17 152.85 Q 1259.03 154.42 1259.03 158.02 Q 1259.03 162.12 1257.86 164.45 Q 1256.68 166.78 1254.6 166.78 L 1253.92 166.78 L 1253.92 177 M 1252.4 177 M 1253.92 164.02 L 1254.54 164.02 Q 1255.91 164.02 1256.66 162.52 Q 1257.41 161.03 1257.41 158.3 Q 1257.41 155.99 1256.82 155 Q 1256.24 154.01 1254.87 154.01 L 1253.92 154.01 M 1253.92 164.02"/></g><rect x="1260" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1263.98 175 L 1263.98 165.38 L 1260.13 165.38 L 1260.13 164.24 L 1269.36 164.24 L 1269.36 165.38 L 1265.52 165.38 L 1265.52 175 M 1263.98 175"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1261.2 180 L 1261.2 177.67 L 1262.44 177.67 L 1262.44 178.82 L 1266.2 177.67 L 1267.52 177.67 L 1263.88 178.78 L 1268.17 180 L 1266.5 180 L 1262.44 178.82 L 1262.44 180 M 1261.2 180"/></g><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1268.27 183.47 Q 1266.35 183.29 1265.05 183.04 Q 1264.54 183.06 1264.26 183.06 Q 1262.62 183.06 1261.6 182.72 Q 1260.57 182.38 1260.57 181.83 Q 1260.57 181.28 1261.61 180.94 Q 1262.64 180.61 1264.37 180.61 Q 1266.11 180.61 1267.14 180.94 Q 1268.17 181.28 1268.17 181.84 Q 1268.17 182.64 1266.09 182.95 Q 1267.49 183.13 1269 183.2 M 1268.27 183.47 M 1264.34 182.81 Q 1265.59 182.81 1266.27 182.55 Q 1266.95 182.3 1266.95 181.83 Q 1266.95 181.37 1266.27 181.11 Q 1265.59 180.86 1264.37 180.86 Q 1263.16 180.86 1262.48 181.11 Q 1261.8 181.37 1261.8 181.83 Q 1261.8 182.29 1262.47 182.55 Q 1263.15 182.81 1264.34 182.81 M 1264.34 182.81"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1263.74 185 L 1260.23 183.92 L 1261.54 183.92 L 1264.42 184.81 L 1267.19 183.92 L 1268.35 183.92 L 1264.98 185 M 1263.74 185"/></g><rect x="1269" y="159" width="9" height="29" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1273.23 175.4 Q 1271.92 175.4 1269.88 174.7 L 1269.88 172.48 Q 1272.08 173.72 1273.49 173.72 Q 1274.58 173.72 1275.24 173.02 Q 1275.91 172.33 1275.91 171.19 Q 1275.91 170.26 1275.47 169.61 Q 1275.04 168.96 1273.87 168.16 L 1272.97 167.53 Q 1271.31 166.37 1270.63 165.35 Q 1269.95 164.33 1269.95 162.97 Q 1269.95 161.14 1271.04 159.96 Q 1272.13 158.78 1273.82 158.78 Q 1275.32 158.78 1276.99 159.39 L 1276.99 161.44 Q 1274.93 160.46 1273.92 160.46 Q 1272.96 160.46 1272.34 161.08 Q 1271.72 161.7 1271.72 162.64 Q 1271.72 163.43 1272.17 164.04 Q 1272.63 164.65 1273.84 165.49 L 1274.77 166.14 Q 1276.46 167.3 1277.13 168.34 Q 1277.8 169.38 1277.8 170.83 Q 1277.8 172.89 1276.55 174.14 Q 1275.29 175.4 1273.23 175.4 M 1273.23 175.4"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1277.18 182.92 Q 1275.49 183.07 1274.24 183.07 Q 1272.02 183.07 1270.84 182.69 Q 1269.65 182.31 1269.65 181.59 Q 1269.65 180.89 1270.85 180.5 Q 1272.05 180.11 1274.22 180.11 Q 1275.64 180.11 1277.17 180.24 L 1277.17 180.61 Q 1275.25 180.41 1274.22 180.41 Q 1272.72 180.41 1271.88 180.72 Q 1271.05 181.03 1271.05 181.59 Q 1271.05 182.15 1271.94 182.46 Q 1272.84 182.77 1274.44 182.77 Q 1275.1 182.77 1275.87 182.7 L 1275.87 181.78 L 1277.18 181.78 M 1277.18 182.92"/></g><g style="fill: rgb(255,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1274.18 185.03 Q 1272.01 185.03 1270.83 184.85 Q 1269.65 184.68 1269.65 184.35 Q 1269.65 184.03 1270.86 183.85 Q 1272.06 183.67 1274.24 183.67 Q 1275.49 183.67 1277.17 183.72 L 1277.17 183.9 Q 1275.26 183.8 1274.22 183.8 Q 1272.71 183.8 1271.88 183.95 Q 1271.05 184.09 1271.05 184.35 Q 1271.05 184.6 1271.94 184.74 Q 1272.82 184.89 1274.36 184.89 Q 1275.67 184.89 1277.18 184.78 L 1277.18 184.93 Q 1275.81 185.03 1274.18 185.03 M 1274.18 185.03"/></g><rect x="1278" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1279.2 177 L 1279.2 151.28 L 1282.29 151.28 Q 1283.67 151.28 1284.52 152.13 Q 1285.37 152.98 1285.99 155.02 Q 1286.98 158.25 1286.98 163.53 Q 1286.98 169.94 1285.75 173.47 Q 1284.53 177 1282.31 177 M 1279.2 177 M 1280.52 174.27 L 1282.21 174.27 Q 1284.01 174.27 1284.77 171.58 Q 1285.58 168.71 1285.58 163.88 Q 1285.58 159.34 1284.78 156.75 Q 1284.3 155.17 1283.62 154.59 Q 1282.95 154.01 1281.6 154.01 L 1280.52 154.01 M 1280.52 174.27"/></g><rect x="1287" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1290.74 177 L 1287.23 151.28 L 1288.54 151.28 L 1291.42 172.34 L 1294.19 151.28 L 1295.35 151.28 L 1291.98 177 M 1290.74 177"/></g><rect x="1296" y="162" width="9" height="26" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1299.98 175 L 1299.98 163.53 L 1296.13 163.53 L 1296.13 162.17 L 1305.36 162.17 L 1305.36 163.53 L 1301.52 163.53 L 1301.52 175 M 1299.98 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1299.74 184 L 1296.23 178.95 L 1297.54 178.95 L 1300.42 183.09 L 1303.19 178.95 L 1304.35 178.95 L 1300.98 184 M 1299.74 184"/></g><rect x="1305" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1307.78 177 L 1307.78 151.28 L 1310.86 151.28 L 1310.86 177 M 1307.78 177"/></g><rect x="1314" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1315.68 177 L 1315.68 151.28 L 1322.95 151.28 L 1322.95 154.01 L 1317.52 154.01 L 1317.52 162.26 L 1322.07 162.26 L 1322.07 164.96 L 1317.52 164.96 L 1317.52 174.27 L 1323.33 174.27 L 1323.33 177 M 1315.68 177"/></g><rect x="1323" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1326.98 177 L 1326.98 154.01 L 1323.13 154.01 L 1323.13 151.28 L 1332.36 151.28 L 1332.36 154.01 L 1328.52 154.01 L 1328.52 177 M 1326.98 177"/></g><rect x="1332" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1333.2 177 L 1333.2 151.28 L 1334.52 151.28 L 1334.52 162.12 L 1338.94 162.12 L 1338.94 151.28 L 1340.26 151.28 L 1340.26 177 L 1338.94 177 L 1338.94 164.85 L 1334.52 164.85 L 1334.52 177 M 1333.2 177"/></g><rect x="1341" y="154" width="9" height="34" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1342.2 176 L 1342.2 154.14 L 1343.44 154.14 L 1343.44 164.89 L 1347.2 154.14 L 1348.52 154.14 L 1344.88 164.57 L 1349.17 176 L 1347.5 176 L 1343.44 164.92 L 1343.44 176 M 1342.2 176"/></g><g style="fill: rgb(100,100,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1342.4 184 L 1342.4 182.48 L 1345.68 182.48 Q 1347.24 182.48 1348.07 182.57 Q 1348.9 182.67 1348.9 182.85 Q 1348.9 183.16 1346.71 183.29 L 1350.33 184 L 1348.44 184 L 1345.36 183.36 L 1343.92 183.36 L 1343.92 184 M 1342.4 184 M 1343.92 183.19 L 1344.42 183.19 Q 1347.32 183.19 1347.32 182.87 Q 1347.32 182.64 1344.89 182.64 L 1343.92 182.64 M 1343.92 183.19"/></g><rect x="1350" y="151" width="9" height="37" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1351.68 177 L 1351.68 151.28 L 1358.95 151.28 L 1358.95 154.01 L 1353.52 154.01 L 1353.52 162.26 L 1358.07 162.26 L 1358.07 164.96 L 1353.52 164.96 L 1353.52 174.27 L 1359.33 174.27 L 1359.33 177 M 1351.68 177"/></g><rect x="1359" y="159" width="9" height="29" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1360.68 175 L 1360.68 159.18 L 1367.95 159.18 L 1367.95 160.85 L 1362.52 160.85 L 1362.52 165.93 L 1367.07 165.93 L 1367.07 167.59 L 1362.52 167.59 L 1362.52 173.32 L 1368.33 173.32 L 1368.33 175 M 1360.68 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1364.91 181.92 L 1363.33 180.71 L 1361.74 181.92 M 1364.91 181.92 M 1366.3 183 L 1365.29 182.22 L 1361.35 182.22 L 1360.33 183 L 1359.11 183 L 1362.79 180.18 L 1364.1 180.18 L 1367.73 183 M 1366.3 183"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1360.2 185 L 1360.2 183.7 L 1363.29 183.7 Q 1364.67 183.7 1365.52 183.74 Q 1366.37 183.79 1366.99 183.89 Q 1367.98 184.05 1367.98 184.32 Q 1367.98 184.64 1366.75 184.82 Q 1365.53 185 1363.31 185 M 1360.2 185 M 1361.52 184.86 L 1363.21 184.86 Q 1365.01 184.86 1365.77 184.73 Q 1366.58 184.58 1366.58 184.34 Q 1366.58 184.11 1365.78 183.98 Q 1365.3 183.9 1364.62 183.87 Q 1363.95 183.84 1362.6 183.84 L 1361.52 183.84 M 1361.52 184.86"/></g><rect x="1368" y="164" width="9" height="24" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1369.68 175 L 1369.68 164.24 L 1376.95 164.24 L 1376.95 165.38 L 1371.52 165.38 L 1371.52 168.83 L 1376.07 168.83 L 1376.07 169.96 L 1371.52 169.96 L 1371.52 173.86 L 1377.33 173.86 L 1377.33 175 M 1369.68 175"/></g><g style="fill: rgb(255,0,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1369.2 183 L 1369.2 178.34 L 1372.29 178.34 Q 1373.67 178.34 1374.52 178.49 Q 1375.37 178.64 1375.99 179.01 Q 1376.98 179.6 1376.98 180.56 Q 1376.98 181.72 1375.75 182.36 Q 1374.53 183 1372.31 183 M 1369.2 183 M 1370.52 182.51 L 1372.21 182.51 Q 1374.01 182.51 1374.77 182.02 Q 1375.58 181.5 1375.58 180.62 Q 1375.58 179.8 1374.78 179.33 Q 1374.3 179.04 1373.62 178.94 Q 1372.95 178.83 1371.6 178.83 L 1370.52 178.83 M 1370.52 182.51"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1373.91 184.59 L 1372.33 184.12 L 1370.74 184.59 M 1373.91 184.59 M 1375.3 185 L 1374.29 184.7 L 1370.35 184.7 L 1369.33 185 L 1368.11 185 L 1371.79 183.92 L 1373.1 183.92 L 1376.73 185 M 1375.3 185"/></g><rect x="1377" y="159" width="9" height="29" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1378.68 175 L 1378.68 159.18 L 1380.52 159.18 L 1380.52 173.32 L 1386.38 173.32 L 1386.38 175 M 1378.68 175"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1379.78 183 L 1379.78 180.18 L 1382.86 180.18 L 1382.86 183 M 1379.78 183"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1377.93 185 L 1377.93 183.7 L 1379.35 183.7 L 1381.36 184.71 L 1383.42 183.7 L 1384.69 183.7 L 1384.69 185 L 1383.73 185 L 1383.73 183.94 L 1381.74 184.91 L 1380.75 184.91 L 1378.81 183.94 L 1378.81 185 M 1377.93 185"/></g><rect x="1386" y="170" width="9" height="18" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(0,255,0); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1389.98 176 L 1389.98 170.47 L 1386.13 170.47 L 1386.13 169.81 L 1395.36 169.81 L 1395.36 170.47 L 1391.52 170.47 L 1391.52 176 M 1389.98 176"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1389.74 182 L 1386.23 177.56 L 1387.54 177.56 L 1390.42 181.2 L 1393.19 177.56 L 1394.35 177.56 L 1390.98 182 M 1389.74 182"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1387.68 185 L 1387.68 184.19 L 1389.52 184.19 L 1389.52 184.91 L 1395.38 184.91 L 1395.38 185 M 1387.68 185"/></g><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1386.93 186 L 1386.93 185.19 L 1388.35 185.19 L 1390.36 185.82 L 1392.42 185.19 L 1393.69 185.19 L 1393.69 186 L 1392.73 186 L 1392.73 185.34 L 1390.74 185.95 L 1389.75 185.95 L 1387.81 185.34 L 1387.81 186 M 1386.93 186"/></g><rect x="1395" y="172" width="9" height="16" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1400.91 175.17 L 1399.33 173.11 L 1397.74 175.17 M 1400.91 175.17 M 1402.3 177 L 1401.29 175.67 L 1397.35 175.67 L 1396.33 177 L 1395.11 177 L 1398.79 172.22 L 1400.1 172.22 L 1403.73 177 M 1402.3 177"/></g><g style="fill: rgb(255,0,255); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1403.18 179.94 Q 1401.49 180.06 1400.24 180.06 Q 1398.02 180.06 1396.84 179.73 Q 1395.65 179.41 1395.65 178.8 Q 1395.65 178.21 1396.85 177.88 Q 1398.05 177.55 1400.22 177.55 Q 1401.64 177.55 1403.17 177.66 L 1403.17 177.97 Q 1401.25 177.8 1400.22 177.8 Q 1398.72 177.8 1397.88 178.07 Q 1397.05 178.33 1397.05 178.81 Q 1397.05 179.28 1397.94 179.54 Q 1398.84 179.81 1400.44 179.81 Q 1401.1 179.81 1401.87 179.75 L 1401.87 178.97 L 1403.18 178.97 M 1403.18 179.94"/></g><rect x="1404" y="186" width="9" height="2" style="fill: rgb(0,0,0); fill-opacity: 1.0" transform="matrix(1,0,0,1,0,214)" /><g style="fill: rgb(255,175,175); fill-opacity: 1.0; stroke: none" transform="matrix(1,0,0,1,0,214)" ><path d="M 1409.91 185.97 L 1408.33 185.93 L 1406.74 185.97 M 1409.91 185.97 M 1411.3 186 L 1410.29 185.98 L 1406.35 185.98 L 1405.33 186 L 1404.11 186 L 1407.79 185.91 L 1409.1 185.91 L 1412.73 186 M 1411.3 186"/></g></svg>
+</div></div></div></div><script language="JavaScript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
+<script language="JavaScript" type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
+<script>
+var subCatContainer = $(".sub-category-container");
+subCatContainer.scroll(
+function() {
+subCatContainer.scrollTop($(this).scrollTop());
+});
+</script></hmtl>
\ No newline at end of file
--- /dev/null
+!!AA_MULTIPLE_ALIGNMENT 1.0
+
+ MSF: 157 Type: P Check: 4683 ..
+
+
+ Name: FER_CAPAA/1-157 Len: 157 Check: 3320 Weight: 1.00
+ Name: FER_CAPAN/1-145 Len: 157 Check: 2597 Weight: 1.00
+ Name: FER1_SOLLC/1-145 Len: 157 Check: 3815 Weight: 1.00
+ Name: Q93XJ9_SOLTU/1-145 Len: 157 Check: 4240 Weight: 1.00
+ Name: FER1_PEA/1-150 Len: 157 Check: 9547 Weight: 1.00
+ Name: Q7XA98_TRIPR/1-153 Len: 157 Check: 4969 Weight: 1.00
+ Name: FER1_MESCR/1-149 Len: 157 Check: 7664 Weight: 1.00
+ Name: FER1_SPIOL/1-148 Len: 157 Check: 5892 Weight: 1.00
+ Name: FER3_RAPSA/1-157 Len: 157 Check: 8715 Weight: 1.00
+ Name: FER1_ARATH/1-150 Len: 157 Check: 3201 Weight: 1.00
+ Name: FER_BRANA/1-157 Len: 157 Check: 7649 Weight: 1.00
+ Name: FER2_ARATH/1-150 Len: 157 Check: 4904 Weight: 1.00
+ Name: Q93Z60_ARATH/1-150 Len: 157 Check: 4436 Weight: 1.00
+ Name: FER1_MAIZE/1-150 Len: 157 Check: 4392 Weight: 1.00
+ Name: O80429_MAIZE/1-142 Len: 157 Check: 8858 Weight: 1.00
+ Name: 1A70|/1-156 Len: 156 Check: 484 Weight: 1.00
+
+
+//
+
+FER_CAPAA/1-157 ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~
+FER_CAPAN/1-145 MA......SV SATMISTSFM PRKPAVTSL. KPIPNVGE.. ALFGLKS.A.
+FER1_SOLLC/1-145 MA......SI SGTMISTSFL PRKPAVTSL. KAISNVGE.. ALFGLKS.G.
+Q93XJ9_SOLTU/1-145 MA......SI SGTMISTSFL PRKPVVTSL. KAISNVGE.. ALFGLKS.G.
+FER1_PEA/1-150 MATT...PAL YGTAVSTSFL RTQPMPMSV. TTTKAFSN.. GFLGLKT.SL
+Q7XA98_TRIPR/1-153 MATT...PAL YGTAVSTSFM RRQPVPMSV. ATTTTTKAFP SGFGLKSVST
+FER1_MESCR/1-149 MAAT..TAAL SGATMSTAFA PK..TPPMTA ALPTNVGR.. ALFGLKS.SA
+FER1_SPIOL/1-148 MAAT..TTTM MG..MATTFV PKPQAPPMMA ALPSNTGR.. SLFGLKT.GS
+FER3_RAPSA/1-157 ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~
+FER1_ARATH/1-150 MAST....AL SSAIVGTSFI RRSPAPISLR SLPSANTQ.. SLFGLKS.GT
+FER_BRANA/1-157 ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~
+FER2_ARATH/1-150 MAST....AL SSAIVSTSFL RRQQTPISLR SLPFANTQ.. SLFGLKS.ST
+Q93Z60_ARATH/1-150 MAST....AL SSAIVSTSFL RRQQTPISLR SLPFANTQ.. SLFGLKS.ST
+FER1_MAIZE/1-150 MATVLGSPRA PAFFFSSSSL RAAPAPTAV. .ALPAAKV.. GIMGRSA.SS
+O80429_MAIZE/1-142 MAAT...... ...ALSMSIL R...APPPCF SSPLRLRV.. AVAKPLA.AP
+1A70|/1-156 ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~
+
+FER_CAPAA/1-157 ~~~~~~~~~A SYKVKLITPD GPIEFDCPDD VYILDQAEEA GHDLPYSCRA
+FER_CAPAN/1-145 .NGGKVTCMA SYKVKLITPD GPIEFDCPDN VYILDQAEEA GHDLPYSCRA
+FER1_SOLLC/1-145 .RNGRITCMA SYKVKLITPE GPIEFECPDD VYILDQAEEE GHDLPYSCRA
+Q93XJ9_SOLTU/1-145 .RNGRITCMA SYKVKLITPD GPIEFECPDD VYILDQAEEE GHDLPYSCRA
+FER1_PEA/1-150 KRGDLAVAMA SYKVKLVTPD GTQEFECPSD VYILDHAEEV GIDLPYSCRA
+Q7XA98_TRIPR/1-153 KRGDLAVAMA TYKVKLITPE GPQEFDCPDD VYILDHAEEV GIELPYSCRA
+FER1_MESCR/1-149 SR.GRVTAMA AYKVTLVTPE GKQELECPDD VYILDAAEEA GIDLPYSCRA
+FER1_SPIOL/1-148 R..GGRMTMA AYKVTLVTPT GNVEFQCPDD VYILDAAEEE GIDLPYSCRA
+FER3_RAPSA/1-157 ~~~~~~~~~A TYKVKFITPE GEQEVECDDD VYVLDAAEEA GIDLPYSCRA
+FER1_ARATH/1-150 ARGGRVTAMA TYKVKFITPE GELEVECDDD VYVLDAAEEA GIDLPYSCRA
+FER_BRANA/1-157 ~~~~~~~~~A TYKVKFITPE GEQEVECDDD VYVLDAAEEA GIDLPYSCRA
+FER2_ARATH/1-150 ARGGRVTAMA TYKVKFITPE GEQEVECEED VYVLDAAEEA GLDLPYSCRA
+Q93Z60_ARATH/1-150 ARGGRVTAMA TYKVKFITPE GEQEVECEED VYVLDAAEEA GLDLPYSCRA
+FER1_MAIZE/1-150 RR..RLRAQA TYNVKLITPE GEVELQVPDD VYILDQAEED GIDLPYSCRA
+O80429_MAIZE/1-142 MRRQLLRAQA TYNVKLITPE GEVELQVPDD VYILDFAEEE GIDLPFSCRA
+1A70|/1-156 ~~~~~~~~~A AYKVTLVTPT GNVEFQCPDD VYILDAAEEE GIDLPYSCRA
+
+FER_CAPAA/1-157 GSCSSCAGKI AGGAVDQTDG NFLDDDQLEE GWVLTCVAYP QSDVTIETHK
+FER_CAPAN/1-145 GSCSSCAGKI AGGAVDQTDG NFLDDDQLEE GWVLTCVAYP QSDVTIETHK
+FER1_SOLLC/1-145 GSCSSCAGKV TAGSVDQSDG NFLDEDQEAA GFVLTCVAYP KGDVTIETHK
+Q93XJ9_SOLTU/1-145 GSCSSCAGKV TAGTVDQSDG KFLDDDQEAA GFVLTCVAYP KCDVTIETHK
+FER1_PEA/1-150 GSCSSCAGKV VGGEVDQSDG SFLDDEQIEA GFVLTCVAYP TSDVVIETHK
+Q7XA98_TRIPR/1-153 GSCSSCAGKV VNGNVNQEDG SFLDDEQIEG GWVLTCVAFP TSDVTIETHK
+FER1_MESCR/1-149 GSCSSCAGKV TSGSVNQDDG SFLDDDQIKE GWVLTCVAYP TGDVTIETHK
+FER1_SPIOL/1-148 GSCSSCAGKL KTGSLNQDDQ SFLDDDQIDE GWVLTCAAYP VSDVTIETHK
+FER3_RAPSA/1-157 GSCSSCAGKV VSGSVDQSDQ SFLDDDQIAE GFVLTCAAYP TSDVTIETHR
+FER1_ARATH/1-150 GSCSSCAGKV VSGSVDQSDQ SFLDDEQIGE GFVLTCAAYP TSDVTIETHK
+FER_BRANA/1-157 GSCSSCAGKV VSGFVDQSDE SFLDDDQIAE GFVLTCAAYP TSDVTIETHK
+FER2_ARATH/1-150 GSCSSCAGKV VSGSIDQSDQ SFLDDEQMSE GYVLTCVAYP TSDVVIETHK
+Q93Z60_ARATH/1-150 GSCSSCAGKV VSGSIDQSDQ SFLDD~~~~~ ~~~~~~~~~~ ~~~~~~~~~~
+FER1_MAIZE/1-150 GSCSSCAGKV VSGSVDQSDQ SYLDDGQIAD GWVLTCHAYP TSDVVIETHK
+O80429_MAIZE/1-142 GSCSSCAGKV VSGSVDQSDQ SFLNDNQVAD GWVLTCAAYP TSDVVIETHK
+1A70|/1-156 GSCSSCAGKL KTGSLNQDDQ SFLDDDQIDE GWVLTCAAYP VSDVTIETHK
+
+FER_CAPAA/1-157 EAELVG~
+FER_CAPAN/1-145 EAELVG~
+FER1_SOLLC/1-145 EEELTA~
+Q93XJ9_SOLTU/1-145 EEELTA~
+FER1_PEA/1-150 EEDLTA~
+Q7XA98_TRIPR/1-153 EEELTA~
+FER1_MESCR/1-149 EEELTA~
+FER1_SPIOL/1-148 EEELTA~
+FER3_RAPSA/1-157 EEDMV~~
+FER1_ARATH/1-150 EEDIV~~
+FER_BRANA/1-157 EEELV~~
+FER2_ARATH/1-150 EEAIM~~
+Q93Z60_ARATH/1-150 ~~~~~~~
+FER1_MAIZE/1-150 EEELTGA
+O80429_MAIZE/1-142 EDDLL~~
+1A70|/1-156 KEELTA
+
--- /dev/null
+FER_CAPAA/1-97 -----------------------------------------------------------ASYKVKLITPDGPIEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDVTIETHKEAELVG-
+FER_CAPAN/1-144 MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMASYKVKLITPDGPIEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDVTIETHKEAELVG-
+FER1_SOLLC/1-144 MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPEGPIEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDGNFLDEDQEAAGFVLTCVAYPKGDVTIETHKEEELTA-
+Q93XJ9_SOLTU/1-144 MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPDGPIEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDGKFLDDDQEAAGFVLTCVAYPKCDVTIETHKEEELTA-
+FER1_PEA/1-149 MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMASYKVKLVTPDGTQEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDGSFLDDEQIEAGFVLTCVAYPTSDVVIETHKEEDLTA-
+Q7XA98_TRIPR/1-152 MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMATYKVKLITPEGPQEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDGSFLDDEQIEGGWVLTCVAFPTSDVTIETHKEEELTA-
+FER1_MESCR/1-148 MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMAAYKVTLVTPEGKQELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDGSFLDDDQIKEGWVLTCVAYPTGDVTIETHKEEELTA-
+FER1_SPIOL/1-147 MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMAAYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDVTIETHKEEELTA-
+FER3_RAPSA/1-96 -----------------------------------------------------------ATYKVKFITPEGEQEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDDQIAEGFVLTCAAYPTSDVTIETHREEDMV--
+FER1_ARATH/1-148 MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMATYKVKFITPEGELEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDEQIGEGFVLTCAAYPTSDVTIETHKEEDIV--
+FER_BRANA/1-96 -----------------------------------------------------------ATYKVKFITPEGEQEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDESFLDDDQIAEGFVLTCAAYPTSDVTIETHKEEELV--
+FER2_ARATH/1-148 MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGEQEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDDEQMSEGYVLTCVAYPTSDVVIETHKEEAIM--
+Q93Z60_ARATH/1-118 MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGEQEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDD--------------------------------
+FER1_MAIZE/1-150 MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQATYNVKLITPEGEVELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDVVIETHKEEELTGA
+O80429_MAIZE/1-140 MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQATYNVKLITPEGEVELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQSFLNDNQVADGWVLTCAAYPTSDVVIETHKEDDLL--
+1A70|/1-97 -----------------------------------------------------------AAYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDVTIETHKKEELTA
+
--- /dev/null
+PileUp
+
+ MSF: 157 Type: P Check: 1935 ..
+
+
+ Name: FER_CAPAA/1-97 oo Len: 157 Check: 5701 Weight: 1.00
+ Name: FER_CAPAN/1-144 oo Len: 157 Check: 8823 Weight: 1.00
+ Name: FER1_SOLLC/1-144 oo Len: 157 Check: 41 Weight: 1.00
+ Name: Q93XJ9_SOLTU/1-144 oo Len: 157 Check: 466 Weight: 1.00
+ Name: FER1_PEA/1-149 oo Len: 157 Check: 5889 Weight: 1.00
+ Name: Q7XA98_TRIPR/1-152 oo Len: 157 Check: 1438 Weight: 1.00
+ Name: FER1_MESCR/1-148 oo Len: 157 Check: 3943 Weight: 1.00
+ Name: FER1_SPIOL/1-147 oo Len: 157 Check: 2139 Weight: 1.00
+ Name: FER3_RAPSA/1-96 oo Len: 157 Check: 7694 Weight: 1.00
+ Name: FER1_ARATH/1-148 oo Len: 157 Check: 6163 Weight: 1.00
+ Name: FER_BRANA/1-96 oo Len: 157 Check: 6628 Weight: 1.00
+ Name: FER2_ARATH/1-148 oo Len: 157 Check: 7866 Weight: 1.00
+ Name: Q93Z60_ARATH/1-118 oo Len: 157 Check: 3003 Weight: 1.00
+ Name: FER1_MAIZE/1-150 oo Len: 157 Check: 4097 Weight: 1.00
+ Name: O80429_MAIZE/1-140 oo Len: 157 Check: 1696 Weight: 1.00
+ Name: 1A70|/1-97 oo Len: 156 Check: 6348 Weight: 1.00
+
+
+//
+
+FER_CAPAA/1-97 ---------- ---------- ---------- ---------- ----------
+FER_CAPAN/1-144 MA------SV SATMISTSFM PRKPAVTSL- KPIPNVGE-- ALFGLKS-A-
+FER1_SOLLC/1-144 MA------SI SGTMISTSFL PRKPAVTSL- KAISNVGE-- ALFGLKS-G-
+Q93XJ9_SOLTU/1-144 MA------SI SGTMISTSFL PRKPVVTSL- KAISNVGE-- ALFGLKS-G-
+FER1_PEA/1-149 MATT---PAL YGTAVSTSFL RTQPMPMSV- TTTKAFSN-- GFLGLKT-SL
+Q7XA98_TRIPR/1-152 MATT---PAL YGTAVSTSFM RRQPVPMSV- ATTTTTKAFP SGFGLKSVST
+FER1_MESCR/1-148 MAAT--TAAL SGATMSTAFA PK--TPPMTA ALPTNVGR-- ALFGLKS-SA
+FER1_SPIOL/1-147 MAAT--TTTM MG--MATTFV PKPQAPPMMA ALPSNTGR-- SLFGLKT-GS
+FER3_RAPSA/1-96 ---------- ---------- ---------- ---------- ----------
+FER1_ARATH/1-148 MAST----AL SSAIVGTSFI RRSPAPISLR SLPSANTQ-- SLFGLKS-GT
+FER_BRANA/1-96 ---------- ---------- ---------- ---------- ----------
+FER2_ARATH/1-148 MAST----AL SSAIVSTSFL RRQQTPISLR SLPFANTQ-- SLFGLKS-ST
+Q93Z60_ARATH/1-118 MAST----AL SSAIVSTSFL RRQQTPISLR SLPFANTQ-- SLFGLKS-ST
+FER1_MAIZE/1-150 MATVLGSPRA PAFFFSSSSL RAAPAPTAV- -ALPAAKV-- GIMGRSA-SS
+O80429_MAIZE/1-140 MAAT------ ---ALSMSIL R---APPPCF SSPLRLRV-- AVAKPLA-AP
+1A70|/1-97 ---------- ---------- ---------- ---------- ----------
+
+FER_CAPAA/1-97 ---------A SYKVKLITPD GPIEFDCPDD VYILDQAEEA GHDLPYSCRA
+FER_CAPAN/1-144 -NGGKVTCMA SYKVKLITPD GPIEFDCPDN VYILDQAEEA GHDLPYSCRA
+FER1_SOLLC/1-144 -RNGRITCMA SYKVKLITPE GPIEFECPDD VYILDQAEEE GHDLPYSCRA
+Q93XJ9_SOLTU/1-144 -RNGRITCMA SYKVKLITPD GPIEFECPDD VYILDQAEEE GHDLPYSCRA
+FER1_PEA/1-149 KRGDLAVAMA SYKVKLVTPD GTQEFECPSD VYILDHAEEV GIDLPYSCRA
+Q7XA98_TRIPR/1-152 KRGDLAVAMA TYKVKLITPE GPQEFDCPDD VYILDHAEEV GIELPYSCRA
+FER1_MESCR/1-148 SR-GRVTAMA AYKVTLVTPE GKQELECPDD VYILDAAEEA GIDLPYSCRA
+FER1_SPIOL/1-147 R--GGRMTMA AYKVTLVTPT GNVEFQCPDD VYILDAAEEE GIDLPYSCRA
+FER3_RAPSA/1-96 ---------A TYKVKFITPE GEQEVECDDD VYVLDAAEEA GIDLPYSCRA
+FER1_ARATH/1-148 ARGGRVTAMA TYKVKFITPE GELEVECDDD VYVLDAAEEA GIDLPYSCRA
+FER_BRANA/1-96 ---------A TYKVKFITPE GEQEVECDDD VYVLDAAEEA GIDLPYSCRA
+FER2_ARATH/1-148 ARGGRVTAMA TYKVKFITPE GEQEVECEED VYVLDAAEEA GLDLPYSCRA
+Q93Z60_ARATH/1-118 ARGGRVTAMA TYKVKFITPE GEQEVECEED VYVLDAAEEA GLDLPYSCRA
+FER1_MAIZE/1-150 RR--RLRAQA TYNVKLITPE GEVELQVPDD VYILDQAEED GIDLPYSCRA
+O80429_MAIZE/1-140 MRRQLLRAQA TYNVKLITPE GEVELQVPDD VYILDFAEEE GIDLPFSCRA
+1A70|/1-97 ---------A AYKVTLVTPT GNVEFQCPDD VYILDAAEEE GIDLPYSCRA
+
+FER_CAPAA/1-97 GSCSSCAGKI AGGAVDQTDG NFLDDDQLEE GWVLTCVAYP QSDVTIETHK
+FER_CAPAN/1-144 GSCSSCAGKI AGGAVDQTDG NFLDDDQLEE GWVLTCVAYP QSDVTIETHK
+FER1_SOLLC/1-144 GSCSSCAGKV TAGSVDQSDG NFLDEDQEAA GFVLTCVAYP KGDVTIETHK
+Q93XJ9_SOLTU/1-144 GSCSSCAGKV TAGTVDQSDG KFLDDDQEAA GFVLTCVAYP KCDVTIETHK
+FER1_PEA/1-149 GSCSSCAGKV VGGEVDQSDG SFLDDEQIEA GFVLTCVAYP TSDVVIETHK
+Q7XA98_TRIPR/1-152 GSCSSCAGKV VNGNVNQEDG SFLDDEQIEG GWVLTCVAFP TSDVTIETHK
+FER1_MESCR/1-148 GSCSSCAGKV TSGSVNQDDG SFLDDDQIKE GWVLTCVAYP TGDVTIETHK
+FER1_SPIOL/1-147 GSCSSCAGKL KTGSLNQDDQ SFLDDDQIDE GWVLTCAAYP VSDVTIETHK
+FER3_RAPSA/1-96 GSCSSCAGKV VSGSVDQSDQ SFLDDDQIAE GFVLTCAAYP TSDVTIETHR
+FER1_ARATH/1-148 GSCSSCAGKV VSGSVDQSDQ SFLDDEQIGE GFVLTCAAYP TSDVTIETHK
+FER_BRANA/1-96 GSCSSCAGKV VSGFVDQSDE SFLDDDQIAE GFVLTCAAYP TSDVTIETHK
+FER2_ARATH/1-148 GSCSSCAGKV VSGSIDQSDQ SFLDDEQMSE GYVLTCVAYP TSDVVIETHK
+Q93Z60_ARATH/1-118 GSCSSCAGKV VSGSIDQSDQ SFLDD----- ---------- ----------
+FER1_MAIZE/1-150 GSCSSCAGKV VSGSVDQSDQ SYLDDGQIAD GWVLTCHAYP TSDVVIETHK
+O80429_MAIZE/1-140 GSCSSCAGKV VSGSVDQSDQ SFLNDNQVAD GWVLTCAAYP TSDVVIETHK
+1A70|/1-97 GSCSSCAGKL KTGSLNQDDQ SFLDDDQIDE GWVLTCAAYP VSDVTIETHK
+
+FER_CAPAA/1-97 EAELVG-
+FER_CAPAN/1-144 EAELVG-
+FER1_SOLLC/1-144 EEELTA-
+Q93XJ9_SOLTU/1-144 EEELTA-
+FER1_PEA/1-149 EEDLTA-
+Q7XA98_TRIPR/1-152 EEELTA-
+FER1_MESCR/1-148 EEELTA-
+FER1_SPIOL/1-147 EEELTA-
+FER3_RAPSA/1-96 EEDMV--
+FER1_ARATH/1-148 EEDIV--
+FER_BRANA/1-96 EEELV--
+FER2_ARATH/1-148 EEAIM--
+Q93Z60_ARATH/1-118 -------
+FER1_MAIZE/1-150 EEELTGA
+O80429_MAIZE/1-140 EDDLL--
+1A70|/1-97 KEELTA
+
--- /dev/null
+>P1;FER_CAPAA/1-97
+Ferredoxin
+-----------------------------------------------------------ASYKVKLITPDGP
+IEFDCPDDVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV
+TIETHKEAELVG-*
+>P1;FER_CAPAN/1-144
+Ferredoxin, chloroplast precursor
+MA------SVSATMISTSFMPRKPAVTSL-KPIPNVGE--ALFGLKS-A--NGGKVTCMASYKVKLITPDGP
+IEFDCPDNVYILDQAEEAGHDLPYSCRAGSCSSCAGKIAGGAVDQTDGNFLDDDQLEEGWVLTCVAYPQSDV
+TIETHKEAELVG-*
+>P1;FER1_SOLLC/1-144
+Ferredoxin-1, chloroplast precursor
+MA------SISGTMISTSFLPRKPAVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPEGP
+IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGSVDQSDGNFLDEDQEAAGFVLTCVAYPKGDV
+TIETHKEEELTA-*
+>P1;Q93XJ9_SOLTU/1-144
+Ferredoxin I precursor
+MA------SISGTMISTSFLPRKPVVTSL-KAISNVGE--ALFGLKS-G--RNGRITCMASYKVKLITPDGP
+IEFECPDDVYILDQAEEEGHDLPYSCRAGSCSSCAGKVTAGTVDQSDGKFLDDDQEAAGFVLTCVAYPKCDV
+TIETHKEEELTA-*
+>P1;FER1_PEA/1-149
+Ferredoxin-1, chloroplast precursor
+MATT---PALYGTAVSTSFLRTQPMPMSV-TTTKAFSN--GFLGLKT-SLKRGDLAVAMASYKVKLVTPDGT
+QEFECPSDVYILDHAEEVGIDLPYSCRAGSCSSCAGKVVGGEVDQSDGSFLDDEQIEAGFVLTCVAYPTSDV
+VIETHKEEDLTA-*
+>P1;Q7XA98_TRIPR/1-152
+Ferredoxin I
+MATT---PALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGFGLKSVSTKRGDLAVAMATYKVKLITPEGP
+QEFDCPDDVYILDHAEEVGIELPYSCRAGSCSSCAGKVVNGNVNQEDGSFLDDEQIEGGWVLTCVAFPTSDV
+TIETHKEEELTA-*
+>P1;FER1_MESCR/1-148
+Ferredoxin-1, chloroplast precursor
+MAAT--TAALSGATMSTAFAPK--TPPMTAALPTNVGR--ALFGLKS-SASR-GRVTAMAAYKVTLVTPEGK
+QELECPDDVYILDAAEEAGIDLPYSCRAGSCSSCAGKVTSGSVNQDDGSFLDDDQIKEGWVLTCVAYPTGDV
+TIETHKEEELTA-*
+>P1;FER1_SPIOL/1-147
+Ferredoxin-1, chloroplast precursor
+MAAT--TTTMMG--MATTFVPKPQAPPMMAALPSNTGR--SLFGLKT-GSR--GGRMTMAAYKVTLVTPTGN
+VEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDV
+TIETHKEEELTA-*
+>P1;FER3_RAPSA/1-96
+Ferredoxin, leaf L-A
+-----------------------------------------------------------ATYKVKFITPEGE
+QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDDQIAEGFVLTCAAYPTSDV
+TIETHREEDMV--*
+>P1;FER1_ARATH/1-148
+Ferredoxin-1, chloroplast precursor
+MAST----ALSSAIVGTSFIRRSPAPISLRSLPSANTQ--SLFGLKS-GTARGGRVTAMATYKVKFITPEGE
+LEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSFLDDEQIGEGFVLTCAAYPTSDV
+TIETHKEEDIV--*
+>P1;FER_BRANA/1-96
+Ferredoxin
+-----------------------------------------------------------ATYKVKFITPEGE
+QEVECDDDVYVLDAAEEAGIDLPYSCRAGSCSSCAGKVVSGFVDQSDESFLDDDQIAEGFVLTCAAYPTSDV
+TIETHKEEELV--*
+>P1;FER2_ARATH/1-148
+Ferredoxin-2, chloroplast precursor
+MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE
+QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDDEQMSEGYVLTCVAYPTSDV
+VIETHKEEAIM--*
+>P1;Q93Z60_ARATH/1-118
+At1g10960/T19D16_12
+MAST----ALSSAIVSTSFLRRQQTPISLRSLPFANTQ--SLFGLKS-STARGGRVTAMATYKVKFITPEGE
+QEVECEEDVYVLDAAEEAGLDLPYSCRAGSCSSCAGKVVSGSIDQSDQSFLDD-------------------
+-------------*
+>P1;FER1_MAIZE/1-150
+Ferredoxin-1, chloroplast precursor
+MATVLGSPRAPAFFFSSSSLRAAPAPTAV--ALPAAKV--GIMGRSA-SSRR--RLRAQATYNVKLITPEGE
+VELQVPDDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDV
+VIETHKEEELTGA*
+>P1;O80429_MAIZE/1-140
+Ferredoxin
+MAAT---------ALSMSILR---APPPCFSSPLRLRV--AVAKPLA-APMRRQLLRAQATYNVKLITPEGE
+VELQVPDDVYILDFAEEEGIDLPFSCRAGSCSSCAGKVVSGSVDQSDQSFLNDNQVADGWVLTCAAYPTSDV
+VIETHKEDDLL--*
+>P1;1A70|/1-97
+1A70| 97 residues
+-----------------------------------------------------------AAYKVTLVTPTGN
+VEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDV
+TIETHKKEELTA*
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE rnaml SYSTEM "rnaml.dtd">
+
+<rnaml version="1.0">
+
+ <molecule id="1">
+ <sequence>
+ <numbering-system id="1" used-in-file="false">
+ <numbering-range>
+ <start>1</start>
+ <end>89</end>
+ </numbering-range>
+ </numbering-system>
+ <numbering-table length="89" comment="sequence number in pdb file">
+ 1 2 3 4 5 6 7 8 9 10
+ 11 12 13 14 15 16 17 18 19 20
+ 21 22 23 24 25 26 27 28 29 30
+ 31 32 33 34 35 36 37 38 39 40
+ 41 42 43 44 45 46 47 48 49 50
+ 51 52 53 54 55 56 57 58 59 60
+ 61 62 63 64 65 66 67 68 69 70
+ 71 72 73 74 75 76 77 78 79 80
+ 81 82 83 84 85 86 87 88 89
+ </numbering-table>
+ <seq-data>
+ GGAGAGUAGA UGAUUCGCGU UAAGCGUGUG UGAAUGGGAU GUCGUCACAC AACGAAGCGA
+ GAGCGCGGUG AAUCAUUGCA UCCGCUCCA
+ </seq-data>
+ <seq-annotation comment="?">
+ <segment>
+ <seg-name>LOOP1</seg-name>
+ <base-id-5p><base-id><position>60</position></base-id></base-id-5p>
+ <base-id-3p><base-id><position>61</position></base-id></base-id-3p>
+ </segment>
+ </seq-annotation>
+ </sequence>
+ <structure>
+ <model id="?">
+ <model-info>
+ <method>Crystallography ?</method>
+ <resolution>? Angstroms</resolution>
+ </model-info>
+ <base>
+ <position>1</position>
+ <base-type>G</base-type>
+ <atom serial="1">
+ <atom-type> P </atom-type>
+ <coordinates>39.406 -40.727 -8.772</coordinates>
+ </atom>
+ <atom serial="9">
+ <atom-type> O3'</atom-type>
+ <coordinates>35.728 -40.286 -12.682</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>2</position>
+ <base-type>G</base-type>
+ <atom serial="24">
+ <atom-type> P </atom-type>
+ <coordinates>34.946 -38.900 -12.475</coordinates>
+ </atom>
+ <atom serial="32">
+ <atom-type> O3'</atom-type>
+ <coordinates>30.080 -38.122 -13.566</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>3</position>
+ <base-type>A</base-type>
+ <atom serial="47">
+ <atom-type> P </atom-type>
+ <coordinates>29.830 -36.592 -13.144</coordinates>
+ </atom>
+ <atom serial="55">
+ <atom-type> O3'</atom-type>
+ <coordinates>25.299 -34.832 -11.157</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>4</position>
+ <base-type>G</base-type>
+ <atom serial="69">
+ <atom-type> P </atom-type>
+ <coordinates>25.525 -33.291 -10.748</coordinates>
+ </atom>
+ <atom serial="77">
+ <atom-type> O3'</atom-type>
+ <coordinates>22.725 -31.357 -6.447</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>5</position>
+ <base-type>A</base-type>
+ <atom serial="92">
+ <atom-type> P </atom-type>
+ <coordinates>23.004 -29.821 -6.080</coordinates>
+ </atom>
+ <atom serial="100">
+ <atom-type> O3'</atom-type>
+ <coordinates>21.811 -28.069 -1.298</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>6</position>
+ <base-type>G</base-type>
+ <atom serial="114">
+ <atom-type> P </atom-type>
+ <coordinates>21.792 -26.530 -1.767</coordinates>
+ </atom>
+ <atom serial="122">
+ <atom-type> O3'</atom-type>
+ <coordinates>24.489 -23.234 1.411</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>7</position>
+ <base-type>U</base-type>
+ <atom serial="137">
+ <atom-type> P </atom-type>
+ <coordinates>24.494 -21.833 0.618</coordinates>
+ </atom>
+ <atom serial="145">
+ <atom-type> O3'</atom-type>
+ <coordinates>26.796 -17.886 2.729</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>8</position>
+ <base-type>A</base-type>
+ <atom serial="157">
+ <atom-type> P </atom-type>
+ <coordinates>25.940 -16.593 2.288</coordinates>
+ </atom>
+ <atom serial="165">
+ <atom-type> O3'</atom-type>
+ <coordinates>27.995 -11.947 1.918</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>9</position>
+ <base-type>G</base-type>
+ <atom serial="179">
+ <atom-type> P </atom-type>
+ <coordinates>26.631 -11.127 1.714</coordinates>
+ </atom>
+ <atom serial="187">
+ <atom-type> O3'</atom-type>
+ <coordinates>25.187 -8.816 -3.450</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>10</position>
+ <base-type>A</base-type>
+ <atom serial="202">
+ <atom-type> P </atom-type>
+ <coordinates>23.765 -8.232 -3.892</coordinates>
+ </atom>
+ <atom serial="210">
+ <atom-type> O3'</atom-type>
+ <coordinates>22.114 -8.019 -8.607</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>11</position>
+ <base-type>U</base-type>
+ <atom serial="224">
+ <atom-type> P </atom-type>
+ <coordinates>20.793 -7.127 -8.411</coordinates>
+ </atom>
+ <atom serial="232">
+ <atom-type> O3'</atom-type>
+ <coordinates>16.589 -7.608 -11.167</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>12</position>
+ <base-type>G</base-type>
+ <atom serial="244">
+ <atom-type> P </atom-type>
+ <coordinates>15.563 -6.541 -10.537</coordinates>
+ </atom>
+ <atom serial="252">
+ <atom-type> O3'</atom-type>
+ <coordinates>10.446 -7.534 -10.495</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>13</position>
+ <base-type>A</base-type>
+ <atom serial="267">
+ <atom-type> P </atom-type>
+ <coordinates>9.719 -6.369 -9.662</coordinates>
+ </atom>
+ <atom serial="275">
+ <atom-type> O3'</atom-type>
+ <coordinates>5.301 -7.413 -7.169</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>14</position>
+ <base-type>U</base-type>
+ <atom serial="289">
+ <atom-type> P </atom-type>
+ <coordinates>4.913 -6.043 -6.428</coordinates>
+ </atom>
+ <atom serial="297">
+ <atom-type> O3'</atom-type>
+ <coordinates>2.471 -6.216 -1.841</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>15</position>
+ <base-type>U</base-type>
+ <atom serial="309">
+ <atom-type> P </atom-type>
+ <coordinates>2.306 -4.695 -1.355</coordinates>
+ </atom>
+ <atom serial="317">
+ <atom-type> O3'</atom-type>
+ <coordinates>2.523 -3.519 3.678</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>16</position>
+ <base-type>C</base-type>
+ <atom serial="329">
+ <atom-type> P </atom-type>
+ <coordinates>2.410 -1.916 3.716</coordinates>
+ </atom>
+ <atom serial="337">
+ <atom-type> O3'</atom-type>
+ <coordinates>4.861 0.478 7.750</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>17</position>
+ <base-type>G</base-type>
+ <atom serial="349">
+ <atom-type> P </atom-type>
+ <coordinates>5.097 2.068 7.705</coordinates>
+ </atom>
+ <atom serial="357">
+ <atom-type> O3'</atom-type>
+ <coordinates>9.837 5.342 8.056</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>18</position>
+ <base-type>C</base-type>
+ <atom serial="372">
+ <atom-type> P </atom-type>
+ <coordinates>9.957 6.906 7.713</coordinates>
+ </atom>
+ <atom serial="380">
+ <atom-type> O3'</atom-type>
+ <coordinates>14.285 9.278 6.633</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>19</position>
+ <base-type>G</base-type>
+ <atom serial="392">
+ <atom-type> P </atom-type>
+ <coordinates>13.701 10.760 6.394</coordinates>
+ </atom>
+ <atom serial="400">
+ <atom-type> O3'</atom-type>
+ <coordinates>16.027 13.756 2.831</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>20</position>
+ <base-type>U</base-type>
+ <atom serial="415">
+ <atom-type> P </atom-type>
+ <coordinates>15.167 15.091 3.070</coordinates>
+ </atom>
+ <atom serial="423">
+ <atom-type> O3'</atom-type>
+ <coordinates>13.625 17.842 -0.910</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>21</position>
+ <base-type>U</base-type>
+ <atom serial="435">
+ <atom-type> P </atom-type>
+ <coordinates>12.758 18.952 -0.136</coordinates>
+ </atom>
+ <atom serial="443">
+ <atom-type> O3'</atom-type>
+ <coordinates>18.055 19.867 1.942</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>22</position>
+ <base-type>A</base-type>
+ <atom serial="455">
+ <atom-type> P </atom-type>
+ <coordinates>19.169 19.634 0.806</coordinates>
+ </atom>
+ <atom serial="463">
+ <atom-type> O3'</atom-type>
+ <coordinates>21.578 14.723 -0.062</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>23</position>
+ <base-type>A</base-type>
+ <atom serial="477">
+ <atom-type> P </atom-type>
+ <coordinates>23.185 14.817 -0.069</coordinates>
+ </atom>
+ <atom serial="485">
+ <atom-type> O3'</atom-type>
+ <coordinates>24.197 10.234 2.787</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>24</position>
+ <base-type>G</base-type>
+ <atom serial="499">
+ <atom-type> P </atom-type>
+ <coordinates>25.187 9.332 1.904</coordinates>
+ </atom>
+ <atom serial="507">
+ <atom-type> O3'</atom-type>
+ <coordinates>23.533 4.428 0.543</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>25</position>
+ <base-type>C</base-type>
+ <atom serial="522">
+ <atom-type> P </atom-type>
+ <coordinates>24.698 3.762 -0.344</coordinates>
+ </atom>
+ <atom serial="530">
+ <atom-type> O3'</atom-type>
+ <coordinates>23.832 1.164 -4.830</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>26</position>
+ <base-type>G</base-type>
+ <atom serial="542">
+ <atom-type> P </atom-type>
+ <coordinates>25.358 0.687 -5.012</coordinates>
+ </atom>
+ <atom serial="550">
+ <atom-type> O3'</atom-type>
+ <coordinates>27.639 1.163 -9.624</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>27</position>
+ <base-type>U</base-type>
+ <atom serial="565">
+ <atom-type> P </atom-type>
+ <coordinates>29.215 0.976 -9.386</coordinates>
+ </atom>
+ <atom serial="573">
+ <atom-type> O3'</atom-type>
+ <coordinates>32.967 2.977 -11.808</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>28</position>
+ <base-type>G</base-type>
+ <atom serial="585">
+ <atom-type> P </atom-type>
+ <coordinates>34.192 2.205 -11.110</coordinates>
+ </atom>
+ <atom serial="593">
+ <atom-type> O3'</atom-type>
+ <coordinates>38.926 3.986 -11.102</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>29</position>
+ <base-type>U</base-type>
+ <atom serial="608">
+ <atom-type> P </atom-type>
+ <coordinates>39.673 2.760 -10.388</coordinates>
+ </atom>
+ <atom serial="616">
+ <atom-type> O3'</atom-type>
+ <coordinates>43.897 3.593 -7.402</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>30</position>
+ <base-type>G</base-type>
+ <atom serial="628">
+ <atom-type> P </atom-type>
+ <coordinates>44.247 2.191 -6.693</coordinates>
+ </atom>
+ <atom serial="636">
+ <atom-type> O3'</atom-type>
+ <coordinates>46.005 2.102 -1.916</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>31</position>
+ <base-type>U</base-type>
+ <atom serial="651">
+ <atom-type> P </atom-type>
+ <coordinates>46.082 0.594 -1.358</coordinates>
+ </atom>
+ <atom serial="659">
+ <atom-type> O3'</atom-type>
+ <coordinates>46.014 -0.378 3.660</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>32</position>
+ <base-type>G</base-type>
+ <atom serial="671">
+ <atom-type> P </atom-type>
+ <coordinates>46.093 -1.940 4.026</coordinates>
+ </atom>
+ <atom serial="679">
+ <atom-type> O3'</atom-type>
+ <coordinates>42.541 -5.286 7.182</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>33</position>
+ <base-type>A</base-type>
+ <atom serial="694">
+ <atom-type> P </atom-type>
+ <coordinates>42.384 -6.877 7.063</coordinates>
+ </atom>
+ <atom serial="702">
+ <atom-type> O3'</atom-type>
+ <coordinates>38.307 -9.190 8.881</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>34</position>
+ <base-type>A</base-type>
+ <atom serial="716">
+ <atom-type> P </atom-type>
+ <coordinates>38.548 -10.772 8.689</coordinates>
+ </atom>
+ <atom serial="724">
+ <atom-type> O3'</atom-type>
+ <coordinates>34.569 -13.953 8.211</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>35</position>
+ <base-type>U</base-type>
+ <atom serial="738">
+ <atom-type> P </atom-type>
+ <coordinates>34.833 -15.458 7.714</coordinates>
+ </atom>
+ <atom serial="746">
+ <atom-type> O3'</atom-type>
+ <coordinates>32.606 -18.340 3.220</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>36</position>
+ <base-type>G</base-type>
+ <atom serial="758">
+ <atom-type> P </atom-type>
+ <coordinates>33.272 -19.727 3.692</coordinates>
+ </atom>
+ <atom serial="766">
+ <atom-type> O3'</atom-type>
+ <coordinates>29.146 -23.892 4.012</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>37</position>
+ <base-type>G</base-type>
+ <atom serial="781">
+ <atom-type> P </atom-type>
+ <coordinates>29.023 -23.774 5.611</coordinates>
+ </atom>
+ <atom serial="789">
+ <atom-type> O3'</atom-type>
+ <coordinates>32.904 -25.203 8.677</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>38</position>
+ <base-type>G</base-type>
+ <atom serial="804">
+ <atom-type> P </atom-type>
+ <coordinates>34.031 -24.091 8.410</coordinates>
+ </atom>
+ <atom serial="812">
+ <atom-type> O3'</atom-type>
+ <coordinates>38.938 -24.200 8.769</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>39</position>
+ <base-type>A</base-type>
+ <atom serial="827">
+ <atom-type> P </atom-type>
+ <coordinates>39.341 -22.721 8.285</coordinates>
+ </atom>
+ <atom serial="835">
+ <atom-type> O3'</atom-type>
+ <coordinates>43.751 -21.471 6.096</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>40</position>
+ <base-type>U</base-type>
+ <atom serial="849">
+ <atom-type> P </atom-type>
+ <coordinates>43.479 -19.903 5.856</coordinates>
+ </atom>
+ <atom serial="857">
+ <atom-type> O3'</atom-type>
+ <coordinates>45.395 -17.759 1.488</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>41</position>
+ <base-type>G</base-type>
+ <atom serial="869">
+ <atom-type> P </atom-type>
+ <coordinates>44.930 -16.222 1.586</coordinates>
+ </atom>
+ <atom serial="877">
+ <atom-type> O3'</atom-type>
+ <coordinates>43.506 -13.581 -2.651</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>42</position>
+ <base-type>U</base-type>
+ <atom serial="892">
+ <atom-type> P </atom-type>
+ <coordinates>42.831 -12.121 -2.591</coordinates>
+ </atom>
+ <atom serial="900">
+ <atom-type> O3'</atom-type>
+ <coordinates>41.294 -10.286 -7.932</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>43</position>
+ <base-type>C</base-type>
+ <atom serial="912">
+ <atom-type> P </atom-type>
+ <coordinates>42.354 -9.284 -8.602</coordinates>
+ </atom>
+ <atom serial="920">
+ <atom-type> O3'</atom-type>
+ <coordinates>37.101 -8.296 -10.514</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>44</position>
+ <base-type>G</base-type>
+ <atom serial="932">
+ <atom-type> P </atom-type>
+ <coordinates>36.225 -7.381 -9.523</coordinates>
+ </atom>
+ <atom serial="940">
+ <atom-type> O3'</atom-type>
+ <coordinates>31.469 -8.612 -8.166</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>45</position>
+ <base-type>U</base-type>
+ <atom serial="955">
+ <atom-type> P </atom-type>
+ <coordinates>31.072 -7.255 -7.406</coordinates>
+ </atom>
+ <atom serial="963">
+ <atom-type> O3'</atom-type>
+ <coordinates>28.607 -6.549 -3.172</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>46</position>
+ <base-type>C</base-type>
+ <atom serial="975">
+ <atom-type> P </atom-type>
+ <coordinates>28.715 -4.958 -2.980</coordinates>
+ </atom>
+ <atom serial="983">
+ <atom-type> O3'</atom-type>
+ <coordinates>28.390 -3.209 1.978</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>47</position>
+ <base-type>A</base-type>
+ <atom serial="995">
+ <atom-type> P </atom-type>
+ <coordinates>28.521 -1.606 2.045</coordinates>
+ </atom>
+ <atom serial="1003">
+ <atom-type> O3'</atom-type>
+ <coordinates>30.414 1.118 5.980</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>48</position>
+ <base-type>C</base-type>
+ <atom serial="1017">
+ <atom-type> P </atom-type>
+ <coordinates>30.264 2.613 5.413</coordinates>
+ </atom>
+ <atom serial="1025">
+ <atom-type> O3'</atom-type>
+ <coordinates>33.914 6.098 6.836</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>49</position>
+ <base-type>A</base-type>
+ <atom serial="1037">
+ <atom-type> P </atom-type>
+ <coordinates>33.658 7.488 6.071</coordinates>
+ </atom>
+ <atom serial="1045">
+ <atom-type> O3'</atom-type>
+ <coordinates>37.349 10.868 4.871</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>50</position>
+ <base-type>C</base-type>
+ <atom serial="1059">
+ <atom-type> P </atom-type>
+ <coordinates>36.440 12.000 4.175</coordinates>
+ </atom>
+ <atom serial="1067">
+ <atom-type> O3'</atom-type>
+ <coordinates>38.419 14.513 0.075</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>51</position>
+ <base-type>A</base-type>
+ <atom serial="1079">
+ <atom-type> P </atom-type>
+ <coordinates>37.256 15.394 -0.597</coordinates>
+ </atom>
+ <atom serial="1087">
+ <atom-type> O3'</atom-type>
+ <coordinates>37.356 16.350 -5.434</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>52</position>
+ <base-type>A</base-type>
+ <atom serial="1101">
+ <atom-type> P </atom-type>
+ <coordinates>36.109 17.208 -5.963</coordinates>
+ </atom>
+ <atom serial="1109">
+ <atom-type> O3'</atom-type>
+ <coordinates>32.771 16.782 -10.663</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>53</position>
+ <base-type>C</base-type>
+ <atom serial="1123">
+ <atom-type> P </atom-type>
+ <coordinates>31.552 17.777 -10.378</coordinates>
+ </atom>
+ <atom serial="1131">
+ <atom-type> O3'</atom-type>
+ <coordinates>27.305 16.113 -12.908</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>54</position>
+ <base-type>G</base-type>
+ <atom serial="1143">
+ <atom-type> P </atom-type>
+ <coordinates>26.189 17.220 -12.567</coordinates>
+ </atom>
+ <atom serial="1151">
+ <atom-type> O3'</atom-type>
+ <coordinates>21.401 15.463 -11.735</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>55</position>
+ <base-type>A</base-type>
+ <atom serial="1166">
+ <atom-type> P </atom-type>
+ <coordinates>20.593 16.847 -11.641</coordinates>
+ </atom>
+ <atom serial="1174">
+ <atom-type> O3'</atom-type>
+ <coordinates>14.995 15.270 -10.886</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>56</position>
+ <base-type>A</base-type>
+ <atom serial="1188">
+ <atom-type> P </atom-type>
+ <coordinates>14.099 15.609 -12.176</coordinates>
+ </atom>
+ <atom serial="1196">
+ <atom-type> O3'</atom-type>
+ <coordinates>11.604 16.216 -7.225</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>57</position>
+ <base-type>G</base-type>
+ <atom serial="1210">
+ <atom-type> P </atom-type>
+ <coordinates>12.080 17.523 -6.429</coordinates>
+ </atom>
+ <atom serial="1218">
+ <atom-type> O3'</atom-type>
+ <coordinates>7.183 20.279 -7.550</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>58</position>
+ <base-type>C</base-type>
+ <atom serial="1233">
+ <atom-type> P </atom-type>
+ <coordinates>5.983 21.146 -6.947</coordinates>
+ </atom>
+ <atom serial="1241">
+ <atom-type> O3'</atom-type>
+ <coordinates>0.457 20.033 -6.497</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>59</position>
+ <base-type>G</base-type>
+ <atom serial="1253">
+ <atom-type> P </atom-type>
+ <coordinates>-0.544 20.976 -5.664</coordinates>
+ </atom>
+ <atom serial="1261">
+ <atom-type> O3'</atom-type>
+ <coordinates>-5.064 19.435 -4.069</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>60</position>
+ <base-type>A</base-type>
+ <atom serial="1276">
+ <atom-type> P </atom-type>
+ <coordinates>-5.376 20.880 -3.446</coordinates>
+ </atom>
+ <atom serial="1284">
+ <atom-type> O3'</atom-type>
+ <coordinates>-4.674 20.226 1.852</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>61</position>
+ <base-type>G</base-type>
+ <atom serial="1298">
+ <atom-type> P </atom-type>
+ <coordinates>-3.473 19.173 1.806</coordinates>
+ </atom>
+ <atom serial="1306">
+ <atom-type> O3'</atom-type>
+ <coordinates>-4.399 14.900 5.084</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>62</position>
+ <base-type>A</base-type>
+ <atom serial="1321">
+ <atom-type> P </atom-type>
+ <coordinates>-3.268 13.764 4.956</coordinates>
+ </atom>
+ <atom serial="1329">
+ <atom-type> O3'</atom-type>
+ <coordinates>-4.326 8.891 5.778</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>63</position>
+ <base-type>G</base-type>
+ <atom serial="1343">
+ <atom-type> P </atom-type>
+ <coordinates>-2.954 8.206 5.320</coordinates>
+ </atom>
+ <atom serial="1351">
+ <atom-type> O3'</atom-type>
+ <coordinates>-2.345 6.516 -0.228</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>64</position>
+ <base-type>C</base-type>
+ <atom serial="1366">
+ <atom-type> P </atom-type>
+ <coordinates>-1.075 5.830 -0.928</coordinates>
+ </atom>
+ <atom serial="1374">
+ <atom-type> O3'</atom-type>
+ <coordinates>-0.362 6.130 -5.741</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>65</position>
+ <base-type>G</base-type>
+ <atom serial="1386">
+ <atom-type> P </atom-type>
+ <coordinates>0.975 5.389 -6.226</coordinates>
+ </atom>
+ <atom serial="1394">
+ <atom-type> O3'</atom-type>
+ <coordinates>5.254 7.641 -9.385</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>66</position>
+ <base-type>C</base-type>
+ <atom serial="1409">
+ <atom-type> P </atom-type>
+ <coordinates>6.414 6.540 -9.525</coordinates>
+ </atom>
+ <atom serial="1417">
+ <atom-type> O3'</atom-type>
+ <coordinates>11.228 8.547 -10.401</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>67</position>
+ <base-type>G</base-type>
+ <atom serial="1429">
+ <atom-type> P </atom-type>
+ <coordinates>12.262 7.325 -10.276</coordinates>
+ </atom>
+ <atom serial="1437">
+ <atom-type> O3'</atom-type>
+ <coordinates>17.393 8.076 -7.688</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>68</position>
+ <base-type>G</base-type>
+ <atom serial="1452">
+ <atom-type> P </atom-type>
+ <coordinates>18.588 8.450 -8.699</coordinates>
+ </atom>
+ <atom serial="1460">
+ <atom-type> O3'</atom-type>
+ <coordinates>17.674 3.102 -7.969</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>69</position>
+ <base-type>U</base-type>
+ <atom serial="1475">
+ <atom-type> P </atom-type>
+ <coordinates>17.676 1.931 -6.877</coordinates>
+ </atom>
+ <atom serial="1483">
+ <atom-type> O3'</atom-type>
+ <coordinates>19.344 2.058 -2.233</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>70</position>
+ <base-type>G</base-type>
+ <atom serial="1495">
+ <atom-type> P </atom-type>
+ <coordinates>19.325 0.478 -1.917</coordinates>
+ </atom>
+ <atom serial="1503">
+ <atom-type> O3'</atom-type>
+ <coordinates>20.086 -1.464 2.724</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>71</position>
+ <base-type>A</base-type>
+ <atom serial="1518">
+ <atom-type> P </atom-type>
+ <coordinates>20.065 -3.053 2.482</coordinates>
+ </atom>
+ <atom serial="1526">
+ <atom-type> O3'</atom-type>
+ <coordinates>18.093 -6.084 6.331</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>72</position>
+ <base-type>A</base-type>
+ <atom serial="1540">
+ <atom-type> P </atom-type>
+ <coordinates>18.058 -7.629 5.887</coordinates>
+ </atom>
+ <atom serial="1548">
+ <atom-type> O3'</atom-type>
+ <coordinates>14.491 -10.888 7.635</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>73</position>
+ <base-type>U</base-type>
+ <atom serial="1562">
+ <atom-type> P </atom-type>
+ <coordinates>14.861 -12.252 6.871</coordinates>
+ </atom>
+ <atom serial="1570">
+ <atom-type> O3'</atom-type>
+ <coordinates>11.261 -15.468 5.182</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>74</position>
+ <base-type>C</base-type>
+ <atom serial="1582">
+ <atom-type> P </atom-type>
+ <coordinates>12.050 -16.617 4.382</coordinates>
+ </atom>
+ <atom serial="1590">
+ <atom-type> O3'</atom-type>
+ <coordinates>9.736 -18.950 0.360</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>75</position>
+ <base-type>A</base-type>
+ <atom serial="1602">
+ <atom-type> P </atom-type>
+ <coordinates>10.800 -19.899 -0.381</coordinates>
+ </atom>
+ <atom serial="1610">
+ <atom-type> O3'</atom-type>
+ <coordinates>10.831 -20.869 -5.373</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>76</position>
+ <base-type>U</base-type>
+ <atom serial="1624">
+ <atom-type> P </atom-type>
+ <coordinates>12.149 -21.782 -5.481</coordinates>
+ </atom>
+ <atom serial="1632">
+ <atom-type> O3'</atom-type>
+ <coordinates>15.150 -21.466 -9.686</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>77</position>
+ <base-type>U</base-type>
+ <atom serial="1644">
+ <atom-type> P </atom-type>
+ <coordinates>16.383 -22.407 -9.255</coordinates>
+ </atom>
+ <atom serial="1652">
+ <atom-type> O3'</atom-type>
+ <coordinates>21.158 -21.098 -10.643</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>78</position>
+ <base-type>G</base-type>
+ <atom serial="1664">
+ <atom-type> P </atom-type>
+ <coordinates>22.003 -22.328 -10.053</coordinates>
+ </atom>
+ <atom serial="1672">
+ <atom-type> O3'</atom-type>
+ <coordinates>26.870 -21.574 -8.157</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>79</position>
+ <base-type>C</base-type>
+ <atom serial="1687">
+ <atom-type> P </atom-type>
+ <coordinates>27.394 -22.916 -7.439</coordinates>
+ </atom>
+ <atom serial="1695">
+ <atom-type> O3'</atom-type>
+ <coordinates>32.738 -22.221 -7.672</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>80</position>
+ <base-type>A</base-type>
+ <atom serial="1707">
+ <atom-type> P </atom-type>
+ <coordinates>33.094 -23.432 -8.669</coordinates>
+ </atom>
+ <atom serial="1715">
+ <atom-type> O3'</atom-type>
+ <coordinates>37.970 -23.709 -10.290</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>81</position>
+ <base-type>U</base-type>
+ <atom serial="1729">
+ <atom-type> P </atom-type>
+ <coordinates>38.180 -25.262 -9.938</coordinates>
+ </atom>
+ <atom serial="1737">
+ <atom-type> O3'</atom-type>
+ <coordinates>42.343 -27.512 -8.310</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>82</position>
+ <base-type>C</base-type>
+ <atom serial="1749">
+ <atom-type> P </atom-type>
+ <coordinates>41.594 -28.924 -8.148</coordinates>
+ </atom>
+ <atom serial="1757">
+ <atom-type> O3'</atom-type>
+ <coordinates>42.976 -31.766 -3.839</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>83</position>
+ <base-type>C</base-type>
+ <atom serial="1769">
+ <atom-type> P </atom-type>
+ <coordinates>41.983 -33.022 -3.698</coordinates>
+ </atom>
+ <atom serial="1777">
+ <atom-type> O3'</atom-type>
+ <coordinates>40.724 -35.051 0.999</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>84</position>
+ <base-type>G</base-type>
+ <atom serial="1789">
+ <atom-type> P </atom-type>
+ <coordinates>39.499 -36.072 0.803</coordinates>
+ </atom>
+ <atom serial="1797">
+ <atom-type> O3'</atom-type>
+ <coordinates>35.976 -36.466 4.801</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>85</position>
+ <base-type>C</base-type>
+ <atom serial="1812">
+ <atom-type> P </atom-type>
+ <coordinates>34.990 -37.680 4.429</coordinates>
+ </atom>
+ <atom serial="1820">
+ <atom-type> O3'</atom-type>
+ <coordinates>30.031 -37.549 5.509</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>86</position>
+ <base-type>U</base-type>
+ <atom serial="1832">
+ <atom-type> P </atom-type>
+ <coordinates>29.628 -39.018 5.001</coordinates>
+ </atom>
+ <atom serial="1840">
+ <atom-type> O3'</atom-type>
+ <coordinates>25.142 -40.312 3.037</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>87</position>
+ <base-type>C</base-type>
+ <atom serial="1852">
+ <atom-type> P </atom-type>
+ <coordinates>25.378 -41.854 2.656</coordinates>
+ </atom>
+ <atom serial="1860">
+ <atom-type> O3'</atom-type>
+ <coordinates>22.860 -43.926 -1.490</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>88</position>
+ <base-type>C</base-type>
+ <atom serial="1872">
+ <atom-type> P </atom-type>
+ <coordinates>23.430 -45.414 -1.686</coordinates>
+ </atom>
+ <atom serial="1880">
+ <atom-type> O3'</atom-type>
+ <coordinates>24.098 -47.533 -6.370</coordinates>
+ </atom>
+ </base>
+ <base>
+ <position>89</position>
+ <base-type>A</base-type>
+ <atom serial="1892">
+ <atom-type> P </atom-type>
+ <coordinates>24.738 -48.976 -6.070</coordinates>
+ </atom>
+ <atom serial="1900">
+ <atom-type> O3'</atom-type>
+ <coordinates>28.245 -51.062 -9.390</coordinates>
+ </atom>
+ </base>
+ <str-annotation>
+ <base-conformation>
+ <base-id><position>22</position></base-id>
+ <glycosyl>syn</glycosyl>
+ </base-conformation>
+ <base-conformation>
+ <base-id><position>68</position></base-id>
+ <glycosyl>syn</glycosyl>
+ </base-conformation>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>1</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>88</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>2</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>87</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>3</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>86</position></base-id>
+ </base-id-3p>
+ <edge-5p>-</edge-5p>
+ <edge-3p>-</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>4</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>85</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>5</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>84</position></base-id>
+ </base-id-3p>
+ <edge-5p>W</edge-5p>
+ <edge-3p>W</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>6</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>37</position></base-id>
+ </base-id-3p>
+ <edge-5p>S</edge-5p>
+ <edge-3p>H</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>8</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>44</position></base-id>
+ </base-id-3p>
+ <edge-5p>S</edge-5p>
+ <edge-3p>S</edge-3p>
+ <bond-orientation>t</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>8</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>78</position></base-id>
+ </base-id-3p>
+ <edge-5p>H</edge-5p>
+ <edge-3p>S</edge-3p>
+ <bond-orientation>t</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>9</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>77</position></base-id>
+ </base-id-3p>
+ <edge-5p>W</edge-5p>
+ <edge-3p>W</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>10</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>76</position></base-id>
+ </base-id-3p>
+ <edge-5p>-</edge-5p>
+ <edge-3p>-</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>11</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>75</position></base-id>
+ </base-id-3p>
+ <edge-5p>-</edge-5p>
+ <edge-3p>-</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>12</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>74</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>13</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>73</position></base-id>
+ </base-id-3p>
+ <edge-5p>-</edge-5p>
+ <edge-3p>-</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>14</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>72</position></base-id>
+ </base-id-3p>
+ <edge-5p>-</edge-5p>
+ <edge-3p>-</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>15</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>71</position></base-id>
+ </base-id-3p>
+ <edge-5p>-</edge-5p>
+ <edge-3p>-</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>16</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>70</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>17</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>69</position></base-id>
+ </base-id-3p>
+ <edge-5p>W</edge-5p>
+ <edge-3p>W</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>18</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>67</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>19</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>22</position></base-id>
+ </base-id-3p>
+ <edge-5p>S</edge-5p>
+ <edge-3p>S</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>19</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>66</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>20</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>65</position></base-id>
+ </base-id-3p>
+ <edge-5p>W</edge-5p>
+ <edge-3p>W</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>23</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>55</position></base-id>
+ </base-id-3p>
+ <edge-5p>H</edge-5p>
+ <edge-3p>W</edge-3p>
+ <bond-orientation>t</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>23</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>67</position></base-id>
+ </base-id-3p>
+ <edge-5p>W</edge-5p>
+ <edge-3p>S</edge-3p>
+ <bond-orientation>t</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>24</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>54</position></base-id>
+ </base-id-3p>
+ <edge-5p>H</edge-5p>
+ <edge-3p>S</edge-3p>
+ <bond-orientation>t</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>26</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>52</position></base-id>
+ </base-id-3p>
+ <edge-5p>W</edge-5p>
+ <edge-3p>W</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>27</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>51</position></base-id>
+ </base-id-3p>
+ <edge-5p>-</edge-5p>
+ <edge-3p>-</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>28</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>50</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>29</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>49</position></base-id>
+ </base-id-3p>
+ <edge-5p>-</edge-5p>
+ <edge-3p>-</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>30</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>48</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>31</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>47</position></base-id>
+ </base-id-3p>
+ <edge-5p>-</edge-5p>
+ <edge-3p>-</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>32</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>46</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>33</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>45</position></base-id>
+ </base-id-3p>
+ <edge-5p>-</edge-5p>
+ <edge-3p>-</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>34</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>44</position></base-id>
+ </base-id-3p>
+ <edge-5p>W</edge-5p>
+ <edge-3p>W</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>35</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>42</position></base-id>
+ </base-id-3p>
+ <edge-5p>W</edge-5p>
+ <edge-3p>H</edge-3p>
+ <bond-orientation>t</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>37</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>83</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>38</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>82</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>39</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>81</position></base-id>
+ </base-id-3p>
+ <edge-5p>-</edge-5p>
+ <edge-3p>-</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>40</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>80</position></base-id>
+ </base-id-3p>
+ <edge-5p>-</edge-5p>
+ <edge-3p>-</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>41</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>79</position></base-id>
+ </base-id-3p>
+ <edge-5p>W</edge-5p>
+ <edge-3p>W</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>56</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>65</position></base-id>
+ </base-id-3p>
+ <edge-5p>S</edge-5p>
+ <edge-3p>S</edge-3p>
+ <bond-orientation>t</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>57</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>64</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>58</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>63</position></base-id>
+ </base-id-3p>
+ <edge-5p>+</edge-5p>
+ <edge-3p>+</edge-3p>
+ <bond-orientation>c</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>59</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>62</position></base-id>
+ </base-id-3p>
+ <edge-5p>W</edge-5p>
+ <edge-3p>H</edge-3p>
+ <bond-orientation>t</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>7</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>35</position></base-id>
+ </base-id-3p>
+ <edge-5p>!</edge-5p>
+ <edge-3p>!</edge-3p>
+ <bond-orientation>!</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>8</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>35</position></base-id>
+ </base-id-3p>
+ <edge-5p>!</edge-5p>
+ <edge-3p>!</edge-3p>
+ <bond-orientation>!</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>23</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>54</position></base-id>
+ </base-id-3p>
+ <edge-5p>!</edge-5p>
+ <edge-3p>!</edge-3p>
+ <bond-orientation>!</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>24</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>69</position></base-id>
+ </base-id-3p>
+ <edge-5p>!</edge-5p>
+ <edge-3p>!</edge-3p>
+ <bond-orientation>!</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>35</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>79</position></base-id>
+ </base-id-3p>
+ <edge-5p>!</edge-5p>
+ <edge-3p>!</edge-3p>
+ <bond-orientation>!</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>43</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>44</position></base-id>
+ </base-id-3p>
+ <edge-5p>!</edge-5p>
+ <edge-3p>!</edge-3p>
+ <bond-orientation>!</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>54</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>55</position></base-id>
+ </base-id-3p>
+ <edge-5p>!</edge-5p>
+ <edge-3p>!</edge-3p>
+ <bond-orientation>!</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>56</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>57</position></base-id>
+ </base-id-3p>
+ <edge-5p>!</edge-5p>
+ <edge-3p>!</edge-3p>
+ <bond-orientation>!</bond-orientation>
+ </base-pair>
+ <base-pair comment="?">
+ <base-id-5p>
+ <base-id><position>68</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>69</position></base-id>
+ </base-id-3p>
+ <edge-5p>!</edge-5p>
+ <edge-3p>!</edge-3p>
+ <bond-orientation>!</bond-orientation>
+ </base-pair>
+ <helix id="H1">
+ <base-id-5p>
+ <base-id><position>1</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>88</position></base-id>
+ </base-id-3p>
+ <length>5</length>
+ </helix>
+ <helix id="H2">
+ <base-id-5p>
+ <base-id><position>37</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>83</position></base-id>
+ </base-id-3p>
+ <length>5</length>
+ </helix>
+ <helix id="H3">
+ <base-id-5p>
+ <base-id><position>26</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>52</position></base-id>
+ </base-id-3p>
+ <length>9</length>
+ </helix>
+ <helix id="H4">
+ <base-id-5p>
+ <base-id><position>23</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>55</position></base-id>
+ </base-id-3p>
+ <length>2</length>
+ </helix>
+ <helix id="H5">
+ <base-id-5p>
+ <base-id><position>57</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>64</position></base-id>
+ </base-id-3p>
+ <length>3</length>
+ </helix>
+ <helix id="H6">
+ <base-id-5p>
+ <base-id><position>19</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>66</position></base-id>
+ </base-id-3p>
+ <length>2</length>
+ </helix>
+ <helix id="H7">
+ <base-id-5p>
+ <base-id><position>8</position></base-id>
+ </base-id-5p>
+ <base-id-3p>
+ <base-id><position>78</position></base-id>
+ </base-id-3p>
+ <length>10</length>
+ </helix>
+ <single-strand>
+ <segment>
+ <seg-name>SG1</seg-name>
+ <base-id-5p><base-id><position>6</position></base-id></base-id-5p>
+ <base-id-3p><base-id><position>7</position></base-id></base-id-3p>
+ </segment>
+ </single-strand>
+ <single-strand>
+ <segment>
+ <seg-name>SG2</seg-name>
+ <base-id-5p><base-id><position>18</position></base-id></base-id-5p>
+ <base-id-3p><base-id><position>18</position></base-id></base-id-3p>
+ </segment>
+ </single-strand>
+ <single-strand>
+ <segment>
+ <seg-name>SG3</seg-name>
+ <base-id-5p><base-id><position>21</position></base-id></base-id-5p>
+ <base-id-3p><base-id><position>22</position></base-id></base-id-3p>
+ </segment>
+ </single-strand>
+ <single-strand>
+ <segment>
+ <seg-name>SG4</seg-name>
+ <base-id-5p><base-id><position>25</position></base-id></base-id-5p>
+ <base-id-3p><base-id><position>25</position></base-id></base-id-3p>
+ </segment>
+ </single-strand>
+ <single-strand>
+ <segment>
+ <seg-name>SG5</seg-name>
+ <base-id-5p><base-id><position>35</position></base-id></base-id-5p>
+ <base-id-3p><base-id><position>36</position></base-id></base-id-3p>
+ </segment>
+ </single-strand>
+ <single-strand>
+ <segment>
+ <seg-name>SG6</seg-name>
+ <base-id-5p><base-id><position>42</position></base-id></base-id-5p>
+ <base-id-3p><base-id><position>43</position></base-id></base-id-3p>
+ </segment>
+ </single-strand>
+ <single-strand>
+ <segment>
+ <seg-name>SG7</seg-name>
+ <base-id-5p><base-id><position>53</position></base-id></base-id-5p>
+ <base-id-3p><base-id><position>53</position></base-id></base-id-3p>
+ </segment>
+ </single-strand>
+ <single-strand>
+ <segment>
+ <seg-name>SG8</seg-name>
+ <base-id-5p><base-id><position>56</position></base-id></base-id-5p>
+ <base-id-3p><base-id><position>56</position></base-id></base-id-3p>
+ </segment>
+ </single-strand>
+ <single-strand>
+ <segment>
+ <seg-name>SG9</seg-name>
+ <base-id-5p><base-id><position>60</position></base-id></base-id-5p>
+ <base-id-3p><base-id><position>61</position></base-id></base-id-3p>
+ </segment>
+ </single-strand>
+ <single-strand>
+ <segment>
+ <seg-name>SG10</seg-name>
+ <base-id-5p><base-id><position>67</position></base-id></base-id-5p>
+ <base-id-3p><base-id><position>68</position></base-id></base-id-3p>
+ </segment>
+ </single-strand>
+ <single-strand>
+ <segment>
+ <seg-name>SG11</seg-name>
+ <base-id-5p><base-id><position>89</position></base-id></base-id-5p>
+ <base-id-3p><base-id><position>89</position></base-id></base-id-3p>
+ </segment>
+ </single-strand>
+ </str-annotation>
+ <secondary-structure-display comment="x,y coodinates">
+ <ss-base-coord>
+ <base-id><position>1</position></base-id>
+ <coordinates>264.792 11.342</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>2</position></base-id>
+ <coordinates>264.792 30.246</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>3</position></base-id>
+ <coordinates>264.792 49.149</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>4</position></base-id>
+ <coordinates>264.792 68.053</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>5</position></base-id>
+ <coordinates>264.792 86.957</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>6</position></base-id>
+ <coordinates>276.134 86.957</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>7</position></base-id>
+ <coordinates>287.476 86.957</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>8</position></base-id>
+ <coordinates>148.757 221.618</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>9</position></base-id>
+ <coordinates>143.395 239.745</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>10</position></base-id>
+ <coordinates>138.033 257.872</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>11</position></base-id>
+ <coordinates>132.670 275.999</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>12</position></base-id>
+ <coordinates>127.308 294.126</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>13</position></base-id>
+ <coordinates>121.946 312.254</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>14</position></base-id>
+ <coordinates>116.584 330.381</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>15</position></base-id>
+ <coordinates>111.221 348.508</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>16</position></base-id>
+ <coordinates>105.859 366.635</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>17</position></base-id>
+ <coordinates>100.497 384.762</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>18</position></base-id>
+ <coordinates>53.294 416.207</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>19</position></base-id>
+ <coordinates>48.034 426.256</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>20</position></base-id>
+ <coordinates>39.267 443.003</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>21</position></base-id>
+ <coordinates>219.423 487.713</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>22</position></base-id>
+ <coordinates>219.423 476.370</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>23</position></base-id>
+ <coordinates>219.423 465.028</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>24</position></base-id>
+ <coordinates>219.423 446.125</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>25</position></base-id>
+ <coordinates>219.423 427.221</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>26</position></base-id>
+ <coordinates>219.423 389.414</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>27</position></base-id>
+ <coordinates>219.423 370.510</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>28</position></base-id>
+ <coordinates>219.423 351.607</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>29</position></base-id>
+ <coordinates>219.423 332.703</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>30</position></base-id>
+ <coordinates>219.423 313.800</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>31</position></base-id>
+ <coordinates>219.423 294.896</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>32</position></base-id>
+ <coordinates>219.423 275.992</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>33</position></base-id>
+ <coordinates>219.423 257.089</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>34</position></base-id>
+ <coordinates>219.423 238.185</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>35</position></base-id>
+ <coordinates>287.476 124.764</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>36</position></base-id>
+ <coordinates>276.134 124.764</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>37</position></base-id>
+ <coordinates>264.792 124.764</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>38</position></base-id>
+ <coordinates>264.792 143.667</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>39</position></base-id>
+ <coordinates>264.792 162.571</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>40</position></base-id>
+ <coordinates>264.792 181.474</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>41</position></base-id>
+ <coordinates>264.792 200.378</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>42</position></base-id>
+ <coordinates>276.134 200.378</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>43</position></base-id>
+ <coordinates>287.476 200.378</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>44</position></base-id>
+ <coordinates>264.792 238.185</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>45</position></base-id>
+ <coordinates>264.792 257.089</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>46</position></base-id>
+ <coordinates>264.792 275.992</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>47</position></base-id>
+ <coordinates>264.792 294.896</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>48</position></base-id>
+ <coordinates>264.792 313.800</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>49</position></base-id>
+ <coordinates>264.792 332.703</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>50</position></base-id>
+ <coordinates>264.792 351.607</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>51</position></base-id>
+ <coordinates>264.792 370.510</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>52</position></base-id>
+ <coordinates>264.792 389.414</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>53</position></base-id>
+ <coordinates>264.792 408.318</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>54</position></base-id>
+ <coordinates>264.792 446.125</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>55</position></base-id>
+ <coordinates>264.792 465.028</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>56</position></base-id>
+ <coordinates>264.792 476.370</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>57</position></base-id>
+ <coordinates>21.732 476.499</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>58</position></base-id>
+ <coordinates>12.965 493.246</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>59</position></base-id>
+ <coordinates>4.198 509.994</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>60</position></base-id>
+ <coordinates>0.000 537.223</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>61</position></base-id>
+ <coordinates>24.408 550.000</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>62</position></base-id>
+ <coordinates>44.392 531.035</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>63</position></base-id>
+ <coordinates>53.159 514.288</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>64</position></base-id>
+ <coordinates>61.927 497.540</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>65</position></base-id>
+ <coordinates>79.461 464.045</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>66</position></base-id>
+ <coordinates>88.228 447.297</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>67</position></base-id>
+ <coordinates>93.488 437.249</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>68</position></base-id>
+ <coordinates>98.749 427.200</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>69</position></base-id>
+ <coordinates>56.992 371.893</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>70</position></base-id>
+ <coordinates>62.354 353.766</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>71</position></base-id>
+ <coordinates>67.716 335.638</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>72</position></base-id>
+ <coordinates>73.079 317.511</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>73</position></base-id>
+ <coordinates>78.441 299.384</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>74</position></base-id>
+ <coordinates>83.803 281.257</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>75</position></base-id>
+ <coordinates>89.165 263.130</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>76</position></base-id>
+ <coordinates>94.527 245.003</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>77</position></base-id>
+ <coordinates>99.890 226.876</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>78</position></base-id>
+ <coordinates>105.252 208.749</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>79</position></base-id>
+ <coordinates>219.423 200.378</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>80</position></base-id>
+ <coordinates>219.423 181.474</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>81</position></base-id>
+ <coordinates>219.423 162.571</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>82</position></base-id>
+ <coordinates>219.423 143.667</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>83</position></base-id>
+ <coordinates>219.423 124.764</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>84</position></base-id>
+ <coordinates>219.423 86.957</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>85</position></base-id>
+ <coordinates>219.423 68.053</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>86</position></base-id>
+ <coordinates>219.423 49.149</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>87</position></base-id>
+ <coordinates>219.423 30.246</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>88</position></base-id>
+ <coordinates>219.423 11.342</coordinates>
+ </ss-base-coord>
+ <ss-base-coord>
+ <base-id><position>89</position></base-id>
+ <coordinates>219.423 0.000</coordinates>
+ </ss-base-coord>
+ </secondary-structure-display>
+ </model>
+ </structure>
+ </molecule>
+
+
+ <interactions>
+ <str-annotation>
+ </str-annotation>
+ </interactions>
+</rnaml>
\ No newline at end of file
--- /dev/null
+(((FER_BRANA:112.15387,FER3_RAPSA:110.84613):46.4375,FER_CAPAA:144.0625):177.2998,(O80429_MAIZE:184.40039,(FER1_MAIZE:195.79102,(((FER1_SPIOL:111.687515,FER1_MESCR:84.312485):51.929688,((Q93Z60_ARATH:398.14285,(FER2_ARATH:53.65625,FER1_ARATH:48.34375):0.0):86.725006,(Q7XA98_TRIPR:78.65277,FER1_PEA:68.34723):63.774994):7.7578125):0.58332825,((Q93XJ9_SOLTU:23.647736,FER1_SOLLC:20.352264):31.71875,FER_CAPAN:52.28125):101.7448):41.498047):37.208984):177.2998);
* The Jalview Authors are detailed in the 'AUTHORS' file.
-->
<head>
-<title>Filter Columns by Annotation</title>
+<title>Select/Hide Columns by Annotation</title>
</head>
<body>
<p>
- <strong> Filter Columns by Annotation </strong>
+ <strong> Select/Hide Columns by Annotation </strong>
</p>
- <p>Jalview allows the columns of an alignment to be filtered using
- any annotation rows added to that alignment.</p>
- From "Select" menu
- <strong>→</strong> "Select by Annotation..." to bring
- up the Select by Annotation window. The filter options vary depending
+ <p>From Jalview 2.9 columns of an alignment can be filtered using
+ any annotation row added to that alignment.</p>
+ To carry out this operation, navigate to "<b>Select</b><strong><b>→</b></strong><b>Select/Hide Columns by Annotation...</b>" to bring
+ up the 'Select/Hide by Annotation' window. The filter options vary depending
on the type of annotation selected. If an annotation that has a numeric
values is selected, the threshold filter option is activated as seen in the
- figure on the right below.
+ figure on the right below, otherwise the dialog will exclude the threshold filter option as seen in the figure on the left.
<br>
- <br>
+ <br>
+ <table>
+ <tr>
+ <td><img src="annotationColumnSelectionWithoutSM.gif"></td>
+ <td><img src="annotationColumnSelectionWithSM.gif"></td>
+ </tr>
+ </table>
- <div style="width: 48%; float: left; margin-left: 4%">
- <img src="annotationColumnSelectionWithoutSM.gif">
- </div>
- <div style="width: 48%; float: right">
- <img src="annotationColumnSelectionWithSM.gif">
- </div>
- <div> </div>
<ul>
- <li>Select which annotation to base the filtering on using the
- top-most selection box.</li>
+ <li>The target annotation row can be selected using the drop-down option menu in the top-most part of the window.</li>
<li><strong>Search Filter</strong>
<ul>
- <li>When a text is entered in the textfield on the search
- filter section, the "Display Label" and "Description"
- checkboxes becomes selectable.</li>
- <li>On selecting any of the checkboxes, a regular expresion
+ <li>When a text is entered in the text box within the Search
+ Filter section, the 'Display Label' and 'Description'
+ options becomes enabled for selection. </li>
+ <li>On selecting any of the options, a regular expression
search (RegEx) is executed on the specified field of the current
annotation row selected, and the matching columns will be highlighted
in the alignment.</li>
<li><strong>Structure Filter</strong>
<ul>
<li>Alignment columns can also be filtered by the type of
- secondary structure present in a choosen annotation row.</li>
+ secondary structure present in a target annotation row.</li>
<li>This can be achieved by ticking the type of structure you
wish to filter by under the structures filter section.</li>
</ul>
<ul>
<li>This filter is only activated for annotation which contain
numeric values</li>
- <li>Select whether to Filter the alignment above or below an
+ <li>Select whether to filter the alignment above or below an
adjustable threshold with the selection box within the threshold
filter section.</li>
<li>Change the threshold value with the slider, or enter the
</ul>
<li><strong>Actions</strong>
<ul>
- <li>The "Select" and "Hide" radio buttons
+ <li>The 'Select' and 'Hide' radio buttons
determines the action that will be carried out on the matching
columns in the alignment during the filtering process.</li>
- <li>The default option is "Select" and this simply
+ <li>The default option is 'Select' and this simply
enables column selection on the matching alignment column.</li>
- <li>While the "Hide" option enables the matching columns to
+ <li>While the 'Hide' option enables the matching columns to
be hidden automatically during the filtering process.</li>
- <li>The "Ok" button applies the filter when clicked.</li>
- <li>And finally, The "Cancel" button restores the alignment to its previous state before the filtering when clicked.
+ <li>The 'Ok' button applies the filter when clicked.</li>
+ <li>And finally, the 'Cancel' button restores the alignment to its previous state before any filtering was applied.
</ul></li>
</ul>
--- /dev/null
+<html>
+<!--
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ -->
+<head>
+<title>BioJSON-1.0</title>
+</head>
+<body>
+ <h1>BioJSON</h1>
+ BioJSON is a standardise JavaScript Object Notation (JSON) format for exchange of Bio-informatics Sequence Alignment data.
+ BioJSON-1.0 schema/documentation is available at <a href="#">http://www.jalview.org/builds/develop/examples/biojson-doc/</a>.
+ You can keep up to date with BioJSON development and latest news at <a href="#">https://github.com/jalview/biojson/wiki</a>.
+
+ <h2>Features supported</h2>
+ Export/Import of the following alignment elements are supported in BioJSON-1.0:
+ <ul>
+ <li>Alignment Annotations</li>
+ <li>Alignment Features</li>
+ <li>Alignment Sequences</li>
+ <li>Color Scheme</li>
+ <li>Hidden Columns</li>
+ <li>Hidden Sequences</li>
+ <li>Sequence Groups</li>
+ </ul>
+
+ <h2>Features not yet supported</h2>
+ Export/Import of the following alignment elements are not supported in BioJSON-1.0:
+ <ul>
+ <li>Reference sequence</li>
+ <li>Representative sequence</li>
+ <li>Trees</li>
+ <li>3D Structures</li>
+ </ul>
+</body>
+</html>
<td><div align="center">-blc FILE</div></td>
<td><div align="left">Create alignment file FILE in BLC format.</div></td>
</tr>
+ <tr>
+ <td><div align="center">-json FILE</div></td>
+ <td><div align="left">Create alignment file FILE in JSON format.</div></td>
+ </tr>
<tr>
<td><div align="center">-jalview FILE</div></td>
<body>
<strong>PDB Sequence Fetcher</strong>
- <p>From Jalview 2.x.x a speciliased interface was introduced for
+ <p>From Jalview 2.9, a specialised interface was introduced for
fast and efficient discovery/retrieval of sequence data from the PDB
database. The introduced interface enables live querying of PDB data
on-the-fly thereby eliminating the need to memorise database accession
- or to cross-reference other bioinformatics websites before retrieving
- a sequence data in jalview. The underlying technology is provided by
+ or to manually cross-reference other bioinformatics websites before retrieving
+ sequence data in Jalview. The underlying infrastructure is provided by
EBI and is based on Apache Solr which is a text based search engine.</p>
<p>
- The PDB Sequence Fetcher interface can be opened by selecting <strong>PDB</strong>
- as the choice database from the <strong>'Select Database
- Retrieval Source'</strong> interface of <a href="seqfetch.html">Sequence
- Fetcher</a>.
+ The PDB Sequence Fetcher interface can be accessed from <b>"File →Fetch Sequence(s) →Select Database →PDB"</b> click the ok button after selecting PDB from the 'Select Database
+ Retrieval Source' interface.
</p>
<p>
<img src="pdbseqfetcher.png" align="left"
- alt="PDB sequence fetcher (introduced in Jalview 2.x.x)">
+ alt="PDB sequence fetcher (introduced in Jalview 2.9)">
</p>
- <strong>Searching the PDB Database</strong>
- <br> Once the interface is opened, typing in the search text box
- will execute a live query to the PDB database and display the results
- on-the-fly as seen in the screen-shot above. Use the drop-down menu to
- select a specific field to search by in the PDB database, the default
- option is
- <strong>'ALL'</strong>. Furthermore, the PDB search interface also
- provides the following functionalities:
+ <p><strong>Searching the PDB Database</strong></p>
+ <p>When the interface is opened, a live query to the PDB database is
+ executed every time a character is typed into the search text box, and
+ a result is displayed on-the-fly as seen in the screenshot above.</p>
+
+ <p>Use the drop-down menu to select a specific field to search by in the PDB database, the default
+ option is 'ALL'.</p>
+
+ <p> Furthermore, the PDB search interface also provides the following functionalities:</p>
<ul>
<li>Retrieving a unique chain for a PDB entry: <br>To
retrieve a specific chain for a PDB entry, append the PDB ID with a
</ul>
<p>
<strong>Customising displayed meta-data</strong> <br>To change
- the displayed meta-data in the search result, click the <strong>'Configure
- Displayed Columns'</strong> tab, then tick off the options wanted.
+ the displayed meta-data in the search result, click the 'Configure
+ Displayed Columns' tab, then tick off the options wanted.
</p>
<p>
<strong>Importing Sequence</strong><br> After querying the PDB
database, to import the found data into Jalview, select the entries
- you wish to import then click the ok button at the bottom of the
+ you wish to import then click the 'Ok' button at the bottom of the
interface.
</p>
<p>
<em>The PDB Sequence Fetcher interface was introduced in Jalview
- 2.x.x.</em>
+ 2.9</em>
</p>
</body>
</html>
\ No newline at end of file
one or more accession ids (as a semi-colon separated list), or press the
"Example" button to paste the example accession for the currently selected database into the retrieval box.
Finally, press "OK" to initiate the retrieval.</p>
- <p>Since Jalview 2.x.x if PDB is selected as the sequence database, a specialised interface - <a href="pdbsequencefetcher.html">PDB Sequence Fetcher</a> is used for discovering and retrieving the sequenec data. </p>
+ <p>Since Jalview 2.9 if PDB is selected as the sequence database, a specialised interface - <a href="pdbsequencefetcher.html">PDB Sequence Fetcher</a> is used for discovering and retrieving the sequenec data. </p>
<p><strong>Specifying chains for PDB IDs</strong>
If you are retrieving sequences from the PDB, you can retrieve
specific chains by appending a colon and the chain id to the PDB
<strong>Associating PDB files with Sequences</strong><br>
- Discovery/Association of PDB entries to a sequence happens
+ Discovery/Association of PDB entries to a sequence now happens
automatically during the initialisation of the Structure Chooser
- Interface. Jalview uses the sequence's ID to query the PDB Rest API,
+ Interface. Jalview uses the sequence's ID to query the PDB Rest API
provided by the EBI to discover PDB Ids associated with the sequence.
<br><br>
<strong>Configuring displayed meta-data for Structures</strong><br>
- To configure the visible meta-data displayed for the discovered structures, click the <strong>'Configure Displayed Columns'</strong> tab, then tick the options which you intend to make visible.
+ To configure the visible meta-data displayed for the discovered structures, click the 'Configure Displayed Columns' tab, then tick the options which you intend to make visible.
<br><br>
<strong>Auto-selection of best Structures</strong>
<br> Jalview can automatically filter and select the best structures using various metric categories avaialble from the meta-data
of the structures. To perform this simply select any of the following options from the drop-down menu in the Structure
Chooser interface: Best Uniprot coverage, Higest Resolution,
-
- Best Quality, Highest Protein Chain etc. When the <strong>'Invert'</strong> option is selected, Jalview returns an inverse result for the current selected option in the drop-down menu.<p>
+ Best Quality, Highest Protein Chain etc. When the 'Invert' option is selected, Jalview returns an inverse result for the current selected option in the drop-down menu.<p>
+
<img src="schooser_main.png" style="width: 464px; height: 369px;">
<!-- <p><img src="schooser_config.png" style="width: 463px; height: 369px; ">
<p><img src="schooser_drop-down.png" style="width: 464px; height: 368px; ">
</ul>
<p>
- <em>The Structure Chooser interface was introduced in Jalview 2.x.x.
+ <em>The Structure Chooser interface was introduced in Jalview 2.9.
</em>
</p>
</body>
<em>...</em><br>//</td>
<td width="23%">.phy</td>
</tr>
+<tr>
+<td width="17%">JSON</td>
+<td width="60%">Data starts with '{' <br>Data ends with '}' <br><br>See <a href="../features/bioJsonFormat.html">BioJson</a> for more info about Jalview JSON format <br></td>
+<td width="23%">.json</td>
+</tr>
</table>
<p>The file extensions are used to associate jalview alignment icons
with alignment files: <img src="file.png" width=12 height=12 >
<li><strong>AMSA</strong></li>
<li><strong>STH</strong></li>
<li><strong>Phylip</strong></li>
+ <li><strong>JSON</strong></li>
</ul></li>
<li><strong>Print (Control P)<br> </strong><em>Jalview
will print the alignment using the current fonts and colours of
file.reference.jaxrpc.jar=lib/jaxrpc.jar
file.reference.JGoogleAnalytics_0.3.jar=lib/JGoogleAnalytics_0.3.jar
file.reference.jhall.jar=lib/jhall.jar
-file.reference.Jmol-12.2.4.jar=lib/Jmol-12.2.4.jar
-file.reference.JmolApplet-12.2.4.jar=appletlib/JmolApplet-12.2.4.jar
+file.reference.Jmol-14.2.14_2015.06.11.jar=lib/Jmol-14.2.14_2015.06.11.jar
+file.reference.JmolApplet-14.2.14_2015.06.11.jar=appletlib/JmolApplet-14.2.14_2015.06.11.jar
file.reference.log4j-1.2.8.jar=lib/log4j-1.2.8.jar
file.reference.mail.jar=lib/mail.jar
file.reference.min-jaba-client.jar=lib/min-jaba-client-2.0.jar
${file.reference.jaxrpc.jar}:\
${file.reference.JGoogleAnalytics_0.3.jar}:\
${file.reference.jhall.jar}:\
- ${file.reference.Jmol-12.2.4.jar}:\
+ ${file.reference.Jmol-14.2.14_2015.06.11.jar}:\
${file.reference.miglayout-4.0-swing.jar}:\
${file.reference.log4j-1.2.8.jar}:\
${file.reference.mail.jar}:\
${file.reference.xml-apis.jar}:\
${file.reference.xercesImpl.jar}:\
${file.reference.wsdl4j.jar}:\
- ${file.reference.JmolApplet-12.2.4.jar} \
+ ${file.reference.JmolApplet-14.2.14_2015.06.11.jar} \
${file.reference.varna-3.9-dev.jar}
# Space-separated list of extra javac options
javac.compilerargs=
label.input_output = Input/Output
label.cut_paste = Cut'n'Paste
label.adjusting_parameters_for_calculation = Adjusting parameters for existing Calculation
-label.2d_rna_structure_line = 2D RNA {0}
+label.2d_rna_structure_line = 2D RNA {0} (alignment)
label.2d_rna_sequence_name = 2D RNA - {0}
label.edit_name_and_description_current_group = Edit name and description of current group.
label.view_structure_for = View structure for {0}
label.structure = Structure
label.view_structure = View Structure
label.view_protein_structure = View Protein Structure
-label.view_rna_structure = View Nucleotide Structure
+label.show_pdbstruct_dialog = 3D Structure Data ...
+label.view_rna_structure = VARNA 2D Structure
label.clustalx_colours = Clustalx colours
label.above_identity_percentage = Above % Identity
label.create_sequence_details_report_annotation_for = Annotation for {0}
label.graduated_color_for_params = Graduated Feature Colour for {0}
label.select_backgroud_colour = Select Background Colour
label.invalid_font = Invalid Font
-label.separate_multiple_accession_ids = Enter one or more PDB Ids
+label.separate_multiple_accession_ids = Enter one or more accession IDs
label.separate_multiple_query_values = Enter one or more {0}s separated by a semi-colon ";"
label.search_all = Enter one or more search values separated by a semi-colon ";" (Note: This Searches the entire PDB database)
label.replace_commas_semicolons = Replace commas with semi-colons
info.search_in_annotation_label = Search in {0} Label
info.search_in_annotation_description = Search in {0} Description
info.change_threshold_mode_to_enable = Change Threshold Mode to Enable
+label.null_or_unidentifiable_data = Null or unidentifiable data content pasted!
+label.unidentifiable_data = Unidentifiable Data
+label.null_or_invalid_alignment = Null or invalid alignment data!
+label.unable_to_create_alignment = Unable to create alignment
<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
--->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vamsas="www.vamsas.ac.uk/jalview/version2" xmlns:jalview="www.jalview.org/colours" xmlns:jv="www.jalview.org" xmlns:jvws="www.jalview.org/xml/wsparamset" targetNamespace="www.jalview.org" elementFormDefault="qualified" attributeFormDefault="unqualified">
- <xs:import namespace="www.vamsas.ac.uk/jalview/version2" schemaLocation="vamsas.xsd"/>
- <xs:import namespace="www.jalview.org/colours" schemaLocation="JalviewUserColours.xsd"/>
- <xs:import namespace="www.jalview.org/xml/wsparamset" schemaLocation="JalviewWsParamSet.xsd"/>
+<!-- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of
+ Jalview. * * Jalview is free software: you can redistribute it and/or * modify
+ it under the terms of the GNU General Public License * as published by the
+ Free Software Foundation, either version 3 of the License, or (at your option)
+ any later version. * * Jalview is distributed in the hope that it will be
+ useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General
+ Public License for more details. * * You should have received a copy of the
+ GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:vamsas="www.vamsas.ac.uk/jalview/version2" xmlns:jalview="www.jalview.org/colours"
+ xmlns:jv="www.jalview.org" xmlns:jvws="www.jalview.org/xml/wsparamset"
+ targetNamespace="www.jalview.org" elementFormDefault="qualified"
+ attributeFormDefault="unqualified">
+ <xs:import namespace="www.vamsas.ac.uk/jalview/version2"
+ schemaLocation="vamsas.xsd" />
+ <xs:import namespace="www.jalview.org/colours"
+ schemaLocation="JalviewUserColours.xsd" />
+ <xs:import namespace="www.jalview.org/xml/wsparamset"
+ schemaLocation="JalviewWsParamSet.xsd" />
<xs:complexType name="JalviewModel">
<xs:sequence>
<xs:element name="creationDate" type="xs:dateTime" />
<xs:element name="JSeq" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
- <xs:element name="features"
- type="jv:feature" minOccurs="0" maxOccurs="unbounded" />
- <xs:element name="pdbids" minOccurs="0"
- maxOccurs="unbounded">
+ <xs:element name="features" type="jv:feature"
+ minOccurs="0" maxOccurs="unbounded" />
+ <xs:element name="pdbids" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:complexContent>
- <xs:extension
- base="jv:pdbentry">
+ <xs:extension base="jv:pdbentry">
<xs:sequence>
- <xs:element
- name="structureState" minOccurs="0"
+ <xs:element name="structureState" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
- <xs:extension
- base="xs:string">
- <xs:attributeGroup
- ref="jv:swingwindow" />
- <xs:attribute
- name="visible" type="xs:boolean" />
- <xs:attribute
- name="viewId" type="xs:string" use="optional">
+ <xs:extension base="xs:string">
+ <xs:attributeGroup ref="jv:swingwindow" />
+ <xs:attribute name="visible" type="xs:boolean" />
+ <xs:attribute name="viewId" type="xs:string"
+ use="optional">
<xs:annotation>
<xs:documentation>
additional
</xs:documentation>
</xs:annotation>
</xs:attribute>
- <xs:attribute
- name="alignwithAlignPanel" type="xs:boolean"
- use="optional" default="true">
+ <xs:attribute name="alignwithAlignPanel"
+ type="xs:boolean" use="optional" default="true">
<xs:annotation>
<xs:documentation>
Flag
</xs:documentation>
</xs:annotation>
</xs:attribute>
- <xs:attribute
- name="colourwithAlignPanel" type="xs:boolean"
- use="optional" default="false">
+ <xs:attribute name="colourwithAlignPanel"
+ type="xs:boolean" use="optional" default="false">
<xs:annotation>
<xs:documentation>
Flag
</xs:documentation>
</xs:annotation>
</xs:attribute>
- <xs:attribute
- name="colourByJmol" type="xs:boolean" use="optional"
- default="true">
+ <xs:attribute name="colourByJmol" type="xs:boolean"
+ use="optional" default="true">
<xs:annotation>
<xs:documentation>
Flag
use="optional">
<xs:annotation>
<xs:documentation>
- An identifier for the viewer type, currently either
- JMOL or CHIMERA
+ An
+ identifier
+ for
+ the
+ viewer
+ type,
+ currently
+ either
+ JMOL
+ or
+ CHIMERA
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexContent>
</xs:complexType>
</xs:element>
- <xs:element name="hiddenSequences"
- type="xs:int" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element name="hiddenSequences" type="xs:int"
+ minOccurs="0" maxOccurs="unbounded" />
+ <xs:element name="rnaViewer" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>Reference to a viewer showing RNA structure
+ for this sequence. Schema supports one viewer showing multiple
+ annotations for multiple sequences, though currently only one
+ annotation for one sequence (gapped or trimmed) is used
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="secondaryStructure" minOccurs="1"
+ maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:attribute name="title" type="xs:string" />
+ <xs:attribute name="annotationId" type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>id attribute of Annotation in
+ vamsasModel for
+ the secondary structure annotation shown
+ in the viewer
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="gapped" type="xs:boolean">
+ <xs:annotation>
+ <xs:documentation>if true the RNA structure is shown with gaps, if false without
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="viewerState" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>name of the project jar entry that holds
+ the VARNA viewer state for the structure
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attributeGroup ref="jv:swingwindow" />
+ <xs:attribute name="title" type="xs:string" />
+ <xs:attribute name="viewId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>An id unique to the RNA viewer panel
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="dividerLocation" type="xs:int">
+ <xs:annotation>
+ <xs:documentation>horizontal position of split pane divider
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="selectedRna" type="xs:int">
+ <xs:annotation>
+ <xs:documentation>Index of the selected structure in the
+ viewer panel
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
</xs:sequence>
- <xs:attribute name="colour" type="xs:int"
- use="optional" />
- <xs:attribute name="start" type="xs:int"
- use="required" />
- <xs:attribute name="end" type="xs:int"
- use="required" />
- <xs:attribute name="id" type="xs:string"
- use="required" />
+ <xs:attribute name="colour" type="xs:int" use="optional" />
+ <xs:attribute name="start" type="xs:int" use="required" />
+ <xs:attribute name="end" type="xs:int" use="required" />
+ <xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="hidden" type="xs:boolean" />
</xs:complexType>
</xs:element>
- <xs:element name="JGroup" minOccurs="0"
- maxOccurs="unbounded">
+ <xs:element name="JGroup" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
- <xs:sequence>
+ <xs:sequence>
<xs:element name="seq" type="xs:string" maxOccurs="unbounded" />
<xs:element name="annotationColours" type="jv:AnnotationColourScheme"
minOccurs="0" maxOccurs="1" />
<xs:attribute name="end" type="xs:int" />
<xs:attribute name="name" type="xs:string" />
<xs:attribute name="colour" type="xs:string" />
- <xs:attribute name="consThreshold"
- type="xs:int" />
+ <xs:attribute name="consThreshold" type="xs:int" />
<xs:attribute name="pidThreshold" type="xs:int" />
- <xs:attribute name="outlineColour"
- type="xs:int" />
- <xs:attribute name="displayBoxes"
- type="xs:boolean" />
- <xs:attribute name="displayText"
- type="xs:boolean" />
- <xs:attribute name="colourText"
- type="xs:boolean" />
+ <xs:attribute name="outlineColour" type="xs:int" />
+ <xs:attribute name="displayBoxes" type="xs:boolean" />
+ <xs:attribute name="displayText" type="xs:boolean" />
+ <xs:attribute name="colourText" type="xs:boolean" />
<xs:attribute name="textCol1" type="xs:int" />
<xs:attribute name="textCol2" type="xs:int" />
- <xs:attribute name="textColThreshold"
- type="xs:int" />
- <xs:attribute name="showUnconserved"
- type="xs:boolean" use="optional" />
- <xs:attribute name="ignoreGapsinConsensus"
- type="xs:boolean" use="optional" default="true" />
- <xs:attribute name="showConsensusHistogram"
- type="xs:boolean" use="optional" default="true" />
- <xs:attribute name="showSequenceLogo"
- type="xs:boolean" use="optional" default="false" />
- <xs:attribute name="normaliseSequenceLogo"
- type="xs:boolean" use="optional" default="false" />
- <xs:attribute name="id" type="xs:string"
- use="optional">
+ <xs:attribute name="textColThreshold" type="xs:int" />
+ <xs:attribute name="showUnconserved" type="xs:boolean"
+ use="optional" />
+ <xs:attribute name="ignoreGapsinConsensus" type="xs:boolean"
+ use="optional" default="true" />
+ <xs:attribute name="showConsensusHistogram" type="xs:boolean"
+ use="optional" default="true" />
+ <xs:attribute name="showSequenceLogo" type="xs:boolean"
+ use="optional" default="false" />
+ <xs:attribute name="normaliseSequenceLogo" type="xs:boolean"
+ use="optional" default="false" />
+ <xs:attribute name="id" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Optional sequence group ID (only
- needs to be unique for this
+ needs to be
+ unique for this
alignment)
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
- <xs:element name="Viewport" maxOccurs="unbounded" minOccurs="0">
+ <xs:element name="Viewport" maxOccurs="unbounded"
+ minOccurs="0">
<xs:complexType>
<xs:sequence>
- <xs:element name="AnnotationColours" type="jv:AnnotationColourScheme"
+ <xs:element name="AnnotationColours" type="jv:AnnotationColourScheme"
minOccurs="0" maxOccurs="1">
</xs:element>
- <xs:element name="hiddenColumns"
- minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="hiddenColumns" minOccurs="0"
+ maxOccurs="unbounded">
<xs:complexType>
- <xs:attribute name="start"
- type="xs:int" />
- <xs:attribute name="end"
- type="xs:int" />
+ <xs:attribute name="start" type="xs:int" />
+ <xs:attribute name="end" type="xs:int" />
</xs:complexType>
</xs:element>
- <xs:element name="calcIdParam"
-
- minOccurs="0" maxOccurs="unbounded">
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="jvws:WebServiceParameterSet">
- <xs:attribute name="calcId" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>handle for the calculation which uses this parameter set</xs:documentation></xs:annotation>
- </xs:attribute>
- <xs:attribute name="needsUpdate" type="xs:boolean" use="optional" default="false">
- <xs:annotation><xs:documentation>should the calculation be performed immediately after loading in order to refresh results</xs:documentation></xs:annotation>
- </xs:attribute>
- <xs:attribute name="autoUpdate" type="xs:boolean" use="required">
- <xs:annotation><xs:documentation>should the calculation be automatically performed on edits</xs:documentation></xs:annotation>
- </xs:attribute>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
+ <xs:element name="calcIdParam" minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="jvws:WebServiceParameterSet">
+ <xs:attribute name="calcId" type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>handle for the calculation which uses
+ this parameter set
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="needsUpdate" type="xs:boolean"
+ use="optional" default="false">
+ <xs:annotation>
+ <xs:documentation>should the calculation be performed
+ immediately after loading in order to refresh results
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="autoUpdate" type="xs:boolean"
+ use="required">
+ <xs:annotation>
+ <xs:documentation>should the calculation be automatically
+ performed on edits
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="jv:swingwindow" />
- <xs:attribute name="conservationSelected"
- type="xs:boolean" />
- <xs:attribute name="pidSelected"
- type="xs:boolean" />
+ <xs:attribute name="conservationSelected" type="xs:boolean" />
+ <xs:attribute name="pidSelected" type="xs:boolean" />
<xs:attribute name="bgColour" type="xs:string" />
- <xs:attribute name="consThreshold"
- type="xs:int" />
+ <xs:attribute name="consThreshold" type="xs:int" />
<xs:attribute name="pidThreshold" type="xs:int" />
<xs:attribute name="title" type="xs:string" />
- <xs:attribute name="showFullId"
- type="xs:boolean" />
- <xs:attribute name="rightAlignIds"
- type="xs:boolean" />
+ <xs:attribute name="showFullId" type="xs:boolean" />
+ <xs:attribute name="rightAlignIds" type="xs:boolean" />
<xs:attribute name="showText" type="xs:boolean" />
- <xs:attribute name="showColourText"
- type="xs:boolean" />
- <xs:attribute name="showUnconserved"
- type="xs:boolean" use="optional" default="false" />
- <xs:attribute name="showBoxes"
- type="xs:boolean" />
- <xs:attribute name="wrapAlignment"
- type="xs:boolean" />
- <xs:attribute name="renderGaps"
- type="xs:boolean" />
- <xs:attribute name="showSequenceFeatures"
- type="xs:boolean" />
- <xs:attribute name="showNPfeatureTooltip"
- type="xs:boolean" use="optional" />
- <xs:attribute name="showDbRefTooltip"
- type="xs:boolean" use="optional" />
- <xs:attribute name="followHighlight"
- type="xs:boolean" use="optional" default="true" />
- <xs:attribute name="followSelection"
- type="xs:boolean" use="optional" default="true" />
- <xs:attribute name="showAnnotation"
- type="xs:boolean" />
- <xs:attribute name="centreColumnLabels"
- type="xs:boolean" use="optional" default="false" />
- <xs:attribute name="showGroupConservation"
- type="xs:boolean" use="optional" default="false" />
- <xs:attribute name="showGroupConsensus"
- type="xs:boolean" use="optional" default="false" />
- <xs:attribute name="showConsensusHistogram"
- type="xs:boolean" use="optional" default="true" />
- <xs:attribute name="showSequenceLogo"
- type="xs:boolean" use="optional" default="false" />
- <xs:attribute name="normaliseSequenceLogo"
- type="xs:boolean" use="optional" default="false" />
- <xs:attribute name="ignoreGapsinConsensus"
- type="xs:boolean" use="optional" default="true" />
- <xs:attribute name="startRes" type="xs:int" />
+ <xs:attribute name="showColourText" type="xs:boolean" />
+ <xs:attribute name="showUnconserved" type="xs:boolean"
+ use="optional" default="false" />
+ <xs:attribute name="showBoxes" type="xs:boolean" />
+ <xs:attribute name="wrapAlignment" type="xs:boolean" />
+ <xs:attribute name="renderGaps" type="xs:boolean" />
+ <xs:attribute name="showSequenceFeatures" type="xs:boolean" />
+ <xs:attribute name="showNPfeatureTooltip" type="xs:boolean"
+ use="optional" />
+ <xs:attribute name="showDbRefTooltip" type="xs:boolean"
+ use="optional" />
+ <xs:attribute name="followHighlight" type="xs:boolean"
+ use="optional" default="true" />
+ <xs:attribute name="followSelection" type="xs:boolean"
+ use="optional" default="true" />
+ <xs:attribute name="showAnnotation" type="xs:boolean" />
+ <xs:attribute name="centreColumnLabels" type="xs:boolean"
+ use="optional" default="false" />
+ <xs:attribute name="showGroupConservation" type="xs:boolean"
+ use="optional" default="false" />
+ <xs:attribute name="showGroupConsensus" type="xs:boolean"
+ use="optional" default="false" />
+ <xs:attribute name="showConsensusHistogram" type="xs:boolean"
+ use="optional" default="true" />
+ <xs:attribute name="showSequenceLogo" type="xs:boolean"
+ use="optional" default="false" />
+ <xs:attribute name="normaliseSequenceLogo" type="xs:boolean"
+ use="optional" default="false" />
+ <xs:attribute name="ignoreGapsinConsensus" type="xs:boolean"
+ use="optional" default="true" />
+ <xs:attribute name="startRes" type="xs:int" />
<xs:attribute name="startSeq" type="xs:int" />
<xs:attribute name="fontName" type="xs:string" />
<xs:attribute name="fontSize" type="xs:int" />
<xs:attribute name="fontStyle" type="xs:int" />
<xs:attribute name="viewName" type="xs:string" />
- <xs:attribute name="sequenceSetId"
- type="xs:string" />
- <xs:attribute name="gatheredViews"
- type="xs:boolean" />
+ <xs:attribute name="sequenceSetId" type="xs:string" />
+ <xs:attribute name="gatheredViews" type="xs:boolean" />
<xs:attribute name="textCol1" type="xs:int" />
<xs:attribute name="textCol2" type="xs:int" />
- <xs:attribute name="textColThreshold"
- type="xs:int" />
- <xs:attribute name="id" type="xs:ID"
- use="optional">
+ <xs:attribute name="textColThreshold" type="xs:int" />
+ <xs:attribute name="id" type="xs:ID" use="optional">
<xs:annotation>
<xs:documentation>
unique id used by jalview to
- synchronize between stored and
+ synchronize
+ between stored and
instantiated views
</xs:documentation>
</xs:annotation>
use="optional">
<xs:annotation>
<xs:documentation>
- The viewport id of this viewport's (cdna/protein) coding complement, if any
+ The viewport id of this viewport's
+ (cdna/protein) coding complement, if any
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
- <xs:element name="UserColours" minOccurs="0"
- maxOccurs="unbounded">
+ <xs:element name="UserColours" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
- <xs:element name="UserColourScheme"
- type="jalview:JalviewUserColours" />
+ <xs:element name="UserColourScheme" type="jalview:JalviewUserColours" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" />
</xs:complexType>
</xs:element>
- <xs:element name="tree" minOccurs="0"
- maxOccurs="unbounded">
+ <xs:element name="tree" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element name="title" type="xs:string" />
<xs:attribute name="fontSize" type="xs:int" />
<xs:attribute name="fontStyle" type="xs:int" />
<xs:attribute name="threshold" type="xs:float" />
- <xs:attribute name="showBootstrap"
- type="xs:boolean" />
- <xs:attribute name="showDistances"
- type="xs:boolean" />
- <xs:attribute name="markUnlinked"
- type="xs:boolean" />
- <xs:attribute name="fitToWindow"
- type="xs:boolean" />
- <xs:attribute name="currentTree"
- type="xs:boolean" />
- <xs:attribute name="id" type="xs:ID"
- use="optional">
+ <xs:attribute name="showBootstrap" type="xs:boolean" />
+ <xs:attribute name="showDistances" type="xs:boolean" />
+ <xs:attribute name="markUnlinked" type="xs:boolean" />
+ <xs:attribute name="fitToWindow" type="xs:boolean" />
+ <xs:attribute name="currentTree" type="xs:boolean" />
+ <xs:attribute name="id" type="xs:ID" use="optional">
<xs:annotation>
<xs:documentation>
Tree ID added for binding tree
- visualization settings to vamsas
+ visualization
+ settings to vamsas
document trees in jalview 2.4.1
</xs:documentation>
</xs:annotation>
<xs:element name="FeatureSettings" minOccurs="0">
<xs:complexType>
<xs:sequence>
- <xs:element name="setting" minOccurs="0"
- maxOccurs="unbounded">
+ <xs:element name="setting" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
- <xs:attribute name="type"
- type="xs:string" use="required" />
- <xs:attribute name="colour"
- type="xs:int" use="required" />
- <xs:attribute name="display"
- type="xs:boolean" use="required" />
- <xs:attribute name="order"
- type="xs:float" use="optional" />
- <xs:attribute name="mincolour"
- type="xs:int" use="optional">
+ <xs:attribute name="type" type="xs:string" use="required" />
+ <xs:attribute name="colour" type="xs:int" use="required" />
+ <xs:attribute name="display" type="xs:boolean"
+ use="required" />
+ <xs:attribute name="order" type="xs:float" use="optional" />
+ <xs:attribute name="mincolour" type="xs:int" use="optional">
<xs:annotation>
<xs:documentation>
Optional minimum colour
- for graduated feature
+ for graduated
+ feature
colour
</xs:documentation>
</xs:annotation>
</xs:attribute>
- <xs:attribute name="threshold"
- type="xs:float" use="optional">
+ <xs:attribute name="threshold" type="xs:float"
+ use="optional">
<xs:annotation>
<xs:documentation>
threshold value for
</xs:documentation>
</xs:annotation>
</xs:attribute>
- <xs:attribute name="threshstate"
- type="xs:int" use="optional">
+ <xs:attribute name="threshstate" type="xs:int"
+ use="optional">
<xs:annotation>
<xs:documentation>
threshold type for
</xs:documentation>
</xs:annotation>
</xs:attribute>
- <xs:attribute name="max"
- type="xs:float" use="optional" />
- <xs:attribute name="min"
- type="xs:float" use="optional" />
- <xs:attribute name="colourByLabel"
- type="xs:boolean" use="optional" />
- <xs:attribute name="autoScale"
- type="xs:boolean" use="optional" />
+ <xs:attribute name="max" type="xs:float" use="optional" />
+ <xs:attribute name="min" type="xs:float" use="optional" />
+ <xs:attribute name="colourByLabel" type="xs:boolean"
+ use="optional" />
+ <xs:attribute name="autoScale" type="xs:boolean"
+ use="optional" />
</xs:complexType>
</xs:element>
- <xs:element name="group" minOccurs="0"
- maxOccurs="unbounded">
+ <xs:element name="group" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
- <xs:attribute name="name"
- type="xs:string" use="required" />
- <xs:attribute name="display"
- type="xs:boolean" use="required" />
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="display" type="xs:boolean"
+ use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element name="otherData" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
- <xs:attribute name="key" type="xs:string" use="required"/>
- <xs:attribute name="value" type="xs:string" use="required"/>
+ <xs:attribute name="key" type="xs:string" use="required" />
+ <xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
- <xs:attribute name="begin" type="xs:int" use="required"/>
- <xs:attribute name="end" type="xs:int" use="required"/>
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="description" type="xs:string" use="optional"/>
- <xs:attribute name="status" type="xs:string" use="optional"/>
- <xs:attribute name="featureGroup" type="xs:string" use="optional"/>
- <xs:attribute name="score" type="xs:float" use="optional"/>
+ <xs:attribute name="begin" type="xs:int" use="required" />
+ <xs:attribute name="end" type="xs:int" use="required" />
+ <xs:attribute name="type" type="xs:string" use="required" />
+ <xs:attribute name="description" type="xs:string" use="optional" />
+ <xs:attribute name="status" type="xs:string" use="optional" />
+ <xs:attribute name="featureGroup" type="xs:string" use="optional" />
+ <xs:attribute name="score" type="xs:float" use="optional" />
</xs:complexType>
<xs:complexType name="pdbentry">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="property" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="value" type="xs:string" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
- <xs:attribute name="id" type="xs:string" use="required"/>
- <xs:attribute name="type" type="xs:string" use="optional"/>
- <xs:attribute name="file" type="xs:string"/>
+ <xs:attribute name="id" type="xs:string" use="required" />
+ <xs:attribute name="type" type="xs:string" use="optional" />
+ <xs:attribute name="file" type="xs:string" />
</xs:complexType>
- <!--
- <xs:complexType name="reportWindow">
- <xs:annotation>
- <xs:documentation>Generic type for windows containing mime-typed data associated with other jalview windows</xs:documentation>
- </xs:annotation>
- <xs:sequence>
- </xs:sequence>
- <xs:attribute name="id" type="xs:string" use="required"/>
- <xs:attribute name="type" type="xs:string" use="optional"/>
- <xs:attribute name="file" type="xs:string" use="optional"/>
+ <!-- <xs:complexType name="reportWindow"> <xs:annotation> <xs:documentation>Generic
+ type for windows containing mime-typed data associated with other jalview
+ windows</xs:documentation> </xs:annotation> <xs:sequence> </xs:sequence>
+ <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="type"
+ type="xs:string" use="optional"/> <xs:attribute name="file" type="xs:string"
+ use="optional"/> </xs:complexType> -->
+ <xs:attributeGroup name="swingwindow">
+ <xs:annotation>
+ <xs:documentation>
+ base attributes for windows displayed in Jalview
+ desktop.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="width" type="xs:int" />
+ <xs:attribute name="height" type="xs:int" />
+ <xs:attribute name="xpos" type="xs:int" />
+ <xs:attribute name="ypos" type="xs:int" />
+ </xs:attributeGroup>
+ <xs:complexType name="AnnotationColourScheme">
+ <xs:attribute name="aboveThreshold" type="xs:int" />
+ <xs:attribute name="annotation" type="xs:string" />
+ <xs:attribute name="minColour" type="xs:int" />
+ <xs:attribute name="maxColour" type="xs:int" />
+ <xs:attribute name="colourScheme" type="xs:string" />
+ <xs:attribute name="threshold" type="xs:float" />
+ <xs:attribute name="perSequence" type="xs:boolean" use="optional" />
+ <xs:attribute name="predefinedColours" type="xs:boolean"
+ use="optional" />
</xs:complexType>
- -->
- <xs:attributeGroup name="swingwindow">
- <xs:annotation>
- <xs:documentation>
- base attributes for windows displayed in Jalview desktop.
- </xs:documentation>
- </xs:annotation>
- <xs:attribute name="width" type="xs:int"/>
- <xs:attribute name="height" type="xs:int"/>
- <xs:attribute name="xpos" type="xs:int"/>
- <xs:attribute name="ypos" type="xs:int"/>
- </xs:attributeGroup>
- <xs:complexType name="AnnotationColourScheme">
- <xs:attribute name="aboveThreshold" type="xs:int" />
- <xs:attribute name="annotation" type="xs:string" />
- <xs:attribute name="minColour" type="xs:int" />
- <xs:attribute name="maxColour" type="xs:int" />
- <xs:attribute name="colourScheme" type="xs:string" />
- <xs:attribute name="threshold" type="xs:float" />
- <xs:attribute name="perSequence" type="xs:boolean" use="optional" />
- <xs:attribute name="predefinedColours" type="xs:boolean"
- use="optional" />
- </xs:complexType>
-
+
</xs:schema>
package ext.edu.ucsf.rbvi.strucviz2;
+import jalview.ws.HttpClientUtils;
+
import java.awt.Color;
import java.io.BufferedReader;
import java.io.File;
import ext.edu.ucsf.rbvi.strucviz2.StructureManager.ModelType;
import ext.edu.ucsf.rbvi.strucviz2.port.ListenerThreads;
-import jalview.ws.HttpClientUtils;
-
/**
* This object maintains the Chimera communication information.
*/
for (String chimeraPath : chimeraPaths)
{
File path = new File(chimeraPath);
- // enable the next line to simulate Chimera not installed
- // File path = new File(chimeraPath + "x");
+ // uncomment the next line to simulate Chimera not installed
+ // path = new File(chimeraPath + "x");
if (!path.canExecute())
{
error += "File '" + path + "' does not exist.\n";
{
List<String> args = new ArrayList<String>();
args.add(chimeraPath);
+ // shows Chimera output window but suppresses REST responses:
+ // args.add("--debug");
args.add("--start");
args.add("RESTServer");
ProcessBuilder pb = new ProcessBuilder(args);
// TODO: [Optional] Check Chimera version and show a warning if below 1.8
// Ask Chimera to give us updates
// startListening(); // later - see ChimeraListener
- return true;
+ return (chimeraRestPort > 0);
}
// Tell the user that Chimera could not be started because of an error
InputStream readChan = chimera.getInputStream();
BufferedReader lineReader = new BufferedReader(new InputStreamReader(
readChan));
- String response = null;
+ StringBuilder responses = new StringBuilder();
try
{
- // expect: REST server on host 127.0.0.1 port port_number
- response = lineReader.readLine();
- String [] tokens = response.split(" ");
- if (tokens.length == 7 && "port".equals(tokens[5])) {
- port = Integer.parseInt(tokens[6]);
- logger.info("Chimera REST service listening on port "
- + chimeraRestPort);
+ String response = lineReader.readLine();
+ while (response != null)
+ {
+ responses.append("\n" + response);
+ // expect: REST server on host 127.0.0.1 port port_number
+ if (response.startsWith("REST server"))
+ {
+ String[] tokens = response.split(" ");
+ if (tokens.length == 7 && "port".equals(tokens[5]))
+ {
+ port = Integer.parseInt(tokens[6]);
+ break;
+ }
+ }
+ response = lineReader.readLine();
}
} catch (Exception e)
{
- logger.error("Failed to get REST port number from " + response + ": "
+ logger.error("Failed to get REST port number from " + responses
+ + ": "
+ e.getMessage());
} finally
{
{
}
}
+ if (port == 0)
+ {
+ System.err
+ .println("Failed to start Chimera with REST service, response was: "
+ + responses);
+ }
+ logger.info("Chimera REST service listening on port " + chimeraRestPort);
return port;
}
// array holds #seqs, #ungapped, then codon counts indexed by codon
final int[] codonCounts = (int[]) hci.get(PROFILE);
int totalCount = 0;
- StringBuilder mouseOver = new StringBuilder(32);
/*
* First pass - get total count and find the highest
*/
/*
- * Scan sorted array backwards for most frequent values first.
+ * Scan sorted array backwards for most frequent values first. Show
+ * repeated values compactly.
*/
+ StringBuilder mouseOver = new StringBuilder(32);
+ StringBuilder samePercent = new StringBuilder();
+ String percent = null;
+ String lastPercent = null;
+ Format fmt = getPercentageFormat(nseqs);
+
for (int j = codons.length - 1; j >= 0; j--)
{
int codonCount = sortedCodonCounts[j];
if (codonCount == 0)
{
+ /*
+ * remaining codons are 0% - ignore, but finish off the last one if
+ * necessary
+ */
+ if (samePercent.length() > 0)
+ {
+ mouseOver.append(samePercent).append(": ").append(percent)
+ .append("% ");
+ }
break;
}
int codonEncoded = codons[j];
final int pct = codonCount * 100 / totalCount;
String codon = String
.valueOf(CodingUtils.decodeCodon(codonEncoded));
- Format fmt = getPercentageFormat(nseqs);
- String formatted = fmt == null ? Integer.toString(pct) : fmt
+ percent = fmt == null ? Integer.toString(pct) : fmt
.form(pct);
if (showProfileLogo || codonCount == modalCodonCount)
{
- mouseOver.append(codon).append(": ").append(formatted)
- .append("% ");
+ if (percent.equals(lastPercent) && j > 0)
+ {
+ samePercent.append(samePercent.length() == 0 ? "" : ", ");
+ samePercent.append(codon);
+ }
+ else
+ {
+ if (samePercent.length() > 0)
+ {
+ mouseOver.append(samePercent).append(": ")
+ .append(lastPercent)
+ .append("% ");
+ }
+ samePercent.setLength(0);
+ samePercent.append(codon);
+ }
+ lastPercent = percent;
}
}
else
{
// or, also take a look at the scores if necessary.
- if (!ignoreScore && sf[f].getScore() != Float.NaN)
+ if (!ignoreScore && !Float.isNaN(sf[f].getScore()))
{
if (seqScores[i] == 0)
{
*/
public boolean isExportGroups();
- /**
- * Checks if settings/export process is cancelled
- *
- * @return
- */
- public boolean isCancelled();
}
*/
public SequenceI[] getHiddenSequences();
+ /**
+ * Retrieves displayed features from a complex file parser
+ *
+ * @return
+ */
+ public FeaturesDisplayedI getDisplayedFeatures();
}
import java.util.StringTokenizer;
import java.util.Vector;
+import org.jmol.viewer.Viewer;
+
public class AlignFrame extends EmbmenuFrame implements ActionListener,
ItemListener, KeyListener, AlignViewControllerGuiI
{
: showForSequences);
aa.visible = visible;
}
- alignPanel.validateAnnotationDimensions(false);
+ alignPanel.validateAnnotationDimensions(true);
+ validate();
+ repaint();
}
private void setAnnotationSortOrder(SequenceAnnotationOrder order)
public SequenceStructureBinding addStructureViewInstance(
Object jmolviewer, String[] sequenceIds)
{
- org.jmol.api.JmolViewer viewer = null;
+ Viewer viewer = null;
try
{
- viewer = (org.jmol.api.JmolViewer) jmolviewer;
+ viewer = (Viewer) jmolviewer;
} catch (ClassCastException ex)
{
System.err.println("Unsupported viewer object :"
*/
package jalview.appletgui;
+import jalview.analysis.AnnotationSorter;
+import jalview.api.AlignViewportI;
+import jalview.api.AlignmentViewPanel;
+import jalview.bin.JalviewLite;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SearchResults;
+import jalview.datamodel.SequenceI;
+import jalview.structure.StructureSelectionManager;
+
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ComponentEvent;
import java.util.List;
-import jalview.analysis.AnnotationSorter;
-import jalview.api.AlignViewportI;
-import jalview.api.AlignmentViewPanel;
-import jalview.bin.JalviewLite;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.SearchResults;
-import jalview.datamodel.SequenceI;
-import jalview.structure.StructureSelectionManager;
-
public class AlignmentPanel extends Panel implements AdjustmentListener,
AlignmentViewPanel
{
}
/**
- * calculate the annotation dimensions and refresh slider values accordingly.
- * need to do repaints/notifys afterwards.
+ * Calculate the annotation dimensions and refresh slider values accordingly.
+ * Need to do repaints/notifys afterwards.
*/
protected void validateAnnotationDimensions(boolean adjustPanelHeight)
{
- boolean modified = false;
- int height = av.calcPanelHeight();
- int minsize = 0;
- if (hscroll.isVisible())
- {
- height += (minsize = hscroll.getPreferredSize().height);
- }
- if (apvscroll.isVisible())
- {
- minsize += apvscroll.getPreferredSize().height;
- }
- int mheight = height;
- Dimension d = sequenceHolderPanel.getSize(), e = idPanel.getSize();
- int seqandannot = d.height - scalePanelHolder.getSize().height;
+ int rowHeight = av.getCharHeight();
+ int alignmentHeight = rowHeight * av.getAlignment().getHeight();
+ int annotationHeight = av.calcPanelHeight();
+
+ int mheight = annotationHeight;
+ Dimension d = sequenceHolderPanel.getSize();
+
+ int availableHeight = d.height - scalePanelHolder.getHeight();
if (adjustPanelHeight)
{
- // NOTE: this logic is different in the application. Need a better
- // algorithm to define behaviour
- // sets initial preferred height
- // try and set height according to alignment
- float sscaling = (float) ((av.getCharHeight() * av.getAlignment()
- .getHeight()) / (1.0 * mheight));
- if (sscaling > 0.5)
- {
- // if the alignment is too big then
- // default is 0.5 split
- height = seqandannot / 2;
- }
- else
+ /*
+ * If not enough vertical space, maximize annotation height while keeping
+ * at least two rows of alignment visible
+ */
+ if (annotationHeight + alignmentHeight > availableHeight)
{
- // otherwise just set the panel so that one row of sequence is visible
- height = -av.getCharHeight() * 1
- + (int) (seqandannot * (1 - sscaling));
+ annotationHeight = Math.min(annotationHeight, availableHeight - 2
+ * rowHeight);
}
}
else
{
// maintain same window layout whilst updating sliders
- height = annotationPanelHolder.getSize().height;
+ annotationHeight = annotationPanelHolder.getSize().height;
}
- if (seqandannot - height < 5)
+ if (availableHeight - annotationHeight < 5)
{
- height = seqandannot;
+ annotationHeight = availableHeight;
}
- annotationPanel.setSize(new Dimension(d.width, height));
- alabels.setSize(new Dimension(e.width, height));
- annotationSpaceFillerHolder.setSize(new Dimension(e.width, height));
- annotationPanelHolder.setSize(new Dimension(d.width, height));
+
+ annotationPanel.setSize(new Dimension(d.width, annotationHeight));
+ annotationPanelHolder.setSize(new Dimension(d.width, annotationHeight));
// seqPanelHolder.setSize(d.width, seqandannot - height);
seqPanel.seqCanvas
.setSize(d.width, seqPanel.seqCanvas.getSize().height);
+
+ Dimension e = idPanel.getSize();
+ alabels.setSize(new Dimension(e.width, annotationHeight));
+ annotationSpaceFillerHolder.setSize(new Dimension(e.width,
+ annotationHeight));
+
int s = apvscroll.getValue();
- if (s > mheight - height)
+ if (s > mheight - annotationHeight)
{
s = 0;
}
- apvscroll.setValues(s, height, 0, mheight);
+ apvscroll.setValues(s, annotationHeight, 0, mheight);
annotationPanel.setScrollOffset(apvscroll.getValue(), false);
alabels.setScrollOffset(apvscroll.getValue(), false);
}
*/
package jalview.appletgui;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceI;
+import jalview.io.AppletFormatAdapter;
+import jalview.io.FileParse;
+import jalview.schemes.BuriedColourScheme;
+import jalview.schemes.HelixColourScheme;
+import jalview.schemes.HydrophobicColourScheme;
+import jalview.schemes.PurinePyrimidineColourScheme;
+import jalview.schemes.StrandColourScheme;
+import jalview.schemes.TaylorColourScheme;
+import jalview.schemes.TurnColourScheme;
+import jalview.schemes.UserColourScheme;
+import jalview.schemes.ZappoColourScheme;
+import jalview.structure.StructureSelectionManager;
+import jalview.util.MessageManager;
+
import java.awt.BorderLayout;
import java.awt.CheckboxMenuItem;
import java.awt.Color;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.Panel;
-import java.awt.Rectangle;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Hashtable;
+import java.util.List;
import java.util.Vector;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.PDBEntry;
-import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
-import jalview.io.FileParse;
-import jalview.schemes.BuriedColourScheme;
-import jalview.schemes.HelixColourScheme;
-import jalview.schemes.HydrophobicColourScheme;
-import jalview.schemes.PurinePyrimidineColourScheme;
-import jalview.schemes.StrandColourScheme;
-import jalview.schemes.TaylorColourScheme;
-import jalview.schemes.TurnColourScheme;
-import jalview.schemes.UserColourScheme;
-import jalview.schemes.ZappoColourScheme;
-import jalview.structure.StructureSelectionManager;
-import jalview.util.MessageManager;
-
public class AppletJmol extends EmbmenuFrame implements
// StructureListener,
KeyListener, ActionListener, ItemListener
AlignmentPanel ap;
- ArrayList _aps = new ArrayList();
+ List<AlignmentPanel> _aps = new ArrayList<AlignmentPanel>(); // remove? never
+ // added to
String fileLoadingError;
dispose();
return;
}
- jmb.newJmolPopup(true, "Jmol", true);
+ // jmb.newJmolPopup(true, "Jmol", true);
this.addWindowListener(new WindowAdapter()
{
jmb.loadInline(string);
}
- void setChainMenuItems(Vector chains)
+ void setChainMenuItems(Vector<String> chains)
{
chainMenu.removeAll();
chainMenu.add(menuItem);
CheckboxMenuItem menuItemCB;
- for (int c = 0; c < chains.size(); c++)
+ for (String ch : chains)
{
- menuItemCB = new CheckboxMenuItem(chains.elementAt(c).toString(),
- true);
+ menuItemCB = new CheckboxMenuItem(ch, true);
menuItemCB.addItemListener(this);
chainMenu.add(menuItemCB);
}
void centerViewer()
{
- Vector toshow = new Vector();
- String lbl;
- int mlength, p, mnum;
+ Vector<String> toshow = new Vector<String>();
for (int i = 0; i < chainMenu.getItemCount(); i++)
{
if (chainMenu.getItem(i) instanceof CheckboxMenuItem)
else if (evt.getSource() == seqColour)
{
setEnabled(seqColour);
- jmb.colourBySequence(ap.av.isShowSequenceFeatures(), ap);
+ jmb.colourBySequence(ap);
}
else if (!allChainsSelected)
{
public void updateColours(Object source)
{
- AlignmentPanel ap = (AlignmentPanel) source;
- jmb.colourBySequence(ap.av.isShowSequenceFeatures(), ap);
+ AlignmentPanel panel = (AlignmentPanel) source;
+ jmb.colourBySequence(panel);
}
public void updateTitleAndMenus()
return;
}
setChainMenuItems(jmb.chainNames);
- jmb.colourBySequence(ap.av.isShowSequenceFeatures(), ap);
+ jmb.colourBySequence(ap);
setTitle(jmb.getViewerTitle());
}
{
Dimension currentSize = new Dimension();
- Rectangle rectClip = new Rectangle();
-
public void update(Graphics g)
{
paint(g);
public void paint(Graphics g)
{
currentSize = this.getSize();
- rectClip = g.getClipBounds();
if (jmb.viewer == null)
{
}
else
{
- jmb.viewer.renderScreenImage(g, currentSize, rectClip);
+ jmb.viewer.renderScreenImage(g, currentSize.width,
+ currentSize.height);
}
}
}
{
for (int i = 0; i < _aps.size(); i++)
{
- if (((AlignmentPanel) _aps.get(i)).av.getAlignment() == alignment)
+ if (_aps.get(i).av.getAlignment() == alignment)
{
- return ((AlignmentPanel) _aps.get(i));
+ return (_aps.get(i));
}
}
return ap;
import jalview.api.AlignmentViewPanel;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
+import jalview.ext.jmol.JalviewJmolBinding;
import jalview.structure.StructureSelectionManager;
import java.awt.Container;
-import java.util.BitSet;
+import java.util.Map;
+
+import javajs.awt.Dimension;
import org.jmol.api.JmolAppConsoleInterface;
-import org.jmol.api.JmolViewer;
-import org.jmol.popup.JmolPopup;
+import org.jmol.console.AppletConsole;
+import org.jmol.java.BS;
-class AppletJmolBinding extends jalview.ext.jmol.JalviewJmolBinding
+class AppletJmolBinding extends JalviewJmolBinding
{
/**
appletJmolBinding = appletJmol;
}
+ @Override
public jalview.api.FeatureRenderer getFeatureRenderer(
AlignmentViewPanel alignment)
{
return appletJmolBinding.fr;
}
+ @Override
public jalview.api.SequenceRenderer getSequenceRenderer(
AlignmentViewPanel alignment)
{
return new SequenceRenderer(((AlignmentPanel) alignment).av);
}
+ @Override
public void sendConsoleEcho(String strEcho)
{
if (appletJmolBinding.scriptWindow == null)
appletJmolBinding.history.append("\n" + strEcho);
}
+ @Override
public void sendConsoleMessage(String strStatus)
{
if (appletJmolBinding.history != null && strStatus != null
}
}
+ @Override
public void showUrl(String url, String target)
{
appletJmolBinding.ap.alignFrame.showURL(url, target);
}
+ @Override
public void refreshGUI()
{
appletJmolBinding.updateTitleAndMenus();
public void updateColours(Object source)
{
AlignmentPanel ap = (AlignmentPanel) source;
- colourBySequence(ap.av.isShowSequenceFeatures(), ap);
+ colourBySequence(ap);
}
public void showUrl(String url)
public void newJmolPopup(boolean translateLocale, String menuName,
boolean asPopup)
{
-
- jmolpopup = new JmolPopup();
- jmolpopup.initialize(viewer, translateLocale, menuName, asPopup);
+ // jmolpopup = new JmolAwtPopup(); // is this used?
+ // jmolpopup.jpiInitialize((viewer), menuName);
}
+ @Override
public void notifyScriptTermination(String strStatus, int msWalltime)
{
// do nothing.
}
- public void selectionChanged(BitSet arg0)
+ public void selectionChanged(BS arg0)
{
// TODO Auto-generated method stub
}
@Override
- protected JmolAppConsoleInterface createJmolConsole(JmolViewer viewer2,
+ protected JmolAppConsoleInterface createJmolConsole(
Container consolePanel, String buttonsToShow)
{
- // return new org.jmol.console.AppletConsole(viewer2, consolePanel);
- JmolAppConsoleInterface appc = new org.jmol.console.AppletConsole()
- .getAppConsole(viewer2);
+ JmolAppConsoleInterface appc = new AppletConsole();
+ appc.start(viewer);
return appc;
}
}
@Override
- public void resizeInnerPanel(String data)
+ public Dimension resizeInnerPanel(String data)
{
// TODO Auto-generated method stub
+ return null;
+ }
+ @Override
+ public Map<String, Object> getJSpecViewProperty(String arg0)
+ {
+ // TODO Auto-generated method stub
+ return null;
}
}
import java.awt.Container;
import java.util.ArrayList;
-import java.util.BitSet;
import java.util.List;
+import java.util.Map;
import java.util.Vector;
import org.jmol.api.JmolAppConsoleInterface;
-import org.jmol.api.JmolViewer;
+import org.jmol.java.BS;
+import org.jmol.viewer.Viewer;
/**
* bind an alignment view to an external Jmol instance.
chains, protocol);
}
- public ExtJmol(JmolViewer viewer, AlignmentPanel alignPanel,
+ public ExtJmol(Viewer viewer, AlignmentPanel alignPanel,
SequenceI[][] seqs)
{
super(alignPanel.getStructureSelectionManager(), seqs, viewer);
showUrl(arg0, "jmol");
}
+ @Override
public FeatureRenderer getFeatureRenderer(AlignmentViewPanel alignment)
{
AlignmentPanel ap = (AlignmentPanel) alignment;
}
}
+ @Override
public SequenceRenderer getSequenceRenderer(AlignmentViewPanel alignment)
{
return ((AlignmentPanel) alignment).getSequenceRenderer();
}
+ @Override
public void notifyScriptTermination(String strStatus, int msWalltime)
{
// ignore
}
+ @Override
public void sendConsoleEcho(String strEcho)
{
// ignore
}
+ @Override
public void sendConsoleMessage(String strStatus)
{
// ignore
}
+ @Override
public void showUrl(String url, String target)
{
ap.alignFrame.showURL(url, target);
}
+ @Override
public void refreshGUI()
{
// ignore
}
- public void selectionChanged(BitSet arg0)
+ public void selectionChanged(BS arg0)
{
System.out.println(arg0);
}
+ @Override
public void refreshPdbEntries()
{
List<PDBEntry> pdbe = new ArrayList<PDBEntry>();
SequenceI[] sq = ap.av.getAlignment().getSequencesArray();
for (int s = 0; s < sq.length; s++)
{
- Vector pdbids = sq[s].getPDBId();
+ Vector<PDBEntry> pdbids = sq[s].getPDBId();
if (pdbids != null)
{
for (int pe = 0, peSize = pdbids.size(); pe < peSize; pe++)
{
- PDBEntry pentry = (PDBEntry) pdbids.elementAt(pe);
+ PDBEntry pentry = pdbids.elementAt(pe);
if (!fileids.contains(pentry.getId()))
{
pdbe.add(pentry);
}
@Override
- protected JmolAppConsoleInterface createJmolConsole(JmolViewer viewer2,
+ protected JmolAppConsoleInterface createJmolConsole(
Container consolePanel, String buttonsToShow)
{
// TODO Auto-generated method stub
}
+ @Override
+ public Map<String, Object> getJSpecViewProperty(String arg0)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
*/
package jalview.appletgui;
+import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceFeature;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.util.UrlLink;
+import jalview.viewmodel.AlignmentViewport;
+
import java.awt.BorderLayout;
import java.awt.Panel;
import java.awt.event.InputEvent;
import java.util.List;
import java.util.Vector;
-import jalview.datamodel.Sequence;
-import jalview.datamodel.SequenceFeature;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.util.UrlLink;
-import jalview.viewmodel.AlignmentViewport;
-
public class IdPanel extends Panel implements MouseListener,
MouseMotionListener
{
nl = true;
}
;
- if (sf[sl].getScore() != Float.NaN && sf[sl].getScore() != 0f)
+ if (!Float.isNaN(sf[sl].getScore()) && sf[sl].getScore() != 0f)
{
tooltiptext.append(" Score = ");
tooltiptext.append(sf[sl].getScore());
System.setProperty("java.awt.headless", "true");
headless = true;
}
- Cache.loadProperties(aparser.getValue("props")); // must do this before
+ String usrPropsFile = aparser.getValue("props");
+ Cache.loadProperties(usrPropsFile); // must do this before
+ if (usrPropsFile != null)
+ {
+ System.out.println("CMD [-props " + usrPropsFile
+ + "] executed successfully!");
+ }
+
// anything else!
final String jabawsUrl = aparser.getValue("jabaws");
try
{
Jws2Discoverer.getDiscoverer().setPreferredUrl(jabawsUrl);
+ System.out.println("CMD [-jabaws " + jabawsUrl
+ + "] executed successfully!");
} catch (MalformedURLException e)
{
System.err.println("Invalid jabaws parameter: " + jabawsUrl
{
startUsageStats(desktop);
}
+ else
+ {
+ System.err.println("CMD [-nousagestats] executed successfully!");
+ }
+
if (!aparser.contains("noquestionnaire"))
{
String url = aparser.getValue("questionnaire");
// questionnaire
Cache.log.debug("Starting questionnaire url at " + url);
desktop.checkForQuestionnaire(url);
+ System.out.println("CMD questionnaire[-" + url
+ + "] executed successfully!");
}
else
{
}
}
}
+ else
+ {
+ System.err
+.println("CMD [-noquestionnaire] executed successfully!");
+ }
desktop.checkForNews();
}
- BioJsHTMLOutput.updateBioJS();
+ if (!isHeadlessMode())
+ {
+ BioJsHTMLOutput.updateBioJS();
+ }
String file = null, protocol = null, format = null, data = null;
- jalview.io.FileLoader fileLoader = new jalview.io.FileLoader();
+ jalview.io.FileLoader fileLoader = new jalview.io.FileLoader(!headless);
Vector getFeatures = null; // vector of das source nicknames to fetch
// features from
// loading is done.
desktop.setProgressBar(MessageManager.getString("status.processing_commandline_args"),
progress = System.currentTimeMillis());
}
- System.out.println("Opening file: " + file);
+ System.out.println("CMD [-open " + file + "] executed successfully!");
if (!file.startsWith("http://"))
{
ucs.parseAppletParameter(data);
cs = ucs;
}
-
- System.out.println("colour is " + data);
+ else
+ {
+ System.out.println("CMD [-color " + data
+ + "] executed successfully!");
+ }
af.changeColour(cs);
}
{
af.parseFeaturesFile(data,
jalview.io.AppletFormatAdapter.checkProtocol(data));
- System.out.println("Added " + data);
+ // System.out.println("Added " + data);
+ System.out.println("CMD groups[-" + data
+ + "] executed successfully!");
}
data = aparser.getValue("features", true);
if (data != null)
{
af.parseFeaturesFile(data,
jalview.io.AppletFormatAdapter.checkProtocol(data));
- System.out.println("Added " + data);
+ // System.out.println("Added " + data);
+ System.out.println("CMD [-features " + data
+ + "] executed successfully!");
}
data = aparser.getValue("annotations", true);
if (data != null)
{
af.loadJalviewDataFile(data, null, null, null);
- System.out.println("Added " + data);
+ // System.out.println("Added " + data);
+ System.out.println("CMD [-annotations " + data
+ + "] executed successfully!");
}
// set or clear the sortbytree flag.
if (aparser.contains("sortbytree"))
{
af.getViewport().setSortByTree(true);
+ if (af.getViewport().getSortByTree())
+ {
+ System.out
+.println("CMD [-sortbytree] executed successfully!");
+ }
}
if (aparser.contains("no-annotation"))
{
af.getViewport().setShowAnnotation(false);
+ if (!af.getViewport().isShowAnnotation())
+ {
+ System.out
+.println("CMD no-annotation executed successfully!");
+ }
}
if (aparser.contains("nosortbytree"))
{
af.getViewport().setSortByTree(false);
+ if (!af.getViewport().getSortByTree())
+ {
+ System.out
+ .println("CMD [-nosortbytree] executed successfully!");
+ }
}
data = aparser.getValue("tree", true);
if (data != null)
jalview.io.NewickFile fin = null;
try
{
+ System.out.println("CMD [-tree " + data
+ + "] executed successfully!");
fin = new jalview.io.NewickFile(data,
jalview.io.AppletFormatAdapter.checkProtocol(data));
if (fin != null)
{
af.getViewport().setCurrentTree(
af.ShowNewickTree(fin, data).getTree());
- System.out.println("Added tree " + data);
}
} catch (IOException ex)
{
System.out.println("Executing script " + groovyscript);
executeGroovyScript(groovyscript, new Object[]
{ desktop, af });
+
+ System.out.println("CMD groovy[" + groovyscript
+ + "] executed successfully!");
}
else
{
}
else if (format.equalsIgnoreCase("eps"))
{
- System.out.println("Creating EPS file: " + file);
- af.createEPS(new java.io.File(file));
+ File outputFile = new java.io.File(file);
+ System.out.println("Creating EPS file: "
+ + outputFile.getAbsolutePath());
+ af.createEPS(outputFile);
continue;
}
+ "-pileup FILE\tCreate alignment file FILE in Pileup format\n"
+ "-pir FILE\tCreate alignment file FILE in PIR format.\n"
+ "-blc FILE\tCreate alignment file FILE in BLC format.\n"
+ + "-json FILE\tCreate alignment file FILE in JSON format.\n"
+ "-jalview FILE\tCreate alignment file FILE in Jalview format.\n"
+ "-png FILE\tCreate PNG image FILE from alignment.\n"
+ "-svg FILE\tCreate SVG image FILE from alignment.\n"
}
source.addElement(nickname);
}
+ System.out.println("CMD [-dasserver " + data
+ + "] executed successfully!");
} // loop until no more server entries are found.
if (locsources != null && locsources.indexOf('|') > -1)
{
}
return ff;
}
+
+ public static boolean isHeadlessMode()
+ {
+ String isheadless = System.getProperty("java.awt.headless");
+ if (isheadless != null && isheadless.equalsIgnoreCase("true"))
+ {
+ return true;
+ }
+ return false;
+ }
}
/**
return queued == 0 && running == 0;
}
-};
+}
import java.util.StringTokenizer;
import java.util.Vector;
-import netscape.javascript.JSException;
import netscape.javascript.JSObject;
/**
{
notFailed = true;
}
- } catch (JSException jsex)
+ } catch (Exception jsex)
{
System.err.println("Attempt " + tries
+ " to access LiveConnect javascript failed.");
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class Alignment implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _annotation.
- */
- private jalview.binding.Annotation _annotation;
-
- /**
- * Field _sequenceSet.
- */
- private jalview.binding.SequenceSet _sequenceSet;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public Alignment()
- {
- super();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- * Returns the value of field 'annotation'.
- *
- * @return the value of field 'Annotation'.
- */
- public jalview.binding.Annotation getAnnotation()
- {
- return this._annotation;
- }
-
- /**
- * Returns the value of field 'sequenceSet'.
- *
- * @return the value of field 'SequenceSet'.
- */
- public jalview.binding.SequenceSet getSequenceSet()
- {
- return this._sequenceSet;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+public class Alignment implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _annotation.
+ */
+ private jalview.binding.Annotation _annotation;
+
+ /**
+ * Field _sequenceSet.
+ */
+ private jalview.binding.SequenceSet _sequenceSet;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public Alignment() {
+ super();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ * Returns the value of field 'annotation'.
+ *
+ * @return the value of field 'Annotation'.
+ */
+ public jalview.binding.Annotation getAnnotation(
+ ) {
+ return this._annotation;
+ }
+
+ /**
+ * Returns the value of field 'sequenceSet'.
+ *
+ * @return the value of field 'SequenceSet'.
+ */
+ public jalview.binding.SequenceSet getSequenceSet(
+ ) {
+ return this._sequenceSet;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Sets the value of field 'annotation'.
+ *
+ * @param annotation the value of field 'annotation'.
+ */
+ public void setAnnotation(
+ final jalview.binding.Annotation annotation) {
+ this._annotation = annotation;
+ }
+
+ /**
+ * Sets the value of field 'sequenceSet'.
+ *
+ * @param sequenceSet the value of field 'sequenceSet'.
+ */
+ public void setSequenceSet(
+ final jalview.binding.SequenceSet sequenceSet) {
+ this._sequenceSet = sequenceSet;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.Alignment
+ */
+ public static jalview.binding.Alignment unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.Alignment) Unmarshaller.unmarshal(jalview.binding.Alignment.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
}
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- * Sets the value of field 'annotation'.
- *
- * @param annotation
- * the value of field 'annotation'.
- */
- public void setAnnotation(final jalview.binding.Annotation annotation)
- {
- this._annotation = annotation;
- }
-
- /**
- * Sets the value of field 'sequenceSet'.
- *
- * @param sequenceSet
- * the value of field 'sequenceSet'.
- */
- public void setSequenceSet(final jalview.binding.SequenceSet sequenceSet)
- {
- this._sequenceSet = sequenceSet;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.Alignment
- */
- public static jalview.binding.Alignment unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.Alignment) Unmarshaller.unmarshal(
- jalview.binding.Alignment.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
-//- Imported classes and packages -/
-//---------------------------------/
-
-import jalview.util.MessageManager;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
*
* @version $Revision$ $Date$
*/
-public class Annotation implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _graph.
- */
- private boolean _graph;
-
- /**
- * keeps track of state for field: _graph
- */
- private boolean _has_graph;
-
- /**
- * Field _graphType.
- */
- private int _graphType;
-
- /**
- * keeps track of state for field: _graphType
- */
- private boolean _has_graphType;
-
- /**
- * Field _annotationElementList.
- */
- private java.util.Vector _annotationElementList;
-
- /**
- * Field _label.
- */
- private java.lang.String _label;
-
- /**
- * Field _description.
- */
- private java.lang.String _description;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public Annotation()
- {
- super();
- this._annotationElementList = new java.util.Vector();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- *
- *
- * @param vAnnotationElement
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addAnnotationElement(
- final jalview.binding.AnnotationElement vAnnotationElement)
- throws java.lang.IndexOutOfBoundsException
- {
- this._annotationElementList.addElement(vAnnotationElement);
- }
-
- /**
- *
- *
- * @param index
- * @param vAnnotationElement
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addAnnotationElement(final int index,
- final jalview.binding.AnnotationElement vAnnotationElement)
- throws java.lang.IndexOutOfBoundsException
- {
- this._annotationElementList.add(index, vAnnotationElement);
- }
-
- /**
- */
- public void deleteGraph()
- {
- this._has_graph = false;
- }
-
- /**
- */
- public void deleteGraphType()
- {
- this._has_graphType = false;
- }
-
- /**
- * Method enumerateAnnotationElement.
- *
- * @return an Enumeration over all jalview.binding.AnnotationElement elements
- */
- public java.util.Enumeration enumerateAnnotationElement()
- {
- return this._annotationElementList.elements();
- }
-
- /**
- * Method getAnnotationElement.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the jalview.binding.AnnotationElement at the given
- * index
- */
- public jalview.binding.AnnotationElement getAnnotationElement(
- final int index) throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._annotationElementList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getAnnotationElement",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._annotationElementList.size() - 1)).toString()
- }));
+public class Annotation implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _graph.
+ */
+ private boolean _graph;
+
+ /**
+ * keeps track of state for field: _graph
+ */
+ private boolean _has_graph;
+
+ /**
+ * Field _graphType.
+ */
+ private int _graphType;
+
+ /**
+ * keeps track of state for field: _graphType
+ */
+ private boolean _has_graphType;
+
+ /**
+ * Field _annotationElementList.
+ */
+ private java.util.Vector _annotationElementList;
+
+ /**
+ * Field _label.
+ */
+ private java.lang.String _label;
+
+ /**
+ * Field _description.
+ */
+ private java.lang.String _description;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public Annotation() {
+ super();
+ this._annotationElementList = new java.util.Vector();
}
- return (jalview.binding.AnnotationElement) _annotationElementList
- .get(index);
- }
-
- /**
- * Method getAnnotationElement.Returns the contents of the collection in an
- * Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public jalview.binding.AnnotationElement[] getAnnotationElement()
- {
- jalview.binding.AnnotationElement[] array = new jalview.binding.AnnotationElement[0];
- return (jalview.binding.AnnotationElement[]) this._annotationElementList
- .toArray(array);
- }
-
- /**
- * Method getAnnotationElementCount.
- *
- * @return the size of this collection
- */
- public int getAnnotationElementCount()
- {
- return this._annotationElementList.size();
- }
-
- /**
- * Returns the value of field 'description'.
- *
- * @return the value of field 'Description'.
- */
- public java.lang.String getDescription()
- {
- return this._description;
- }
-
- /**
- * Returns the value of field 'graph'.
- *
- * @return the value of field 'Graph'.
- */
- public boolean getGraph()
- {
- return this._graph;
- }
-
- /**
- * Returns the value of field 'graphType'.
- *
- * @return the value of field 'GraphType'.
- */
- public int getGraphType()
- {
- return this._graphType;
- }
-
- /**
- * Returns the value of field 'label'.
- *
- * @return the value of field 'Label'.
- */
- public java.lang.String getLabel()
- {
- return this._label;
- }
-
- /**
- * Method hasGraph.
- *
- * @return true if at least one Graph has been added
- */
- public boolean hasGraph()
- {
- return this._has_graph;
- }
-
- /**
- * Method hasGraphType.
- *
- * @return true if at least one GraphType has been added
- */
- public boolean hasGraphType()
- {
- return this._has_graphType;
- }
-
- /**
- * Returns the value of field 'graph'.
- *
- * @return the value of field 'Graph'.
- */
- public boolean isGraph()
- {
- return this._graph;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ *
+ *
+ * @param vAnnotationElement
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addAnnotationElement(
+ final jalview.binding.AnnotationElement vAnnotationElement)
+ throws java.lang.IndexOutOfBoundsException {
+ this._annotationElementList.addElement(vAnnotationElement);
}
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- */
- public void removeAllAnnotationElement()
- {
- this._annotationElementList.clear();
- }
-
- /**
- * Method removeAnnotationElement.
- *
- * @param vAnnotationElement
- * @return true if the object was removed from the collection.
- */
- public boolean removeAnnotationElement(
- final jalview.binding.AnnotationElement vAnnotationElement)
- {
- boolean removed = _annotationElementList.remove(vAnnotationElement);
- return removed;
- }
-
- /**
- * Method removeAnnotationElementAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public jalview.binding.AnnotationElement removeAnnotationElementAt(
- final int index)
- {
- java.lang.Object obj = this._annotationElementList.remove(index);
- return (jalview.binding.AnnotationElement) obj;
- }
-
- /**
- *
- *
- * @param index
- * @param vAnnotationElement
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setAnnotationElement(final int index,
- final jalview.binding.AnnotationElement vAnnotationElement)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._annotationElementList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setAnnotationElement",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._annotationElementList.size() - 1)).toString()
- }));
+
+ /**
+ *
+ *
+ * @param index
+ * @param vAnnotationElement
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addAnnotationElement(
+ final int index,
+ final jalview.binding.AnnotationElement vAnnotationElement)
+ throws java.lang.IndexOutOfBoundsException {
+ this._annotationElementList.add(index, vAnnotationElement);
+ }
+
+ /**
+ */
+ public void deleteGraph(
+ ) {
+ this._has_graph= false;
+ }
+
+ /**
+ */
+ public void deleteGraphType(
+ ) {
+ this._has_graphType= false;
+ }
+
+ /**
+ * Method enumerateAnnotationElement.
+ *
+ * @return an Enumeration over all
+ * jalview.binding.AnnotationElement elements
+ */
+ public java.util.Enumeration enumerateAnnotationElement(
+ ) {
+ return this._annotationElementList.elements();
+ }
+
+ /**
+ * Method getAnnotationElement.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the jalview.binding.AnnotationElement
+ * at the given index
+ */
+ public jalview.binding.AnnotationElement getAnnotationElement(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._annotationElementList.size()) {
+ throw new IndexOutOfBoundsException("getAnnotationElement: Index value '" + index + "' not in range [0.." + (this._annotationElementList.size() - 1) + "]");
+ }
+
+ return (jalview.binding.AnnotationElement) _annotationElementList.get(index);
}
- this._annotationElementList.set(index, vAnnotationElement);
- }
-
- /**
- *
- *
- * @param vAnnotationElementArray
- */
- public void setAnnotationElement(
- final jalview.binding.AnnotationElement[] vAnnotationElementArray)
- {
- // -- copy array
- _annotationElementList.clear();
-
- for (int i = 0; i < vAnnotationElementArray.length; i++)
- {
- this._annotationElementList.add(vAnnotationElementArray[i]);
+ /**
+ * Method getAnnotationElement.Returns the contents of the
+ * collection in an Array. <p>Note: Just in case the
+ * collection contents are changing in another thread, we pass
+ * a 0-length Array of the correct type into the API call.
+ * This way we <i>know</i> that the Array returned is of
+ * exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.binding.AnnotationElement[] getAnnotationElement(
+ ) {
+ jalview.binding.AnnotationElement[] array = new jalview.binding.AnnotationElement[0];
+ return (jalview.binding.AnnotationElement[]) this._annotationElementList.toArray(array);
+ }
+
+ /**
+ * Method getAnnotationElementCount.
+ *
+ * @return the size of this collection
+ */
+ public int getAnnotationElementCount(
+ ) {
+ return this._annotationElementList.size();
+ }
+
+ /**
+ * Returns the value of field 'description'.
+ *
+ * @return the value of field 'Description'.
+ */
+ public java.lang.String getDescription(
+ ) {
+ return this._description;
+ }
+
+ /**
+ * Returns the value of field 'graph'.
+ *
+ * @return the value of field 'Graph'.
+ */
+ public boolean getGraph(
+ ) {
+ return this._graph;
+ }
+
+ /**
+ * Returns the value of field 'graphType'.
+ *
+ * @return the value of field 'GraphType'.
+ */
+ public int getGraphType(
+ ) {
+ return this._graphType;
+ }
+
+ /**
+ * Returns the value of field 'label'.
+ *
+ * @return the value of field 'Label'.
+ */
+ public java.lang.String getLabel(
+ ) {
+ return this._label;
+ }
+
+ /**
+ * Method hasGraph.
+ *
+ * @return true if at least one Graph has been added
+ */
+ public boolean hasGraph(
+ ) {
+ return this._has_graph;
+ }
+
+ /**
+ * Method hasGraphType.
+ *
+ * @return true if at least one GraphType has been added
+ */
+ public boolean hasGraphType(
+ ) {
+ return this._has_graphType;
+ }
+
+ /**
+ * Returns the value of field 'graph'.
+ *
+ * @return the value of field 'Graph'.
+ */
+ public boolean isGraph(
+ ) {
+ return this._graph;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ */
+ public void removeAllAnnotationElement(
+ ) {
+ this._annotationElementList.clear();
+ }
+
+ /**
+ * Method removeAnnotationElement.
+ *
+ * @param vAnnotationElement
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeAnnotationElement(
+ final jalview.binding.AnnotationElement vAnnotationElement) {
+ boolean removed = _annotationElementList.remove(vAnnotationElement);
+ return removed;
+ }
+
+ /**
+ * Method removeAnnotationElementAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.binding.AnnotationElement removeAnnotationElementAt(
+ final int index) {
+ java.lang.Object obj = this._annotationElementList.remove(index);
+ return (jalview.binding.AnnotationElement) obj;
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vAnnotationElement
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setAnnotationElement(
+ final int index,
+ final jalview.binding.AnnotationElement vAnnotationElement)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._annotationElementList.size()) {
+ throw new IndexOutOfBoundsException("setAnnotationElement: Index value '" + index + "' not in range [0.." + (this._annotationElementList.size() - 1) + "]");
+ }
+
+ this._annotationElementList.set(index, vAnnotationElement);
+ }
+
+ /**
+ *
+ *
+ * @param vAnnotationElementArray
+ */
+ public void setAnnotationElement(
+ final jalview.binding.AnnotationElement[] vAnnotationElementArray) {
+ //-- copy array
+ _annotationElementList.clear();
+
+ for (int i = 0; i < vAnnotationElementArray.length; i++) {
+ this._annotationElementList.add(vAnnotationElementArray[i]);
+ }
+ }
+
+ /**
+ * Sets the value of field 'description'.
+ *
+ * @param description the value of field 'description'.
+ */
+ public void setDescription(
+ final java.lang.String description) {
+ this._description = description;
+ }
+
+ /**
+ * Sets the value of field 'graph'.
+ *
+ * @param graph the value of field 'graph'.
+ */
+ public void setGraph(
+ final boolean graph) {
+ this._graph = graph;
+ this._has_graph = true;
+ }
+
+ /**
+ * Sets the value of field 'graphType'.
+ *
+ * @param graphType the value of field 'graphType'.
+ */
+ public void setGraphType(
+ final int graphType) {
+ this._graphType = graphType;
+ this._has_graphType = true;
+ }
+
+ /**
+ * Sets the value of field 'label'.
+ *
+ * @param label the value of field 'label'.
+ */
+ public void setLabel(
+ final java.lang.String label) {
+ this._label = label;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.Annotation
+ */
+ public static jalview.binding.Annotation unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.Annotation) Unmarshaller.unmarshal(jalview.binding.Annotation.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
}
- }
-
- /**
- * Sets the value of field 'description'.
- *
- * @param description
- * the value of field 'description'.
- */
- public void setDescription(final java.lang.String description)
- {
- this._description = description;
- }
-
- /**
- * Sets the value of field 'graph'.
- *
- * @param graph
- * the value of field 'graph'.
- */
- public void setGraph(final boolean graph)
- {
- this._graph = graph;
- this._has_graph = true;
- }
-
- /**
- * Sets the value of field 'graphType'.
- *
- * @param graphType
- * the value of field 'graphType'.
- */
- public void setGraphType(final int graphType)
- {
- this._graphType = graphType;
- this._has_graphType = true;
- }
-
- /**
- * Sets the value of field 'label'.
- *
- * @param label
- * the value of field 'label'.
- */
- public void setLabel(final java.lang.String label)
- {
- this._label = label;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.Annotation
- */
- public static jalview.binding.Annotation unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.Annotation) Unmarshaller.unmarshal(
- jalview.binding.Annotation.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class AnnotationElement implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _position.
- */
- private int _position;
-
- /**
- * keeps track of state for field: _position
- */
- private boolean _has_position;
-
- /**
- * Field _displayCharacter.
- */
- private java.lang.String _displayCharacter;
-
- /**
- * Field _description.
- */
- private java.lang.String _description;
-
- /**
- * Field _secondaryStructure.
- */
- private java.lang.String _secondaryStructure;
-
- /**
- * Field _value.
- */
- private float _value;
-
- /**
- * keeps track of state for field: _value
- */
- private boolean _has_value;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public AnnotationElement()
- {
- super();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
+public class AnnotationElement implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _position.
+ */
+ private int _position;
+
+ /**
+ * keeps track of state for field: _position
+ */
+ private boolean _has_position;
+
+ /**
+ * Field _displayCharacter.
+ */
+ private java.lang.String _displayCharacter;
+
+ /**
+ * Field _description.
+ */
+ private java.lang.String _description;
+
+ /**
+ * Field _secondaryStructure.
+ */
+ private java.lang.String _secondaryStructure;
+
+ /**
+ * Field _value.
+ */
+ private float _value;
+
+ /**
+ * keeps track of state for field: _value
+ */
+ private boolean _has_value;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public AnnotationElement() {
+ super();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ */
+ public void deletePosition(
+ ) {
+ this._has_position= false;
+ }
+
+ /**
+ */
+ public void deleteValue(
+ ) {
+ this._has_value= false;
+ }
+
+ /**
+ * Returns the value of field 'description'.
+ *
+ * @return the value of field 'Description'.
+ */
+ public java.lang.String getDescription(
+ ) {
+ return this._description;
+ }
+
+ /**
+ * Returns the value of field 'displayCharacter'.
+ *
+ * @return the value of field 'DisplayCharacter'.
+ */
+ public java.lang.String getDisplayCharacter(
+ ) {
+ return this._displayCharacter;
+ }
+
+ /**
+ * Returns the value of field 'position'.
+ *
+ * @return the value of field 'Position'.
*/
- public void deletePosition()
- {
- this._has_position = false;
- }
+ public int getPosition(
+ ) {
+ return this._position;
+ }
+
+ /**
+ * Returns the value of field 'secondaryStructure'.
+ *
+ * @return the value of field 'SecondaryStructure'.
+ */
+ public java.lang.String getSecondaryStructure(
+ ) {
+ return this._secondaryStructure;
+ }
+
+ /**
+ * Returns the value of field 'value'.
+ *
+ * @return the value of field 'Value'.
+ */
+ public float getValue(
+ ) {
+ return this._value;
+ }
+
+ /**
+ * Method hasPosition.
+ *
+ * @return true if at least one Position has been added
+ */
+ public boolean hasPosition(
+ ) {
+ return this._has_position;
+ }
+
+ /**
+ * Method hasValue.
+ *
+ * @return true if at least one Value has been added
+ */
+ public boolean hasValue(
+ ) {
+ return this._has_value;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Sets the value of field 'description'.
+ *
+ * @param description the value of field 'description'.
+ */
+ public void setDescription(
+ final java.lang.String description) {
+ this._description = description;
+ }
+
+ /**
+ * Sets the value of field 'displayCharacter'.
+ *
+ * @param displayCharacter the value of field 'displayCharacter'
+ */
+ public void setDisplayCharacter(
+ final java.lang.String displayCharacter) {
+ this._displayCharacter = displayCharacter;
+ }
+
+ /**
+ * Sets the value of field 'position'.
+ *
+ * @param position the value of field 'position'.
+ */
+ public void setPosition(
+ final int position) {
+ this._position = position;
+ this._has_position = true;
+ }
+
+ /**
+ * Sets the value of field 'secondaryStructure'.
+ *
+ * @param secondaryStructure the value of field
+ * 'secondaryStructure'.
+ */
+ public void setSecondaryStructure(
+ final java.lang.String secondaryStructure) {
+ this._secondaryStructure = secondaryStructure;
+ }
+
+ /**
+ * Sets the value of field 'value'.
+ *
+ * @param value the value of field 'value'.
+ */
+ public void setValue(
+ final float value) {
+ this._value = value;
+ this._has_value = true;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.AnnotationElement
+ */
+ public static jalview.binding.AnnotationElement unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.AnnotationElement) Unmarshaller.unmarshal(jalview.binding.AnnotationElement.class, reader);
+ }
- /**
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
*/
- public void deleteValue()
- {
- this._has_value = false;
- }
-
- /**
- * Returns the value of field 'description'.
- *
- * @return the value of field 'Description'.
- */
- public java.lang.String getDescription()
- {
- return this._description;
- }
-
- /**
- * Returns the value of field 'displayCharacter'.
- *
- * @return the value of field 'DisplayCharacter'.
- */
- public java.lang.String getDisplayCharacter()
- {
- return this._displayCharacter;
- }
-
- /**
- * Returns the value of field 'position'.
- *
- * @return the value of field 'Position'.
- */
- public int getPosition()
- {
- return this._position;
- }
-
- /**
- * Returns the value of field 'secondaryStructure'.
- *
- * @return the value of field 'SecondaryStructure'.
- */
- public java.lang.String getSecondaryStructure()
- {
- return this._secondaryStructure;
- }
-
- /**
- * Returns the value of field 'value'.
- *
- * @return the value of field 'Value'.
- */
- public float getValue()
- {
- return this._value;
- }
-
- /**
- * Method hasPosition.
- *
- * @return true if at least one Position has been added
- */
- public boolean hasPosition()
- {
- return this._has_position;
- }
-
- /**
- * Method hasValue.
- *
- * @return true if at least one Value has been added
- */
- public boolean hasValue()
- {
- return this._has_value;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
}
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- * Sets the value of field 'description'.
- *
- * @param description
- * the value of field 'description'.
- */
- public void setDescription(final java.lang.String description)
- {
- this._description = description;
- }
-
- /**
- * Sets the value of field 'displayCharacter'.
- *
- * @param displayCharacter
- * the value of field 'displayCharacter'
- */
- public void setDisplayCharacter(final java.lang.String displayCharacter)
- {
- this._displayCharacter = displayCharacter;
- }
-
- /**
- * Sets the value of field 'position'.
- *
- * @param position
- * the value of field 'position'.
- */
- public void setPosition(final int position)
- {
- this._position = position;
- this._has_position = true;
- }
-
- /**
- * Sets the value of field 'secondaryStructure'.
- *
- * @param secondaryStructure
- * the value of field 'secondaryStructure'.
- */
- public void setSecondaryStructure(
- final java.lang.String secondaryStructure)
- {
- this._secondaryStructure = secondaryStructure;
- }
-
- /**
- * Sets the value of field 'value'.
- *
- * @param value
- * the value of field 'value'.
- */
- public void setValue(final float value)
- {
- this._value = value;
- this._has_value = true;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.AnnotationElement
- */
- public static jalview.binding.AnnotationElement unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.AnnotationElement) Unmarshaller.unmarshal(
- jalview.binding.AnnotationElement.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class Colour implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _name.
- */
- private java.lang.String _name;
-
- /**
- * Field _RGB.
- */
- private java.lang.String _RGB;
-
- /**
- * Field _minRGB.
- */
- private java.lang.String _minRGB;
-
- /**
- * loosely specified enumeration: NONE,ABOVE, or BELOW
- */
- private java.lang.String _threshType;
-
- /**
- * Field _threshold.
- */
- private float _threshold;
-
- /**
- * keeps track of state for field: _threshold
- */
- private boolean _has_threshold;
-
- /**
- * Field _max.
- */
- private float _max;
-
- /**
- * keeps track of state for field: _max
- */
- private boolean _has_max;
-
- /**
- * Field _min.
- */
- private float _min;
-
- /**
- * keeps track of state for field: _min
- */
- private boolean _has_min;
-
- /**
- * Field _colourByLabel.
- */
- private boolean _colourByLabel;
-
- /**
- * keeps track of state for field: _colourByLabel
- */
- private boolean _has_colourByLabel;
-
- /**
- * Field _autoScale.
- */
- private boolean _autoScale;
-
- /**
- * keeps track of state for field: _autoScale
- */
- private boolean _has_autoScale;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public Colour()
- {
- super();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- */
- public void deleteAutoScale()
- {
- this._has_autoScale = false;
- }
-
- /**
- */
- public void deleteColourByLabel()
- {
- this._has_colourByLabel = false;
- }
-
- /**
- */
- public void deleteMax()
- {
- this._has_max = false;
- }
-
- /**
- */
- public void deleteMin()
- {
- this._has_min = false;
- }
-
- /**
- */
- public void deleteThreshold()
- {
- this._has_threshold = false;
- }
-
- /**
- * Returns the value of field 'autoScale'.
- *
- * @return the value of field 'AutoScale'.
- */
- public boolean getAutoScale()
- {
- return this._autoScale;
- }
-
- /**
- * Returns the value of field 'colourByLabel'.
- *
- * @return the value of field 'ColourByLabel'.
- */
- public boolean getColourByLabel()
- {
- return this._colourByLabel;
- }
-
- /**
- * Returns the value of field 'max'.
- *
- * @return the value of field 'Max'.
- */
- public float getMax()
- {
- return this._max;
- }
-
- /**
- * Returns the value of field 'min'.
- *
- * @return the value of field 'Min'.
- */
- public float getMin()
- {
- return this._min;
- }
-
- /**
- * Returns the value of field 'minRGB'.
- *
- * @return the value of field 'MinRGB'.
- */
- public java.lang.String getMinRGB()
- {
- return this._minRGB;
- }
-
- /**
- * Returns the value of field 'name'.
- *
- * @return the value of field 'Name'.
- */
- public java.lang.String getName()
- {
- return this._name;
- }
-
- /**
- * Returns the value of field 'RGB'.
- *
- * @return the value of field 'RGB'.
- */
- public java.lang.String getRGB()
- {
- return this._RGB;
- }
-
- /**
- * Returns the value of field 'threshType'. The field 'threshType' has the
- * following description: loosely specified enumeration: NONE,ABOVE, or BELOW
- *
- * @return the value of field 'ThreshType'.
- */
- public java.lang.String getThreshType()
- {
- return this._threshType;
- }
-
- /**
- * Returns the value of field 'threshold'.
- *
- * @return the value of field 'Threshold'.
- */
- public float getThreshold()
- {
- return this._threshold;
- }
-
- /**
- * Method hasAutoScale.
- *
- * @return true if at least one AutoScale has been added
- */
- public boolean hasAutoScale()
- {
- return this._has_autoScale;
- }
-
- /**
- * Method hasColourByLabel.
- *
- * @return true if at least one ColourByLabel has been added
- */
- public boolean hasColourByLabel()
- {
- return this._has_colourByLabel;
- }
-
- /**
- * Method hasMax.
- *
- * @return true if at least one Max has been added
- */
- public boolean hasMax()
- {
- return this._has_max;
- }
-
- /**
- * Method hasMin.
- *
- * @return true if at least one Min has been added
- */
- public boolean hasMin()
- {
- return this._has_min;
- }
-
- /**
- * Method hasThreshold.
- *
- * @return true if at least one Threshold has been added
- */
- public boolean hasThreshold()
- {
- return this._has_threshold;
- }
-
- /**
- * Returns the value of field 'autoScale'.
- *
- * @return the value of field 'AutoScale'.
- */
- public boolean isAutoScale()
- {
- return this._autoScale;
- }
-
- /**
- * Returns the value of field 'colourByLabel'.
- *
- * @return the value of field 'ColourByLabel'.
- */
- public boolean isColourByLabel()
- {
- return this._colourByLabel;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
- }
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- * Sets the value of field 'autoScale'.
- *
- * @param autoScale
- * the value of field 'autoScale'.
- */
- public void setAutoScale(final boolean autoScale)
- {
- this._autoScale = autoScale;
- this._has_autoScale = true;
- }
-
- /**
- * Sets the value of field 'colourByLabel'.
- *
- * @param colourByLabel
- * the value of field 'colourByLabel'.
- */
- public void setColourByLabel(final boolean colourByLabel)
- {
- this._colourByLabel = colourByLabel;
- this._has_colourByLabel = true;
- }
-
- /**
- * Sets the value of field 'max'.
- *
- * @param max
- * the value of field 'max'.
- */
- public void setMax(final float max)
- {
- this._max = max;
- this._has_max = true;
- }
-
- /**
- * Sets the value of field 'min'.
- *
- * @param min
- * the value of field 'min'.
- */
- public void setMin(final float min)
- {
- this._min = min;
- this._has_min = true;
- }
-
- /**
- * Sets the value of field 'minRGB'.
- *
- * @param minRGB
- * the value of field 'minRGB'.
- */
- public void setMinRGB(final java.lang.String minRGB)
- {
- this._minRGB = minRGB;
- }
-
- /**
- * Sets the value of field 'name'.
- *
- * @param name
- * the value of field 'name'.
- */
- public void setName(final java.lang.String name)
- {
- this._name = name;
- }
-
- /**
- * Sets the value of field 'RGB'.
- *
- * @param RGB
- * the value of field 'RGB'.
- */
- public void setRGB(final java.lang.String RGB)
- {
- this._RGB = RGB;
- }
-
- /**
- * Sets the value of field 'threshType'. The field 'threshType' has the
- * following description: loosely specified enumeration: NONE,ABOVE, or BELOW
- *
- * @param threshType
- * the value of field 'threshType'.
- */
- public void setThreshType(final java.lang.String threshType)
- {
- this._threshType = threshType;
- }
-
- /**
- * Sets the value of field 'threshold'.
- *
- * @param threshold
- * the value of field 'threshold'.
- */
- public void setThreshold(final float threshold)
- {
- this._threshold = threshold;
- this._has_threshold = true;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.Colour
- */
- public static jalview.binding.Colour unmarshal(final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.Colour) Unmarshaller.unmarshal(
- jalview.binding.Colour.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+public class Colour implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _name.
+ */
+ private java.lang.String _name;
+
+ /**
+ * Field _RGB.
+ */
+ private java.lang.String _RGB;
+
+ /**
+ * Field _minRGB.
+ */
+ private java.lang.String _minRGB;
+
+ /**
+ * loosely specified enumeration: NONE,ABOVE, or BELOW
+ */
+ private java.lang.String _threshType;
+
+ /**
+ * Field _threshold.
+ */
+ private float _threshold;
+
+ /**
+ * keeps track of state for field: _threshold
+ */
+ private boolean _has_threshold;
+
+ /**
+ * Field _max.
+ */
+ private float _max;
+
+ /**
+ * keeps track of state for field: _max
+ */
+ private boolean _has_max;
+
+ /**
+ * Field _min.
+ */
+ private float _min;
+
+ /**
+ * keeps track of state for field: _min
+ */
+ private boolean _has_min;
+
+ /**
+ * Field _colourByLabel.
+ */
+ private boolean _colourByLabel;
+
+ /**
+ * keeps track of state for field: _colourByLabel
+ */
+ private boolean _has_colourByLabel;
+
+ /**
+ * Field _autoScale.
+ */
+ private boolean _autoScale;
+
+ /**
+ * keeps track of state for field: _autoScale
+ */
+ private boolean _has_autoScale;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public Colour() {
+ super();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ */
+ public void deleteAutoScale(
+ ) {
+ this._has_autoScale= false;
+ }
+
+ /**
+ */
+ public void deleteColourByLabel(
+ ) {
+ this._has_colourByLabel= false;
+ }
+
+ /**
+ */
+ public void deleteMax(
+ ) {
+ this._has_max= false;
+ }
+
+ /**
+ */
+ public void deleteMin(
+ ) {
+ this._has_min= false;
+ }
+
+ /**
+ */
+ public void deleteThreshold(
+ ) {
+ this._has_threshold= false;
+ }
+
+ /**
+ * Returns the value of field 'autoScale'.
+ *
+ * @return the value of field 'AutoScale'.
+ */
+ public boolean getAutoScale(
+ ) {
+ return this._autoScale;
+ }
+
+ /**
+ * Returns the value of field 'colourByLabel'.
+ *
+ * @return the value of field 'ColourByLabel'.
+ */
+ public boolean getColourByLabel(
+ ) {
+ return this._colourByLabel;
+ }
+
+ /**
+ * Returns the value of field 'max'.
+ *
+ * @return the value of field 'Max'.
+ */
+ public float getMax(
+ ) {
+ return this._max;
+ }
+
+ /**
+ * Returns the value of field 'min'.
+ *
+ * @return the value of field 'Min'.
+ */
+ public float getMin(
+ ) {
+ return this._min;
+ }
+
+ /**
+ * Returns the value of field 'minRGB'.
+ *
+ * @return the value of field 'MinRGB'.
+ */
+ public java.lang.String getMinRGB(
+ ) {
+ return this._minRGB;
+ }
+
+ /**
+ * Returns the value of field 'name'.
+ *
+ * @return the value of field 'Name'.
+ */
+ public java.lang.String getName(
+ ) {
+ return this._name;
+ }
+
+ /**
+ * Returns the value of field 'RGB'.
+ *
+ * @return the value of field 'RGB'.
+ */
+ public java.lang.String getRGB(
+ ) {
+ return this._RGB;
+ }
+
+ /**
+ * Returns the value of field 'threshType'. The field
+ * 'threshType' has the following description: loosely
+ * specified enumeration: NONE,ABOVE, or BELOW
+ *
+ * @return the value of field 'ThreshType'.
+ */
+ public java.lang.String getThreshType(
+ ) {
+ return this._threshType;
+ }
+
+ /**
+ * Returns the value of field 'threshold'.
+ *
+ * @return the value of field 'Threshold'.
+ */
+ public float getThreshold(
+ ) {
+ return this._threshold;
+ }
+
+ /**
+ * Method hasAutoScale.
+ *
+ * @return true if at least one AutoScale has been added
+ */
+ public boolean hasAutoScale(
+ ) {
+ return this._has_autoScale;
+ }
+
+ /**
+ * Method hasColourByLabel.
+ *
+ * @return true if at least one ColourByLabel has been added
+ */
+ public boolean hasColourByLabel(
+ ) {
+ return this._has_colourByLabel;
+ }
+
+ /**
+ * Method hasMax.
+ *
+ * @return true if at least one Max has been added
+ */
+ public boolean hasMax(
+ ) {
+ return this._has_max;
+ }
+
+ /**
+ * Method hasMin.
+ *
+ * @return true if at least one Min has been added
+ */
+ public boolean hasMin(
+ ) {
+ return this._has_min;
+ }
+
+ /**
+ * Method hasThreshold.
+ *
+ * @return true if at least one Threshold has been added
+ */
+ public boolean hasThreshold(
+ ) {
+ return this._has_threshold;
+ }
+
+ /**
+ * Returns the value of field 'autoScale'.
+ *
+ * @return the value of field 'AutoScale'.
+ */
+ public boolean isAutoScale(
+ ) {
+ return this._autoScale;
+ }
+
+ /**
+ * Returns the value of field 'colourByLabel'.
+ *
+ * @return the value of field 'ColourByLabel'.
+ */
+ public boolean isColourByLabel(
+ ) {
+ return this._colourByLabel;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Sets the value of field 'autoScale'.
+ *
+ * @param autoScale the value of field 'autoScale'.
+ */
+ public void setAutoScale(
+ final boolean autoScale) {
+ this._autoScale = autoScale;
+ this._has_autoScale = true;
+ }
+
+ /**
+ * Sets the value of field 'colourByLabel'.
+ *
+ * @param colourByLabel the value of field 'colourByLabel'.
+ */
+ public void setColourByLabel(
+ final boolean colourByLabel) {
+ this._colourByLabel = colourByLabel;
+ this._has_colourByLabel = true;
+ }
+
+ /**
+ * Sets the value of field 'max'.
+ *
+ * @param max the value of field 'max'.
+ */
+ public void setMax(
+ final float max) {
+ this._max = max;
+ this._has_max = true;
+ }
+
+ /**
+ * Sets the value of field 'min'.
+ *
+ * @param min the value of field 'min'.
+ */
+ public void setMin(
+ final float min) {
+ this._min = min;
+ this._has_min = true;
+ }
+
+ /**
+ * Sets the value of field 'minRGB'.
+ *
+ * @param minRGB the value of field 'minRGB'.
+ */
+ public void setMinRGB(
+ final java.lang.String minRGB) {
+ this._minRGB = minRGB;
+ }
+
+ /**
+ * Sets the value of field 'name'.
+ *
+ * @param name the value of field 'name'.
+ */
+ public void setName(
+ final java.lang.String name) {
+ this._name = name;
+ }
+
+ /**
+ * Sets the value of field 'RGB'.
+ *
+ * @param RGB the value of field 'RGB'.
+ */
+ public void setRGB(
+ final java.lang.String RGB) {
+ this._RGB = RGB;
+ }
+
+ /**
+ * Sets the value of field 'threshType'. The field 'threshType'
+ * has the following description: loosely specified
+ * enumeration: NONE,ABOVE, or BELOW
+ *
+ * @param threshType the value of field 'threshType'.
+ */
+ public void setThreshType(
+ final java.lang.String threshType) {
+ this._threshType = threshType;
+ }
+
+ /**
+ * Sets the value of field 'threshold'.
+ *
+ * @param threshold the value of field 'threshold'.
+ */
+ public void setThreshold(
+ final float threshold) {
+ this._threshold = threshold;
+ this._has_threshold = true;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.Colour
+ */
+ public static jalview.binding.Colour unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.Colour) Unmarshaller.unmarshal(jalview.binding.Colour.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class Feature implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _begin.
- */
- private int _begin;
-
- /**
- * keeps track of state for field: _begin
- */
- private boolean _has_begin;
-
- /**
- * Field _end.
- */
- private int _end;
-
- /**
- * keeps track of state for field: _end
- */
- private boolean _has_end;
-
- /**
- * Field _type.
- */
- private java.lang.String _type;
-
- /**
- * Field _description.
- */
- private java.lang.String _description;
-
- /**
- * Field _status.
- */
- private java.lang.String _status;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public Feature()
- {
- super();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
+public class Feature implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _begin.
+ */
+ private int _begin;
+
+ /**
+ * keeps track of state for field: _begin
+ */
+ private boolean _has_begin;
+
+ /**
+ * Field _end.
+ */
+ private int _end;
+
+ /**
+ * keeps track of state for field: _end
+ */
+ private boolean _has_end;
+
+ /**
+ * Field _type.
+ */
+ private java.lang.String _type;
+
+ /**
+ * Field _description.
+ */
+ private java.lang.String _description;
+
+ /**
+ * Field _status.
+ */
+ private java.lang.String _status;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public Feature() {
+ super();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ */
+ public void deleteBegin(
+ ) {
+ this._has_begin= false;
+ }
+
+ /**
+ */
+ public void deleteEnd(
+ ) {
+ this._has_end= false;
+ }
+
+ /**
+ * Returns the value of field 'begin'.
+ *
+ * @return the value of field 'Begin'.
+ */
+ public int getBegin(
+ ) {
+ return this._begin;
+ }
+
+ /**
+ * Returns the value of field 'description'.
+ *
+ * @return the value of field 'Description'.
+ */
+ public java.lang.String getDescription(
+ ) {
+ return this._description;
+ }
+
+ /**
+ * Returns the value of field 'end'.
+ *
+ * @return the value of field 'End'.
*/
- public void deleteBegin()
- {
- this._has_begin = false;
- }
+ public int getEnd(
+ ) {
+ return this._end;
+ }
+
+ /**
+ * Returns the value of field 'status'.
+ *
+ * @return the value of field 'Status'.
+ */
+ public java.lang.String getStatus(
+ ) {
+ return this._status;
+ }
+
+ /**
+ * Returns the value of field 'type'.
+ *
+ * @return the value of field 'Type'.
+ */
+ public java.lang.String getType(
+ ) {
+ return this._type;
+ }
+
+ /**
+ * Method hasBegin.
+ *
+ * @return true if at least one Begin has been added
+ */
+ public boolean hasBegin(
+ ) {
+ return this._has_begin;
+ }
+
+ /**
+ * Method hasEnd.
+ *
+ * @return true if at least one End has been added
+ */
+ public boolean hasEnd(
+ ) {
+ return this._has_end;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Sets the value of field 'begin'.
+ *
+ * @param begin the value of field 'begin'.
+ */
+ public void setBegin(
+ final int begin) {
+ this._begin = begin;
+ this._has_begin = true;
+ }
+
+ /**
+ * Sets the value of field 'description'.
+ *
+ * @param description the value of field 'description'.
+ */
+ public void setDescription(
+ final java.lang.String description) {
+ this._description = description;
+ }
+
+ /**
+ * Sets the value of field 'end'.
+ *
+ * @param end the value of field 'end'.
+ */
+ public void setEnd(
+ final int end) {
+ this._end = end;
+ this._has_end = true;
+ }
+
+ /**
+ * Sets the value of field 'status'.
+ *
+ * @param status the value of field 'status'.
+ */
+ public void setStatus(
+ final java.lang.String status) {
+ this._status = status;
+ }
+
+ /**
+ * Sets the value of field 'type'.
+ *
+ * @param type the value of field 'type'.
+ */
+ public void setType(
+ final java.lang.String type) {
+ this._type = type;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.Feature
+ */
+ public static jalview.binding.Feature unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.Feature) Unmarshaller.unmarshal(jalview.binding.Feature.class, reader);
+ }
- /**
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
*/
- public void deleteEnd()
- {
- this._has_end = false;
- }
-
- /**
- * Returns the value of field 'begin'.
- *
- * @return the value of field 'Begin'.
- */
- public int getBegin()
- {
- return this._begin;
- }
-
- /**
- * Returns the value of field 'description'.
- *
- * @return the value of field 'Description'.
- */
- public java.lang.String getDescription()
- {
- return this._description;
- }
-
- /**
- * Returns the value of field 'end'.
- *
- * @return the value of field 'End'.
- */
- public int getEnd()
- {
- return this._end;
- }
-
- /**
- * Returns the value of field 'status'.
- *
- * @return the value of field 'Status'.
- */
- public java.lang.String getStatus()
- {
- return this._status;
- }
-
- /**
- * Returns the value of field 'type'.
- *
- * @return the value of field 'Type'.
- */
- public java.lang.String getType()
- {
- return this._type;
- }
-
- /**
- * Method hasBegin.
- *
- * @return true if at least one Begin has been added
- */
- public boolean hasBegin()
- {
- return this._has_begin;
- }
-
- /**
- * Method hasEnd.
- *
- * @return true if at least one End has been added
- */
- public boolean hasEnd()
- {
- return this._has_end;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
}
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- * Sets the value of field 'begin'.
- *
- * @param begin
- * the value of field 'begin'.
- */
- public void setBegin(final int begin)
- {
- this._begin = begin;
- this._has_begin = true;
- }
-
- /**
- * Sets the value of field 'description'.
- *
- * @param description
- * the value of field 'description'.
- */
- public void setDescription(final java.lang.String description)
- {
- this._description = description;
- }
-
- /**
- * Sets the value of field 'end'.
- *
- * @param end
- * the value of field 'end'.
- */
- public void setEnd(final int end)
- {
- this._end = end;
- this._has_end = true;
- }
-
- /**
- * Sets the value of field 'status'.
- *
- * @param status
- * the value of field 'status'.
- */
- public void setStatus(final java.lang.String status)
- {
- this._status = status;
- }
-
- /**
- * Sets the value of field 'type'.
- *
- * @param type
- * the value of field 'type'.
- */
- public void setType(final java.lang.String type)
- {
- this._type = type;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.Feature
- */
- public static jalview.binding.Feature unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.Feature) Unmarshaller.unmarshal(
- jalview.binding.Feature.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
-import jalview.util.MessageManager;
-
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
*
* @version $Revision$ $Date$
*/
-public class FeatureSettings implements java.io.Serializable
-{
+public class FeatureSettings implements java.io.Serializable {
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
- /**
- * Field _settingList.
- */
- private java.util.Vector _settingList;
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
- // ----------------/
- // - Constructors -/
- // ----------------/
+ /**
+ * Field _settingList.
+ */
+ private java.util.Vector _settingList;
- public FeatureSettings()
- {
- super();
- this._settingList = new java.util.Vector();
- }
- // -----------/
- // - Methods -/
- // -----------/
+ //----------------/
+ //- Constructors -/
+ //----------------/
- /**
- *
- *
- * @param vSetting
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addSetting(final jalview.binding.Setting vSetting)
- throws java.lang.IndexOutOfBoundsException
- {
- this._settingList.addElement(vSetting);
- }
+ public FeatureSettings() {
+ super();
+ this._settingList = new java.util.Vector();
+ }
- /**
- *
- *
- * @param index
- * @param vSetting
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addSetting(final int index,
- final jalview.binding.Setting vSetting)
- throws java.lang.IndexOutOfBoundsException
- {
- this._settingList.add(index, vSetting);
- }
- /**
- * Method enumerateSetting.
- *
- * @return an Enumeration over all jalview.binding.Setting elements
- */
- public java.util.Enumeration enumerateSetting()
- {
- return this._settingList.elements();
- }
+ //-----------/
+ //- Methods -/
+ //-----------/
- /**
- * Method getSetting.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the jalview.binding.Setting at the given index
- */
- public jalview.binding.Setting getSetting(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._settingList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getSetting",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._settingList.size() - 1)).toString()
- }));
+ /**
+ *
+ *
+ * @param vSetting
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addSetting(
+ final jalview.binding.Setting vSetting)
+ throws java.lang.IndexOutOfBoundsException {
+ this._settingList.addElement(vSetting);
}
- return (jalview.binding.Setting) _settingList.get(index);
- }
+ /**
+ *
+ *
+ * @param index
+ * @param vSetting
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addSetting(
+ final int index,
+ final jalview.binding.Setting vSetting)
+ throws java.lang.IndexOutOfBoundsException {
+ this._settingList.add(index, vSetting);
+ }
- /**
- * Method getSetting.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public jalview.binding.Setting[] getSetting()
- {
- jalview.binding.Setting[] array = new jalview.binding.Setting[0];
- return (jalview.binding.Setting[]) this._settingList.toArray(array);
- }
+ /**
+ * Method enumerateSetting.
+ *
+ * @return an Enumeration over all jalview.binding.Setting
+ * elements
+ */
+ public java.util.Enumeration enumerateSetting(
+ ) {
+ return this._settingList.elements();
+ }
- /**
- * Method getSettingCount.
- *
- * @return the size of this collection
- */
- public int getSettingCount()
- {
- return this._settingList.size();
- }
+ /**
+ * Method getSetting.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the jalview.binding.Setting at the
+ * given index
+ */
+ public jalview.binding.Setting getSetting(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._settingList.size()) {
+ throw new IndexOutOfBoundsException("getSetting: Index value '" + index + "' not in range [0.." + (this._settingList.size() - 1) + "]");
+ }
+
+ return (jalview.binding.Setting) _settingList.get(index);
+ }
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+ /**
+ * Method getSetting.Returns the contents of the collection in
+ * an Array. <p>Note: Just in case the collection contents
+ * are changing in another thread, we pass a 0-length Array of
+ * the correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.binding.Setting[] getSetting(
+ ) {
+ jalview.binding.Setting[] array = new jalview.binding.Setting[0];
+ return (jalview.binding.Setting[]) this._settingList.toArray(array);
}
- return true;
- }
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
+ /**
+ * Method getSettingCount.
+ *
+ * @return the size of this collection
+ */
+ public int getSettingCount(
+ ) {
+ return this._settingList.size();
+ }
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
- /**
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
*/
- public void removeAllSetting()
- {
- this._settingList.clear();
- }
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
- /**
- * Method removeSetting.
- *
- * @param vSetting
- * @return true if the object was removed from the collection.
- */
- public boolean removeSetting(final jalview.binding.Setting vSetting)
- {
- boolean removed = _settingList.remove(vSetting);
- return removed;
- }
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
- /**
- * Method removeSettingAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public jalview.binding.Setting removeSettingAt(final int index)
- {
- java.lang.Object obj = this._settingList.remove(index);
- return (jalview.binding.Setting) obj;
- }
+ /**
+ */
+ public void removeAllSetting(
+ ) {
+ this._settingList.clear();
+ }
- /**
- *
- *
- * @param index
- * @param vSetting
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setSetting(final int index,
- final jalview.binding.Setting vSetting)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._settingList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setSetting",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._settingList.size() - 1)).toString()
- }));
+ /**
+ * Method removeSetting.
+ *
+ * @param vSetting
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeSetting(
+ final jalview.binding.Setting vSetting) {
+ boolean removed = _settingList.remove(vSetting);
+ return removed;
}
- this._settingList.set(index, vSetting);
- }
+ /**
+ * Method removeSettingAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.binding.Setting removeSettingAt(
+ final int index) {
+ java.lang.Object obj = this._settingList.remove(index);
+ return (jalview.binding.Setting) obj;
+ }
- /**
- *
- *
- * @param vSettingArray
- */
- public void setSetting(final jalview.binding.Setting[] vSettingArray)
- {
- // -- copy array
- _settingList.clear();
+ /**
+ *
+ *
+ * @param index
+ * @param vSetting
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setSetting(
+ final int index,
+ final jalview.binding.Setting vSetting)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._settingList.size()) {
+ throw new IndexOutOfBoundsException("setSetting: Index value '" + index + "' not in range [0.." + (this._settingList.size() - 1) + "]");
+ }
+
+ this._settingList.set(index, vSetting);
+ }
- for (int i = 0; i < vSettingArray.length; i++)
- {
- this._settingList.add(vSettingArray[i]);
+ /**
+ *
+ *
+ * @param vSettingArray
+ */
+ public void setSetting(
+ final jalview.binding.Setting[] vSettingArray) {
+ //-- copy array
+ _settingList.clear();
+
+ for (int i = 0; i < vSettingArray.length; i++) {
+ this._settingList.add(vSettingArray[i]);
+ }
}
- }
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.FeatureSettings
- */
- public static jalview.binding.FeatureSettings unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.FeatureSettings) Unmarshaller.unmarshal(
- jalview.binding.FeatureSettings.class, reader);
- }
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.FeatureSettings
+ */
+ public static jalview.binding.FeatureSettings unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.FeatureSettings) Unmarshaller.unmarshal(jalview.binding.FeatureSettings.class, reader);
+ }
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class Features extends Feature implements java.io.Serializable
+public class Features extends Feature
+implements java.io.Serializable
{
- // ----------------/
- // - Constructors -/
- // ----------------/
- public Features()
- {
- super();
- }
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public Features() {
+ super();
+ }
+
- // -----------/
- // - Methods -/
- // -----------/
+ //-----------/
+ //- Methods -/
+ //-----------/
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
}
- return true;
- }
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.Feature
- */
- public static jalview.binding.Feature unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.Feature) Unmarshaller.unmarshal(
- jalview.binding.Features.class, reader);
- }
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.Feature
+ */
+ public static jalview.binding.Feature unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.Feature) Unmarshaller.unmarshal(jalview.binding.Features.class, reader);
+ }
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
-//- Imported classes and packages -/
-//---------------------------------/
-
-import jalview.util.MessageManager;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
*
* @version $Revision$ $Date$
*/
-public class JGroup implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _start.
- */
- private int _start;
-
- /**
- * keeps track of state for field: _start
- */
- private boolean _has_start;
-
- /**
- * Field _end.
- */
- private int _end;
-
- /**
- * keeps track of state for field: _end
- */
- private boolean _has_end;
-
- /**
- * Field _name.
- */
- private java.lang.String _name;
-
- /**
- * Field _colour.
- */
- private java.lang.String _colour;
-
- /**
- * Field _consThreshold.
- */
- private int _consThreshold;
-
- /**
- * keeps track of state for field: _consThreshold
- */
- private boolean _has_consThreshold;
-
- /**
- * Field _pidThreshold.
- */
- private int _pidThreshold;
-
- /**
- * keeps track of state for field: _pidThreshold
- */
- private boolean _has_pidThreshold;
-
- /**
- * Field _outlineColour.
- */
- private int _outlineColour;
-
- /**
- * keeps track of state for field: _outlineColour
- */
- private boolean _has_outlineColour;
-
- /**
- * Field _displayBoxes.
- */
- private boolean _displayBoxes;
-
- /**
- * keeps track of state for field: _displayBoxes
- */
- private boolean _has_displayBoxes;
-
- /**
- * Field _displayText.
- */
- private boolean _displayText;
-
- /**
- * keeps track of state for field: _displayText
- */
- private boolean _has_displayText;
-
- /**
- * Field _colourText.
- */
- private boolean _colourText;
-
- /**
- * keeps track of state for field: _colourText
- */
- private boolean _has_colourText;
-
- /**
- * Field _seqList.
- */
- private java.util.Vector _seqList;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public JGroup()
- {
- super();
- this._seqList = new java.util.Vector();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- *
- *
- * @param vSeq
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addSeq(final int vSeq)
- throws java.lang.IndexOutOfBoundsException
- {
- this._seqList.addElement(new java.lang.Integer(vSeq));
- }
-
- /**
- *
- *
- * @param index
- * @param vSeq
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addSeq(final int index, final int vSeq)
- throws java.lang.IndexOutOfBoundsException
- {
- this._seqList.add(index, new java.lang.Integer(vSeq));
- }
-
- /**
- */
- public void deleteColourText()
- {
- this._has_colourText = false;
- }
-
- /**
- */
- public void deleteConsThreshold()
- {
- this._has_consThreshold = false;
- }
-
- /**
- */
- public void deleteDisplayBoxes()
- {
- this._has_displayBoxes = false;
- }
-
- /**
- */
- public void deleteDisplayText()
- {
- this._has_displayText = false;
- }
-
- /**
- */
- public void deleteEnd()
- {
- this._has_end = false;
- }
-
- /**
- */
- public void deleteOutlineColour()
- {
- this._has_outlineColour = false;
- }
-
- /**
- */
- public void deletePidThreshold()
- {
- this._has_pidThreshold = false;
- }
-
- /**
- */
- public void deleteStart()
- {
- this._has_start = false;
- }
-
- /**
- * Method enumerateSeq.
- *
- * @return an Enumeration over all int elements
- */
- public java.util.Enumeration enumerateSeq()
- {
- return this._seqList.elements();
- }
-
- /**
- * Returns the value of field 'colour'.
- *
- * @return the value of field 'Colour'.
- */
- public java.lang.String getColour()
- {
- return this._colour;
- }
-
- /**
- * Returns the value of field 'colourText'.
- *
- * @return the value of field 'ColourText'.
- */
- public boolean getColourText()
- {
- return this._colourText;
- }
-
- /**
- * Returns the value of field 'consThreshold'.
- *
- * @return the value of field 'ConsThreshold'.
- */
- public int getConsThreshold()
- {
- return this._consThreshold;
- }
-
- /**
- * Returns the value of field 'displayBoxes'.
- *
- * @return the value of field 'DisplayBoxes'.
- */
- public boolean getDisplayBoxes()
- {
- return this._displayBoxes;
- }
-
- /**
- * Returns the value of field 'displayText'.
- *
- * @return the value of field 'DisplayText'.
- */
- public boolean getDisplayText()
- {
- return this._displayText;
- }
-
- /**
- * Returns the value of field 'end'.
- *
- * @return the value of field 'End'.
- */
- public int getEnd()
- {
- return this._end;
- }
-
- /**
- * Returns the value of field 'name'.
- *
- * @return the value of field 'Name'.
- */
- public java.lang.String getName()
- {
- return this._name;
- }
-
- /**
- * Returns the value of field 'outlineColour'.
- *
- * @return the value of field 'OutlineColour'.
- */
- public int getOutlineColour()
- {
- return this._outlineColour;
- }
-
- /**
- * Returns the value of field 'pidThreshold'.
- *
- * @return the value of field 'PidThreshold'.
- */
- public int getPidThreshold()
- {
- return this._pidThreshold;
- }
-
- /**
- * Method getSeq.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the int at the given index
- */
- public int getSeq(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._seqList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getSeq",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._seqList.size() - 1)).toString()
- }));
- }
-
- return ((java.lang.Integer) _seqList.get(index)).intValue();
- }
-
- /**
- * Method getSeq.Returns the contents of the collection in an Array.
- *
- * @return this collection as an Array
- */
- public int[] getSeq()
- {
- int size = this._seqList.size();
- int[] array = new int[size];
- java.util.Iterator iter = _seqList.iterator();
- for (int index = 0; index < size; index++)
- {
- array[index] = ((java.lang.Integer) iter.next()).intValue();
- }
- return array;
- }
-
- /**
- * Method getSeqCount.
- *
- * @return the size of this collection
- */
- public int getSeqCount()
- {
- return this._seqList.size();
- }
-
- /**
- * Returns the value of field 'start'.
- *
- * @return the value of field 'Start'.
- */
- public int getStart()
- {
- return this._start;
- }
-
- /**
- * Method hasColourText.
- *
- * @return true if at least one ColourText has been added
- */
- public boolean hasColourText()
- {
- return this._has_colourText;
- }
-
- /**
- * Method hasConsThreshold.
- *
- * @return true if at least one ConsThreshold has been added
- */
- public boolean hasConsThreshold()
- {
- return this._has_consThreshold;
- }
-
- /**
- * Method hasDisplayBoxes.
- *
- * @return true if at least one DisplayBoxes has been added
- */
- public boolean hasDisplayBoxes()
- {
- return this._has_displayBoxes;
- }
-
- /**
- * Method hasDisplayText.
- *
- * @return true if at least one DisplayText has been added
- */
- public boolean hasDisplayText()
- {
- return this._has_displayText;
- }
-
- /**
- * Method hasEnd.
- *
- * @return true if at least one End has been added
- */
- public boolean hasEnd()
- {
- return this._has_end;
- }
-
- /**
- * Method hasOutlineColour.
- *
- * @return true if at least one OutlineColour has been added
- */
- public boolean hasOutlineColour()
- {
- return this._has_outlineColour;
- }
-
- /**
- * Method hasPidThreshold.
- *
- * @return true if at least one PidThreshold has been added
- */
- public boolean hasPidThreshold()
- {
- return this._has_pidThreshold;
- }
-
- /**
- * Method hasStart.
- *
- * @return true if at least one Start has been added
- */
- public boolean hasStart()
- {
- return this._has_start;
- }
-
- /**
- * Returns the value of field 'colourText'.
- *
- * @return the value of field 'ColourText'.
- */
- public boolean isColourText()
- {
- return this._colourText;
- }
-
- /**
- * Returns the value of field 'displayBoxes'.
- *
- * @return the value of field 'DisplayBoxes'.
- */
- public boolean isDisplayBoxes()
- {
- return this._displayBoxes;
- }
-
- /**
- * Returns the value of field 'displayText'.
- *
- * @return the value of field 'DisplayText'.
- */
- public boolean isDisplayText()
- {
- return this._displayText;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
- }
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- */
- public void removeAllSeq()
- {
- this._seqList.clear();
- }
-
- /**
- * Method removeSeq.
- *
- * @param vSeq
- * @return true if the object was removed from the collection.
- */
- public boolean removeSeq(final int vSeq)
- {
- boolean removed = _seqList.remove(new java.lang.Integer(vSeq));
- return removed;
- }
-
- /**
- * Method removeSeqAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public int removeSeqAt(final int index)
- {
- java.lang.Object obj = this._seqList.remove(index);
- return ((java.lang.Integer) obj).intValue();
- }
-
- /**
- * Sets the value of field 'colour'.
- *
- * @param colour
- * the value of field 'colour'.
- */
- public void setColour(final java.lang.String colour)
- {
- this._colour = colour;
- }
-
- /**
- * Sets the value of field 'colourText'.
- *
- * @param colourText
- * the value of field 'colourText'.
- */
- public void setColourText(final boolean colourText)
- {
- this._colourText = colourText;
- this._has_colourText = true;
- }
-
- /**
- * Sets the value of field 'consThreshold'.
- *
- * @param consThreshold
- * the value of field 'consThreshold'.
- */
- public void setConsThreshold(final int consThreshold)
- {
- this._consThreshold = consThreshold;
- this._has_consThreshold = true;
- }
-
- /**
- * Sets the value of field 'displayBoxes'.
- *
- * @param displayBoxes
- * the value of field 'displayBoxes'.
- */
- public void setDisplayBoxes(final boolean displayBoxes)
- {
- this._displayBoxes = displayBoxes;
- this._has_displayBoxes = true;
- }
-
- /**
- * Sets the value of field 'displayText'.
- *
- * @param displayText
- * the value of field 'displayText'.
- */
- public void setDisplayText(final boolean displayText)
- {
- this._displayText = displayText;
- this._has_displayText = true;
- }
-
- /**
- * Sets the value of field 'end'.
- *
- * @param end
- * the value of field 'end'.
- */
- public void setEnd(final int end)
- {
- this._end = end;
- this._has_end = true;
- }
-
- /**
- * Sets the value of field 'name'.
- *
- * @param name
- * the value of field 'name'.
- */
- public void setName(final java.lang.String name)
- {
- this._name = name;
- }
-
- /**
- * Sets the value of field 'outlineColour'.
- *
- * @param outlineColour
- * the value of field 'outlineColour'.
- */
- public void setOutlineColour(final int outlineColour)
- {
- this._outlineColour = outlineColour;
- this._has_outlineColour = true;
- }
-
- /**
- * Sets the value of field 'pidThreshold'.
- *
- * @param pidThreshold
- * the value of field 'pidThreshold'.
- */
- public void setPidThreshold(final int pidThreshold)
- {
- this._pidThreshold = pidThreshold;
- this._has_pidThreshold = true;
- }
-
- /**
- *
- *
- * @param index
- * @param vSeq
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setSeq(final int index, final int vSeq)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._seqList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setSeq",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._seqList.size() - 1)).toString()
- }));
- }
-
- this._seqList.set(index, new java.lang.Integer(vSeq));
- }
-
- /**
- *
- *
- * @param vSeqArray
- */
- public void setSeq(final int[] vSeqArray)
- {
- // -- copy array
- _seqList.clear();
-
- for (int i = 0; i < vSeqArray.length; i++)
- {
- this._seqList.add(new java.lang.Integer(vSeqArray[i]));
- }
- }
-
- /**
- * Sets the value of field 'start'.
- *
- * @param start
- * the value of field 'start'.
- */
- public void setStart(final int start)
- {
- this._start = start;
- this._has_start = true;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.JGroup
- */
- public static jalview.binding.JGroup unmarshal(final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.JGroup) Unmarshaller.unmarshal(
- jalview.binding.JGroup.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+public class JGroup implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _start.
+ */
+ private int _start;
+
+ /**
+ * keeps track of state for field: _start
+ */
+ private boolean _has_start;
+
+ /**
+ * Field _end.
+ */
+ private int _end;
+
+ /**
+ * keeps track of state for field: _end
+ */
+ private boolean _has_end;
+
+ /**
+ * Field _name.
+ */
+ private java.lang.String _name;
+
+ /**
+ * Field _colour.
+ */
+ private java.lang.String _colour;
+
+ /**
+ * Field _consThreshold.
+ */
+ private int _consThreshold;
+
+ /**
+ * keeps track of state for field: _consThreshold
+ */
+ private boolean _has_consThreshold;
+
+ /**
+ * Field _pidThreshold.
+ */
+ private int _pidThreshold;
+
+ /**
+ * keeps track of state for field: _pidThreshold
+ */
+ private boolean _has_pidThreshold;
+
+ /**
+ * Field _outlineColour.
+ */
+ private int _outlineColour;
+
+ /**
+ * keeps track of state for field: _outlineColour
+ */
+ private boolean _has_outlineColour;
+
+ /**
+ * Field _displayBoxes.
+ */
+ private boolean _displayBoxes;
+
+ /**
+ * keeps track of state for field: _displayBoxes
+ */
+ private boolean _has_displayBoxes;
+
+ /**
+ * Field _displayText.
+ */
+ private boolean _displayText;
+
+ /**
+ * keeps track of state for field: _displayText
+ */
+ private boolean _has_displayText;
+
+ /**
+ * Field _colourText.
+ */
+ private boolean _colourText;
+
+ /**
+ * keeps track of state for field: _colourText
+ */
+ private boolean _has_colourText;
+
+ /**
+ * Field _seqList.
+ */
+ private java.util.Vector _seqList;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public JGroup() {
+ super();
+ this._seqList = new java.util.Vector();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ *
+ *
+ * @param vSeq
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addSeq(
+ final int vSeq)
+ throws java.lang.IndexOutOfBoundsException {
+ this._seqList.addElement(new java.lang.Integer(vSeq));
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vSeq
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addSeq(
+ final int index,
+ final int vSeq)
+ throws java.lang.IndexOutOfBoundsException {
+ this._seqList.add(index, new java.lang.Integer(vSeq));
+ }
+
+ /**
+ */
+ public void deleteColourText(
+ ) {
+ this._has_colourText= false;
+ }
+
+ /**
+ */
+ public void deleteConsThreshold(
+ ) {
+ this._has_consThreshold= false;
+ }
+
+ /**
+ */
+ public void deleteDisplayBoxes(
+ ) {
+ this._has_displayBoxes= false;
+ }
+
+ /**
+ */
+ public void deleteDisplayText(
+ ) {
+ this._has_displayText= false;
+ }
+
+ /**
+ */
+ public void deleteEnd(
+ ) {
+ this._has_end= false;
+ }
+
+ /**
+ */
+ public void deleteOutlineColour(
+ ) {
+ this._has_outlineColour= false;
+ }
+
+ /**
+ */
+ public void deletePidThreshold(
+ ) {
+ this._has_pidThreshold= false;
+ }
+
+ /**
+ */
+ public void deleteStart(
+ ) {
+ this._has_start= false;
+ }
+
+ /**
+ * Method enumerateSeq.
+ *
+ * @return an Enumeration over all int elements
+ */
+ public java.util.Enumeration enumerateSeq(
+ ) {
+ return this._seqList.elements();
+ }
+
+ /**
+ * Returns the value of field 'colour'.
+ *
+ * @return the value of field 'Colour'.
+ */
+ public java.lang.String getColour(
+ ) {
+ return this._colour;
+ }
+
+ /**
+ * Returns the value of field 'colourText'.
+ *
+ * @return the value of field 'ColourText'.
+ */
+ public boolean getColourText(
+ ) {
+ return this._colourText;
+ }
+
+ /**
+ * Returns the value of field 'consThreshold'.
+ *
+ * @return the value of field 'ConsThreshold'.
+ */
+ public int getConsThreshold(
+ ) {
+ return this._consThreshold;
+ }
+
+ /**
+ * Returns the value of field 'displayBoxes'.
+ *
+ * @return the value of field 'DisplayBoxes'.
+ */
+ public boolean getDisplayBoxes(
+ ) {
+ return this._displayBoxes;
+ }
+
+ /**
+ * Returns the value of field 'displayText'.
+ *
+ * @return the value of field 'DisplayText'.
+ */
+ public boolean getDisplayText(
+ ) {
+ return this._displayText;
+ }
+
+ /**
+ * Returns the value of field 'end'.
+ *
+ * @return the value of field 'End'.
+ */
+ public int getEnd(
+ ) {
+ return this._end;
+ }
+
+ /**
+ * Returns the value of field 'name'.
+ *
+ * @return the value of field 'Name'.
+ */
+ public java.lang.String getName(
+ ) {
+ return this._name;
+ }
+
+ /**
+ * Returns the value of field 'outlineColour'.
+ *
+ * @return the value of field 'OutlineColour'.
+ */
+ public int getOutlineColour(
+ ) {
+ return this._outlineColour;
+ }
+
+ /**
+ * Returns the value of field 'pidThreshold'.
+ *
+ * @return the value of field 'PidThreshold'.
+ */
+ public int getPidThreshold(
+ ) {
+ return this._pidThreshold;
+ }
+
+ /**
+ * Method getSeq.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the int at the given index
+ */
+ public int getSeq(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._seqList.size()) {
+ throw new IndexOutOfBoundsException("getSeq: Index value '" + index + "' not in range [0.." + (this._seqList.size() - 1) + "]");
+ }
+
+ return ((java.lang.Integer) _seqList.get(index)).intValue();
+ }
+
+ /**
+ * Method getSeq.Returns the contents of the collection in an
+ * Array.
+ *
+ * @return this collection as an Array
+ */
+ public int[] getSeq(
+ ) {
+ int size = this._seqList.size();
+ int[] array = new int[size];
+ java.util.Iterator iter = _seqList.iterator();
+ for (int index = 0; index < size; index++) {
+ array[index] = ((java.lang.Integer) iter.next()).intValue();
+ }
+ return array;
+ }
+
+ /**
+ * Method getSeqCount.
+ *
+ * @return the size of this collection
+ */
+ public int getSeqCount(
+ ) {
+ return this._seqList.size();
+ }
+
+ /**
+ * Returns the value of field 'start'.
+ *
+ * @return the value of field 'Start'.
+ */
+ public int getStart(
+ ) {
+ return this._start;
+ }
+
+ /**
+ * Method hasColourText.
+ *
+ * @return true if at least one ColourText has been added
+ */
+ public boolean hasColourText(
+ ) {
+ return this._has_colourText;
+ }
+
+ /**
+ * Method hasConsThreshold.
+ *
+ * @return true if at least one ConsThreshold has been added
+ */
+ public boolean hasConsThreshold(
+ ) {
+ return this._has_consThreshold;
+ }
+
+ /**
+ * Method hasDisplayBoxes.
+ *
+ * @return true if at least one DisplayBoxes has been added
+ */
+ public boolean hasDisplayBoxes(
+ ) {
+ return this._has_displayBoxes;
+ }
+
+ /**
+ * Method hasDisplayText.
+ *
+ * @return true if at least one DisplayText has been added
+ */
+ public boolean hasDisplayText(
+ ) {
+ return this._has_displayText;
+ }
+
+ /**
+ * Method hasEnd.
+ *
+ * @return true if at least one End has been added
+ */
+ public boolean hasEnd(
+ ) {
+ return this._has_end;
+ }
+
+ /**
+ * Method hasOutlineColour.
+ *
+ * @return true if at least one OutlineColour has been added
+ */
+ public boolean hasOutlineColour(
+ ) {
+ return this._has_outlineColour;
+ }
+
+ /**
+ * Method hasPidThreshold.
+ *
+ * @return true if at least one PidThreshold has been added
+ */
+ public boolean hasPidThreshold(
+ ) {
+ return this._has_pidThreshold;
+ }
+
+ /**
+ * Method hasStart.
+ *
+ * @return true if at least one Start has been added
+ */
+ public boolean hasStart(
+ ) {
+ return this._has_start;
+ }
+
+ /**
+ * Returns the value of field 'colourText'.
+ *
+ * @return the value of field 'ColourText'.
+ */
+ public boolean isColourText(
+ ) {
+ return this._colourText;
+ }
+
+ /**
+ * Returns the value of field 'displayBoxes'.
+ *
+ * @return the value of field 'DisplayBoxes'.
+ */
+ public boolean isDisplayBoxes(
+ ) {
+ return this._displayBoxes;
+ }
+
+ /**
+ * Returns the value of field 'displayText'.
+ *
+ * @return the value of field 'DisplayText'.
+ */
+ public boolean isDisplayText(
+ ) {
+ return this._displayText;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ */
+ public void removeAllSeq(
+ ) {
+ this._seqList.clear();
+ }
+
+ /**
+ * Method removeSeq.
+ *
+ * @param vSeq
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeSeq(
+ final int vSeq) {
+ boolean removed = _seqList.remove(new java.lang.Integer(vSeq));
+ return removed;
+ }
+
+ /**
+ * Method removeSeqAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public int removeSeqAt(
+ final int index) {
+ java.lang.Object obj = this._seqList.remove(index);
+ return ((java.lang.Integer) obj).intValue();
+ }
+
+ /**
+ * Sets the value of field 'colour'.
+ *
+ * @param colour the value of field 'colour'.
+ */
+ public void setColour(
+ final java.lang.String colour) {
+ this._colour = colour;
+ }
+
+ /**
+ * Sets the value of field 'colourText'.
+ *
+ * @param colourText the value of field 'colourText'.
+ */
+ public void setColourText(
+ final boolean colourText) {
+ this._colourText = colourText;
+ this._has_colourText = true;
+ }
+
+ /**
+ * Sets the value of field 'consThreshold'.
+ *
+ * @param consThreshold the value of field 'consThreshold'.
+ */
+ public void setConsThreshold(
+ final int consThreshold) {
+ this._consThreshold = consThreshold;
+ this._has_consThreshold = true;
+ }
+
+ /**
+ * Sets the value of field 'displayBoxes'.
+ *
+ * @param displayBoxes the value of field 'displayBoxes'.
+ */
+ public void setDisplayBoxes(
+ final boolean displayBoxes) {
+ this._displayBoxes = displayBoxes;
+ this._has_displayBoxes = true;
+ }
+
+ /**
+ * Sets the value of field 'displayText'.
+ *
+ * @param displayText the value of field 'displayText'.
+ */
+ public void setDisplayText(
+ final boolean displayText) {
+ this._displayText = displayText;
+ this._has_displayText = true;
+ }
+
+ /**
+ * Sets the value of field 'end'.
+ *
+ * @param end the value of field 'end'.
+ */
+ public void setEnd(
+ final int end) {
+ this._end = end;
+ this._has_end = true;
+ }
+
+ /**
+ * Sets the value of field 'name'.
+ *
+ * @param name the value of field 'name'.
+ */
+ public void setName(
+ final java.lang.String name) {
+ this._name = name;
+ }
+
+ /**
+ * Sets the value of field 'outlineColour'.
+ *
+ * @param outlineColour the value of field 'outlineColour'.
+ */
+ public void setOutlineColour(
+ final int outlineColour) {
+ this._outlineColour = outlineColour;
+ this._has_outlineColour = true;
+ }
+
+ /**
+ * Sets the value of field 'pidThreshold'.
+ *
+ * @param pidThreshold the value of field 'pidThreshold'.
+ */
+ public void setPidThreshold(
+ final int pidThreshold) {
+ this._pidThreshold = pidThreshold;
+ this._has_pidThreshold = true;
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vSeq
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setSeq(
+ final int index,
+ final int vSeq)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._seqList.size()) {
+ throw new IndexOutOfBoundsException("setSeq: Index value '" + index + "' not in range [0.." + (this._seqList.size() - 1) + "]");
+ }
+
+ this._seqList.set(index, new java.lang.Integer(vSeq));
+ }
+
+ /**
+ *
+ *
+ * @param vSeqArray
+ */
+ public void setSeq(
+ final int[] vSeqArray) {
+ //-- copy array
+ _seqList.clear();
+
+ for (int i = 0; i < vSeqArray.length; i++) {
+ this._seqList.add(new java.lang.Integer(vSeqArray[i]));
+ }
+ }
+
+ /**
+ * Sets the value of field 'start'.
+ *
+ * @param start the value of field 'start'.
+ */
+ public void setStart(
+ final int start) {
+ this._start = start;
+ this._has_start = true;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.JGroup
+ */
+ public static jalview.binding.JGroup unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.JGroup) Unmarshaller.unmarshal(jalview.binding.JGroup.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
-//- Imported classes and packages -/
-//---------------------------------/
-
-import jalview.util.MessageManager;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
*
* @version $Revision$ $Date$
*/
-public class JSeq implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _colour.
- */
- private int _colour;
-
- /**
- * keeps track of state for field: _colour
- */
- private boolean _has_colour;
-
- /**
- * Field _start.
- */
- private int _start;
-
- /**
- * keeps track of state for field: _start
- */
- private boolean _has_start;
-
- /**
- * Field _end.
- */
- private int _end;
-
- /**
- * keeps track of state for field: _end
- */
- private boolean _has_end;
-
- /**
- * Field _id.
- */
- private int _id;
-
- /**
- * keeps track of state for field: _id
- */
- private boolean _has_id;
-
- /**
- * Field _featuresList.
- */
- private java.util.Vector _featuresList;
-
- /**
- * Field _pdbidsList.
- */
- private java.util.Vector _pdbidsList;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public JSeq()
- {
- super();
- this._featuresList = new java.util.Vector();
- this._pdbidsList = new java.util.Vector();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- *
- *
- * @param vFeatures
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addFeatures(final jalview.binding.Features vFeatures)
- throws java.lang.IndexOutOfBoundsException
- {
- this._featuresList.addElement(vFeatures);
- }
-
- /**
- *
- *
- * @param index
- * @param vFeatures
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addFeatures(final int index,
- final jalview.binding.Features vFeatures)
- throws java.lang.IndexOutOfBoundsException
- {
- this._featuresList.add(index, vFeatures);
- }
-
- /**
- *
- *
- * @param vPdbids
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addPdbids(final jalview.binding.Pdbids vPdbids)
- throws java.lang.IndexOutOfBoundsException
- {
- this._pdbidsList.addElement(vPdbids);
- }
-
- /**
- *
- *
- * @param index
- * @param vPdbids
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addPdbids(final int index,
- final jalview.binding.Pdbids vPdbids)
- throws java.lang.IndexOutOfBoundsException
- {
- this._pdbidsList.add(index, vPdbids);
- }
-
- /**
- */
- public void deleteColour()
- {
- this._has_colour = false;
- }
-
- /**
- */
- public void deleteEnd()
- {
- this._has_end = false;
- }
-
- /**
- */
- public void deleteId()
- {
- this._has_id = false;
- }
-
- /**
- */
- public void deleteStart()
- {
- this._has_start = false;
- }
-
- /**
- * Method enumerateFeatures.
- *
- * @return an Enumeration over all jalview.binding.Features elements
- */
- public java.util.Enumeration enumerateFeatures()
- {
- return this._featuresList.elements();
- }
-
- /**
- * Method enumeratePdbids.
- *
- * @return an Enumeration over all jalview.binding.Pdbids elements
- */
- public java.util.Enumeration enumeratePdbids()
- {
- return this._pdbidsList.elements();
- }
-
- /**
- * Returns the value of field 'colour'.
- *
- * @return the value of field 'Colour'.
- */
- public int getColour()
- {
- return this._colour;
- }
-
- /**
- * Returns the value of field 'end'.
- *
- * @return the value of field 'End'.
- */
- public int getEnd()
- {
- return this._end;
- }
-
- /**
- * Method getFeatures.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the jalview.binding.Features at the given index
- */
- public jalview.binding.Features getFeatures(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._featuresList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getFeatures",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._featuresList.size() - 1)).toString()
- }));
- }
-
- return (jalview.binding.Features) _featuresList.get(index);
- }
-
- /**
- * Method getFeatures.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public jalview.binding.Features[] getFeatures()
- {
- jalview.binding.Features[] array = new jalview.binding.Features[0];
- return (jalview.binding.Features[]) this._featuresList.toArray(array);
- }
-
- /**
- * Method getFeaturesCount.
- *
- * @return the size of this collection
- */
- public int getFeaturesCount()
- {
- return this._featuresList.size();
- }
-
- /**
- * Returns the value of field 'id'.
- *
- * @return the value of field 'Id'.
- */
- public int getId()
- {
- return this._id;
- }
-
- /**
- * Method getPdbids.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the jalview.binding.Pdbids at the given index
- */
- public jalview.binding.Pdbids getPdbids(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._pdbidsList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getPdbids",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._pdbidsList.size() - 1)).toString()
- }));
- }
-
- return (jalview.binding.Pdbids) _pdbidsList.get(index);
- }
-
- /**
- * Method getPdbids.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public jalview.binding.Pdbids[] getPdbids()
- {
- jalview.binding.Pdbids[] array = new jalview.binding.Pdbids[0];
- return (jalview.binding.Pdbids[]) this._pdbidsList.toArray(array);
- }
-
- /**
- * Method getPdbidsCount.
- *
- * @return the size of this collection
- */
- public int getPdbidsCount()
- {
- return this._pdbidsList.size();
- }
-
- /**
- * Returns the value of field 'start'.
- *
- * @return the value of field 'Start'.
- */
- public int getStart()
- {
- return this._start;
- }
-
- /**
- * Method hasColour.
- *
- * @return true if at least one Colour has been added
- */
- public boolean hasColour()
- {
- return this._has_colour;
- }
-
- /**
- * Method hasEnd.
- *
- * @return true if at least one End has been added
- */
- public boolean hasEnd()
- {
- return this._has_end;
- }
-
- /**
- * Method hasId.
- *
- * @return true if at least one Id has been added
- */
- public boolean hasId()
- {
- return this._has_id;
- }
-
- /**
- * Method hasStart.
- *
- * @return true if at least one Start has been added
- */
- public boolean hasStart()
- {
- return this._has_start;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
- }
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- */
- public void removeAllFeatures()
- {
- this._featuresList.clear();
- }
-
- /**
- */
- public void removeAllPdbids()
- {
- this._pdbidsList.clear();
- }
-
- /**
- * Method removeFeatures.
- *
- * @param vFeatures
- * @return true if the object was removed from the collection.
- */
- public boolean removeFeatures(final jalview.binding.Features vFeatures)
- {
- boolean removed = _featuresList.remove(vFeatures);
- return removed;
- }
-
- /**
- * Method removeFeaturesAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public jalview.binding.Features removeFeaturesAt(final int index)
- {
- java.lang.Object obj = this._featuresList.remove(index);
- return (jalview.binding.Features) obj;
- }
-
- /**
- * Method removePdbids.
- *
- * @param vPdbids
- * @return true if the object was removed from the collection.
- */
- public boolean removePdbids(final jalview.binding.Pdbids vPdbids)
- {
- boolean removed = _pdbidsList.remove(vPdbids);
- return removed;
- }
-
- /**
- * Method removePdbidsAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public jalview.binding.Pdbids removePdbidsAt(final int index)
- {
- java.lang.Object obj = this._pdbidsList.remove(index);
- return (jalview.binding.Pdbids) obj;
- }
-
- /**
- * Sets the value of field 'colour'.
- *
- * @param colour
- * the value of field 'colour'.
- */
- public void setColour(final int colour)
- {
- this._colour = colour;
- this._has_colour = true;
- }
-
- /**
- * Sets the value of field 'end'.
- *
- * @param end
- * the value of field 'end'.
- */
- public void setEnd(final int end)
- {
- this._end = end;
- this._has_end = true;
- }
-
- /**
- *
- *
- * @param index
- * @param vFeatures
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setFeatures(final int index,
- final jalview.binding.Features vFeatures)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._featuresList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setFeatures",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._featuresList.size() - 1)).toString()
- }));
- }
-
- this._featuresList.set(index, vFeatures);
- }
-
- /**
- *
- *
- * @param vFeaturesArray
- */
- public void setFeatures(final jalview.binding.Features[] vFeaturesArray)
- {
- // -- copy array
- _featuresList.clear();
-
- for (int i = 0; i < vFeaturesArray.length; i++)
- {
- this._featuresList.add(vFeaturesArray[i]);
- }
- }
-
- /**
- * Sets the value of field 'id'.
- *
- * @param id
- * the value of field 'id'.
- */
- public void setId(final int id)
- {
- this._id = id;
- this._has_id = true;
- }
-
- /**
- *
- *
- * @param index
- * @param vPdbids
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setPdbids(final int index,
- final jalview.binding.Pdbids vPdbids)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._pdbidsList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setPdbids",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._pdbidsList.size() - 1)).toString()
- }));
- }
-
- this._pdbidsList.set(index, vPdbids);
- }
-
- /**
- *
- *
- * @param vPdbidsArray
- */
- public void setPdbids(final jalview.binding.Pdbids[] vPdbidsArray)
- {
- // -- copy array
- _pdbidsList.clear();
-
- for (int i = 0; i < vPdbidsArray.length; i++)
- {
- this._pdbidsList.add(vPdbidsArray[i]);
- }
- }
-
- /**
- * Sets the value of field 'start'.
- *
- * @param start
- * the value of field 'start'.
- */
- public void setStart(final int start)
- {
- this._start = start;
- this._has_start = true;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.JSeq
- */
- public static jalview.binding.JSeq unmarshal(final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.JSeq) Unmarshaller.unmarshal(
- jalview.binding.JSeq.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+public class JSeq implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _colour.
+ */
+ private int _colour;
+
+ /**
+ * keeps track of state for field: _colour
+ */
+ private boolean _has_colour;
+
+ /**
+ * Field _start.
+ */
+ private int _start;
+
+ /**
+ * keeps track of state for field: _start
+ */
+ private boolean _has_start;
+
+ /**
+ * Field _end.
+ */
+ private int _end;
+
+ /**
+ * keeps track of state for field: _end
+ */
+ private boolean _has_end;
+
+ /**
+ * Field _id.
+ */
+ private int _id;
+
+ /**
+ * keeps track of state for field: _id
+ */
+ private boolean _has_id;
+
+ /**
+ * Field _featuresList.
+ */
+ private java.util.Vector _featuresList;
+
+ /**
+ * Field _pdbidsList.
+ */
+ private java.util.Vector _pdbidsList;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public JSeq() {
+ super();
+ this._featuresList = new java.util.Vector();
+ this._pdbidsList = new java.util.Vector();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ *
+ *
+ * @param vFeatures
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addFeatures(
+ final jalview.binding.Features vFeatures)
+ throws java.lang.IndexOutOfBoundsException {
+ this._featuresList.addElement(vFeatures);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vFeatures
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addFeatures(
+ final int index,
+ final jalview.binding.Features vFeatures)
+ throws java.lang.IndexOutOfBoundsException {
+ this._featuresList.add(index, vFeatures);
+ }
+
+ /**
+ *
+ *
+ * @param vPdbids
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addPdbids(
+ final jalview.binding.Pdbids vPdbids)
+ throws java.lang.IndexOutOfBoundsException {
+ this._pdbidsList.addElement(vPdbids);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vPdbids
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addPdbids(
+ final int index,
+ final jalview.binding.Pdbids vPdbids)
+ throws java.lang.IndexOutOfBoundsException {
+ this._pdbidsList.add(index, vPdbids);
+ }
+
+ /**
+ */
+ public void deleteColour(
+ ) {
+ this._has_colour= false;
+ }
+
+ /**
+ */
+ public void deleteEnd(
+ ) {
+ this._has_end= false;
+ }
+
+ /**
+ */
+ public void deleteId(
+ ) {
+ this._has_id= false;
+ }
+
+ /**
+ */
+ public void deleteStart(
+ ) {
+ this._has_start= false;
+ }
+
+ /**
+ * Method enumerateFeatures.
+ *
+ * @return an Enumeration over all jalview.binding.Features
+ * elements
+ */
+ public java.util.Enumeration enumerateFeatures(
+ ) {
+ return this._featuresList.elements();
+ }
+
+ /**
+ * Method enumeratePdbids.
+ *
+ * @return an Enumeration over all jalview.binding.Pdbids
+ * elements
+ */
+ public java.util.Enumeration enumeratePdbids(
+ ) {
+ return this._pdbidsList.elements();
+ }
+
+ /**
+ * Returns the value of field 'colour'.
+ *
+ * @return the value of field 'Colour'.
+ */
+ public int getColour(
+ ) {
+ return this._colour;
+ }
+
+ /**
+ * Returns the value of field 'end'.
+ *
+ * @return the value of field 'End'.
+ */
+ public int getEnd(
+ ) {
+ return this._end;
+ }
+
+ /**
+ * Method getFeatures.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the jalview.binding.Features at the
+ * given index
+ */
+ public jalview.binding.Features getFeatures(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._featuresList.size()) {
+ throw new IndexOutOfBoundsException("getFeatures: Index value '" + index + "' not in range [0.." + (this._featuresList.size() - 1) + "]");
+ }
+
+ return (jalview.binding.Features) _featuresList.get(index);
+ }
+
+ /**
+ * Method getFeatures.Returns the contents of the collection in
+ * an Array. <p>Note: Just in case the collection contents
+ * are changing in another thread, we pass a 0-length Array of
+ * the correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.binding.Features[] getFeatures(
+ ) {
+ jalview.binding.Features[] array = new jalview.binding.Features[0];
+ return (jalview.binding.Features[]) this._featuresList.toArray(array);
+ }
+
+ /**
+ * Method getFeaturesCount.
+ *
+ * @return the size of this collection
+ */
+ public int getFeaturesCount(
+ ) {
+ return this._featuresList.size();
+ }
+
+ /**
+ * Returns the value of field 'id'.
+ *
+ * @return the value of field 'Id'.
+ */
+ public int getId(
+ ) {
+ return this._id;
+ }
+
+ /**
+ * Method getPdbids.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the jalview.binding.Pdbids at the given
+ * index
+ */
+ public jalview.binding.Pdbids getPdbids(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._pdbidsList.size()) {
+ throw new IndexOutOfBoundsException("getPdbids: Index value '" + index + "' not in range [0.." + (this._pdbidsList.size() - 1) + "]");
+ }
+
+ return (jalview.binding.Pdbids) _pdbidsList.get(index);
+ }
+
+ /**
+ * Method getPdbids.Returns the contents of the collection in
+ * an Array. <p>Note: Just in case the collection contents
+ * are changing in another thread, we pass a 0-length Array of
+ * the correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.binding.Pdbids[] getPdbids(
+ ) {
+ jalview.binding.Pdbids[] array = new jalview.binding.Pdbids[0];
+ return (jalview.binding.Pdbids[]) this._pdbidsList.toArray(array);
+ }
+
+ /**
+ * Method getPdbidsCount.
+ *
+ * @return the size of this collection
+ */
+ public int getPdbidsCount(
+ ) {
+ return this._pdbidsList.size();
+ }
+
+ /**
+ * Returns the value of field 'start'.
+ *
+ * @return the value of field 'Start'.
+ */
+ public int getStart(
+ ) {
+ return this._start;
+ }
+
+ /**
+ * Method hasColour.
+ *
+ * @return true if at least one Colour has been added
+ */
+ public boolean hasColour(
+ ) {
+ return this._has_colour;
+ }
+
+ /**
+ * Method hasEnd.
+ *
+ * @return true if at least one End has been added
+ */
+ public boolean hasEnd(
+ ) {
+ return this._has_end;
+ }
+
+ /**
+ * Method hasId.
+ *
+ * @return true if at least one Id has been added
+ */
+ public boolean hasId(
+ ) {
+ return this._has_id;
+ }
+
+ /**
+ * Method hasStart.
+ *
+ * @return true if at least one Start has been added
+ */
+ public boolean hasStart(
+ ) {
+ return this._has_start;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ */
+ public void removeAllFeatures(
+ ) {
+ this._featuresList.clear();
+ }
+
+ /**
+ */
+ public void removeAllPdbids(
+ ) {
+ this._pdbidsList.clear();
+ }
+
+ /**
+ * Method removeFeatures.
+ *
+ * @param vFeatures
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeFeatures(
+ final jalview.binding.Features vFeatures) {
+ boolean removed = _featuresList.remove(vFeatures);
+ return removed;
+ }
+
+ /**
+ * Method removeFeaturesAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.binding.Features removeFeaturesAt(
+ final int index) {
+ java.lang.Object obj = this._featuresList.remove(index);
+ return (jalview.binding.Features) obj;
+ }
+
+ /**
+ * Method removePdbids.
+ *
+ * @param vPdbids
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removePdbids(
+ final jalview.binding.Pdbids vPdbids) {
+ boolean removed = _pdbidsList.remove(vPdbids);
+ return removed;
+ }
+
+ /**
+ * Method removePdbidsAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.binding.Pdbids removePdbidsAt(
+ final int index) {
+ java.lang.Object obj = this._pdbidsList.remove(index);
+ return (jalview.binding.Pdbids) obj;
+ }
+
+ /**
+ * Sets the value of field 'colour'.
+ *
+ * @param colour the value of field 'colour'.
+ */
+ public void setColour(
+ final int colour) {
+ this._colour = colour;
+ this._has_colour = true;
+ }
+
+ /**
+ * Sets the value of field 'end'.
+ *
+ * @param end the value of field 'end'.
+ */
+ public void setEnd(
+ final int end) {
+ this._end = end;
+ this._has_end = true;
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vFeatures
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setFeatures(
+ final int index,
+ final jalview.binding.Features vFeatures)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._featuresList.size()) {
+ throw new IndexOutOfBoundsException("setFeatures: Index value '" + index + "' not in range [0.." + (this._featuresList.size() - 1) + "]");
+ }
+
+ this._featuresList.set(index, vFeatures);
+ }
+
+ /**
+ *
+ *
+ * @param vFeaturesArray
+ */
+ public void setFeatures(
+ final jalview.binding.Features[] vFeaturesArray) {
+ //-- copy array
+ _featuresList.clear();
+
+ for (int i = 0; i < vFeaturesArray.length; i++) {
+ this._featuresList.add(vFeaturesArray[i]);
+ }
+ }
+
+ /**
+ * Sets the value of field 'id'.
+ *
+ * @param id the value of field 'id'.
+ */
+ public void setId(
+ final int id) {
+ this._id = id;
+ this._has_id = true;
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vPdbids
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setPdbids(
+ final int index,
+ final jalview.binding.Pdbids vPdbids)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._pdbidsList.size()) {
+ throw new IndexOutOfBoundsException("setPdbids: Index value '" + index + "' not in range [0.." + (this._pdbidsList.size() - 1) + "]");
+ }
+
+ this._pdbidsList.set(index, vPdbids);
+ }
+
+ /**
+ *
+ *
+ * @param vPdbidsArray
+ */
+ public void setPdbids(
+ final jalview.binding.Pdbids[] vPdbidsArray) {
+ //-- copy array
+ _pdbidsList.clear();
+
+ for (int i = 0; i < vPdbidsArray.length; i++) {
+ this._pdbidsList.add(vPdbidsArray[i]);
+ }
+ }
+
+ /**
+ * Sets the value of field 'start'.
+ *
+ * @param start the value of field 'start'.
+ */
+ public void setStart(
+ final int start) {
+ this._start = start;
+ this._has_start = true;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.JSeq
+ */
+ public static jalview.binding.JSeq unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.JSeq) Unmarshaller.unmarshal(jalview.binding.JSeq.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class JalviewModel implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _creationDate.
- */
- private java.util.Date _creationDate;
-
- /**
- * Field _version.
- */
- private java.lang.String _version;
-
- /**
- * Field _vamsasModel.
- */
- private jalview.binding.VamsasModel _vamsasModel;
-
- /**
- * Field _jalviewModelSequence.
- */
- private jalview.binding.JalviewModelSequence _jalviewModelSequence;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public JalviewModel()
- {
- super();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- * Returns the value of field 'creationDate'.
- *
- * @return the value of field 'CreationDate'.
- */
- public java.util.Date getCreationDate()
- {
- return this._creationDate;
- }
-
- /**
- * Returns the value of field 'jalviewModelSequence'.
- *
- * @return the value of field 'JalviewModelSequence'.
- */
- public jalview.binding.JalviewModelSequence getJalviewModelSequence()
- {
- return this._jalviewModelSequence;
- }
-
- /**
- * Returns the value of field 'vamsasModel'.
- *
- * @return the value of field 'VamsasModel'.
- */
- public jalview.binding.VamsasModel getVamsasModel()
- {
- return this._vamsasModel;
- }
-
- /**
- * Returns the value of field 'version'.
- *
- * @return the value of field 'Version'.
- */
- public java.lang.String getVersion()
- {
- return this._version;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+public class JalviewModel implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _creationDate.
+ */
+ private java.util.Date _creationDate;
+
+ /**
+ * Field _version.
+ */
+ private java.lang.String _version;
+
+ /**
+ * Field _vamsasModel.
+ */
+ private jalview.binding.VamsasModel _vamsasModel;
+
+ /**
+ * Field _jalviewModelSequence.
+ */
+ private jalview.binding.JalviewModelSequence _jalviewModelSequence;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public JalviewModel() {
+ super();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ * Returns the value of field 'creationDate'.
+ *
+ * @return the value of field 'CreationDate'.
+ */
+ public java.util.Date getCreationDate(
+ ) {
+ return this._creationDate;
+ }
+
+ /**
+ * Returns the value of field 'jalviewModelSequence'.
+ *
+ * @return the value of field 'JalviewModelSequence'.
+ */
+ public jalview.binding.JalviewModelSequence getJalviewModelSequence(
+ ) {
+ return this._jalviewModelSequence;
+ }
+
+ /**
+ * Returns the value of field 'vamsasModel'.
+ *
+ * @return the value of field 'VamsasModel'.
+ */
+ public jalview.binding.VamsasModel getVamsasModel(
+ ) {
+ return this._vamsasModel;
+ }
+
+ /**
+ * Returns the value of field 'version'.
+ *
+ * @return the value of field 'Version'.
+ */
+ public java.lang.String getVersion(
+ ) {
+ return this._version;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Sets the value of field 'creationDate'.
+ *
+ * @param creationDate the value of field 'creationDate'.
+ */
+ public void setCreationDate(
+ final java.util.Date creationDate) {
+ this._creationDate = creationDate;
+ }
+
+ /**
+ * Sets the value of field 'jalviewModelSequence'.
+ *
+ * @param jalviewModelSequence the value of field
+ * 'jalviewModelSequence'.
+ */
+ public void setJalviewModelSequence(
+ final jalview.binding.JalviewModelSequence jalviewModelSequence) {
+ this._jalviewModelSequence = jalviewModelSequence;
+ }
+
+ /**
+ * Sets the value of field 'vamsasModel'.
+ *
+ * @param vamsasModel the value of field 'vamsasModel'.
+ */
+ public void setVamsasModel(
+ final jalview.binding.VamsasModel vamsasModel) {
+ this._vamsasModel = vamsasModel;
+ }
+
+ /**
+ * Sets the value of field 'version'.
+ *
+ * @param version the value of field 'version'.
+ */
+ public void setVersion(
+ final java.lang.String version) {
+ this._version = version;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.JalviewModel
+ */
+ public static jalview.binding.JalviewModel unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.JalviewModel) Unmarshaller.unmarshal(jalview.binding.JalviewModel.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
}
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- * Sets the value of field 'creationDate'.
- *
- * @param creationDate
- * the value of field 'creationDate'.
- */
- public void setCreationDate(final java.util.Date creationDate)
- {
- this._creationDate = creationDate;
- }
-
- /**
- * Sets the value of field 'jalviewModelSequence'.
- *
- * @param jalviewModelSequence
- * the value of field 'jalviewModelSequence'.
- */
- public void setJalviewModelSequence(
- final jalview.binding.JalviewModelSequence jalviewModelSequence)
- {
- this._jalviewModelSequence = jalviewModelSequence;
- }
-
- /**
- * Sets the value of field 'vamsasModel'.
- *
- * @param vamsasModel
- * the value of field 'vamsasModel'.
- */
- public void setVamsasModel(final jalview.binding.VamsasModel vamsasModel)
- {
- this._vamsasModel = vamsasModel;
- }
-
- /**
- * Sets the value of field 'version'.
- *
- * @param version
- * the value of field 'version'.
- */
- public void setVersion(final java.lang.String version)
- {
- this._version = version;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.JalviewModel
- */
- public static jalview.binding.JalviewModel unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.JalviewModel) Unmarshaller.unmarshal(
- jalview.binding.JalviewModel.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
-//- Imported classes and packages -/
-//---------------------------------/
-
-import jalview.util.MessageManager;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
*
* @version $Revision$ $Date$
*/
-public class JalviewModelSequence implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _JSeqList.
- */
- private java.util.Vector _JSeqList;
-
- /**
- * Field _JGroupList.
- */
- private java.util.Vector _JGroupList;
-
- /**
- * Field _viewportList.
- */
- private java.util.Vector _viewportList;
-
- /**
- * Field _userColoursList.
- */
- private java.util.Vector _userColoursList;
-
- /**
- * Field _treeList.
- */
- private java.util.Vector _treeList;
-
- /**
- * Field _featureSettings.
- */
- private jalview.binding.FeatureSettings _featureSettings;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public JalviewModelSequence()
- {
- super();
- this._JSeqList = new java.util.Vector();
- this._JGroupList = new java.util.Vector();
- this._viewportList = new java.util.Vector();
- this._userColoursList = new java.util.Vector();
- this._treeList = new java.util.Vector();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- *
- *
- * @param vJGroup
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addJGroup(final jalview.binding.JGroup vJGroup)
- throws java.lang.IndexOutOfBoundsException
- {
- this._JGroupList.addElement(vJGroup);
- }
-
- /**
- *
- *
- * @param index
- * @param vJGroup
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addJGroup(final int index,
- final jalview.binding.JGroup vJGroup)
- throws java.lang.IndexOutOfBoundsException
- {
- this._JGroupList.add(index, vJGroup);
- }
-
- /**
- *
- *
- * @param vJSeq
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addJSeq(final jalview.binding.JSeq vJSeq)
- throws java.lang.IndexOutOfBoundsException
- {
- this._JSeqList.addElement(vJSeq);
- }
-
- /**
- *
- *
- * @param index
- * @param vJSeq
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addJSeq(final int index, final jalview.binding.JSeq vJSeq)
- throws java.lang.IndexOutOfBoundsException
- {
- this._JSeqList.add(index, vJSeq);
- }
-
- /**
- *
- *
- * @param vTree
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addTree(final jalview.binding.Tree vTree)
- throws java.lang.IndexOutOfBoundsException
- {
- this._treeList.addElement(vTree);
- }
-
- /**
- *
- *
- * @param index
- * @param vTree
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addTree(final int index, final jalview.binding.Tree vTree)
- throws java.lang.IndexOutOfBoundsException
- {
- this._treeList.add(index, vTree);
- }
-
- /**
- *
- *
- * @param vUserColours
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addUserColours(final jalview.binding.UserColours vUserColours)
- throws java.lang.IndexOutOfBoundsException
- {
- this._userColoursList.addElement(vUserColours);
- }
-
- /**
- *
- *
- * @param index
- * @param vUserColours
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addUserColours(final int index,
- final jalview.binding.UserColours vUserColours)
- throws java.lang.IndexOutOfBoundsException
- {
- this._userColoursList.add(index, vUserColours);
- }
-
- /**
- *
- *
- * @param vViewport
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addViewport(final jalview.binding.Viewport vViewport)
- throws java.lang.IndexOutOfBoundsException
- {
- this._viewportList.addElement(vViewport);
- }
-
- /**
- *
- *
- * @param index
- * @param vViewport
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addViewport(final int index,
- final jalview.binding.Viewport vViewport)
- throws java.lang.IndexOutOfBoundsException
- {
- this._viewportList.add(index, vViewport);
- }
-
- /**
- * Method enumerateJGroup.
- *
- * @return an Enumeration over all jalview.binding.JGroup elements
- */
- public java.util.Enumeration enumerateJGroup()
- {
- return this._JGroupList.elements();
- }
-
- /**
- * Method enumerateJSeq.
- *
- * @return an Enumeration over all jalview.binding.JSeq elements
- */
- public java.util.Enumeration enumerateJSeq()
- {
- return this._JSeqList.elements();
- }
-
- /**
- * Method enumerateTree.
- *
- * @return an Enumeration over all jalview.binding.Tree elements
- */
- public java.util.Enumeration enumerateTree()
- {
- return this._treeList.elements();
- }
-
- /**
- * Method enumerateUserColours.
- *
- * @return an Enumeration over all jalview.binding.UserColours elements
- */
- public java.util.Enumeration enumerateUserColours()
- {
- return this._userColoursList.elements();
- }
-
- /**
- * Method enumerateViewport.
- *
- * @return an Enumeration over all jalview.binding.Viewport elements
- */
- public java.util.Enumeration enumerateViewport()
- {
- return this._viewportList.elements();
- }
-
- /**
- * Returns the value of field 'featureSettings'.
- *
- * @return the value of field 'FeatureSettings'.
- */
- public jalview.binding.FeatureSettings getFeatureSettings()
- {
- return this._featureSettings;
- }
-
- /**
- * Method getJGroup.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the jalview.binding.JGroup at the given index
- */
- public jalview.binding.JGroup getJGroup(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._JGroupList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getJGroup",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._JGroupList.size() - 1)).toString()
- }));
- }
-
- return (jalview.binding.JGroup) _JGroupList.get(index);
- }
-
- /**
- * Method getJGroup.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public jalview.binding.JGroup[] getJGroup()
- {
- jalview.binding.JGroup[] array = new jalview.binding.JGroup[0];
- return (jalview.binding.JGroup[]) this._JGroupList.toArray(array);
- }
-
- /**
- * Method getJGroupCount.
- *
- * @return the size of this collection
- */
- public int getJGroupCount()
- {
- return this._JGroupList.size();
- }
-
- /**
- * Method getJSeq.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the jalview.binding.JSeq at the given index
- */
- public jalview.binding.JSeq getJSeq(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._JSeqList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getJSeq",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._JSeqList.size() - 1)).toString()
- }));
- }
-
- return (jalview.binding.JSeq) _JSeqList.get(index);
- }
-
- /**
- * Method getJSeq.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public jalview.binding.JSeq[] getJSeq()
- {
- jalview.binding.JSeq[] array = new jalview.binding.JSeq[0];
- return (jalview.binding.JSeq[]) this._JSeqList.toArray(array);
- }
-
- /**
- * Method getJSeqCount.
- *
- * @return the size of this collection
- */
- public int getJSeqCount()
- {
- return this._JSeqList.size();
- }
-
- /**
- * Method getTree.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the jalview.binding.Tree at the given index
- */
- public jalview.binding.Tree getTree(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._treeList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getJgetTreeSeq",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._treeList.size() - 1)).toString()
- }));
- }
-
- return (jalview.binding.Tree) _treeList.get(index);
- }
-
- /**
- * Method getTree.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public jalview.binding.Tree[] getTree()
- {
- jalview.binding.Tree[] array = new jalview.binding.Tree[0];
- return (jalview.binding.Tree[]) this._treeList.toArray(array);
- }
-
- /**
- * Method getTreeCount.
- *
- * @return the size of this collection
- */
- public int getTreeCount()
- {
- return this._treeList.size();
- }
-
- /**
- * Method getUserColours.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the jalview.binding.UserColours at the given index
- */
- public jalview.binding.UserColours getUserColours(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._userColoursList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getUserColours",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._userColoursList.size() - 1)).toString()
- }));
- }
-
- return (jalview.binding.UserColours) _userColoursList.get(index);
- }
-
- /**
- * Method getUserColours.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public jalview.binding.UserColours[] getUserColours()
- {
- jalview.binding.UserColours[] array = new jalview.binding.UserColours[0];
- return (jalview.binding.UserColours[]) this._userColoursList
- .toArray(array);
- }
-
- /**
- * Method getUserColoursCount.
- *
- * @return the size of this collection
- */
- public int getUserColoursCount()
- {
- return this._userColoursList.size();
- }
-
- /**
- * Method getViewport.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the jalview.binding.Viewport at the given index
- */
- public jalview.binding.Viewport getViewport(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._viewportList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getViewport",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._viewportList.size() - 1)).toString()
- }));
- }
-
- return (jalview.binding.Viewport) _viewportList.get(index);
- }
-
- /**
- * Method getViewport.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public jalview.binding.Viewport[] getViewport()
- {
- jalview.binding.Viewport[] array = new jalview.binding.Viewport[0];
- return (jalview.binding.Viewport[]) this._viewportList.toArray(array);
- }
-
- /**
- * Method getViewportCount.
- *
- * @return the size of this collection
- */
- public int getViewportCount()
- {
- return this._viewportList.size();
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
- }
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- */
- public void removeAllJGroup()
- {
- this._JGroupList.clear();
- }
-
- /**
- */
- public void removeAllJSeq()
- {
- this._JSeqList.clear();
- }
-
- /**
- */
- public void removeAllTree()
- {
- this._treeList.clear();
- }
-
- /**
- */
- public void removeAllUserColours()
- {
- this._userColoursList.clear();
- }
-
- /**
- */
- public void removeAllViewport()
- {
- this._viewportList.clear();
- }
-
- /**
- * Method removeJGroup.
- *
- * @param vJGroup
- * @return true if the object was removed from the collection.
- */
- public boolean removeJGroup(final jalview.binding.JGroup vJGroup)
- {
- boolean removed = _JGroupList.remove(vJGroup);
- return removed;
- }
-
- /**
- * Method removeJGroupAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public jalview.binding.JGroup removeJGroupAt(final int index)
- {
- java.lang.Object obj = this._JGroupList.remove(index);
- return (jalview.binding.JGroup) obj;
- }
-
- /**
- * Method removeJSeq.
- *
- * @param vJSeq
- * @return true if the object was removed from the collection.
- */
- public boolean removeJSeq(final jalview.binding.JSeq vJSeq)
- {
- boolean removed = _JSeqList.remove(vJSeq);
- return removed;
- }
-
- /**
- * Method removeJSeqAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public jalview.binding.JSeq removeJSeqAt(final int index)
- {
- java.lang.Object obj = this._JSeqList.remove(index);
- return (jalview.binding.JSeq) obj;
- }
-
- /**
- * Method removeTree.
- *
- * @param vTree
- * @return true if the object was removed from the collection.
- */
- public boolean removeTree(final jalview.binding.Tree vTree)
- {
- boolean removed = _treeList.remove(vTree);
- return removed;
- }
-
- /**
- * Method removeTreeAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public jalview.binding.Tree removeTreeAt(final int index)
- {
- java.lang.Object obj = this._treeList.remove(index);
- return (jalview.binding.Tree) obj;
- }
-
- /**
- * Method removeUserColours.
- *
- * @param vUserColours
- * @return true if the object was removed from the collection.
- */
- public boolean removeUserColours(
- final jalview.binding.UserColours vUserColours)
- {
- boolean removed = _userColoursList.remove(vUserColours);
- return removed;
- }
-
- /**
- * Method removeUserColoursAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public jalview.binding.UserColours removeUserColoursAt(final int index)
- {
- java.lang.Object obj = this._userColoursList.remove(index);
- return (jalview.binding.UserColours) obj;
- }
-
- /**
- * Method removeViewport.
- *
- * @param vViewport
- * @return true if the object was removed from the collection.
- */
- public boolean removeViewport(final jalview.binding.Viewport vViewport)
- {
- boolean removed = _viewportList.remove(vViewport);
- return removed;
- }
-
- /**
- * Method removeViewportAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public jalview.binding.Viewport removeViewportAt(final int index)
- {
- java.lang.Object obj = this._viewportList.remove(index);
- return (jalview.binding.Viewport) obj;
- }
-
- /**
- * Sets the value of field 'featureSettings'.
- *
- * @param featureSettings
- * the value of field 'featureSettings'.
- */
- public void setFeatureSettings(
- final jalview.binding.FeatureSettings featureSettings)
- {
- this._featureSettings = featureSettings;
- }
-
- /**
- *
- *
- * @param index
- * @param vJGroup
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setJGroup(final int index,
- final jalview.binding.JGroup vJGroup)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._JGroupList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setJGroup",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._JGroupList.size() - 1)).toString()
- }));
- }
-
- this._JGroupList.set(index, vJGroup);
- }
-
- /**
- *
- *
- * @param vJGroupArray
- */
- public void setJGroup(final jalview.binding.JGroup[] vJGroupArray)
- {
- // -- copy array
- _JGroupList.clear();
-
- for (int i = 0; i < vJGroupArray.length; i++)
- {
- this._JGroupList.add(vJGroupArray[i]);
- }
- }
-
- /**
- *
- *
- * @param index
- * @param vJSeq
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setJSeq(final int index, final jalview.binding.JSeq vJSeq)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._JSeqList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setJSeq",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._JSeqList.size() - 1)).toString()
- }));
- }
-
- this._JSeqList.set(index, vJSeq);
- }
-
- /**
- *
- *
- * @param vJSeqArray
- */
- public void setJSeq(final jalview.binding.JSeq[] vJSeqArray)
- {
- // -- copy array
- _JSeqList.clear();
-
- for (int i = 0; i < vJSeqArray.length; i++)
- {
- this._JSeqList.add(vJSeqArray[i]);
- }
- }
-
- /**
- *
- *
- * @param index
- * @param vTree
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setTree(final int index, final jalview.binding.Tree vTree)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._treeList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setTree",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._treeList.size() - 1)).toString()
- }));
- }
-
- this._treeList.set(index, vTree);
- }
-
- /**
- *
- *
- * @param vTreeArray
- */
- public void setTree(final jalview.binding.Tree[] vTreeArray)
- {
- // -- copy array
- _treeList.clear();
-
- for (int i = 0; i < vTreeArray.length; i++)
- {
- this._treeList.add(vTreeArray[i]);
- }
- }
-
- /**
- *
- *
- * @param index
- * @param vUserColours
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setUserColours(final int index,
- final jalview.binding.UserColours vUserColours)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._userColoursList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setUserColours",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._userColoursList.size() - 1)).toString()
- }));
- }
-
- this._userColoursList.set(index, vUserColours);
- }
-
- /**
- *
- *
- * @param vUserColoursArray
- */
- public void setUserColours(
- final jalview.binding.UserColours[] vUserColoursArray)
- {
- // -- copy array
- _userColoursList.clear();
-
- for (int i = 0; i < vUserColoursArray.length; i++)
- {
- this._userColoursList.add(vUserColoursArray[i]);
- }
- }
-
- /**
- *
- *
- * @param index
- * @param vViewport
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setViewport(final int index,
- final jalview.binding.Viewport vViewport)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._viewportList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setViewport",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._viewportList.size() - 1)).toString()
- }));
- }
-
- this._viewportList.set(index, vViewport);
- }
-
- /**
- *
- *
- * @param vViewportArray
- */
- public void setViewport(final jalview.binding.Viewport[] vViewportArray)
- {
- // -- copy array
- _viewportList.clear();
-
- for (int i = 0; i < vViewportArray.length; i++)
- {
- this._viewportList.add(vViewportArray[i]);
- }
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.JalviewModelSequence
- */
- public static jalview.binding.JalviewModelSequence unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.JalviewModelSequence) Unmarshaller.unmarshal(
- jalview.binding.JalviewModelSequence.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+public class JalviewModelSequence implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _JSeqList.
+ */
+ private java.util.Vector _JSeqList;
+
+ /**
+ * Field _JGroupList.
+ */
+ private java.util.Vector _JGroupList;
+
+ /**
+ * Field _viewportList.
+ */
+ private java.util.Vector _viewportList;
+
+ /**
+ * Field _userColoursList.
+ */
+ private java.util.Vector _userColoursList;
+
+ /**
+ * Field _treeList.
+ */
+ private java.util.Vector _treeList;
+
+ /**
+ * Field _featureSettings.
+ */
+ private jalview.binding.FeatureSettings _featureSettings;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public JalviewModelSequence() {
+ super();
+ this._JSeqList = new java.util.Vector();
+ this._JGroupList = new java.util.Vector();
+ this._viewportList = new java.util.Vector();
+ this._userColoursList = new java.util.Vector();
+ this._treeList = new java.util.Vector();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ *
+ *
+ * @param vJGroup
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addJGroup(
+ final jalview.binding.JGroup vJGroup)
+ throws java.lang.IndexOutOfBoundsException {
+ this._JGroupList.addElement(vJGroup);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vJGroup
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addJGroup(
+ final int index,
+ final jalview.binding.JGroup vJGroup)
+ throws java.lang.IndexOutOfBoundsException {
+ this._JGroupList.add(index, vJGroup);
+ }
+
+ /**
+ *
+ *
+ * @param vJSeq
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addJSeq(
+ final jalview.binding.JSeq vJSeq)
+ throws java.lang.IndexOutOfBoundsException {
+ this._JSeqList.addElement(vJSeq);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vJSeq
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addJSeq(
+ final int index,
+ final jalview.binding.JSeq vJSeq)
+ throws java.lang.IndexOutOfBoundsException {
+ this._JSeqList.add(index, vJSeq);
+ }
+
+ /**
+ *
+ *
+ * @param vTree
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addTree(
+ final jalview.binding.Tree vTree)
+ throws java.lang.IndexOutOfBoundsException {
+ this._treeList.addElement(vTree);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vTree
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addTree(
+ final int index,
+ final jalview.binding.Tree vTree)
+ throws java.lang.IndexOutOfBoundsException {
+ this._treeList.add(index, vTree);
+ }
+
+ /**
+ *
+ *
+ * @param vUserColours
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addUserColours(
+ final jalview.binding.UserColours vUserColours)
+ throws java.lang.IndexOutOfBoundsException {
+ this._userColoursList.addElement(vUserColours);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vUserColours
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addUserColours(
+ final int index,
+ final jalview.binding.UserColours vUserColours)
+ throws java.lang.IndexOutOfBoundsException {
+ this._userColoursList.add(index, vUserColours);
+ }
+
+ /**
+ *
+ *
+ * @param vViewport
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addViewport(
+ final jalview.binding.Viewport vViewport)
+ throws java.lang.IndexOutOfBoundsException {
+ this._viewportList.addElement(vViewport);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vViewport
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addViewport(
+ final int index,
+ final jalview.binding.Viewport vViewport)
+ throws java.lang.IndexOutOfBoundsException {
+ this._viewportList.add(index, vViewport);
+ }
+
+ /**
+ * Method enumerateJGroup.
+ *
+ * @return an Enumeration over all jalview.binding.JGroup
+ * elements
+ */
+ public java.util.Enumeration enumerateJGroup(
+ ) {
+ return this._JGroupList.elements();
+ }
+
+ /**
+ * Method enumerateJSeq.
+ *
+ * @return an Enumeration over all jalview.binding.JSeq elements
+ */
+ public java.util.Enumeration enumerateJSeq(
+ ) {
+ return this._JSeqList.elements();
+ }
+
+ /**
+ * Method enumerateTree.
+ *
+ * @return an Enumeration over all jalview.binding.Tree elements
+ */
+ public java.util.Enumeration enumerateTree(
+ ) {
+ return this._treeList.elements();
+ }
+
+ /**
+ * Method enumerateUserColours.
+ *
+ * @return an Enumeration over all jalview.binding.UserColours
+ * elements
+ */
+ public java.util.Enumeration enumerateUserColours(
+ ) {
+ return this._userColoursList.elements();
+ }
+
+ /**
+ * Method enumerateViewport.
+ *
+ * @return an Enumeration over all jalview.binding.Viewport
+ * elements
+ */
+ public java.util.Enumeration enumerateViewport(
+ ) {
+ return this._viewportList.elements();
+ }
+
+ /**
+ * Returns the value of field 'featureSettings'.
+ *
+ * @return the value of field 'FeatureSettings'.
+ */
+ public jalview.binding.FeatureSettings getFeatureSettings(
+ ) {
+ return this._featureSettings;
+ }
+
+ /**
+ * Method getJGroup.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the jalview.binding.JGroup at the given
+ * index
+ */
+ public jalview.binding.JGroup getJGroup(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._JGroupList.size()) {
+ throw new IndexOutOfBoundsException("getJGroup: Index value '" + index + "' not in range [0.." + (this._JGroupList.size() - 1) + "]");
+ }
+
+ return (jalview.binding.JGroup) _JGroupList.get(index);
+ }
+
+ /**
+ * Method getJGroup.Returns the contents of the collection in
+ * an Array. <p>Note: Just in case the collection contents
+ * are changing in another thread, we pass a 0-length Array of
+ * the correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.binding.JGroup[] getJGroup(
+ ) {
+ jalview.binding.JGroup[] array = new jalview.binding.JGroup[0];
+ return (jalview.binding.JGroup[]) this._JGroupList.toArray(array);
+ }
+
+ /**
+ * Method getJGroupCount.
+ *
+ * @return the size of this collection
+ */
+ public int getJGroupCount(
+ ) {
+ return this._JGroupList.size();
+ }
+
+ /**
+ * Method getJSeq.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the jalview.binding.JSeq at the given
+ * index
+ */
+ public jalview.binding.JSeq getJSeq(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._JSeqList.size()) {
+ throw new IndexOutOfBoundsException("getJSeq: Index value '" + index + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
+ }
+
+ return (jalview.binding.JSeq) _JSeqList.get(index);
+ }
+
+ /**
+ * Method getJSeq.Returns the contents of the collection in an
+ * Array. <p>Note: Just in case the collection contents are
+ * changing in another thread, we pass a 0-length Array of the
+ * correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.binding.JSeq[] getJSeq(
+ ) {
+ jalview.binding.JSeq[] array = new jalview.binding.JSeq[0];
+ return (jalview.binding.JSeq[]) this._JSeqList.toArray(array);
+ }
+
+ /**
+ * Method getJSeqCount.
+ *
+ * @return the size of this collection
+ */
+ public int getJSeqCount(
+ ) {
+ return this._JSeqList.size();
+ }
+
+ /**
+ * Method getTree.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the jalview.binding.Tree at the given
+ * index
+ */
+ public jalview.binding.Tree getTree(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._treeList.size()) {
+ throw new IndexOutOfBoundsException("getTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+ }
+
+ return (jalview.binding.Tree) _treeList.get(index);
+ }
+
+ /**
+ * Method getTree.Returns the contents of the collection in an
+ * Array. <p>Note: Just in case the collection contents are
+ * changing in another thread, we pass a 0-length Array of the
+ * correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.binding.Tree[] getTree(
+ ) {
+ jalview.binding.Tree[] array = new jalview.binding.Tree[0];
+ return (jalview.binding.Tree[]) this._treeList.toArray(array);
+ }
+
+ /**
+ * Method getTreeCount.
+ *
+ * @return the size of this collection
+ */
+ public int getTreeCount(
+ ) {
+ return this._treeList.size();
+ }
+
+ /**
+ * Method getUserColours.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the jalview.binding.UserColours at the
+ * given index
+ */
+ public jalview.binding.UserColours getUserColours(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._userColoursList.size()) {
+ throw new IndexOutOfBoundsException("getUserColours: Index value '" + index + "' not in range [0.." + (this._userColoursList.size() - 1) + "]");
+ }
+
+ return (jalview.binding.UserColours) _userColoursList.get(index);
+ }
+
+ /**
+ * Method getUserColours.Returns the contents of the collection
+ * in an Array. <p>Note: Just in case the collection contents
+ * are changing in another thread, we pass a 0-length Array of
+ * the correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.binding.UserColours[] getUserColours(
+ ) {
+ jalview.binding.UserColours[] array = new jalview.binding.UserColours[0];
+ return (jalview.binding.UserColours[]) this._userColoursList.toArray(array);
+ }
+
+ /**
+ * Method getUserColoursCount.
+ *
+ * @return the size of this collection
+ */
+ public int getUserColoursCount(
+ ) {
+ return this._userColoursList.size();
+ }
+
+ /**
+ * Method getViewport.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the jalview.binding.Viewport at the
+ * given index
+ */
+ public jalview.binding.Viewport getViewport(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._viewportList.size()) {
+ throw new IndexOutOfBoundsException("getViewport: Index value '" + index + "' not in range [0.." + (this._viewportList.size() - 1) + "]");
+ }
+
+ return (jalview.binding.Viewport) _viewportList.get(index);
+ }
+
+ /**
+ * Method getViewport.Returns the contents of the collection in
+ * an Array. <p>Note: Just in case the collection contents
+ * are changing in another thread, we pass a 0-length Array of
+ * the correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.binding.Viewport[] getViewport(
+ ) {
+ jalview.binding.Viewport[] array = new jalview.binding.Viewport[0];
+ return (jalview.binding.Viewport[]) this._viewportList.toArray(array);
+ }
+
+ /**
+ * Method getViewportCount.
+ *
+ * @return the size of this collection
+ */
+ public int getViewportCount(
+ ) {
+ return this._viewportList.size();
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ */
+ public void removeAllJGroup(
+ ) {
+ this._JGroupList.clear();
+ }
+
+ /**
+ */
+ public void removeAllJSeq(
+ ) {
+ this._JSeqList.clear();
+ }
+
+ /**
+ */
+ public void removeAllTree(
+ ) {
+ this._treeList.clear();
+ }
+
+ /**
+ */
+ public void removeAllUserColours(
+ ) {
+ this._userColoursList.clear();
+ }
+
+ /**
+ */
+ public void removeAllViewport(
+ ) {
+ this._viewportList.clear();
+ }
+
+ /**
+ * Method removeJGroup.
+ *
+ * @param vJGroup
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeJGroup(
+ final jalview.binding.JGroup vJGroup) {
+ boolean removed = _JGroupList.remove(vJGroup);
+ return removed;
+ }
+
+ /**
+ * Method removeJGroupAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.binding.JGroup removeJGroupAt(
+ final int index) {
+ java.lang.Object obj = this._JGroupList.remove(index);
+ return (jalview.binding.JGroup) obj;
+ }
+
+ /**
+ * Method removeJSeq.
+ *
+ * @param vJSeq
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeJSeq(
+ final jalview.binding.JSeq vJSeq) {
+ boolean removed = _JSeqList.remove(vJSeq);
+ return removed;
+ }
+
+ /**
+ * Method removeJSeqAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.binding.JSeq removeJSeqAt(
+ final int index) {
+ java.lang.Object obj = this._JSeqList.remove(index);
+ return (jalview.binding.JSeq) obj;
+ }
+
+ /**
+ * Method removeTree.
+ *
+ * @param vTree
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeTree(
+ final jalview.binding.Tree vTree) {
+ boolean removed = _treeList.remove(vTree);
+ return removed;
+ }
+
+ /**
+ * Method removeTreeAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.binding.Tree removeTreeAt(
+ final int index) {
+ java.lang.Object obj = this._treeList.remove(index);
+ return (jalview.binding.Tree) obj;
+ }
+
+ /**
+ * Method removeUserColours.
+ *
+ * @param vUserColours
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeUserColours(
+ final jalview.binding.UserColours vUserColours) {
+ boolean removed = _userColoursList.remove(vUserColours);
+ return removed;
+ }
+
+ /**
+ * Method removeUserColoursAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.binding.UserColours removeUserColoursAt(
+ final int index) {
+ java.lang.Object obj = this._userColoursList.remove(index);
+ return (jalview.binding.UserColours) obj;
+ }
+
+ /**
+ * Method removeViewport.
+ *
+ * @param vViewport
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeViewport(
+ final jalview.binding.Viewport vViewport) {
+ boolean removed = _viewportList.remove(vViewport);
+ return removed;
+ }
+
+ /**
+ * Method removeViewportAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.binding.Viewport removeViewportAt(
+ final int index) {
+ java.lang.Object obj = this._viewportList.remove(index);
+ return (jalview.binding.Viewport) obj;
+ }
+
+ /**
+ * Sets the value of field 'featureSettings'.
+ *
+ * @param featureSettings the value of field 'featureSettings'.
+ */
+ public void setFeatureSettings(
+ final jalview.binding.FeatureSettings featureSettings) {
+ this._featureSettings = featureSettings;
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vJGroup
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setJGroup(
+ final int index,
+ final jalview.binding.JGroup vJGroup)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._JGroupList.size()) {
+ throw new IndexOutOfBoundsException("setJGroup: Index value '" + index + "' not in range [0.." + (this._JGroupList.size() - 1) + "]");
+ }
+
+ this._JGroupList.set(index, vJGroup);
+ }
+
+ /**
+ *
+ *
+ * @param vJGroupArray
+ */
+ public void setJGroup(
+ final jalview.binding.JGroup[] vJGroupArray) {
+ //-- copy array
+ _JGroupList.clear();
+
+ for (int i = 0; i < vJGroupArray.length; i++) {
+ this._JGroupList.add(vJGroupArray[i]);
+ }
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vJSeq
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setJSeq(
+ final int index,
+ final jalview.binding.JSeq vJSeq)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._JSeqList.size()) {
+ throw new IndexOutOfBoundsException("setJSeq: Index value '" + index + "' not in range [0.." + (this._JSeqList.size() - 1) + "]");
+ }
+
+ this._JSeqList.set(index, vJSeq);
+ }
+
+ /**
+ *
+ *
+ * @param vJSeqArray
+ */
+ public void setJSeq(
+ final jalview.binding.JSeq[] vJSeqArray) {
+ //-- copy array
+ _JSeqList.clear();
+
+ for (int i = 0; i < vJSeqArray.length; i++) {
+ this._JSeqList.add(vJSeqArray[i]);
+ }
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vTree
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setTree(
+ final int index,
+ final jalview.binding.Tree vTree)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._treeList.size()) {
+ throw new IndexOutOfBoundsException("setTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+ }
+
+ this._treeList.set(index, vTree);
+ }
+
+ /**
+ *
+ *
+ * @param vTreeArray
+ */
+ public void setTree(
+ final jalview.binding.Tree[] vTreeArray) {
+ //-- copy array
+ _treeList.clear();
+
+ for (int i = 0; i < vTreeArray.length; i++) {
+ this._treeList.add(vTreeArray[i]);
+ }
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vUserColours
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setUserColours(
+ final int index,
+ final jalview.binding.UserColours vUserColours)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._userColoursList.size()) {
+ throw new IndexOutOfBoundsException("setUserColours: Index value '" + index + "' not in range [0.." + (this._userColoursList.size() - 1) + "]");
+ }
+
+ this._userColoursList.set(index, vUserColours);
+ }
+
+ /**
+ *
+ *
+ * @param vUserColoursArray
+ */
+ public void setUserColours(
+ final jalview.binding.UserColours[] vUserColoursArray) {
+ //-- copy array
+ _userColoursList.clear();
+
+ for (int i = 0; i < vUserColoursArray.length; i++) {
+ this._userColoursList.add(vUserColoursArray[i]);
+ }
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vViewport
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setViewport(
+ final int index,
+ final jalview.binding.Viewport vViewport)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._viewportList.size()) {
+ throw new IndexOutOfBoundsException("setViewport: Index value '" + index + "' not in range [0.." + (this._viewportList.size() - 1) + "]");
+ }
+
+ this._viewportList.set(index, vViewport);
+ }
+
+ /**
+ *
+ *
+ * @param vViewportArray
+ */
+ public void setViewport(
+ final jalview.binding.Viewport[] vViewportArray) {
+ //-- copy array
+ _viewportList.clear();
+
+ for (int i = 0; i < vViewportArray.length; i++) {
+ this._viewportList.add(vViewportArray[i]);
+ }
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.JalviewModelSequence
+ */
+ public static jalview.binding.JalviewModelSequence unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.JalviewModelSequence) Unmarshaller.unmarshal(jalview.binding.JalviewModelSequence.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
-import jalview.util.MessageManager;
-
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
*
* @version $Revision$ $Date$
*/
-public class JalviewUserColours implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _schemeName.
- */
- private java.lang.String _schemeName;
-
- /**
- * Jalview colour scheme document version.
- *
- */
- private java.lang.String _version;
-
- /**
- * Field _colourList.
- */
- private java.util.Vector _colourList;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public JalviewUserColours()
- {
- super();
- this._colourList = new java.util.Vector();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- *
- *
- * @param vColour
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addColour(final Colour vColour)
- throws java.lang.IndexOutOfBoundsException
- {
- this._colourList.addElement(vColour);
- }
-
- /**
- *
- *
- * @param index
- * @param vColour
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addColour(final int index, final Colour vColour)
- throws java.lang.IndexOutOfBoundsException
- {
- this._colourList.add(index, vColour);
- }
-
- /**
- * Method enumerateColour.
- *
- * @return an Enumeration over all Colour elements
- */
- public java.util.Enumeration enumerateColour()
- {
- return this._colourList.elements();
- }
-
- /**
- * Method getColour.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the Colour at the given index
- */
- public Colour getColour(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._colourList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getColour",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._colourList.size() - 1)).toString()
- }));
+public class JalviewUserColours implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _schemeName.
+ */
+ private java.lang.String _schemeName;
+
+ /**
+ * Jalview colour scheme document version.
+ *
+ */
+ private java.lang.String _version;
+
+ /**
+ * Field _colourList.
+ */
+ private java.util.Vector _colourList;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public JalviewUserColours() {
+ super();
+ this._colourList = new java.util.Vector();
}
- return (Colour) _colourList.get(index);
- }
-
- /**
- * Method getColour.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public Colour[] getColour()
- {
- Colour[] array = new Colour[0];
- return (Colour[]) this._colourList.toArray(array);
- }
-
- /**
- * Method getColourCount.
- *
- * @return the size of this collection
- */
- public int getColourCount()
- {
- return this._colourList.size();
- }
-
- /**
- * Returns the value of field 'schemeName'.
- *
- * @return the value of field 'SchemeName'.
- */
- public java.lang.String getSchemeName()
- {
- return this._schemeName;
- }
-
- /**
- * Returns the value of field 'version'. The field 'version' has the following
- * description: Jalview colour scheme document version.
- *
- *
- * @return the value of field 'Version'.
- */
- public java.lang.String getVersion()
- {
- return this._version;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ *
+ *
+ * @param vColour
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addColour(
+ final Colour vColour)
+ throws java.lang.IndexOutOfBoundsException {
+ this._colourList.addElement(vColour);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vColour
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addColour(
+ final int index,
+ final Colour vColour)
+ throws java.lang.IndexOutOfBoundsException {
+ this._colourList.add(index, vColour);
+ }
+
+ /**
+ * Method enumerateColour.
+ *
+ * @return an Enumeration over all Colour elements
+ */
+ public java.util.Enumeration enumerateColour(
+ ) {
+ return this._colourList.elements();
+ }
+
+ /**
+ * Method getColour.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the Colour at the given index
+ */
+ public Colour getColour(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._colourList.size()) {
+ throw new IndexOutOfBoundsException("getColour: Index value '" + index + "' not in range [0.." + (this._colourList.size() - 1) + "]");
+ }
+
+ return (Colour) _colourList.get(index);
}
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
+
+ /**
+ * Method getColour.Returns the contents of the collection in
+ * an Array. <p>Note: Just in case the collection contents
+ * are changing in another thread, we pass a 0-length Array of
+ * the correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public Colour[] getColour(
+ ) {
+ Colour[] array = new Colour[0];
+ return (Colour[]) this._colourList.toArray(array);
+ }
+
+ /**
+ * Method getColourCount.
+ *
+ * @return the size of this collection
*/
- public void removeAllColour()
- {
- this._colourList.clear();
- }
-
- /**
- * Method removeColour.
- *
- * @param vColour
- * @return true if the object was removed from the collection.
- */
- public boolean removeColour(final Colour vColour)
- {
- boolean removed = _colourList.remove(vColour);
- return removed;
- }
-
- /**
- * Method removeColourAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public Colour removeColourAt(final int index)
- {
- java.lang.Object obj = this._colourList.remove(index);
- return (Colour) obj;
- }
-
- /**
- *
- *
- * @param index
- * @param vColour
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setColour(final int index, final Colour vColour)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._colourList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setColour",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._colourList.size() - 1)).toString()
- }));
+ public int getColourCount(
+ ) {
+ return this._colourList.size();
}
- this._colourList.set(index, vColour);
- }
-
- /**
- *
- *
- * @param vColourArray
- */
- public void setColour(final Colour[] vColourArray)
- {
- // -- copy array
- _colourList.clear();
-
- for (int i = 0; i < vColourArray.length; i++)
- {
- this._colourList.add(vColourArray[i]);
+ /**
+ * Returns the value of field 'schemeName'.
+ *
+ * @return the value of field 'SchemeName'.
+ */
+ public java.lang.String getSchemeName(
+ ) {
+ return this._schemeName;
+ }
+
+ /**
+ * Returns the value of field 'version'. The field 'version'
+ * has the following description: Jalview colour scheme
+ * document version.
+ *
+ *
+ * @return the value of field 'Version'.
+ */
+ public java.lang.String getVersion(
+ ) {
+ return this._version;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ */
+ public void removeAllColour(
+ ) {
+ this._colourList.clear();
+ }
+
+ /**
+ * Method removeColour.
+ *
+ * @param vColour
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeColour(
+ final Colour vColour) {
+ boolean removed = _colourList.remove(vColour);
+ return removed;
+ }
+
+ /**
+ * Method removeColourAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public Colour removeColourAt(
+ final int index) {
+ java.lang.Object obj = this._colourList.remove(index);
+ return (Colour) obj;
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vColour
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setColour(
+ final int index,
+ final Colour vColour)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._colourList.size()) {
+ throw new IndexOutOfBoundsException("setColour: Index value '" + index + "' not in range [0.." + (this._colourList.size() - 1) + "]");
+ }
+
+ this._colourList.set(index, vColour);
+ }
+
+ /**
+ *
+ *
+ * @param vColourArray
+ */
+ public void setColour(
+ final Colour[] vColourArray) {
+ //-- copy array
+ _colourList.clear();
+
+ for (int i = 0; i < vColourArray.length; i++) {
+ this._colourList.add(vColourArray[i]);
+ }
+ }
+
+ /**
+ * Sets the value of field 'schemeName'.
+ *
+ * @param schemeName the value of field 'schemeName'.
+ */
+ public void setSchemeName(
+ final java.lang.String schemeName) {
+ this._schemeName = schemeName;
+ }
+
+ /**
+ * Sets the value of field 'version'. The field 'version' has
+ * the following description: Jalview colour scheme document
+ * version.
+ *
+ *
+ * @param version the value of field 'version'.
+ */
+ public void setVersion(
+ final java.lang.String version) {
+ this._version = version;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.JalviewUserColours
+ */
+ public static jalview.binding.JalviewUserColours unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(jalview.binding.JalviewUserColours.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
}
- }
-
- /**
- * Sets the value of field 'schemeName'.
- *
- * @param schemeName
- * the value of field 'schemeName'.
- */
- public void setSchemeName(final java.lang.String schemeName)
- {
- this._schemeName = schemeName;
- }
-
- /**
- * Sets the value of field 'version'. The field 'version' has the following
- * description: Jalview colour scheme document version.
- *
- *
- * @param version
- * the value of field 'version'.
- */
- public void setVersion(final java.lang.String version)
- {
- this._version = version;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.JalviewUserColours
- */
- public static jalview.binding.JalviewUserColours unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(
- jalview.binding.JalviewUserColours.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
-import jalview.util.MessageManager;
-
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
*
* @version $Revision$ $Date$
*/
-public class Pdbentry implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _id.
- */
- private java.lang.String _id;
-
- /**
- * Field _type.
- */
- private java.lang.String _type;
-
- /**
- * Field _items.
- */
- private java.util.Vector _items;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public Pdbentry()
- {
- super();
- this._items = new java.util.Vector();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- *
- *
- * @param vPdbentryItem
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addPdbentryItem(
- final jalview.binding.PdbentryItem vPdbentryItem)
- throws java.lang.IndexOutOfBoundsException
- {
- this._items.addElement(vPdbentryItem);
- }
-
- /**
- *
- *
- * @param index
- * @param vPdbentryItem
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addPdbentryItem(final int index,
- final jalview.binding.PdbentryItem vPdbentryItem)
- throws java.lang.IndexOutOfBoundsException
- {
- this._items.add(index, vPdbentryItem);
- }
-
- /**
- * Method enumeratePdbentryItem.
- *
- * @return an Enumeration over all jalview.binding.PdbentryItem elements
- */
- public java.util.Enumeration enumeratePdbentryItem()
- {
- return this._items.elements();
- }
-
- /**
- * Returns the value of field 'id'.
- *
- * @return the value of field 'Id'.
- */
- public java.lang.String getId()
- {
- return this._id;
- }
-
- /**
- * Method getPdbentryItem.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the jalview.binding.PdbentryItem at the given index
- */
- public jalview.binding.PdbentryItem getPdbentryItem(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._items.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getPdbentryItem",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._items.size() - 1)).toString()
- }));
+public class Pdbentry implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _id.
+ */
+ private java.lang.String _id;
+
+ /**
+ * Field _type.
+ */
+ private java.lang.String _type;
+
+ /**
+ * Field _items.
+ */
+ private java.util.Vector _items;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public Pdbentry() {
+ super();
+ this._items = new java.util.Vector();
}
- return (jalview.binding.PdbentryItem) _items.get(index);
- }
-
- /**
- * Method getPdbentryItem.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public jalview.binding.PdbentryItem[] getPdbentryItem()
- {
- jalview.binding.PdbentryItem[] array = new jalview.binding.PdbentryItem[0];
- return (jalview.binding.PdbentryItem[]) this._items.toArray(array);
- }
-
- /**
- * Method getPdbentryItemCount.
- *
- * @return the size of this collection
- */
- public int getPdbentryItemCount()
- {
- return this._items.size();
- }
-
- /**
- * Returns the value of field 'type'.
- *
- * @return the value of field 'Type'.
- */
- public java.lang.String getType()
- {
- return this._type;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ *
+ *
+ * @param vPdbentryItem
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addPdbentryItem(
+ final jalview.binding.PdbentryItem vPdbentryItem)
+ throws java.lang.IndexOutOfBoundsException {
+ this._items.addElement(vPdbentryItem);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vPdbentryItem
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addPdbentryItem(
+ final int index,
+ final jalview.binding.PdbentryItem vPdbentryItem)
+ throws java.lang.IndexOutOfBoundsException {
+ this._items.add(index, vPdbentryItem);
+ }
+
+ /**
+ * Method enumeratePdbentryItem.
+ *
+ * @return an Enumeration over all jalview.binding.PdbentryItem
+ * elements
+ */
+ public java.util.Enumeration enumeratePdbentryItem(
+ ) {
+ return this._items.elements();
+ }
+
+ /**
+ * Returns the value of field 'id'.
+ *
+ * @return the value of field 'Id'.
+ */
+ public java.lang.String getId(
+ ) {
+ return this._id;
}
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
+
+ /**
+ * Method getPdbentryItem.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the jalview.binding.PdbentryItem at the
+ * given index
+ */
+ public jalview.binding.PdbentryItem getPdbentryItem(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._items.size()) {
+ throw new IndexOutOfBoundsException("getPdbentryItem: Index value '" + index + "' not in range [0.." + (this._items.size() - 1) + "]");
+ }
+
+ return (jalview.binding.PdbentryItem) _items.get(index);
+ }
+
+ /**
+ * Method getPdbentryItem.Returns the contents of the
+ * collection in an Array. <p>Note: Just in case the
+ * collection contents are changing in another thread, we pass
+ * a 0-length Array of the correct type into the API call.
+ * This way we <i>know</i> that the Array returned is of
+ * exactly the correct length.
+ *
+ * @return this collection as an Array
*/
- public void removeAllPdbentryItem()
- {
- this._items.clear();
- }
-
- /**
- * Method removePdbentryItem.
- *
- * @param vPdbentryItem
- * @return true if the object was removed from the collection.
- */
- public boolean removePdbentryItem(
- final jalview.binding.PdbentryItem vPdbentryItem)
- {
- boolean removed = _items.remove(vPdbentryItem);
- return removed;
- }
-
- /**
- * Method removePdbentryItemAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public jalview.binding.PdbentryItem removePdbentryItemAt(final int index)
- {
- java.lang.Object obj = this._items.remove(index);
- return (jalview.binding.PdbentryItem) obj;
- }
-
- /**
- * Sets the value of field 'id'.
- *
- * @param id
- * the value of field 'id'.
- */
- public void setId(final java.lang.String id)
- {
- this._id = id;
- }
-
- /**
- *
- *
- * @param index
- * @param vPdbentryItem
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setPdbentryItem(final int index,
- final jalview.binding.PdbentryItem vPdbentryItem)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._items.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setPdbentryItem",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._items.size() - 1)).toString()
- }));
+ public jalview.binding.PdbentryItem[] getPdbentryItem(
+ ) {
+ jalview.binding.PdbentryItem[] array = new jalview.binding.PdbentryItem[0];
+ return (jalview.binding.PdbentryItem[]) this._items.toArray(array);
}
- this._items.set(index, vPdbentryItem);
- }
-
- /**
- *
- *
- * @param vPdbentryItemArray
- */
- public void setPdbentryItem(
- final jalview.binding.PdbentryItem[] vPdbentryItemArray)
- {
- // -- copy array
- _items.clear();
-
- for (int i = 0; i < vPdbentryItemArray.length; i++)
- {
- this._items.add(vPdbentryItemArray[i]);
+ /**
+ * Method getPdbentryItemCount.
+ *
+ * @return the size of this collection
+ */
+ public int getPdbentryItemCount(
+ ) {
+ return this._items.size();
+ }
+
+ /**
+ * Returns the value of field 'type'.
+ *
+ * @return the value of field 'Type'.
+ */
+ public java.lang.String getType(
+ ) {
+ return this._type;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ */
+ public void removeAllPdbentryItem(
+ ) {
+ this._items.clear();
+ }
+
+ /**
+ * Method removePdbentryItem.
+ *
+ * @param vPdbentryItem
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removePdbentryItem(
+ final jalview.binding.PdbentryItem vPdbentryItem) {
+ boolean removed = _items.remove(vPdbentryItem);
+ return removed;
+ }
+
+ /**
+ * Method removePdbentryItemAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.binding.PdbentryItem removePdbentryItemAt(
+ final int index) {
+ java.lang.Object obj = this._items.remove(index);
+ return (jalview.binding.PdbentryItem) obj;
+ }
+
+ /**
+ * Sets the value of field 'id'.
+ *
+ * @param id the value of field 'id'.
+ */
+ public void setId(
+ final java.lang.String id) {
+ this._id = id;
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vPdbentryItem
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setPdbentryItem(
+ final int index,
+ final jalview.binding.PdbentryItem vPdbentryItem)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._items.size()) {
+ throw new IndexOutOfBoundsException("setPdbentryItem: Index value '" + index + "' not in range [0.." + (this._items.size() - 1) + "]");
+ }
+
+ this._items.set(index, vPdbentryItem);
+ }
+
+ /**
+ *
+ *
+ * @param vPdbentryItemArray
+ */
+ public void setPdbentryItem(
+ final jalview.binding.PdbentryItem[] vPdbentryItemArray) {
+ //-- copy array
+ _items.clear();
+
+ for (int i = 0; i < vPdbentryItemArray.length; i++) {
+ this._items.add(vPdbentryItemArray[i]);
+ }
+ }
+
+ /**
+ * Sets the value of field 'type'.
+ *
+ * @param type the value of field 'type'.
+ */
+ public void setType(
+ final java.lang.String type) {
+ this._type = type;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.Pdbentry
+ */
+ public static jalview.binding.Pdbentry unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(jalview.binding.Pdbentry.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
}
- }
-
- /**
- * Sets the value of field 'type'.
- *
- * @param type
- * the value of field 'type'.
- */
- public void setType(final java.lang.String type)
- {
- this._type = type;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.Pdbentry
- */
- public static jalview.binding.Pdbentry unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(
- jalview.binding.Pdbentry.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
-package jalview.binding;
-import jalview.util.MessageManager;
+package jalview.binding;
/**
* Class PdbentryItem.
*
* @version $Revision$ $Date$
*/
-public class PdbentryItem implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _propertyList.
- */
- private java.util.Vector _propertyList;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public PdbentryItem()
- {
- super();
- this._propertyList = new java.util.Vector();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- *
- *
- * @param vProperty
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addProperty(final jalview.binding.Property vProperty)
- throws java.lang.IndexOutOfBoundsException
- {
- this._propertyList.addElement(vProperty);
- }
-
- /**
- *
- *
- * @param index
- * @param vProperty
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addProperty(final int index,
- final jalview.binding.Property vProperty)
- throws java.lang.IndexOutOfBoundsException
- {
- this._propertyList.add(index, vProperty);
- }
-
- /**
- * Method enumerateProperty.
- *
- * @return an Enumeration over all jalview.binding.Property elements
- */
- public java.util.Enumeration enumerateProperty()
- {
- return this._propertyList.elements();
- }
-
- /**
- * Method getProperty.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the jalview.binding.Property at the given index
- */
- public jalview.binding.Property getProperty(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._propertyList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getProperty",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._propertyList.size() - 1)).toString()
- }));
+public class PdbentryItem implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _propertyList.
+ */
+ private java.util.Vector _propertyList;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public PdbentryItem() {
+ super();
+ this._propertyList = new java.util.Vector();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ *
+ *
+ * @param vProperty
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addProperty(
+ final jalview.binding.Property vProperty)
+ throws java.lang.IndexOutOfBoundsException {
+ this._propertyList.addElement(vProperty);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vProperty
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addProperty(
+ final int index,
+ final jalview.binding.Property vProperty)
+ throws java.lang.IndexOutOfBoundsException {
+ this._propertyList.add(index, vProperty);
+ }
+
+ /**
+ * Method enumerateProperty.
+ *
+ * @return an Enumeration over all jalview.binding.Property
+ * elements
+ */
+ public java.util.Enumeration enumerateProperty(
+ ) {
+ return this._propertyList.elements();
+ }
+
+ /**
+ * Method getProperty.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the jalview.binding.Property at the
+ * given index
+ */
+ public jalview.binding.Property getProperty(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._propertyList.size()) {
+ throw new IndexOutOfBoundsException("getProperty: Index value '" + index + "' not in range [0.." + (this._propertyList.size() - 1) + "]");
+ }
+
+ return (jalview.binding.Property) _propertyList.get(index);
+ }
+
+ /**
+ * Method getProperty.Returns the contents of the collection in
+ * an Array. <p>Note: Just in case the collection contents
+ * are changing in another thread, we pass a 0-length Array of
+ * the correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.binding.Property[] getProperty(
+ ) {
+ jalview.binding.Property[] array = new jalview.binding.Property[0];
+ return (jalview.binding.Property[]) this._propertyList.toArray(array);
+ }
+
+ /**
+ * Method getPropertyCount.
+ *
+ * @return the size of this collection
+ */
+ public int getPropertyCount(
+ ) {
+ return this._propertyList.size();
}
- return (jalview.binding.Property) _propertyList.get(index);
- }
-
- /**
- * Method getProperty.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public jalview.binding.Property[] getProperty()
- {
- jalview.binding.Property[] array = new jalview.binding.Property[0];
- return (jalview.binding.Property[]) this._propertyList.toArray(array);
- }
-
- /**
- * Method getPropertyCount.
- *
- * @return the size of this collection
- */
- public int getPropertyCount()
- {
- return this._propertyList.size();
- }
-
- /**
+ /**
*/
- public void removeAllProperty()
- {
- this._propertyList.clear();
- }
-
- /**
- * Method removeProperty.
- *
- * @param vProperty
- * @return true if the object was removed from the collection.
- */
- public boolean removeProperty(final jalview.binding.Property vProperty)
- {
- boolean removed = _propertyList.remove(vProperty);
- return removed;
- }
-
- /**
- * Method removePropertyAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public jalview.binding.Property removePropertyAt(final int index)
- {
- java.lang.Object obj = this._propertyList.remove(index);
- return (jalview.binding.Property) obj;
- }
-
- /**
- *
- *
- * @param index
- * @param vProperty
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setProperty(final int index,
- final jalview.binding.Property vProperty)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._propertyList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setProperty",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._propertyList.size() - 1)).toString()
- }));
+ public void removeAllProperty(
+ ) {
+ this._propertyList.clear();
}
- this._propertyList.set(index, vProperty);
- }
-
- /**
- *
- *
- * @param vPropertyArray
- */
- public void setProperty(final jalview.binding.Property[] vPropertyArray)
- {
- // -- copy array
- _propertyList.clear();
-
- for (int i = 0; i < vPropertyArray.length; i++)
- {
- this._propertyList.add(vPropertyArray[i]);
+ /**
+ * Method removeProperty.
+ *
+ * @param vProperty
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeProperty(
+ final jalview.binding.Property vProperty) {
+ boolean removed = _propertyList.remove(vProperty);
+ return removed;
+ }
+
+ /**
+ * Method removePropertyAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.binding.Property removePropertyAt(
+ final int index) {
+ java.lang.Object obj = this._propertyList.remove(index);
+ return (jalview.binding.Property) obj;
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vProperty
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setProperty(
+ final int index,
+ final jalview.binding.Property vProperty)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._propertyList.size()) {
+ throw new IndexOutOfBoundsException("setProperty: Index value '" + index + "' not in range [0.." + (this._propertyList.size() - 1) + "]");
+ }
+
+ this._propertyList.set(index, vProperty);
+ }
+
+ /**
+ *
+ *
+ * @param vPropertyArray
+ */
+ public void setProperty(
+ final jalview.binding.Property[] vPropertyArray) {
+ //-- copy array
+ _propertyList.clear();
+
+ for (int i = 0; i < vPropertyArray.length; i++) {
+ this._propertyList.add(vPropertyArray[i]);
+ }
}
- }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class Pdbids extends Pdbentry implements java.io.Serializable
+public class Pdbids extends Pdbentry
+implements java.io.Serializable
{
- // ----------------/
- // - Constructors -/
- // ----------------/
- public Pdbids()
- {
- super();
- }
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public Pdbids() {
+ super();
+ }
+
- // -----------/
- // - Methods -/
- // -----------/
+ //-----------/
+ //- Methods -/
+ //-----------/
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
}
- return true;
- }
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.Pdbentry
- */
- public static jalview.binding.Pdbentry unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(
- jalview.binding.Pdbids.class, reader);
- }
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.Pdbentry
+ */
+ public static jalview.binding.Pdbentry unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.Pdbentry) Unmarshaller.unmarshal(jalview.binding.Pdbids.class, reader);
+ }
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class Property implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _name.
- */
- private java.lang.String _name;
-
- /**
- * Field _value.
- */
- private java.lang.String _value;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public Property()
- {
- super();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- * Returns the value of field 'name'.
- *
- * @return the value of field 'Name'.
- */
- public java.lang.String getName()
- {
- return this._name;
- }
-
- /**
- * Returns the value of field 'value'.
- *
- * @return the value of field 'Value'.
- */
- public java.lang.String getValue()
- {
- return this._value;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+public class Property implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _name.
+ */
+ private java.lang.String _name;
+
+ /**
+ * Field _value.
+ */
+ private java.lang.String _value;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public Property() {
+ super();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ * Returns the value of field 'name'.
+ *
+ * @return the value of field 'Name'.
+ */
+ public java.lang.String getName(
+ ) {
+ return this._name;
+ }
+
+ /**
+ * Returns the value of field 'value'.
+ *
+ * @return the value of field 'Value'.
+ */
+ public java.lang.String getValue(
+ ) {
+ return this._value;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Sets the value of field 'name'.
+ *
+ * @param name the value of field 'name'.
+ */
+ public void setName(
+ final java.lang.String name) {
+ this._name = name;
+ }
+
+ /**
+ * Sets the value of field 'value'.
+ *
+ * @param value the value of field 'value'.
+ */
+ public void setValue(
+ final java.lang.String value) {
+ this._value = value;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.Property
+ */
+ public static jalview.binding.Property unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.Property) Unmarshaller.unmarshal(jalview.binding.Property.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
}
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- * Sets the value of field 'name'.
- *
- * @param name
- * the value of field 'name'.
- */
- public void setName(final java.lang.String name)
- {
- this._name = name;
- }
-
- /**
- * Sets the value of field 'value'.
- *
- * @param value
- * the value of field 'value'.
- */
- public void setValue(final java.lang.String value)
- {
- this._value = value;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.Property
- */
- public static jalview.binding.Property unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.Property) Unmarshaller.unmarshal(
- jalview.binding.Property.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class Sequence extends SequenceType implements java.io.Serializable
+public class Sequence extends SequenceType
+implements java.io.Serializable
{
- // ----------------/
- // - Constructors -/
- // ----------------/
- public Sequence()
- {
- super();
- }
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public Sequence() {
+ super();
+ }
+
- // -----------/
- // - Methods -/
- // -----------/
+ //-----------/
+ //- Methods -/
+ //-----------/
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
}
- return true;
- }
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.SequenceType
- */
- public static jalview.binding.SequenceType unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.SequenceType) Unmarshaller.unmarshal(
- jalview.binding.Sequence.class, reader);
- }
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.SequenceType
+ */
+ public static jalview.binding.SequenceType unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.SequenceType) Unmarshaller.unmarshal(jalview.binding.Sequence.class, reader);
+ }
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
-//- Imported classes and packages -/
-//---------------------------------/
-
-import jalview.util.MessageManager;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
*
* @version $Revision$ $Date$
*/
-public class SequenceSet implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _gapChar.
- */
- private java.lang.String _gapChar;
-
- /**
- * Field _aligned.
- */
- private boolean _aligned;
-
- /**
- * keeps track of state for field: _aligned
- */
- private boolean _has_aligned;
-
- /**
- * Field _sequenceList.
- */
- private java.util.Vector _sequenceList;
-
- /**
- * Field _annotationList.
- */
- private java.util.Vector _annotationList;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public SequenceSet()
- {
- super();
- this._sequenceList = new java.util.Vector();
- this._annotationList = new java.util.Vector();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- *
- *
- * @param vAnnotation
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addAnnotation(final jalview.binding.Annotation vAnnotation)
- throws java.lang.IndexOutOfBoundsException
- {
- this._annotationList.addElement(vAnnotation);
- }
-
- /**
- *
- *
- * @param index
- * @param vAnnotation
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addAnnotation(final int index,
- final jalview.binding.Annotation vAnnotation)
- throws java.lang.IndexOutOfBoundsException
- {
- this._annotationList.add(index, vAnnotation);
- }
-
- /**
- *
- *
- * @param vSequence
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addSequence(final jalview.binding.Sequence vSequence)
- throws java.lang.IndexOutOfBoundsException
- {
- this._sequenceList.addElement(vSequence);
- }
-
- /**
- *
- *
- * @param index
- * @param vSequence
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addSequence(final int index,
- final jalview.binding.Sequence vSequence)
- throws java.lang.IndexOutOfBoundsException
- {
- this._sequenceList.add(index, vSequence);
- }
-
- /**
- */
- public void deleteAligned()
- {
- this._has_aligned = false;
- }
-
- /**
- * Method enumerateAnnotation.
- *
- * @return an Enumeration over all jalview.binding.Annotation elements
- */
- public java.util.Enumeration enumerateAnnotation()
- {
- return this._annotationList.elements();
- }
-
- /**
- * Method enumerateSequence.
- *
- * @return an Enumeration over all jalview.binding.Sequence elements
- */
- public java.util.Enumeration enumerateSequence()
- {
- return this._sequenceList.elements();
- }
-
- /**
- * Returns the value of field 'aligned'.
- *
- * @return the value of field 'Aligned'.
- */
- public boolean getAligned()
- {
- return this._aligned;
- }
-
- /**
- * Method getAnnotation.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the jalview.binding.Annotation at the given index
- */
- public jalview.binding.Annotation getAnnotation(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._annotationList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getAnnotation",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._annotationList.size() - 1)).toString()
- }));
- }
-
- return (jalview.binding.Annotation) _annotationList.get(index);
- }
-
- /**
- * Method getAnnotation.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public jalview.binding.Annotation[] getAnnotation()
- {
- jalview.binding.Annotation[] array = new jalview.binding.Annotation[0];
- return (jalview.binding.Annotation[]) this._annotationList
- .toArray(array);
- }
-
- /**
- * Method getAnnotationCount.
- *
- * @return the size of this collection
- */
- public int getAnnotationCount()
- {
- return this._annotationList.size();
- }
-
- /**
- * Returns the value of field 'gapChar'.
- *
- * @return the value of field 'GapChar'.
- */
- public java.lang.String getGapChar()
- {
- return this._gapChar;
- }
-
- /**
- * Method getSequence.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the jalview.binding.Sequence at the given index
- */
- public jalview.binding.Sequence getSequence(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._sequenceList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getSequence",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._sequenceList.size() - 1)).toString()
- }));
- }
-
- return (jalview.binding.Sequence) _sequenceList.get(index);
- }
-
- /**
- * Method getSequence.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public jalview.binding.Sequence[] getSequence()
- {
- jalview.binding.Sequence[] array = new jalview.binding.Sequence[0];
- return (jalview.binding.Sequence[]) this._sequenceList.toArray(array);
- }
-
- /**
- * Method getSequenceCount.
- *
- * @return the size of this collection
- */
- public int getSequenceCount()
- {
- return this._sequenceList.size();
- }
-
- /**
- * Method hasAligned.
- *
- * @return true if at least one Aligned has been added
- */
- public boolean hasAligned()
- {
- return this._has_aligned;
- }
-
- /**
- * Returns the value of field 'aligned'.
- *
- * @return the value of field 'Aligned'.
- */
- public boolean isAligned()
- {
- return this._aligned;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
- }
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- */
- public void removeAllAnnotation()
- {
- this._annotationList.clear();
- }
-
- /**
- */
- public void removeAllSequence()
- {
- this._sequenceList.clear();
- }
-
- /**
- * Method removeAnnotation.
- *
- * @param vAnnotation
- * @return true if the object was removed from the collection.
- */
- public boolean removeAnnotation(
- final jalview.binding.Annotation vAnnotation)
- {
- boolean removed = _annotationList.remove(vAnnotation);
- return removed;
- }
-
- /**
- * Method removeAnnotationAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public jalview.binding.Annotation removeAnnotationAt(final int index)
- {
- java.lang.Object obj = this._annotationList.remove(index);
- return (jalview.binding.Annotation) obj;
- }
-
- /**
- * Method removeSequence.
- *
- * @param vSequence
- * @return true if the object was removed from the collection.
- */
- public boolean removeSequence(final jalview.binding.Sequence vSequence)
- {
- boolean removed = _sequenceList.remove(vSequence);
- return removed;
- }
-
- /**
- * Method removeSequenceAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public jalview.binding.Sequence removeSequenceAt(final int index)
- {
- java.lang.Object obj = this._sequenceList.remove(index);
- return (jalview.binding.Sequence) obj;
- }
-
- /**
- * Sets the value of field 'aligned'.
- *
- * @param aligned
- * the value of field 'aligned'.
- */
- public void setAligned(final boolean aligned)
- {
- this._aligned = aligned;
- this._has_aligned = true;
- }
-
- /**
- *
- *
- * @param index
- * @param vAnnotation
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setAnnotation(final int index,
- final jalview.binding.Annotation vAnnotation)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._annotationList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setAnnotation",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._annotationList.size() - 1)).toString()
- }));
- }
-
- this._annotationList.set(index, vAnnotation);
- }
-
- /**
- *
- *
- * @param vAnnotationArray
- */
- public void setAnnotation(
- final jalview.binding.Annotation[] vAnnotationArray)
- {
- // -- copy array
- _annotationList.clear();
-
- for (int i = 0; i < vAnnotationArray.length; i++)
- {
- this._annotationList.add(vAnnotationArray[i]);
- }
- }
-
- /**
- * Sets the value of field 'gapChar'.
- *
- * @param gapChar
- * the value of field 'gapChar'.
- */
- public void setGapChar(final java.lang.String gapChar)
- {
- this._gapChar = gapChar;
- }
-
- /**
- *
- *
- * @param index
- * @param vSequence
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setSequence(final int index,
- final jalview.binding.Sequence vSequence)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._sequenceList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setSequence",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._sequenceList.size() - 1)).toString()
- }));
- }
-
- this._sequenceList.set(index, vSequence);
- }
-
- /**
- *
- *
- * @param vSequenceArray
- */
- public void setSequence(final jalview.binding.Sequence[] vSequenceArray)
- {
- // -- copy array
- _sequenceList.clear();
-
- for (int i = 0; i < vSequenceArray.length; i++)
- {
- this._sequenceList.add(vSequenceArray[i]);
- }
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.SequenceSet
- */
- public static jalview.binding.SequenceSet unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.SequenceSet) Unmarshaller.unmarshal(
- jalview.binding.SequenceSet.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+public class SequenceSet implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _gapChar.
+ */
+ private java.lang.String _gapChar;
+
+ /**
+ * Field _aligned.
+ */
+ private boolean _aligned;
+
+ /**
+ * keeps track of state for field: _aligned
+ */
+ private boolean _has_aligned;
+
+ /**
+ * Field _sequenceList.
+ */
+ private java.util.Vector _sequenceList;
+
+ /**
+ * Field _annotationList.
+ */
+ private java.util.Vector _annotationList;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public SequenceSet() {
+ super();
+ this._sequenceList = new java.util.Vector();
+ this._annotationList = new java.util.Vector();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ *
+ *
+ * @param vAnnotation
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addAnnotation(
+ final jalview.binding.Annotation vAnnotation)
+ throws java.lang.IndexOutOfBoundsException {
+ this._annotationList.addElement(vAnnotation);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vAnnotation
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addAnnotation(
+ final int index,
+ final jalview.binding.Annotation vAnnotation)
+ throws java.lang.IndexOutOfBoundsException {
+ this._annotationList.add(index, vAnnotation);
+ }
+
+ /**
+ *
+ *
+ * @param vSequence
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addSequence(
+ final jalview.binding.Sequence vSequence)
+ throws java.lang.IndexOutOfBoundsException {
+ this._sequenceList.addElement(vSequence);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vSequence
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addSequence(
+ final int index,
+ final jalview.binding.Sequence vSequence)
+ throws java.lang.IndexOutOfBoundsException {
+ this._sequenceList.add(index, vSequence);
+ }
+
+ /**
+ */
+ public void deleteAligned(
+ ) {
+ this._has_aligned= false;
+ }
+
+ /**
+ * Method enumerateAnnotation.
+ *
+ * @return an Enumeration over all jalview.binding.Annotation
+ * elements
+ */
+ public java.util.Enumeration enumerateAnnotation(
+ ) {
+ return this._annotationList.elements();
+ }
+
+ /**
+ * Method enumerateSequence.
+ *
+ * @return an Enumeration over all jalview.binding.Sequence
+ * elements
+ */
+ public java.util.Enumeration enumerateSequence(
+ ) {
+ return this._sequenceList.elements();
+ }
+
+ /**
+ * Returns the value of field 'aligned'.
+ *
+ * @return the value of field 'Aligned'.
+ */
+ public boolean getAligned(
+ ) {
+ return this._aligned;
+ }
+
+ /**
+ * Method getAnnotation.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the jalview.binding.Annotation at the
+ * given index
+ */
+ public jalview.binding.Annotation getAnnotation(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._annotationList.size()) {
+ throw new IndexOutOfBoundsException("getAnnotation: Index value '" + index + "' not in range [0.." + (this._annotationList.size() - 1) + "]");
+ }
+
+ return (jalview.binding.Annotation) _annotationList.get(index);
+ }
+
+ /**
+ * Method getAnnotation.Returns the contents of the collection
+ * in an Array. <p>Note: Just in case the collection contents
+ * are changing in another thread, we pass a 0-length Array of
+ * the correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.binding.Annotation[] getAnnotation(
+ ) {
+ jalview.binding.Annotation[] array = new jalview.binding.Annotation[0];
+ return (jalview.binding.Annotation[]) this._annotationList.toArray(array);
+ }
+
+ /**
+ * Method getAnnotationCount.
+ *
+ * @return the size of this collection
+ */
+ public int getAnnotationCount(
+ ) {
+ return this._annotationList.size();
+ }
+
+ /**
+ * Returns the value of field 'gapChar'.
+ *
+ * @return the value of field 'GapChar'.
+ */
+ public java.lang.String getGapChar(
+ ) {
+ return this._gapChar;
+ }
+
+ /**
+ * Method getSequence.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the jalview.binding.Sequence at the
+ * given index
+ */
+ public jalview.binding.Sequence getSequence(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._sequenceList.size()) {
+ throw new IndexOutOfBoundsException("getSequence: Index value '" + index + "' not in range [0.." + (this._sequenceList.size() - 1) + "]");
+ }
+
+ return (jalview.binding.Sequence) _sequenceList.get(index);
+ }
+
+ /**
+ * Method getSequence.Returns the contents of the collection in
+ * an Array. <p>Note: Just in case the collection contents
+ * are changing in another thread, we pass a 0-length Array of
+ * the correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.binding.Sequence[] getSequence(
+ ) {
+ jalview.binding.Sequence[] array = new jalview.binding.Sequence[0];
+ return (jalview.binding.Sequence[]) this._sequenceList.toArray(array);
+ }
+
+ /**
+ * Method getSequenceCount.
+ *
+ * @return the size of this collection
+ */
+ public int getSequenceCount(
+ ) {
+ return this._sequenceList.size();
+ }
+
+ /**
+ * Method hasAligned.
+ *
+ * @return true if at least one Aligned has been added
+ */
+ public boolean hasAligned(
+ ) {
+ return this._has_aligned;
+ }
+
+ /**
+ * Returns the value of field 'aligned'.
+ *
+ * @return the value of field 'Aligned'.
+ */
+ public boolean isAligned(
+ ) {
+ return this._aligned;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ */
+ public void removeAllAnnotation(
+ ) {
+ this._annotationList.clear();
+ }
+
+ /**
+ */
+ public void removeAllSequence(
+ ) {
+ this._sequenceList.clear();
+ }
+
+ /**
+ * Method removeAnnotation.
+ *
+ * @param vAnnotation
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeAnnotation(
+ final jalview.binding.Annotation vAnnotation) {
+ boolean removed = _annotationList.remove(vAnnotation);
+ return removed;
+ }
+
+ /**
+ * Method removeAnnotationAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.binding.Annotation removeAnnotationAt(
+ final int index) {
+ java.lang.Object obj = this._annotationList.remove(index);
+ return (jalview.binding.Annotation) obj;
+ }
+
+ /**
+ * Method removeSequence.
+ *
+ * @param vSequence
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeSequence(
+ final jalview.binding.Sequence vSequence) {
+ boolean removed = _sequenceList.remove(vSequence);
+ return removed;
+ }
+
+ /**
+ * Method removeSequenceAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.binding.Sequence removeSequenceAt(
+ final int index) {
+ java.lang.Object obj = this._sequenceList.remove(index);
+ return (jalview.binding.Sequence) obj;
+ }
+
+ /**
+ * Sets the value of field 'aligned'.
+ *
+ * @param aligned the value of field 'aligned'.
+ */
+ public void setAligned(
+ final boolean aligned) {
+ this._aligned = aligned;
+ this._has_aligned = true;
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vAnnotation
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setAnnotation(
+ final int index,
+ final jalview.binding.Annotation vAnnotation)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._annotationList.size()) {
+ throw new IndexOutOfBoundsException("setAnnotation: Index value '" + index + "' not in range [0.." + (this._annotationList.size() - 1) + "]");
+ }
+
+ this._annotationList.set(index, vAnnotation);
+ }
+
+ /**
+ *
+ *
+ * @param vAnnotationArray
+ */
+ public void setAnnotation(
+ final jalview.binding.Annotation[] vAnnotationArray) {
+ //-- copy array
+ _annotationList.clear();
+
+ for (int i = 0; i < vAnnotationArray.length; i++) {
+ this._annotationList.add(vAnnotationArray[i]);
+ }
+ }
+
+ /**
+ * Sets the value of field 'gapChar'.
+ *
+ * @param gapChar the value of field 'gapChar'.
+ */
+ public void setGapChar(
+ final java.lang.String gapChar) {
+ this._gapChar = gapChar;
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vSequence
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setSequence(
+ final int index,
+ final jalview.binding.Sequence vSequence)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._sequenceList.size()) {
+ throw new IndexOutOfBoundsException("setSequence: Index value '" + index + "' not in range [0.." + (this._sequenceList.size() - 1) + "]");
+ }
+
+ this._sequenceList.set(index, vSequence);
+ }
+
+ /**
+ *
+ *
+ * @param vSequenceArray
+ */
+ public void setSequence(
+ final jalview.binding.Sequence[] vSequenceArray) {
+ //-- copy array
+ _sequenceList.clear();
+
+ for (int i = 0; i < vSequenceArray.length; i++) {
+ this._sequenceList.add(vSequenceArray[i]);
+ }
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.SequenceSet
+ */
+ public static jalview.binding.SequenceSet unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.SequenceSet) Unmarshaller.unmarshal(jalview.binding.SequenceSet.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class SequenceType implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _id.
- */
- private java.lang.String _id;
-
- /**
- * Field _sequence.
- */
- private java.lang.String _sequence;
-
- /**
- * Field _name.
- */
- private java.lang.String _name;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public SequenceType()
- {
- super();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- * Returns the value of field 'id'.
- *
- * @return the value of field 'Id'.
- */
- public java.lang.String getId()
- {
- return this._id;
- }
-
- /**
- * Returns the value of field 'name'.
- *
- * @return the value of field 'Name'.
- */
- public java.lang.String getName()
- {
- return this._name;
- }
-
- /**
- * Returns the value of field 'sequence'.
- *
- * @return the value of field 'Sequence'.
- */
- public java.lang.String getSequence()
- {
- return this._sequence;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+public class SequenceType implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _id.
+ */
+ private java.lang.String _id;
+
+ /**
+ * Field _sequence.
+ */
+ private java.lang.String _sequence;
+
+ /**
+ * Field _name.
+ */
+ private java.lang.String _name;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public SequenceType() {
+ super();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ * Returns the value of field 'id'.
+ *
+ * @return the value of field 'Id'.
+ */
+ public java.lang.String getId(
+ ) {
+ return this._id;
+ }
+
+ /**
+ * Returns the value of field 'name'.
+ *
+ * @return the value of field 'Name'.
+ */
+ public java.lang.String getName(
+ ) {
+ return this._name;
+ }
+
+ /**
+ * Returns the value of field 'sequence'.
+ *
+ * @return the value of field 'Sequence'.
+ */
+ public java.lang.String getSequence(
+ ) {
+ return this._sequence;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Sets the value of field 'id'.
+ *
+ * @param id the value of field 'id'.
+ */
+ public void setId(
+ final java.lang.String id) {
+ this._id = id;
+ }
+
+ /**
+ * Sets the value of field 'name'.
+ *
+ * @param name the value of field 'name'.
+ */
+ public void setName(
+ final java.lang.String name) {
+ this._name = name;
+ }
+
+ /**
+ * Sets the value of field 'sequence'.
+ *
+ * @param sequence the value of field 'sequence'.
+ */
+ public void setSequence(
+ final java.lang.String sequence) {
+ this._sequence = sequence;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.SequenceType
+ */
+ public static jalview.binding.SequenceType unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.SequenceType) Unmarshaller.unmarshal(jalview.binding.SequenceType.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
}
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- * Sets the value of field 'id'.
- *
- * @param id
- * the value of field 'id'.
- */
- public void setId(final java.lang.String id)
- {
- this._id = id;
- }
-
- /**
- * Sets the value of field 'name'.
- *
- * @param name
- * the value of field 'name'.
- */
- public void setName(final java.lang.String name)
- {
- this._name = name;
- }
-
- /**
- * Sets the value of field 'sequence'.
- *
- * @param sequence
- * the value of field 'sequence'.
- */
- public void setSequence(final java.lang.String sequence)
- {
- this._sequence = sequence;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.SequenceType
- */
- public static jalview.binding.SequenceType unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.SequenceType) Unmarshaller.unmarshal(
- jalview.binding.SequenceType.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class Setting implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _type.
- */
- private java.lang.String _type;
-
- /**
- * Field _colour.
- */
- private int _colour;
-
- /**
- * keeps track of state for field: _colour
- */
- private boolean _has_colour;
-
- /**
- * Field _display.
- */
- private boolean _display;
-
- /**
- * keeps track of state for field: _display
- */
- private boolean _has_display;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public Setting()
- {
- super();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
+public class Setting implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _type.
+ */
+ private java.lang.String _type;
+
+ /**
+ * Field _colour.
+ */
+ private int _colour;
+
+ /**
+ * keeps track of state for field: _colour
+ */
+ private boolean _has_colour;
+
+ /**
+ * Field _display.
+ */
+ private boolean _display;
+
+ /**
+ * keeps track of state for field: _display
+ */
+ private boolean _has_display;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public Setting() {
+ super();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
*/
- public void deleteColour()
- {
- this._has_colour = false;
- }
+ public void deleteColour(
+ ) {
+ this._has_colour= false;
+ }
+
+ /**
+ */
+ public void deleteDisplay(
+ ) {
+ this._has_display= false;
+ }
+
+ /**
+ * Returns the value of field 'colour'.
+ *
+ * @return the value of field 'Colour'.
+ */
+ public int getColour(
+ ) {
+ return this._colour;
+ }
+
+ /**
+ * Returns the value of field 'display'.
+ *
+ * @return the value of field 'Display'.
+ */
+ public boolean getDisplay(
+ ) {
+ return this._display;
+ }
+
+ /**
+ * Returns the value of field 'type'.
+ *
+ * @return the value of field 'Type'.
+ */
+ public java.lang.String getType(
+ ) {
+ return this._type;
+ }
+
+ /**
+ * Method hasColour.
+ *
+ * @return true if at least one Colour has been added
+ */
+ public boolean hasColour(
+ ) {
+ return this._has_colour;
+ }
+
+ /**
+ * Method hasDisplay.
+ *
+ * @return true if at least one Display has been added
+ */
+ public boolean hasDisplay(
+ ) {
+ return this._has_display;
+ }
+
+ /**
+ * Returns the value of field 'display'.
+ *
+ * @return the value of field 'Display'.
+ */
+ public boolean isDisplay(
+ ) {
+ return this._display;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Sets the value of field 'colour'.
+ *
+ * @param colour the value of field 'colour'.
+ */
+ public void setColour(
+ final int colour) {
+ this._colour = colour;
+ this._has_colour = true;
+ }
+
+ /**
+ * Sets the value of field 'display'.
+ *
+ * @param display the value of field 'display'.
+ */
+ public void setDisplay(
+ final boolean display) {
+ this._display = display;
+ this._has_display = true;
+ }
+
+ /**
+ * Sets the value of field 'type'.
+ *
+ * @param type the value of field 'type'.
+ */
+ public void setType(
+ final java.lang.String type) {
+ this._type = type;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.Setting
+ */
+ public static jalview.binding.Setting unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.Setting) Unmarshaller.unmarshal(jalview.binding.Setting.class, reader);
+ }
- /**
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
*/
- public void deleteDisplay()
- {
- this._has_display = false;
- }
-
- /**
- * Returns the value of field 'colour'.
- *
- * @return the value of field 'Colour'.
- */
- public int getColour()
- {
- return this._colour;
- }
-
- /**
- * Returns the value of field 'display'.
- *
- * @return the value of field 'Display'.
- */
- public boolean getDisplay()
- {
- return this._display;
- }
-
- /**
- * Returns the value of field 'type'.
- *
- * @return the value of field 'Type'.
- */
- public java.lang.String getType()
- {
- return this._type;
- }
-
- /**
- * Method hasColour.
- *
- * @return true if at least one Colour has been added
- */
- public boolean hasColour()
- {
- return this._has_colour;
- }
-
- /**
- * Method hasDisplay.
- *
- * @return true if at least one Display has been added
- */
- public boolean hasDisplay()
- {
- return this._has_display;
- }
-
- /**
- * Returns the value of field 'display'.
- *
- * @return the value of field 'Display'.
- */
- public boolean isDisplay()
- {
- return this._display;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
}
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- * Sets the value of field 'colour'.
- *
- * @param colour
- * the value of field 'colour'.
- */
- public void setColour(final int colour)
- {
- this._colour = colour;
- this._has_colour = true;
- }
-
- /**
- * Sets the value of field 'display'.
- *
- * @param display
- * the value of field 'display'.
- */
- public void setDisplay(final boolean display)
- {
- this._display = display;
- this._has_display = true;
- }
-
- /**
- * Sets the value of field 'type'.
- *
- * @param type
- * the value of field 'type'.
- */
- public void setType(final java.lang.String type)
- {
- this._type = type;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.Setting
- */
- public static jalview.binding.Setting unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.Setting) Unmarshaller.unmarshal(
- jalview.binding.Setting.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class Tree implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _width.
- */
- private int _width;
-
- /**
- * keeps track of state for field: _width
- */
- private boolean _has_width;
-
- /**
- * Field _height.
- */
- private int _height;
-
- /**
- * keeps track of state for field: _height
- */
- private boolean _has_height;
-
- /**
- * Field _xpos.
- */
- private int _xpos;
-
- /**
- * keeps track of state for field: _xpos
- */
- private boolean _has_xpos;
-
- /**
- * Field _ypos.
- */
- private int _ypos;
-
- /**
- * keeps track of state for field: _ypos
- */
- private boolean _has_ypos;
-
- /**
- * Field _fontName.
- */
- private java.lang.String _fontName;
-
- /**
- * Field _fontSize.
- */
- private int _fontSize;
-
- /**
- * keeps track of state for field: _fontSize
- */
- private boolean _has_fontSize;
-
- /**
- * Field _fontStyle.
- */
- private int _fontStyle;
-
- /**
- * keeps track of state for field: _fontStyle
- */
- private boolean _has_fontStyle;
-
- /**
- * Field _threshold.
- */
- private float _threshold;
-
- /**
- * keeps track of state for field: _threshold
- */
- private boolean _has_threshold;
-
- /**
- * Field _showBootstrap.
- */
- private boolean _showBootstrap;
-
- /**
- * keeps track of state for field: _showBootstrap
- */
- private boolean _has_showBootstrap;
-
- /**
- * Field _showDistances.
- */
- private boolean _showDistances;
-
- /**
- * keeps track of state for field: _showDistances
- */
- private boolean _has_showDistances;
-
- /**
- * Field _markUnlinked.
- */
- private boolean _markUnlinked;
-
- /**
- * keeps track of state for field: _markUnlinked
- */
- private boolean _has_markUnlinked;
-
- /**
- * Field _fitToWindow.
- */
- private boolean _fitToWindow;
-
- /**
- * keeps track of state for field: _fitToWindow
- */
- private boolean _has_fitToWindow;
-
- /**
- * Field _currentTree.
- */
- private boolean _currentTree;
-
- /**
- * keeps track of state for field: _currentTree
- */
- private boolean _has_currentTree;
-
- /**
- * Field _title.
- */
- private java.lang.String _title;
-
- /**
- * Field _newick.
- */
- private java.lang.String _newick;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public Tree()
- {
- super();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- */
- public void deleteCurrentTree()
- {
- this._has_currentTree = false;
- }
-
- /**
- */
- public void deleteFitToWindow()
- {
- this._has_fitToWindow = false;
- }
-
- /**
- */
- public void deleteFontSize()
- {
- this._has_fontSize = false;
- }
-
- /**
- */
- public void deleteFontStyle()
- {
- this._has_fontStyle = false;
- }
-
- /**
- */
- public void deleteHeight()
- {
- this._has_height = false;
- }
-
- /**
- */
- public void deleteMarkUnlinked()
- {
- this._has_markUnlinked = false;
- }
-
- /**
- */
- public void deleteShowBootstrap()
- {
- this._has_showBootstrap = false;
- }
-
- /**
- */
- public void deleteShowDistances()
- {
- this._has_showDistances = false;
- }
-
- /**
- */
- public void deleteThreshold()
- {
- this._has_threshold = false;
- }
-
- /**
- */
- public void deleteWidth()
- {
- this._has_width = false;
- }
-
- /**
- */
- public void deleteXpos()
- {
- this._has_xpos = false;
- }
-
- /**
- */
- public void deleteYpos()
- {
- this._has_ypos = false;
- }
-
- /**
- * Returns the value of field 'currentTree'.
- *
- * @return the value of field 'CurrentTree'.
- */
- public boolean getCurrentTree()
- {
- return this._currentTree;
- }
-
- /**
- * Returns the value of field 'fitToWindow'.
- *
- * @return the value of field 'FitToWindow'.
- */
- public boolean getFitToWindow()
- {
- return this._fitToWindow;
- }
-
- /**
- * Returns the value of field 'fontName'.
- *
- * @return the value of field 'FontName'.
- */
- public java.lang.String getFontName()
- {
- return this._fontName;
- }
-
- /**
- * Returns the value of field 'fontSize'.
- *
- * @return the value of field 'FontSize'.
- */
- public int getFontSize()
- {
- return this._fontSize;
- }
-
- /**
- * Returns the value of field 'fontStyle'.
- *
- * @return the value of field 'FontStyle'.
- */
- public int getFontStyle()
- {
- return this._fontStyle;
- }
-
- /**
- * Returns the value of field 'height'.
- *
- * @return the value of field 'Height'.
- */
- public int getHeight()
- {
- return this._height;
- }
-
- /**
- * Returns the value of field 'markUnlinked'.
- *
- * @return the value of field 'MarkUnlinked'.
- */
- public boolean getMarkUnlinked()
- {
- return this._markUnlinked;
- }
-
- /**
- * Returns the value of field 'newick'.
- *
- * @return the value of field 'Newick'.
- */
- public java.lang.String getNewick()
- {
- return this._newick;
- }
-
- /**
- * Returns the value of field 'showBootstrap'.
- *
- * @return the value of field 'ShowBootstrap'.
- */
- public boolean getShowBootstrap()
- {
- return this._showBootstrap;
- }
-
- /**
- * Returns the value of field 'showDistances'.
- *
- * @return the value of field 'ShowDistances'.
- */
- public boolean getShowDistances()
- {
- return this._showDistances;
- }
-
- /**
- * Returns the value of field 'threshold'.
- *
- * @return the value of field 'Threshold'.
- */
- public float getThreshold()
- {
- return this._threshold;
- }
-
- /**
- * Returns the value of field 'title'.
- *
- * @return the value of field 'Title'.
- */
- public java.lang.String getTitle()
- {
- return this._title;
- }
-
- /**
- * Returns the value of field 'width'.
- *
- * @return the value of field 'Width'.
- */
- public int getWidth()
- {
- return this._width;
- }
-
- /**
- * Returns the value of field 'xpos'.
- *
- * @return the value of field 'Xpos'.
- */
- public int getXpos()
- {
- return this._xpos;
- }
-
- /**
- * Returns the value of field 'ypos'.
- *
- * @return the value of field 'Ypos'.
- */
- public int getYpos()
- {
- return this._ypos;
- }
-
- /**
- * Method hasCurrentTree.
- *
- * @return true if at least one CurrentTree has been added
- */
- public boolean hasCurrentTree()
- {
- return this._has_currentTree;
- }
-
- /**
- * Method hasFitToWindow.
- *
- * @return true if at least one FitToWindow has been added
- */
- public boolean hasFitToWindow()
- {
- return this._has_fitToWindow;
- }
-
- /**
- * Method hasFontSize.
- *
- * @return true if at least one FontSize has been added
- */
- public boolean hasFontSize()
- {
- return this._has_fontSize;
- }
-
- /**
- * Method hasFontStyle.
- *
- * @return true if at least one FontStyle has been added
- */
- public boolean hasFontStyle()
- {
- return this._has_fontStyle;
- }
-
- /**
- * Method hasHeight.
- *
- * @return true if at least one Height has been added
- */
- public boolean hasHeight()
- {
- return this._has_height;
- }
-
- /**
- * Method hasMarkUnlinked.
- *
- * @return true if at least one MarkUnlinked has been added
- */
- public boolean hasMarkUnlinked()
- {
- return this._has_markUnlinked;
- }
-
- /**
- * Method hasShowBootstrap.
- *
- * @return true if at least one ShowBootstrap has been added
- */
- public boolean hasShowBootstrap()
- {
- return this._has_showBootstrap;
- }
-
- /**
- * Method hasShowDistances.
- *
- * @return true if at least one ShowDistances has been added
- */
- public boolean hasShowDistances()
- {
- return this._has_showDistances;
- }
-
- /**
- * Method hasThreshold.
- *
- * @return true if at least one Threshold has been added
- */
- public boolean hasThreshold()
- {
- return this._has_threshold;
- }
-
- /**
- * Method hasWidth.
- *
- * @return true if at least one Width has been added
- */
- public boolean hasWidth()
- {
- return this._has_width;
- }
-
- /**
- * Method hasXpos.
- *
- * @return true if at least one Xpos has been added
- */
- public boolean hasXpos()
- {
- return this._has_xpos;
- }
-
- /**
- * Method hasYpos.
- *
- * @return true if at least one Ypos has been added
- */
- public boolean hasYpos()
- {
- return this._has_ypos;
- }
-
- /**
- * Returns the value of field 'currentTree'.
- *
- * @return the value of field 'CurrentTree'.
- */
- public boolean isCurrentTree()
- {
- return this._currentTree;
- }
-
- /**
- * Returns the value of field 'fitToWindow'.
- *
- * @return the value of field 'FitToWindow'.
- */
- public boolean isFitToWindow()
- {
- return this._fitToWindow;
- }
-
- /**
- * Returns the value of field 'markUnlinked'.
- *
- * @return the value of field 'MarkUnlinked'.
- */
- public boolean isMarkUnlinked()
- {
- return this._markUnlinked;
- }
-
- /**
- * Returns the value of field 'showBootstrap'.
- *
- * @return the value of field 'ShowBootstrap'.
- */
- public boolean isShowBootstrap()
- {
- return this._showBootstrap;
- }
-
- /**
- * Returns the value of field 'showDistances'.
- *
- * @return the value of field 'ShowDistances'.
- */
- public boolean isShowDistances()
- {
- return this._showDistances;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
- }
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- * Sets the value of field 'currentTree'.
- *
- * @param currentTree
- * the value of field 'currentTree'.
- */
- public void setCurrentTree(final boolean currentTree)
- {
- this._currentTree = currentTree;
- this._has_currentTree = true;
- }
-
- /**
- * Sets the value of field 'fitToWindow'.
- *
- * @param fitToWindow
- * the value of field 'fitToWindow'.
- */
- public void setFitToWindow(final boolean fitToWindow)
- {
- this._fitToWindow = fitToWindow;
- this._has_fitToWindow = true;
- }
-
- /**
- * Sets the value of field 'fontName'.
- *
- * @param fontName
- * the value of field 'fontName'.
- */
- public void setFontName(final java.lang.String fontName)
- {
- this._fontName = fontName;
- }
-
- /**
- * Sets the value of field 'fontSize'.
- *
- * @param fontSize
- * the value of field 'fontSize'.
- */
- public void setFontSize(final int fontSize)
- {
- this._fontSize = fontSize;
- this._has_fontSize = true;
- }
-
- /**
- * Sets the value of field 'fontStyle'.
- *
- * @param fontStyle
- * the value of field 'fontStyle'.
- */
- public void setFontStyle(final int fontStyle)
- {
- this._fontStyle = fontStyle;
- this._has_fontStyle = true;
- }
-
- /**
- * Sets the value of field 'height'.
- *
- * @param height
- * the value of field 'height'.
- */
- public void setHeight(final int height)
- {
- this._height = height;
- this._has_height = true;
- }
-
- /**
- * Sets the value of field 'markUnlinked'.
- *
- * @param markUnlinked
- * the value of field 'markUnlinked'.
- */
- public void setMarkUnlinked(final boolean markUnlinked)
- {
- this._markUnlinked = markUnlinked;
- this._has_markUnlinked = true;
- }
-
- /**
- * Sets the value of field 'newick'.
- *
- * @param newick
- * the value of field 'newick'.
- */
- public void setNewick(final java.lang.String newick)
- {
- this._newick = newick;
- }
-
- /**
- * Sets the value of field 'showBootstrap'.
- *
- * @param showBootstrap
- * the value of field 'showBootstrap'.
- */
- public void setShowBootstrap(final boolean showBootstrap)
- {
- this._showBootstrap = showBootstrap;
- this._has_showBootstrap = true;
- }
-
- /**
- * Sets the value of field 'showDistances'.
- *
- * @param showDistances
- * the value of field 'showDistances'.
- */
- public void setShowDistances(final boolean showDistances)
- {
- this._showDistances = showDistances;
- this._has_showDistances = true;
- }
-
- /**
- * Sets the value of field 'threshold'.
- *
- * @param threshold
- * the value of field 'threshold'.
- */
- public void setThreshold(final float threshold)
- {
- this._threshold = threshold;
- this._has_threshold = true;
- }
-
- /**
- * Sets the value of field 'title'.
- *
- * @param title
- * the value of field 'title'.
- */
- public void setTitle(final java.lang.String title)
- {
- this._title = title;
- }
-
- /**
- * Sets the value of field 'width'.
- *
- * @param width
- * the value of field 'width'.
- */
- public void setWidth(final int width)
- {
- this._width = width;
- this._has_width = true;
- }
-
- /**
- * Sets the value of field 'xpos'.
- *
- * @param xpos
- * the value of field 'xpos'.
- */
- public void setXpos(final int xpos)
- {
- this._xpos = xpos;
- this._has_xpos = true;
- }
-
- /**
- * Sets the value of field 'ypos'.
- *
- * @param ypos
- * the value of field 'ypos'.
- */
- public void setYpos(final int ypos)
- {
- this._ypos = ypos;
- this._has_ypos = true;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.Tree
- */
- public static jalview.binding.Tree unmarshal(final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.Tree) Unmarshaller.unmarshal(
- jalview.binding.Tree.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+public class Tree implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _width.
+ */
+ private int _width;
+
+ /**
+ * keeps track of state for field: _width
+ */
+ private boolean _has_width;
+
+ /**
+ * Field _height.
+ */
+ private int _height;
+
+ /**
+ * keeps track of state for field: _height
+ */
+ private boolean _has_height;
+
+ /**
+ * Field _xpos.
+ */
+ private int _xpos;
+
+ /**
+ * keeps track of state for field: _xpos
+ */
+ private boolean _has_xpos;
+
+ /**
+ * Field _ypos.
+ */
+ private int _ypos;
+
+ /**
+ * keeps track of state for field: _ypos
+ */
+ private boolean _has_ypos;
+
+ /**
+ * Field _fontName.
+ */
+ private java.lang.String _fontName;
+
+ /**
+ * Field _fontSize.
+ */
+ private int _fontSize;
+
+ /**
+ * keeps track of state for field: _fontSize
+ */
+ private boolean _has_fontSize;
+
+ /**
+ * Field _fontStyle.
+ */
+ private int _fontStyle;
+
+ /**
+ * keeps track of state for field: _fontStyle
+ */
+ private boolean _has_fontStyle;
+
+ /**
+ * Field _threshold.
+ */
+ private float _threshold;
+
+ /**
+ * keeps track of state for field: _threshold
+ */
+ private boolean _has_threshold;
+
+ /**
+ * Field _showBootstrap.
+ */
+ private boolean _showBootstrap;
+
+ /**
+ * keeps track of state for field: _showBootstrap
+ */
+ private boolean _has_showBootstrap;
+
+ /**
+ * Field _showDistances.
+ */
+ private boolean _showDistances;
+
+ /**
+ * keeps track of state for field: _showDistances
+ */
+ private boolean _has_showDistances;
+
+ /**
+ * Field _markUnlinked.
+ */
+ private boolean _markUnlinked;
+
+ /**
+ * keeps track of state for field: _markUnlinked
+ */
+ private boolean _has_markUnlinked;
+
+ /**
+ * Field _fitToWindow.
+ */
+ private boolean _fitToWindow;
+
+ /**
+ * keeps track of state for field: _fitToWindow
+ */
+ private boolean _has_fitToWindow;
+
+ /**
+ * Field _currentTree.
+ */
+ private boolean _currentTree;
+
+ /**
+ * keeps track of state for field: _currentTree
+ */
+ private boolean _has_currentTree;
+
+ /**
+ * Field _title.
+ */
+ private java.lang.String _title;
+
+ /**
+ * Field _newick.
+ */
+ private java.lang.String _newick;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public Tree() {
+ super();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ */
+ public void deleteCurrentTree(
+ ) {
+ this._has_currentTree= false;
+ }
+
+ /**
+ */
+ public void deleteFitToWindow(
+ ) {
+ this._has_fitToWindow= false;
+ }
+
+ /**
+ */
+ public void deleteFontSize(
+ ) {
+ this._has_fontSize= false;
+ }
+
+ /**
+ */
+ public void deleteFontStyle(
+ ) {
+ this._has_fontStyle= false;
+ }
+
+ /**
+ */
+ public void deleteHeight(
+ ) {
+ this._has_height= false;
+ }
+
+ /**
+ */
+ public void deleteMarkUnlinked(
+ ) {
+ this._has_markUnlinked= false;
+ }
+
+ /**
+ */
+ public void deleteShowBootstrap(
+ ) {
+ this._has_showBootstrap= false;
+ }
+
+ /**
+ */
+ public void deleteShowDistances(
+ ) {
+ this._has_showDistances= false;
+ }
+
+ /**
+ */
+ public void deleteThreshold(
+ ) {
+ this._has_threshold= false;
+ }
+
+ /**
+ */
+ public void deleteWidth(
+ ) {
+ this._has_width= false;
+ }
+
+ /**
+ */
+ public void deleteXpos(
+ ) {
+ this._has_xpos= false;
+ }
+
+ /**
+ */
+ public void deleteYpos(
+ ) {
+ this._has_ypos= false;
+ }
+
+ /**
+ * Returns the value of field 'currentTree'.
+ *
+ * @return the value of field 'CurrentTree'.
+ */
+ public boolean getCurrentTree(
+ ) {
+ return this._currentTree;
+ }
+
+ /**
+ * Returns the value of field 'fitToWindow'.
+ *
+ * @return the value of field 'FitToWindow'.
+ */
+ public boolean getFitToWindow(
+ ) {
+ return this._fitToWindow;
+ }
+
+ /**
+ * Returns the value of field 'fontName'.
+ *
+ * @return the value of field 'FontName'.
+ */
+ public java.lang.String getFontName(
+ ) {
+ return this._fontName;
+ }
+
+ /**
+ * Returns the value of field 'fontSize'.
+ *
+ * @return the value of field 'FontSize'.
+ */
+ public int getFontSize(
+ ) {
+ return this._fontSize;
+ }
+
+ /**
+ * Returns the value of field 'fontStyle'.
+ *
+ * @return the value of field 'FontStyle'.
+ */
+ public int getFontStyle(
+ ) {
+ return this._fontStyle;
+ }
+
+ /**
+ * Returns the value of field 'height'.
+ *
+ * @return the value of field 'Height'.
+ */
+ public int getHeight(
+ ) {
+ return this._height;
+ }
+
+ /**
+ * Returns the value of field 'markUnlinked'.
+ *
+ * @return the value of field 'MarkUnlinked'.
+ */
+ public boolean getMarkUnlinked(
+ ) {
+ return this._markUnlinked;
+ }
+
+ /**
+ * Returns the value of field 'newick'.
+ *
+ * @return the value of field 'Newick'.
+ */
+ public java.lang.String getNewick(
+ ) {
+ return this._newick;
+ }
+
+ /**
+ * Returns the value of field 'showBootstrap'.
+ *
+ * @return the value of field 'ShowBootstrap'.
+ */
+ public boolean getShowBootstrap(
+ ) {
+ return this._showBootstrap;
+ }
+
+ /**
+ * Returns the value of field 'showDistances'.
+ *
+ * @return the value of field 'ShowDistances'.
+ */
+ public boolean getShowDistances(
+ ) {
+ return this._showDistances;
+ }
+
+ /**
+ * Returns the value of field 'threshold'.
+ *
+ * @return the value of field 'Threshold'.
+ */
+ public float getThreshold(
+ ) {
+ return this._threshold;
+ }
+
+ /**
+ * Returns the value of field 'title'.
+ *
+ * @return the value of field 'Title'.
+ */
+ public java.lang.String getTitle(
+ ) {
+ return this._title;
+ }
+
+ /**
+ * Returns the value of field 'width'.
+ *
+ * @return the value of field 'Width'.
+ */
+ public int getWidth(
+ ) {
+ return this._width;
+ }
+
+ /**
+ * Returns the value of field 'xpos'.
+ *
+ * @return the value of field 'Xpos'.
+ */
+ public int getXpos(
+ ) {
+ return this._xpos;
+ }
+
+ /**
+ * Returns the value of field 'ypos'.
+ *
+ * @return the value of field 'Ypos'.
+ */
+ public int getYpos(
+ ) {
+ return this._ypos;
+ }
+
+ /**
+ * Method hasCurrentTree.
+ *
+ * @return true if at least one CurrentTree has been added
+ */
+ public boolean hasCurrentTree(
+ ) {
+ return this._has_currentTree;
+ }
+
+ /**
+ * Method hasFitToWindow.
+ *
+ * @return true if at least one FitToWindow has been added
+ */
+ public boolean hasFitToWindow(
+ ) {
+ return this._has_fitToWindow;
+ }
+
+ /**
+ * Method hasFontSize.
+ *
+ * @return true if at least one FontSize has been added
+ */
+ public boolean hasFontSize(
+ ) {
+ return this._has_fontSize;
+ }
+
+ /**
+ * Method hasFontStyle.
+ *
+ * @return true if at least one FontStyle has been added
+ */
+ public boolean hasFontStyle(
+ ) {
+ return this._has_fontStyle;
+ }
+
+ /**
+ * Method hasHeight.
+ *
+ * @return true if at least one Height has been added
+ */
+ public boolean hasHeight(
+ ) {
+ return this._has_height;
+ }
+
+ /**
+ * Method hasMarkUnlinked.
+ *
+ * @return true if at least one MarkUnlinked has been added
+ */
+ public boolean hasMarkUnlinked(
+ ) {
+ return this._has_markUnlinked;
+ }
+
+ /**
+ * Method hasShowBootstrap.
+ *
+ * @return true if at least one ShowBootstrap has been added
+ */
+ public boolean hasShowBootstrap(
+ ) {
+ return this._has_showBootstrap;
+ }
+
+ /**
+ * Method hasShowDistances.
+ *
+ * @return true if at least one ShowDistances has been added
+ */
+ public boolean hasShowDistances(
+ ) {
+ return this._has_showDistances;
+ }
+
+ /**
+ * Method hasThreshold.
+ *
+ * @return true if at least one Threshold has been added
+ */
+ public boolean hasThreshold(
+ ) {
+ return this._has_threshold;
+ }
+
+ /**
+ * Method hasWidth.
+ *
+ * @return true if at least one Width has been added
+ */
+ public boolean hasWidth(
+ ) {
+ return this._has_width;
+ }
+
+ /**
+ * Method hasXpos.
+ *
+ * @return true if at least one Xpos has been added
+ */
+ public boolean hasXpos(
+ ) {
+ return this._has_xpos;
+ }
+
+ /**
+ * Method hasYpos.
+ *
+ * @return true if at least one Ypos has been added
+ */
+ public boolean hasYpos(
+ ) {
+ return this._has_ypos;
+ }
+
+ /**
+ * Returns the value of field 'currentTree'.
+ *
+ * @return the value of field 'CurrentTree'.
+ */
+ public boolean isCurrentTree(
+ ) {
+ return this._currentTree;
+ }
+
+ /**
+ * Returns the value of field 'fitToWindow'.
+ *
+ * @return the value of field 'FitToWindow'.
+ */
+ public boolean isFitToWindow(
+ ) {
+ return this._fitToWindow;
+ }
+
+ /**
+ * Returns the value of field 'markUnlinked'.
+ *
+ * @return the value of field 'MarkUnlinked'.
+ */
+ public boolean isMarkUnlinked(
+ ) {
+ return this._markUnlinked;
+ }
+
+ /**
+ * Returns the value of field 'showBootstrap'.
+ *
+ * @return the value of field 'ShowBootstrap'.
+ */
+ public boolean isShowBootstrap(
+ ) {
+ return this._showBootstrap;
+ }
+
+ /**
+ * Returns the value of field 'showDistances'.
+ *
+ * @return the value of field 'ShowDistances'.
+ */
+ public boolean isShowDistances(
+ ) {
+ return this._showDistances;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Sets the value of field 'currentTree'.
+ *
+ * @param currentTree the value of field 'currentTree'.
+ */
+ public void setCurrentTree(
+ final boolean currentTree) {
+ this._currentTree = currentTree;
+ this._has_currentTree = true;
+ }
+
+ /**
+ * Sets the value of field 'fitToWindow'.
+ *
+ * @param fitToWindow the value of field 'fitToWindow'.
+ */
+ public void setFitToWindow(
+ final boolean fitToWindow) {
+ this._fitToWindow = fitToWindow;
+ this._has_fitToWindow = true;
+ }
+
+ /**
+ * Sets the value of field 'fontName'.
+ *
+ * @param fontName the value of field 'fontName'.
+ */
+ public void setFontName(
+ final java.lang.String fontName) {
+ this._fontName = fontName;
+ }
+
+ /**
+ * Sets the value of field 'fontSize'.
+ *
+ * @param fontSize the value of field 'fontSize'.
+ */
+ public void setFontSize(
+ final int fontSize) {
+ this._fontSize = fontSize;
+ this._has_fontSize = true;
+ }
+
+ /**
+ * Sets the value of field 'fontStyle'.
+ *
+ * @param fontStyle the value of field 'fontStyle'.
+ */
+ public void setFontStyle(
+ final int fontStyle) {
+ this._fontStyle = fontStyle;
+ this._has_fontStyle = true;
+ }
+
+ /**
+ * Sets the value of field 'height'.
+ *
+ * @param height the value of field 'height'.
+ */
+ public void setHeight(
+ final int height) {
+ this._height = height;
+ this._has_height = true;
+ }
+
+ /**
+ * Sets the value of field 'markUnlinked'.
+ *
+ * @param markUnlinked the value of field 'markUnlinked'.
+ */
+ public void setMarkUnlinked(
+ final boolean markUnlinked) {
+ this._markUnlinked = markUnlinked;
+ this._has_markUnlinked = true;
+ }
+
+ /**
+ * Sets the value of field 'newick'.
+ *
+ * @param newick the value of field 'newick'.
+ */
+ public void setNewick(
+ final java.lang.String newick) {
+ this._newick = newick;
+ }
+
+ /**
+ * Sets the value of field 'showBootstrap'.
+ *
+ * @param showBootstrap the value of field 'showBootstrap'.
+ */
+ public void setShowBootstrap(
+ final boolean showBootstrap) {
+ this._showBootstrap = showBootstrap;
+ this._has_showBootstrap = true;
+ }
+
+ /**
+ * Sets the value of field 'showDistances'.
+ *
+ * @param showDistances the value of field 'showDistances'.
+ */
+ public void setShowDistances(
+ final boolean showDistances) {
+ this._showDistances = showDistances;
+ this._has_showDistances = true;
+ }
+
+ /**
+ * Sets the value of field 'threshold'.
+ *
+ * @param threshold the value of field 'threshold'.
+ */
+ public void setThreshold(
+ final float threshold) {
+ this._threshold = threshold;
+ this._has_threshold = true;
+ }
+
+ /**
+ * Sets the value of field 'title'.
+ *
+ * @param title the value of field 'title'.
+ */
+ public void setTitle(
+ final java.lang.String title) {
+ this._title = title;
+ }
+
+ /**
+ * Sets the value of field 'width'.
+ *
+ * @param width the value of field 'width'.
+ */
+ public void setWidth(
+ final int width) {
+ this._width = width;
+ this._has_width = true;
+ }
+
+ /**
+ * Sets the value of field 'xpos'.
+ *
+ * @param xpos the value of field 'xpos'.
+ */
+ public void setXpos(
+ final int xpos) {
+ this._xpos = xpos;
+ this._has_xpos = true;
+ }
+
+ /**
+ * Sets the value of field 'ypos'.
+ *
+ * @param ypos the value of field 'ypos'.
+ */
+ public void setYpos(
+ final int ypos) {
+ this._ypos = ypos;
+ this._has_ypos = true;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.Tree
+ */
+ public static jalview.binding.Tree unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.Tree) Unmarshaller.unmarshal(jalview.binding.Tree.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class UserColourScheme extends JalviewUserColours implements
- java.io.Serializable
+public class UserColourScheme extends JalviewUserColours
+implements java.io.Serializable
{
- // ----------------/
- // - Constructors -/
- // ----------------/
- public UserColourScheme()
- {
- super();
- }
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public UserColourScheme() {
+ super();
+ }
+
- // -----------/
- // - Methods -/
- // -----------/
+ //-----------/
+ //- Methods -/
+ //-----------/
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
}
- return true;
- }
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.JalviewUserColours
- */
- public static jalview.binding.JalviewUserColours unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(
- jalview.binding.UserColourScheme.class, reader);
- }
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.JalviewUserColours
+ */
+ public static jalview.binding.JalviewUserColours unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.JalviewUserColours) Unmarshaller.unmarshal(jalview.binding.UserColourScheme.class, reader);
+ }
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class UserColours implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _id.
- */
- private java.lang.String _id;
-
- /**
- * Field _userColourScheme.
- */
- private jalview.binding.UserColourScheme _userColourScheme;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public UserColours()
- {
- super();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- * Returns the value of field 'id'.
- *
- * @return the value of field 'Id'.
- */
- public java.lang.String getId()
- {
- return this._id;
- }
-
- /**
- * Returns the value of field 'userColourScheme'.
- *
- * @return the value of field 'UserColourScheme'.
- */
- public jalview.binding.UserColourScheme getUserColourScheme()
- {
- return this._userColourScheme;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+public class UserColours implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _id.
+ */
+ private java.lang.String _id;
+
+ /**
+ * Field _userColourScheme.
+ */
+ private jalview.binding.UserColourScheme _userColourScheme;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public UserColours() {
+ super();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ * Returns the value of field 'id'.
+ *
+ * @return the value of field 'Id'.
+ */
+ public java.lang.String getId(
+ ) {
+ return this._id;
+ }
+
+ /**
+ * Returns the value of field 'userColourScheme'.
+ *
+ * @return the value of field 'UserColourScheme'.
+ */
+ public jalview.binding.UserColourScheme getUserColourScheme(
+ ) {
+ return this._userColourScheme;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Sets the value of field 'id'.
+ *
+ * @param id the value of field 'id'.
+ */
+ public void setId(
+ final java.lang.String id) {
+ this._id = id;
+ }
+
+ /**
+ * Sets the value of field 'userColourScheme'.
+ *
+ * @param userColourScheme the value of field 'userColourScheme'
+ */
+ public void setUserColourScheme(
+ final jalview.binding.UserColourScheme userColourScheme) {
+ this._userColourScheme = userColourScheme;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.UserColours
+ */
+ public static jalview.binding.UserColours unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.UserColours) Unmarshaller.unmarshal(jalview.binding.UserColours.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
}
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- * Sets the value of field 'id'.
- *
- * @param id
- * the value of field 'id'.
- */
- public void setId(final java.lang.String id)
- {
- this._id = id;
- }
-
- /**
- * Sets the value of field 'userColourScheme'.
- *
- * @param userColourScheme
- * the value of field 'userColourScheme'
- */
- public void setUserColourScheme(
- final jalview.binding.UserColourScheme userColourScheme)
- {
- this._userColourScheme = userColourScheme;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.UserColours
- */
- public static jalview.binding.UserColours unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.UserColours) Unmarshaller.unmarshal(
- jalview.binding.UserColours.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
-import jalview.util.MessageManager;
-
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
*
* @version $Revision$ $Date$
*/
-public class VAMSAS implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _alignmentList.
- */
- private java.util.Vector _alignmentList;
-
- /**
- * Field _treeList.
- */
- private java.util.Vector _treeList;
-
- /**
- * Field _sequenceSetList.
- */
- private java.util.Vector _sequenceSetList;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public VAMSAS()
- {
- super();
- this._alignmentList = new java.util.Vector();
- this._treeList = new java.util.Vector();
- this._sequenceSetList = new java.util.Vector();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
-
- /**
- *
- *
- * @param vAlignment
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addAlignment(final Alignment vAlignment)
- throws java.lang.IndexOutOfBoundsException
- {
- this._alignmentList.addElement(vAlignment);
- }
-
- /**
- *
- *
- * @param index
- * @param vAlignment
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addAlignment(final int index, final Alignment vAlignment)
- throws java.lang.IndexOutOfBoundsException
- {
- this._alignmentList.add(index, vAlignment);
- }
-
- /**
- *
- *
- * @param vSequenceSet
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addSequenceSet(final SequenceSet vSequenceSet)
- throws java.lang.IndexOutOfBoundsException
- {
- this._sequenceSetList.addElement(vSequenceSet);
- }
-
- /**
- *
- *
- * @param index
- * @param vSequenceSet
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addSequenceSet(final int index, final SequenceSet vSequenceSet)
- throws java.lang.IndexOutOfBoundsException
- {
- this._sequenceSetList.add(index, vSequenceSet);
- }
-
- /**
- *
- *
- * @param vTree
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addTree(final java.lang.String vTree)
- throws java.lang.IndexOutOfBoundsException
- {
- this._treeList.addElement(vTree);
- }
-
- /**
- *
- *
- * @param index
- * @param vTree
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void addTree(final int index, final java.lang.String vTree)
- throws java.lang.IndexOutOfBoundsException
- {
- this._treeList.add(index, vTree);
- }
-
- /**
- * Method enumerateAlignment.
- *
- * @return an Enumeration over all Alignment elements
- */
- public java.util.Enumeration enumerateAlignment()
- {
- return this._alignmentList.elements();
- }
-
- /**
- * Method enumerateSequenceSet.
- *
- * @return an Enumeration over all SequenceSet elements
- */
- public java.util.Enumeration enumerateSequenceSet()
- {
- return this._sequenceSetList.elements();
- }
-
- /**
- * Method enumerateTree.
- *
- * @return an Enumeration over all java.lang.String elements
- */
- public java.util.Enumeration enumerateTree()
- {
- return this._treeList.elements();
- }
-
- /**
- * Method getAlignment.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the Alignment at the given index
- */
- public Alignment getAlignment(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._alignmentList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getAlignment",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._alignmentList.size() - 1)).toString()
- }));
- }
-
- return (Alignment) _alignmentList.get(index);
- }
-
- /**
- * Method getAlignment.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public Alignment[] getAlignment()
- {
- Alignment[] array = new Alignment[0];
- return (Alignment[]) this._alignmentList.toArray(array);
- }
-
- /**
- * Method getAlignmentCount.
- *
- * @return the size of this collection
- */
- public int getAlignmentCount()
- {
- return this._alignmentList.size();
- }
-
- /**
- * Method getSequenceSet.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the SequenceSet at the given index
- */
- public SequenceSet getSequenceSet(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._sequenceSetList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getSequenceSet",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._sequenceSetList.size() - 1)).toString()
- }));
- }
-
- return (SequenceSet) _sequenceSetList.get(index);
- }
-
- /**
- * Method getSequenceSet.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public SequenceSet[] getSequenceSet()
- {
- SequenceSet[] array = new SequenceSet[0];
- return (SequenceSet[]) this._sequenceSetList.toArray(array);
- }
-
- /**
- * Method getSequenceSetCount.
- *
- * @return the size of this collection
- */
- public int getSequenceSetCount()
- {
- return this._sequenceSetList.size();
- }
-
- /**
- * Method getTree.
- *
- * @param index
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- * @return the value of the java.lang.String at the given index
- */
- public java.lang.String getTree(final int index)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._treeList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "getTree",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._treeList.size() - 1)).toString()
- }));
- }
-
- return (java.lang.String) _treeList.get(index);
- }
-
- /**
- * Method getTree.Returns the contents of the collection in an Array.
- * <p>
- * Note: Just in case the collection contents are changing in another thread,
- * we pass a 0-length Array of the correct type into the API call. This way we
- * <i>know</i> that the Array returned is of exactly the correct length.
- *
- * @return this collection as an Array
- */
- public java.lang.String[] getTree()
- {
- java.lang.String[] array = new java.lang.String[0];
- return (java.lang.String[]) this._treeList.toArray(array);
- }
-
- /**
- * Method getTreeCount.
- *
- * @return the size of this collection
- */
- public int getTreeCount()
- {
- return this._treeList.size();
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
- }
- return true;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- * Method removeAlignment.
- *
- * @param vAlignment
- * @return true if the object was removed from the collection.
- */
- public boolean removeAlignment(final Alignment vAlignment)
- {
- boolean removed = _alignmentList.remove(vAlignment);
- return removed;
- }
-
- /**
- * Method removeAlignmentAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public Alignment removeAlignmentAt(final int index)
- {
- java.lang.Object obj = this._alignmentList.remove(index);
- return (Alignment) obj;
- }
-
- /**
- */
- public void removeAllAlignment()
- {
- this._alignmentList.clear();
- }
-
- /**
- */
- public void removeAllSequenceSet()
- {
- this._sequenceSetList.clear();
- }
-
- /**
- */
- public void removeAllTree()
- {
- this._treeList.clear();
- }
-
- /**
- * Method removeSequenceSet.
- *
- * @param vSequenceSet
- * @return true if the object was removed from the collection.
- */
- public boolean removeSequenceSet(final SequenceSet vSequenceSet)
- {
- boolean removed = _sequenceSetList.remove(vSequenceSet);
- return removed;
- }
-
- /**
- * Method removeSequenceSetAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public SequenceSet removeSequenceSetAt(final int index)
- {
- java.lang.Object obj = this._sequenceSetList.remove(index);
- return (SequenceSet) obj;
- }
-
- /**
- * Method removeTree.
- *
- * @param vTree
- * @return true if the object was removed from the collection.
- */
- public boolean removeTree(final java.lang.String vTree)
- {
- boolean removed = _treeList.remove(vTree);
- return removed;
- }
-
- /**
- * Method removeTreeAt.
- *
- * @param index
- * @return the element removed from the collection
- */
- public java.lang.String removeTreeAt(final int index)
- {
- java.lang.Object obj = this._treeList.remove(index);
- return (java.lang.String) obj;
- }
-
- /**
- *
- *
- * @param index
- * @param vAlignment
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setAlignment(final int index, final Alignment vAlignment)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._alignmentList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setAlignment",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._alignmentList.size() - 1)).toString()
- }));
- }
-
- this._alignmentList.set(index, vAlignment);
- }
-
- /**
- *
- *
- * @param vAlignmentArray
- */
- public void setAlignment(final Alignment[] vAlignmentArray)
- {
- // -- copy array
- _alignmentList.clear();
-
- for (int i = 0; i < vAlignmentArray.length; i++)
- {
- this._alignmentList.add(vAlignmentArray[i]);
- }
- }
-
- /**
- *
- *
- * @param index
- * @param vSequenceSet
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setSequenceSet(final int index, final SequenceSet vSequenceSet)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._sequenceSetList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setSequenceSet",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._sequenceSetList.size() - 1)).toString()
- }));
- }
-
- this._sequenceSetList.set(index, vSequenceSet);
- }
-
- /**
- *
- *
- * @param vSequenceSetArray
- */
- public void setSequenceSet(final SequenceSet[] vSequenceSetArray)
- {
- // -- copy array
- _sequenceSetList.clear();
-
- for (int i = 0; i < vSequenceSetArray.length; i++)
- {
- this._sequenceSetList.add(vSequenceSetArray[i]);
- }
- }
-
- /**
- *
- *
- * @param index
- * @param vTree
- * @throws java.lang.IndexOutOfBoundsException
- * if the index given is outside the bounds of the collection
- */
- public void setTree(final int index, final java.lang.String vTree)
- throws java.lang.IndexOutOfBoundsException
- {
- // check bounds for index
- if (index < 0 || index >= this._treeList.size())
- {
- throw new IndexOutOfBoundsException(MessageManager.formatMessage("exception.index_value_not_in_range", new String[]{
- "setTree",
- Integer.valueOf(index).toString(),
- Integer.valueOf((this._treeList.size() - 1)).toString()
- }));
- }
-
- this._treeList.set(index, vTree);
- }
-
- /**
- *
- *
- * @param vTreeArray
- */
- public void setTree(final java.lang.String[] vTreeArray)
- {
- // -- copy array
- _treeList.clear();
-
- for (int i = 0; i < vTreeArray.length; i++)
- {
- this._treeList.add(vTreeArray[i]);
- }
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.VAMSAS
- */
- public static jalview.binding.VAMSAS unmarshal(final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(
- jalview.binding.VAMSAS.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+public class VAMSAS implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _alignmentList.
+ */
+ private java.util.Vector _alignmentList;
+
+ /**
+ * Field _treeList.
+ */
+ private java.util.Vector _treeList;
+
+ /**
+ * Field _sequenceSetList.
+ */
+ private java.util.Vector _sequenceSetList;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public VAMSAS() {
+ super();
+ this._alignmentList = new java.util.Vector();
+ this._treeList = new java.util.Vector();
+ this._sequenceSetList = new java.util.Vector();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ *
+ *
+ * @param vAlignment
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addAlignment(
+ final Alignment vAlignment)
+ throws java.lang.IndexOutOfBoundsException {
+ this._alignmentList.addElement(vAlignment);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vAlignment
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addAlignment(
+ final int index,
+ final Alignment vAlignment)
+ throws java.lang.IndexOutOfBoundsException {
+ this._alignmentList.add(index, vAlignment);
+ }
+
+ /**
+ *
+ *
+ * @param vSequenceSet
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addSequenceSet(
+ final SequenceSet vSequenceSet)
+ throws java.lang.IndexOutOfBoundsException {
+ this._sequenceSetList.addElement(vSequenceSet);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vSequenceSet
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addSequenceSet(
+ final int index,
+ final SequenceSet vSequenceSet)
+ throws java.lang.IndexOutOfBoundsException {
+ this._sequenceSetList.add(index, vSequenceSet);
+ }
+
+ /**
+ *
+ *
+ * @param vTree
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addTree(
+ final java.lang.String vTree)
+ throws java.lang.IndexOutOfBoundsException {
+ this._treeList.addElement(vTree);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vTree
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addTree(
+ final int index,
+ final java.lang.String vTree)
+ throws java.lang.IndexOutOfBoundsException {
+ this._treeList.add(index, vTree);
+ }
+
+ /**
+ * Method enumerateAlignment.
+ *
+ * @return an Enumeration over all Alignment elements
+ */
+ public java.util.Enumeration enumerateAlignment(
+ ) {
+ return this._alignmentList.elements();
+ }
+
+ /**
+ * Method enumerateSequenceSet.
+ *
+ * @return an Enumeration over all SequenceSet elements
+ */
+ public java.util.Enumeration enumerateSequenceSet(
+ ) {
+ return this._sequenceSetList.elements();
+ }
+
+ /**
+ * Method enumerateTree.
+ *
+ * @return an Enumeration over all java.lang.String elements
+ */
+ public java.util.Enumeration enumerateTree(
+ ) {
+ return this._treeList.elements();
+ }
+
+ /**
+ * Method getAlignment.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the Alignment at the given index
+ */
+ public Alignment getAlignment(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._alignmentList.size()) {
+ throw new IndexOutOfBoundsException("getAlignment: Index value '" + index + "' not in range [0.." + (this._alignmentList.size() - 1) + "]");
+ }
+
+ return (Alignment) _alignmentList.get(index);
+ }
+
+ /**
+ * Method getAlignment.Returns the contents of the collection
+ * in an Array. <p>Note: Just in case the collection contents
+ * are changing in another thread, we pass a 0-length Array of
+ * the correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public Alignment[] getAlignment(
+ ) {
+ Alignment[] array = new Alignment[0];
+ return (Alignment[]) this._alignmentList.toArray(array);
+ }
+
+ /**
+ * Method getAlignmentCount.
+ *
+ * @return the size of this collection
+ */
+ public int getAlignmentCount(
+ ) {
+ return this._alignmentList.size();
+ }
+
+ /**
+ * Method getSequenceSet.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the SequenceSet at the given index
+ */
+ public SequenceSet getSequenceSet(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._sequenceSetList.size()) {
+ throw new IndexOutOfBoundsException("getSequenceSet: Index value '" + index + "' not in range [0.." + (this._sequenceSetList.size() - 1) + "]");
+ }
+
+ return (SequenceSet) _sequenceSetList.get(index);
+ }
+
+ /**
+ * Method getSequenceSet.Returns the contents of the collection
+ * in an Array. <p>Note: Just in case the collection contents
+ * are changing in another thread, we pass a 0-length Array of
+ * the correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public SequenceSet[] getSequenceSet(
+ ) {
+ SequenceSet[] array = new SequenceSet[0];
+ return (SequenceSet[]) this._sequenceSetList.toArray(array);
+ }
+
+ /**
+ * Method getSequenceSetCount.
+ *
+ * @return the size of this collection
+ */
+ public int getSequenceSetCount(
+ ) {
+ return this._sequenceSetList.size();
+ }
+
+ /**
+ * Method getTree.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the java.lang.String at the given index
+ */
+ public java.lang.String getTree(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._treeList.size()) {
+ throw new IndexOutOfBoundsException("getTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+ }
+
+ return (java.lang.String) _treeList.get(index);
+ }
+
+ /**
+ * Method getTree.Returns the contents of the collection in an
+ * Array. <p>Note: Just in case the collection contents are
+ * changing in another thread, we pass a 0-length Array of the
+ * correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public java.lang.String[] getTree(
+ ) {
+ java.lang.String[] array = new java.lang.String[0];
+ return (java.lang.String[]) this._treeList.toArray(array);
+ }
+
+ /**
+ * Method getTreeCount.
+ *
+ * @return the size of this collection
+ */
+ public int getTreeCount(
+ ) {
+ return this._treeList.size();
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Method removeAlignment.
+ *
+ * @param vAlignment
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeAlignment(
+ final Alignment vAlignment) {
+ boolean removed = _alignmentList.remove(vAlignment);
+ return removed;
+ }
+
+ /**
+ * Method removeAlignmentAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public Alignment removeAlignmentAt(
+ final int index) {
+ java.lang.Object obj = this._alignmentList.remove(index);
+ return (Alignment) obj;
+ }
+
+ /**
+ */
+ public void removeAllAlignment(
+ ) {
+ this._alignmentList.clear();
+ }
+
+ /**
+ */
+ public void removeAllSequenceSet(
+ ) {
+ this._sequenceSetList.clear();
+ }
+
+ /**
+ */
+ public void removeAllTree(
+ ) {
+ this._treeList.clear();
+ }
+
+ /**
+ * Method removeSequenceSet.
+ *
+ * @param vSequenceSet
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeSequenceSet(
+ final SequenceSet vSequenceSet) {
+ boolean removed = _sequenceSetList.remove(vSequenceSet);
+ return removed;
+ }
+
+ /**
+ * Method removeSequenceSetAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public SequenceSet removeSequenceSetAt(
+ final int index) {
+ java.lang.Object obj = this._sequenceSetList.remove(index);
+ return (SequenceSet) obj;
+ }
+
+ /**
+ * Method removeTree.
+ *
+ * @param vTree
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeTree(
+ final java.lang.String vTree) {
+ boolean removed = _treeList.remove(vTree);
+ return removed;
+ }
+
+ /**
+ * Method removeTreeAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public java.lang.String removeTreeAt(
+ final int index) {
+ java.lang.Object obj = this._treeList.remove(index);
+ return (java.lang.String) obj;
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vAlignment
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setAlignment(
+ final int index,
+ final Alignment vAlignment)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._alignmentList.size()) {
+ throw new IndexOutOfBoundsException("setAlignment: Index value '" + index + "' not in range [0.." + (this._alignmentList.size() - 1) + "]");
+ }
+
+ this._alignmentList.set(index, vAlignment);
+ }
+
+ /**
+ *
+ *
+ * @param vAlignmentArray
+ */
+ public void setAlignment(
+ final Alignment[] vAlignmentArray) {
+ //-- copy array
+ _alignmentList.clear();
+
+ for (int i = 0; i < vAlignmentArray.length; i++) {
+ this._alignmentList.add(vAlignmentArray[i]);
+ }
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vSequenceSet
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setSequenceSet(
+ final int index,
+ final SequenceSet vSequenceSet)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._sequenceSetList.size()) {
+ throw new IndexOutOfBoundsException("setSequenceSet: Index value '" + index + "' not in range [0.." + (this._sequenceSetList.size() - 1) + "]");
+ }
+
+ this._sequenceSetList.set(index, vSequenceSet);
+ }
+
+ /**
+ *
+ *
+ * @param vSequenceSetArray
+ */
+ public void setSequenceSet(
+ final SequenceSet[] vSequenceSetArray) {
+ //-- copy array
+ _sequenceSetList.clear();
+
+ for (int i = 0; i < vSequenceSetArray.length; i++) {
+ this._sequenceSetList.add(vSequenceSetArray[i]);
+ }
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vTree
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setTree(
+ final int index,
+ final java.lang.String vTree)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._treeList.size()) {
+ throw new IndexOutOfBoundsException("setTree: Index value '" + index + "' not in range [0.." + (this._treeList.size() - 1) + "]");
+ }
+
+ this._treeList.set(index, vTree);
+ }
+
+ /**
+ *
+ *
+ * @param vTreeArray
+ */
+ public void setTree(
+ final java.lang.String[] vTreeArray) {
+ //-- copy array
+ _treeList.clear();
+
+ for (int i = 0; i < vTreeArray.length; i++) {
+ this._treeList.add(vTreeArray[i]);
+ }
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.VAMSAS
+ */
+ public static jalview.binding.VAMSAS unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(jalview.binding.VAMSAS.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class VamsasModel extends VAMSAS implements java.io.Serializable
+public class VamsasModel extends VAMSAS
+implements java.io.Serializable
{
- // ----------------/
- // - Constructors -/
- // ----------------/
- public VamsasModel()
- {
- super();
- }
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public VamsasModel() {
+ super();
+ }
+
- // -----------/
- // - Methods -/
- // -----------/
+ //-----------/
+ //- Methods -/
+ //-----------/
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
}
- return true;
- }
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.VAMSAS
- */
- public static jalview.binding.VAMSAS unmarshal(final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(
- jalview.binding.VamsasModel.class, reader);
- }
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.VAMSAS
+ */
+ public static jalview.binding.VAMSAS unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.VAMSAS) Unmarshaller.unmarshal(jalview.binding.VamsasModel.class, reader);
+ }
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
*/
+
package jalview.binding;
-//---------------------------------/
-//- Imported classes and packages -/
+ //---------------------------------/
+ //- Imported classes and packages -/
//---------------------------------/
import org.exolab.castor.xml.Marshaller;
*
* @version $Revision$ $Date$
*/
-public class Viewport implements java.io.Serializable
-{
-
- // --------------------------/
- // - Class/Member Variables -/
- // --------------------------/
-
- /**
- * Field _conservationSelected.
- */
- private boolean _conservationSelected;
-
- /**
- * keeps track of state for field: _conservationSelected
- */
- private boolean _has_conservationSelected;
-
- /**
- * Field _pidSelected.
- */
- private boolean _pidSelected;
-
- /**
- * keeps track of state for field: _pidSelected
- */
- private boolean _has_pidSelected;
-
- /**
- * Field _bgColour.
- */
- private java.lang.String _bgColour;
-
- /**
- * Field _consThreshold.
- */
- private int _consThreshold;
-
- /**
- * keeps track of state for field: _consThreshold
- */
- private boolean _has_consThreshold;
-
- /**
- * Field _pidThreshold.
- */
- private int _pidThreshold;
-
- /**
- * keeps track of state for field: _pidThreshold
- */
- private boolean _has_pidThreshold;
-
- /**
- * Field _title.
- */
- private java.lang.String _title;
-
- /**
- * Field _showFullId.
- */
- private boolean _showFullId;
-
- /**
- * keeps track of state for field: _showFullId
- */
- private boolean _has_showFullId;
-
- /**
- * Field _showText.
- */
- private boolean _showText;
-
- /**
- * keeps track of state for field: _showText
- */
- private boolean _has_showText;
-
- /**
- * Field _showColourText.
- */
- private boolean _showColourText;
-
- /**
- * keeps track of state for field: _showColourText
- */
- private boolean _has_showColourText;
-
- /**
- * Field _showBoxes.
- */
- private boolean _showBoxes;
-
- /**
- * keeps track of state for field: _showBoxes
- */
- private boolean _has_showBoxes;
-
- /**
- * Field _wrapAlignment.
- */
- private boolean _wrapAlignment;
-
- /**
- * keeps track of state for field: _wrapAlignment
- */
- private boolean _has_wrapAlignment;
-
- /**
- * Field _renderGaps.
- */
- private boolean _renderGaps;
-
- /**
- * keeps track of state for field: _renderGaps
- */
- private boolean _has_renderGaps;
-
- /**
- * Field _showSequenceFeatures.
- */
- private boolean _showSequenceFeatures;
-
- /**
- * keeps track of state for field: _showSequenceFeatures
- */
- private boolean _has_showSequenceFeatures;
-
- /**
- * Field _showAnnotation.
- */
- private boolean _showAnnotation;
-
- /**
- * keeps track of state for field: _showAnnotation
- */
- private boolean _has_showAnnotation;
-
- /**
- * Field _showConservation.
- */
- private boolean _showConservation;
-
- /**
- * keeps track of state for field: _showConservation
- */
- private boolean _has_showConservation;
-
- /**
- * Field _showQuality.
- */
- private boolean _showQuality;
-
- /**
- * keeps track of state for field: _showQuality
- */
- private boolean _has_showQuality;
-
- /**
- * Field _showIdentity.
- */
- private boolean _showIdentity;
-
- /**
- * keeps track of state for field: _showIdentity
- */
- private boolean _has_showIdentity;
-
- /**
- * Field _xpos.
- */
- private int _xpos;
-
- /**
- * keeps track of state for field: _xpos
- */
- private boolean _has_xpos;
-
- /**
- * Field _ypos.
- */
- private int _ypos;
-
- /**
- * keeps track of state for field: _ypos
- */
- private boolean _has_ypos;
-
- /**
- * Field _width.
- */
- private int _width;
-
- /**
- * keeps track of state for field: _width
- */
- private boolean _has_width;
-
- /**
- * Field _height.
- */
- private int _height;
-
- /**
- * keeps track of state for field: _height
- */
- private boolean _has_height;
-
- /**
- * Field _startRes.
- */
- private int _startRes;
-
- /**
- * keeps track of state for field: _startRes
- */
- private boolean _has_startRes;
-
- /**
- * Field _startSeq.
- */
- private int _startSeq;
-
- /**
- * keeps track of state for field: _startSeq
- */
- private boolean _has_startSeq;
-
- /**
- * Field _fontName.
- */
- private java.lang.String _fontName;
-
- /**
- * Field _fontSize.
- */
- private int _fontSize;
-
- /**
- * keeps track of state for field: _fontSize
- */
- private boolean _has_fontSize;
-
- /**
- * Field _fontStyle.
- */
- private int _fontStyle;
-
- /**
- * keeps track of state for field: _fontStyle
- */
- private boolean _has_fontStyle;
-
- // ----------------/
- // - Constructors -/
- // ----------------/
-
- public Viewport()
- {
- super();
- }
-
- // -----------/
- // - Methods -/
- // -----------/
+public class Viewport implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _conservationSelected.
+ */
+ private boolean _conservationSelected;
+
+ /**
+ * keeps track of state for field: _conservationSelected
+ */
+ private boolean _has_conservationSelected;
+
+ /**
+ * Field _pidSelected.
+ */
+ private boolean _pidSelected;
+
+ /**
+ * keeps track of state for field: _pidSelected
+ */
+ private boolean _has_pidSelected;
+
+ /**
+ * Field _bgColour.
+ */
+ private java.lang.String _bgColour;
+
+ /**
+ * Field _consThreshold.
+ */
+ private int _consThreshold;
+
+ /**
+ * keeps track of state for field: _consThreshold
+ */
+ private boolean _has_consThreshold;
+
+ /**
+ * Field _pidThreshold.
+ */
+ private int _pidThreshold;
+
+ /**
+ * keeps track of state for field: _pidThreshold
+ */
+ private boolean _has_pidThreshold;
+
+ /**
+ * Field _title.
+ */
+ private java.lang.String _title;
+
+ /**
+ * Field _showFullId.
+ */
+ private boolean _showFullId;
+
+ /**
+ * keeps track of state for field: _showFullId
+ */
+ private boolean _has_showFullId;
+
+ /**
+ * Field _showText.
+ */
+ private boolean _showText;
+
+ /**
+ * keeps track of state for field: _showText
+ */
+ private boolean _has_showText;
+
+ /**
+ * Field _showColourText.
+ */
+ private boolean _showColourText;
+
+ /**
+ * keeps track of state for field: _showColourText
+ */
+ private boolean _has_showColourText;
+
+ /**
+ * Field _showBoxes.
+ */
+ private boolean _showBoxes;
+
+ /**
+ * keeps track of state for field: _showBoxes
+ */
+ private boolean _has_showBoxes;
+
+ /**
+ * Field _wrapAlignment.
+ */
+ private boolean _wrapAlignment;
+
+ /**
+ * keeps track of state for field: _wrapAlignment
+ */
+ private boolean _has_wrapAlignment;
+
+ /**
+ * Field _renderGaps.
+ */
+ private boolean _renderGaps;
+
+ /**
+ * keeps track of state for field: _renderGaps
+ */
+ private boolean _has_renderGaps;
+
+ /**
+ * Field _showSequenceFeatures.
+ */
+ private boolean _showSequenceFeatures;
+
+ /**
+ * keeps track of state for field: _showSequenceFeatures
+ */
+ private boolean _has_showSequenceFeatures;
+
+ /**
+ * Field _showAnnotation.
+ */
+ private boolean _showAnnotation;
+
+ /**
+ * keeps track of state for field: _showAnnotation
+ */
+ private boolean _has_showAnnotation;
+
+ /**
+ * Field _showConservation.
+ */
+ private boolean _showConservation;
+
+ /**
+ * keeps track of state for field: _showConservation
+ */
+ private boolean _has_showConservation;
+
+ /**
+ * Field _showQuality.
+ */
+ private boolean _showQuality;
+
+ /**
+ * keeps track of state for field: _showQuality
+ */
+ private boolean _has_showQuality;
+
+ /**
+ * Field _showIdentity.
+ */
+ private boolean _showIdentity;
+
+ /**
+ * keeps track of state for field: _showIdentity
+ */
+ private boolean _has_showIdentity;
+
+ /**
+ * Field _xpos.
+ */
+ private int _xpos;
+
+ /**
+ * keeps track of state for field: _xpos
+ */
+ private boolean _has_xpos;
+
+ /**
+ * Field _ypos.
+ */
+ private int _ypos;
+
+ /**
+ * keeps track of state for field: _ypos
+ */
+ private boolean _has_ypos;
+
+ /**
+ * Field _width.
+ */
+ private int _width;
- /**
+ /**
+ * keeps track of state for field: _width
*/
- public void deleteConsThreshold()
- {
- this._has_consThreshold = false;
- }
+ private boolean _has_width;
- /**
+ /**
+ * Field _height.
*/
- public void deleteConservationSelected()
- {
- this._has_conservationSelected = false;
- }
+ private int _height;
- /**
+ /**
+ * keeps track of state for field: _height
*/
- public void deleteFontSize()
- {
- this._has_fontSize = false;
- }
+ private boolean _has_height;
- /**
+ /**
+ * Field _startRes.
*/
- public void deleteFontStyle()
- {
- this._has_fontStyle = false;
- }
+ private int _startRes;
- /**
+ /**
+ * keeps track of state for field: _startRes
*/
- public void deleteHeight()
- {
- this._has_height = false;
- }
+ private boolean _has_startRes;
- /**
+ /**
+ * Field _startSeq.
*/
- public void deletePidSelected()
- {
- this._has_pidSelected = false;
- }
+ private int _startSeq;
- /**
+ /**
+ * keeps track of state for field: _startSeq
*/
- public void deletePidThreshold()
- {
- this._has_pidThreshold = false;
- }
+ private boolean _has_startSeq;
- /**
+ /**
+ * Field _fontName.
*/
- public void deleteRenderGaps()
- {
- this._has_renderGaps = false;
- }
+ private java.lang.String _fontName;
- /**
+ /**
+ * Field _fontSize.
*/
- public void deleteShowAnnotation()
- {
- this._has_showAnnotation = false;
- }
+ private int _fontSize;
- /**
+ /**
+ * keeps track of state for field: _fontSize
*/
- public void deleteShowBoxes()
- {
- this._has_showBoxes = false;
- }
+ private boolean _has_fontSize;
- /**
+ /**
+ * Field _fontStyle.
*/
- public void deleteShowColourText()
- {
- this._has_showColourText = false;
- }
+ private int _fontStyle;
- /**
+ /**
+ * keeps track of state for field: _fontStyle
*/
- public void deleteShowConservation()
- {
- this._has_showConservation = false;
- }
+ private boolean _has_fontStyle;
- /**
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public Viewport() {
+ super();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ */
+ public void deleteConsThreshold(
+ ) {
+ this._has_consThreshold= false;
+ }
+
+ /**
*/
- public void deleteShowFullId()
- {
- this._has_showFullId = false;
- }
+ public void deleteConservationSelected(
+ ) {
+ this._has_conservationSelected= false;
+ }
- /**
+ /**
*/
- public void deleteShowIdentity()
- {
- this._has_showIdentity = false;
- }
+ public void deleteFontSize(
+ ) {
+ this._has_fontSize= false;
+ }
+
+ /**
+ */
+ public void deleteFontStyle(
+ ) {
+ this._has_fontStyle= false;
+ }
+
+ /**
+ */
+ public void deleteHeight(
+ ) {
+ this._has_height= false;
+ }
+
+ /**
+ */
+ public void deletePidSelected(
+ ) {
+ this._has_pidSelected= false;
+ }
+
+ /**
+ */
+ public void deletePidThreshold(
+ ) {
+ this._has_pidThreshold= false;
+ }
+
+ /**
+ */
+ public void deleteRenderGaps(
+ ) {
+ this._has_renderGaps= false;
+ }
+
+ /**
+ */
+ public void deleteShowAnnotation(
+ ) {
+ this._has_showAnnotation= false;
+ }
+
+ /**
+ */
+ public void deleteShowBoxes(
+ ) {
+ this._has_showBoxes= false;
+ }
+
+ /**
+ */
+ public void deleteShowColourText(
+ ) {
+ this._has_showColourText= false;
+ }
+
+ /**
+ */
+ public void deleteShowConservation(
+ ) {
+ this._has_showConservation= false;
+ }
+
+ /**
+ */
+ public void deleteShowFullId(
+ ) {
+ this._has_showFullId= false;
+ }
+
+ /**
+ */
+ public void deleteShowIdentity(
+ ) {
+ this._has_showIdentity= false;
+ }
+
+ /**
+ */
+ public void deleteShowQuality(
+ ) {
+ this._has_showQuality= false;
+ }
+
+ /**
+ */
+ public void deleteShowSequenceFeatures(
+ ) {
+ this._has_showSequenceFeatures= false;
+ }
+
+ /**
+ */
+ public void deleteShowText(
+ ) {
+ this._has_showText= false;
+ }
+
+ /**
+ */
+ public void deleteStartRes(
+ ) {
+ this._has_startRes= false;
+ }
+
+ /**
+ */
+ public void deleteStartSeq(
+ ) {
+ this._has_startSeq= false;
+ }
+
+ /**
+ */
+ public void deleteWidth(
+ ) {
+ this._has_width= false;
+ }
+
+ /**
+ */
+ public void deleteWrapAlignment(
+ ) {
+ this._has_wrapAlignment= false;
+ }
+
+ /**
+ */
+ public void deleteXpos(
+ ) {
+ this._has_xpos= false;
+ }
+
+ /**
+ */
+ public void deleteYpos(
+ ) {
+ this._has_ypos= false;
+ }
+
+ /**
+ * Returns the value of field 'bgColour'.
+ *
+ * @return the value of field 'BgColour'.
+ */
+ public java.lang.String getBgColour(
+ ) {
+ return this._bgColour;
+ }
+
+ /**
+ * Returns the value of field 'consThreshold'.
+ *
+ * @return the value of field 'ConsThreshold'.
+ */
+ public int getConsThreshold(
+ ) {
+ return this._consThreshold;
+ }
+
+ /**
+ * Returns the value of field 'conservationSelected'.
+ *
+ * @return the value of field 'ConservationSelected'.
+ */
+ public boolean getConservationSelected(
+ ) {
+ return this._conservationSelected;
+ }
+
+ /**
+ * Returns the value of field 'fontName'.
+ *
+ * @return the value of field 'FontName'.
+ */
+ public java.lang.String getFontName(
+ ) {
+ return this._fontName;
+ }
+
+ /**
+ * Returns the value of field 'fontSize'.
+ *
+ * @return the value of field 'FontSize'.
+ */
+ public int getFontSize(
+ ) {
+ return this._fontSize;
+ }
+
+ /**
+ * Returns the value of field 'fontStyle'.
+ *
+ * @return the value of field 'FontStyle'.
+ */
+ public int getFontStyle(
+ ) {
+ return this._fontStyle;
+ }
+
+ /**
+ * Returns the value of field 'height'.
+ *
+ * @return the value of field 'Height'.
+ */
+ public int getHeight(
+ ) {
+ return this._height;
+ }
+
+ /**
+ * Returns the value of field 'pidSelected'.
+ *
+ * @return the value of field 'PidSelected'.
+ */
+ public boolean getPidSelected(
+ ) {
+ return this._pidSelected;
+ }
+
+ /**
+ * Returns the value of field 'pidThreshold'.
+ *
+ * @return the value of field 'PidThreshold'.
+ */
+ public int getPidThreshold(
+ ) {
+ return this._pidThreshold;
+ }
+
+ /**
+ * Returns the value of field 'renderGaps'.
+ *
+ * @return the value of field 'RenderGaps'.
+ */
+ public boolean getRenderGaps(
+ ) {
+ return this._renderGaps;
+ }
+
+ /**
+ * Returns the value of field 'showAnnotation'.
+ *
+ * @return the value of field 'ShowAnnotation'.
+ */
+ public boolean getShowAnnotation(
+ ) {
+ return this._showAnnotation;
+ }
+
+ /**
+ * Returns the value of field 'showBoxes'.
+ *
+ * @return the value of field 'ShowBoxes'.
+ */
+ public boolean getShowBoxes(
+ ) {
+ return this._showBoxes;
+ }
+
+ /**
+ * Returns the value of field 'showColourText'.
+ *
+ * @return the value of field 'ShowColourText'.
+ */
+ public boolean getShowColourText(
+ ) {
+ return this._showColourText;
+ }
+
+ /**
+ * Returns the value of field 'showConservation'.
+ *
+ * @return the value of field 'ShowConservation'.
+ */
+ public boolean getShowConservation(
+ ) {
+ return this._showConservation;
+ }
+
+ /**
+ * Returns the value of field 'showFullId'.
+ *
+ * @return the value of field 'ShowFullId'.
+ */
+ public boolean getShowFullId(
+ ) {
+ return this._showFullId;
+ }
+
+ /**
+ * Returns the value of field 'showIdentity'.
+ *
+ * @return the value of field 'ShowIdentity'.
+ */
+ public boolean getShowIdentity(
+ ) {
+ return this._showIdentity;
+ }
+
+ /**
+ * Returns the value of field 'showQuality'.
+ *
+ * @return the value of field 'ShowQuality'.
+ */
+ public boolean getShowQuality(
+ ) {
+ return this._showQuality;
+ }
+
+ /**
+ * Returns the value of field 'showSequenceFeatures'.
+ *
+ * @return the value of field 'ShowSequenceFeatures'.
+ */
+ public boolean getShowSequenceFeatures(
+ ) {
+ return this._showSequenceFeatures;
+ }
+
+ /**
+ * Returns the value of field 'showText'.
+ *
+ * @return the value of field 'ShowText'.
+ */
+ public boolean getShowText(
+ ) {
+ return this._showText;
+ }
+
+ /**
+ * Returns the value of field 'startRes'.
+ *
+ * @return the value of field 'StartRes'.
+ */
+ public int getStartRes(
+ ) {
+ return this._startRes;
+ }
+
+ /**
+ * Returns the value of field 'startSeq'.
+ *
+ * @return the value of field 'StartSeq'.
+ */
+ public int getStartSeq(
+ ) {
+ return this._startSeq;
+ }
- /**
+ /**
+ * Returns the value of field 'title'.
+ *
+ * @return the value of field 'Title'.
*/
- public void deleteShowQuality()
- {
- this._has_showQuality = false;
- }
-
- /**
- */
- public void deleteShowSequenceFeatures()
- {
- this._has_showSequenceFeatures = false;
- }
-
- /**
- */
- public void deleteShowText()
- {
- this._has_showText = false;
- }
-
- /**
- */
- public void deleteStartRes()
- {
- this._has_startRes = false;
- }
-
- /**
- */
- public void deleteStartSeq()
- {
- this._has_startSeq = false;
- }
-
- /**
- */
- public void deleteWidth()
- {
- this._has_width = false;
- }
-
- /**
- */
- public void deleteWrapAlignment()
- {
- this._has_wrapAlignment = false;
- }
-
- /**
- */
- public void deleteXpos()
- {
- this._has_xpos = false;
- }
-
- /**
- */
- public void deleteYpos()
- {
- this._has_ypos = false;
- }
-
- /**
- * Returns the value of field 'bgColour'.
- *
- * @return the value of field 'BgColour'.
- */
- public java.lang.String getBgColour()
- {
- return this._bgColour;
- }
-
- /**
- * Returns the value of field 'consThreshold'.
- *
- * @return the value of field 'ConsThreshold'.
- */
- public int getConsThreshold()
- {
- return this._consThreshold;
- }
-
- /**
- * Returns the value of field 'conservationSelected'.
- *
- * @return the value of field 'ConservationSelected'.
- */
- public boolean getConservationSelected()
- {
- return this._conservationSelected;
- }
-
- /**
- * Returns the value of field 'fontName'.
- *
- * @return the value of field 'FontName'.
- */
- public java.lang.String getFontName()
- {
- return this._fontName;
- }
-
- /**
- * Returns the value of field 'fontSize'.
- *
- * @return the value of field 'FontSize'.
- */
- public int getFontSize()
- {
- return this._fontSize;
- }
-
- /**
- * Returns the value of field 'fontStyle'.
- *
- * @return the value of field 'FontStyle'.
- */
- public int getFontStyle()
- {
- return this._fontStyle;
- }
-
- /**
- * Returns the value of field 'height'.
- *
- * @return the value of field 'Height'.
- */
- public int getHeight()
- {
- return this._height;
- }
-
- /**
- * Returns the value of field 'pidSelected'.
- *
- * @return the value of field 'PidSelected'.
- */
- public boolean getPidSelected()
- {
- return this._pidSelected;
- }
-
- /**
- * Returns the value of field 'pidThreshold'.
- *
- * @return the value of field 'PidThreshold'.
- */
- public int getPidThreshold()
- {
- return this._pidThreshold;
- }
-
- /**
- * Returns the value of field 'renderGaps'.
- *
- * @return the value of field 'RenderGaps'.
- */
- public boolean getRenderGaps()
- {
- return this._renderGaps;
- }
-
- /**
- * Returns the value of field 'showAnnotation'.
- *
- * @return the value of field 'ShowAnnotation'.
- */
- public boolean getShowAnnotation()
- {
- return this._showAnnotation;
- }
-
- /**
- * Returns the value of field 'showBoxes'.
- *
- * @return the value of field 'ShowBoxes'.
- */
- public boolean getShowBoxes()
- {
- return this._showBoxes;
- }
-
- /**
- * Returns the value of field 'showColourText'.
- *
- * @return the value of field 'ShowColourText'.
- */
- public boolean getShowColourText()
- {
- return this._showColourText;
- }
-
- /**
- * Returns the value of field 'showConservation'.
- *
- * @return the value of field 'ShowConservation'.
- */
- public boolean getShowConservation()
- {
- return this._showConservation;
- }
-
- /**
- * Returns the value of field 'showFullId'.
- *
- * @return the value of field 'ShowFullId'.
- */
- public boolean getShowFullId()
- {
- return this._showFullId;
- }
-
- /**
- * Returns the value of field 'showIdentity'.
- *
- * @return the value of field 'ShowIdentity'.
- */
- public boolean getShowIdentity()
- {
- return this._showIdentity;
- }
-
- /**
- * Returns the value of field 'showQuality'.
- *
- * @return the value of field 'ShowQuality'.
- */
- public boolean getShowQuality()
- {
- return this._showQuality;
- }
-
- /**
- * Returns the value of field 'showSequenceFeatures'.
- *
- * @return the value of field 'ShowSequenceFeatures'.
- */
- public boolean getShowSequenceFeatures()
- {
- return this._showSequenceFeatures;
- }
-
- /**
- * Returns the value of field 'showText'.
- *
- * @return the value of field 'ShowText'.
- */
- public boolean getShowText()
- {
- return this._showText;
- }
-
- /**
- * Returns the value of field 'startRes'.
- *
- * @return the value of field 'StartRes'.
- */
- public int getStartRes()
- {
- return this._startRes;
- }
-
- /**
- * Returns the value of field 'startSeq'.
- *
- * @return the value of field 'StartSeq'.
- */
- public int getStartSeq()
- {
- return this._startSeq;
- }
-
- /**
- * Returns the value of field 'title'.
- *
- * @return the value of field 'Title'.
- */
- public java.lang.String getTitle()
- {
- return this._title;
- }
-
- /**
- * Returns the value of field 'width'.
- *
- * @return the value of field 'Width'.
- */
- public int getWidth()
- {
- return this._width;
- }
-
- /**
- * Returns the value of field 'wrapAlignment'.
- *
- * @return the value of field 'WrapAlignment'.
- */
- public boolean getWrapAlignment()
- {
- return this._wrapAlignment;
- }
-
- /**
- * Returns the value of field 'xpos'.
- *
- * @return the value of field 'Xpos'.
- */
- public int getXpos()
- {
- return this._xpos;
- }
-
- /**
- * Returns the value of field 'ypos'.
- *
- * @return the value of field 'Ypos'.
- */
- public int getYpos()
- {
- return this._ypos;
- }
-
- /**
- * Method hasConsThreshold.
- *
- * @return true if at least one ConsThreshold has been added
- */
- public boolean hasConsThreshold()
- {
- return this._has_consThreshold;
- }
-
- /**
- * Method hasConservationSelected.
- *
- * @return true if at least one ConservationSelected has been added
- */
- public boolean hasConservationSelected()
- {
- return this._has_conservationSelected;
- }
-
- /**
- * Method hasFontSize.
- *
- * @return true if at least one FontSize has been added
- */
- public boolean hasFontSize()
- {
- return this._has_fontSize;
- }
-
- /**
- * Method hasFontStyle.
- *
- * @return true if at least one FontStyle has been added
- */
- public boolean hasFontStyle()
- {
- return this._has_fontStyle;
- }
-
- /**
- * Method hasHeight.
- *
- * @return true if at least one Height has been added
- */
- public boolean hasHeight()
- {
- return this._has_height;
- }
-
- /**
- * Method hasPidSelected.
- *
- * @return true if at least one PidSelected has been added
- */
- public boolean hasPidSelected()
- {
- return this._has_pidSelected;
- }
-
- /**
- * Method hasPidThreshold.
- *
- * @return true if at least one PidThreshold has been added
- */
- public boolean hasPidThreshold()
- {
- return this._has_pidThreshold;
- }
-
- /**
- * Method hasRenderGaps.
- *
- * @return true if at least one RenderGaps has been added
- */
- public boolean hasRenderGaps()
- {
- return this._has_renderGaps;
- }
-
- /**
- * Method hasShowAnnotation.
- *
- * @return true if at least one ShowAnnotation has been added
- */
- public boolean hasShowAnnotation()
- {
- return this._has_showAnnotation;
- }
-
- /**
- * Method hasShowBoxes.
- *
- * @return true if at least one ShowBoxes has been added
- */
- public boolean hasShowBoxes()
- {
- return this._has_showBoxes;
- }
-
- /**
- * Method hasShowColourText.
- *
- * @return true if at least one ShowColourText has been added
- */
- public boolean hasShowColourText()
- {
- return this._has_showColourText;
- }
-
- /**
- * Method hasShowConservation.
- *
- * @return true if at least one ShowConservation has been added
- */
- public boolean hasShowConservation()
- {
- return this._has_showConservation;
- }
-
- /**
- * Method hasShowFullId.
- *
- * @return true if at least one ShowFullId has been added
- */
- public boolean hasShowFullId()
- {
- return this._has_showFullId;
- }
-
- /**
- * Method hasShowIdentity.
- *
- * @return true if at least one ShowIdentity has been added
- */
- public boolean hasShowIdentity()
- {
- return this._has_showIdentity;
- }
-
- /**
- * Method hasShowQuality.
- *
- * @return true if at least one ShowQuality has been added
- */
- public boolean hasShowQuality()
- {
- return this._has_showQuality;
- }
-
- /**
- * Method hasShowSequenceFeatures.
- *
- * @return true if at least one ShowSequenceFeatures has been added
- */
- public boolean hasShowSequenceFeatures()
- {
- return this._has_showSequenceFeatures;
- }
-
- /**
- * Method hasShowText.
- *
- * @return true if at least one ShowText has been added
- */
- public boolean hasShowText()
- {
- return this._has_showText;
- }
-
- /**
- * Method hasStartRes.
- *
- * @return true if at least one StartRes has been added
- */
- public boolean hasStartRes()
- {
- return this._has_startRes;
- }
-
- /**
- * Method hasStartSeq.
- *
- * @return true if at least one StartSeq has been added
- */
- public boolean hasStartSeq()
- {
- return this._has_startSeq;
- }
-
- /**
- * Method hasWidth.
- *
- * @return true if at least one Width has been added
- */
- public boolean hasWidth()
- {
- return this._has_width;
- }
-
- /**
- * Method hasWrapAlignment.
- *
- * @return true if at least one WrapAlignment has been added
- */
- public boolean hasWrapAlignment()
- {
- return this._has_wrapAlignment;
- }
-
- /**
- * Method hasXpos.
- *
- * @return true if at least one Xpos has been added
- */
- public boolean hasXpos()
- {
- return this._has_xpos;
- }
-
- /**
- * Method hasYpos.
- *
- * @return true if at least one Ypos has been added
- */
- public boolean hasYpos()
- {
- return this._has_ypos;
- }
-
- /**
- * Returns the value of field 'conservationSelected'.
- *
- * @return the value of field 'ConservationSelected'.
- */
- public boolean isConservationSelected()
- {
- return this._conservationSelected;
- }
-
- /**
- * Returns the value of field 'pidSelected'.
- *
- * @return the value of field 'PidSelected'.
- */
- public boolean isPidSelected()
- {
- return this._pidSelected;
- }
-
- /**
- * Returns the value of field 'renderGaps'.
- *
- * @return the value of field 'RenderGaps'.
- */
- public boolean isRenderGaps()
- {
- return this._renderGaps;
- }
-
- /**
- * Returns the value of field 'showAnnotation'.
- *
- * @return the value of field 'ShowAnnotation'.
- */
- public boolean isShowAnnotation()
- {
- return this._showAnnotation;
- }
-
- /**
- * Returns the value of field 'showBoxes'.
- *
- * @return the value of field 'ShowBoxes'.
- */
- public boolean isShowBoxes()
- {
- return this._showBoxes;
- }
-
- /**
- * Returns the value of field 'showColourText'.
- *
- * @return the value of field 'ShowColourText'.
- */
- public boolean isShowColourText()
- {
- return this._showColourText;
- }
-
- /**
- * Returns the value of field 'showConservation'.
- *
- * @return the value of field 'ShowConservation'.
- */
- public boolean isShowConservation()
- {
- return this._showConservation;
- }
-
- /**
- * Returns the value of field 'showFullId'.
- *
- * @return the value of field 'ShowFullId'.
- */
- public boolean isShowFullId()
- {
- return this._showFullId;
- }
-
- /**
- * Returns the value of field 'showIdentity'.
- *
- * @return the value of field 'ShowIdentity'.
- */
- public boolean isShowIdentity()
- {
- return this._showIdentity;
- }
-
- /**
- * Returns the value of field 'showQuality'.
- *
- * @return the value of field 'ShowQuality'.
- */
- public boolean isShowQuality()
- {
- return this._showQuality;
- }
-
- /**
- * Returns the value of field 'showSequenceFeatures'.
- *
- * @return the value of field 'ShowSequenceFeatures'.
- */
- public boolean isShowSequenceFeatures()
- {
- return this._showSequenceFeatures;
- }
-
- /**
- * Returns the value of field 'showText'.
- *
- * @return the value of field 'ShowText'.
- */
- public boolean isShowText()
- {
- return this._showText;
- }
-
- /**
- * Method isValid.
- *
- * @return true if this object is valid according to the schema
- */
- public boolean isValid()
- {
- try
- {
- validate();
- } catch (org.exolab.castor.xml.ValidationException vex)
- {
- return false;
- }
- return true;
- }
-
- /**
- * Returns the value of field 'wrapAlignment'.
- *
- * @return the value of field 'WrapAlignment'.
- */
- public boolean isWrapAlignment()
- {
- return this._wrapAlignment;
- }
-
- /**
- *
- *
- * @param out
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void marshal(final java.io.Writer out)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, out);
- }
-
- /**
- *
- *
- * @param handler
- * @throws java.io.IOException
- * if an IOException occurs during marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- */
- public void marshal(final org.xml.sax.ContentHandler handler)
- throws java.io.IOException,
- org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- Marshaller.marshal(this, handler);
- }
-
- /**
- * Sets the value of field 'bgColour'.
- *
- * @param bgColour
- * the value of field 'bgColour'.
- */
- public void setBgColour(final java.lang.String bgColour)
- {
- this._bgColour = bgColour;
- }
-
- /**
- * Sets the value of field 'consThreshold'.
- *
- * @param consThreshold
- * the value of field 'consThreshold'.
- */
- public void setConsThreshold(final int consThreshold)
- {
- this._consThreshold = consThreshold;
- this._has_consThreshold = true;
- }
-
- /**
- * Sets the value of field 'conservationSelected'.
- *
- * @param conservationSelected
- * the value of field 'conservationSelected'.
- */
- public void setConservationSelected(final boolean conservationSelected)
- {
- this._conservationSelected = conservationSelected;
- this._has_conservationSelected = true;
- }
-
- /**
- * Sets the value of field 'fontName'.
- *
- * @param fontName
- * the value of field 'fontName'.
- */
- public void setFontName(final java.lang.String fontName)
- {
- this._fontName = fontName;
- }
-
- /**
- * Sets the value of field 'fontSize'.
- *
- * @param fontSize
- * the value of field 'fontSize'.
- */
- public void setFontSize(final int fontSize)
- {
- this._fontSize = fontSize;
- this._has_fontSize = true;
- }
-
- /**
- * Sets the value of field 'fontStyle'.
- *
- * @param fontStyle
- * the value of field 'fontStyle'.
- */
- public void setFontStyle(final int fontStyle)
- {
- this._fontStyle = fontStyle;
- this._has_fontStyle = true;
- }
-
- /**
- * Sets the value of field 'height'.
- *
- * @param height
- * the value of field 'height'.
- */
- public void setHeight(final int height)
- {
- this._height = height;
- this._has_height = true;
- }
-
- /**
- * Sets the value of field 'pidSelected'.
- *
- * @param pidSelected
- * the value of field 'pidSelected'.
- */
- public void setPidSelected(final boolean pidSelected)
- {
- this._pidSelected = pidSelected;
- this._has_pidSelected = true;
- }
-
- /**
- * Sets the value of field 'pidThreshold'.
- *
- * @param pidThreshold
- * the value of field 'pidThreshold'.
- */
- public void setPidThreshold(final int pidThreshold)
- {
- this._pidThreshold = pidThreshold;
- this._has_pidThreshold = true;
- }
-
- /**
- * Sets the value of field 'renderGaps'.
- *
- * @param renderGaps
- * the value of field 'renderGaps'.
- */
- public void setRenderGaps(final boolean renderGaps)
- {
- this._renderGaps = renderGaps;
- this._has_renderGaps = true;
- }
-
- /**
- * Sets the value of field 'showAnnotation'.
- *
- * @param showAnnotation
- * the value of field 'showAnnotation'.
- */
- public void setShowAnnotation(final boolean showAnnotation)
- {
- this._showAnnotation = showAnnotation;
- this._has_showAnnotation = true;
- }
-
- /**
- * Sets the value of field 'showBoxes'.
- *
- * @param showBoxes
- * the value of field 'showBoxes'.
- */
- public void setShowBoxes(final boolean showBoxes)
- {
- this._showBoxes = showBoxes;
- this._has_showBoxes = true;
- }
-
- /**
- * Sets the value of field 'showColourText'.
- *
- * @param showColourText
- * the value of field 'showColourText'.
- */
- public void setShowColourText(final boolean showColourText)
- {
- this._showColourText = showColourText;
- this._has_showColourText = true;
- }
-
- /**
- * Sets the value of field 'showConservation'.
- *
- * @param showConservation
- * the value of field 'showConservation'
- */
- public void setShowConservation(final boolean showConservation)
- {
- this._showConservation = showConservation;
- this._has_showConservation = true;
- }
-
- /**
- * Sets the value of field 'showFullId'.
- *
- * @param showFullId
- * the value of field 'showFullId'.
- */
- public void setShowFullId(final boolean showFullId)
- {
- this._showFullId = showFullId;
- this._has_showFullId = true;
- }
-
- /**
- * Sets the value of field 'showIdentity'.
- *
- * @param showIdentity
- * the value of field 'showIdentity'.
- */
- public void setShowIdentity(final boolean showIdentity)
- {
- this._showIdentity = showIdentity;
- this._has_showIdentity = true;
- }
-
- /**
- * Sets the value of field 'showQuality'.
- *
- * @param showQuality
- * the value of field 'showQuality'.
- */
- public void setShowQuality(final boolean showQuality)
- {
- this._showQuality = showQuality;
- this._has_showQuality = true;
- }
-
- /**
- * Sets the value of field 'showSequenceFeatures'.
- *
- * @param showSequenceFeatures
- * the value of field 'showSequenceFeatures'.
- */
- public void setShowSequenceFeatures(final boolean showSequenceFeatures)
- {
- this._showSequenceFeatures = showSequenceFeatures;
- this._has_showSequenceFeatures = true;
- }
-
- /**
- * Sets the value of field 'showText'.
- *
- * @param showText
- * the value of field 'showText'.
- */
- public void setShowText(final boolean showText)
- {
- this._showText = showText;
- this._has_showText = true;
- }
-
- /**
- * Sets the value of field 'startRes'.
- *
- * @param startRes
- * the value of field 'startRes'.
- */
- public void setStartRes(final int startRes)
- {
- this._startRes = startRes;
- this._has_startRes = true;
- }
-
- /**
- * Sets the value of field 'startSeq'.
- *
- * @param startSeq
- * the value of field 'startSeq'.
- */
- public void setStartSeq(final int startSeq)
- {
- this._startSeq = startSeq;
- this._has_startSeq = true;
- }
-
- /**
- * Sets the value of field 'title'.
- *
- * @param title
- * the value of field 'title'.
- */
- public void setTitle(final java.lang.String title)
- {
- this._title = title;
- }
-
- /**
- * Sets the value of field 'width'.
- *
- * @param width
- * the value of field 'width'.
- */
- public void setWidth(final int width)
- {
- this._width = width;
- this._has_width = true;
- }
-
- /**
- * Sets the value of field 'wrapAlignment'.
- *
- * @param wrapAlignment
- * the value of field 'wrapAlignment'.
- */
- public void setWrapAlignment(final boolean wrapAlignment)
- {
- this._wrapAlignment = wrapAlignment;
- this._has_wrapAlignment = true;
- }
-
- /**
- * Sets the value of field 'xpos'.
- *
- * @param xpos
- * the value of field 'xpos'.
- */
- public void setXpos(final int xpos)
- {
- this._xpos = xpos;
- this._has_xpos = true;
- }
-
- /**
- * Sets the value of field 'ypos'.
- *
- * @param ypos
- * the value of field 'ypos'.
- */
- public void setYpos(final int ypos)
- {
- this._ypos = ypos;
- this._has_ypos = true;
- }
-
- /**
- * Method unmarshal.
- *
- * @param reader
- * @throws org.exolab.castor.xml.MarshalException
- * if object is null or if any SAXException is thrown during
- * marshaling
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- * @return the unmarshaled jalview.binding.Viewport
- */
- public static jalview.binding.Viewport unmarshal(
- final java.io.Reader reader)
- throws org.exolab.castor.xml.MarshalException,
- org.exolab.castor.xml.ValidationException
- {
- return (jalview.binding.Viewport) Unmarshaller.unmarshal(
- jalview.binding.Viewport.class, reader);
- }
-
- /**
- *
- *
- * @throws org.exolab.castor.xml.ValidationException
- * if this object is an invalid instance according to the schema
- */
- public void validate() throws org.exolab.castor.xml.ValidationException
- {
- org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
- validator.validate(this);
- }
+ public java.lang.String getTitle(
+ ) {
+ return this._title;
+ }
+
+ /**
+ * Returns the value of field 'width'.
+ *
+ * @return the value of field 'Width'.
+ */
+ public int getWidth(
+ ) {
+ return this._width;
+ }
+
+ /**
+ * Returns the value of field 'wrapAlignment'.
+ *
+ * @return the value of field 'WrapAlignment'.
+ */
+ public boolean getWrapAlignment(
+ ) {
+ return this._wrapAlignment;
+ }
+
+ /**
+ * Returns the value of field 'xpos'.
+ *
+ * @return the value of field 'Xpos'.
+ */
+ public int getXpos(
+ ) {
+ return this._xpos;
+ }
+
+ /**
+ * Returns the value of field 'ypos'.
+ *
+ * @return the value of field 'Ypos'.
+ */
+ public int getYpos(
+ ) {
+ return this._ypos;
+ }
+
+ /**
+ * Method hasConsThreshold.
+ *
+ * @return true if at least one ConsThreshold has been added
+ */
+ public boolean hasConsThreshold(
+ ) {
+ return this._has_consThreshold;
+ }
+
+ /**
+ * Method hasConservationSelected.
+ *
+ * @return true if at least one ConservationSelected has been
+ * added
+ */
+ public boolean hasConservationSelected(
+ ) {
+ return this._has_conservationSelected;
+ }
+
+ /**
+ * Method hasFontSize.
+ *
+ * @return true if at least one FontSize has been added
+ */
+ public boolean hasFontSize(
+ ) {
+ return this._has_fontSize;
+ }
+
+ /**
+ * Method hasFontStyle.
+ *
+ * @return true if at least one FontStyle has been added
+ */
+ public boolean hasFontStyle(
+ ) {
+ return this._has_fontStyle;
+ }
+
+ /**
+ * Method hasHeight.
+ *
+ * @return true if at least one Height has been added
+ */
+ public boolean hasHeight(
+ ) {
+ return this._has_height;
+ }
+
+ /**
+ * Method hasPidSelected.
+ *
+ * @return true if at least one PidSelected has been added
+ */
+ public boolean hasPidSelected(
+ ) {
+ return this._has_pidSelected;
+ }
+
+ /**
+ * Method hasPidThreshold.
+ *
+ * @return true if at least one PidThreshold has been added
+ */
+ public boolean hasPidThreshold(
+ ) {
+ return this._has_pidThreshold;
+ }
+
+ /**
+ * Method hasRenderGaps.
+ *
+ * @return true if at least one RenderGaps has been added
+ */
+ public boolean hasRenderGaps(
+ ) {
+ return this._has_renderGaps;
+ }
+
+ /**
+ * Method hasShowAnnotation.
+ *
+ * @return true if at least one ShowAnnotation has been added
+ */
+ public boolean hasShowAnnotation(
+ ) {
+ return this._has_showAnnotation;
+ }
+
+ /**
+ * Method hasShowBoxes.
+ *
+ * @return true if at least one ShowBoxes has been added
+ */
+ public boolean hasShowBoxes(
+ ) {
+ return this._has_showBoxes;
+ }
+
+ /**
+ * Method hasShowColourText.
+ *
+ * @return true if at least one ShowColourText has been added
+ */
+ public boolean hasShowColourText(
+ ) {
+ return this._has_showColourText;
+ }
+
+ /**
+ * Method hasShowConservation.
+ *
+ * @return true if at least one ShowConservation has been added
+ */
+ public boolean hasShowConservation(
+ ) {
+ return this._has_showConservation;
+ }
+
+ /**
+ * Method hasShowFullId.
+ *
+ * @return true if at least one ShowFullId has been added
+ */
+ public boolean hasShowFullId(
+ ) {
+ return this._has_showFullId;
+ }
+
+ /**
+ * Method hasShowIdentity.
+ *
+ * @return true if at least one ShowIdentity has been added
+ */
+ public boolean hasShowIdentity(
+ ) {
+ return this._has_showIdentity;
+ }
+
+ /**
+ * Method hasShowQuality.
+ *
+ * @return true if at least one ShowQuality has been added
+ */
+ public boolean hasShowQuality(
+ ) {
+ return this._has_showQuality;
+ }
+
+ /**
+ * Method hasShowSequenceFeatures.
+ *
+ * @return true if at least one ShowSequenceFeatures has been
+ * added
+ */
+ public boolean hasShowSequenceFeatures(
+ ) {
+ return this._has_showSequenceFeatures;
+ }
+
+ /**
+ * Method hasShowText.
+ *
+ * @return true if at least one ShowText has been added
+ */
+ public boolean hasShowText(
+ ) {
+ return this._has_showText;
+ }
+
+ /**
+ * Method hasStartRes.
+ *
+ * @return true if at least one StartRes has been added
+ */
+ public boolean hasStartRes(
+ ) {
+ return this._has_startRes;
+ }
+
+ /**
+ * Method hasStartSeq.
+ *
+ * @return true if at least one StartSeq has been added
+ */
+ public boolean hasStartSeq(
+ ) {
+ return this._has_startSeq;
+ }
+
+ /**
+ * Method hasWidth.
+ *
+ * @return true if at least one Width has been added
+ */
+ public boolean hasWidth(
+ ) {
+ return this._has_width;
+ }
+
+ /**
+ * Method hasWrapAlignment.
+ *
+ * @return true if at least one WrapAlignment has been added
+ */
+ public boolean hasWrapAlignment(
+ ) {
+ return this._has_wrapAlignment;
+ }
+
+ /**
+ * Method hasXpos.
+ *
+ * @return true if at least one Xpos has been added
+ */
+ public boolean hasXpos(
+ ) {
+ return this._has_xpos;
+ }
+
+ /**
+ * Method hasYpos.
+ *
+ * @return true if at least one Ypos has been added
+ */
+ public boolean hasYpos(
+ ) {
+ return this._has_ypos;
+ }
+
+ /**
+ * Returns the value of field 'conservationSelected'.
+ *
+ * @return the value of field 'ConservationSelected'.
+ */
+ public boolean isConservationSelected(
+ ) {
+ return this._conservationSelected;
+ }
+
+ /**
+ * Returns the value of field 'pidSelected'.
+ *
+ * @return the value of field 'PidSelected'.
+ */
+ public boolean isPidSelected(
+ ) {
+ return this._pidSelected;
+ }
+
+ /**
+ * Returns the value of field 'renderGaps'.
+ *
+ * @return the value of field 'RenderGaps'.
+ */
+ public boolean isRenderGaps(
+ ) {
+ return this._renderGaps;
+ }
+
+ /**
+ * Returns the value of field 'showAnnotation'.
+ *
+ * @return the value of field 'ShowAnnotation'.
+ */
+ public boolean isShowAnnotation(
+ ) {
+ return this._showAnnotation;
+ }
+
+ /**
+ * Returns the value of field 'showBoxes'.
+ *
+ * @return the value of field 'ShowBoxes'.
+ */
+ public boolean isShowBoxes(
+ ) {
+ return this._showBoxes;
+ }
+
+ /**
+ * Returns the value of field 'showColourText'.
+ *
+ * @return the value of field 'ShowColourText'.
+ */
+ public boolean isShowColourText(
+ ) {
+ return this._showColourText;
+ }
+
+ /**
+ * Returns the value of field 'showConservation'.
+ *
+ * @return the value of field 'ShowConservation'.
+ */
+ public boolean isShowConservation(
+ ) {
+ return this._showConservation;
+ }
+
+ /**
+ * Returns the value of field 'showFullId'.
+ *
+ * @return the value of field 'ShowFullId'.
+ */
+ public boolean isShowFullId(
+ ) {
+ return this._showFullId;
+ }
+
+ /**
+ * Returns the value of field 'showIdentity'.
+ *
+ * @return the value of field 'ShowIdentity'.
+ */
+ public boolean isShowIdentity(
+ ) {
+ return this._showIdentity;
+ }
+
+ /**
+ * Returns the value of field 'showQuality'.
+ *
+ * @return the value of field 'ShowQuality'.
+ */
+ public boolean isShowQuality(
+ ) {
+ return this._showQuality;
+ }
+
+ /**
+ * Returns the value of field 'showSequenceFeatures'.
+ *
+ * @return the value of field 'ShowSequenceFeatures'.
+ */
+ public boolean isShowSequenceFeatures(
+ ) {
+ return this._showSequenceFeatures;
+ }
+
+ /**
+ * Returns the value of field 'showText'.
+ *
+ * @return the value of field 'ShowText'.
+ */
+ public boolean isShowText(
+ ) {
+ return this._showText;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Returns the value of field 'wrapAlignment'.
+ *
+ * @return the value of field 'WrapAlignment'.
+ */
+ public boolean isWrapAlignment(
+ ) {
+ return this._wrapAlignment;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Sets the value of field 'bgColour'.
+ *
+ * @param bgColour the value of field 'bgColour'.
+ */
+ public void setBgColour(
+ final java.lang.String bgColour) {
+ this._bgColour = bgColour;
+ }
+
+ /**
+ * Sets the value of field 'consThreshold'.
+ *
+ * @param consThreshold the value of field 'consThreshold'.
+ */
+ public void setConsThreshold(
+ final int consThreshold) {
+ this._consThreshold = consThreshold;
+ this._has_consThreshold = true;
+ }
+
+ /**
+ * Sets the value of field 'conservationSelected'.
+ *
+ * @param conservationSelected the value of field
+ * 'conservationSelected'.
+ */
+ public void setConservationSelected(
+ final boolean conservationSelected) {
+ this._conservationSelected = conservationSelected;
+ this._has_conservationSelected = true;
+ }
+
+ /**
+ * Sets the value of field 'fontName'.
+ *
+ * @param fontName the value of field 'fontName'.
+ */
+ public void setFontName(
+ final java.lang.String fontName) {
+ this._fontName = fontName;
+ }
+
+ /**
+ * Sets the value of field 'fontSize'.
+ *
+ * @param fontSize the value of field 'fontSize'.
+ */
+ public void setFontSize(
+ final int fontSize) {
+ this._fontSize = fontSize;
+ this._has_fontSize = true;
+ }
+
+ /**
+ * Sets the value of field 'fontStyle'.
+ *
+ * @param fontStyle the value of field 'fontStyle'.
+ */
+ public void setFontStyle(
+ final int fontStyle) {
+ this._fontStyle = fontStyle;
+ this._has_fontStyle = true;
+ }
+
+ /**
+ * Sets the value of field 'height'.
+ *
+ * @param height the value of field 'height'.
+ */
+ public void setHeight(
+ final int height) {
+ this._height = height;
+ this._has_height = true;
+ }
+
+ /**
+ * Sets the value of field 'pidSelected'.
+ *
+ * @param pidSelected the value of field 'pidSelected'.
+ */
+ public void setPidSelected(
+ final boolean pidSelected) {
+ this._pidSelected = pidSelected;
+ this._has_pidSelected = true;
+ }
+
+ /**
+ * Sets the value of field 'pidThreshold'.
+ *
+ * @param pidThreshold the value of field 'pidThreshold'.
+ */
+ public void setPidThreshold(
+ final int pidThreshold) {
+ this._pidThreshold = pidThreshold;
+ this._has_pidThreshold = true;
+ }
+
+ /**
+ * Sets the value of field 'renderGaps'.
+ *
+ * @param renderGaps the value of field 'renderGaps'.
+ */
+ public void setRenderGaps(
+ final boolean renderGaps) {
+ this._renderGaps = renderGaps;
+ this._has_renderGaps = true;
+ }
+
+ /**
+ * Sets the value of field 'showAnnotation'.
+ *
+ * @param showAnnotation the value of field 'showAnnotation'.
+ */
+ public void setShowAnnotation(
+ final boolean showAnnotation) {
+ this._showAnnotation = showAnnotation;
+ this._has_showAnnotation = true;
+ }
+
+ /**
+ * Sets the value of field 'showBoxes'.
+ *
+ * @param showBoxes the value of field 'showBoxes'.
+ */
+ public void setShowBoxes(
+ final boolean showBoxes) {
+ this._showBoxes = showBoxes;
+ this._has_showBoxes = true;
+ }
+
+ /**
+ * Sets the value of field 'showColourText'.
+ *
+ * @param showColourText the value of field 'showColourText'.
+ */
+ public void setShowColourText(
+ final boolean showColourText) {
+ this._showColourText = showColourText;
+ this._has_showColourText = true;
+ }
+
+ /**
+ * Sets the value of field 'showConservation'.
+ *
+ * @param showConservation the value of field 'showConservation'
+ */
+ public void setShowConservation(
+ final boolean showConservation) {
+ this._showConservation = showConservation;
+ this._has_showConservation = true;
+ }
+
+ /**
+ * Sets the value of field 'showFullId'.
+ *
+ * @param showFullId the value of field 'showFullId'.
+ */
+ public void setShowFullId(
+ final boolean showFullId) {
+ this._showFullId = showFullId;
+ this._has_showFullId = true;
+ }
+
+ /**
+ * Sets the value of field 'showIdentity'.
+ *
+ * @param showIdentity the value of field 'showIdentity'.
+ */
+ public void setShowIdentity(
+ final boolean showIdentity) {
+ this._showIdentity = showIdentity;
+ this._has_showIdentity = true;
+ }
+
+ /**
+ * Sets the value of field 'showQuality'.
+ *
+ * @param showQuality the value of field 'showQuality'.
+ */
+ public void setShowQuality(
+ final boolean showQuality) {
+ this._showQuality = showQuality;
+ this._has_showQuality = true;
+ }
+
+ /**
+ * Sets the value of field 'showSequenceFeatures'.
+ *
+ * @param showSequenceFeatures the value of field
+ * 'showSequenceFeatures'.
+ */
+ public void setShowSequenceFeatures(
+ final boolean showSequenceFeatures) {
+ this._showSequenceFeatures = showSequenceFeatures;
+ this._has_showSequenceFeatures = true;
+ }
+
+ /**
+ * Sets the value of field 'showText'.
+ *
+ * @param showText the value of field 'showText'.
+ */
+ public void setShowText(
+ final boolean showText) {
+ this._showText = showText;
+ this._has_showText = true;
+ }
+
+ /**
+ * Sets the value of field 'startRes'.
+ *
+ * @param startRes the value of field 'startRes'.
+ */
+ public void setStartRes(
+ final int startRes) {
+ this._startRes = startRes;
+ this._has_startRes = true;
+ }
+
+ /**
+ * Sets the value of field 'startSeq'.
+ *
+ * @param startSeq the value of field 'startSeq'.
+ */
+ public void setStartSeq(
+ final int startSeq) {
+ this._startSeq = startSeq;
+ this._has_startSeq = true;
+ }
+
+ /**
+ * Sets the value of field 'title'.
+ *
+ * @param title the value of field 'title'.
+ */
+ public void setTitle(
+ final java.lang.String title) {
+ this._title = title;
+ }
+
+ /**
+ * Sets the value of field 'width'.
+ *
+ * @param width the value of field 'width'.
+ */
+ public void setWidth(
+ final int width) {
+ this._width = width;
+ this._has_width = true;
+ }
+
+ /**
+ * Sets the value of field 'wrapAlignment'.
+ *
+ * @param wrapAlignment the value of field 'wrapAlignment'.
+ */
+ public void setWrapAlignment(
+ final boolean wrapAlignment) {
+ this._wrapAlignment = wrapAlignment;
+ this._has_wrapAlignment = true;
+ }
+
+ /**
+ * Sets the value of field 'xpos'.
+ *
+ * @param xpos the value of field 'xpos'.
+ */
+ public void setXpos(
+ final int xpos) {
+ this._xpos = xpos;
+ this._has_xpos = true;
+ }
+
+ /**
+ * Sets the value of field 'ypos'.
+ *
+ * @param ypos the value of field 'ypos'.
+ */
+ public void setYpos(
+ final int ypos) {
+ this._ypos = ypos;
+ this._has_ypos = true;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled jalview.binding.Viewport
+ */
+ public static jalview.binding.Viewport unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.binding.Viewport) Unmarshaller.unmarshal(jalview.binding.Viewport.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
}
*/
package jalview.datamodel;
+import jalview.analysis.AlignmentUtils;
+import jalview.io.FastaFile;
+import jalview.util.MessageManager;
+
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Set;
import java.util.Vector;
-import jalview.analysis.AlignmentUtils;
-import jalview.io.FastaFile;
-import jalview.util.MessageManager;
-
/**
* Data structure to hold and manipulate a multiple sequence alignment
*/
}
return names;
}
+
+ @Override
+ public boolean hasValidSequence()
+ {
+ boolean hasValidSeq = false;
+ for (SequenceI seq : getSequences())
+ {
+ if (seq.getSequenceAsString().matches("(-*[a-zA-Z]-*){1}[a-zA-Z-]*"))
+ {
+ hasValidSeq = true;
+ break;
+ }
+ }
+ return hasValidSeq;
+ }
}
*/
package jalview.datamodel;
-import jalview.analysis.Rna;
-import jalview.analysis.SecStrConsensus.SimpleBP;
-import jalview.analysis.WUSSParseException;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Map.Entry;
+import jalview.analysis.Rna;
+import jalview.analysis.SecStrConsensus.SimpleBP;
+import jalview.analysis.WUSSParseException;
+
/**
* DOCUMENT ME!
*
*/
public class AlignmentAnnotation
{
+ private static final String ANNOTATION_ID_PREFIX = "ann";
+
/*
* Identifers for different types of profile data
*/
public static final int CDNA_PROFILE = 2;
+ private static long counter = 0;
+
/**
* If true, this annotations is calculated every edit, eg consensus, quality
* or conservation graphs
public AlignmentAnnotation(String label, String description,
Annotation[] annotations)
{
+ setAnnotationId();
// always editable?
editable = true;
this.label = label;
_updateRnaSecStr(new AnnotCharSequence());
}
}
-
- annotationId = this.hashCode() + "";
}
/**
public AlignmentAnnotation(String label, String description,
Annotation[] annotations, float min, float max, int graphType)
{
+ setAnnotationId();
// graphs are not editable
editable = graphType == 0;
*/
public AlignmentAnnotation(AlignmentAnnotation annotation)
{
+ setAnnotationId();
this.label = new String(annotation.label);
if (annotation.description != null)
{
return sequenceMapping == null ? null : sequenceMapping.get(position);
}
+
+ /**
+ * Set the id to "ann" followed by a counter that increments so as to be
+ * unique for the lifetime of the JVM
+ */
+ protected final void setAnnotationId()
+ {
+ this.annotationId = ANNOTATION_ID_PREFIX + Long.toString(nextId());
+ }
+
+ protected static synchronized long nextId()
+ {
+ return counter++;
+ }
}
--- /dev/null
+package jalview.datamodel;
+
+import jalview.gui.AlignExportSettings;
+
+public class AlignmentExportData
+{
+ private AlignmentI alignment;
+
+ private String[] omitHidden;
+
+ private int[] startEnd;
+
+ private AlignExportSettings settings;
+
+ public AlignmentExportData(AlignmentI align, String[] ommit,
+ int[] startEnd, AlignExportSettings settings)
+ {
+ this.alignment = align;
+ this.omitHidden = ommit;
+ this.startEnd = startEnd;
+ this.settings = settings;
+ }
+
+ public AlignmentI getAlignment()
+ {
+ return alignment;
+ }
+
+ public void setAlignment(AlignmentI alignment)
+ {
+ this.alignment = alignment;
+ }
+
+ public String[] getOmitHidden()
+ {
+ return omitHidden;
+ }
+
+ public void setOmitHidden(String[] omitHidden)
+ {
+ this.omitHidden = omitHidden;
+ }
+
+ public int[] getStartEndPostions()
+ {
+ return startEnd;
+ }
+
+ public void setStartEndPostions(int[] startEnd)
+ {
+ this.startEnd = startEnd;
+ }
+
+ public AlignExportSettings getSettings()
+ {
+ return settings;
+ }
+
+ public void setSettings(AlignExportSettings settings)
+ {
+ this.settings = settings;
+ }
+}
* @return
*/
Set<String> getSequenceNames();
+
+ /**
+ * Checks if the alignment has at least one sequence with one non-gaped
+ * residue
+ *
+ * @return
+ */
+ public boolean hasValidSequence();
}
return;
}
if (that.displayCharacter != null)
+ {
displayCharacter = new String(that.displayCharacter);
+ }
if (that.description != null)
+ {
description = new String(that.description);
+ }
secondaryStructure = that.secondaryStructure;
value = that.value;
colour = that.colour;
{
sb.append(",");
}
- if (value != Float.NaN)
+ if (!Float.isNaN(value))
{
sb.append(value);
}
--- /dev/null
+package jalview.datamodel;
+
+
+/**
+ * A data bean class to hold properties of an RNA viewer
+ */
+public class RnaViewerModel
+{
+ public final String viewId;
+
+ public final String title;
+
+ public final int x;
+
+ public final int y;
+
+ public final int width;
+
+ public final int height;
+
+ public final int dividerLocation;
+
+ /**
+ * Constructor
+ *
+ * @param viewId
+ * @param title
+ * @param xpos
+ * @param ypos
+ * @param width
+ * @param height
+ * @param dividerLocation
+ */
+ public RnaViewerModel(String viewId, String title, int xpos, int ypos,
+ int width,
+ int height, int dividerLocation)
+ {
+ this.viewId = viewId;
+ this.title = title;
+ this.x = xpos;
+ this.y = ypos;
+ this.width = width;
+ this.height = height;
+ this.dividerLocation = dividerLocation;
+ }
+}
*/
package jalview.datamodel;
+import jalview.analysis.AlignSeq;
+import jalview.util.StringUtils;
+
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import fr.orsay.lri.varna.models.rna.RNA;
-import jalview.analysis.AlignSeq;
-import jalview.util.StringUtils;
-
/**
*
* Implements the SequenceI interface for a char[] based sequence object.
public void deleteChars(int i, int j)
{
int newstart = start, newend = end;
- if (i >= sequence.length)
+ if (i >= sequence.length || i < 0)
{
return;
}
*/
package jalview.datamodel.xdb.embl;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Vector;
-
import jalview.datamodel.DBRefEntry;
import jalview.datamodel.DBRefSource;
import jalview.datamodel.FeatureProperties;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import java.util.Hashtable;
+import java.util.Map.Entry;
+import java.util.Vector;
+
/**
* Data model for one entry returned from an EMBL query, as marshalled by a
* Castor binding file
boolean noPeptide, String sourceDb)
{ // TODO: ensure emblEntry.getSequences behaves correctly for returning all
// cases of noNa and noPeptide
- Vector seqs = new Vector();
+ Vector<SequenceI> seqs = new Vector<SequenceI>();
Sequence dna = null;
if (!noNa)
{
// TODO: transform EMBL Database refs to canonical form
if (dbRefs != null)
{
- for (Iterator i = dbRefs.iterator(); i.hasNext(); dna
- .addDBRef((DBRefEntry) i.next()))
+ for (DBRefEntry dbref : dbRefs)
{
- ;
+ dna.addDBRef(dbref);
}
}
}
try
{
- for (Iterator i = features.iterator(); i.hasNext();)
+ for (EmblFeature feature: features)
{
- EmblFeature feature = (EmblFeature) i.next();
if (!noNa)
{
- if (feature.dbRefs != null && feature.dbRefs.size() > 0)
+ if (feature.dbRefs != null)
{
- for (Iterator dbr = feature.dbRefs.iterator(); dbr.hasNext(); dna
- .addDBRef((DBRefEntry) dbr.next()))
+ for (DBRefEntry dbref : feature.dbRefs)
{
- ;
+ dna.addDBRef(dbref);
}
}
}
else
{
// General feature type.
+ // TODO this is just duplicated code ??
if (!noNa)
{
- if (feature.dbRefs != null && feature.dbRefs.size() > 0)
+ if (feature.dbRefs != null)
{
- for (Iterator dbr = feature.dbRefs.iterator(); dbr.hasNext(); dna
- .addDBRef((DBRefEntry) dbr.next()))
+ for (DBRefEntry dbref : feature.dbRefs)
{
- ;
+ dna.addDBRef(dbref);
}
}
}
SequenceI[] sqs = new SequenceI[seqs.size()];
for (int i = 0, j = seqs.size(); i < j; i++)
{
- sqs[i] = (SequenceI) seqs.elementAt(i);
+ sqs[i] = seqs.elementAt(i);
seqs.set(i, null);
}
return sqs;
* flag for generation of Peptide sequence objects
*/
private void parseCodingFeature(EmblFeature feature, String sourceDb,
- Vector seqs, Sequence dna, boolean noPeptide)
+ Vector<SequenceI> seqs, Sequence dna, boolean noPeptide)
{
boolean isEmblCdna = sourceDb.equals(DBRefSource.EMBLCDS);
// extract coding region(s)
jalview.datamodel.Mapping map = null;
int[] exon = null;
- if (feature.locations != null && feature.locations.size() > 0)
+ if (feature.locations != null)
{
- for (Enumeration locs = feature.locations.elements(); locs
- .hasMoreElements();)
+ for (EmblFeatureLocations loc : feature.locations)
{
- EmblFeatureLocations loc = (EmblFeatureLocations) locs
- .nextElement();
int[] se = loc.getElementRanges(accession);
if (exon == null)
{
String prseq = null;
String prname = new String();
String prid = null;
- Hashtable vals = new Hashtable();
+ Hashtable<String, String> vals = new Hashtable<String, String>();
int prstart = 1;
// get qualifiers
- if (feature.getQualifiers() != null
- && feature.getQualifiers().size() > 0)
+ if (feature.getQualifiers() != null)
{
- for (Iterator quals = feature.getQualifiers().iterator(); quals
- .hasNext();)
+ for (Qualifier q : feature.getQualifiers())
{
- Qualifier q = (Qualifier) quals.next();
- if (q.getName().equals("translation"))
+ String qname = q.getName();
+ if (qname.equals("translation"))
{
- StringBuffer prsq = new StringBuffer(q.getValues()[0]);
+ StringBuilder prsq = new StringBuilder(q.getValues()[0]);
int p = prsq.indexOf(" ");
while (p > -1)
{
prsq = null;
}
- else if (q.getName().equals("protein_id"))
+ else if (qname.equals("protein_id"))
{
prid = q.getValues()[0];
}
- else if (q.getName().equals("codon_start"))
+ else if (qname.equals("codon_start"))
{
prstart = Integer.parseInt(q.getValues()[0]);
}
- else if (q.getName().equals("product"))
+ else if (qname.equals("product"))
{
prname = q.getValues()[0];
}
{
// throw anything else into the additional properties hash
String[] s = q.getValues();
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
if (s != null)
{
for (int i = 0; i < s.length; i++)
sb.append("\n");
}
}
- vals.put(q.getName(), sb.toString());
+ vals.put(qname, sb.toString());
}
}
}
Sequence product = null;
DBRefEntry protEMBLCDS = null;
exon = adjustForPrStart(prstart, exon);
- boolean noProteinDbref=true;
-
+ boolean noProteinDbref = true;
+
if (prseq != null && prname != null && prid != null)
{
// extract proteins.
protEMBLCDS = new DBRefEntry(pcdnaref);
protEMBLCDS.setSource(DBRefSource.EMBLCDSProduct);
product.addDBRef(protEMBLCDS);
-
- }
-
+
+ }
+
}
}
// add cds feature to dna seq - this may include the stop codon
sf.setEnd(exon[xint + 1]);
sf.setType(feature.getName());
sf.setFeatureGroup(sourceDb);
- sf.setDescription("Exon " + (1 + xint / 2)
- + " for protein '" + prname + "' EMBLCDS:" + prid);
+ sf.setDescription("Exon " + (1 + xint / 2) + " for protein '"
+ + prname + "' EMBLCDS:" + prid);
sf.setValue(FeatureProperties.EXONPOS, new Integer(1 + xint));
sf.setValue(FeatureProperties.EXONPRODUCT, prname);
- if (vals != null && vals.size() > 0)
+ if (vals != null)
{
- Enumeration kv = vals.keys();
- while (kv.hasMoreElements())
+ for (Entry<String, String> val : vals.entrySet())
{
- Object key = kv.nextElement();
- if (key != null)
- {
- sf.setValue(key.toString(), vals.get(key));
- }
+ sf.setValue(val.getKey(), val.getValue());
}
}
dna.addSequenceFeature(sf);
}
}
// add dbRefs to sequence
- if (feature.dbRefs != null && feature.dbRefs.size() > 0)
+ if (feature.dbRefs != null)
{
- for (Iterator dbr = feature.dbRefs.iterator(); dbr.hasNext();)
+ for (DBRefEntry ref : feature.dbRefs)
{
- DBRefEntry ref = (DBRefEntry) dbr.next();
ref.setSource(jalview.util.DBRefUtils.getCanonicalName(ref
.getSource()));
// Hard code the kind of protein product accessions that EMBL cite
.setMap(new Mapping(product, map.getMap().getInverse()));
}
product.addDBRef(protEMBLCDS);
-
+
// Add converse mapping reference
if (map != null)
{
*/
package jalview.ext.jmol;
+import jalview.api.AlignmentViewPanel;
+import jalview.api.FeatureRenderer;
+import jalview.api.SequenceRenderer;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceI;
+import jalview.io.AppletFormatAdapter;
+import jalview.schemes.ColourSchemeI;
+import jalview.schemes.ResidueProperties;
+import jalview.structure.AtomSpec;
+import jalview.structure.StructureMappingcommandSet;
+import jalview.structure.StructureSelectionManager;
+import jalview.structures.models.AAStructureBindingModel;
+
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ComponentEvent;
import java.util.Map;
import java.util.Vector;
+import javajs.awt.Dimension;
+
import org.jmol.adapter.smarter.SmarterJmolAdapter;
import org.jmol.api.JmolAppConsoleInterface;
import org.jmol.api.JmolSelectionListener;
import org.jmol.api.JmolStatusListener;
import org.jmol.api.JmolViewer;
-import org.jmol.constant.EnumCallback;
-import org.jmol.popup.JmolPopup;
-
-import jalview.api.AlignmentViewPanel;
-import jalview.api.FeatureRenderer;
-import jalview.api.SequenceRenderer;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.PDBEntry;
-import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
-import jalview.schemes.ColourSchemeI;
-import jalview.schemes.ResidueProperties;
-import jalview.structure.AtomSpec;
-import jalview.structure.StructureMappingcommandSet;
-import jalview.structure.StructureSelectionManager;
-import jalview.structures.models.AAStructureBindingModel;
+import org.jmol.c.CBK;
+import org.jmol.script.T;
+import org.jmol.viewer.JC;
+import org.jmol.viewer.Viewer;
public abstract class JalviewJmolBinding extends AAStructureBindingModel
implements JmolStatusListener, JmolSelectionListener,
*/
private boolean associateNewStructs = false;
- Vector atomsPicked = new Vector();
-
- public Vector chainNames;
+ Vector<String> atomsPicked = new Vector<String>();
- Hashtable chainFile;
+ public Vector<String> chainNames;
- StringBuffer eval = new StringBuffer();
+ Hashtable<String, String> chainFile;
public String fileLoadingError;
*/
int frameNo = 0;
- protected JmolPopup jmolpopup;
+ // protected JmolGenericPopup jmolpopup; // not used - remove?
String lastCommand;
StringBuffer resetLastRes = new StringBuffer();
- public JmolViewer viewer;
+ public Viewer viewer;
public JalviewJmolBinding(StructureSelectionManager ssm,
PDBEntry[] pdbentry, SequenceI[][] sequenceIs, String[][] chains,
}
public JalviewJmolBinding(StructureSelectionManager ssm,
- SequenceI[][] seqs, JmolViewer theViewer)
+ SequenceI[][] seqs, Viewer theViewer)
{
super(ssm, seqs);
*/
public String getViewerTitle()
{
- return getViewerTitle("JMol", true);
+ return getViewerTitle("Jmol", true);
}
/**
* @param chainList
* list of chains to make visible
*/
- public void centerViewer(Vector chainList)
+ public void centerViewer(Vector<String> chainList)
{
- StringBuffer cmd = new StringBuffer();
- String lbl;
+ StringBuilder cmd = new StringBuilder(128);
int mlength, p;
- for (int i = 0, iSize = chainList.size(); i < iSize; i++)
+ for (String lbl : chainList)
{
mlength = 0;
- lbl = (String) chainList.elementAt(i);
do
{
p = mlength;
} while (p < mlength && mlength < (lbl.length() - 2));
// TODO: lookup each pdb id and recover proper model number for it.
cmd.append(":" + lbl.substring(mlength + 1) + " /"
- + (1 + getModelNum((String) chainFile.get(lbl))) + " or ");
+ + (1 + getModelNum(chainFile.get(lbl))) + " or ");
}
if (cmd.length() > 0)
{
public void closeViewer()
{
- viewer.setModeMouse(org.jmol.viewer.JmolConstants.MOUSE_NONE);
+ viewer.acm.setModeMouse(JC.MOUSE_NONE);
// remove listeners for all structures in viewer
getSsm().removeStructureViewerListener(this, this.getPdbFile());
// and shut down jmol
* using the getFeatureRenderer() and getSequenceRenderer() renderers but only
* if colourBySequence is enabled.
*/
- public void colourBySequence(boolean showFeatures,
- jalview.api.AlignmentViewPanel alignmentv)
+ public void colourBySequence(AlignmentViewPanel alignmentv)
{
+ boolean showFeatures = alignmentv.getAlignViewport()
+ .isShowSequenceFeatures();
if (!colourBySequence || !isLoadingFinished())
{
return;
return null;
}
// TODO: verify atomIndex is selecting correct model.
- return new Color(viewer.getAtomArgb(atomIndex));
+ // return new Color(viewer.getAtomArgb(atomIndex)); Jmol 12.2.4
+ int colour = viewer.ms.at[atomIndex]
+ .atomPropertyInt(T.color);
+ return new Color(colour);
}
/**
}
if (modelFileNames == null)
{
-
- String mset[] = new String[viewer.getModelCount()];
+ String mset[] = new String[viewer.ms.mc];
_modelFileNameMap = new int[mset.length];
- int j = 1;
- String m = viewer.getModelFileName(0);
+ String m = viewer.ms.getModelFileName(0);
if (m != null)
{
+ mset[0] = m;
try
{
mset[0] = new File(m).getAbsolutePath();
} catch (AccessControlException x)
{
- // usually not allowed to do this in applet, so keep raw handle
+ // usually not allowed to do this in applet
+ System.err
+ .println("jmolBinding: Using local file string from Jmol: "
+ + m);
+ }
+ if (mset[0].indexOf("/file:") != -1)
+ {
+ // applet path with docroot - discard as format won't match pdbfile
mset[0] = m;
- // System.err.println("jmolBinding: Using local file string from Jmol: "+m);
}
}
+ int j = 1;
for (int i = 1; i < mset.length; i++)
{
- m = viewer.getModelFileName(i);
+ m = viewer.ms.getModelFileName(i);
+ mset[j] = m;
if (m != null)
{
try
} catch (AccessControlException x)
{
// usually not allowed to do this in applet, so keep raw handle
- mset[j] = m;
// System.err.println("jmolBinding: Using local file string from Jmol: "+m);
}
}
public void handlePopupMenu(int x, int y)
{
- jmolpopup.show(x, y);
+ // jmolpopup.show(x, y);
+ // jmolpopup.jpiShow(x, y);
}
/**
// look up file model number for this pdbfile
int mdlNum = 0;
- String fn;
// may need to adjust for URLencoding here - we don't worry about that yet.
while (mdlNum < modelFileNames.length
&& !pdbfile.equals(modelFileNames[mdlNum]))
{
- // System.out.println("nomatch:"+pdbfile+"\nmodelfn:"+fn);
mdlNum++;
}
if (mdlNum == modelFileNames.length)
viewer.evalStringQuiet(resetLastRes.toString());
}
- eval.setLength(0);
- eval.append("select " + pdbResNum); // +modelNum
+ StringBuilder cmd = new StringBuilder(64);
+ cmd.append("select " + pdbResNum); // +modelNum
resetLastRes.setLength(0);
resetLastRes.append("select " + pdbResNum); // +modelNum
- eval.append(":");
+ cmd.append(":");
resetLastRes.append(":");
if (!chain.equals(" "))
{
- eval.append(chain);
+ cmd.append(chain);
resetLastRes.append(chain);
}
{
- eval.append(" /" + (mdlNum + 1));
+ cmd.append(" /" + (mdlNum + 1));
resetLastRes.append("/" + (mdlNum + 1));
}
- eval.append(";wireframe 100;" + eval.toString() + " and not hetero;");
+ cmd.append(";wireframe 100;" + cmd.toString() + " and not hetero;");
resetLastRes.append(";wireframe 0;" + resetLastRes.toString()
+ " and not hetero; spacefill 0;");
- eval.append("spacefill 200;select none");
+ cmd.append("spacefill 200;select none");
- viewer.evalStringQuiet(eval.toString());
+ viewer.evalStringQuiet(cmd.toString());
jmolHistory(true);
}
pdbfilename = modelFileNames[_mp];
if (pdbfilename == null)
{
- pdbfilename = new File(viewer.getModelFileName(mnumber))
+ pdbfilename = new File(
+ viewer.ms.getModelFileName(mnumber))
.getAbsolutePath();
}
}
@Override
- public void notifyCallback(EnumCallback type, Object[] data)
+ public void notifyCallback(CBK type, Object[] data)
{
try
{
}
@Override
- public boolean notifyEnabled(EnumCallback callbackPick)
+ public boolean notifyEnabled(CBK callbackPick)
{
switch (callbackPick)
{
case HOVER:
case ERROR:
return true;
- case RESIZE:
- case SYNC:
- case CLICK:
- case ANIMFRAME:
- case MINIMIZATION:
+ default:
+ return false;
}
- return false;
}
// incremented every time a load notification is successfully handled -
fileLoadingError = null;
String[] oldmodels = modelFileNames;
modelFileNames = null;
- chainNames = new Vector();
- chainFile = new Hashtable();
+ chainNames = new Vector<String>();
+ chainFile = new Hashtable<String, String>();
boolean notifyLoaded = false;
String[] modelfilenames = getPdbFile();
// first check if we've lost any structures
String fileName = modelfilenames[modelnum];
boolean foundEntry = false;
MCview.PDBfile pdb = null;
- String pdbfile = null, pdbfhash = null;
+ String pdbfile = null;
// model was probably loaded inline - so check the pdb file hashcode
if (loadedInline)
{
// 'best guess'
pdbfile = viewer.getData("" + (1 + _modelFileNameMap[modelnum])
+ ".0", "PDB");
- pdbfhash = "" + pdbfile.hashCode();
}
// search pdbentries and sequences to find correct pdbentry for this
// model
}
else
{
- File fl;
- if (matches = (fl = new File(getPdbEntry(pe).getFile()))
- .equals(new File(fileName)))
+ File fl = new File(getPdbEntry(pe).getFile());
+ matches = fl.equals(new File(fileName));
+ if (matches)
{
foundEntry = true;
// TODO: Jmol can in principle retrieve from CLASSLOADER but
}
// FILE LOADED OK
// so finally, update the jmol bits and pieces
- if (jmolpopup != null)
- {
- // potential for deadlock here:
- // jmolpopup.updateComputedMenus();
- }
+ // if (jmolpopup != null)
+ // {
+ // // potential for deadlock here:
+ // // jmolpopup.updateComputedMenus();
+ // }
if (!isLoadingFromArchive())
{
viewer.evalStringQuiet("model 0; select backbone;restrict;cartoon;wireframe off;spacefill off");
{
commandOptions = "";
}
- viewer = JmolViewer.allocateViewer(renderPanel,
+ viewer = (Viewer) JmolViewer.allocateViewer(renderPanel,
(jmolfileio ? new SmarterJmolAdapter() : null), htmlName
+ ((Object) this).toString(), documentBase, codeBase,
commandOptions, this);
- console = createJmolConsole(viewer, consolePanel, buttonsToShow);
+ viewer.setJmolStatusListener(this); // extends JmolCallbackListener
+
+ console = createJmolConsole(consolePanel, buttonsToShow);
if (consolePanel != null)
{
consolePanel.addComponentListener(this);
}
protected abstract JmolAppConsoleInterface createJmolConsole(
- JmolViewer viewer2, Container consolePanel, String buttonsToShow);
+ Container consolePanel, String buttonsToShow);
protected org.jmol.api.JmolAppConsoleInterface console = null;
}
@Override
- public void resizeInnerPanel(String data)
+ public Dimension resizeInnerPanel(String data)
{
// Jalview doesn't honour resize panel requests
-
+ return null;
}
public boolean isFinishedInit()
showConsole(false);
}
}
+
import java.util.Hashtable;
import java.util.Map;
+import javajs.awt.Dimension;
+
import org.jmol.api.JmolStatusListener;
import org.jmol.api.JmolViewer;
-import org.jmol.constant.EnumCallback;
+import org.jmol.c.CBK;
import org.jmol.modelset.Group;
import org.jmol.modelset.Model;
import org.jmol.modelset.ModelSet;
-import org.jmol.modelset.Polymer;
+import org.jmol.modelsetbio.BioModel;
import org.jmol.modelsetbio.BioPolymer;
import org.jmol.viewer.Viewer;
import org.openscience.jmol.app.JmolApp;
private Viewer getJmolData()
{
if (viewer == null)
- { // note that -o -n -x are all implied
+ { // note that -o -n -x are all implied // TODO check for Jmol 14.2
jmolApp = new JmolApp();
jmolApp.isDataOnly = true;
jmolApp.haveConsole = false;
jmolApp.haveDisplay = false;
- jmolApp.exitUponCompletion = true;
try
{
viewer = (Viewer) JmolViewer.allocateViewer(null, null, null, null,
- null, jmolApp.commandOptions, this);
+ null, "-x -o -n", this);
viewer.setScreenDimension(jmolApp.startupWidth,
jmolApp.startupHeight);
- jmolApp.startViewer(viewer, null);
+ jmolApp.startViewer(viewer, null, false);
} catch (ClassCastException x)
{
throw new Error(MessageManager.formatMessage("error.jmol_version_not_compatible_with_jalview_version", new String[]{JmolViewer.getJmolVersion()}),
Viewer jmd = getJmolData();
jmd.openReader(getDataName(), getDataName(), getReader());
waitForScript(jmd);
- if (jmd.getModelCount() > 0)
+
+ if (jmd.ms.mc > 0)
{
- ModelSet ms = jmd.getModelSet();
- String structs = ms.calculateStructures(null, true, false, true);
+ ModelSet ms = jmd.ms;
+ // Jmol 14.2 added third argument doReport = false
+ ms.calculateStructures(null, true, false, false, true);
// System.out.println("Structs\n"+structs);
- for (Model model : ms.getModels())
+ Group group = null;
+ int modelIndex = -1;
+ for (Model model : ms.am)
{
- for (int _bp = 0, _bpc = model.getBioPolymerCount(); _bp < _bpc; _bp++)
+ modelIndex++;
+ for (BioPolymer bp : ((BioModel) model).bioPolymers)
{
- Polymer bp = model.getBioPolymer(_bp);
- if (bp instanceof BioPolymer)
+ int lastChainId = 0; // int value of character e.g. 65 for A
+ String lastChainIdAlpha = "";
+
+ int[] groups = bp.getLeadAtomIndices();
+ char seq[] = new char[groups.length], secstr[] = new char[groups.length], secstrcode[] = new char[groups.length];
+ int groupc = 0, len = 0, firstrnum = 1, lastrnum = 0;
+
+ do
{
- BioPolymer biopoly = (BioPolymer) bp;
- char _lastChainId = 0;
- int[] groups = biopoly.getLeadAtomIndices();
- Group[] bpgrp = biopoly.getGroups();
- char seq[] = new char[groups.length], secstr[] = new char[groups.length], secstrcode[] = new char[groups.length];
- int groupc = 0, len = 0, firstrnum = 1, lastrnum = 0;
- do
+ if (groupc >= groups.length
+ || ms.at[groups[groupc]].group.chain.chainID != lastChainId)
{
- if (groupc >= groups.length
- || ms.atoms[groups[groupc]].getChainID() != _lastChainId)
+ /*
+ * on change of chain (or at end), construct the sequence and
+ * secondary structure annotation for the last chain
+ */
+ if (len > 0)
{
- if (len > 0)
+ boolean isNa = bp.isNucleic();
+ // normalise sequence from Jmol to jalview
+ int[] cinds = isNa ? ResidueProperties.nucleotideIndex
+ : ResidueProperties.aaIndex;
+ int nonGap = isNa ? ResidueProperties.maxNucleotideIndex
+ : ResidueProperties.maxProteinIndex;
+ char ngc = 'X';
+ char newseq[] = new char[len];
+ Annotation asecstr[] = new Annotation[len + firstrnum - 1];
+ for (int p = 0; p < len; p++)
{
- boolean isNa = (biopoly.isDna() || biopoly.isRna());
- // normalise sequence from Jmol to jalview
- int[] cinds = isNa ? ResidueProperties.nucleotideIndex : ResidueProperties.aaIndex;
- int nonGap = isNa ? ResidueProperties.maxNucleotideIndex
- : ResidueProperties.maxProteinIndex;
- char ngc = 'X';
- char newseq[] = new char[len];
- Annotation asecstr[] = new Annotation[len+firstrnum-1];
- for (int p = 0; p < len; p++)
+ newseq[p] = cinds[seq[p]] == nonGap ? ngc : seq[p];
+ if (secstr[p] >= 'A' && secstr[p] <= 'z')
{
- newseq[p] = cinds[seq[p]] == nonGap ? ngc : seq[p];
- if (secstr[p] >= 'A' && secstr[p] <= 'z')
- {
- asecstr[p] = new Annotation("" + secstr[p], null,
- secstrcode[p], Float.NaN);
- }
+ asecstr[p] = new Annotation("" + secstr[p], null,
+ secstrcode[p], Float.NaN);
}
- SequenceI sq = new Sequence("" + getDataName() + "|"
- + model.getModelTitle() + "|" + _lastChainId,
- newseq, firstrnum, lastrnum);
- PDBEntry pdbe = new PDBEntry();
- pdbe.setFile(getDataName());
- pdbe.setId(getDataName());
- pdbe.setProperty(new Hashtable());
- // pdbe.getProperty().put("CHAIN", "" + _lastChainId);
- pdbe.setChainCode(String.valueOf(_lastChainId));
- sq.addPDBId(pdbe);
- // JAL-1533
- // Need to put the number of models for this polymer somewhere for Chimera/others to grab
- // pdbe.getProperty().put("PDBMODELS", biopoly.)
- seqs.add(sq);
- if (!isNa)
+ }
+ String modelTitle = (String) ms
+ .getInfo(modelIndex, "title");
+ SequenceI sq = new Sequence("" + getDataName() + "|"
+ + modelTitle + "|" + lastChainIdAlpha, newseq,
+ firstrnum, lastrnum);
+ PDBEntry pdbe = new PDBEntry();
+ pdbe.setFile(getDataName());
+ pdbe.setId(getDataName());
+ pdbe.setProperty(new Hashtable());
+ // pdbe.getProperty().put("CHAIN", "" + _lastChainId);
+ pdbe.setChainCode(lastChainIdAlpha);
+ sq.addPDBId(pdbe);
+ // JAL-1533
+ // Need to put the number of models for this polymer somewhere
+ // for Chimera/others to grab
+ // pdbe.getProperty().put("PDBMODELS", biopoly.)
+ seqs.add(sq);
+ if (!isNa)
+ {
+ String mt = modelTitle == null ? getDataName()
+ : modelTitle;
+ if (lastChainId >= ' ')
{
- String mt = model.getModelTitle() == null ? getDataName()
- : model.getModelTitle();
- if (_lastChainId >= ' ')
- {
- mt += _lastChainId;
- }
- AlignmentAnnotation ann = new AlignmentAnnotation(
- "Secondary Structure",
- "Secondary Structure for " + mt, asecstr);
- ann.belowAlignment=true;
- ann.visible=true;
- ann.autoCalculated=false;
- ann.setCalcId(getClass().getName());
- sq.addAlignmentAnnotation(ann);
- ann.adjustForAlignment();
- ann.validateRangeAndDisplay();
- annotations.add(ann);
+ mt += lastChainIdAlpha;
}
+ AlignmentAnnotation ann = new AlignmentAnnotation(
+ "Secondary Structure", "Secondary Structure for "
+ + mt, asecstr);
+ ann.belowAlignment = true;
+ ann.visible = true;
+ ann.autoCalculated = false;
+ ann.setCalcId(getClass().getName());
+ sq.addAlignmentAnnotation(ann);
+ ann.adjustForAlignment();
+ ann.validateRangeAndDisplay();
+ annotations.add(ann);
}
- len = 0;
- firstrnum = 1;
- lastrnum = 0;
}
- if (groupc < groups.length)
+ len = 0;
+ firstrnum = 1;
+ lastrnum = 0;
+ }
+ if (groupc < groups.length)
+ {
+ group = ms.at[groups[groupc]].group;
+ if (len == 0)
+ {
+ firstrnum = group.getResno();
+ lastChainId = group.chain.chainID;
+ lastChainIdAlpha = group.chain.getIDStr();
+ }
+ else
{
- if (len == 0)
+ lastrnum = group.getResno();
+ }
+ seq[len] = group.getGroup1();
+ switch (group.getProteinStructureSubType())
+ {
+ case HELIX310:
+ if (secstr[len] == 0)
{
- firstrnum = bpgrp[groupc].getResno();
- _lastChainId = bpgrp[groupc].getChainID();
+ secstr[len] = '3';
}
- else
+ case HELIXALPHA:
+ if (secstr[len] == 0)
{
- lastrnum = bpgrp[groupc].getResno();
+ secstr[len] = 'H';
}
- seq[len] = bpgrp[groupc].getGroup1();
- switch (bpgrp[groupc].getProteinStructureSubType())
+ case HELIXPI:
+ if (secstr[len] == 0)
{
- case HELIX_310:
- if (secstr[len] == 0)
- {
- secstr[len] = '3';
- }
- case HELIX_ALPHA:
- if (secstr[len] == 0)
- {
- secstr[len] = 'H';
- }
- case HELIX_PI:
- if (secstr[len] == 0)
- {
- secstr[len] = 'P';
- }
- case HELIX:
- if (secstr[len] == 0)
- {
- secstr[len] = 'H';
- }
- secstrcode[len] = 'H';
- break;
- case SHEET:
- secstr[len] = 'E';
- secstrcode[len] = 'E';
- break;
- default:
- secstr[len] = 0;
- secstrcode[len] = 0;
+ secstr[len] = 'P';
+ }
+ case HELIX:
+ if (secstr[len] == 0)
+ {
+ secstr[len] = 'H';
}
- len++;
+ secstrcode[len] = 'H';
+ break;
+ case SHEET:
+ secstr[len] = 'E';
+ secstrcode[len] = 'E';
+ break;
+ default:
+ secstr[len] = 0;
+ secstrcode[len] = 0;
}
- } while (groupc++ < groups.length);
-
- }
+ len++;
+ }
+ } while (groupc++ < groups.length);
}
}
* System.err.println("Squashed Jmol callback handler error:");
* e.printStackTrace(); } }
*/
- public void notifyCallback(EnumCallback type, Object[] data)
+ public void notifyCallback(CBK type, Object[] data)
{
String strInfo = (data == null || data[1] == null ? null : data[1]
.toString());
}
}
- private void notifyFileLoaded(String string, String string2,
- String string3, String string4, int intValue)
- {
- // TODO Auto-generated method stub
-
- }
-
String lastConsoleEcho = "";
private void sendConsoleEcho(String string)
}
@Override
- public boolean notifyEnabled(EnumCallback callbackPick)
+ public boolean notifyEnabled(CBK callbackPick)
{
switch (callbackPick)
{
case LOADSTRUCT:
case ERROR:
return true;
- case MEASURE:
- case PICK:
- case HOVER:
- case RESIZE:
- case SYNC:
- case CLICK:
- case ANIMFRAME:
- case MINIMIZATION:
+ default:
+ return false;
}
- return false;
}
@Override
}
@Override
- public void resizeInnerPanel(String data)
+ public Dimension resizeInnerPanel(String data)
{
- // TODO Auto-generated method stub
+ return null;
+ }
+ @Override
+ public Map<String, Object> getJSpecViewProperty(String arg0)
+ {
+ return null;
}
}
--- /dev/null
+package jalview.ext.varna;
+
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.SequenceI;
+
+import fr.orsay.lri.varna.models.rna.RNA;
+
+/**
+ * Data bean wrapping the data items that define one RNA view
+ */
+public class RnaModel
+{
+ public final String title;
+
+ public final AlignmentAnnotation ann;
+
+ public final SequenceI seq;
+
+ public final boolean gapped;
+
+ public final RNA rna;
+
+ public RnaModel(String t, AlignmentAnnotation aa, SequenceI s, RNA r,
+ boolean g)
+ {
+ title = t;
+ ann = aa;
+ seq = s;
+ rna = r;
+ gapped = g;
+ }
+}
\ No newline at end of file
package jalview.gui;
+import jalview.api.AlignExportSettingI;
+import jalview.bin.Jalview;
+import jalview.jbgui.GAlignExportSettings;
+
import java.awt.event.ActionEvent;
import javax.swing.JDialog;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
-import jalview.api.AlignExportSettingI;
-import jalview.jbgui.GAlignExportSettings;
-
@SuppressWarnings("serial")
public class AlignExportSettings extends GAlignExportSettings implements
AlignExportSettingI
boolean cancelled = false;
- private int width = 450;
-
- private int height = 200;
-
JDialog dialog;
public AlignExportSettings(boolean hasHiddenSeq, boolean hasHiddenCols,
String alignFileFormat)
{
super(hasHiddenSeq, hasHiddenCols, alignFileFormat);
-
- // frame = new JInternalFrame();
- // frame.setContentPane(this);
- // frame.setLayer(JLayeredPane.PALETTE_LAYER);
- // Desktop.addInternalFrame(frame, "Export Settings", width, height);
-
- JOptionPane pane = new JOptionPane(null, JOptionPane.DEFAULT_OPTION,
- JOptionPane.DEFAULT_OPTION, null, new Object[]
- { this });
- dialog = pane.createDialog(Desktop.desktop, "Export Settings");
-
- // dialog = new JDialog(Desktop.instance, true);
- // dialog.setTitle("Export Settings");
-
- dialog.pack();
- dialog.setVisible(true);
-
- dialog.setContentPane(this);
- dialog.validate();
-
+ if (!Jalview.isHeadlessMode() && isShowDialog())
+ {
+ JOptionPane pane = new JOptionPane(null, JOptionPane.DEFAULT_OPTION,
+ JOptionPane.DEFAULT_OPTION, null, new Object[]
+ { this });
+ dialog = pane.createDialog(Desktop.desktop, "Export Settings");
+ dialog.pack();
+ dialog.setVisible(true);
+ dialog.setContentPane(this);
+ dialog.validate();
+ }
}
- // public static void main(String[] args)
- // {
- // new AlignExportSettings(false, false, false);
- // }
-
- // public void cancel_actionPerformed(ActionEvent e)
- // {
- // try
- // {
- // frame.setClosed(true);
- // } catch (Exception ex)
- // {
- // }
- // }
public void ok_actionPerformed(ActionEvent e)
{
return chkExportGrps.isSelected();
}
- @Override
public boolean isCancelled()
{
return cancelled;
import jalview.analysis.Dna;
import jalview.analysis.ParseProperties;
import jalview.analysis.SequenceIdMatcher;
-import jalview.api.AlignExportSettingI;
import jalview.api.AlignViewControllerGuiI;
import jalview.api.AlignViewControllerI;
import jalview.api.AlignViewportI;
import jalview.api.ViewStyleI;
import jalview.api.analysis.ScoreModelI;
import jalview.bin.Cache;
+import jalview.bin.Jalview;
import jalview.commands.CommandI;
import jalview.commands.EditCommand;
import jalview.commands.EditCommand.Action;
import jalview.datamodel.AlignedCodonFrame;
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentExportData;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.AlignmentOrder;
import jalview.datamodel.AlignmentView;
*/
void init()
{
- progressBar = new ProgressBar(this.statusPanel, this.statusBar);
+ if (!Jalview.isHeadlessMode())
+ {
+ progressBar = new ProgressBar(this.statusPanel, this.statusBar);
+ }
avc = new jalview.controller.AlignViewController(this, viewport,
alignPanel);
{
warningMessage("Cannot save file " + fileName + " using format "
+ format, "Alignment output format not supported");
- saveAs_actionPerformed(null);
- // JBPNote need to have a raise_gui flag here
+ if (!Jalview.isHeadlessMode())
+ {
+ saveAs_actionPerformed(null);
+ }
return false;
}
- ExportData exportData = getAlignmentForExport(format);
- FormatAdapter f = new FormatAdapter(alignPanel);
+ AlignmentExportData exportData = getAlignmentForExport(format, viewport);
+ if (exportData.getSettings().isCancelled())
+ {
+ return false;
+ }
+ FormatAdapter f = new FormatAdapter(alignPanel,
+ exportData.getSettings());
String output = f.formatSequences(format,
exportData.getAlignment(), // class cast exceptions will
// occur in the distant future
protected void outputText_actionPerformed(ActionEvent e)
{
- ExportData exportData = getAlignmentForExport(e.getActionCommand());
+ AlignmentExportData exportData = getAlignmentForExport(
+ e.getActionCommand(), viewport);
if (exportData.getSettings().isCancelled())
{
return;
}
- public ExportData getAlignmentForExport(String exportFomat)
+ public static AlignmentExportData getAlignmentForExport(String exportFomat,
+ AlignViewportI viewport)
{
AlignmentI alignmentToExport = null;
String[] omitHidden = null;
{ 0, alignmentToExport.getWidth() - 1 };
boolean hasHiddenSeqs = hiddenSeqs.getSize() > 0;
- AlignExportSettingI settings = new AlignExportSettings(hasHiddenSeqs,
+ AlignExportSettings settings = new AlignExportSettings(hasHiddenSeqs,
viewport.hasHiddenColumns(), exportFomat);
settings.isExportAnnotations();
alignmentStartEnd = getStartEnd(alignmentStartEnd, viewport
.getColumnSelection().getHiddenColumns());
}
- return new ExportData(alignmentToExport, omitHidden, alignmentStartEnd,
+ AlignmentExportData ed = new AlignmentExportData(alignmentToExport, omitHidden, alignmentStartEnd,
settings);
+ return ed;
}
private static int[] getStartEnd(int[] aligmentStartEnd,
viewport.getSelectionGroup().getEndRes() + groupAdjustment);
}
+ /*
+ * just extend the last slide command if compatible; but not if in
+ * SplitFrame mode (to ensure all edits are broadcast - JAL-1802)
+ */
boolean appendHistoryItem = false;
Deque<CommandI> historyList = viewport.getHistoryList();
- if (historyList != null
+ boolean inSplitFrame = getSplitViewContainer() != null;
+ if (!inSplitFrame && historyList != null
&& historyList.size() > 0
&& historyList.peek() instanceof SlideSequencesCommand)
{
// temporary flag until SplitFrame is released
boolean asSplitFrame = Cache.getDefault(
- Preferences.ENABLE_SPLIT_FRAME, false);
+ Preferences.ENABLE_SPLIT_FRAME, true);
if (asSplitFrame)
{
/*
"label.translation_of_params", new Object[]
{ this.getTitle() });
af.setTitle(newTitle);
- if (Cache.getDefault(Preferences.ENABLE_SPLIT_FRAME, false))
+ if (Cache.getDefault(Preferences.ENABLE_SPLIT_FRAME, true))
{
final SequenceI[] seqs = viewport.getSelectionAsNewSequence();
viewport.openSplitFrame(af, new Alignment(seqs),
aa.visible = visible;
}
}
- alignPanel.validateAnnotationDimensions(false);
+ alignPanel.validateAnnotationDimensions(true);
alignPanel.alignmentChanged();
}
}
}
- public class ExportData
- {
- private AlignmentI alignment;
-
- private String[] omitHidden;
-
- private int[] startEnd;
-
- private AlignExportSettingI settings;
-
- public ExportData(AlignmentI align, String[] ommit, int[] startEnd,
- AlignExportSettingI settings)
- {
- this.alignment = align;
- this.omitHidden = ommit;
- this.startEnd = startEnd;
- this.settings = settings;
- }
-
- public AlignmentI getAlignment()
- {
- return alignment;
- }
-
- public void setAlignment(AlignmentI alignment)
- {
- this.alignment = alignment;
- }
-
- public String[] getOmitHidden()
- {
- return omitHidden;
- }
-
- public void setOmitHidden(String[] omitHidden)
- {
- this.omitHidden = omitHidden;
- }
-
- public int[] getStartEndPostions()
- {
- return startEnd;
- }
-
- public void setStartEndPostions(int[] startEnd)
- {
- this.startEnd = startEnd;
- }
-
- public AlignExportSettingI getSettings()
- {
- return settings;
- }
-
- public void setSettings(AlignExportSettingI settings)
- {
- this.settings = settings;
- }
- }
-
}
class PrintThread extends Thread
* If any cDNA/protein mappings can be made between the alignments, offer to
* open a linked alignment with split frame option.
*/
- if (Cache.getDefault(Preferences.ENABLE_SPLIT_FRAME, false))
+ if (Cache.getDefault(Preferences.ENABLE_SPLIT_FRAME, true))
{
if (AlignmentUtils.isMappable(al, getAlignment()))
{
if (openSplitPane)
{
+ al.alignAs(thisAlignment);
protein = openSplitFrame(newAlignFrame, thisAlignment,
protein.getCodonFrames());
}
* is found, the result will be empty.
*/
SearchResults sr = new SearchResults();
- int seqOffset = findComplementScrollTarget(sr);
+ int verticalOffset = findComplementScrollTarget(sr);
if (!sr.isEmpty())
{
// TODO would like next line without cast but needs more refactoring...
final AlignmentPanel complementPanel = ((AlignViewport) getCodingComplement()).getAlignPanel();
complementPanel.setFollowingComplementScroll(true);
- complementPanel.scrollToCentre(sr, seqOffset);
+ complementPanel.scrollToCentre(sr, verticalOffset);
}
}
*/
package jalview.gui;
+import jalview.analysis.AnnotationSorter;
+import jalview.api.AlignViewportI;
+import jalview.api.AlignmentViewPanel;
+import jalview.bin.Cache;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SearchResults;
+import jalview.datamodel.SequenceFeature;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.jbgui.GAlignmentPanel;
+import jalview.math.AlignmentDimension;
+import jalview.schemes.ResidueProperties;
+import jalview.structure.StructureSelectionManager;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
+import java.awt.Insets;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import java.awt.print.PageFormat;
import javax.swing.SwingUtilities;
-import jalview.analysis.AnnotationSorter;
-import jalview.api.AlignViewportI;
-import jalview.api.AlignmentViewPanel;
-import jalview.bin.Cache;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.SearchResults;
-import jalview.datamodel.SequenceFeature;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.jbgui.GAlignmentPanel;
-import jalview.math.AlignmentDimension;
-import jalview.schemes.ResidueProperties;
-import jalview.structure.StructureSelectionManager;
-import jalview.util.MessageManager;
-
/**
* DOCUMENT ME!
*
*/
public boolean scrollToPosition(SearchResults results)
{
- return scrollToPosition(results, true, false);
+ return scrollToPosition(results, 0, true, false);
}
/**
*/
public boolean scrollToPosition(SearchResults searchResults, boolean redrawOverview)
{
- return scrollToPosition(searchResults, redrawOverview, false);
+ return scrollToPosition(searchResults, 0, redrawOverview, false);
}
/**
* (if any)
*
* @param results
+ * @param verticalOffset
+ * if greater than zero, allows scrolling to a position below the
+ * first displayed sequence
* @param redrawOverview
* - when set, the overview will be recalculated (takes longer)
* @param centre
* @return false if results were not found
*/
public boolean scrollToPosition(SearchResults results,
+ int verticalOffset,
boolean redrawOverview, boolean centre)
{
int startv, endv, starts, ends;
}
}
}
+
+ /*
+ * allow for offset of target sequence (actually scroll to one above it)
+ */
+ seqIndex = Math.max(0, seqIndex - verticalOffset);
+
if (!av.getWrapAlignment())
{
if ((startv = av.getStartRes()) >= start)
*/
protected void validateAnnotationDimensions(boolean adjustPanelHeight)
{
- int height = getAnnotationPanel().adjustPanelHeight();
-
- int theight = av.getCharHeight()
- * (av.getAlignment().getHeight() + (!av.hasHiddenRows() ? 0
- : av.getAlignment().getHiddenSequences().getSize()));
- float sscaling = (float) (theight / (1.0 * theight + height));
- float ascaling = (float) (height * 1.0 / alignFrame.getHeight());
- int rheight = alignFrame.getHeight() - height - av.getCharHeight();
+ int annotationHeight = getAnnotationPanel().adjustPanelHeight();
+
if (adjustPanelHeight)
{
- // NOTE: this logic is different in the applet. Need a better algorithm to
- // define behaviour
- // try and set height according to alignment
- if (ascaling > 0 && sscaling < 0.5)
- {
- // if the alignment is too big then
- // default is 0.5 split
- height = alignFrame.getHeight() / 2;
- }
- else
+ int rowHeight = av.getCharHeight();
+ int alignmentHeight = rowHeight * av.getAlignment().getHeight();
+
+ /*
+ * Estimate available height in the AlignFrame for alignment +
+ * annotations. Deduct an estimate for title bar, menu bar, scale panel,
+ * hscroll, status bar (as these are not laid out we can't inspect their
+ * actual heights). Insets gives frame borders.
+ */
+ int stuff = Platform.isAMac() ? 80 : 100;
+ Insets insets = alignFrame.getInsets();
+ int availableHeight = alignFrame.getHeight() - stuff - insets.top
+ - insets.bottom;
+
+ /*
+ * If not enough vertical space, maximize annotation height while keeping
+ * at least two rows of alignment visible
+ */
+ if (annotationHeight + alignmentHeight > availableHeight)
{
- // if space for more than one sequence row left when annotation is fully
- // displayed then set height to annotation height
- // otherwise, leave at least two lines of sequence shown.
- height = (rheight > av.getCharHeight()) ? height
- : (-av.getCharHeight() * 3 + (int) (alignFrame.getHeight() * (1 - sscaling)));
+ annotationHeight = Math.min(annotationHeight, availableHeight - 2
+ * rowHeight);
}
}
else
{
// maintain same window layout whilst updating sliders
- height = annotationScroller.getSize().height;
+ annotationHeight = annotationScroller.getSize().height;
}
hscroll.addNotify();
annotationScroller.setPreferredSize(new Dimension(annotationScroller
- .getWidth(), height));
+ .getWidth(), annotationHeight));
annotationSpaceFillerHolder.setPreferredSize(new Dimension(
- annotationSpaceFillerHolder.getWidth(), height));
- annotationScroller.validate();// repaint();
+ annotationSpaceFillerHolder.getWidth(), annotationHeight));
+ annotationScroller.validate();
annotationScroller.addNotify();
}
* @param sr
* holds mapped region(s) of this alignment that we are scrolling
* 'to'; may be modified for sequence offset by this method
- * @param seqOffset
+ * @param verticalOffset
* the number of visible sequences to show above the mapped region
*/
- public void scrollToCentre(SearchResults sr, int seqOffset)
+ public void scrollToCentre(SearchResults sr, int verticalOffset)
{
/*
* To avoid jumpy vertical scrolling (if some sequences are gapped or not
* This is like AlignmentI.findIndex(seq) but here we are matching the
* dataset sequence not the aligned sequence
*/
- int sequenceIndex = 0;
boolean matched = false;
for (SequenceI seq : seqs)
{
matched = true;
break;
}
- sequenceIndex++;
}
if (!matched)
{
return; // failsafe, shouldn't happen
}
- sequenceIndex = Math.max(0, sequenceIndex - seqOffset);
- sr.getResults().get(0)
- .setSequence(av.getAlignment().getSequenceAt(sequenceIndex));
/*
* Scroll to position but centring the target residue.
*/
- scrollToPosition(sr, true, true);
+ scrollToPosition(sr, verticalOffset, true, true);
}
/**
public AnnotationPanel(AlignmentPanel ap)
{
- MAC = new jalview.util.Platform().isAMac();
+ MAC = jalview.util.Platform.isAMac();
ToolTipManager.sharedInstance().registerComponent(this);
ToolTipManager.sharedInstance().setInitialDelay(0);
*/
package jalview.gui;
+import jalview.bin.Cache;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceI;
+import jalview.gui.StructureViewer.ViewerType;
+import jalview.io.AppletFormatAdapter;
+import jalview.io.JalviewFileChooser;
+import jalview.io.JalviewFileView;
+import jalview.schemes.BuriedColourScheme;
+import jalview.schemes.ColourSchemeI;
+import jalview.schemes.HelixColourScheme;
+import jalview.schemes.HydrophobicColourScheme;
+import jalview.schemes.PurinePyrimidineColourScheme;
+import jalview.schemes.StrandColourScheme;
+import jalview.schemes.TaylorColourScheme;
+import jalview.schemes.TurnColourScheme;
+import jalview.schemes.ZappoColourScheme;
+import jalview.structures.models.AAStructureBindingModel;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
+import java.io.IOException;
import java.io.PrintWriter;
-import java.util.Enumeration;
import java.util.Vector;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
-import jalview.bin.Cache;
-import jalview.datamodel.Alignment;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.PDBEntry;
-import jalview.datamodel.SequenceI;
-import jalview.gui.StructureViewer.ViewerType;
-import jalview.io.AppletFormatAdapter;
-import jalview.io.JalviewFileChooser;
-import jalview.io.JalviewFileView;
-import jalview.schemes.BuriedColourScheme;
-import jalview.schemes.ColourSchemeI;
-import jalview.schemes.HelixColourScheme;
-import jalview.schemes.HydrophobicColourScheme;
-import jalview.schemes.PurinePyrimidineColourScheme;
-import jalview.schemes.StrandColourScheme;
-import jalview.schemes.TaylorColourScheme;
-import jalview.schemes.TurnColourScheme;
-import jalview.schemes.ZappoColourScheme;
-import jalview.structures.models.AAStructureBindingModel;
-import jalview.util.MessageManager;
-import jalview.util.Platform;
-
public class AppJmol extends StructureViewerBase
{
AppJmolBinding jmb;
RenderPanel renderPanel;
- Vector atomsPicked = new Vector();
-
private boolean addingStructures = false;
- /**
- *
- * @param file
- * @param id
- * @param seq
- * @param ap
- * @param loadStatus
- * @param bounds
- * @deprecated defaults to AppJmol(String[] files, ... , viewid);
- */
- @Deprecated
- public AppJmol(String file, String id, SequenceI[] seq,
- AlignmentPanel ap, String loadStatus, Rectangle bounds)
- {
- this(file, id, seq, ap, loadStatus, bounds, null);
- }
-
- /**
- * @deprecated
- */
- @Deprecated
- public AppJmol(String file, String id, SequenceI[] seq,
- AlignmentPanel ap, String loadStatus, Rectangle bounds,
- String viewid)
- {
- this(new String[]
- { file }, new String[]
- { id }, new SequenceI[][]
- { seq }, ap, true, true, false, loadStatus, bounds, viewid);
- }
-
ViewSelectionMenu seqColourBy;
/**
this.addInternalFrameListener(new InternalFrameAdapter()
{
+ @Override
public void internalFrameClosing(InternalFrameEvent internalFrameEvent)
{
closeViewer(false);
return;
}
}
- // /////////////////////////////////
- // Check if there are other Jmol views involving this alignment
- // and prompt user about adding this molecule to one of them
- Vector existingViews = getJmolsFor(ap);
- if (existingViews.size() > 0)
+
+ /*
+ * Check if there are other Jmol views involving this alignment and prompt
+ * user about adding this molecule to one of them
+ */
+ for (AppJmol topJmol : getJmolsFor(ap))
{
- Enumeration jm = existingViews.elements();
- while (jm.hasMoreElements())
+ // TODO: highlight topJmol in view somehow
+ int option = JOptionPane.showInternalConfirmDialog(Desktop.desktop,
+ MessageManager.formatMessage("label.add_pdbentry_to_view",
+ new String[]
+ { pdbentry.getId(), topJmol.getTitle() }),
+ MessageManager
+ .getString("label.align_to_existing_structure_view"),
+ JOptionPane.YES_NO_CANCEL_OPTION);
+ if (option == JOptionPane.CANCEL_OPTION)
{
- AppJmol topJmol = (AppJmol) jm.nextElement();
- // TODO: highlight topJmol in view somehow
- int option = JOptionPane
- .showInternalConfirmDialog(
- Desktop.desktop,
- MessageManager.formatMessage(
- "label.add_pdbentry_to_view", new String[]
- { pdbentry.getId(), topJmol.getTitle() }),
- MessageManager
- .getString("label.align_to_existing_structure_view"),
- JOptionPane.YES_NO_CANCEL_OPTION);
- if (option == JOptionPane.CANCEL_OPTION)
- {
- return;
- }
- if (option == JOptionPane.YES_OPTION)
- {
- topJmol.useAlignmentPanelForSuperposition(ap);
- topJmol.addStructure(pdbentry, seq, chains, true, ap.alignFrame);
- return;
- }
+ return;
+ }
+ if (option == JOptionPane.YES_OPTION)
+ {
+ topJmol.useAlignmentPanelForSuperposition(ap);
+ topJmol.addStructure(pdbentry, seq, chains, true, ap.alignFrame);
+ return;
}
}
// /////////////////////////////////
}
this.addInternalFrameListener(new InternalFrameAdapter()
{
+ @Override
public void internalFrameClosing(InternalFrameEvent internalFrameEvent)
{
closeViewer(false);
return;
}
- private Vector getJmolsFor(AlignmentPanel apanel)
+ private Vector<AppJmol> getJmolsFor(AlignmentPanel apanel)
{
- Vector result = new Vector();
+ Vector<AppJmol> result = new Vector<AppJmol>();
JInternalFrame[] frames = Desktop.instance.getAllFrames();
for (JInternalFrame frame : frames)
{
if (frame instanceof AppJmol)
{
- if (((StructureViewerBase) frame).isLinkedWith(apanel))
+ if (((AppJmol) frame).isLinkedWith(apanel))
{
- result.addElement(frame);
+ result.addElement((AppJmol) frame);
}
}
}
scriptWindow = new JPanel(bl);
scriptWindow.setVisible(false);
}
- ;
+
jmb.allocateViewer(renderPanel, true, "", null, null, "", scriptWindow,
null);
- jmb.newJmolPopup(true, "Jmol", true);
+ // jmb.newJmolPopup("Jmol");
if (command == null)
{
command = "";
jmb.setFinishedInit(true);
}
- void setChainMenuItems(Vector chains)
+ void setChainMenuItems(Vector<String> chains)
{
chainMenu.removeAll();
if (chains == null)
chainMenu.add(menuItem);
- for (int c = 0; c < chains.size(); c++)
+ for (String chain : chains)
{
- menuItem = new JCheckBoxMenuItem(chains.elementAt(c).toString(), true);
+ menuItem = new JCheckBoxMenuItem(chain, true);
menuItem.addItemListener(new ItemListener()
{
public void itemStateChanged(ItemEvent evt)
void centerViewer()
{
- Vector toshow = new Vector();
- String lbl;
- int mlength, p, mnum;
+ Vector<String> toshow = new Vector<String>();
for (int i = 0; i < chainMenu.getItemCount(); i++)
{
if (chainMenu.getItem(i) instanceof JCheckBoxMenuItem)
// need to wait around until script has finished
while (addingStructures ? lastnotify >= jmb.getLoadNotifiesHandled()
- : (jmb.isFinishedInit() && jmb.getPdbFile() != null && jmb
+ : (!jmb.isFinishedInit() && jmb.getPdbFile() != null && jmb
.getPdbFile().length != jmb.getPdbCount()))
{
try
{
}
}
+
// refresh the sequence colours for the new structure(s)
for (AlignmentPanel ap : _colourwith)
{
if (value == JalviewFileChooser.APPROVE_OPTION)
{
+ BufferedReader in = null;
try
{
// TODO: cope with multiple PDB files in view
- BufferedReader in = new BufferedReader(new FileReader(
+ in = new BufferedReader(new FileReader(
jmb.getPdbFile()[0]));
File outFile = chooser.getSelectedFile();
} catch (Exception ex)
{
ex.printStackTrace();
+ } finally
+ {
+ if (in != null)
+ {
+ try
+ {
+ in.close();
+ } catch (IOException e)
+ {
+ // ignore
+ }
+ }
}
}
}
if (im.getGraphics() != null)
{
- Rectangle rect = new Rectangle(width, height);
- jmb.viewer.renderScreenImage(im.getGraphics(), rect.getSize(), rect);
+ jmb.viewer.renderScreenImage(im.getGraphics(), width, height);
im.writeImage();
}
}
// Set the colour using the current view for the associated alignframe
for (AlignmentPanel ap : _colourwith)
{
- jmb.colourBySequence(ap.av.isShowSequenceFeatures(), ap);
+ jmb.colourBySequence(ap);
}
}
}
{
final Dimension currentSize = new Dimension();
- final Rectangle rectClip = new Rectangle();
-
+ @Override
public void paintComponent(Graphics g)
{
getSize(currentSize);
- g.getClipBounds(rectClip);
if (jmb != null && jmb.fileLoadingError != null)
{
}
else
{
- jmb.viewer.renderScreenImage(g, currentSize, rectClip);
+ jmb.viewer.renderScreenImage(g, currentSize.width,
+ currentSize.height);
}
}
}
import jalview.structure.StructureSelectionManager;
import java.awt.Container;
-import java.util.BitSet;
+import java.util.Map;
import org.jmol.api.JmolAppConsoleInterface;
-import org.jmol.api.JmolViewer;
-import org.jmol.popup.JmolPopup;
-import org.openscience.jmol.app.jmolpanel.AppConsole;
+import org.jmol.java.BS;
+import org.openscience.jmol.app.jmolpanel.console.AppConsole;
public class AppJmolBinding extends JalviewJmolBinding
{
return new SequenceRenderer(((AlignmentPanel) alignment).av);
}
+ @Override
public void sendConsoleEcho(String strEcho)
{
if (console != null)
}
}
+ @Override
public void sendConsoleMessage(String strStatus)
{
if (console != null && strStatus != null)
public void updateColours(Object source)
{
- AlignmentPanel ap = (AlignmentPanel) source, topap;
+ AlignmentPanel ap = (AlignmentPanel) source;
// ignore events from panels not used to colour this view
if (!appJmolWindow.isUsedforcolourby(ap))
{
}
if (!isLoadingFromArchive())
{
- colourBySequence(ap.av.isShowSequenceFeatures(), ap);
+ colourBySequence(ap);
}
}
+ @Override
public void notifyScriptTermination(String strStatus, int msWalltime)
{
// todo - script termination doesn't happen ?
showUrl(url, "jmol");
}
- public void newJmolPopup(boolean translateLocale, String menuName,
- boolean asPopup)
+ public void newJmolPopup(String menuName)
{
- jmolpopup = new JmolPopup();
- jmolpopup.initialize(viewer, translateLocale, menuName, asPopup);
+ // jmolpopup = new JmolAwtPopup();
+ // jmolpopup.jpiInitialize((viewer), menuName);
}
- public void selectionChanged(BitSet arg0)
+ @Override
+ public void selectionChanged(BS arg0)
{
// TODO Auto-generated method stub
}
+ @Override
public void refreshPdbEntries()
{
// TODO Auto-generated method stub
}
+ @Override
public void showConsole(boolean b)
{
appJmolWindow.showConsole(b);
}
@Override
- protected JmolAppConsoleInterface createJmolConsole(JmolViewer viewer2,
+ protected JmolAppConsoleInterface createJmolConsole(
Container consolePanel, String buttonsToShow)
{
+ viewer.setJmolCallbackListener(this);
return new AppConsole(viewer, consolePanel, buttonsToShow);
}
appJmolWindow.removeAlignmentPanel(((SeqPanel) svl).ap);
}
}
+
+ @Override
+ public Map<String, Object> getJSpecViewProperty(String arg0)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
*/
package jalview.gui;
+import jalview.analysis.AlignSeq;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.RnaViewerModel;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.ext.varna.RnaModel;
+import jalview.structure.SecondaryStructureListener;
+import jalview.structure.SelectionListener;
+import jalview.structure.SelectionSource;
+import jalview.structure.StructureSelectionManager;
+import jalview.structure.VamsasSource;
+import jalview.util.Comparison;
+import jalview.util.MessageManager;
+import jalview.util.ShiftList;
+
import java.awt.BorderLayout;
import java.awt.Color;
-import java.util.ArrayList;
+import java.util.Collection;
import java.util.Hashtable;
+import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import javax.swing.JInternalFrame;
import javax.swing.JSplitPane;
import fr.orsay.lri.varna.VARNAPanel;
import fr.orsay.lri.varna.exceptions.ExceptionFileFormatOrSyntax;
+import fr.orsay.lri.varna.exceptions.ExceptionLoadingFailed;
import fr.orsay.lri.varna.exceptions.ExceptionUnmatchedClosingParentheses;
-import fr.orsay.lri.varna.interfaces.InterfaceVARNAListener;
import fr.orsay.lri.varna.interfaces.InterfaceVARNASelectionListener;
import fr.orsay.lri.varna.models.BaseList;
-import fr.orsay.lri.varna.models.VARNAConfig;
+import fr.orsay.lri.varna.models.FullBackup;
import fr.orsay.lri.varna.models.annotations.HighlightRegionAnnotation;
import fr.orsay.lri.varna.models.rna.ModeleBase;
import fr.orsay.lri.varna.models.rna.RNA;
-import jalview.bin.Cache;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.structure.SecondaryStructureListener;
-import jalview.structure.SelectionListener;
-import jalview.structure.SelectionSource;
-import jalview.structure.StructureSelectionManager;
-import jalview.structure.VamsasSource;
-import jalview.util.MessageManager;
-import jalview.util.ShiftList;
-
-public class AppVarna extends JInternalFrame implements
- InterfaceVARNAListener, SelectionListener,
- SecondaryStructureListener// implements
- // Runnable,SequenceStructureBinding,
- // ViewSetProvider
- , InterfaceVARNASelectionListener, VamsasSource
-
+public class AppVarna extends JInternalFrame implements SelectionListener,
+ SecondaryStructureListener, InterfaceVARNASelectionListener,
+ VamsasSource
{
- AppVarnaBinding vab;
+ private static final byte[] PAIRS = new byte[]
+ { '(', ')', '[', ']', '{', '}', '<', '>' };
- VARNAPanel varnaPanel;
+ private AppVarnaBinding vab;
- public String name;
+ private AlignmentPanel ap;
- public StructureSelectionManager ssm;
+ private String viewId;
+
+ private StructureSelectionManager ssm;
/*
- * public AppVarna(){ vab = new AppVarnaBinding(); initVarna(); }
+ * Lookup for sequence and annotation mapped to each RNA in the viewer. Using
+ * a linked hashmap means that order is preserved when saved to the project.
*/
+ private Map<RNA, RnaModel> models = new LinkedHashMap<RNA, RnaModel>();
+
+ private Map<RNA, ShiftList> offsets = new Hashtable<RNA, ShiftList>();
- AlignmentPanel ap;
+ private Map<RNA, ShiftList> offsetsInv = new Hashtable<RNA, ShiftList>();
- public AppVarna(String sname, SequenceI seq, String strucseq,
- String struc, String name, AlignmentPanel ap)
+ private JSplitPane split;
+
+ private VarnaHighlighter mouseOverHighlighter = new VarnaHighlighter();
+
+ private VarnaHighlighter selectionHighlighter = new VarnaHighlighter();
+
+ private class VarnaHighlighter
{
+ private HighlightRegionAnnotation _lastHighlight;
- // System.out.println("1:"+sname);
- // System.out.println("2:"+seq);
- // System.out.println("3:"+strucseq);
- // System.out.println("4:"+struc);
- // System.out.println("5:"+name);
- // System.out.println("6:"+ap);
- this.ap = ap;
- ArrayList<RNA> rnaList = new ArrayList<RNA>();
- RNA rna1 = new RNA(name);
- try
+ private RNA _lastRNAhighlighted = null;
+
+ public VarnaHighlighter()
{
- rna1.setRNA(strucseq, replaceOddGaps(struc));
- // System.out.println("The sequence is :"+rna1.getSeq());
- // System.out.println("The sequence is:"+struc);
- // System.out.println("The sequence is:"+replaceOddGaps(struc).toString());
- } catch (ExceptionUnmatchedClosingParentheses e2)
+ }
+
+ /**
+ * Constructor when restoring from Varna session, including any highlight
+ * state
+ *
+ * @param rna
+ */
+ public VarnaHighlighter(RNA rna)
{
- e2.printStackTrace();
- } catch (ExceptionFileFormatOrSyntax e3)
+ // TODO nice try but doesn't work; do we need a highlighter per model?
+ _lastRNAhighlighted = rna;
+ List<HighlightRegionAnnotation> highlights = rna.getHighlightRegion();
+ if (highlights != null && !highlights.isEmpty())
+ {
+ _lastHighlight = highlights.get(0);
+ }
+ }
+
+ public void highlightRegion(RNA rna, int start, int end)
{
- e3.printStackTrace();
+ clearLastSelection();
+ HighlightRegionAnnotation highlight = new HighlightRegionAnnotation(
+ rna.getBasesBetween(start, end));
+ rna.addHighlightRegion(highlight);
+ _lastHighlight = highlight;
+ _lastRNAhighlighted = rna;
}
- RNA trim = trimRNA(rna1, "trimmed " + sname);
- rnaList.add(trim);
- rnaList.add(rna1);
- rnas.put(seq, rna1);
- rnas.put(seq, trim);
- rna1.setName(sname + " (with gaps)");
+ public HighlightRegionAnnotation getLastHighlight()
+ {
+ return _lastHighlight;
+ }
+ /**
+ * Clears all structure selection and refreshes the display
+ */
+ public void clearSelection()
{
- seqs.put(trim, seq);
- seqs.put(rna1, seq);
+ if (_lastRNAhighlighted != null)
+ {
+ _lastRNAhighlighted.getHighlightRegion().clear();
+ vab.updateSelectedRNA(_lastRNAhighlighted);
+ _lastRNAhighlighted = null;
+ _lastHighlight = null;
+ }
+ }
- /**
- * if (false || seq.getStart()!=1) { for (RNA rshift:rnaList) { ShiftList
- * shift=offsets.get(rshift); if (shift==null) { offsets.put(rshift,
- * shift=new ShiftList());} shift.addShift(1, seq.getStart()-1);
- * offsetsInv.put(rshift, shift.getInverse()); } }
- **/
+ /**
+ * Clear the last structure selection
+ */
+ public void clearLastSelection()
+ {
+ if (_lastRNAhighlighted != null)
+ {
+ _lastRNAhighlighted.removeHighlightRegion(_lastHighlight);
+ _lastRNAhighlighted = null;
+ _lastHighlight = null;
+ }
}
- vab = new AppVarnaBinding(rnaList);
- // vab = new AppVarnaBinding(seq,struc);
- this.name = sname + " trimmed to " + name;
+ }
+
+ /**
+ * Constructor
+ *
+ * @param seq
+ * the RNA sequence
+ * @param aa
+ * the annotation with the secondary structure string
+ * @param ap
+ * the AlignmentPanel creating this object
+ */
+ public AppVarna(SequenceI seq, AlignmentAnnotation aa, AlignmentPanel ap)
+ {
+ this(ap);
+
+ String sname = aa.sequenceRef == null ? "secondary structure (alignment)"
+ : seq.getName() + " structure";
+ String theTitle = sname
+ + (aa.sequenceRef == null ? " trimmed to " + seq.getName() : "");
+ theTitle = MessageManager.formatMessage("label.varna_params",
+ new String[]
+ { theTitle });
+ setTitle(theTitle);
+
+ String gappedTitle = sname + " (with gaps)";
+ RnaModel gappedModel = new RnaModel(gappedTitle, aa, seq, null, true);
+ addModel(gappedModel, gappedTitle);
+
+ String trimmedTitle = "trimmed " + sname;
+ RnaModel trimmedModel = new RnaModel(trimmedTitle, aa, seq, null, false);
+ addModel(trimmedModel, trimmedTitle);
+ vab.setSelectedIndex(0);
+ }
+
+
+ /**
+ * Constructor that links the viewer to a parent panel (but has no structures
+ * yet - use addModel to add them)
+ *
+ * @param ap
+ */
+ protected AppVarna(AlignmentPanel ap)
+ {
+ this.ap = ap;
+ this.viewId = System.currentTimeMillis() + "." + this.hashCode();
+ vab = new AppVarnaBinding();
initVarna();
- ssm = ap.getStructureSelectionManager();
- // System.out.println(ssm.toString());
+ this.ssm = ap.getStructureSelectionManager();
ssm.addStructureViewerListener(this);
ssm.addSelectionListener(this);
addInternalFrameListener(new InternalFrameAdapter()
close();
}
});
+ }
+ /**
+ * Constructor given viewer data read from a saved project file
+ *
+ * @param model
+ * @param ap
+ * the (or a) parent alignment panel
+ */
+ public AppVarna(RnaViewerModel model, AlignmentPanel ap)
+ {
+ this(ap);
+ setTitle(model.title);
+ this.viewId = model.viewId;
+ setBounds(model.x, model.y, model.width, model.height);
+ this.split.setDividerLocation(model.dividerLocation);
}
+ /**
+ * Constructs a split pane with an empty selection list and display panel, and
+ * adds it to the desktop
+ */
public void initVarna()
{
-
- // vab.setFinishedInit(false);
- varnaPanel = vab.get_varnaPanel();
+ VARNAPanel varnaPanel = vab.get_varnaPanel();
setBackground(Color.white);
- JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true,
+ split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true,
vab.getListPanel(), varnaPanel);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(split, BorderLayout.CENTER);
- // getContentPane().add(vab.getTools(), BorderLayout.NORTH);
- varnaPanel.addVARNAListener(this);
+
varnaPanel.addSelectionListener(this);
- jalview.gui.Desktop.addInternalFrame(this,
- MessageManager.formatMessage("label.varna_params", new String[]
- { name }), getBounds().width, getBounds().height);
+ jalview.gui.Desktop.addInternalFrame(this, "", getBounds().width,
+ getBounds().height);
this.pack();
showPanel(true);
-
- }
-
- public String replaceOddGaps(String oldStr)
- {
- String patternStr = "[^([{<>}])]";
- String replacementStr = ".";
- Pattern pattern = Pattern.compile(patternStr);
- Matcher matcher = pattern.matcher(oldStr);
- String newStr = matcher.replaceAll(replacementStr);
- return newStr;
}
+ /**
+ * Constructs a new RNA model from the given one, without gaps. Also
+ * calculates and saves a 'shift list'
+ *
+ * @param rna
+ * @param name
+ * @return
+ */
public RNA trimRNA(RNA rna, String name)
{
ShiftList offset = new ShiftList();
RNA rnaTrim = new RNA(name);
try
{
- rnaTrim.setRNA(rna.getSeq(), replaceOddGaps(rna.getStructDBN()));
+ String structDBN = rna.getStructDBN(true);
+ rnaTrim.setRNA(rna.getSeq(), replaceOddGaps(structDBN));
} catch (ExceptionUnmatchedClosingParentheses e2)
{
e2.printStackTrace();
e3.printStackTrace();
}
- StringBuffer seq = new StringBuffer(rnaTrim.getSeq());
- StringBuffer struc = new StringBuffer(rnaTrim.getStructDBN());
- int ofstart = -1, sleng = rnaTrim.getSeq().length();
+ String seq = rnaTrim.getSeq();
+ StringBuilder struc = new StringBuilder(256);
+ struc.append(rnaTrim.getStructDBN(true));
+ int ofstart = -1;
+ int sleng = seq.length();
+
for (int i = 0; i < sleng; i++)
{
- // TODO: Jalview utility for gap detection java.utils.isGap()
- // TODO: Switch to jalview rna datamodel
- if (jalview.util.Comparison.isGap(seq.charAt(i)))
+ if (Comparison.isGap(seq.charAt(i)))
{
if (ofstart == -1)
{
ofstart = i;
}
+ /*
+ * mark base or base & pair in the structure with *
+ */
if (!rnaTrim.findPair(i).isEmpty())
{
int m = rnaTrim.findPair(i).get(1);
offset.addShift(offset.shift(ofstart), ofstart - sleng);
ofstart = -1;
}
- String newSeq = rnaTrim.getSeq().replace("-", "");
- rnaTrim.getSeq().replace(".", "");
+
+ /*
+ * remove the marked gaps from the structure
+ */
String newStruc = struc.toString().replace("*", "");
+ /*
+ * remove gaps from the sequence
+ */
+ String newSeq = AlignSeq.extractGaps(Comparison.GapChars, seq);
+
try
{
rnaTrim.setRNA(newSeq, newStruc);
registerOffset(rnaTrim, offset);
} catch (ExceptionUnmatchedClosingParentheses e)
{
- // TODO Auto-generated catch block
e.printStackTrace();
} catch (ExceptionFileFormatOrSyntax e)
{
- // TODO Auto-generated catch block
e.printStackTrace();
}
return rnaTrim;
}
- // needs to be many-many
- Map<RNA, SequenceI> seqs = new Hashtable<RNA, SequenceI>();
-
- Map<SequenceI, RNA> rnas = new Hashtable<SequenceI, RNA>();
-
- Map<RNA, ShiftList> offsets = new Hashtable<RNA, ShiftList>();
-
- Map<RNA, ShiftList> offsetsInv = new Hashtable<RNA, ShiftList>();
-
+ /**
+ * Save the sequence to structure mapping, and also its inverse.
+ *
+ * @param rnaTrim
+ * @param offset
+ */
private void registerOffset(RNA rnaTrim, ShiftList offset)
{
offsets.put(rnaTrim, offset);
this.setVisible(show);
}
- private boolean _started = false;
-
- public void run()
- {
- _started = true;
-
- try
- {
- initVarna();
- } catch (OutOfMemoryError oomerror)
- {
- new OOMWarning("When trying to open the Varna viewer!", oomerror);
- } catch (Exception ex)
- {
- Cache.log.error("Couldn't open Varna viewer!", ex);
- }
- }
-
- @Override
- public void onUINewStructure(VARNAConfig v, RNA r)
- {
-
- }
-
- @Override
- public void onWarningEmitted(String s)
- {
- // TODO Auto-generated method stub
-
- }
-
- private class VarnaHighlighter
- {
- private HighlightRegionAnnotation _lastHighlight;
-
- private RNA _lastRNAhighlighted = null;
-
- public void highlightRegion(RNA rna, int start, int end)
- {
- clearSelection(null);
- HighlightRegionAnnotation highlight = new HighlightRegionAnnotation(
- rna.getBasesBetween(start, end));
- rna.addHighlightRegion(highlight);
- _lastHighlight = highlight;
- _lastRNAhighlighted = rna;
-
- }
-
- public HighlightRegionAnnotation getLastHighlight()
- {
- return _lastHighlight;
- }
-
- public RNA getLastRNA()
- {
- return _lastRNAhighlighted;
- }
-
- public void clearSelection(AppVarnaBinding vab)
- {
- if (_lastRNAhighlighted != null)
- {
- _lastRNAhighlighted.removeHighlightRegion(_lastHighlight);
- if (vab != null)
- {
- vab.updateSelectedRNA(_lastRNAhighlighted);
- }
- _lastRNAhighlighted = null;
- _lastHighlight = null;
-
- }
- }
- }
-
- VarnaHighlighter mouseOverHighlighter = new VarnaHighlighter(),
- selectionHighlighter = new VarnaHighlighter();
-
/**
* If a mouseOver event from the AlignmentPanel is noticed the currently
* selected RNA in the VARNA window is highlighted at the specific position.
* To be able to remove it before the next highlight it is saved in
* _lastHighlight
+ *
+ * @param sequence
+ * @param index
+ * the aligned sequence position (base 0)
+ * @param position
+ * the dataset sequence position (base 1)
*/
@Override
- public void mouseOverSequence(SequenceI sequence, int index)
+ public void mouseOverSequence(SequenceI sequence, final int index,
+ final int position)
{
RNA rna = vab.getSelectedRNA();
- if (seqs.get(rna) == sequence)
+ if (rna == null)
{
- ShiftList shift = offsets.get(rna);
- if (shift != null)
- {
- // System.err.print("Orig pos:"+index);
- index = shift.shift(index);
- // System.err.println("\nFinal pos:"+index);
- }
- mouseOverHighlighter.highlightRegion(rna, index, index);
+ return;
+ }
+ RnaModel rnaModel = models.get(rna);
+ if (rnaModel.seq == sequence)
+ {
+ int highlightPos = rnaModel.gapped ? index : position - 1;
+ mouseOverHighlighter.highlightRegion(rna, highlightPos, highlightPos);
vab.updateSelectedRNA(rna);
}
}
@Override
- public void onStructureRedrawn()
- {
- // TODO Auto-generated method stub
-
- }
-
- @Override
public void selection(SequenceGroup seqsel, ColumnSelection colsel,
SelectionSource source)
{
// TODO - reuse many-one panel-view system in jmol viewer
return;
}
+ RNA rna = vab.getSelectedRNA();
+ if (rna == null)
+ {
+ return;
+ }
if (seqsel != null && seqsel.getSize() > 0)
{
int start = seqsel.getStartRes(), end = seqsel.getEndRes();
- RNA rna = vab.getSelectedRNA();
ShiftList shift = offsets.get(rna);
if (shift != null)
{
}
else
{
- selectionHighlighter.clearSelection(vab);
+ selectionHighlighter.clearSelection();
}
}
+ /**
+ * Respond to a change of the base hovered over in the Varna viewer
+ */
@Override
- public void onHoverChanged(ModeleBase arg0, ModeleBase arg1)
+ public void onHoverChanged(ModeleBase previousBase, ModeleBase newBase)
{
RNA rna = vab.getSelectedRNA();
ShiftList shift = offsetsInv.get(rna);
- SequenceI seq = seqs.get(rna);
- if (arg1 != null && seq != null)
+ SequenceI seq = models.get(rna).seq;
+ if (newBase != null && seq != null)
{
if (shift != null)
{
- int i = shift.shift(arg1.getIndex());
+ int i = shift.shift(newBase.getIndex());
// System.err.println("shifted "+(arg1.getIndex())+" to "+i);
ssm.mouseOverVamsasSequence(seq, i, this);
}
else
{
- ssm.mouseOverVamsasSequence(seq, arg1.getIndex(), this);
+ ssm.mouseOverVamsasSequence(seq, newBase.getIndex(), this);
}
}
}
}
- @Override
- public void onTranslationChanged()
+ /**
+ * Returns the path to a temporary file containing a representation of the
+ * state of one Varna display
+ *
+ * @param rna
+ *
+ * @return
+ */
+ public String getStateInfo(RNA rna)
{
- // TODO Auto-generated method stub
+ return vab.getStateInfo(rna);
+ }
+ public AlignmentPanel getAlignmentPanel()
+ {
+ return ap;
}
- @Override
- public void onZoomLevelChanged()
+ public String getViewId()
+ {
+ return viewId;
+ }
+
+ /**
+ * Returns true if any of the viewer's models (not necessarily the one
+ * currently displayed) is for the given sequence
+ *
+ * @param seq
+ * @return
+ */
+ public boolean isListeningFor(SequenceI seq)
{
- // TODO Auto-generated method stub
+ for (RnaModel model : models.values())
+ {
+ if (model.seq == seq)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+ /**
+ * Returns a value representing the horizontal split divider location
+ *
+ * @return
+ */
+ public int getDividerLocation()
+ {
+ return split == null ? 0 : split.getDividerLocation();
}
/**
protected void close()
{
/*
- * Deregister as a listener, to free references to this object
+ * Deregister as a listener, to release references to this object
*/
if (ssm != null)
{
}
}
+ /**
+ * Returns the secondary structure annotation that this viewer displays for
+ * the given sequence
+ *
+ * @return
+ */
+ public AlignmentAnnotation getAnnotation(SequenceI seq)
+ {
+ for (RnaModel model : models.values())
+ {
+ if (model.seq == seq)
+ {
+ return model.ann;
+ }
+ }
+ return null;
+ }
+
+ public int getSelectedIndex()
+ {
+ return this.vab.getSelectedIndex();
+ }
+
+ /**
+ * Returns the set of models shown by the viewer
+ *
+ * @return
+ */
+ public Collection<RnaModel> getModels()
+ {
+ return models.values();
+ }
+
+ /**
+ * Add a model (e.g. loaded from project file)
+ *
+ * @param rna
+ * @param modelName
+ */
+ public RNA addModel(RnaModel model, String modelName)
+ {
+ if (!model.ann.isValidStruc())
+ {
+ throw new IllegalArgumentException("Invalid RNA structure annotation");
+ }
+
+ /*
+ * opened on request in Jalview session
+ */
+ RNA rna = new RNA(modelName);
+ String struc = model.ann.getRNAStruc();
+ struc = replaceOddGaps(struc);
+
+ String strucseq = model.seq.getSequenceAsString();
+ try
+ {
+ rna.setRNA(strucseq, struc);
+ } catch (ExceptionUnmatchedClosingParentheses e2)
+ {
+ e2.printStackTrace();
+ } catch (ExceptionFileFormatOrSyntax e3)
+ {
+ e3.printStackTrace();
+ }
+
+ if (!model.gapped)
+ {
+ rna = trimRNA(rna, modelName);
+ }
+ models.put(rna, new RnaModel(modelName, model.ann, model.seq, rna,
+ model.gapped));
+ vab.addStructure(rna);
+ return rna;
+ }
+
+ /**
+ * Constructs a shift list that describes the gaps in the sequence
+ *
+ * @param seq
+ * @return
+ */
+ protected ShiftList buildOffset(SequenceI seq)
+ {
+ // TODO refactor to avoid duplication with trimRNA()
+ // TODO JAL-1789 bugs in use of ShiftList here
+ ShiftList offset = new ShiftList();
+ int ofstart = -1;
+ int sleng = seq.getLength();
+ char[] seqChars = seq.getSequence();
+
+ for (int i = 0; i < sleng; i++)
+ {
+ if (Comparison.isGap(seqChars[i]))
+ {
+ if (ofstart == -1)
+ {
+ ofstart = i;
+ }
+ }
+ else
+ {
+ if (ofstart > -1)
+ {
+ offset.addShift(offset.shift(ofstart), ofstart - i);
+ ofstart = -1;
+ }
+ }
+ }
+ // final gap
+ if (ofstart > -1)
+ {
+ offset.addShift(offset.shift(ofstart), ofstart - sleng);
+ ofstart = -1;
+ }
+ return offset;
+ }
+
+ /**
+ * Set the selected index in the model selection list
+ *
+ * @param selectedIndex
+ */
+ public void setInitialSelection(final int selectedIndex)
+ {
+ /*
+ * empirically it needs a second for Varna/AWT to finish loading/drawing
+ * models for this to work; SwingUtilities.invokeLater _not_ a solution;
+ * explanation and/or better solution welcome!
+ */
+ synchronized (this)
+ {
+ try
+ {
+ wait(1000);
+ } catch (InterruptedException e)
+ {
+ // meh
+ }
+ }
+ vab.setSelectedIndex(selectedIndex);
+ }
+
+
+ /**
+ * Add a model with associated Varna session file
+ *
+ * @param rna
+ * @param modelName
+ */
+ public RNA addModelSession(RnaModel model, String modelName,
+ String sessionFile)
+ {
+ if (!model.ann.isValidStruc())
+ {
+ throw new IllegalArgumentException("Invalid RNA structure annotation");
+ }
+
+ try
+ {
+ FullBackup fromSession = vab.vp.loadSession(sessionFile);
+ vab.addStructure(fromSession.rna, fromSession.config);
+ RNA rna = fromSession.rna;
+ // copy the model, but now including the RNA object
+ RnaModel newModel = new RnaModel(model.title, model.ann, model.seq,
+ rna, model.gapped);
+ if (!model.gapped)
+ {
+ registerOffset(rna, buildOffset(model.seq));
+ }
+ models.put(rna, newModel);
+ // capture rna selection state when saved
+ selectionHighlighter = new VarnaHighlighter(rna);
+ return fromSession.rna;
+ } catch (ExceptionLoadingFailed e)
+ {
+ System.err
+ .println("Error restoring Varna session: " + e.getMessage());
+ return null;
+ }
+ }
+
+
+ /**
+ * Replace everything except RNA secondary structure characters with a period
+ *
+ * @param s
+ * @return
+ */
+ public static String replaceOddGaps(String s)
+ {
+ if (s == null)
+ {
+ return null;
+ }
+
+ // this is measured to be 10 times faster than a regex replace
+ boolean changed = false;
+ byte[] bytes = s.getBytes();
+ for (int i = 0; i < bytes.length; i++)
+ {
+ boolean ok = false;
+ // todo check for ((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z')) if
+ // wanted also
+ for (int j = 0; !ok && (j < PAIRS.length); j++)
+ {
+ if (bytes[i] == PAIRS[j])
+ {
+ ok = true;
+ }
+ }
+ if (!ok)
+ {
+ bytes[i] = '.';
+ changed = true;
+ }
+ }
+ return changed ? new String(bytes) : s;
+ }
}
*/
package jalview.gui;
+import jalview.datamodel.SequenceI;
+import jalview.ext.varna.JalviewVarnaBinding;
+import jalview.structure.AtomSpec;
+import jalview.util.MessageManager;
+
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
-import java.awt.Font;
-import java.awt.GridLayout;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTarget;
-import java.awt.dnd.DropTargetDragEvent;
+import java.awt.dnd.DropTargetAdapter;
import java.awt.dnd.DropTargetDropEvent;
-import java.awt.dnd.DropTargetEvent;
-import java.awt.dnd.DropTargetListener;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
import java.awt.event.ComponentEvent;
+import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.swing.DefaultListModel;
import javax.swing.DefaultListSelectionModel;
-import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
-import javax.swing.JTextField;
import javax.swing.ListModel;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import fr.orsay.lri.varna.VARNAPanel;
import fr.orsay.lri.varna.components.ReorderableJList;
-import fr.orsay.lri.varna.exceptions.ExceptionFileFormatOrSyntax;
import fr.orsay.lri.varna.exceptions.ExceptionLoadingFailed;
+import fr.orsay.lri.varna.exceptions.ExceptionNAViewAlgorithm;
import fr.orsay.lri.varna.exceptions.ExceptionNonEqualLength;
-import fr.orsay.lri.varna.exceptions.ExceptionUnmatchedClosingParentheses;
-import fr.orsay.lri.varna.interfaces.InterfaceVARNAListener;
import fr.orsay.lri.varna.models.FullBackup;
import fr.orsay.lri.varna.models.VARNAConfig;
-import fr.orsay.lri.varna.models.rna.Mapping;
import fr.orsay.lri.varna.models.rna.RNA;
-import jalview.datamodel.SequenceI;
-import jalview.structure.AtomSpec;
-import jalview.util.MessageManager;
-
-public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding
- implements DropTargetListener, InterfaceVARNAListener,
- MouseListener
+public class AppVarnaBinding extends JalviewVarnaBinding
{
-
- /**
- *
- */
- // private static final long serialVersionUID = -790155708306987257L;
-
- private String DEFAULT_SEQUENCE = "CAGCACGACACUAGCAGUCAGUGUCAGACUGCAIACAGCACGACACUAGCAGUCAGUGUCAGACUGCAIACAGCACGACACUAGCAGUCAGUGUCAGACUGCAIA";
-
- private String DEFAULT_STRUCTURE1 = "..(((((...(((((...(((((...(((((.....)))))...))))).....(((((...(((((.....)))))...))))).....)))))...)))))..";
-
- private String DEFAULT_STRUCTURE2 = "..(((((...(((((...(((((........(((((...(((((.....)))))...)))))..................))))).....)))))...)))))..";
-
public VARNAPanel vp;
- protected JPanel _tools = new JPanel();
-
- private JPanel _input = new JPanel();
-
- private JPanel _seqPanel = new JPanel();
-
- private JPanel _strPanel = new JPanel();
-
- private JLabel _info = new JLabel();
-
- private JTextField _str = new JTextField();
-
- private JTextField _seq = new JTextField();
-
- private JLabel _strLabel = new JLabel(
- MessageManager.getString("label.str"));
-
- private JLabel _seqLabel = new JLabel(
- MessageManager.getString("label.seq"));
-
- private JButton _createButton = new JButton(
- MessageManager.getString("action.create"));
-
- private JButton _updateButton = new JButton(
- MessageManager.getString("action.update"));
-
- private JButton _deleteButton = new JButton(
- MessageManager.getString("action.delete"));
-
- private JButton _duplicateButton = new JButton(
- MessageManager.getString("action.snapshot"));
-
protected JPanel _listPanel = new JPanel();
private ReorderableJList _sideList = null;
private BackupHolder _rnaList;
- /*
- * public AppVarnaBinding() { //super("VARNA in Jalview");
- * //this.set_seq("ATGC"); //this.set_str(".()."); //RNAPanelDemoInit();
- *
- * //initVarna("ATGCATGATATATATATAT","....((((...))))....");
- * initVarna(this.DEFAULT_SEQUENCE,this.DEFAULT_STRUCTURE1); }
+ /**
+ * Constructor
*/
-
- public AppVarnaBinding(String seq, String struc)
- {
- // super("VARNA in Jalview");
- initVarna(seq, struc);
-
- }
-
- public AppVarnaBinding(ArrayList<RNA> rnaList)
+ public AppVarnaBinding()
{
-
- // super("VARNA in Jalview");
- initVarnaEdit(rnaList);
+ init();
}
- private void initVarna(String seq, String str)
+ /**
+ * Constructs the VARNAPanel and an (empty) selection list of structures to
+ * show in it
+ */
+ private void init()
{
+ DefaultListModel<FullBackup> dlm = new DefaultListModel<FullBackup>();
- DefaultListModel dlm = new DefaultListModel();
+ int marginTools = 40;
DefaultListSelectionModel m = new DefaultListSelectionModel();
m.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
_sideList = new ReorderableJList();
_sideList.setModel(dlm);
- _sideList.addMouseListener(this);
- _sideList.setSelectionModel(m);
- _sideList.setPreferredSize(new Dimension(100, 0));
- _sideList.addListSelectionListener(new ListSelectionListener()
+ _sideList.addMouseListener(new MouseAdapter()
{
- public void valueChanged(ListSelectionEvent arg0)
- {
- if (!_sideList.isSelectionEmpty() && !arg0.getValueIsAdjusting())
- {
- FullBackup sel = (FullBackup) _sideList.getSelectedValue();
- Mapping map = Mapping.DefaultOutermostMapping(vp.getRNA()
- .getSize(), sel.rna.getSize());
- vp.showRNAInterpolated(sel.rna, sel.config, map);
- _seq.setText(sel.rna.getSeq());
- _str.setText(sel.rna.getStructDBN());
- }
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ AppVarnaBinding.this.mouseClicked(e);
}
});
-
- _rnaList = new BackupHolder(dlm, _sideList);
- RNA _RNA1 = new RNA("User defined 1");
-
- try
- {
-
- vp = new VARNAPanel("0", ".");
- _RNA1.setRNA(seq, str);
- _RNA1.drawRNARadiate(vp.getConfig());
- } catch (ExceptionNonEqualLength e)
- {
- vp.errorDialog(e);
- } catch (ExceptionUnmatchedClosingParentheses e2)
- {
- e2.printStackTrace();
- } catch (ExceptionFileFormatOrSyntax e3)
- {
- e3.printStackTrace();
- }
- vp.setPreferredSize(new Dimension(400, 400));
- _rnaList.add(vp.getConfig().clone(), _RNA1, generateDefaultName(), true);
-
- // TODO setBackground(_backgroundColor);
- vp.setBackground(_backgroundColor);
-
- // TODO getContentPane().setLayout(new BorderLayout());
- // TODO getContentPane().add(vp, BorderLayout.CENTER);
-
- // setVisible(true);
- vp.addVARNAListener(this);
- }
-
- private void initVarnaEdit(ArrayList<RNA> rnaInList)
- {
-
- DefaultListModel dlm = new DefaultListModel();
-
- int marginTools = 40;
-
- DefaultListSelectionModel m = new DefaultListSelectionModel();
- m.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- m.setLeadAnchorNotificationEnabled(false);
-
- _sideList = new ReorderableJList();
- _sideList.setModel(dlm);
- _sideList.addMouseListener(this);
_sideList.setSelectionModel(m);
_sideList.setPreferredSize(new Dimension(100, 0));
_sideList.addListSelectionListener(new ListSelectionListener()
{
- public void valueChanged(ListSelectionEvent arg0)
+ public void valueChanged(ListSelectionEvent evt)
{
- // System.out.println(arg0);
- if (!_sideList.isSelectionEmpty() && !arg0.getValueIsAdjusting())
- {
- FullBackup sel = (FullBackup) _sideList.getSelectedValue();
- Mapping map = Mapping.DefaultOutermostMapping(vp.getRNA()
- .getSize(), sel.rna.getSize());
- // vp.showRNAInterpolated(sel.rna, sel.config, map);
- vp.showRNA(sel.rna, sel.config);
- // _seq.setText(sel.rna.getSeq());
- _str.setText(sel.rna.getStructDBN());
- }
+ changeSelectedStructure_actionPerformed(evt);
}
});
_rnaList = new BackupHolder(dlm, _sideList);
try
{
-
vp = new VARNAPanel("0", ".");
- for (int i = 0; i < rnaInList.size(); i++)
- {
- rnaInList.get(i).drawRNARadiate(vp.getConfig());
-
- }
} catch (ExceptionNonEqualLength e)
{
vp.errorDialog(e);
}
vp.setPreferredSize(new Dimension(400, 400));
- for (int i = 0; i < rnaInList.size(); i++)
- {
- if (i < rnaInList.size() - 1)
- {
- _rnaList.add(vp.getConfig().clone(), rnaInList.get(i), rnaInList
- .get(i).getName());
- }
- else
- {
- _rnaList.add(vp.getConfig().clone(), rnaInList.get(i), rnaInList
- .get(i).getName(), true);
- }
- }
-
- /*
- * _rnaList.add(vp.getConfig().clone(),_RNA2,generateDefaultName());
- * _rnaList.add(vp.getConfig().clone(),_RNA1,generateDefaultName(),true);
- */
JScrollPane listScroller = new JScrollPane(_sideList);
listScroller.setPreferredSize(new Dimension(150, 0));
vp.setBackground(_backgroundColor);
- Font textFieldsFont = Font.decode("MonoSpaced-PLAIN-12");
-
- // _seqLabel.setHorizontalTextPosition(JLabel.LEFT);
- // _seqLabel.setPreferredSize(new Dimension(marginTools, 15));
- _seq.setFont(textFieldsFont);
- _seq.setText(rnaInList.get(0).getSeq());
-
- _updateButton.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- FullBackup sel = (FullBackup) _sideList.getSelectedValue();
- sel.rna.setSequence("A");
- }
- });
-
- // _seqPanel.setLayout(new BorderLayout());
- // _seqPanel.add(_seqLabel, BorderLayout.WEST);
- // _seqPanel.add(_seq, BorderLayout.CENTER);
-
- _strLabel.setPreferredSize(new Dimension(marginTools, 15));
- _strLabel.setHorizontalTextPosition(JLabel.LEFT);
- _str.setFont(textFieldsFont);
- _strPanel.setLayout(new BorderLayout());
- _strPanel.add(_strLabel, BorderLayout.WEST);
- _strPanel.add(_str, BorderLayout.CENTER);
-
- _input.setLayout(new GridLayout(1, 0));
- // _input.add(_seqPanel);
- _input.add(_strPanel);
-
- JPanel goPanel = new JPanel();
- goPanel.setLayout(new BorderLayout());
-
- _tools.setLayout(new BorderLayout());
- _tools.add(_input, BorderLayout.CENTER);
- // _tools.add(_info, BorderLayout.SOUTH);
- _tools.add(goPanel, BorderLayout.EAST);
-
- /*
- * _deleteButton.addActionListener(new ActionListener() { public void
- * actionPerformed(ActionEvent e) { _rnaList.removeSelected(); } });
- * _duplicateButton.addActionListener(new ActionListener() { public void
- * actionPerformed(ActionEvent e) {
- * _rnaList.add((VARNAConfig)vp.getConfig().
- * clone(),vp.getRNA().clone(),vp.getRNA
- * ().getName()+"-"+DateFormat.getTimeInstance(DateFormat.LONG).format(new
- * Date()),true); }});
- */
- goPanel.add(_updateButton, BorderLayout.CENTER);
-
- JPanel ops = new JPanel();
- ops.setLayout(new GridLayout(1, 2));
- ops.add(_deleteButton);
- ops.add(_duplicateButton);
-
JLabel j = new JLabel(
MessageManager.getString("label.structures_manager"),
JLabel.CENTER);
_listPanel.setLayout(new BorderLayout());
- // _listPanel.add(ops, BorderLayout.SOUTH);
_listPanel.add(j, BorderLayout.NORTH);
_listPanel.add(listScroller, BorderLayout.CENTER);
- // JSplitPane split = new
- // JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,_listPanel,vp);
- /**
- * TODO getContentPane().setLayout(new BorderLayout());
- * getContentPane().add(split, BorderLayout.CENTER);
- * getContentPane().add(_tools, BorderLayout.NORTH);
- */
-
- // TODO setVisible(true);
- DropTarget dt = new DropTarget(vp, this);
-
- vp.addVARNAListener(this);
- }
-
- public JPanel getTools()
- {
- return _tools;
+ new DropTarget(vp, new DropTargetAdapter() {
+ @Override
+ public void drop(DropTargetDropEvent dtde)
+ {
+ AppVarnaBinding.this.drop(dtde);
+ }
+ });
}
public JPanel getListPanel()
}
/**
- * TODO: Is it effective to transfer the whole RNA?
+ * Returns the currently selected RNA, or null if none selected
*
- * @return Currently selected RNA
+ * @return
*/
public RNA getSelectedRNA()
{
- return _rnaList.getElementAt(_sideList.getSelectedIndex()).rna;
+ int selectedIndex = _sideList.getSelectedIndex();
+ if (selectedIndex < 0)
+ {
+ return null;
+ }
+ FullBackup selected = _rnaList.getElementAt(selectedIndex);
+ return selected.rna;
}
/**
vp.showRNA(rnaEdit);
}
- /*
- * private void RNAPanelDemoInit() { DefaultListModel dlm = new
- * DefaultListModel();
- *
- *
- * int marginTools = 40;
- *
- * DefaultListSelectionModel m = new DefaultListSelectionModel();
- * m.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- * m.setLeadAnchorNotificationEnabled(false);
- *
- *
- * _sideList = new ReorderableJList(); _sideList.setModel(dlm);
- * _sideList.addMouseListener(this); _sideList.setSelectionModel(m);
- * _sideList.setPreferredSize(new Dimension(100, 0));
- * _sideList.addListSelectionListener( new ListSelectionListener(){ public
- * void valueChanged(ListSelectionEvent arg0) { //System.out.println(arg0); if
- * (!_sideList.isSelectionEmpty() && !arg0.getValueIsAdjusting()) { FullBackup
- * sel = (FullBackup) _sideList.getSelectedValue(); Mapping map =
- * Mapping.DefaultOutermostMapping(vp.getRNA().getSize(), sel.rna.getSize());
- * vp.showRNAInterpolated(sel.rna,sel.config,map);
- * _seq.setText(sel.rna.getSeq()); _str.setText(sel.rna.getStructDBN()); } }
- * });
- *
- * _rnaList = new BackupHolder(dlm,_sideList); RNA _RNA1 = new
- * RNA("User defined 1"); RNA _RNA2 = new RNA("User defined 2"); try { vp =
- * new VARNAPanel("0","."); _RNA1.setRNA(DEFAULT_SEQUENCE,
- * DEFAULT_STRUCTURE1); _RNA1.drawRNARadiate(vp.getConfig());
- * _RNA2.setRNA(DEFAULT_SEQUENCE, DEFAULT_STRUCTURE2);
- * _RNA2.drawRNARadiate(vp.getConfig()); } catch (ExceptionNonEqualLength e) {
- * vp.errorDialog(e); } catch (ExceptionUnmatchedClosingParentheses e2) {
- * e2.printStackTrace(); } catch (ExceptionFileFormatOrSyntax e3) {
- * e3.printStackTrace(); } vp.setPreferredSize(new Dimension(400, 400));
- * _rnaList.add(vp.getConfig().clone(),_RNA2,generateDefaultName());
- * _rnaList.add(vp.getConfig().clone(),_RNA1,generateDefaultName(),true);
- *
- * JScrollPane listScroller = new JScrollPane(_sideList);
- * listScroller.setPreferredSize(new Dimension(150, 0));
- *
- * setBackground(_backgroundColor); vp.setBackground(_backgroundColor);
- *
- *
- * Font textFieldsFont = Font.decode("MonoSpaced-PLAIN-12");
- *
- * _seqLabel.setHorizontalTextPosition(JLabel.LEFT);
- * _seqLabel.setPreferredSize(new Dimension(marginTools, 15));
- * _seq.setFont(textFieldsFont); _seq.setText(DEFAULT_SEQUENCE);
- *
- * _createButton.addActionListener(new ActionListener() { public void
- * actionPerformed(ActionEvent e) { try { RNA nRNA = new
- * RNA(generateDefaultName()); nRNA.setRNA(_seq.getText(), _str.getText());
- * nRNA.drawRNARadiate(vp.getConfig()); _rnaList.add(new
- * VARNAConfig(),nRNA,true); } catch (ExceptionUnmatchedClosingParentheses e1)
- * { JOptionPane.showMessageDialog(vp, e1.getMessage(),"Error",
- * JOptionPane.ERROR_MESSAGE); } catch (ExceptionFileFormatOrSyntax e1) {
- * JOptionPane.showMessageDialog(vp, e1.getMessage(),"Error",
- * JOptionPane.ERROR_MESSAGE); } } });
- *
- *
- * _seqPanel.setLayout(new BorderLayout()); _seqPanel.add(_seqLabel,
- * BorderLayout.WEST); _seqPanel.add(_seq, BorderLayout.CENTER);
- *
- * _strLabel.setPreferredSize(new Dimension(marginTools, 15));
- * _strLabel.setHorizontalTextPosition(JLabel.LEFT);
- * _str.setFont(textFieldsFont); _strPanel.setLayout(new BorderLayout());
- * _strPanel.add(_strLabel, BorderLayout.WEST); _strPanel.add(_str,
- * BorderLayout.CENTER);
- *
- * _input.setLayout(new GridLayout(2, 0)); _input.add(_seqPanel);
- * _input.add(_strPanel);
- *
- * JPanel goPanel = new JPanel(); goPanel.setLayout(new BorderLayout());
- *
- * _tools.setLayout(new BorderLayout()); _tools.add(_input,
- * BorderLayout.CENTER); _tools.add(_info, BorderLayout.SOUTH);
- * _tools.add(goPanel, BorderLayout.EAST);
- *
- * _deleteButton.addActionListener(new ActionListener() { public void
- * actionPerformed(ActionEvent e) { _rnaList.removeSelected(); } });
- * _duplicateButton.addActionListener(new ActionListener() { public void
- * actionPerformed(ActionEvent e) {
- * _rnaList.add((VARNAConfig)vp.getConfig().clone
- * (),vp.getRNA().clone(),vp.getRNA
- * ().getName()+"-"+DateFormat.getTimeInstance(DateFormat.LONG).format(new
- * Date()),true); }});
- *
- * JPanel ops = new JPanel(); ops.setLayout(new GridLayout(1,2));
- * ops.add(_deleteButton); ops.add(_duplicateButton);
- *
- * JLabel j = new JLabel("Structures Manager",JLabel.CENTER);
- * _listPanel.setLayout(new BorderLayout());
- *
- * _listPanel.add(ops,BorderLayout.SOUTH);
- * _listPanel.add(j,BorderLayout.NORTH);
- * _listPanel.add(listScroller,BorderLayout.CENTER);
- *
- * goPanel.add(_createButton, BorderLayout.CENTER);
- *
- * JSplitPane split = new
- * JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,_listPanel,vp);
- * getContentPane().setLayout(new BorderLayout()); getContentPane().add(split,
- * BorderLayout.CENTER); getContentPane().add(_tools, BorderLayout.NORTH);
- *
- * setVisible(true); DropTarget dt = new DropTarget(vp, this);
- *
- * vp.addVARNAListener(this); }
- */
public static String generateDefaultName()
{
return "User file #" + _nextID++;
}
- public RNA getRNA()
- {
- return (RNA) _sideList.getSelectedValue();
- }
-
public String[][] getParameterInfo()
{
String[][] info =
return info;
}
- public void init()
- {
- vp.setBackground(_backgroundColor);
- _error = true;
- }
-
@SuppressWarnings("unused")
private Color getSafeColor(String col, Color def)
{
vp = surface;
}
- public String get_seq()
- {
- return _seq.getText();
- }
-
- public void set_seq(String _seq)
- {
- this._seq.setText(_seq);
- }
-
- public String get_str()
- {
- return _str.getText();
- }
-
- public void set_str(String _str)
- {
- this._str.setText(_str);
- }
-
- public JLabel get_info()
- {
- return _info;
- }
-
- public void set_info(JLabel _info)
- {
- this._info = _info;
- }
-
- /*
- * public static void main(String[] args) { AppVarnaBinding d = new
- * AppVarnaBinding(); d.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- * d.pack(); d.setVisible(true); }
- */
-
- public void dragEnter(DropTargetDragEvent arg0)
- {
- // TODO Auto-generated method stub
-
- }
-
- public void dragExit(DropTargetEvent arg0)
- {
- // TODO Auto-generated method stub
-
- }
-
- public void dragOver(DropTargetDragEvent arg0)
- {
- // TODO Auto-generated method stub
-
- }
-
public void drop(DropTargetDropEvent dtde)
{
try
if (c instanceof VARNAPanel)
{
String path = o.toString();
- VARNAPanel vp = (VARNAPanel) c;
+ VARNAPanel varnaPanel = (VARNAPanel) c;
try
{
FullBackup bck = VARNAPanel.importSession(path);
.loadSecStr(path);
for (RNA r : mdls)
{
- r.drawRNA(vp.getConfig());
+ r.drawRNA(varnaPanel.getConfig());
String name = r.getName();
if (name.equals(""))
{
{
name += " (Model " + mn++ + ")";
}
- _rnaList.add(vp.getConfig().clone(), r, name, true);
+ _rnaList.add(varnaPanel.getConfig().clone(), r, name, true);
}
}
}
}
- public void dropActionChanged(DropTargetDragEvent arg0)
- {
- }
-
private class BackupHolder
{
- private DefaultListModel _rnaList;
+ private DefaultListModel<FullBackup> _rnalist;
- private ArrayList<RNA> _rnas = new ArrayList<RNA>();
+ private List<RNA> _rnas = new ArrayList<RNA>();
JList _l;
- public BackupHolder(DefaultListModel rnaList, JList l)
+ public BackupHolder(DefaultListModel<FullBackup> rnaList, JList l)
{
- _rnaList = rnaList;
+ _rnalist = rnaList;
_l = l;
}
- public void add(VARNAConfig c, RNA r)
- {
- add(c, r, r.getName(), false);
- }
-
- public void add(VARNAConfig c, RNA r, boolean select)
- {
- add(c, r, r.getName(), select);
- }
-
public void add(VARNAConfig c, RNA r, String name)
{
add(c, r, name, false);
}
+ /**
+ * Adds an entry to the end of the selection list and (optionally) sets it
+ * as selected
+ *
+ * @param c
+ * @param r
+ * @param name
+ * @param select
+ */
public void add(VARNAConfig c, RNA r, String name, boolean select)
{
if (select)
{
- _l.removeSelectionInterval(0, _rnaList.size());
+ _l.removeSelectionInterval(0, _rnalist.size());
}
if (name.equals(""))
{
name = generateDefaultName();
}
FullBackup bck = new FullBackup(c, r, name);
- _rnas.add(0, r);
- _rnaList.add(0, bck);
+ _rnas.add(r);
+ _rnalist.addElement(bck);
if (select)
{
_l.setSelectedIndex(0);
}
}
- public void remove(int i)
- {
- _rnas.remove(i);
- _rnaList.remove(i);
-
- }
-
- public DefaultListModel getModel()
- {
- return _rnaList;
- }
-
- public boolean contains(RNA r)
- {
- return _rnas.contains(r);
- }
-
- /*
- * public int getSize() { return _rnaList.getSize(); }
- */
public FullBackup getElementAt(int i)
{
- return (FullBackup) _rnaList.getElementAt(i);
- }
-
- public void removeSelected()
- {
- int i = _l.getSelectedIndex();
- if (i != -1)
- {
- if (_rnaList.getSize() == 1)
- {
- RNA r = new RNA();
- try
- {
- r.setRNA(" ", ".");
- } catch (ExceptionUnmatchedClosingParentheses e1)
- {
- } catch (ExceptionFileFormatOrSyntax e1)
- {
- }
- vp.showRNA(r);
- vp.repaint();
- }
- else
- {
- int newi = i + 1;
- if (newi == _rnaList.getSize())
- {
- newi = _rnaList.getSize() - 2;
- }
- FullBackup bck = (FullBackup) _rnaList.getElementAt(newi);
- _l.setSelectedValue(bck, true);
- }
- _rnaList.remove(i);
- }
-
+ return _rnalist.getElementAt(i);
}
}
- public void onLayoutChanged()
- {
- // TODO Auto-generated method stub
-
- }
-
- public void onUINewStructure(VARNAConfig v, RNA r)
- {
- // patch to fix infinite loop
- // The problem is that onUINewStructure is called when user clicks
- // check with Yann about whether Jalview should do anything with this event.
- // e.g. if user has used VARNA's menu to import a structure .. Jalview may
- // need to be told which structure is displayed.
-
- // _rnaList.add(v, r, "", true);
- }
-
- public void onWarningEmitted(String s)
- {
- }
-
public void mouseClicked(MouseEvent e)
{
if (e.getClickCount() == 2)
{
int index = _sideList.locationToIndex(e.getPoint());
- ListModel dlm = _sideList.getModel();
- FullBackup item = (FullBackup) dlm.getElementAt(index);
- ;
+ ListModel<FullBackup> dlm = _sideList.getModel();
+ // FullBackup item = dlm.getElementAt(index);
+
_sideList.ensureIndexIsVisible(index);
/*
* TODO Object newName = JOptionPane.showInputDialog( this,
}
}
- public void mouseEntered(MouseEvent arg0)
- {
- }
-
- public void mouseExited(MouseEvent arg0)
- {
- }
-
- public void mousePressed(MouseEvent arg0)
- {
- }
-
- public void mouseReleased(MouseEvent arg0)
- {
- }
-
@Override
public String[] getPdbFile()
{
}
@Override
- public void onStructureRedrawn()
+ public void highlightAtoms(List<AtomSpec> atoms)
{
}
@Override
- public void onZoomLevelChanged()
+ public boolean isListeningFor(SequenceI seq)
{
+ return true;
}
- @Override
- public void onTranslationChanged()
+ /**
+ * Returns the path to a temporary file containing a representation of the
+ * state of the Varna display, or null on any error
+ *
+ * @param rna
+ * @param jds
+ *
+ * @return
+ */
+ public String getStateInfo(RNA rna)
{
+ if (vp == null)
+ {
+ return null;
+ }
+
+ /*
+ * we have to show the RNA we want to save in the viewer; get the currently
+ * displayed model first so we can restore it
+ */
+ FullBackup sel = (FullBackup) _sideList.getSelectedValue();
+
+ FullBackup model = null;
+ ListModel models = _sideList.getModel();
+ for (int i = 0; i < models.getSize(); i++)
+ {
+ model = (FullBackup) models.getElementAt(i);
+ if (model.rna == rna)
+ {
+ break;
+ }
+ }
+ if (model == null)
+ {
+ return null;
+ }
+
+ /*
+ * switch display
+ */
+ vp.showRNA(model.rna, model.config);
+
+ try
+ {
+ File temp;
+ temp = File.createTempFile("varna", null);
+ temp.deleteOnExit();
+ String filePath = temp.getAbsolutePath();
+ vp.toXML(filePath);
+
+ /*
+ * restore the previous display
+ */
+ vp.showRNA(sel.rna, sel.config);
+
+ return filePath;
+ } catch (IOException e)
+ {
+ return null;
+ }
}
- @Override
- public void highlightAtoms(List<AtomSpec> atoms)
+ public int getSelectedIndex()
{
+ return _sideList.getSelectedIndex();
}
- @Override
- public boolean isListeningFor(SequenceI seq)
+ /**
+ * Switch the Varna display to the structure selected in the left hand panel
+ *
+ * @param evt
+ */
+ protected void changeSelectedStructure_actionPerformed(ListSelectionEvent evt)
{
- return true;
+ if (!evt.getValueIsAdjusting())
+ {
+ showSelectedStructure();
+ }
+ }
+
+ /**
+ *
+ */
+ protected void showSelectedStructure()
+ {
+ FullBackup sel = (FullBackup) _sideList.getSelectedValue();
+ if (sel != null)
+ {
+ vp.showRNA(sel.rna, sel.config);
+ }
+ }
+
+ /**
+ * Set and display the selected item in the list of structures
+ *
+ * @param selectedRna
+ */
+ public void setSelectedIndex(final int selectedRna)
+ {
+ /*
+ * note this does nothing if, say, selecting item 3 when only 1 has been
+ * added on load
+ */
+ _sideList.setSelectedIndex(selectedRna);
+ // TODO ? need a worker thread to get this to happen properly
+ }
+
+ /**
+ * Add an RNA structure to the selection list
+ *
+ * @param rna
+ */
+ public void addStructure(RNA rna)
+ {
+ VARNAConfig config = vp.getConfig().clone();
+ addStructure(rna, config);
+ }
+
+ /**
+ * @param rna
+ * @param config
+ */
+ protected void addStructure(final RNA rna, final VARNAConfig config)
+ {
+ drawRna(rna, config);
+ _rnaList.add(config, rna, rna.getName());
+ }
+
+ /**
+ * @param rna
+ * @param config
+ */
+ protected void drawRna(final RNA rna, final VARNAConfig config)
+ {
+ try
+ {
+ rna.drawRNA(rna.getDrawMode(), config);
+ } catch (ExceptionNAViewAlgorithm e)
+ {
+ // only throwable for draw mode = 3 NAView
+ System.err.println("Error drawing RNA: " + e.getMessage());
+ }
}
}
is.close();
} catch (IOException e)
{
- // ignoreß
+ // ignore
}
}
}
- // return this.chimeraSessionFile == null ? "" : chimeraSessionFile;
}
@Override
import jalview.api.AlignViewportI;
import jalview.api.AlignmentViewPanel;
import jalview.api.ComplexAlignFile;
+import jalview.api.FeaturesDisplayedI;
+import jalview.bin.Jalview;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.ColumnSelection;
import jalview.datamodel.SequenceI;
*/
public void ok_actionPerformed(ActionEvent e)
{
- String format = new IdentifyFile().Identify(getText(), "Paste");
+ String text = getText();
+ if (text.trim().length() < 1)
+ {
+ return;
+ }
+
+ String format = new IdentifyFile().Identify(text, "Paste");
+ if (format == null || format.equalsIgnoreCase("EMPTY DATA FILE"))
+ {
+ System.err.println(MessageManager
+ .getString("label.null_or_unidentifiable_data"));
+ if (!Jalview.isHeadlessMode())
+ {
+ JOptionPane.showMessageDialog(null,
+ MessageManager
+ .getString("label.null_or_unidentifiable_data"),
+ MessageManager.getString("label.unidentifiable_data"),
+ JOptionPane.ERROR_MESSAGE);
+ }
+ return;
+ }
+
// TODO: identify feature, annotation or tree file and parse appropriately.
AlignmentI al = null;
}
}
- if (al != null)
+ if (al != null && al.hasValidSequence())
{
String title = MessageManager.formatMessage(
"label.input_cut_paste_params", new String[]
boolean showSeqFeatures = ((ComplexAlignFile) source)
.isShowSeqFeatures();
ColourSchemeI cs = ((ComplexAlignFile) source).getColourScheme();
+ FeaturesDisplayedI fd = ((ComplexAlignFile) source)
+ .getDisplayedFeatures();
af = new AlignFrame(al, hiddenSeqs, colSel,
AlignFrame.DEFAULT_WIDTH,
AlignFrame.DEFAULT_HEIGHT);
-
af.getViewport().setShowSequenceFeatures(showSeqFeatures);
+ af.getViewport().setFeaturesDisplayed(fd);
af.changeColour(cs);
}
else
}
}
}
+ else
+ {
+ System.err.println(MessageManager
+ .getString("label.null_or_invalid_alignment"));
+ if (!Jalview.isHeadlessMode())
+ {
+ JOptionPane
+ .showMessageDialog(
+ null,
+ MessageManager
+ .getString("label.null_or_invalid_alignment"),
+ MessageManager
+ .getString("label.unable_to_create_alignment"),
+ JOptionPane.ERROR_MESSAGE);
+ }
+ }
}
public void inputTextboxMenuItem_actionPerformed(AlignViewport viewport)
{
CutAndPasteTransfer cap = new CutAndPasteTransfer();
- cap.setForInput(viewport.getAlignPanel());
+// cap.setForInput(viewport.getAlignPanel());
+ cap.setForInput(null);
Desktop.addInternalFrame(cap,
MessageManager.getString("label.cut_paste_alignmen_file"),
true, 600, 500);
(t0 = new Thread(discoverer)).start();
}
- // ENFIN services are EOLed as of Jalview 2.8.1 release
- if (false)
- {
- try
- {
- if (Cache.getDefault("SHOW_ENFIN_SERVICES", true))
- {
- // EnfinEnvision web service menu entries are rebuild every time the
- // menu is shown, so no changeSupport events are needed.
- jalview.ws.EnfinEnvision2OneWay.getInstance();
- (t1 = new Thread(jalview.ws.EnfinEnvision2OneWay.getInstance()))
- .start();
- }
- } catch (Exception e)
- {
- Cache.log
- .info("Exception when trying to launch Envision2 workflow discovery.",
- e);
- Cache.log.info(e.getStackTrace());
- }
- }
-
if (Cache.getDefault("SHOW_JWS2_SERVICES", true))
{
if (jalview.ws.jws2.Jws2Discoverer.getDiscoverer().isRunning())
*/
package jalview.gui;
-import java.awt.Rectangle;
-import java.io.BufferedReader;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.lang.reflect.InvocationTargetException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.IdentityHashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.StringTokenizer;
-import java.util.Vector;
-import java.util.jar.JarEntry;
-import java.util.jar.JarInputStream;
-import java.util.jar.JarOutputStream;
-
-import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
-import javax.swing.SwingUtilities;
-
-import org.exolab.castor.xml.Marshaller;
-import org.exolab.castor.xml.Unmarshaller;
-
import jalview.api.structures.JalviewStructureDisplayI;
import jalview.bin.Cache;
import jalview.datamodel.AlignedCodonFrame;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.PDBEntry;
+import jalview.datamodel.RnaViewerModel;
+import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import jalview.datamodel.StructureViewerModel;
import jalview.datamodel.StructureViewerModel.StructureData;
+import jalview.ext.varna.RnaModel;
import jalview.gui.StructureViewer.ViewerType;
import jalview.schemabinding.version2.AlcodMap;
import jalview.schemabinding.version2.AlcodonFrame;
import jalview.schemabinding.version2.PdbentryItem;
import jalview.schemabinding.version2.Pdbids;
import jalview.schemabinding.version2.Property;
+import jalview.schemabinding.version2.RnaViewer;
+import jalview.schemabinding.version2.SecondaryStructure;
import jalview.schemabinding.version2.Sequence;
import jalview.schemabinding.version2.SequenceSet;
import jalview.schemabinding.version2.SequenceSetProperties;
import jalview.ws.params.AutoCalcSetting;
import jalview.ws.params.WsParamSetI;
+import java.awt.Rectangle;
+import java.io.BufferedReader;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.lang.reflect.InvocationTargetException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.IdentityHashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.StringTokenizer;
+import java.util.Vector;
+import java.util.jar.JarEntry;
+import java.util.jar.JarInputStream;
+import java.util.jar.JarOutputStream;
+
+import javax.swing.JInternalFrame;
+import javax.swing.JOptionPane;
+import javax.swing.SwingUtilities;
+
+import org.exolab.castor.xml.Marshaller;
+import org.exolab.castor.xml.Unmarshaller;
+
/**
* Write out the current jalview desktop state as a Jalview XML stream.
*
*/
public class Jalview2XML
{
+ private static final String VIEWER_PREFIX = "viewer_";
+
+ private static final String RNA_PREFIX = "rna_";
+
private static final String UTF_8 = "UTF-8";
+ // use this with nextCounter() to make unique names for entities
+ private int counter = 0;
+
/*
* SequenceI reference -> XML ID string in jalview XML. Populated as XML reps
* of sequence objects are created.
*/
private Map<Viewport, AlignFrame> splitFrameCandidates = new HashMap<Viewport, AlignFrame>();
+ /*
+ * Map from displayed rna structure models to their saved session state jar
+ * entry names
+ */
+ private Map<RnaModel, String> rnaSessions = new HashMap<RnaModel, String>();
+
/**
* create/return unique hash string for sq
*
*/
public void saveState(JarOutputStream jout)
{
- AlignFrame[] frames = Desktop.getAlignFrames(); // Desktop.desktop.getAllFrames();
+ AlignFrame[] frames = Desktop.getAlignFrames();
if (frames == null)
{
Hashtable<String, AlignFrame> dsses = new Hashtable<String, AlignFrame>();
+ /*
+ * ensure cached data is clear before starting
+ */
+ // todo tidy up seqRefIds, seqsToIds initialisation / reset
+ rnaSessions.clear();
+ splitFrameCandidates.clear();
+
try
{
// //////////////////////////////////////////////////
List<String> shortNames = new ArrayList<String>();
+ List<String> viewIds = new ArrayList<String>();
// REVERSE ORDER
for (int i = frames.length - 1; i > -1; i--)
fileName = fileName + ".xml";
}
- saveState(apanel, fileName, jout);
+ saveState(apanel, fileName, jout, viewIds);
String dssid = getDatasetIdRef(af.getViewport().getAlignment()
.getDataset());
FileOutputStream fos = new FileOutputStream(jarFile);
JarOutputStream jout = new JarOutputStream(fos);
Hashtable<String, AlignFrame> dsses = new Hashtable<String, AlignFrame>();
+ List<String> viewIds = new ArrayList<String>();
+
for (AlignmentPanel apanel : af.alignPanels)
{
String jfileName = apSize == 1 ? fileName : fileName + ap;
{
jfileName = jfileName + ".xml";
}
- saveState(apanel, jfileName, jout);
+ saveState(apanel, jfileName, jout, viewIds);
String dssid = getDatasetIdRef(af.getViewport().getAlignment()
.getDataset());
if (!dsses.containsKey(dssid))
{
jfileName = jfileName + ".xml";
}
- saveState(_af.alignPanel, jfileName, true, jout);
+ saveState(_af.alignPanel, jfileName, true, jout, null);
}
}
* name of alignment panel written to output stream
* @param jout
* jar output stream
+ * @param viewIds
* @param out
* jar entry name
*/
public JalviewModel saveState(AlignmentPanel ap, String fileName,
- JarOutputStream jout)
+ JarOutputStream jout, List<String> viewIds)
{
- return saveState(ap, fileName, false, jout);
+ return saveState(ap, fileName, false, jout, viewIds);
}
/**
* jar entry name
*/
public JalviewModel saveState(AlignmentPanel ap, String fileName,
- boolean storeDS, JarOutputStream jout)
+ boolean storeDS, JarOutputStream jout, List<String> viewIds)
{
+ if (viewIds == null)
+ {
+ viewIds = new ArrayList<String>();
+ }
+
initSeqRefs();
- List<String> viewIds = new ArrayList<String>();
+
List<UserColourScheme> userColours = new ArrayList<UserColourScheme>();
AlignViewport av = ap.av;
Set<String> calcIdSet = new HashSet<String>();
// SAVE SEQUENCES
- String id = "";
- jalview.datamodel.SequenceI jds, jdatasq;
for (int i = 0; i < jal.getHeight(); i++)
{
- jds = jal.getSequenceAt(i);
- jdatasq = jds.getDatasetSequence() == null ? jds : jds
- .getDatasetSequence();
- id = seqHash(jds);
+ final SequenceI jds = jal.getSequenceAt(i);
+ final SequenceI jdatasq = jds.getDatasetSequence() == null ? jds
+ : jds.getDatasetSequence();
+ String id = seqHash(jds);
if (seqRefIds.get(id) != null)
{
if (jds.getSequenceFeatures() != null)
{
- jalview.datamodel.SequenceFeature[] sf = jds
- .getSequenceFeatures();
+ jalview.datamodel.SequenceFeature[] sf = jds.getSequenceFeatures();
int index = 0;
while (index < sf.length)
{
matchedFile = saveStructureState(ap, jds, pdb, entry,
viewIds, matchedFile, viewFrame);
/*
- * Only store each structure viewer's state once in each XML
- * document. First time through only (storeDS==false)
+ * Only store each structure viewer's state once in the project
+ * jar. First time through only (storeDS==false)
*/
String viewId = viewFrame.getViewId();
if (!storeDS && !viewIds.contains(viewId))
viewIds.add(viewId);
try
{
+ String viewerState = viewFrame.getStateInfo();
writeJarEntry(jout, getViewerJarEntryName(viewId),
- viewFrame.getStateInfo().getBytes());
+ viewerState.getBytes());
} catch (IOException e)
{
System.err.println("Error saving viewer state: "
}
}
+ saveRnaViewers(jout, jseq, jds, viewIds, ap, storeDS);
+
jms.addJSeq(jseq);
}
}
}
-// {
-// AlcodonFrame alc = new AlcodonFrame();
-// vamsasSet.addAlcodonFrame(alc);
-// for (int p = 0; p < acf.aaWidth; p++)
-// {
-// Alcodon cmap = new Alcodon();
-// if (acf.codons[p] != null)
-// {
-// // Null codons indicate a gapped column in the translated peptide
-// // alignment.
-// cmap.setPos1(acf.codons[p][0]);
-// cmap.setPos2(acf.codons[p][1]);
-// cmap.setPos3(acf.codons[p][2]);
-// }
-// alc.addAlcodon(cmap);
-// }
-// if (acf.getProtMappings() != null
-// && acf.getProtMappings().length > 0)
-// {
-// SequenceI[] dnas = acf.getdnaSeqs();
-// jalview.datamodel.Mapping[] pmaps = acf.getProtMappings();
-// for (int m = 0; m < pmaps.length; m++)
-// {
-// AlcodMap alcmap = new AlcodMap();
-// alcmap.setDnasq(seqHash(dnas[m]));
-// alcmap.setMapping(createVamsasMapping(pmaps[m], dnas[m], null,
-// false));
-// alc.addAlcodMap(alcmap);
-// }
-// }
+ // {
+ // AlcodonFrame alc = new AlcodonFrame();
+ // vamsasSet.addAlcodonFrame(alc);
+ // for (int p = 0; p < acf.aaWidth; p++)
+ // {
+ // Alcodon cmap = new Alcodon();
+ // if (acf.codons[p] != null)
+ // {
+ // // Null codons indicate a gapped column in the translated peptide
+ // // alignment.
+ // cmap.setPos1(acf.codons[p][0]);
+ // cmap.setPos2(acf.codons[p][1]);
+ // cmap.setPos3(acf.codons[p][2]);
+ // }
+ // alc.addAlcodon(cmap);
+ // }
+ // if (acf.getProtMappings() != null
+ // && acf.getProtMappings().length > 0)
+ // {
+ // SequenceI[] dnas = acf.getdnaSeqs();
+ // jalview.datamodel.Mapping[] pmaps = acf.getProtMappings();
+ // for (int m = 0; m < pmaps.length; m++)
+ // {
+ // AlcodMap alcmap = new AlcodMap();
+ // alcmap.setDnasq(seqHash(dnas[m]));
+ // alcmap.setMapping(createVamsasMapping(pmaps[m], dnas[m], null,
+ // false));
+ // alc.addAlcodMap(alcmap);
+ // }
+ // }
}
}
}
}
- /*
- * Save associated Varna panels
- */
- if (Desktop.desktop != null)
- {
- for (JInternalFrame frame : Desktop.desktop.getAllFrames())
- {
- if (frame instanceof AppVarna)
- {
- AppVarna vp = (AppVarna) frame;
- if (vp.ap == ap)
- {
- // save Varna state
- }
- }
- }
- }
-
// SAVE ANNOTATIONS
/**
* store forward refs from an annotationRow to any groups
*/
- IdentityHashMap groupRefs = new IdentityHashMap();
+ IdentityHashMap<SequenceGroup, String> groupRefs = new IdentityHashMap<SequenceGroup, String>();
if (storeDS)
{
for (SequenceI sq : jal.getSequences())
{
// Store annotation on dataset sequences only
- jalview.datamodel.AlignmentAnnotation[] aa = sq.getAnnotation();
+ AlignmentAnnotation[] aa = sq.getAnnotation();
if (aa != null && aa.length > 0)
{
storeAlignmentAnnotation(aa, groupRefs, av, calcIdSet, storeDS,
if (jal.getAlignmentAnnotation() != null)
{
// Store the annotation shown on the alignment.
- jalview.datamodel.AlignmentAnnotation[] aa = jal
- .getAlignmentAnnotation();
+ AlignmentAnnotation[] aa = jal.getAlignmentAnnotation();
storeAlignmentAnnotation(aa, groupRefs, av, calcIdSet, storeDS,
vamsasSet);
}
int i = -1;
for (jalview.datamodel.SequenceGroup sg : jal.getGroups())
{
- groups[++i] = new JGroup();
+ JGroup jGroup = new JGroup();
+ groups[++i] = jGroup;
- groups[i].setStart(sg.getStartRes());
- groups[i].setEnd(sg.getEndRes());
- groups[i].setName(sg.getName());
+ jGroup.setStart(sg.getStartRes());
+ jGroup.setEnd(sg.getEndRes());
+ jGroup.setName(sg.getName());
if (groupRefs.containsKey(sg))
{
- // group has references so set it's ID field
- groups[i].setId(groupRefs.get(sg).toString());
+ // group has references so set its ID field
+ jGroup.setId(groupRefs.get(sg));
}
if (sg.cs != null)
{
if (sg.cs.conservationApplied())
{
- groups[i].setConsThreshold(sg.cs.getConservationInc());
+ jGroup.setConsThreshold(sg.cs.getConservationInc());
if (sg.cs instanceof jalview.schemes.UserColourScheme)
{
- groups[i].setColour(setUserColourScheme(sg.cs, userColours,
- jms));
+ jGroup.setColour(setUserColourScheme(sg.cs, userColours, jms));
}
else
{
- groups[i]
- .setColour(ColourSchemeProperty.getColourName(sg.cs));
+ jGroup.setColour(ColourSchemeProperty.getColourName(sg.cs));
}
}
else if (sg.cs instanceof jalview.schemes.AnnotationColourGradient)
{
- groups[i].setColour("AnnotationColourGradient");
- groups[i].setAnnotationColours(constructAnnotationColours(
+ jGroup.setColour("AnnotationColourGradient");
+ jGroup.setAnnotationColours(constructAnnotationColours(
(jalview.schemes.AnnotationColourGradient) sg.cs,
userColours, jms));
}
else if (sg.cs instanceof jalview.schemes.UserColourScheme)
{
- groups[i]
- .setColour(setUserColourScheme(sg.cs, userColours, jms));
+ jGroup.setColour(setUserColourScheme(sg.cs, userColours, jms));
}
else
{
- groups[i].setColour(ColourSchemeProperty.getColourName(sg.cs));
+ jGroup.setColour(ColourSchemeProperty.getColourName(sg.cs));
}
- groups[i].setPidThreshold(sg.cs.getThreshold());
+ jGroup.setPidThreshold(sg.cs.getThreshold());
}
- groups[i].setOutlineColour(sg.getOutlineColour().getRGB());
- groups[i].setDisplayBoxes(sg.getDisplayBoxes());
- groups[i].setDisplayText(sg.getDisplayText());
- groups[i].setColourText(sg.getColourText());
- groups[i].setTextCol1(sg.textColour.getRGB());
- groups[i].setTextCol2(sg.textColour2.getRGB());
- groups[i].setTextColThreshold(sg.thresholdTextColour);
- groups[i].setShowUnconserved(sg.getShowNonconserved());
- groups[i].setIgnoreGapsinConsensus(sg.getIgnoreGapsConsensus());
- groups[i].setShowConsensusHistogram(sg.isShowConsensusHistogram());
- groups[i].setShowSequenceLogo(sg.isShowSequenceLogo());
- groups[i].setNormaliseSequenceLogo(sg.isNormaliseSequenceLogo());
- for (int s = 0; s < sg.getSize(); s++)
- {
- jalview.datamodel.Sequence seq = (jalview.datamodel.Sequence) sg
- .getSequenceAt(s);
- groups[i].addSeq(seqHash(seq));
+ jGroup.setOutlineColour(sg.getOutlineColour().getRGB());
+ jGroup.setDisplayBoxes(sg.getDisplayBoxes());
+ jGroup.setDisplayText(sg.getDisplayText());
+ jGroup.setColourText(sg.getColourText());
+ jGroup.setTextCol1(sg.textColour.getRGB());
+ jGroup.setTextCol2(sg.textColour2.getRGB());
+ jGroup.setTextColThreshold(sg.thresholdTextColour);
+ jGroup.setShowUnconserved(sg.getShowNonconserved());
+ jGroup.setIgnoreGapsinConsensus(sg.getIgnoreGapsConsensus());
+ jGroup.setShowConsensusHistogram(sg.isShowConsensusHistogram());
+ jGroup.setShowSequenceLogo(sg.isShowSequenceLogo());
+ jGroup.setNormaliseSequenceLogo(sg.isNormaliseSequenceLogo());
+ for (SequenceI seq : sg.getSequences())
+ {
+ jGroup.addSeq(seqHash(seq));
}
}
else
{
setting.setColour(ap.getSeqPanel().seqCanvas
- .getFeatureRenderer()
- .getColour(renderOrder[ro]).getRGB());
+ .getFeatureRenderer().getColour(renderOrder[ro])
+ .getRGB());
}
setting.setDisplay(av.getFeaturesDisplayed().isVisible(
// using save and then load
try
{
+ System.out.println("Writing jar entry " + fileName);
JarEntry entry = new JarEntry(fileName);
jout.putNextEntry(entry);
PrintWriter pout = new PrintWriter(new OutputStreamWriter(jout,
}
/**
- * Copy the contents of a file to a new file added to the output jar
+ * Save any Varna viewers linked to this sequence. Writes an rnaViewer element
+ * for each viewer, with
+ * <ul>
+ * <li>viewer geometry (position, size, split pane divider location)</li>
+ * <li>index of the selected structure in the viewer (currently shows gapped
+ * or ungapped)</li>
+ * <li>the id of the annotation holding RNA secondary structure</li>
+ * <li>(currently only one SS is shown per viewer, may be more in future)</li>
+ * </ul>
+ * Varna viewer state is also written out (in native Varna XML) to separate
+ * project jar entries. A separate entry is written for each RNA structure
+ * displayed, with the naming convention
+ * <ul>
+ * <li>rna_viewId_sequenceId_annotationId_[gapped|trimmed]</li>
+ * </ul>
+ *
+ * @param jout
+ * @param jseq
+ * @param jds
+ * @param viewIds
+ * @param ap
+ * @param storeDataset
+ */
+ protected void saveRnaViewers(JarOutputStream jout, JSeq jseq,
+ final SequenceI jds, List<String> viewIds, AlignmentPanel ap,
+ boolean storeDataset)
+ {
+ if (Desktop.desktop == null)
+ {
+ return;
+ }
+ JInternalFrame[] frames = Desktop.desktop.getAllFrames();
+ for (int f = frames.length - 1; f > -1; f--)
+ {
+ if (frames[f] instanceof AppVarna)
+ {
+ AppVarna varna = (AppVarna) frames[f];
+ /*
+ * link the sequence to every viewer that is showing it and is linked to
+ * its alignment panel
+ */
+ if (varna.isListeningFor(jds) && ap == varna.getAlignmentPanel())
+ {
+ String viewId = varna.getViewId();
+ RnaViewer rna = new RnaViewer();
+ rna.setViewId(viewId);
+ rna.setTitle(varna.getTitle());
+ rna.setXpos(varna.getX());
+ rna.setYpos(varna.getY());
+ rna.setWidth(varna.getWidth());
+ rna.setHeight(varna.getHeight());
+ rna.setDividerLocation(varna.getDividerLocation());
+ rna.setSelectedRna(varna.getSelectedIndex());
+ jseq.addRnaViewer(rna);
+
+ /*
+ * Store each Varna panel's state once in the project per sequence.
+ * First time through only (storeDataset==false)
+ */
+ // boolean storeSessions = false;
+ // String sequenceViewId = viewId + seqsToIds.get(jds);
+ // if (!storeDataset && !viewIds.contains(sequenceViewId))
+ // {
+ // viewIds.add(sequenceViewId);
+ // storeSessions = true;
+ // }
+ for (RnaModel model : varna.getModels())
+ {
+ if (model.seq == jds)
+ {
+ /*
+ * VARNA saves each view (sequence or alignment secondary
+ * structure, gapped or trimmed) as a separate XML file
+ */
+ String jarEntryName = rnaSessions.get(model);
+ if (jarEntryName == null)
+ {
+
+ String varnaStateFile = varna.getStateInfo(model.rna);
+ jarEntryName = RNA_PREFIX + viewId + "_" + nextCounter();
+ copyFileToJar(jout, varnaStateFile, jarEntryName);
+ rnaSessions.put(model, jarEntryName);
+ }
+ SecondaryStructure ss = new SecondaryStructure();
+ String annotationId = varna.getAnnotation(jds).annotationId;
+ ss.setAnnotationId(annotationId);
+ ss.setViewerState(jarEntryName);
+ ss.setGapped(model.gapped);
+ ss.setTitle(model.title);
+ rna.addSecondaryStructure(ss);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Copy the contents of a file to a new entry added to the output jar
*
* @param jout
* @param infilePath
- * @param jarfileName
+ * @param jarEntryName
*/
protected void copyFileToJar(JarOutputStream jout, String infilePath,
- String jarfileName)
+ String jarEntryName)
{
DataInputStream dis = null;
try
dis = new DataInputStream(new FileInputStream(file));
byte[] data = new byte[(int) file.length()];
dis.readFully(data);
- writeJarEntry(jout, jarfileName, data);
+ writeJarEntry(jout, jarEntryName, data);
}
} catch (Exception ex)
{
* Write the data to a new entry of given name in the output jar file
*
* @param jout
- * @param jarfileName
+ * @param jarEntryName
* @param data
* @throws IOException
*/
- protected void writeJarEntry(JarOutputStream jout, String jarfileName,
+ protected void writeJarEntry(JarOutputStream jout, String jarEntryName,
byte[] data) throws IOException
{
if (jout != null)
{
- jout.putNextEntry(new JarEntry(jarfileName));
+ System.out.println("Writing jar entry " + jarEntryName);
+ jout.putNextEntry(new JarEntry(jarEntryName));
DataOutputStream dout = new DataOutputStream(jout);
dout.write(data, 0, data.length);
dout.flush();
}
private void storeAlignmentAnnotation(AlignmentAnnotation[] aa,
- IdentityHashMap groupRefs, AlignmentViewport av,
- Set<String> calcIdSet, boolean storeDS, SequenceSet vamsasSet)
+ IdentityHashMap<SequenceGroup, String> groupRefs,
+ AlignmentViewport av, Set<String> calcIdSet, boolean storeDS,
+ SequenceSet vamsasSet)
{
for (int i = 0; i < aa.length; i++)
{
Annotation an = new Annotation();
- if (aa[i].annotationId != null)
+ AlignmentAnnotation annotation = aa[i];
+ if (annotation.annotationId != null)
{
- annotationIds.put(aa[i].annotationId, aa[i]);
+ annotationIds.put(annotation.annotationId, annotation);
}
- an.setId(aa[i].annotationId);
+ an.setId(annotation.annotationId);
- an.setVisible(aa[i].visible);
+ an.setVisible(annotation.visible);
- an.setDescription(aa[i].description);
+ an.setDescription(annotation.description);
- if (aa[i].sequenceRef != null)
+ if (annotation.sequenceRef != null)
{
- // TODO later annotation sequenceRef should be the XML ID of the
- // sequence rather than its display name
- an.setSequenceRef(aa[i].sequenceRef.getName());
+ // 2.9 JAL-1781 xref on sequence id rather than name
+ an.setSequenceRef(seqsToIds.get(annotation.sequenceRef));
}
- if (aa[i].groupRef != null)
+ if (annotation.groupRef != null)
{
- Object groupIdr = groupRefs.get(aa[i].groupRef);
+ String groupIdr = groupRefs.get(annotation.groupRef);
if (groupIdr == null)
{
// make a locally unique String
- groupRefs.put(aa[i].groupRef,
+ groupRefs.put(
+ annotation.groupRef,
groupIdr = ("" + System.currentTimeMillis()
- + aa[i].groupRef.getName() + groupRefs.size()));
+ + annotation.groupRef.getName() + groupRefs
+ .size()));
}
an.setGroupRef(groupIdr.toString());
}
// store all visualization attributes for annotation
- an.setGraphHeight(aa[i].graphHeight);
- an.setCentreColLabels(aa[i].centreColLabels);
- an.setScaleColLabels(aa[i].scaleColLabel);
- an.setShowAllColLabels(aa[i].showAllColLabels);
- an.setBelowAlignment(aa[i].belowAlignment);
+ an.setGraphHeight(annotation.graphHeight);
+ an.setCentreColLabels(annotation.centreColLabels);
+ an.setScaleColLabels(annotation.scaleColLabel);
+ an.setShowAllColLabels(annotation.showAllColLabels);
+ an.setBelowAlignment(annotation.belowAlignment);
- if (aa[i].graph > 0)
+ if (annotation.graph > 0)
{
an.setGraph(true);
- an.setGraphType(aa[i].graph);
- an.setGraphGroup(aa[i].graphGroup);
- if (aa[i].getThreshold() != null)
+ an.setGraphType(annotation.graph);
+ an.setGraphGroup(annotation.graphGroup);
+ if (annotation.getThreshold() != null)
{
ThresholdLine line = new ThresholdLine();
- line.setLabel(aa[i].getThreshold().label);
- line.setValue(aa[i].getThreshold().value);
- line.setColour(aa[i].getThreshold().colour.getRGB());
+ line.setLabel(annotation.getThreshold().label);
+ line.setValue(annotation.getThreshold().value);
+ line.setColour(annotation.getThreshold().colour.getRGB());
an.setThresholdLine(line);
}
}
an.setGraph(false);
}
- an.setLabel(aa[i].label);
+ an.setLabel(annotation.label);
- if (aa[i] == av.getAlignmentQualityAnnot()
- || aa[i] == av.getAlignmentConservationAnnotation()
- || aa[i] == av.getAlignmentConsensusAnnotation()
- || aa[i].autoCalculated)
+ if (annotation == av.getAlignmentQualityAnnot()
+ || annotation == av.getAlignmentConservationAnnotation()
+ || annotation == av.getAlignmentConsensusAnnotation()
+ || annotation.autoCalculated)
{
// new way of indicating autocalculated annotation -
- an.setAutoCalculated(aa[i].autoCalculated);
+ an.setAutoCalculated(annotation.autoCalculated);
}
- if (aa[i].hasScore())
+ if (annotation.hasScore())
{
- an.setScore(aa[i].getScore());
+ an.setScore(annotation.getScore());
}
- if (aa[i].getCalcId() != null)
+ if (annotation.getCalcId() != null)
{
- calcIdSet.add(aa[i].getCalcId());
- an.setCalcId(aa[i].getCalcId());
+ calcIdSet.add(annotation.getCalcId());
+ an.setCalcId(annotation.getCalcId());
}
- if (aa[i].hasProperties())
+ if (annotation.hasProperties())
{
- for (String pr : aa[i].getProperties())
+ for (String pr : annotation.getProperties())
{
Property prop = new Property();
prop.setName(pr);
- prop.setValue(aa[i].getProperty(pr));
+ prop.setValue(annotation.getProperty(pr));
an.addProperty(prop);
}
}
AnnotationElement ae;
- if (aa[i].annotations != null)
+ if (annotation.annotations != null)
{
an.setScoreOnly(false);
- for (int a = 0; a < aa[i].annotations.length; a++)
+ for (int a = 0; a < annotation.annotations.length; a++)
{
- if ((aa[i] == null) || (aa[i].annotations[a] == null))
+ if ((annotation == null) || (annotation.annotations[a] == null))
{
continue;
}
ae = new AnnotationElement();
- if (aa[i].annotations[a].description != null)
+ if (annotation.annotations[a].description != null)
{
- ae.setDescription(aa[i].annotations[a].description);
+ ae.setDescription(annotation.annotations[a].description);
}
- if (aa[i].annotations[a].displayCharacter != null)
+ if (annotation.annotations[a].displayCharacter != null)
{
- ae.setDisplayCharacter(aa[i].annotations[a].displayCharacter);
+ ae.setDisplayCharacter(annotation.annotations[a].displayCharacter);
}
- if (!Float.isNaN(aa[i].annotations[a].value))
+ if (!Float.isNaN(annotation.annotations[a].value))
{
- ae.setValue(aa[i].annotations[a].value);
+ ae.setValue(annotation.annotations[a].value);
}
ae.setPosition(a);
- if (aa[i].annotations[a].secondaryStructure > ' ')
+ if (annotation.annotations[a].secondaryStructure > ' ')
{
- ae.setSecondaryStructure(aa[i].annotations[a].secondaryStructure
+ ae.setSecondaryStructure(annotation.annotations[a].secondaryStructure
+ "");
}
- if (aa[i].annotations[a].colour != null
- && aa[i].annotations[a].colour != java.awt.Color.black)
+ if (annotation.annotations[a].colour != null
+ && annotation.annotations[a].colour != java.awt.Color.black)
{
- ae.setColour(aa[i].annotations[a].colour.getRGB());
+ ae.setColour(annotation.annotations[a].colour.getRGB());
}
an.addAnnotationElement(ae);
- if (aa[i].autoCalculated)
+ if (annotation.autoCalculated)
{
// only write one non-null entry into the annotation row -
// sufficient to get the visualization attributes necessary to
{
an.setScoreOnly(true);
}
- if (!storeDS || (storeDS && !aa[i].autoCalculated))
+ if (!storeDS || (storeDS && !annotation.autoCalculated))
{
// skip autocalculated annotation - these are only provided for
// alignments
});
} catch (Exception x)
{
-
+ System.err.println("Error loading alignment: " + x.getMessage());
}
}
return af;
}
} while (jarentry != null);
resolveFrefedSequences();
- } catch (java.io.FileNotFoundException ex)
- {
- ex.printStackTrace();
- errorMessage = "Couldn't locate Jalview XML file : " + file;
- System.err.println("Exception whilst loading jalview XML file : "
- + ex + "\n");
- } catch (java.net.UnknownHostException ex)
+ } catch (IOException ex)
{
ex.printStackTrace();
errorMessage = "Couldn't locate Jalview XML file : " + file;
.entrySet())
{
AlignFrame af = candidate.getValue();
- if (!addedToSplitFrames.contains(af)) {
+ if (!addedToSplitFrames.contains(af))
+ {
Viewport view = candidate.getKey();
Desktop.addInternalFrame(af, view.getTitle(), view.getWidth(),
view.getHeight());
// ////////////////////////////////
// LOAD ANNOTATIONS
List<JvAnnotRow> autoAlan = new ArrayList<JvAnnotRow>();
- /**
+
+ /*
* store any annotations which forward reference a group's ID
*/
- Hashtable<String, ArrayList<jalview.datamodel.AlignmentAnnotation>> groupAnnotRefs = new Hashtable<String, ArrayList<jalview.datamodel.AlignmentAnnotation>>();
+ Map<String, List<AlignmentAnnotation>> groupAnnotRefs = new Hashtable<String, List<AlignmentAnnotation>>();
if (vamsasSet.getAnnotationCount() > 0)
{
for (int i = 0; i < an.length; i++)
{
+ Annotation annotation = an[i];
+
/**
* test if annotation is automatically calculated for this view only
*/
boolean autoForView = false;
- if (an[i].getLabel().equals("Quality")
- || an[i].getLabel().equals("Conservation")
- || an[i].getLabel().equals("Consensus"))
+ if (annotation.getLabel().equals("Quality")
+ || annotation.getLabel().equals("Conservation")
+ || annotation.getLabel().equals("Consensus"))
{
// Kludge for pre 2.5 projects which lacked the autocalculated flag
autoForView = true;
- if (!an[i].hasAutoCalculated())
+ if (!annotation.hasAutoCalculated())
{
- an[i].setAutoCalculated(true);
+ annotation.setAutoCalculated(true);
}
}
if (autoForView
- || (an[i].hasAutoCalculated() && an[i].isAutoCalculated()))
+ || (annotation.hasAutoCalculated() && annotation
+ .isAutoCalculated()))
{
// remove ID - we don't recover annotation from other views for
// view-specific annotation
- an[i].setId(null);
+ annotation.setId(null);
}
// set visiblity for other annotation in this view
- if (an[i].getId() != null
- && annotationIds.containsKey(an[i].getId()))
+ String annotationId = annotation.getId();
+ if (annotationId != null && annotationIds.containsKey(annotationId))
{
- AlignmentAnnotation jda = annotationIds.get(an[i].getId());
+ AlignmentAnnotation jda = annotationIds.get(annotationId);
// in principle Visible should always be true for annotation displayed
// in multiple views
- if (an[i].hasVisible())
+ if (annotation.hasVisible())
{
- jda.visible = an[i].getVisible();
+ jda.visible = annotation.getVisible();
}
al.addAnnotation(jda);
continue;
}
// Construct new annotation from model.
- AnnotationElement[] ae = an[i].getAnnotationElement();
+ AnnotationElement[] ae = annotation.getAnnotationElement();
jalview.datamodel.Annotation[] anot = null;
java.awt.Color firstColour = null;
int anpos;
- if (!an[i].getScoreOnly())
+ if (!annotation.getScoreOnly())
{
anot = new jalview.datamodel.Annotation[al.getWidth()];
for (int aa = 0; aa < ae.length && aa < anot.length; aa++)
}
jalview.datamodel.AlignmentAnnotation jaa = null;
- if (an[i].getGraph())
+ if (annotation.getGraph())
{
float llim = 0, hlim = 0;
// if (autoForView || an[i].isAutoCalculated()) {
// hlim=11f;
// }
- jaa = new jalview.datamodel.AlignmentAnnotation(an[i].getLabel(),
- an[i].getDescription(), anot, llim, hlim,
- an[i].getGraphType());
+ jaa = new jalview.datamodel.AlignmentAnnotation(
+ annotation.getLabel(), annotation.getDescription(), anot,
+ llim, hlim, annotation.getGraphType());
- jaa.graphGroup = an[i].getGraphGroup();
+ jaa.graphGroup = annotation.getGraphGroup();
jaa._linecolour = firstColour;
- if (an[i].getThresholdLine() != null)
+ if (annotation.getThresholdLine() != null)
{
- jaa.setThreshold(new jalview.datamodel.GraphLine(an[i]
- .getThresholdLine().getValue(), an[i]
+ jaa.setThreshold(new jalview.datamodel.GraphLine(annotation
+ .getThresholdLine().getValue(), annotation
.getThresholdLine().getLabel(), new java.awt.Color(
- an[i].getThresholdLine().getColour())));
+ annotation.getThresholdLine().getColour())));
}
- if (autoForView || an[i].isAutoCalculated())
+ if (autoForView || annotation.isAutoCalculated())
{
// Hardwire the symbol display line to ensure that labels for
// histograms are displayed
jaa.annotationId = an[i].getId();
}
// recover sequence association
- if (an[i].getSequenceRef() != null)
+ String sequenceRef = an[i].getSequenceRef();
+ if (sequenceRef != null)
{
- if (al.findName(an[i].getSequenceRef()) != null)
+ // from 2.9 sequenceRef is to sequence id (JAL-1781)
+ SequenceI sequence = seqRefIds.get(sequenceRef);
+ if (sequence == null)
{
- jaa.createSequenceMapping(al.findName(an[i].getSequenceRef()),
- 1, true);
- al.findName(an[i].getSequenceRef()).addAlignmentAnnotation(jaa);
+ // in pre-2.9 projects sequence ref is to sequence name
+ sequence = al.findName(sequenceRef);
+ }
+ if (sequence != null)
+ {
+ jaa.createSequenceMapping(sequence, 1, true);
+ sequence.addAlignmentAnnotation(jaa);
}
}
// and make a note of any group association
if (an[i].getGroupRef() != null && an[i].getGroupRef().length() > 0)
{
- ArrayList<jalview.datamodel.AlignmentAnnotation> aal = groupAnnotRefs
+ List<jalview.datamodel.AlignmentAnnotation> aal = groupAnnotRefs
.get(an[i].getGroupRef());
if (aal == null)
{
boolean addAnnotSchemeGroup = false;
for (int i = 0; i < groups.length; i++)
{
+ JGroup jGroup = groups[i];
ColourSchemeI cs = null;
-
- if (groups[i].getColour() != null)
+ if (jGroup.getColour() != null)
{
- if (groups[i].getColour().startsWith("ucs"))
+ if (jGroup.getColour().startsWith("ucs"))
{
- cs = getUserColourScheme(jms, groups[i].getColour());
+ cs = getUserColourScheme(jms, jGroup.getColour());
}
- else if (groups[i].getColour().equals("AnnotationColourGradient")
- && groups[i].getAnnotationColours() != null)
+ else if (jGroup.getColour().equals("AnnotationColourGradient")
+ && jGroup.getAnnotationColours() != null)
{
addAnnotSchemeGroup = true;
cs = null;
}
else
{
- cs = ColourSchemeProperty.getColour(al, groups[i].getColour());
+ cs = ColourSchemeProperty.getColour(al, jGroup.getColour());
}
if (cs != null)
{
- cs.setThreshold(groups[i].getPidThreshold(), true);
+ cs.setThreshold(jGroup.getPidThreshold(), true);
}
}
- Vector seqs = new Vector();
+ Vector<SequenceI> seqs = new Vector<SequenceI>();
- for (int s = 0; s < groups[i].getSeqCount(); s++)
+ for (int s = 0; s < jGroup.getSeqCount(); s++)
{
- String seqId = groups[i].getSeq(s) + "";
- jalview.datamodel.SequenceI ts = seqRefIds.get(seqId);
+ String seqId = jGroup.getSeq(s) + "";
+ SequenceI ts = seqRefIds.get(seqId);
if (ts != null)
{
continue;
}
- jalview.datamodel.SequenceGroup sg = new jalview.datamodel.SequenceGroup(
- seqs, groups[i].getName(), cs, groups[i].getDisplayBoxes(),
- groups[i].getDisplayText(), groups[i].getColourText(),
- groups[i].getStart(), groups[i].getEnd());
+ SequenceGroup sg = new SequenceGroup(seqs, jGroup.getName(), cs,
+ jGroup.getDisplayBoxes(), jGroup.getDisplayText(),
+ jGroup.getColourText(), jGroup.getStart(), jGroup.getEnd());
- sg.setOutlineColour(new java.awt.Color(groups[i].getOutlineColour()));
+ sg.setOutlineColour(new java.awt.Color(jGroup.getOutlineColour()));
- sg.textColour = new java.awt.Color(groups[i].getTextCol1());
- sg.textColour2 = new java.awt.Color(groups[i].getTextCol2());
- sg.setShowNonconserved(groups[i].hasShowUnconserved() ? groups[i]
+ sg.textColour = new java.awt.Color(jGroup.getTextCol1());
+ sg.textColour2 = new java.awt.Color(jGroup.getTextCol2());
+ sg.setShowNonconserved(jGroup.hasShowUnconserved() ? jGroup
.isShowUnconserved() : false);
- sg.thresholdTextColour = groups[i].getTextColThreshold();
- if (groups[i].hasShowConsensusHistogram())
+ sg.thresholdTextColour = jGroup.getTextColThreshold();
+ if (jGroup.hasShowConsensusHistogram())
{
- sg.setShowConsensusHistogram(groups[i].isShowConsensusHistogram());
+ sg.setShowConsensusHistogram(jGroup.isShowConsensusHistogram());
}
;
- if (groups[i].hasShowSequenceLogo())
+ if (jGroup.hasShowSequenceLogo())
{
- sg.setshowSequenceLogo(groups[i].isShowSequenceLogo());
+ sg.setshowSequenceLogo(jGroup.isShowSequenceLogo());
}
- if (groups[i].hasNormaliseSequenceLogo())
+ if (jGroup.hasNormaliseSequenceLogo())
{
- sg.setNormaliseSequenceLogo(groups[i].isNormaliseSequenceLogo());
+ sg.setNormaliseSequenceLogo(jGroup.isNormaliseSequenceLogo());
}
- if (groups[i].hasIgnoreGapsinConsensus())
+ if (jGroup.hasIgnoreGapsinConsensus())
{
- sg.setIgnoreGapsConsensus(groups[i].getIgnoreGapsinConsensus());
+ sg.setIgnoreGapsConsensus(jGroup.getIgnoreGapsinConsensus());
}
- if (groups[i].getConsThreshold() != 0)
+ if (jGroup.getConsThreshold() != 0)
{
jalview.analysis.Conservation c = new jalview.analysis.Conservation(
"All", ResidueProperties.propHash, 3,
sg.cs.setConservation(c);
}
- if (groups[i].getId() != null && groupAnnotRefs.size() > 0)
+ if (jGroup.getId() != null && groupAnnotRefs.size() > 0)
{
// re-instate unique group/annotation row reference
- ArrayList<jalview.datamodel.AlignmentAnnotation> jaal = groupAnnotRefs
- .get(groups[i].getId());
+ List<AlignmentAnnotation> jaal = groupAnnotRefs.get(jGroup
+ .getId());
if (jaal != null)
{
- for (jalview.datamodel.AlignmentAnnotation jaa : jaal)
+ for (AlignmentAnnotation jaa : jaal)
{
jaa.groupRef = sg;
if (jaa.autoCalculated)
if (addAnnotSchemeGroup)
{
// reconstruct the annotation colourscheme
- sg.cs = constructAnnotationColour(
- groups[i].getAnnotationColours(), null, al, jms, false);
+ sg.cs = constructAnnotationColour(jGroup.getAnnotationColours(),
+ null, al, jms, false);
}
}
}
av = af.viewport;
ap = af.alignPanel;
}
- // LOAD TREES
- // /////////////////////////////////////
- if (loadTreesAndStructures && jms.getTreeCount() > 0)
+
+ /*
+ * Load any trees, PDB structures and viewers
+ *
+ * Not done if flag is false (when this method is used for New View)
+ */
+ if (loadTreesAndStructures)
{
- try
+ loadTrees(jms, view, af, av, ap);
+ loadPDBStructures(jprovider, jseqs, af, ap);
+ loadRnaViewers(jprovider, jseqs, ap);
+ }
+ // and finally return.
+ return af;
+ }
+
+ /**
+ * Instantiate and link any saved RNA (Varna) viewers. The state of the Varna
+ * panel is restored from separate jar entries, two (gapped and trimmed) per
+ * sequence and secondary structure.
+ *
+ * Currently each viewer shows just one sequence and structure (gapped and
+ * trimmed), however this method is designed to support multiple sequences or
+ * structures in viewers if wanted in future.
+ *
+ * @param jprovider
+ * @param jseqs
+ * @param ap
+ */
+ private void loadRnaViewers(jarInputStreamProvider jprovider,
+ JSeq[] jseqs, AlignmentPanel ap)
+ {
+ /*
+ * scan the sequences for references to viewers; create each one the first
+ * time it is referenced, add Rna models to existing viewers
+ */
+ for (JSeq jseq : jseqs)
+ {
+ for (int i = 0; i < jseq.getRnaViewerCount(); i++)
{
- for (int t = 0; t < jms.getTreeCount(); t++)
+ RnaViewer viewer = jseq.getRnaViewer(i);
+ AppVarna appVarna = findOrCreateVarnaViewer(viewer,
+ uniqueSetSuffix, ap);
+
+ for (int j = 0; j < viewer.getSecondaryStructureCount(); j++)
{
+ SecondaryStructure ss = viewer.getSecondaryStructure(j);
+ SequenceI seq = seqRefIds.get(jseq.getId());
+ AlignmentAnnotation ann = this.annotationIds.get(ss
+ .getAnnotationId());
- Tree tree = jms.getTree(t);
+ /*
+ * add the structure to the Varna display (with session state copied
+ * from the jar to a temporary file)
+ */
+ boolean gapped = ss.isGapped();
+ String rnaTitle = ss.getTitle();
+ String sessionState = ss.getViewerState();
+ String tempStateFile = copyJarEntry(jprovider, sessionState,
+ "varna");
+ RnaModel rna = new RnaModel(rnaTitle, ann, seq, null, gapped);
+ appVarna.addModelSession(rna, rnaTitle, tempStateFile);
+ }
+ appVarna.setInitialSelection(viewer.getSelectedRna());
+ }
+ }
+ }
- TreePanel tp = (TreePanel) retrieveExistingObj(tree.getId());
- if (tp == null)
- {
- tp = af.ShowNewickTree(
- new jalview.io.NewickFile(tree.getNewick()),
- tree.getTitle(), tree.getWidth(), tree.getHeight(),
- tree.getXpos(), tree.getYpos());
- if (tree.getId() != null)
- {
- // perhaps bind the tree id to something ?
- }
- }
- else
- {
- // update local tree attributes ?
- // TODO: should check if tp has been manipulated by user - if so its
- // settings shouldn't be modified
- tp.setTitle(tree.getTitle());
- tp.setBounds(new Rectangle(tree.getXpos(), tree.getYpos(), tree
- .getWidth(), tree.getHeight()));
- tp.av = av; // af.viewport; // TODO: verify 'associate with all
- // views'
- // works still
- tp.treeCanvas.av = av; // af.viewport;
- tp.treeCanvas.ap = ap; // af.alignPanel;
+ /**
+ * Locate and return an already instantiated matching AppVarna, or create one
+ * if not found
+ *
+ * @param viewer
+ * @param viewIdSuffix
+ * @param ap
+ * @return
+ */
+ protected AppVarna findOrCreateVarnaViewer(RnaViewer viewer,
+ String viewIdSuffix, AlignmentPanel ap)
+ {
+ /*
+ * on each load a suffix is appended to the saved viewId, to avoid conflicts
+ * if load is repeated
+ */
+ String postLoadId = viewer.getViewId() + viewIdSuffix;
+ for (JInternalFrame frame : getAllFrames())
+ {
+ if (frame instanceof AppVarna)
+ {
+ AppVarna varna = (AppVarna) frame;
+ if (postLoadId.equals(varna.getViewId()))
+ {
+ // this viewer is already instantiated
+ // could in future here add ap as another 'parent' of the
+ // AppVarna window; currently just 1-to-many
+ return varna;
+ }
+ }
+ }
- }
- if (tp == null)
- {
- warn("There was a problem recovering stored Newick tree: \n"
- + tree.getNewick());
- continue;
- }
+ /*
+ * viewer not found - make it
+ */
+ RnaViewerModel model = new RnaViewerModel(postLoadId,
+ viewer.getTitle(), viewer.getXpos(), viewer.getYpos(),
+ viewer.getWidth(), viewer.getHeight(),
+ viewer.getDividerLocation());
+ AppVarna varna = new AppVarna(model, ap);
- tp.fitToWindow.setState(tree.getFitToWindow());
- tp.fitToWindow_actionPerformed(null);
+ return varna;
+ }
- if (tree.getFontName() != null)
- {
- tp.setTreeFont(new java.awt.Font(tree.getFontName(), tree
- .getFontStyle(), tree.getFontSize()));
- }
- else
+ /**
+ * Load any saved trees
+ *
+ * @param jms
+ * @param view
+ * @param af
+ * @param av
+ * @param ap
+ */
+ protected void loadTrees(JalviewModelSequence jms, Viewport view,
+ AlignFrame af, AlignViewport av, AlignmentPanel ap)
+ {
+ // TODO result of automated refactoring - are all these parameters needed?
+ try
+ {
+ for (int t = 0; t < jms.getTreeCount(); t++)
+ {
+
+ Tree tree = jms.getTree(t);
+
+ TreePanel tp = (TreePanel) retrieveExistingObj(tree.getId());
+ if (tp == null)
+ {
+ tp = af.ShowNewickTree(
+ new jalview.io.NewickFile(tree.getNewick()),
+ tree.getTitle(), tree.getWidth(), tree.getHeight(),
+ tree.getXpos(), tree.getYpos());
+ if (tree.getId() != null)
{
- tp.setTreeFont(new java.awt.Font(view.getFontName(), view
- .getFontStyle(), tree.getFontSize()));
+ // perhaps bind the tree id to something ?
}
+ }
+ else
+ {
+ // update local tree attributes ?
+ // TODO: should check if tp has been manipulated by user - if so its
+ // settings shouldn't be modified
+ tp.setTitle(tree.getTitle());
+ tp.setBounds(new Rectangle(tree.getXpos(), tree.getYpos(), tree
+ .getWidth(), tree.getHeight()));
+ tp.av = av; // af.viewport; // TODO: verify 'associate with all
+ // views'
+ // works still
+ tp.treeCanvas.av = av; // af.viewport;
+ tp.treeCanvas.ap = ap; // af.alignPanel;
- tp.showPlaceholders(tree.getMarkUnlinked());
- tp.showBootstrap(tree.getShowBootstrap());
- tp.showDistances(tree.getShowDistances());
+ }
+ if (tp == null)
+ {
+ warn("There was a problem recovering stored Newick tree: \n"
+ + tree.getNewick());
+ continue;
+ }
- tp.treeCanvas.threshold = tree.getThreshold();
+ tp.fitToWindow.setState(tree.getFitToWindow());
+ tp.fitToWindow_actionPerformed(null);
- if (tree.getCurrentTree())
- {
- af.viewport.setCurrentTree(tp.getTree());
- }
+ if (tree.getFontName() != null)
+ {
+ tp.setTreeFont(new java.awt.Font(tree.getFontName(), tree
+ .getFontStyle(), tree.getFontSize()));
+ }
+ else
+ {
+ tp.setTreeFont(new java.awt.Font(view.getFontName(), view
+ .getFontStyle(), tree.getFontSize()));
}
- } catch (Exception ex)
- {
- ex.printStackTrace();
+ tp.showPlaceholders(tree.getMarkUnlinked());
+ tp.showBootstrap(tree.getShowBootstrap());
+ tp.showDistances(tree.getShowDistances());
+
+ tp.treeCanvas.threshold = tree.getThreshold();
+
+ if (tree.getCurrentTree())
+ {
+ af.viewport.setCurrentTree(tp.getTree());
+ }
}
- }
- // //LOAD STRUCTURES
- if (loadTreesAndStructures)
+ } catch (Exception ex)
{
- loadStructures(jprovider, jseqs, af, ap);
+ ex.printStackTrace();
}
- // and finally return.
- return af;
}
/**
* @param af
* @param ap
*/
- protected void loadStructures(jarInputStreamProvider jprovider,
+ protected void loadPDBStructures(jarInputStreamProvider jprovider,
JSeq[] jseqs, AlignFrame af, AlignmentPanel ap)
{
/*
* @param af
* @param jprovider
*/
- protected void createChimeraViewer(Entry<String, StructureViewerModel> viewerData,
- AlignFrame af,
+ protected void createChimeraViewer(
+ Entry<String, StructureViewerModel> viewerData, AlignFrame af,
jarInputStreamProvider jprovider)
{
StructureViewerModel data = viewerData.getValue();
- String chimeraSessionFile = data.getStateData();
+ String chimeraSessionFile = data.getStateData();
/*
* Copy Chimera session from jar entry "viewer_"+viewId to a temporary file
*
- * Note this is the 'saved' viewId as in the project file XML, _not_ the
+ * NB this is the 'saved' viewId as in the project file XML, _not_ the
* 'uniquified' sviewid used to reconstruct the viewer here
*/
- chimeraSessionFile = copyJarEntry(jprovider,
- getViewerJarEntryName(data.getViewId()), "chimera");
+ String viewerJarEntryName = getViewerJarEntryName(data.getViewId());
+ chimeraSessionFile = copyJarEntry(jprovider, viewerJarEntryName,
+ "chimera");
Set<Entry<File, StructureData>> fileData = data.getFileData()
.entrySet();
final SequenceI[][] seqsArray = allseqs.toArray(new SequenceI[allseqs
.size()][]);
String newViewId = viewerData.getKey();
+
ChimeraViewFrame cvf = new ChimeraViewFrame(chimeraSessionFile,
- af.alignPanel, pdbArray,
- seqsArray, colourByChimera, colourBySequence, newViewId);
+ af.alignPanel, pdbArray, seqsArray, colourByChimera,
+ colourBySequence, newViewId);
cvf.setSize(data.getWidth(), data.getHeight());
cvf.setLocation(data.getX(), data.getY());
}
newFileLoc.append(";");
}
- if (newFileLoc.length() > 0)
+ if (newFileLoc.length() == 0)
{
- int histbug = newFileLoc.indexOf("history = ");
+ return;
+ }
+ int histbug = newFileLoc.indexOf("history = ");
+ if (histbug > -1)
+ {
+ /*
+ * change "history = [true|false];" to "history = [1|0];"
+ */
histbug += 10;
int diff = histbug == -1 ? -1 : newFileLoc.indexOf(";", histbug);
String val = (diff == -1) ? null : newFileLoc
.substring(histbug, diff);
if (val != null && val.length() >= 4)
{
- if (val.contains("e"))
+ if (val.contains("e")) // eh? what can it be?
{
if (val.trim().equals("true"))
{
newFileLoc.replace(histbug, diff, val);
}
}
+ }
- final String[] pdbf = pdbfilenames.toArray(new String[pdbfilenames
- .size()]);
- final String[] id = pdbids.toArray(new String[pdbids.size()]);
- final SequenceI[][] sq = seqmaps
- .toArray(new SequenceI[seqmaps.size()][]);
- final String fileloc = newFileLoc.toString();
- final String sviewid = viewerData.getKey();
- final AlignFrame alf = af;
- final Rectangle rect = new Rectangle(svattrib.getX(),
- svattrib.getY(), svattrib.getWidth(), svattrib.getHeight());
- try
+ final String[] pdbf = pdbfilenames.toArray(new String[pdbfilenames
+ .size()]);
+ final String[] id = pdbids.toArray(new String[pdbids.size()]);
+ final SequenceI[][] sq = seqmaps
+ .toArray(new SequenceI[seqmaps.size()][]);
+ final String fileloc = newFileLoc.toString();
+ final String sviewid = viewerData.getKey();
+ final AlignFrame alf = af;
+ final Rectangle rect = new Rectangle(svattrib.getX(), svattrib.getY(),
+ svattrib.getWidth(), svattrib.getHeight());
+ try
+ {
+ javax.swing.SwingUtilities.invokeAndWait(new Runnable()
{
- javax.swing.SwingUtilities.invokeAndWait(new Runnable()
+ @Override
+ public void run()
{
- @Override
- public void run()
+ JalviewStructureDisplayI sview = null;
+ try
{
- JalviewStructureDisplayI sview = null;
- try
- {
- sview = new StructureViewer(alf.alignPanel
- .getStructureSelectionManager()).createView(
- StructureViewer.ViewerType.JMOL, pdbf, id, sq,
- alf.alignPanel, svattrib, fileloc, rect, sviewid);
- addNewStructureViewer(sview);
- } catch (OutOfMemoryError ex)
+ sview = new StructureViewer(alf.alignPanel
+ .getStructureSelectionManager()).createView(
+ StructureViewer.ViewerType.JMOL, pdbf, id, sq,
+ alf.alignPanel, svattrib, fileloc, rect, sviewid);
+ addNewStructureViewer(sview);
+ } catch (OutOfMemoryError ex)
+ {
+ new OOMWarning("restoring structure view for PDB id " + id,
+ (OutOfMemoryError) ex.getCause());
+ if (sview != null && sview.isVisible())
{
- new OOMWarning("restoring structure view for PDB id " + id,
- (OutOfMemoryError) ex.getCause());
- if (sview != null && sview.isVisible())
- {
- sview.closeViewer(false);
- sview.setVisible(false);
- sview.dispose();
- }
+ sview.closeViewer(false);
+ sview.setVisible(false);
+ sview.dispose();
}
}
- });
- } catch (InvocationTargetException ex)
- {
- warn("Unexpected error when opening Jmol view.", ex);
+ }
+ });
+ } catch (InvocationTargetException ex)
+ {
+ warn("Unexpected error when opening Jmol view.", ex);
- } catch (InterruptedException e)
- {
- // e.printStackTrace();
- }
+ } catch (InterruptedException e)
+ {
+ // e.printStackTrace();
}
+
}
/**
*/
protected String getViewerJarEntryName(String viewId)
{
- return "viewer_" + viewId;
+ return VIEWER_PREFIX + viewId;
}
/**
* @return true if version is development/null or evaluates to the same or
* later X.Y.Z (where X,Y,Z are like [0-9]+b?[0-9]*)
*/
- private boolean isVersionStringLaterThan(String supported, String version)
+ protected boolean isVersionStringLaterThan(String supported,
+ String version)
{
if (version == null || version.equalsIgnoreCase("DEVELOPMENT BUILD")
|| version.equalsIgnoreCase("Test")
}
}
af.setMenusFromViewport(af.viewport);
-
+
// TODO: we don't need to do this if the viewport is aready visible.
/*
* Add the AlignFrame to the desktop (it may be 'gathered' later), unless it
}
}
- java.util.Hashtable datasetIds = null;
+ /*
+ * TODO use AlignmentI here and in related methods - needs
+ * AlignmentI.getDataset() changed to return AlignmentI instead of Alignment
+ */
+ Hashtable<String, Alignment> datasetIds = null;
- java.util.IdentityHashMap dataset2Ids = null;
+ IdentityHashMap<Alignment, String> dataset2Ids = null;
private Alignment getDatasetFor(String datasetId)
{
if (datasetIds == null)
{
- datasetIds = new Hashtable();
+ datasetIds = new Hashtable<String, Alignment>();
return null;
}
if (datasetIds.containsKey(datasetId))
{
- return (Alignment) datasetIds.get(datasetId);
+ return datasetIds.get(datasetId);
}
return null;
}
{
if (datasetIds == null)
{
- datasetIds = new Hashtable();
+ datasetIds = new Hashtable<String, Alignment>();
}
datasetIds.put(datasetId, dataset);
}
* @param dataset
* @return
*/
- private String getDatasetIdRef(jalview.datamodel.Alignment dataset)
+ private String getDatasetIdRef(Alignment dataset)
{
if (dataset.getDataset() != null)
{
// make a new datasetId and record it
if (dataset2Ids == null)
{
- dataset2Ids = new IdentityHashMap();
+ dataset2Ids = new IdentityHashMap<Alignment, String>();
}
else
{
- datasetId = (String) dataset2Ids.get(dataset);
+ datasetId = dataset2Ids.get(dataset);
}
if (datasetId == null)
{
boolean keepSeqRefs)
{
initSeqRefs();
- jalview.schemabinding.version2.JalviewModel jm = saveState(ap, null,
- null);
+ JalviewModel jm = saveState(ap, null, null, null);
if (!keepSeqRefs)
{
}
}
}
-
+
return result;
}
+
+ /**
+ * Returns an incrementing counter (0, 1, 2...)
+ *
+ * @return
+ */
+ private synchronized int nextCounter()
+ {
+ return counter++;
+ }
}
JMenu jMenu1 = new JMenu();
- JMenuItem proteinStructureMenu = new JMenuItem();
+ JMenuItem pdbStructureDialog = new JMenuItem();
JMenu rnaStructureMenu = new JMenu();
makeReferenceSeq.setText("Mark as representative");
}
- if (ap.av.getAlignment().isNucleotide() == false)
+ if (!ap.av.getAlignment().isNucleotide())
{
remove(rnaStructureMenu);
}
-
- if (ap.av.getAlignment().isNucleotide() == true)
+ else
{
- AlignmentAnnotation[] aa = ap.av.getAlignment()
+ int origCount = rnaStructureMenu.getItemCount();
+ /*
+ * add menu items to 2D-render any alignment or sequence secondary
+ * structure annotation
+ */
+ AlignmentAnnotation[] aas = ap.av.getAlignment()
.getAlignmentAnnotation();
- for (int i = 0; aa != null && i < aa.length; i++)
+ if (aas != null)
{
- if (aa[i].isValidStruc() && aa[i].sequenceRef == null)
+ for (final AlignmentAnnotation aa : aas)
{
- final String rnastruc = aa[i].getRNAStruc();
- final String structureLine = aa[i].label + " (alignment)";
- menuItem = new JMenuItem();
- menuItem.setText(MessageManager.formatMessage(
- "label.2d_rna_structure_line", new Object[]
- { structureLine }));
- menuItem.addActionListener(new java.awt.event.ActionListener()
+ if (aa.isValidStruc() && aa.sequenceRef == null)
{
- @Override
- public void actionPerformed(ActionEvent e)
+ /*
+ * valid alignment RNA secondary structure annotation
+ */
+ menuItem = new JMenuItem();
+ menuItem.setText(MessageManager.formatMessage(
+ "label.2d_rna_structure_line", new Object[]
+ { aa.label }));
+ menuItem.addActionListener(new java.awt.event.ActionListener()
{
- new AppVarna(structureLine, seq, seq.getSequenceAsString(),
- rnastruc, seq.getName(), ap);
- System.out.println("end");
- }
- });
- rnaStructureMenu.add(menuItem);
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ new AppVarna(seq, aa, ap);
+ }
+ });
+ rnaStructureMenu.add(menuItem);
+ }
}
}
-
if (seq.getAnnotation() != null)
{
- AlignmentAnnotation seqAnno[] = seq.getAnnotation();
- for (int i = 0; i < seqAnno.length; i++)
+ AlignmentAnnotation seqAnns[] = seq.getAnnotation();
+ for (final AlignmentAnnotation aa : seqAnns)
{
- if (seqAnno[i].isValidStruc())
+ if (aa.isValidStruc())
{
- final String rnastruc = seqAnno[i].getRNAStruc();
-
+ /*
+ * valid sequence RNA secondary structure annotation
+ */
// TODO: make rnastrucF a bit more nice
menuItem = new JMenuItem();
menuItem.setText(MessageManager.formatMessage(
public void actionPerformed(ActionEvent e)
{
// TODO: VARNA does'nt print gaps in the sequence
-
- new AppVarna(seq.getName() + " structure", seq, seq
- .getSequenceAsString(), rnastruc, seq.getName(),
- ap);
+ new AppVarna(seq, aa, ap);
}
});
rnaStructureMenu.add(menuItem);
}
}
}
+ if (rnaStructureMenu.getItemCount() == origCount)
+ {
+ remove(rnaStructureMenu);
+ }
}
menuItem = new JMenuItem(
if (seq == null)
{
sequenceMenu.setVisible(false);
- proteinStructureMenu.setVisible(false);
+ pdbStructureDialog.setVisible(false);
rnaStructureMenu.setVisible(false);
}
}
});
jMenu1.setText(MessageManager.getString("label.group"));
- proteinStructureMenu.setText(MessageManager
- .getString("label.view_protein_structure"));
- proteinStructureMenu.addActionListener(new ActionListener()
+ pdbStructureDialog.setText(MessageManager
+ .getString("label.show_pdbstruct_dialog"));
+ pdbStructureDialog.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent actionEvent)
add(groupMenu);
add(sequenceMenu);
add(rnaStructureMenu);
- add(proteinStructureMenu);
+ add(pdbStructureDialog);
if (sequence!=null)
{
add(hideInsertions);
// or we simply trust the user wants
// wysiwig behaviour
- cap.setText(new FormatAdapter().formatSequences(e.getActionCommand(),
+ cap.setText(new FormatAdapter(ap).formatSequences(e.getActionCommand(),
ap, true));
}
package jalview.gui;
+import jalview.util.MessageManager;
+
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.GridLayout;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;
-import jalview.util.MessageManager;
-
/**
* A class to manage multiple progress bars embedded in a JPanel.
*/
+++ /dev/null
-/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
- */
-package jalview.gui;
-
-import org.jmol.api.*;
-
-import jalview.jbgui.GStructureViewer;
-
-import java.awt.*;
-import java.awt.event.*;
-
-import javax.swing.*;
-import javax.swing.text.*;
-
-import java.util.Vector;
-
-import org.jmol.i18n.GT;
-import org.jmol.util.Logger;
-import org.jmol.util.CommandHistory;
-
-// TODO: this class is copied in from jmol 11.0.2 - upgrade to 12.0.2 ?
-public final class ScriptWindow extends JPanel implements ActionListener,
- EnterListener
-{
-
- private ConsoleTextPane console;
-
- private JButton closeButton;
-
- private JButton runButton;
-
- private JButton haltButton;
-
- private JButton clearButton;
-
- private JButton historyButton;
-
- private JButton stateButton;
-
- JmolViewer viewer;
-
- GStructureViewer appJmol;
-
- public ScriptWindow(AppJmol appJmol)
- {
- this.viewer = appJmol.jmb.viewer;
- this.appJmol = appJmol;
-
- setLayout(new BorderLayout());
-
- console = new ConsoleTextPane(this);
-
- console.setPrompt();
- add(new JScrollPane(console), BorderLayout.CENTER);
-
- JPanel buttonPanel = new JPanel();
- add(buttonPanel, BorderLayout.SOUTH);
-
- runButton = new JButton(GT._("Run"));
- haltButton = new JButton(GT._("Halt"));
- runButton.addActionListener(this);
- // buttonPanel.add(runButton);
- haltButton.addActionListener(this);
- // buttonPanel.add(haltButton);
- haltButton.setEnabled(false);
-
- clearButton = new JButton(GT._("Clear"));
- clearButton.addActionListener(this);
- buttonPanel.add(clearButton);
-
- historyButton = new JButton(GT._("History"));
- historyButton.addActionListener(this);
- buttonPanel.add(historyButton);
-
- stateButton = new JButton(GT._("State"));
- stateButton.addActionListener(this);
- buttonPanel.add(stateButton);
-
- closeButton = new JButton(GT._("Close"));
- closeButton.addActionListener(this);
- buttonPanel.add(closeButton);
-
- for (int i = 0; i < buttonPanel.getComponentCount(); i++)
- {
- // ((JButton)buttonPanel.getComponent(i))
- // .setMargin(new Insets(0, 0, 0, 0));
- }
-
- }
-
- public void sendConsoleEcho(String strEcho)
- {
- if (strEcho != null && !isError)
- {
-
- console.outputEcho(strEcho);
-
- }
- setError(false);
- }
-
- boolean isError = false;
-
- void setError(boolean TF)
- {
- isError = TF;
- // if (isError)
- // console.recallCommand(true);
- }
-
- public void sendConsoleMessage(String strStatus)
- {
- if (strStatus == null)
- {
- console.clearContent();
- console.outputStatus("");
- }
- else if (strStatus.indexOf("ERROR:") >= 0)
- {
- console.outputError(strStatus);
- isError = true;
- }
- else if (!isError)
- {
- console.outputStatus(strStatus);
- }
- }
-
- public void notifyScriptTermination(String strMsg, int msWalltime)
- {
- if (strMsg != null && strMsg.indexOf("ERROR") >= 0)
- {
- console.outputError(strMsg);
- }
- runButton.setEnabled(true);
- haltButton.setEnabled(false);
- }
-
- public void enterPressed()
- {
- runButton.doClick(100);
- // executeCommand();
- }
-
- class ExecuteCommandThread extends Thread
- {
-
- String strCommand;
-
- ExecuteCommandThread(String command)
- {
- strCommand = command;
- }
-
- public void run()
- {
- try
- {
- executeCommand(strCommand);
- } catch (Exception ie)
- {
- Logger.debug("execution command interrupted!" + ie);
- }
- }
- }
-
- ExecuteCommandThread execThread;
-
- void executeCommandAsThread()
- {
- String strCommand = console.getCommandString().trim();
- if (strCommand.length() > 0)
- {
- execThread = new ExecuteCommandThread(strCommand);
- execThread.start();
- }
- }
-
- void executeCommand(String strCommand)
- {
- boolean doWait;
- setError(false);
- console.appendNewline();
- console.setPrompt();
- if (strCommand.length() > 0)
- {
- String strErrorMessage = null;
- doWait = (strCommand.indexOf("WAIT ") == 0);
- if (doWait)
- { // for testing, mainly
- // demonstrates using the statusManager system.
- runButton.setEnabled(false);
- haltButton.setEnabled(true);
-
- Vector info = (Vector) viewer
- .scriptWaitStatus(strCommand.substring(5),
- "+fileLoaded,+scriptStarted,+scriptStatus,+scriptEcho,+scriptTerminated");
- runButton.setEnabled(true);
- haltButton.setEnabled(false);
- /*
- * info = [ statusRecortSet0, statusRecortSet1, statusRecortSet2, ...]
- * statusRecordSet = [ statusRecord0, statusRecord1, statusRecord2, ...]
- * statusRecord = [int msgPtr, String statusName, int intInfo, String
- * msg]
- */
- for (int i = 0; i < info.size(); i++)
- {
- Vector statusRecordSet = (Vector) info.get(i);
- for (int j = 0; j < statusRecordSet.size(); j++)
- {
- Vector statusRecord = (Vector) statusRecordSet.get(j);
- Logger.info("msg#=" + statusRecord.get(0) + " "
- + statusRecord.get(1) + " intInfo="
- + statusRecord.get(2) + " stringInfo="
- + statusRecord.get(3));
- }
- }
- console.appendNewline();
- }
- else
- {
- boolean isScriptExecuting = viewer.isScriptExecuting();
- if (viewer.checkHalt(strCommand, true))
- strErrorMessage = (isScriptExecuting ? "string execution halted with "
- + strCommand
- : "no script was executing");
- else
- strErrorMessage = "";// viewer.scriptCheck(strCommand);
- // the problem is that scriptCheck is synchronized, so these might get
- // backed up.
- if (strErrorMessage != null && strErrorMessage.length() > 0)
- {
- console.outputError(strErrorMessage);
- }
- else
- {
- // runButton.setEnabled(false);
- haltButton.setEnabled(true);
- viewer.script(strCommand);
- }
- }
- }
- console.grabFocus();
- }
-
- public void actionPerformed(ActionEvent e)
- {
- Object source = e.getSource();
- if (source == closeButton)
- {
- // appJmol.showConsole(false);
- }
- else if (source == runButton)
- {
- executeCommandAsThread();
- }
- else if (source == clearButton)
- {
- console.clearContent();
- }
- else if (source == historyButton)
- {
- console.clearContent(viewer.getSetHistory(Integer.MAX_VALUE));
- }
- else if (source == stateButton)
- {
- console.clearContent(viewer.getStateInfo());
- }
- else if (source == haltButton)
- {
- viewer.haltScriptExecution();
- }
- console.grabFocus(); // always grab the focus (e.g., after clear)
- }
-}
-
-class ConsoleTextPane extends JTextPane
-{
-
- ConsoleDocument consoleDoc;
-
- EnterListener enterListener;
-
- JmolViewer viewer;
-
- ConsoleTextPane(ScriptWindow scriptWindow)
- {
- super(new ConsoleDocument());
- consoleDoc = (ConsoleDocument) getDocument();
- consoleDoc.setConsoleTextPane(this);
- this.enterListener = (EnterListener) scriptWindow;
- this.viewer = scriptWindow.viewer;
- }
-
- public String getCommandString()
- {
- String cmd = consoleDoc.getCommandString();
- return cmd;
- }
-
- public void setPrompt()
- {
- consoleDoc.setPrompt();
- }
-
- public void appendNewline()
- {
- consoleDoc.appendNewline();
- }
-
- public void outputError(String strError)
- {
- consoleDoc.outputError(strError);
- }
-
- public void outputErrorForeground(String strError)
- {
- consoleDoc.outputErrorForeground(strError);
- }
-
- public void outputEcho(String strEcho)
- {
- consoleDoc.outputEcho(strEcho);
- }
-
- public void outputStatus(String strStatus)
- {
- consoleDoc.outputStatus(strStatus);
- }
-
- public void enterPressed()
- {
- if (enterListener != null)
- enterListener.enterPressed();
- }
-
- public void clearContent()
- {
- clearContent(null);
- }
-
- public void clearContent(String text)
- {
- consoleDoc.clearContent();
- if (text != null)
- consoleDoc.outputEcho(text);
- setPrompt();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.awt.Component#processKeyEvent(java.awt.event.KeyEvent)
- */
-
- /**
- * Custom key event processing for command 0 implementation.
- *
- * Captures key up and key down strokes to call command history and redefines
- * the same events with control down to allow caret vertical shift.
- *
- * @see java.awt.Component#processKeyEvent(java.awt.event.KeyEvent)
- */
- protected void processKeyEvent(KeyEvent ke)
- {
- // Id Control key is down, captures events does command
- // history recall and inhibits caret vertical shift.
- if (ke.getKeyCode() == KeyEvent.VK_UP
- && ke.getID() == KeyEvent.KEY_PRESSED && !ke.isControlDown())
- {
- recallCommand(true);
- }
- else if (ke.getKeyCode() == KeyEvent.VK_DOWN
- && ke.getID() == KeyEvent.KEY_PRESSED && !ke.isControlDown())
- {
- recallCommand(false);
- }
- // If Control key is down, redefines the event as if it
- // where a key up or key down stroke without modifiers.
- // This allows to move the caret up and down
- // with no command history recall.
- else if ((ke.getKeyCode() == KeyEvent.VK_DOWN || ke.getKeyCode() == KeyEvent.VK_UP)
- && ke.getID() == KeyEvent.KEY_PRESSED && ke.isControlDown())
- {
- super.processKeyEvent(new KeyEvent((Component) ke.getSource(), ke
- .getID(), ke.getWhen(), 0, // No modifiers
- ke.getKeyCode(), ke.getKeyChar(), ke.getKeyLocation()));
- }
- // Standard processing for other events.
- else
- {
- super.processKeyEvent(ke);
- // check command for compiler-identifyable syntax issues
- // this may have to be taken out if people start complaining
- // that only some of the commands are being checked
- // that is -- that the script itself is not being fully checked
-
- // not perfect -- help here?
- if (ke.getID() == KeyEvent.KEY_RELEASED
- && (ke.getKeyCode() > KeyEvent.VK_DOWN)
- || ke.getKeyCode() == KeyEvent.VK_BACK_SPACE)
- checkCommand();
- }
- }
-
- /**
- * Recall command history.
- *
- * @param up
- * - history up or down
- */
- void recallCommand(boolean up)
- {
- String cmd = viewer.getSetHistory(up ? -1 : 1);
- if (cmd == null)
- {
- return;
- }
- try
- {
- if (cmd.endsWith(CommandHistory.ERROR_FLAG))
- {
- cmd = cmd.substring(0, cmd.indexOf(CommandHistory.ERROR_FLAG));
- consoleDoc.replaceCommand(cmd, true);
- }
- else
- {
- consoleDoc.replaceCommand(cmd, false);
- }
- } catch (BadLocationException e)
- {
- e.printStackTrace();
- }
- }
-
- void checkCommand()
- {
- String strCommand = consoleDoc.getCommandString();
- if (strCommand.length() == 0)
- return;
- consoleDoc
- .colorCommand(viewer.scriptCheck(strCommand) == null ? consoleDoc.attUserInput
- : consoleDoc.attError);
- }
-
-}
-
-class ConsoleDocument extends DefaultStyledDocument
-{
-
- ConsoleTextPane consoleTextPane;
-
- SimpleAttributeSet attError;
-
- SimpleAttributeSet attEcho;
-
- SimpleAttributeSet attPrompt;
-
- SimpleAttributeSet attUserInput;
-
- SimpleAttributeSet attStatus;
-
- ConsoleDocument()
- {
- super();
-
- attError = new SimpleAttributeSet();
- StyleConstants.setForeground(attError, Color.red);
-
- attPrompt = new SimpleAttributeSet();
- StyleConstants.setForeground(attPrompt, Color.magenta);
-
- attUserInput = new SimpleAttributeSet();
- StyleConstants.setForeground(attUserInput, Color.black);
-
- attEcho = new SimpleAttributeSet();
- StyleConstants.setForeground(attEcho, Color.blue);
- StyleConstants.setBold(attEcho, true);
-
- attStatus = new SimpleAttributeSet();
- StyleConstants.setForeground(attStatus, Color.black);
- StyleConstants.setItalic(attStatus, true);
- }
-
- void setConsoleTextPane(ConsoleTextPane consoleTextPane)
- {
- this.consoleTextPane = consoleTextPane;
- }
-
- Position positionBeforePrompt; // starts at 0, so first time isn't tracked
-
- // (at least on Mac OS X)
-
- Position positionAfterPrompt; // immediately after $, so this will track
-
- int offsetAfterPrompt; // only still needed for the insertString override and
-
- // replaceCommand
-
- /**
- * Removes all content of the script window, and add a new prompt.
- */
- void clearContent()
- {
- try
- {
- super.remove(0, getLength());
- } catch (BadLocationException exception)
- {
- System.out.println("Could not clear script window content: "
- + exception.getMessage());
- }
- }
-
- void setPrompt()
- {
- try
- {
- super.insertString(getLength(), "$ ", attPrompt);
- setOffsetPositions();
- consoleTextPane.setCaretPosition(offsetAfterPrompt);
- } catch (BadLocationException e)
- {
- e.printStackTrace();
- }
- }
-
- void setOffsetPositions()
- {
- try
- {
- offsetAfterPrompt = getLength();
- positionBeforePrompt = createPosition(offsetAfterPrompt - 2);
- // after prompt should be immediately after $ otherwise tracks the end
- // of the line (and no command will be found) at least on Mac OS X it did.
- positionAfterPrompt = createPosition(offsetAfterPrompt - 1);
- } catch (BadLocationException e)
- {
- e.printStackTrace();
- }
- }
-
- void setNoPrompt()
- {
- try
- {
- offsetAfterPrompt = getLength();
- positionAfterPrompt = positionBeforePrompt = createPosition(offsetAfterPrompt);
- consoleTextPane.setCaretPosition(offsetAfterPrompt);
- } catch (BadLocationException e)
- {
- e.printStackTrace();
- }
- }
-
- // it looks like the positionBeforePrompt does not track when it started out
- // as 0
- // and a insertString at location 0 occurs. It may be better to track the
- // position after the prompt in stead
- void outputBeforePrompt(String str, SimpleAttributeSet attribute)
- {
- try
- {
- int pt = consoleTextPane.getCaretPosition();
- Position caretPosition = createPosition(pt);
- pt = positionBeforePrompt.getOffset();
- super.insertString(pt, str + "\n", attribute);
- setOffsetPositions();
- pt = caretPosition.getOffset();
- consoleTextPane.setCaretPosition(pt);
- } catch (BadLocationException e)
- {
- e.printStackTrace();
- }
- }
-
- void outputError(String strError)
- {
- outputBeforePrompt(strError, attError);
- }
-
- void outputErrorForeground(String strError)
- {
- try
- {
- super.insertString(getLength(), strError + "\n", attError);
- consoleTextPane.setCaretPosition(getLength());
- } catch (BadLocationException e)
- {
- e.printStackTrace();
-
- }
- }
-
- void outputEcho(String strEcho)
- {
- outputBeforePrompt(strEcho, attEcho);
- }
-
- void outputStatus(String strStatus)
- {
- outputBeforePrompt(strStatus, attStatus);
- }
-
- void appendNewline()
- {
- try
- {
- super.insertString(getLength(), "\n", attUserInput);
- consoleTextPane.setCaretPosition(getLength());
- } catch (BadLocationException e)
- {
- e.printStackTrace();
- }
- }
-
- // override the insertString to make sure everything typed ends up at the end
- // or in the 'command line' using the proper font, and the newline is
- // processed.
- public void insertString(int offs, String str, AttributeSet a)
- throws BadLocationException
- {
- int ichNewline = str.indexOf('\n');
- if (ichNewline > 0)
- str = str.substring(0, ichNewline);
- if (ichNewline != 0)
- {
- if (offs < offsetAfterPrompt)
- {
- offs = getLength();
- }
- super.insertString(offs, str, a == attError ? a : attUserInput);
- consoleTextPane.setCaretPosition(offs + str.length());
- }
- if (ichNewline >= 0)
- {
- consoleTextPane.enterPressed();
- }
- }
-
- String getCommandString()
- {
- String strCommand = "";
- try
- {
- int cmdStart = positionAfterPrompt.getOffset();
- strCommand = getText(cmdStart, getLength() - cmdStart);
- while (strCommand.length() > 0 && strCommand.charAt(0) == ' ')
- strCommand = strCommand.substring(1);
- } catch (BadLocationException e)
- {
- e.printStackTrace();
- }
- return strCommand;
- }
-
- public void remove(int offs, int len) throws BadLocationException
- {
- if (offs < offsetAfterPrompt)
- {
- len -= offsetAfterPrompt - offs;
- if (len <= 0)
- return;
- offs = offsetAfterPrompt;
- }
- super.remove(offs, len);
- // consoleTextPane.setCaretPosition(offs);
- }
-
- public void replace(int offs, int length, String str, AttributeSet attrs)
- throws BadLocationException
- {
- if (offs < offsetAfterPrompt)
- {
- if (offs + length < offsetAfterPrompt)
- {
- offs = getLength();
- length = 0;
- }
- else
- {
- length -= offsetAfterPrompt - offs;
- offs = offsetAfterPrompt;
- }
- }
- super.replace(offs, length, str, attrs);
- // consoleTextPane.setCaretPosition(offs + str.length());
- }
-
- /**
- * Replaces current command on script.
- *
- * @param newCommand
- * new command value
- * @param isError
- * true to set error color ends with #??
- *
- * @throws BadLocationException
- */
- void replaceCommand(String newCommand, boolean isError)
- throws BadLocationException
- {
- if (positionAfterPrompt == positionBeforePrompt)
- return;
- replace(offsetAfterPrompt, getLength() - offsetAfterPrompt, newCommand,
- isError ? attError : attUserInput);
- }
-
- void colorCommand(SimpleAttributeSet att)
- {
- if (positionAfterPrompt == positionBeforePrompt)
- return;
- setCharacterAttributes(offsetAfterPrompt, getLength()
- - offsetAfterPrompt, att, true);
- }
-}
-
-interface EnterListener
-{
- public void enterPressed();
-}
{
boolean srep = av.isDisplayReferenceSeq();
boolean getboxColour = false;
+ boolean isarep = av.getAlignment().getSeqrep() == seq;
+ boolean isgrep = currentSequenceGroup != null ? currentSequenceGroup
+ .getSeqrep() == seq : false;
+ char sr_c;
for (int i = start; i <= end; i++)
{
+
graphics.setColor(av.getTextColour());
getboxColour = false;
s = seq.getCharAt(i);
+
if (!renderGaps && jalview.util.Comparison.isGap(s))
{
continue;
{
graphics.setColor(currentSequenceGroup.textColour);
}
- if (currentSequenceGroup.getShowNonconserved()) // todo optimize
+ if (!isarep && !isgrep
+ && currentSequenceGroup.getShowNonconserved()) // todo
+ // optimize
{
// todo - use sequence group consensus
- s = getDisplayChar(srep, i, s,
- '.');
+ s = getDisplayChar(srep, i, s, '.', currentSequenceGroup);
}
graphics.setColor(av.getTextColour2());
}
}
- if (av.getShowUnconserved())
+ if (!isarep && av.getShowUnconserved())
{
- s = getDisplayChar(srep, i, s,
- '.');
+ s = getDisplayChar(srep, i, s, '.', currentSequenceGroup);
}
* @return
*/
private char getDisplayChar(final boolean usesrep, int position,
- char sequenceChar, char conservedChar)
+ char sequenceChar, char conservedChar, SequenceGroup currentGroup)
{
// TODO - use currentSequenceGroup rather than alignment
// currentSequenceGroup.getConsensus()
- char conschar = (usesrep) ? av.getAlignment().getSeqrep().getCharAt(position) : av.getAlignmentConsensusAnnotation().annotations[position].displayCharacter
- .charAt(0);
+ char conschar = (usesrep) ? (currentGroup == null ? av.getAlignment()
+ .getSeqrep().getCharAt(position)
+ : (currentGroup.getSeqrep() != null ? currentGroup.getSeqrep()
+ .getCharAt(position) : av.getAlignment().getSeqrep()
+ .getCharAt(position)))
+ : (currentGroup != null && currentGroup.getConsensus() != null) ? currentGroup
+ .getConsensus().annotations[position].displayCharacter
+ .charAt(0)
+ : av.getAlignmentConsensusAnnotation().annotations[position].displayCharacter
+ .charAt(0);
if (conschar != '-'
&& (sequenceChar == conschar || sequenceChar + CHAR_TO_UPPER == conschar))
{
&& row.annotations[j].displayCharacter.length() > 0 && !row.annotations[j].displayCharacter
.equals(" "));
hasGlyphs |= (row.annotations[j].secondaryStructure != 0 && row.annotations[j].secondaryStructure != ' ');
- hasValues |= (row.annotations[j].value != Float.NaN); // NaNs can't
+ hasValues |= (!Float.isNaN(row.annotations[j].value)); // NaNs can't
// be
// rendered..
hasText |= (row.annotations[j].description != null && row.annotations[j].description
}
if (hasValues)
{
- if (row.annotations[j].value != Float.NaN)
+ if (!Float.isNaN(row.annotations[j].value))
{
text.append(comma + row.annotations[j].value);
}
else
{
- System.err.println("Skipping NaN - not valid value.");
+ // System.err.println("Skipping NaN - not valid value.");
text.append(comma + 0f);// row.annotations[j].value);
}
comma = ",";
public static final boolean isValidFormat(String format,
boolean forwriting)
{
+ if (format == null)
+ {
+ return false;
+ }
boolean valid = false;
String[] format_list = (forwriting) ? WRITEABLE_FORMATS
: READABLE_FORMATS;
private AlignmentI buildAlignmentFrom(AlignFile alignFile2)
{
// Standard boilerplate for creating alignment from parser
- alignFile.configureForView(viewpanel);
+ // alignFile.configureForView(viewpanel);
AlignmentI al = new Alignment(alignFile.getSeqsAsArray());
aselview.addAnnotation(aa);
}
}
-
+ viewpanel = ap;
return formatSequences(format, aselview, jvsuffix);
}
{
throw new Exception(MessageManager.getString("error.implementation_error_unknown_file_format_string"));
}
+
afile.setNewlineString(newline);
afile.addJVSuffix(jvsuffix);
-
afile.setExportSettings(exportSettings);
-
afile.configureForView(viewpanel);
// check whether we were given a specific alignment to export, rather than
package jalview.io;
import jalview.api.AlignmentViewPanel;
+import jalview.datamodel.AlignmentExportData;
import jalview.exceptions.NoFileSelectedException;
import jalview.json.binding.v1.BioJSReleasePojo;
import jalview.json.binding.v1.BioJSRepositoryPojo;
try
{
String outputFile = getOutputFile();
- String jalviewAlignmentJson = JSONFile.getJSONData(ap);
+ // String jalviewAlignmentJson = JSONFile.getJSONData(ap);
+ AlignmentExportData exportData = jalview.gui.AlignFrame
+ .getAlignmentForExport(
+ JSONFile.FILE_DESC, ap.getAlignViewport());
+ if (exportData.getSettings().isCancelled())
+ {
+ return;
+ }
+ String jalviewAlignmentJson = new FormatAdapter(ap,
+ exportData.getSettings()).formatSequences(JSONFile.FILE_DESC,
+ exportData.getAlignment(), exportData.getOmitHidden(),
+ exportData.getStartEndPostions(), ap.getAlignViewport()
+ .getColumnSelection());
+
String bioJSTemplateString = getBioJsTemplateAsString();
String generatedBioJsWithJalviewAlignmentAsJson = bioJSTemplateString
.replaceAll(
{ "HTML files" }, "HTML files");
jvFileChooser.setFileView(new JalviewFileView());
- // TODO uncomment when supported by MassageManager
jvFileChooser.setDialogTitle(MessageManager
.getString("label.save_as_biojs_html"));
jvFileChooser.setDialogTitle("save as BioJs HTML");
try
{
String gitRepoPkgJson = getURLContentAsString(BJS_TEMPLATE_GIT_REPO);
- BioJSRepositoryPojo release = new BioJSRepositoryPojo(
- gitRepoPkgJson);
- syncUpdates(BJS_TEMPLATES_LOCAL_DIRECTORY, release);
- refreshBioJSVersionsInfo(BJS_TEMPLATES_LOCAL_DIRECTORY);
+ if (gitRepoPkgJson != null)
+ {
+ BioJSRepositoryPojo release = new BioJSRepositoryPojo(
+ gitRepoPkgJson);
+ syncUpdates(BJS_TEMPLATES_LOCAL_DIRECTORY, release);
+ refreshBioJSVersionsInfo(BJS_TEMPLATES_LOCAL_DIRECTORY);
+ }
} catch (URISyntaxException e)
{
e.printStackTrace();
out.append(next[j].end);
out.append("\t");
out.append(next[j].type);
- if (next[j].score != Float.NaN)
+ if (!Float.isNaN(next[j].score))
{
out.append("\t");
out.append(next[j].score);
package jalview.io;
import jalview.api.ComplexAlignFile;
+import jalview.api.FeaturesDisplayedI;
+import jalview.bin.Jalview;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.ColumnSelection;
import jalview.datamodel.PDBEntry;
{
format = new IdentifyFile().Identify(file, protocol);
}
+
+ }
+
+ if (format == null || format.equalsIgnoreCase("EMPTY DATA FILE"))
+ {
+ Desktop.instance.stopLoading();
+ System.err.println("The input file \"" + file
+ + "\" has null or unidentifiable data content!");
+ if (!Jalview.isHeadlessMode())
+ {
+ JOptionPane.showMessageDialog(null, "The input file \"" + file
+ + "\" has null or unidentifiable data content!",
+ "Empty data file",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ return;
}
// TODO: cache any stream datasources as a temporary file (eg. PDBs
// retrieved via URL)
// open a new source and read from it
FormatAdapter fa = new FormatAdapter();
al = fa.readFile(file, protocol, format);
- source = fa.getAlignFile(); // keep reference for later if necessary.
+ source = fa.getAlignFile(); // keep reference for later if
+ // necessary.
}
} catch (java.io.IOException ex)
{
.isShowSeqFeatures();
ColourSchemeI cs = ((ComplexAlignFile) source)
.getColourScheme();
+ FeaturesDisplayedI fd = ((ComplexAlignFile) source)
+ .getDisplayedFeatures();
alignFrame = new AlignFrame(al, hiddenSeqs, colSel,
AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
alignFrame.getViewport().setShowSequenceFeatures(
showSeqFeatures);
+ alignFrame.getViewport().setFeaturesDisplayed(fd);
alignFrame.changeColour(cs);
}
else
alignFrame = new AlignFrame(al, AlignFrame.DEFAULT_WIDTH,
AlignFrame.DEFAULT_HEIGHT);
}
- }
- // add metadata and update ui
- if (!protocol.equals(AppletFormatAdapter.PASTE))
- {
- alignFrame.setFileName(file, format);
- }
+ // add metadata and update ui
+ if (!protocol.equals(AppletFormatAdapter.PASTE))
+ {
+ alignFrame.setFileName(file, format);
+ }
- alignFrame.statusBar.setText(MessageManager.formatMessage(
- "label.successfully_loaded_file", new String[]
- { title }));
+ alignFrame.statusBar.setText(MessageManager.formatMessage(
+ "label.successfully_loaded_file", new String[]
+ { title }));
- if (raiseGUI)
- {
- // add the window to the GUI
- // note - this actually should happen regardless of raiseGUI
- // status in Jalview 3
- // TODO: define 'virtual desktop' for benefit of headless scripts
- // that perform queries to find the 'current working alignment'
- Desktop.addInternalFrame(alignFrame, title,
- AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
- }
+ if (raiseGUI)
+ {
+ // add the window to the GUI
+ // note - this actually should happen regardless of raiseGUI
+ // status in Jalview 3
+ // TODO: define 'virtual desktop' for benefit of headless scripts
+ // that perform queries to find the 'current working alignment'
+ Desktop.addInternalFrame(alignFrame, title,
+ AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
+ }
- try
- {
- alignFrame.setMaximum(jalview.bin.Cache.getDefault(
- "SHOW_FULLSCREEN", false));
- } catch (java.beans.PropertyVetoException ex)
- {
+ try
+ {
+ alignFrame.setMaximum(jalview.bin.Cache.getDefault(
+ "SHOW_FULLSCREEN", false));
+ } catch (java.beans.PropertyVetoException ex)
+ {
+ }
}
}
else
{
public void run()
{
- javax.swing.JOptionPane
- .showInternalMessageDialog(
- Desktop.desktop,
- MessageManager.formatMessage("warn.out_of_memory_loading_file", new String[]{file}),
- MessageManager.getString("label.out_of_memory"),
- javax.swing.JOptionPane.WARNING_MESSAGE);
+ javax.swing.JOptionPane.showInternalMessageDialog(
+ Desktop.desktop, MessageManager.formatMessage(
+ "warn.out_of_memory_loading_file", new String[]
+ { file }), MessageManager
+ .getString("label.out_of_memory"),
+ javax.swing.JOptionPane.WARNING_MESSAGE);
}
});
}
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
-import jalview.gui.AlignmentPanel;
/**
* Additional formatting methods used by the application in a number of places.
init();
}
- public FormatAdapter(AlignmentPanel alignPanel,
+ public FormatAdapter(AlignmentViewPanel alignPanel,
AlignExportSettingI settings)
{
super(alignPanel, settings);
package jalview.io;
+import jalview.api.ComplexAlignFile;
+import jalview.api.FeaturesDisplayedI;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.SequenceI;
+import jalview.schemes.ColourSchemeI;
+
import java.io.IOException;
import java.io.StringReader;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
-import jalview.api.ComplexAlignFile;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.SequenceI;
-import jalview.schemes.ColourSchemeI;
-
public class HtmlFile extends AlignFile implements ComplexAlignFile
{
public static final String FILE_EXT = "html";
private SequenceI[] hiddenSequences;
+ private FeaturesDisplayedI displayedFeatures;
+
public HtmlFile()
{
super();
this.colourScheme = jsonFile.getColourScheme();
this.hiddenSequences = jsonFile.getHiddenSequences();
this.columnSelection = jsonFile.getColumnSelection();
+ this.displayedFeatures = jsonFile.getDisplayedFeatures();
} catch (Exception e)
{
errormessage = "Failed to extract data from HTML document.";
this.hiddenSequences = hiddenSequences;
}
+ @Override
+ public FeaturesDisplayedI getDisplayedFeatures()
+ {
+ return displayedFeatures;
+ }
+
}
package jalview.io;
import jalview.api.FeatureRenderer;
+import jalview.datamodel.AlignmentExportData;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignViewport;
import jalview.gui.AlignmentPanel;
}
printUnwrapped(aDimension.getWidth(), aDimension.getHeight(), 0, g1,
g2);
- FileOutputStream out = new FileOutputStream(file);
String titleSvgData = g1.getSVGDocument();
String alignSvgData = g2.getSVGDocument();
- String jsonData = JSONFile.getJSONData(ap);
+
+ AlignmentExportData exportData = ap.alignFrame.getAlignmentForExport(
+ JSONFile.FILE_DESC, av);
+ if (exportData.getSettings().isCancelled())
+ {
+ return;
+ }
+ String jsonData = new FormatAdapter(ap, exportData.getSettings())
+ .formatSequences(JSONFile.FILE_DESC, exportData
+ .getAlignment(), exportData.getOmitHidden(),
+ exportData.getStartEndPostions(), ap
+ .getAlignViewport().getColumnSelection());
+
+ // String jsonData = JSONFile.getJSONData(ap);
String htmlData = getHtml(titleSvgData, alignSvgData, jsonData);
+ FileOutputStream out = new FileOutputStream(file);
out.write(htmlData.getBytes());
out.flush();
out.close();
}
while ((data = source.nextLine()) != null)
{
- length += data.length();
+ length += data.trim().length();
if (!lineswereskipped)
{
for (int i = 0; !isBinary && i < data.length(); i++)
reply = "STH";
break;
}
- // if (data.matches("<(\"[^\"]*\"|'[^']*'|[^'\">])*>"))
- if (data.matches("<(?i)html(\"[^\"]*\"|'[^']*'|[^'\">])*>"))
- {
- reply = HtmlFile.FILE_DESC;
- break;
- }
- if (data.matches("<(?i)rnaml (\"[^\"]*\"|'[^']*'|[^'\">])*>"))
+ if ((data.indexOf("<") > -1)) // possible Markup Language data i.e HTML,
+ // RNAML, XML
{
- reply = "RNAML";
- break;
+ boolean identified = false;
+ do
+ {
+ if (data.matches("<(?i)html(\"[^\"]*\"|'[^']*'|[^'\">])*>"))
+ {
+ reply = HtmlFile.FILE_DESC;
+ identified = true;
+ break;
+ }
+
+ if (data.matches("<(?i)rnaml (\"[^\"]*\"|'[^']*'|[^'\">])*>"))
+ {
+ reply = "RNAML";
+ identified = true;
+ break;
+ }
+ } while ((data = source.nextLine()) != null);
+
+ if (identified)
+ {
+ break;
+ }
}
+
if (data.indexOf("{\"") > -1)
{
reply = JSONFile.FILE_DESC;
package jalview.io;
+import jalview.api.AlignExportSettingI;
+import jalview.api.AlignViewportI;
import jalview.api.AlignmentViewPanel;
import jalview.api.ComplexAlignFile;
import jalview.api.FeatureRenderer;
import jalview.api.FeaturesDisplayedI;
import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentI;
import jalview.datamodel.Annotation;
import jalview.datamodel.ColumnSelection;
import jalview.datamodel.HiddenSequences;
import jalview.json.binding.v1.SequencePojo;
import jalview.schemes.ColourSchemeI;
import jalview.schemes.ColourSchemeProperty;
+import jalview.viewmodel.seqfeatures.FeaturesDisplayed;
import java.awt.Color;
import java.io.IOException;
private ArrayList<SequenceI> hiddenSequences;
+
public JSONFile()
{
super();
try
{
AlignmentPojo jsonAlignmentPojo = new AlignmentPojo();
+ AlignExportSettingI exportSettings = getExportSettings();
+
+ // if no export settings were supplied use the following with all values
+ // defaulting to true
+ if (exportSettings == null)
+ {
+ exportSettings = new AlignExportSettingI()
+ {
+ @Override
+ public boolean isExportHiddenSequences()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isExportHiddenColumns()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isExportGroups()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isExportFeatures()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isExportAnnotations()
+ {
+ return true;
+ }
+ };
+ }
int count = 0;
for (SequenceI seq : seqs)
if (hiddenSections != null)
{
if (hiddenSections[0] != null
- && getExportSettings()
+ && exportSettings
.isExportHiddenColumns())
{
jsonAlignmentPojo.getAppSettings().put("hiddenCols",
String.valueOf(hiddenSections[0]));
}
if (hiddenSections[1] != null
- && getExportSettings()
+ && exportSettings
.isExportHiddenSequences())
{
jsonAlignmentPojo.getAppSettings().put("hiddenSeqs",
}
}
- if (getExportSettings().isExportAnnotations())
+ if (exportSettings.isExportAnnotations())
{
jsonAlignmentPojo
.setAlignAnnotation(annotationToJsonPojo(annotations));
}
- if (getExportSettings().isExportFeatures())
+ if (exportSettings.isExportFeatures())
{
jsonAlignmentPojo
.setSeqFeatures(sequenceFeatureToJsonPojo(seqs, fr));
}
- if (getExportSettings().isExportGroups()
+ if (exportSettings.isExportGroups()
&& seqGroups != null
&& seqGroups.size() > 0)
{
return hiddenSections;
}
- public static List<SequenceFeaturesPojo> sequenceFeatureToJsonPojo(
+ public List<SequenceFeaturesPojo> sequenceFeatureToJsonPojo(
List<SequenceI> seqs, FeatureRenderer fr)
{
- FeaturesDisplayedI displayedFeatures = (fr == null) ? null : fr
+ displayedFeatures = (fr == null) ? null : fr
.getFeaturesDisplayed();
List<SequenceFeaturesPojo> sequenceFeaturesPojo = new ArrayList<SequenceFeaturesPojo>();
for (SequenceI seq : seqs)
{
SequenceFeaturesPojo jsonFeature = new SequenceFeaturesPojo(
String.valueOf(seq.hashCode()));
+
String featureColour = (fr == null) ? null : jalview.util.Format
.getHexString(fr
.findFeatureColour(Color.white, seq,
}
}
}
- ColourSchemeI scheme = getJalviewColorScheme(colourScheme);
- SequenceGroup seqGrp = new SequenceGroup(grpSeqs, grpName, scheme,
+ ColourSchemeI grpColourScheme = getJalviewColorScheme(colourScheme);
+ SequenceGroup seqGrp = new SequenceGroup(grpSeqs, grpName,
+ grpColourScheme,
displayBoxes, displayText, colourText, startRes, endRes);
seqGrp.setShowNonconserved(showNonconserved);
seqGrp.setDescription(description);
{
if (jsonSeqFeatures != null)
{
+ displayedFeatures = new FeaturesDisplayed();
for (Iterator<JSONObject> seqFeatureItr = jsonSeqFeatures.iterator(); seqFeatureItr
.hasNext();)
{
sequenceFeature.setBegin(seq.findPosition(begin.intValue()));
sequenceFeature.setEnd(seq.findPosition(end.intValue()) - 1);
seq.addSequenceFeature(sequenceFeature);
+ displayedFeatures.setVisible(type);
}
}
}
this.colourScheme = colourScheme;
}
+ @Override
public FeaturesDisplayedI getDisplayedFeatures()
{
return displayedFeatures;
this.displayedFeatures = displayedFeatures;
}
- @Override
+
public void configureForView(AlignmentViewPanel avpanel)
{
super.configureForView(avpanel);
- if (isExporting())
- {
- setViewport(avpanel.getAlignViewport());
- seqGroups = avpanel.getAlignment().getGroups();
- setDisplayedFeatures(getViewport().getFeaturesDisplayed());
- fr = avpanel.cloneFeatureRenderer();
+ AlignViewportI viewport = avpanel.getAlignViewport();
+ AlignmentI alignment = viewport.getAlignment();
+ AlignmentAnnotation[] annots = alignment.getAlignmentAnnotation();
- for (SequenceI seq : getViewport().getAlignment().getSequences())
- {
- seqs.add(seq);
- }
+ seqGroups = alignment.getGroups();
+ fr = avpanel.cloneFeatureRenderer();
- // Add non auto calculated annotation to AlignFile
- for (AlignmentAnnotation annot : getViewport().getAlignment()
- .getAlignmentAnnotation())
+ // Add non auto calculated annotation to AlignFile
+ for (AlignmentAnnotation annot : annots)
+ {
+ if (annot != null && !annot.autoCalculated)
{
- if (annot != null && !annot.autoCalculated)
+ if (!annot.visible)
{
- if (annot.label.equals("PDB.CATempFactor"))
- {
- continue;
- }
- annotations.add(annot);
+ continue;
}
+ annotations.add(annot);
}
-
- globalColorScheme = ColourSchemeProperty.getColourName(getViewport()
- .getGlobalColourScheme());
- setDisplayedFeatures(getViewport().getFeaturesDisplayed());
- showSeqFeatures = getViewport().isShowSequenceFeatures();
}
- }
+ globalColorScheme = ColourSchemeProperty.getColourName(viewport
+ .getGlobalColourScheme());
+ setDisplayedFeatures(viewport.getFeaturesDisplayed());
+ showSeqFeatures = viewport.isShowSequenceFeatures();
-
- public static String getJSONData(AlignmentViewPanel av)
- {
- JSONFile jsonFile = new JSONFile();
- jsonFile.configureForView(av);
- String jsonString = jsonFile.print();
- return jsonString;
}
public boolean isShowSeqFeatures()
}
}
// check score should be shown
- if (feature.getScore() != Float.NaN)
+ if (!Float.isNaN(feature.getScore()))
{
float[][] rng = (minmax == null) ? null : ((float[][]) minmax
.get(feature.getType()));
*/
package jalview.io.vamsas;
+import jalview.bin.Cache;
+import jalview.datamodel.SequenceFeature;
+import jalview.datamodel.SequenceI;
+import jalview.io.VamsasAppDatastore;
+import jalview.util.UrlLink;
+
import java.util.Enumeration;
import java.util.Vector;
import uk.ac.vamsas.objects.core.Score;
import uk.ac.vamsas.objects.core.Seg;
import uk.ac.vamsas.objects.utils.Properties;
-import jalview.bin.Cache;
-import jalview.datamodel.SequenceFeature;
-import jalview.datamodel.SequenceI;
-import jalview.io.VamsasAppDatastore;
-import jalview.util.UrlLink;
/**
* @author JimP
{
for (int i = 0, iSize = feature.links.size(); i < iSize; i++)
{
- String link = (String) feature.links.elementAt(i);
+ String link = feature.links.elementAt(i);
UrlLink ulink = new UrlLink(link);
if (ulink.isValid())
{
}
}
dsa.setGroup(feature.getFeatureGroup());
- if (feature.getScore() != Float.NaN)
+ if (!Float.isNaN(feature.getScore()))
{
Score fscore = new Score();
dsa.setScore(new Score[]
JButton btnCancel = new JButton("Cancel");
- private boolean hasHiddenSeq, hasHiddenCols, isComplexAlignFile;
-
- boolean isComplexFormat = false;
+ private boolean hasHiddenSeq, hasHiddenCols, isComplexAlignFile,
+ showDialog;
public GAlignExportSettings(boolean hasHiddenSeq, boolean hasHiddenCols,
String alignFileFormat)
break;
}
}
-
+ if (this.hasHiddenCols || this.hasHiddenSeq || this.isComplexAlignFile)
+ {
+ this.showDialog = true;
+ }
init();
}
optionsPanel.add(hiddenRegionConfPanel);
}
- if (isComplexAlignFile)
+ if (this.isComplexAlignFile)
{
optionsPanel.add(complexExportPanel);
}
add(actionPanel, BorderLayout.SOUTH);
}
-
-
private void checkAllAction()
{
&& chkExportGrps.isEnabled() && isSelected);
}
+ public boolean isShowDialog()
+ {
+ return showDialog;
+ }
+
+ public void setShowDialog(boolean showDialog)
+ {
+ this.showDialog = showDialog;
+ }
+
public abstract void ok_actionPerformed(ActionEvent e);
public abstract void cancel_actionPerformed(ActionEvent e);
*/
package jalview.jbgui;
+import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
+import jalview.api.SplitContainerI;
+import jalview.bin.Cache;
+import jalview.gui.JvSwingUtils;
+import jalview.gui.Preferences;
+import jalview.schemes.ColourSchemeProperty;
+import jalview.util.MessageManager;
+
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
-import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
-import jalview.api.SplitContainerI;
-import jalview.bin.Cache;
-import jalview.gui.JvSwingUtils;
-import jalview.gui.Preferences;
-import jalview.schemes.ColourSchemeProperty;
-import jalview.util.MessageManager;
-
public class GAlignFrame extends JInternalFrame
{
protected JMenuBar alignFrameMenuBar = new JMenuBar();
System.err.println(e.toString());
}
- if (!new jalview.util.Platform().isAMac())
+ if (!jalview.util.Platform.isAMac())
{
closeMenuItem.setMnemonic('C');
outputTextboxMenu.setMnemonic('T');
{
case SEARCH_SUMMARY:
columnNames = new String[]
- { "PDB Feild", "Show in search summary" };
+ { "PDB Field", "Show in search summary" };
break;
case STRUCTURE_CHOOSER:
columnNames = new String[]
- { "PDB Feild", "Show in structure summary" };
+ { "PDB Field", "Show in structure summary" };
break;
case PREFERENCES:
columnNames = new String[]
- { "PDB Feild", "Show in search summary", "Show in structure summary" };
+ { "PDB Field", "Show in search summary", "Show in structure summary" };
break;
default:
break;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
+import java.util.Objects;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
@SuppressWarnings("unchecked")
private void parse(String jsonString) throws ParseException
{
+ Objects.requireNonNull(jsonString,
+ "Supplied jsonString must not be null");
JSONParser jsonParser = new JSONParser();
JSONObject JsonObj = (JSONObject) jsonParser.parse(jsonString);
this.description = (String) JsonObj.get("description");
public class AnnotationRenderer
{
+ private static final int UPPER_TO_LOWER = 'a' - 'A'; // 32
+
+ private static final int CHAR_A = 'A'; // 65
+
+ private static final int CHAR_Z = 'Z'; // 90
+
/**
* flag indicating if timing and redraw parameter info should be output
*/
private FontMetrics fm;
- private final boolean MAC = new jalview.util.Platform().isAMac();
+ private final boolean MAC = jalview.util.Platform.isAMac();
boolean av_renderHistogram = true, av_renderProfile = true,
av_normaliseProfile = false;
}
}
- if (ss >= 65)
+ if (isRNA && (ss >= CHAR_A) && (ss <= CHAR_Z))
{
// distinguish between forward/backward base-pairing
- if (displayChar.indexOf(ss + 32) > -1)
+ int ssLowerCase = ss + UPPER_TO_LOWER;
+ // TODO would .equals() be safer here? or charAt(0)?
+ if (displayChar.indexOf(ssLowerCase) > -1)
{
-
- ss = (char) (ss + 32);
-
+ ss = (char) ssLowerCase;
}
}
else if (showFeature(sequenceFeature))
{
if (av_isShowSeqFeatureHeight
- && sequenceFeature.score != Float.NaN)
+ && !Float.isNaN(sequenceFeature.score))
{
renderScoreFeature(g, seq,
seq.findIndex(sequenceFeature.begin) - 1,
-#Wed Jun 10 11:15:53 BST 2015
+#Fri Jun 26 14:22:47 BST 2015
jalview.schemabinding.version2.ThresholdLine=jalview.schemabinding.version2.descriptors.ThresholdLineDescriptor
jalview.schemabinding.version2.SequenceSetProperties=jalview.schemabinding.version2.descriptors.SequenceSetPropertiesDescriptor
jalview.schemabinding.version2.StructureState=jalview.schemabinding.version2.descriptors.StructureStateDescriptor
jalview.schemabinding.version2.Setting=jalview.schemabinding.version2.descriptors.SettingDescriptor
jalview.schemabinding.version2.AlcodonFrame=jalview.schemabinding.version2.descriptors.AlcodonFrameDescriptor
jalview.schemabinding.version2.AnnotationElement=jalview.schemabinding.version2.descriptors.AnnotationElementDescriptor
+jalview.schemabinding.version2.SecondaryStructure=jalview.schemabinding.version2.descriptors.SecondaryStructureDescriptor
jalview.schemabinding.version2.SequenceSet=jalview.schemabinding.version2.descriptors.SequenceSetDescriptor
jalview.schemabinding.version2.Viewport=jalview.schemabinding.version2.descriptors.ViewportDescriptor
+jalview.schemabinding.version2.RnaViewer=jalview.schemabinding.version2.descriptors.RnaViewerDescriptor
jalview.schemabinding.version2.MapListType=jalview.schemabinding.version2.descriptors.MapListTypeDescriptor
jalview.schemabinding.version2.Property=jalview.schemabinding.version2.descriptors.PropertyDescriptor
jalview.schemabinding.version2.UserColourScheme=jalview.schemabinding.version2.descriptors.UserColourSchemeDescriptor
//--------------------------/
/**
- * handle for the calculation which uses this parameter set
+ * handle for the calculation which uses
+ * this parameter set
+ *
*/
private java.lang.String _calcId;
/**
- * should the calculation be performed immediately after
- * loading in order to refresh results
+ * should the calculation be performed
+ * immediately after loading in order to refresh results
+ *
*/
private boolean _needsUpdate = false;
private boolean _has_needsUpdate;
/**
- * should the calculation be automatically performed on edits
+ * should the calculation be automatically
+ * performed on edits
+ *
*/
private boolean _autoUpdate;
/**
* Returns the value of field 'autoUpdate'. The field
* 'autoUpdate' has the following description: should the
- * calculation be automatically performed on edits
+ * calculation be automatically
+ * performed on edits
+ *
*
* @return the value of field 'AutoUpdate'.
*/
/**
* Returns the value of field 'calcId'. The field 'calcId' has
* the following description: handle for the calculation which
- * uses this parameter set
+ * uses
+ * this parameter set
+ *
*
* @return the value of field 'CalcId'.
*/
/**
* Returns the value of field 'needsUpdate'. The field
* 'needsUpdate' has the following description: should the
- * calculation be performed immediately after loading in order
- * to refresh results
+ * calculation be performed
+ * immediately after loading in order to refresh results
+ *
*
* @return the value of field 'NeedsUpdate'.
*/
/**
* Returns the value of field 'autoUpdate'. The field
* 'autoUpdate' has the following description: should the
- * calculation be automatically performed on edits
+ * calculation be automatically
+ * performed on edits
+ *
*
* @return the value of field 'AutoUpdate'.
*/
/**
* Returns the value of field 'needsUpdate'. The field
* 'needsUpdate' has the following description: should the
- * calculation be performed immediately after loading in order
- * to refresh results
+ * calculation be performed
+ * immediately after loading in order to refresh results
+ *
*
* @return the value of field 'NeedsUpdate'.
*/
/**
* Sets the value of field 'autoUpdate'. The field 'autoUpdate'
* has the following description: should the calculation be
- * automatically performed on edits
+ * automatically
+ * performed on edits
+ *
*
* @param autoUpdate the value of field 'autoUpdate'.
*/
/**
* Sets the value of field 'calcId'. The field 'calcId' has the
* following description: handle for the calculation which uses
- * this parameter set
+ * this parameter set
+ *
*
* @param calcId the value of field 'calcId'.
*/
/**
* Sets the value of field 'needsUpdate'. The field
* 'needsUpdate' has the following description: should the
- * calculation be performed immediately after loading in order
- * to refresh results
+ * calculation be performed
+ * immediately after loading in order to refresh results
+ *
*
* @param needsUpdate the value of field 'needsUpdate'.
*/
/**
* Optional sequence group ID (only
- * needs to be unique for this
+ * needs to be
+ * unique for this
* alignment)
*
*/
/**
* Returns the value of field 'id'. The field 'id' has the
* following description: Optional sequence group ID (only
- * needs to be unique for this
+ * needs to be
+ * unique for this
* alignment)
*
*
/**
* Sets the value of field 'id'. The field 'id' has the
* following description: Optional sequence group ID (only
- * needs to be unique for this
+ * needs to be
+ * unique for this
* alignment)
*
*
*/
private java.util.Vector _hiddenSequencesList;
+ /**
+ * Reference to a viewer showing RNA structure
+ * for this sequence. Schema supports one viewer showing
+ * multiple
+ * annotations for multiple sequences, though currently only
+ * one
+ * annotation for one sequence (gapped or trimmed) is used
+ *
+ */
+ private java.util.Vector _rnaViewerList;
+
//----------------/
//- Constructors -/
this._featuresList = new java.util.Vector();
this._pdbidsList = new java.util.Vector();
this._hiddenSequencesList = new java.util.Vector();
+ this._rnaViewerList = new java.util.Vector();
}
}
/**
+ *
+ *
+ * @param vRnaViewer
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addRnaViewer(
+ final jalview.schemabinding.version2.RnaViewer vRnaViewer)
+ throws java.lang.IndexOutOfBoundsException {
+ this._rnaViewerList.addElement(vRnaViewer);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vRnaViewer
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addRnaViewer(
+ final int index,
+ final jalview.schemabinding.version2.RnaViewer vRnaViewer)
+ throws java.lang.IndexOutOfBoundsException {
+ this._rnaViewerList.add(index, vRnaViewer);
+ }
+
+ /**
*/
public void deleteColour(
) {
}
/**
+ * Method enumerateRnaViewer.
+ *
+ * @return an Enumeration over all
+ * jalview.schemabinding.version2.RnaViewer elements
+ */
+ public java.util.Enumeration enumerateRnaViewer(
+ ) {
+ return this._rnaViewerList.elements();
+ }
+
+ /**
* Returns the value of field 'colour'.
*
* @return the value of field 'Colour'.
}
/**
+ * Method getRnaViewer.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the
+ * jalview.schemabinding.version2.RnaViewer at the given index
+ */
+ public jalview.schemabinding.version2.RnaViewer getRnaViewer(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._rnaViewerList.size()) {
+ throw new IndexOutOfBoundsException("getRnaViewer: Index value '" + index + "' not in range [0.." + (this._rnaViewerList.size() - 1) + "]");
+ }
+
+ return (jalview.schemabinding.version2.RnaViewer) _rnaViewerList.get(index);
+ }
+
+ /**
+ * Method getRnaViewer.Returns the contents of the collection
+ * in an Array. <p>Note: Just in case the collection contents
+ * are changing in another thread, we pass a 0-length Array of
+ * the correct type into the API call. This way we <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.schemabinding.version2.RnaViewer[] getRnaViewer(
+ ) {
+ jalview.schemabinding.version2.RnaViewer[] array = new jalview.schemabinding.version2.RnaViewer[0];
+ return (jalview.schemabinding.version2.RnaViewer[]) this._rnaViewerList.toArray(array);
+ }
+
+ /**
+ * Method getRnaViewerCount.
+ *
+ * @return the size of this collection
+ */
+ public int getRnaViewerCount(
+ ) {
+ return this._rnaViewerList.size();
+ }
+
+ /**
* Returns the value of field 'start'.
*
* @return the value of field 'Start'.
}
/**
+ */
+ public void removeAllRnaViewer(
+ ) {
+ this._rnaViewerList.clear();
+ }
+
+ /**
* Method removeFeatures.
*
* @param vFeatures
}
/**
+ * Method removeRnaViewer.
+ *
+ * @param vRnaViewer
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeRnaViewer(
+ final jalview.schemabinding.version2.RnaViewer vRnaViewer) {
+ boolean removed = _rnaViewerList.remove(vRnaViewer);
+ return removed;
+ }
+
+ /**
+ * Method removeRnaViewerAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.schemabinding.version2.RnaViewer removeRnaViewerAt(
+ final int index) {
+ java.lang.Object obj = this._rnaViewerList.remove(index);
+ return (jalview.schemabinding.version2.RnaViewer) obj;
+ }
+
+ /**
* Sets the value of field 'colour'.
*
* @param colour the value of field 'colour'.
}
/**
+ *
+ *
+ * @param index
+ * @param vRnaViewer
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setRnaViewer(
+ final int index,
+ final jalview.schemabinding.version2.RnaViewer vRnaViewer)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._rnaViewerList.size()) {
+ throw new IndexOutOfBoundsException("setRnaViewer: Index value '" + index + "' not in range [0.." + (this._rnaViewerList.size() - 1) + "]");
+ }
+
+ this._rnaViewerList.set(index, vRnaViewer);
+ }
+
+ /**
+ *
+ *
+ * @param vRnaViewerArray
+ */
+ public void setRnaViewer(
+ final jalview.schemabinding.version2.RnaViewer[] vRnaViewerArray) {
+ //-- copy array
+ _rnaViewerList.clear();
+
+ for (int i = 0; i < vRnaViewerArray.length; i++) {
+ this._rnaViewerList.add(vRnaViewerArray[i]);
+ }
+ }
+
+ /**
* Sets the value of field 'start'.
*
* @param start the value of field 'start'.
--- /dev/null
+/*
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2;
+
+ //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import org.exolab.castor.xml.Marshaller;
+import org.exolab.castor.xml.Unmarshaller;
+
+/**
+ * Reference to a viewer showing RNA structure
+ * for this sequence. Schema supports one viewer showing multiple
+ * annotations for multiple sequences, though currently only one
+ * annotation for one sequence (gapped or trimmed) is used
+ *
+ *
+ * @version $Revision$ $Date$
+ */
+public class RnaViewer implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _title.
+ */
+ private java.lang.String _title;
+
+ /**
+ * An id unique to the RNA viewer panel
+ *
+ */
+ private java.lang.String _viewId;
+
+ /**
+ * horizontal position of split pane divider
+ *
+ */
+ private int _dividerLocation;
+
+ /**
+ * keeps track of state for field: _dividerLocation
+ */
+ private boolean _has_dividerLocation;
+
+ /**
+ * Index of the selected structure in the
+ * viewer panel
+ *
+ */
+ private int _selectedRna;
+
+ /**
+ * keeps track of state for field: _selectedRna
+ */
+ private boolean _has_selectedRna;
+
+ /**
+ * Field _width.
+ */
+ private int _width;
+
+ /**
+ * keeps track of state for field: _width
+ */
+ private boolean _has_width;
+
+ /**
+ * Field _height.
+ */
+ private int _height;
+
+ /**
+ * keeps track of state for field: _height
+ */
+ private boolean _has_height;
+
+ /**
+ * Field _xpos.
+ */
+ private int _xpos;
+
+ /**
+ * keeps track of state for field: _xpos
+ */
+ private boolean _has_xpos;
+
+ /**
+ * Field _ypos.
+ */
+ private int _ypos;
+
+ /**
+ * keeps track of state for field: _ypos
+ */
+ private boolean _has_ypos;
+
+ /**
+ * Field _secondaryStructureList.
+ */
+ private java.util.Vector _secondaryStructureList;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public RnaViewer() {
+ super();
+ this._secondaryStructureList = new java.util.Vector();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ *
+ *
+ * @param vSecondaryStructure
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addSecondaryStructure(
+ final jalview.schemabinding.version2.SecondaryStructure vSecondaryStructure)
+ throws java.lang.IndexOutOfBoundsException {
+ this._secondaryStructureList.addElement(vSecondaryStructure);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vSecondaryStructure
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addSecondaryStructure(
+ final int index,
+ final jalview.schemabinding.version2.SecondaryStructure vSecondaryStructure)
+ throws java.lang.IndexOutOfBoundsException {
+ this._secondaryStructureList.add(index, vSecondaryStructure);
+ }
+
+ /**
+ */
+ public void deleteDividerLocation(
+ ) {
+ this._has_dividerLocation= false;
+ }
+
+ /**
+ */
+ public void deleteHeight(
+ ) {
+ this._has_height= false;
+ }
+
+ /**
+ */
+ public void deleteSelectedRna(
+ ) {
+ this._has_selectedRna= false;
+ }
+
+ /**
+ */
+ public void deleteWidth(
+ ) {
+ this._has_width= false;
+ }
+
+ /**
+ */
+ public void deleteXpos(
+ ) {
+ this._has_xpos= false;
+ }
+
+ /**
+ */
+ public void deleteYpos(
+ ) {
+ this._has_ypos= false;
+ }
+
+ /**
+ * Method enumerateSecondaryStructure.
+ *
+ * @return an Enumeration over all
+ * jalview.schemabinding.version2.SecondaryStructure elements
+ */
+ public java.util.Enumeration enumerateSecondaryStructure(
+ ) {
+ return this._secondaryStructureList.elements();
+ }
+
+ /**
+ * Returns the value of field 'dividerLocation'. The field
+ * 'dividerLocation' has the following description: horizontal
+ * position of split pane divider
+ *
+ *
+ * @return the value of field 'DividerLocation'.
+ */
+ public int getDividerLocation(
+ ) {
+ return this._dividerLocation;
+ }
+
+ /**
+ * Returns the value of field 'height'.
+ *
+ * @return the value of field 'Height'.
+ */
+ public int getHeight(
+ ) {
+ return this._height;
+ }
+
+ /**
+ * Method getSecondaryStructure.
+ *
+ * @param index
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ * @return the value of the
+ * jalview.schemabinding.version2.SecondaryStructure at the
+ * given index
+ */
+ public jalview.schemabinding.version2.SecondaryStructure getSecondaryStructure(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._secondaryStructureList.size()) {
+ throw new IndexOutOfBoundsException("getSecondaryStructure: Index value '" + index + "' not in range [0.." + (this._secondaryStructureList.size() - 1) + "]");
+ }
+
+ return (jalview.schemabinding.version2.SecondaryStructure) _secondaryStructureList.get(index);
+ }
+
+ /**
+ * Method getSecondaryStructure.Returns the contents of the
+ * collection in an Array. <p>Note: Just in case the
+ * collection contents are changing in another thread, we pass
+ * a 0-length Array of the correct type into the API call.
+ * This way we <i>know</i> that the Array returned is of
+ * exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public jalview.schemabinding.version2.SecondaryStructure[] getSecondaryStructure(
+ ) {
+ jalview.schemabinding.version2.SecondaryStructure[] array = new jalview.schemabinding.version2.SecondaryStructure[0];
+ return (jalview.schemabinding.version2.SecondaryStructure[]) this._secondaryStructureList.toArray(array);
+ }
+
+ /**
+ * Method getSecondaryStructureCount.
+ *
+ * @return the size of this collection
+ */
+ public int getSecondaryStructureCount(
+ ) {
+ return this._secondaryStructureList.size();
+ }
+
+ /**
+ * Returns the value of field 'selectedRna'. The field
+ * 'selectedRna' has the following description: Index of the
+ * selected structure in the
+ * viewer panel
+ *
+ *
+ * @return the value of field 'SelectedRna'.
+ */
+ public int getSelectedRna(
+ ) {
+ return this._selectedRna;
+ }
+
+ /**
+ * Returns the value of field 'title'.
+ *
+ * @return the value of field 'Title'.
+ */
+ public java.lang.String getTitle(
+ ) {
+ return this._title;
+ }
+
+ /**
+ * Returns the value of field 'viewId'. The field 'viewId' has
+ * the following description: An id unique to the RNA viewer
+ * panel
+ *
+ *
+ * @return the value of field 'ViewId'.
+ */
+ public java.lang.String getViewId(
+ ) {
+ return this._viewId;
+ }
+
+ /**
+ * Returns the value of field 'width'.
+ *
+ * @return the value of field 'Width'.
+ */
+ public int getWidth(
+ ) {
+ return this._width;
+ }
+
+ /**
+ * Returns the value of field 'xpos'.
+ *
+ * @return the value of field 'Xpos'.
+ */
+ public int getXpos(
+ ) {
+ return this._xpos;
+ }
+
+ /**
+ * Returns the value of field 'ypos'.
+ *
+ * @return the value of field 'Ypos'.
+ */
+ public int getYpos(
+ ) {
+ return this._ypos;
+ }
+
+ /**
+ * Method hasDividerLocation.
+ *
+ * @return true if at least one DividerLocation has been added
+ */
+ public boolean hasDividerLocation(
+ ) {
+ return this._has_dividerLocation;
+ }
+
+ /**
+ * Method hasHeight.
+ *
+ * @return true if at least one Height has been added
+ */
+ public boolean hasHeight(
+ ) {
+ return this._has_height;
+ }
+
+ /**
+ * Method hasSelectedRna.
+ *
+ * @return true if at least one SelectedRna has been added
+ */
+ public boolean hasSelectedRna(
+ ) {
+ return this._has_selectedRna;
+ }
+
+ /**
+ * Method hasWidth.
+ *
+ * @return true if at least one Width has been added
+ */
+ public boolean hasWidth(
+ ) {
+ return this._has_width;
+ }
+
+ /**
+ * Method hasXpos.
+ *
+ * @return true if at least one Xpos has been added
+ */
+ public boolean hasXpos(
+ ) {
+ return this._has_xpos;
+ }
+
+ /**
+ * Method hasYpos.
+ *
+ * @return true if at least one Ypos has been added
+ */
+ public boolean hasYpos(
+ ) {
+ return this._has_ypos;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ */
+ public void removeAllSecondaryStructure(
+ ) {
+ this._secondaryStructureList.clear();
+ }
+
+ /**
+ * Method removeSecondaryStructure.
+ *
+ * @param vSecondaryStructure
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeSecondaryStructure(
+ final jalview.schemabinding.version2.SecondaryStructure vSecondaryStructure) {
+ boolean removed = _secondaryStructureList.remove(vSecondaryStructure);
+ return removed;
+ }
+
+ /**
+ * Method removeSecondaryStructureAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public jalview.schemabinding.version2.SecondaryStructure removeSecondaryStructureAt(
+ final int index) {
+ java.lang.Object obj = this._secondaryStructureList.remove(index);
+ return (jalview.schemabinding.version2.SecondaryStructure) obj;
+ }
+
+ /**
+ * Sets the value of field 'dividerLocation'. The field
+ * 'dividerLocation' has the following description: horizontal
+ * position of split pane divider
+ *
+ *
+ * @param dividerLocation the value of field 'dividerLocation'.
+ */
+ public void setDividerLocation(
+ final int dividerLocation) {
+ this._dividerLocation = dividerLocation;
+ this._has_dividerLocation = true;
+ }
+
+ /**
+ * Sets the value of field 'height'.
+ *
+ * @param height the value of field 'height'.
+ */
+ public void setHeight(
+ final int height) {
+ this._height = height;
+ this._has_height = true;
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vSecondaryStructure
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void setSecondaryStructure(
+ final int index,
+ final jalview.schemabinding.version2.SecondaryStructure vSecondaryStructure)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._secondaryStructureList.size()) {
+ throw new IndexOutOfBoundsException("setSecondaryStructure: Index value '" + index + "' not in range [0.." + (this._secondaryStructureList.size() - 1) + "]");
+ }
+
+ this._secondaryStructureList.set(index, vSecondaryStructure);
+ }
+
+ /**
+ *
+ *
+ * @param vSecondaryStructureArray
+ */
+ public void setSecondaryStructure(
+ final jalview.schemabinding.version2.SecondaryStructure[] vSecondaryStructureArray) {
+ //-- copy array
+ _secondaryStructureList.clear();
+
+ for (int i = 0; i < vSecondaryStructureArray.length; i++) {
+ this._secondaryStructureList.add(vSecondaryStructureArray[i]);
+ }
+ }
+
+ /**
+ * Sets the value of field 'selectedRna'. The field
+ * 'selectedRna' has the following description: Index of the
+ * selected structure in the
+ * viewer panel
+ *
+ *
+ * @param selectedRna the value of field 'selectedRna'.
+ */
+ public void setSelectedRna(
+ final int selectedRna) {
+ this._selectedRna = selectedRna;
+ this._has_selectedRna = true;
+ }
+
+ /**
+ * Sets the value of field 'title'.
+ *
+ * @param title the value of field 'title'.
+ */
+ public void setTitle(
+ final java.lang.String title) {
+ this._title = title;
+ }
+
+ /**
+ * Sets the value of field 'viewId'. The field 'viewId' has the
+ * following description: An id unique to the RNA viewer panel
+ *
+ *
+ * @param viewId the value of field 'viewId'.
+ */
+ public void setViewId(
+ final java.lang.String viewId) {
+ this._viewId = viewId;
+ }
+
+ /**
+ * Sets the value of field 'width'.
+ *
+ * @param width the value of field 'width'.
+ */
+ public void setWidth(
+ final int width) {
+ this._width = width;
+ this._has_width = true;
+ }
+
+ /**
+ * Sets the value of field 'xpos'.
+ *
+ * @param xpos the value of field 'xpos'.
+ */
+ public void setXpos(
+ final int xpos) {
+ this._xpos = xpos;
+ this._has_xpos = true;
+ }
+
+ /**
+ * Sets the value of field 'ypos'.
+ *
+ * @param ypos the value of field 'ypos'.
+ */
+ public void setYpos(
+ final int ypos) {
+ this._ypos = ypos;
+ this._has_ypos = true;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled
+ * jalview.schemabinding.version2.RnaViewer
+ */
+ public static jalview.schemabinding.version2.RnaViewer unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.schemabinding.version2.RnaViewer) Unmarshaller.unmarshal(jalview.schemabinding.version2.RnaViewer.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
+
+}
--- /dev/null
+/*
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2;
+
+ //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import org.exolab.castor.xml.Marshaller;
+import org.exolab.castor.xml.Unmarshaller;
+
+/**
+ * Class SecondaryStructure.
+ *
+ * @version $Revision$ $Date$
+ */
+public class SecondaryStructure implements java.io.Serializable {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _title.
+ */
+ private java.lang.String _title;
+
+ /**
+ * id attribute of Annotation in
+ * vamsasModel for
+ * the secondary structure annotation shown
+ * in the viewer
+ *
+ */
+ private java.lang.String _annotationId;
+
+ /**
+ * if true the RNA structure is shown with gaps, if false
+ * without
+ *
+ */
+ private boolean _gapped;
+
+ /**
+ * keeps track of state for field: _gapped
+ */
+ private boolean _has_gapped;
+
+ /**
+ * name of the project jar entry that holds
+ * the VARNA viewer state for the structure
+ *
+ */
+ private java.lang.String _viewerState;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public SecondaryStructure() {
+ super();
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ */
+ public void deleteGapped(
+ ) {
+ this._has_gapped= false;
+ }
+
+ /**
+ * Returns the value of field 'annotationId'. The field
+ * 'annotationId' has the following description: id attribute
+ * of Annotation in
+ * vamsasModel for
+ * the secondary structure annotation shown
+ * in the viewer
+ *
+ *
+ * @return the value of field 'AnnotationId'.
+ */
+ public java.lang.String getAnnotationId(
+ ) {
+ return this._annotationId;
+ }
+
+ /**
+ * Returns the value of field 'gapped'. The field 'gapped' has
+ * the following description: if true the RNA structure is
+ * shown with gaps, if false without
+ *
+ *
+ * @return the value of field 'Gapped'.
+ */
+ public boolean getGapped(
+ ) {
+ return this._gapped;
+ }
+
+ /**
+ * Returns the value of field 'title'.
+ *
+ * @return the value of field 'Title'.
+ */
+ public java.lang.String getTitle(
+ ) {
+ return this._title;
+ }
+
+ /**
+ * Returns the value of field 'viewerState'. The field
+ * 'viewerState' has the following description: name of the
+ * project jar entry that holds
+ * the VARNA viewer state for the structure
+ *
+ *
+ * @return the value of field 'ViewerState'.
+ */
+ public java.lang.String getViewerState(
+ ) {
+ return this._viewerState;
+ }
+
+ /**
+ * Method hasGapped.
+ *
+ * @return true if at least one Gapped has been added
+ */
+ public boolean hasGapped(
+ ) {
+ return this._has_gapped;
+ }
+
+ /**
+ * Returns the value of field 'gapped'. The field 'gapped' has
+ * the following description: if true the RNA structure is
+ * shown with gaps, if false without
+ *
+ *
+ * @return the value of field 'Gapped'.
+ */
+ public boolean isGapped(
+ ) {
+ return this._gapped;
+ }
+
+ /**
+ * Method isValid.
+ *
+ * @return true if this object is valid according to the schema
+ */
+ public boolean isValid(
+ ) {
+ try {
+ validate();
+ } catch (org.exolab.castor.xml.ValidationException vex) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ *
+ *
+ * @param out
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void marshal(
+ final java.io.Writer out)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, out);
+ }
+
+ /**
+ *
+ *
+ * @param handler
+ * @throws java.io.IOException if an IOException occurs during
+ * marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ */
+ public void marshal(
+ final org.xml.sax.ContentHandler handler)
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ Marshaller.marshal(this, handler);
+ }
+
+ /**
+ * Sets the value of field 'annotationId'. The field
+ * 'annotationId' has the following description: id attribute
+ * of Annotation in
+ * vamsasModel for
+ * the secondary structure annotation shown
+ * in the viewer
+ *
+ *
+ * @param annotationId the value of field 'annotationId'.
+ */
+ public void setAnnotationId(
+ final java.lang.String annotationId) {
+ this._annotationId = annotationId;
+ }
+
+ /**
+ * Sets the value of field 'gapped'. The field 'gapped' has the
+ * following description: if true the RNA structure is shown
+ * with gaps, if false without
+ *
+ *
+ * @param gapped the value of field 'gapped'.
+ */
+ public void setGapped(
+ final boolean gapped) {
+ this._gapped = gapped;
+ this._has_gapped = true;
+ }
+
+ /**
+ * Sets the value of field 'title'.
+ *
+ * @param title the value of field 'title'.
+ */
+ public void setTitle(
+ final java.lang.String title) {
+ this._title = title;
+ }
+
+ /**
+ * Sets the value of field 'viewerState'. The field
+ * 'viewerState' has the following description: name of the
+ * project jar entry that holds
+ * the VARNA viewer state for the structure
+ *
+ *
+ * @param viewerState the value of field 'viewerState'.
+ */
+ public void setViewerState(
+ final java.lang.String viewerState) {
+ this._viewerState = viewerState;
+ }
+
+ /**
+ * Method unmarshal.
+ *
+ * @param reader
+ * @throws org.exolab.castor.xml.MarshalException if object is
+ * null or if any SAXException is thrown during marshaling
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ * @return the unmarshaled
+ * jalview.schemabinding.version2.SecondaryStructure
+ */
+ public static jalview.schemabinding.version2.SecondaryStructure unmarshal(
+ final java.io.Reader reader)
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {
+ return (jalview.schemabinding.version2.SecondaryStructure) Unmarshaller.unmarshal(jalview.schemabinding.version2.SecondaryStructure.class, reader);
+ }
+
+ /**
+ *
+ *
+ * @throws org.exolab.castor.xml.ValidationException if this
+ * object is an invalid instance according to the schema
+ */
+ public void validate(
+ )
+ throws org.exolab.castor.xml.ValidationException {
+ org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
+ validator.validate(this);
+ }
+
+}
/**
* Optional minimum colour
- * for graduated feature
+ * for graduated
+ * feature
* colour
*
*/
* Returns the value of field 'mincolour'. The field
* 'mincolour' has the following description: Optional minimum
* colour
- * for graduated feature
+ * for graduated
+ * feature
* colour
*
*
/**
* Sets the value of field 'mincolour'. The field 'mincolour'
* has the following description: Optional minimum colour
- * for graduated feature
+ * for graduated
+ * feature
* colour
*
*
private boolean _has_colourByJmol;
/**
- * An identifier for the viewer type, currently either
- * JMOL or CHIMERA
+ * An
+ * identifier
+ * for
+ * the
+ * viewer
+ * type,
+ * currently
+ * either
+ * JMOL
+ * or
+ * CHIMERA
*
*/
private java.lang.String _type;
/**
* Returns the value of field 'type'. The field 'type' has the
- * following description: An identifier for the viewer type,
- * currently either
- * JMOL or CHIMERA
+ * following description: An
+ * identifier
+ * for
+ * the
+ * viewer
+ * type,
+ * currently
+ * either
+ * JMOL
+ * or
+ * CHIMERA
*
*
* @return the value of field 'Type'.
/**
* Sets the value of field 'type'. The field 'type' has the
- * following description: An identifier for the viewer type,
- * currently either
- * JMOL or CHIMERA
+ * following description: An
+ * identifier
+ * for
+ * the
+ * viewer
+ * type,
+ * currently
+ * either
+ * JMOL
+ * or
+ * CHIMERA
*
*
* @param type the value of field 'type'.
/**
* Tree ID added for binding tree
- * visualization settings to vamsas
+ * visualization
+ * settings to vamsas
* document trees in jalview 2.4.1
*
*/
/**
* Returns the value of field 'id'. The field 'id' has the
* following description: Tree ID added for binding tree
- * visualization settings to vamsas
+ * visualization
+ * settings to vamsas
* document trees in jalview 2.4.1
*
*
/**
* Sets the value of field 'id'. The field 'id' has the
* following description: Tree ID added for binding tree
- * visualization settings to vamsas
+ * visualization
+ * settings to vamsas
* document trees in jalview 2.4.1
*
*
/**
* unique id used by jalview to
- * synchronize between stored and
+ * synchronize
+ * between stored and
* instantiated views
*
*/
private java.lang.String _id;
/**
- * The viewport id of this viewport's (cdna/protein) coding
- * complement, if any
+ * The viewport id of this viewport's
+ * (cdna/protein) coding complement, if any
*
*/
private java.lang.String _complementId;
/**
* Returns the value of field 'complementId'. The field
* 'complementId' has the following description: The viewport
- * id of this viewport's (cdna/protein) coding complement, if
- * any
+ * id of this viewport's
+ * (cdna/protein) coding complement, if any
*
*
* @return the value of field 'ComplementId'.
/**
* Returns the value of field 'id'. The field 'id' has the
* following description: unique id used by jalview to
- * synchronize between stored and
+ * synchronize
+ * between stored and
* instantiated views
*
*
/**
* Sets the value of field 'complementId'. The field
* 'complementId' has the following description: The viewport
- * id of this viewport's (cdna/protein) coding complement, if
- * any
+ * id of this viewport's
+ * (cdna/protein) coding complement, if any
*
*
* @param complementId the value of field 'complementId'.
/**
* Sets the value of field 'id'. The field 'id' has the
* following description: unique id used by jalview to
- * synchronize between stored and
+ * synchronize
+ * between stored and
* instantiated views
*
*
typeValidator.setMaxInclusive(2147483647);
}
desc.setValidator(fieldValidator);
+ //-- _rnaViewerList
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.RnaViewer.class, "_rnaViewerList", "rnaViewer", org.exolab.castor.xml.NodeType.Element);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ JSeq target = (JSeq) object;
+ return target.getRnaViewer();
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ JSeq target = (JSeq) object;
+ target.addRnaViewer( (jalview.schemabinding.version2.RnaViewer) value);
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+ try {
+ JSeq target = (JSeq) object;
+ target.removeAllRnaViewer();
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return new jalview.schemabinding.version2.RnaViewer();
+ }
+ };
+ desc.setHandler(handler);
+ desc.setNameSpaceURI("www.jalview.org");
+ desc.setMultivalued(true);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _rnaViewerList
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ fieldValidator.setMinOccurs(0);
+ { //-- local scope
+ }
+ desc.setValidator(fieldValidator);
}
--- /dev/null
+/*
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2.descriptors;
+
+ //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import jalview.schemabinding.version2.RnaViewer;
+
+/**
+ * Class RnaViewerDescriptor.
+ *
+ * @version $Revision$ $Date$
+ */
+public class RnaViewerDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _elementDefinition.
+ */
+ private boolean _elementDefinition;
+
+ /**
+ * Field _nsPrefix.
+ */
+ private java.lang.String _nsPrefix;
+
+ /**
+ * Field _nsURI.
+ */
+ private java.lang.String _nsURI;
+
+ /**
+ * Field _xmlName.
+ */
+ private java.lang.String _xmlName;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public RnaViewerDescriptor() {
+ super();
+ _nsURI = "www.jalview.org";
+ _xmlName = "rnaViewer";
+ _elementDefinition = true;
+
+ //-- set grouping compositor
+ setCompositorAsSequence();
+ org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
+ org.exolab.castor.mapping.FieldHandler handler = null;
+ org.exolab.castor.xml.FieldValidator fieldValidator = null;
+ //-- initialize attribute descriptors
+
+ //-- _title
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_title", "title", org.exolab.castor.xml.NodeType.Attribute);
+ desc.setImmutable(true);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ RnaViewer target = (RnaViewer) object;
+ return target.getTitle();
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ RnaViewer target = (RnaViewer) object;
+ target.setTitle( (java.lang.String) value);
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _title
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.StringValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setWhiteSpace("preserve");
+ }
+ desc.setValidator(fieldValidator);
+ //-- _viewId
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_viewId", "viewId", org.exolab.castor.xml.NodeType.Attribute);
+ desc.setImmutable(true);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ RnaViewer target = (RnaViewer) object;
+ return target.getViewId();
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ RnaViewer target = (RnaViewer) object;
+ target.setViewId( (java.lang.String) value);
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _viewId
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.StringValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setWhiteSpace("preserve");
+ }
+ desc.setValidator(fieldValidator);
+ //-- _dividerLocation
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_dividerLocation", "dividerLocation", org.exolab.castor.xml.NodeType.Attribute);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ RnaViewer target = (RnaViewer) object;
+ if (!target.hasDividerLocation()) { return null; }
+ return new java.lang.Integer(target.getDividerLocation());
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ RnaViewer target = (RnaViewer) object;
+ // if null, use delete method for optional primitives
+ if (value == null) {
+ target.deleteDividerLocation();
+ return;
+ }
+ target.setDividerLocation( ((java.lang.Integer) value).intValue());
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _dividerLocation
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.IntValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setMinInclusive(-2147483648);
+ typeValidator.setMaxInclusive(2147483647);
+ }
+ desc.setValidator(fieldValidator);
+ //-- _selectedRna
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_selectedRna", "selectedRna", org.exolab.castor.xml.NodeType.Attribute);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ RnaViewer target = (RnaViewer) object;
+ if (!target.hasSelectedRna()) { return null; }
+ return new java.lang.Integer(target.getSelectedRna());
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ RnaViewer target = (RnaViewer) object;
+ // if null, use delete method for optional primitives
+ if (value == null) {
+ target.deleteSelectedRna();
+ return;
+ }
+ target.setSelectedRna( ((java.lang.Integer) value).intValue());
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _selectedRna
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.IntValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setMinInclusive(-2147483648);
+ typeValidator.setMaxInclusive(2147483647);
+ }
+ desc.setValidator(fieldValidator);
+ //-- _width
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_width", "width", org.exolab.castor.xml.NodeType.Attribute);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ RnaViewer target = (RnaViewer) object;
+ if (!target.hasWidth()) { return null; }
+ return new java.lang.Integer(target.getWidth());
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ RnaViewer target = (RnaViewer) object;
+ // if null, use delete method for optional primitives
+ if (value == null) {
+ target.deleteWidth();
+ return;
+ }
+ target.setWidth( ((java.lang.Integer) value).intValue());
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _width
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.IntValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setMinInclusive(-2147483648);
+ typeValidator.setMaxInclusive(2147483647);
+ }
+ desc.setValidator(fieldValidator);
+ //-- _height
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_height", "height", org.exolab.castor.xml.NodeType.Attribute);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ RnaViewer target = (RnaViewer) object;
+ if (!target.hasHeight()) { return null; }
+ return new java.lang.Integer(target.getHeight());
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ RnaViewer target = (RnaViewer) object;
+ // if null, use delete method for optional primitives
+ if (value == null) {
+ target.deleteHeight();
+ return;
+ }
+ target.setHeight( ((java.lang.Integer) value).intValue());
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _height
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.IntValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setMinInclusive(-2147483648);
+ typeValidator.setMaxInclusive(2147483647);
+ }
+ desc.setValidator(fieldValidator);
+ //-- _xpos
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_xpos", "xpos", org.exolab.castor.xml.NodeType.Attribute);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ RnaViewer target = (RnaViewer) object;
+ if (!target.hasXpos()) { return null; }
+ return new java.lang.Integer(target.getXpos());
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ RnaViewer target = (RnaViewer) object;
+ // if null, use delete method for optional primitives
+ if (value == null) {
+ target.deleteXpos();
+ return;
+ }
+ target.setXpos( ((java.lang.Integer) value).intValue());
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _xpos
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.IntValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setMinInclusive(-2147483648);
+ typeValidator.setMaxInclusive(2147483647);
+ }
+ desc.setValidator(fieldValidator);
+ //-- _ypos
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Integer.TYPE, "_ypos", "ypos", org.exolab.castor.xml.NodeType.Attribute);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ RnaViewer target = (RnaViewer) object;
+ if (!target.hasYpos()) { return null; }
+ return new java.lang.Integer(target.getYpos());
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ RnaViewer target = (RnaViewer) object;
+ // if null, use delete method for optional primitives
+ if (value == null) {
+ target.deleteYpos();
+ return;
+ }
+ target.setYpos( ((java.lang.Integer) value).intValue());
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _ypos
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.IntValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.IntValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setMinInclusive(-2147483648);
+ typeValidator.setMaxInclusive(2147483647);
+ }
+ desc.setValidator(fieldValidator);
+ //-- initialize element descriptors
+
+ //-- _secondaryStructureList
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(jalview.schemabinding.version2.SecondaryStructure.class, "_secondaryStructureList", "secondaryStructure", org.exolab.castor.xml.NodeType.Element);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ RnaViewer target = (RnaViewer) object;
+ return target.getSecondaryStructure();
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ RnaViewer target = (RnaViewer) object;
+ target.addSecondaryStructure( (jalview.schemabinding.version2.SecondaryStructure) value);
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public void resetValue(Object object) throws IllegalStateException, IllegalArgumentException {
+ try {
+ RnaViewer target = (RnaViewer) object;
+ target.removeAllSecondaryStructure();
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return new jalview.schemabinding.version2.SecondaryStructure();
+ }
+ };
+ desc.setHandler(handler);
+ desc.setNameSpaceURI("www.jalview.org");
+ desc.setRequired(true);
+ desc.setMultivalued(true);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _secondaryStructureList
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ fieldValidator.setMinOccurs(1);
+ { //-- local scope
+ }
+ desc.setValidator(fieldValidator);
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ * Method getAccessMode.
+ *
+ * @return the access mode specified for this class.
+ */
+ public org.exolab.castor.mapping.AccessMode getAccessMode(
+ ) {
+ return null;
+ }
+
+ /**
+ * Method getIdentity.
+ *
+ * @return the identity field, null if this class has no
+ * identity.
+ */
+ public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+ ) {
+ return super.getIdentity();
+ }
+
+ /**
+ * Method getJavaClass.
+ *
+ * @return the Java class represented by this descriptor.
+ */
+ public java.lang.Class getJavaClass(
+ ) {
+ return jalview.schemabinding.version2.RnaViewer.class;
+ }
+
+ /**
+ * Method getNameSpacePrefix.
+ *
+ * @return the namespace prefix to use when marshaling as XML.
+ */
+ public java.lang.String getNameSpacePrefix(
+ ) {
+ return _nsPrefix;
+ }
+
+ /**
+ * Method getNameSpaceURI.
+ *
+ * @return the namespace URI used when marshaling and
+ * unmarshaling as XML.
+ */
+ public java.lang.String getNameSpaceURI(
+ ) {
+ return _nsURI;
+ }
+
+ /**
+ * Method getValidator.
+ *
+ * @return a specific validator for the class described by this
+ * ClassDescriptor.
+ */
+ public org.exolab.castor.xml.TypeValidator getValidator(
+ ) {
+ return this;
+ }
+
+ /**
+ * Method getXMLName.
+ *
+ * @return the XML Name for the Class being described.
+ */
+ public java.lang.String getXMLName(
+ ) {
+ return _xmlName;
+ }
+
+ /**
+ * Method isElementDefinition.
+ *
+ * @return true if XML schema definition of this Class is that
+ * of a global
+ * element or element with anonymous type definition.
+ */
+ public boolean isElementDefinition(
+ ) {
+ return _elementDefinition;
+ }
+
+}
--- /dev/null
+/*
+ * This class was automatically generated with
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML
+ * Schema.
+ * $Id$
+ */
+
+package jalview.schemabinding.version2.descriptors;
+
+ //---------------------------------/
+ //- Imported classes and packages -/
+//---------------------------------/
+
+import jalview.schemabinding.version2.SecondaryStructure;
+
+/**
+ * Class SecondaryStructureDescriptor.
+ *
+ * @version $Revision$ $Date$
+ */
+public class SecondaryStructureDescriptor extends org.exolab.castor.xml.util.XMLClassDescriptorImpl {
+
+
+ //--------------------------/
+ //- Class/Member Variables -/
+ //--------------------------/
+
+ /**
+ * Field _elementDefinition.
+ */
+ private boolean _elementDefinition;
+
+ /**
+ * Field _nsPrefix.
+ */
+ private java.lang.String _nsPrefix;
+
+ /**
+ * Field _nsURI.
+ */
+ private java.lang.String _nsURI;
+
+ /**
+ * Field _xmlName.
+ */
+ private java.lang.String _xmlName;
+
+
+ //----------------/
+ //- Constructors -/
+ //----------------/
+
+ public SecondaryStructureDescriptor() {
+ super();
+ _nsURI = "www.jalview.org";
+ _xmlName = "secondaryStructure";
+ _elementDefinition = true;
+ org.exolab.castor.xml.util.XMLFieldDescriptorImpl desc = null;
+ org.exolab.castor.mapping.FieldHandler handler = null;
+ org.exolab.castor.xml.FieldValidator fieldValidator = null;
+ //-- initialize attribute descriptors
+
+ //-- _title
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_title", "title", org.exolab.castor.xml.NodeType.Attribute);
+ desc.setImmutable(true);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ SecondaryStructure target = (SecondaryStructure) object;
+ return target.getTitle();
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ SecondaryStructure target = (SecondaryStructure) object;
+ target.setTitle( (java.lang.String) value);
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _title
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.StringValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setWhiteSpace("preserve");
+ }
+ desc.setValidator(fieldValidator);
+ //-- _annotationId
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_annotationId", "annotationId", org.exolab.castor.xml.NodeType.Attribute);
+ desc.setImmutable(true);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ SecondaryStructure target = (SecondaryStructure) object;
+ return target.getAnnotationId();
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ SecondaryStructure target = (SecondaryStructure) object;
+ target.setAnnotationId( (java.lang.String) value);
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setRequired(true);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _annotationId
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ fieldValidator.setMinOccurs(1);
+ { //-- local scope
+ org.exolab.castor.xml.validators.StringValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setWhiteSpace("preserve");
+ }
+ desc.setValidator(fieldValidator);
+ //-- _gapped
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.Boolean.TYPE, "_gapped", "gapped", org.exolab.castor.xml.NodeType.Attribute);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ SecondaryStructure target = (SecondaryStructure) object;
+ if (!target.hasGapped()) { return null; }
+ return (target.getGapped() ? java.lang.Boolean.TRUE : java.lang.Boolean.FALSE);
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ SecondaryStructure target = (SecondaryStructure) object;
+ // if null, use delete method for optional primitives
+ if (value == null) {
+ target.deleteGapped();
+ return;
+ }
+ target.setGapped( ((java.lang.Boolean) value).booleanValue());
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _gapped
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.BooleanValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.BooleanValidator();
+ fieldValidator.setValidator(typeValidator);
+ }
+ desc.setValidator(fieldValidator);
+ //-- _viewerState
+ desc = new org.exolab.castor.xml.util.XMLFieldDescriptorImpl(java.lang.String.class, "_viewerState", "viewerState", org.exolab.castor.xml.NodeType.Attribute);
+ desc.setImmutable(true);
+ handler = new org.exolab.castor.xml.XMLFieldHandler() {
+ public java.lang.Object getValue( java.lang.Object object )
+ throws IllegalStateException
+ {
+ SecondaryStructure target = (SecondaryStructure) object;
+ return target.getViewerState();
+ }
+ public void setValue( java.lang.Object object, java.lang.Object value)
+ throws IllegalStateException, IllegalArgumentException
+ {
+ try {
+ SecondaryStructure target = (SecondaryStructure) object;
+ target.setViewerState( (java.lang.String) value);
+ } catch (java.lang.Exception ex) {
+ throw new IllegalStateException(ex.toString());
+ }
+ }
+ public java.lang.Object newInstance(java.lang.Object parent) {
+ return null;
+ }
+ };
+ desc.setHandler(handler);
+ desc.setMultivalued(false);
+ addFieldDescriptor(desc);
+
+ //-- validation code for: _viewerState
+ fieldValidator = new org.exolab.castor.xml.FieldValidator();
+ { //-- local scope
+ org.exolab.castor.xml.validators.StringValidator typeValidator;
+ typeValidator = new org.exolab.castor.xml.validators.StringValidator();
+ fieldValidator.setValidator(typeValidator);
+ typeValidator.setWhiteSpace("preserve");
+ }
+ desc.setValidator(fieldValidator);
+ //-- initialize element descriptors
+
+ }
+
+
+ //-----------/
+ //- Methods -/
+ //-----------/
+
+ /**
+ * Method getAccessMode.
+ *
+ * @return the access mode specified for this class.
+ */
+ public org.exolab.castor.mapping.AccessMode getAccessMode(
+ ) {
+ return null;
+ }
+
+ /**
+ * Method getIdentity.
+ *
+ * @return the identity field, null if this class has no
+ * identity.
+ */
+ public org.exolab.castor.mapping.FieldDescriptor getIdentity(
+ ) {
+ return super.getIdentity();
+ }
+
+ /**
+ * Method getJavaClass.
+ *
+ * @return the Java class represented by this descriptor.
+ */
+ public java.lang.Class getJavaClass(
+ ) {
+ return jalview.schemabinding.version2.SecondaryStructure.class;
+ }
+
+ /**
+ * Method getNameSpacePrefix.
+ *
+ * @return the namespace prefix to use when marshaling as XML.
+ */
+ public java.lang.String getNameSpacePrefix(
+ ) {
+ return _nsPrefix;
+ }
+
+ /**
+ * Method getNameSpaceURI.
+ *
+ * @return the namespace URI used when marshaling and
+ * unmarshaling as XML.
+ */
+ public java.lang.String getNameSpaceURI(
+ ) {
+ return _nsURI;
+ }
+
+ /**
+ * Method getValidator.
+ *
+ * @return a specific validator for the class described by this
+ * ClassDescriptor.
+ */
+ public org.exolab.castor.xml.TypeValidator getValidator(
+ ) {
+ return this;
+ }
+
+ /**
+ * Method getXMLName.
+ *
+ * @return the XML Name for the Class being described.
+ */
+ public java.lang.String getXMLName(
+ ) {
+ return _xmlName;
+ }
+
+ /**
+ * Method isElementDefinition.
+ *
+ * @return true if XML schema definition of this Class is that
+ * of a global
+ * element or element with anonymous type definition.
+ */
+ public boolean isElementDefinition(
+ ) {
+ return _elementDefinition;
+ }
+
+}
public boolean isColored(SequenceFeature feature)
{
float val = feature.getScore();
- if (val == Float.NaN)
+ if (Float.isNaN(val))
{
return true;
}
{
return true;
}
- if (this.thrsh == Float.NaN)
+ if (Float.isNaN(this.thrsh))
{
return true;
}
return getMaxColor();
}
float scr = feature.getScore();
- if (scr == Float.NaN)
+ if (Float.isNaN(scr))
{
return getMinColor();
}
*/
package jalview.structure;
-import jalview.datamodel.*;
+import jalview.datamodel.SequenceI;
public interface SecondaryStructureListener
{
// TODO - redefine to allow RNA mouseovers to be passed back correctly to
// listeners
- public void mouseOverSequence(SequenceI sequence, int index);
+ /**
+ * act on a mouseover event
+ *
+ * @param sequence
+ * @param index
+ * the aligned sequence position (base 0)
+ * @param position
+ * the dataset sequence position (base 1)
+ */
+ public void mouseOverSequence(SequenceI sequence, int index, int position);
}
else if (listener instanceof SecondaryStructureListener)
{
((SecondaryStructureListener) listener).mouseOverSequence(seq,
- indexpos);
+ indexpos, index);
}
}
}
*/
package jalview.util;
+import jalview.bin.Jalview;
import jalview.gui.EPSOptions;
import jalview.gui.SVGOptions;
import jalview.io.JalviewFileChooser;
static JalviewFileChooser getPNGChooser()
{
+ if (Jalview.isHeadlessMode())
+ {
+ return null;
+ }
return new jalview.io.JalviewFileChooser(
jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
{ "png" }, new String[]
static JalviewFileChooser getEPSChooser()
{
+ if (Jalview.isHeadlessMode())
+ {
+ return null;
+ }
return new jalview.io.JalviewFileChooser(
jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
{ "eps" }, new String[]
static JalviewFileChooser getSVGChooser()
{
+ if (Jalview.isHeadlessMode())
+ {
+ return null;
+ }
return new jalview.io.JalviewFileChooser(
jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
{ "svg" }, new String[]
*
* @return true if we do things in a special way.
*/
- public boolean isAMac()
+ public static boolean isAMac()
{
return java.lang.System.getProperty("os.name").indexOf("Mac") > -1;
}
- public boolean isHeadless()
+ public static boolean isHeadless()
{
String hdls = java.lang.System.getProperty("java.awt.headless");
*/
public static final char[] deleteChars(char[] in, int from, int to)
{
- if (from >= in.length)
+ if (from >= in.length || from < 0)
{
return in;
}
*/
protected int findComplementScrollTarget(SearchResults sr)
{
- final AlignViewportI codingComplement = getCodingComplement();
- if (codingComplement == null || !codingComplement.isFollowHighlight())
+ final AlignViewportI complement = getCodingComplement();
+ if (complement == null || !complement.isFollowHighlight())
{
return 0;
}
boolean iAmProtein = !getAlignment().isNucleotide();
AlignmentI proteinAlignment = iAmProtein ? getAlignment()
- : codingComplement.getAlignment();
+ : complement.getAlignment();
if (proteinAlignment == null)
{
return 0;
.findMappingsForSequence(sequence, mappings);
if (!seqMappings.isEmpty())
{
- break;
+ break;
}
}
{
allfeatures.add(features[index].getType());
}
- if (features[index].score != Float.NaN)
+ if (!Float.isNaN(features[index].score))
{
int nonpos = features[index].getBegin() >= 1 ? 0 : 1;
float[][] mm = (float[][]) minmax.get(features[index].getType());
+++ /dev/null
-/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
- */
-package jalview.ws;
-
-import jalview.bin.Cache;
-import jalview.datamodel.DBRefEntry;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.gui.AlignFrame;
-import jalview.gui.Desktop;
-import jalview.gui.JvSwingUtils;
-import jalview.util.GroupUrlLink;
-import jalview.util.MessageManager;
-import jalview.util.GroupUrlLink.UrlStringTooLongException;
-
-import java.awt.Component;
-import java.awt.Cursor;
-import java.awt.event.ActionEvent;
-import java.io.UnsupportedEncodingException;
-import java.net.URL;
-import java.net.URLEncoder;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.Vector;
-import java.util.regex.Pattern;
-
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.event.MenuEvent;
-import javax.swing.event.MenuListener;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-import com.lowagie.text.html.HtmlEncoder;
-
-/**
- * Lightweight runnable to discover dynamic 'one way' group URL services
- *
- * as of Jalview 2.8.1 this class is mothballed and will be dropped in v3.
- *
- * @author JimP
- * @deprecated
- *
- */
-public class EnfinEnvision2OneWay extends DefaultHandler implements
- Runnable, WSMenuEntryProviderI
-{
- private static EnfinEnvision2OneWay groupURLLinksGatherer = null;
-
- public static EnfinEnvision2OneWay getInstance()
- {
- if (groupURLLinksGatherer == null)
- {
- groupURLLinksGatherer = new EnfinEnvision2OneWay();
- }
- return groupURLLinksGatherer;
- }
-
- private void waitForCompletion()
- {
- if (groupURLLinksGatherer.isRunning())
- {
- // wait around and show a visual delay indicator
- Cursor oldCursor = Desktop.instance.getCursor();
- Desktop.instance.setCursor(new Cursor(Cursor.WAIT_CURSOR));
- while (groupURLLinksGatherer.isRunning())
- {
- try
- {
- Thread.sleep(100);
- } catch (InterruptedException e)
- {
- }
- ;
- }
- Desktop.instance.setCursor(oldCursor);
- }
- }
-
- public Vector getEnvisionServiceGroupURLS()
- {
- waitForCompletion();
- return groupURLLinks;
- }
-
- /**
- * indicate if
- */
- private static String BACKGROUND = "BACKGROUNDPARAM";
-
- /**
- * contains null strings or one of the above constants - indicate if this URL
- * is a special case.
- */
- private Vector additionalPar = new Vector();
-
- /**
- * the enfin service URL
- */
- private String enfinService = null;
-
- private String description = null;
-
- private String wfname;
-
- /*
- * (non-Javadoc)
- *
- * @see org.xml.sax.helpers.DefaultHandler#endElement(java.lang.String,
- * java.lang.String, java.lang.String)
- */
- public void endElement(String uri, String localName, String qName)
- throws SAXException
- {
-
- // System.err.println("End element: : '"+uri+" "+localName+" "+qName);
- if (qName.equalsIgnoreCase("workflow") && description != null
- && description.length() > 0)
- {
- // groupURLLinks.addElement("UNIPROT|EnVision2|http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow=Default&datasetName=JalviewIDs$DATASETID$&input=$SEQUENCEIDS$&inputType=0|,");
- // groupURLLinks.addElement("Seqs|EnVision2|http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow=Default&datasetName=JalviewSeqs$DATASETID$&input=$SEQUENCES=/([A-Za-z]+)+/=$&inputType=1|,");
- System.err.println("Adding entry for " + wfname + " " + description);
- if (wfname.toLowerCase().indexOf("funcnet") == -1)
- {
- description = Pattern.compile("\\s+", Pattern.MULTILINE)
- .matcher(description).replaceAll(" ");
- groupURLdescr.addElement(description);
- groupURLdescr.addElement(description);
- String urlstub = wfname;
- if (wfname.indexOf(" ") > -1)
- {
- // make the name safe!
- try
- {
- urlstub = URLEncoder.encode(wfname, "utf-8");
- } catch (UnsupportedEncodingException e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- groupURLLinks
- .addElement(wfname
- + "|"
- + "http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow="
- + urlstub
- + "&datasetName=JalviewSeqs$DATASETID$&input=$SEQUENCEIDS$&inputType=0|,"); // #"+description+"#");
- groupURLLinks
- .addElement(wfname
- + "|"
- + "http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow="
- + urlstub
- + "&datasetName=JalviewSeqs$DATASETID$&input=$SEQUENCES=/([A-Za-z]+)+/=$&inputType=1|,"); // #"+description+"#");
- }
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int)
- */
- public void characters(char[] ch, int start, int length)
- throws SAXException
- {
- if (description != null)
- {
- for (int i = start; i < start + length; i++)
- {
- description += ch[i];
- }
- }
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String,
- * java.lang.String, java.lang.String, org.xml.sax.Attributes)
- */
- public void startElement(String uri, String localName, String qName,
- Attributes attributes) throws SAXException
- {
- if (qName.equalsIgnoreCase("workflow"))
- {
- description = null;
- wfname = attributes.getValue("name");
- }
- if (qName.equalsIgnoreCase("description"))
- {
- description = "";
- }
-
- // System.err.println("Start element: : '"+uri+" "+localName+" "+qName+" attributes"+attributes);
- // super.startElement(uri,localName,qname,attributes);
- }
-
- private boolean started = false;
-
- private boolean running = false;
-
- private Vector groupURLLinks = null;
-
- private Vector groupURLdescr = null;
-
- private static String[] allowedDb = new String[]
- { "UNIPROT", "EMBL", "PDB" };
-
- public EnfinEnvision2OneWay()
- {
- groupURLLinks = new Vector();
- groupURLdescr = new Vector();
-
- enfinService = Cache.getDefault("ENVISION2_WORKFLOWSERVICE",
- "http://www.ebi.ac.uk/enfin-srv/envision2/pages/workflows.xml");
- new Thread(this).start();
- }
-
- public void run()
- {
- started = true;
- running = true;
- try
- {
- SAXParserFactory spf = SAXParserFactory.newInstance();
- SAXParser sp = spf.newSAXParser();
- sp.parse(new URL(enfinService).openStream(), this);
- } catch (Exception e)
- {
- Cache.log.warn("Exception when discovering One Way services: ", e);
- } catch (Error e)
- {
- Cache.log.warn("Error when discovering One Way services: ", e);
- }
- running = false;
- Cache.log.debug("Finished running.");
- }
-
- /**
- * have we finished running yet ?
- *
- * @return false if we have been run.
- */
- public boolean isRunning()
- {
-
- // TODO Auto-generated method stub
- return !started || running;
- }
-
- public static void main(String[] args)
- {
- Cache.initLogger();
- EnfinEnvision2OneWay ow = new EnfinEnvision2OneWay();
- while (ow.isRunning())
- {
- try
- {
- Thread.sleep(50);
- } catch (Exception e)
- {
- }
- ;
-
- }
- for (int i = 0; i < ow.groupURLLinks.size(); i++)
- {
- System.err.println("Description" + ow.groupURLdescr.elementAt(i)
- + "Service URL: " + ow.groupURLLinks.elementAt(i));
- }
- }
-
- // / Copied from jalview.gui.PopupMenu
- /**
- * add a late bound URL service item to the given menu
- *
- * @param linkMenu
- * @param label
- * - menu label string
- * @param urlgenerator
- * GroupURLLink used to generate URL
- * @param urlstub
- * Object array returned from the makeUrlStubs function.
- */
- private void addshowLink(JMenu linkMenu, String label, String descr,
- String dbname, final GroupUrlLink urlgenerator,
- final Object[] urlstub)
- {
- Component[] jmi = linkMenu.getMenuComponents();
- for (int i = 0; i < jmi.length; i++)
- {
- if (jmi[i] instanceof JMenuItem
- && ((JMenuItem) jmi[i]).getText().equalsIgnoreCase(label))
- {
- // don't add this - its a repeat of an existing URL.
- return;
- }
- }
- try
- {
- descr = HtmlEncoder.encode(descr);
- } catch (Exception e)
- {
- }
- ;
-
- boolean seqsorids = (urlgenerator.getGroupURLType() & urlgenerator.SEQUENCEIDS) == 0;
- int i = urlgenerator.getNumberInvolved(urlstub);
- JMenuItem item = new JMenuItem(label);
- //
- if (dbname == null || dbname.trim().length() == 0)
- {
- dbname = "";
- }
- item.setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager.formatMessage("label.submit_sequence", new String[]{Integer.valueOf(i).toString(), dbname, (seqsorids ? "sequence" : "sequence id"), (i > 1 ? "s" : "")})));
- item.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- new Thread(new Runnable()
- {
-
- public void run()
- {
- try
- {
- showLink(urlgenerator.constructFrom(urlstub));
- } catch (UrlStringTooLongException ex)
- {
- Cache.log.warn("Not showing link: URL is too long!", ex);
- }
- }
-
- }).start();
- }
- });
-
- linkMenu.add(item);
- }
-
- /**
- * open the given link in a new browser window
- *
- * @param url
- */
- public void showLink(String url)
- {
- try
- {
- jalview.util.BrowserLauncher.openURL(url);
- } catch (Exception ex)
- {
- JOptionPane
- .showInternalMessageDialog(
- Desktop.desktop,
- MessageManager.getString("label.web_browser_not_found_unix"),
- MessageManager.getString("label.web_browser_not_found"), JOptionPane.WARNING_MESSAGE);
-
- ex.printStackTrace();
- }
- }
-
- /**
- * called by a web service menu instance when it is opened.
- *
- * @param enfinServiceMenu
- * @param alignFrame
- */
- private void buildGroupLinkMenu(JMenu enfinServiceMenu,
- AlignFrame alignFrame)
- {
- if (running || !started)
- {
- return;
- }
- SequenceI[] seqs = alignFrame.getViewport().getSelectionAsNewSequence();
- SequenceGroup sg = alignFrame.getViewport().getSelectionGroup();
- if (sg == null)
- {
- // consider visible regions here/
- }
- enfinServiceMenu.removeAll();
- JMenu entries = buildGroupURLMenu(seqs, sg);
- if (entries != null)
- {
- for (int i = 0, iSize = entries.getMenuComponentCount(); i < iSize; i++)
- {
- // transfer - menu component is removed from entries automatically
- enfinServiceMenu.add(entries.getMenuComponent(0));
- }
- // entries.removeAll();
- enfinServiceMenu.setEnabled(true);
- }
- else
- {
- enfinServiceMenu.setEnabled(false);
- }
- }
-
- /**
- * construct a dynamic enfin services menu given a sequence selection
- *
- * @param seqs
- * @param sg
- * @param groupLinks
- * @return
- */
- private JMenu buildGroupURLMenu(SequenceI[] seqs, SequenceGroup sg)
- {
- if (groupURLdescr == null || groupURLLinks == null)
- return null;
- // TODO: usability: thread off the generation of group url content so root
- // menu appears asap
- // sequence only URLs
- // ID/regex match URLs
- JMenu groupLinksMenu = new JMenu(MessageManager.getString("action.group_link"));
- String[][] idandseqs = GroupUrlLink.formStrings(seqs);
- Hashtable commonDbrefs = new Hashtable();
- for (int sq = 0; sq < seqs.length; sq++)
- {
-
- int start, end;
- if (sg != null)
- {
- start = seqs[sq].findPosition(sg.getStartRes());
- end = seqs[sq].findPosition(sg.getEndRes());
- }
- else
- {
- // get total width of alignment.
- start = seqs[sq].getStart();
- end = seqs[sq].findPosition(seqs[sq].getLength());
- }
- // we skip sequences which do not have any non-gaps in the region of
- // interest
- if (start > end)
- {
- continue;
- }
- // just collect ids from dataset sequence
- // TODO: check if IDs collected from selecton group intersects with the
- // current selection, too
- SequenceI sqi = seqs[sq];
- while (sqi.getDatasetSequence() != null)
- {
- sqi = sqi.getDatasetSequence();
- }
- DBRefEntry[] dbr = sqi.getDBRef();
- if (dbr != null && dbr.length > 0)
- {
- for (int d = 0; d < dbr.length; d++)
- {
- String src = dbr[d].getSource(); // jalview.util.DBRefUtils.getCanonicalName(dbr[d].getSource()).toUpperCase();
- Object[] sarray = (Object[]) commonDbrefs.get(src);
- if (sarray == null)
- {
- sarray = new Object[2];
- sarray[0] = new int[]
- { 0 };
- sarray[1] = new String[seqs.length];
-
- commonDbrefs.put(src, sarray);
- }
-
- if (((String[]) sarray[1])[sq] == null)
- {
- if (!dbr[d].hasMap()
- || (dbr[d].getMap().locateMappedRange(start, end) != null))
- {
- ((String[]) sarray[1])[sq] = dbr[d].getAccessionId();
- ((int[]) sarray[0])[0]++;
- }
- }
- }
- }
- }
- // now create group links for all distinct ID/sequence sets.
- Hashtable<String, JMenu[]> gurlMenus = new Hashtable<String, JMenu[]>();
- /**
- * last number of sequences where URL generation failed
- */
- int[] nsqtype = new int[]
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
- for (int i = 0; i < groupURLLinks.size(); i++)
- {
- String link = (String) groupURLLinks.elementAt(i);
- String descr = (String) groupURLdescr.elementAt(i);
-
- // boolean specialCase =
- // additionalPar.elementAt(i).toString().equals(BACKGROUND);
- GroupUrlLink urlLink = null;
- try
- {
- urlLink = new GroupUrlLink(link);
- } catch (Exception foo)
- {
- jalview.bin.Cache.log.error("Exception for GroupURLLink '" + link
- + "'", foo);
- continue;
- }
- ;
- if (!urlLink.isValid())
- {
- jalview.bin.Cache.log.error(urlLink.getInvalidMessage());
- continue;
- }
- final String label = urlLink.getLabel();
- // create/recover the sub menus that might be populated for this link.
- JMenu[] wflinkMenus = gurlMenus.get(label);
- if (wflinkMenus == null)
- {
- // three types of url that might be
- // created.
- wflinkMenus = new JMenu[]
- { null, new JMenu(MessageManager.getString("action.ids")), new JMenu(MessageManager.getString("action.sequences")),
- new JMenu(MessageManager.getString("action.ids_sequences")) };
- gurlMenus.put(label, wflinkMenus);
- }
-
- boolean usingNames = false;
- // Now see which parts of the group apply for this URL
- String ltarget;
- String[] seqstr, ids; // input to makeUrl
- for (int t = 0; t < allowedDb.length; t++)
- {
- ltarget = allowedDb[t]; // jalview.util.DBRefUtils.getCanonicalName(urlLink.getTarget());
- Object[] idset = (Object[]) commonDbrefs.get(ltarget.toUpperCase());
- if (idset != null)
- {
- int numinput = ((int[]) idset[0])[0];
- String[] allids = ((String[]) idset[1]);
- seqstr = new String[numinput];
- ids = new String[numinput];
- if (nsqtype[urlLink.getGroupURLType()] > 0
- && numinput >= nsqtype[urlLink.getGroupURLType()])
- {
- continue;
- }
- for (int sq = 0, idcount = 0; sq < seqs.length; sq++)
- {
- if (allids[sq] != null)
- {
- ids[idcount] = allids[sq];
- seqstr[idcount++] = idandseqs[1][sq];
- }
- }
- try
- {
- createAndAddLinks(wflinkMenus, false, urlLink, ltarget, null,
- descr, ids, seqstr);
- } catch (UrlStringTooLongException ex)
- {
- nsqtype[urlLink.getGroupURLType()] = numinput;
- }
- }
- }
- // also do names only.
- seqstr = idandseqs[1];
- ids = idandseqs[0];
- if (nsqtype[urlLink.getGroupURLType()] > 0
- && idandseqs[0].length >= nsqtype[urlLink.getGroupURLType()])
- {
- continue;
- }
-
- try
- {
- createAndAddLinks(wflinkMenus, true, urlLink, "Any", null, descr,
- ids, seqstr);
- } catch (UrlStringTooLongException ex)
- {
- nsqtype[urlLink.getGroupURLType()] = idandseqs[0].length;
- }
- }
- boolean anyadded = false; // indicates if there are any group links to give
- // to user
- for (Map.Entry<String, JMenu[]> menues : gurlMenus.entrySet())
- {
- JMenu grouplinkset = new JMenu(menues.getKey());
- JMenu[] wflinkMenus = menues.getValue();
- for (int m = 0; m < wflinkMenus.length; m++)
- {
- if (wflinkMenus[m] != null
- && wflinkMenus[m].getMenuComponentCount() > 0)
- {
- anyadded = true;
- grouplinkset.add(wflinkMenus[m]);
- }
- }
- groupLinksMenu.add(grouplinkset);
- }
- if (anyadded)
- {
- return groupLinksMenu;
- }
- return null;
- }
-
- private boolean createAndAddLinks(JMenu[] linkMenus, boolean usingNames,
- GroupUrlLink urlLink, String label, String ltarget, String descr,
- String[] ids, String[] seqstr) throws UrlStringTooLongException
- {
- Object[] urlset = urlLink.makeUrlStubs(ids, seqstr, "FromJalview"
- + System.currentTimeMillis(), false);
-
- if (urlset != null)
- {
- int type = urlLink.getGroupURLType() & 3;
- // System.out.println(urlLink.getGroupURLType()
- // +" "+((String[])urlset[3])[0]);
- // first two bits ofurlLink type bitfield are sequenceids and sequences
- // TODO: FUTURE: ensure the groupURL menu structure can be generalised
- addshowLink(
- linkMenus[type],
- label
- + " "
- + (ltarget == null ? (((type & 1) == 1 ? "ID"
- : "Sequence") + (urlLink
- .getNumberInvolved(urlset) > 1 ? "s" : ""))
- : (usingNames ? (((type & 1) == 1) ? "(Names)"
- : "")
- : ("(" + ltarget + ")"))), descr,
- usingNames ? null : label, urlLink, urlset);
- return true;
- }
- return false;
- }
-
- // / end of stuff copied from popupmenu
- public void attachWSMenuEntry(final JMenu wsmenu,
- final AlignFrame alignFrame)
- {
- final JMenu enfinServiceMenu = new JMenu("Envision 2");
- wsmenu.add(enfinServiceMenu);
- enfinServiceMenu.setEnabled(false);
- wsmenu.addMenuListener(new MenuListener()
- {
- // this listener remembers when the menu was first selected, and
- // doesn't rebuild the session list until it has been cleared and
- // reselected again.
- boolean refresh = true;
-
- public void menuCanceled(MenuEvent e)
- {
- refresh = true;
- }
-
- public void menuDeselected(MenuEvent e)
- {
- refresh = true;
- }
-
- public void menuSelected(MenuEvent e)
- {
- if (refresh && !isRunning())
- {
- new Thread(new Runnable()
- {
- public void run()
- {
- try
- {
- buildGroupLinkMenu(enfinServiceMenu, alignFrame);
- } catch (OutOfMemoryError ex)
- {
- Cache.log
- .error("Out of memory when calculating the Envision2 links.",
- ex);
- enfinServiceMenu.setEnabled(false);
- }
- }
- }).start();
- refresh = false;
- }
- }
- });
-
- }
-
-}
* table. The PDB Id serves as a unique identifier for a given row in the
* summary table
*
- * @param wantedFeilds
+ * @param wantedFields
* the available table columns in no particular order
* @return the pdb id field column index
*/
public static int getPDBIdColumIndex(
- Collection<PDBDocField> wantedFeilds, boolean hasRefSeq)
+ Collection<PDBDocField> wantedFields, boolean hasRefSeq)
{
// If a reference sequence is attached then start counting from 1 else
// start from zero
- int pdbFeildIndexCounter = hasRefSeq ? 1 : 0;
+ int pdbFieldIndexCounter = hasRefSeq ? 1 : 0;
- for (PDBDocField feild : wantedFeilds)
+ for (PDBDocField field : wantedFields)
{
- if (feild.equals(PDBDocField.PDB_ID))
+ if (field.equals(PDBDocField.PDB_ID))
{
break; // Once PDB Id index is determined exit iteration
}
- ++pdbFeildIndexCounter;
+ ++pdbFieldIndexCounter;
}
- return pdbFeildIndexCounter;
+ return pdbFieldIndexCounter;
}
/**
*/
package jalview.ws.dbsources.das.datamodel;
+import jalview.bin.Cache;
+import jalview.ws.dbsources.das.api.DasSourceRegistryI;
+import jalview.ws.dbsources.das.api.jalviewSourceI;
+
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.biodas.jdas.schema.sources.SOURCES;
import org.biodas.jdas.schema.sources.VERSION;
-import jalview.bin.Cache;
-import jalview.ws.dbsources.das.api.DasSourceRegistryI;
-import jalview.ws.dbsources.das.api.jalviewSourceI;
-
/**
*
*/
private Hashtable<String, jalviewSourceI> localSources = null;
- public static String DEFAULT_REGISTRY = "http://www.dasregistry.org/das/";
+ // public static String DEFAULT_REGISTRY = "http://www.dasregistry.org/das/";
+ public static String DEFAULT_REGISTRY = "http://www.ebi.ac.uk/das-srv/registry/das/";
/**
* true if thread is running and we are talking to DAS registry service
+ rn.from, base + rn.to, methodName);
}
dseq.addSequenceFeature(sf);
- if (last != val && last != Float.NaN)
+ if (last != val && !Float.isNaN(last))
{
fc.put(sf.getType(), sf);
}
import java.util.List;
import java.util.StringTokenizer;
-import org.jmol.util.ArrayUtil;
import compbio.metadata.Argument;
import compbio.metadata.Option;
import compbio.metadata.Parameter;
}
else
{
+ // TODO 2.9.x feature
System.out.println("MERGE WITH OLD FRAME");
// TODO: modify alignment in original frame, replacing old for new
// alignment using the commands.EditCommand model to ensure the update can
addSortByMenuItems(af, alorders);
}
+ // TODO: refactor retrieve and show as new splitFrame as Desktop method
+
/*
* If alignment was requested from one half of a SplitFrame, show in a
* SplitFrame with the other pane similarly aligned.
*/
AlignFrame requestedBy = getRequestingAlignFrame();
- if (requestedBy != null && requestedBy.getSplitViewContainer() != null)
+ if (requestedBy != null && requestedBy.getSplitViewContainer() != null
+ && requestedBy.getSplitViewContainer().getComplement(requestedBy)!=null)
{
AlignmentI complement = requestedBy.getSplitViewContainer()
.getComplement(requestedBy);
String complementTitle = requestedBy.getSplitViewContainer()
.getComplementTitle(requestedBy);
+ // becomes null if the alignment window was closed before the alignment
+ // job finished.
AlignmentI copyComplement = new Alignment(complement);
copyComplement.alignAs(al);
if (copyComplement.getHeight() > 0)
* Test the constructor that parses a PDB file format ATOM line. Fields are in
* fixed column positions
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testStringConstructor()
{
Atom a = new Atom(
* Test the case where occupancy and temp factor are blank - should default to
* 1
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testStringConstructor_blankOccupancyTempFactor()
{
Atom a = new Atom(
/**
* Parsing non-numeric data as Atom throws an exception
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testStringConstructor_malformed()
{
try
public class BondTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testTranslate()
{
Atom a1 = new Atom(1f, 2f, 3f);
import java.awt.Color;
import java.util.Vector;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class PDBChainTest
{
- PDBChain c = new PDBChain("1GAQ", "A");
+ PDBChain c;
- Atom a1 = new Atom(1f, 2f, 3f);
+ final Atom a1 = new Atom(1f, 2f, 3f);
- Atom a2 = new Atom(5f, 6f, 4f);
+ final Atom a2 = new Atom(5f, 6f, 4f);
- Atom a3 = new Atom(2f, 5f, 6f);
+ final Atom a3 = new Atom(2f, 5f, 6f);
- Atom a4 = new Atom(2f, 1f, 7f);
+ final Atom a4 = new Atom(2f, 1f, 7f);
- @Test
+ @BeforeMethod(alwaysRun = true)
+ public void setUp()
+ {
+ System.out.println("setup");
+ c = new PDBChain("1GAQ", "A");
+ }
+
+ @Test(groups ={ "Functional" })
public void testGetNewlineString()
{
assertEquals(System.lineSeparator(), c.getNewlineString());
assertEquals("gaga", c.getNewlineString());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testPrint()
{
c.offset = 7;
* Test the method that constructs a Bond between two atoms and adds it to the
* chain's list of bonds
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMakeBond()
{
/*
assertEquals(3f, b2.end[2], 0.0001f);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testSetChainColours_colour()
{
c.makeBond(a1, a2);
* Test setting bond start/end colours based on a colour scheme i.e. colour by
* residue
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSetChainColours_colourScheme()
{
Color alaColour = new Color(204, 255, 0);
assertEquals(Color.gray, b.endCol);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetChargeColour()
{
assertEquals(Color.red, PDBChain.getChargeColour("ASP"));
/**
* Test the method that sets bond start/end colours by residue charge property
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSetChargeColours()
{
a1.resName = "ASP"; // red
/**
* Test the method that converts the raw list of atoms to a list of residues
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMakeResidueList_noAnnotation()
{
Vector<Atom> atoms = new Vector<Atom>();
* Test the method that converts the raw list of atoms to a list of residues,
* including parsing of tempFactor to an alignment annotation
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMakeResidueList_withTempFactor()
{
Vector<Atom> atoms = new Vector<Atom>();
* Test the method that constructs bonds between successive residues' CA or P
* atoms
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMakeCaBondList()
{
c.isNa = true;
assertTrue(c.isNa);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testMakeCaBondList_nucleotide()
{
c.isNa = false;
/**
* Test the method that updates atoms with their alignment positions
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMakeExactMapping()
{
Vector<Atom> atoms = new Vector<Atom>();
import jalview.io.AppletFormatAdapter;
import java.io.IOException;
+import java.util.List;
import org.testng.annotations.Test;
public class PDBfileTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testIsRna()
{
SequenceI seq = new Sequence("Seq1", "CGAU");
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testParse() throws IOException
{
/*
assertTrue(chainD.sequence.getSequenceAsString().startsWith("ATYNVK"));
assertTrue(chainD.sequence.getSequenceAsString().endsWith("KEEELT"));
assertEquals("3W5V|D", chainD.sequence.getName());
+
+ /*
+ * verify PDB-related data in parsed sequences
+ */
+ List<SequenceI> seqs = pf.getSeqs();
+ assertEquals(4, seqs.size());
+ assertEquals("3W5V|A", seqs.get(0).getName());
+ assertEquals("3W5V|B", seqs.get(1).getName());
+ assertEquals("3W5V|C", seqs.get(2).getName());
+ assertEquals("3W5V|D", seqs.get(3).getName());
+ assertEquals(1, seqs.get(0).getPDBId().size());
+ PDBEntry pdbe = seqs.get(0).getPDBId().get(0);
+ assertEquals("A", pdbe.getChainCode());
+ assertEquals("3W5V", pdbe.getId());
+ assertEquals(PDBEntry.Type.PDB.toString(), pdbe.getType());
}
/**
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testParse_withAnnotations_noSS() throws IOException
{
PDBfile pf = new PDBfile(true, false, false, "examples/3W5V.pdb",
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testParse_withJmol_noAnnotations() throws IOException
{
PDBfile pf = new PDBfile(false, true, false, "examples/3W5V.pdb",
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testParse_withJmolAddAlignmentAnnotations()
throws IOException
{
* @throws IOException
*/
- @Test(enabled = false)
+ @Test(groups =
+ { "Functional" }, enabled = false)
public void testParse_withAnnotate3D() throws IOException
{
// TODO requires a mock for Annotate3D processing
private AlignmentAnnotation[] getAlignmentAnnotations(PDBfile pf)
{
AlignmentI al = new Alignment(pf.getSeqsAsArray());
- pf.addAnnotations((Alignment) al);
+ pf.addAnnotations(al);
return al.getAlignmentAnnotation();
}
}
public class ResidueTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testFindAtom()
{
Atom a1 = new Atom(1f, 2f, 3f);
import java.io.IOException;
import java.io.StringWriter;
+import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
/**
* an input string
* @throws Exception
*/
+
+ @Test(groups =
+ { "Functional" }, dataProvider = "testWriteParam")
void test(String re, String inp) throws IOException
{
StringWriter sw = new StringWriter();
}
}
- @Test
- public void testWrite() throws IOException
+ // @Test(groups ={ "Functional" })
+ // public void testWrite() throws IOException
+ // {
+ // for (int n = 1; n <= 1; n++)
+ // {
+ // test("s/x/y/", "-----x123456789");
+ // test("s/x/y/", "x123456789");
+ // test("s/x/y/", "-----x");
+ // test("s/x.*?x/y/", ".xx..x..x...x...x....x....x");
+ // test("s/x.*x/[$&]/", "--x........x--xx");
+ // test("s/x.*x/[$&]/", "--x........x------");
+ // test("s/.$/a/m", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbbbbbbbbbbbb");
+ // test("s/.$/a/", "123");
+ // test("s/.$/a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb");
+ // test("s/^./a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb");
+ // test("s/$/a/", "bbb");
+ // test("s/^/a/", "bbb");
+ // test("s/^/a/", "");
+ // test("s{.*}{N}", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
+ // test("s/.{0,7}/y/", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
+ // test("s/x/$&/", "xxx");
+ // }
+ // }
+
+ @DataProvider(name = "testWriteParam")
+ public Object[][] regexTestParams()
{
- for (int n = 1; n <= 1; n++)
+ return new Object[][]
{
- test("s/x/y/", "-----x123456789");
- test("s/x/y/", "x123456789");
- test("s/x/y/", "-----x");
- test("s/x.*?x/y/", ".xx..x..x...x...x....x....x");
- test("s/x.*x/[$&]/", "--x........x--xx");
- test("s/x.*x/[$&]/", "--x........x------");
- test("s/.$/a/m", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbbbbbbbbbbbb");
- test("s/.$/a/", "123");
- test("s/.$/a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb");
- test("s/^./a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb");
- test("s/$/a/", "bbb");
- test("s/^/a/", "bbb");
- test("s/^/a/", "");
- test("s{.*}{N}", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
- test("s/.{0,7}/y/", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
- test("s/x/$&/", "xxx");
- }
+ { "s/x/y/", "-----x123456789" },
+ { "s/x/y/", "x123456789" },
+ { "s/x/y/", "-----x" },
+ { "s/x.*?x/y/", ".xx..x..x...x...x....x....x" },
+ { "s/x.*x/[$&]/", "--x........x--xx" },
+ { "s/x.*x/[$&]/", "--x........x------" },
+ { "s/.$/a/m", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbbbbbbbbbbbb" },
+ { "s/.$/a/", "123" },
+ { "s/.$/a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb" },
+ { "s/^./a/", "bb\nbbb\nbbbb\nbbbbb\nbbbbbb\nbb" },
+ { "s/$/a/", "bbb" },
+ { "s/^/a/", "bbb" },
+ { "s/^/a/", "" },
+ { "s{.*}{N}", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" },
+ { "s/.{0,7}/y/", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" },
+ { "s/x/$&/", "xxx" } };
}
}
private static final String P = AAFrequency.PROFILE;
- @Test
+ @Test(groups ={ "Functional" })
public void testCalculate_noProfile()
{
SequenceI seq1 = new Sequence("Seq1", "CAGT");
assertEquals("T", col.get(R));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testCalculate_withProfile()
{
SequenceI seq1 = new Sequence("Seq1", "CAGT");
assertEquals(4, profile[1][1]);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testCalculate_withProfileTiming()
{
SequenceI seq1 = new Sequence("Seq1", "CAGT");
System.out.println(System.currentTimeMillis() - start);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetPercentageFormat()
{
assertNull(AAFrequency.getPercentageFormat(0));
--- /dev/null
+package jalview.analysis;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import org.testng.annotations.Test;
+
+public class AlignSeqTest
+{
+ @Test(groups ={ "Functional" })
+ public void testExtractGaps()
+ {
+ assertNull(AlignSeq.extractGaps(null, null));
+ assertNull(AlignSeq.extractGaps(null, "ACG"));
+ assertNull(AlignSeq.extractGaps("-. ", null));
+
+ assertEquals(" AC-G.T", AlignSeq.extractGaps("", " AC-G.T"));
+ assertEquals("AC-G.T", AlignSeq.extractGaps(" ", " AC-G.T"));
+ assertEquals("ACG.T", AlignSeq.extractGaps(" -", " AC-G.T"));
+ assertEquals("ACGT", AlignSeq.extractGaps(" -.", " AC-G.T ."));
+ assertEquals(" ACG.T", AlignSeq.extractGaps("-", " AC-G.T"));
+ }
+}
/**
* Test method that converts a (possibly null) array to a list.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAsList()
{
// null array
*
* @throws IOException
*/
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp() throws IOException
{
alignment = new jalview.io.FormatAdapter().readFile(TEST_DATA,
/**
* Test a mixture of show/hidden annotations in/outside selection group.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetShownHiddenTypes_forSelectionGroup()
{
Map<String, List<List<String>>> shownTypes = new HashMap<String, List<List<String>>>();
* Test case where there are 'grouped' annotations, visible and hidden, within
* and without the selection group.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetShownHiddenTypes_withGraphGroups()
{
final int GROUP_3 = 3;
/**
* Test method that determines visible graph groups.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetVisibleGraphGroups()
{
AlignmentAnnotation[] anns = alignment.getAlignmentAnnotation();
* Test for case where no sequence is selected. Shouldn't normally arise but
* check it handles it gracefully.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetShownHiddenTypes_noSequenceSelected()
{
Map<String, List<List<String>>> shownTypes = new HashMap<String, List<List<String>>>();
public static Sequence ts = new Sequence("short",
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm");
- @Test
+ @Test(groups ={ "Functional" })
public void testExpandContext()
{
AlignmentI al = new Alignment(new Sequence[] {});
/**
* Test that annotations are correctly adjusted by expandContext
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testExpandContext_annotation()
{
AlignmentI al = new Alignment(new Sequence[]
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetSequencesByName() throws IOException
{
final String data = ">Seq1Name\nKQYL\n" + ">Seq2Name\nRFPW\n"
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMapProteinToCdna_noXrefs() throws IOException
{
List<SequenceI> protseqs = new ArrayList<SequenceI>();
/**
* Test for the alignSequenceAs method that takes two sequences and a mapping.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAlignSequenceAs_withMapping_noIntrons()
{
MapList map = new MapList(new int[]
/**
* Test for the alignSequenceAs method that takes two sequences and a mapping.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAlignSequenceAs_withMapping_withIntrons()
{
/*
/**
* Test for the case where not all of the protein sequence is mapped to cDNA.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAlignSequenceAs_withMapping_withUnmappedProtein()
{
/**
* Test for the alignSequenceAs method where we preserve gaps in introns only.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAlignSequenceAs_keepIntronGapsOnly()
{
* Test for the method that generates an aligned translated sequence from one
* mapping.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetAlignedTranslation_dnaLikeProtein()
{
// dna alignment will be replaced
/**
* Test the method that realigns protein to match mapped codon alignment.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAlignProteinAsDna()
{
// seq1 codons are [1,2,3] [4,5,6] [7,8,9] [10,11,12]
* Test the method that tests whether a CDNA sequence translates to a protein
* sequence
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testTranslatesAs()
{
assertTrue(AlignmentUtils.translatesAs("tttcccaaaggg".toCharArray(), 0,
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMapProteinToCdna_withStartAndStopCodons()
throws IOException
{
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMapProteinToCdna_withXrefs() throws IOException
{
List<SequenceI> protseqs = new ArrayList<SequenceI>();
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMapProteinToCdna_prioritiseXrefs() throws IOException
{
List<SequenceI> protseqs = new ArrayList<SequenceI>();
* Test the method that shows or hides sequence annotations by type(s) and
* selection group.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testShowOrHideSequenceAnnotations()
{
SequenceI seq1 = new Sequence("Seq1", "AAA");
/**
* Tests for the method that checks if one sequence cross-references another
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testHasCrossRef()
{
assertFalse(AlignmentUtils.hasCrossRef(null, null));
* Tests for the method that checks if either sequence cross-references the
* other
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testHaveCrossRef()
{
assertFalse(AlignmentUtils.hasCrossRef(null, null));
/**
* Test the method that extracts the exon-only part of a dna alignment.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMakeExonAlignment()
{
SequenceI dna1 = new Sequence("dna1", "aaaGGGcccTTTaaa");
* already has a protein product (Uniprot translation) which in turn has an
* x-ref to the EMBLCDS record.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMakeExonSequences()
{
SequenceI dna1 = new Sequence("dna1", "aaaGGGcccTTTaaa");
* its product mappings, for the case where there are multiple exon mappings
* to different protein products.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMakeExonAlignment_multipleProteins()
{
SequenceI dna1 = new Sequence("dna1", "aaaGGGcccTTTaaa");
/*
* Set up 6 sequences and 7 annotations.
*/
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp()
{
al = buildAlignment(NUM_SEQS);
* sequence ref</li>
* </ul>
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSortBySequenceAndType_autocalcLast()
{
// @formatter:off
/**
* Variant with autocalculated annotations sorting to front
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSortBySequenceAndType_autocalcFirst()
{
// @formatter:off
* sequence ref</li>
* </ul>
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSortByTypeAndSequence_autocalcLast()
{
// @formatter:off
/**
* Variant of test with autocalculated annotations sorted to front
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSortByTypeAndSequence_autocalcFirst()
{
// @formatter:off
* Variant of test with autocalculated annotations sorted to front but
* otherwise no change.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testNoSort_autocalcFirst()
{
// @formatter:off
assertEquals("Structure", anns[6].label);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testSort_timingPresorted()
{
testTiming_presorted(50, 100);
*/
private void testTiming_presorted(final int numSeqs, final int numAnns)
{
- al = buildAlignment(numSeqs);
- anns = buildAnnotations(numAnns);
+ Alignment alignment = buildAlignment(numSeqs);
+ AlignmentAnnotation[] annotations = buildAnnotations(numAnns);
/*
* Set the annotations presorted by label
*/
Random r = new Random();
- final SequenceI[] sequences = al.getSequencesArray();
- for (int i = 0; i < anns.length; i++)
+ final SequenceI[] sequences = alignment.getSequencesArray();
+ for (int i = 0; i < annotations.length; i++)
{
SequenceI randomSequenceRef = sequences[r.nextInt(sequences.length)];
- anns[i].sequenceRef = randomSequenceRef;
- anns[i].label = "label" + i;
+ annotations[i].sequenceRef = randomSequenceRef;
+ annotations[i].label = "label" + i;
}
long startTime = System.currentTimeMillis();
- AnnotationSorter testee = new AnnotationSorter(al, false);
- testee.sort(anns, SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
+ AnnotationSorter testee = new AnnotationSorter(alignment, false);
+ testee.sort(annotations, SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
long endTime = System.currentTimeMillis();
final long elapsed = endTime - startTime;
System.out.println("Timing test for presorted " + numSeqs
/**
* Timing tests for sorting randomly sorted annotations for various sizes.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSort_timingUnsorted()
{
testTiming_unsorted(50, 100);
*/
private void testTiming_unsorted(final int numSeqs, final int numAnns)
{
- al = buildAlignment(numSeqs);
- anns = buildAnnotations(numAnns);
+ Alignment alignment = buildAlignment(numSeqs);
+ AlignmentAnnotation[] annotations = buildAnnotations(numAnns);
/*
* Set the annotations in random order with respect to the sequences
*/
Random r = new Random();
- final SequenceI[] sequences = al.getSequencesArray();
- for (int i = 0; i < anns.length; i++)
+ final SequenceI[] sequences = alignment.getSequencesArray();
+ for (int i = 0; i < annotations.length; i++)
{
SequenceI randomSequenceRef = sequences[r.nextInt(sequences.length)];
- anns[i].sequenceRef = randomSequenceRef;
- anns[i].label = "label" + i;
+ annotations[i].sequenceRef = randomSequenceRef;
+ annotations[i].label = "label" + i;
}
long startTime = System.currentTimeMillis();
- AnnotationSorter testee = new AnnotationSorter(al, false);
- testee.sort(anns, SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
+ AnnotationSorter testee = new AnnotationSorter(alignment, false);
+ testee.sort(annotations, SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
long endTime = System.currentTimeMillis();
final long elapsed = endTime - startTime;
System.out.println("Timing test for unsorted " + numSeqs
/**
* Timing test for sorting annotations with a limited range of types (labels).
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSort_timingSemisorted()
{
testTiming_semiSorted(50, 100);
*/
private void testTiming_semiSorted(final int numSeqs, final int numAnns)
{
- al = buildAlignment(numSeqs);
- anns = buildAnnotations(numAnns);
+ Alignment alignment = buildAlignment(numSeqs);
+ AlignmentAnnotation[] annotations = buildAnnotations(numAnns);
String[] labels = new String[]
{ "label1", "label2", "label3", "label4", "label5", "label6" };
* Set the annotations in sequence order with randomly assigned labels.
*/
Random r = new Random();
- final SequenceI[] sequences = al.getSequencesArray();
- for (int i = 0; i < anns.length; i++)
+ final SequenceI[] sequences = alignment.getSequencesArray();
+ for (int i = 0; i < annotations.length; i++)
{
SequenceI sequenceRef = sequences[i % sequences.length];
- anns[i].sequenceRef = sequenceRef;
- anns[i].label = labels[r.nextInt(labels.length)];
+ annotations[i].sequenceRef = sequenceRef;
+ annotations[i].label = labels[r.nextInt(labels.length)];
}
long startTime = System.currentTimeMillis();
- AnnotationSorter testee = new AnnotationSorter(al, false);
- testee.sort(anns, SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
+ AnnotationSorter testee = new AnnotationSorter(alignment, false);
+ testee.sort(annotations, SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
long endTime = System.currentTimeMillis();
long elapsed = endTime - startTime;
System.out.println("Sort by label for semisorted " + numSeqs
// now resort by sequence
startTime = System.currentTimeMillis();
- testee.sort(anns, SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
+ testee.sort(annotations, SequenceAnnotationOrder.SEQUENCE_AND_LABEL);
endTime = System.currentTimeMillis();
elapsed = endTime - startTime;
System.out.println("Resort by sequence for semisorted " + numSeqs
// now resort by label
startTime = System.currentTimeMillis();
- testee.sort(anns, SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
+ testee.sort(annotations, SequenceAnnotationOrder.LABEL_AND_SEQUENCE);
endTime = System.currentTimeMillis();
elapsed = endTime - startTime;
System.out.println("Resort by label for semisorted " + numSeqs
public class CodingUtilsTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testDecodeCodon()
{
assertTrue(Arrays.equals(new char[]
{ 'T', 'T', 'T' }, CodingUtils.decodeCodon(63)));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testDecodeNucleotide()
{
assertEquals('A', CodingUtils.decodeNucleotide(0));
assertEquals('0', CodingUtils.decodeNucleotide(4));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testEncodeCodon()
{
assertTrue(CodingUtils.encodeCodon('Z') < 0);
public class CrossRefTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testFindXDbRefs()
{
DBRefEntry ref1 = new DBRefEntry("UNIPROT", "1", "A123");
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testTranslateCdna_withUntranslatableCodons()
throws IOException
{
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testTranslateCdna_withUntranslatableCodonsAndHiddenColumns()
throws IOException
{
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testTranslateCdna_simple() throws IOException
{
AlignmentI alf = new FormatAdapter().readFile(fasta,
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testTranslateCdna_hiddenColumns() throws IOException
{
AlignmentI alf = new FormatAdapter().readFile(fasta,
/**
* Use this test to help debug into any cases of interest.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testCompareCodonPos_oneOnly()
{
assertFollows("-AA--A", "G--GG"); // 2 shifted seq2, 3 shifted seq1
/**
* Tests for method that compares 'alignment' of two codon position triplets.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testCompareCodonPos()
{
/*
* reorders the cDNA and retranslates, and verifies that the translations are
* the same (apart from ordering).
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testTranslateCdna_sequenceOrderIndependent()
{
/*
* Test that all the cases in testCompareCodonPos have a 'symmetric'
* comparison (without checking the actual comparison result).
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testCompareCodonPos_isSymmetric()
{
assertSymmetric("AAA", "GGG");
/**
* Weirdly, maybe worth a test to prove the helper method of this test class.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testConvertCodon()
{
assertEquals("[0, 1, 2]", convertCodon("AAA").toString());
int[] positions = new int[]
{ 1, 7, 9 };
- @Test
+ @Test(groups ={ "Functional" })
public void testMakeGroupsWithBoth()
{
ArrayList<String> str = new ArrayList<String>();
/**
* Construct an alignment with 4 sequences with varying description format
*/
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp()
{
SequenceI[] seqs = new SequenceI[]
* more 'number characters' (0-9+.), i.e. greedily matches any trailing
* numeric part of the string
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetScoresFromDescription()
{
String regex = ".*([-0-9.+]+)";
* character, followed by at least one 'number character', then any trailing
* characters.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetScoresFromDescription_twoScores()
{
String regex = ".*([-0-9.+]+).+([-0-9.+]+).*";
*
* @see AlignFrame.extractScores_actionPerformed
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetScoresFromDescription_wordBoundaries()
{
String regex = "\\W*([-+eE0-9.]+)";
--- /dev/null
+package jalview.analysis;
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.fail;
+
+import jalview.analysis.SecStrConsensus.SimpleBP;
+
+import java.util.Vector;
+
+import org.testng.annotations.Test;
+public class RnaTest
+{
+ @Test(groups ={ "Functional" })
+ public void testGetSimpleBPs() throws WUSSParseException
+ {
+ String rna = "([{})]"; // JAL-1081 example
+ Vector<SimpleBP> bps = Rna.GetSimpleBPs(rna);
+ assertEquals(3, bps.size());
+
+ /*
+ * the base pairs are added in the order in which the matching base is found
+ */
+ assertEquals(2, bps.get(0).bp5); // {
+ assertEquals(3, bps.get(0).bp3); // }
+ assertEquals(0, bps.get(1).bp5); // (
+ assertEquals(4, bps.get(1).bp3); // )
+ assertEquals(1, bps.get(2).bp5); // [
+ assertEquals(5, bps.get(2).bp3); // ]
+ }
+
+ @Test(groups ={ "Functional" })
+ public void testGetSimpleBPs_unmatchedOpener()
+ {
+ String rna = "(([{})]";
+ try
+ {
+ Rna.GetSimpleBPs(rna);
+ fail("expected exception");
+ } catch (WUSSParseException e)
+ {
+ // expected
+ }
+ }
+
+ @Test(groups ={ "Functional" })
+ public void testGetSimpleBPs_unmatchedCloser()
+ {
+ String rna = "([{})]]";
+ try
+ {
+ Rna.GetSimpleBPs(rna);
+ fail("expected exception");
+ } catch (WUSSParseException e)
+ {
+ // expected
+ }
+ }
+}
/**
* @throws java.lang.Exception
*/
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp() throws Exception
{
s1 = new Sequence("Seq1", "ASDFAQQQRRRSSS");
}
- @Test
+ @Test(groups ={ "Functional" })
/**
* simple test that mapping from alignment corresponds identical positions.
*/
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void testExtractGaps()
{
assertNull(AlignSeq.extractGaps(null, null));
assertEquals("ABCD", AlignSeq.extractGaps(" .-", ". -A-B.C D."));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testPrintAlignment()
{
AlignSeq as = AlignSeq.doGlobalNWAlignment(s1, s3, AlignSeq.PEP);
int[] sf3 = new int[]
{ -1, -1, -1, -1, -1, -1, 76, 77 };
- @Test
+ @Test(groups ={ "Functional" })
public void testFeatureScoreModel() throws Exception
{
AlignFrame alf = new FileLoader(false).LoadFileWaitTillLoaded(alntestFile,
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
+import java.util.ArrayList;
import org.testng.Assert;
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
+import org.testng.FileAssert;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class CommandLineOperations
{
- @BeforeClass
- public static void setUpBeforeClass() throws Exception
- {
- }
-
- @AfterClass
- public static void tearDownAfterClass() throws Exception
- {
- }
+ private ArrayList<String> successfulCMDs = new ArrayList<String>();
/***
* from
private static class Worker extends Thread
{
private final Process process;
-
+ private BufferedReader outputReader;
+ private BufferedReader errorReader;
private Integer exit;
private Worker(Process process)
return;
}
}
+
+ public BufferedReader getOutputReader()
+ {
+ return outputReader;
+ }
+
+ public void setOutputReader(BufferedReader outputReader)
+ {
+ this.outputReader = outputReader;
+ }
+
+ public BufferedReader getErrorReader()
+ {
+ return errorReader;
+ }
+
+ public void setErrorReader(BufferedReader errorReader)
+ {
+ this.errorReader = errorReader;
+ }
}
private Worker jalviewDesktopRunner(boolean withAwt, String cmd,
- int timeout) throws InterruptedException, IOException
+ int timeout)
{
String _cmd = "java "
+ (withAwt ? "-Djava.awt.headless=true" : "")
+ " -Djava.ext.dirs=./lib -classpath ./classes jalview.bin.Jalview ";
- System.out.println("###############Jalview CMD: " + _cmd + cmd);
- Process ls2_proc = Runtime.getRuntime().exec(_cmd + cmd);
- BufferedReader outputReader = new BufferedReader(new InputStreamReader(
- ls2_proc.getInputStream()));
-
- BufferedReader errorReader = new BufferedReader(new InputStreamReader(
- ls2_proc.getErrorStream()));
- Worker worker = new Worker(ls2_proc);
- worker.start();
- worker.join(timeout);
- System.out.println("Output: ");
+ System.out.println("CMD [" + cmd + "]");
+ Process ls2_proc = null;
+ Worker worker = null;
+ try
+ {
+ ls2_proc = Runtime.getRuntime().exec(_cmd + cmd);
+ } catch (IOException e1)
+ {
+ e1.printStackTrace();
+ }
+ if (ls2_proc != null)
+ {
+ BufferedReader outputReader = new BufferedReader(
+ new InputStreamReader(ls2_proc.getInputStream()));
+ BufferedReader errorReader = new BufferedReader(
+ new InputStreamReader(ls2_proc.getErrorStream()));
+ worker = new Worker(ls2_proc);
+ worker.start();
+ try
+ {
+ worker.join(timeout);
+ } catch (InterruptedException e)
+ {
+ // e.printStackTrace();
+ }
+ worker.setOutputReader(outputReader);
+ worker.setErrorReader(errorReader);
+ }
+ return worker;
+ }
+
+ @BeforeTest(alwaysRun = true)
+ public void initialize()
+ {
+ new CommandLineOperations();
+ }
+
+ @BeforeTest(alwaysRun = true)
+ public void setUpForHeadlessCommandLineInputOperations()
+ throws IOException
+ {
+ String cmds = "nodisplay -open examples/uniref50.fa -sortbytree -props FILE -colour zappo "
+ + "-jabaws http://www.compbio.dundee.ac.uk/jabaws -nosortbytree -dasserver nickname=www.test.com "
+ + "-features examples/testdata/plantfdx.features -annotations examples/testdata/plantfdx.annotations -tree examples/testdata/uniref50_test_tree";
+ Worker worker = jalviewDesktopRunner(true, cmds, 9000);
String ln = null;
- while ((ln = outputReader.readLine()) != null)
+ while ((ln = worker.getOutputReader().readLine()) != null)
{
System.out.println(ln);
+ successfulCMDs.add(ln);
}
+ }
- System.out.println("Error: ");
- while ((ln = errorReader.readLine()) != null)
+ @BeforeTest(alwaysRun = true)
+ public void setUpForCommandLineInputOperations() throws IOException
+ {
+ String cmds = "-open examples/uniref50.fa -noquestionnaire -nousagestats";
+ Worker worker = jalviewDesktopRunner(false, cmds, 9000);
+ String ln = null;
+ int count = 0;
+ while ((ln = worker.getErrorReader().readLine()) != null)
{
System.out.println(ln);
+ successfulCMDs.add(ln);
+ if (++count > 5)
+ {
+ break;
+ }
}
- return worker;
+ if (worker != null && worker.exit == null)
+ {
+ worker.interrupt();
+ Thread.currentThread().interrupt();
+ worker.process.destroy();
+ }
+ }
+
+ @Test(groups =
+ { "Functional" }, dataProvider = "allInputOpearationsData")
+ public void testAllInputOperations(String expectedString,
+ String failureMsg)
+ {
+ Assert.assertTrue(successfulCMDs.contains(expectedString), failureMsg);
}
- @Test
- public void testHeadlessModeEPS() throws Exception
+ @Test(groups =
+ { "Functional" }, dataProvider = "headlessModeOutputOperationsData")
+ public void testHeadlessModeOutputOperations(String harg, String type,
+ String fileName, boolean withAWT, int expectedMinFileSize,
+ int timeout)
{
- String[] headlessArgs = new String[]
- { "nodisplay", "headless", "nogui" };
- for (String _harg : headlessArgs)
+ String cmd = harg + type + " " + fileName;
+ // System.out.println(">>>>>>>>>>>>>>>> Command : " + cmd);
+ File file = new File(fileName);
+ Worker worker = jalviewDesktopRunner(withAWT, cmd, timeout);
+
+ FileAssert.assertFile(file, "Didn't create an output" + type
+ + " file.[" + harg + "]");
+ FileAssert.assertMinLength(new File(fileName), expectedMinFileSize);
+ if (worker != null && worker.exit == null)
{
- boolean _switch = false, withAwt = false;
- do
- {
- if (_switch)
+ worker.interrupt();
+ Thread.currentThread().interrupt();
+ worker.process.destroy();
+ Assert.fail("Jalview did not exit after "
+ + type
+ + " generation (try running test again to verify - timeout at 9000ms). ["
+ + harg + "]");
+ }
+ new File(fileName).delete();
+ }
+
+
+ @DataProvider(name = "allInputOpearationsData")
+ public Object[][] getHeadlessModeInputParams()
+ {
+ return new Object[][]
+ {
+ // headless mode input operations
+ { "CMD [-color zappo] executed successfully!",
+ "Failed command : -color zappo" },
+ { "CMD [-props FILE] executed successfully!",
+ "Failed command : -props File" },
+ { "CMD [-sortbytree] executed successfully!",
+ "Failed command : -sortbytree" },
{
- withAwt = true;
- }
- _switch = true;
- String jalview_input = "examples/uniref50.fa";
- String jalview_output = "test_uniref50_out.eps";
- String cmd = "" + _harg + " -open " + jalview_input + " -eps "
- + jalview_output;
- String harg = _harg
- + (withAwt ? "-Djava.awt.headless=true"
- : " NO AWT.HEADLESS");
- System.out.println("Testing with Headless argument: '" + harg
- + "'\n");
- Worker worker = jalviewDesktopRunner(withAwt, cmd, 9000);
- AssertJUnit.assertTrue("Didn't create an output EPS file.[" + harg
- + "]", new File("test_uniref50_out.eps").exists());
- AssertJUnit.assertTrue(
- "Didn't create an EPS file with any content[" + harg + "]",
- new File("test_uniref50_out.eps").length() > 4096);
- if (worker.exit == null)
+ "CMD [-jabaws http://www.compbio.dundee.ac.uk/jabaws] executed successfully!",
+ "Failed command : -jabaws http://www.compbio.dundee.ac.uk/jabaws" },
+ { "CMD [-open examples/uniref50.fa] executed successfully!",
+ "Failed command : -open examples/uniref50.fa" },
+ { "CMD [-nosortbytree] executed successfully!",
+ "Failed command : -nosortbytree" },
+ { "CMD [-dasserver nickname=www.test.com] executed successfully!",
+ "Failed command : -dasserver nickname=www.test.com" },
{
- worker.interrupt();
- Thread.currentThread().interrupt();
- worker.process.destroy();
- Assert.fail("Jalview did not exit after EPS generation (try running test again to verify - timeout at 9000ms). ["
- + harg + "]");
- }
- } while (!withAwt);
- }
+ "CMD [-features examples/testdata/plantfdx.features] executed successfully!",
+ "Failed command : -features examples/testdata/plantfdx.features" },
+ {
+ "CMD [-annotations examples/testdata/plantfdx.annotations] executed successfully!",
+ "Failed command : -annotations examples/testdata/plantfdx.annotations" },
+ {
+ "CMD [-tree examples/testdata/uniref50_test_tree] executed successfully!",
+ "Failed command : -tree examples/testdata/uniref50_test_tree" },
+ // non headless mode input operations
+ { "CMD [-nousagestats] executed successfully!",
+ "Failed command : -nousagestats" },
+ { "CMD [-noquestionnaire] executed successfully!",
+ "Failed command : -noquestionnaire nickname=www.test.com" }
+ };
+
+ }
+
+ @DataProvider(name = "headlessModeOutputOperationsData")
+ public static Object[][] getHeadlessModeOutputParams()
+ {
+ return new Object[][]
+ {
+ { "nodisplay -open examples/uniref50.fa", " -eps",
+ "test_uniref50_out.eps", true, 4096, 4000 },
+ { "nodisplay -open examples/uniref50.fa", " -eps",
+ "test_uniref50_out.eps", false, 4096, 4000 },
+ { "nogui -open examples/uniref50.fa", " -eps",
+ "test_uniref50_out.eps", true, 4096, 4000 },
+ { "nogui -open examples/uniref50.fa", " -eps",
+ "test_uniref50_out.eps", false, 4096, 4000 },
+ { "headless -open examples/uniref50.fa", " -eps",
+ "test_uniref50_out.eps", true, 4096, 4000 },
+ { "headless -open examples/uniref50.fa", " -svg",
+ "test_uniref50_out.svg", false, 4096, 3000 },
+ { "headless -open examples/uniref50.fa", " -png",
+ "test_uniref50_out.png", true, 4096, 3000 },
+ { "headless -open examples/uniref50.fa", " -html",
+ "test_uniref50_out.html", true, 4096, 3000 },
+ { "headless -open examples/uniref50.fa", " -fasta",
+ "test_uniref50_out.mfa", true, 2096, 3000 },
+ { "headless -open examples/uniref50.fa", " -clustal",
+ "test_uniref50_out.aln", true, 2096, 3000 },
+ { "headless -open examples/uniref50.fa", " -msf",
+ "test_uniref50_out.msf", true, 2096, 3000 },
+ { "headless -open examples/uniref50.fa", " -pileup",
+ "test_uniref50_out.aln", true, 2096, 3000 },
+ { "headless -open examples/uniref50.fa", " -pir",
+ "test_uniref50_out.pir", true, 2096, 3000 },
+ { "headless -open examples/uniref50.fa", " -pfam",
+ "test_uniref50_out.pfam", true, 2096, 3000 },
+ { "headless -open examples/uniref50.fa", " -blc",
+ "test_uniref50_out.blc", true, 2096, 3000 },
+ { "headless -open examples/uniref50.fa", " -jalview",
+ "test_uniref50_out.jvp", true, 2096, 3000 },
+ };
}
- // @Test
- // public void testJalview2XMLDataset() throws Exception
- // {
- // String jalview_input = "examples/uniref50.fa";
- // String jalview_output = "test_uniref50_out.eps";
- // String cmd = ""+" -open "+ jalview_input + " -eps " + jalview_output;
- // //String harg = _harg+(withAwt ?
- // "-Djava.awt.headless=true":" NO AWT.HEADLESS");
- // System.out.println("Testing with Headless argument: '"+harg+"'\n");
- // Worker worker = jalviewDesktopRunner(withAwt, cmd, 9000);
- // assertTrue("Didn't create an output EPS file.["+harg+"]", new
- // File("test_uniref50_out.eps").exists());
- // assertTrue("Didn't create an EPS file with any content["+harg+"]", new
- // File("test_uniref50_out.eps").length()>4096);
- // if (worker.exit == null){
- // worker.interrupt();
- // Thread.currentThread().interrupt();
- // worker.process.destroy();
- // fail("Jalview did not exit after EPS generation (try running test again to verify - timeout at 9000ms). ["+harg+"]");
- // }
- // }
}
private Alignment al;
- @BeforeMethod
- public void setUp()
+ @BeforeMethod(alwaysRun = true)
+ public void setUp()
{
testee = new EditCommand();
seqs = new SequenceI[4];
/**
* Test inserting gap characters
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAppendEdit_insertGap()
{
// set a non-standard gap character to prove it is actually used
* Test deleting characters from sequences. Note the deleteGap() action does
* not check that only gap characters are being removed.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAppendEdit_deleteGap()
{
testee.appendEdit(Action.DELETE_GAP, seqs, 4, 3, al, true);
* Test a cut action. The command should store the cut characters to support
* undo.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testCut()
{
Edit ec = testee.new Edit(Action.CUT, seqs, 4, 3, al);
/**
* Test a Paste action, where this adds sequences to an alignment.
*/
- @Test(enabled = false)
+ @Test(groups =
+ { "Functional" }, enabled = false)
// TODO fix so it works
public void testPaste_addToAlignment()
{
/**
* Test insertGap followed by undo command
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testUndo_insertGap()
{
// Edit ec = testee.new Edit(Action.INSERT_GAP, seqs, 4, 3, '?');
/**
* Test deleteGap followed by undo command
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testUndo_deleteGap()
{
testee.appendEdit(Action.DELETE_GAP, seqs, 4, 3, al, true);
/**
* Test several commands followed by an undo command
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testUndo_multipleCommands()
{
// delete positions 3/4/5 (counting from 1)
* Unit test for JAL-1594 bug: click and drag sequence right to insert gaps -
* undo did not remove them all.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testUndo_multipleInsertGaps()
{
testee.appendEdit(Action.INSERT_GAP, seqs, 4, 1, al, true);
/**
* Test cut followed by undo command
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testUndo_cut()
{
testee.appendEdit(Action.CUT, seqs, 4, 3, al, true);
/**
* Test the replace command (used to manually edit a sequence)
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testReplace()
{
// seem to need a dataset sequence on the edited sequence here
* Test that the addEdit command correctly merges insert gap commands when
* possible.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAddEdit_multipleInsertGap()
{
/*
* Test that the addEdit command correctly merges delete gap commands when
* possible.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAddEdit_multipleDeleteGap()
{
/*
* case when they appear contiguous but are acting on different sequences.
* They should not be merged.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAddEdit_removeAllGaps()
{
seqs[0].setSequence("a???bcdefghjk");
* Test that the addEdit command correctly merges insert gap commands acting
* on a multi-sequence selection.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAddEdit_groupInsertGaps()
{
/*
* <li>last: --A--B-CDEF</li>
* </ul>
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testPriorState_multipleInserts()
{
EditCommand command = new EditCommand();
* <li>End: ABC</li>
* </ul>
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testPriorState_removeAllGaps()
{
EditCommand command = new EditCommand();
/**
* Test for 'undoing' a single delete edit.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testPriorState_singleDelete()
{
EditCommand command = new EditCommand();
/**
* Test 'undoing' a single gap insertion edit command.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testPriorState_singleInsert()
{
EditCommand command = new EditCommand();
* Test that mimics 'remove all gaps' action. This generates delete gap edits
* for contiguous gaps in each sequence separately.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testPriorState_removeGapsMultipleSeqs()
{
EditCommand command = new EditCommand();
* series Delete Gap edits that each act on all sequences that share a gapped
* column region.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testPriorState_removeGappedCols()
{
EditCommand command = new EditCommand();
/**
* Test the method that locates the first aligned sequence that has a mapping.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testFindAlignedSequence()
{
AlignmentI cdna = new Alignment(new SequenceI[]
/**
* Test the method that locates the mapped codon for a protein position.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetMappedRegion()
{
// introns lower case, exons upper case
assertNull(acf.getMappedRegion(seq1, aseq2, 1));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetMappedCodon()
{
final Sequence seq1 = new Sequence("Seq1", "c-G-TA-gC-gT-T");
/**
* Test normal case for iterating over aligned codons.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testNext()
{
SequenceI from = new Sequence("Seq1", "-CgC-C-cCtAG-AtG-Gc");
/**
* Test weird case where the mapping skips over a peptide.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testNext_unmappedPeptide()
{
SequenceI from = new Sequence("Seq1", "-CgC-C-cCtAG-AtG-Gc");
/**
* Test for exception thrown for an incomplete codon.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testNext_incompleteCodon()
{
SequenceI from = new Sequence("Seq1", "-CgC-C-cCgTt");
/**
* Test normal case for iterating over aligned codons.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAnother()
{
SequenceI from = new Sequence("Seq1", "TGCCATTACCAG-");
public class AlignedCodonTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testEquals()
{
AlignedCodon ac = new AlignedCodon(1, 3, 4);
assertTrue(ac.equals(ac));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testToString() {
AlignedCodon ac = new AlignedCodon(1, 3, 4);
assertEquals("[1, 3, 4]", ac.toString());
public class AlignmentAnnotationTests
{
- @Test
+ @Test(groups ={ "Functional" })
public void testCopyConstructor()
{
SequenceI sq = new Sequence("Foo", "ARAARARARAWEAWEAWRAWEAWE");
* different dataset frames (annotation transferred by mapping between
* sequences)
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testLiftOver()
{
SequenceI sqFrom = new Sequence("fromLong", "QQQCDEWGH");
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void testAdjustForAlignment()
{
SequenceI seq = new Sequence("TestSeq", "ABCDEFG");
* Read in Stockholm format test data including secondary structure
* annotations.
*/
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp() throws IOException
{
al = loadAlignment(TEST_DATA, "STH");
/**
* Test method that returns annotations that match on calcId.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testFindAnnotation_byCalcId()
{
Iterable<AlignmentAnnotation> anns = al
assertFalse(iter.hasNext());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testDeleteAllAnnotations_includingAutocalculated()
{
AlignmentAnnotation aa = new AlignmentAnnotation("Consensus",
assertEquals("Not all deleted", 0, al.getAlignmentAnnotation().length);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testDeleteAllAnnotations_excludingAutocalculated()
{
AlignmentAnnotation aa = new AlignmentAnnotation("Consensus",
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAlignAs_dnaAsDna() throws IOException
{
// aligned cDNA:
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAlignAs_proteinAsCdna() throws IOException
{
// see also AlignmentUtilsTests
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAlignAs_cdnaAsProtein() throws IOException
{
/*
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAlignAs_dnaAsProtein_withIntrons() throws IOException
{
/*
public class ColumnSelectionTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testAddElement()
{
ColumnSelection cs = new ColumnSelection();
* Test the remove method - in particular to verify that remove(int i) removes
* the element whose value is i, _NOT_ the i'th element.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testRemoveElement()
{
ColumnSelection cs = new ColumnSelection();
* Test the method that finds the visible column position of an alignment
* column, allowing for hidden columns.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testFindColumnPosition()
{
ColumnSelection cs = new ColumnSelection();
/**
* Tests for the method that compares equality of reference (but not mapping)
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testEqualRef()
{
DBRefEntry ref1 = new DBRefEntry("UNIPROT", "1", "V71633");
* trite test of the intersectVisContigs method for a simple DNA -> Protein
* exon map and a range of visContigs
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testIntersectVisContigs()
{
MapList fk = new MapList(new int[]
public class PDBEntryTest
{
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp() throws Exception
{
}
{
}
- @Test
+ @Test(groups ={ "Functional" })
public void test()
{
try
public class SearchResultsTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testToString()
{
SequenceI seq = new Sequence("", "abcdefghijklm");
*
* TODO: split into separate tests
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSomething() throws Exception
{
String o_seq = "asdfktryasdtqwrtsaslldddptyipqqwaslchvhttt";
package jalview.datamodel;
+import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertTrue;
+
+import org.testng.annotations.Test;
-import org.junit.Assert;
-import org.junit.Test;
public class SequenceDummyTest
{
/**
* test for become method
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testBecome()
{
SequenceI seq = new Sequence("OrigSeq", "ASEQUENCE");
SequenceDummy dummySeq = new SequenceDummy("OrigSeq");
dummySeq.addSequenceFeature(ofeat);
dummySeq.become(seq);
- Assert.assertFalse("Dummy sequence did not become a full sequence",
+ assertFalse("Dummy sequence did not become a full sequence",
dummySeq.isDummy());
- Assert.assertTrue("Sequence was not updated from template", seq
+ assertTrue("Sequence was not updated from template", seq
.getSequenceAsString().equals(dummySeq.getSequenceAsString()));
boolean found = false;
for (SequenceFeature sf : dummySeq.getSequenceFeatures())
break;
}
}
- Assert.assertTrue("Didn't retain original sequence feature", found);
+ assertTrue("Didn't retain original sequence feature", found);
// todo - should test all aspect of copy constructor
}
{
SequenceI seq;
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp()
{
seq = new Sequence("FER1", "AKPNGVL");
}
- @Test
+ @Test(groups ={ "Functional" })
public void testInsertGapsAndGapmaps()
{
SequenceI aseq = seq.deriveSequence();
assertEquals("Gap interval 2 end wrong", 8, gapInt.get(1)[1]);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetAnnotation()
{
// initial state returns null not an empty array
assertNull(seq.getAnnotation());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetAnnotation_forLabel()
{
AlignmentAnnotation ann1 = addAnnotation("label1", "desc1", "calcId1", 1f);
return annotation;
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetAlignmentAnnotations_forCalcIdAndLabel()
{
AlignmentAnnotation ann1 = addAnnotation("label1", "desc1", "calcId1",
* setting the sequenceRef on the annotation. Adding the same annotation twice
* should be ignored.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testAddAlignmentAnnotation()
{
assertNull(seq.getAnnotation());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetStartGetEnd()
{
SequenceI seq = new Sequence("test", "ABCDEF");
* Tests for the method that returns an alignment column position (base 1) for
* a given sequence position (base 1).
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testFindIndex()
{
SequenceI seq = new Sequence("test", "ABCDEF");
* Tests for the method that returns a dataset sequence position (base 1) for
* an aligned column position (base 0).
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testFindPosition()
{
SequenceI seq = new Sequence("test", "ABCDEF");
assertEquals(7, seq.findPosition(11));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testDeleteChars()
{
SequenceI seq = new Sequence("test", "ABCDEF");
assertEquals(6, seq.getEnd());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testInsertCharAt()
{
// non-static methods:
* Test the method that returns an array of aligned sequence positions where
* the array index is the data sequence position (both base 0).
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGapMap()
{
SequenceI seq = new Sequence("test", "-A--B-CD-E--F-");
* Test the method that gets sequence features, either from the sequence or
* its dataset.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetSequenceFeatures()
{
SequenceI seq = new Sequence("test", "GATCAT");
* entries are the residue positions at the sequence position (or to the right
* if a gap)
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testFindPositionMap()
{
/*
/**
* Test for getSubsequence
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetSubsequence()
{
SequenceI seq = new Sequence("TestSeq", "ABCDEFG");
/**
* Test for deriveSequence applied to a sequence with a dataset
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testDeriveSequence_existingDataset()
{
SequenceI seq = new Sequence("Seq1", "CD");
/**
* Test for deriveSequence applied to an ungapped sequence with no dataset
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testDeriveSequence_noDatasetUngapped()
{
SequenceI seq = new Sequence("Seq1", "ABCDEF");
/**
* Test for deriveSequence applied to a gapped sequence with no dataset
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testDeriveSequence_noDatasetGapped()
{
SequenceI seq = new Sequence("Seq1", "AB-C.D EF");
+ "</locationElement></location></feature>"
+ "<sequence type=\"mRNA\" version=\"2\">GTGACG</sequence></entry></EMBL_Services>";
- @Test
+ @Test(groups ={ "Functional" })
public void testGetEmblFile()
{
Vector<EmblEntry> entries = EmblFile.getEmblFile(
// "./examples/DNMT1_MOUSE.pdb"
// };
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp()
{
Cache.applicationProperties.setProperty("STRUCT_FROM_PDB",
Boolean.TRUE.toString());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testAlignmentLoader() throws Exception
{
for (String f : testFile)
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void testFileParser() throws Exception
{
for (String pdbStr : testFile)
public class TestAnnotate3D
{
- @Test(enabled = false)
+ @Test(groups =
+ { "Functional" }, enabled = false)
public void test1GIDbyId() throws Exception
{
// use same ID as standard tests given at
testRNAMLcontent(ids, null);
}
- @Test(enabled = false)
+ @Test(groups =
+ { "Functional" }, enabled = false)
public void testIdVsContent2GIS() throws Exception
{
Iterator<Reader> ids = Annotate3D.getRNAMLForPDBId("2GIS");
*
* @throws Exception
*/
- @Test(enabled = false)
+ @Test(groups =
+ { "Functional" }, enabled = false)
public void testPDBfileVsRNAML() throws Exception
{
PDBfile pdbf = new PDBfile(true, false, true, "examples/2GIS.pdb",
testRNAMLcontent(readers, pdbf);
}
- @Test(enabled = false)
+ @Test(groups =
+ { "Functional" }, enabled = false)
private void testRNAMLcontent(Iterator<Reader> readers, PDBfile pdbf)
throws Exception
{
public class ChimeraCommandsTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testAddColourRange()
{
Map<Color, Map<Integer, Map<String, List<int[]>>>> map = new LinkedHashMap<Color, Map<Integer, Map<String, List<int[]>>>>();
{ 5, 9 }, posList.get(0)));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testBuildColourCommands()
{
public class ChimeraConnect
{
- @Test
+ @Test(groups ={ "Functional" })
public void testLaunchAndExit()
{
final StructureManager structureManager = new StructureManager(true);
/**
* @throws java.lang.Exception
*/
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
jalview.bin.Jalview.main(new String[]
}
- @Test
+ @Test(groups ={ "Functional" })
public void testSingleSeqViewJMol()
{
String inFile = "examples/1gaq.txt";
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void testSingleSeqViewChimera()
{
String inFile = "examples/1gaq.txt";
AlignmentI al;
AlignViewport testee;
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp()
{
SequenceI seq1 = new Sequence("Seq1", "ABC");
testee = new AlignViewport(al);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testCollateForPdb()
{
/*
AlignFrame af;
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp() throws IOException
{
// pin down annotation sort order for test
/**
* Test creation of panel with OK and Cancel buttons
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testBuildActionButtonsPanel()
{
testee = new AnnotationChooser(parentPanel);
* Test 'Apply to' has 3 radio buttons enabled, 'Selected Sequences' selected,
* when there is a current selection group.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testBuildApplyToOptionsPanel_withSelectionGroup()
{
selectSequences(0, 2, 3);
* Test 'Apply to' has 1 radio button enabled, 'All Sequences' selected, when
* there is no current selection group.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testBuildApplyToOptionsPanel_noSelectionGroup()
{
testee = new AnnotationChooser(parentPanel);
/**
* Test Show and Hide radio buttons created, with Hide initially selected.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testBuildShowHidePanel()
{
testee = new AnnotationChooser(parentPanel);
/**
* Test construction of panel containing two sub-panels
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testBuildShowHideOptionsPanel()
{
testee = new AnnotationChooser(parentPanel);
* Test that annotation types are (uniquely) identified.
*
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetAnnotationTypes()
{
selectSequences(1);
* We expect all annotations of that type to be set hidden. Other annotations
* should be left visible.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSelectType_hideForAll()
{
selectSequences(1, 2);
* We expect the annotations of that type, linked to the sequence group, to be
* set hidden. Other annotations should be left visible.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSelectType_hideForSelected()
{
selectSequences(1, 2);
* We expect all annotations of that type to be set visible. Other annotations
* should be left unchanged.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testDeselectType_hideForAll()
{
selectSequences(1, 2);
* We expect the annotations of that type, linked to the sequence group, to be
* set visible. Other annotations should be left unchanged.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testDeselectType_hideForSelected()
{
selectSequences(1, 2);
* We expect all annotations of that type to be set visible. Other annotations
* should be left unchanged
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSelectType_showForAll()
{
selectSequences(1, 2);
* We expect all annotations of that type, linked to the sequence group, to be
* set visible. Other annotations should be left unchanged
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSelectType_showForSelected()
{
// sequences 1 and 2 have annotations IUPred and Jmol
* We expect all annotations of that type to be set hidden. Other annotations
* should be left unchanged.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testDeselectType_showForAll()
{
selectSequences(1, 2);
* We expect the annotations of that type, linked to the sequence group, to be
* set hidden. Other annotations should be left unchanged.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testDeselectType_showForSelected()
{
selectSequences(1, 2);
* Test cases include sequences in the selection group, and others not in the
* group.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testIsInActionScope_selectedScope()
{
// sequences 1 and 2 have annotations 4 and 3 respectively
* Test cases include sequences in the selection group, and others not in the
* group.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testIsInActionScope_unselectedScope()
{
// sequences 1 and 2 have annotations 4 and 3 respectively
/**
* Test that the reset method restores previous visibility flags.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testResetOriginalState()
{
testee = new AnnotationChooser(parentPanel);
--- /dev/null
+package jalview.gui;
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertNull;
+import static org.testng.AssertJUnit.assertSame;
+
+import org.testng.annotations.Test;
+
+public class AppVarnaTest
+{
+ @Test
+ public void testReplaceOddGaps()
+ {
+ String struct = "{(<]}>)";
+ String replaced = AppVarna.replaceOddGaps(struct);
+ assertEquals(struct, replaced);
+ assertSame(struct, replaced);
+ assertEquals("..{.([.<.].}.>)",
+ AppVarna.replaceOddGaps("..{ ([*<-]?} >)"));
+ assertEquals("....", AppVarna.replaceOddGaps("cgta"));
+ assertEquals("", AppVarna.replaceOddGaps(""));
+ assertNull(AppVarna.replaceOddGaps(null));
+ }
+}
* available, plain) fonts and point sizes that would be rejected by Jalview's
* FontChooser as having an I-width of less than 1.0.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void dumpInvalidFonts()
{
String[] fonts = java.awt.GraphicsEnvironment
public class HelpTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void checkHelpTargets() throws HelpSetException
{
ClassLoader cl = Desktop.class.getClassLoader();
public class JAL1353bugdemo
{
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
}
volatile boolean finish = false;
- @Test(enabled = false)
+ @Test(groups =
+ { "Functional" }, enabled = false)
public void test()
{
Cache.initLogger();
public class JvSwingUtilsTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testGetScrollBarProportion()
{
/*
assertEquals(0.25f, JvSwingUtils.getScrollBarProportion(sb), 0.001f);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetScrollValueForProportion()
{
/*
public class PDBSearchPanelTest
{
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp() throws Exception
{
}
{
}
- @Test
+ @Test(groups ={ "Functional" })
public void populateCmbSearchTargetOptionsTest()
{
PDBSearchPanel searchPanel = new PDBSearchPanel(null);
searchPanel.populateCmbSearchTargetOptions();
}
- @Test
+ @Test(groups ={ "Functional" })
public void testDecodeSearchTerm()
{
String expectedString = "1xyz OR text:2xyz OR text:3xyz";
assertEquals(expectedString, outcome);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testgetPDBIdwithSpecifiedChain()
{
assertEquals(expectedString, outcome);
}
- @Test
+ @Test(groups =
+ { "Network", "External" }, timeOut = 5000)
public void txt_search_ActionPerformedTest()
{
PDBSearchPanel searchPanel = new PDBSearchPanel(null);
public class PaintRefresherTest
{
// TODO would prefer PaintRefresher to be a single rather than static
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp()
{
PaintRefresher.components.clear();
PaintRefresher.components.clear();
}
- @Test
+ @Test(groups ={ "Functional" })
public void testRegister()
{
JPanel jp = new JPanel();
assertTrue(registered.get("44").contains(jp4));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testRemoveComponent()
{
Map<String, List<Component>> registered = PaintRefresher.components;
assertTrue(registered.get("22").contains(jp2));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetAssociatedPanels()
{
SequenceI [] seqs = new SequenceI[]{new Sequence("", "ABC")};
PopupMenu testee = null;
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp() throws IOException
{
alignment = new FormatAdapter().readFile(TEST_DATA,
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void testConfigureReferenceAnnotationsMenu_noSequenceSelected()
{
JMenuItem menu = new JMenuItem();
* are no reference annotations to add to the alignment. The menu item should
* be disabled.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testConfigureReferenceAnnotationsMenu_noReferenceAnnotations()
{
JMenuItem menu = new JMenuItem();
* reference annotations are already on the alignment. The menu item should be
* disabled.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testConfigureReferenceAnnotationsMenu_alreadyAdded()
{
JMenuItem menu = new JMenuItem();
* The menu item should be enabled, and acquire a tooltip which lists the
* annotation sources (calcIds) and type (labels).
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testConfigureReferenceAnnotationsMenu()
{
JMenuItem menu = new JMenuItem();
* on the alignment. The menu item should be enabled, and acquire a tooltip
* which lists the annotation sources (calcIds) and type (labels).
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testConfigureReferenceAnnotationsMenu_notOnAlignment()
{
JMenuItem menu = new JMenuItem();
* The menu item should be enabled, and acquire a tooltip which lists the
* annotation sources (calcIds) and type (labels).
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testConfigureReferenceAnnotationsMenu_twoViews()
{
}
* Test for building menu options including 'show' and 'hide' annotation
* types.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testBuildAnnotationTypesMenus()
{
JMenu showMenu = new JMenu();
/**
* Test for building menu options with only 'hide' annotation types enabled.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testBuildAnnotationTypesMenus_showDisabled()
{
JMenu showMenu = new JMenu();
/**
* Test for building menu options with only 'show' annotation types enabled.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testBuildAnnotationTypesMenus_hideDisabled()
{
JMenu showMenu = new JMenu();
private JLabel statusBar;
- @Test
+ @Test(groups ={ "Functional" })
public void testConstructor_prematureInstantiation()
{
try
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void testConstructor_wrongLayout()
{
statusPanel = new JPanel();
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void testSetProgressBar()
{
statusPanel = new JPanel();
public class SequenceRendererTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testGetResidueBoxColour_zappo()
{
SequenceI seq = new Sequence("name", "MATVLGSPRAPAFF"); // FER1_MAIZE...
{
Sequence seq;
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp() throws Exception
{
seq = new Sequence("PDB|4kqy|4KQY|A", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 1,
- @Test
+ @Test(groups ={ "Functional" })
public void buildQueryTest()
{
String query = StructureChooser.buildQuery(seq);
query);
}
- @Test
+ @Test(groups ={ "Functional" })
public void populateFilterComboBoxTest()
{
SequenceI[] selectedSeqs = new SequenceI[]
// should be populated
}
- @Test
+ @Test(groups ={ "Functional" })
public void fetchStructuresInfoTest()
{
SequenceI[] selectedSeqs = new SequenceI[]
String pdbId;
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setup() throws Exception
{
Cache.applicationProperties.setProperty("STRUCT_FROM_PDB",
.get(0).getId();
}
- @Test
+ @Test(groups ={ "Functional" })
public void checkNoDuplicates()
{
// not strictly a requirement, but strange things may happen if multiple
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void checkPDBannotationSource()
{
/**
* Check sequence features have been added
*/
- @Test
+ @Test(groups ={ "Functional" })
public void checkPDBSequenceFeatures()
{
StructureSelectionManager ssm = StructureSelectionManager
assertEquals("TYR:314 1gaqC", sf[295].getDescription());
}
- @Test
+ @Test(groups ={ "Functional" })
public void checkAnnotationWiring()
{
assertTrue(al.getAlignmentAnnotation() != null);
/**
* @throws java.lang.Exception
*/
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
jalview.bin.Jalview.main(new String[]
}
- @Test
+ @Test(groups ={ "Functional" })
public void testJalviewProjectRelocationAnnotation() throws Exception
{
{ "Test hiding/showing of insertions on sequence_ref",
"examples/uniref50.fa", "examples/testdata/uniref50_seqref.jva" } };
- @Test
+ @Test(groups ={ "Functional" })
public void exampleAnnotationFileIO() throws Exception
{
for (String[] testPair : TestFiles)
* f
*/
- // @Test
+ // @Test(groups ={ "Functional" })
public static void testAnnotationFileIO(String testname, File f,
File annotFile)
{
public class BioJsHTMLOutputTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void getJalviewAlignmentAsJsonString()
{
String bjsTemplate = null;
Assert.assertNotNull(bjsTemplate);
}
- @Test(expectedExceptions = NullPointerException.class)
+ @Test(groups =
+ { "Functional" }, expectedExceptions = NullPointerException.class)
public void expectedNullPointerException()
{
try
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void getBioJsMSAVersions()
{
TreeMap<String, File> versions = null;
}
- @Test
+ @Test(groups =
+ { "Network" })
public void testBioJsUpdate()
{
String url = BioJsHTMLOutput.BJS_TEMPLATE_GIT_REPO;
/**
* @throws java.lang.Exception
*/
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
}
+ "' identified as '" + type + "'", type.equalsIgnoreCase(fmt));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testStarsInFasta1() throws IOException
{
String uri;
assertValidFormat("FASTA", uri, fp);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testStarsInFasta2() throws IOException
{
String uri;
assertValidFormat("FASTA", uri, fp);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGzipIo() throws IOException
{
String uri;
assertValidFormat("FASTA", uri, fp);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGziplocalFileIO() throws IOException
{
String filepath;
assertValidFormat("FASTA", filepath, fp);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testNonGzipURLIO() throws IOException
{
String uri;
assertValidFormat("FASTA", uri, fp);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testNonGziplocalFileIO() throws IOException
{
String filepath;
package jalview.io;
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertNotNull;
+import static org.testng.AssertJUnit.assertNull;
+import static org.testng.AssertJUnit.assertTrue;
+
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.SequenceDummy;
import java.io.IOException;
-import org.junit.Assert;
-import org.junit.Test;
+import org.testng.annotations.Test;
public class Gff3tests
{
exonerateOutput = "examples/testdata/exonerateoutput.gff",
simpleGff3file = "examples/testdata/simpleGff3.gff";
- @Test
+ @Test(groups ={ "Functional" })
public void testExonerateImport()
{
// exonerate does not tag sequences after features, so we have a more
AlignFrame af = loader.LoadFileWaitTillLoaded(exonerateSeqs,
FormatAdapter.FILE);
- Assert.assertEquals("Unexpected number of DNA protein associations", 0,
+ assertEquals("Unexpected number of DNA protein associations", 0,
af.getViewport().getAlignment().getCodonFrames().size());
af.loadJalviewDataFile(exonerateOutput, FormatAdapter.FILE, null, null);
- Assert.assertNotEquals("Expected at least one DNA protein association",
- 0, af.getViewport().getAlignment().getDataset()
- .getCodonFrames().size());
+ assertTrue("Expected at least one DNA protein association", af
+ .getViewport().getAlignment().getDataset().getCodonFrames()
+ .size() > 0);
}
- @Test
+ @Test(groups ={ "Functional" })
public void simpleGff3FileIdentify()
{
- Assert.assertEquals("Didn't recognise file correctly.",
+ assertEquals("Didn't recognise file correctly.",
IdentifyFile.GFF3File,
new IdentifyFile().Identify(simpleGff3file, FormatAdapter.FILE));
}
- @Test
+ @Test(groups ={ "Functional" })
public void simpleGff3FileClass() throws IOException
{
AlignmentI dataset = new Alignment(new SequenceI[]
FormatAdapter.FILE);
boolean parseResult = ffile.parse(dataset, null, null, false, false);
- Assert.assertTrue("return result should be true", parseResult);
+ assertTrue("return result should be true", parseResult);
checkDatasetfromSimpleGff3(dataset);
}
- @Test
+ @Test(groups ={ "Functional" })
public void simpleGff3FileLoader() throws IOException
{
AlignFrame af = new FileLoader(false).LoadFileWaitTillLoaded(
simpleGff3file, FormatAdapter.FILE);
- Assert.assertTrue(
+ assertTrue(
"Didn't read the alignment into an alignframe from Gff3 File",
af != null);
checkDatasetfromSimpleGff3(af.getViewport().getAlignment().getDataset());
}
- @Test
+ @Test(groups ={ "Functional" })
public void simpleGff3RelaxedIdMatching() throws IOException
{
AlignmentI dataset = new Alignment(new SequenceI[]
FormatAdapter.FILE);
boolean parseResult = ffile.parse(dataset, null, null, false, true);
- Assert.assertTrue("return result (relaxedID matching) should be true",
+ assertTrue("return result (relaxedID matching) should be true",
parseResult);
checkDatasetfromSimpleGff3(dataset);
}
- @Test
+ @Test(groups ={ "Functional" })
public void readGff3File() throws IOException
{
Gff3File gff3reader = new Gff3File(simpleGff3file, FormatAdapter.FILE);
private void checkDatasetfromSimpleGff3(AlignmentI dataset)
{
- Assert.assertEquals("no sequences extracted from GFF3 file", 2,
+ assertEquals("no sequences extracted from GFF3 file", 2,
dataset.getHeight());
SequenceI seq1 = dataset.findName("seq1"), seq2 = dataset
.findName("seq2");
- Assert.assertNotNull(seq1);
- Assert.assertNotNull(seq2);
- Assert.assertFalse(
+ assertNotNull(seq1);
+ assertNotNull(seq2);
+ assertFalse(
"Failed to replace dummy seq1 with real sequence",
seq1 instanceof SequenceDummy
&& ((SequenceDummy) seq1).isDummy());
- Assert.assertFalse(
+ assertFalse(
"Failed to replace dummy seq2 with real sequence",
seq2 instanceof SequenceDummy
&& ((SequenceDummy) seq2).isDummy());
String placeholderseq = new SequenceDummy("foo").getSequenceAsString();
- Assert.assertFalse("dummy replacement buggy for seq1",
+ assertFalse("dummy replacement buggy for seq1",
placeholderseq.equals(seq1.getSequenceAsString()));
- Assert.assertNotEquals("dummy replacement buggy for seq2",
+ assertFalse("dummy replacement buggy for seq2",
placeholderseq.equals(seq2.getSequenceAsString()));
- Assert.assertNotNull("No features added to seq1",
+ assertNotNull("No features added to seq1",
seq1.getSequenceFeatures());// != null);
- Assert.assertEquals("Wrong number of features", 3,
+ assertEquals("Wrong number of features", 3,
seq1.getSequenceFeatures().length);
- Assert.assertNull(seq2.getSequenceFeatures());
- Assert.assertEquals("Wrong number of features", 0, seq2
+ assertNull(seq2.getSequenceFeatures());
+ assertEquals(
+ "Wrong number of features",
+ 0,
+ seq2
.getSequenceFeatures() == null ? 0
: seq2.getSequenceFeatures().length);
- Assert.assertTrue(
+ assertTrue(
"Expected at least one CDNA/Protein mapping for seq1",
dataset.getCodonFrame(seq1) != null
&& dataset.getCodonFrame(seq1).size() > 0);
}
- // @Test
+ // @Test(groups ={ "Functional" })
// public final void testPrintGFFFormatSequenceIArrayMapOfStringObject()
// {
// fail("Not yet implemented");
// }
//
- // @Test
+ // @Test(groups ={ "Functional" })
// public final void testAlignFileBooleanStringString()
// {
// fail("Not yet implemented");
public class HtmlFileTest
{
- @Test(enabled = false)
+ @Test(groups =
+ { "Functional" }, enabled = false)
public void test()
{
fail("Not yet implemented");
--- /dev/null
+package jalview.io;
+
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+public class IdentifyFileTest {
+
+ @Test(groups =
+ { "Functional" }, dataProvider = "identifyFiles")
+ public void Identify(String data, String expectedFileType)
+ {
+ String protocol = AppletFormatAdapter.FILE;
+ IdentifyFile ider = new IdentifyFile();
+ String actualFiletype = ider.Identify(data, protocol);
+ Assert.assertEquals(actualFiletype, expectedFileType,
+ "File identification Failed!");
+ }
+
+ @DataProvider(name = "identifyFiles")
+ public Object[][] IdentifyFileDP()
+ {
+ return new Object[][]
+ {
+ { "examples/example.json", "JSON" },
+ { "examples/plantfdx.fa", "FASTA" },
+ { "examples/dna_interleaved.phy", "PHYLIP" },
+ { "examples/2GIS.pdb", "PDB" },
+ { "examples/rf00031_folded.stk", "STH" },
+ { "examples/testdata/test.rnaml", "RNAML" },
+ { "examples/testdata/test.aln", "CLUSTAL" },
+ { "examples/testdata/test.pfam", "PFAM" },
+ { "examples/testdata/test.msf", "MSF" },
+ { "examples/testdata/test.pir", "PIR" },
+ { "examples/testdata/test.html", "HTML" },
+ { "examples/testdata/test.pileup", "PileUp" },
+ { "examples/testdata/test.blc", "BLC" },
+ { "examples/testdata/simplegff3.gff", "GFF v2 or v3" },
+ { "examples/testdata/test.jvp", "Jalview" },
+ // { "examples/testdata/test.amsa", "AMSA" },
+ // { "examples/test.jnet", "JnetFile" },
+ };
+ }
+
+}
import static org.testng.AssertJUnit.assertNotNull;
+import jalview.api.AlignExportSettingI;
+import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.Annotation;
+import jalview.datamodel.ColumnSelection;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
-import jalview.gui.AlignmentPanel;
import jalview.schemes.ColourSchemeI;
-import jalview.viewmodel.seqfeatures.FeaturesDisplayed;
+import jalview.schemes.ZappoColourScheme;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
+import org.testng.Assert;
import org.testng.AssertJUnit;
-import org.testng.annotations.AfterMethod;
+import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class JSONFileTest
private int TEST_ANOT_HEIGHT = 0;
- private AlignFrame af;
+ private int TEST_CS_HEIGHT = 0;
- AlignmentI alignment;
+ private String TEST_JSON_FILE = "examples/example.json";
- AlignmentPanel alignPanel;
+ private Alignment alignment;
- HashMap<String, SequenceI> testSeqs = new HashMap<String, SequenceI>();
- HashMap<String, AlignmentAnnotation> testAnnots = new HashMap<String, AlignmentAnnotation>();
- HashMap<String, SequenceGroup> testGrps = new HashMap<String, SequenceGroup>();
+ private HashMap<String, SequenceI> expectedSeqs = new HashMap<String, SequenceI>();
- @BeforeMethod
+ private HashMap<String, AlignmentAnnotation> expectedAnnots = new HashMap<String, AlignmentAnnotation>();
+
+ private HashMap<String, SequenceGroup> expectedGrps = new HashMap<String, SequenceGroup>();
+
+ private ColumnSelection expectedColSel = new ColumnSelection();
+
+ private SequenceI[] expectedHiddenSeqs = new SequenceI[1];
+
+ private AlignmentI testAlignment;
+
+ private int passedCount;
+
+ private JSONFile testJsonFile;
+
+ private JSONFile jf;
+
+ @BeforeTest(alwaysRun = true)
public void setup() throws Exception
{
// create and add sequences
seqs[4] = new Sequence("Q7XA98_TRIPR",
"ALYGTAVSTSFMRRQPVPMSV-ATTTTTKAFPSGF", 6, 39);
+ SequenceI hiddenSeq = new Sequence("FER_TOCH",
+ "FILGTMISKSFLFRKPAVTSL-KAISNVGE--ALF", 3, 34);
+ expectedHiddenSeqs[0] = hiddenSeq;
+
// create and add sequence features
SequenceFeature seqFeature2 = new SequenceFeature("feature_x",
"desciption", "status", 6, 15, "Jalview");
seqs[3].addSequenceFeature(seqFeature3);
seqs[4].addSequenceFeature(seqFeature4);
- // add created features to features displayed
- FeaturesDisplayed fDis = new FeaturesDisplayed();
- fDis.setVisible("feature_x");
- // jsonFile.setDisplayedFeatures(fDis);
- // jsonFile.setShowSeqFeatures(true);
for (Sequence seq : seqs)
{
seq.setDatasetSequence(seq);
- testSeqs.put(seq.getName(), seq);
- // jsonFile.seqs.add(seq);
+ expectedSeqs.put(seq.getName(), seq);
}
// create and add sequence groups
scheme, true, true, false, 21, 29);
seqGrp.setShowNonconserved(false);
seqGrp.setDescription(null);
- // jsonFile.seqGroups.add(seqGrp);
- testGrps.put(seqGrp.getName(), seqGrp);
+
+ expectedGrps.put(seqGrp.getName(), seqGrp);
// create and add annotation
Annotation[] annot = new Annotation[35];
AlignmentAnnotation alignAnnot = new AlignmentAnnotation(
"Secondary Structure", "New description", annot);
- // jsonFile.annotations.add(alignAnnot);
- testAnnots.put(alignAnnot.label, alignAnnot);
+ expectedAnnots.put(alignAnnot.label, alignAnnot);
- // Alignment al = new Alignment(seqs);
- TEST_SEQ_HEIGHT = testSeqs.size();
- TEST_GRP_HEIGHT = testGrps.size();
- TEST_ANOT_HEIGHT = testAnnots.size();
- }
+ expectedColSel.hideColumns(32, 33);
+ expectedColSel.hideColumns(34, 34);
- @AfterMethod
- public void tearDown() throws Exception
- {
- }
+ TEST_SEQ_HEIGHT = expectedSeqs.size();
+ TEST_GRP_HEIGHT = expectedGrps.size();
+ TEST_ANOT_HEIGHT = expectedAnnots.size();
+ TEST_CS_HEIGHT = expectedColSel.getHiddenColumns().size();
- @Test
- public void testParse()
- {
- String jsonFile = "examples/example.json";
- AppletFormatAdapter rf = new AppletFormatAdapter();
- AlignmentI al = null;
+ AlignExportSettingI exportSettings = new AlignExportSettingI()
+ {
+ @Override
+ public boolean isExportHiddenSequences()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isExportHiddenColumns()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isExportGroups()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isExportFeatures()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isExportAnnotations()
+ {
+ return true;
+ }
+ };
+
+ AppletFormatAdapter formatAdapter = new AppletFormatAdapter();
try
{
- al = rf.readFile(jsonFile, AppletFormatAdapter.FILE,
- JSONFile.FILE_DESC);
+ alignment = (Alignment) formatAdapter.readFile(TEST_JSON_FILE,
+ AppletFormatAdapter.FILE, JSONFile.FILE_DESC);
+ jf = (JSONFile) formatAdapter.getAlignFile();
+
+ AlignFrame af = new AlignFrame(alignment, jf.getHiddenSequences(),
+ jf.getColumnSelection(), AlignFrame.DEFAULT_WIDTH,
+ AlignFrame.DEFAULT_HEIGHT);
+ af.getViewport().setShowSequenceFeatures(jf.isShowSeqFeatures());
+ af.changeColour(jf.getColourScheme());
+ af.getViewport().setFeaturesDisplayed(jf.getDisplayedFeatures());
+
+
+ formatAdapter = new AppletFormatAdapter(af.alignPanel, exportSettings);
+ String jsonOutput = formatAdapter.formatSequences(JSONFile.FILE_DESC,
+ af.alignPanel.getAlignment(), false);
+
+ formatAdapter = new AppletFormatAdapter();
+ testAlignment = formatAdapter.readFile(jsonOutput,
+ AppletFormatAdapter.PASTE, JSONFile.FILE_DESC);
+ testJsonFile = (JSONFile) formatAdapter.getAlignFile();
+ // System.out.println(jsonOutput);
} catch (IOException e)
{
e.printStackTrace();
}
- assertNotNull("Couldn't read supplied alignment data.", al);
- int passedCount = 0;
- for (SequenceI seq : al.getSequences())
+ }
+
+ @BeforeMethod(alwaysRun = true)
+ public void methodSetup()
+ {
+ passedCount = 0;
+ }
+
+ @AfterTest
+ public void tearDown() throws Exception
+ {
+ testJsonFile = null;
+ alignment = null;
+ expectedSeqs = null;
+ expectedAnnots = null;
+ expectedGrps = null;
+ testAlignment = null;
+ jf = null;
+ }
+
+ @Test(groups ={ "Functional" })
+ public void roundTripTest()
+ {
+ assertNotNull("JSON roundtrip test failed!", testJsonFile);
+ }
+
+ @Test(groups ={ "Functional" })
+ public void testSeqParsed()
+ {
+ assertNotNull("Couldn't read supplied alignment data.", testAlignment);
+ Assert.assertNotNull(testAlignment.getSequences());
+ for (SequenceI seq : testAlignment.getSequences())
{
- SequenceI expectedSeq = testSeqs.get(seq.getName());
- AssertJUnit.assertTrue("Failed Sequence Test for >>> " + seq.getName(),
+ SequenceI expectedSeq = expectedSeqs.get(seq.getName());
+ AssertJUnit.assertTrue(
+ "Failed Sequence Test for >>> " + seq.getName(),
isSeqMatched(expectedSeq, seq));
passedCount++;
}
AssertJUnit.assertEquals("Some Sequences did not pass the test",
TEST_SEQ_HEIGHT, passedCount);
+ }
+
+ @Test(groups ={ "Functional" })
+ public void hiddenColsTest()
+ {
+ ColumnSelection cs = testJsonFile.getColumnSelection();
+ Assert.assertNotNull(cs);
+ Assert.assertNotNull(cs.getHiddenColumns());
+ List<int[]> hiddenCols = cs.getHiddenColumns();
+ Assert.assertEquals(hiddenCols.size(), TEST_CS_HEIGHT);
+ Assert.assertEquals(hiddenCols, expectedColSel.getHiddenColumns(),
+ "Mismatched hidden columns!");
+ }
- passedCount = 0;
- for (SequenceGroup seqGrp : al.getGroups())
+ @Test(groups ={ "Functional" })
+ public void hiddenSeqsTest()
+ {
+ Assert.assertNotNull(testJsonFile.getHiddenSequences(),
+ "Hidden sequence Expected but found Null");
+ Assert.assertEquals(jf.getHiddenSequences().length, 1,
+ "Hidden sequece");
+ }
+
+ @Test(groups ={ "Functional" })
+ public void colorSchemeTest()
+ {
+ Assert.assertNotNull(testJsonFile.getColourScheme(),
+ "Colourscheme is null, parsing failed!");
+ Assert.assertTrue(
+ testJsonFile.getColourScheme() instanceof ZappoColourScheme,
+ "Zappo colour scheme expected!");
+ }
+
+ @Test(groups ={ "Functional" })
+ public void isShowSeqFeaturesSet()
+ {
+ Assert.assertTrue(testJsonFile.isShowSeqFeatures(),
+ "Sequence feature isDisplayed setting expected to be true");
+ }
+
+ @Test(groups ={ "Functional" })
+ public void testGrpParsed()
+ {
+ Assert.assertNotNull(testAlignment.getGroups());
+ for (SequenceGroup seqGrp : testAlignment.getGroups())
{
- SequenceGroup expectedGrp = testGrps.get(seqGrp.getName());
+ SequenceGroup expectedGrp = expectedGrps.get(seqGrp.getName());
AssertJUnit.assertTrue(
"Failed SequenceGroup Test for >>> " + seqGrp.getName(),
isGroupMatched(expectedGrp, seqGrp));
}
AssertJUnit.assertEquals("Some SequenceGroups did not pass the test",
TEST_GRP_HEIGHT, passedCount);
+ }
- passedCount = 0;
- for (AlignmentAnnotation annot : al.getAlignmentAnnotation())
+ @Test(groups ={ "Functional" })
+ public void testAnnotationParsed()
+ {
+ Assert.assertNotNull(testAlignment.getAlignmentAnnotation());
+ for (AlignmentAnnotation annot : testAlignment.getAlignmentAnnotation())
{
- AlignmentAnnotation expectedAnnot = testAnnots.get(annot.label);
+ AlignmentAnnotation expectedAnnot = expectedAnnots.get(annot.label);
AssertJUnit.assertTrue("Failed AlignmentAnnotation Test for >>> "
+ annot.label, isAnnotationMatched(expectedAnnot, annot));
passedCount++;
}
AssertJUnit.assertEquals("Some Sequences did not pass the test",
TEST_ANOT_HEIGHT, passedCount);
-
- // af = new AlignFrame(al, 700, 500);
- // AlignViewport viewport = af.getViewport();
- // alignPanel = new AlignmentPanel(af, viewport);
}
public boolean isAnnotationMatched(AlignmentAnnotation eAnnot,
/**
* @throws java.lang.Exception
*/
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
jalview.bin.Jalview.main(new String[]
return numdsann;
}
- @Test
+ @Test(groups ={ "Functional" })
public void testRNAStructureRecovery() throws Exception
{
String inFile = "examples/RF00031_folded.stk";
af.getViewport().getGlobalColourScheme() instanceof jalview.schemes.RNAHelicesColour);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testTCoffeeScores() throws Exception
{
String inFile = "examples/uniref50.fa", inAnnot = "examples/uniref50.score_ascii";
.println("T-Coffee score shading successfully recovered from project.");
}
- @Test
+ @Test(groups ={ "Functional" })
public void testColourByAnnotScores() throws Exception
{
String inFile = "examples/uniref50.fa", inAnnot = "examples/testdata/uniref50_iupred.jva";
.println("Per sequence (Group) colourscheme successfully applied and recovered.");
}
- @Test
+ @Test(groups ={ "Functional" })
public void gatherViewsHere() throws Exception
{
int origCount = Desktop.getAlignFrames() == null ? 0 : Desktop
}
- @Test
+ @Test(groups ={ "Functional" })
public void viewRefPdbAnnotation() throws Exception
{
Cache.applicationProperties.setProperty("STRUCT_FROM_PDB",
}
- @Test
+ @Test(groups ={ "Functional" })
public void testCopyViewSettings() throws Exception
{
AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
/**
* @throws java.lang.Exception
*/
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
}
- @Test
+ @Test(groups ={ "Functional" })
public void testTreeIO() throws Exception
{
String stage = "Init", treename = " '" + name + "' :";
*
* @throws Exception
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSequentialDataExtraction() throws Exception
{
testDataExtraction(sequentialFile);
*
* @throws Exception
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testInterleavedDataExtraction() throws Exception
{
testDataExtraction(interleavedFile);
*
* @throws Exception
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSequentialIO() throws Exception
{
testIO(sequentialFile);
*
* @throws Exception
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testInterleavedIO() throws Exception
{
testIO(interleavedFile);
public class RNAMLfileTest
{
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
}
{
}
- @Test
+ @Test(groups ={ "Functional" })
public void testRnamlToStockholmIO()
{
StockholmFileTest.testFileIOwithFormat(new File(
static String PfamFile = "examples/PF00111_seed.stk",
RfamFile = "examples/RF00031_folded.stk";
- @Test
+ @Test(groups ={ "Functional" })
public void pfamFileIO() throws Exception
{
testFileIOwithFormat(new File(PfamFile), "STH", -1, 0);
}
- @Test
+ @Test(groups ={ "Functional" })
public void pfamFileDataExtraction() throws Exception
{
AppletFormatAdapter af = new AppletFormatAdapter();
numpdb > 0);
}
- @Test
+ @Test(groups ={ "Functional" })
public void rfamFileIO() throws Exception
{
testFileIOwithFormat(new File(RfamFile), "STH", 2, 1);
final static File ALIGN_FILE = new File(
"test/jalview/io/tcoffee.fasta_aln");
- @Test
+ @Test(groups ={ "Functional" })
public void testReadHeader() throws IOException
{
AssertJUnit.assertEquals(90, header.getScoreFor("cons"));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testWrongFile()
{
try
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void testHeightAndWidth() throws IOException
{
TCoffeeScoreFile result = new TCoffeeScoreFile(SCORE_FILE.getPath(),
AssertJUnit.assertEquals(83, result.getWidth());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testReadBlock() throws IOException
{
block.getConsensus());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testParse() throws IOException
{
parser.getScoresFor("cons"));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetAsList() throws IOException
{
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetAsArray() throws IOException
{
}
- @Test
+ @Test(groups ={ "Functional" })
public void testHeightAndWidthWithResidueNumbers() throws Exception
{
String file = "test/jalview/io/tcoffee.score_ascii_with_residue_numbers";
public class DnaCodonTests
{
- @Test
+ @Test(groups ={ "Functional" })
public void testAmbiguityCodeGeneration()
{
assertTrue(ResidueProperties.ambiguityCodes.size() > 0);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testAmbiguityCodon()
{
for (String ac : ResidueProperties.ambiguityCodes.keySet())
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void regenerateCodonTable()
{
for (Map.Entry<String, String> codon : ResidueProperties.codonHash2
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void checkOldCodonagainstNewCodonTable()
{
// note - this test will be removed once the old codon table (including
/**
* Test 'standard' codon translations (no ambiguity codes)
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testCodonTranslate()
{
// standard translation table order column 1/2/3/4
* Test a sample of codon translations involving ambiguity codes. Should
* return a protein value where the ambiguity does not affect the translation.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testCodonTranslate_ambiguityCodes()
{
// Y is C or T
assertNull(ResidueProperties.codonTranslate("WSK"));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetResidues_nucleotide()
{
/*
assertEquals("[A, C, G, I, N, R, T, U, X, Y]", residues.toString());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetResidues_peptide()
{
/*
public class ScoreMatrixPrinter
{
- @Test
+ @Test(groups ={ "Functional" })
public void printAllMatrices()
{
for (Map.Entry<String, ScoreModelI> sm : ResidueProperties.scoreMatrices
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void printHTMLMatrices()
{
for (Map.Entry<String, ScoreModelI> _sm : ResidueProperties.scoreMatrices
* 115 in PDB Res Numbering secondary structure numbers in jmol seem to be in
* msd numbering, not pdb res numbering.
*/
- @Test(enabled = false)
+ @Test(groups =
+ { "Functional" }, enabled = false)
public void pdbEntryPositionMap() throws Exception
{
Assert.fail("This test intentionally left to fail");
}
}
- @Test(enabled = false)
+ @Test(groups =
+ { "Functional" }, enabled = false)
public void testPDBentryMapping() throws Exception
{
Assert.fail("This test intentionally left to fail");
* transform
*
*/
- @Test
+ @Test(groups ={ "Functional" })
public void mapFer1From3W5V() throws Exception
{
AlignFrame seqf = new FileLoader(false)
* compare reference annotation for imported pdb sequence to identical
* seuqence with transferred annotation from mapped pdb file
*/
- @Test
+ @Test(groups ={ "Functional" })
public void compareTransferredToRefPDBAnnot() throws Exception
{
AlignFrame ref = new FileLoader(false)
{
private StructureSelectionManager ssm;
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp()
{
ssm = new StructureSelectionManager();
}
- @Test
+ @Test(groups ={ "Functional" })
public void testAddMapping()
{
AlignedCodonFrame acf1 = new AlignedCodonFrame();
assertEquals(1, ssm.seqMappingRefCounts.get(acf2).intValue());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testAddMappings()
{
AlignedCodonFrame acf1 = new AlignedCodonFrame();
assertEquals(1, ssm.seqMappingRefCounts.get(acf3).intValue());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testRemoveMapping()
{
AlignedCodonFrame acf1 = new AlignedCodonFrame();
assertEquals(0, ssm.seqMappingRefCounts.size());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testRemoveMappings()
{
AlignedCodonFrame acf1 = new AlignedCodonFrame();
/**
* Set up test conditions with three aligned sequences,
*/
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp()
{
SequenceI seq1 = new Sequence("1YCS", "-VPSQK");
* Verify that the method determines that columns 2, 5 and 6 of the aligment
* are alignable in structure
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testFindSuperposableResidues()
{
SuperposeData[] structs = new SuperposeData[al.getHeight()];
assertTrue(matched[5]);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testFindSuperposableResidues_hiddenColumn()
{
SuperposeData[] structs = new SuperposeData[al.getHeight()];
Color darkColour = new Color(11, 30, 50); // dark blue
- @Test
+ @Test(groups ={ "Functional" })
public void testDarkerThan()
{
assertEquals("Wrong darker shade", new Color(32, 69, 37),
assertNull(ColorUtils.darkerThan(null));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testBrighterThan()
{
assertEquals("Wrong brighter shade", new Color(255, 255, 255), // white
/**
* @see http://www.rtapo.com/notes/named_colors.html
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testToTkCode()
{
assertEquals("#fffafa", ColorUtils.toTkCode(new Color(255, 250, 250))); // snow
public class ComparisonTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testIsGap()
{
assertTrue(Comparison.isGap('-'));
* Test for isNucleotide is that sequences in a dataset are more than 85%
* AGCTU. Test is not case-sensitive and ignores gaps.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testIsNucleotide() {
SequenceI seq = new Sequence("eightypercent", "agctuAGCPV");
assertFalse(Comparison.isNucleotide(new SequenceI[]
/**
* Test percentage identity calculation for two sequences.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testPID_matchGaps()
{
String seq1 = "ABCDEF";
* Test the method that selects DBRefEntry items whose source is in a supplied
* list
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSelectRefs()
{
assertNull(DBRefUtils.selectRefs(null, null));
* Test the method that converts (currently three) database names to a
* canonical name (not case-sensitive)
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetCanonicalName()
{
assertNull(DBRefUtils.getCanonicalName(null));
DBRefUtils.getCanonicalName("UNIPROTKB/SWISS-CHEESE"));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testIsDasCoordinateSystem()
{
assertFalse(DBRefUtils.isDasCoordinateSystem(null, null));
/**
* Test 'parsing' a DBRef - non PDB case
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testParseToDbRef()
{
SequenceI seq = new Sequence("Seq1", "ABCD");
/**
* Test 'parsing' a DBRef - Stockholm PDB format
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testParseToDbRef_PDB()
{
SequenceI seq = new Sequence("Seq1", "ABCD");
* Test the method that searches for matches references - case when we are
* matching a reference with no mappings
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSearchRefs_noMapping()
{
DBRefEntry target = new DBRefEntry("EMBL", "2", "A1234");
* Test the method that searches for matches references - case when we are
* matching a reference with a mapping
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSearchRefs_withMapping()
{
DBRefEntry target = new DBRefEntry("EMBL", "2", "A1234");
public class MapListTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testSomething()
{
MapList ml = new MapList(new int[]
* Tests for method that locates ranges in the 'from' map for given range in
* the 'to' map.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testLocateInFrom_noIntrons()
{
/*
* Tests for method that locates ranges in the 'from' map for given range in
* the 'to' map.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testLocateInFrom_withIntrons()
{
/*
* Tests for method that locates ranges in the 'to' map for given range in the
* 'from' map.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testLocateInTo_noIntrons()
{
/*
* Tests for method that locates ranges in the 'to' map for given range in the
* 'from' map.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testLocateInTo_withIntrons()
{
/*
/**
* Test equals method.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testEquals()
{
int[] codons = new int[]
/**
* Test for the method that flattens a list of ranges into a single array.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetRanges()
{
List<int[]> ranges = new ArrayList<int[]>();
/**
* Check state after construction
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testConstructor()
{
int[] codons =
/**
* Test the method that creates an inverse mapping
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetInverse()
{
int[] codons =
prettyPrint(ml2.getFromRanges()));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testToString()
{
MapList ml = new MapList(new int[]
/**
* Simple test of mapping with no intron involved.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testBuildSearchResults()
{
final Sequence seq1 = new Sequence("Seq1", "C-G-TA-GC");
/**
* Simple test of mapping with introns involved.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testBuildSearchResults_withIntron()
{
final Sequence seq1 = new Sequence("Seq1", "C-G-TAGA-GCAGCTT");
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMapSequenceGroup_sequences() throws IOException
{
/*
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMapColumnSelection_proteinToDna() throws IOException
{
setupMappedAlignments();
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMapColumnSelection_dnaToProtein() throws IOException
{
setupMappedAlignments();
assertEquals("[0, 1, 3]", cs.getSelected().toString());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testMapColumnSelection_null() throws IOException
{
setupMappedAlignments();
* Tests for the method that converts a series of [start, end] ranges to
* single positions
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testFlattenRanges()
{
assertEquals("[1, 2, 3, 4]",
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMapSequenceGroup_columns() throws IOException
{
/*
*
* @throws IOException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testMapSequenceGroup_region() throws IOException
{
/*
assertEquals(4, mappedGroup.getEndRes());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testFindMappingsForSequence()
{
SequenceI seq1 = new Sequence("Seq1", "ABC");
private final Object[] sortedThings = new Object[]
{ c4, c2, c1, c3 };
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp()
{
things = new Object[]
{ c1, c2, c3, c4 };
}
- @Test
+ @Test(groups ={ "Functional" })
public void testSort_byIntValues()
{
int[] values = new int[]
assertTrue(Arrays.equals(sortedThings, things));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testSort_byFloatValues()
{
float[] values = new float[]
assertTrue(Arrays.equals(sortedThings, things));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testSort_byDoubleValues()
{
double[] values = new double[]
/**
* Sort by String is descending order, case-sensitive
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSort_byStringValues()
{
String[] values = new String[]
/**
* Test whether sort is stable i.e. equal values retain their mutual ordering.
*/
- @Test(enabled = false)
+ @Test(groups =
+ { "Functional" }, enabled = false)
public void testSort_withDuplicates()
{
int[] values = new int[]
* Test that exercises sort with a mostly zero-valued sortby array. May be of
* interest to check the sort algorithm is efficient.
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testSort_MostlyZeroValues()
{
char[] residues = new char[64];
public class ShiftListTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testParseMap()
{
assertNull(ShiftList.parseMap(null));
public class StringUtilsTest
{
- @Test
+ @Test(groups ={ "Functional" })
public void testInsertCharAt()
{
char[] c1 = "ABC".toCharArray();
StringUtils.insertCharAt(c1, 7, 2, 'w')));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testDeleteChars()
{
char[] c1 = "ABC".toCharArray();
assertTrue(Arrays.equals(c1, StringUtils.deleteChars(c1, 3, 4)));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testGetLastToken()
{
assertNull(StringUtils.getLastToken(null, null));
"file://localhost:8080/data/examples/file1.dat", "/"));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testSeparatorListToArray()
{
String[] result = StringUtils.separatorListToArray(
.separatorListToArray("abc='|'d|ef|g", "|")));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testArrayToSeparatorList()
{
assertEquals("*", StringUtils.arrayToSeparatorList(null, "*"));
* @throws IllegalAccessException
* @throws IllegalArgumentException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testCopyConstructor() throws IllegalArgumentException,
IllegalAccessException
{
* @throws IllegalAccessException
* @throws IllegalArgumentException
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testEquals() throws IllegalArgumentException,
IllegalAccessException
{
SequenceFetcher sf;
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp() throws Exception
{
// ensure 'add annotation from structure' is selected
sf = new SequenceFetcher(false);
}
- @Test(enabled = false)
+ @Test(groups =
+ { "Network" }, enabled = true)
public void testRnaSeqRetrieve() throws Exception
{
List<DbSourceProxy> sps = sf.getSourceProxy("PDB");
public class PDBRestClientTest
{
- @BeforeMethod
+ @BeforeMethod(alwaysRun = true)
public void setUp() throws Exception
{
}
{
}
- @Test
+ @Test(groups =
+ { "External", "Network" })
public void executeRequestTest()
{
List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
assertTrue(response.getSearchSummary().size() > 99);
}
- @Test
+ @Test(groups ={ "Functional" })
public void getPDBDocFieldsAsCommaDelimitedStringTest()
{
List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
assertEquals("", expectedResult, actualResult);
}
- @Test
+ @Test(groups =
+ { "External, Network" })
public void parsePDBJsonExceptionStringTest()
{
List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
assertEquals(expectedErrorMsg, parsedErrorResponse);
}
- @Test(expectedExceptions = Exception.class)
+ @Test(groups =
+ { "External", "Network" }, expectedExceptions = Exception.class)
public void testForExpectedRuntimeException() throws Exception
{
List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
new PDBRestClient().executeRequest(request);
}
- @Test
+ @Test(groups =
+ { "External" })
public void parsePDBJsonResponseTest()
{
List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
assertTrue(response.getSearchSummary().size() == 14);
}
- @Test
+ @Test(groups ={ "Functional" })
public void getPDBIdColumIndexTest()
{
List<PDBDocField> wantedFields = new ArrayList<PDBDocField>();
assertEquals(4, PDBRestClient.getPDBIdColumIndex(wantedFields, false));
}
- @Test
+ @Test(groups =
+ { "External" })
public void externalServiceIntegrationTest()
{
ClientConfig clientConfig = new DefaultClientConfig();
/**
* Test the method that unmarshals XML to a Uniprot model
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetUniprotEntries()
{
Uniprot u = new Uniprot();
/**
* Test the method that formats the sequence name in Fasta style
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testConstructSequenceFastaHeader()
{
Uniprot u = new Uniprot();
public static Jws2Discoverer disc = null;
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
Cache.initLogger();
* rather than hang
*/
- @Test(enabled = false)
+ @Test(groups =
+ { "Interactive" }, enabled = true)
public void testJws2Gui()
{
Iterator<String> presetEnum = presetTests.iterator();
public static jalview.gui.AlignFrame af = null;
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
/**
* test for patches to JAL-1294
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testDisorderAnnotExport()
{
disorderClient = new AADisorderClient(iupreds.get(0), af, null, null);
public class JalviewJabawsTestUtils
{
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
}
{ "http://localhost:8080/jabaws",
"http://www.compbio.dundee.ac.uk/jabaws" };
- @Test(enabled = false)
+ @Test(groups =
+ { "Functional" }, enabled = false)
public void testAnnotExport()
{
fail("Not yet implemented");
public static jalview.gui.AlignFrame af = null;
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
for (Jws2Instance svc : disc.getServices())
{
-
if (svc.getServiceTypeURI().toLowerCase().contains("jpred"))
{
jpredws = svc;
}
System.out.println("State of jpredws: " + jpredws);
-
- if (jpredws == null)
- {
- Assert.fail("jpredws is null");
- }
-
+ Assert.assertNotNull(jpredws, "jpredws is null!");
jalview.io.FileLoader fl = new jalview.io.FileLoader(false);
-
af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.FormatAdapter.FILE);
-
assertNotNull("Couldn't load test data ('" + testseqs + "')", af);
-
}
@AfterClass
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void testJPredStructOneSeqOnly()
{
af.selectAllSequenceMenuItem_actionPerformed(null);
}
- @Test
+ @Test(groups ={ "Functional" })
public void testJPredStructExport()
{
+ "\nCouldn't complete Annotation file roundtrip input/output/input test.");
}
- @Test
+ @Test(groups ={ "Functional" })
public void testJpredwsSettingsRecovery()
{
Assert.fail("not implemnented");
* @throws Exception
*/
@SuppressWarnings("rawtypes")
- @Test
+ @Test(groups =
+ { "Network" })
public void msaTest() throws Exception {
String url;
RegistryWS registry = Jws2Client
public static jalview.gui.AlignFrame af = null;
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void testRNAAliFoldValidStructure()
{
}
}
- @Test
+ @Test(groups ={ "Functional" })
public void testRNAStructExport()
{
+ "\nCouldn't complete Annotation file roundtrip input/output/input test.");
}
- @Test
+ @Test(groups ={ "Functional" })
public void testRnaalifoldSettingsRecovery()
{
List<compbio.metadata.Argument> opts = new ArrayList<compbio.metadata.Argument>();
private static Jws2Discoverer disc = null;
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
serviceTests.add("AAConWS".toLowerCase());
disc = JalviewJabawsTestUtils.getJabawsDiscoverer();
}
- @Test
+ @Test(groups ={ "Functional" })
public void testWriteParameterSet() throws WrongParameterException
{
for (Jws2Instance service : disc.getServices())
|| serviceTests.contains(service.serviceType.toLowerCase());
}
- @Test
+ @Test(groups ={ "Functional" })
public void testCopyOption()
{
for (Jws2Instance service : disc.getServices())
/**
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testCopyParameter()
{
for (Jws2Instance service : disc.getServices())
/**
* Refactored 'as is' from main method
*/
- @Test
+ @Test(groups ={ "Functional" })
public void testGetRestClient()
{
/*
public class ShmmrRSBSService
{
- @Test
+ @Test(groups ={ "Functional" })
public void testShmmrService()
{
RestClient.makeShmmrRestClient().service));
}
- @Test
+ @Test(groups ={ "Functional" })
public void testShmmrServiceDataprep() throws Exception
{
RestClient _rc = RestClient.makeShmmrRestClient();
public class DasSequenceFetcher
{
- @Test
+ @Test(groups ={ "Functional" })
public void testDasRegistryContact()
{
jalview.bin.Cache.getDasSourceRegistry().refreshSources();
/**
* @throws java.lang.Exception
*/
- @BeforeClass
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
jalview.bin.Cache.initLogger();
{
}
- @Test
+ @Test(groups ={ "Functional" })
public void testStandardProtDbs()
{
String[] defdb = DBRefSource.PROTEINDBS;
uniprot != null && i < 2);
}
- @Test
+ @Test(groups =
+ { "External" })
public void testEmblUniprotProductRecovery() throws Exception
{
String retrievalId = "CAA23748"; // "V00488";
verifyProteinNucleotideXref(retrievalId, embl);
}
- @Test
+ @Test(groups =
+ { "External" })
public void testEmblCDSUniprotProductRecovery() throws Exception
{
String retrievalId = "AAH29712";
<string><![CDATA[664]]></string>
</property>
<property name="sourceName">
- <string><![CDATA[Jmol-12.2.4.jar]]></string>
+ <string><![CDATA[Jmol-14.2.14_2015.06.11.jar]]></string>
</property>
<property name="overrideUnixPermissions">
<boolean>false</boolean>
<boolean>true</boolean>
</property>
<property name="destinationName">
- <string><![CDATA[Jmol-12.2.4.jar]]></string>
+ <string><![CDATA[Jmol-14.2.14_2015.06.11.jar]]></string>
</property>
<property name="fileSize">
<long>4938027</long>
<string><![CDATA[664]]></string>
</property>
<property name="sourceName">
- <string><![CDATA[VARNAv3-91.jar]]></string>
+ <string><![CDATA[VARNAv3-93.jar]]></string>
</property>
<property name="overrideUnixPermissions">
<boolean>false</boolean>
<boolean>true</boolean>
</property>
<property name="destinationName">
- <string><![CDATA[VARNAv3-91.jar]]></string>
+ <string><![CDATA[VARNAv3-93.jar]]></string>
</property>
<property name="fileSize">
<long>663408</long>
--- /dev/null
+//
+//========================================================================
+//Copyright (c) 1995-2015 Mort Bay Consulting Pty. Ltd.
+//------------------------------------------------------------------------
+//All rights reserved. This program and the accompanying materials
+//are made available under the terms of the Eclipse Public License v1.0
+//and Apache License v2.0 which accompanies this distribution.
+//
+// The Eclipse Public License is available at
+// http://www.eclipse.org/legal/epl-v10.html
+//
+// The Apache License v2.0 is available at
+// http://www.opensource.org/licenses/apache2.0.php
+//
+//You may elect to redistribute this code under either of these licenses.
+//========================================================================
+//
+
+
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
+
+public class JettyExamplesDir
+{
+
+ /**
+ * Simple Jetty FileServer. This is a simple example of Jetty configured as a
+ * FileServer.
+ */
+
+ public static void main(String[] args) throws Exception
+ {
+ // Create a basic Jetty server object that will listen on port 8080. Note
+ // that if you set this to port 0
+ // then a randomly available port will be assigned that you can either look
+ // in the logs for the port,
+ // or programmatically obtain it for use in test cases.
+ Server server = new Server(8080);
+
+ // Create the ResourceHandler. It is the object that will actually handle
+ // the request for a given file. It is
+ // a Jetty Handler object so it is suitable for chaining with other handlers
+ // as you will see in other examples.
+ ResourceHandler resource_handler = new ResourceHandler();
+ // Configure the ResourceHandler. Setting the resource base indicates where
+ // the files should be served out of.
+ // In this example it is the current directory but it can be configured to
+ // anything that the jvm has access to.
+ resource_handler.setDirectoriesListed(true);
+ resource_handler.setWelcomeFiles(new String[]
+ { "applets.html" });
+ resource_handler.setResourceBase(".");
+
+ // Add the ResourceHandler to the server.
+ // GzipHandler gzip = new GzipHandler();
+ // server.setHandler(gzip);
+ HandlerList handlers = new HandlerList();
+ handlers.setHandlers(new Handler[]
+ { resource_handler, new DefaultHandler() });
+ server.setHandler(handlers);
+
+ // Start things up! By using the server.join() the server thread will join
+ // with the current thread.
+ // See
+ // "http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#join()"
+ // for more details.
+ server.start();
+ server.join();
+}
+}
\ No newline at end of file