Changeset 224156 in webkit


Ignore:
Timestamp:
Oct 28, 2017 8:02:28 PM (6 years ago)
Author:
commit-queue@webkit.org
Message:

Rebase WPT tests up to a1c0107
https://bugs.webkit.org/show_bug.cgi?id=178589

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-28
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • resources/TestRepositories:
  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests: Updated.

LayoutTests:

  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-default-feature-policy.sub-expected.txt: Added.
Location:
trunk/LayoutTests
Files:
287 added
26 deleted
74 edited
1 copied
4 moved

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r224155 r224156  
     12017-10-28  Youenn Fablet  <youenn@apple.com>
     2
     3        Rebase WPT tests up to a1c0107
     4        https://bugs.webkit.org/show_bug.cgi?id=178589
     5
     6        Reviewed by Alex Christensen.
     7
     8        * TestExpectations:
     9        * platform/mac-wk1/TestExpectations:
     10        * platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-default-feature-policy.sub-expected.txt: Added.
     11
    1122017-10-28  Myles C. Maxfield  <mmaxfield@apple.com>
    213
  • trunk/LayoutTests/TestExpectations

    r224133 r224156  
    454454webkit.org/b/149891 imported/w3c/web-platform-tests/css/css-grid-1/grid-layout-properties.html [ Failure ]
    455455webkit.org/b/169271 imported/w3c/web-platform-tests/css/css-grid-1/grid-items/grid-items-sizing-alignment-001.html [ ImageOnlyFailure ]
     456imported/w3c/web-platform-tests/css/css-grid-1/abspos/absolute-positioning-changing-containing-block-001.html [ ImageOnlyFailure ]
     457imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-item-absolute-positioning-dynamic-001.html [ ImageOnlyFailure ]
    456458
    457459# Flaky tests at import time
     
    471473webkit.org/b/64861 imported/w3c/web-platform-tests/css/selectors4/selectors-dir-selector-ltr-001.html [ ImageOnlyFailure ]
    472474webkit.org/b/64861 imported/w3c/web-platform-tests/css/selectors4/selectors-dir-selector-rtl-001.html [ ImageOnlyFailure ]
     475imported/w3c/web-platform-tests/css/selectors4/selector-placeholder-shown-type-change-001.html [ ImageOnlyFailure ]
     476imported/w3c/web-platform-tests/css/selectors4/selector-placeholder-shown-type-change-002.html [ ImageOnlyFailure ]
     477imported/w3c/web-platform-tests/css/selectors4/selector-placeholder-shown-type-change-003.html [ ImageOnlyFailure ]
     478imported/w3c/web-platform-tests/css/selectors4/selector-read-write-type-change-002.html [ ImageOnlyFailure ]
     479imported/w3c/web-platform-tests/css/selectors4/selector-required-type-change-002.html [ ImageOnlyFailure ]
    473480
    474481# nth-child tests takes long time and Debug build sometimes timeouts because there are many test cases.
     
    549556webkit.org/b/178241 imported/w3c/web-platform-tests/fetch/api/basic/integrity.html [ Pass Failure ]
    550557webkit.org/b/178241 imported/w3c/web-platform-tests/fetch/api/basic/integrity-worker.html [ Pass Failure ]
     558imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-6.html [ Pass Failure ]
    551559
    552560imported/w3c/web-platform-tests/XMLHttpRequest/send-conditional-cors.htm [ Failure ]
     
    938946webkit.org/b/171930 imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-idl.html [ Failure ]
    939947webkit.org/b/172f21 imported/w3c/web-platform-tests/webrtc/getstats.html [ Failure ]
     948imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-ontrack.https.html [ Skip ]
    940949
    941950fast/mediastream/RTCPeerConnection-closed-state.html [ Skip ]
     
    982991
    983992imported/w3c/web-platform-tests/html/browsers/history/the-history-interface/history_go_zero.html [ Pass Failure ]
     993imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/window-name-after-cross-origin-main-frame-navigation.sub.html [ Timeout ]
    984994
    985995# FIXME: The following failures need individual bugs.
     
    13341344# Ignore MIME type refused console messages when comparing nosniff tests results as their ordering is non-deterministic.
    13351345imported/w3c/web-platform-tests/fetch/nosniff [ DumpJSConsoleLogInStdErr ]
     1346imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/sandbox-ascii-case-insensitive.html [ DumpJSConsoleLogInStdErr ]
    13361347
    13371348########################################
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r224152 r224156  
     12017-10-28  Youenn Fablet  <youenn@apple.com>
     2
     3        Rebase WPT tests up to a1c0107
     4        https://bugs.webkit.org/show_bug.cgi?id=178589
     5
     6        Reviewed by Alex Christensen.
     7
     8        * resources/TestRepositories:
     9        * resources/import-expectations.json:
     10        * resources/resource-files.json:
     11        * web-platform-tests: Updated.
     12
    1132017-10-28  Chris Dumez  <cdumez@apple.com>
    214
  • trunk/LayoutTests/imported/w3c/resources/TestRepositories

    r223327 r224156  
    33        "name": "web-platform-tests",
    44        "url": "https://github.com/w3c/web-platform-tests.git",
    5         "revision": "c1716b039411090428e7073158b1aea081dafe71",
     5        "revision": "a1c0107",
    66        "paths_to_skip": [
    77            "conformance-checkers",
  • trunk/LayoutTests/imported/w3c/resources/import-expectations.json

    r223686 r224156  
    6565    "web-platform-tests/css-paint-api": "skip",
    6666    "web-platform-tests/css-scoping": "skip",
     67    "web-platform-tests/css-scroll-anchoring": "skip",
    6768    "web-platform-tests/css-timing": "skip",
    6869    "web-platform-tests/css-typed-om": "skip",
     
    137138    "web-platform-tests/encrypted-media": "import",
    138139    "web-platform-tests/encrypted-media/Google": "skip",
     140    "web-platform-tests/entries-api": "skip",
    139141    "web-platform-tests/eventsource": "import",
    140142    "web-platform-tests/ext-xhtml-pubid": "skip",
     
    217219    "web-platform-tests/html/semantics/links/following-hyperlinks": "skip",
    218220    "web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements": "skip",
     221    "web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing": "skip",
    219222    "web-platform-tests/html/semantics/scripting-1/the-script-element/module": "skip",
    220223    "web-platform-tests/html/semantics/scripting-1/the-script-element/script-for-event.xhtml": "skip",
     
    278281    "web-platform-tests/referrer-policy": "skip",
    279282    "web-platform-tests/remote-playback": "skip",
     283    "web-platform-tests/requestidlecallback": "skip",
     284    "web-platform-tests/resize-observer": "skip",
    280285    "web-platform-tests/resource-timing": "import",
    281286    "web-platform-tests/resources": "import",
     
    291296    "web-platform-tests/shadow-dom": "import",
    292297    "web-platform-tests/shadow-dom/untriaged": "skip",
     298    "web-platform-tests/speech-api": "skip",
    293299    "web-platform-tests/staticrange": "skip",
    294300    "web-platform-tests/storage": "skip",
     
    309315    "web-platform-tests/tools/wptserve": "import",
    310316    "web-platform-tests/touch-events": "import",
     317    "web-platform-tests/trusted-types": "skip",
    311318    "web-platform-tests/typedarrays": "skip",
    312319    "web-platform-tests/uievents": "skip",
     
    331338    "web-platform-tests/webvtt": "skip",
    332339    "web-platform-tests/workers": "skip",
     340    "web-platform-tests/worklets": "skip",
    333341    "web-platform-tests/x-frame-options": "skip"
    334342}
  • trunk/LayoutTests/imported/w3c/resources/resource-files.json

    r223327 r224156  
    6969        "web-platform-tests/css/css-ui-3/cursor-auto-004.html",
    7070        "web-platform-tests/css/css-ui-3/cursor-auto-005.html",
     71        "web-platform-tests/css/css-ui-3/cursor-auto-006.html",
     72        "web-platform-tests/css/css-ui-3/cursor-auto-007.html",
    7173        "web-platform-tests/css/css-ui-3/cursor-border-area.html",
    7274        "web-platform-tests/css/css-ui-3/cursor-box-004.html",
  • trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_createIndex7-event_order.htm

    r206999 r224156  
    44<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
    55<meta rel=help href=http://odinho.html5.org/IndexedDB/spec/Overview.html#dfn-steps-for-aborting-a-transaction>
    6 <meta rel=assert title="Unless error was set to null, create a DOMError object and set its name to error. Set transaction's error property to this newly created DOMError.">
     6<meta rel=assert title="Unless error was set to null, create a DOMException object and set its name to error. Set transaction's error property to this newly created DOMException.">
    77<meta rel=assert title="If the transaction's request list contain any requests whose done flag is still false, abort the steps for asynchronously executing a request for each such request and queue a task to perform the following steps:">
    8 <meta rel=assert title="set the request's error attribute to a DOMError with a type of AbortError.">
     8<meta rel=assert title="set the request's error attribute to a DOMException with a type of AbortError.">
    99<meta rel=assert title="Dispatch an event at request. The event must use the Event interface and have its type set to 'error'. The event bubbles and is cancelable. The propagation path for the event is transaction's connection, then transaction and finally the request. There is no default action for the event.">
    1010<meta rel=assert title="Queue up an operation to dispatch an event at transaction. The event must use the Event interface and have its type set to 'abort'. The event does bubble but is not cancelable. The propagation path for the event is transaction's connection and then transaction.">
  • trunk/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/w3c-import.log

    r222307 r224156  
    2828/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception.html
    2929/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/fire-upgradeneeded-event-exception.html
     30/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/globalscope-indexedDB-SameObject.html
    3031/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/historical.html
    3132/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idb-binary-key-detached.htm
     
    5051/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-key.htm
    5152/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-primarykey.htm
     53/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-request-source.html
    5254/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-reused.htm
    5355/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbcursor-source.htm
     
    171173/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex-multientry-big.htm
    172174/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex-multientry.htm
     175/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex-objectStore-SameObject.html
    173176/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex-query-exception-order.html
    174177/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex-rename-abort.html
    175178/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex-rename-errors.html
    176179/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex-rename.html
     180/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex-request-source.html
    177181/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_count.htm
    178182/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_count2.htm
     
    219223/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-rename-errors.html
    220224/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-rename-store.html
     225/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-request-source.html
     226/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore-transaction-SameObject.html
    221227/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_add.htm
    222228/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_add10.htm
     
    300306/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbrequest_error.html
    301307/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbrequest_result.html
     308/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbtransaction-db-SameObject.html
    302309/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbtransaction-objectStore-exception-order.html
    303310/LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbtransaction-objectStore-finished.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-done-expected.txt

    r191546 r224156  
    11
    2 PASS XMLHttpRequest: abort() during DONE
     2PASS XMLHttpRequest: abort() during DONE (sync)
     3PASS XMLHttpRequest: abort() during DONE (sync aborted in readystatechange)
     4PASS XMLHttpRequest: abort() during DONE (async)
    35
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-done.htm

    r212202 r224156  
    1010    <div id="log"></div>
    1111    <script>
    12       var test = async_test()
    13       test.step(function() {
     12      async_test(test => {
    1413        var client = new XMLHttpRequest(),
    1514            result = [],
    1615            expected = [1, 4] // open() -> 1, send() -> 4
    17         client.onreadystatechange = function() {
    18           test.step(function() {
    19             result.push(client.readyState)
    20           })
    21         }
     16        client.onreadystatechange = test.step_func(function() {
     17          result.push(client.readyState)
     18        })
    2219        client.open("GET", "resources/well-formed.xml", false)
    2320        client.send(null)
    2421        assert_equals(client.readyState, 4)
    2522        assert_equals(client.status, 200)
     23        assert_equals(client.statusText, "OK")
    2624        assert_equals(client.responseXML.documentElement.localName, "html")
    2725        client.abort()
     
    3331        assert_array_equals(result, expected)
    3432        test.done()
    35       })
     33      }, document.title + " (sync)")
     34
     35      async_test(test => {
     36        var client = new XMLHttpRequest(),
     37            result = [],
     38            expected = [1, 4] // open() -> 1, send() -> 4
     39        client.onreadystatechange = test.step_func(function() {
     40          result.push(client.readyState);
     41          if (client.readyState === 4) {
     42            assert_equals(client.readyState, 4)
     43            assert_equals(client.status, 200)
     44            assert_equals(client.statusText, "OK")
     45            assert_equals(client.responseXML.documentElement.localName, "html")
     46            client.abort();
     47            assert_equals(client.readyState, 0)
     48            assert_equals(client.status, 0)
     49            assert_equals(client.statusText, "")
     50            assert_equals(client.responseXML, null)
     51            assert_equals(client.getAllResponseHeaders(), "")
     52            test.done()
     53          }
     54        })
     55        client.open("GET", "resources/well-formed.xml", false)
     56        client.send(null)
     57        assert_equals(client.readyState, 0)
     58        assert_equals(client.status, 200)
     59        assert_equals(client.statusText, "OK")
     60        assert_equals(client.responseXML.documentElement.localName, "html")
     61      }, document.title + " (sync aborted in readystatechange)")
     62
     63      async_test(test => {
     64        var client = new XMLHttpRequest(),
     65            result = [],
     66            expected = [1, 2, 3, 4]
     67        client.onreadystatechange = test.step_func(function() {
     68          result.push(client.readyState);
     69          if (client.readyState === 4) {
     70            assert_equals(client.readyState, 4)
     71            assert_equals(client.status, 200)
     72            assert_equals(client.responseXML.documentElement.localName, "html")
     73            client.abort();
     74            assert_equals(client.readyState, 0)
     75            assert_equals(client.status, 0)
     76            assert_equals(client.statusText, "")
     77            assert_equals(client.responseXML, null)
     78            assert_equals(client.getAllResponseHeaders(), "")
     79            setTimeout(function() {
     80              assert_array_equals(result, expected)
     81              test.done();
     82            }, 100); // wait a bit in case XHR timeout causes spurious event
     83          }
     84        })
     85        client.open("GET", "resources/well-formed.xml")
     86        client.send(null)
     87      }, document.title + " (async)")
    3688    </script>
    3789  </body>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-open.js

    r207939 r224156  
    99  }
    1010  assert_equals(client.readyState, 1, "before abort()")
     11  assert_equals(client.status, 0)
     12  assert_equals(client.statusText, "")
    1113  client.abort()
    1214  assert_equals(client.readyState, 1, "after abort()")
     15  assert_equals(client.status, 0)
     16  assert_equals(client.statusText, "")
    1317})
    1418test.done()
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-unsent.htm

    r191546 r224156  
    1818          })
    1919        }
     20        assert_equals(client.readyState, 0)
     21        assert_equals(client.status, 0)
     22        assert_equals(client.statusText, "")
    2023        client.abort()
    2124        assert_equals(client.readyState, 0)
     25        assert_equals(client.status, 0)
     26        assert_equals(client.statusText, "")
    2227      })
    2328      test.done()
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/access-control-basic-preflight-denied.htm

    r222307 r224156  
    33  <head>
    44    <title>Tests async XHR preflight denial due to lack of CORS headers</title>
    5     <!-- The original test addressed a more specific issue involving caching,
     5    <!--The original test addressed a more specific issue involving caching,
    66        but that issue has since been resolved.
    77        We maintain this test as a basic test of invalid preflight denial.
    88        Please refer to the comment in the following link for more information:
    99        https://chromium-review.googlesource.com/c/chromium/src/+/630338#message-0280542b95c9b0f82b121dc373320c04fcaece31
    10      -->
     10    -->
    1111    <script src="/resources/testharness.js"></script>
    1212    <script src="/resources/testharnessreport.js"></script>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/progress-events-response-data-gzip.htm

    r206999 r224156  
    77    <script src="/resources/testharnessreport.js"></script>
    88    <link rel="help" href="https://xhr.spec.whatwg.org/#firing-events-using-the-progressevent-interface-for-http" data-tested-assertations="following::p[contains(text(),'content-encodings')]" />
    9     <!--  TODO: find better spec reference when https://www.w3.org/Bugs/Public/show_bug.cgi?id=25587 is fixed -->
     9    <!-- TODO: find better spec reference when https://www.w3.org/Bugs/Public/show_bug.cgi?id=25587 is fixed -->
    1010  </head>
    1111  <body>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/response-invalid-responsetype.htm

    r191546 r224156  
    66    <script src="/resources/testharnessreport.js"></script>
    77    <link rel="help" href="https://xhr.spec.whatwg.org/#the-response-attribute" data-tested-assertations="following::dd[2]/ol[1]/li[2]" />
    8     <link rel="help" href="https://xhr.spec.whatwg.org/#the-responsetype-attribute" data-tested-assertations="following::ol[1]/li[4]" /><!--  Not quite - but this is handled in WebIDL, not the XHR spec -->
     8    <link rel="help" href="https://xhr.spec.whatwg.org/#the-responsetype-attribute" data-tested-assertations="following::ol[1]/li[4]" /><!-- Not quite - but this is handled in WebIDL, not the XHR spec -->
    99  </head>
    1010  <body>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments.htm

    r200309 r224156  
    66    <script src="/resources/testharnessreport.js"></script>
    77    <script src="/common/utils.js"></script>
    8     <!--  These spec references do not make much sense simply because the spec doesn't say very much about this.. -->
     8    <!-- These spec references do not make much sense simply because the spec doesn't say very much about this.. -->
    99    <link rel="help" href="https://xhr.spec.whatwg.org/#the-setrequestheader()-method" data-tested-assertations="following::ol[1]/li[6]" />
    1010    <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::code[contains(@title,'http-authorization')]/.." />
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm

    r200309 r224156  
    66    <script src="/resources/testharnessreport.js"></script>
    77    <script src="/common/utils.js"></script>
    8     <!--  These spec references do not make much sense simply because the spec doesn't say very much about this.. -->
     8    <!-- These spec references do not make much sense simply because the spec doesn't say very much about this.. -->
    99    <link rel="help" href="https://xhr.spec.whatwg.org/#the-setrequestheader()-method" data-tested-assertations="following::ol[1]/li[6]" />
    1010    <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::code[contains(@title,'http-authorization')]/.." />
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-document.htm

    r194580 r224156  
    4242      function init(fr, number, title) { request(fr.contentDocument, number, title) }
    4343    </script>
    44     <!-- 
     44    <!--
    4545        This test also tests how documents in various encodings are serialized.
    4646        The below IFRAMEs contain:
     
    4949             with a U+FFFD replacement character for the invalid char
    5050          * one HTML document parsed from a valid Shift-JIS source
    51       -->
     51     -->
    5252    <iframe src='resources/win-1252-xml.py' onload="init(this, 0, 'XML document, windows-1252')"></iframe>
    5353    <iframe src='resources/invalid-utf8-html.py' onload="init(this, 1, 'HTML document, invalid UTF-8')"></iframe>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-no-location.htm

    r191546 r224156  
    66    <script src="/resources/testharnessreport.js"></script>
    77    <link rel="help" href="https://xhr.spec.whatwg.org/#infrastructure-for-the-send()-method" data-tested-assertations="following::dl[1]/dt[2]" />
    8     <!--  
     8    <!--
    99      NOTE: the XHR spec does not really handle this scenario. It's handled in the Fetch spec:
    1010      "If response's headers do not contain a header whose name is Location, return response."
    11       -->
     11     -->
    1212  </head>
    1313  <body>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-bogus-name.htm

    r200309 r224156  
    1010  <body>
    1111    <div id="log"></div>
    12 <!-- 
     12<!--
    1313       CHAR           = <any US-ASCII character (octets 0 - 127)>
    1414       CTL            = <any US-ASCII control character
     
    2222                      | "{" | "}" | SP | HT
    2323       field-name     = token
    24  -->
     24-->
    2525    <script>
    2626      function try_name(name) {
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/setrequestheader-open-setrequestheader.htm

    r213882 r224156  
    11<!DOCTYPE html>
    2 <!-- 
     2<!--
    33Test from https://bugzilla.mozilla.org/show_bug.cgi?id=819051
    4  -->
     4-->
    55<head>
    66  <title>XMLHttpRequest: setRequestHeader() and open()</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/w3c-import.log

    r223203 r224156  
    2121/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-receive.htm
    2222/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-send.htm
    23 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-stop.htm
    2423/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-after-timeout.htm
    2524/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-done.htm
     25/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-headers-received.htm
     26/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-loading.htm
    2627/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-open.htm
    2728/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/abort-during-open.js
     
    8687/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/data-uri.htm
    8788/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-abort.htm
    88 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-error-order.sub.html
    8989/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-error.sub.html
    9090/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-load.htm
     
    9595/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-readystate-sync-open.htm
    9696/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-readystatechange-loaded.htm
    97 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-timeout-order.htm
    9897/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-timeout.htm
    9998/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm
    10099/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress.htm
     100/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/firing-events-http-content-length.html
     101/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/firing-events-http-no-content-length.html
    101102/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/folder.txt
    102103/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/formdata-blob.htm
     
    153154/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-multi-window.htm
    154155/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin.htm
    155 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-worker-origin.htm
    156156/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-url-worker-simple.htm
    157157/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/open-user-password-non-same-origin.htm
     
    164164/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-open-state-force-xml.htm
    165165/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/overridemimetype-unsent-state-force-shiftjis.htm
    166 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/preserve-ua-header-on-redirect.htm
    167166/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/progress-events-response-data-gzip.htm
     167/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/progressevent-constructor.html
     168/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/progressevent-interface.html
    168169/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/response-data-arraybuffer.htm
    169170/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/response-data-blob.htm
     
    190191/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-accept-language.htm
    191192/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-accept.htm
    192 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-after-setting-document-domain.htm
    193 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-not-enabled.htm
    194 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic-cors.htm
    195 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic-repeat-no-args.htm
    196193/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments.htm
    197 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-existing-session.htm
    198 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader.htm
    199 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-basic.htm
    200 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-competing-names-passwords.htm
    201194/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader.htm
    202195/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm
     
    212205/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-formdata.htm
    213206/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring.htm
    214 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-basic.htm
    215207/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-document-bogus.htm
    216208/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-document.htm
     
    219211/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-get-head.htm
    220212/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-entity-body-none.htm
    221 /LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub.htm
    222213/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub.htm
    223214/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-no-response-event-loadend.htm
     
    275266/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-defer-scripts.html
    276267/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-scripts.html
     268/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-default-feature-policy.sub.html
    277269/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-not-hang-scriptloader-subframe.html
    278270/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-not-hang-scriptloader.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-eventtarget.htm

    r191546 r224156  
    66    <script src="/resources/testharnessreport.js"></script>
    77    <link rel="help" href="https://xhr.spec.whatwg.org/#xmlhttprequesteventtarget" data-tested-assertations=".." />
    8     <!--  Obviously, most of the stuff actually being tested here is covered in the DOM events spec, not in the XHR spec -->
     8    <!-- Obviously, most of the stuff actually being tested here is covered in the DOM events spec, not in the XHR spec -->
    99  </head>
    1010  <body>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-defer-scripts-subframe.html

    r202853 r224156  
    33  var x = 0;
    44</script>
    5 <!--  This script's URI is:
     5<!-- This script's URI is:
    66  var xhr = new XMLHttpRequest();
    77  xhr.open('GET', 'data:text/plain,aaa', false);
    88  xhr.send();
    99  x=1;
    10    -->
     10  -->
    1111<script defer src="data:application/javascript,var%20x%20=%200;%20var%20xhr%20=%20new%20XMLHttpRequest();%20xhr.open('GET',%20'data:text/plain,aaa',%20false);%20xhr.send();%20x=1"></script>
    1212
    13 <!--  This script's URI is:
     13<!-- This script's URI is:
    1414  parent.postMessage(x, '*');
    15  -->
     15-->
    1616<script defer src="data:application/javascript,parent.postMessage(x, '*');"></script>
    1717
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-defer-scripts.html

    r202853 r224156  
    44<script src=/resources/testharness.js></script>
    55<script src=/resources/testharnessreport.js></script>
    6 <!-- 
     6<!--
    77  We run the test in a subframe, because something in the testharness stuff
    8   interferes with defer scripts  -->
     8  interferes with defer scripts -->
    99<script>
    1010  var t = async_test();
  • trunk/LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-not-hang-scriptloader.html

    r202853 r224156  
    55<script src=/resources/testharness.js></script>
    66<script src=/resources/testharnessreport.js></script>
    7 <!-- 
     7<!--
    88  We run the test in a subframe, because something in the testharness stuff
    9   interferes with defer scripts  -->
     9  interferes with defer scripts -->
    1010<script>
    1111  var t = async_test();
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-display-3/w3c-import.log

    r217280 r224156  
    4545/LayoutTests/imported/w3c/web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-none-expected.html
    4646/LayoutTests/imported/w3c/web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-none.html
     47/LayoutTests/imported/w3c/web-platform-tests/css/css-display-3/display-contents-dynamic-generated-content-fieldset-001-expected.html
     48/LayoutTests/imported/w3c/web-platform-tests/css/css-display-3/display-contents-dynamic-generated-content-fieldset-001.html
    4749/LayoutTests/imported/w3c/web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-inline-expected.html
    4850/LayoutTests/imported/w3c/web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-inline.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/alignment/w3c-import.log

    r223273 r224156  
    149149/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-024-expected.html
    150150/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-024.html
     151/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/alignment/grid-fit-content-tracks-dont-stretch-001.html
    151152/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/alignment/grid-self-alignment-stretch-001.html
    152153/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/alignment/grid-self-alignment-stretch-002.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/support/check-layout-th.js

    r217652 r224156  
    6868    if (expectedHeight) {
    6969        assert_tolerance(node.scrollHeight, expectedHeight, prefix + "scrollHeight");
     70    }
     71
     72    var expectedWidth = checkAttribute(output, node, "data-expected-bounding-client-rect-width");
     73    if (expectedWidth) {
     74        assert_tolerance(node.getBoundingClientRect().width, expectedWidth, prefix + "getBoundingClientRect().width");
    7075    }
    7176
     
    157162}
    158163
    159 window.checkLayout = function(selectorList, outputContainer)
     164var testNumber = 0;
     165
     166window.checkLayout = function(selectorList, callDone = true)
    160167{
    161168    if (!selectorList) {
     
    164171    }
    165172    var nodes = document.querySelectorAll(selectorList);
    166     var testNumber = 0;
    167173    nodes = Array.prototype.slice.call(nodes);
    168174    nodes.reverse();
     
    185191        console.error("No valid data-* attributes found in selector list : " + selectorList);
    186192    }
    187     done();
     193    if (callDone)
     194        done();
    188195};
    189196
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-ui-3/cursor-auto-004.html

    r220476 r224156  
    55<meta name="flags" content="interact">
    66<meta charset="UTF-8">
    7 <meta name="assert" content="The 'auto' cursor value does the same as 'text' over text.">
     7<meta name="assert" content="The 'auto' cursor value does the same as 'default' over non-textual content.">
    88<style>
    99div {
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-ui-3/cursor-auto-005.html

    r222307 r224156  
    11<!DOCTYPE html>
    22<title>CSS Basic User Interface Test: cursor:auto on form elements</title>
    3 <link rel="author" title="Florian Rivoal" href="mailto:florian@rivoal.net">
     3<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
    44<link rel="help" href="http://www.w3.org/TR/css3-ui/#cursor">
    55<meta name="flags" content="interact">
    66<meta charset="UTF-8">
    7 <meta name="assert" content="The 'auto' cursor value does the same as 'default' over everything other than text, such as form elements.">
     7<meta name="assert" content="The 'auto' cursor value does the same as 'default' over everything other than selectable text or editable elements, such as form elements that do not take text input.">
    88<style>
    99#test {
     
    3434  <div id=test>
    3535    <button>button</button>
    36     <textarea></textarea>
    37     <input>
    3836    <input type=button value=input-button>
    3937    <select></select>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-ui-3/cursor-auto-006.html

    r224155 r224156  
    11<!DOCTYPE html>
    2 <title>CSS Basic User Interface Test: cursor:auto on form elements</title>
    3 <link rel="author" title="Florian Rivoal" href="mailto:florian@rivoal.net">
     2<title>CSS Basic User Interface Test: cursor:auto on editable elements</title>
     3<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
    44<link rel="help" href="http://www.w3.org/TR/css3-ui/#cursor">
    55<meta name="flags" content="interact">
    66<meta charset="UTF-8">
    7 <meta name="assert" content="The 'auto' cursor value does the same as 'default' over everything other than text, such as form elements.">
     7<meta name="assert" content="The 'auto' cursor value does the same as 'text' over editable elements.">
    88<style>
    99#test {
     
    2121  width: 100px;
    2222  height: 100px;
    23   cursor: default;
     23  cursor: text;
    2424  border: solid orange;
    2525}
     
    2828  it is easy to tell if something changes when hovering the target.*/
    2929}
     30
     31[contenteditable] {
     32  border: solid;
     33  height: 1em;
     34  margin: 5px;
     35}
    3036</style>
    3137<body>
    32   <p>The test passes if, when moved over every element inside the blue box, the cursor remains the platform-dependent default cursor.</p>
     38  <p>The test passes if, when moved over every element inside the blue box, the cursor looks like the text insertion and selection cursor.</p>
    3339  <p>Place the cursor into the orange box for a reference of what this should look like.</p>
    3440  <div id=test>
    35     <button>button</button>
    3641    <textarea></textarea>
    3742    <input>
    38     <input type=button value=input-button>
    39     <select></select>
     43    <div contenteditable=true style="border:solid"></div>
    4044  </div>
    4145  <div id=ref></div>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-ui-3/w3c-import.log

    r222307 r224156  
    1010------------------------------------------------------------------------
    1111Properties requiring vendor prefixes:
    12 None
     12user-select
    1313Property values requiring vendor prefixes:
    1414None
     
    111111/LayoutTests/imported/w3c/web-platform-tests/css/css-ui-3/cursor-auto-004.html
    112112/LayoutTests/imported/w3c/web-platform-tests/css/css-ui-3/cursor-auto-005.html
     113/LayoutTests/imported/w3c/web-platform-tests/css/css-ui-3/cursor-auto-006.html
     114/LayoutTests/imported/w3c/web-platform-tests/css/css-ui-3/cursor-auto-007.html
    113115/LayoutTests/imported/w3c/web-platform-tests/css/css-ui-3/cursor-border-area.html
    114116/LayoutTests/imported/w3c/web-platform-tests/css/css-ui-3/cursor-box-004.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/w3c-import.log

    r223327 r224156  
    5353/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/scope-without-scoping-expected.xht
    5454/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/scope-without-scoping.html
     55/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-placeholder-shown-type-change-001-expected.html
     56/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-placeholder-shown-type-change-001.html
     57/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-placeholder-shown-type-change-002-expected.html
     58/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-placeholder-shown-type-change-002.html
     59/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-placeholder-shown-type-change-003-expected.html
     60/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-placeholder-shown-type-change-003.html
     61/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-read-write-type-change-001-expected.html
     62/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-read-write-type-change-001.html
     63/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-read-write-type-change-002-expected.html
     64/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-read-write-type-change-002.html
    5565/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-required-expected.html
     66/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-required-type-change-001-expected.html
     67/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-required-type-change-001.html
     68/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-required-type-change-002-expected.html
     69/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-required-type-change-002.html
    5670/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-required.html
    5771/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selectors-dir-selector-ltr-001-expected.xht
  • trunk/LayoutTests/imported/w3c/web-platform-tests/cssom-view/elementScroll.html

    r215726 r224156  
    2626<section id="section">
    2727    <div id="scrollable"></div>
     28    <div id="unrelated"></div>
    2829</section>
    2930
     
    3233    window.onload = function () {
    3334        var section = document.getElementById("section");
     35        var unrelated = document.getElementById("unrelated");
    3436
    3537        test(function () {
     
    4244            assert_equals(section.scrollTop, 30, "changed scrollTop should be 40");
    4345            assert_equals(section.scrollLeft, 40, "changed scrollLeft should be 40");
     46            assert_equals(unrelated.scrollTop, 0, "unrelated element should not scroll");
     47            assert_equals(unrelated.scrollLeft, 0, "unrelated element should not scroll");
    4448        },  "Element scrollTop/Left getter/setter test");
    4549
  • trunk/LayoutTests/imported/w3c/web-platform-tests/cssom-view/w3c-import.log

    r222307 r224156  
    5050/LayoutTests/imported/w3c/web-platform-tests/cssom-view/negativeMargins.html
    5151/LayoutTests/imported/w3c/web-platform-tests/cssom-view/offsetParent_element_test.html
    52 /LayoutTests/imported/w3c/web-platform-tests/cssom-view/scrollIntoView-empty-args.html
     52/LayoutTests/imported/w3c/web-platform-tests/cssom-view/offsetTopLeftInScrollableParent.html
    5353/LayoutTests/imported/w3c/web-platform-tests/cssom-view/scrollIntoView-shadow.html
    5454/LayoutTests/imported/w3c/web-platform-tests/cssom-view/scrollIntoView-smooth.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleRule-expected.txt

    r217917 r224156  
    55PASS Writability of CSSRule attributes
    66PASS Values of CSSRule attributes
    7 PASS Existence, writability and type of CSSStyleRule attributes
     7PASS Existence and type of CSSStyleRule attributes
     8PASS Assigning to CSSStyleRule.style assigns to cssText; CSSStyleRule.style returns the same object
    89PASS Values of CSSStyleRule attributes
    910PASS Mutability of CSSStyleRule's style attribute
  • trunk/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleRule.html

    r217917 r224156  
    6868            assert_equals(typeof rule.selectorText, "string");
    6969            assert_idl_attribute(rule, "style");
    70         }, "Existence, writability and type of CSSStyleRule attributes");
     70        }, "Existence and type of CSSStyleRule attributes");
     71
     72        test(function() {
     73            // CSSStyleRule.style has PutForwards=cssText and SameObject.
     74            var initial = rule.style.cssText;
     75            var style = rule.style;
     76
     77            rule.style = "";
     78            assert_equals(rule.style.cssText, "");
     79            assert_equals(rule.style, style);
     80
     81            rule.style = "margin: 42px;";
     82            assert_equals(rule.style.margin, "42px");
     83            assert_equals(rule.style, style);
     84
     85            rule.style = initial;
     86            assert_equals(rule.style, style);
     87        }, "Assigning to CSSStyleRule.style assigns to cssText; CSSStyleRule.style returns the same object");
    7188
    7289        test(function() {
  • trunk/LayoutTests/imported/w3c/web-platform-tests/domparsing/innerhtml-07.html

    r216354 r224156  
    22<title>innerHTML and string conversion</title>
    33<link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com">
    4 <link rel="help" href="http://domparsing.spec.whatwg.org/#extensions-to-the-element-interface">
     4<link rel="help" href="https://w3c.github.io/DOM-Parsing/#extensions-to-the-element-interface">
    55<script src="/resources/testharness.js"></script>
    66<script src="/resources/testharnessreport.js"></script>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/domparsing/outerhtml-02.html

    r216354 r224156  
    22<title>outerHTML and string conversion</title>
    33<link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com">
    4 <link rel="help" href="http://domparsing.spec.whatwg.org/#extensions-to-the-element-interface">
     4<link rel="help" href="https://w3c.github.io/DOM-Parsing/#extensions-to-the-element-interface">
    55<script src="/resources/testharness.js"></script>
    66<script src="/resources/testharnessreport.js"></script>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/feature-policy/resources/featurepolicy.js

    r223189 r224156  
    7575}
    7676
     77// If this page is intended to test the named feature (according to the URL),
     78// tests the feature availability and posts the result back to the parent.
     79// Otherwise, does nothing.
     80function test_feature_in_iframe(feature_name, feature_promise_factory) {
     81  if (location.hash.includes(feature_name)) {
     82    feature_promise_factory().then(
     83        () => window.parent.postMessage('#OK', '*'),
     84        (e) => window.parent.postMessage('#' + e.toString(), '*'));
     85  }
     86}
     87
     88// Returns true if the URL for this page indicates that it is embedded in an
     89// iframe.
     90function page_loaded_in_iframe() {
     91  return location.hash.startsWith('#iframe');
     92}
     93
     94// Returns a same-origin (relative) URL suitable for embedding in an iframe for
     95// testing the availability of the feature.
     96function same_origin_url(feature_name) {
     97  // Append #iframe to the URL so we can detect the iframe'd version of the
     98  // page.
     99  return location.pathname + '#iframe#' + feature_name;
     100}
     101
     102// Returns a cross-origin (absolute) URL suitable for embedding in an iframe for
     103// testing the availability of the feature.
     104function cross_origin_url(base_url, feature_name) {
     105  return base_url + same_origin_url(feature_name);
     106}
     107
    77108// This function runs all feature policy tests for a particular feature that
    78109// has a default policy of "self". This includes testing:
     
    104135  // This may be the version of the page loaded up in an iframe. If so, just
    105136  // post the result of running the feature promise back to the parent.
    106   if (location.hash.startsWith('#iframe')) {
    107     // This makes it possible to test multiple features in the one test file.
    108     if (!location.hash.includes(feature_name))
    109       return;
    110     feature_promise_factory().then(
    111         () => window.parent.postMessage('#OK', '*'),
    112         (e) => window.parent.postMessage('#' + e.toString(), '*'));
     137  if (page_loaded_in_iframe()) {
     138    test_feature_in_iframe(feature_name, feature_promise_factory);
    113139    return;
    114140  }
    115141
    116142  // Run the various tests.
    117   // 1. Top level frame.
     143  // 1. Allowed in top-level frame.
    118144  promise_test(
    119145      () => feature_promise_factory(),
     
    121147          '" feature policy ["self"] allows the top-level document.');
    122148
    123   // 2. Same-origin iframe.
    124   // Append #iframe to the URL so we can detect the iframe'd version of the
    125   // page.
    126   const same_origin_frame_pathname =
    127       location.pathname + '#iframe#' + feature_name;
     149  // 2. Allowed in same-origin iframe.
     150  const same_origin_frame_pathname = same_origin_url(feature_name);
    128151  async_test(
    129152      t => {
     
    134157          '" feature policy ["self"] allows same-origin iframes.');
    135158
    136   // 3. Cross-origin iframe.
    137   const cross_origin_frame_url = cross_origin + same_origin_frame_pathname;
     159  // 3. Blocked in cross-origin iframe.
     160  const cross_origin_frame_url = cross_origin_url(cross_origin, feature_name);
    138161  async_test(
    139162      t => {
     
    144167          '" feature policy ["self"] disallows cross-origin iframes.');
    145168
    146   // 4. Cross-origin iframe with "allow" attribute.
     169  // 4. Allowed in cross-origin iframe with "allow" attribute.
    147170  async_test(
    148171      t => {
     
    153176          '" can be enabled in cross-origin iframes using "allow" attribute.');
    154177}
     178
     179// This function runs all feature policy tests for a particular feature that
     180// has a default policy of "*". This includes testing:
     181// 1. Feature usage succeeds by default in the top level frame.
     182// 2. Feature usage succeeds by default in a same-origin iframe.
     183// 3. Feature usage succeeds by default in a cross-origin iframe.
     184// 4. Feature usage fails when an allow attribute is specified on a
     185//    cross-origin iframe with a value of "feature-name 'none'".
     186//
     187// The same page which called this function will be loaded in the iframe in
     188// order to test feature usage there. When this function is called in that
     189// context it will simply run the feature and return a result back via
     190// postMessage.
     191//
     192// Arguments:
     193//     cross_origin: A cross-origin URL base to be used to load the page which
     194//         called into this function.
     195//     feature_name: The name of the feature as it should be specified in an
     196//         allow attribute.
     197//     error_name: If feature usage does not succeed, this is the string
     198//         representation of the error that will be passed in the rejected
     199//         promise.
     200//     feature_promise_factory: A function which returns a promise which tests
     201//         feature usage. If usage succeeds, the promise should resolve. If it
     202//         fails, the promise should reject with an error that can be
     203//         represented as a string.
     204function run_all_fp_tests_allow_all(
     205    cross_origin, feature_name, error_name, feature_promise_factory) {
     206  // This may be the version of the page loaded up in an iframe. If so, just
     207  // post the result of running the feature promise back to the parent.
     208  if (page_loaded_in_iframe()) {
     209    test_feature_in_iframe(feature_name, feature_promise_factory);
     210    return;
     211  }
     212
     213  // Run the various tests.
     214  // 1. Allowed in top-level frame.
     215  promise_test(
     216      () => feature_promise_factory(),
     217      'Default "' + feature_name +
     218          '" feature policy ["*"] allows the top-level document.');
     219
     220  // 2. Allowed in same-origin iframe.
     221  const same_origin_frame_pathname = same_origin_url(feature_name);
     222  async_test(
     223      t => {
     224        test_feature_availability_with_post_message_result(
     225            t, same_origin_frame_pathname, '#OK');
     226      },
     227      'Default "' + feature_name +
     228          '" feature policy ["*"] allows same-origin iframes.');
     229
     230  // 3. Allowed in cross-origin iframe.
     231  const cross_origin_frame_url = cross_origin_url(cross_origin, feature_name);
     232  async_test(
     233      t => {
     234        test_feature_availability_with_post_message_result(
     235            t, cross_origin_frame_url, '#OK');
     236      },
     237      'Default "' + feature_name +
     238          '" feature policy ["*"] allows cross-origin iframes.');
     239
     240  // 4. Blocked in cross-origin iframe with "allow" attribute set to 'none'.
     241  async_test(
     242      t => {
     243        test_feature_availability_with_post_message_result(
     244            t, cross_origin_frame_url, '#' + error_name,
     245            feature_name + " 'none'");
     246      },
     247      'Feature policy "' + feature_name +
     248          '" can be disabled in cross-origin iframes using "allow" attribute.');
     249}
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_script.html

    r206999 r224156  
    11<!DOCTYPE html>
    2 <meta charset="uft-8">
     2<meta charset="utf-8">
    33<title>HTML Test: iframe_sandbox_allow_scripts</title>
    44<link rel="author" title="Intel" href="http://www.intel.com/">
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/sandbox_allow_script.html

    r196091 r224156  
    11<!DOCTYPE html>
    2 <meta charset="uft-8">
     2<meta charset="utf-8">
    33<title>HTML Test: sandbox_allow_scripts</title>
    44<link rel="author" title="Intel" href="http://www.intel.com/">
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log

    r223327 r224156  
    5656/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_grandchild.html
    5757/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_parentage.html
     58/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/sandbox-ascii-case-insensitive.html
    5859/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/sandbox_001.htm
    5960/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/sandbox_002.htm
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/w3c-import.log

    r216354 r224156  
    2424/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/common.js
    2525/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/contains.json
     26/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/empty-doctype-ids.html
    2627/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/foreign_content_001.html
    2728/LayoutTests/imported/w3c/web-platform-tests/html/syntax/parsing/foreign_content_003.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/lint.whitelist

    r223327 r224156  
    162162SET TIMEOUT: conformance-checkers/*
    163163SET TIMEOUT: content-security-policy/*
     164SET TIMEOUT: css/selectors4/selector-placeholder-shown-type-change-001.html
     165SET TIMEOUT: css/selectors4/selector-placeholder-shown-type-change-002.html
     166SET TIMEOUT: css/selectors4/selector-placeholder-shown-type-change-003.html
     167SET TIMEOUT: css/selectors4/selector-read-write-type-change-002.html
     168SET TIMEOUT: css/selectors4/selector-required-type-change-002.html
    164169SET TIMEOUT: css-fonts/font-display/font-display.html
    165170SET TIMEOUT: encrypted-media/Google/migrated_to_root_disabled/encrypted-media-utils.js
     
    222227SET TIMEOUT: service-workers/service-worker/fetch-request-redirect.https.html
    223228SET TIMEOUT: service-workers/service-worker/fetch-waits-for-activate.https.html
     229SET TIMEOUT: service-workers/service-worker/ready.https.html
    224230SET TIMEOUT: service-workers/service-worker/update-recovery.https.html
    225231SET TIMEOUT: service-workers/service-worker/resources/extendable-event-async-waituntil.js
     
    229235SET TIMEOUT: service-workers/service-worker/resources/opaque-response-preloaded-xhr.html
    230236SET TIMEOUT: service-workers/service-worker/resources/performance-timeline-worker.js
     237SET TIMEOUT: service-workers/service-worker/resources/resource-timing-worker.js
    231238SET TIMEOUT: service-workers/service-worker/resources/register-foreign-fetch-errors-worker.js
    232239SET TIMEOUT: shadow-dom/Document-prototype-currentScript.html
     
    251258SET TIMEOUT: webvtt/*
    252259SET TIMEOUT: workers/*
     260SET TIMEOUT: XMLHttpRequest/abort-during-done.htm
     261SET TIMEOUT: XMLHttpRequest/abort-during-headers-received.htm
     262SET TIMEOUT: XMLHttpRequest/abort-during-loading.htm
    253263SET TIMEOUT: XMLHttpRequest/open-url-multi-window-6.htm
    254264SET TIMEOUT: XMLHttpRequest/xmlhttprequest-timeout-reused.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none.https.html

    r223189 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2016 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2016 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<html>
    44    <head>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/OWNERS

    r223189 r224156  
    22@alvestrand
    33@dontcallmedom
     4@youennf
  • trunk/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/w3c-import.log

    r223189 r224156  
    3030/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-add-audio-track.https.html
    3131/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-audio-only.https.html
    32 /LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.sub.html
     32/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.html
    3333/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-finished-add.https.html
    3434/LayoutTests/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-gettrackid.https.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/change-shipping-option-manual.https.html

    r222754 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Test for PaymentRequest shippingOption attribute</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-request-abort-method.https.html

    r222307 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Test for PaymentRequest.abort() method</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html

    r222754 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Tests for PaymentRequest.canMakePayment() method</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-request-constructor.https.html

    r222754 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Test for PaymentRequest Constructor</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-request-ctor-pmi-handling.https.html

    r222754 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Mozilla and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Mozilla and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Test for validity of payment method identifiers during construction</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-request-id-attribute.https.html

    r222307 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Test for PaymentRequest id attribute</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html

    r222307 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Test for onshippingaddresschange attribute</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html

    r222307 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Test for onshippingoptionchange attribute</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-request-shippingAddress-attribute.https.html

    r222307 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Test for PaymentRequest shippingAddress attribute</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-request-shippingOption-attribute.https.html

    r222307 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Test for PaymentRequest shippingOption attribute</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-request-shippingType-attribute.https.html

    r222307 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Mozilla and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Mozilla and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Test for PaymentRequest's shippingType attribute</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-request-show-method.https.html

    r222307 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Test for PaymentRequest.show() method</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/shipping-address-changed-manual.https.html

    r222754 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Test for PaymentRequest shippingAddress attribute</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/updateWith-method-pmi-handling-manual.https.html

    r222754 r224156  
    11<!DOCTYPE html>
    2 <!--  Copyright © 2017 Mozilla and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
     2<!-- Copyright © 2017 Mozilla and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
    33<meta charset="utf-8">
    44<title>Test for validity of payment method identifiers when calling updateWith() method</title>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/navigation-redirect.https.html

    r220223 r224156  
    1818var SCOPE2 = BASE_URL + 'resources/navigation-redirect-scope2.py?';
    1919var OUT_SCOPE = BASE_URL + 'resources/navigation-redirect-out-scope.py?';
    20 var SCRIPT = 'resources/navigation-redirect-worker.js';
     20var SCRIPT = 'resources/redirect-worker.js';
    2121
    2222var OTHER_ORIGIN_IFRAME_URL =
     
    323323    return setup_environment(t).then(function() {
    324324        return test_redirect(
    325             SCOPE1 + 'sw=opaque&url=' + encodeURIComponent(OUT_SCOPE),
     325            SCOPE1 + 'sw=manual&url=' + encodeURIComponent(OUT_SCOPE),
    326326            OUT_SCOPE,
    327             [[SCOPE1 + 'sw=opaque&url=' + encodeURIComponent(OUT_SCOPE)],
     327            [[SCOPE1 + 'sw=manual&url=' + encodeURIComponent(OUT_SCOPE)],
    328328             [],
    329329             []]);
     
    333333    return setup_environment(t).then(function() {
    334334        return test_redirect(
    335             SCOPE1 + 'sw=opaque&url=' + encodeURIComponent(SCOPE1),
    336             SCOPE1,
    337             [[SCOPE1 + 'sw=opaque&url=' + encodeURIComponent(SCOPE1), SCOPE1],
     335            SCOPE1 + 'sw=manual&url=' + encodeURIComponent(SCOPE1),
     336            SCOPE1,
     337            [[SCOPE1 + 'sw=manual&url=' + encodeURIComponent(SCOPE1), SCOPE1],
    338338             [],
    339339             []]);
     
    343343    return setup_environment(t).then(function() {
    344344        return test_redirect(
    345             SCOPE1 + 'sw=opaque&url=' + encodeURIComponent(SCOPE2),
     345            SCOPE1 + 'sw=manual&url=' + encodeURIComponent(SCOPE2),
    346346            SCOPE2,
    347             [[SCOPE1 + 'sw=opaque&url=' + encodeURIComponent(SCOPE2)],
     347            [[SCOPE1 + 'sw=manual&url=' + encodeURIComponent(SCOPE2)],
    348348             [SCOPE2],
    349349             []]);
     
    353353    return setup_environment(t).then(function() {
    354354        return test_redirect(
    355             SCOPE1 + 'sw=opaque&url=' +
     355            SCOPE1 + 'sw=manual&url=' +
    356356            encodeURIComponent(OTHER_ORIGIN_OUT_SCOPE),
    357357            OTHER_ORIGIN_OUT_SCOPE,
    358             [[SCOPE1 + 'sw=opaque&url=' +
     358            [[SCOPE1 + 'sw=manual&url=' +
    359359              encodeURIComponent(OTHER_ORIGIN_OUT_SCOPE)],
    360360             [],
     
    365365    return setup_environment(t).then(function() {
    366366        return test_redirect(
    367             SCOPE1 + 'sw=opaque&url=' + encodeURIComponent(OTHER_ORIGIN_SCOPE),
    368             OTHER_ORIGIN_SCOPE,
    369             [[SCOPE1 + 'sw=opaque&url=' +
     367            SCOPE1 + 'sw=manual&url=' + encodeURIComponent(OTHER_ORIGIN_SCOPE),
     368            OTHER_ORIGIN_SCOPE,
     369            [[SCOPE1 + 'sw=manual&url=' +
    370370              encodeURIComponent(OTHER_ORIGIN_SCOPE)],
    371371             [],
     
    376376    return setup_environment(t).then(function() {
    377377        return test_redirect(
    378             SCOPE1 + 'sw=opaque&noLocationRedirect',
    379             SCOPE1 + 'sw=opaque&noLocationRedirect',
    380             [[SCOPE1 + 'sw=opaque&noLocationRedirect'],
     378            SCOPE1 + 'sw=manual&noLocationRedirect',
     379            SCOPE1 + 'sw=manual&noLocationRedirect',
     380            [[SCOPE1 + 'sw=manual&noLocationRedirect'],
    381381             [],
    382382             []]);
     
    389389    return setup_environment(t).then(function() {
    390390        return test_redirect(
    391             SCOPE1 + 'sw=opaqueThroughCache&url=' +
     391            SCOPE1 + 'sw=manualThroughCache&url=' +
    392392            encodeURIComponent(OUT_SCOPE),
    393393            OUT_SCOPE,
    394             [[SCOPE1 + 'sw=opaqueThroughCache&url=' +
     394            [[SCOPE1 + 'sw=manualThroughCache&url=' +
    395395              encodeURIComponent(OUT_SCOPE)],
    396396             [],
     
    403403    return setup_environment(t).then(function() {
    404404        return test_redirect(
    405             SCOPE1 + 'sw=opaqueThroughCache&url=' +
     405            SCOPE1 + 'sw=manualThroughCache&url=' +
    406406            encodeURIComponent(SCOPE1),
    407407            SCOPE1,
    408             [[SCOPE1 + 'sw=opaqueThroughCache&url=' +
     408            [[SCOPE1 + 'sw=manualThroughCache&url=' +
    409409              encodeURIComponent(SCOPE1), SCOPE1],
    410410             [],
     
    417417    return setup_environment(t).then(function() {
    418418        return test_redirect(
    419             SCOPE1 + 'sw=opaqueThroughCache&url=' +
     419            SCOPE1 + 'sw=manualThroughCache&url=' +
    420420            encodeURIComponent(SCOPE2),
    421421            SCOPE2,
    422             [[SCOPE1 + 'sw=opaqueThroughCache&url=' +
     422            [[SCOPE1 + 'sw=manualThroughCache&url=' +
    423423              encodeURIComponent(SCOPE2)],
    424424             [SCOPE2],
     
    431431    return setup_environment(t).then(function() {
    432432        return test_redirect(
    433             SCOPE1 + 'sw=opaqueThroughCache&url=' +
     433            SCOPE1 + 'sw=manualThroughCache&url=' +
    434434            encodeURIComponent(OTHER_ORIGIN_OUT_SCOPE),
    435435            OTHER_ORIGIN_OUT_SCOPE,
    436             [[SCOPE1 + 'sw=opaqueThroughCache&url=' +
     436            [[SCOPE1 + 'sw=manualThroughCache&url=' +
    437437              encodeURIComponent(OTHER_ORIGIN_OUT_SCOPE)],
    438438             [],
     
    445445    return setup_environment(t).then(function() {
    446446        return test_redirect(
    447             SCOPE1 + 'sw=opaqueThroughCache&url=' +
     447            SCOPE1 + 'sw=manualThroughCache&url=' +
    448448            encodeURIComponent(OTHER_ORIGIN_SCOPE),
    449449            OTHER_ORIGIN_SCOPE,
    450             [[SCOPE1 + 'sw=opaqueThroughCache&url=' +
     450            [[SCOPE1 + 'sw=manualThroughCache&url=' +
    451451              encodeURIComponent(OTHER_ORIGIN_SCOPE)],
    452452             [],
     
    459459    return setup_environment(t).then(function() {
    460460        return test_redirect(
    461             SCOPE1 + 'sw=opaqueThroughCache&noLocationRedirect',
    462             SCOPE1 + 'sw=opaqueThroughCache&noLocationRedirect',
    463             [[SCOPE1 + 'sw=opaqueThroughCache&noLocationRedirect'],
     461            SCOPE1 + 'sw=manualThroughCache&noLocationRedirect',
     462            SCOPE1 + 'sw=manualThroughCache&noLocationRedirect',
     463            [[SCOPE1 + 'sw=manualThroughCache&noLocationRedirect'],
    464464             [],
    465465             []]);
  • trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/ready.https.html

    r220223 r224156  
    249249        });
    250250  }, 'access ready after it has been resolved');
     251
     252promise_test(async function(t) {
     253    var url = 'resources/empty-worker.js';
     254    var matched_scope = 'resources/blank.html?ready-after-resurrect';
     255
     256    let reg1 = await service_worker_unregister_and_register(t, url, matched_scope);
     257    add_completion_callback(function() {
     258        reg1.unregister();
     259      });
     260    await wait_for_state(t, reg1.installing, 'activated');
     261
     262    // Hold the worker alive with a controlled worker
     263    let frame = await with_iframe(matched_scope);
     264    add_completion_callback(function() {
     265        frame.remove();
     266      });
     267
     268    // Doom the registration as uninstalling.
     269    await reg1.unregister();
     270
     271    // Access the ready promise while the registration is doomed.
     272    let readyPromise = frame.contentWindow.navigator.serviceWorker.ready;
     273
     274    // Resurrect the doomed registration;
     275    let reg2 = await service_worker_unregister_and_register(t, url, matched_scope);
     276    assert_equals(reg1, reg2, 'existing registration should be resurrected');
     277
     278    // We are trying to test if the ready promise ever resolves here.  Use
     279    // an explicit timeout check here rather than forcing a full infrastructure
     280    // level timeout.
     281    let timeoutId;
     282    let timeoutPromise = new Promise(resolve => {
     283      timeoutId = setTimeout(_ => {
     284        timeoutId = null;
     285        resolve();
     286      }, 500);
     287    });
     288
     289    // This should resolve immediately since there is an alive registration
     290    // with an active promise for the matching scope.
     291    await Promise.race([readyPromise, timeoutPromise]);
     292
     293    assert_not_equals(timeoutId, null,
     294                      'ready promise should resolve before timeout');
     295    clearTimeout(timeoutId);
     296
     297    // We should get here and not time out.
     298
     299  }, 'access ready on uninstalling registration that is resurrected');
    251300</script>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/redirected-response.https.html

    r220223 r224156  
    1616// |options.fetch_method|: the method used to fetch. Useful for testing an
    1717//                         iframe's fetch() vs. this page's fetch().
    18 // |options.cache|: A Cache to add the response to
     18// |options.expected_type|: The value of response.type
    1919// |options.expected_redirected|: The value of response.redirected
     20// |options.expected_intercepted_urls|: The list of intercepted request URLs.
    2021function redirected_test(options) {
    2122  return options.fetch_method.call(null, options.url, options.fetch_option).then(response => {
    22         var cloned_response = response.clone();
     23        let cloned_response = response.clone();
     24        assert_equals(
     25            response.type, options.expected_type,
     26            'The response type of response must match. URL: ' + options.url);
     27        assert_equals(
     28            cloned_response.type, options.expected_type,
     29            'The response type of cloned response must match. URL: ' + options.url);
    2330        assert_equals(
    2431            response.redirected, options.expected_redirected,
     
    2734            cloned_response.redirected, options.expected_redirected,
    2835            'The redirected flag of cloned response must match. URL: ' + options.url);
    29         return options.cache.put(options.url, response);
     36        return cache.put(options.url, response);
    3037      })
    31     .then(_ => options.cache.match(options.url))
     38    .then(_ => cache.match(options.url))
    3239    .then(response => {
    33         assert_equals(response.redirected, options.expected_redirected,
    34         'The redirected flag of response in CacheStorage must match. URL: ' +
    35         options.url);
     40        assert_equals(
     41            response.type, options.expected_type,
     42            'The response type of response in CacheStorage must match. ' +
     43            'URL: ' + options.url);
     44        assert_equals(
     45            response.redirected, options.expected_redirected,
     46            'The redirected flag of response in CacheStorage must match. ' +
     47            'URL: ' + options.url);
     48        return check_intercepted_urls(options.expected_intercepted_urls);
    3649      });
    3750}
    3851
    39 var host_info = get_host_info();
    40 var REDIRECT_URL = host_info['HTTPS_ORIGIN'] +
    41                    '/service-workers/service-worker/resources/redirect.py?Redirect=';
    42 var TARGET_URL = host_info['HTTPS_ORIGIN'] +
    43                  '/service-workers/service-worker/resources/simple.txt';
    44 var REDIRECT_TO_TARGET_URL = REDIRECT_URL + encodeURIComponent(TARGET_URL);
    45 var frame;
    46 var cache;
    47 var setup;
     52function take_intercepted_urls() {
     53  return new Promise((resolve) => {
     54      let channel = new MessageChannel();
     55      channel.port1.onmessage = msg => { resolve(msg.data.urls); };
     56      worker.postMessage({port: channel.port2}, [channel.port2]);
     57    });
     58}
     59
     60function check_intercepted_urls(expected_urls) {
     61  return take_intercepted_urls().then((urls) => {
     62      assert_object_equals(urls, expected_urls, 'Intercepted URLs matching.');
     63    });
     64}
     65
     66function setup_and_clean() {
     67  // To prevent interference from previous tests, take the intercepted URLs from
     68  // the service worker.
     69  return setup.then(() => take_intercepted_urls());
     70}
     71
     72
     73let host_info = get_host_info();
     74const REDIRECT_URL = host_info['HTTPS_ORIGIN'] + base_path() +
     75                     'resources/redirect.py?Redirect=';
     76const TARGET_URL = host_info['HTTPS_ORIGIN'] + base_path() +
     77                   'resources/simple.txt?';
     78const REDIRECT_TO_TARGET_URL = REDIRECT_URL + encodeURIComponent(TARGET_URL);
     79let frame;
     80let cache;
     81let setup;
     82let worker;
    4883
    4984promise_test(t => {
    50     var SCOPE = 'resources/blank.html?redirected-response';
    51     var SCRIPT = 'resources/fetch-rewrite-worker.js';
    52     var CACHE_NAME = 'service-workers/service-worker/redirected-response';
     85    const SCOPE = 'resources/blank.html?redirected-response';
     86    const SCRIPT = 'resources/redirect-worker.js';
     87    const CACHE_NAME = 'service-workers/service-worker/redirected-response';
    5388    setup = service_worker_unregister_and_register(t, SCRIPT, SCOPE)
    5489      .then(registration => {
    55           promise_test(function() {
    56               return registration.unregister();
    57             }, 'restore global state (service worker registration)');
    58 
     90          promise_test(
     91              () => registration.unregister(),
     92              'restore global state (service worker registration)');
     93          worker = registration.installing;
    5994          return wait_for_state(t, registration.installing, 'activated');
    6095        })
     
    6297      .then(c => {
    6398          cache = c;
    64 
    65           promise_test(function() {
    66               return self.caches.delete(CACHE_NAME);
    67             }, 'restore global state (caches)');
    68 
     99          promise_test(
     100            () => self.caches.delete(CACHE_NAME),
     101            'restore global state (caches)');
    69102          return with_iframe(SCOPE);
    70103        })
    71104      .then(f => {
    72105          frame = f;
    73 
    74           add_completion_callback(function() {
    75               f.remove();
    76             });
     106          add_completion_callback(() => f.remove());
     107          return check_intercepted_urls(
     108              [host_info['HTTPS_ORIGIN'] + base_path() + SCOPE]);
    77109        });
    78110      return setup;
     
    82114// Tests for requests that are out-of-scope of the service worker.
    83115// ===============================================================
    84 promise_test(t => setup
     116promise_test(t => setup_and_clean()
    85117  .then(() => redirected_test({url: TARGET_URL,
    86118                               fetch_option: {},
    87119                               fetch_method: self.fetch,
    88                                cache: cache,
    89                                expected_redirected: false})),
     120                               expected_type: 'basic',
     121                               expected_redirected: false,
     122                               expected_intercepted_urls: []})),
    90123  'mode: "follow", non-intercepted request, no server redirect');
    91124
    92 promise_test(t => setup
     125promise_test(t => setup_and_clean()
    93126  .then(() => redirected_test({url: REDIRECT_TO_TARGET_URL,
    94127                               fetch_option: {},
    95128                               fetch_method: self.fetch,
    96                                cache: cache,
    97                                expected_redirected: true})),
     129                               expected_type: 'basic',
     130                               expected_redirected: true,
     131                               expected_intercepted_urls: []})),
    98132  'mode: "follow", non-intercepted request');
    99133
    100 promise_test(t => setup
     134promise_test(t => setup_and_clean()
    101135  .then(() => redirected_test({url: REDIRECT_TO_TARGET_URL + '&manual',
    102136                               fetch_option: {redirect: 'manual'},
    103137                               fetch_method: self.fetch,
    104                                cache: cache,
    105                                expected_redirected: false})),
     138                               expected_type: 'opaqueredirect',
     139                               expected_redirected: false,
     140                               expected_intercepted_urls: []})),
    106141  'mode: "manual", non-intercepted request');
    107142
    108 promise_test(t => setup
     143promise_test(t => setup_and_clean()
    109144    .then(() => promise_rejects(
    110145                   t, new TypeError(),
     
    112147                              {redirect:'error'}),
    113148                   'The redirect response from the server should be treated as' +
    114                    ' an error when the redirect flag of request was \'error\'.')),
     149                   ' an error when the redirect flag of request was \'error\'.'))
     150    .then(() => check_intercepted_urls([])),
    115151  'mode: "error", non-intercepted request');
    116152
    117 promise_test(t => setup
    118     .then(() => redirected_test({url:'./?url=' + encodeURIComponent(TARGET_URL),
    119                                fetch_option: {},
    120                                fetch_method: frame.contentWindow.fetch,
    121                                cache: cache,
    122                                expected_redirected: false})),
     153promise_test(t => setup_and_clean()
     154    .then(() => {
     155      const url = TARGET_URL + '&sw=fetch';
     156      return redirected_test({url: url,
     157                              fetch_option: {},
     158                              fetch_method: frame.contentWindow.fetch,
     159                              expected_type: 'basic',
     160                              expected_redirected: false,
     161                              expected_intercepted_urls: [url]})
     162    }),
    123163  'mode: "follow", no mode change, no server redirect');
    124164
     
    127167// worker returns a redirected response.
    128168// =======================================================
    129 promise_test(t => setup
    130     .then(() => redirected_test({url: './?url=' + encodeURIComponent(REDIRECT_TO_TARGET_URL) +
    131                                        '&original-redirect-mode=follow',
    132                                  fetch_option: {redirect: 'follow'},
    133                                  fetch_method: frame.contentWindow.fetch,
    134                                  cache: cache,
    135                                  expected_redirected: true})),
     169promise_test(t => setup_and_clean()
     170    .then(() => {
     171      const url = REDIRECT_TO_TARGET_URL +
     172                  '&original-redirect-mode=follow&sw=fetch';
     173      return redirected_test({url: url,
     174                              fetch_option: {redirect: 'follow'},
     175                              fetch_method: frame.contentWindow.fetch,
     176                              expected_type: 'basic',
     177                              expected_redirected: true,
     178                              expected_intercepted_urls: [url]})
     179    }),
    136180  'mode: "follow", no mode change');
    137181
    138 promise_test(t => setup
    139     .then(() => promise_rejects(
    140                    t, new TypeError(),
    141                    frame.contentWindow.fetch(
    142                        './?url=' + encodeURIComponent(REDIRECT_TO_TARGET_URL) +
    143                        '&original-redirect-mode=error&redirect-mode=follow',
    144                        {redirect: 'error'}),
    145                    'The redirected response from the service worker should be ' +
    146                    'treated as an error when the redirect flag of request was ' +
    147                    '\'error\'.')),
     182promise_test(t => setup_and_clean()
     183    .then(() => {
     184      const url = REDIRECT_TO_TARGET_URL +
     185                  '&original-redirect-mode=error&sw=follow';
     186      return promise_rejects(
     187          t, new TypeError(),
     188          frame.contentWindow.fetch(url, {redirect: 'error'}),
     189          'The redirected response from the service worker should be ' +
     190          'treated as an error when the redirect flag of request was ' +
     191          '\'error\'.')
     192        .then(() => check_intercepted_urls([url]));
     193    }),
    148194  'mode: "error", mode change: "follow"');
    149195
    150 promise_test(t => setup
    151     .then(() => promise_rejects(
    152                    t, new TypeError(),
    153                    frame.contentWindow.fetch(
    154                        './?url=' + encodeURIComponent(REDIRECT_TO_TARGET_URL) +
    155                        '&original-redirect-mode=manual&redirect-mode=follow',
    156                        {redirect: 'manual'}),
    157                    'The redirected response from the service worker should be ' +
    158                    'treated as an error when the redirect flag of request was ' +
    159                    '\'manual\'.')),
     196promise_test(t => setup_and_clean()
     197    .then(() => {
     198      const url = REDIRECT_TO_TARGET_URL +
     199                  '&original-redirect-mode=manual&sw=follow';
     200      return promise_rejects(
     201          t, new TypeError(),
     202          frame.contentWindow.fetch(url, {redirect: 'manual'}),
     203          'The redirected response from the service worker should be ' +
     204          'treated as an error when the redirect flag of request was ' +
     205          '\'manual\'.')
     206        .then(() => check_intercepted_urls([url]));
     207    }),
    160208  'mode: "manual", mode change: "follow"');
    161209
     
    164212// worker returns an opaqueredirect response.
    165213// =======================================================
    166 promise_test(t => setup
    167     .then(() => promise_rejects(
    168                     t, new TypeError(),
    169                     frame.contentWindow.fetch(
    170                         './?url=' + encodeURIComponent(REDIRECT_TO_TARGET_URL) +
    171                         '&original-redirect-mode=follow&redirect-mode=manual',
    172                         {redirect: 'follow'}),
    173                     'The opaqueredirect response from the service worker should ' +
    174                     'be treated as an error when the redirect flag of request was' +
    175                     ' \'follow\'.')),
    176   'mode: "follow", mode change: "redirect"');
    177 
    178 promise_test(t => setup
    179     .then(() => promise_rejects(
    180                     t, new TypeError(),
    181                     frame.contentWindow.fetch(
    182                         './?url=' + encodeURIComponent(REDIRECT_TO_TARGET_URL) +
    183                         '&original-redirect-mode=error&redirect-mode=manual',
    184                         {redirect: 'error'}),
    185                     'The opaqueredirect response from the service worker should ' +
    186                     'be treated as an error when the redirect flag of request was' +
    187                     ' \'error\'.')),
     214promise_test(t => setup_and_clean()
     215    .then(() => {
     216      const url = REDIRECT_TO_TARGET_URL +
     217                  '&original-redirect-mode=follow&sw=manual';
     218      return promise_rejects(
     219          t, new TypeError(),
     220          frame.contentWindow.fetch(url, {redirect: 'follow'}),
     221          'The opaqueredirect response from the service worker should ' +
     222          'be treated as an error when the redirect flag of request was' +
     223          ' \'follow\'.')
     224        .then(() => check_intercepted_urls([url]));
     225    }),
     226  'mode: "follow", mode change: "manual"');
     227
     228promise_test(t => setup_and_clean()
     229    .then(() => {
     230      const url = REDIRECT_TO_TARGET_URL +
     231                  '&original-redirect-mode=error&sw=manual';
     232      return promise_rejects(
     233          t, new TypeError(),
     234          frame.contentWindow.fetch(url, {redirect: 'error'}),
     235          'The opaqueredirect response from the service worker should ' +
     236          'be treated as an error when the redirect flag of request was' +
     237          ' \'error\'.')
     238        .then(() => check_intercepted_urls([url]));
     239    }),
    188240  'mode: "error", mode change: "manual"');
    189241
    190 promise_test(t => setup
    191     .then(() => redirected_test({url: './?url=' + encodeURIComponent(REDIRECT_TO_TARGET_URL) +
    192                                         '&original-redirect-mode=manual&redirect-mode=manual',
    193                                  fetch_option: {redirect: 'manual'},
    194                                  fetch_method: frame.contentWindow.fetch,
    195                                  cache: cache,
    196                                  expected_redirected: false})),
     242promise_test(t => setup_and_clean()
     243    .then(() => {
     244      const url = REDIRECT_TO_TARGET_URL +
     245                  '&original-redirect-mode=manual&sw=manual';
     246      return redirected_test({url: url,
     247                              fetch_option: {redirect: 'manual'},
     248                              fetch_method: frame.contentWindow.fetch,
     249                              expected_type: 'opaqueredirect',
     250                              expected_redirected: false,
     251                              expected_intercepted_urls: [url]});
     252    }),
    197253  'mode: "manual", no mode change');
     254
     255// =======================================================
     256// Tests for requests that are in-scope of the service worker. The service
     257// worker returns a generated redirect response.
     258// =======================================================
     259promise_test(t => setup_and_clean()
     260    .then(() => {
     261      const url = host_info['HTTPS_ORIGIN'] + base_path() +
     262                  'dummy?url=' + encodeURIComponent(TARGET_URL) +
     263                  '&original-redirect-mode=follow&sw=gen';
     264      return redirected_test({url: url,
     265                              fetch_option: {redirect: 'follow'},
     266                              fetch_method: frame.contentWindow.fetch,
     267                              expected_type: 'basic',
     268                              expected_redirected: true,
     269                              expected_intercepted_urls: [url, TARGET_URL]})
     270    }),
     271  'mode: "follow", generated redirect response');
     272
     273promise_test(t => setup_and_clean()
     274    .then(() => {
     275      const url = host_info['HTTPS_ORIGIN'] + base_path() +
     276                  'dummy?url=' + encodeURIComponent(TARGET_URL) +
     277                  '&original-redirect-mode=error&sw=gen';
     278      return promise_rejects(
     279          t, new TypeError(),
     280          frame.contentWindow.fetch(url, {redirect: 'error'}),
     281          'The generated redirect response from the service worker should ' +
     282          'be treated as an error when the redirect flag of request was' +
     283          ' \'error\'.')
     284        .then(() => check_intercepted_urls([url]));
     285    }),
     286  'mode: "error", generated redirect response');
     287
     288promise_test(t => setup_and_clean()
     289    .then(() => {
     290      const url = host_info['HTTPS_ORIGIN'] + base_path() +
     291                  'dummy?url=' + encodeURIComponent(TARGET_URL) +
     292                  '&original-redirect-mode=follow&sw=gen';
     293      return redirected_test({url: url,
     294                              fetch_option: {redirect: 'manual'},
     295                              fetch_method: frame.contentWindow.fetch,
     296                              expected_type: 'opaqueredirect',
     297                              expected_redirected: false,
     298                              expected_intercepted_urls: [url]})
     299    }),
     300  'mode: "manual", generated redirect response');
     301
     302// =======================================================
     303// Tests for requests that are in-scope of the service worker. The service
     304// worker returns a generated redirect response. And the fetch follows the
     305// redirection multiple times.
     306// =======================================================
     307promise_test(t => setup_and_clean()
     308    .then(() => {
     309      // The Fetch spec says: "If request’s redirect count is twenty, return a
     310      // network error." https://fetch.spec.whatwg.org/#http-redirect-fetch
     311      // So fetch can follow the redirect response 20 times.
     312      let urls = [TARGET_URL];
     313      for (let i = 0; i < 20; ++i) {
     314        urls.unshift(host_info['HTTPS_ORIGIN'] + '/dummy?sw=gen&url=' +
     315                    encodeURIComponent(urls[0]));
     316
     317      }
     318      return redirected_test({url: urls[0],
     319                              fetch_option: {redirect: 'follow'},
     320                              fetch_method: frame.contentWindow.fetch,
     321                              expected_type: 'basic',
     322                              expected_redirected: true,
     323                              expected_intercepted_urls: urls})
     324    }),
     325  'Fetch should follow the redirect response 20 times');
     326
     327promise_test(t => setup_and_clean()
     328    .then(() => {
     329      let urls = [TARGET_URL];
     330      // The Fetch spec says: "If request’s redirect count is twenty, return a
     331      // network error." https://fetch.spec.whatwg.org/#http-redirect-fetch
     332      // So fetch can't follow the redirect response 21 times.
     333      for (let i = 0; i < 21; ++i) {
     334        urls.unshift(host_info['HTTPS_ORIGIN'] + '/dummy?sw=gen&url=' +
     335                    encodeURIComponent(urls[0]));
     336
     337      }
     338      return promise_rejects(
     339          t, new TypeError(),
     340          frame.contentWindow.fetch(urls[0], {redirect: 'follow'}),
     341          'Fetch should not follow the redirect response 21 times.')
     342        .then(() => {
     343          urls.pop();
     344          return check_intercepted_urls(urls)
     345        });
     346    }),
     347  'Fetch should not follow the redirect response 21 times.');
    198348</script>
  • trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resource-timing.https.html

    r220223 r224156  
    1414    assert_greater_than_equal(entry.workerStart, entry.startTime, description);
    1515    assert_less_than_equal(entry.workerStart, entry.fetchStart, description);
     16    assert_greater_than_equal(entry.responseStart, entry.fetchStart, description);
     17    assert_greater_than_equal(entry.responseEnd, entry.responseStart, description);
     18    assert_greater_than(entry.responseEnd, entry.fetchStart, description);
     19    assert_greater_than(entry.duration, 0, description);
    1620    if (resource.indexOf('redirect.py') != -1) {
    1721        assert_less_than_equal(entry.workerStart, entry.redirectStart,
  • trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/navigation-redirect-other-origin.html

    r220223 r224156  
    55var host_info = get_host_info();
    66var SCOPE = 'navigation-redirect-scope1.py';
    7 var SCRIPT = 'navigation-redirect-worker.js';
     7var SCRIPT = 'redirect-worker.js';
    88
    99var registration;
  • trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/redirect-worker.js

    r224155 r224156  
    5656      } else if (params['sw'] == 'fetch') {
    5757        return fetch(event.request);
    58       } else if (params['sw'] == 'opaque') {
     58      } else if (params['sw'] == 'follow') {
     59        return fetch(new Request(event.request.url, {redirect: 'follow'}));
     60      } else if (params['sw'] == 'manual') {
    5961        return fetch(new Request(event.request.url, {redirect: 'manual'}));
    60       } else if (params['sw'] == 'opaqueThroughCache') {
     62      } else if (params['sw'] == 'manualThroughCache') {
    6163        var url = event.request.url;
    6264        var cache;
  • trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/resource-timing-worker.js

    r220223 r224156  
    11self.addEventListener('fetch', function(event) {
    22    if (event.request.url.indexOf('dummy.js') != -1) {
    3       event.respondWith(new Response());
     3      event.respondWith(new Promise(resolve => {
     4        // Slightly delay the response so we ensure we get a non-zero
     5        // duration.
     6        setTimeout(_ => resolve(new Response()), 100);
     7      }));
    48    }
    59  });
  • trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/w3c-import.log

    r223327 r224156  
    160160/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/navigation-redirect-to-http-iframe.html
    161161/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/navigation-redirect-to-http-worker.js
    162 /LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/navigation-redirect-worker.js
    163162/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/notification_icon.py
    164163/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/onactivate-throw-error-from-nested-event-worker.js
     
    184183/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/postmessage-transferables-worker.js
    185184/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/postmessage-worker.js
     185/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/redirect-worker.js
    186186/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/redirect.py
    187187/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/referer-iframe.html
  • trunk/LayoutTests/imported/w3c/web-platform-tests/tools/manifest/catalog/xhtml.dtd

    r223327 r224156  
    1 <!-- ENTITY Tab "&#x9;" -->
    2 <!-- ENTITY NewLine "&#xA;" -->
    3 <!-- ENTITY excl "&#x21;" -->
    4 <!-- ENTITY quot "&#x22;" -->
    5 <!-- ENTITY QUOT "&#x22;" -->
    6 <!-- ENTITY num "&#x23;" -->
    7 <!-- ENTITY dollar "&#x24;" -->
    8 <!-- ENTITY percnt "&#x25;" -->
    9 <!-- ENTITY amp "&#x26;#x26;" -->
    10 <!-- ENTITY AMP "&#x26;#x26;" -->
    11 <!-- ENTITY apos "&#x27;" -->
    12 <!-- ENTITY lpar "&#x28;" -->
    13 <!-- ENTITY rpar "&#x29;" -->
    14 <!-- ENTITY ast "&#x2A;" -->
    15 <!-- ENTITY midast "&#x2A;" -->
    16 <!-- ENTITY plus "&#x2B;" -->
    17 <!-- ENTITY comma "&#x2C;" -->
    18 <!-- ENTITY period "&#x2E;" -->
    19 <!-- ENTITY sol "&#x2F;" -->
    20 <!-- ENTITY colon "&#x3A;" -->
    21 <!-- ENTITY semi "&#x3B;" -->
    22 <!-- ENTITY lt "&#x26;#x3C;" -->
    23 <!-- ENTITY LT "&#x26;#x3C;" -->
    24 <!-- ENTITY nvlt "&#x26;#x3C;&#x20D2;" -->
    25 <!-- ENTITY equals "&#x3D;" -->
    26 <!-- ENTITY bne "&#x3D;&#x20E5;" -->
    27 <!-- ENTITY gt "&#x3E;" -->
    28 <!-- ENTITY GT "&#x3E;" -->
    29 <!-- ENTITY nvgt "&#x3E;&#x20D2;" -->
    30 <!-- ENTITY quest "&#x3F;" -->
    31 <!-- ENTITY commat "&#x40;" -->
    32 <!-- ENTITY lsqb "&#x5B;" -->
    33 <!-- ENTITY lbrack "&#x5B;" -->
    34 <!-- ENTITY bsol "&#x5C;" -->
    35 <!-- ENTITY rsqb "&#x5D;" -->
    36 <!-- ENTITY rbrack "&#x5D;" -->
    37 <!-- ENTITY Hat "&#x5E;" -->
    38 <!-- ENTITY lowbar "&#x5F;" -->
    39 <!-- ENTITY UnderBar "&#x5F;" -->
    40 <!-- ENTITY grave "&#x60;" -->
    41 <!-- ENTITY DiacriticalGrave "&#x60;" -->
    42 <!-- ENTITY fjlig "&#x66;&#x6A;" -->
    43 <!-- ENTITY lcub "&#x7B;" -->
    44 <!-- ENTITY lbrace "&#x7B;" -->
    45 <!-- ENTITY verbar "&#x7C;" -->
    46 <!-- ENTITY vert "&#x7C;" -->
    47 <!-- ENTITY VerticalLine "&#x7C;" -->
    48 <!-- ENTITY rcub "&#x7D;" -->
    49 <!-- ENTITY rbrace "&#x7D;" -->
    50 <!-- ENTITY nbsp "&#xA0;" -->
    51 <!-- ENTITY NonBreakingSpace "&#xA0;" -->
    52 <!-- ENTITY iexcl "&#xA1;" -->
    53 <!-- ENTITY cent "&#xA2;" -->
    54 <!-- ENTITY pound "&#xA3;" -->
    55 <!-- ENTITY curren "&#xA4;" -->
    56 <!-- ENTITY yen "&#xA5;" -->
    57 <!-- ENTITY brvbar "&#xA6;" -->
    58 <!-- ENTITY sect "&#xA7;" -->
    59 <!-- ENTITY Dot "&#xA8;" -->
    60 <!-- ENTITY die "&#xA8;" -->
    61 <!-- ENTITY DoubleDot "&#xA8;" -->
    62 <!-- ENTITY uml "&#xA8;" -->
    63 <!-- ENTITY copy "&#xA9;" -->
    64 <!-- ENTITY COPY "&#xA9;" -->
    65 <!-- ENTITY ordf "&#xAA;" -->
    66 <!-- ENTITY laquo "&#xAB;" -->
    67 <!-- ENTITY not "&#xAC;" -->
    68 <!-- ENTITY shy "&#xAD;" -->
    69 <!-- ENTITY reg "&#xAE;" -->
    70 <!-- ENTITY circledR "&#xAE;" -->
    71 <!-- ENTITY REG "&#xAE;" -->
    72 <!-- ENTITY macr "&#xAF;" -->
    73 <!-- ENTITY strns "&#xAF;" -->
    74 <!-- ENTITY deg "&#xB0;" -->
    75 <!-- ENTITY plusmn "&#xB1;" -->
    76 <!-- ENTITY pm "&#xB1;" -->
    77 <!-- ENTITY PlusMinus "&#xB1;" -->
    78 <!-- ENTITY sup2 "&#xB2;" -->
    79 <!-- ENTITY sup3 "&#xB3;" -->
    80 <!-- ENTITY acute "&#xB4;" -->
    81 <!-- ENTITY DiacriticalAcute "&#xB4;" -->
    82 <!-- ENTITY micro "&#xB5;" -->
    83 <!-- ENTITY para "&#xB6;" -->
    84 <!-- ENTITY middot "&#xB7;" -->
    85 <!-- ENTITY centerdot "&#xB7;" -->
    86 <!-- ENTITY CenterDot "&#xB7;" -->
    87 <!-- ENTITY cedil "&#xB8;" -->
    88 <!-- ENTITY Cedilla "&#xB8;" -->
    89 <!-- ENTITY sup1 "&#xB9;" -->
    90 <!-- ENTITY ordm "&#xBA;" -->
    91 <!-- ENTITY raquo "&#xBB;" -->
    92 <!-- ENTITY frac14 "&#xBC;" -->
    93 <!-- ENTITY frac12 "&#xBD;" -->
    94 <!-- ENTITY half "&#xBD;" -->
    95 <!-- ENTITY frac34 "&#xBE;" -->
    96 <!-- ENTITY iquest "&#xBF;" -->
    97 <!-- ENTITY Agrave "&#xC0;" -->
    98 <!-- ENTITY Aacute "&#xC1;" -->
    99 <!-- ENTITY Acirc "&#xC2;" -->
    100 <!-- ENTITY Atilde "&#xC3;" -->
    101 <!-- ENTITY Auml "&#xC4;" -->
    102 <!-- ENTITY Aring "&#xC5;" -->
    103 <!-- ENTITY angst "&#xC5;" -->
    104 <!-- ENTITY AElig "&#xC6;" -->
    105 <!-- ENTITY Ccedil "&#xC7;" -->
    106 <!-- ENTITY Egrave "&#xC8;" -->
    107 <!-- ENTITY Eacute "&#xC9;" -->
    108 <!-- ENTITY Ecirc "&#xCA;" -->
    109 <!-- ENTITY Euml "&#xCB;" -->
    110 <!-- ENTITY Igrave "&#xCC;" -->
    111 <!-- ENTITY Iacute "&#xCD;" -->
    112 <!-- ENTITY Icirc "&#xCE;" -->
    113 <!-- ENTITY Iuml "&#xCF;" -->
    114 <!-- ENTITY ETH "&#xD0;" -->
    115 <!-- ENTITY Ntilde "&#xD1;" -->
    116 <!-- ENTITY Ograve "&#xD2;" -->
    117 <!-- ENTITY Oacute "&#xD3;" -->
    118 <!-- ENTITY Ocirc "&#xD4;" -->
    119 <!-- ENTITY Otilde "&#xD5;" -->
    120 <!-- ENTITY Ouml "&#xD6;" -->
    121 <!-- ENTITY times "&#xD7;" -->
    122 <!-- ENTITY Oslash "&#xD8;" -->
    123 <!-- ENTITY Ugrave "&#xD9;" -->
    124 <!-- ENTITY Uacute "&#xDA;" -->
    125 <!-- ENTITY Ucirc "&#xDB;" -->
    126 <!-- ENTITY Uuml "&#xDC;" -->
    127 <!-- ENTITY Yacute "&#xDD;" -->
    128 <!-- ENTITY THORN "&#xDE;" -->
    129 <!-- ENTITY szlig "&#xDF;" -->
    130 <!-- ENTITY agrave "&#xE0;" -->
    131 <!-- ENTITY aacute "&#xE1;" -->
    132 <!-- ENTITY acirc "&#xE2;" -->
    133 <!-- ENTITY atilde "&#xE3;" -->
    134 <!-- ENTITY auml "&#xE4;" -->
    135 <!-- ENTITY aring "&#xE5;" -->
    136 <!-- ENTITY aelig "&#xE6;" -->
    137 <!-- ENTITY ccedil "&#xE7;" -->
    138 <!-- ENTITY egrave "&#xE8;" -->
    139 <!-- ENTITY eacute "&#xE9;" -->
    140 <!-- ENTITY ecirc "&#xEA;" -->
    141 <!-- ENTITY euml "&#xEB;" -->
    142 <!-- ENTITY igrave "&#xEC;" -->
    143 <!-- ENTITY iacute "&#xED;" -->
    144 <!-- ENTITY icirc "&#xEE;" -->
    145 <!-- ENTITY iuml "&#xEF;" -->
    146 <!-- ENTITY eth "&#xF0;" -->
    147 <!-- ENTITY ntilde "&#xF1;" -->
    148 <!-- ENTITY ograve "&#xF2;" -->
    149 <!-- ENTITY oacute "&#xF3;" -->
    150 <!-- ENTITY ocirc "&#xF4;" -->
    151 <!-- ENTITY otilde "&#xF5;" -->
    152 <!-- ENTITY ouml "&#xF6;" -->
    153 <!-- ENTITY divide "&#xF7;" -->
    154 <!-- ENTITY div "&#xF7;" -->
    155 <!-- ENTITY oslash "&#xF8;" -->
    156 <!-- ENTITY ugrave "&#xF9;" -->
    157 <!-- ENTITY uacute "&#xFA;" -->
    158 <!-- ENTITY ucirc "&#xFB;" -->
    159 <!-- ENTITY uuml "&#xFC;" -->
    160 <!-- ENTITY yacute "&#xFD;" -->
    161 <!-- ENTITY thorn "&#xFE;" -->
    162 <!-- ENTITY yuml "&#xFF;" -->
    163 <!-- ENTITY Amacr "&#x100;" -->
    164 <!-- ENTITY amacr "&#x101;" -->
    165 <!-- ENTITY Abreve "&#x102;" -->
    166 <!-- ENTITY abreve "&#x103;" -->
    167 <!-- ENTITY Aogon "&#x104;" -->
    168 <!-- ENTITY aogon "&#x105;" -->
    169 <!-- ENTITY Cacute "&#x106;" -->
    170 <!-- ENTITY cacute "&#x107;" -->
    171 <!-- ENTITY Ccirc "&#x108;" -->
    172 <!-- ENTITY ccirc "&#x109;" -->
    173 <!-- ENTITY Cdot "&#x10A;" -->
    174 <!-- ENTITY cdot "&#x10B;" -->
    175 <!-- ENTITY Ccaron "&#x10C;" -->
    176 <!-- ENTITY ccaron "&#x10D;" -->
    177 <!-- ENTITY Dcaron "&#x10E;" -->
    178 <!-- ENTITY dcaron "&#x10F;" -->
    179 <!-- ENTITY Dstrok "&#x110;" -->
    180 <!-- ENTITY dstrok "&#x111;" -->
    181 <!-- ENTITY Emacr "&#x112;" -->
    182 <!-- ENTITY emacr "&#x113;" -->
    183 <!-- ENTITY Edot "&#x116;" -->
    184 <!-- ENTITY edot "&#x117;" -->
    185 <!-- ENTITY Eogon "&#x118;" -->
    186 <!-- ENTITY eogon "&#x119;" -->
    187 <!-- ENTITY Ecaron "&#x11A;" -->
    188 <!-- ENTITY ecaron "&#x11B;" -->
    189 <!-- ENTITY Gcirc "&#x11C;" -->
    190 <!-- ENTITY gcirc "&#x11D;" -->
    191 <!-- ENTITY Gbreve "&#x11E;" -->
    192 <!-- ENTITY gbreve "&#x11F;" -->
    193 <!-- ENTITY Gdot "&#x120;" -->
    194 <!-- ENTITY gdot "&#x121;" -->
    195 <!-- ENTITY Gcedil "&#x122;" -->
    196 <!-- ENTITY Hcirc "&#x124;" -->
    197 <!-- ENTITY hcirc "&#x125;" -->
    198 <!-- ENTITY Hstrok "&#x126;" -->
    199 <!-- ENTITY hstrok "&#x127;" -->
    200 <!-- ENTITY Itilde "&#x128;" -->
    201 <!-- ENTITY itilde "&#x129;" -->
    202 <!-- ENTITY Imacr "&#x12A;" -->
    203 <!-- ENTITY imacr "&#x12B;" -->
    204 <!-- ENTITY Iogon "&#x12E;" -->
    205 <!-- ENTITY iogon "&#x12F;" -->
    206 <!-- ENTITY Idot "&#x130;" -->
    207 <!-- ENTITY imath "&#x131;" -->
    208 <!-- ENTITY inodot "&#x131;" -->
    209 <!-- ENTITY IJlig "&#x132;" -->
    210 <!-- ENTITY ijlig "&#x133;" -->
    211 <!-- ENTITY Jcirc "&#x134;" -->
    212 <!-- ENTITY jcirc "&#x135;" -->
    213 <!-- ENTITY Kcedil "&#x136;" -->
    214 <!-- ENTITY kcedil "&#x137;" -->
    215 <!-- ENTITY kgreen "&#x138;" -->
    216 <!-- ENTITY Lacute "&#x139;" -->
    217 <!-- ENTITY lacute "&#x13A;" -->
    218 <!-- ENTITY Lcedil "&#x13B;" -->
    219 <!-- ENTITY lcedil "&#x13C;" -->
    220 <!-- ENTITY Lcaron "&#x13D;" -->
    221 <!-- ENTITY lcaron "&#x13E;" -->
    222 <!-- ENTITY Lmidot "&#x13F;" -->
    223 <!-- ENTITY lmidot "&#x140;" -->
    224 <!-- ENTITY Lstrok "&#x141;" -->
    225 <!-- ENTITY lstrok "&#x142;" -->
    226 <!-- ENTITY Nacute "&#x143;" -->
    227 <!-- ENTITY nacute "&#x144;" -->
    228 <!-- ENTITY Ncedil "&#x145;" -->
    229 <!-- ENTITY ncedil "&#x146;" -->
    230 <!-- ENTITY Ncaron "&#x147;" -->
    231 <!-- ENTITY ncaron "&#x148;" -->
    232 <!-- ENTITY napos "&#x149;" -->
    233 <!-- ENTITY ENG "&#x14A;" -->
    234 <!-- ENTITY eng "&#x14B;" -->
    235 <!-- ENTITY Omacr "&#x14C;" -->
    236 <!-- ENTITY omacr "&#x14D;" -->
    237 <!-- ENTITY Odblac "&#x150;" -->
    238 <!-- ENTITY odblac "&#x151;" -->
    239 <!-- ENTITY OElig "&#x152;" -->
    240 <!-- ENTITY oelig "&#x153;" -->
    241 <!-- ENTITY Racute "&#x154;" -->
    242 <!-- ENTITY racute "&#x155;" -->
    243 <!-- ENTITY Rcedil "&#x156;" -->
    244 <!-- ENTITY rcedil "&#x157;" -->
    245 <!-- ENTITY Rcaron "&#x158;" -->
    246 <!-- ENTITY rcaron "&#x159;" -->
    247 <!-- ENTITY Sacute "&#x15A;" -->
    248 <!-- ENTITY sacute "&#x15B;" -->
    249 <!-- ENTITY Scirc "&#x15C;" -->
    250 <!-- ENTITY scirc "&#x15D;" -->
    251 <!-- ENTITY Scedil "&#x15E;" -->
    252 <!-- ENTITY scedil "&#x15F;" -->
    253 <!-- ENTITY Scaron "&#x160;" -->
    254 <!-- ENTITY scaron "&#x161;" -->
    255 <!-- ENTITY Tcedil "&#x162;" -->
    256 <!-- ENTITY tcedil "&#x163;" -->
    257 <!-- ENTITY Tcaron "&#x164;" -->
    258 <!-- ENTITY tcaron "&#x165;" -->
    259 <!-- ENTITY Tstrok "&#x166;" -->
    260 <!-- ENTITY tstrok "&#x167;" -->
    261 <!-- ENTITY Utilde "&#x168;" -->
    262 <!-- ENTITY utilde "&#x169;" -->
    263 <!-- ENTITY Umacr "&#x16A;" -->
    264 <!-- ENTITY umacr "&#x16B;" -->
    265 <!-- ENTITY Ubreve "&#x16C;" -->
    266 <!-- ENTITY ubreve "&#x16D;" -->
    267 <!-- ENTITY Uring "&#x16E;" -->
    268 <!-- ENTITY uring "&#x16F;" -->
    269 <!-- ENTITY Udblac "&#x170;" -->
    270 <!-- ENTITY udblac "&#x171;" -->
    271 <!-- ENTITY Uogon "&#x172;" -->
    272 <!-- ENTITY uogon "&#x173;" -->
    273 <!-- ENTITY Wcirc "&#x174;" -->
    274 <!-- ENTITY wcirc "&#x175;" -->
    275 <!-- ENTITY Ycirc "&#x176;" -->
    276 <!-- ENTITY ycirc "&#x177;" -->
    277 <!-- ENTITY Yuml "&#x178;" -->
    278 <!-- ENTITY Zacute "&#x179;" -->
    279 <!-- ENTITY zacute "&#x17A;" -->
    280 <!-- ENTITY Zdot "&#x17B;" -->
    281 <!-- ENTITY zdot "&#x17C;" -->
    282 <!-- ENTITY Zcaron "&#x17D;" -->
    283 <!-- ENTITY zcaron "&#x17E;" -->
    284 <!-- ENTITY fnof "&#x192;" -->
    285 <!-- ENTITY imped "&#x1B5;" -->
    286 <!-- ENTITY gacute "&#x1F5;" -->
    287 <!-- ENTITY jmath "&#x237;" -->
    288 <!-- ENTITY circ "&#x2C6;" -->
    289 <!-- ENTITY caron "&#x2C7;" -->
    290 <!-- ENTITY Hacek "&#x2C7;" -->
    291 <!-- ENTITY breve "&#x2D8;" -->
    292 <!-- ENTITY Breve "&#x2D8;" -->
    293 <!-- ENTITY dot "&#x2D9;" -->
    294 <!-- ENTITY DiacriticalDot "&#x2D9;" -->
    295 <!-- ENTITY ring "&#x2DA;" -->
    296 <!-- ENTITY ogon "&#x2DB;" -->
    297 <!-- ENTITY tilde "&#x2DC;" -->
    298 <!-- ENTITY DiacriticalTilde "&#x2DC;" -->
    299 <!-- ENTITY dblac "&#x2DD;" -->
    300 <!-- ENTITY DiacriticalDoubleAcute "&#x2DD;" -->
    301 <!-- ENTITY DownBreve "&#x311;" -->
    302 <!-- ENTITY Alpha "&#x391;" -->
    303 <!-- ENTITY Beta "&#x392;" -->
    304 <!-- ENTITY Gamma "&#x393;" -->
    305 <!-- ENTITY Delta "&#x394;" -->
    306 <!-- ENTITY Epsilon "&#x395;" -->
    307 <!-- ENTITY Zeta "&#x396;" -->
    308 <!-- ENTITY Eta "&#x397;" -->
    309 <!-- ENTITY Theta "&#x398;" -->
    310 <!-- ENTITY Iota "&#x399;" -->
    311 <!-- ENTITY Kappa "&#x39A;" -->
    312 <!-- ENTITY Lambda "&#x39B;" -->
    313 <!-- ENTITY Mu "&#x39C;" -->
    314 <!-- ENTITY Nu "&#x39D;" -->
    315 <!-- ENTITY Xi "&#x39E;" -->
    316 <!-- ENTITY Omicron "&#x39F;" -->
    317 <!-- ENTITY Pi "&#x3A0;" -->
    318 <!-- ENTITY Rho "&#x3A1;" -->
    319 <!-- ENTITY Sigma "&#x3A3;" -->
    320 <!-- ENTITY Tau "&#x3A4;" -->
    321 <!-- ENTITY Upsilon "&#x3A5;" -->
    322 <!-- ENTITY Phi "&#x3A6;" -->
    323 <!-- ENTITY Chi "&#x3A7;" -->
    324 <!-- ENTITY Psi "&#x3A8;" -->
    325 <!-- ENTITY Omega "&#x3A9;" -->
    326 <!-- ENTITY ohm "&#x3A9;" -->
    327 <!-- ENTITY alpha "&#x3B1;" -->
    328 <!-- ENTITY beta "&#x3B2;" -->
    329 <!-- ENTITY gamma "&#x3B3;" -->
    330 <!-- ENTITY delta "&#x3B4;" -->
    331 <!-- ENTITY epsi "&#x3B5;" -->
    332 <!-- ENTITY epsilon "&#x3B5;" -->
    333 <!-- ENTITY zeta "&#x3B6;" -->
    334 <!-- ENTITY eta "&#x3B7;" -->
    335 <!-- ENTITY theta "&#x3B8;" -->
    336 <!-- ENTITY iota "&#x3B9;" -->
    337 <!-- ENTITY kappa "&#x3BA;" -->
    338 <!-- ENTITY lambda "&#x3BB;" -->
    339 <!-- ENTITY mu "&#x3BC;" -->
    340 <!-- ENTITY nu "&#x3BD;" -->
    341 <!-- ENTITY xi "&#x3BE;" -->
    342 <!-- ENTITY omicron "&#x3BF;" -->
    343 <!-- ENTITY pi "&#x3C0;" -->
    344 <!-- ENTITY rho "&#x3C1;" -->
    345 <!-- ENTITY sigmav "&#x3C2;" -->
    346 <!-- ENTITY varsigma "&#x3C2;" -->
    347 <!-- ENTITY sigmaf "&#x3C2;" -->
    348 <!-- ENTITY sigma "&#x3C3;" -->
    349 <!-- ENTITY tau "&#x3C4;" -->
    350 <!-- ENTITY upsi "&#x3C5;" -->
    351 <!-- ENTITY upsilon "&#x3C5;" -->
    352 <!-- ENTITY phi "&#x3C6;" -->
    353 <!-- ENTITY chi "&#x3C7;" -->
    354 <!-- ENTITY psi "&#x3C8;" -->
    355 <!-- ENTITY omega "&#x3C9;" -->
    356 <!-- ENTITY thetav "&#x3D1;" -->
    357 <!-- ENTITY vartheta "&#x3D1;" -->
    358 <!-- ENTITY thetasym "&#x3D1;" -->
    359 <!-- ENTITY Upsi "&#x3D2;" -->
    360 <!-- ENTITY upsih "&#x3D2;" -->
    361 <!-- ENTITY straightphi "&#x3D5;" -->
    362 <!-- ENTITY phiv "&#x3D5;" -->
    363 <!-- ENTITY varphi "&#x3D5;" -->
    364 <!-- ENTITY piv "&#x3D6;" -->
    365 <!-- ENTITY varpi "&#x3D6;" -->
    366 <!-- ENTITY Gammad "&#x3DC;" -->
    367 <!-- ENTITY gammad "&#x3DD;" -->
    368 <!-- ENTITY digamma "&#x3DD;" -->
    369 <!-- ENTITY kappav "&#x3F0;" -->
    370 <!-- ENTITY varkappa "&#x3F0;" -->
    371 <!-- ENTITY rhov "&#x3F1;" -->
    372 <!-- ENTITY varrho "&#x3F1;" -->
    373 <!-- ENTITY epsiv "&#x3F5;" -->
    374 <!-- ENTITY straightepsilon "&#x3F5;" -->
    375 <!-- ENTITY varepsilon "&#x3F5;" -->
    376 <!-- ENTITY bepsi "&#x3F6;" -->
    377 <!-- ENTITY backepsilon "&#x3F6;" -->
    378 <!-- ENTITY IOcy "&#x401;" -->
    379 <!-- ENTITY DJcy "&#x402;" -->
    380 <!-- ENTITY GJcy "&#x403;" -->
    381 <!-- ENTITY Jukcy "&#x404;" -->
    382 <!-- ENTITY DScy "&#x405;" -->
    383 <!-- ENTITY Iukcy "&#x406;" -->
    384 <!-- ENTITY YIcy "&#x407;" -->
    385 <!-- ENTITY Jsercy "&#x408;" -->
    386 <!-- ENTITY LJcy "&#x409;" -->
    387 <!-- ENTITY NJcy "&#x40A;" -->
    388 <!-- ENTITY TSHcy "&#x40B;" -->
    389 <!-- ENTITY KJcy "&#x40C;" -->
    390 <!-- ENTITY Ubrcy "&#x40E;" -->
    391 <!-- ENTITY DZcy "&#x40F;" -->
    392 <!-- ENTITY Acy "&#x410;" -->
    393 <!-- ENTITY Bcy "&#x411;" -->
    394 <!-- ENTITY Vcy "&#x412;" -->
    395 <!-- ENTITY Gcy "&#x413;" -->
    396 <!-- ENTITY Dcy "&#x414;" -->
    397 <!-- ENTITY IEcy "&#x415;" -->
    398 <!-- ENTITY ZHcy "&#x416;" -->
    399 <!-- ENTITY Zcy "&#x417;" -->
    400 <!-- ENTITY Icy "&#x418;" -->
    401 <!-- ENTITY Jcy "&#x419;" -->
    402 <!-- ENTITY Kcy "&#x41A;" -->
    403 <!-- ENTITY Lcy "&#x41B;" -->
    404 <!-- ENTITY Mcy "&#x41C;" -->
    405 <!-- ENTITY Ncy "&#x41D;" -->
    406 <!-- ENTITY Ocy "&#x41E;" -->
    407 <!-- ENTITY Pcy "&#x41F;" -->
    408 <!-- ENTITY Rcy "&#x420;" -->
    409 <!-- ENTITY Scy "&#x421;" -->
    410 <!-- ENTITY Tcy "&#x422;" -->
    411 <!-- ENTITY Ucy "&#x423;" -->
    412 <!-- ENTITY Fcy "&#x424;" -->
    413 <!-- ENTITY KHcy "&#x425;" -->
    414 <!-- ENTITY TScy "&#x426;" -->
    415 <!-- ENTITY CHcy "&#x427;" -->
    416 <!-- ENTITY SHcy "&#x428;" -->
    417 <!-- ENTITY SHCHcy "&#x429;" -->
    418 <!-- ENTITY HARDcy "&#x42A;" -->
    419 <!-- ENTITY Ycy "&#x42B;" -->
    420 <!-- ENTITY SOFTcy "&#x42C;" -->
    421 <!-- ENTITY Ecy "&#x42D;" -->
    422 <!-- ENTITY YUcy "&#x42E;" -->
    423 <!-- ENTITY YAcy "&#x42F;" -->
    424 <!-- ENTITY acy "&#x430;" -->
    425 <!-- ENTITY bcy "&#x431;" -->
    426 <!-- ENTITY vcy "&#x432;" -->
    427 <!-- ENTITY gcy "&#x433;" -->
    428 <!-- ENTITY dcy "&#x434;" -->
    429 <!-- ENTITY iecy "&#x435;" -->
    430 <!-- ENTITY zhcy "&#x436;" -->
    431 <!-- ENTITY zcy "&#x437;" -->
    432 <!-- ENTITY icy "&#x438;" -->
    433 <!-- ENTITY jcy "&#x439;" -->
    434 <!-- ENTITY kcy "&#x43A;" -->
    435 <!-- ENTITY lcy "&#x43B;" -->
    436 <!-- ENTITY mcy "&#x43C;" -->
    437 <!-- ENTITY ncy "&#x43D;" -->
    438 <!-- ENTITY ocy "&#x43E;" -->
    439 <!-- ENTITY pcy "&#x43F;" -->
    440 <!-- ENTITY rcy "&#x440;" -->
    441 <!-- ENTITY scy "&#x441;" -->
    442 <!-- ENTITY tcy "&#x442;" -->
    443 <!-- ENTITY ucy "&#x443;" -->
    444 <!-- ENTITY fcy "&#x444;" -->
    445 <!-- ENTITY khcy "&#x445;" -->
    446 <!-- ENTITY tscy "&#x446;" -->
    447 <!-- ENTITY chcy "&#x447;" -->
    448 <!-- ENTITY shcy "&#x448;" -->
    449 <!-- ENTITY shchcy "&#x449;" -->
    450 <!-- ENTITY hardcy "&#x44A;" -->
    451 <!-- ENTITY ycy "&#x44B;" -->
    452 <!-- ENTITY softcy "&#x44C;" -->
    453 <!-- ENTITY ecy "&#x44D;" -->
    454 <!-- ENTITY yucy "&#x44E;" -->
    455 <!-- ENTITY yacy "&#x44F;" -->
    456 <!-- ENTITY iocy "&#x451;" -->
    457 <!-- ENTITY djcy "&#x452;" -->
    458 <!-- ENTITY gjcy "&#x453;" -->
    459 <!-- ENTITY jukcy "&#x454;" -->
    460 <!-- ENTITY dscy "&#x455;" -->
    461 <!-- ENTITY iukcy "&#x456;" -->
    462 <!-- ENTITY yicy "&#x457;" -->
    463 <!-- ENTITY jsercy "&#x458;" -->
    464 <!-- ENTITY ljcy "&#x459;" -->
    465 <!-- ENTITY njcy "&#x45A;" -->
    466 <!-- ENTITY tshcy "&#x45B;" -->
    467 <!-- ENTITY kjcy "&#x45C;" -->
    468 <!-- ENTITY ubrcy "&#x45E;" -->
    469 <!-- ENTITY dzcy "&#x45F;" -->
    470 <!-- ENTITY ensp "&#x2002;" -->
    471 <!-- ENTITY emsp "&#x2003;" -->
    472 <!-- ENTITY emsp13 "&#x2004;" -->
    473 <!-- ENTITY emsp14 "&#x2005;" -->
    474 <!-- ENTITY numsp "&#x2007;" -->
    475 <!-- ENTITY puncsp "&#x2008;" -->
    476 <!-- ENTITY thinsp "&#x2009;" -->
    477 <!-- ENTITY ThinSpace "&#x2009;" -->
    478 <!-- ENTITY hairsp "&#x200A;" -->
    479 <!-- ENTITY VeryThinSpace "&#x200A;" -->
    480 <!-- ENTITY ZeroWidthSpace "&#x200B;" -->
    481 <!-- ENTITY NegativeVeryThinSpace "&#x200B;" -->
    482 <!-- ENTITY NegativeThinSpace "&#x200B;" -->
    483 <!-- ENTITY NegativeMediumSpace "&#x200B;" -->
    484 <!-- ENTITY NegativeThickSpace "&#x200B;" -->
    485 <!-- ENTITY zwnj "&#x200C;" -->
    486 <!-- ENTITY zwj "&#x200D;" -->
    487 <!-- ENTITY lrm "&#x200E;" -->
    488 <!-- ENTITY rlm "&#x200F;" -->
    489 <!-- ENTITY hyphen "&#x2010;" -->
    490 <!-- ENTITY dash "&#x2010;" -->
    491 <!-- ENTITY ndash "&#x2013;" -->
    492 <!-- ENTITY mdash "&#x2014;" -->
    493 <!-- ENTITY horbar "&#x2015;" -->
    494 <!-- ENTITY Verbar "&#x2016;" -->
    495 <!-- ENTITY Vert "&#x2016;" -->
    496 <!-- ENTITY lsquo "&#x2018;" -->
    497 <!-- ENTITY OpenCurlyQuote "&#x2018;" -->
    498 <!-- ENTITY rsquo "&#x2019;" -->
    499 <!-- ENTITY rsquor "&#x2019;" -->
    500 <!-- ENTITY CloseCurlyQuote "&#x2019;" -->
    501 <!-- ENTITY lsquor "&#x201A;" -->
    502 <!-- ENTITY sbquo "&#x201A;" -->
    503 <!-- ENTITY ldquo "&#x201C;" -->
    504 <!-- ENTITY OpenCurlyDoubleQuote "&#x201C;" -->
    505 <!-- ENTITY rdquo "&#x201D;" -->
    506 <!-- ENTITY rdquor "&#x201D;" -->
    507 <!-- ENTITY CloseCurlyDoubleQuote "&#x201D;" -->
    508 <!-- ENTITY ldquor "&#x201E;" -->
    509 <!-- ENTITY bdquo "&#x201E;" -->
    510 <!-- ENTITY dagger "&#x2020;" -->
    511 <!-- ENTITY Dagger "&#x2021;" -->
    512 <!-- ENTITY ddagger "&#x2021;" -->
    513 <!-- ENTITY bull "&#x2022;" -->
    514 <!-- ENTITY bullet "&#x2022;" -->
    515 <!-- ENTITY nldr "&#x2025;" -->
    516 <!-- ENTITY hellip "&#x2026;" -->
    517 <!-- ENTITY mldr "&#x2026;" -->
    518 <!-- ENTITY permil "&#x2030;" -->
    519 <!-- ENTITY pertenk "&#x2031;" -->
    520 <!-- ENTITY prime "&#x2032;" -->
    521 <!-- ENTITY Prime "&#x2033;" -->
    522 <!-- ENTITY tprime "&#x2034;" -->
    523 <!-- ENTITY bprime "&#x2035;" -->
    524 <!-- ENTITY backprime "&#x2035;" -->
    525 <!-- ENTITY lsaquo "&#x2039;" -->
    526 <!-- ENTITY rsaquo "&#x203A;" -->
    527 <!-- ENTITY oline "&#x203E;" -->
    528 <!-- ENTITY OverBar "&#x203E;" -->
    529 <!-- ENTITY caret "&#x2041;" -->
    530 <!-- ENTITY hybull "&#x2043;" -->
    531 <!-- ENTITY frasl "&#x2044;" -->
    532 <!-- ENTITY bsemi "&#x204F;" -->
    533 <!-- ENTITY qprime "&#x2057;" -->
    534 <!-- ENTITY MediumSpace "&#x205F;" -->
    535 <!-- ENTITY ThickSpace "&#x205F;&#x200A;" -->
    536 <!-- ENTITY NoBreak "&#x2060;" -->
    537 <!-- ENTITY ApplyFunction "&#x2061;" -->
    538 <!-- ENTITY af "&#x2061;" -->
    539 <!-- ENTITY InvisibleTimes "&#x2062;" -->
    540 <!-- ENTITY it "&#x2062;" -->
    541 <!-- ENTITY InvisibleComma "&#x2063;" -->
    542 <!-- ENTITY ic "&#x2063;" -->
    543 <!-- ENTITY euro "&#x20AC;" -->
    544 <!-- ENTITY tdot "&#x20DB;" -->
    545 <!-- ENTITY TripleDot "&#x20DB;" -->
    546 <!-- ENTITY DotDot "&#x20DC;" -->
    547 <!-- ENTITY Copf "&#x2102;" -->
    548 <!-- ENTITY complexes "&#x2102;" -->
    549 <!-- ENTITY incare "&#x2105;" -->
    550 <!-- ENTITY gscr "&#x210A;" -->
    551 <!-- ENTITY hamilt "&#x210B;" -->
    552 <!-- ENTITY HilbertSpace "&#x210B;" -->
    553 <!-- ENTITY Hscr "&#x210B;" -->
    554 <!-- ENTITY Hfr "&#x210C;" -->
    555 <!-- ENTITY Poincareplane "&#x210C;" -->
    556 <!-- ENTITY quaternions "&#x210D;" -->
    557 <!-- ENTITY Hopf "&#x210D;" -->
    558 <!-- ENTITY planckh "&#x210E;" -->
    559 <!-- ENTITY planck "&#x210F;" -->
    560 <!-- ENTITY hbar "&#x210F;" -->
    561 <!-- ENTITY plankv "&#x210F;" -->
    562 <!-- ENTITY hslash "&#x210F;" -->
    563 <!-- ENTITY Iscr "&#x2110;" -->
    564 <!-- ENTITY imagline "&#x2110;" -->
    565 <!-- ENTITY image "&#x2111;" -->
    566 <!-- ENTITY Im "&#x2111;" -->
    567 <!-- ENTITY imagpart "&#x2111;" -->
    568 <!-- ENTITY Ifr "&#x2111;" -->
    569 <!-- ENTITY Lscr "&#x2112;" -->
    570 <!-- ENTITY lagran "&#x2112;" -->
    571 <!-- ENTITY Laplacetrf "&#x2112;" -->
    572 <!-- ENTITY ell "&#x2113;" -->
    573 <!-- ENTITY Nopf "&#x2115;" -->
    574 <!-- ENTITY naturals "&#x2115;" -->
    575 <!-- ENTITY numero "&#x2116;" -->
    576 <!-- ENTITY copysr "&#x2117;" -->
    577 <!-- ENTITY weierp "&#x2118;" -->
    578 <!-- ENTITY wp "&#x2118;" -->
    579 <!-- ENTITY Popf "&#x2119;" -->
    580 <!-- ENTITY primes "&#x2119;" -->
    581 <!-- ENTITY rationals "&#x211A;" -->
    582 <!-- ENTITY Qopf "&#x211A;" -->
    583 <!-- ENTITY Rscr "&#x211B;" -->
    584 <!-- ENTITY realine "&#x211B;" -->
    585 <!-- ENTITY real "&#x211C;" -->
    586 <!-- ENTITY Re "&#x211C;" -->
    587 <!-- ENTITY realpart "&#x211C;" -->
    588 <!-- ENTITY Rfr "&#x211C;" -->
    589 <!-- ENTITY reals "&#x211D;" -->
    590 <!-- ENTITY Ropf "&#x211D;" -->
    591 <!-- ENTITY rx "&#x211E;" -->
    592 <!-- ENTITY trade "&#x2122;" -->
    593 <!-- ENTITY TRADE "&#x2122;" -->
    594 <!-- ENTITY integers "&#x2124;" -->
    595 <!-- ENTITY Zopf "&#x2124;" -->
    596 <!-- ENTITY mho "&#x2127;" -->
    597 <!-- ENTITY Zfr "&#x2128;" -->
    598 <!-- ENTITY zeetrf "&#x2128;" -->
    599 <!-- ENTITY iiota "&#x2129;" -->
    600 <!-- ENTITY bernou "&#x212C;" -->
    601 <!-- ENTITY Bernoullis "&#x212C;" -->
    602 <!-- ENTITY Bscr "&#x212C;" -->
    603 <!-- ENTITY Cfr "&#x212D;" -->
    604 <!-- ENTITY Cayleys "&#x212D;" -->
    605 <!-- ENTITY escr "&#x212F;" -->
    606 <!-- ENTITY Escr "&#x2130;" -->
    607 <!-- ENTITY expectation "&#x2130;" -->
    608 <!-- ENTITY Fscr "&#x2131;" -->
    609 <!-- ENTITY Fouriertrf "&#x2131;" -->
    610 <!-- ENTITY phmmat "&#x2133;" -->
    611 <!-- ENTITY Mellintrf "&#x2133;" -->
    612 <!-- ENTITY Mscr "&#x2133;" -->
    613 <!-- ENTITY order "&#x2134;" -->
    614 <!-- ENTITY orderof "&#x2134;" -->
    615 <!-- ENTITY oscr "&#x2134;" -->
    616 <!-- ENTITY alefsym "&#x2135;" -->
    617 <!-- ENTITY aleph "&#x2135;" -->
    618 <!-- ENTITY beth "&#x2136;" -->
    619 <!-- ENTITY gimel "&#x2137;" -->
    620 <!-- ENTITY daleth "&#x2138;" -->
    621 <!-- ENTITY CapitalDifferentialD "&#x2145;" -->
    622 <!-- ENTITY DD "&#x2145;" -->
    623 <!-- ENTITY DifferentialD "&#x2146;" -->
    624 <!-- ENTITY dd "&#x2146;" -->
    625 <!-- ENTITY ExponentialE "&#x2147;" -->
    626 <!-- ENTITY exponentiale "&#x2147;" -->
    627 <!-- ENTITY ee "&#x2147;" -->
    628 <!-- ENTITY ImaginaryI "&#x2148;" -->
    629 <!-- ENTITY ii "&#x2148;" -->
    630 <!-- ENTITY frac13 "&#x2153;" -->
    631 <!-- ENTITY frac23 "&#x2154;" -->
    632 <!-- ENTITY frac15 "&#x2155;" -->
    633 <!-- ENTITY frac25 "&#x2156;" -->
    634 <!-- ENTITY frac35 "&#x2157;" -->
    635 <!-- ENTITY frac45 "&#x2158;" -->
    636 <!-- ENTITY frac16 "&#x2159;" -->
    637 <!-- ENTITY frac56 "&#x215A;" -->
    638 <!-- ENTITY frac18 "&#x215B;" -->
    639 <!-- ENTITY frac38 "&#x215C;" -->
    640 <!-- ENTITY frac58 "&#x215D;" -->
    641 <!-- ENTITY frac78 "&#x215E;" -->
    642 <!-- ENTITY larr "&#x2190;" -->
    643 <!-- ENTITY leftarrow "&#x2190;" -->
    644 <!-- ENTITY LeftArrow "&#x2190;" -->
    645 <!-- ENTITY slarr "&#x2190;" -->
    646 <!-- ENTITY ShortLeftArrow "&#x2190;" -->
    647 <!-- ENTITY uarr "&#x2191;" -->
    648 <!-- ENTITY uparrow "&#x2191;" -->
    649 <!-- ENTITY UpArrow "&#x2191;" -->
    650 <!-- ENTITY ShortUpArrow "&#x2191;" -->
    651 <!-- ENTITY rarr "&#x2192;" -->
    652 <!-- ENTITY rightarrow "&#x2192;" -->
    653 <!-- ENTITY RightArrow "&#x2192;" -->
    654 <!-- ENTITY srarr "&#x2192;" -->
    655 <!-- ENTITY ShortRightArrow "&#x2192;" -->
    656 <!-- ENTITY darr "&#x2193;" -->
    657 <!-- ENTITY downarrow "&#x2193;" -->
    658 <!-- ENTITY DownArrow "&#x2193;" -->
    659 <!-- ENTITY ShortDownArrow "&#x2193;" -->
    660 <!-- ENTITY harr "&#x2194;" -->
    661 <!-- ENTITY leftrightarrow "&#x2194;" -->
    662 <!-- ENTITY LeftRightArrow "&#x2194;" -->
    663 <!-- ENTITY varr "&#x2195;" -->
    664 <!-- ENTITY updownarrow "&#x2195;" -->
    665 <!-- ENTITY UpDownArrow "&#x2195;" -->
    666 <!-- ENTITY nwarr "&#x2196;" -->
    667 <!-- ENTITY UpperLeftArrow "&#x2196;" -->
    668 <!-- ENTITY nwarrow "&#x2196;" -->
    669 <!-- ENTITY nearr "&#x2197;" -->
    670 <!-- ENTITY UpperRightArrow "&#x2197;" -->
    671 <!-- ENTITY nearrow "&#x2197;" -->
    672 <!-- ENTITY searr "&#x2198;" -->
    673 <!-- ENTITY searrow "&#x2198;" -->
    674 <!-- ENTITY LowerRightArrow "&#x2198;" -->
    675 <!-- ENTITY swarr "&#x2199;" -->
    676 <!-- ENTITY swarrow "&#x2199;" -->
    677 <!-- ENTITY LowerLeftArrow "&#x2199;" -->
    678 <!-- ENTITY nlarr "&#x219A;" -->
    679 <!-- ENTITY nleftarrow "&#x219A;" -->
    680 <!-- ENTITY nrarr "&#x219B;" -->
    681 <!-- ENTITY nrightarrow "&#x219B;" -->
    682 <!-- ENTITY rarrw "&#x219D;" -->
    683 <!-- ENTITY rightsquigarrow "&#x219D;" -->
    684 <!-- ENTITY nrarrw "&#x219D;&#x338;" -->
    685 <!-- ENTITY Larr "&#x219E;" -->
    686 <!-- ENTITY twoheadleftarrow "&#x219E;" -->
    687 <!-- ENTITY Uarr "&#x219F;" -->
    688 <!-- ENTITY Rarr "&#x21A0;" -->
    689 <!-- ENTITY twoheadrightarrow "&#x21A0;" -->
    690 <!-- ENTITY Darr "&#x21A1;" -->
    691 <!-- ENTITY larrtl "&#x21A2;" -->
    692 <!-- ENTITY leftarrowtail "&#x21A2;" -->
    693 <!-- ENTITY rarrtl "&#x21A3;" -->
    694 <!-- ENTITY rightarrowtail "&#x21A3;" -->
    695 <!-- ENTITY LeftTeeArrow "&#x21A4;" -->
    696 <!-- ENTITY mapstoleft "&#x21A4;" -->
    697 <!-- ENTITY UpTeeArrow "&#x21A5;" -->
    698 <!-- ENTITY mapstoup "&#x21A5;" -->
    699 <!-- ENTITY map "&#x21A6;" -->
    700 <!-- ENTITY RightTeeArrow "&#x21A6;" -->
    701 <!-- ENTITY mapsto "&#x21A6;" -->
    702 <!-- ENTITY DownTeeArrow "&#x21A7;" -->
    703 <!-- ENTITY mapstodown "&#x21A7;" -->
    704 <!-- ENTITY larrhk "&#x21A9;" -->
    705 <!-- ENTITY hookleftarrow "&#x21A9;" -->
    706 <!-- ENTITY rarrhk "&#x21AA;" -->
    707 <!-- ENTITY hookrightarrow "&#x21AA;" -->
    708 <!-- ENTITY larrlp "&#x21AB;" -->
    709 <!-- ENTITY looparrowleft "&#x21AB;" -->
    710 <!-- ENTITY rarrlp "&#x21AC;" -->
    711 <!-- ENTITY looparrowright "&#x21AC;" -->
    712 <!-- ENTITY harrw "&#x21AD;" -->
    713 <!-- ENTITY leftrightsquigarrow "&#x21AD;" -->
    714 <!-- ENTITY nharr "&#x21AE;" -->
    715 <!-- ENTITY nleftrightarrow "&#x21AE;" -->
    716 <!-- ENTITY lsh "&#x21B0;" -->
    717 <!-- ENTITY Lsh "&#x21B0;" -->
    718 <!-- ENTITY rsh "&#x21B1;" -->
    719 <!-- ENTITY Rsh "&#x21B1;" -->
    720 <!-- ENTITY ldsh "&#x21B2;" -->
    721 <!-- ENTITY rdsh "&#x21B3;" -->
    722 <!-- ENTITY crarr "&#x21B5;" -->
    723 <!-- ENTITY cularr "&#x21B6;" -->
    724 <!-- ENTITY curvearrowleft "&#x21B6;" -->
    725 <!-- ENTITY curarr "&#x21B7;" -->
    726 <!-- ENTITY curvearrowright "&#x21B7;" -->
    727 <!-- ENTITY olarr "&#x21BA;" -->
    728 <!-- ENTITY circlearrowleft "&#x21BA;" -->
    729 <!-- ENTITY orarr "&#x21BB;" -->
    730 <!-- ENTITY circlearrowright "&#x21BB;" -->
    731 <!-- ENTITY lharu "&#x21BC;" -->
    732 <!-- ENTITY LeftVector "&#x21BC;" -->
    733 <!-- ENTITY leftharpoonup "&#x21BC;" -->
    734 <!-- ENTITY lhard "&#x21BD;" -->
    735 <!-- ENTITY leftharpoondown "&#x21BD;" -->
    736 <!-- ENTITY DownLeftVector "&#x21BD;" -->
    737 <!-- ENTITY uharr "&#x21BE;" -->
    738 <!-- ENTITY upharpoonright "&#x21BE;" -->
    739 <!-- ENTITY RightUpVector "&#x21BE;" -->
    740 <!-- ENTITY uharl "&#x21BF;" -->
    741 <!-- ENTITY upharpoonleft "&#x21BF;" -->
    742 <!-- ENTITY LeftUpVector "&#x21BF;" -->
    743 <!-- ENTITY rharu "&#x21C0;" -->
    744 <!-- ENTITY RightVector "&#x21C0;" -->
    745 <!-- ENTITY rightharpoonup "&#x21C0;" -->
    746 <!-- ENTITY rhard "&#x21C1;" -->
    747 <!-- ENTITY rightharpoondown "&#x21C1;" -->
    748 <!-- ENTITY DownRightVector "&#x21C1;" -->
    749 <!-- ENTITY dharr "&#x21C2;" -->
    750 <!-- ENTITY RightDownVector "&#x21C2;" -->
    751 <!-- ENTITY downharpoonright "&#x21C2;" -->
    752 <!-- ENTITY dharl "&#x21C3;" -->
    753 <!-- ENTITY LeftDownVector "&#x21C3;" -->
    754 <!-- ENTITY downharpoonleft "&#x21C3;" -->
    755 <!-- ENTITY rlarr "&#x21C4;" -->
    756 <!-- ENTITY rightleftarrows "&#x21C4;" -->
    757 <!-- ENTITY RightArrowLeftArrow "&#x21C4;" -->
    758 <!-- ENTITY udarr "&#x21C5;" -->
    759 <!-- ENTITY UpArrowDownArrow "&#x21C5;" -->
    760 <!-- ENTITY lrarr "&#x21C6;" -->
    761 <!-- ENTITY leftrightarrows "&#x21C6;" -->
    762 <!-- ENTITY LeftArrowRightArrow "&#x21C6;" -->
    763 <!-- ENTITY llarr "&#x21C7;" -->
    764 <!-- ENTITY leftleftarrows "&#x21C7;" -->
    765 <!-- ENTITY uuarr "&#x21C8;" -->
    766 <!-- ENTITY upuparrows "&#x21C8;" -->
    767 <!-- ENTITY rrarr "&#x21C9;" -->
    768 <!-- ENTITY rightrightarrows "&#x21C9;" -->
    769 <!-- ENTITY ddarr "&#x21CA;" -->
    770 <!-- ENTITY downdownarrows "&#x21CA;" -->
    771 <!-- ENTITY lrhar "&#x21CB;" -->
    772 <!-- ENTITY ReverseEquilibrium "&#x21CB;" -->
    773 <!-- ENTITY leftrightharpoons "&#x21CB;" -->
    774 <!-- ENTITY rlhar "&#x21CC;" -->
    775 <!-- ENTITY rightleftharpoons "&#x21CC;" -->
    776 <!-- ENTITY Equilibrium "&#x21CC;" -->
    777 <!-- ENTITY nlArr "&#x21CD;" -->
    778 <!-- ENTITY nLeftarrow "&#x21CD;" -->
    779 <!-- ENTITY nhArr "&#x21CE;" -->
    780 <!-- ENTITY nLeftrightarrow "&#x21CE;" -->
    781 <!-- ENTITY nrArr "&#x21CF;" -->
    782 <!-- ENTITY nRightarrow "&#x21CF;" -->
    783 <!-- ENTITY lArr "&#x21D0;" -->
    784 <!-- ENTITY Leftarrow "&#x21D0;" -->
    785 <!-- ENTITY DoubleLeftArrow "&#x21D0;" -->
    786 <!-- ENTITY uArr "&#x21D1;" -->
    787 <!-- ENTITY Uparrow "&#x21D1;" -->
    788 <!-- ENTITY DoubleUpArrow "&#x21D1;" -->
    789 <!-- ENTITY rArr "&#x21D2;" -->
    790 <!-- ENTITY Rightarrow "&#x21D2;" -->
    791 <!-- ENTITY Implies "&#x21D2;" -->
    792 <!-- ENTITY DoubleRightArrow "&#x21D2;" -->
    793 <!-- ENTITY dArr "&#x21D3;" -->
    794 <!-- ENTITY Downarrow "&#x21D3;" -->
    795 <!-- ENTITY DoubleDownArrow "&#x21D3;" -->
    796 <!-- ENTITY hArr "&#x21D4;" -->
    797 <!-- ENTITY Leftrightarrow "&#x21D4;" -->
    798 <!-- ENTITY DoubleLeftRightArrow "&#x21D4;" -->
    799 <!-- ENTITY iff "&#x21D4;" -->
    800 <!-- ENTITY vArr "&#x21D5;" -->
    801 <!-- ENTITY Updownarrow "&#x21D5;" -->
    802 <!-- ENTITY DoubleUpDownArrow "&#x21D5;" -->
    803 <!-- ENTITY nwArr "&#x21D6;" -->
    804 <!-- ENTITY neArr "&#x21D7;" -->
    805 <!-- ENTITY seArr "&#x21D8;" -->
    806 <!-- ENTITY swArr "&#x21D9;" -->
    807 <!-- ENTITY lAarr "&#x21DA;" -->
    808 <!-- ENTITY Lleftarrow "&#x21DA;" -->
    809 <!-- ENTITY rAarr "&#x21DB;" -->
    810 <!-- ENTITY Rrightarrow "&#x21DB;" -->
    811 <!-- ENTITY zigrarr "&#x21DD;" -->
    812 <!-- ENTITY larrb "&#x21E4;" -->
    813 <!-- ENTITY LeftArrowBar "&#x21E4;" -->
    814 <!-- ENTITY rarrb "&#x21E5;" -->
    815 <!-- ENTITY RightArrowBar "&#x21E5;" -->
    816 <!-- ENTITY duarr "&#x21F5;" -->
    817 <!-- ENTITY DownArrowUpArrow "&#x21F5;" -->
    818 <!-- ENTITY loarr "&#x21FD;" -->
    819 <!-- ENTITY roarr "&#x21FE;" -->
    820 <!-- ENTITY hoarr "&#x21FF;" -->
    821 <!-- ENTITY forall "&#x2200;" -->
    822 <!-- ENTITY ForAll "&#x2200;" -->
    823 <!-- ENTITY comp "&#x2201;" -->
    824 <!-- ENTITY complement "&#x2201;" -->
    825 <!-- ENTITY part "&#x2202;" -->
    826 <!-- ENTITY PartialD "&#x2202;" -->
    827 <!-- ENTITY npart "&#x2202;&#x338;" -->
    828 <!-- ENTITY exist "&#x2203;" -->
    829 <!-- ENTITY Exists "&#x2203;" -->
    830 <!-- ENTITY nexist "&#x2204;" -->
    831 <!-- ENTITY NotExists "&#x2204;" -->
    832 <!-- ENTITY nexists "&#x2204;" -->
    833 <!-- ENTITY empty "&#x2205;" -->
    834 <!-- ENTITY emptyset "&#x2205;" -->
    835 <!-- ENTITY emptyv "&#x2205;" -->
    836 <!-- ENTITY varnothing "&#x2205;" -->
    837 <!-- ENTITY nabla "&#x2207;" -->
    838 <!-- ENTITY Del "&#x2207;" -->
    839 <!-- ENTITY isin "&#x2208;" -->
    840 <!-- ENTITY isinv "&#x2208;" -->
    841 <!-- ENTITY Element "&#x2208;" -->
    842 <!-- ENTITY in "&#x2208;" -->
    843 <!-- ENTITY notin "&#x2209;" -->
    844 <!-- ENTITY NotElement "&#x2209;" -->
    845 <!-- ENTITY notinva "&#x2209;" -->
    846 <!-- ENTITY niv "&#x220B;" -->
    847 <!-- ENTITY ReverseElement "&#x220B;" -->
    848 <!-- ENTITY ni "&#x220B;" -->
    849 <!-- ENTITY SuchThat "&#x220B;" -->
    850 <!-- ENTITY notni "&#x220C;" -->
    851 <!-- ENTITY notniva "&#x220C;" -->
    852 <!-- ENTITY NotReverseElement "&#x220C;" -->
    853 <!-- ENTITY prod "&#x220F;" -->
    854 <!-- ENTITY Product "&#x220F;" -->
    855 <!-- ENTITY coprod "&#x2210;" -->
    856 <!-- ENTITY Coproduct "&#x2210;" -->
    857 <!-- ENTITY sum "&#x2211;" -->
    858 <!-- ENTITY Sum "&#x2211;" -->
    859 <!-- ENTITY minus "&#x2212;" -->
    860 <!-- ENTITY mnplus "&#x2213;" -->
    861 <!-- ENTITY mp "&#x2213;" -->
    862 <!-- ENTITY MinusPlus "&#x2213;" -->
    863 <!-- ENTITY plusdo "&#x2214;" -->
    864 <!-- ENTITY dotplus "&#x2214;" -->
    865 <!-- ENTITY setmn "&#x2216;" -->
    866 <!-- ENTITY setminus "&#x2216;" -->
    867 <!-- ENTITY Backslash "&#x2216;" -->
    868 <!-- ENTITY ssetmn "&#x2216;" -->
    869 <!-- ENTITY smallsetminus "&#x2216;" -->
    870 <!-- ENTITY lowast "&#x2217;" -->
    871 <!-- ENTITY compfn "&#x2218;" -->
    872 <!-- ENTITY SmallCircle "&#x2218;" -->
    873 <!-- ENTITY radic "&#x221A;" -->
    874 <!-- ENTITY Sqrt "&#x221A;" -->
    875 <!-- ENTITY prop "&#x221D;" -->
    876 <!-- ENTITY propto "&#x221D;" -->
    877 <!-- ENTITY Proportional "&#x221D;" -->
    878 <!-- ENTITY vprop "&#x221D;" -->
    879 <!-- ENTITY varpropto "&#x221D;" -->
    880 <!-- ENTITY infin "&#x221E;" -->
    881 <!-- ENTITY angrt "&#x221F;" -->
    882 <!-- ENTITY ang "&#x2220;" -->
    883 <!-- ENTITY angle "&#x2220;" -->
    884 <!-- ENTITY nang "&#x2220;&#x20D2;" -->
    885 <!-- ENTITY angmsd "&#x2221;" -->
    886 <!-- ENTITY measuredangle "&#x2221;" -->
    887 <!-- ENTITY angsph "&#x2222;" -->
    888 <!-- ENTITY mid "&#x2223;" -->
    889 <!-- ENTITY VerticalBar "&#x2223;" -->
    890 <!-- ENTITY smid "&#x2223;" -->
    891 <!-- ENTITY shortmid "&#x2223;" -->
    892 <!-- ENTITY nmid "&#x2224;" -->
    893 <!-- ENTITY NotVerticalBar "&#x2224;" -->
    894 <!-- ENTITY nsmid "&#x2224;" -->
    895 <!-- ENTITY nshortmid "&#x2224;" -->
    896 <!-- ENTITY par "&#x2225;" -->
    897 <!-- ENTITY parallel "&#x2225;" -->
    898 <!-- ENTITY DoubleVerticalBar "&#x2225;" -->
    899 <!-- ENTITY spar "&#x2225;" -->
    900 <!-- ENTITY shortparallel "&#x2225;" -->
    901 <!-- ENTITY npar "&#x2226;" -->
    902 <!-- ENTITY nparallel "&#x2226;" -->
    903 <!-- ENTITY NotDoubleVerticalBar "&#x2226;" -->
    904 <!-- ENTITY nspar "&#x2226;" -->
    905 <!-- ENTITY nshortparallel "&#x2226;" -->
    906 <!-- ENTITY and "&#x2227;" -->
    907 <!-- ENTITY wedge "&#x2227;" -->
    908 <!-- ENTITY or "&#x2228;" -->
    909 <!-- ENTITY vee "&#x2228;" -->
    910 <!-- ENTITY cap "&#x2229;" -->
    911 <!-- ENTITY caps "&#x2229;&#xFE00;" -->
    912 <!-- ENTITY cup "&#x222A;" -->
    913 <!-- ENTITY cups "&#x222A;&#xFE00;" -->
    914 <!-- ENTITY int "&#x222B;" -->
    915 <!-- ENTITY Integral "&#x222B;" -->
    916 <!-- ENTITY Int "&#x222C;" -->
    917 <!-- ENTITY tint "&#x222D;" -->
    918 <!-- ENTITY iiint "&#x222D;" -->
    919 <!-- ENTITY conint "&#x222E;" -->
    920 <!-- ENTITY oint "&#x222E;" -->
    921 <!-- ENTITY ContourIntegral "&#x222E;" -->
    922 <!-- ENTITY Conint "&#x222F;" -->
    923 <!-- ENTITY DoubleContourIntegral "&#x222F;" -->
    924 <!-- ENTITY Cconint "&#x2230;" -->
    925 <!-- ENTITY cwint "&#x2231;" -->
    926 <!-- ENTITY cwconint "&#x2232;" -->
    927 <!-- ENTITY ClockwiseContourIntegral "&#x2232;" -->
    928 <!-- ENTITY awconint "&#x2233;" -->
    929 <!-- ENTITY CounterClockwiseContourIntegral "&#x2233;" -->
    930 <!-- ENTITY there4 "&#x2234;" -->
    931 <!-- ENTITY therefore "&#x2234;" -->
    932 <!-- ENTITY Therefore "&#x2234;" -->
    933 <!-- ENTITY becaus "&#x2235;" -->
    934 <!-- ENTITY because "&#x2235;" -->
    935 <!-- ENTITY Because "&#x2235;" -->
    936 <!-- ENTITY ratio "&#x2236;" -->
    937 <!-- ENTITY Colon "&#x2237;" -->
    938 <!-- ENTITY Proportion "&#x2237;" -->
    939 <!-- ENTITY minusd "&#x2238;" -->
    940 <!-- ENTITY dotminus "&#x2238;" -->
    941 <!-- ENTITY mDDot "&#x223A;" -->
    942 <!-- ENTITY homtht "&#x223B;" -->
    943 <!-- ENTITY sim "&#x223C;" -->
    944 <!-- ENTITY Tilde "&#x223C;" -->
    945 <!-- ENTITY thksim "&#x223C;" -->
    946 <!-- ENTITY thicksim "&#x223C;" -->
    947 <!-- ENTITY nvsim "&#x223C;&#x20D2;" -->
    948 <!-- ENTITY bsim "&#x223D;" -->
    949 <!-- ENTITY backsim "&#x223D;" -->
    950 <!-- ENTITY race "&#x223D;&#x331;" -->
    951 <!-- ENTITY ac "&#x223E;" -->
    952 <!-- ENTITY mstpos "&#x223E;" -->
    953 <!-- ENTITY acE "&#x223E;&#x333;" -->
    954 <!-- ENTITY acd "&#x223F;" -->
    955 <!-- ENTITY wreath "&#x2240;" -->
    956 <!-- ENTITY VerticalTilde "&#x2240;" -->
    957 <!-- ENTITY wr "&#x2240;" -->
    958 <!-- ENTITY nsim "&#x2241;" -->
    959 <!-- ENTITY NotTilde "&#x2241;" -->
    960 <!-- ENTITY esim "&#x2242;" -->
    961 <!-- ENTITY EqualTilde "&#x2242;" -->
    962 <!-- ENTITY eqsim "&#x2242;" -->
    963 <!-- ENTITY NotEqualTilde "&#x2242;&#x338;" -->
    964 <!-- ENTITY nesim "&#x2242;&#x338;" -->
    965 <!-- ENTITY sime "&#x2243;" -->
    966 <!-- ENTITY TildeEqual "&#x2243;" -->
    967 <!-- ENTITY simeq "&#x2243;" -->
    968 <!-- ENTITY nsime "&#x2244;" -->
    969 <!-- ENTITY nsimeq "&#x2244;" -->
    970 <!-- ENTITY NotTildeEqual "&#x2244;" -->
    971 <!-- ENTITY cong "&#x2245;" -->
    972 <!-- ENTITY TildeFullEqual "&#x2245;" -->
    973 <!-- ENTITY simne "&#x2246;" -->
    974 <!-- ENTITY ncong "&#x2247;" -->
    975 <!-- ENTITY NotTildeFullEqual "&#x2247;" -->
    976 <!-- ENTITY asymp "&#x2248;" -->
    977 <!-- ENTITY ap "&#x2248;" -->
    978 <!-- ENTITY TildeTilde "&#x2248;" -->
    979 <!-- ENTITY approx "&#x2248;" -->
    980 <!-- ENTITY thkap "&#x2248;" -->
    981 <!-- ENTITY thickapprox "&#x2248;" -->
    982 <!-- ENTITY nap "&#x2249;" -->
    983 <!-- ENTITY NotTildeTilde "&#x2249;" -->
    984 <!-- ENTITY napprox "&#x2249;" -->
    985 <!-- ENTITY ape "&#x224A;" -->
    986 <!-- ENTITY approxeq "&#x224A;" -->
    987 <!-- ENTITY apid "&#x224B;" -->
    988 <!-- ENTITY napid "&#x224B;&#x338;" -->
    989 <!-- ENTITY bcong "&#x224C;" -->
    990 <!-- ENTITY backcong "&#x224C;" -->
    991 <!-- ENTITY asympeq "&#x224D;" -->
    992 <!-- ENTITY CupCap "&#x224D;" -->
    993 <!-- ENTITY nvap "&#x224D;&#x20D2;" -->
    994 <!-- ENTITY bump "&#x224E;" -->
    995 <!-- ENTITY HumpDownHump "&#x224E;" -->
    996 <!-- ENTITY Bumpeq "&#x224E;" -->
    997 <!-- ENTITY NotHumpDownHump "&#x224E;&#x338;" -->
    998 <!-- ENTITY nbump "&#x224E;&#x338;" -->
    999 <!-- ENTITY bumpe "&#x224F;" -->
    1000 <!-- ENTITY HumpEqual "&#x224F;" -->
    1001 <!-- ENTITY bumpeq "&#x224F;" -->
    1002 <!-- ENTITY nbumpe "&#x224F;&#x338;" -->
    1003 <!-- ENTITY NotHumpEqual "&#x224F;&#x338;" -->
    1004 <!-- ENTITY esdot "&#x2250;" -->
    1005 <!-- ENTITY DotEqual "&#x2250;" -->
    1006 <!-- ENTITY doteq "&#x2250;" -->
    1007 <!-- ENTITY nedot "&#x2250;&#x338;" -->
    1008 <!-- ENTITY eDot "&#x2251;" -->
    1009 <!-- ENTITY doteqdot "&#x2251;" -->
    1010 <!-- ENTITY efDot "&#x2252;" -->
    1011 <!-- ENTITY fallingdotseq "&#x2252;" -->
    1012 <!-- ENTITY erDot "&#x2253;" -->
    1013 <!-- ENTITY risingdotseq "&#x2253;" -->
    1014 <!-- ENTITY colone "&#x2254;" -->
    1015 <!-- ENTITY coloneq "&#x2254;" -->
    1016 <!-- ENTITY Assign "&#x2254;" -->
    1017 <!-- ENTITY ecolon "&#x2255;" -->
    1018 <!-- ENTITY eqcolon "&#x2255;" -->
    1019 <!-- ENTITY ecir "&#x2256;" -->
    1020 <!-- ENTITY eqcirc "&#x2256;" -->
    1021 <!-- ENTITY cire "&#x2257;" -->
    1022 <!-- ENTITY circeq "&#x2257;" -->
    1023 <!-- ENTITY wedgeq "&#x2259;" -->
    1024 <!-- ENTITY veeeq "&#x225A;" -->
    1025 <!-- ENTITY trie "&#x225C;" -->
    1026 <!-- ENTITY triangleq "&#x225C;" -->
    1027 <!-- ENTITY equest "&#x225F;" -->
    1028 <!-- ENTITY questeq "&#x225F;" -->
    1029 <!-- ENTITY ne "&#x2260;" -->
    1030 <!-- ENTITY NotEqual "&#x2260;" -->
    1031 <!-- ENTITY equiv "&#x2261;" -->
    1032 <!-- ENTITY Congruent "&#x2261;" -->
    1033 <!-- ENTITY bnequiv "&#x2261;&#x20E5;" -->
    1034 <!-- ENTITY nequiv "&#x2262;" -->
    1035 <!-- ENTITY NotCongruent "&#x2262;" -->
    1036 <!-- ENTITY le "&#x2264;" -->
    1037 <!-- ENTITY leq "&#x2264;" -->
    1038 <!-- ENTITY nvle "&#x2264;&#x20D2;" -->
    1039 <!-- ENTITY ge "&#x2265;" -->
    1040 <!-- ENTITY GreaterEqual "&#x2265;" -->
    1041 <!-- ENTITY geq "&#x2265;" -->
    1042 <!-- ENTITY nvge "&#x2265;&#x20D2;" -->
    1043 <!-- ENTITY lE "&#x2266;" -->
    1044 <!-- ENTITY LessFullEqual "&#x2266;" -->
    1045 <!-- ENTITY leqq "&#x2266;" -->
    1046 <!-- ENTITY nlE "&#x2266;&#x338;" -->
    1047 <!-- ENTITY nleqq "&#x2266;&#x338;" -->
    1048 <!-- ENTITY gE "&#x2267;" -->
    1049 <!-- ENTITY GreaterFullEqual "&#x2267;" -->
    1050 <!-- ENTITY geqq "&#x2267;" -->
    1051 <!-- ENTITY ngE "&#x2267;&#x338;" -->
    1052 <!-- ENTITY ngeqq "&#x2267;&#x338;" -->
    1053 <!-- ENTITY NotGreaterFullEqual "&#x2267;&#x338;" -->
    1054 <!-- ENTITY lnE "&#x2268;" -->
    1055 <!-- ENTITY lneqq "&#x2268;" -->
    1056 <!-- ENTITY lvnE "&#x2268;&#xFE00;" -->
    1057 <!-- ENTITY lvertneqq "&#x2268;&#xFE00;" -->
    1058 <!-- ENTITY gnE "&#x2269;" -->
    1059 <!-- ENTITY gneqq "&#x2269;" -->
    1060 <!-- ENTITY gvnE "&#x2269;&#xFE00;" -->
    1061 <!-- ENTITY gvertneqq "&#x2269;&#xFE00;" -->
    1062 <!-- ENTITY Lt "&#x226A;" -->
    1063 <!-- ENTITY NestedLessLess "&#x226A;" -->
    1064 <!-- ENTITY ll "&#x226A;" -->
    1065 <!-- ENTITY nLtv "&#x226A;&#x338;" -->
    1066 <!-- ENTITY NotLessLess "&#x226A;&#x338;" -->
    1067 <!-- ENTITY nLt "&#x226A;&#x20D2;" -->
    1068 <!-- ENTITY Gt "&#x226B;" -->
    1069 <!-- ENTITY NestedGreaterGreater "&#x226B;" -->
    1070 <!-- ENTITY gg "&#x226B;" -->
    1071 <!-- ENTITY nGtv "&#x226B;&#x338;" -->
    1072 <!-- ENTITY NotGreaterGreater "&#x226B;&#x338;" -->
    1073 <!-- ENTITY nGt "&#x226B;&#x20D2;" -->
    1074 <!-- ENTITY twixt "&#x226C;" -->
    1075 <!-- ENTITY between "&#x226C;" -->
    1076 <!-- ENTITY NotCupCap "&#x226D;" -->
    1077 <!-- ENTITY nlt "&#x226E;" -->
    1078 <!-- ENTITY NotLess "&#x226E;" -->
    1079 <!-- ENTITY nless "&#x226E;" -->
    1080 <!-- ENTITY ngt "&#x226F;" -->
    1081 <!-- ENTITY NotGreater "&#x226F;" -->
    1082 <!-- ENTITY ngtr "&#x226F;" -->
    1083 <!-- ENTITY nle "&#x2270;" -->
    1084 <!-- ENTITY NotLessEqual "&#x2270;" -->
    1085 <!-- ENTITY nleq "&#x2270;" -->
    1086 <!-- ENTITY nge "&#x2271;" -->
    1087 <!-- ENTITY NotGreaterEqual "&#x2271;" -->
    1088 <!-- ENTITY ngeq "&#x2271;" -->
    1089 <!-- ENTITY lsim "&#x2272;" -->
    1090 <!-- ENTITY LessTilde "&#x2272;" -->
    1091 <!-- ENTITY lesssim "&#x2272;" -->
    1092 <!-- ENTITY gsim "&#x2273;" -->
    1093 <!-- ENTITY gtrsim "&#x2273;" -->
    1094 <!-- ENTITY GreaterTilde "&#x2273;" -->
    1095 <!-- ENTITY nlsim "&#x2274;" -->
    1096 <!-- ENTITY NotLessTilde "&#x2274;" -->
    1097 <!-- ENTITY ngsim "&#x2275;" -->
    1098 <!-- ENTITY NotGreaterTilde "&#x2275;" -->
    1099 <!-- ENTITY lg "&#x2276;" -->
    1100 <!-- ENTITY lessgtr "&#x2276;" -->
    1101 <!-- ENTITY LessGreater "&#x2276;" -->
    1102 <!-- ENTITY gl "&#x2277;" -->
    1103 <!-- ENTITY gtrless "&#x2277;" -->
    1104 <!-- ENTITY GreaterLess "&#x2277;" -->
    1105 <!-- ENTITY ntlg "&#x2278;" -->
    1106 <!-- ENTITY NotLessGreater "&#x2278;" -->
    1107 <!-- ENTITY ntgl "&#x2279;" -->
    1108 <!-- ENTITY NotGreaterLess "&#x2279;" -->
    1109 <!-- ENTITY pr "&#x227A;" -->
    1110 <!-- ENTITY Precedes "&#x227A;" -->
    1111 <!-- ENTITY prec "&#x227A;" -->
    1112 <!-- ENTITY sc "&#x227B;" -->
    1113 <!-- ENTITY Succeeds "&#x227B;" -->
    1114 <!-- ENTITY succ "&#x227B;" -->
    1115 <!-- ENTITY prcue "&#x227C;" -->
    1116 <!-- ENTITY PrecedesSlantEqual "&#x227C;" -->
    1117 <!-- ENTITY preccurlyeq "&#x227C;" -->
    1118 <!-- ENTITY sccue "&#x227D;" -->
    1119 <!-- ENTITY SucceedsSlantEqual "&#x227D;" -->
    1120 <!-- ENTITY succcurlyeq "&#x227D;" -->
    1121 <!-- ENTITY prsim "&#x227E;" -->
    1122 <!-- ENTITY precsim "&#x227E;" -->
    1123 <!-- ENTITY PrecedesTilde "&#x227E;" -->
    1124 <!-- ENTITY scsim "&#x227F;" -->
    1125 <!-- ENTITY succsim "&#x227F;" -->
    1126 <!-- ENTITY SucceedsTilde "&#x227F;" -->
    1127 <!-- ENTITY NotSucceedsTilde "&#x227F;&#x338;" -->
    1128 <!-- ENTITY npr "&#x2280;" -->
    1129 <!-- ENTITY nprec "&#x2280;" -->
    1130 <!-- ENTITY NotPrecedes "&#x2280;" -->
    1131 <!-- ENTITY nsc "&#x2281;" -->
    1132 <!-- ENTITY nsucc "&#x2281;" -->
    1133 <!-- ENTITY NotSucceeds "&#x2281;" -->
    1134 <!-- ENTITY sub "&#x2282;" -->
    1135 <!-- ENTITY subset "&#x2282;" -->
    1136 <!-- ENTITY vnsub "&#x2282;&#x20D2;" -->
    1137 <!-- ENTITY nsubset "&#x2282;&#x20D2;" -->
    1138 <!-- ENTITY NotSubset "&#x2282;&#x20D2;" -->
    1139 <!-- ENTITY sup "&#x2283;" -->
    1140 <!-- ENTITY supset "&#x2283;" -->
    1141 <!-- ENTITY Superset "&#x2283;" -->
    1142 <!-- ENTITY vnsup "&#x2283;&#x20D2;" -->
    1143 <!-- ENTITY nsupset "&#x2283;&#x20D2;" -->
    1144 <!-- ENTITY NotSuperset "&#x2283;&#x20D2;" -->
    1145 <!-- ENTITY nsub "&#x2284;" -->
    1146 <!-- ENTITY nsup "&#x2285;" -->
    1147 <!-- ENTITY sube "&#x2286;" -->
    1148 <!-- ENTITY SubsetEqual "&#x2286;" -->
    1149 <!-- ENTITY subseteq "&#x2286;" -->
    1150 <!-- ENTITY supe "&#x2287;" -->
    1151 <!-- ENTITY supseteq "&#x2287;" -->
    1152 <!-- ENTITY SupersetEqual "&#x2287;" -->
    1153 <!-- ENTITY nsube "&#x2288;" -->
    1154 <!-- ENTITY nsubseteq "&#x2288;" -->
    1155 <!-- ENTITY NotSubsetEqual "&#x2288;" -->
    1156 <!-- ENTITY nsupe "&#x2289;" -->
    1157 <!-- ENTITY nsupseteq "&#x2289;" -->
    1158 <!-- ENTITY NotSupersetEqual "&#x2289;" -->
    1159 <!-- ENTITY subne "&#x228A;" -->
    1160 <!-- ENTITY subsetneq "&#x228A;" -->
    1161 <!-- ENTITY vsubne "&#x228A;&#xFE00;" -->
    1162 <!-- ENTITY varsubsetneq "&#x228A;&#xFE00;" -->
    1163 <!-- ENTITY supne "&#x228B;" -->
    1164 <!-- ENTITY supsetneq "&#x228B;" -->
    1165 <!-- ENTITY vsupne "&#x228B;&#xFE00;" -->
    1166 <!-- ENTITY varsupsetneq "&#x228B;&#xFE00;" -->
    1167 <!-- ENTITY cupdot "&#x228D;" -->
    1168 <!-- ENTITY uplus "&#x228E;" -->
    1169 <!-- ENTITY UnionPlus "&#x228E;" -->
    1170 <!-- ENTITY sqsub "&#x228F;" -->
    1171 <!-- ENTITY SquareSubset "&#x228F;" -->
    1172 <!-- ENTITY sqsubset "&#x228F;" -->
    1173 <!-- ENTITY NotSquareSubset "&#x228F;&#x338;" -->
    1174 <!-- ENTITY sqsup "&#x2290;" -->
    1175 <!-- ENTITY SquareSuperset "&#x2290;" -->
    1176 <!-- ENTITY sqsupset "&#x2290;" -->
    1177 <!-- ENTITY NotSquareSuperset "&#x2290;&#x338;" -->
    1178 <!-- ENTITY sqsube "&#x2291;" -->
    1179 <!-- ENTITY SquareSubsetEqual "&#x2291;" -->
    1180 <!-- ENTITY sqsubseteq "&#x2291;" -->
    1181 <!-- ENTITY sqsupe "&#x2292;" -->
    1182 <!-- ENTITY SquareSupersetEqual "&#x2292;" -->
    1183 <!-- ENTITY sqsupseteq "&#x2292;" -->
    1184 <!-- ENTITY sqcap "&#x2293;" -->
    1185 <!-- ENTITY SquareIntersection "&#x2293;" -->
    1186 <!-- ENTITY sqcaps "&#x2293;&#xFE00;" -->
    1187 <!-- ENTITY sqcup "&#x2294;" -->
    1188 <!-- ENTITY SquareUnion "&#x2294;" -->
    1189 <!-- ENTITY sqcups "&#x2294;&#xFE00;" -->
    1190 <!-- ENTITY oplus "&#x2295;" -->
    1191 <!-- ENTITY CirclePlus "&#x2295;" -->
    1192 <!-- ENTITY ominus "&#x2296;" -->
    1193 <!-- ENTITY CircleMinus "&#x2296;" -->
    1194 <!-- ENTITY otimes "&#x2297;" -->
    1195 <!-- ENTITY CircleTimes "&#x2297;" -->
    1196 <!-- ENTITY osol "&#x2298;" -->
    1197 <!-- ENTITY odot "&#x2299;" -->
    1198 <!-- ENTITY CircleDot "&#x2299;" -->
    1199 <!-- ENTITY ocir "&#x229A;" -->
    1200 <!-- ENTITY circledcirc "&#x229A;" -->
    1201 <!-- ENTITY oast "&#x229B;" -->
    1202 <!-- ENTITY circledast "&#x229B;" -->
    1203 <!-- ENTITY odash "&#x229D;" -->
    1204 <!-- ENTITY circleddash "&#x229D;" -->
    1205 <!-- ENTITY plusb "&#x229E;" -->
    1206 <!-- ENTITY boxplus "&#x229E;" -->
    1207 <!-- ENTITY minusb "&#x229F;" -->
    1208 <!-- ENTITY boxminus "&#x229F;" -->
    1209 <!-- ENTITY timesb "&#x22A0;" -->
    1210 <!-- ENTITY boxtimes "&#x22A0;" -->
    1211 <!-- ENTITY sdotb "&#x22A1;" -->
    1212 <!-- ENTITY dotsquare "&#x22A1;" -->
    1213 <!-- ENTITY vdash "&#x22A2;" -->
    1214 <!-- ENTITY RightTee "&#x22A2;" -->
    1215 <!-- ENTITY dashv "&#x22A3;" -->
    1216 <!-- ENTITY LeftTee "&#x22A3;" -->
    1217 <!-- ENTITY top "&#x22A4;" -->
    1218 <!-- ENTITY DownTee "&#x22A4;" -->
    1219 <!-- ENTITY bottom "&#x22A5;" -->
    1220 <!-- ENTITY bot "&#x22A5;" -->
    1221 <!-- ENTITY perp "&#x22A5;" -->
    1222 <!-- ENTITY UpTee "&#x22A5;" -->
    1223 <!-- ENTITY models "&#x22A7;" -->
    1224 <!-- ENTITY vDash "&#x22A8;" -->
    1225 <!-- ENTITY DoubleRightTee "&#x22A8;" -->
    1226 <!-- ENTITY Vdash "&#x22A9;" -->
    1227 <!-- ENTITY Vvdash "&#x22AA;" -->
    1228 <!-- ENTITY VDash "&#x22AB;" -->
    1229 <!-- ENTITY nvdash "&#x22AC;" -->
    1230 <!-- ENTITY nvDash "&#x22AD;" -->
    1231 <!-- ENTITY nVdash "&#x22AE;" -->
    1232 <!-- ENTITY nVDash "&#x22AF;" -->
    1233 <!-- ENTITY prurel "&#x22B0;" -->
    1234 <!-- ENTITY vltri "&#x22B2;" -->
    1235 <!-- ENTITY vartriangleleft "&#x22B2;" -->
    1236 <!-- ENTITY LeftTriangle "&#x22B2;" -->
    1237 <!-- ENTITY vrtri "&#x22B3;" -->
    1238 <!-- ENTITY vartriangleright "&#x22B3;" -->
    1239 <!-- ENTITY RightTriangle "&#x22B3;" -->
    1240 <!-- ENTITY ltrie "&#x22B4;" -->
    1241 <!-- ENTITY trianglelefteq "&#x22B4;" -->
    1242 <!-- ENTITY LeftTriangleEqual "&#x22B4;" -->
    1243 <!-- ENTITY nvltrie "&#x22B4;&#x20D2;" -->
    1244 <!-- ENTITY rtrie "&#x22B5;" -->
    1245 <!-- ENTITY trianglerighteq "&#x22B5;" -->
    1246 <!-- ENTITY RightTriangleEqual "&#x22B5;" -->
    1247 <!-- ENTITY nvrtrie "&#x22B5;&#x20D2;" -->
    1248 <!-- ENTITY origof "&#x22B6;" -->
    1249 <!-- ENTITY imof "&#x22B7;" -->
    1250 <!-- ENTITY mumap "&#x22B8;" -->
    1251 <!-- ENTITY multimap "&#x22B8;" -->
    1252 <!-- ENTITY hercon "&#x22B9;" -->
    1253 <!-- ENTITY intcal "&#x22BA;" -->
    1254 <!-- ENTITY intercal "&#x22BA;" -->
    1255 <!-- ENTITY veebar "&#x22BB;" -->
    1256 <!-- ENTITY barvee "&#x22BD;" -->
    1257 <!-- ENTITY angrtvb "&#x22BE;" -->
    1258 <!-- ENTITY lrtri "&#x22BF;" -->
    1259 <!-- ENTITY xwedge "&#x22C0;" -->
    1260 <!-- ENTITY Wedge "&#x22C0;" -->
    1261 <!-- ENTITY bigwedge "&#x22C0;" -->
    1262 <!-- ENTITY xvee "&#x22C1;" -->
    1263 <!-- ENTITY Vee "&#x22C1;" -->
    1264 <!-- ENTITY bigvee "&#x22C1;" -->
    1265 <!-- ENTITY xcap "&#x22C2;" -->
    1266 <!-- ENTITY Intersection "&#x22C2;" -->
    1267 <!-- ENTITY bigcap "&#x22C2;" -->
    1268 <!-- ENTITY xcup "&#x22C3;" -->
    1269 <!-- ENTITY Union "&#x22C3;" -->
    1270 <!-- ENTITY bigcup "&#x22C3;" -->
    1271 <!-- ENTITY diam "&#x22C4;" -->
    1272 <!-- ENTITY diamond "&#x22C4;" -->
    1273 <!-- ENTITY Diamond "&#x22C4;" -->
    1274 <!-- ENTITY sdot "&#x22C5;" -->
    1275 <!-- ENTITY sstarf "&#x22C6;" -->
    1276 <!-- ENTITY Star "&#x22C6;" -->
    1277 <!-- ENTITY divonx "&#x22C7;" -->
    1278 <!-- ENTITY divideontimes "&#x22C7;" -->
    1279 <!-- ENTITY bowtie "&#x22C8;" -->
    1280 <!-- ENTITY ltimes "&#x22C9;" -->
    1281 <!-- ENTITY rtimes "&#x22CA;" -->
    1282 <!-- ENTITY lthree "&#x22CB;" -->
    1283 <!-- ENTITY leftthreetimes "&#x22CB;" -->
    1284 <!-- ENTITY rthree "&#x22CC;" -->
    1285 <!-- ENTITY rightthreetimes "&#x22CC;" -->
    1286 <!-- ENTITY bsime "&#x22CD;" -->
    1287 <!-- ENTITY backsimeq "&#x22CD;" -->
    1288 <!-- ENTITY cuvee "&#x22CE;" -->
    1289 <!-- ENTITY curlyvee "&#x22CE;" -->
    1290 <!-- ENTITY cuwed "&#x22CF;" -->
    1291 <!-- ENTITY curlywedge "&#x22CF;" -->
    1292 <!-- ENTITY Sub "&#x22D0;" -->
    1293 <!-- ENTITY Subset "&#x22D0;" -->
    1294 <!-- ENTITY Sup "&#x22D1;" -->
    1295 <!-- ENTITY Supset "&#x22D1;" -->
    1296 <!-- ENTITY Cap "&#x22D2;" -->
    1297 <!-- ENTITY Cup "&#x22D3;" -->
    1298 <!-- ENTITY fork "&#x22D4;" -->
    1299 <!-- ENTITY pitchfork "&#x22D4;" -->
    1300 <!-- ENTITY epar "&#x22D5;" -->
    1301 <!-- ENTITY ltdot "&#x22D6;" -->
    1302 <!-- ENTITY lessdot "&#x22D6;" -->
    1303 <!-- ENTITY gtdot "&#x22D7;" -->
    1304 <!-- ENTITY gtrdot "&#x22D7;" -->
    1305 <!-- ENTITY Ll "&#x22D8;" -->
    1306 <!-- ENTITY nLl "&#x22D8;&#x338;" -->
    1307 <!-- ENTITY Gg "&#x22D9;" -->
    1308 <!-- ENTITY ggg "&#x22D9;" -->
    1309 <!-- ENTITY nGg "&#x22D9;&#x338;" -->
    1310 <!-- ENTITY leg "&#x22DA;" -->
    1311 <!-- ENTITY LessEqualGreater "&#x22DA;" -->
    1312 <!-- ENTITY lesseqgtr "&#x22DA;" -->
    1313 <!-- ENTITY lesg "&#x22DA;&#xFE00;" -->
    1314 <!-- ENTITY gel "&#x22DB;" -->
    1315 <!-- ENTITY gtreqless "&#x22DB;" -->
    1316 <!-- ENTITY GreaterEqualLess "&#x22DB;" -->
    1317 <!-- ENTITY gesl "&#x22DB;&#xFE00;" -->
    1318 <!-- ENTITY cuepr "&#x22DE;" -->
    1319 <!-- ENTITY curlyeqprec "&#x22DE;" -->
    1320 <!-- ENTITY cuesc "&#x22DF;" -->
    1321 <!-- ENTITY curlyeqsucc "&#x22DF;" -->
    1322 <!-- ENTITY nprcue "&#x22E0;" -->
    1323 <!-- ENTITY NotPrecedesSlantEqual "&#x22E0;" -->
    1324 <!-- ENTITY nsccue "&#x22E1;" -->
    1325 <!-- ENTITY NotSucceedsSlantEqual "&#x22E1;" -->
    1326 <!-- ENTITY nsqsube "&#x22E2;" -->
    1327 <!-- ENTITY NotSquareSubsetEqual "&#x22E2;" -->
    1328 <!-- ENTITY nsqsupe "&#x22E3;" -->
    1329 <!-- ENTITY NotSquareSupersetEqual "&#x22E3;" -->
    1330 <!-- ENTITY lnsim "&#x22E6;" -->
    1331 <!-- ENTITY gnsim "&#x22E7;" -->
    1332 <!-- ENTITY prnsim "&#x22E8;" -->
    1333 <!-- ENTITY precnsim "&#x22E8;" -->
    1334 <!-- ENTITY scnsim "&#x22E9;" -->
    1335 <!-- ENTITY succnsim "&#x22E9;" -->
    1336 <!-- ENTITY nltri "&#x22EA;" -->
    1337 <!-- ENTITY ntriangleleft "&#x22EA;" -->
    1338 <!-- ENTITY NotLeftTriangle "&#x22EA;" -->
    1339 <!-- ENTITY nrtri "&#x22EB;" -->
    1340 <!-- ENTITY ntriangleright "&#x22EB;" -->
    1341 <!-- ENTITY NotRightTriangle "&#x22EB;" -->
    1342 <!-- ENTITY nltrie "&#x22EC;" -->
    1343 <!-- ENTITY ntrianglelefteq "&#x22EC;" -->
    1344 <!-- ENTITY NotLeftTriangleEqual "&#x22EC;" -->
    1345 <!-- ENTITY nrtrie "&#x22ED;" -->
    1346 <!-- ENTITY ntrianglerighteq "&#x22ED;" -->
    1347 <!-- ENTITY NotRightTriangleEqual "&#x22ED;" -->
    1348 <!-- ENTITY vellip "&#x22EE;" -->
    1349 <!-- ENTITY ctdot "&#x22EF;" -->
    1350 <!-- ENTITY utdot "&#x22F0;" -->
    1351 <!-- ENTITY dtdot "&#x22F1;" -->
    1352 <!-- ENTITY disin "&#x22F2;" -->
    1353 <!-- ENTITY isinsv "&#x22F3;" -->
    1354 <!-- ENTITY isins "&#x22F4;" -->
    1355 <!-- ENTITY isindot "&#x22F5;" -->
    1356 <!-- ENTITY notindot "&#x22F5;&#x338;" -->
    1357 <!-- ENTITY notinvc "&#x22F6;" -->
    1358 <!-- ENTITY notinvb "&#x22F7;" -->
    1359 <!-- ENTITY isinE "&#x22F9;" -->
    1360 <!-- ENTITY notinE "&#x22F9;&#x338;" -->
    1361 <!-- ENTITY nisd "&#x22FA;" -->
    1362 <!-- ENTITY xnis "&#x22FB;" -->
    1363 <!-- ENTITY nis "&#x22FC;" -->
    1364 <!-- ENTITY notnivc "&#x22FD;" -->
    1365 <!-- ENTITY notnivb "&#x22FE;" -->
    1366 <!-- ENTITY barwed "&#x2305;" -->
    1367 <!-- ENTITY barwedge "&#x2305;" -->
    1368 <!-- ENTITY Barwed "&#x2306;" -->
    1369 <!-- ENTITY doublebarwedge "&#x2306;" -->
    1370 <!-- ENTITY lceil "&#x2308;" -->
    1371 <!-- ENTITY LeftCeiling "&#x2308;" -->
    1372 <!-- ENTITY rceil "&#x2309;" -->
    1373 <!-- ENTITY RightCeiling "&#x2309;" -->
    1374 <!-- ENTITY lfloor "&#x230A;" -->
    1375 <!-- ENTITY LeftFloor "&#x230A;" -->
    1376 <!-- ENTITY rfloor "&#x230B;" -->
    1377 <!-- ENTITY RightFloor "&#x230B;" -->
    1378 <!-- ENTITY drcrop "&#x230C;" -->
    1379 <!-- ENTITY dlcrop "&#x230D;" -->
    1380 <!-- ENTITY urcrop "&#x230E;" -->
    1381 <!-- ENTITY ulcrop "&#x230F;" -->
    1382 <!-- ENTITY bnot "&#x2310;" -->
    1383 <!-- ENTITY profline "&#x2312;" -->
    1384 <!-- ENTITY profsurf "&#x2313;" -->
    1385 <!-- ENTITY telrec "&#x2315;" -->
    1386 <!-- ENTITY target "&#x2316;" -->
    1387 <!-- ENTITY ulcorn "&#x231C;" -->
    1388 <!-- ENTITY ulcorner "&#x231C;" -->
    1389 <!-- ENTITY urcorn "&#x231D;" -->
    1390 <!-- ENTITY urcorner "&#x231D;" -->
    1391 <!-- ENTITY dlcorn "&#x231E;" -->
    1392 <!-- ENTITY llcorner "&#x231E;" -->
    1393 <!-- ENTITY drcorn "&#x231F;" -->
    1394 <!-- ENTITY lrcorner "&#x231F;" -->
    1395 <!-- ENTITY frown "&#x2322;" -->
    1396 <!-- ENTITY sfrown "&#x2322;" -->
    1397 <!-- ENTITY smile "&#x2323;" -->
    1398 <!-- ENTITY ssmile "&#x2323;" -->
    1399 <!-- ENTITY cylcty "&#x232D;" -->
    1400 <!-- ENTITY profalar "&#x232E;" -->
    1401 <!-- ENTITY topbot "&#x2336;" -->
    1402 <!-- ENTITY ovbar "&#x233D;" -->
    1403 <!-- ENTITY solbar "&#x233F;" -->
    1404 <!-- ENTITY angzarr "&#x237C;" -->
    1405 <!-- ENTITY lmoust "&#x23B0;" -->
    1406 <!-- ENTITY lmoustache "&#x23B0;" -->
    1407 <!-- ENTITY rmoust "&#x23B1;" -->
    1408 <!-- ENTITY rmoustache "&#x23B1;" -->
    1409 <!-- ENTITY tbrk "&#x23B4;" -->
    1410 <!-- ENTITY OverBracket "&#x23B4;" -->
    1411 <!-- ENTITY bbrk "&#x23B5;" -->
    1412 <!-- ENTITY UnderBracket "&#x23B5;" -->
    1413 <!-- ENTITY bbrktbrk "&#x23B6;" -->
    1414 <!-- ENTITY OverParenthesis "&#x23DC;" -->
    1415 <!-- ENTITY UnderParenthesis "&#x23DD;" -->
    1416 <!-- ENTITY OverBrace "&#x23DE;" -->
    1417 <!-- ENTITY UnderBrace "&#x23DF;" -->
    1418 <!-- ENTITY trpezium "&#x23E2;" -->
    1419 <!-- ENTITY elinters "&#x23E7;" -->
    1420 <!-- ENTITY blank "&#x2423;" -->
    1421 <!-- ENTITY oS "&#x24C8;" -->
    1422 <!-- ENTITY circledS "&#x24C8;" -->
    1423 <!-- ENTITY boxh "&#x2500;" -->
    1424 <!-- ENTITY HorizontalLine "&#x2500;" -->
    1425 <!-- ENTITY boxv "&#x2502;" -->
    1426 <!-- ENTITY boxdr "&#x250C;" -->
    1427 <!-- ENTITY boxdl "&#x2510;" -->
    1428 <!-- ENTITY boxur "&#x2514;" -->
    1429 <!-- ENTITY boxul "&#x2518;" -->
    1430 <!-- ENTITY boxvr "&#x251C;" -->
    1431 <!-- ENTITY boxvl "&#x2524;" -->
    1432 <!-- ENTITY boxhd "&#x252C;" -->
    1433 <!-- ENTITY boxhu "&#x2534;" -->
    1434 <!-- ENTITY boxvh "&#x253C;" -->
    1435 <!-- ENTITY boxH "&#x2550;" -->
    1436 <!-- ENTITY boxV "&#x2551;" -->
    1437 <!-- ENTITY boxdR "&#x2552;" -->
    1438 <!-- ENTITY boxDr "&#x2553;" -->
    1439 <!-- ENTITY boxDR "&#x2554;" -->
    1440 <!-- ENTITY boxdL "&#x2555;" -->
    1441 <!-- ENTITY boxDl "&#x2556;" -->
    1442 <!-- ENTITY boxDL "&#x2557;" -->
    1443 <!-- ENTITY boxuR "&#x2558;" -->
    1444 <!-- ENTITY boxUr "&#x2559;" -->
    1445 <!-- ENTITY boxUR "&#x255A;" -->
    1446 <!-- ENTITY boxuL "&#x255B;" -->
    1447 <!-- ENTITY boxUl "&#x255C;" -->
    1448 <!-- ENTITY boxUL "&#x255D;" -->
    1449 <!-- ENTITY boxvR "&#x255E;" -->
    1450 <!-- ENTITY boxVr "&#x255F;" -->
    1451 <!-- ENTITY boxVR "&#x2560;" -->
    1452 <!-- ENTITY boxvL "&#x2561;" -->
    1453 <!-- ENTITY boxVl "&#x2562;" -->
    1454 <!-- ENTITY boxVL "&#x2563;" -->
    1455 <!-- ENTITY boxHd "&#x2564;" -->
    1456 <!-- ENTITY boxhD "&#x2565;" -->
    1457 <!-- ENTITY boxHD "&#x2566;" -->
    1458 <!-- ENTITY boxHu "&#x2567;" -->
    1459 <!-- ENTITY boxhU "&#x2568;" -->
    1460 <!-- ENTITY boxHU "&#x2569;" -->
    1461 <!-- ENTITY boxvH "&#x256A;" -->
    1462 <!-- ENTITY boxVh "&#x256B;" -->
    1463 <!-- ENTITY boxVH "&#x256C;" -->
    1464 <!-- ENTITY uhblk "&#x2580;" -->
    1465 <!-- ENTITY lhblk "&#x2584;" -->
    1466 <!-- ENTITY block "&#x2588;" -->
    1467 <!-- ENTITY blk14 "&#x2591;" -->
    1468 <!-- ENTITY blk12 "&#x2592;" -->
    1469 <!-- ENTITY blk34 "&#x2593;" -->
    1470 <!-- ENTITY squ "&#x25A1;" -->
    1471 <!-- ENTITY square "&#x25A1;" -->
    1472 <!-- ENTITY Square "&#x25A1;" -->
    1473 <!-- ENTITY squf "&#x25AA;" -->
    1474 <!-- ENTITY squarf "&#x25AA;" -->
    1475 <!-- ENTITY blacksquare "&#x25AA;" -->
    1476 <!-- ENTITY FilledVerySmallSquare "&#x25AA;" -->
    1477 <!-- ENTITY EmptyVerySmallSquare "&#x25AB;" -->
    1478 <!-- ENTITY rect "&#x25AD;" -->
    1479 <!-- ENTITY marker "&#x25AE;" -->
    1480 <!-- ENTITY fltns "&#x25B1;" -->
    1481 <!-- ENTITY xutri "&#x25B3;" -->
    1482 <!-- ENTITY bigtriangleup "&#x25B3;" -->
    1483 <!-- ENTITY utrif "&#x25B4;" -->
    1484 <!-- ENTITY blacktriangle "&#x25B4;" -->
    1485 <!-- ENTITY utri "&#x25B5;" -->
    1486 <!-- ENTITY triangle "&#x25B5;" -->
    1487 <!-- ENTITY rtrif "&#x25B8;" -->
    1488 <!-- ENTITY blacktriangleright "&#x25B8;" -->
    1489 <!-- ENTITY rtri "&#x25B9;" -->
    1490 <!-- ENTITY triangleright "&#x25B9;" -->
    1491 <!-- ENTITY xdtri "&#x25BD;" -->
    1492 <!-- ENTITY bigtriangledown "&#x25BD;" -->
    1493 <!-- ENTITY dtrif "&#x25BE;" -->
    1494 <!-- ENTITY blacktriangledown "&#x25BE;" -->
    1495 <!-- ENTITY dtri "&#x25BF;" -->
    1496 <!-- ENTITY triangledown "&#x25BF;" -->
    1497 <!-- ENTITY ltrif "&#x25C2;" -->
    1498 <!-- ENTITY blacktriangleleft "&#x25C2;" -->
    1499 <!-- ENTITY ltri "&#x25C3;" -->
    1500 <!-- ENTITY triangleleft "&#x25C3;" -->
    1501 <!-- ENTITY loz "&#x25CA;" -->
    1502 <!-- ENTITY lozenge "&#x25CA;" -->
    1503 <!-- ENTITY cir "&#x25CB;" -->
    1504 <!-- ENTITY tridot "&#x25EC;" -->
    1505 <!-- ENTITY xcirc "&#x25EF;" -->
    1506 <!-- ENTITY bigcirc "&#x25EF;" -->
    1507 <!-- ENTITY ultri "&#x25F8;" -->
    1508 <!-- ENTITY urtri "&#x25F9;" -->
    1509 <!-- ENTITY lltri "&#x25FA;" -->
    1510 <!-- ENTITY EmptySmallSquare "&#x25FB;" -->
    1511 <!-- ENTITY FilledSmallSquare "&#x25FC;" -->
    1512 <!-- ENTITY starf "&#x2605;" -->
    1513 <!-- ENTITY bigstar "&#x2605;" -->
    1514 <!-- ENTITY star "&#x2606;" -->
    1515 <!-- ENTITY phone "&#x260E;" -->
    1516 <!-- ENTITY female "&#x2640;" -->
    1517 <!-- ENTITY male "&#x2642;" -->
    1518 <!-- ENTITY spades "&#x2660;" -->
    1519 <!-- ENTITY spadesuit "&#x2660;" -->
    1520 <!-- ENTITY clubs "&#x2663;" -->
    1521 <!-- ENTITY clubsuit "&#x2663;" -->
    1522 <!-- ENTITY hearts "&#x2665;" -->
    1523 <!-- ENTITY heartsuit "&#x2665;" -->
    1524 <!-- ENTITY diams "&#x2666;" -->
    1525 <!-- ENTITY diamondsuit "&#x2666;" -->
    1526 <!-- ENTITY sung "&#x266A;" -->
    1527 <!-- ENTITY flat "&#x266D;" -->
    1528 <!-- ENTITY natur "&#x266E;" -->
    1529 <!-- ENTITY natural "&#x266E;" -->
    1530 <!-- ENTITY sharp "&#x266F;" -->
    1531 <!-- ENTITY check "&#x2713;" -->
    1532 <!-- ENTITY checkmark "&#x2713;" -->
    1533 <!-- ENTITY cross "&#x2717;" -->
    1534 <!-- ENTITY malt "&#x2720;" -->
    1535 <!-- ENTITY maltese "&#x2720;" -->
    1536 <!-- ENTITY sext "&#x2736;" -->
    1537 <!-- ENTITY VerticalSeparator "&#x2758;" -->
    1538 <!-- ENTITY lbbrk "&#x2772;" -->
    1539 <!-- ENTITY rbbrk "&#x2773;" -->
    1540 <!-- ENTITY bsolhsub "&#x27C8;" -->
    1541 <!-- ENTITY suphsol "&#x27C9;" -->
    1542 <!-- ENTITY lobrk "&#x27E6;" -->
    1543 <!-- ENTITY LeftDoubleBracket "&#x27E6;" -->
    1544 <!-- ENTITY robrk "&#x27E7;" -->
    1545 <!-- ENTITY RightDoubleBracket "&#x27E7;" -->
    1546 <!-- ENTITY lang "&#x27E8;" -->
    1547 <!-- ENTITY LeftAngleBracket "&#x27E8;" -->
    1548 <!-- ENTITY langle "&#x27E8;" -->
    1549 <!-- ENTITY rang "&#x27E9;" -->
    1550 <!-- ENTITY RightAngleBracket "&#x27E9;" -->
    1551 <!-- ENTITY rangle "&#x27E9;" -->
    1552 <!-- ENTITY Lang "&#x27EA;" -->
    1553 <!-- ENTITY Rang "&#x27EB;" -->
    1554 <!-- ENTITY loang "&#x27EC;" -->
    1555 <!-- ENTITY roang "&#x27ED;" -->
    1556 <!-- ENTITY xlarr "&#x27F5;" -->
    1557 <!-- ENTITY longleftarrow "&#x27F5;" -->
    1558 <!-- ENTITY LongLeftArrow "&#x27F5;" -->
    1559 <!-- ENTITY xrarr "&#x27F6;" -->
    1560 <!-- ENTITY longrightarrow "&#x27F6;" -->
    1561 <!-- ENTITY LongRightArrow "&#x27F6;" -->
    1562 <!-- ENTITY xharr "&#x27F7;" -->
    1563 <!-- ENTITY longleftrightarrow "&#x27F7;" -->
    1564 <!-- ENTITY LongLeftRightArrow "&#x27F7;" -->
    1565 <!-- ENTITY xlArr "&#x27F8;" -->
    1566 <!-- ENTITY Longleftarrow "&#x27F8;" -->
    1567 <!-- ENTITY DoubleLongLeftArrow "&#x27F8;" -->
    1568 <!-- ENTITY xrArr "&#x27F9;" -->
    1569 <!-- ENTITY Longrightarrow "&#x27F9;" -->
    1570 <!-- ENTITY DoubleLongRightArrow "&#x27F9;" -->
    1571 <!-- ENTITY xhArr "&#x27FA;" -->
    1572 <!-- ENTITY Longleftrightarrow "&#x27FA;" -->
    1573 <!-- ENTITY DoubleLongLeftRightArrow "&#x27FA;" -->
    1574 <!-- ENTITY xmap "&#x27FC;" -->
    1575 <!-- ENTITY longmapsto "&#x27FC;" -->
    1576 <!-- ENTITY dzigrarr "&#x27FF;" -->
    1577 <!-- ENTITY nvlArr "&#x2902;" -->
    1578 <!-- ENTITY nvrArr "&#x2903;" -->
    1579 <!-- ENTITY nvHarr "&#x2904;" -->
    1580 <!-- ENTITY Map "&#x2905;" -->
    1581 <!-- ENTITY lbarr "&#x290C;" -->
    1582 <!-- ENTITY rbarr "&#x290D;" -->
    1583 <!-- ENTITY bkarow "&#x290D;" -->
    1584 <!-- ENTITY lBarr "&#x290E;" -->
    1585 <!-- ENTITY rBarr "&#x290F;" -->
    1586 <!-- ENTITY dbkarow "&#x290F;" -->
    1587 <!-- ENTITY RBarr "&#x2910;" -->
    1588 <!-- ENTITY drbkarow "&#x2910;" -->
    1589 <!-- ENTITY DDotrahd "&#x2911;" -->
    1590 <!-- ENTITY UpArrowBar "&#x2912;" -->
    1591 <!-- ENTITY DownArrowBar "&#x2913;" -->
    1592 <!-- ENTITY Rarrtl "&#x2916;" -->
    1593 <!-- ENTITY latail "&#x2919;" -->
    1594 <!-- ENTITY ratail "&#x291A;" -->
    1595 <!-- ENTITY lAtail "&#x291B;" -->
    1596 <!-- ENTITY rAtail "&#x291C;" -->
    1597 <!-- ENTITY larrfs "&#x291D;" -->
    1598 <!-- ENTITY rarrfs "&#x291E;" -->
    1599 <!-- ENTITY larrbfs "&#x291F;" -->
    1600 <!-- ENTITY rarrbfs "&#x2920;" -->
    1601 <!-- ENTITY nwarhk "&#x2923;" -->
    1602 <!-- ENTITY nearhk "&#x2924;" -->
    1603 <!-- ENTITY searhk "&#x2925;" -->
    1604 <!-- ENTITY hksearow "&#x2925;" -->
    1605 <!-- ENTITY swarhk "&#x2926;" -->
    1606 <!-- ENTITY hkswarow "&#x2926;" -->
    1607 <!-- ENTITY nwnear "&#x2927;" -->
    1608 <!-- ENTITY nesear "&#x2928;" -->
    1609 <!-- ENTITY toea "&#x2928;" -->
    1610 <!-- ENTITY seswar "&#x2929;" -->
    1611 <!-- ENTITY tosa "&#x2929;" -->
    1612 <!-- ENTITY swnwar "&#x292A;" -->
    1613 <!-- ENTITY rarrc "&#x2933;" -->
    1614 <!-- ENTITY nrarrc "&#x2933;&#x338;" -->
    1615 <!-- ENTITY cudarrr "&#x2935;" -->
    1616 <!-- ENTITY ldca "&#x2936;" -->
    1617 <!-- ENTITY rdca "&#x2937;" -->
    1618 <!-- ENTITY cudarrl "&#x2938;" -->
    1619 <!-- ENTITY larrpl "&#x2939;" -->
    1620 <!-- ENTITY curarrm "&#x293C;" -->
    1621 <!-- ENTITY cularrp "&#x293D;" -->
    1622 <!-- ENTITY rarrpl "&#x2945;" -->
    1623 <!-- ENTITY harrcir "&#x2948;" -->
    1624 <!-- ENTITY Uarrocir "&#x2949;" -->
    1625 <!-- ENTITY lurdshar "&#x294A;" -->
    1626 <!-- ENTITY ldrushar "&#x294B;" -->
    1627 <!-- ENTITY LeftRightVector "&#x294E;" -->
    1628 <!-- ENTITY RightUpDownVector "&#x294F;" -->
    1629 <!-- ENTITY DownLeftRightVector "&#x2950;" -->
    1630 <!-- ENTITY LeftUpDownVector "&#x2951;" -->
    1631 <!-- ENTITY LeftVectorBar "&#x2952;" -->
    1632 <!-- ENTITY RightVectorBar "&#x2953;" -->
    1633 <!-- ENTITY RightUpVectorBar "&#x2954;" -->
    1634 <!-- ENTITY RightDownVectorBar "&#x2955;" -->
    1635 <!-- ENTITY DownLeftVectorBar "&#x2956;" -->
    1636 <!-- ENTITY DownRightVectorBar "&#x2957;" -->
    1637 <!-- ENTITY LeftUpVectorBar "&#x2958;" -->
    1638 <!-- ENTITY LeftDownVectorBar "&#x2959;" -->
    1639 <!-- ENTITY LeftTeeVector "&#x295A;" -->
    1640 <!-- ENTITY RightTeeVector "&#x295B;" -->
    1641 <!-- ENTITY RightUpTeeVector "&#x295C;" -->
    1642 <!-- ENTITY RightDownTeeVector "&#x295D;" -->
    1643 <!-- ENTITY DownLeftTeeVector "&#x295E;" -->
    1644 <!-- ENTITY DownRightTeeVector "&#x295F;" -->
    1645 <!-- ENTITY LeftUpTeeVector "&#x2960;" -->
    1646 <!-- ENTITY LeftDownTeeVector "&#x2961;" -->
    1647 <!-- ENTITY lHar "&#x2962;" -->
    1648 <!-- ENTITY uHar "&#x2963;" -->
    1649 <!-- ENTITY rHar "&#x2964;" -->
    1650 <!-- ENTITY dHar "&#x2965;" -->
    1651 <!-- ENTITY luruhar "&#x2966;" -->
    1652 <!-- ENTITY ldrdhar "&#x2967;" -->
    1653 <!-- ENTITY ruluhar "&#x2968;" -->
    1654 <!-- ENTITY rdldhar "&#x2969;" -->
    1655 <!-- ENTITY lharul "&#x296A;" -->
    1656 <!-- ENTITY llhard "&#x296B;" -->
    1657 <!-- ENTITY rharul "&#x296C;" -->
    1658 <!-- ENTITY lrhard "&#x296D;" -->
    1659 <!-- ENTITY udhar "&#x296E;" -->
    1660 <!-- ENTITY UpEquilibrium "&#x296E;" -->
    1661 <!-- ENTITY duhar "&#x296F;" -->
    1662 <!-- ENTITY ReverseUpEquilibrium "&#x296F;" -->
    1663 <!-- ENTITY RoundImplies "&#x2970;" -->
    1664 <!-- ENTITY erarr "&#x2971;" -->
    1665 <!-- ENTITY simrarr "&#x2972;" -->
    1666 <!-- ENTITY larrsim "&#x2973;" -->
    1667 <!-- ENTITY rarrsim "&#x2974;" -->
    1668 <!-- ENTITY rarrap "&#x2975;" -->
    1669 <!-- ENTITY ltlarr "&#x2976;" -->
    1670 <!-- ENTITY gtrarr "&#x2978;" -->
    1671 <!-- ENTITY subrarr "&#x2979;" -->
    1672 <!-- ENTITY suplarr "&#x297B;" -->
    1673 <!-- ENTITY lfisht "&#x297C;" -->
    1674 <!-- ENTITY rfisht "&#x297D;" -->
    1675 <!-- ENTITY ufisht "&#x297E;" -->
    1676 <!-- ENTITY dfisht "&#x297F;" -->
    1677 <!-- ENTITY lopar "&#x2985;" -->
    1678 <!-- ENTITY ropar "&#x2986;" -->
    1679 <!-- ENTITY lbrke "&#x298B;" -->
    1680 <!-- ENTITY rbrke "&#x298C;" -->
    1681 <!-- ENTITY lbrkslu "&#x298D;" -->
    1682 <!-- ENTITY rbrksld "&#x298E;" -->
    1683 <!-- ENTITY lbrksld "&#x298F;" -->
    1684 <!-- ENTITY rbrkslu "&#x2990;" -->
    1685 <!-- ENTITY langd "&#x2991;" -->
    1686 <!-- ENTITY rangd "&#x2992;" -->
    1687 <!-- ENTITY lparlt "&#x2993;" -->
    1688 <!-- ENTITY rpargt "&#x2994;" -->
    1689 <!-- ENTITY gtlPar "&#x2995;" -->
    1690 <!-- ENTITY ltrPar "&#x2996;" -->
    1691 <!-- ENTITY vzigzag "&#x299A;" -->
    1692 <!-- ENTITY vangrt "&#x299C;" -->
    1693 <!-- ENTITY angrtvbd "&#x299D;" -->
    1694 <!-- ENTITY ange "&#x29A4;" -->
    1695 <!-- ENTITY range "&#x29A5;" -->
    1696 <!-- ENTITY dwangle "&#x29A6;" -->
    1697 <!-- ENTITY uwangle "&#x29A7;" -->
    1698 <!-- ENTITY angmsdaa "&#x29A8;" -->
    1699 <!-- ENTITY angmsdab "&#x29A9;" -->
    1700 <!-- ENTITY angmsdac "&#x29AA;" -->
    1701 <!-- ENTITY angmsdad "&#x29AB;" -->
    1702 <!-- ENTITY angmsdae "&#x29AC;" -->
    1703 <!-- ENTITY angmsdaf "&#x29AD;" -->
    1704 <!-- ENTITY angmsdag "&#x29AE;" -->
    1705 <!-- ENTITY angmsdah "&#x29AF;" -->
    1706 <!-- ENTITY bemptyv "&#x29B0;" -->
    1707 <!-- ENTITY demptyv "&#x29B1;" -->
    1708 <!-- ENTITY cemptyv "&#x29B2;" -->
    1709 <!-- ENTITY raemptyv "&#x29B3;" -->
    1710 <!-- ENTITY laemptyv "&#x29B4;" -->
    1711 <!-- ENTITY ohbar "&#x29B5;" -->
    1712 <!-- ENTITY omid "&#x29B6;" -->
    1713 <!-- ENTITY opar "&#x29B7;" -->
    1714 <!-- ENTITY operp "&#x29B9;" -->
    1715 <!-- ENTITY olcross "&#x29BB;" -->
    1716 <!-- ENTITY odsold "&#x29BC;" -->
    1717 <!-- ENTITY olcir "&#x29BE;" -->
    1718 <!-- ENTITY ofcir "&#x29BF;" -->
    1719 <!-- ENTITY olt "&#x29C0;" -->
    1720 <!-- ENTITY ogt "&#x29C1;" -->
    1721 <!-- ENTITY cirscir "&#x29C2;" -->
    1722 <!-- ENTITY cirE "&#x29C3;" -->
    1723 <!-- ENTITY solb "&#x29C4;" -->
    1724 <!-- ENTITY bsolb "&#x29C5;" -->
    1725 <!-- ENTITY boxbox "&#x29C9;" -->
    1726 <!-- ENTITY trisb "&#x29CD;" -->
    1727 <!-- ENTITY rtriltri "&#x29CE;" -->
    1728 <!-- ENTITY LeftTriangleBar "&#x29CF;" -->
    1729 <!-- ENTITY NotLeftTriangleBar "&#x29CF;&#x338;" -->
    1730 <!-- ENTITY RightTriangleBar "&#x29D0;" -->
    1731 <!-- ENTITY NotRightTriangleBar "&#x29D0;&#x338;" -->
    1732 <!-- ENTITY iinfin "&#x29DC;" -->
    1733 <!-- ENTITY infintie "&#x29DD;" -->
    1734 <!-- ENTITY nvinfin "&#x29DE;" -->
    1735 <!-- ENTITY eparsl "&#x29E3;" -->
    1736 <!-- ENTITY smeparsl "&#x29E4;" -->
    1737 <!-- ENTITY eqvparsl "&#x29E5;" -->
    1738 <!-- ENTITY lozf "&#x29EB;" -->
    1739 <!-- ENTITY blacklozenge "&#x29EB;" -->
    1740 <!-- ENTITY RuleDelayed "&#x29F4;" -->
    1741 <!-- ENTITY dsol "&#x29F6;" -->
    1742 <!-- ENTITY xodot "&#x2A00;" -->
    1743 <!-- ENTITY bigodot "&#x2A00;" -->
    1744 <!-- ENTITY xoplus "&#x2A01;" -->
    1745 <!-- ENTITY bigoplus "&#x2A01;" -->
    1746 <!-- ENTITY xotime "&#x2A02;" -->
    1747 <!-- ENTITY bigotimes "&#x2A02;" -->
    1748 <!-- ENTITY xuplus "&#x2A04;" -->
    1749 <!-- ENTITY biguplus "&#x2A04;" -->
    1750 <!-- ENTITY xsqcup "&#x2A06;" -->
    1751 <!-- ENTITY bigsqcup "&#x2A06;" -->
    1752 <!-- ENTITY qint "&#x2A0C;" -->
    1753 <!-- ENTITY iiiint "&#x2A0C;" -->
    1754 <!-- ENTITY fpartint "&#x2A0D;" -->
    1755 <!-- ENTITY cirfnint "&#x2A10;" -->
    1756 <!-- ENTITY awint "&#x2A11;" -->
    1757 <!-- ENTITY rppolint "&#x2A12;" -->
    1758 <!-- ENTITY scpolint "&#x2A13;" -->
    1759 <!-- ENTITY npolint "&#x2A14;" -->
    1760 <!-- ENTITY pointint "&#x2A15;" -->
    1761 <!-- ENTITY quatint "&#x2A16;" -->
    1762 <!-- ENTITY intlarhk "&#x2A17;" -->
    1763 <!-- ENTITY pluscir "&#x2A22;" -->
    1764 <!-- ENTITY plusacir "&#x2A23;" -->
    1765 <!-- ENTITY simplus "&#x2A24;" -->
    1766 <!-- ENTITY plusdu "&#x2A25;" -->
    1767 <!-- ENTITY plussim "&#x2A26;" -->
    1768 <!-- ENTITY plustwo "&#x2A27;" -->
    1769 <!-- ENTITY mcomma "&#x2A29;" -->
    1770 <!-- ENTITY minusdu "&#x2A2A;" -->
    1771 <!-- ENTITY loplus "&#x2A2D;" -->
    1772 <!-- ENTITY roplus "&#x2A2E;" -->
    1773 <!-- ENTITY Cross "&#x2A2F;" -->
    1774 <!-- ENTITY timesd "&#x2A30;" -->
    1775 <!-- ENTITY timesbar "&#x2A31;" -->
    1776 <!-- ENTITY smashp "&#x2A33;" -->
    1777 <!-- ENTITY lotimes "&#x2A34;" -->
    1778 <!-- ENTITY rotimes "&#x2A35;" -->
    1779 <!-- ENTITY otimesas "&#x2A36;" -->
    1780 <!-- ENTITY Otimes "&#x2A37;" -->
    1781 <!-- ENTITY odiv "&#x2A38;" -->
    1782 <!-- ENTITY triplus "&#x2A39;" -->
    1783 <!-- ENTITY triminus "&#x2A3A;" -->
    1784 <!-- ENTITY tritime "&#x2A3B;" -->
    1785 <!-- ENTITY iprod "&#x2A3C;" -->
    1786 <!-- ENTITY intprod "&#x2A3C;" -->
    1787 <!-- ENTITY amalg "&#x2A3F;" -->
    1788 <!-- ENTITY capdot "&#x2A40;" -->
    1789 <!-- ENTITY ncup "&#x2A42;" -->
    1790 <!-- ENTITY ncap "&#x2A43;" -->
    1791 <!-- ENTITY capand "&#x2A44;" -->
    1792 <!-- ENTITY cupor "&#x2A45;" -->
    1793 <!-- ENTITY cupcap "&#x2A46;" -->
    1794 <!-- ENTITY capcup "&#x2A47;" -->
    1795 <!-- ENTITY cupbrcap "&#x2A48;" -->
    1796 <!-- ENTITY capbrcup "&#x2A49;" -->
    1797 <!-- ENTITY cupcup "&#x2A4A;" -->
    1798 <!-- ENTITY capcap "&#x2A4B;" -->
    1799 <!-- ENTITY ccups "&#x2A4C;" -->
    1800 <!-- ENTITY ccaps "&#x2A4D;" -->
    1801 <!-- ENTITY ccupssm "&#x2A50;" -->
    1802 <!-- ENTITY And "&#x2A53;" -->
    1803 <!-- ENTITY Or "&#x2A54;" -->
    1804 <!-- ENTITY andand "&#x2A55;" -->
    1805 <!-- ENTITY oror "&#x2A56;" -->
    1806 <!-- ENTITY orslope "&#x2A57;" -->
    1807 <!-- ENTITY andslope "&#x2A58;" -->
    1808 <!-- ENTITY andv "&#x2A5A;" -->
    1809 <!-- ENTITY orv "&#x2A5B;" -->
    1810 <!-- ENTITY andd "&#x2A5C;" -->
    1811 <!-- ENTITY ord "&#x2A5D;" -->
    1812 <!-- ENTITY wedbar "&#x2A5F;" -->
    1813 <!-- ENTITY sdote "&#x2A66;" -->
    1814 <!-- ENTITY simdot "&#x2A6A;" -->
    1815 <!-- ENTITY congdot "&#x2A6D;" -->
    1816 <!-- ENTITY ncongdot "&#x2A6D;&#x338;" -->
    1817 <!-- ENTITY easter "&#x2A6E;" -->
    1818 <!-- ENTITY apacir "&#x2A6F;" -->
    1819 <!-- ENTITY apE "&#x2A70;" -->
    1820 <!-- ENTITY napE "&#x2A70;&#x338;" -->
    1821 <!-- ENTITY eplus "&#x2A71;" -->
    1822 <!-- ENTITY pluse "&#x2A72;" -->
    1823 <!-- ENTITY Esim "&#x2A73;" -->
    1824 <!-- ENTITY Colone "&#x2A74;" -->
    1825 <!-- ENTITY Equal "&#x2A75;" -->
    1826 <!-- ENTITY eDDot "&#x2A77;" -->
    1827 <!-- ENTITY ddotseq "&#x2A77;" -->
    1828 <!-- ENTITY equivDD "&#x2A78;" -->
    1829 <!-- ENTITY ltcir "&#x2A79;" -->
    1830 <!-- ENTITY gtcir "&#x2A7A;" -->
    1831 <!-- ENTITY ltquest "&#x2A7B;" -->
    1832 <!-- ENTITY gtquest "&#x2A7C;" -->
    1833 <!-- ENTITY les "&#x2A7D;" -->
    1834 <!-- ENTITY LessSlantEqual "&#x2A7D;" -->
    1835 <!-- ENTITY leqslant "&#x2A7D;" -->
    1836 <!-- ENTITY nles "&#x2A7D;&#x338;" -->
    1837 <!-- ENTITY NotLessSlantEqual "&#x2A7D;&#x338;" -->
    1838 <!-- ENTITY nleqslant "&#x2A7D;&#x338;" -->
    1839 <!-- ENTITY ges "&#x2A7E;" -->
    1840 <!-- ENTITY GreaterSlantEqual "&#x2A7E;" -->
    1841 <!-- ENTITY geqslant "&#x2A7E;" -->
    1842 <!-- ENTITY nges "&#x2A7E;&#x338;" -->
    1843 <!-- ENTITY NotGreaterSlantEqual "&#x2A7E;&#x338;" -->
    1844 <!-- ENTITY ngeqslant "&#x2A7E;&#x338;" -->
    1845 <!-- ENTITY lesdot "&#x2A7F;" -->
    1846 <!-- ENTITY gesdot "&#x2A80;" -->
    1847 <!-- ENTITY lesdoto "&#x2A81;" -->
    1848 <!-- ENTITY gesdoto "&#x2A82;" -->
    1849 <!-- ENTITY lesdotor "&#x2A83;" -->
    1850 <!-- ENTITY gesdotol "&#x2A84;" -->
    1851 <!-- ENTITY lap "&#x2A85;" -->
    1852 <!-- ENTITY lessapprox "&#x2A85;" -->
    1853 <!-- ENTITY gap "&#x2A86;" -->
    1854 <!-- ENTITY gtrapprox "&#x2A86;" -->
    1855 <!-- ENTITY lne "&#x2A87;" -->
    1856 <!-- ENTITY lneq "&#x2A87;" -->
    1857 <!-- ENTITY gne "&#x2A88;" -->
    1858 <!-- ENTITY gneq "&#x2A88;" -->
    1859 <!-- ENTITY lnap "&#x2A89;" -->
    1860 <!-- ENTITY lnapprox "&#x2A89;" -->
    1861 <!-- ENTITY gnap "&#x2A8A;" -->
    1862 <!-- ENTITY gnapprox "&#x2A8A;" -->
    1863 <!-- ENTITY lEg "&#x2A8B;" -->
    1864 <!-- ENTITY lesseqqgtr "&#x2A8B;" -->
    1865 <!-- ENTITY gEl "&#x2A8C;" -->
    1866 <!-- ENTITY gtreqqless "&#x2A8C;" -->
    1867 <!-- ENTITY lsime "&#x2A8D;" -->
    1868 <!-- ENTITY gsime "&#x2A8E;" -->
    1869 <!-- ENTITY lsimg "&#x2A8F;" -->
    1870 <!-- ENTITY gsiml "&#x2A90;" -->
    1871 <!-- ENTITY lgE "&#x2A91;" -->
    1872 <!-- ENTITY glE "&#x2A92;" -->
    1873 <!-- ENTITY lesges "&#x2A93;" -->
    1874 <!-- ENTITY gesles "&#x2A94;" -->
    1875 <!-- ENTITY els "&#x2A95;" -->
    1876 <!-- ENTITY eqslantless "&#x2A95;" -->
    1877 <!-- ENTITY egs "&#x2A96;" -->
    1878 <!-- ENTITY eqslantgtr "&#x2A96;" -->
    1879 <!-- ENTITY elsdot "&#x2A97;" -->
    1880 <!-- ENTITY egsdot "&#x2A98;" -->
    1881 <!-- ENTITY el "&#x2A99;" -->
    1882 <!-- ENTITY eg "&#x2A9A;" -->
    1883 <!-- ENTITY siml "&#x2A9D;" -->
    1884 <!-- ENTITY simg "&#x2A9E;" -->
    1885 <!-- ENTITY simlE "&#x2A9F;" -->
    1886 <!-- ENTITY simgE "&#x2AA0;" -->
    1887 <!-- ENTITY LessLess "&#x2AA1;" -->
    1888 <!-- ENTITY NotNestedLessLess "&#x2AA1;&#x338;" -->
    1889 <!-- ENTITY GreaterGreater "&#x2AA2;" -->
    1890 <!-- ENTITY NotNestedGreaterGreater "&#x2AA2;&#x338;" -->
    1891 <!-- ENTITY glj "&#x2AA4;" -->
    1892 <!-- ENTITY gla "&#x2AA5;" -->
    1893 <!-- ENTITY ltcc "&#x2AA6;" -->
    1894 <!-- ENTITY gtcc "&#x2AA7;" -->
    1895 <!-- ENTITY lescc "&#x2AA8;" -->
    1896 <!-- ENTITY gescc "&#x2AA9;" -->
    1897 <!-- ENTITY smt "&#x2AAA;" -->
    1898 <!-- ENTITY lat "&#x2AAB;" -->
    1899 <!-- ENTITY smte "&#x2AAC;" -->
    1900 <!-- ENTITY smtes "&#x2AAC;&#xFE00;" -->
    1901 <!-- ENTITY late "&#x2AAD;" -->
    1902 <!-- ENTITY lates "&#x2AAD;&#xFE00;" -->
    1903 <!-- ENTITY bumpE "&#x2AAE;" -->
    1904 <!-- ENTITY pre "&#x2AAF;" -->
    1905 <!-- ENTITY preceq "&#x2AAF;" -->
    1906 <!-- ENTITY PrecedesEqual "&#x2AAF;" -->
    1907 <!-- ENTITY npre "&#x2AAF;&#x338;" -->
    1908 <!-- ENTITY npreceq "&#x2AAF;&#x338;" -->
    1909 <!-- ENTITY NotPrecedesEqual "&#x2AAF;&#x338;" -->
    1910 <!-- ENTITY sce "&#x2AB0;" -->
    1911 <!-- ENTITY succeq "&#x2AB0;" -->
    1912 <!-- ENTITY SucceedsEqual "&#x2AB0;" -->
    1913 <!-- ENTITY nsce "&#x2AB0;&#x338;" -->
    1914 <!-- ENTITY nsucceq "&#x2AB0;&#x338;" -->
    1915 <!-- ENTITY NotSucceedsEqual "&#x2AB0;&#x338;" -->
    1916 <!-- ENTITY prE "&#x2AB3;" -->
    1917 <!-- ENTITY scE "&#x2AB4;" -->
    1918 <!-- ENTITY prnE "&#x2AB5;" -->
    1919 <!-- ENTITY precneqq "&#x2AB5;" -->
    1920 <!-- ENTITY scnE "&#x2AB6;" -->
    1921 <!-- ENTITY succneqq "&#x2AB6;" -->
    1922 <!-- ENTITY prap "&#x2AB7;" -->
    1923 <!-- ENTITY precapprox "&#x2AB7;" -->
    1924 <!-- ENTITY scap "&#x2AB8;" -->
    1925 <!-- ENTITY succapprox "&#x2AB8;" -->
    1926 <!-- ENTITY prnap "&#x2AB9;" -->
    1927 <!-- ENTITY precnapprox "&#x2AB9;" -->
    1928 <!-- ENTITY scnap "&#x2ABA;" -->
    1929 <!-- ENTITY succnapprox "&#x2ABA;" -->
    1930 <!-- ENTITY Pr "&#x2ABB;" -->
    1931 <!-- ENTITY Sc "&#x2ABC;" -->
    1932 <!-- ENTITY subdot "&#x2ABD;" -->
    1933 <!-- ENTITY supdot "&#x2ABE;" -->
    1934 <!-- ENTITY subplus "&#x2ABF;" -->
    1935 <!-- ENTITY supplus "&#x2AC0;" -->
    1936 <!-- ENTITY submult "&#x2AC1;" -->
    1937 <!-- ENTITY supmult "&#x2AC2;" -->
    1938 <!-- ENTITY subedot "&#x2AC3;" -->
    1939 <!-- ENTITY supedot "&#x2AC4;" -->
    1940 <!-- ENTITY subE "&#x2AC5;" -->
    1941 <!-- ENTITY subseteqq "&#x2AC5;" -->
    1942 <!-- ENTITY nsubE "&#x2AC5;&#x338;" -->
    1943 <!-- ENTITY nsubseteqq "&#x2AC5;&#x338;" -->
    1944 <!-- ENTITY supE "&#x2AC6;" -->
    1945 <!-- ENTITY supseteqq "&#x2AC6;" -->
    1946 <!-- ENTITY nsupE "&#x2AC6;&#x338;" -->
    1947 <!-- ENTITY nsupseteqq "&#x2AC6;&#x338;" -->
    1948 <!-- ENTITY subsim "&#x2AC7;" -->
    1949 <!-- ENTITY supsim "&#x2AC8;" -->
    1950 <!-- ENTITY subnE "&#x2ACB;" -->
    1951 <!-- ENTITY subsetneqq "&#x2ACB;" -->
    1952 <!-- ENTITY vsubnE "&#x2ACB;&#xFE00;" -->
    1953 <!-- ENTITY varsubsetneqq "&#x2ACB;&#xFE00;" -->
    1954 <!-- ENTITY supnE "&#x2ACC;" -->
    1955 <!-- ENTITY supsetneqq "&#x2ACC;" -->
    1956 <!-- ENTITY vsupnE "&#x2ACC;&#xFE00;" -->
    1957 <!-- ENTITY varsupsetneqq "&#x2ACC;&#xFE00;" -->
    1958 <!-- ENTITY csub "&#x2ACF;" -->
    1959 <!-- ENTITY csup "&#x2AD0;" -->
    1960 <!-- ENTITY csube "&#x2AD1;" -->
    1961 <!-- ENTITY csupe "&#x2AD2;" -->
    1962 <!-- ENTITY subsup "&#x2AD3;" -->
    1963 <!-- ENTITY supsub "&#x2AD4;" -->
    1964 <!-- ENTITY subsub "&#x2AD5;" -->
    1965 <!-- ENTITY supsup "&#x2AD6;" -->
    1966 <!-- ENTITY suphsub "&#x2AD7;" -->
    1967 <!-- ENTITY supdsub "&#x2AD8;" -->
    1968 <!-- ENTITY forkv "&#x2AD9;" -->
    1969 <!-- ENTITY topfork "&#x2ADA;" -->
    1970 <!-- ENTITY mlcp "&#x2ADB;" -->
    1971 <!-- ENTITY Dashv "&#x2AE4;" -->
    1972 <!-- ENTITY DoubleLeftTee "&#x2AE4;" -->
    1973 <!-- ENTITY Vdashl "&#x2AE6;" -->
    1974 <!-- ENTITY Barv "&#x2AE7;" -->
    1975 <!-- ENTITY vBar "&#x2AE8;" -->
    1976 <!-- ENTITY vBarv "&#x2AE9;" -->
    1977 <!-- ENTITY Vbar "&#x2AEB;" -->
    1978 <!-- ENTITY Not "&#x2AEC;" -->
    1979 <!-- ENTITY bNot "&#x2AED;" -->
    1980 <!-- ENTITY rnmid "&#x2AEE;" -->
    1981 <!-- ENTITY cirmid "&#x2AEF;" -->
    1982 <!-- ENTITY midcir "&#x2AF0;" -->
    1983 <!-- ENTITY topcir "&#x2AF1;" -->
    1984 <!-- ENTITY nhpar "&#x2AF2;" -->
    1985 <!-- ENTITY parsim "&#x2AF3;" -->
    1986 <!-- ENTITY parsl "&#x2AFD;" -->
    1987 <!-- ENTITY nparsl "&#x2AFD;&#x20E5;" -->
    1988 <!-- ENTITY fflig "&#xFB00;" -->
    1989 <!-- ENTITY filig "&#xFB01;" -->
    1990 <!-- ENTITY fllig "&#xFB02;" -->
    1991 <!-- ENTITY ffilig "&#xFB03;" -->
    1992 <!-- ENTITY ffllig "&#xFB04;" -->
    1993 <!-- ENTITY Ascr "&#x1D49C;" -->
    1994 <!-- ENTITY Cscr "&#x1D49E;" -->
    1995 <!-- ENTITY Dscr "&#x1D49F;" -->
    1996 <!-- ENTITY Gscr "&#x1D4A2;" -->
    1997 <!-- ENTITY Jscr "&#x1D4A5;" -->
    1998 <!-- ENTITY Kscr "&#x1D4A6;" -->
    1999 <!-- ENTITY Nscr "&#x1D4A9;" -->
    2000 <!-- ENTITY Oscr "&#x1D4AA;" -->
    2001 <!-- ENTITY Pscr "&#x1D4AB;" -->
    2002 <!-- ENTITY Qscr "&#x1D4AC;" -->
    2003 <!-- ENTITY Sscr "&#x1D4AE;" -->
    2004 <!-- ENTITY Tscr "&#x1D4AF;" -->
    2005 <!-- ENTITY Uscr "&#x1D4B0;" -->
    2006 <!-- ENTITY Vscr "&#x1D4B1;" -->
    2007 <!-- ENTITY Wscr "&#x1D4B2;" -->
    2008 <!-- ENTITY Xscr "&#x1D4B3;" -->
    2009 <!-- ENTITY Yscr "&#x1D4B4;" -->
    2010 <!-- ENTITY Zscr "&#x1D4B5;" -->
    2011 <!-- ENTITY ascr "&#x1D4B6;" -->
    2012 <!-- ENTITY bscr "&#x1D4B7;" -->
    2013 <!-- ENTITY cscr "&#x1D4B8;" -->
    2014 <!-- ENTITY dscr "&#x1D4B9;" -->
    2015 <!-- ENTITY fscr "&#x1D4BB;" -->
    2016 <!-- ENTITY hscr "&#x1D4BD;" -->
    2017 <!-- ENTITY iscr "&#x1D4BE;" -->
    2018 <!-- ENTITY jscr "&#x1D4BF;" -->
    2019 <!-- ENTITY kscr "&#x1D4C0;" -->
    2020 <!-- ENTITY lscr "&#x1D4C1;" -->
    2021 <!-- ENTITY mscr "&#x1D4C2;" -->
    2022 <!-- ENTITY nscr "&#x1D4C3;" -->
    2023 <!-- ENTITY pscr "&#x1D4C5;" -->
    2024 <!-- ENTITY qscr "&#x1D4C6;" -->
    2025 <!-- ENTITY rscr "&#x1D4C7;" -->
    2026 <!-- ENTITY sscr "&#x1D4C8;" -->
    2027 <!-- ENTITY tscr "&#x1D4C9;" -->
    2028 <!-- ENTITY uscr "&#x1D4CA;" -->
    2029 <!-- ENTITY vscr "&#x1D4CB;" -->
    2030 <!-- ENTITY wscr "&#x1D4CC;" -->
    2031 <!-- ENTITY xscr "&#x1D4CD;" -->
    2032 <!-- ENTITY yscr "&#x1D4CE;" -->
    2033 <!-- ENTITY zscr "&#x1D4CF;" -->
    2034 <!-- ENTITY Afr "&#x1D504;" -->
    2035 <!-- ENTITY Bfr "&#x1D505;" -->
    2036 <!-- ENTITY Dfr "&#x1D507;" -->
    2037 <!-- ENTITY Efr "&#x1D508;" -->
    2038 <!-- ENTITY Ffr "&#x1D509;" -->
    2039 <!-- ENTITY Gfr "&#x1D50A;" -->
    2040 <!-- ENTITY Jfr "&#x1D50D;" -->
    2041 <!-- ENTITY Kfr "&#x1D50E;" -->
    2042 <!-- ENTITY Lfr "&#x1D50F;" -->
    2043 <!-- ENTITY Mfr "&#x1D510;" -->
    2044 <!-- ENTITY Nfr "&#x1D511;" -->
    2045 <!-- ENTITY Ofr "&#x1D512;" -->
    2046 <!-- ENTITY Pfr "&#x1D513;" -->
    2047 <!-- ENTITY Qfr "&#x1D514;" -->
    2048 <!-- ENTITY Sfr "&#x1D516;" -->
    2049 <!-- ENTITY Tfr "&#x1D517;" -->
    2050 <!-- ENTITY Ufr "&#x1D518;" -->
    2051 <!-- ENTITY Vfr "&#x1D519;" -->
    2052 <!-- ENTITY Wfr "&#x1D51A;" -->
    2053 <!-- ENTITY Xfr "&#x1D51B;" -->
    2054 <!-- ENTITY Yfr "&#x1D51C;" -->
    2055 <!-- ENTITY afr "&#x1D51E;" -->
    2056 <!-- ENTITY bfr "&#x1D51F;" -->
    2057 <!-- ENTITY cfr "&#x1D520;" -->
    2058 <!-- ENTITY dfr "&#x1D521;" -->
    2059 <!-- ENTITY efr "&#x1D522;" -->
    2060 <!-- ENTITY ffr "&#x1D523;" -->
    2061 <!-- ENTITY gfr "&#x1D524;" -->
    2062 <!-- ENTITY hfr "&#x1D525;" -->
    2063 <!-- ENTITY ifr "&#x1D526;" -->
    2064 <!-- ENTITY jfr "&#x1D527;" -->
    2065 <!-- ENTITY kfr "&#x1D528;" -->
    2066 <!-- ENTITY lfr "&#x1D529;" -->
    2067 <!-- ENTITY mfr "&#x1D52A;" -->
    2068 <!-- ENTITY nfr "&#x1D52B;" -->
    2069 <!-- ENTITY ofr "&#x1D52C;" -->
    2070 <!-- ENTITY pfr "&#x1D52D;" -->
    2071 <!-- ENTITY qfr "&#x1D52E;" -->
    2072 <!-- ENTITY rfr "&#x1D52F;" -->
    2073 <!-- ENTITY sfr "&#x1D530;" -->
    2074 <!-- ENTITY tfr "&#x1D531;" -->
    2075 <!-- ENTITY ufr "&#x1D532;" -->
    2076 <!-- ENTITY vfr "&#x1D533;" -->
    2077 <!-- ENTITY wfr "&#x1D534;" -->
    2078 <!-- ENTITY xfr "&#x1D535;" -->
    2079 <!-- ENTITY yfr "&#x1D536;" -->
    2080 <!-- ENTITY zfr "&#x1D537;" -->
    2081 <!-- ENTITY Aopf "&#x1D538;" -->
    2082 <!-- ENTITY Bopf "&#x1D539;" -->
    2083 <!-- ENTITY Dopf "&#x1D53B;" -->
    2084 <!-- ENTITY Eopf "&#x1D53C;" -->
    2085 <!-- ENTITY Fopf "&#x1D53D;" -->
    2086 <!-- ENTITY Gopf "&#x1D53E;" -->
    2087 <!-- ENTITY Iopf "&#x1D540;" -->
    2088 <!-- ENTITY Jopf "&#x1D541;" -->
    2089 <!-- ENTITY Kopf "&#x1D542;" -->
    2090 <!-- ENTITY Lopf "&#x1D543;" -->
    2091 <!-- ENTITY Mopf "&#x1D544;" -->
    2092 <!-- ENTITY Oopf "&#x1D546;" -->
    2093 <!-- ENTITY Sopf "&#x1D54A;" -->
    2094 <!-- ENTITY Topf "&#x1D54B;" -->
    2095 <!-- ENTITY Uopf "&#x1D54C;" -->
    2096 <!-- ENTITY Vopf "&#x1D54D;" -->
    2097 <!-- ENTITY Wopf "&#x1D54E;" -->
    2098 <!-- ENTITY Xopf "&#x1D54F;" -->
    2099 <!-- ENTITY Yopf "&#x1D550;" -->
    2100 <!-- ENTITY aopf "&#x1D552;" -->
    2101 <!-- ENTITY bopf "&#x1D553;" -->
    2102 <!-- ENTITY copf "&#x1D554;" -->
    2103 <!-- ENTITY dopf "&#x1D555;" -->
    2104 <!-- ENTITY eopf "&#x1D556;" -->
    2105 <!-- ENTITY fopf "&#x1D557;" -->
    2106 <!-- ENTITY gopf "&#x1D558;" -->
    2107 <!-- ENTITY hopf "&#x1D559;" -->
    2108 <!-- ENTITY iopf "&#x1D55A;" -->
    2109 <!-- ENTITY jopf "&#x1D55B;" -->
    2110 <!-- ENTITY kopf "&#x1D55C;" -->
    2111 <!-- ENTITY lopf "&#x1D55D;" -->
    2112 <!-- ENTITY mopf "&#x1D55E;" -->
    2113 <!-- ENTITY nopf "&#x1D55F;" -->
    2114 <!-- ENTITY oopf "&#x1D560;" -->
    2115 <!-- ENTITY popf "&#x1D561;" -->
    2116 <!-- ENTITY qopf "&#x1D562;" -->
    2117 <!-- ENTITY ropf "&#x1D563;" -->
    2118 <!-- ENTITY sopf "&#x1D564;" -->
    2119 <!-- ENTITY topf "&#x1D565;" -->
    2120 <!-- ENTITY uopf "&#x1D566;" -->
    2121 <!-- ENTITY vopf "&#x1D567;" -->
    2122 <!-- ENTITY wopf "&#x1D568;" -->
    2123 <!-- ENTITY xopf "&#x1D569;" -->
    2124 <!-- ENTITY yopf "&#x1D56A;" -->
    2125 <!-- ENTITY zopf "&#x1D56B;" -->
     1<!ENTITY Tab "&#x9;">
     2<!ENTITY NewLine "&#xA;">
     3<!ENTITY excl "&#x21;">
     4<!ENTITY quot "&#x22;">
     5<!ENTITY QUOT "&#x22;">
     6<!ENTITY num "&#x23;">
     7<!ENTITY dollar "&#x24;">
     8<!ENTITY percnt "&#x25;">
     9<!ENTITY amp "&#x26;#x26;">
     10<!ENTITY AMP "&#x26;#x26;">
     11<!ENTITY apos "&#x27;">
     12<!ENTITY lpar "&#x28;">
     13<!ENTITY rpar "&#x29;">
     14<!ENTITY ast "&#x2A;">
     15<!ENTITY midast "&#x2A;">
     16<!ENTITY plus "&#x2B;">
     17<!ENTITY comma "&#x2C;">
     18<!ENTITY period "&#x2E;">
     19<!ENTITY sol "&#x2F;">
     20<!ENTITY colon "&#x3A;">
     21<!ENTITY semi "&#x3B;">
     22<!ENTITY lt "&#x26;#x3C;">
     23<!ENTITY LT "&#x26;#x3C;">
     24<!ENTITY nvlt "&#x26;#x3C;&#x20D2;">
     25<!ENTITY equals "&#x3D;">
     26<!ENTITY bne "&#x3D;&#x20E5;">
     27<!ENTITY gt "&#x3E;">
     28<!ENTITY GT "&#x3E;">
     29<!ENTITY nvgt "&#x3E;&#x20D2;">
     30<!ENTITY quest "&#x3F;">
     31<!ENTITY commat "&#x40;">
     32<!ENTITY lsqb "&#x5B;">
     33<!ENTITY lbrack "&#x5B;">
     34<!ENTITY bsol "&#x5C;">
     35<!ENTITY rsqb "&#x5D;">
     36<!ENTITY rbrack "&#x5D;">
     37<!ENTITY Hat "&#x5E;">
     38<!ENTITY lowbar "&#x5F;">
     39<!ENTITY UnderBar "&#x5F;">
     40<!ENTITY grave "&#x60;">
     41<!ENTITY DiacriticalGrave "&#x60;">
     42<!ENTITY fjlig "&#x66;&#x6A;">
     43<!ENTITY lcub "&#x7B;">
     44<!ENTITY lbrace "&#x7B;">
     45<!ENTITY verbar "&#x7C;">
     46<!ENTITY vert "&#x7C;">
     47<!ENTITY VerticalLine "&#x7C;">
     48<!ENTITY rcub "&#x7D;">
     49<!ENTITY rbrace "&#x7D;">
     50<!ENTITY nbsp "&#xA0;">
     51<!ENTITY NonBreakingSpace "&#xA0;">
     52<!ENTITY iexcl "&#xA1;">
     53<!ENTITY cent "&#xA2;">
     54<!ENTITY pound "&#xA3;">
     55<!ENTITY curren "&#xA4;">
     56<!ENTITY yen "&#xA5;">
     57<!ENTITY brvbar "&#xA6;">
     58<!ENTITY sect "&#xA7;">
     59<!ENTITY Dot "&#xA8;">
     60<!ENTITY die "&#xA8;">
     61<!ENTITY DoubleDot "&#xA8;">
     62<!ENTITY uml "&#xA8;">
     63<!ENTITY copy "&#xA9;">
     64<!ENTITY COPY "&#xA9;">
     65<!ENTITY ordf "&#xAA;">
     66<!ENTITY laquo "&#xAB;">
     67<!ENTITY not "&#xAC;">
     68<!ENTITY shy "&#xAD;">
     69<!ENTITY reg "&#xAE;">
     70<!ENTITY circledR "&#xAE;">
     71<!ENTITY REG "&#xAE;">
     72<!ENTITY macr "&#xAF;">
     73<!ENTITY strns "&#xAF;">
     74<!ENTITY deg "&#xB0;">
     75<!ENTITY plusmn "&#xB1;">
     76<!ENTITY pm "&#xB1;">
     77<!ENTITY PlusMinus "&#xB1;">
     78<!ENTITY sup2 "&#xB2;">
     79<!ENTITY sup3 "&#xB3;">
     80<!ENTITY acute "&#xB4;">
     81<!ENTITY DiacriticalAcute "&#xB4;">
     82<!ENTITY micro "&#xB5;">
     83<!ENTITY para "&#xB6;">
     84<!ENTITY middot "&#xB7;">
     85<!ENTITY centerdot "&#xB7;">
     86<!ENTITY CenterDot "&#xB7;">
     87<!ENTITY cedil "&#xB8;">
     88<!ENTITY Cedilla "&#xB8;">
     89<!ENTITY sup1 "&#xB9;">
     90<!ENTITY ordm "&#xBA;">
     91<!ENTITY raquo "&#xBB;">
     92<!ENTITY frac14 "&#xBC;">
     93<!ENTITY frac12 "&#xBD;">
     94<!ENTITY half "&#xBD;">
     95<!ENTITY frac34 "&#xBE;">
     96<!ENTITY iquest "&#xBF;">
     97<!ENTITY Agrave "&#xC0;">
     98<!ENTITY Aacute "&#xC1;">
     99<!ENTITY Acirc "&#xC2;">
     100<!ENTITY Atilde "&#xC3;">
     101<!ENTITY Auml "&#xC4;">
     102<!ENTITY Aring "&#xC5;">
     103<!ENTITY angst "&#xC5;">
     104<!ENTITY AElig "&#xC6;">
     105<!ENTITY Ccedil "&#xC7;">
     106<!ENTITY Egrave "&#xC8;">
     107<!ENTITY Eacute "&#xC9;">
     108<!ENTITY Ecirc "&#xCA;">
     109<!ENTITY Euml "&#xCB;">
     110<!ENTITY Igrave "&#xCC;">
     111<!ENTITY Iacute "&#xCD;">
     112<!ENTITY Icirc "&#xCE;">
     113<!ENTITY Iuml "&#xCF;">
     114<!ENTITY ETH "&#xD0;">
     115<!ENTITY Ntilde "&#xD1;">
     116<!ENTITY Ograve "&#xD2;">
     117<!ENTITY Oacute "&#xD3;">
     118<!ENTITY Ocirc "&#xD4;">
     119<!ENTITY Otilde "&#xD5;">
     120<!ENTITY Ouml "&#xD6;">
     121<!ENTITY times "&#xD7;">
     122<!ENTITY Oslash "&#xD8;">
     123<!ENTITY Ugrave "&#xD9;">
     124<!ENTITY Uacute "&#xDA;">
     125<!ENTITY Ucirc "&#xDB;">
     126<!ENTITY Uuml "&#xDC;">
     127<!ENTITY Yacute "&#xDD;">
     128<!ENTITY THORN "&#xDE;">
     129<!ENTITY szlig "&#xDF;">
     130<!ENTITY agrave "&#xE0;">
     131<!ENTITY aacute "&#xE1;">
     132<!ENTITY acirc "&#xE2;">
     133<!ENTITY atilde "&#xE3;">
     134<!ENTITY auml "&#xE4;">
     135<!ENTITY aring "&#xE5;">
     136<!ENTITY aelig "&#xE6;">
     137<!ENTITY ccedil "&#xE7;">
     138<!ENTITY egrave "&#xE8;">
     139<!ENTITY eacute "&#xE9;">
     140<!ENTITY ecirc "&#xEA;">
     141<!ENTITY euml "&#xEB;">
     142<!ENTITY igrave "&#xEC;">
     143<!ENTITY iacute "&#xED;">
     144<!ENTITY icirc "&#xEE;">
     145<!ENTITY iuml "&#xEF;">
     146<!ENTITY eth "&#xF0;">
     147<!ENTITY ntilde "&#xF1;">
     148<!ENTITY ograve "&#xF2;">
     149<!ENTITY oacute "&#xF3;">
     150<!ENTITY ocirc "&#xF4;">
     151<!ENTITY otilde "&#xF5;">
     152<!ENTITY ouml "&#xF6;">
     153<!ENTITY divide "&#xF7;">
     154<!ENTITY div "&#xF7;">
     155<!ENTITY oslash "&#xF8;">
     156<!ENTITY ugrave "&#xF9;">
     157<!ENTITY uacute "&#xFA;">
     158<!ENTITY ucirc "&#xFB;">
     159<!ENTITY uuml "&#xFC;">
     160<!ENTITY yacute "&#xFD;">
     161<!ENTITY thorn "&#xFE;">
     162<!ENTITY yuml "&#xFF;">
     163<!ENTITY Amacr "&#x100;">
     164<!ENTITY amacr "&#x101;">
     165<!ENTITY Abreve "&#x102;">
     166<!ENTITY abreve "&#x103;">
     167<!ENTITY Aogon "&#x104;">
     168<!ENTITY aogon "&#x105;">
     169<!ENTITY Cacute "&#x106;">
     170<!ENTITY cacute "&#x107;">
     171<!ENTITY Ccirc "&#x108;">
     172<!ENTITY ccirc "&#x109;">
     173<!ENTITY Cdot "&#x10A;">
     174<!ENTITY cdot "&#x10B;">
     175<!ENTITY Ccaron "&#x10C;">
     176<!ENTITY ccaron "&#x10D;">
     177<!ENTITY Dcaron "&#x10E;">
     178<!ENTITY dcaron "&#x10F;">
     179<!ENTITY Dstrok "&#x110;">
     180<!ENTITY dstrok "&#x111;">
     181<!ENTITY Emacr "&#x112;">
     182<!ENTITY emacr "&#x113;">
     183<!ENTITY Edot "&#x116;">
     184<!ENTITY edot "&#x117;">
     185<!ENTITY Eogon "&#x118;">
     186<!ENTITY eogon "&#x119;">
     187<!ENTITY Ecaron "&#x11A;">
     188<!ENTITY ecaron "&#x11B;">
     189<!ENTITY Gcirc "&#x11C;">
     190<!ENTITY gcirc "&#x11D;">
     191<!ENTITY Gbreve "&#x11E;">
     192<!ENTITY gbreve "&#x11F;">
     193<!ENTITY Gdot "&#x120;">
     194<!ENTITY gdot "&#x121;">
     195<!ENTITY Gcedil "&#x122;">
     196<!ENTITY Hcirc "&#x124;">
     197<!ENTITY hcirc "&#x125;">
     198<!ENTITY Hstrok "&#x126;">
     199<!ENTITY hstrok "&#x127;">
     200<!ENTITY Itilde "&#x128;">
     201<!ENTITY itilde "&#x129;">
     202<!ENTITY Imacr "&#x12A;">
     203<!ENTITY imacr "&#x12B;">
     204<!ENTITY Iogon "&#x12E;">
     205<!ENTITY iogon "&#x12F;">
     206<!ENTITY Idot "&#x130;">
     207<!ENTITY imath "&#x131;">
     208<!ENTITY inodot "&#x131;">
     209<!ENTITY IJlig "&#x132;">
     210<!ENTITY ijlig "&#x133;">
     211<!ENTITY Jcirc "&#x134;">
     212<!ENTITY jcirc "&#x135;">
     213<!ENTITY Kcedil "&#x136;">
     214<!ENTITY kcedil "&#x137;">
     215<!ENTITY kgreen "&#x138;">
     216<!ENTITY Lacute "&#x139;">
     217<!ENTITY lacute "&#x13A;">
     218<!ENTITY Lcedil "&#x13B;">
     219<!ENTITY lcedil "&#x13C;">
     220<!ENTITY Lcaron "&#x13D;">
     221<!ENTITY lcaron "&#x13E;">
     222<!ENTITY Lmidot "&#x13F;">
     223<!ENTITY lmidot "&#x140;">
     224<!ENTITY Lstrok "&#x141;">
     225<!ENTITY lstrok "&#x142;">
     226<!ENTITY Nacute "&#x143;">
     227<!ENTITY nacute "&#x144;">
     228<!ENTITY Ncedil "&#x145;">
     229<!ENTITY ncedil "&#x146;">
     230<!ENTITY Ncaron "&#x147;">
     231<!ENTITY ncaron "&#x148;">
     232<!ENTITY napos "&#x149;">
     233<!ENTITY ENG "&#x14A;">
     234<!ENTITY eng "&#x14B;">
     235<!ENTITY Omacr "&#x14C;">
     236<!ENTITY omacr "&#x14D;">
     237<!ENTITY Odblac "&#x150;">
     238<!ENTITY odblac "&#x151;">
     239<!ENTITY OElig "&#x152;">
     240<!ENTITY oelig "&#x153;">
     241<!ENTITY Racute "&#x154;">
     242<!ENTITY racute "&#x155;">
     243<!ENTITY Rcedil "&#x156;">
     244<!ENTITY rcedil "&#x157;">
     245<!ENTITY Rcaron "&#x158;">
     246<!ENTITY rcaron "&#x159;">
     247<!ENTITY Sacute "&#x15A;">
     248<!ENTITY sacute "&#x15B;">
     249<!ENTITY Scirc "&#x15C;">
     250<!ENTITY scirc "&#x15D;">
     251<!ENTITY Scedil "&#x15E;">
     252<!ENTITY scedil "&#x15F;">
     253<!ENTITY Scaron "&#x160;">
     254<!ENTITY scaron "&#x161;">
     255<!ENTITY Tcedil "&#x162;">
     256<!ENTITY tcedil "&#x163;">
     257<!ENTITY Tcaron "&#x164;">
     258<!ENTITY tcaron "&#x165;">
     259<!ENTITY Tstrok "&#x166;">
     260<!ENTITY tstrok "&#x167;">
     261<!ENTITY Utilde "&#x168;">
     262<!ENTITY utilde "&#x169;">
     263<!ENTITY Umacr "&#x16A;">
     264<!ENTITY umacr "&#x16B;">
     265<!ENTITY Ubreve "&#x16C;">
     266<!ENTITY ubreve "&#x16D;">
     267<!ENTITY Uring "&#x16E;">
     268<!ENTITY uring "&#x16F;">
     269<!ENTITY Udblac "&#x170;">
     270<!ENTITY udblac "&#x171;">
     271<!ENTITY Uogon "&#x172;">
     272<!ENTITY uogon "&#x173;">
     273<!ENTITY Wcirc "&#x174;">
     274<!ENTITY wcirc "&#x175;">
     275<!ENTITY Ycirc "&#x176;">
     276<!ENTITY ycirc "&#x177;">
     277<!ENTITY Yuml "&#x178;">
     278<!ENTITY Zacute "&#x179;">
     279<!ENTITY zacute "&#x17A;">
     280<!ENTITY Zdot "&#x17B;">
     281<!ENTITY zdot "&#x17C;">
     282<!ENTITY Zcaron "&#x17D;">
     283<!ENTITY zcaron "&#x17E;">
     284<!ENTITY fnof "&#x192;">
     285<!ENTITY imped "&#x1B5;">
     286<!ENTITY gacute "&#x1F5;">
     287<!ENTITY jmath "&#x237;">
     288<!ENTITY circ "&#x2C6;">
     289<!ENTITY caron "&#x2C7;">
     290<!ENTITY Hacek "&#x2C7;">
     291<!ENTITY breve "&#x2D8;">
     292<!ENTITY Breve "&#x2D8;">
     293<!ENTITY dot "&#x2D9;">
     294<!ENTITY DiacriticalDot "&#x2D9;">
     295<!ENTITY ring "&#x2DA;">
     296<!ENTITY ogon "&#x2DB;">
     297<!ENTITY tilde "&#x2DC;">
     298<!ENTITY DiacriticalTilde "&#x2DC;">
     299<!ENTITY dblac "&#x2DD;">
     300<!ENTITY DiacriticalDoubleAcute "&#x2DD;">
     301<!ENTITY DownBreve "&#x311;">
     302<!ENTITY Alpha "&#x391;">
     303<!ENTITY Beta "&#x392;">
     304<!ENTITY Gamma "&#x393;">
     305<!ENTITY Delta "&#x394;">
     306<!ENTITY Epsilon "&#x395;">
     307<!ENTITY Zeta "&#x396;">
     308<!ENTITY Eta "&#x397;">
     309<!ENTITY Theta "&#x398;">
     310<!ENTITY Iota "&#x399;">
     311<!ENTITY Kappa "&#x39A;">
     312<!ENTITY Lambda "&#x39B;">
     313<!ENTITY Mu "&#x39C;">
     314<!ENTITY Nu "&#x39D;">
     315<!ENTITY Xi "&#x39E;">
     316<!ENTITY Omicron "&#x39F;">
     317<!ENTITY Pi "&#x3A0;">
     318<!ENTITY Rho "&#x3A1;">
     319<!ENTITY Sigma "&#x3A3;">
     320<!ENTITY Tau "&#x3A4;">
     321<!ENTITY Upsilon "&#x3A5;">
     322<!ENTITY Phi "&#x3A6;">
     323<!ENTITY Chi "&#x3A7;">
     324<!ENTITY Psi "&#x3A8;">
     325<!ENTITY Omega "&#x3A9;">
     326<!ENTITY ohm "&#x3A9;">
     327<!ENTITY alpha "&#x3B1;">
     328<!ENTITY beta "&#x3B2;">
     329<!ENTITY gamma "&#x3B3;">
     330<!ENTITY delta "&#x3B4;">
     331<!ENTITY epsi "&#x3B5;">
     332<!ENTITY epsilon "&#x3B5;">
     333<!ENTITY zeta "&#x3B6;">
     334<!ENTITY eta "&#x3B7;">
     335<!ENTITY theta "&#x3B8;">
     336<!ENTITY iota "&#x3B9;">
     337<!ENTITY kappa "&#x3BA;">
     338<!ENTITY lambda "&#x3BB;">
     339<!ENTITY mu "&#x3BC;">
     340<!ENTITY nu "&#x3BD;">
     341<!ENTITY xi "&#x3BE;">
     342<!ENTITY omicron "&#x3BF;">
     343<!ENTITY pi "&#x3C0;">
     344<!ENTITY rho "&#x3C1;">
     345<!ENTITY sigmav "&#x3C2;">
     346<!ENTITY varsigma "&#x3C2;">
     347<!ENTITY sigmaf "&#x3C2;">
     348<!ENTITY sigma "&#x3C3;">
     349<!ENTITY tau "&#x3C4;">
     350<!ENTITY upsi "&#x3C5;">
     351<!ENTITY upsilon "&#x3C5;">
     352<!ENTITY phi "&#x3C6;">
     353<!ENTITY chi "&#x3C7;">
     354<!ENTITY psi "&#x3C8;">
     355<!ENTITY omega "&#x3C9;">
     356<!ENTITY thetav "&#x3D1;">
     357<!ENTITY vartheta "&#x3D1;">
     358<!ENTITY thetasym "&#x3D1;">
     359<!ENTITY Upsi "&#x3D2;">
     360<!ENTITY upsih "&#x3D2;">
     361<!ENTITY straightphi "&#x3D5;">
     362<!ENTITY phiv "&#x3D5;">
     363<!ENTITY varphi "&#x3D5;">
     364<!ENTITY piv "&#x3D6;">
     365<!ENTITY varpi "&#x3D6;">
     366<!ENTITY Gammad "&#x3DC;">
     367<!ENTITY gammad "&#x3DD;">
     368<!ENTITY digamma "&#x3DD;">
     369<!ENTITY kappav "&#x3F0;">
     370<!ENTITY varkappa "&#x3F0;">
     371<!ENTITY rhov "&#x3F1;">
     372<!ENTITY varrho "&#x3F1;">
     373<!ENTITY epsiv "&#x3F5;">
     374<!ENTITY straightepsilon "&#x3F5;">
     375<!ENTITY varepsilon "&#x3F5;">
     376<!ENTITY bepsi "&#x3F6;">
     377<!ENTITY backepsilon "&#x3F6;">
     378<!ENTITY IOcy "&#x401;">
     379<!ENTITY DJcy "&#x402;">
     380<!ENTITY GJcy "&#x403;">
     381<!ENTITY Jukcy "&#x404;">
     382<!ENTITY DScy "&#x405;">
     383<!ENTITY Iukcy "&#x406;">
     384<!ENTITY YIcy "&#x407;">
     385<!ENTITY Jsercy "&#x408;">
     386<!ENTITY LJcy "&#x409;">
     387<!ENTITY NJcy "&#x40A;">
     388<!ENTITY TSHcy "&#x40B;">
     389<!ENTITY KJcy "&#x40C;">
     390<!ENTITY Ubrcy "&#x40E;">
     391<!ENTITY DZcy "&#x40F;">
     392<!ENTITY Acy "&#x410;">
     393<!ENTITY Bcy "&#x411;">
     394<!ENTITY Vcy "&#x412;">
     395<!ENTITY Gcy "&#x413;">
     396<!ENTITY Dcy "&#x414;">
     397<!ENTITY IEcy "&#x415;">
     398<!ENTITY ZHcy "&#x416;">
     399<!ENTITY Zcy "&#x417;">
     400<!ENTITY Icy "&#x418;">
     401<!ENTITY Jcy "&#x419;">
     402<!ENTITY Kcy "&#x41A;">
     403<!ENTITY Lcy "&#x41B;">
     404<!ENTITY Mcy "&#x41C;">
     405<!ENTITY Ncy "&#x41D;">
     406<!ENTITY Ocy "&#x41E;">
     407<!ENTITY Pcy "&#x41F;">
     408<!ENTITY Rcy "&#x420;">
     409<!ENTITY Scy "&#x421;">
     410<!ENTITY Tcy "&#x422;">
     411<!ENTITY Ucy "&#x423;">
     412<!ENTITY Fcy "&#x424;">
     413<!ENTITY KHcy "&#x425;">
     414<!ENTITY TScy "&#x426;">
     415<!ENTITY CHcy "&#x427;">
     416<!ENTITY SHcy "&#x428;">
     417<!ENTITY SHCHcy "&#x429;">
     418<!ENTITY HARDcy "&#x42A;">
     419<!ENTITY Ycy "&#x42B;">
     420<!ENTITY SOFTcy "&#x42C;">
     421<!ENTITY Ecy "&#x42D;">
     422<!ENTITY YUcy "&#x42E;">
     423<!ENTITY YAcy "&#x42F;">
     424<!ENTITY acy "&#x430;">
     425<!ENTITY bcy "&#x431;">
     426<!ENTITY vcy "&#x432;">
     427<!ENTITY gcy "&#x433;">
     428<!ENTITY dcy "&#x434;">
     429<!ENTITY iecy "&#x435;">
     430<!ENTITY zhcy "&#x436;">
     431<!ENTITY zcy "&#x437;">
     432<!ENTITY icy "&#x438;">
     433<!ENTITY jcy "&#x439;">
     434<!ENTITY kcy "&#x43A;">
     435<!ENTITY lcy "&#x43B;">
     436<!ENTITY mcy "&#x43C;">
     437<!ENTITY ncy "&#x43D;">
     438<!ENTITY ocy "&#x43E;">
     439<!ENTITY pcy "&#x43F;">
     440<!ENTITY rcy "&#x440;">
     441<!ENTITY scy "&#x441;">
     442<!ENTITY tcy "&#x442;">
     443<!ENTITY ucy "&#x443;">
     444<!ENTITY fcy "&#x444;">
     445<!ENTITY khcy "&#x445;">
     446<!ENTITY tscy "&#x446;">
     447<!ENTITY chcy "&#x447;">
     448<!ENTITY shcy "&#x448;">
     449<!ENTITY shchcy "&#x449;">
     450<!ENTITY hardcy "&#x44A;">
     451<!ENTITY ycy "&#x44B;">
     452<!ENTITY softcy "&#x44C;">
     453<!ENTITY ecy "&#x44D;">
     454<!ENTITY yucy "&#x44E;">
     455<!ENTITY yacy "&#x44F;">
     456<!ENTITY iocy "&#x451;">
     457<!ENTITY djcy "&#x452;">
     458<!ENTITY gjcy "&#x453;">
     459<!ENTITY jukcy "&#x454;">
     460<!ENTITY dscy "&#x455;">
     461<!ENTITY iukcy "&#x456;">
     462<!ENTITY yicy "&#x457;">
     463<!ENTITY jsercy "&#x458;">
     464<!ENTITY ljcy "&#x459;">
     465<!ENTITY njcy "&#x45A;">
     466<!ENTITY tshcy "&#x45B;">
     467<!ENTITY kjcy "&#x45C;">
     468<!ENTITY ubrcy "&#x45E;">
     469<!ENTITY dzcy "&#x45F;">
     470<!ENTITY ensp "&#x2002;">
     471<!ENTITY emsp "&#x2003;">
     472<!ENTITY emsp13 "&#x2004;">
     473<!ENTITY emsp14 "&#x2005;">
     474<!ENTITY numsp "&#x2007;">
     475<!ENTITY puncsp "&#x2008;">
     476<!ENTITY thinsp "&#x2009;">
     477<!ENTITY ThinSpace "&#x2009;">
     478<!ENTITY hairsp "&#x200A;">
     479<!ENTITY VeryThinSpace "&#x200A;">
     480<!ENTITY ZeroWidthSpace "&#x200B;">
     481<!ENTITY NegativeVeryThinSpace "&#x200B;">
     482<!ENTITY NegativeThinSpace "&#x200B;">
     483<!ENTITY NegativeMediumSpace "&#x200B;">
     484<!ENTITY NegativeThickSpace "&#x200B;">
     485<!ENTITY zwnj "&#x200C;">
     486<!ENTITY zwj "&#x200D;">
     487<!ENTITY lrm "&#x200E;">
     488<!ENTITY rlm "&#x200F;">
     489<!ENTITY hyphen "&#x2010;">
     490<!ENTITY dash "&#x2010;">
     491<!ENTITY ndash "&#x2013;">
     492<!ENTITY mdash "&#x2014;">
     493<!ENTITY horbar "&#x2015;">
     494<!ENTITY Verbar "&#x2016;">
     495<!ENTITY Vert "&#x2016;">
     496<!ENTITY lsquo "&#x2018;">
     497<!ENTITY OpenCurlyQuote "&#x2018;">
     498<!ENTITY rsquo "&#x2019;">
     499<!ENTITY rsquor "&#x2019;">
     500<!ENTITY CloseCurlyQuote "&#x2019;">
     501<!ENTITY lsquor "&#x201A;">
     502<!ENTITY sbquo "&#x201A;">
     503<!ENTITY ldquo "&#x201C;">
     504<!ENTITY OpenCurlyDoubleQuote "&#x201C;">
     505<!ENTITY rdquo "&#x201D;">
     506<!ENTITY rdquor "&#x201D;">
     507<!ENTITY CloseCurlyDoubleQuote "&#x201D;">
     508<!ENTITY ldquor "&#x201E;">
     509<!ENTITY bdquo "&#x201E;">
     510<!ENTITY dagger "&#x2020;">
     511<!ENTITY Dagger "&#x2021;">
     512<!ENTITY ddagger "&#x2021;">
     513<!ENTITY bull "&#x2022;">
     514<!ENTITY bullet "&#x2022;">
     515<!ENTITY nldr "&#x2025;">
     516<!ENTITY hellip "&#x2026;">
     517<!ENTITY mldr "&#x2026;">
     518<!ENTITY permil "&#x2030;">
     519<!ENTITY pertenk "&#x2031;">
     520<!ENTITY prime "&#x2032;">
     521<!ENTITY Prime "&#x2033;">
     522<!ENTITY tprime "&#x2034;">
     523<!ENTITY bprime "&#x2035;">
     524<!ENTITY backprime "&#x2035;">
     525<!ENTITY lsaquo "&#x2039;">
     526<!ENTITY rsaquo "&#x203A;">
     527<!ENTITY oline "&#x203E;">
     528<!ENTITY OverBar "&#x203E;">
     529<!ENTITY caret "&#x2041;">
     530<!ENTITY hybull "&#x2043;">
     531<!ENTITY frasl "&#x2044;">
     532<!ENTITY bsemi "&#x204F;">
     533<!ENTITY qprime "&#x2057;">
     534<!ENTITY MediumSpace "&#x205F;">
     535<!ENTITY ThickSpace "&#x205F;&#x200A;">
     536<!ENTITY NoBreak "&#x2060;">
     537<!ENTITY ApplyFunction "&#x2061;">
     538<!ENTITY af "&#x2061;">
     539<!ENTITY InvisibleTimes "&#x2062;">
     540<!ENTITY it "&#x2062;">
     541<!ENTITY InvisibleComma "&#x2063;">
     542<!ENTITY ic "&#x2063;">
     543<!ENTITY euro "&#x20AC;">
     544<!ENTITY tdot "&#x20DB;">
     545<!ENTITY TripleDot "&#x20DB;">
     546<!ENTITY DotDot "&#x20DC;">
     547<!ENTITY Copf "&#x2102;">
     548<!ENTITY complexes "&#x2102;">
     549<!ENTITY incare "&#x2105;">
     550<!ENTITY gscr "&#x210A;">
     551<!ENTITY hamilt "&#x210B;">
     552<!ENTITY HilbertSpace "&#x210B;">
     553<!ENTITY Hscr "&#x210B;">
     554<!ENTITY Hfr "&#x210C;">
     555<!ENTITY Poincareplane "&#x210C;">
     556<!ENTITY quaternions "&#x210D;">
     557<!ENTITY Hopf "&#x210D;">
     558<!ENTITY planckh "&#x210E;">
     559<!ENTITY planck "&#x210F;">
     560<!ENTITY hbar "&#x210F;">
     561<!ENTITY plankv "&#x210F;">
     562<!ENTITY hslash "&#x210F;">
     563<!ENTITY Iscr "&#x2110;">
     564<!ENTITY imagline "&#x2110;">
     565<!ENTITY image "&#x2111;">
     566<!ENTITY Im "&#x2111;">
     567<!ENTITY imagpart "&#x2111;">
     568<!ENTITY Ifr "&#x2111;">
     569<!ENTITY Lscr "&#x2112;">
     570<!ENTITY lagran "&#x2112;">
     571<!ENTITY Laplacetrf "&#x2112;">
     572<!ENTITY ell "&#x2113;">
     573<!ENTITY Nopf "&#x2115;">
     574<!ENTITY naturals "&#x2115;">
     575<!ENTITY numero "&#x2116;">
     576<!ENTITY copysr "&#x2117;">
     577<!ENTITY weierp "&#x2118;">
     578<!ENTITY wp "&#x2118;">
     579<!ENTITY Popf "&#x2119;">
     580<!ENTITY primes "&#x2119;">
     581<!ENTITY rationals "&#x211A;">
     582<!ENTITY Qopf "&#x211A;">
     583<!ENTITY Rscr "&#x211B;">
     584<!ENTITY realine "&#x211B;">
     585<!ENTITY real "&#x211C;">
     586<!ENTITY Re "&#x211C;">
     587<!ENTITY realpart "&#x211C;">
     588<!ENTITY Rfr "&#x211C;">
     589<!ENTITY reals "&#x211D;">
     590<!ENTITY Ropf "&#x211D;">
     591<!ENTITY rx "&#x211E;">
     592<!ENTITY trade "&#x2122;">
     593<!ENTITY TRADE "&#x2122;">
     594<!ENTITY integers "&#x2124;">
     595<!ENTITY Zopf "&#x2124;">
     596<!ENTITY mho "&#x2127;">
     597<!ENTITY Zfr "&#x2128;">
     598<!ENTITY zeetrf "&#x2128;">
     599<!ENTITY iiota "&#x2129;">
     600<!ENTITY bernou "&#x212C;">
     601<!ENTITY Bernoullis "&#x212C;">
     602<!ENTITY Bscr "&#x212C;">
     603<!ENTITY Cfr "&#x212D;">
     604<!ENTITY Cayleys "&#x212D;">
     605<!ENTITY escr "&#x212F;">
     606<!ENTITY Escr "&#x2130;">
     607<!ENTITY expectation "&#x2130;">
     608<!ENTITY Fscr "&#x2131;">
     609<!ENTITY Fouriertrf "&#x2131;">
     610<!ENTITY phmmat "&#x2133;">
     611<!ENTITY Mellintrf "&#x2133;">
     612<!ENTITY Mscr "&#x2133;">
     613<!ENTITY order "&#x2134;">
     614<!ENTITY orderof "&#x2134;">
     615<!ENTITY oscr "&#x2134;">
     616<!ENTITY alefsym "&#x2135;">
     617<!ENTITY aleph "&#x2135;">
     618<!ENTITY beth "&#x2136;">
     619<!ENTITY gimel "&#x2137;">
     620<!ENTITY daleth "&#x2138;">
     621<!ENTITY CapitalDifferentialD "&#x2145;">
     622<!ENTITY DD "&#x2145;">
     623<!ENTITY DifferentialD "&#x2146;">
     624<!ENTITY dd "&#x2146;">
     625<!ENTITY ExponentialE "&#x2147;">
     626<!ENTITY exponentiale "&#x2147;">
     627<!ENTITY ee "&#x2147;">
     628<!ENTITY ImaginaryI "&#x2148;">
     629<!ENTITY ii "&#x2148;">
     630<!ENTITY frac13 "&#x2153;">
     631<!ENTITY frac23 "&#x2154;">
     632<!ENTITY frac15 "&#x2155;">
     633<!ENTITY frac25 "&#x2156;">
     634<!ENTITY frac35 "&#x2157;">
     635<!ENTITY frac45 "&#x2158;">
     636<!ENTITY frac16 "&#x2159;">
     637<!ENTITY frac56 "&#x215A;">
     638<!ENTITY frac18 "&#x215B;">
     639<!ENTITY frac38 "&#x215C;">
     640<!ENTITY frac58 "&#x215D;">
     641<!ENTITY frac78 "&#x215E;">
     642<!ENTITY larr "&#x2190;">
     643<!ENTITY leftarrow "&#x2190;">
     644<!ENTITY LeftArrow "&#x2190;">
     645<!ENTITY slarr "&#x2190;">
     646<!ENTITY ShortLeftArrow "&#x2190;">
     647<!ENTITY uarr "&#x2191;">
     648<!ENTITY uparrow "&#x2191;">
     649<!ENTITY UpArrow "&#x2191;">
     650<!ENTITY ShortUpArrow "&#x2191;">
     651<!ENTITY rarr "&#x2192;">
     652<!ENTITY rightarrow "&#x2192;">
     653<!ENTITY RightArrow "&#x2192;">
     654<!ENTITY srarr "&#x2192;">
     655<!ENTITY ShortRightArrow "&#x2192;">
     656<!ENTITY darr "&#x2193;">
     657<!ENTITY downarrow "&#x2193;">
     658<!ENTITY DownArrow "&#x2193;">
     659<!ENTITY ShortDownArrow "&#x2193;">
     660<!ENTITY harr "&#x2194;">
     661<!ENTITY leftrightarrow "&#x2194;">
     662<!ENTITY LeftRightArrow "&#x2194;">
     663<!ENTITY varr "&#x2195;">
     664<!ENTITY updownarrow "&#x2195;">
     665<!ENTITY UpDownArrow "&#x2195;">
     666<!ENTITY nwarr "&#x2196;">
     667<!ENTITY UpperLeftArrow "&#x2196;">
     668<!ENTITY nwarrow "&#x2196;">
     669<!ENTITY nearr "&#x2197;">
     670<!ENTITY UpperRightArrow "&#x2197;">
     671<!ENTITY nearrow "&#x2197;">
     672<!ENTITY searr "&#x2198;">
     673<!ENTITY searrow "&#x2198;">
     674<!ENTITY LowerRightArrow "&#x2198;">
     675<!ENTITY swarr "&#x2199;">
     676<!ENTITY swarrow "&#x2199;">
     677<!ENTITY LowerLeftArrow "&#x2199;">
     678<!ENTITY nlarr "&#x219A;">
     679<!ENTITY nleftarrow "&#x219A;">
     680<!ENTITY nrarr "&#x219B;">
     681<!ENTITY nrightarrow "&#x219B;">
     682<!ENTITY rarrw "&#x219D;">
     683<!ENTITY rightsquigarrow "&#x219D;">
     684<!ENTITY nrarrw "&#x219D;&#x338;">
     685<!ENTITY Larr "&#x219E;">
     686<!ENTITY twoheadleftarrow "&#x219E;">
     687<!ENTITY Uarr "&#x219F;">
     688<!ENTITY Rarr "&#x21A0;">
     689<!ENTITY twoheadrightarrow "&#x21A0;">
     690<!ENTITY Darr "&#x21A1;">
     691<!ENTITY larrtl "&#x21A2;">
     692<!ENTITY leftarrowtail "&#x21A2;">
     693<!ENTITY rarrtl "&#x21A3;">
     694<!ENTITY rightarrowtail "&#x21A3;">
     695<!ENTITY LeftTeeArrow "&#x21A4;">
     696<!ENTITY mapstoleft "&#x21A4;">
     697<!ENTITY UpTeeArrow "&#x21A5;">
     698<!ENTITY mapstoup "&#x21A5;">
     699<!ENTITY map "&#x21A6;">
     700<!ENTITY RightTeeArrow "&#x21A6;">
     701<!ENTITY mapsto "&#x21A6;">
     702<!ENTITY DownTeeArrow "&#x21A7;">
     703<!ENTITY mapstodown "&#x21A7;">
     704<!ENTITY larrhk "&#x21A9;">
     705<!ENTITY hookleftarrow "&#x21A9;">
     706<!ENTITY rarrhk "&#x21AA;">
     707<!ENTITY hookrightarrow "&#x21AA;">
     708<!ENTITY larrlp "&#x21AB;">
     709<!ENTITY looparrowleft "&#x21AB;">
     710<!ENTITY rarrlp "&#x21AC;">
     711<!ENTITY looparrowright "&#x21AC;">
     712<!ENTITY harrw "&#x21AD;">
     713<!ENTITY leftrightsquigarrow "&#x21AD;">
     714<!ENTITY nharr "&#x21AE;">
     715<!ENTITY nleftrightarrow "&#x21AE;">
     716<!ENTITY lsh "&#x21B0;">
     717<!ENTITY Lsh "&#x21B0;">
     718<!ENTITY rsh "&#x21B1;">
     719<!ENTITY Rsh "&#x21B1;">
     720<!ENTITY ldsh "&#x21B2;">
     721<!ENTITY rdsh "&#x21B3;">
     722<!ENTITY crarr "&#x21B5;">
     723<!ENTITY cularr "&#x21B6;">
     724<!ENTITY curvearrowleft "&#x21B6;">
     725<!ENTITY curarr "&#x21B7;">
     726<!ENTITY curvearrowright "&#x21B7;">
     727<!ENTITY olarr "&#x21BA;">
     728<!ENTITY circlearrowleft "&#x21BA;">
     729<!ENTITY orarr "&#x21BB;">
     730<!ENTITY circlearrowright "&#x21BB;">
     731<!ENTITY lharu "&#x21BC;">
     732<!ENTITY LeftVector "&#x21BC;">
     733<!ENTITY leftharpoonup "&#x21BC;">
     734<!ENTITY lhard "&#x21BD;">
     735<!ENTITY leftharpoondown "&#x21BD;">
     736<!ENTITY DownLeftVector "&#x21BD;">
     737<!ENTITY uharr "&#x21BE;">
     738<!ENTITY upharpoonright "&#x21BE;">
     739<!ENTITY RightUpVector "&#x21BE;">
     740<!ENTITY uharl "&#x21BF;">
     741<!ENTITY upharpoonleft "&#x21BF;">
     742<!ENTITY LeftUpVector "&#x21BF;">
     743<!ENTITY rharu "&#x21C0;">
     744<!ENTITY RightVector "&#x21C0;">
     745<!ENTITY rightharpoonup "&#x21C0;">
     746<!ENTITY rhard "&#x21C1;">
     747<!ENTITY rightharpoondown "&#x21C1;">
     748<!ENTITY DownRightVector "&#x21C1;">
     749<!ENTITY dharr "&#x21C2;">
     750<!ENTITY RightDownVector "&#x21C2;">
     751<!ENTITY downharpoonright "&#x21C2;">
     752<!ENTITY dharl "&#x21C3;">
     753<!ENTITY LeftDownVector "&#x21C3;">
     754<!ENTITY downharpoonleft "&#x21C3;">
     755<!ENTITY rlarr "&#x21C4;">
     756<!ENTITY rightleftarrows "&#x21C4;">
     757<!ENTITY RightArrowLeftArrow "&#x21C4;">
     758<!ENTITY udarr "&#x21C5;">
     759<!ENTITY UpArrowDownArrow "&#x21C5;">
     760<!ENTITY lrarr "&#x21C6;">
     761<!ENTITY leftrightarrows "&#x21C6;">
     762<!ENTITY LeftArrowRightArrow "&#x21C6;">
     763<!ENTITY llarr "&#x21C7;">
     764<!ENTITY leftleftarrows "&#x21C7;">
     765<!ENTITY uuarr "&#x21C8;">
     766<!ENTITY upuparrows "&#x21C8;">
     767<!ENTITY rrarr "&#x21C9;">
     768<!ENTITY rightrightarrows "&#x21C9;">
     769<!ENTITY ddarr "&#x21CA;">
     770<!ENTITY downdownarrows "&#x21CA;">
     771<!ENTITY lrhar "&#x21CB;">
     772<!ENTITY ReverseEquilibrium "&#x21CB;">
     773<!ENTITY leftrightharpoons "&#x21CB;">
     774<!ENTITY rlhar "&#x21CC;">
     775<!ENTITY rightleftharpoons "&#x21CC;">
     776<!ENTITY Equilibrium "&#x21CC;">
     777<!ENTITY nlArr "&#x21CD;">
     778<!ENTITY nLeftarrow "&#x21CD;">
     779<!ENTITY nhArr "&#x21CE;">
     780<!ENTITY nLeftrightarrow "&#x21CE;">
     781<!ENTITY nrArr "&#x21CF;">
     782<!ENTITY nRightarrow "&#x21CF;">
     783<!ENTITY lArr "&#x21D0;">
     784<!ENTITY Leftarrow "&#x21D0;">
     785<!ENTITY DoubleLeftArrow "&#x21D0;">
     786<!ENTITY uArr "&#x21D1;">
     787<!ENTITY Uparrow "&#x21D1;">
     788<!ENTITY DoubleUpArrow "&#x21D1;">
     789<!ENTITY rArr "&#x21D2;">
     790<!ENTITY Rightarrow "&#x21D2;">
     791<!ENTITY Implies "&#x21D2;">
     792<!ENTITY DoubleRightArrow "&#x21D2;">
     793<!ENTITY dArr "&#x21D3;">
     794<!ENTITY Downarrow "&#x21D3;">
     795<!ENTITY DoubleDownArrow "&#x21D3;">
     796<!ENTITY hArr "&#x21D4;">
     797<!ENTITY Leftrightarrow "&#x21D4;">
     798<!ENTITY DoubleLeftRightArrow "&#x21D4;">
     799<!ENTITY iff "&#x21D4;">
     800<!ENTITY vArr "&#x21D5;">
     801<!ENTITY Updownarrow "&#x21D5;">
     802<!ENTITY DoubleUpDownArrow "&#x21D5;">
     803<!ENTITY nwArr "&#x21D6;">
     804<!ENTITY neArr "&#x21D7;">
     805<!ENTITY seArr "&#x21D8;">
     806<!ENTITY swArr "&#x21D9;">
     807<!ENTITY lAarr "&#x21DA;">
     808<!ENTITY Lleftarrow "&#x21DA;">
     809<!ENTITY rAarr "&#x21DB;">
     810<!ENTITY Rrightarrow "&#x21DB;">
     811<!ENTITY zigrarr "&#x21DD;">
     812<!ENTITY larrb "&#x21E4;">
     813<!ENTITY LeftArrowBar "&#x21E4;">
     814<!ENTITY rarrb "&#x21E5;">
     815<!ENTITY RightArrowBar "&#x21E5;">
     816<!ENTITY duarr "&#x21F5;">
     817<!ENTITY DownArrowUpArrow "&#x21F5;">
     818<!ENTITY loarr "&#x21FD;">
     819<!ENTITY roarr "&#x21FE;">
     820<!ENTITY hoarr "&#x21FF;">
     821<!ENTITY forall "&#x2200;">
     822<!ENTITY ForAll "&#x2200;">
     823<!ENTITY comp "&#x2201;">
     824<!ENTITY complement "&#x2201;">
     825<!ENTITY part "&#x2202;">
     826<!ENTITY PartialD "&#x2202;">
     827<!ENTITY npart "&#x2202;&#x338;">
     828<!ENTITY exist "&#x2203;">
     829<!ENTITY Exists "&#x2203;">
     830<!ENTITY nexist "&#x2204;">
     831<!ENTITY NotExists "&#x2204;">
     832<!ENTITY nexists "&#x2204;">
     833<!ENTITY empty "&#x2205;">
     834<!ENTITY emptyset "&#x2205;">
     835<!ENTITY emptyv "&#x2205;">
     836<!ENTITY varnothing "&#x2205;">
     837<!ENTITY nabla "&#x2207;">
     838<!ENTITY Del "&#x2207;">
     839<!ENTITY isin "&#x2208;">
     840<!ENTITY isinv "&#x2208;">
     841<!ENTITY Element "&#x2208;">
     842<!ENTITY in "&#x2208;">
     843<!ENTITY notin "&#x2209;">
     844<!ENTITY NotElement "&#x2209;">
     845<!ENTITY notinva "&#x2209;">
     846<!ENTITY niv "&#x220B;">
     847<!ENTITY ReverseElement "&#x220B;">
     848<!ENTITY ni "&#x220B;">
     849<!ENTITY SuchThat "&#x220B;">
     850<!ENTITY notni "&#x220C;">
     851<!ENTITY notniva "&#x220C;">
     852<!ENTITY NotReverseElement "&#x220C;">
     853<!ENTITY prod "&#x220F;">
     854<!ENTITY Product "&#x220F;">
     855<!ENTITY coprod "&#x2210;">
     856<!ENTITY Coproduct "&#x2210;">
     857<!ENTITY sum "&#x2211;">
     858<!ENTITY Sum "&#x2211;">
     859<!ENTITY minus "&#x2212;">
     860<!ENTITY mnplus "&#x2213;">
     861<!ENTITY mp "&#x2213;">
     862<!ENTITY MinusPlus "&#x2213;">
     863<!ENTITY plusdo "&#x2214;">
     864<!ENTITY dotplus "&#x2214;">
     865<!ENTITY setmn "&#x2216;">
     866<!ENTITY setminus "&#x2216;">
     867<!ENTITY Backslash "&#x2216;">
     868<!ENTITY ssetmn "&#x2216;">
     869<!ENTITY smallsetminus "&#x2216;">
     870<!ENTITY lowast "&#x2217;">
     871<!ENTITY compfn "&#x2218;">
     872<!ENTITY SmallCircle "&#x2218;">
     873<!ENTITY radic "&#x221A;">
     874<!ENTITY Sqrt "&#x221A;">
     875<!ENTITY prop "&#x221D;">
     876<!ENTITY propto "&#x221D;">
     877<!ENTITY Proportional "&#x221D;">
     878<!ENTITY vprop "&#x221D;">
     879<!ENTITY varpropto "&#x221D;">
     880<!ENTITY infin "&#x221E;">
     881<!ENTITY angrt "&#x221F;">
     882<!ENTITY ang "&#x2220;">
     883<!ENTITY angle "&#x2220;">
     884<!ENTITY nang "&#x2220;&#x20D2;">
     885<!ENTITY angmsd "&#x2221;">
     886<!ENTITY measuredangle "&#x2221;">
     887<!ENTITY angsph "&#x2222;">
     888<!ENTITY mid "&#x2223;">
     889<!ENTITY VerticalBar "&#x2223;">
     890<!ENTITY smid "&#x2223;">
     891<!ENTITY shortmid "&#x2223;">
     892<!ENTITY nmid "&#x2224;">
     893<!ENTITY NotVerticalBar "&#x2224;">
     894<!ENTITY nsmid "&#x2224;">
     895<!ENTITY nshortmid "&#x2224;">
     896<!ENTITY par "&#x2225;">
     897<!ENTITY parallel "&#x2225;">
     898<!ENTITY DoubleVerticalBar "&#x2225;">
     899<!ENTITY spar "&#x2225;">
     900<!ENTITY shortparallel "&#x2225;">
     901<!ENTITY npar "&#x2226;">
     902<!ENTITY nparallel "&#x2226;">
     903<!ENTITY NotDoubleVerticalBar "&#x2226;">
     904<!ENTITY nspar "&#x2226;">
     905<!ENTITY nshortparallel "&#x2226;">
     906<!ENTITY and "&#x2227;">
     907<!ENTITY wedge "&#x2227;">
     908<!ENTITY or "&#x2228;">
     909<!ENTITY vee "&#x2228;">
     910<!ENTITY cap "&#x2229;">
     911<!ENTITY caps "&#x2229;&#xFE00;">
     912<!ENTITY cup "&#x222A;">
     913<!ENTITY cups "&#x222A;&#xFE00;">
     914<!ENTITY int "&#x222B;">
     915<!ENTITY Integral "&#x222B;">
     916<!ENTITY Int "&#x222C;">
     917<!ENTITY tint "&#x222D;">
     918<!ENTITY iiint "&#x222D;">
     919<!ENTITY conint "&#x222E;">
     920<!ENTITY oint "&#x222E;">
     921<!ENTITY ContourIntegral "&#x222E;">
     922<!ENTITY Conint "&#x222F;">
     923<!ENTITY DoubleContourIntegral "&#x222F;">
     924<!ENTITY Cconint "&#x2230;">
     925<!ENTITY cwint "&#x2231;">
     926<!ENTITY cwconint "&#x2232;">
     927<!ENTITY ClockwiseContourIntegral "&#x2232;">
     928<!ENTITY awconint "&#x2233;">
     929<!ENTITY CounterClockwiseContourIntegral "&#x2233;">
     930<!ENTITY there4 "&#x2234;">
     931<!ENTITY therefore "&#x2234;">
     932<!ENTITY Therefore "&#x2234;">
     933<!ENTITY becaus "&#x2235;">
     934<!ENTITY because "&#x2235;">
     935<!ENTITY Because "&#x2235;">
     936<!ENTITY ratio "&#x2236;">
     937<!ENTITY Colon "&#x2237;">
     938<!ENTITY Proportion "&#x2237;">
     939<!ENTITY minusd "&#x2238;">
     940<!ENTITY dotminus "&#x2238;">
     941<!ENTITY mDDot "&#x223A;">
     942<!ENTITY homtht "&#x223B;">
     943<!ENTITY sim "&#x223C;">
     944<!ENTITY Tilde "&#x223C;">
     945<!ENTITY thksim "&#x223C;">
     946<!ENTITY thicksim "&#x223C;">
     947<!ENTITY nvsim "&#x223C;&#x20D2;">
     948<!ENTITY bsim "&#x223D;">
     949<!ENTITY backsim "&#x223D;">
     950<!ENTITY race "&#x223D;&#x331;">
     951<!ENTITY ac "&#x223E;">
     952<!ENTITY mstpos "&#x223E;">
     953<!ENTITY acE "&#x223E;&#x333;">
     954<!ENTITY acd "&#x223F;">
     955<!ENTITY wreath "&#x2240;">
     956<!ENTITY VerticalTilde "&#x2240;">
     957<!ENTITY wr "&#x2240;">
     958<!ENTITY nsim "&#x2241;">
     959<!ENTITY NotTilde "&#x2241;">
     960<!ENTITY esim "&#x2242;">
     961<!ENTITY EqualTilde "&#x2242;">
     962<!ENTITY eqsim "&#x2242;">
     963<!ENTITY NotEqualTilde "&#x2242;&#x338;">
     964<!ENTITY nesim "&#x2242;&#x338;">
     965<!ENTITY sime "&#x2243;">
     966<!ENTITY TildeEqual "&#x2243;">
     967<!ENTITY simeq "&#x2243;">
     968<!ENTITY nsime "&#x2244;">
     969<!ENTITY nsimeq "&#x2244;">
     970<!ENTITY NotTildeEqual "&#x2244;">
     971<!ENTITY cong "&#x2245;">
     972<!ENTITY TildeFullEqual "&#x2245;">
     973<!ENTITY simne "&#x2246;">
     974<!ENTITY ncong "&#x2247;">
     975<!ENTITY NotTildeFullEqual "&#x2247;">
     976<!ENTITY asymp "&#x2248;">
     977<!ENTITY ap "&#x2248;">
     978<!ENTITY TildeTilde "&#x2248;">
     979<!ENTITY approx "&#x2248;">
     980<!ENTITY thkap "&#x2248;">
     981<!ENTITY thickapprox "&#x2248;">
     982<!ENTITY nap "&#x2249;">
     983<!ENTITY NotTildeTilde "&#x2249;">
     984<!ENTITY napprox "&#x2249;">
     985<!ENTITY ape "&#x224A;">
     986<!ENTITY approxeq "&#x224A;">
     987<!ENTITY apid "&#x224B;">
     988<!ENTITY napid "&#x224B;&#x338;">
     989<!ENTITY bcong "&#x224C;">
     990<!ENTITY backcong "&#x224C;">
     991<!ENTITY asympeq "&#x224D;">
     992<!ENTITY CupCap "&#x224D;">
     993<!ENTITY nvap "&#x224D;&#x20D2;">
     994<!ENTITY bump "&#x224E;">
     995<!ENTITY HumpDownHump "&#x224E;">
     996<!ENTITY Bumpeq "&#x224E;">
     997<!ENTITY NotHumpDownHump "&#x224E;&#x338;">
     998<!ENTITY nbump "&#x224E;&#x338;">
     999<!ENTITY bumpe "&#x224F;">
     1000<!ENTITY HumpEqual "&#x224F;">
     1001<!ENTITY bumpeq "&#x224F;">
     1002<!ENTITY nbumpe "&#x224F;&#x338;">
     1003<!ENTITY NotHumpEqual "&#x224F;&#x338;">
     1004<!ENTITY esdot "&#x2250;">
     1005<!ENTITY DotEqual "&#x2250;">
     1006<!ENTITY doteq "&#x2250;">
     1007<!ENTITY nedot "&#x2250;&#x338;">
     1008<!ENTITY eDot "&#x2251;">
     1009<!ENTITY doteqdot "&#x2251;">
     1010<!ENTITY efDot "&#x2252;">
     1011<!ENTITY fallingdotseq "&#x2252;">
     1012<!ENTITY erDot "&#x2253;">
     1013<!ENTITY risingdotseq "&#x2253;">
     1014<!ENTITY colone "&#x2254;">
     1015<!ENTITY coloneq "&#x2254;">
     1016<!ENTITY Assign "&#x2254;">
     1017<!ENTITY ecolon "&#x2255;">
     1018<!ENTITY eqcolon "&#x2255;">
     1019<!ENTITY ecir "&#x2256;">
     1020<!ENTITY eqcirc "&#x2256;">
     1021<!ENTITY cire "&#x2257;">
     1022<!ENTITY circeq "&#x2257;">
     1023<!ENTITY wedgeq "&#x2259;">
     1024<!ENTITY veeeq "&#x225A;">
     1025<!ENTITY trie "&#x225C;">
     1026<!ENTITY triangleq "&#x225C;">
     1027<!ENTITY equest "&#x225F;">
     1028<!ENTITY questeq "&#x225F;">
     1029<!ENTITY ne "&#x2260;">
     1030<!ENTITY NotEqual "&#x2260;">
     1031<!ENTITY equiv "&#x2261;">
     1032<!ENTITY Congruent "&#x2261;">
     1033<!ENTITY bnequiv "&#x2261;&#x20E5;">
     1034<!ENTITY nequiv "&#x2262;">
     1035<!ENTITY NotCongruent "&#x2262;">
     1036<!ENTITY le "&#x2264;">
     1037<!ENTITY leq "&#x2264;">
     1038<!ENTITY nvle "&#x2264;&#x20D2;">
     1039<!ENTITY ge "&#x2265;">
     1040<!ENTITY GreaterEqual "&#x2265;">
     1041<!ENTITY geq "&#x2265;">
     1042<!ENTITY nvge "&#x2265;&#x20D2;">
     1043<!ENTITY lE "&#x2266;">
     1044<!ENTITY LessFullEqual "&#x2266;">
     1045<!ENTITY leqq "&#x2266;">
     1046<!ENTITY nlE "&#x2266;&#x338;">
     1047<!ENTITY nleqq "&#x2266;&#x338;">
     1048<!ENTITY gE "&#x2267;">
     1049<!ENTITY GreaterFullEqual "&#x2267;">
     1050<!ENTITY geqq "&#x2267;">
     1051<!ENTITY ngE "&#x2267;&#x338;">
     1052<!ENTITY ngeqq "&#x2267;&#x338;">
     1053<!ENTITY NotGreaterFullEqual "&#x2267;&#x338;">
     1054<!ENTITY lnE "&#x2268;">
     1055<!ENTITY lneqq "&#x2268;">
     1056<!ENTITY lvnE "&#x2268;&#xFE00;">
     1057<!ENTITY lvertneqq "&#x2268;&#xFE00;">
     1058<!ENTITY gnE "&#x2269;">
     1059<!ENTITY gneqq "&#x2269;">
     1060<!ENTITY gvnE "&#x2269;&#xFE00;">
     1061<!ENTITY gvertneqq "&#x2269;&#xFE00;">
     1062<!ENTITY Lt "&#x226A;">
     1063<!ENTITY NestedLessLess "&#x226A;">
     1064<!ENTITY ll "&#x226A;">
     1065<!ENTITY nLtv "&#x226A;&#x338;">
     1066<!ENTITY NotLessLess "&#x226A;&#x338;">
     1067<!ENTITY nLt "&#x226A;&#x20D2;">
     1068<!ENTITY Gt "&#x226B;">
     1069<!ENTITY NestedGreaterGreater "&#x226B;">
     1070<!ENTITY gg "&#x226B;">
     1071<!ENTITY nGtv "&#x226B;&#x338;">
     1072<!ENTITY NotGreaterGreater "&#x226B;&#x338;">
     1073<!ENTITY nGt "&#x226B;&#x20D2;">
     1074<!ENTITY twixt "&#x226C;">
     1075<!ENTITY between "&#x226C;">
     1076<!ENTITY NotCupCap "&#x226D;">
     1077<!ENTITY nlt "&#x226E;">
     1078<!ENTITY NotLess "&#x226E;">
     1079<!ENTITY nless "&#x226E;">
     1080<!ENTITY ngt "&#x226F;">
     1081<!ENTITY NotGreater "&#x226F;">
     1082<!ENTITY ngtr "&#x226F;">
     1083<!ENTITY nle "&#x2270;">
     1084<!ENTITY NotLessEqual "&#x2270;">
     1085<!ENTITY nleq "&#x2270;">
     1086<!ENTITY nge "&#x2271;">
     1087<!ENTITY NotGreaterEqual "&#x2271;">
     1088<!ENTITY ngeq "&#x2271;">
     1089<!ENTITY lsim "&#x2272;">
     1090<!ENTITY LessTilde "&#x2272;">
     1091<!ENTITY lesssim "&#x2272;">
     1092<!ENTITY gsim "&#x2273;">
     1093<!ENTITY gtrsim "&#x2273;">
     1094<!ENTITY GreaterTilde "&#x2273;">
     1095<!ENTITY nlsim "&#x2274;">
     1096<!ENTITY NotLessTilde "&#x2274;">
     1097<!ENTITY ngsim "&#x2275;">
     1098<!ENTITY NotGreaterTilde "&#x2275;">
     1099<!ENTITY lg "&#x2276;">
     1100<!ENTITY lessgtr "&#x2276;">
     1101<!ENTITY LessGreater "&#x2276;">
     1102<!ENTITY gl "&#x2277;">
     1103<!ENTITY gtrless "&#x2277;">
     1104<!ENTITY GreaterLess "&#x2277;">
     1105<!ENTITY ntlg "&#x2278;">
     1106<!ENTITY NotLessGreater "&#x2278;">
     1107<!ENTITY ntgl "&#x2279;">
     1108<!ENTITY NotGreaterLess "&#x2279;">
     1109<!ENTITY pr "&#x227A;">
     1110<!ENTITY Precedes "&#x227A;">
     1111<!ENTITY prec "&#x227A;">
     1112<!ENTITY sc "&#x227B;">
     1113<!ENTITY Succeeds "&#x227B;">
     1114<!ENTITY succ "&#x227B;">
     1115<!ENTITY prcue "&#x227C;">
     1116<!ENTITY PrecedesSlantEqual "&#x227C;">
     1117<!ENTITY preccurlyeq "&#x227C;">
     1118<!ENTITY sccue "&#x227D;">
     1119<!ENTITY SucceedsSlantEqual "&#x227D;">
     1120<!ENTITY succcurlyeq "&#x227D;">
     1121<!ENTITY prsim "&#x227E;">
     1122<!ENTITY precsim "&#x227E;">
     1123<!ENTITY PrecedesTilde "&#x227E;">
     1124<!ENTITY scsim "&#x227F;">
     1125<!ENTITY succsim "&#x227F;">
     1126<!ENTITY SucceedsTilde "&#x227F;">
     1127<!ENTITY NotSucceedsTilde "&#x227F;&#x338;">
     1128<!ENTITY npr "&#x2280;">
     1129<!ENTITY nprec "&#x2280;">
     1130<!ENTITY NotPrecedes "&#x2280;">
     1131<!ENTITY nsc "&#x2281;">
     1132<!ENTITY nsucc "&#x2281;">
     1133<!ENTITY NotSucceeds "&#x2281;">
     1134<!ENTITY sub "&#x2282;">
     1135<!ENTITY subset "&#x2282;">
     1136<!ENTITY vnsub "&#x2282;&#x20D2;">
     1137<!ENTITY nsubset "&#x2282;&#x20D2;">
     1138<!ENTITY NotSubset "&#x2282;&#x20D2;">
     1139<!ENTITY sup "&#x2283;">
     1140<!ENTITY supset "&#x2283;">
     1141<!ENTITY Superset "&#x2283;">
     1142<!ENTITY vnsup "&#x2283;&#x20D2;">
     1143<!ENTITY nsupset "&#x2283;&#x20D2;">
     1144<!ENTITY NotSuperset "&#x2283;&#x20D2;">
     1145<!ENTITY nsub "&#x2284;">
     1146<!ENTITY nsup "&#x2285;">
     1147<!ENTITY sube "&#x2286;">
     1148<!ENTITY SubsetEqual "&#x2286;">
     1149<!ENTITY subseteq "&#x2286;">
     1150<!ENTITY supe "&#x2287;">
     1151<!ENTITY supseteq "&#x2287;">
     1152<!ENTITY SupersetEqual "&#x2287;">
     1153<!ENTITY nsube "&#x2288;">
     1154<!ENTITY nsubseteq "&#x2288;">
     1155<!ENTITY NotSubsetEqual "&#x2288;">
     1156<!ENTITY nsupe "&#x2289;">
     1157<!ENTITY nsupseteq "&#x2289;">
     1158<!ENTITY NotSupersetEqual "&#x2289;">
     1159<!ENTITY subne "&#x228A;">
     1160<!ENTITY subsetneq "&#x228A;">
     1161<!ENTITY vsubne "&#x228A;&#xFE00;">
     1162<!ENTITY varsubsetneq "&#x228A;&#xFE00;">
     1163<!ENTITY supne "&#x228B;">
     1164<!ENTITY supsetneq "&#x228B;">
     1165<!ENTITY vsupne "&#x228B;&#xFE00;">
     1166<!ENTITY varsupsetneq "&#x228B;&#xFE00;">
     1167<!ENTITY cupdot "&#x228D;">
     1168<!ENTITY uplus "&#x228E;">
     1169<!ENTITY UnionPlus "&#x228E;">
     1170<!ENTITY sqsub "&#x228F;">
     1171<!ENTITY SquareSubset "&#x228F;">
     1172<!ENTITY sqsubset "&#x228F;">
     1173<!ENTITY NotSquareSubset "&#x228F;&#x338;">
     1174<!ENTITY sqsup "&#x2290;">
     1175<!ENTITY SquareSuperset "&#x2290;">
     1176<!ENTITY sqsupset "&#x2290;">
     1177<!ENTITY NotSquareSuperset "&#x2290;&#x338;">
     1178<!ENTITY sqsube "&#x2291;">
     1179<!ENTITY SquareSubsetEqual "&#x2291;">
     1180<!ENTITY sqsubseteq "&#x2291;">
     1181<!ENTITY sqsupe "&#x2292;">
     1182<!ENTITY SquareSupersetEqual "&#x2292;">
     1183<!ENTITY sqsupseteq "&#x2292;">
     1184<!ENTITY sqcap "&#x2293;">
     1185<!ENTITY SquareIntersection "&#x2293;">
     1186<!ENTITY sqcaps "&#x2293;&#xFE00;">
     1187<!ENTITY sqcup "&#x2294;">
     1188<!ENTITY SquareUnion "&#x2294;">
     1189<!ENTITY sqcups "&#x2294;&#xFE00;">
     1190<!ENTITY oplus "&#x2295;">
     1191<!ENTITY CirclePlus "&#x2295;">
     1192<!ENTITY ominus "&#x2296;">
     1193<!ENTITY CircleMinus "&#x2296;">
     1194<!ENTITY otimes "&#x2297;">
     1195<!ENTITY CircleTimes "&#x2297;">
     1196<!ENTITY osol "&#x2298;">
     1197<!ENTITY odot "&#x2299;">
     1198<!ENTITY CircleDot "&#x2299;">
     1199<!ENTITY ocir "&#x229A;">
     1200<!ENTITY circledcirc "&#x229A;">
     1201<!ENTITY oast "&#x229B;">
     1202<!ENTITY circledast "&#x229B;">
     1203<!ENTITY odash "&#x229D;">
     1204<!ENTITY circleddash "&#x229D;">
     1205<!ENTITY plusb "&#x229E;">
     1206<!ENTITY boxplus "&#x229E;">
     1207<!ENTITY minusb "&#x229F;">
     1208<!ENTITY boxminus "&#x229F;">
     1209<!ENTITY timesb "&#x22A0;">
     1210<!ENTITY boxtimes "&#x22A0;">
     1211<!ENTITY sdotb "&#x22A1;">
     1212<!ENTITY dotsquare "&#x22A1;">
     1213<!ENTITY vdash "&#x22A2;">
     1214<!ENTITY RightTee "&#x22A2;">
     1215<!ENTITY dashv "&#x22A3;">
     1216<!ENTITY LeftTee "&#x22A3;">
     1217<!ENTITY top "&#x22A4;">
     1218<!ENTITY DownTee "&#x22A4;">
     1219<!ENTITY bottom "&#x22A5;">
     1220<!ENTITY bot "&#x22A5;">
     1221<!ENTITY perp "&#x22A5;">
     1222<!ENTITY UpTee "&#x22A5;">
     1223<!ENTITY models "&#x22A7;">
     1224<!ENTITY vDash "&#x22A8;">
     1225<!ENTITY DoubleRightTee "&#x22A8;">
     1226<!ENTITY Vdash "&#x22A9;">
     1227<!ENTITY Vvdash "&#x22AA;">
     1228<!ENTITY VDash "&#x22AB;">
     1229<!ENTITY nvdash "&#x22AC;">
     1230<!ENTITY nvDash "&#x22AD;">
     1231<!ENTITY nVdash "&#x22AE;">
     1232<!ENTITY nVDash "&#x22AF;">
     1233<!ENTITY prurel "&#x22B0;">
     1234<!ENTITY vltri "&#x22B2;">
     1235<!ENTITY vartriangleleft "&#x22B2;">
     1236<!ENTITY LeftTriangle "&#x22B2;">
     1237<!ENTITY vrtri "&#x22B3;">
     1238<!ENTITY vartriangleright "&#x22B3;">
     1239<!ENTITY RightTriangle "&#x22B3;">
     1240<!ENTITY ltrie "&#x22B4;">
     1241<!ENTITY trianglelefteq "&#x22B4;">
     1242<!ENTITY LeftTriangleEqual "&#x22B4;">
     1243<!ENTITY nvltrie "&#x22B4;&#x20D2;">
     1244<!ENTITY rtrie "&#x22B5;">
     1245<!ENTITY trianglerighteq "&#x22B5;">
     1246<!ENTITY RightTriangleEqual "&#x22B5;">
     1247<!ENTITY nvrtrie "&#x22B5;&#x20D2;">
     1248<!ENTITY origof "&#x22B6;">
     1249<!ENTITY imof "&#x22B7;">
     1250<!ENTITY mumap "&#x22B8;">
     1251<!ENTITY multimap "&#x22B8;">
     1252<!ENTITY hercon "&#x22B9;">
     1253<!ENTITY intcal "&#x22BA;">
     1254<!ENTITY intercal "&#x22BA;">
     1255<!ENTITY veebar "&#x22BB;">
     1256<!ENTITY barvee "&#x22BD;">
     1257<!ENTITY angrtvb "&#x22BE;">
     1258<!ENTITY lrtri "&#x22BF;">
     1259<!ENTITY xwedge "&#x22C0;">
     1260<!ENTITY Wedge "&#x22C0;">
     1261<!ENTITY bigwedge "&#x22C0;">
     1262<!ENTITY xvee "&#x22C1;">
     1263<!ENTITY Vee "&#x22C1;">
     1264<!ENTITY bigvee "&#x22C1;">
     1265<!ENTITY xcap "&#x22C2;">
     1266<!ENTITY Intersection "&#x22C2;">
     1267<!ENTITY bigcap "&#x22C2;">
     1268<!ENTITY xcup "&#x22C3;">
     1269<!ENTITY Union "&#x22C3;">
     1270<!ENTITY bigcup "&#x22C3;">
     1271<!ENTITY diam "&#x22C4;">
     1272<!ENTITY diamond "&#x22C4;">
     1273<!ENTITY Diamond "&#x22C4;">
     1274<!ENTITY sdot "&#x22C5;">
     1275<!ENTITY sstarf "&#x22C6;">
     1276<!ENTITY Star "&#x22C6;">
     1277<!ENTITY divonx "&#x22C7;">
     1278<!ENTITY divideontimes "&#x22C7;">
     1279<!ENTITY bowtie "&#x22C8;">
     1280<!ENTITY ltimes "&#x22C9;">
     1281<!ENTITY rtimes "&#x22CA;">
     1282<!ENTITY lthree "&#x22CB;">
     1283<!ENTITY leftthreetimes "&#x22CB;">
     1284<!ENTITY rthree "&#x22CC;">
     1285<!ENTITY rightthreetimes "&#x22CC;">
     1286<!ENTITY bsime "&#x22CD;">
     1287<!ENTITY backsimeq "&#x22CD;">
     1288<!ENTITY cuvee "&#x22CE;">
     1289<!ENTITY curlyvee "&#x22CE;">
     1290<!ENTITY cuwed "&#x22CF;">
     1291<!ENTITY curlywedge "&#x22CF;">
     1292<!ENTITY Sub "&#x22D0;">
     1293<!ENTITY Subset "&#x22D0;">
     1294<!ENTITY Sup "&#x22D1;">
     1295<!ENTITY Supset "&#x22D1;">
     1296<!ENTITY Cap "&#x22D2;">
     1297<!ENTITY Cup "&#x22D3;">
     1298<!ENTITY fork "&#x22D4;">
     1299<!ENTITY pitchfork "&#x22D4;">
     1300<!ENTITY epar "&#x22D5;">
     1301<!ENTITY ltdot "&#x22D6;">
     1302<!ENTITY lessdot "&#x22D6;">
     1303<!ENTITY gtdot "&#x22D7;">
     1304<!ENTITY gtrdot "&#x22D7;">
     1305<!ENTITY Ll "&#x22D8;">
     1306<!ENTITY nLl "&#x22D8;&#x338;">
     1307<!ENTITY Gg "&#x22D9;">
     1308<!ENTITY ggg "&#x22D9;">
     1309<!ENTITY nGg "&#x22D9;&#x338;">
     1310<!ENTITY leg "&#x22DA;">
     1311<!ENTITY LessEqualGreater "&#x22DA;">
     1312<!ENTITY lesseqgtr "&#x22DA;">
     1313<!ENTITY lesg "&#x22DA;&#xFE00;">
     1314<!ENTITY gel "&#x22DB;">
     1315<!ENTITY gtreqless "&#x22DB;">
     1316<!ENTITY GreaterEqualLess "&#x22DB;">
     1317<!ENTITY gesl "&#x22DB;&#xFE00;">
     1318<!ENTITY cuepr "&#x22DE;">
     1319<!ENTITY curlyeqprec "&#x22DE;">
     1320<!ENTITY cuesc "&#x22DF;">
     1321<!ENTITY curlyeqsucc "&#x22DF;">
     1322<!ENTITY nprcue "&#x22E0;">
     1323<!ENTITY NotPrecedesSlantEqual "&#x22E0;">
     1324<!ENTITY nsccue "&#x22E1;">
     1325<!ENTITY NotSucceedsSlantEqual "&#x22E1;">
     1326<!ENTITY nsqsube "&#x22E2;">
     1327<!ENTITY NotSquareSubsetEqual "&#x22E2;">
     1328<!ENTITY nsqsupe "&#x22E3;">
     1329<!ENTITY NotSquareSupersetEqual "&#x22E3;">
     1330<!ENTITY lnsim "&#x22E6;">
     1331<!ENTITY gnsim "&#x22E7;">
     1332<!ENTITY prnsim "&#x22E8;">
     1333<!ENTITY precnsim "&#x22E8;">
     1334<!ENTITY scnsim "&#x22E9;">
     1335<!ENTITY succnsim "&#x22E9;">
     1336<!ENTITY nltri "&#x22EA;">
     1337<!ENTITY ntriangleleft "&#x22EA;">
     1338<!ENTITY NotLeftTriangle "&#x22EA;">
     1339<!ENTITY nrtri "&#x22EB;">
     1340<!ENTITY ntriangleright "&#x22EB;">
     1341<!ENTITY NotRightTriangle "&#x22EB;">
     1342<!ENTITY nltrie "&#x22EC;">
     1343<!ENTITY ntrianglelefteq "&#x22EC;">
     1344<!ENTITY NotLeftTriangleEqual "&#x22EC;">
     1345<!ENTITY nrtrie "&#x22ED;">
     1346<!ENTITY ntrianglerighteq "&#x22ED;">
     1347<!ENTITY NotRightTriangleEqual "&#x22ED;">
     1348<!ENTITY vellip "&#x22EE;">
     1349<!ENTITY ctdot "&#x22EF;">
     1350<!ENTITY utdot "&#x22F0;">
     1351<!ENTITY dtdot "&#x22F1;">
     1352<!ENTITY disin "&#x22F2;">
     1353<!ENTITY isinsv "&#x22F3;">
     1354<!ENTITY isins "&#x22F4;">
     1355<!ENTITY isindot "&#x22F5;">
     1356<!ENTITY notindot "&#x22F5;&#x338;">
     1357<!ENTITY notinvc "&#x22F6;">
     1358<!ENTITY notinvb "&#x22F7;">
     1359<!ENTITY isinE "&#x22F9;">
     1360<!ENTITY notinE "&#x22F9;&#x338;">
     1361<!ENTITY nisd "&#x22FA;">
     1362<!ENTITY xnis "&#x22FB;">
     1363<!ENTITY nis "&#x22FC;">
     1364<!ENTITY notnivc "&#x22FD;">
     1365<!ENTITY notnivb "&#x22FE;">
     1366<!ENTITY barwed "&#x2305;">
     1367<!ENTITY barwedge "&#x2305;">
     1368<!ENTITY Barwed "&#x2306;">
     1369<!ENTITY doublebarwedge "&#x2306;">
     1370<!ENTITY lceil "&#x2308;">
     1371<!ENTITY LeftCeiling "&#x2308;">
     1372<!ENTITY rceil "&#x2309;">
     1373<!ENTITY RightCeiling "&#x2309;">
     1374<!ENTITY lfloor "&#x230A;">
     1375<!ENTITY LeftFloor "&#x230A;">
     1376<!ENTITY rfloor "&#x230B;">
     1377<!ENTITY RightFloor "&#x230B;">
     1378<!ENTITY drcrop "&#x230C;">
     1379<!ENTITY dlcrop "&#x230D;">
     1380<!ENTITY urcrop "&#x230E;">
     1381<!ENTITY ulcrop "&#x230F;">
     1382<!ENTITY bnot "&#x2310;">
     1383<!ENTITY profline "&#x2312;">
     1384<!ENTITY profsurf "&#x2313;">
     1385<!ENTITY telrec "&#x2315;">
     1386<!ENTITY target "&#x2316;">
     1387<!ENTITY ulcorn "&#x231C;">
     1388<!ENTITY ulcorner "&#x231C;">
     1389<!ENTITY urcorn "&#x231D;">
     1390<!ENTITY urcorner "&#x231D;">
     1391<!ENTITY dlcorn "&#x231E;">
     1392<!ENTITY llcorner "&#x231E;">
     1393<!ENTITY drcorn "&#x231F;">
     1394<!ENTITY lrcorner "&#x231F;">
     1395<!ENTITY frown "&#x2322;">
     1396<!ENTITY sfrown "&#x2322;">
     1397<!ENTITY smile "&#x2323;">
     1398<!ENTITY ssmile "&#x2323;">
     1399<!ENTITY cylcty "&#x232D;">
     1400<!ENTITY profalar "&#x232E;">
     1401<!ENTITY topbot "&#x2336;">
     1402<!ENTITY ovbar "&#x233D;">
     1403<!ENTITY solbar "&#x233F;">
     1404<!ENTITY angzarr "&#x237C;">
     1405<!ENTITY lmoust "&#x23B0;">
     1406<!ENTITY lmoustache "&#x23B0;">
     1407<!ENTITY rmoust "&#x23B1;">
     1408<!ENTITY rmoustache "&#x23B1;">
     1409<!ENTITY tbrk "&#x23B4;">
     1410<!ENTITY OverBracket "&#x23B4;">
     1411<!ENTITY bbrk "&#x23B5;">
     1412<!ENTITY UnderBracket "&#x23B5;">
     1413<!ENTITY bbrktbrk "&#x23B6;">
     1414<!ENTITY OverParenthesis "&#x23DC;">
     1415<!ENTITY UnderParenthesis "&#x23DD;">
     1416<!ENTITY OverBrace "&#x23DE;">
     1417<!ENTITY UnderBrace "&#x23DF;">
     1418<!ENTITY trpezium "&#x23E2;">
     1419<!ENTITY elinters "&#x23E7;">
     1420<!ENTITY blank "&#x2423;">
     1421<!ENTITY oS "&#x24C8;">
     1422<!ENTITY circledS "&#x24C8;">
     1423<!ENTITY boxh "&#x2500;">
     1424<!ENTITY HorizontalLine "&#x2500;">
     1425<!ENTITY boxv "&#x2502;">
     1426<!ENTITY boxdr "&#x250C;">
     1427<!ENTITY boxdl "&#x2510;">
     1428<!ENTITY boxur "&#x2514;">
     1429<!ENTITY boxul "&#x2518;">
     1430<!ENTITY boxvr "&#x251C;">
     1431<!ENTITY boxvl "&#x2524;">
     1432<!ENTITY boxhd "&#x252C;">
     1433<!ENTITY boxhu "&#x2534;">
     1434<!ENTITY boxvh "&#x253C;">
     1435<!ENTITY boxH "&#x2550;">
     1436<!ENTITY boxV "&#x2551;">
     1437<!ENTITY boxdR "&#x2552;">
     1438<!ENTITY boxDr "&#x2553;">
     1439<!ENTITY boxDR "&#x2554;">
     1440<!ENTITY boxdL "&#x2555;">
     1441<!ENTITY boxDl "&#x2556;">
     1442<!ENTITY boxDL "&#x2557;">
     1443<!ENTITY boxuR "&#x2558;">
     1444<!ENTITY boxUr "&#x2559;">
     1445<!ENTITY boxUR "&#x255A;">
     1446<!ENTITY boxuL "&#x255B;">
     1447<!ENTITY boxUl "&#x255C;">
     1448<!ENTITY boxUL "&#x255D;">
     1449<!ENTITY boxvR "&#x255E;">
     1450<!ENTITY boxVr "&#x255F;">
     1451<!ENTITY boxVR "&#x2560;">
     1452<!ENTITY boxvL "&#x2561;">
     1453<!ENTITY boxVl "&#x2562;">
     1454<!ENTITY boxVL "&#x2563;">
     1455<!ENTITY boxHd "&#x2564;">
     1456<!ENTITY boxhD "&#x2565;">
     1457<!ENTITY boxHD "&#x2566;">
     1458<!ENTITY boxHu "&#x2567;">
     1459<!ENTITY boxhU "&#x2568;">
     1460<!ENTITY boxHU "&#x2569;">
     1461<!ENTITY boxvH "&#x256A;">
     1462<!ENTITY boxVh "&#x256B;">
     1463<!ENTITY boxVH "&#x256C;">
     1464<!ENTITY uhblk "&#x2580;">
     1465<!ENTITY lhblk "&#x2584;">
     1466<!ENTITY block "&#x2588;">
     1467<!ENTITY blk14 "&#x2591;">
     1468<!ENTITY blk12 "&#x2592;">
     1469<!ENTITY blk34 "&#x2593;">
     1470<!ENTITY squ "&#x25A1;">
     1471<!ENTITY square "&#x25A1;">
     1472<!ENTITY Square "&#x25A1;">
     1473<!ENTITY squf "&#x25AA;">
     1474<!ENTITY squarf "&#x25AA;">
     1475<!ENTITY blacksquare "&#x25AA;">
     1476<!ENTITY FilledVerySmallSquare "&#x25AA;">
     1477<!ENTITY EmptyVerySmallSquare "&#x25AB;">
     1478<!ENTITY rect "&#x25AD;">
     1479<!ENTITY marker "&#x25AE;">
     1480<!ENTITY fltns "&#x25B1;">
     1481<!ENTITY xutri "&#x25B3;">
     1482<!ENTITY bigtriangleup "&#x25B3;">
     1483<!ENTITY utrif "&#x25B4;">
     1484<!ENTITY blacktriangle "&#x25B4;">
     1485<!ENTITY utri "&#x25B5;">
     1486<!ENTITY triangle "&#x25B5;">
     1487<!ENTITY rtrif "&#x25B8;">
     1488<!ENTITY blacktriangleright "&#x25B8;">
     1489<!ENTITY rtri "&#x25B9;">
     1490<!ENTITY triangleright "&#x25B9;">
     1491<!ENTITY xdtri "&#x25BD;">
     1492<!ENTITY bigtriangledown "&#x25BD;">
     1493<!ENTITY dtrif "&#x25BE;">
     1494<!ENTITY blacktriangledown "&#x25BE;">
     1495<!ENTITY dtri "&#x25BF;">
     1496<!ENTITY triangledown "&#x25BF;">
     1497<!ENTITY ltrif "&#x25C2;">
     1498<!ENTITY blacktriangleleft "&#x25C2;">
     1499<!ENTITY ltri "&#x25C3;">
     1500<!ENTITY triangleleft "&#x25C3;">
     1501<!ENTITY loz "&#x25CA;">
     1502<!ENTITY lozenge "&#x25CA;">
     1503<!ENTITY cir "&#x25CB;">
     1504<!ENTITY tridot "&#x25EC;">
     1505<!ENTITY xcirc "&#x25EF;">
     1506<!ENTITY bigcirc "&#x25EF;">
     1507<!ENTITY ultri "&#x25F8;">
     1508<!ENTITY urtri "&#x25F9;">
     1509<!ENTITY lltri "&#x25FA;">
     1510<!ENTITY EmptySmallSquare "&#x25FB;">
     1511<!ENTITY FilledSmallSquare "&#x25FC;">
     1512<!ENTITY starf "&#x2605;">
     1513<!ENTITY bigstar "&#x2605;">
     1514<!ENTITY star "&#x2606;">
     1515<!ENTITY phone "&#x260E;">
     1516<!ENTITY female "&#x2640;">
     1517<!ENTITY male "&#x2642;">
     1518<!ENTITY spades "&#x2660;">
     1519<!ENTITY spadesuit "&#x2660;">
     1520<!ENTITY clubs "&#x2663;">
     1521<!ENTITY clubsuit "&#x2663;">
     1522<!ENTITY hearts "&#x2665;">
     1523<!ENTITY heartsuit "&#x2665;">
     1524<!ENTITY diams "&#x2666;">
     1525<!ENTITY diamondsuit "&#x2666;">
     1526<!ENTITY sung "&#x266A;">
     1527<!ENTITY flat "&#x266D;">
     1528<!ENTITY natur "&#x266E;">
     1529<!ENTITY natural "&#x266E;">
     1530<!ENTITY sharp "&#x266F;">
     1531<!ENTITY check "&#x2713;">
     1532<!ENTITY checkmark "&#x2713;">
     1533<!ENTITY cross "&#x2717;">
     1534<!ENTITY malt "&#x2720;">
     1535<!ENTITY maltese "&#x2720;">
     1536<!ENTITY sext "&#x2736;">
     1537<!ENTITY VerticalSeparator "&#x2758;">
     1538<!ENTITY lbbrk "&#x2772;">
     1539<!ENTITY rbbrk "&#x2773;">
     1540<!ENTITY bsolhsub "&#x27C8;">
     1541<!ENTITY suphsol "&#x27C9;">
     1542<!ENTITY lobrk "&#x27E6;">
     1543<!ENTITY LeftDoubleBracket "&#x27E6;">
     1544<!ENTITY robrk "&#x27E7;">
     1545<!ENTITY RightDoubleBracket "&#x27E7;">
     1546<!ENTITY lang "&#x27E8;">
     1547<!ENTITY LeftAngleBracket "&#x27E8;">
     1548<!ENTITY langle "&#x27E8;">
     1549<!ENTITY rang "&#x27E9;">
     1550<!ENTITY RightAngleBracket "&#x27E9;">
     1551<!ENTITY rangle "&#x27E9;">
     1552<!ENTITY Lang "&#x27EA;">
     1553<!ENTITY Rang "&#x27EB;">
     1554<!ENTITY loang "&#x27EC;">
     1555<!ENTITY roang "&#x27ED;">
     1556<!ENTITY xlarr "&#x27F5;">
     1557<!ENTITY longleftarrow "&#x27F5;">
     1558<!ENTITY LongLeftArrow "&#x27F5;">
     1559<!ENTITY xrarr "&#x27F6;">
     1560<!ENTITY longrightarrow "&#x27F6;">
     1561<!ENTITY LongRightArrow "&#x27F6;">
     1562<!ENTITY xharr "&#x27F7;">
     1563<!ENTITY longleftrightarrow "&#x27F7;">
     1564<!ENTITY LongLeftRightArrow "&#x27F7;">
     1565<!ENTITY xlArr "&#x27F8;">
     1566<!ENTITY Longleftarrow "&#x27F8;">
     1567<!ENTITY DoubleLongLeftArrow "&#x27F8;">
     1568<!ENTITY xrArr "&#x27F9;">
     1569<!ENTITY Longrightarrow "&#x27F9;">
     1570<!ENTITY DoubleLongRightArrow "&#x27F9;">
     1571<!ENTITY xhArr "&#x27FA;">
     1572<!ENTITY Longleftrightarrow "&#x27FA;">
     1573<!ENTITY DoubleLongLeftRightArrow "&#x27FA;">
     1574<!ENTITY xmap "&#x27FC;">
     1575<!ENTITY longmapsto "&#x27FC;">
     1576<!ENTITY dzigrarr "&#x27FF;">
     1577<!ENTITY nvlArr "&#x2902;">
     1578<!ENTITY nvrArr "&#x2903;">
     1579<!ENTITY nvHarr "&#x2904;">
     1580<!ENTITY Map "&#x2905;">
     1581<!ENTITY lbarr "&#x290C;">
     1582<!ENTITY rbarr "&#x290D;">
     1583<!ENTITY bkarow "&#x290D;">
     1584<!ENTITY lBarr "&#x290E;">
     1585<!ENTITY rBarr "&#x290F;">
     1586<!ENTITY dbkarow "&#x290F;">
     1587<!ENTITY RBarr "&#x2910;">
     1588<!ENTITY drbkarow "&#x2910;">
     1589<!ENTITY DDotrahd "&#x2911;">
     1590<!ENTITY UpArrowBar "&#x2912;">
     1591<!ENTITY DownArrowBar "&#x2913;">
     1592<!ENTITY Rarrtl "&#x2916;">
     1593<!ENTITY latail "&#x2919;">
     1594<!ENTITY ratail "&#x291A;">
     1595<!ENTITY lAtail "&#x291B;">
     1596<!ENTITY rAtail "&#x291C;">
     1597<!ENTITY larrfs "&#x291D;">
     1598<!ENTITY rarrfs "&#x291E;">
     1599<!ENTITY larrbfs "&#x291F;">
     1600<!ENTITY rarrbfs "&#x2920;">
     1601<!ENTITY nwarhk "&#x2923;">
     1602<!ENTITY nearhk "&#x2924;">
     1603<!ENTITY searhk "&#x2925;">
     1604<!ENTITY hksearow "&#x2925;">
     1605<!ENTITY swarhk "&#x2926;">
     1606<!ENTITY hkswarow "&#x2926;">
     1607<!ENTITY nwnear "&#x2927;">
     1608<!ENTITY nesear "&#x2928;">
     1609<!ENTITY toea "&#x2928;">
     1610<!ENTITY seswar "&#x2929;">
     1611<!ENTITY tosa "&#x2929;">
     1612<!ENTITY swnwar "&#x292A;">
     1613<!ENTITY rarrc "&#x2933;">
     1614<!ENTITY nrarrc "&#x2933;&#x338;">
     1615<!ENTITY cudarrr "&#x2935;">
     1616<!ENTITY ldca "&#x2936;">
     1617<!ENTITY rdca "&#x2937;">
     1618<!ENTITY cudarrl "&#x2938;">
     1619<!ENTITY larrpl "&#x2939;">
     1620<!ENTITY curarrm "&#x293C;">
     1621<!ENTITY cularrp "&#x293D;">
     1622<!ENTITY rarrpl "&#x2945;">
     1623<!ENTITY harrcir "&#x2948;">
     1624<!ENTITY Uarrocir "&#x2949;">
     1625<!ENTITY lurdshar "&#x294A;">
     1626<!ENTITY ldrushar "&#x294B;">
     1627<!ENTITY LeftRightVector "&#x294E;">
     1628<!ENTITY RightUpDownVector "&#x294F;">
     1629<!ENTITY DownLeftRightVector "&#x2950;">
     1630<!ENTITY LeftUpDownVector "&#x2951;">
     1631<!ENTITY LeftVectorBar "&#x2952;">
     1632<!ENTITY RightVectorBar "&#x2953;">
     1633<!ENTITY RightUpVectorBar "&#x2954;">
     1634<!ENTITY RightDownVectorBar "&#x2955;">
     1635<!ENTITY DownLeftVectorBar "&#x2956;">
     1636<!ENTITY DownRightVectorBar "&#x2957;">
     1637<!ENTITY LeftUpVectorBar "&#x2958;">
     1638<!ENTITY LeftDownVectorBar "&#x2959;">
     1639<!ENTITY LeftTeeVector "&#x295A;">
     1640<!ENTITY RightTeeVector "&#x295B;">
     1641<!ENTITY RightUpTeeVector "&#x295C;">
     1642<!ENTITY RightDownTeeVector "&#x295D;">
     1643<!ENTITY DownLeftTeeVector "&#x295E;">
     1644<!ENTITY DownRightTeeVector "&#x295F;">
     1645<!ENTITY LeftUpTeeVector "&#x2960;">
     1646<!ENTITY LeftDownTeeVector "&#x2961;">
     1647<!ENTITY lHar "&#x2962;">
     1648<!ENTITY uHar "&#x2963;">
     1649<!ENTITY rHar "&#x2964;">
     1650<!ENTITY dHar "&#x2965;">
     1651<!ENTITY luruhar "&#x2966;">
     1652<!ENTITY ldrdhar "&#x2967;">
     1653<!ENTITY ruluhar "&#x2968;">
     1654<!ENTITY rdldhar "&#x2969;">
     1655<!ENTITY lharul "&#x296A;">
     1656<!ENTITY llhard "&#x296B;">
     1657<!ENTITY rharul "&#x296C;">
     1658<!ENTITY lrhard "&#x296D;">
     1659<!ENTITY udhar "&#x296E;">
     1660<!ENTITY UpEquilibrium "&#x296E;">
     1661<!ENTITY duhar "&#x296F;">
     1662<!ENTITY ReverseUpEquilibrium "&#x296F;">
     1663<!ENTITY RoundImplies "&#x2970;">
     1664<!ENTITY erarr "&#x2971;">
     1665<!ENTITY simrarr "&#x2972;">
     1666<!ENTITY larrsim "&#x2973;">
     1667<!ENTITY rarrsim "&#x2974;">
     1668<!ENTITY rarrap "&#x2975;">
     1669<!ENTITY ltlarr "&#x2976;">
     1670<!ENTITY gtrarr "&#x2978;">
     1671<!ENTITY subrarr "&#x2979;">
     1672<!ENTITY suplarr "&#x297B;">
     1673<!ENTITY lfisht "&#x297C;">
     1674<!ENTITY rfisht "&#x297D;">
     1675<!ENTITY ufisht "&#x297E;">
     1676<!ENTITY dfisht "&#x297F;">
     1677<!ENTITY lopar "&#x2985;">
     1678<!ENTITY ropar "&#x2986;">
     1679<!ENTITY lbrke "&#x298B;">
     1680<!ENTITY rbrke "&#x298C;">
     1681<!ENTITY lbrkslu "&#x298D;">
     1682<!ENTITY rbrksld "&#x298E;">
     1683<!ENTITY lbrksld "&#x298F;">
     1684<!ENTITY rbrkslu "&#x2990;">
     1685<!ENTITY langd "&#x2991;">
     1686<!ENTITY rangd "&#x2992;">
     1687<!ENTITY lparlt "&#x2993;">
     1688<!ENTITY rpargt "&#x2994;">
     1689<!ENTITY gtlPar "&#x2995;">
     1690<!ENTITY ltrPar "&#x2996;">
     1691<!ENTITY vzigzag "&#x299A;">
     1692<!ENTITY vangrt "&#x299C;">
     1693<!ENTITY angrtvbd "&#x299D;">
     1694<!ENTITY ange "&#x29A4;">
     1695<!ENTITY range "&#x29A5;">
     1696<!ENTITY dwangle "&#x29A6;">
     1697<!ENTITY uwangle "&#x29A7;">
     1698<!ENTITY angmsdaa "&#x29A8;">
     1699<!ENTITY angmsdab "&#x29A9;">
     1700<!ENTITY angmsdac "&#x29AA;">
     1701<!ENTITY angmsdad "&#x29AB;">
     1702<!ENTITY angmsdae "&#x29AC;">
     1703<!ENTITY angmsdaf "&#x29AD;">
     1704<!ENTITY angmsdag "&#x29AE;">
     1705<!ENTITY angmsdah "&#x29AF;">
     1706<!ENTITY bemptyv "&#x29B0;">
     1707<!ENTITY demptyv "&#x29B1;">
     1708<!ENTITY cemptyv "&#x29B2;">
     1709<!ENTITY raemptyv "&#x29B3;">
     1710<!ENTITY laemptyv "&#x29B4;">
     1711<!ENTITY ohbar "&#x29B5;">
     1712<!ENTITY omid "&#x29B6;">
     1713<!ENTITY opar "&#x29B7;">
     1714<!ENTITY operp "&#x29B9;">
     1715<!ENTITY olcross "&#x29BB;">
     1716<!ENTITY odsold "&#x29BC;">
     1717<!ENTITY olcir "&#x29BE;">
     1718<!ENTITY ofcir "&#x29BF;">
     1719<!ENTITY olt "&#x29C0;">
     1720<!ENTITY ogt "&#x29C1;">
     1721<!ENTITY cirscir "&#x29C2;">
     1722<!ENTITY cirE "&#x29C3;">
     1723<!ENTITY solb "&#x29C4;">
     1724<!ENTITY bsolb "&#x29C5;">
     1725<!ENTITY boxbox "&#x29C9;">
     1726<!ENTITY trisb "&#x29CD;">
     1727<!ENTITY rtriltri "&#x29CE;">
     1728<!ENTITY LeftTriangleBar "&#x29CF;">
     1729<!ENTITY NotLeftTriangleBar "&#x29CF;&#x338;">
     1730<!ENTITY RightTriangleBar "&#x29D0;">
     1731<!ENTITY NotRightTriangleBar "&#x29D0;&#x338;">
     1732<!ENTITY iinfin "&#x29DC;">
     1733<!ENTITY infintie "&#x29DD;">
     1734<!ENTITY nvinfin "&#x29DE;">
     1735<!ENTITY eparsl "&#x29E3;">
     1736<!ENTITY smeparsl "&#x29E4;">
     1737<!ENTITY eqvparsl "&#x29E5;">
     1738<!ENTITY lozf "&#x29EB;">
     1739<!ENTITY blacklozenge "&#x29EB;">
     1740<!ENTITY RuleDelayed "&#x29F4;">
     1741<!ENTITY dsol "&#x29F6;">
     1742<!ENTITY xodot "&#x2A00;">
     1743<!ENTITY bigodot "&#x2A00;">
     1744<!ENTITY xoplus "&#x2A01;">
     1745<!ENTITY bigoplus "&#x2A01;">
     1746<!ENTITY xotime "&#x2A02;">
     1747<!ENTITY bigotimes "&#x2A02;">
     1748<!ENTITY xuplus "&#x2A04;">
     1749<!ENTITY biguplus "&#x2A04;">
     1750<!ENTITY xsqcup "&#x2A06;">
     1751<!ENTITY bigsqcup "&#x2A06;">
     1752<!ENTITY qint "&#x2A0C;">
     1753<!ENTITY iiiint "&#x2A0C;">
     1754<!ENTITY fpartint "&#x2A0D;">
     1755<!ENTITY cirfnint "&#x2A10;">
     1756<!ENTITY awint "&#x2A11;">
     1757<!ENTITY rppolint "&#x2A12;">
     1758<!ENTITY scpolint "&#x2A13;">
     1759<!ENTITY npolint "&#x2A14;">
     1760<!ENTITY pointint "&#x2A15;">
     1761<!ENTITY quatint "&#x2A16;">
     1762<!ENTITY intlarhk "&#x2A17;">
     1763<!ENTITY pluscir "&#x2A22;">
     1764<!ENTITY plusacir "&#x2A23;">
     1765<!ENTITY simplus "&#x2A24;">
     1766<!ENTITY plusdu "&#x2A25;">
     1767<!ENTITY plussim "&#x2A26;">
     1768<!ENTITY plustwo "&#x2A27;">
     1769<!ENTITY mcomma "&#x2A29;">
     1770<!ENTITY minusdu "&#x2A2A;">
     1771<!ENTITY loplus "&#x2A2D;">
     1772<!ENTITY roplus "&#x2A2E;">
     1773<!ENTITY Cross "&#x2A2F;">
     1774<!ENTITY timesd "&#x2A30;">
     1775<!ENTITY timesbar "&#x2A31;">
     1776<!ENTITY smashp "&#x2A33;">
     1777<!ENTITY lotimes "&#x2A34;">
     1778<!ENTITY rotimes "&#x2A35;">
     1779<!ENTITY otimesas "&#x2A36;">
     1780<!ENTITY Otimes "&#x2A37;">
     1781<!ENTITY odiv "&#x2A38;">
     1782<!ENTITY triplus "&#x2A39;">
     1783<!ENTITY triminus "&#x2A3A;">
     1784<!ENTITY tritime "&#x2A3B;">
     1785<!ENTITY iprod "&#x2A3C;">
     1786<!ENTITY intprod "&#x2A3C;">
     1787<!ENTITY amalg "&#x2A3F;">
     1788<!ENTITY capdot "&#x2A40;">
     1789<!ENTITY ncup "&#x2A42;">
     1790<!ENTITY ncap "&#x2A43;">
     1791<!ENTITY capand "&#x2A44;">
     1792<!ENTITY cupor "&#x2A45;">
     1793<!ENTITY cupcap "&#x2A46;">
     1794<!ENTITY capcup "&#x2A47;">
     1795<!ENTITY cupbrcap "&#x2A48;">
     1796<!ENTITY capbrcup "&#x2A49;">
     1797<!ENTITY cupcup "&#x2A4A;">
     1798<!ENTITY capcap "&#x2A4B;">
     1799<!ENTITY ccups "&#x2A4C;">
     1800<!ENTITY ccaps "&#x2A4D;">
     1801<!ENTITY ccupssm "&#x2A50;">
     1802<!ENTITY And "&#x2A53;">
     1803<!ENTITY Or "&#x2A54;">
     1804<!ENTITY andand "&#x2A55;">
     1805<!ENTITY oror "&#x2A56;">
     1806<!ENTITY orslope "&#x2A57;">
     1807<!ENTITY andslope "&#x2A58;">
     1808<!ENTITY andv "&#x2A5A;">
     1809<!ENTITY orv "&#x2A5B;">
     1810<!ENTITY andd "&#x2A5C;">
     1811<!ENTITY ord "&#x2A5D;">
     1812<!ENTITY wedbar "&#x2A5F;">
     1813<!ENTITY sdote "&#x2A66;">
     1814<!ENTITY simdot "&#x2A6A;">
     1815<!ENTITY congdot "&#x2A6D;">
     1816<!ENTITY ncongdot "&#x2A6D;&#x338;">
     1817<!ENTITY easter "&#x2A6E;">
     1818<!ENTITY apacir "&#x2A6F;">
     1819<!ENTITY apE "&#x2A70;">
     1820<!ENTITY napE "&#x2A70;&#x338;">
     1821<!ENTITY eplus "&#x2A71;">
     1822<!ENTITY pluse "&#x2A72;">
     1823<!ENTITY Esim "&#x2A73;">
     1824<!ENTITY Colone "&#x2A74;">
     1825<!ENTITY Equal "&#x2A75;">
     1826<!ENTITY eDDot "&#x2A77;">
     1827<!ENTITY ddotseq "&#x2A77;">
     1828<!ENTITY equivDD "&#x2A78;">
     1829<!ENTITY ltcir "&#x2A79;">
     1830<!ENTITY gtcir "&#x2A7A;">
     1831<!ENTITY ltquest "&#x2A7B;">
     1832<!ENTITY gtquest "&#x2A7C;">
     1833<!ENTITY les "&#x2A7D;">
     1834<!ENTITY LessSlantEqual "&#x2A7D;">
     1835<!ENTITY leqslant "&#x2A7D;">
     1836<!ENTITY nles "&#x2A7D;&#x338;">
     1837<!ENTITY NotLessSlantEqual "&#x2A7D;&#x338;">
     1838<!ENTITY nleqslant "&#x2A7D;&#x338;">
     1839<!ENTITY ges "&#x2A7E;">
     1840<!ENTITY GreaterSlantEqual "&#x2A7E;">
     1841<!ENTITY geqslant "&#x2A7E;">
     1842<!ENTITY nges "&#x2A7E;&#x338;">
     1843<!ENTITY NotGreaterSlantEqual "&#x2A7E;&#x338;">
     1844<!ENTITY ngeqslant "&#x2A7E;&#x338;">
     1845<!ENTITY lesdot "&#x2A7F;">
     1846<!ENTITY gesdot "&#x2A80;">
     1847<!ENTITY lesdoto "&#x2A81;">
     1848<!ENTITY gesdoto "&#x2A82;">
     1849<!ENTITY lesdotor "&#x2A83;">
     1850<!ENTITY gesdotol "&#x2A84;">
     1851<!ENTITY lap "&#x2A85;">
     1852<!ENTITY lessapprox "&#x2A85;">
     1853<!ENTITY gap "&#x2A86;">
     1854<!ENTITY gtrapprox "&#x2A86;">
     1855<!ENTITY lne "&#x2A87;">
     1856<!ENTITY lneq "&#x2A87;">
     1857<!ENTITY gne "&#x2A88;">
     1858<!ENTITY gneq "&#x2A88;">
     1859<!ENTITY lnap "&#x2A89;">
     1860<!ENTITY lnapprox "&#x2A89;">
     1861<!ENTITY gnap "&#x2A8A;">
     1862<!ENTITY gnapprox "&#x2A8A;">
     1863<!ENTITY lEg "&#x2A8B;">
     1864<!ENTITY lesseqqgtr "&#x2A8B;">
     1865<!ENTITY gEl "&#x2A8C;">
     1866<!ENTITY gtreqqless "&#x2A8C;">
     1867<!ENTITY lsime "&#x2A8D;">
     1868<!ENTITY gsime "&#x2A8E;">
     1869<!ENTITY lsimg "&#x2A8F;">
     1870<!ENTITY gsiml "&#x2A90;">
     1871<!ENTITY lgE "&#x2A91;">
     1872<!ENTITY glE "&#x2A92;">
     1873<!ENTITY lesges "&#x2A93;">
     1874<!ENTITY gesles "&#x2A94;">
     1875<!ENTITY els "&#x2A95;">
     1876<!ENTITY eqslantless "&#x2A95;">
     1877<!ENTITY egs "&#x2A96;">
     1878<!ENTITY eqslantgtr "&#x2A96;">
     1879<!ENTITY elsdot "&#x2A97;">
     1880<!ENTITY egsdot "&#x2A98;">
     1881<!ENTITY el "&#x2A99;">
     1882<!ENTITY eg "&#x2A9A;">
     1883<!ENTITY siml "&#x2A9D;">
     1884<!ENTITY simg "&#x2A9E;">
     1885<!ENTITY simlE "&#x2A9F;">
     1886<!ENTITY simgE "&#x2AA0;">
     1887<!ENTITY LessLess "&#x2AA1;">
     1888<!ENTITY NotNestedLessLess "&#x2AA1;&#x338;">
     1889<!ENTITY GreaterGreater "&#x2AA2;">
     1890<!ENTITY NotNestedGreaterGreater "&#x2AA2;&#x338;">
     1891<!ENTITY glj "&#x2AA4;">
     1892<!ENTITY gla "&#x2AA5;">
     1893<!ENTITY ltcc "&#x2AA6;">
     1894<!ENTITY gtcc "&#x2AA7;">
     1895<!ENTITY lescc "&#x2AA8;">
     1896<!ENTITY gescc "&#x2AA9;">
     1897<!ENTITY smt "&#x2AAA;">
     1898<!ENTITY lat "&#x2AAB;">
     1899<!ENTITY smte "&#x2AAC;">
     1900<!ENTITY smtes "&#x2AAC;&#xFE00;">
     1901<!ENTITY late "&#x2AAD;">
     1902<!ENTITY lates "&#x2AAD;&#xFE00;">
     1903<!ENTITY bumpE "&#x2AAE;">
     1904<!ENTITY pre "&#x2AAF;">
     1905<!ENTITY preceq "&#x2AAF;">
     1906<!ENTITY PrecedesEqual "&#x2AAF;">
     1907<!ENTITY npre "&#x2AAF;&#x338;">
     1908<!ENTITY npreceq "&#x2AAF;&#x338;">
     1909<!ENTITY NotPrecedesEqual "&#x2AAF;&#x338;">
     1910<!ENTITY sce "&#x2AB0;">
     1911<!ENTITY succeq "&#x2AB0;">
     1912<!ENTITY SucceedsEqual "&#x2AB0;">
     1913<!ENTITY nsce "&#x2AB0;&#x338;">
     1914<!ENTITY nsucceq "&#x2AB0;&#x338;">
     1915<!ENTITY NotSucceedsEqual "&#x2AB0;&#x338;">
     1916<!ENTITY prE "&#x2AB3;">
     1917<!ENTITY scE "&#x2AB4;">
     1918<!ENTITY prnE "&#x2AB5;">
     1919<!ENTITY precneqq "&#x2AB5;">
     1920<!ENTITY scnE "&#x2AB6;">
     1921<!ENTITY succneqq "&#x2AB6;">
     1922<!ENTITY prap "&#x2AB7;">
     1923<!ENTITY precapprox "&#x2AB7;">
     1924<!ENTITY scap "&#x2AB8;">
     1925<!ENTITY succapprox "&#x2AB8;">
     1926<!ENTITY prnap "&#x2AB9;">
     1927<!ENTITY precnapprox "&#x2AB9;">
     1928<!ENTITY scnap "&#x2ABA;">
     1929<!ENTITY succnapprox "&#x2ABA;">
     1930<!ENTITY Pr "&#x2ABB;">
     1931<!ENTITY Sc "&#x2ABC;">
     1932<!ENTITY subdot "&#x2ABD;">
     1933<!ENTITY supdot "&#x2ABE;">
     1934<!ENTITY subplus "&#x2ABF;">
     1935<!ENTITY supplus "&#x2AC0;">
     1936<!ENTITY submult "&#x2AC1;">
     1937<!ENTITY supmult "&#x2AC2;">
     1938<!ENTITY subedot "&#x2AC3;">
     1939<!ENTITY supedot "&#x2AC4;">
     1940<!ENTITY subE "&#x2AC5;">
     1941<!ENTITY subseteqq "&#x2AC5;">
     1942<!ENTITY nsubE "&#x2AC5;&#x338;">
     1943<!ENTITY nsubseteqq "&#x2AC5;&#x338;">
     1944<!ENTITY supE "&#x2AC6;">
     1945<!ENTITY supseteqq "&#x2AC6;">
     1946<!ENTITY nsupE "&#x2AC6;&#x338;">
     1947<!ENTITY nsupseteqq "&#x2AC6;&#x338;">
     1948<!ENTITY subsim "&#x2AC7;">
     1949<!ENTITY supsim "&#x2AC8;">
     1950<!ENTITY subnE "&#x2ACB;">
     1951<!ENTITY subsetneqq "&#x2ACB;">
     1952<!ENTITY vsubnE "&#x2ACB;&#xFE00;">
     1953<!ENTITY varsubsetneqq "&#x2ACB;&#xFE00;">
     1954<!ENTITY supnE "&#x2ACC;">
     1955<!ENTITY supsetneqq "&#x2ACC;">
     1956<!ENTITY vsupnE "&#x2ACC;&#xFE00;">
     1957<!ENTITY varsupsetneqq "&#x2ACC;&#xFE00;">
     1958<!ENTITY csub "&#x2ACF;">
     1959<!ENTITY csup "&#x2AD0;">
     1960<!ENTITY csube "&#x2AD1;">
     1961<!ENTITY csupe "&#x2AD2;">
     1962<!ENTITY subsup "&#x2AD3;">
     1963<!ENTITY supsub "&#x2AD4;">
     1964<!ENTITY subsub "&#x2AD5;">
     1965<!ENTITY supsup "&#x2AD6;">
     1966<!ENTITY suphsub "&#x2AD7;">
     1967<!ENTITY supdsub "&#x2AD8;">
     1968<!ENTITY forkv "&#x2AD9;">
     1969<!ENTITY topfork "&#x2ADA;">
     1970<!ENTITY mlcp "&#x2ADB;">
     1971<!ENTITY Dashv "&#x2AE4;">
     1972<!ENTITY DoubleLeftTee "&#x2AE4;">
     1973<!ENTITY Vdashl "&#x2AE6;">
     1974<!ENTITY Barv "&#x2AE7;">
     1975<!ENTITY vBar "&#x2AE8;">
     1976<!ENTITY vBarv "&#x2AE9;">
     1977<!ENTITY Vbar "&#x2AEB;">
     1978<!ENTITY Not "&#x2AEC;">
     1979<!ENTITY bNot "&#x2AED;">
     1980<!ENTITY rnmid "&#x2AEE;">
     1981<!ENTITY cirmid "&#x2AEF;">
     1982<!ENTITY midcir "&#x2AF0;">
     1983<!ENTITY topcir "&#x2AF1;">
     1984<!ENTITY nhpar "&#x2AF2;">
     1985<!ENTITY parsim "&#x2AF3;">
     1986<!ENTITY parsl "&#x2AFD;">
     1987<!ENTITY nparsl "&#x2AFD;&#x20E5;">
     1988<!ENTITY fflig "&#xFB00;">
     1989<!ENTITY filig "&#xFB01;">
     1990<!ENTITY fllig "&#xFB02;">
     1991<!ENTITY ffilig "&#xFB03;">
     1992<!ENTITY ffllig "&#xFB04;">
     1993<!ENTITY Ascr "&#x1D49C;">
     1994<!ENTITY Cscr "&#x1D49E;">
     1995<!ENTITY Dscr "&#x1D49F;">
     1996<!ENTITY Gscr "&#x1D4A2;">
     1997<!ENTITY Jscr "&#x1D4A5;">
     1998<!ENTITY Kscr "&#x1D4A6;">
     1999<!ENTITY Nscr "&#x1D4A9;">
     2000<!ENTITY Oscr "&#x1D4AA;">
     2001<!ENTITY Pscr "&#x1D4AB;">
     2002<!ENTITY Qscr "&#x1D4AC;">
     2003<!ENTITY Sscr "&#x1D4AE;">
     2004<!ENTITY Tscr "&#x1D4AF;">
     2005<!ENTITY Uscr "&#x1D4B0;">
     2006<!ENTITY Vscr "&#x1D4B1;">
     2007<!ENTITY Wscr "&#x1D4B2;">
     2008<!ENTITY Xscr "&#x1D4B3;">
     2009<!ENTITY Yscr "&#x1D4B4;">
     2010<!ENTITY Zscr "&#x1D4B5;">
     2011<!ENTITY ascr "&#x1D4B6;">
     2012<!ENTITY bscr "&#x1D4B7;">
     2013<!ENTITY cscr "&#x1D4B8;">
     2014<!ENTITY dscr "&#x1D4B9;">
     2015<!ENTITY fscr "&#x1D4BB;">
     2016<!ENTITY hscr "&#x1D4BD;">
     2017<!ENTITY iscr "&#x1D4BE;">
     2018<!ENTITY jscr "&#x1D4BF;">
     2019<!ENTITY kscr "&#x1D4C0;">
     2020<!ENTITY lscr "&#x1D4C1;">
     2021<!ENTITY mscr "&#x1D4C2;">
     2022<!ENTITY nscr "&#x1D4C3;">
     2023<!ENTITY pscr "&#x1D4C5;">
     2024<!ENTITY qscr "&#x1D4C6;">
     2025<!ENTITY rscr "&#x1D4C7;">
     2026<!ENTITY sscr "&#x1D4C8;">
     2027<!ENTITY tscr "&#x1D4C9;">
     2028<!ENTITY uscr "&#x1D4CA;">
     2029<!ENTITY vscr "&#x1D4CB;">
     2030<!ENTITY wscr "&#x1D4CC;">
     2031<!ENTITY xscr "&#x1D4CD;">
     2032<!ENTITY yscr "&#x1D4CE;">
     2033<!ENTITY zscr "&#x1D4CF;">
     2034<!ENTITY Afr "&#x1D504;">
     2035<!ENTITY Bfr "&#x1D505;">
     2036<!ENTITY Dfr "&#x1D507;">
     2037<!ENTITY Efr "&#x1D508;">
     2038<!ENTITY Ffr "&#x1D509;">
     2039<!ENTITY Gfr "&#x1D50A;">
     2040<!ENTITY Jfr "&#x1D50D;">
     2041<!ENTITY Kfr "&#x1D50E;">
     2042<!ENTITY Lfr "&#x1D50F;">
     2043<!ENTITY Mfr "&#x1D510;">
     2044<!ENTITY Nfr "&#x1D511;">
     2045<!ENTITY Ofr "&#x1D512;">
     2046<!ENTITY Pfr "&#x1D513;">
     2047<!ENTITY Qfr "&#x1D514;">
     2048<!ENTITY Sfr "&#x1D516;">
     2049<!ENTITY Tfr "&#x1D517;">
     2050<!ENTITY Ufr "&#x1D518;">
     2051<!ENTITY Vfr "&#x1D519;">
     2052<!ENTITY Wfr "&#x1D51A;">
     2053<!ENTITY Xfr "&#x1D51B;">
     2054<!ENTITY Yfr "&#x1D51C;">
     2055<!ENTITY afr "&#x1D51E;">
     2056<!ENTITY bfr "&#x1D51F;">
     2057<!ENTITY cfr "&#x1D520;">
     2058<!ENTITY dfr "&#x1D521;">
     2059<!ENTITY efr "&#x1D522;">
     2060<!ENTITY ffr "&#x1D523;">
     2061<!ENTITY gfr "&#x1D524;">
     2062<!ENTITY hfr "&#x1D525;">
     2063<!ENTITY ifr "&#x1D526;">
     2064<!ENTITY jfr "&#x1D527;">
     2065<!ENTITY kfr "&#x1D528;">
     2066<!ENTITY lfr "&#x1D529;">
     2067<!ENTITY mfr "&#x1D52A;">
     2068<!ENTITY nfr "&#x1D52B;">
     2069<!ENTITY ofr "&#x1D52C;">
     2070<!ENTITY pfr "&#x1D52D;">
     2071<!ENTITY qfr "&#x1D52E;">
     2072<!ENTITY rfr "&#x1D52F;">
     2073<!ENTITY sfr "&#x1D530;">
     2074<!ENTITY tfr "&#x1D531;">
     2075<!ENTITY ufr "&#x1D532;">
     2076<!ENTITY vfr "&#x1D533;">
     2077<!ENTITY wfr "&#x1D534;">
     2078<!ENTITY xfr "&#x1D535;">
     2079<!ENTITY yfr "&#x1D536;">
     2080<!ENTITY zfr "&#x1D537;">
     2081<!ENTITY Aopf "&#x1D538;">
     2082<!ENTITY Bopf "&#x1D539;">
     2083<!ENTITY Dopf "&#x1D53B;">
     2084<!ENTITY Eopf "&#x1D53C;">
     2085<!ENTITY Fopf "&#x1D53D;">
     2086<!ENTITY Gopf "&#x1D53E;">
     2087<!ENTITY Iopf "&#x1D540;">
     2088<!ENTITY Jopf "&#x1D541;">
     2089<!ENTITY Kopf "&#x1D542;">
     2090<!ENTITY Lopf "&#x1D543;">
     2091<!ENTITY Mopf "&#x1D544;">
     2092<!ENTITY Oopf "&#x1D546;">
     2093<!ENTITY Sopf "&#x1D54A;">
     2094<!ENTITY Topf "&#x1D54B;">
     2095<!ENTITY Uopf "&#x1D54C;">
     2096<!ENTITY Vopf "&#x1D54D;">
     2097<!ENTITY Wopf "&#x1D54E;">
     2098<!ENTITY Xopf "&#x1D54F;">
     2099<!ENTITY Yopf "&#x1D550;">
     2100<!ENTITY aopf "&#x1D552;">
     2101<!ENTITY bopf "&#x1D553;">
     2102<!ENTITY copf "&#x1D554;">
     2103<!ENTITY dopf "&#x1D555;">
     2104<!ENTITY eopf "&#x1D556;">
     2105<!ENTITY fopf "&#x1D557;">
     2106<!ENTITY gopf "&#x1D558;">
     2107<!ENTITY hopf "&#x1D559;">
     2108<!ENTITY iopf "&#x1D55A;">
     2109<!ENTITY jopf "&#x1D55B;">
     2110<!ENTITY kopf "&#x1D55C;">
     2111<!ENTITY lopf "&#x1D55D;">
     2112<!ENTITY mopf "&#x1D55E;">
     2113<!ENTITY nopf "&#x1D55F;">
     2114<!ENTITY oopf "&#x1D560;">
     2115<!ENTITY popf "&#x1D561;">
     2116<!ENTITY qopf "&#x1D562;">
     2117<!ENTITY ropf "&#x1D563;">
     2118<!ENTITY sopf "&#x1D564;">
     2119<!ENTITY topf "&#x1D565;">
     2120<!ENTITY uopf "&#x1D566;">
     2121<!ENTITY vopf "&#x1D567;">
     2122<!ENTITY wopf "&#x1D568;">
     2123<!ENTITY xopf "&#x1D569;">
     2124<!ENTITY yopf "&#x1D56A;">
     2125<!ENTITY zopf "&#x1D56B;">
  • trunk/LayoutTests/imported/w3c/web-platform-tests/tools/serve/serve.py

    r222307 r224156  
    280280    global logger
    281281    logger = logging.getLogger("web-platform-tests")
    282     logging.basicConfig(level=getattr(logging, level.upper()))
     282    logger.setLevel(getattr(logging, level.upper()))
    283283    set_logger(logger)
    284284
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/getstats.html

    r223273 r224156  
    6969      showStats.innerHTML = JSON.stringify(reportDictionary, null, 2);
    7070      // Check the stats properties.
    71       assert_not_equals(report, null);
     71      assert_not_equals(report, null, 'No report');
    7272      let sessionStat = getStatsRecordByType(report, 'peer-connection');
    7373      assert_not_equals(sessionStat, null, 'Did not find peer-connection stats');
    74       assert_exists(sessionStat, 'dataChannelsOpened');
    75       assert_equals(sessionStat.dataChannelsOpened, 1);
     74      assert_exists(sessionStat, 'dataChannelsOpened', 'no dataChannelsOpened stat');
     75      // Once every 4000 or so tests, the datachannel won't be opened when the getStats
     76      // function is done, so allow both 0 and 1 datachannels.
     77      assert_true(sessionStat.dataChannelsOpened == 1 || sessionStat.dataChannelsOpened == 0,
     78                  'dataChannelsOpened count wrong');
    7679      test.done();
    7780    })
     
    9497    // sure the ICE connection be attempted.
    9598    gFirstConnection.createDataChannel('channel');
    96 
    9799    var atStep = 'Create offer';
    98100
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/w3c-import.log

    r223327 r224156  
    9797/LayoutTests/imported/w3c/web-platform-tests/webrtc/historical.html
    9898/LayoutTests/imported/w3c/web-platform-tests/webrtc/identity-helper.js
    99 /LayoutTests/imported/w3c/web-platform-tests/webrtc/interfaces.html
     99/LayoutTests/imported/w3c/web-platform-tests/webrtc/interfaces.https.html
    100100/LayoutTests/imported/w3c/web-platform-tests/webrtc/no-media-call.html
    101101/LayoutTests/imported/w3c/web-platform-tests/webrtc/promises-call.html
  • trunk/LayoutTests/platform/mac-wk1/TestExpectations

    r223856 r224156  
    109109http/wpt/cache-storage [ Skip ]
    110110http/tests/cache-storage [ Skip ]
     111imported/w3c/web-platform-tests/streams/readable-byte-streams/detached-buffers.serviceworker.https.html [ Skip ]
    111112
    112113# Skip WebRTC for now in WK1
Note: See TracChangeset for help on using the changeset viewer.